KR101506372B1 - 변환 영역 필터들을 인코딩 및 디코딩하기 위한 방법들 및 장치들 - Google Patents

변환 영역 필터들을 인코딩 및 디코딩하기 위한 방법들 및 장치들 Download PDF

Info

Publication number
KR101506372B1
KR101506372B1 KR1020120131728A KR20120131728A KR101506372B1 KR 101506372 B1 KR101506372 B1 KR 101506372B1 KR 1020120131728 A KR1020120131728 A KR 1020120131728A KR 20120131728 A KR20120131728 A KR 20120131728A KR 101506372 B1 KR101506372 B1 KR 101506372B1
Authority
KR
South Korea
Prior art keywords
filter
block
coefficients
transform domain
prediction
Prior art date
Application number
KR1020120131728A
Other languages
English (en)
Other versions
KR20130056190A (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 KR20130056190A publication Critical patent/KR20130056190A/ko
Application granted granted Critical
Publication of KR101506372B1 publication Critical patent/KR101506372B1/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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

Abstract

변환 영역 필터링을 이용하여 데이터를 인코딩 및 디코딩하기 위한 방법들 및 장치들이 개시된다. 인코더는 변환 영역 예측에 대해서 적용하기 위한 변환 영역 필터 계수들의 세트를 결정한다. 일부 경우들에서, 필터링은 또한 변환 영역 재구축들에 대해서 적용될 수 있을 것이다. 프레임을 기초로, 코딩 유닛을 기초로, 또는 다른 것을 기초로 최적의 필터 계수들을 결정하기 위해서, 레이트 왜곡 최적화를 이용할 수 있을 것이다. 변환 블록 크기, 코딩 모드, 예측 모드, 및 텍스쳐 타입의 다양한 조합들을 위해서, 복수의 필터들이 개발될 수 있고 그리고 인코더로부터 디코더로 통신될 수 있을 것이다. 다른 경우들에서, 샘플들의 블록의 픽셀 영역 재구축 또는 픽셀 영역 예측에 대해서 필터링이 픽셀 영역에서 적용된다.

Description

변환 영역 필터들을 인코딩 및 디코딩하기 위한 방법들 및 장치들{METHODS AND DEVICES FOR ENCODING AND DECODING TRANSFORM DOMAIN FILTERS}
본원 명세서의 개시 내용의 일부 및 그에 수반하는 자료들은 저작권을 위한 청구항이 구성된 자료를 포함한다. 저작권 소유자는, 특허상표청 파일들 또는 기록물들에서 보여지는 바에 따라, 모든 사람들이 특허 서류 또는 특허 공보를 팩시밀리 재생하는 것을 반대하지 않으나, 모든 다른 저작권은 보유한다.
관련 출원의 상호-참조
본원은 2011년 11월 21일자로 출원된 미국 특허출원 제 61/562,294 호를 기초로 우선권을 주장하며, 그 특허출원의 기재 내용은 본원에서 참조에 의해서 포함된다.
분야
본원은 전체적으로 데이터 압축에 관한 것이고, 특히 변환 영역 필터들을 인코딩 및 디코딩하기 위한 방법들 및 장치들에 관한 것이다.
데이터 압축이 많은 문헌들에 기재되어 있다. 데이터 압축은 정보를 효과적으로 저장, 전달 및 재생하기 위해서 통신 및 컴퓨터 네트워킹에서 매우 일반적으로 사용되고 있다. 데이터 압축의 용도는 특히 이미지들, 오디오 및 비디오의 인코딩 분야이다. 비디오에서 데이터 압축이 상당한 문제가 되는데, 이는 각 비디오 프레임에서 필요한 대용량의 데이터 그리고 인코딩 및 디코딩 속도가 종종 요구되기 때문이다. 비디오 인코딩을 위한 현재의 최신 기술은 ITU-T H.264/AVC 비디오 코딩 표준이다. 그러한 표준은 메인프로파일(Main profile), 및 베이스라인(Baseline) 등을 포함하는 다양한 용도들을 위한 많은 수의 다양한 프로파일들을 규정한다. 차세대 비디오 인코딩 표준은 MPEG-ITU: High Efficiency 비디오 코딩 (HEVC)의 협상 규약(joint initiative)을 통해서 현재 진행중이다.
블록(block) 기반 코딩 프로세스들을 이용하는, H.264을 포함하는 인코딩/디코딩 이미지들 및 비디오들을 위한 많은 수의 표준들이 있다. 이러한 프로세스들에서, 이미지 또는 프레임이 블록들로, 통상적으로 4x4 또는 8x8으로 분할되고, 그리고 블록들이 계수들로 스펙트럼식으로(spectrally) 변환되고, 양자화되고(quantized), 그리고 엔트로피 인코딩된다(entropy encoded). 많은 경우들에서, 변환되는 데이터는 실제의 픽셀 데이터가 아니라, 예측 동작(prediction operation)이 후속되는 레지듀(residual) 데이터이다. 예측들은 인트라(intra) 프레임, 즉 프레임/이미지 내의 블록 대 블록, 또는 인터 프레임 즉, 프레임들 사이(또한 소위 모션 예측이라 한다)일 수 있다. HEVC 가 또한 이러한 특징들을 가질 수 있을 것으로 예상된다.
레지듀 데이터를 스펙트럼적으로 변환할 때, 이러한 표준들 중 많은 표준들은 이산 코사인 변환(discrete cosine transform; DCT) 또는 그에 대한 일부 변경들의 이용을 규정한다. 이어서, 결과적인 DCT 계수들이 균일한 양자화 단계 크기(uniform quantization step size)를 채용하는 양자화기를 이용하여 양자화된다.
양자화는 손실적(lossy)이다. 다시 말해서, 양자화는 재구축된 이미지들 또는 비디오들에서의 노이즈로서 나타나는 왜곡을 도입한다. 따라서, 많은 기존 압축 계획들(schemes)은, 재구축된 픽셀들로부터 양자화 노이즈를 제거하기 위해서, 일부 형태의 포스트 프로세싱(post-processing) 즉, 필터링을 이용한다. 예들은 역 블록화(deblocking) 필터들, 노이즈 제거(de-noising) 필터들, 또는 다른 픽셀 영역 필터들을 포함한다.
손실 압축에서의 작업, 예를 들어, 오디오/보이스 코딩, 비디오 코딩, 이미지 코딩, 등은 레이트 왜곡 성능(rate-distortion performance)의 개선에 초점을 맞추는 경향이 있다. 즉, 대부분의 인코딩 및 디코딩 계획들의 목적은 왜곡과 코딩 레이트 사이의 최적의 균형을 찾는 것이다. J = D + λR 타입의 레이트 왜곡 최적화 표현식(expression)이 통상적으로 이용되고, 이때 라그랑주 승수(Lagrangian multiplier) λ는 코딩 레이트와 왜곡 사이의 희망하는 트레이드 오프(trade-off)를 나타낸다.
본원은 손실적 데이터 압축에서의 레이트 왜곡 개선을 달성하기 위한 방법들 및 인코더들/디코더들을 기술한다. 일부 실시예들에서, 본원에 기술된 데이터 압축 프로세스 또는 디바이스들은 오디오 데이터, 이미지 데이터, 및/또는 비디오 데이터의 인코딩 및 디코딩에 적용될 수 있을 것이다. 특히, 본원은 변환 영역 필터링을 이용하는 데이터 압축의 프로세스 및 방법을 기술한다.
하나의 양태에서, 본원은 이미지에 대한 샘플들의 블록들을 재구축하기 위해서 디코더에서 사용하기 위한 인코딩된 데이터의 비트스트림(bitstream)으로부터 필터들을 디코딩하는 방법을 개시한다. 그러한 방법은 비트스트림으로부터 필터 타입 플래그들(flags)을 판독하는 단계로서, 상기 필터 타입 플래그들은 하나 또는 둘 이상의 필터 타입들을 식별하는 판독 단계; 그리고 식별된 각각의 필터 타입들에 대해서, 비트스트림으로부터 필터 계수들의 세트를 디코딩하는 단계를 포함한다.
다른 양태에서, 본원 발명은 디코더 내에서 인코딩된 데이터의 비트스트림으로부터 샘플들의 블록을 재구축하는 방법을 설명하고, 여기에서 상기 디코더는 샘플들의 블록과 연관된 샘플들의 스펙트럼적으로 변환된 예측 블록을 가진다. 그러한 방법은 비트스트림으로부터 필터 타입 플래그들을 판독하는 단계로서, 상기 필터 타입 플래그들은 하나 또는 둘 이상의 필터 타입들을 식별하는, 판독 단계; 식별된 각각의 필터 타입들에 대해서, 비트스트림으로부터 필터 계수들의 세트를 디코딩하는 단계; 그리고 샘플들의 블록과 연관된 특성들과 매칭되는(matching) 필터 타입을 기초로 필터 계수들의 셋트들 중 하나를 변환된 예측 블록의 적어도 일부에 대해서 적용함으로써 필터링된 변환 영역 재구축을 계산하는 단계를 포함한다.
추가적인 양태에서, 본원은 그러한 인코딩 및 디코딩 방법을 실행하도록 구성된 인코더들 및 디코더들을 개시한다.
또 다른 추가적인 양태에서, 본원은 컴퓨터 실행가능 프로그램 명령들을 저장하는 비 일시적인(non-transitory) 컴퓨터 판독형 매체를 기술하고, 상기 매체는, 실행될 때, 기술된 인코딩 및/또는 디코딩 방법들을 실시하기 위한 프로세서를 구성한다.
첨부 도면들과 관련된 이하의 예들에 대한 설명을 살펴보는 것으로부터 소위 당업자는 본원의 다른 양태들 및 특징들을 이해할 수 있을 것이다.
손실적 데이터 압축에서의 레이트 왜곡 개선을 달성하기 위한 방법들 및 인코더들/디코더들이 제공될 수 있다.
예로서, 본원 발명의 예시적인 실시예들을 나타내는 첨부 도면들을 참조할 것이다.
도 1은 비디오를 인코딩하기 위한 인코더를, 블록도 형태로, 도시한다.
도 2는 비디오를 디코딩하기 위한 디코더를, 블록도 형태로, 도시한다.
도 3은 변환 영역 필터링을 이용하는 예시적인 인코더의 블록도를 도시한다.
도 4는 예시적인 인코딩 방법을 도시하는 흐름도를 도시한다.
도 5는 변환 영역 필터링을 이용하는 다른 예시적인 인코더의 블록도를 도시한다.
도 6은 다른 예시적인 인코딩 방법을 나타내는 흐름도를 도시한다.
도 7은 변환 영역 필터링을 이용하는 제 1의 예시적 디코딩 방법을 도시한 흐름도이다.
도 8은 변환 영역 필터링을 이용하는 제 2의 예시적 디코딩 방법을 도시한 흐름도이다.
도 9는 인코더의 예시적인 실시예의 단순화된 블록도를 도시한다.
도 10은 디코더의 예시적인 실시예의 단순화된 블록도를 도시한다.
도 11은 4x4 블록에서 필터링하기 위한 계수 위치들의 예시적인 그룹화를 도시한 도면이다.
도 12은 4x4 블록에서 필터링하기 위한 계수 위치들의 다른 예시적인 그룹화를 도시한 도면이다.
도 13은 인트라 코딩을 위해서 규정된 여러 가지 예측 각도(angles-of-prediction)를 도시한다.
유사한 성분들을 나타내기 위해서 다른 도면들에서 유사한 참조 번호들을 사용하기도 하였다.
이하의 설명에서, 일부 예시적인 실시예들은 비디오 코딩에 대한 H.264 표준을 참조하여 기술된다. 본원이 H.264로 제한되지 않고, HEVC와 같은 가능한 특징 표준들을 포함하는 다른 비디오 코딩/디코딩 표준들에 대해서도 적용될 수 있다는 것을 당업자는 이해할 수 있을 것이다. 또한, 본원이 비디오 코딩/디코딩으로 반드시 제한되는 것이 아님을 이해할 수 있을 것이고 그리고 오디오 코딩/디코딩, 이미지 코딩/디코딩, 또는 임의의 다른 데이터의 손실적인 코딩/디코딩에 대해서도 적용될 수 있다는 것을 이해할 수 있을 것이다. 본원은, 코딩되는/디코딩되는 데이터의 타입에 관계 없이, 예측 동작, 예측 동작에 후속하는 레지듀(a residual)의 스펙트럼적 변환, 그리고 변환된 레지듀의 양자화를 채용하는 임의의 손실적인 데이터 압축 프로세스에 대해서 넓게 적용될 수 있다.
이어지는 설명에서, 비디오 또는 이미지들을 참조할 때, 프레임, 슬라이스, 타일 및 직사각형 슬라이스 그룹이라는 용어들이 다소간 상호교환가능하게 사용될 수 있을 것이다. 당업자는, H.264 표준의 경우에, 프레임이 하나 또는 둘 이상의 슬라이스들을 포함할 수 있다는 것을 이해할 것이다 또한, 적용가능한 이미지 또는 비디오 코딩 표준의 특별한 요건들에 따라서, 특정 인코딩/디코딩 동작들이 프레임별로 실시되고, 일부는 슬라이스별로 실시되며, 일부는 타일별로 실시되며, 그리고 일부는 직사각형 슬라이스 그룹에 의해서 실시된다는 것을 이해할 것이다. 임의의 특별한 실시예에서, 적용가능한 이미지 또는 비디오 코딩 표준은 이하에서 설명되는 동작들이, 경우에 따라, 프레임들 및/또는 슬라이스들 및/또는 타일들 및/또는 직사각형 슬라이스 그룹들과 관련하여 실시되는지의 여부를 결정할 수 있을 것이다. 따라서, 당업자는, 본원 개시 내용에 비추어 볼 때, 주어진 실시예의 경우에, 본원에 기술된 특별한 동작들 또는 프로세스들 및 프레임들, 슬라이스들, 타일들, 직사각형 슬라이스 그룹들에 대한 특별한 언급이 프레임들, 슬라이스들, 타일들, 직사각형 슬라이스 그룹들, 또는 이들 중 일부 또는 전부에 적용될 수 있는지의 여부를 이해할 것이다. 또한, 이하의 설명으로부터 자명해지는 바와 같이, 이는 코딩 유닛들, 코딩 유닛들의 그룹들 등에 적용된다.
이하에서 설명되는 프로세스들 또는 방법들이 이미지들 및/또는 비디오들에 대해서 적용되는 범위까지, 이들은, 프레임, 슬라이스, 픽쳐들의 그룹(Group-of-Pictures; GOP), 또는 코딩 유닛이나 코딩 유닛들의 그룹과 같은 임의의 다른 것들을 기초로 하는 것과 같이, 비디오 또는 이미지의 일부에 대해서 적용될 수 있을 것이다. 본원에서 설명되는 프로세스들 또는 방법들이 음악 또는 보이스 데이터와 같은 오디오에 대해서 적용되는 범위까지, 이들은 데이터 포인트들, 예를 들어, 오디오 샘플의 그룹화 또는 시퀀스(sequence)에 대해서 적용될 수 있을 것이다. 픽쳐 및 프레임이라는 용어들은 상호교환가능하게 사용될 수 있다는 것을 주지하여야 한다.
본원의 설명은 변환 영역에서 사용하기 위한 필터들 및 필터 계수들을 참조한다. 이하의 설명으로부터, 변환 영역 필터가 스칼라들 또는 승수들의 세트이며, 그들 각각은 특별한 변환 영역 계수 위치에서 변환 영역 계수에 대해서 적용되도록 선택된다. 변환 영역 필터는, 이하에서 설명하는 바와 같이, 변환 영역에서의 재구축 또는 변환 영역에서의 예측에 대해서 적용될 수 있을 것이다. "필터 계수"라는 용어는 본원에서 "스칼라", "적응형(adaptive) 예측 스칼라", 또는 "변환 영역 필터(TDF)"라는 용어와 상호교환가능하게 사용될 수 있을 것이다.
비록 이하의 많은 예들이 변환 영역 필터링에 대한 필터 계수를 결정하는 것과 관련되지만, 그 대신에, 본원에 개시된 필터 계수 전송(transmission) 프로세스들이 픽셀 영역에서의 필터링에 대한 필터 계수들에 대해서 적용될 수 있다는 것을 이해할 것이다. 다시 말해서, 본원에 기술된 인코딩 및 디코딩 필터 정보에 대한 프로세스들이 변환 영역 필터 정보 또는 픽셀 영역 필터 정보에 대해서 적용될 수 있을 것이다.
이제, 비디오를 인코딩하기 위한 인코더(10)를 블록도 형태로 도시하는 도 1을 참조한다. 비디오를 디코딩하기 위한 디코더(50)의 블록도를 도시하는 도 2를 또한 참조한다. 본원에 기술된 인코더(10) 및 디코더(50)가, 하나 또는 둘 이상의 프로세싱 요소들 및 메모리를 포함하는, 특정 용도를 위한 또는 범용의 컴퓨팅 디바이스에서 각각 구현될 수 있다는 것을 이해할 것이다. 경우에 따라서, 인코더(10) 또는 디코더(50)에 의해서 실시되는 동작들이 특정 용도용 집적 회로에 의해서, 예를 들어, 범용 프로세서에 의해서 실행가능한 저장 프로그램 명령들에 의해서 구현될 수 있을 것이다. 디바이스는, 예를 들어, 기본적인 디바이스 기능들을 제어하기 위한 동작 시스템을 포함하는 부가적인 소프트웨어를 포함할 수 있을 것이다. 인코더(10) 또는 디코더(50)가 구현될 수 있는 디바이스들 및 플랫폼들의 범위는 이하의 설명과 관련하여 당업자들에 의해서 이해될 수 있을 것이다.
인코더(10)는 비디오 소스(source; 12)를 수신하고 그리고 인코딩된 비트스트림(14)을 생성한다. 디코더(50)는 인코딩된 비트스트림(14)을 수신하고 그리고 디코딩된 비디오 프레임(16)을 출력한다. 인코더(10) 및 디코더(50)는 많은 수의 비디오 압축 표준들에 따라서 동작되도록 구성될 수 있을 것이다. 예를 들어, 인코더(10) 및 디코더(50)가 H.264/AVC 을 준수할 수 있을 것이다. 다른 실시예들에서, 인코더(10) 및 디코더(50)는 HEVC와 같은 H.264/AVC 표준의 진보형들(evolutions)을 포함하는 다른 비디오 압축 표준들을 따를 수 있을 것이다.
인코더(10)는 공간 예측기(spatial predictor; 21), 코딩 모드 선택기(20), 변환 프로세서(22), 양자화기(24), 및 엔트로피 인코더(26)를 포함한다. 당업자들이 이해할 수 있는 바와 같이, 코딩 모드 선택기(20)는 비디오 소스를 위한 적절한 코딩 모드를 결정하며, 예를 들어 대상(subject) 프레임/슬라이스가 I, P, 또는 B 타입인지의 여부, 그리고 프레임/슬라이스 내의 특별한 코딩 유닛(예를 들어, 매크로블록들; macroblocks)이 인터 코딩되는지 또는 인트라 코딩되는지의 여부를 결정한다. 변환 프로세서(22)는 공간 영역 데이터에 대한 변환을 실시한다. 특히, 변환 프로세서(22)는 블록 기초형 변환을 적용하여 공간 영역 데이터를 스펙트럼적 성분들로 변환한다. 예를 들어, 많은 실시예들에서, 이산 코사인 변환(DCT)이 사용된다. 이산 사인 변환 또는 기타 등등과 같은 다른 변화들이 일부 경우에 이용될 수 있을 것이다. 매크로블록들의 크기에 따라서, 블록 기초형 변환이 매크로블록 또는 서브(sub) 블록 기초로 실시된다. H.264 표준에서, 예를 들어 통상적인 16x16 매크로블록은 16개의 4x4 변한 블록들을 포함하고 그리고 DCT 프로세스는 4x4 블록들 상에서 실시된다. 일부 경우들에서, 변환 블록들은 8x8 일 수 있고, 이는 매크로블록별로 4개의 변환 블록들이 존재한다는 것을 의미한다. 또 다른 경우들에서, 변환 블록들은 다른 크기들을 가질 수 있을 것이다. 일부 경우들에서, 16x16 매크로블록은 4x4 및 8x8 변환 블록들의 비중첩형(non-overlapping) 조합을 포함할 수 있을 것이다.
블록 기초 변환을 픽셀 데이터의 블록에 적용하는 것은, 변환 영역 변수들의 세트를 초래한다. 이러한 문장에서 "세트"는, 계수들이 계수 위치들을 가지는 순서화된(ordered) 세트이다. 일부 경우들에서, 변환 영역 계수들의 세트가 계수들의 "블록" 또는 매트릭스(matrix)로 간주될 수 있을 것이다. 본원의 설명에서, "변환 영역 계수들의 세트" 또는 "변환 영역 계수들의 블록"이라는 문구는 상호교환가능하게 사용되고 그리고 변환 영역 계수들의 순서화된 세트를 나타내기 위한 것을 의미한다.
변환 영역 계수들의 세트는 양자화기(24)에 의해서 양자화된다. 양자화된 계수들 및 연관된 정보가 이어서 엔트로피 인코더(26)에 의해서 인코딩된다.
인트라 코딩된 프레임들/슬라이스들(즉, 타입 I)은 다른 프레임들/슬라이스들을 참조하지 않고 인코딩된다. 다시 말해서, 이들은 일시적인(temporal) 예측을 채용하지 않는다. 그러나, 공간 예측기(21)에 의해서 도 1에 도시된 바와 같이, 인트라 코딩된 프레임들은 프레임/슬라이스 내의 공간 예측에 의존하지 않는다. 즉, 특별한 블록을 인코딩할 때 블록 내의 데이터가 해당 프레임/슬라이스에 대해서 이미 인코딩된 블록들 내에서 근접한 픽셀들의 데이터에 대해서 비교될 수 있을 것이다. 예측 알고리즘을 이용할 때, 블록의 소스 데이터가 레지듀 데이터로 변환될 수 있을 것이다. 이어서, 변환 프로세서(22)가 레지듀 데이터를 인코딩한다. 예를 들어, H.264는 4x4 변환 블록들에 대한 9개의 공간 예측 모드들을 규정한다. 일부 실시예들에서, 9개의 모드들의 각각이 블록을 프로세싱하기 위해서 독립적으로 이용될 수 있고, 그리고 이어서 레이트 왜곡 최적화를 이용하여 최적 모드를 선택한다.
H.264 표준은 또한 일시적인 예측의 장점을 취하기 위해서 모션(motion) 예측/보상을 이용하는 것을 규정한다. 따라서, 인코더(10)는 역 양자화기(de-quantizer; 28), 역 변환(inverse transform) 프로세서(30), 및 역블록킹(deblocking) 프로세서(32)를 포함하는 피드백 루프를 가진다. 이러한 요소들은 디코더(50)에 의해서 구현되는 디코딩 프로세서를 반영하여 프레임/슬라이스를 재생한다. 프레임 저장부(store)(34)는 재생된 프레임들을 저장하기 위해서 이용된다. 이러한 방식에서, 모션 예측은 디코더(50)에서 재구축된 프레임들이 되는 것을 기초로 하고 그리고 원래의 프레임들을 기초로 하지 않으며, 상기 원래의 프레임들은 인코딩/디코딩에 포함된 손실적인 압축으로 인해서 재구축되는 프레임들과 상이할 수 있을 것이다. 모션 예측기(36)는, 유사한 블록들을 식별하기 위한 목적을 위해서, 현재 프레임에 대한 비교를 위한 소스 프레임들/슬라이스들로서, 프레임 저장부(34) 내에 저장된 프레임들/슬라이스들을 이용한다. 따라서, 모션 예측이 적용되는 매크로블록들의 경우에, 변환 프로세서(22)가 인코딩하는 "소스 데이터"는 모션 예측 프로세스로부터 유래되는 레지듀 데이터가 된다. 예를 들어, 이는, 기준 프레임, 공간 변위, 또는 "모션 벡터"와 관련한 정보, 그리고 기준 블록과 현재 블록 사이의 차이들(존재하는 경우에 해당된다)을 나타내는 레지듀 픽셀 데이터를 포함할 수 있을 것이다. 기준 프레임 및/또는 모션 벡터와 관련한 정보는 변환 프로세서(22) 및/또는 양자화기(24)에 의해서 프로세싱되지 않을 수 있고, 그 대신에 양자화된 계수들과 함께 비트스트림의 일부로서 인코딩을 위한 엔트로피 인코더(26)로 공급될 수 있을 것이다.
당업자는 H.264 인코더들을 구현하기 위한 구체적인 내용들 및 가능한 변경들을 이해할 수 있을 것이다.
디코더(50)는 엔트로피 디코더(52), 역양자화기(dequantizer; 54), 역변환 프로세서(56), 공간 보상기(57), 및 역블록킹 프로세서(60)를 포함한다. 프레임 버퍼(58)는 모션 보상의 적용시에 모션 보상기(62)에 의해서 사용하기 위한 재구축된 프레임들을 공급한다. 공간 보상기(57)는 이전의 디코딩된 블록으로부터의 특별한 인트라 코딩된 블록에 대한 비디오 데이터를 회복하는 동작을 나타낸다.
비트스트림(14)이 수신되고 그리고 엔트로피 디코더(52)에 의해서 디코딩되어 양자화된 계수들을 회복한다. 부수적인(side) 정보가 또한 엔트로피 디코딩 프로세스 동안에 회복될 수 있을 것이고, 적용가능한 경우에, 그 일부가 모션 보상에서의 이용을 위해서 모션 보상 루프로 공급될 수 있을 것이다. 예를 들어, 엔트로피 디코더(52)가 인터 코딩된 매크로블록들에 대한 모션 벡터들 및/또는 기준 프레임 정보를 회복할 수 있을 것이다.
이어서, 양자화된 계수들이 양자화기(54)에 의해서 양자화되어 변환 영역 계수들을 생성하며, 이는 다시 역 변환 프로세서(56)에 의해서 역 변환되어 "비디오 데이터"를 재생성한다. 인트라 코딩된 매크로블록과 같은 일부 경우들에서, 재생성된 "비디오 데이터"가 프레임 내에서 이전에 디코딩된 블록에 대한 공간 보상에서 이용하기 위한 레지듀 데이터가 된다는 것을 이해할 수 있을 것이다. 공간 보상기(57)는 레지듀 데이터로부터 비디오 데이터를 생성하고 그리고 이전의 디코딩된 블록으로부터 픽셀 데이터를 생성한다. 인터 코딩된 매크로블록들과 같은 다른 경우들에서, 역 변환 프로세서(56)로부터의 재생성된 "비디오 데이터"는 다른 프레임으로부터의 기준 블록에 대한 모션 보상에서 이용하기 위한 레지듀 데이터이다. 공간 보상 및 모션 보상 모두가 여기에서 "예측 동작들"로서 지칭될 수 있을 것이다.
모션 보상기(62)는 특별한 인터 코딩된 매크로블록에 대해서 특화된(specified) 프레임 버퍼(58) 내에 기준 블록을 위치시킨다. 이는 인터 코딩된 매크로블록에 대해서 특화된 모션 벡터 및 기준 프레임 정보를 기초로 이루어진다. 이어서, 이는, 해당 매크로블록을 위한 재구축된 비디오 데이터에 도달하도록, 레지듀 데이터와 조합하기 위한 기준 블록 픽셀 데이터를 공급한다.
이어서, 역블록킹 프로세서(60)에 의해서 표시된 바와 같이, 역블록킹 프로세스가 재구축 프레임/슬라이스에 적용될 수 있을 것이다. 역블록킹 후에, 프레임/슬라이스가, 예를 들어, 디스플레이 장치 상에서의 디스플레이를 위해서, 디코딩된 비디오 프레임(16)으로서 출력된다. 컴퓨터, 셋톱 박스, DVD, 또는 블루레이 플레이어 및/또는 모바일 휴대용(handheld) 디바이스와 같은 비디오 플레이백 머신(playback machine)이 출력 디바이스 상에서의 디스플레이에 앞서서 메모리 내에서 디코딩된 프레임들을 버퍼링할 수 있다는 것을 이해할 것이다.
HEVC 준수(compliant) 인코더들 및 디코더들이 많은 이러한 동일한 또는 유사한 특징들을 가질 것임이 예상된다.
이하의 예시적인 실시예에 관한 설명에서, 이하의 심볼 규정들이 사용된다:
x = 픽셀들의 원래의(original) 프레임/블록
p = 픽셀들의 예측적인 블록
cx = x의 변환
cp = p의 변환
z = 픽셀 영역 레지듀 = x - p
cz = z의 변환 즉, 변환 영역 계수들
u = 양자화된 변환 영역 계수들 = Q(cz), 이때 Q(·)는 양자화 함수를 나타내고, 그리고 Q- 1(·)는 역 양자화 함수를 나타낸다. 예를 들어, 균일한 스칼라 양자화 함수를 위해서, 위치(i,j)에서 Q(cz)의 출력이,
Q(cz ,i,j) = 사인(cz)*플로어(abs(cz ,i,j)/qi ,j)에 의해서 주어지며,
이때, 사인(sign)(·)은 사인 함수를 나타내고, 플로어(floor)(·)는 플로어 함수를 나타내며, abs(·)는 절대 함수를 나타내며, 그리고 qi ,j 는 위치(i,j)에서의 양자화 단계 크기를 나타낸다.
Figure 112012095581498-pat00001
= 픽셀들의 재구축된 블록 = p + T-1(Q-1(u)).
픽셀들의 재구축된 블록에서의 왜곡은 픽셀들의 원래의 블록(x)과 디코더의 재구축(
Figure 112012095581498-pat00002
) 사이의 차이이다. 필터링은 종종 왜곡 감소를 위해서 재구축(
Figure 112012095581498-pat00003
)에 대해서 적용된다. 신호 프로세싱 관점으로부터, 이는 저주파 통과 필터링으로서 카테고리화될 수 있을 것이다. 일반적으로, 그러한 필터링은 픽셀 영역 내의 복잡한(convolution) 동작을 포함한다. 복잡한 동작들은 계산상으로(computationally) 부담이 된다는(demanding) 것을 이해할 수 있을 것이다. 인코더에서의 피드백 루프로 인해서, 이러한 계산상의 복잡성이 인코딩 및 디코딩 동작들 모두에 존재한다.
본원의 하나의 양태에 따라서, 양자화 왜곡이 픽셀 영역 대신에 변환 영역 내에서 필터링된다. 하나의(unitary) 성질을 가지는, DCT와 같은, 스펙트럼적인 변형을 가지는 것을 기초로, 픽셀들의 원래의 블록과 픽셀들의 재구축된 블록 사이의 픽셀 영역 내의 차이를 최소화하기 위해서 일반적으로 이루어지는 필터링은 픽셀들의 재구축된 블록을 생성하기 위해서 재구축이 역 변환되기에 앞서서 변환 영역 내에서 실시될 수 있을 것이다.
변환 영역에서, 양자화 왜곡이 다음과 같이 표현될 수 있을 것이다:
[수학식 1]
Figure 112012095581498-pat00004
스칼라 양자화가 사용되는 경우에,
Figure 112012095581498-pat00005
가 되고, 이때 * 는 벡터들/매트릭스들 사이의 엘리먼트-와이즈 곱(element-wise multiplication)을 나타낸다.
변환 동작, 예를 들어, DCT의 단일 성질로 인해서, 픽셀 영역 내의 품질 손실은 변환 영역 내의 왜곡과 같다. 다시 말해서:
[수학식 2]
Figure 112012095581498-pat00006
이때, T-1 은 역 변환 동작을 나타낸다.
픽셀 영역의 복잡성은 변환 영역에서의 스케일링(scaling)/곱과 같으며, 이는 변환 영역 내에서 구현되는 필터가 구현하기에 보다 더 계산적으로 효율적일 것임을 의미한다. 또한, u*q는 변환 영역 내에서 이미 이용가능하고, 그에 따라 계산적인 복잡성을 추가로 감소시킨다.
변환 영역 필터의 목표는 양자화 왜곡을 줄이는 것이다. 디코더에 대해서 그러한 필터를 적용하기 위해서, 인코더는 인코딩된 데이터의 비트스트림 내에서 필터 계수들을 전송할 것이다. 따라서, 인코더에서의 필터의 디자인은 레이트-왜곡의 관점으로부터 고려될 수 있을 것이다. N 블록들(x1, x2, ..., xN)에 대해서 희망하는 필터를 찾기 위한 레이트-왜곡 표현식은 다음과 같다:
[수학식 3a]
Figure 112012095581498-pat00007
수학식(3a)는 레이트-왜곡의 관점으로부터 최적 필터를 찾기 위한 라그랑주 코스트(cost) 함수를 반영한다. 제 1 항(term)은 왜곡을 나타낸다. 이러한 항에서의 왜곡은 샘플들의 변환된 원래의 블록과 필터링된 변환 영역 재구축 사이의 차이라는 것을 주지할 수 있을 것이다. 필터 계수를 송신하는 코스트는 레이트 함수(r(f))에 의해서 표시된다. λ는 라그랑주 승수이다. 대안적인 레이트 왜곡 표현식(이에 대한 자리 맞춤(justification)이 이하에 개진되어 있다)은 다음과 같다:
[수학식 3b]
Figure 112012095581498-pat00008
수학식(3a)의 심볼(f)은 필터를 나타내고; 보다 구체적으로, 변환 영역 재구축을 스케일링하기 위해서 사용된 필터 매트릭스에서의 필터 계수들의 블록 또는 세트를 나타낸다. 필터 계수들은 또한 예측에 적용될 수 있을 것이며, 이는 또한, (3b)에 표시된 바와 같이, 레이트 왜곡 코딩 성능 부스트(boost)를 유도할 수 있을 것이다. 본원에서, 필터 계수는 변환 영역 필터(TDF)로서 지칭될 수 있을 것이다. 수학식(3a) 및 (3b)는 필터 계수들을 선택하는데 있어서의 일부 기초를 제공한다. 양자화 벡터(q)가 스케일링 인자라는 것을 회상할 수 있을 것이다. 일부 실시예들에서, 양자화 벡터(q)가 블록/매트릭스 내의 각각의 계수 위치에 대한 벡터/매트릭스 특정(specifying) 양자화 값들일 수 있을 것이다. 예가 2010년 7월 6일자로 출원되고, 본원 출원인과 동일한 출원인이 소유하고 있으며, 발명의 명칭이 "Methods and Devices for Data Compression Using Adaptive Reconstruction Levels"라는 명칭의 미국 특허출원 제 12/830,548 호에 기재되어 있다. 각각의 계수 위치에 대한 양자화 스케일링 인자가 디코더로 시그널링된 그러한 상황에서, 수학식(3)이 다음과 같이 재구성될 수 있을 것이다:
[수학식 4]
Figure 112012095581498-pat00009
또한, 양자화 변환 영역 계수들(uk)을 계산하기 위한 양자화 동작이, 예측(pk)을 생성하는 예측 동작 후에 그리고, 그에 따라, 변화된 예측 블록(cpk) 후에 이루어진다는 것을 회상할 수 있을 것이다. 본원 발명자들은 또한, cpk의 일부 요소들이 czk의 요소와 음으로(negatively) 연관된다는 것을 발견하였다. 따라서, 수학식(4)은 다음과 같이 단순화될 수 있을 것이다:
[수학식 5]
Figure 112012095581498-pat00010
수학식(5)는 레지듀 에너지를 감소시키는 필터를 구현한다. 이러한 경우에 레지듀는 샘플들의 필터링된 예측적인 블록 및 샘플들의 원래의 블록(x) 사이의 차이이다.
수학식(3)과 수학식(5)는 변환 영역 필터(f)를 생성하기 위한 2개의 가능한 프로세스들을 유도한다. 수학식(3)에 따른 프로세스는 변환 영역 내의 재구축을 필터링하기 위한 필터를 초래한다. 수학식(5)에 따른 프로세스는 변환 영역에서의 예측을 필터링하기 위한 필터를 초래한다. 이들은 다시 이하와 같이 설명될 것이다.
만약, 필터 계수들이 충분히 드물게(infrequently) 계산되고 시그널링된다면, 수학식(3)의 레이트 측면이 무시될 수 있을 것이다. 이러한 단순화를 이용하여, 희망 필터를 찾기 위한 표현식이 다음과 같이 재설정될 수 있을 것이다:
[수학식 6]
Figure 112012095581498-pat00011
전술한 기술 내용은 변환 영역 내에서 예측 블록을 필터링하는데 있어서 이용하기 위한 필터를 탐색하는 것을 기초로 한다. 필터는 이전의 슬라이스의 통계치들 또는 현재 슬라이스의 통계치들을 기초로 디자인될 수 있을 것이다. 일부 경우들에서, 필터는 하나 초과의 슬라이스, 픽쳐, 프레임, GoP, 또는 기타 데이터 샘플들의 집합(collection)의 통계치들을 기초로 디자인될 수 있을 것이다. 여러 가지 타입들의 변환 유닛들 사이의 데이터 통계치들에서의 변동으로 인해서, 최적의 필터가 인자들의 수에 따라서 달라질 수 있다는 것에 대해서 주목하였다. 관련 인자들에는, 4x4, 8x8, 16x16, 32x32, 64x64, 등과 같은 변환 유닛 크기; 변환 유닛 타입, 예를 들어, DST 또는 DCT; 텍스쳐(texture) 타입, 예를 들어 루마 또는 크로마(luma or chroma); 그리고 코딩 모드, 예를 들어, 인터 코딩 또는 인트라 코딩이 포함된다. 또한, 데이터 통계치들은 모션 벡터들, 예측 모드들 등에 따라서 변화되거나 모션 벡터들, 예측 모드들 등에 의존할 수 있다. 따라서, 일부 실시예들에서, 이들 인자들 중 하나 또는 둘 이상의 다른 순열들(permutations)에 대해서 다른 필터들이 개발될 수 있을 것이다. 예를 들어, 4x4 DST 블록들, 4x4 DCT 블록들, 8x8 DCT 블록들, 16x16 DCT 블록들, 그리고 32x32 DCT 블록들에 대해서 독립적인 필터들이 개발될 수 있을 것이다. 그러한 필터들의 그룹들 또는 카테고리들의 각각에 대해서, 복수 필터들이 인트라 또는 인터 코딩 모드의 순열 그리고 루마 및 크로마 텍스쳐 타입들을 기초로 개발될 수 있을 것이다. 만약, 해당 그룹들 내에서 복수의 필터들이 모션 벡터들의 그룹들 및/또는 인트라 예측 모드들의 그룹들을 기초로 개발되었다면, 필터 디자인에서의 다른 추가적인 입자성(granularity)이 발견될 수 있을 것이다. 그러한 실시예들에서, 많은 수의 필터들이 개발될 수 있을 것이고 그리고 디코더로 통신될 수 있을 것이고, 이는 필터 디자인에서의 레이트 왜곡 계산의 레이트 측면이 무시될 수 있다는 것을 의미한다는 것을 이해할 수 있을 것이다.
인터 코딩된 블록들의 세트를 이용할 때, 변환 계수들이 모션 예측 모드, 모션 벡터 크기(magnitude), 모션 벡터 방향, 또는 이들의 임의의 조합을 기초로 그룹화될 수 있을 것이다.
블록들 내에서, 각각의 개별적인 계수 위치에 대해서 필터 계수들을 개발하기 보다, 일부 계수 위치들이 통계적인 유사성들을 기초로 그룹화될 수 있을 것이다. 동일한 그룹 내의 그러한 계수 위치들이 동일한 필터 계수를 공유할 것이다. 도 11을 참조할 수 있을 것이며, 그러한 도 11은 4x4 블록(700)을 필터링하기 위한 계수들의 그룹화의 하나의 예시적인 실시예를 도시한다. 이러한 예에서, 필터는 7개의 필터 계수들(블록(700) 내에서 숫자 0 내지 6으로 표시됨)을 포함한다. 계수 그룹들은 보다 두꺼운(heavier) 라인들에 의해서 표시되어 있으며, 그리고 각 위치에 대해서 적용가능한 필터 계수가 표시되어 있다. 도 12는 4x4 블록(702)을 필터링하기 위한 계수들의 그룹화의 다른 예시적인 실시예를 도시한다. 이러한 예에서, 필터는 4개의 필터 계수들을 포함한다. 공통 필터 계수를 이용하기 위해서 계수 위치들을 그룹화하는 것은 보다 큰 블록들에 적용될 수 있을 것이다. 계수들을 그룹화하기 위해서 이용되는 특정 패턴이 계수들의 통계적인 분석에 따라서 달라질 수 있을 것이다.
일부 경우들에서, 패턴은 도 11 또는 도 12에 도시된 패턴들과 유사하나, 보다 큰 블록 크기로 스케일을 확대하였다. 예를 들어, 패턴과 우측 엣지 및 좌측 엣지가 블록의 보다 큰 크기로 확장될 수 있을 것이다. 예로서, 그룹 번호 5에서 행(column) 0, 열들 4 내지 7 내의 필터 계수들을 포함함으로써, 도 11 에 도시된 4x4 패턴이 8x8 로 확장될 수 있을 것이다. 열 0, 행들 4~7 내의 필터 계수들이 그룹 4에 있다. 모든 레지듀 부가된 필터 계수들이 그룹 6에 있다.
다른 패턴들이 또한 이용될 수 있다는 것 그리고 필터 디자인의 계수 위치들을 그룹화하기 위한 적합한 패턴의 선택이 실험적인 데이터 통계치들을 기초로 할 수 있다는 것을 이해할 수 있을 것이다.
인트라 코딩을 이용할 때, 방향 예측 모드들의 특정된 그룹화들에 대해서 적용되는 필터들이 개발될 수 있을 것이다. 예를 들어, 현재의 HEVC 개발에서, 인트라 코딩된 블록들의 경우에 33 개의 방향적 예측 모드들 더하기(plus) 하나의 DC 예측이 있을 것임이 제한된다. 도 13은 HEVC에 대한 인트라 예측 각도 규정을 도시한다.
데이터가 예측 방향의 각도를 기초로 그룹화될 수 있을 것이다. 예를 들어, 이하의 인트라 코딩 모드 필터 타입들이 규정될 수 있을 것이다:
필터 타입 = 0: 예측 방향의 각도: 45 도- 67.5 도
필터 타입 = 1: 예측 방향의 각도: 67.5 도 - 112.5 도
필터 타입 = 2: 예측 방향의 각도: 112.5 도 - 157.5 도
필터 타입 = 3: 예측 방향의 각도: 157.5 도 - 202.5 도
필터 타입 = 4: 예측 방향의 각도: 202.5 도 - 225 도
필터 타입 = 5: DC 예측
예측 각도를 기초로 하는 다른 그룹화들이 또한 다른 실시예들에서 이용될 수 있을 것이다.
이제, 적응형 변환 영역 필터링을 가지는 인코더(100)의 단순화된 블록도를 도시하는 도 3을 참조한다. 인코더(100)는 샘플들/픽셀들의 예측적인 블록(p)을 선택 또는 생성하기 위한 예측 연산자(operator; 102)를 포함한다. 예측 연산자(102)는 샘플들/픽셀들의 원래의 블록(x)을 수신하고, 그리고 이전의 인코딩된 그리고 재구축된 프레임들이 저장되는 프레임 저장부(104)에 접속될 수 있을 것이다. 예측 연산자(102)는 일시적인 또는 공간 예측을 적용할 수 있을 것이다. 다시 말해서, 프레임 타입 및 코딩 모드 등에 따라서, 예측 연산자(102)가 인트라 공간 예측을 실행할 수 있을 것이고, 또는 인터 모션 평가(estimation)를 적용할 수 있을 것이다.
샘플들의 원래의 블록(x) 및 샘플들의 예측적인 블록(p)이 DCT와 같은 스펙트럼적 변환 연산자(106)로 입력된다. 스펙트럼적 변환 연산자(106)는 변환된 샘플들의 원래의 블록(cx) 및 변환된 샘플들의 예측적인 블록(cp)을 생성한다. 인코더(100)는 레지듀 계산기(108)를 포함하고, 그러한 계산기는 변환 영역 레지듀(cz)를 변환된 샘플들의 원래의 블록(cx)과 변환된 샘플들의 예측적인 블록(cp) 사이의 차이로서 탐색한다. 양자화기(110)는 양자화된 변환 영역 계수들(u)을 생성하기 위해서 변환 영역 레지듀(cz)를 양자화한다.
인코더(100)는 필터 발생기(112)를 더 포함한다. 필터 발생기(112)는 변환된 샘플들의 원래의 블록(cx), 변환된 샘플들의 예측적인 블록(cp), 양자화된 변환 영역 계수들(u), 및 양자화 매트릭스/벡터 또는 스케일링 인자(q)를 수신한다. 이러한 데이터로부터, 필터 발생기(112)는, 예를 들어, 수학식(3) 및 수학식(6)을 이용하여 필터 계수들(f)을 생성한다. (예를 들어, 크기, 텍스쳐, 코딩 모드 등의 순열들을 기초로) 변환 유닛들의 다른 카테고리들에 대해서 적용하기 위해서 복수의 필터들이 개발되는 실시예에서, 필터 발생기(112)가 샘플들의 원래의 블록(cx)의 이러한 특성들을 기초로 필터(필터 계수들(f))를 카테고리화한다는 것을 이해할 것이다.
필터 계수들(f)은 인코더로부터의 비트스트림 출력에 포함된다. 많은 실시예들에서, 필터 계수들이 엔트로피 인코딩될 수 있고 그리고 인코딩된 계수들이 비트스트림으로 삽입된다. 또 다른 실시예들에서, 필터 계수들이 엔트로피 인코딩에 앞서서 양자화될 수 있을 것이다. 후자의 상황에서, 디코더가 양자화된 계수들을 디코딩할 필요가 있을 것이고 이어서 그들을 역양자화하여 필터 계수들의 재구축을 실현할 수 있다는 것을 이해할 수 있을 것이다. 또한, 양자화가 왜곡을 도입할 수 있다는 것 그리고 필터 계수들에 대한 양자화 단계 크기를 선택하기 위해서 레이트 왜곡 최적화 프로세스가 양자화 프로세스에서 이용될 수 있다는 것을 이해할 수 있을 것이다.
필터 계수들의 엔트로피 인코딩은 임의의 적합한 인코딩 계획에 의존할 수 있을 것이다. 예들은 가변적인 길이 코딩(VLC), 산술적 코딩, 또는 가변 길이 대 가변 길이(V2V) 코딩을 포함한다.
필터 계수들의 엔트로피 인코팅은, 용도들에 따라서, 슬라이스를 위한 스트림의 시작에, 예를 들어, 슬라이스 헤더(header)에, 또는 슬라이스의 마지막에 포함될 수 있을 것이다. 그러한 것이 슬라이스 헤더로 전송될 때, 계수들은 일반적으로 일부의 이전에 코딩된 슬라이스들을 기초로 계산된다. 이러한 경우에, 필터링 프로세스가 모드 선택 동안 적용될 수 있을 것이다. 이러한 것의 하나의 단점은, 이전에 코딩된 슬라이스들과 현재의 슬라이스 사이에 데이터 불일치가 있을 수 있다는 것이다. 계수들이 슬라이스의 마지막에서 전송될 때, 그 계수들은 현재의 슬라이스를 기초로 계산될 수 있다. 그러나, 복수 통과 코딩이 허용되지 않는다면, 필터 프로세스는 모드 선택 프로세스에 포함될 수 없다.
적응형 변환 영역 필터링을 가지는 데이터 압축에 대한 프로세스(200)의 하나의 예시적인 실시예를 흐름도 형태로 도시하는 도 4를 참조하여, 하나의 예시적인 실행에 대해서 이제 설명한다. 프로세스(200)는 샘플들/픽셀들의 원래의 블록(x)을 수신하는 동작(202)에서 시작된다. 이어서, 예측 동작이 사용되어 동작(204)에서 샘플들의 예측적인 블록(p)을 탐색한다.
동작(206)에서, 인코더는 변환 영역 원래 계수(original)(cx), 변환 영역 예측 계수(cp), 그리고 변환 영역 레지듀 계수(cz)를 계산한다. 앞서서 주지한 바와 같이, 레지듀는 픽셀 영역 내에서 발견되고 이어서 변환될 수 있으며, 또는 cx 와 cp 사이의 차이로서 계산될 수 있을 것이다.
양자화된 변환 영역 계수들(u)이 동작(208)에서 발생된다.
동작(210)에서, 인코더는, (필터들이 코딩 유닛, 프레임, 픽쳐, 또는 GOP 기초로 이루어졌는지의 여부에 의존하여) 코딩 유닛 및/또는 프레임 및/또는 픽쳐 및/또는 픽쳐들의 그룹의 마지막에 도달하였는지의 여부를 평가한다. 만약 그렇지 않다면, 동작(202)으로 복귀되어 원래 샘플들의 다음 블록을 인코딩한다. 만약 그렇다면, 동작(212)에서, 인코더는 코딩 유닛/프레임/픽쳐/등에 대한 필터 계수들을 계산한다. 인코더가 미리 규정된 필터 타입들에 대해서 특정된 필터들을 생성하도록 구성된다면, 동작(212)은 복수 필터들을 계산하는 것을 포함할 수 있을 것이다. 계수 위치들이 지수들(indices)(i 및 j)을 이용하여 표시된다. 각각의 필터 계수들(fij)은 블록들의 수(n)에 걸쳐 취해진 합들의 비율(ratio of sums)로서 계산될 수 있을 것이며, 여기에서 n은, 경우에 따라서, 코딩 유닛/프레임/픽쳐 등에서의 필터 타입과 연관된 블록의 수이다. 일 실시예에서, 분자(numberator)는 변환 영역의 원래의 블록(cx) 내의 동일한 ij번째(ijth) 계수 위치로부터의 값들의 합이다. 분모(denominator)는 변환 영역 재구축의 동일한 ij번째 계수 위치로부터의 값들의 합일 수 있을 것이고, 이는 Q-1(u)로 주어진 변환 영역 예측적 블록(cp) 더하기 재구축된 변환 영역 레지듀가 된다. 필터 계수는, 그에 따라, 이하의 수학식에 따라 계산될 수 있을 것이다:
[수학식 7]
Figure 112012095581498-pat00012
대안적인 실시예에서, 이하의 수학이 이용될 수 있을 것이다. 이하의 수학식은 여전히 수학식(4)에 대한 개산(槪算) 방식이며, 그리고 라그랑주 승수가 영(zero)이라는 가정을 기초로 하며, 이는 r(f)가 작다면 용인될 수 있을 것이다:
[수학식 8]
Figure 112012095581498-pat00013
영으로 나누게 되는 문제를 피하기 위해서 분모가 영으로 합산되는 경우에, 인코더는 디폴트 필터 계수를 이용하도록 구성될 수 있을 것이다. 디폴트 필터 계수는, 일부 실시예들에서, 영이 될 수 있을 것이다. 또한, 필터 계수들이 모든 계수 위치들(ij)에 대해서 반드시 계산될 필요가 없고; 일부 경우들에서, 계산된 필터 계수들이 미리 결정된 수의 계수 위치들에 대한 계수들만을 포함할 것이며, 그리고 레지듀 위치들은 디폴트 필터 계수를 이용하고, 예를 들어 1로 셋팅된다는 것을 이해할 것이다. 예로서, 4x4 블록의 경우에, 필터 계수들은 스캔 순서로 단지 처음 n 계수 위치들에 대해서 계산될 수 있을 것이고, 이때 n은 16 미만의 임의의 적합한 정수가 되도록 선택될 수 있을 것이다. 레지듀 위치들은 미리 선택된 필터 값 또는 의미없는(null) 필터 값이 될 수 있을 것이다. 미리 선택된 또는 의미없는 필터 값들이 비트스트림으로 전송되지 않는다는 것을 이해할 것이다.
비록 용이한 설명을 위해서 코딩 유닛/프레임/픽쳐/등의 마지막에 도달한 이후에 동작(212)이 발생되는 것으로 묘사되어 있지만, 인코더는 분자 및 분모의 합들을 구축하기 위해서 동작(202) 내지 동작(210)의 인코딩 프로세스를 통해서 값들을 축적할 수 있다는 것을 이해할 수 있을 것이며, 이는 동작(212)이 동작(202) 내지 동작(210)의 루프화된 프로세스에 삽입된다는 것을 의미한다. 또한, 인코더는 값들을 카테고리화할 수 있을 것이고 그리고 그러한 특성들을 가지는 샘플들의 블록을 프로세싱하는지의 여부에 따라서 여러 가지 필터 타입들에 대한 독립적인 분자/분모 값들을 축적할 수 있을 것이다.
동작(212)에서, 인코더는 해당 타입에 대한 필터 디자이닝을 정당화(justify)하기 위해서 특별한 필터 타입에 대한 충분한 수의 값들이 축적되었는지의 여부를 평가할 수 있을 것이다. 예를 들어, 인코더는 프레임/픽쳐가 대부분 4x4 DCT 인터 코딩된 그리고 8x8 DCT 인터 코딩된 블록들을 포함하여 이러한 필터 타입들에 대한 필터들의 개발을 정당화하는 한편, 단지 하나의 또는 소수의(a few) 16x16 DCT 인터 코딩된 블록들만을 가진다는 것을 탐색할 수 있을 것이다. 미리 셋팅된 문턱값(threshold) 값들을 이용하여, 인코더는 어떠한 필터 타입이 필터를 생성할 것인지에 대해서 결정할 수 있을 것이다. 인코더는 또한 레이트 왜곡 분석을 이용하여 특별한 필터 타입에 대한 필터를 생성하는지의 여부를 결정할 수 있을 것이다.
동작(214)에서, 인코더는, 엔트로피 인코딩 계획을 이용하여, 발생된 양자화된 변환 영역 계수들(u) 및 필터 계수들(f)을 엔트로피 인코딩하여 인코딩된 데이터의 출력 비트스트림을 생성한다. 복수의 필터들의 경우에, 또한 어떠한 필터들이 비트스트림에서 인코딩되는지를 디코더로 시그널링한다. 다른 데이터가 또한 모션 벡터들, 코딩 모드 지수들, 양자화 스케일링 메트릭들(metrices) 등과 같은 특정 실시예들에서의 비트스트림에서 엔트로피 인코딩된다는 것을 이해할 수 있을 것이다. 앞서서 주지한 바와 같이, 필터 계수들의 코딩은 VLC, V2V 또는 계산적인 코딩을 포함하는 임의의 적합한 엔트로피 인코딩을 이용할 수 있을 것이다. 전술한 바와 같이, 필터 계수들은, 일부 실시예들에서, 인코딩에 앞서서 양자화될 수 있을 것이다. 일부 경우들에서, 필터 계수들 자체를 인코딩하는 대신에, 예측 및 레지듀가 인코딩된다. 예를 들어, 예측이 바로 앞의(immediately preceding) 필터 계수들을 기초로 할 수 있으며, 레지듀는 이들 계수들 및 현재 계산된 필터 계수들 사이의 차이이다. 일부 경우들에서, 예측 동작은 현재의 계산된 필터 계수들과 최적으로 매칭되는 필터 계수들의 미리 결정된 또는 앞서서 계산된 세트를 인덱싱하는 것을 포함할 수 있으며, 레지듀는 인덱싱된 계수들 및 현재 계수들 사이의 차이이다. 보다 일반적으로, 예측은 소정 함수(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)을 탐색한다:
[수학식 9]
Figure 112012095581498-pat00014
이제, 적응형 변환 영역 필터링을 이용한 데이터 압축을 위한 프로세스(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번째 계수 위치로부터의 값들의 합일 수 있을 것이다. 이러한 계산이 필터 계수들을 결정하는 부분으로서 재구축된 레지듀들을 포함하지 않는다는 것을 주목하여야 한다. 그에 따라, 필터 계수들은 이하의 수학식에 따라서 계산될 수 있을 것이다:
[수학식 10]
Figure 112012095581498-pat00015
계수들을 탐색하기 위한 대안적인 수학식이 아래와 같이 구성된다:
[수학식 11]
Figure 112012095581498-pat00016
영으로 나누게 되는 문제를 피하기 위해서, 분모가 영으로 합산되는 경우에, 인코더는 디폴트 필터 계수를 이용하도록 구성될 수 있을 것이다. 일부 실시예들에서, 디폴트 필터 계수는 영이 될 수 있을 것이다.
필터 계수들(f)이 코딩 유닛/프레임에 대해서 결정된 후에, 동작(410)에서 변환 영역 레지듀가 결정된다. 특히 인코더는, 예를 들어, 수학식(8)을 이용하여, 양자화된 변환 영역 계수들(u)을 계산한다.
동작(412)에서, 양자화 변환 영역 계수들(u), 필터 계수들(f), 및 기타 데이터가 이어서 엔트로피 인코딩되어 인코딩 데이터의 비트스트림을 생성한다.
전술한 예들에 대한 상세한 설명으로부터, 필터(f)의 결정 및 적용이 프레임을 기초로, 코딩 유닛을 기초로, 또는 픽쳐, 픽쳐들의 그룹, 또는 슬라이스와 같은 임의의 다른 블록들의 집합을 기초로 할 수 있을 것이다.
디코더가 디코딩을 가능한 한 빨리 시작할 수 있게 하기 위해서, 인코더가 인코딩된 비트스트림을 출력하는 것을 하나의 프레임(또는, 경우에 따라, 코딩 유닛 등)만큼 지연시킬 수 있으며, 그에 따라 필터 계수들(f)이 프레임/코딩 유닛에 대한 인코딩된 데이터의 시작시에 특정될 수 있을 것이다.
필터들의 전송
하나의 예시적인 구현예에서, 필터들이 슬라이스 헤더 또는 다른 헤더 내에서 인코더로부터 디코더로 전송 또는 통신될 수 있을 것이다. 헤더는 어느 필터 타입들이 비트스트림 내에서 인코딩되지를 신호 전달하는 플래그들의 세트를 포함할 수 있을 것이다. 플래그들의 순서(ordering)가 비디오에 대한 부가 정보에서 인코더에 의해서 디코더로 특정될 수 있거나 또는 미리 규정될 수 있을 것이다. 플래그들 이후에, 여러 가지 필터들에 대한 필터 계수들이 비트스트림에서 인코딩된다. 필터 계수들이 변환 영역 필터들 또는 픽셀 영역 필터들을 특정할 수 있을 것이다. 이하의 예들의 일부가 특히 변환 영역 필터링을 언급하나, 그러한 예들의 일부는 다른 실시예들에서 픽셀 영역 필터링을 위한 필터 데이터 전송에 적용될 수 있을 것이다.
하나의 예시적인 실시예에서, TDF[qP][DataType][i]은 주어진 qP에 대한 필터 계수, 주어진 DataType(데이터타입), 및 주파수 그룹 지수(i)를 나타낸다. 주파수 그룹 지수(i)는, 예를 들어, 4x4 블록들에 대해서 도 11 및 12에 도시한 바와 같이, 계수 위치들의 그룹을 지칭한다. TDF[qP][DataType][i]은 7 비트 계산적 정밀도로 표현될 수 있을 것이다. 픽셀 영역의 예에서, 그룹 지수(i)는 블록 내의 픽셀 위치에 의한 것과 같은 다른 그룹화를 지칭할 수 있을 것이다.
TDF[qP][DataType][i]를 전송하기 위한 예시적인 프로세스는 다음과 같다:
TDF[qP][DataType][i]은 [64, 191](플로팅 지점 표시에서(floating-point representation)[0.5, 1.5]) 이내로 클립핑(clipped)된다. TDF[qP][DataType][i]이 128의 일정한 정밀도 값으로 예측된다. 이어서, 예측 오류는 TDFd[qP][DataType][i] = TDF[qP][DataType][i] - 128로서 규정되고, 이는 [-64, 63]의 범위 이내이다. 실험으로부터, TDF[qP][DataType][i]가 일반적으로 1에 근접하고 그리고 그에 따라 TDFd[qP][DataType][i]의 경우에 0에 근접한다는 것을 확인하였다. TDFd[qP][DataType][i]은 직접적으로 엔트로피 코딩되고 그리고 비트스트림 내의 슬라이스 헤더의 일부로서 전송될 수 있을 것이다. TDFd 인코딩을 위한 엔트로피 코딩 계획들의 예들은 일정 길이 코드, 지수들의 가능한 분배를 기초로 하는 골롬 라이스 코딩(Golomb-Rice) 코드, 그리고 지수들의 가능한 분배를 기초로 하여 디자인된 허프만 코드(Huffman code)를 포함한다.
비트스트림에 대한 하나의 예시적인 문법적 오류(syntax error)가 필터 계수들을 획득하기 위해서 디코더에서 실행되는 함수 TDF_param() 에 대한 이하의 의사(pseudo) 코드에서 설명된다.
TDF_param() { 기술자
( Descriptor )
TDF _ slice _ flag u(1)
If(TDF_slice_flag)
{
for(i=0; i <=NUM_TDF_DATA_TYPES; i++) u(1)
{
TDF _ data _ type _ flag u(1)
read_TDF_data(i)
}
}
}
read_TDF_data (TDF_data_type_id){
for(i=0; i<=6; i++){
TDFd[slice_qp][ TDF_data_type_id][i] se(v)
}
}
상기 구문(syntex)에서, se(v)는 사인화된 정수(signed integer) Exp-Golumb 코드이다. 값 NUM_TDF_DATA_TYPES는 비트스트림으로부터 읽혀지는 예측 필터 타입의 전체 수 즉, 필터 타입 플래그들(TDF_data_type_flag)의 전체 수를 특정한다.
다른 예시적인 실시예에서, 필터 계수들은 이하의 계획을 이용하여 인코딩되고 디코딩될 수 있을 것이다.
필터 계수들은 먼저 TDFp[qP][DataType][i]로서 예측된다. 예측 오류는 TDFd[qP][DataType][i] = TDF[qP][DataType][i] - TDFp[qP][DataType][i]에 의해서 주어진다. 예측 오류는 양자화: TDF_delta_idx[qP][DataType][i] = Q(TDFd[qP][DataType][i])를 통해서 지수 값으로 변환될 수 있을 것이다. 구문 요소 TDF_delta_idx[qP][DataType][i]는 상응하는 양자화 지수를 특정하고, 이는 엔트로피 코딩되고 그리고 비트스트림으로 전송된다. Q(·)는 정방향(forward) 양자화 함수이다.
디코더에서, TDF 는 다음과 같이 상응하여 수신된 TDF_delta_idx로부터 재구축된다: TDF'qP][DataType][i] = invQ(TDF_delta_idx[qP][DataType][i]) + TDFp[qP][DataType][i], 이때 TDF'는 TDF 매개 변수의 재구축을 나타내고, 그리고invQ(·) 역 양자화 함수를 나타낸다.
TDFp는 많은 수의 가능한 방식들에서 발견될 수 있을 것이다. 그 중 하나는 일정한 디폴트 예측 값을 이용하는 것이다. 예를 들어, TDFp[qP][DataType][i] = 128가 되도록 디폴트 예측 값이 선택될 수 있을 것이다. 양자화 매개 변수, 데이터 타입, 지수, 슬라이스의 임시적인 층 등을 기초로, 다른 디폴트 예측 값들이 이용될 수 있다는 것을 주지하여야 할 것이다. 다른 가능성으로서, 이전에 코딩된 TDF 값들에 대한 예측을 기초로 할 수 있을 것이다. 예를 들어, 하나의 주파수 위치에 대한 필터 계수의 예측이 이웃하는 주파수 위치들의 재구축된 필터 계수들을 기초로 한다.
또한 TDFd의 양자화가 수많은 방식들로 구현될 수 있을 것이다. 예를 들어, 하나의 경우에, 균일한 양자화가 이용될 수 있을 것이다. 균일한 양자화에서, 주어진 양자화 단계 크기(q), 예측 오류 TDFd의 정방향 및 역방향 양자화가 이하에 의해서 주어진다:
정방향 양자화: TDF_delta_idx = Q(TDFd) = sign(TDFd)·round (abs(TDFd)/q + f ), 이때 1>f>0 는 라운딩 오프셋(rounding offset)이다
역방향 양자화: TDFd'= invQ(TDF_delta_idx) = TDF_delta_idx·q
불균일 양자화기들이 또한 그 통계치를 기초로 예측 오류 TDFd를 양자화하도록 디자인될 수 있을 것이다.
비트스트림에 대한 다른 예시적인 구문이, 양자화된 예측 오류의 인코딩을 기초로 필터 계수들을 획득하기 위해서 디코더에서 구현되는 함수 TDF_param()에 대한 이하의 의사 코드에서 설명된다:
TDF_param() { 설명자
TDF _ slice _ flag u(1)
If(TDF_slice_flag)
{
for(i=0; i <=NUM_TDF_DATA_TYPES; i++) u(1)
{
TDF _ data _ type _ flag u(1)
read_TDF_data(i)
}
}
}
read_TDF_data (TDF_data_type_id){
for(i=0; i<=6; i++){
TDF _ delta _ idx[slice_qp][ TDF_data_type_id][i] vlc(v)
}
}
이제, 변환 영역 필터링을 이용하여 데이터의 인코딩된 비트스트림을 디코딩하기 위한 프로세스(500)를 흐름도 형태로 도시한 도 7을 참조한다. 프로세스(500)는 동작(502)에서 비트스트림을 수신하고 그리고 동작(504)에서 비트스트림을 엔트로피 디코딩하여, 디코더가 예측(예를 들어, 모션 벡터(들) 및 기준 시간 지수들)을 결정할 수 있도록 하는 데이터와 같은, 양자화 변환 영역 계수들(u), 필터 계수들(f), 및 기타 데이터를 회복한다. 비트스트림은 전술한 구문들 중 하나를 기초로 할 수 있을 것이다. 비트스트림의 엔트로피 디코딩은 어떠한 필터 타입이 존재하는지를 나타내는 플래그들을 판독하는 것, 그리고 이어서, 플래그 값들을 기초로, 존재하는 각각의 필터 타입에 대해서 필터 계수들을 엔트로피 디코딩하는 것을 포함한다.
동작(506) 중에, 디코더는, 변환 영역 예측 블록 더하기 양자화된 변환 영역 레지듀로서 변환 영역 재구축을 계산함으로써, 필터링된 변환 영역 재구축 즉,
Figure 112012095581498-pat00017
을 계산하고, 이어서 필터(f)를 적용한다. 계산은 다음과 같이 표현될 수 있다:
[수학식 12]
Figure 112012095581498-pat00018
동작(506)은 디코딩된 예측 데이터를 기초로 샘플들의 예측적인 블록을 식별 또는 생성하는 디코더를 포함할 수 있다는 것을 이해할 수 있을 것이다. 예를 들어, 디코더는 모션 벡터 정보를 기초로 기준 프레임으로부터 기준 블록을 식별할 수 있을 것이다. 동작(506)은 변환 영역 예측 블록(cp)을 획득하기 위해서 샘플들의 예측적인 블록을 스펙트럼적으로 변환하는 것을 더 포함할 수 있을 것이다. 이어서, 변환 영역 재구축형 블록을 구현하도록 수학식(12)이 이용될 수 있을 것이다.
이어서, 동작(508)에서, 디코더가 변환 영역 재구축을 역 변환하여 재구축된 픽셀 영역 블록
Figure 112012095581498-pat00019
을 생성한다.
이제, 프로세스(600)를 흐름도 형태로 도시하는 도 8을 참조하여 다른 예시적인 디코딩 프로세스(600)를 설명한다. 도 8의 프로세스(600)는, 도 5 및 6과 관련하여 전술한 바와 같이, 인코더에서 필터링된 예측으로부터 레지듀가 계산되는 실시예들에 적용될 수 있다. 프로세스(600)는 또한, 도 3 및 4와 같이, 그러나 인코더가 양자화 단계 크기들을 기초로 계수 위치를 특정하는 양자화 매트릭스(q)를 전송하는, 레지듀가 필터링되지 않은 예측으로부터 계산되는 경우들에 대해서도 적용될 수 있을 것이다. 이러한 경우에, 필터 매트릭스(f)에 의해서 표시되는 스케일링이 양자화 매트릭스(q) 내로 포함될 수 있을 것이고, 이는 디코더에서 재구축된 변환 영역 레지듀들에 대해서 적용될 필요가 없다는 것을 의미한다.
동작(602 및 604)에서, 디코더는 비트스트림을 수신하고 그리고 엔트로피는 그 비트스트림을 디코딩하여 양자화된 변환 영역 계수들(u), 양자화 단계 크기(또는, 일부 실시예들에서, 양자화 벡터 또는 매트릭스(q)), 필터 계수들(f), 및 예측 데이터(예를 들어, 모션 벡터(들), 등)를 회복한다. 동작(606)에서, 디코더는, 필터링된 변환 영역 예측 블록 더하기 양자화된 변환 영역 레지듀의 합을 계산함으로써, 필터링된 변환 영역 재구축 즉,
Figure 112012095581498-pat00020
을 계산한다. 그러한 계산은 다음과 같이 표현될 수 있다:
[수학식 13]
Figure 112012095581498-pat00021
동작(506)과 관련하여 전술한 바와 같이, 동작(606)은, 변환 영역 예측 블록(cp)을 획득하기 위해서 샘플들의 예측적인 블록을 생성 또는 식별하고 그리고 샘플들의 예측적인 블록을 스펙트럼적으로 변환하는 디코더를 포함할 수 있을 것이다.
일 실시예에서, 수학식(12) 또는 수학식(13)의 필터 또는 TDF는, 예를 들어, 그룹 내의 계수들의 각각을 선형적으로 스케일링하기 위해서, 변환 계수들의 그룹에 적용될 수 있는 단일 스칼라를 포함할 수 있을 것이다. 변환 크기들, 변환 타입들, 주파수 위치들, 예측 모드들, 및 데이터 텍스쳐들과 같은 여러 가지 코딩 매개 변수들을 기초로 계수들의 그룹이 형성될 수 있을 것이다.
이어서, 디코더는 재구축된 픽셀의 블록
Figure 112012095581498-pat00022
을 획득하기 위해서 필터링된 변환 영역 재구축을 역 변환한다.
비록 전술되고 도 8 및 9에 도시된 프로세스들이 변환 영역 필터 데이터의 전송 및 이용과 관련되지만, 유사한 프로세스들을 이용하여 픽셀 영역 필터 데이터를 전송하고 이용할 수 있다는 것을 이해할 수 있을 것이다. 예를 들어, 디코더는 지수들(u), 필터 계수들(f), 및 예측 데이터를 획득하기 위해서 비트스트림을 수신하고 디코딩할 수 있을 것이다. 이어서, 디코더는 지수들을 역양자화하고 그리고 역양자화된 변환 계수들을 역 변환함으로써, 픽셀 영역 레지듀 블록들을 재구축할 수 있을 것이다. 픽셀 영역에서, 이어서, 디코더는 필터 계수들(f)에 의해서 특정된 필터를 이용하여 예측 블록들을 필터링할 수 있을 것이고, 또는 레지듀 블록을 예측된 블록과 조합함으로써 픽셀 데이터를 재구축하고 이어서 결과적인 재구축된 픽셀 블록을 필터링할 수 있을 것이다. 어느 경우에서든, 필터 계수들(f)이, 전술한 바와 같은, 지수들, 예측들, 예측 오류, 양자화, 또는 이들의 조합을 이용하여 비트스트림에서 특정될 수 있다는 것을 이해할 것이다.
이제, 인코더(900)의 예시적인 실시예의 단순화된 블록도를 도시하는 도 9를 참조한다. 인코더(900)는 프로세서(902), 메모리(904), 및 인코딩 애플리케이션(application; 906)을 포함한다. 인코딩 애플리케이션(906)은 메모리(904) 내에 저장되고 그리고 본원에서 설명된 것과 같은 단계들 또는 동작들을 실시하기 위해서 프로세서(902)를 구성하기 위한 명령들을 포함하는 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있을 것이다. 예를 들어, 인코딩 애플리케이션(906)은 인코딩하고 그리고 본원에서 기술된 프로세스들에 따라서 인코딩된 비트스트림들을 출력할 수 있을 것이다. 입력 데이터 지점들은 손실적인 데이터 압축 계획을 거치게 될 오디오, 이미지들, 비디오, 또는 다른 데이터와 관련될 수 있을 것이다. 인코딩 애플리케이션(906)은 프레임, 코딩 유닛, 또는 다른 블록들의 집합에 대한 필터 계수들을 결정하도록 구성된 필터 발생 모듈(908)을 포함할 수 있을 것이다. 인코딩 애플리케이션(906)은 비트스트림의 일부로서 필터 계수들(f) 및 기타 데이터를 엔트로피 인코딩하도록 구성된 엔트로피 인코더를 포함할 수 있을 것이다. 인코딩 애플리케이션(906)이, 컴팩트 디스크, 플래시 메모리 디바이스, 랜덤 액세스 메모리, 하드 드라이브 등과 같은 컴퓨터 판독가능 매체에 저장될 수 있다는 것을 이해할 수 있을 것이다.
이제, 디코더(1000)의 예시적인 실시예의 단순화된 블록도를 도시하는 도 10을 또한 참조한다. 디코더(1000)는 프로세서(1002), 메모리(1004), 및 디코딩 애플리케이션(1006)을 포함한다. 디코딩 애플리케이션(1006)은, 본원에 기술된 바와 같은 단계들 또는 동작들을 실행하기 위해서 프로세서(1002)를 구성하기 위한 명령어들을 포함하고 메모리(1004) 내에 저장된 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있을 것이다. 디코딩 애플리케이션(1006)은 필터 계수들(f)을 획득하도록 그리고 필터링된 변환 영역 재구축을 계산하기 위해서 그 필터 계수들을 이용하도록 구성된 엔트로피 디코더(1008) 및 재구축 모듈(1010)을 포함할 수 있을 것이며, 상기 디코딩 애플리케이션(1006)은 재구축된 픽셀들의 블록을 생성하기 위해서 역 변환하도록 구성된다. 디코딩 애플리케이션(1006)이 컴팩트 디스크, 플래시 메모리 디바이스, 랜덤 액세스 메모리, 하드 드라이브 등과 같은 컴퓨터 판독가능 매체에 저장될 수 있다는 것을 이해할 수 있을 것이다.
본원에 따른 디코더 및/또는 인코더가, 서버들, 적절하게 프로그래밍된 범용 컴퓨터들, 오디오/비디오 인코딩 및 재생 디바이스들, 셋탑 텔레비전 박스들, 텔레비전 방송 장비, 및 모바일 디바이스들을 포함하는(그러나, 이러한 것으로 제한되는 것은 아니다) 많은 수의 컴퓨팅 디바이스들로 구현될 수 있다는 것을 이해할 수 있을 것이다. 디코더 또는 인코더가 본원에 기술된 함수들을 실행하기 위한 프로세서를 구성하기 위한 명령어들을 포함하는 소프트웨어에 의해서 구현될 수 있을 것이다. 소프트웨어 명령들은, CDs, RAM, ROM, 플래시 메모리 등을 포함하는 임의의 적합한 컴퓨터-판독가능 메모리에 저장될 수 있을 것이다.
인코더를 구성하기 위한 전술한 방법/프로세스를 구현하는, 본원에서 설명된 인코더 및 모듈, 루틴, 프로세스, 스레드(thread), 또는 다른 소프트웨어 성분이 표준 컴퓨터 프로그래밍 기술들 및 언어들을 이용하여 실현될 수 있다는 것을 이해할 수 있을 것이다. 본원은 특별한 프로세서, 컴퓨터 언어들, 컴퓨터 프로그래밍 변환들, 데이터 구조들, 다른 그러한 상세한 구현예들로 제한되지 않는다. 당업자는 설명된 프로세스들이 휘발성 또는 비 휘발성 메모리에 저장된 컴퓨터 실행가능 코드의 일부로서, 주문형 집적 칩(ASIC)의 일부로서, 등등으로서 구현될 수 있다는 것을 이해할 수 있을 것이다.
설명된 실시예들의 특정 변형들 및 변경들이 이루어질 수 있다. 그에 따라, 전술한 실시예들은 예시적인 것으로 그리고 제한적이지 않은 것으로 간주된다.

Claims (16)

  1. 이미지에 대한 샘플들의 블록들을 재구축하기 위해서 디코더에서 사용하기 위한 인코딩된 데이터의 비트스트림으로부터 필터들을 디코딩하는 방법으로서:
    상기 비트스트림으로부터 필터 타입 플래그들을 판독하는 단계로서, 상기 필터 타입 플래그들은 하나 이상의 필터 타입들을 식별하는 것인, 상기 판독 단계; 및
    식별된 상기 필터 타입들 각각에 대해서, 상기 비트스트림으로부터 필터 계수들의 세트를 디코딩하는 단계
    를 포함하는, 디코딩 방법.
  2. 제 1 항에 있어서,
    상기 필터 타입들은 변환 크기, 코딩 모드, 예측 모드, 및 텍스쳐 타입 중 적어도 하나에 기초하는 것인, 디코딩 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 필터 타입들은 인터 코딩된(inter-coded) 블록들의 개별적인 그룹에 대해서 적용될 수 있는 둘 이상의 필터 타입들을 포함하고, 상기 인터 코딩된 블록들의 각각의 개별적인 그룹은 모션 벡터 특성들의 그룹과 연관되는 것인, 디코딩 방법.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 필터 타입들은 인트라 코딩된(intra-coded) 블록들의 개별적인 그룹에 대해서 적용될 수 있는 둘 이상의 필터 타입들을 포함하고, 상기 인트라 코딩된 블록들의 각각의 개별적인 그룹은 방향 예측 모드들의 그룹과 연관되는 것인, 디코딩 방법.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 필터 계수들의 세트는 필터를 규정하고, 상기 필터 계수들의 세트는 상기 필터 내의 각각의 계수 그룹에 대한 계수를 포함하며, 상기 각각의 계수 그룹은 하나 이상의 계수 위치들을 포함하는 것인, 디코딩 방법.
  6. 디코더 내에서 인코딩된 데이터의 비트스트림으로부터 샘플들의 블록을 재구축하는 방법으로서:
    상기 샘플들의 블록과 연관된 샘플들의 스펙트럼적으로 변환된 예측 블록을 재구축하는 단계;
    상기 비트스트림으로부터 필터 타입 플래그들을 판독하는 단계로서, 상기 필터 타입 플래그들은 하나 이상의 필터 타입들을 식별하는 것인, 상기 판독 단계;
    식별된 상기 필터 타입들 각각에 대해서, 상기 비트스트림으로부터 필터 계수들의 세트를 디코딩하는 단계; 및
    샘플들의 블록과 연관된 특성들과 매칭되는 필터 타입을 기초로 필터 계수들의 세트들 중 하나의 필터 계수 세트를 상기 변환된 예측 블록의 적어도 일부에 대해서 적용함으로써 필터링된 변환 영역 재구축을 계산하는 단계
    를 포함하는, 샘플들의 블록을 재구축하는 방법.
  7. 제 6 항에 있어서,
    상기 계산 단계는, 상기 샘플들의 블록의 특성들을 결정하는 단계 및 상기 특성들에 매칭되는 필터 타입을 기초로 필터 계수들의 세트들 중 하나의 필터 계수 세트를 선택하는 단계를 포함하는 것인, 샘플들의 블록을 재구축하는 방법.
  8. 제 6 항 또는 제 7 항에 있어서,
    상기 필터 타입들은 변환 크기, 코딩 모드, 예측 모드, 및 텍스쳐 타입 중 적어도 하나에 기초하는 것인, 샘플들의 블록을 재구축하는 방법.
  9. 제 6 항 또는 제 7 항에 있어서,
    상기 특성들은 모션 벡터 특성들을 포함하고, 상기 필터 타입들은 인터 코딩된 블록들의 개별적인 그룹에 대해서 적용될 수 있는 둘 이상의 필터 타입들을 포함하고, 상기 인터 코딩된 블록들의 각각의 개별적인 그룹은 모션 벡터 특성들의 개별적인 그룹과 연관되는 것인, 샘플들의 블록을 재구축하는 방법.
  10. 제 6 항 또는 제 7 항에 있어서,
    상기 특성들은 방향 예측 모드들을 포함하고, 상기 필터 타입들은 인트라 코딩된 블록들의 개별적인 그룹에 대해서 적용될 수 있는 둘 이상의 필터 타입들을 포함하고, 상기 인트라 코딩된 블록들의 각각의 개별적인 그룹은 방향 예측 모드들의 그룹과 연관되는 것인, 샘플들의 블록을 재구축하는 방법.
  11. 제 6 항 또는 제 7 항에 있어서,
    상기 필터 계수들의 세트는 필터를 규정하고, 상기 필터 계수들의 세트는 상기 필터 내의 각각의 계수 그룹에 대한 계수를 포함하고, 적어도 하나의 계수 그룹은 둘 이상의 계수 위치들을 포함하는 것인, 샘플들의 블록을 재구축하는 방법.
  12. 제 6 항 또는 제 7 항에 있어서,
    상기 필터링된 변환 영역 재구축을 계산하는 단계는, 상기 필터 계수들에 의해서 상기 변환된 예측 블록의 적어도 일부를 스케일링함으로써 필터링된 예측을 계산하는 단계 및 양자화된 변환 영역 계수들의 블록을 역양자화하는 단계를 포함하고, 상기 필터링된 변환 영역 재구축은 필터링된 예측 및 변환 영역 계수들의 역양자화된 블록의 합계를 포함하는 것인, 샘플들의 블록을 재구축하는 방법.
  13. 제 6 항 또는 제 7 항에 있어서,
    상기 필터링된 변환 영역 재구축을 계산하는 단계는:
    양자화된 변환 영역 계수들의 블록을 역양자화하는 단계;
    변환된 예측 블록 더하기 변환 영역 계수들의 역양자화된 블록으로서 변환 영역 재구축 블록을 계산하는 단계; 및
    상기 필터 계수들을 이용하여 상기 변환 영역 재구축 블록을 스케일링하는 단계를 포함하는 것인, 샘플들의 블록을 재구축하는 방법.
  14. 디코더 내에서 인코딩된 데이터의 비트스트림으로부터 샘플들의 블록을 재구축하는 방법으로서:
    샘플들의 블록과 연관된 샘플들의 예측 블록을 재구축하는 단계;
    상기 비트스트림으로부터 필터 타입 플래그들을 판독하는 단계로서, 상기 필터 타입 플래그들은 하나 이상의 필터 타입들을 식별하는 것인, 상기 판독 단계;
    식별된 상기 필터 타입들 각각에 대해서, 상기 비트스트림으로부터 필터 계수들의 세트를 디코딩하는 단계; 및
    상기 샘플들의 블록과 연관된 특성들과 매칭되는 필터 타입을 기초로 필터 계수들의 세트들 중의 하나의 필터 계수 세트를, 상기 예측 블록의 적어도 일부에 대해서 적용함으로써 필터링된 픽셀 영역 재구축을 계산하는 단계
    를 포함하는, 샘플들의 블록을 재구축하는 방법.
  15. 디코더로서:
    프로세서;
    메모리; 및
    제 1 항, 제 2 항, 제 6 항, 제 7 항, 및 제 14 항 중 어느 한 항에 따른 방법을 수행하도록 상기 프로세서를 구성하기 위한 명령들을 포함하고 상기 메모리 내에 저장되는 디코딩 애플리케이션
    을 포함하는, 디코더.
  16. 프로세서에 의해서 실행되었을 때, 제 1 항, 제 2 항, 제 6 항, 제 7 항, 및 제 14 항 중 어느 한 항에 따른 방법을 수행하도록 상기 프로세서를 구성하는, 컴퓨터 실행가능 명령들을 저장하는 비일시적인 컴퓨터 판독가능 매체.
KR1020120131728A 2011-11-21 2012-11-20 변환 영역 필터들을 인코딩 및 디코딩하기 위한 방법들 및 장치들 KR101506372B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161562294P 2011-11-21 2011-11-21
US61/562,294 2011-11-21

Publications (2)

Publication Number Publication Date
KR20130056190A KR20130056190A (ko) 2013-05-29
KR101506372B1 true KR101506372B1 (ko) 2015-03-26

Family

ID=47630077

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120131728A KR101506372B1 (ko) 2011-11-21 2012-11-20 변환 영역 필터들을 인코딩 및 디코딩하기 위한 방법들 및 장치들

Country Status (4)

Country Link
US (2) US8942495B2 (ko)
EP (1) EP2595382B1 (ko)
KR (1) KR101506372B1 (ko)
CA (1) CA2796778C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170141390A (ko) * 2016-06-15 2017-12-26 주식회사 에벤에셀케이 동영상 압축방법, 장치 및 이에 대한 컴퓨터 프로그램

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2595382B1 (en) * 2011-11-21 2019-01-09 BlackBerry Limited Methods and devices for encoding and decoding transform domain filters
US9894386B2 (en) * 2012-04-12 2018-02-13 Goldpeak Innovations Inc. Transform method based on block information, and apparatus using said method
US9407915B2 (en) * 2012-10-08 2016-08-02 Google Inc. Lossless video coding with sub-frame level optimal quantization values
US9756346B2 (en) 2012-10-08 2017-09-05 Google Inc. Edge-selective intra coding
WO2015015436A2 (en) * 2013-07-30 2015-02-05 Riversilica Technologies Pvt Ltd System and method for performing optimal temporal predictive mode decision in h.264 video coding
WO2015055111A1 (en) * 2013-10-14 2015-04-23 Mediatek Inc. Method of lossless mode signaling for video system with lossless and lossy coding
WO2015093909A1 (en) * 2013-12-22 2015-06-25 Lg Electronics Inc. Method and apparatus for predicting video signal using predicted signal and transform-coded signal
US20150365703A1 (en) * 2014-06-13 2015-12-17 Atul Puri System and method for highly content adaptive quality restoration filtering for video coding
US10390025B2 (en) * 2014-10-01 2019-08-20 Lg Electronics Inc. Method and apparatus for encoding and decoding video signal using improved prediction filter
CN105812950A (zh) * 2014-12-31 2016-07-27 鸿富锦精密工业(深圳)有限公司 多媒体装置及视频通信方法
WO2017023829A1 (en) * 2015-07-31 2017-02-09 Stc.Unm System and methods for joint and adaptive control of rate, quality, and computational complexity for video coding and video delivery
CN108353175B (zh) * 2015-09-21 2021-03-12 Lg 电子株式会社 使用系数引起的预测处理视频信号的方法和装置
WO2017082670A1 (ko) * 2015-11-12 2017-05-18 엘지전자 주식회사 영상 코딩 시스템에서 계수 유도 인트라 예측 방법 및 장치
FR3049084B1 (fr) * 2016-03-15 2022-11-11 Fraunhofer Ges Forschung Dispositif de codage pour le traitement d'un signal d'entree et dispositif de decodage pour le traitement d'un signal code
US10742979B2 (en) * 2016-12-21 2020-08-11 Arris Enterprises Llc Nonlinear local activity for adaptive quantization
EP3844959A2 (en) * 2018-09-16 2021-07-07 Huawei Technologies Co., Ltd. Apparatus and method for filtering in video coding with look-up table selected based on bitstream information
US10769819B2 (en) * 2018-09-24 2020-09-08 Qualcomm Incorporated Floating-point data compression
CN114287135A (zh) 2019-08-23 2022-04-05 北京字节跳动网络技术有限公司 参考图片重采样中的剪切
JP7395727B2 (ja) * 2019-10-23 2023-12-11 北京字節跳動網絡技術有限公司 ビデオ・データを処理する方法、装置及び記憶方法
CN114641992B (zh) 2019-10-23 2024-04-05 北京字节跳动网络技术有限公司 参考图片重采样的信令

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080093426A (ko) * 2006-11-17 2008-10-21 엘지전자 주식회사 비디오 신호의 디코딩/인코딩 방법 및 장치
KR20100074137A (ko) * 2007-10-11 2010-07-01 파나소닉 주식회사 영상 부호화 방법 및 영상 복호 방법
KR20110028545A (ko) * 2008-07-11 2011-03-18 퀄컴 인코포레이티드 복수의 필터를 이용한 비디오 데이터의 필터링

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3298915B2 (ja) 1991-12-28 2002-07-08 ソニー株式会社 符号化装置
AU3701495A (en) 1995-10-20 1997-05-15 Oy Nokia Ab Motion vector field coding
WO1997040628A1 (en) 1996-04-19 1997-10-30 Nokia Mobile Phones Limited Video encoder and decoder using motion-based segmentation and merging
GB2317525B (en) 1996-09-20 2000-11-08 Nokia Mobile Phones Ltd A video coding system
FI106071B (fi) 1997-03-13 2000-11-15 Nokia Mobile Phones Ltd Mukautuva suodatin
GB2343319B (en) 1998-10-27 2003-02-26 Nokia Mobile Phones Ltd Video coding
US6735249B1 (en) 1999-08-11 2004-05-11 Nokia Corporation Apparatus, and associated method, for forming a compressed motion vector field utilizing predictive motion coding
WO2001011892A1 (en) 1999-08-11 2001-02-15 Nokia Corporation Adaptive motion vector field coding
EP1279293A1 (en) 2000-01-21 2003-01-29 Nokia Corporation A motion estimation method and a system for a video coder
US6738423B1 (en) 2000-01-21 2004-05-18 Nokia Mobile Phones Ltd. Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder
FI116819B (fi) 2000-01-21 2006-02-28 Nokia Corp Menetelmä kuvien lähettämiseksi ja kuvakooderi
FI117534B (fi) 2000-01-21 2006-11-15 Nokia Corp Menetelmä digitaalisten kuvien suodattamiseksi ja suodatin
US6741648B2 (en) 2000-11-10 2004-05-25 Nokia Corporation Apparatus, and associated method, for selecting an encoding rate by which to encode video frames of a video sequence
US20020122491A1 (en) 2001-01-03 2002-09-05 Marta Karczewicz Video decoder architecture and method for using same
US6765963B2 (en) 2001-01-03 2004-07-20 Nokia Corporation Video decoder architecture and method for using same
US6920175B2 (en) 2001-01-03 2005-07-19 Nokia Corporation Video coding architecture and methods for using same
EP1391121B1 (en) 2001-03-23 2012-08-15 Nokia Corporation Variable length coding
US6856701B2 (en) 2001-09-14 2005-02-15 Nokia Corporation Method and system for context-based adaptive binary arithmetic coding
US6950469B2 (en) 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US6690307B2 (en) 2002-01-22 2004-02-10 Nokia Corporation Adaptive variable length coding of digital video
US7289674B2 (en) 2002-06-11 2007-10-30 Nokia Corporation Spatial prediction based intra coding
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US7664176B2 (en) 2004-07-09 2010-02-16 Nokia Corporation Method and system for entropy decoding for scalable video bit stream
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
US7336837B2 (en) 2005-01-11 2008-02-26 Nokia Corporation Method and system for coding/decoding of a video bit stream for fine granularity scalability
JP4146444B2 (ja) 2005-03-16 2008-09-10 株式会社東芝 動画像符号化の方法及び装置
US7756206B2 (en) 2005-04-13 2010-07-13 Nokia Corporation FGS identification in scalable video coding
US20070147497A1 (en) 2005-07-21 2007-06-28 Nokia Corporation System and method for progressive quantization for scalable image and video coding
JP4756949B2 (ja) 2005-08-08 2011-08-24 キヤノン株式会社 画像復号装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US8005140B2 (en) 2006-03-17 2011-08-23 Research In Motion Limited Soft decision and iterative video coding for MPEG and H.264
WO2008130367A1 (en) 2007-04-19 2008-10-30 Thomson Licensing Adaptive reference picture data generation for intra prediction
WO2009088340A1 (en) * 2008-01-08 2009-07-16 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive filtering
US9967590B2 (en) 2008-04-10 2018-05-08 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter
KR101518237B1 (ko) 2008-09-01 2015-05-15 삼성전자주식회사 영상의 역양자화 방법 및 장치, 복호화 방법 및 장치
EP2192786A1 (en) * 2008-11-27 2010-06-02 Panasonic Corporation Frequency domain filters for video coding
CA2808451C (en) * 2010-09-14 2016-06-21 Research In Motion Limited Methods and devices for data compression with adaptive filtering in the transform domain
EP2595382B1 (en) * 2011-11-21 2019-01-09 BlackBerry Limited Methods and devices for encoding and decoding transform domain filters

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080093426A (ko) * 2006-11-17 2008-10-21 엘지전자 주식회사 비디오 신호의 디코딩/인코딩 방법 및 장치
KR20100074137A (ko) * 2007-10-11 2010-07-01 파나소닉 주식회사 영상 부호화 방법 및 영상 복호 방법
KR20110028545A (ko) * 2008-07-11 2011-03-18 퀄컴 인코포레이티드 복수의 필터를 이용한 비디오 데이터의 필터링

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170141390A (ko) * 2016-06-15 2017-12-26 주식회사 에벤에셀케이 동영상 압축방법, 장치 및 이에 대한 컴퓨터 프로그램

Also Published As

Publication number Publication date
KR20130056190A (ko) 2013-05-29
US8942495B2 (en) 2015-01-27
CA2796778A1 (en) 2013-05-21
US20130129241A1 (en) 2013-05-23
CA2796778C (en) 2016-12-13
US20150110408A1 (en) 2015-04-23
EP2595382A2 (en) 2013-05-22
US9264722B2 (en) 2016-02-16
EP2595382B1 (en) 2019-01-09
EP2595382A3 (en) 2014-08-20

Similar Documents

Publication Publication Date Title
KR101506372B1 (ko) 변환 영역 필터들을 인코딩 및 디코딩하기 위한 방법들 및 장치들
KR101492930B1 (ko) 변환 도메인 내의 어댑티브 필터링을 이용한 데이터 압축 방법 및 장치
US9838718B2 (en) Secondary boundary filtering for video coding
KR101538832B1 (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
US20090147843A1 (en) Method and apparatus for quantization, and method and apparatus for inverse quantization
JP7150861B2 (ja) ビデオコーディングのための空間変動変換
EP2252059A2 (en) Image encoding and decoding method and device
KR101613381B1 (ko) 비-균일한 재구성 공간을 이용한 데이터 압축을 위한 방법들 및 디바이스들
US8582639B2 (en) Methods and devices for data compression using adaptive reconstruction levels
JP6402520B2 (ja) 符号化装置、方法、プログラム及び機器
CA2803202C (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
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20180308

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190312

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200311

Year of fee payment: 6