KR20130051491A - 변환 도메인 내의 어댑티브 필터링을 이용한 데이터 압축 방법 및 장치 - Google Patents

변환 도메인 내의 어댑티브 필터링을 이용한 데이터 압축 방법 및 장치 Download PDF

Info

Publication number
KR20130051491A
KR20130051491A KR1020137008404A KR20137008404A KR20130051491A KR 20130051491 A KR20130051491 A KR 20130051491A KR 1020137008404 A KR1020137008404 A KR 1020137008404A KR 20137008404 A KR20137008404 A KR 20137008404A KR 20130051491 A KR20130051491 A KR 20130051491A
Authority
KR
South Korea
Prior art keywords
block
coefficients
transform domain
prediction
transform
Prior art date
Application number
KR1020137008404A
Other languages
English (en)
Other versions
KR101492930B1 (ko
Inventor
시앙 유
다케 헤
은희 양
Original Assignee
리서치 인 모션 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 리서치 인 모션 리미티드 filed Critical 리서치 인 모션 리미티드
Publication of KR20130051491A publication Critical patent/KR20130051491A/ko
Application granted granted Critical
Publication of KR101492930B1 publication Critical patent/KR101492930B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

어댑티브 변환 도메인 필터링을 이용하는 데이터 인코딩 및 디코딩 방법들 및 장치들이 개시된다. 인코더는 변환 도메인 예측에 대해서 적용하고자 하는 변환 도메인 필터 계수들의 세트를 결정한다. 필터링은, 일부 경우들에서, 또한 양자화된 변환 데이터 계수들에 대해서 적용될 수 있을 것이다. 프레임-기반, 코딩-유닛-기반, 또는 다른 기반하에서 최적의 필터 계수들을 결정하기 위해서 레이트-왜곡 최적화가 이용될 수 있을 것이다.

Description

변환 도메인 내의 어댑티브 필터링을 이용한 데이터 압축 방법 및 장치{METHODS AND DEVICES FOR DATA COMPRESSION WITH ADAPTIVE FILTERING IN THE TRANSFORM DOMAIN}
본원 발명은 본원 출원인에게 공동으로 소유되고, 전체 내용이 본원에서 참조로 포함되는, 2010년 9월 14일자로 출원된 미국 특허출원 제 61/382,523 호에 대해서 우선권을 주장한다.
본원은 일반적으로 데이터 압축에 관한 것이고, 특히, 데이터 인코딩 및 디코딩 동안의 DCT 도메인 내의 어댑티브 필터링을 위한 방법들 및 장치들에 관한 것이다.
데이터 압축은 수많은 상황들(contexts)에서 발생된다. 데이터 압축은 정보를 효율적으로 저장, 전송, 및 재생하기 위해서 통신 및 컴퓨터 네트워킹에서 매우 일반적으로 이용된다. 데이터 압축은 이미지들, 오디오 및 비디오의 인코딩에서 특히 작용된다. 비디오는 데이터 압축에 대한 상당한 난관이 되는데, 이는 각각의 비디오 프레임에 대해서 요구되는 많은 양의 데이터 및 인코딩과 디코딩이 종종 발생되어야 속도 때문이다. 비디오 인코딩을 위한 현재의 기술 수준은 ITU-T H.264/AVC 비디오 코딩 표준이다. 이는, Main 프로파일, Baseline 프로파일, 및 기타들을 포함하는 여러 적용예들에 대해서 많은 수의 상이한 프로파일들을 규정한다. 차세대 비디오 인코딩 표준은 MPEG-ITU: High Efficiency Video Coding (HEVC)의 협력 계획을 통해서 현재 개발 중이다.
블록-기반 코딩 프로세스들을 이용하는 H.264을 포함하는, 이미지들 및 비디오들을 인코딩/디코딩하기 위한 많은 수의 표준들이 있다. 이러한 프로세스들에서, 이미지 또는 프레임이 블록들로, 통상적으로 4 x 4 또는 8 x 8 블록들로 분할되고, 블록들이 스펙트럼적으로 계수들로 변환되고, 양자화되고(quantized), 그리고 엔트로피 인코딩된다. 많은 경우들에서, 변환되는 데이터는 실제 픽셀 데이터가 아니라, 예측(prediction) 작업에 후속하는 잔여(residual) 데이터이다. 예측들이 인프라-프레임(infra-frame) 즉, 프레임/이미지 내의 블록-대-블록, 또는 인터-프레임(inter-frame) 즉, 프레임들 사이(모션 예측이라고도 지칭된다)일 수 있다. HEVC가 또한 이러한 특징들을 가질 것으로 예상된다.
잔여 데이터를 스펙트럼적으로 변환할 때, 이러한 많은 표준들은 이산 코사인 변환(discrete cosine transform; DCT) 또는 그 일부 변형의 이용을 규정한다. 이어서, 균일한 양자화 단계 크기(quantization step size)를 채용하는 양자화기(quantizer)를 이용하여 결과적인 DCT 계수들이 양자화된다.
양자화는 손실적(lossy)이다. 다시 말해서, 양자화는 재구축된 이미지들 또는 비디오들 내에서 노이즈로서 나타나는 왜곡을 도입한다. 따라서, 많은 기존 압축 방식들은, 재구축된 픽셀들로부터 양자화 노이즈를 제거하기 위해서, 일부 형태의 사후(post)-프로세싱 즉, 필터링을 이용한다. 예들은 디블록킹(deblocking) 필터들, 역-노이징 필터들, 또는 다른 픽셀-도메인 필터들을 포함한다.
손실적인 압축 작업, 예를 들어 오디오/비디오 코딩, 비디오 코딩, 이미지 코딩 등은 레이트(rate)-왜곡 성능을 개선하는데 초점을 맞추는 경향이 있다. 즉, 대부분의 인코딩 및 디코딩 방식들의 목적은 왜곡과 코딩 레이트 사이에서 최적의 균형을 찾기 위한 것이다. 타입 J = D + λR의 레이트-왜곡 최적화 표현이 전형적으로 이용되고, 이때 Lagrangian 승수(multiplier)(λ)는 코딩 레이트와 왜곡 사이의 희망하는 상쇄(trade-off)를 나타낸다.
개선된 인코더, 디코더, 및 인코딩 또는 디코딩 방법을 제공하는 것이 바람직할 것이다.
본원은 손실형 데이터 압축에서의 레이트-왜곡 개선을 달성하기 위한 방법들 및 인코더들/디코더들을 개시한다. 일부 실시예들에서, 본원에 개시된 데이터 압축 프로세스 또는 장치들은 오디오 데이터, 이미지 데이터, 및/또는 비디오 데이터의 인코딩 및 디코딩에 대해서 적용될 수 있을 것이다. 특히, 본원은 변환 도메인에서 어댑티브 필터링을 이용하는 데이터 압축 방법 및 프로세스를 개시한다.
일 양태에서, 본원은 이미지를 인코딩하기 위한 방법을 개시하고, 상기 이미지는 오리지날 픽셀들의 블록을 포함한다. 그러한 방법은 픽셀들의 예측 블록을 선택하는 단계; 변환된 오리지날 블록을 획득하기 위해서 오리지날 픽셀들의 블록을 스펙트럼적으로 변환하는 단계; 변환된 예측 블록을 획득하기 위해서 예측 픽셀들의 블록을 스펙트럼적으로 변환하는 단계; 적어도 부분적으로, 변환된 오리지날 블록 및 변환된 예측 블록을 기초로 변환 도메인 필터 계수들의 블록을 생성하는 단계; 및 출력 비트스트림에서 필터 계수들을 엔트로피 인코딩하는 단계를 포함한다.
다른 양태에서, 본원은 이미지를 인코딩하는 비트스트림을 디코딩하는 방법을 개시하고, 상기 이미지는 픽셀들의 블록을 가진다. 이러한 방법은 양자화된 변환 도메인 계수들의 블록, 필터 계수들의 블록, 및 예측 데이터를 획득하기 위해서 비트스트림을 엔트로피 디코딩하는 단계; 예측 데이터를 기초로 예측 픽셀들의 블록을 식별하는 단계; 변환된 예측 블록을 획득하기 위해서 예측 픽셀들의 블록을 스펙트럼적으로 변환하는 단계; 필터 계수들의 블록, 변환된 예측 블록 및 양자화된 변환 도메인 계수들로부터 필터링된 변환 도메인 재구축(reconstruction)을 계산하는 단계; 및 상기 재구축된 픽셀들의 블록을 출력하기 위해서 상기 필터링된 변환 도메인 재구축을 역 변환하는 단계를 포함한다.
또 다른 양태에서, 본원은 이미지 인코딩에서 이용하기 위한 필터 계수들을 계산하기 위한 방법을 제공하고, 상기 이미지는 샘플들의 블록들을 포함한다. 상기 방법은 변환 계수들의 블록들을 획득하기 위해서 샘플들의 블록들을 스펙트럼적으로 변환하는 단계; 샘플들의 블록들의 각각에 대해서, 예측 변환 계수들의 블록을 획득하기 위해서 예측 샘플들의 블록을 스펙트럼적으로 변환하는 단계; 및 변환 계수들의 블록들 및 예측 변환 계수들의 블록들을 기초로 변환 도메인 필터 계수들의 블록을 생성하는 단계를 포함한다.
또 다른 추가적인 양태에서, 본원은 이미지에 대한 샘플들의 블록을 재구축하기 위해서 디코더에서 이용하기 위한 필터링 방법을 제공하고, 상기 디코더는 샘플들의 블록과 연관된 샘플들의 예측 블록을 가진다. 상기 방법은 변환된 예측 블록을 획득하기 위해서 샘플들의 예측 블록을 스펙트럼적으로 변환하는 단계; 필터 계수들의 블록을 변환된 예측 블록의 적어도 일부에 대해서 적용함으로써 필터링된 변환 도메인 재구축을 계산하는 단계를 포함한다.
추가적인 양태에서, 본원은 그러한 인코딩 및 디코딩 방법들을 구현하도록 구성된 인코더들 및 디코더들을 개시한다.
또 다른 추가적인 양태에서, 본원은 컴퓨터-실행가능 프로그램 명령들을 저장하는 컴퓨터-판독가능 매체를 개시하고, 상기 프로그램 명령들은, 실행될 때, 개시된 인코딩 및/또는 디코딩 방법들을 실시하도록 프로세서를 구성한다.
본원의 다른 양태들 및 특징들은 첨부 도면들을 참조한 이하의 예들에 대한 설명으로부터 당업자에 의해서 이해될 수 있을 것이다.
이제, 예로서, 본원의 예시적인 실시예들을 도시하는 첨부 도면들을 참조할 것이다.
도 1은 비디오 인코딩을 위한 인코더를, 블록도 형태로 도시한, 도면이다.
도 2는 비디오 디코딩을 위한 인코더를, 블록도 형태로 도시한, 도면이다.
도 3은 변환 도메인 필터링과 함께 예시적인 인코더를 도시한 블록도이다.
도 4는 예시적인 인코딩 방법을 도시한 흐름도이다.
도 5는 변환 도메인 필터링과 함께 다른 예시적인 인코더를 도시한 블록도이다.
도 6은 다른 예시적인 인코딩 방법을 도시한 흐름도이다.
도 7은 변환 도메인 필터링과 함께 제 1의 예시적인 디코딩 방법을 도시한 흐름도이다.
도 8은 변환 도메인 필터링과 함께 제 2의 예시적인 디코딩 방법을 도시한 흐름도이다.
도 9는 인코더의 예시적인 실시예의 단순화된 블록도이다.
도 10은 디코더의 예시적인 실시예의 단순화된 블록도이다.
다른 도면들에서, 유사한 성분들을 나타내기 위해서 유사한 참조 번호들이 이용될 수 있을 것이다.
이하의 설명에서, 일부 예시적인 실시예들이 비디오 코딩을 위한 H.264 표준을 참조하여 설명된다. 당업자는, 본원이 H.264로 제한되지 않고, HEVC와 같이, 미래의 가능한 표준들을 포함하는, 다른 비디오 코딩/디코딩 표준들에 대해서도 적용될 수 있다는 것을 이해할 것이다. 본원이 반드시 비디오 코딩/디코딩으로 제한되는 것이 아니고, 오디오 코딩/디코딩, 이미지 코딩/디코딩, 또는 임의의 다른 데이터의 손실형 코딩/디코딩에도 적용될 수 있다는 것을 이해할 수 있을 것이다. 본원은, 코딩되는/디코딩되는 데이터의 타입에 관계 없이, 예측 동작, 예측 동작에 후속하는 잔여분(residual)의 스펙트럼적 변환, 및 변환된 잔여분의 양자화를 채용하는 임의의 손실형 데이터 압축 프로세스에 광범위하게 적용될 수 있다.
이하의 설명에서, 비디오 또는 이미지들을 인용할 때, 프레임 및 슬라이스라는 용어들은 어느 정도 상호 교환가능하게 이용될 수 있을 것이다. 당업자는, H.264 표준의 경우에, 프레임이 하나 이상의 슬라이스들을 포함할 수 있다는 것을 이해할 것이다. 또한, 특정 인코딩/디코딩 동작들이, 적용가능한 이미지 또는 비디오 코딩 표준의 특별한 요건들에 따라서, 프레임별(frame-by-frame) 기반으로 실시되고 그리고 일부는 슬라이스별 기반으로 실행된다는 것을 이해할 수 있을 것이다. 임의의 특별한 실시예에서, 경우에 따라서, 적용가능한 이미지 또는 비디오 코딩 표준은, 이하에서 설명되는 동작들이 프레임들 및/또는 슬라이스들과 관련하여 실행되는지의 여부를 결정할 수 있을 것이다. 따라서, 당업자는, 본원의 개시 내용에 비추어, 본원에 개시된 특별한 동작들 또는 프로세스들 및 프레임들, 슬라이스들, 및 양자 모두에 대한 특별한 인용이 해당 실시예를 위해서 프레임들, 슬라이스들, 또는 양자 모두에 대해서 적용될 수 있는지의 여부를 이해할 것이다.
이하의 설명 전체를 검토한 후에 당업자가 이해할 수 있는 바와 같이, 이하에서 설명되는 프로세스들 또는 방법들이 이미지들 및/또는 비디오에 대해서 적용될 수 있는 범위에서, 그러한 프로세스들 또는 방법들이 블록-기반, 코딩-유닛-기반, 슬라이스-기반, 프레임-기반, 픽쳐들의 그룹(Group-of-Pictures; GOP) 기반, 또는 다른 기반에 적용될 수 있을 것이다. 코딩 유닛은 기본적인 코딩 유닛으로서 적용가능한 표준에 의해서 규정된(prescribed) 임의 블록 또는 블록들의 그룹일 수 있을 것이며; 예를 들어, H.264/AVC 에서의 코딩 유닛이 16 x 16 마이크로블록이 된다. HEVC 가 하나 이상의 코딩 유닛들을 지정할 수 있을 것이고; 코딩 유닛의 크기는 일부 구현예들에서 변경될 수 있을 것이고 그리고, 일부 경우들에서, 프레임 또는 이미지가 하나 이상의 코딩 유닛의 타입/크기를 포함할 수 있을 것이다. 본원에 개시된 프로세스 또는 방법들이 음악이나 음성 데이터와 같은 오디오에 대해서 적용되는 범위에서, 그 프로세스 또는 방법들이 오디오 샘플과 같은 데이터 포인트들의 그룹핑 또는 시퀀스에 대해서 적용될 수 있을 것이다.
이제, 비디오 인코딩을 위한 인코더(10)를, 블록도 형태로 도시한, 도 1을 참조한다. 또한, 비디오 디코딩을 위한 디코더(50)의 블록도를 도시한, 도 2를 참조한다. 본원에 개시된 인코더(10) 및 디코더(50)가, 하나 이상의 프로세싱 요소들 및 메모리를 포함하는, 주문형(application-specific) 또는 범용 컴퓨팅 장치에서 각각 구현될 수 있을 것이다. 경우에 따라서, 인코더(10) 또는 디코더(50)에 의해서 실시되는 동작들이, 예를 들어, 주문형 집적 회로에 의해서, 또는 범용 프로세서에 의해서 실행될 수 있는 저장된 프로그램 명령들에 의해서 구현될 수 있을 것이다. 장치는, 예를 들어, 기본 장치 기능들을 제어하기 위한 운영 시스템을 포함하는 부가적인 소프트웨어를 포함할 수 있을 것이다. 인코더(10) 또는 디코더(50)가 내부에 구현될 수 있는 장치들 및 플랫폼들의 범위는 이하의 설명과 관련된 당업자들에 의해서 이해될 수 있을 것이다.
인코더(10)는 비디오 소오스(12)를 수신하고 인코딩된 비트스트림(14)을 생성한다. 디코더(50)는 인코딩된 비트스트림(14)을 수신하고 디코딩된 비디오 프레임(16)을 출력한다. 인코더(10) 및 디코더(50)는 수 많은 비디오 압축 표준들에 맞춰서 동작되도록 구성될 수 있을 것이다. 예를 들어, 인코더(10) 및 디코더(50)가 H.264/AVC 적합형(compliant)일 수 있을 것이다. 다른 실시예들에서, 인코더(10) 및 디코더(50)가, HEVC와 같은 H.264/AVC 표준의 개량형들(evolutions)을 포함하는 다른 비디오 압축 표준들에 맞춰질 수 있을 것이다.
인코더(10)는 공간적(spatial) 예측기(21), 코딩 모드 선택기(20), 변환 프로세서(22), 양자화기(24), 및 엔트로피 인코더(26)를 포함한다. 당업자가 이해할 수 있는 바와 같이, 코딩 모드 선택기(20)는 비디오 소오스에 대한 적절한 코딩 모드를 결정하고, 예를 들어 대상(subject) 프레임/슬라이스가 I, P, 또는 B 타입인지의 여부, 및 프레임/슬라이스 내의 특별한 마이크로블록들 또는 코딩 유닛들이 인터 코딩되었는지 또는 인트라 코딩되었는지의 여부를 결정한다. 변환 프로세서(22)는 픽셀 도메인 데이터의 변환을 수행한다. 특히, 변환 프로세서(22)는 블록-기반 변환을 적용하여 픽셀 도메인 데이터를 스펙트럼적인 성분들로 변환한다. 예를 들어, 많은 실시예들에서, 이산 코사인 변환(discrete cosine transform; DCT)이 이용된다. 이산 사인 변환 또는 기타와 같은 다른 변환들이 일부 경우들에서 이용될 수 있을 것이다. 코딩 유닛들의 크기에 따라서, 블록-기반 변환이 코딩 유닛 기반으로 또는 서브(sub)-코딩-유닛 기반으로 실행된다. H.264 표준에서, 예를 들어, 전형적인 16 x 16 마이크로블록이 4 x 4 변환 블록들을 포함하고, 그리고 DCT 프로세스가 4 x 4 블록들에서 실행된다. 일부 경우들에서, 변환 블록들이 8 x 8 일 수 있고, 이는 매크로블록마다 4개의 변환 블록들이 존재한다는 것을 의미한다. 또 다른 경우들에서, 변환 블록들이 다른 크기들을 가질 수 있을 것이다. 일부 경우들에서, 16 x 16 매크로블록이 4 x 4 및 8 x 8 변환 블록들의 비-중첩형 조합을 포함할 수 있을 것이다.
블록-기반 변환을 픽셀 데이터의 블록에 대해서 적용하는 것은, 변환 도메인 계수들의 세트를 초래한다. 이러한 내용에서, "세트"는 계수들이 계수 위치들을 가지는 순서화된(ordered) 세트이다. 일부 경우들에서, 변환 도메인 계수들의 세트가 계수의 매트릭스(matrix) 또는 "블록"으로서 간주될 수 있을 것이다. 본원의 설명에서, "변환 도메인 계수들의 세트" 또는 "변환 도메인 계수들의 블록"이라는 문구는 상호 교환가능하게 사용되고 그리고 변환 도메인 계수들의 순서화된 세트를 나타낸다는 것을 의미한다.
변환 도메인 계수들의 세트가 양자화기(24)에 의해서 양자화된다. 이어서, 양자화된 계수들 및 연관된 정보가 엔트로피 인코더(26)에 의해서 인코딩된다.
인트라-코딩된 프레임들/슬라이스들(즉, 타입 I)이 다른 프레임들/슬라이스들을 참조하지 않고 인코딩된다. 다시 말해서, 인트라-코딩된 프레임들/슬라이스들이 시간적인(temporal) 예측을 채용하지 않는다. 그러나, 공간적인 예측기(21)에 의해서 도 1에 도시된 바와 같이, 인트라-코딩된 프레임들은 프레임/슬라이스 내의 공간적인 예측에 의존하지 않는다. 즉, 특별한 블록을 인코딩할 때, 블록 내의 데이터 또는 샘플들이 해당 프레임/슬라이스에 대해서 이미 인코딩된 블록들 내의 근접한(nearby) 픽셀들의 데이터에 대해서 비교될 수 있을 것이다. 예측 알고리즘을 이용하여, 블록의 소오스 데이터가 잔여 데이터로 전환(convert)될 수 있을 것이다. 이어서, 변환 프로세서(22)가 잔여 데이터를 인코딩한다. 예를 들어, H.264는 4 x 4 변환 블록들에 대해서 9개의 공간적인 예측 모드들을 규정한다. 일부 실시예들에서, 9개의 모드들의 각각을 이용하여 블록을 독립적으로 프로세스할 수 있을 것이고, 이어서 레이트-왜곡 최적화를 이용하여 최적 모드를 선택할 수 있을 것이다.
H.264 표준은 또한 시간적인 예측의 평균을 최하기 위한 모션 예측/보상의 이용을 규정한다. 따라서, 인코더(10)는, 역-양자화기(de-quantizer)(28), 역(inverse) 변환 프로세서(30), 및 역블록킹 프로세서(32)를 포함하는 피드백 루프를 가진다. 이러한 요소들은 프레임/슬라이스를 재생하기 위해서 디코더(50)에 의해서 구현되는 디코딩 프로세스를 반영한다. 프레임 저장부(store)(34)를 이용하여 재생된 프레임들을 저장한다. 이러한 방식에서, 모션 예측은, 디코더(50)에서 재구축된 프레임들이 될 것을 기초로 하고, 그리고 오리지날 프레임들을 기초로 하지 않으며, 상기 오리지날 프레임들은 인코딩/디코딩에 관련된 손실형 압축으로 인해서 재구축된 프레임들과 상이할 수 있을 것이다. 모션 예측기(36)는, 유사한 블록들을 식별하기 위한 목적을 위해서 현재의 프레임에 대해서 비교하기 위한 소오스 프레임들/슬라이스들과 같이 프레임 저장부(34) 내에 저장된 프레임들/슬라이스들을 이용한다. 따라서, 모션 예측이 적용되는 매크로블록들의 경우에, 변환 프로세서(22)를 인코딩하는 "소오스 데이터"가 모션 예측 프로세스로부터 유래하는(comes out) 잔여 데이터이다. 예를 들어, 상기 소오스 데이터는 기준 프레임, 공간적 변위 또는 "모션 벡터"와 관련된 정보, 그리고 예측(기준 블록)과 현재 블록 사이의 차이들(존재하는 경우)을 나타내는 잔여 픽셀 데이터를 포함할 수 있을 것이다. 기준 프레임 및/또는 모션 벡터와 관련된 정보가 변환 프로세서(22) 및/또는 양자화기(24)에 의해서 프로세싱되지 않을 수 있고, 그 대신에 양자화된 계수들과 함께 비트스트림의 일부로서 인코딩을 위한 엔트로피 인코더(26)로 공급될 수 있을 것이다.
당업자는 H.264 인코더들을 구현하기 위한 구체적인 사항들 및 가능한 변형들을 이해할 수 있을 것이다.
디코더(50)는 엔트로피 디코더(52), 양자화기(54), 역 변환 프로세서(56), 공간적인 보상기(57), 및 역블록킹 프로세서(60)를 포함한다. 프레임 버퍼(58)는 모션 보상 적용에서의 모션 보상기(62)에 의한 이용을 위해서 재구축된 프레임들을 공급한다. 공간적인 보상기(57)는 이전에 디코딩된 블록으로부터 특별한 인트라-코딩된 블록을 위한 비디오 데이터를 복원(recover)하는 동작을 나타낸다.
비트스트림(14)은 양자화된 계수들을 복원하기 위해서 엔트로피 디코더(52)에 의해서 수신되고 디코딩된다. 또한, 부수적인(side) 정보가 엔트로피 디코딩 프로세스 동안에 복원될 수 있을 것이고, 해당되는 경우에, 그들 중 일부가 모션 보상에서의 이용을 위해서 모션 보상 루프로 공급될 수 있을 것이다. 예를 들어, 엔트로피 디코더(52)가 인터-코딩된 매크로블록들을 위해서 모션 벡터들 및/또는 기준 프레임 정보를 복원할 수 있을 것이다.
이어서, 양자화된 계수들이 역양자화기(54)에 의해서 역양자화되어 변환 도메인 계수들을 생성하고, 그러한 변환 도메인 계수들은 이어서 역 변환 프로세서(56)에 의해서 역 변환되어 픽셀 도메인 "비디오 데이터"를 재생성한다. 일부 경우들에서, 예를 들어 인트라-코딩된 매크로블록으로, 재생된 "비디오 데이터"가 프레임 내의 이전에 디코딩된 블록에 대한 공간적인 보상에서 이용하기 위한 잔여 데이터가 된다. 공간적인 보상기(57)는 잔여 데이터로부터 비디오 데이터를 그리고 이전에 디코딩된 블록으로부터 재구축된 픽셀 데이터를 생성한다. 다른 경우들에서, 인터-코딩된 매크로블록들과 같이, 역 변환 프로세서(56)로부터 재생성된 "비디오 데이터"가 다른 프레임으로부터의 재구축된 기준 블록에 대한 모션 보상에서 이용하기 위한 잔여 데이터가 된다. 공간적 및 모션 보상 모두가 본원에서 "예측 동작들"로서 지칭될 수 있을 것이다.
모션 보상기(62)가 특별한 인터-코딩된 매크로블록에 대해서 지정된 프레임 버퍼(58) 내에 기준 블록을 위치시킨다. 이는, 인터-코딩된 매크로블록에 대해서 지정된 모션 벡터 및 기준 프레임 정보를 기초로 한다. 이어서, 이는, 해당 매크로블록을 위한 재구축된 비디오 데이터에 도달하기 위해서 역양자화된 역-변환된 잔여 데이터와의 조합을 위한 기준 블록 픽셀 도메인 데이터를 공급한다.
이어서, 역블록킹 프로세서(60)에 의해서 표시된 바와 같이, 역블록킹 프로세스가 재구축된 프레임/슬라이스에 대해서 적용될 수 있을 것이다. 역블록킹 후에, 프레임/슬라이스가, 예를 들어, 디스플레이 장치 상에서의 디스플레이를 위해서 디코딩된 비디오 프레임(16)으로서 출력된다. 컴퓨터, 셋-톱 박스, DVD 또는 Blu-Ray 플레이어, 및/또는 모바일 휴대용 장치와 같은 비디오 플레이백 기계가 출력 장치 상에서의 디스플레이에 앞서서 메모리 내에서 디코딩된 프레임들을 버퍼링할 수 있다는 것을 이해할 수 있을 것이다. 일부 경우들에서, 다른 프로세싱-후(post-processing) 필터 동작들이 출력되기에 앞서서 픽셀 도메인에 대해서 적용될 수 있을 것이다.
HEVC-적합형 인코더들 및 디코더들이 이러한 동일한 특징들 중 많은 특징들을 가질 것임이 예상된다.
이하의 예시적인 실시예들에 대한 설명에서, 이하의 심볼 정의들이 이용된다:
x = 픽셀들의 오리지날 프레임/블록
p = 픽셀들의 예측 블록
cx = x의 변환
cp = p의 변환
z = 픽셀 도메인 잔여분 = x-p
cz = z의 변환 즉, 변환 도메인 계수들
u = 양자화된 변환 도메인 계수들 = Q(cz), 이때 Q(·)는 양자화 함수를 나타내고, Q- 1(·)는 역 양자화 함수를 나타낸다. 예를 들어, 균일한 스칼라 양자화 함수에 대해서, 위치(i, j)에서 Q(cz)의 출력이 다음에 의해서 주어지며:
Figure pct00001
여기에서, 사인(sign)(·)은 사인 함수를 나타내고, 플로어(floor)(·)는 플로어 함수를 나타내고, abs(·)는 절대 함수를 나타내고, 그리고 qi ,j 는 지점(i, j)에서의 양자화 단계 크기를 나타낸다.
Figure pct00002
= 픽셀들의 재구축된 블록 = p + T-1(Q-1(u)).
픽셀들의 재구축된 블록에서의 왜곡은 픽셀들의 오리지날 블록(x)과 디코더에서의 그 재구축(
Figure pct00003
) 사이의 차이이다. 왜곡을 감소시키기 위해서 필터링이 종종 재구축(
Figure pct00004
)에 대해서 적용된다. 신호 프로세싱 관점으로부터, 이는 로우 패스 필터링으로서 카테고리화될(categorized) 수 있을 것이다. 그러한 필터링은 일반적으로, 픽셀 도메인 내의 컨벌루션(convolution) 동작을 포함한다. 컨벌루션 동작들이 연산적으로(computationally) 부담이 된다는(demanding) 것을 이해할 것이다. 인코더에서의 피드백 루프 때문에, 이러한 연산적인 복잡성이 인코딩 및 디코딩 동작들 모두에서 존재한다.
본원의 하나의 양태에 따라서, 양자화 왜곡이 픽셀 도메인 대신에 변환 도메인에서 필터링된다. DCT와 같이, 하나의(unitary) 성질을 가지는 스펙트럼적인 변환을 구비하는 것을 기초로 하여, 픽셀들의 오리지날 블록과 픽셀들의 재구축된 블록 사이의 픽셀 도메인 차이를 최소화하기 위해서 일반적으로 실시되는 필터링이, 픽셀들의 재구축된 블록을 생성하기 위해서 재구축이 역 변환되기에 앞서서 변환 도메인 내에서 실행될 수 있을 것이다.
변환 도메인에서, 양자화 왜곡이 다음과 같이 표현될 수 있을 것이다:
Figure pct00005
스칼라 양자화가 이용되는 경우에, Q-1(u) = u*q 가 되고, 여기에서 *는 벡터들/매트릭스들 사이의 엘리먼트-와이즈 곱(element-wise multiplication)을 나타낸다.
변환 동작의, 예를 들어 DCT의 하나의 성질 때문에, 픽셀 도메인 내의 품질 손실은 변환 도메인 내의 왜곡과 같다. 다시 말해서 다음과 같다:
Figure pct00006
여기에서 T-1 은 역 변환 동작을 나타낸다.
픽셀 도메인 내의 컨벌루션은 변환 도메인 내의 스케일링(scaling/곱)과 같으며, 이는 변환 도메인에서 실현된 필터가 실시하는데 있어서 연산적으로 보다 효과적일 것임을 의미한다. 또한, u*q 는 변환 도메인에서 이미 이용가능하고, 그에 따라 연산적인 복잡성을 추가적으로 감소시킨다.
변환 도메인 필터의 목적은 양자화 왜곡을 감소시키는 것이다. 디코더가 그러한 필터를 적용하기 위해서, 인코더는 인코딩된 데이터의 비트스트림에서 필터 계수들을 전송할 것이다. 따라서, 인코더에서의 필터의 디자인은 레이트-왜곡 관점에서 고려될 수 있을 것이다. N 블록들(x1, x2, ..., xN)에 대한 희망하는 필터를 찾기 위한 레이트-왜곡 표현식은 다음과 같다:
Figure pct00007
수학식(3)은 레이트-왜곡 관점으로부터 최적의 필터를 찾기 위한 Lagrangian 비용(cost) 함수를 반영한다. 첫 번째 항은 왜곡을 나타낸다. 이러한 항에서의 왜곡은 샘플들의 변환된 오리지날 블록과 필터링된 변환 도메인 재구축 사이의 차이라는 것을 주지할 수 있을 것이다. 필터 계수들의 송신(sending) 비용이 레이트 함수 r(f)에 의해서 표시된다. λ는 Lagrange 승수이다.
수학식(3)의 심볼 f는 필터를 나타내고; 보다 구체적으로, 변환 도메인 재구축을 스케일링하기 위해서 이용되는 필터 매트릭스 내의 필터 계수들의 블록 또는 세트를 나타낸다. 따라서, 수학식(3)은 필터 계수들을 선택하기 위한 기본 사항(basis)을 제공한다.
양자화 벡터(q)가 스케일링 인자라는 것을 상기할 수 있을 것이다. 일부 실시예들에서, 양자화 벡터(q)가 블록/매트릭스 내의 각각의 계수 위치에 대해서 양자화 값들을 지정하는 벡터/매트릭스일 수 있을 것이다. 하나의 예가, 본원 출원인이 소유한 미국 특허출원 제 12/830,548 호로서, 2010년 6월 6일자로 출원되고 명칭이 "Methods and Devices for Data Compression Using Adaptive Reconstruction Levels"인 특허출원에 개시되어 있다. 각각의 계수 위치에 대한 양자화 스케일링 인자가 디코더에 대해서 시그널링될(signaled) 그러한 상황에서, 수학식(3)이 다음과 같이 재구성될 수 있을 것이다:
Figure pct00008
또한, 양자화된 변환 도메인 계수들(uk)을 계산하기 위한 양자화 동작이, 예측(pk)을 생성하고, 이어서 변환된 예측 블록(cpk)을 생성하는 예측 동작 후에 발생된다는 것을 회상할 수 있을 것이다. 또한, 본원 발명자들은 cpk 의 일부 요소들이 czk 의 요소들과 부정적으로 상호관련된다는 것을 발견하였다. 따라서, 수학식(4)은 다음과 같이 단순화될 수 있을 것이다:
Figure pct00009
수학식(5)은 잔여 에너지를 감소시키는 필터를 실현한다. 이러한 경우에, 잔여분은 샘플들의 오리지날 블록(x)과 샘플들의 필터링된 예측 블록 사이의 차이이다.
수학식(3) 및 (5)는 변환 도메인 필터(f)를 생성하기 위한 2개의 가능한 프로세스들을 유도한다. 수학식(3)에 따른 프로세스는 변형 도메인에서 재구축을 필터링하기 위한 필터를 초래한다. 수학식(5)에 따른 프로세스는 변환 도메인에서 예측을 필터링하기 위한 필터를 초래한다. 이들은 다시 이하에서 설명될 것이다.
만약 필터 계수들이 충분히 드물게(sufficiently infrequently) 계산되고 시그널링된다면, 수학식(3)의 레이트 양태가 무시될 수 있을 것이다. 이러한 단순화를 이용하여, 희망 필터를 찾기 위한 상기 표현식을 다음과 같이 다시 기술할 수 있을 것이다:
Figure pct00010
이제, 어댑티브 변환 도메인 필터링을 가지는 인코더(100)의 단순화된 블록도를 도시하는 도 3을 참조한다. 인코더(100)는 샘플들/픽셀들의 예측 블록(p)을 선택 또는 생성하기 위한 예측 연산자(102)를 포함한다. 예측 연산자(102)는 샘플들/픽셀들의 오리지날 블록(x)을 수신하고, 그리고 이전에 인코딩되고 재구축된 프레임들이 저장되는 프레임 저장부(104)에 대해서 액세스할 수 있을 것이다. 예측 연산자(102)는 시간적인 또는 공간적인 예측을 적용할 수 있을 것이다. 다시 말해서, 프레임 타입 및 코딩 모드 등에 따라서, 예측 연산자(102)가 인트라 공간적 예측을 실시할 수 있을 것이고, 또는 인터 모션 평가(estimation)를 적용할 수 있을 것이다.
샘플들의 오리지날 블록(x) 및 샘플들의 예측 블록(p)이 DCT와 같은 스펙트럼적 변환 연산자(106)로 입력된다. 스펙트럼적 변환 연산자(106)는 샘플들의 변환된 오리지날 블록(cx) 및 샘플들의 변환된 예측 블록(cp)을 생성한다. 인코더(100)는 잔여분 계산기(108)를 포함하고, 상기 잔여분 계산기는 변환 도메인 잔여분(cz)을 샘플들의 변환된 오리지날 블록(cx)과 샘플들의 변환된 예측 블록(cp) 사이의 차이로서 구한다. 양자화기(110)는 변환 도메인 잔여분(cz)을 양자화하여 양자화된 변환 도메인 계수들(u)을 생성한다.
인코더(100)는 필터 발생기(112)를 더 포함한다. 필터 발생기(112)는 샘플들의 변환된 오리지날 블록(cx), 샘플들의 변환된 예측 블록(cp), 양자화된 변환 도메인 계수들(u), 및 양자화 매트릭스/벡터 또는 스케일링 인자(q)를 수신한다. 이러한 데이터로부터 필터 발생기(112)는 예를 들어 수학식 (3) 또는 (6)을 이용하여 필터 계수들(f)을 생성한다.
필터 계수들은 인코더로부터의 비트스트림 출력 내에 포함된다. 많은 실시예들에서, 필터 계수들은 엔트로피 인코딩되고 그리고 인코딩된 계수들이 비트스트림 내로 삽입된다. 또 다른 추가적인 실시예들에서, 엔트로피 인코딩에 앞서서 필터 계수들이 양자화될 수 있을 것이다. 후자의 상황에서 디코더가 양자화된 계수들을 디코딩할 필요가 있을 것이고 이어서 그들을 역양자화하여 재구축된 필터 계수들을 실현할 필요가 있다는 것을 이해할 것이다. 또한, 양자화가 왜곡을 도입할 수 있을 것이고 그리고 필터 계수들에 대한 양자화 단계 크기를 선택하기 위해서 레이트-왜곡 최적화 프로세스가 양자화 프로세스에서 이용될 수 있다는 것을 이해할 수 있을 것이다.
필터 계수들의 엔트로피 인코딩이 임의의 적합한 인코딩 방식에 의존할 수 있을 것이다. 예들에는 가변 길이 코딩(VLC), 산술적 코딩, 또는 가변-길이-대-가변-길이(V2V) 코딩이 포함된다.
필터 계수들의 엔트로피 인코딩이, 적용예들에 따라서, 슬라이스에 대한 스트림의 시작에, 예를 들어 슬라이스 헤더(header)에, 또는 슬라이스의 종료부(end)에 포함될 수 있을 것이다. 계수들이 슬라이스 헤더로 전송될 때, 계수들은 일반적으로 일부 이전에-코딩된 슬라이스들을 기초로 계산된다. 이러한 경우에, 필터링 프로세스가 모드 선택 동안에 적용될 수 있을 것이다. 이러한 것을 실행하는 것의 하나의 단점은 이전에-코딩된 슬라이스들과 현재의 슬라이스 사이의 데이터 불일치가 존재할 수 있다는 것이다. 계수들이 슬라이스의 종료부에서 전송될 때, 계수들이 현재의 슬라이스를 기초로 계산될 수 있다. 또한, 멀티-패스 코딩이 허용되지 않는다면, 필터링 프로세스가 모드 선택 프로세스에 포함될 수 없다.
계수들이 시작부에서 전송될 때, 슬라이스 헤더 신택스(syntax)가 신택스 함수를 지정할 수 있을 것이다: 어댑티브 재구축 레벨들을 구현하기 위한 aftd_param(). 이러한 신택스 함수의 예가 이하에 의해서 주어질 수 있을 것이다:
Figure pct00011
신택스 요소 aftd_delta_idx[i]는 i-번째 필터링 계수를 지정한다. Torder의 수(number)는 전송하고자 하는 필터 계수들의 수를 지정한다. 4 x 4 의 블록 크기의 경우에, Torder의 하나의 선택이 8이 될 수 있을 것이고, 이는 4 x 4 블록 내의 8개의 위치들 만이 필터링된다는 것을 의미하고 그리고 다른 위치들이 일반적으로 제로(zero) 계수로 추정된다는 것을 의미한다.
예로서, 계수들의 수로서 8이 선택된다. 일반적으로, 이러한 계수들을 전송하기 위한 오버헤드 비트들과 필터링 적용에 의한 결과적인 왜곡 감소 사이의 상쇄 효과가 있다. 또한, 이루고자 하는 다른 선택은 비제로(nonzero) 계수를 적용하기 위한 DCT 블록 내의 위치들이 된다. 하나의 접근 방식은, 예를 들어 지그-재그 스캐닝 순서(order)를 따르기 위해서, DC 성분으로부터 시작하는 스캐닝 순서를 따라서 위치들을 선택하는 것이다.
이러한 예시적인 구현예에서, AFTD 계수들이 예측 코딩을 이용하여 코딩되고, 즉 이전의 슬라이스로부터의, 예를 들어 동일한 타입의 슬라이스로부터의 계수들의 세트가 현재의 슬라이스에 대한 계수들을 위한 예측으로서 이용되고, 그리고 차이만이 전송될 것이다. 이러한 경우에, aftd_delta_idx[i] 는 현재 슬라이스 aftd[i]에 대한 실제 i-번째 계수와 그 예측 사이의 차이를 나타낸다. aftd_delta_idx[i]를 수신하였을 때, 디코더가 실제 계수 aftd[i] 를 다음과 같이 복구할 것이다:
aftd[i] = pred_aftd[i] + Idx2Data[aftd_delta_idx[i]],
이때, pred_aftd[i] 는 예측이고, 그리고 Idx2Data 는 차이를 전송하기 위한 양자화 코드북(codebook)을 제공한다. 하나의 예시적인 코드북은 다음과 같을 수 있을 것이다:
int Idx2Delta[16] = {-15, -13, -11 , -9, -7, -5, -3, 0, 1, 3, 5, 7, 9, 11, 13, 15};
실제 계수와 그 예측 사이의 차이가 전술한 예시적인 코드북에서 [-15, 15] 범위에 대해서 클립핑된다(clipped). 또한, 코드북은 고정-포인트 정수들(fixed-point integers)을 가지는 플로팅 포인트(floating point) 수들을 나타내기 위해서 8-비트 정밀도(precision)인 것으로 추정된다.
계수 전송을 위한 다른 예시적인 구현예가 계수를 직접적으로 시그널링하는 것이 될 수 있는데, 이는 많은 경우들에서 인터-슬라이스/프레임 의존성이 매우 요구되기 때문이다. 이러한 경우에, 이전의 슬라이스로부터의 예측이 이용되지 않아야 한다. 계수들이 양자화될 것이고 그리고 색인(index)가 직접적으로 전송될 것이다.
Figure pct00012
다음과 같이, 디코더는 신택스 요소 aftd_idx[i] 로부터 계수를 복원할 수 있을 것이다: aftd[i] = (Idx2Coef[aftd[idx]]*2 + 256); 이때, Idx2Coef = [-31, -29, ..., -1, 1, 3, ..., 29, 31] 이다. aftd 계수들이 8-비트 고정-포인트 정수들에 의해서 표시된다는 것을 주지하여야 한다. 계수의 실제 값이 aftd[i]/256으로서 획득된다. 상기 구현예는 필터 계수들의 일부 범위를 여전히 추정한다는 것 즉, 계수들이 1.0의 실제 값 주변이라는 것을 주지하여야 한다. 8-비트 고정-포인트 표현의 경우에, 이는 256의 디폴트 값에 상응한다. 실제 값과 1.0의 디폴트 값 사이의 차이만이 전송된다. 도 3에 도시된 인코더(100)의 지정 블록들이 설명을 위한 것임을 이해할 수 있을 것이다. 프로세스의 구현예들이 상이할 수 있을 것이다. 예를 들어, 샘플들의 변환된 오리지날 블록(cx)과 변환된 샘플들의 예측 블록(cp) 사이의 차이로서 변환 도메인 잔여분을 계산하는 대신에, 잔여분(z)이 픽셀들의 오리지날 블록(x)과 픽셀들의 예측 블록(p) 사이의 차이로서 픽셀 도메인에서 결정될 수 있을 것이다. 이어서, 잔여분(z)이 스펙트럼적 변환 연산자에 의해서 변환되어 변환 도메인 계수들(cz)을 생성할 수 있을 것이다.
이제, 어댑티브 변환 도메인 필터링을 가지는 데이터 압축을 위한 프로세스(200)의 하나의 예시적인 실시예를 흐름도 형태로 도시한 도 4와 관련하여, 하나의 예시적인 구현예가 설명된다. 프로세스(200)는 샘플들/픽셀들의 오리지날 블록(x)을 수신하는 동작(202)에서 시작된다. 이어서, 동작(204)에서, 예측 동작을 이용하여 샘플들의 예측 블록(p)을 찾는다.
동작(206)에서, 인코더는 변환 도메인의 오리지날 값(x), 변환 도메인 예측 값(p), 및 변환 도메인 잔여 계수들(cz)을 계산한다. 전술한 바와 같이, 잔여분이 픽셀 도메인 내에서 발견될 수 있고 이어서 변환될 수 있고, 또는 cx 와 cp 사이의 차이로서 계산될 수 있을 것이다.
양자화 변환 도메인 계수들(u)이 동작(208)에서 생성된다.
동작(210)에서, 인코더는 (코딩 유닛 기반으로 또는 프레임 기반으로 필터링하는지의 여부에 따라서) 코딩 유닛 및/또는 프레임의 종료부에 도달하였는지의 여부를 평가한다. 만약 종료부에 도달하지 않았다면, 동작(202)으로 되돌아 가서 오리지날 샘플들의 다음 블록을 인코딩한다. 만약 종료부에 도달하였다면, 동작(212)에서 인코더는 코딩 유닛/프레임을 위한 필터 계수들을 계산한다. 계수 위치들이 색인들(i 및 j)을 이용하여 표시된다. 각각의 필터 계수(fij)가 블록들의 수(n)에 걸쳐서 취해진 합들의 비율로서 계산될 수 있을 것이고, 이때 n은, 경우에 따라서, 코딩 유닛 또는 프레임 내의 블록들의 수가 된다. 하나의 실시예에서, 분자(numerator)는 변환 도메인 오리지날 블록(cx)의 동일한 ij번째 계수 위치로부터의 값들의 합이 된다. 분자(denominator)는 변환 도메인 재구축의 동일한 ij번째 계수 위치로부터의 값들의 값이 될 수 있을 것이며, 이는 변환 도메인 예측 블록(cp) 더하기 Q-1(u)에 의해서 주어지는 재구축된 변환 도메인 잔여분이다. 그에 따라, 필터 계수들이 다음의 표현식에 따라서 계산될 수 있을 것이다:
Figure pct00013
대안적인 실시예에서, 이하의 표현식들이 이용될 수 있을 것이다. 이하의 표현식은 여전히 수학식(4)의 개략적인 계산결과(solution)이고, 그리고 Lagrangian 승수가 제로라는 가정을 기초로 하며, 이는 r(f) 가 작아지는 경향이 있다면 일반적으로 수용가능할 것이다:
Figure pct00014
제로로 나누게 되는 문제를 회피하기 위해서, 분자가 제로로 합산되는 경우에, 인코더는 디폴트 필터 계수를 이용하도록 구성될 수 있을 것이다. 일부 실시예들에서, 디폴트 필터 계수가 제로가 될 수 있을 것이다. 또한, 필터 계수들이 모든 계수 위치들 ij에 대해서 필수적으로 계산되어야 하는 것은 아니고; 일부 경우들에서, 계산된 필터 계수들이 계수 위치들의 미리 결정된 수에 대한 계수들만을 포함할 것이고, 그리고 나머지는 디폴트 필터 계수를 이용할 것이고, 예를 들어 1로 셋팅된다. 예를 들어, 4 x 4 블록의 경우에, 필터 계수들은 지그-재그 스캐닝 순서에서 처음의 n 계수 위치들에 대해서만 계산될 수 있을 것이고, 이때 n은 16 미만의 임의의 적합한 정수가 되도록 선택될 수 있을 것이다. 나머지 위치들은 미리 선택된 필터 값 또는 무의미한(null) 필터 값이 되는 것으로 추정될 수 있을 것이다. 미리 선택된 또는 무의미한 필터 값들이 비트스트림 내에서 전송되지 않는다는 것을 이해할 수 있을 것이다.
비록, 용이한 설명을 위해서, 코딩 유닛/프레임의 종료부에 도달한 이후에 동작(212)이 이루어지는 것으로 설명하였지만, 분자 및 분모에서 합계들을 얻기 위해서 인코더가 동작(202) 내지 동작(210)의 인코딩 프로세스를 통해서 값들을 누적할 수 있다는 것을 이해할 수 있을 것이며, 이는 동작(212)이 동작(202) 내지 동작(210)의 루프형 프로세스에 포함된다는 것을 의미한다.
동작(214)에서, 인코더는, 엔트로피 인코딩 방식을 이용하여, 발생된 양자화된 변환 도메인 계수들(u) 및 필터 계수들(f)을 엔트로피 인코딩하여 인코딩된 데이터의 출력 비트스트림을 생성한다. 또한, 다른 데이터가, 모션 벡터들, 코딩 모드 색인들, 양자화 스케일링 매트릭스들 등과 같은, 특정 실시예들에서의 비트 스트림에서 엔트로피 인코딩된다는 것을 이해할 수 있을 것이다. 전술한 바와 같이, 필터 계수들의 코딩은, VLC, V2V, 또는 산술적인 코딩을 포함하는, 임의의 적합한 엔트로피 인코딩 방식을 이용할 수 있을 것이다. 또한, 전술한 바와 같이, 필터 계수들이, 일부 실시예들에서, 인코딩에 앞서서 양자화될 수 있을 것이다. 일부 경우들에서, 필터 계수들 자체를 인코딩하기 보다는 예측 및 잔여분이 인코딩된다. 예를 들어, 예측은 바로 앞에서 선행하는 필터 계수들과 현재 계산된 필터 계수들 사이의 차이가 되는 잔여분을 가지는 바로 앞에서 선행하는 필터 계수들을 기초로 할 수 있을 것이다. 일부 경우들에서, 예측 동작은 현재 계산된 필터 계수들에 가장 잘 합치되는 미리 결정된 또는 이전에 계산된 필터 계수들의 세트를 색인하는 것을 포함할 수 있고, 이때 잔여분은 색인된 계수들과 현재 계수들 사이의 차이가 된다. 보다 일반적으로, 예측은 소정 함수(f(x))가 되고, 여기에서 x는 이전 유닛의 계수들이고 그리고 y는 현재 유닛의 계수들이다. 그러한 경우에, 인코딩된 잔여분이 y-(f(x))가 된다.
이제, 변환 도메인 필터링을 위해서 구성된 인코더(300)의 다른 예시적인 실시예를 도시하는 도 5를 참조한다. 도 3의 인코더(100)에서와 같이, 인코더(300)는 예측 연산자(302), 프레임 저장부(304) 및 스펙트럼적 변환 연산자(306)를 포함한다. 스펙트럼적 변환 연산자(306)는 변환 계수들의 블록들(cx) 및 예측 변환 계수들의 블록들(cp)을 출력한다.
인코더(300)는 변환 계수들(cx)의 블록들 및 예측 변환 계수들의 블록들(cp)을 수신하는 필터 발생기(308)를 포함한다. 필터 발생기(308)는 수학식(5)에 따라 필터 계수들을 생성한다. 즉, 필터 발생기(308)는 변환 계수들(cx)의 블록들과 예측 변환 계수들의 블록들(cp) 사이의 차이를 최소화하는 경향이 있는 필터 계수들을 찾는다.
인코더(300)는 잔여분 계산기(310)를 더 포함한다. 이러한 예시적인 실시예에서, 잔여분들은 필터링된 예측을 기초로 계산된다. 즉, 잔여분 계산기(310)는 이하의 수학식을 기초로 양자화된 변환 도메인 계수들(u)을 찾는다:
Figure pct00015
이제, 어댑티브 변환 도메인 필터링을 가지는 데이터 압축을 위한 프로세스(400)의 추가적인 예시적 실시예를 흐름도 형태로 도시하는 도 6을 참조하여 설명한다. 프로세스(400)는 샘플들의 오리지날 블록들(x)의 수신과 함께 동작(402)에서 시작된다. 이어서, 예측 동작을 이용하여 동작(404)에서 샘플들의 예측 블록(p)을 찾는다.
동작(406)에서, 인코더는 변환 도메인 계수들의 블록들(cx) 및 예측 변환 계수들의 블록들(cp)을 계산한다. 동작(408)은 필터 계수들의 계산이다. 동작(402) 내지 동작(406)이, 경우에 따라서, 코딩 유닛 또는 프레임의 모든 블록들에 대해서 반복될 수 있다는 것을 이해할 수 있을 것이다. 또한, 동작(408)에서의 계산이 동작(402) 내지 동작(406)의 루프에 포함될 수 있을 것이고, 그에 따라 값들이 동작(406)에서 계산될 때 인코더가 분모 및 분자 내의 값들을 합계할 수 있다는 것을 이해할 수 있을 것이다.
각각의 ij 번째 필터 계수(fij)가 블록들의 수(n)에 걸쳐서 취해진 합들의 비율로서 계산될 수 있을 것이고, 이때 n은, 경우에 따라, 코딩 유닛 또는 프레임 내의 블록들의 수가 된다. 일 실시예에서, 분모는 변환 계수들의 블록들(cx) 내의 동일한 ij 번째 계수 위치로부터의 값들의 합이다. 분자는 예측 변환 계수들의 블록들(cp)의 동일한 ij 번째 계수 위치로부터의 값들의 합이다. 이러한 계산이 재구축된 잔여분들을 필터 계수들을 결정하는 것의 일부로서 포함하지 않는다는 것을 주지하여야 할 것이다. 필터 계수들은, 그에 따라, 이하의 표현식에 따라서 계산될 수 있을 것이다:
Figure pct00016
계수들을 찾기 위한 다른 표현식이 이하에 기재되어 있다:
Figure pct00017
제로로 나누게 되는 문제를 회피하기 위해서, 분자가 제로로 합산되는 경우에, 인코더는 디폴트 필터 계수를 이용하도록 구성될 수 있을 것이다. 일부 실시예들에서, 디폴트 필터 계수가 제로가 될 수 있을 것이다.
필터 계수(f)가 코딩 유닛/프레임에 대해서 결정된 후에, 동작(410)에서 변환 도메인 잔여분이 결정된다. 특히, 인코더는, 예를 들어, 수학식(8)을 이용하여, 양자화된 변환 도메인 계수들(u)을 계산한다.
이어서, 동작(412)에서, 양자화된 변환 도메인 계수들(u), 필터 계수들(f), 및 다른 데이터가 엔트로피 인코딩되어 인코딩된 데이터의 비트스트림을 생성한다.
상기한 예들에 관한 구체적인 설명으로부터, 필터(f)의 결정 및 적용이 프레임을 기반으로, 코딩 유닛을 기반으로, 또는 Group of Pictures 또는 슬라이스와 같은 임의의 다른 블록들의 집합(collection)을 기초로 할 수 있을 것이다.
본 설명으로부터, 하나 초과의 변환 블록 크기가 존재하는 경우에, 하나 초과의 필터(f) 즉, 필터 계수들의 블록이 프레임(또는 코딩 유닛 등)에 대해서 계산될 수 있다는 것을 또한 이해할 수 있을 것이다. 예를 들어, 4 x 4 블록들과 함께 이용하기 위한 4 x 4 필터 매트릭스, 8 x 8 블록들과 함께 이용하기 위한 8 x 8 필터 매트릭스가 존재할 수 있을 것이다.
디코더가 디코딩을 가능한 한 빨리 시작할 수 있게 하기 위해서, 인코더는 하나의 프레임(또는, 경우에 따라, 코딩 유닛 등)에 의해서 인코딩된 비트스트림을 출력하는 것을 지연시킬 수 있을 것이며, 그에 따라 필터 계수들(f)이 프레임/코딩 유닛에 대한 인코딩된 데이터의 시작시에 지정될 수 있을 것이다.
이제, 변환 도메인 필터링을 이용하여 데이터의 인코딩된 비트스트림을 디코딩하기 위한 프로세스(500)를 흐름도 형태로 도시하고 있는 도 7을 참조한다. 프로세스(500)는 동작(502)에서 비트스트림을 수신하는 단계를 포함하고 그리고 양자화된 변환 도메인 계수들(u), 필터 계수들(f), 및 디코더가 예측을 결정할 수 있게 하는 데이터와 같은 기타 데이터를 복원하기 위해서 동작(504)에서 비트스트림을 엔트로피 디코딩하는 단계를 포함한다.
동작(506)에서, 변환 도메인 예측 블록 더하기 양자화된 변환 도메인 잔여분으로서 변환 도메인 재구축을 계산하고 이어서 필터(f)를 적용함으로써, 디코더는 필터링된 변환 도메인 재구축(
Figure pct00018
)을 계산한다. 그러한 계산은 다음과 같이 표현될 수 있다:
Figure pct00019
동작(506)이 디코딩된 예측 데이터를 기초로 샘플들의 예측 블록들을 식별 또는 생성하는 디코더를 포함할 수 있다는 것을 이해할 수 있을 것이다. 예를 들어, 디코더가 모션 벡터 정보를 기초로 기준 프레임으로부터 기준 블록을 식별할 수 있을 것이다. 동작(506)은 변환 도메인 예측 블록(cp)을 획득하기 위해서 샘플들의 예측 블록을 스펙트럼적으로 변환하는 것을 더 포함할 수 있을 것이다. 이어서, 수학식(12)은 변환 도메인 재구축된 블록을 실현하기 위해서 이용될 수 있을 것이다.
이어서, 디코더는, 동작(508)에서, 변환 도메인 재구축을 역변환하여 재구축된 픽셀 도메인 블록(
Figure pct00020
)을 생성한다.
이제, 프로세스(600)를 흐름도 형태로 도시하는 도 8을 참조하여, 다른 예시적인 디코딩 프로세스(600)를 설명할 것이다. 도 8의 프로세스(600)는, 도 5 및 6과 관련하여 전술한 바와 같이, 잔여분이 인코더에서 필터링된 예측으로부터 계산되었던 실시예들에 대해서 적용될 수 있다. 프로세스(600)는, 잔여분이 도 3 및 4에서와 같이 필터링되지 않은 예측으로부터 계산되었던 경우에도 적용될 수 있을 것이나, 이때 인코더는 계수-위치 기반 양자화 단계 크기들을 지정하는 양자화 매트릭스(q)를 전송한다. 이러한 경우에, 필터 매트릭스(f)에 의해서 표시되는 스케일링이 양자화 매트릭스(q)에 통합될 수 있을 것이고, 이는 디코더에서 재구축된 변환 도메인 잔여분들에 대해서 적용될 필요가 없다는 것을 의미한다.
동작(602) 및 동작(604)에서, 디코더는 비트스트림을 수신하고 그리고 양자화된 변환 도메인 계수들(u), 양자화 단계 크기(또는, 일부 실시예들에서, 양자화 벡터 또는 매트릭스(q)), 필터 계수들(f), 및 (모션 벡터(들) 등과 같은) 예측 데이터를 복원하기 위해서 그 비트스트림을 엔트로피 디코딩한다. 동작(606)에서, 필터링된 변환 도메인 예측 블록과 양자화된 변환 도메인 잔여분의 합을 계산함으로써, 디코더는 필터링된 변환 도메인 재구축(
Figure pct00021
)을 계산한다. 그러한 계산은 다음과 같이 표현될 수 있을 것이다:
Figure pct00022
동작(506)과 관련하여 앞서서 구체적으로 설명한 바와 같이, 동작(606)은 샘플들의 예측 블록들을 생성 또는 식별하고 그리고 샘플들의 예측 블록을 스펙트럼적으로 변환하여 변환 도메인 예측 블록(cp)을 획득하는 디코더를 포함한다.
이어서, 디코더가 필터링된 변호나 도메인 재구축을 역 변환하여 픽셀들의 재구축된 블록(
Figure pct00023
)을 획득한다.
이제, 인코더(900)의 예시적인 실시예의 단순화된 블록도를 도시하고 있는 도 9를 참조한다. 인코더(900)는 프로세서(902), 메모리(904), 및 인코딩 애플리케이션(906)을 포함한다. 인코딩 애플리케이션(906)은, 메모리(904) 내에 저장되고 본원에 개시된 바와 같은 단계들 또는 동작들을 실시하도록 프로세서(902)를 구성하기 위한 명령들을 포함하는 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있을 것이다. 예를 들어, 인코딩 애플리케이션(906)이 인코딩을 할 수 있을 것이고 그리고 본원에 개시된 프로세스들에 따라서 인코딩된 비트스트림들을 출력할 수 있을 것이다. 입력 데이터 포인트들은 손실형 데이터 압축 방식의 대상이 될 수 있는 오디오, 이미지들, 비디오 또는 다른 데이터와 관련될 수 있을 것이다. 인코딩 애플리케이션(906)은 프레임, 코딩 유닛, 또는 다른 블록들의 집합에 대한 필터 계수들을 결정하도록 구성된 필터 발생 모듈(908)을 포함할 수 있을 것이다. 인코딩 애플리케이션(906)은 비트스트림의 일부로서 필터 계수들(f) 및 다른 데이터를 엔트로피 인코딩하도록 구성된 엔트로피 인코더를 포함할 수 있을 것이다. 인코딩 애플리케이션(906)이 컴팩트 디스크, 플래시 메모리 장치, 랜덤 액세스 메모리, 하드 드라이브 등과 같은 컴퓨터 판독가능 매체에 저장될 수 있다는 것을 이해할 수 있을 것이다.
이제 또한 디코더(100)의 예시적인 실시예의 단순화된 블록도를 도시한 도 10을 참조한다. 디코더(1000)는 프로세서(1002), 메모리(1004), 및 디코딩 애플리케이션(1006)을 포함한다. 디코딩 애플리케이션(1006)은, 메모리(1004) 내에 저장되고 본원에 개시된 바와 같은 단계들 또는 동작들을 실시하도록 프로세서(1002)를 구성하기 위한 명령들을 포함하는 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있을 것이다. 디코딩 애플리케이션(1006)은 엔트로피 디코더(1008) 및 필터 계수들(f)을 획득하도록 그리고 그 계수들을 필터링된 변환 도메인 재구축을 계산하기 위해서 이용하도록 구성된 재구축 모듈(1010)을 포함할 수 있을 것이고, 상기 디코딩 애플리케이션(1006)은 재구축된 픽셀들의 블록을 생성하기 위해서 역 변환하도록 구성된다. 디코딩 애플리케이션(1006)이 컴팩트 디스크, 플래시 메모리 장치, 랜덤 액세스 메모리, 하드 드라이브 등과 같은 컴퓨터 판독가능 매체에 저장될 수 있다는 것을 이해할 수 있을 것이다.
본원에 따른 디코더 및/또는 인코더가, 서버들, 적합하게는 프로그래밍된 범용 컴퓨터들, 오디오/비디오 인코딩 및 플레이백 장치들, 셋-톱 텔레비전 박스들, 텔레비전 방송 장비, 및 모바일 장치를 포함하는(그러나, 이러한 것으로 제한되는 것은 아니다) 많은 수의 컴퓨팅 장치들에서 구현될 수 있을 것이다. 디코더 또는 인코더는 본원에 개시된 기능들을 실시하도록 프로세서를 구성할 수 있는 명령들을 포함하는 소프트웨어에 의해서 구현될 수 있을 것이다. 소프트웨어 명령들은 CDs, RAM, ROM, 플래시 메모리 등을 포함하는 임의의 적합한 컴퓨터-판독가능 메모리에 저장될 수 있을 것이다.
본원에서 설명된 인코더 및 모듈, 루틴, 프로세스, 스레드(thread), 또는 인코더를 구성하기 위한 개시된 방법/프로세스를 구현하는 다른 소프트웨어 성분이 표준적인 컴퓨터 프로그래밍 기술들 및 언어들을 이용하여 실현될 수 있을 것이다. 본원은 특별한 프로세서들, 컴퓨터 언어들, 컴퓨터 프로그래밍 컨벤션들(conventions), 다른 그러한 상세한 구현예로 제한되지 않는다. 당업자는, 개시된 프로세스들이, 주문형 집적 칩(ASIC) 등의 일부로서, 휘발성 또는 비-휘발성 메모리 내에 저장된 컴퓨터-실행가능 코드의 일부로서 구현될 수 있다는 것을 이해할 수 있을 것이다.
개시된 실시예들의 특정 변경예들 및 변형예들이 만들어질 수 있을 것이다. 그에 따라, 전술한 실시예들은 예시적인 것으로 간주될 것이고, 제한적인 것으로 간주되지 않을 것이다.

Claims (20)

  1. 샘플들의 블록을 포함하는 이미지의 인코딩에서 이용하기 위한 필터 계수들을 계산하기 위한 방법으로서,
    변환 계수들의 블록들을 획득하기 위해서 샘플들의 블록들을 스펙트럼적으로 변환하는 단계;
    상기 샘플들의 블록들의 각각에 대해서, 예측 변환 계수들의 블록을 획득하기 위해서 예측 샘플들의 블록을 스펙트럼적으로 변환하는 단계; 및
    상기 변환 계수들의 블록들 및 상기 예측 변환 계수들의 블록들을 기초로 변환 도메인 필터 계수들의 블록을 생성하는 단계를 포함하는, 필터 계수들을 계산하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 이미지가 비디오의 일부이고, 상기 방법은 상기 예측 샘플들의 블록들을 선택하기 위해서 모션 평가를 실행하는 단계를 더 포함하고, 상기 예측 샘플들의 블록들이 하나 이상의 이전에 인코딩된 프레임들로부터의 재구축된 픽셀들의 기준 블록들인, 필터 계수들을 계산하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 예측 샘플들의 블록들을 선택하기 위해서 공간적인 보상을 실시하는 단계를 더 포함하고, 상기 예측 샘플들의 블록들이 상기 이미지 내의 샘플들의 블록에 인접한 값들을 기초로 결정되는 샘플들의 기준 블록들인, 필터 계수들을 계산하기 위한 방법.
  4. 제 1 항에 있어서,
    상기 변환 도메인 필터 계수들의 블록을 생성하는 단계는, 상기 블록 내의 계수 위치들 중 적어도 일부에 대해서, 비율, 변환 계수들의 블록들의 상응하는 위치 내의 값들 및 예측 변환 계수들의 블록들의 상응하는 위치 내의 값들의 곱(product)의 합을 포함하는 비율의 분자, 및 상기 예측 변환 계수들의 블록들의 상응하는 위치 내의 값들의 제곱(square)의 합을 포함하는 비율의 분모를 계산하는 단계를 포함하는, 필터 계수들을 계산하기 위한 방법.
  5. 제 1 항에 있어서,
    상기 변환 도메인 필터 계수들의 블록을 생성하는 단계는, 상기 블록 내의 계수 위치들 중 적어도 일부에 대해서, 이하의 표현식에 따라서 비율을 계산하는 단계를 더 포함하고,
    Figure pct00024

    이때 fij 는 ij 번째 계수 위치에 대한 변환 도메인 필터 계수를 포함하고,
    Figure pct00025
    는 변환 계수들의 k 번째 블록 내의 ij 번째 계수 위치에서의 값을 포함하고,
    Figure pct00026
    는 예측 변환 계수들의 k 번째 블록의 ij 번째 계수 위치에서의 값을 포함하며, uk , ij 는 k 번째 블록 내의 ij 번째 양자화된 변환 도메인 계수를 포함하며, 그리고 Q- 1(·)는 역양자화 함수를 포함하는, 필터 계수들을 계산하기 위한 방법.
  6. 제 1 항에 있어서,
    상기 변환 도메인 필터 계수들(f)의 블록을 생성하는 단계가, 이하의 표현식을 최소화하는 필터 계수들(f)을 찾는 단계를 더 포함하고:
    Figure pct00027

    이때,
    Figure pct00028
    는 변환 계수들의 k 번째 블록 내의 ij 번째 계수 위치에서의 값을 포함하고,
    Figure pct00029
    는 예측 변환 계수들의 k 번째 블록 내의 ij 번째 계수 위치에서의 값을 포함하며, uk , ij 는 k 번째 블록 내의 ij 번째 양자화된 변환 도메인 계수를 포함하며, 그리고 Q- 1(·)는 역양자화 함수를 포함하는, 필터 계수들을 계산하기 위한 방법.
  7. 제 1 항에 있어서,
    상기 변환 도메인 필터 계수들(f)의 블록을 생성하는 단계가, 이하의 표현식을 최소화하는 필터 계수들을 찾는 단계를 더 포함하고:
    Figure pct00030

    이때,
    Figure pct00031
    는 변환 계수들의 k 번째 블록 내의 ij 번째 계수 위치에서의 값을 포함하고,
    Figure pct00032
    는 예측 변환 계수들의 k 번째 블록의 ij 번째 계수 위치에서의 값을 포함하는, 필터 계수들을 계산하기 위한 방법.
  8. 제 1 항에 있어서,
    상기 변환 도메인 필터 계수들의 세트를 생성하는 단계가 코딩 유닛 또는 프레임 마다 한 번씩 실시되는, 필터 계수들을 계산하기 위한 방법.
  9. 제 1 항에 있어서,
    변환 도메인 필터 계수들의 적어도 일부의 각각에 대해서, 변환 도메인 필터 계수와 예측 사이의 차이를 기초로 색인을 인코딩함으로써, 비트스트림 내의 변환 도메인 필터 계수들의 적어도 일부를 엔트로피 인코딩하는 단계를 더 포함하는, 필터 계수들을 계산하기 위한 방법.
  10. 이미지에 대한 샘플들의 블록을 재구축하기 위해서 디코더에서 이용하기 위한 필터링 방법으로서, 상기 디코더는 샘플들의 블록과 연관된 샘플들의 예측 블록을 가지며, 상기 필터링 방법은:
    변환된 예측 블록을 획득하기 위해서 샘플들의 예측 블록을 스펙트럼적으로 변환하는 단계; 및
    필터 계수들의 블록을 변환된 예측 블록의 적어도 일부에 대해서 적용함으로써 필터링된 변환 도메인 재구축을 계산하는 단계를 포함하는, 필터링 방법.
  11. 제 10 항에 있어서,
    상기 필터링된 변환 도메인 재구축을 계산하는 단계는 상기 필터 계수에 의해서 상기 변환된 예측 블록의 적어도 일부를 스케일링함으로써 그리고 양자화된 변환 도메인 계수들의 블록을 역 양자화함으로써 필터링된 예측을 계산하는 단계를 포함하고, 상기 필터링된 변환 도메인 재구축은 상기 필터링된 예측과 상기 역 양자화된 변환 도메인 계수들의 블록의 합계를 포함하는, 필터링 방법.
  12. 제 10 항에 있어서,
    상기 필터링된 변환 도메인 재구축을 계산하는 단계는:
    양자화된 변환 도메인 계수들의 블록을 역 양자화하는 단계;
    변환된 예측 블록 더하기 역 양자화된 변환 도메인 계수들의 블록으로서 변환 도메인 재구축 블록을 계산하는 단계; 및
    필터 계수들을 이용하여 변환 도메인 재구축 블록을 스케일링하는 단계를 포함하는, 필터링 방법.
  13. 제 12 항에 있어서,
    상기 스케일링하는 단계가 엘리먼트-와이즈 곱(element-wise multiplication)을 포함하는, 필터링 방법.
  14. 제 10 항에 있어서,
    입력 비트스트림으로부터 필터 계수들을 추출하는 단계를 더 포함하고, 상기 추출하는 단계가 필터 계수들을 복원하기 위해서 상기 입력 비트스트림을 엔트로피 디코딩하는 단계를 포함하는, 필터링 방법.
  15. 이미지를 재구축하기 위해서 비트스트림을 디코딩하는 방법으로서:
    양자화된 변환 도메인 계수들의 블록, 필터 계수들, 및 예측 데이터를 획득하기 위해서 상기 비트스트림을 엔트로피 디코딩하는 단계;
    예측 데이터를 기초로 샘플들의 예측 블록을 식별하는 단계;
    제 10 항에 따른 방법을 이용하여 필터링된 변환 도메인 재구축을 획득하는 단계; 및
    재구축된 샘플들의 블록을 출력하기 위해서 상기 필터링된 변환 도메인 재구축을 역 변환하는 단계를 포함하는, 비트스트림을 디코딩하는 방법.
  16. 제 15 항에 있어서,
    상기 예측 데이터가 모션 벡터를 포함하고, 상기 샘플들의 예측 블록을 식별하는 단계가 기준 프레임으로부터 기준 블록을 선택하기 위해서 모션 보상을 실행하는 단계를 포함하고, 그리고 상기 스펙트럼적으로 변환하는 단계가 상기 기준 블록을 변환하는 단계를 포함하는, 비트스트림을 디코딩하는 방법.
  17. 손실형 데이터 압축 프로세스를 이용하여 데이터 공간 내에 데이터 포인트들의 시퀀스를 인코딩하기 위한 인코더로서:
    프로세서;
    데이터 포인트들을 저장하는 메모리; 및
    제 1 항 내지 제 9 항 중 어느 한 항에 따른 방법을 이용하여 데이터 포인트들을 인코딩하도록 상기 프로세서를 구성하기 위한 명령들을 포함하고 그리고 상기 메모리 내에 저장되는 인코딩 애플리케이션을 포함하는, 인코더.
  18. 인코딩된 압축된 데이터 - 상기 압축된 데이터가 손실형 데이터 압축 프로세스로부터 초래됨 - 를 디코딩하기 위한 디코더로서:
    프로세서;
    메모리; 및
    제 10 항 내지 제 16 항 중 어느 한 항에 따른 방법을 이용하여 인코딩된 압축 데이터를 디코딩하도록 상기 프로세서를 구성하기 위한 명령들을 포함하고 그리고 상기 메모리 내에 저장되는 디코딩 애플리케이션을 포함하는, 디코더.
  19. 컴퓨터-실행가능 명령들을 저장하는 컴퓨터-판독가능 매체로서,
    상기 컴퓨터-실행가능 명령들은, 프로세서에 의해서 실행될 때, 제 1 항 내지 제 9 항 중 어느 한 항에 따른 방법을 실행하도록 상기 프로세서를 구성하는, 컴퓨터-판독가능 매체.
  20. 컴퓨터-실행가능 명령들을 저장하는 컴퓨터-판독가능 매체로서,
    상기 컴퓨터-실행가능 명령들은, 프로세서에 의해서 실행될 때, 제 10 항 내지 제 16 항 중 어느 한 항에 따른 방법을 실행하도록 상기 프로세서를 구성하는, 컴퓨터-판독가능 매체.
KR20137008404A 2010-09-14 2011-09-14 변환 도메인 내의 어댑티브 필터링을 이용한 데이터 압축 방법 및 장치 KR101492930B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US38252310P 2010-09-14 2010-09-14
US61/382,523 2010-09-14
PCT/CA2011/050559 WO2012034231A1 (en) 2010-09-14 2011-09-14 Methods and devices for data compression with adaptive filtering in the transform domain

Publications (2)

Publication Number Publication Date
KR20130051491A true KR20130051491A (ko) 2013-05-20
KR101492930B1 KR101492930B1 (ko) 2015-02-23

Family

ID=45806783

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20137008404A KR101492930B1 (ko) 2010-09-14 2011-09-14 변환 도메인 내의 어댑티브 필터링을 이용한 데이터 압축 방법 및 장치

Country Status (5)

Country Link
US (1) US8577159B2 (ko)
EP (1) EP2617199B1 (ko)
KR (1) KR101492930B1 (ko)
CA (1) CA2808451C (ko)
WO (1) WO2012034231A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2822929C (en) 2011-01-04 2016-07-12 Research In Motion Limited Coding of residual data in predictive compression
EP2661893B1 (en) * 2011-01-04 2020-11-25 BlackBerry Limited Coding of residual data in predictive compression
EP2595382B1 (en) 2011-11-21 2019-01-09 BlackBerry Limited Methods and devices for encoding and decoding transform domain filters
EP2842322A1 (en) * 2012-04-24 2015-03-04 Telefonaktiebolaget LM Ericsson (Publ) Encoding and deriving parameters for coded multi-layer video sequences
US9781447B1 (en) 2012-06-21 2017-10-03 Google Inc. Correlation based inter-plane prediction encoding and decoding
US9167268B1 (en) 2012-08-09 2015-10-20 Google Inc. Second-order orthogonal spatial intra prediction
US9344742B2 (en) * 2012-08-10 2016-05-17 Google Inc. Transform-domain intra prediction
EP3090547A4 (en) * 2014-01-01 2017-07-12 LG Electronics Inc. Method and apparatus for encoding, decoding a video signal using an adaptive prediction filter
US10390025B2 (en) 2014-10-01 2019-08-20 Lg Electronics Inc. Method and apparatus for encoding and decoding video signal using improved prediction filter
US10349057B2 (en) * 2015-04-01 2019-07-09 Cox Communications, Inc. Systems and methods for optimizing video coding efficiency based on characteristics of video content
JP6868785B2 (ja) * 2016-05-13 2021-05-12 ソニーグループ株式会社 画像処理装置および方法
US11490083B2 (en) 2020-02-05 2022-11-01 Qualcomm Incorporated Learned low-complexity adaptive quantization for video compression
US20210329267A1 (en) * 2020-04-17 2021-10-21 Qualcomm Incorporated Parallelized rate-distortion optimized quantization using deep learning

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357594A (en) * 1989-01-27 1994-10-18 Dolby Laboratories Licensing Corporation Encoding and decoding using specially designed pairs of analysis and synthesis windows
US5230038A (en) * 1989-01-27 1993-07-20 Fielder Louis D Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio
US5479562A (en) * 1989-01-27 1995-12-26 Dolby Laboratories Licensing Corporation Method and apparatus for encoding and decoding audio information
US5109417A (en) * 1989-01-27 1992-04-28 Dolby Laboratories Licensing Corporation Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio
US5142656A (en) * 1989-01-27 1992-08-25 Dolby Laboratories Licensing Corporation Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio
CN1062963C (zh) * 1990-04-12 2001-03-07 多尔拜实验特许公司 用于产生高质量声音信号的解码器和编码器
US5526446A (en) * 1991-09-24 1996-06-11 Massachusetts Institute Of Technology Noise reduction system
US5448680A (en) * 1992-02-12 1995-09-05 The United States Of America As Represented By The Secretary Of The Navy Voice communication processing system
DE69738288T2 (de) * 1996-05-31 2008-09-25 Koninklijke Philips Electronics N.V. Einrichtung zur unterdrückung einer störenden komponente eines eingangssignals
HUP0301368A3 (en) * 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
KR101038822B1 (ko) * 2003-09-07 2011-06-03 마이크로소프트 코포레이션 인터레이스형 비디오의 코딩 및 디코딩
US7570827B2 (en) 2004-07-14 2009-08-04 Slipstream Data Inc. Method, system and computer program product for optimization of data compression with cost function
US8005140B2 (en) 2006-03-17 2011-08-23 Research In Motion Limited Soft decision and iterative video coding for MPEG and H.264
EP1841230A1 (en) * 2006-03-27 2007-10-03 Matsushita Electric Industrial Co., Ltd. Adaptive wiener filter for video coding
WO2008126139A1 (ja) * 2007-03-30 2008-10-23 Fujitsu Limited 画像データ圧縮装置及び復号装置
EP2048886A1 (en) * 2007-10-11 2009-04-15 Panasonic Corporation Coding of adaptive interpolation filter coefficients
EP2051524A1 (en) * 2007-10-15 2009-04-22 Panasonic Corporation Image enhancement considering the prediction error
US9967590B2 (en) * 2008-04-10 2018-05-08 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter
US10123050B2 (en) * 2008-07-11 2018-11-06 Qualcomm Incorporated Filtering video data using a plurality of filters
KR101098739B1 (ko) * 2008-11-24 2011-12-23 한국전자통신연구원 비디오 신호의 부호화/복호화 장치 및 방법
EP2192786A1 (en) 2008-11-27 2010-06-02 Panasonic Corporation Frequency domain filters for video coding

Also Published As

Publication number Publication date
EP2617199B1 (en) 2018-01-24
US8577159B2 (en) 2013-11-05
WO2012034231A1 (en) 2012-03-22
EP2617199A4 (en) 2014-02-19
EP2617199A1 (en) 2013-07-24
US20120063691A1 (en) 2012-03-15
CA2808451C (en) 2016-06-21
KR101492930B1 (ko) 2015-02-23
CA2808451A1 (en) 2012-03-22

Similar Documents

Publication Publication Date Title
KR101492930B1 (ko) 변환 도메인 내의 어댑티브 필터링을 이용한 데이터 압축 방법 및 장치
KR101506372B1 (ko) 변환 영역 필터들을 인코딩 및 디코딩하기 위한 방법들 및 장치들
US9282329B2 (en) Methods and devices for data compression using offset-based adaptive reconstruction levels
US8958472B2 (en) Methods and apparatus for quantization and dequantization of a rectangular block of coefficients
US20130083845A1 (en) Methods and devices for data compression using a non-uniform reconstruction space
WO2009075445A1 (en) Method and apparatus for quantization, and method and apparatus for inverse quantization
WO2011012669A2 (en) Method for decoding a stream of coded data representative of a sequence of images and method for coding a sequence of images
US8582639B2 (en) Methods and devices for data compression using adaptive reconstruction levels
EP2575364A1 (en) Methods and devices for data compression using a non-uniform reconstruction space
JP6402520B2 (ja) 符号化装置、方法、プログラム及び機器
EP2405656B1 (en) Methods and devices for data compression using adaptive reconstruction levels
JP6497100B2 (ja) 映像符号化装置、方法及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180126

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190124

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 6