KR20100129339A - 고정된 필터 또는 적응형 필터에 기초한 비디오 코딩을 위한 레이트 왜곡 정의된 보간 - Google Patents
고정된 필터 또는 적응형 필터에 기초한 비디오 코딩을 위한 레이트 왜곡 정의된 보간 Download PDFInfo
- Publication number
- KR20100129339A KR20100129339A KR1020107025053A KR20107025053A KR20100129339A KR 20100129339 A KR20100129339 A KR 20100129339A KR 1020107025053 A KR1020107025053 A KR 1020107025053A KR 20107025053 A KR20107025053 A KR 20107025053A KR 20100129339 A KR20100129339 A KR 20100129339A
- Authority
- KR
- South Korea
- Prior art keywords
- interpolation
- filter
- pixel
- sub
- video
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/182—Methods 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 pixel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods 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/192—Methods 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 the adaptation method, adaptation tool or adaptation type being iterative or recursive
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/635—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 개시물은 비디오 인코딩 및/또는 디코딩 프로세스의 예측 스테이지 동안 인코더 및 디코더에 의해 적용된 필터링 기술들을 설명한다. 필터링 기술들은 프랙셔널 보간 동안 이용되는 예측 데이터의 정확성을 개선할 수도 있으며, 픽셀들의 정수 블록들의 예측 데이터를 향상시킬 수도 있다. 보간을 위해 이용될 수도 있는 유용한 12-픽셀 필터 서포트, 보간을 위한 필터 서포트를 구성하기 위해 인코더와 디코더 사이에서 전송될 필요가 있는 데이터의 양을 저감시키도록 계수 대칭 및 픽셀 대칭을 이용하는 기술들, 및 서브-픽셀 보간과 유사한 방식으로 정수 픽셀 위치들의 데이터를 필터링하는 기술들을 포함하는, 여러 양태들이 본 개시물에 있다. 본 개시물의 다른 양태들은 이용된 필터의 타입, 가능하다면 이용된 필터 계수들을 전달하기 위해 비트스트림에서의 정보를 인코딩하는 기술들에 관한 것이다. 필터 계수들의 예측 코딩이 또한 설명된다.
Description
본 출원은 그 전체 내용이 참조로 여기에 통합되는 2008년 4월 10일자로 출원된 미국 가출원 제61/044,020호, 2008년 4월 10일자로 출원된 미국 가출원 제61/044,023호, 2008년 4월 11일자로 출원된 미국 가출원 제61/044,240호, 및 2008년 5월 30일자로 출원된 미국 가출원 제61/057,373호의 이익을 주장한다.
기술 분야
본 개시물은 디지털 비디오 인코딩 및 디코딩에 관한 것으로, 더 상세하게는 비디오 인코딩 및 디코딩에 이용되는 예측 데이터를 생성하는데 적용된 필터링 기술들에 관한 것이다.
디지털 텔레비전, 디지털 직접 브로드캐스트 시스템, 무선 브로드캐스트 시스템, 개인 휴대 정보 단말기 (PDA), 랩탑 컴퓨터 또는 데스크탑 컴퓨터, 디지털 카메라, 디지털 레코딩 디바이스, 비디오 게임 디바이스, 비디오 게임 콘솔, 셀룰러 또는 위성 무선전화기 등을 포함하는 광범위한 디바이스에 디지털 비디오 능력이 통합될 수 있다. 디지털 비디오 디바이스는 디지털 비디오 정보를 보다 효율적으로 송신 및 수신하기 위해 MPEG-2, MPEG-4 또는 ITU-T H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) 에 의해 정의된 표준에서 설명된 기술들과 같은 비디오 압축 기술들을 구현한다. 비디오 압축 기술들은 비디오 시퀀스에 내재하는 리던던시를 저감시키거나 제거하기 위해 공간적 예측 및/또는 시간적 예측을 수행할 수도 있다.
블록 기반 인터-코딩이, 비디오 시퀀스의 연속하는 코딩된 단위의 비디오 블록들 사이의 시간적 리던던시를 저감시키거나 제거하기 위해 시간적 예측에 의존하는 매우 유용한 코딩 기술이다. 코딩된 단위는 비디오 프레임들, 비디오 프레임들의 슬라이스들, 픽쳐들의 그룹들, 인코딩된 비디오 블록들의 다른 정의된 단위를 포함할 수도 있다. 인터-코딩에 있어서, 비디오 인코더는 2 개 이상의 인접한 코딩된 단위의 대응하는 비디오 블록들의 움직임을 추적하기 위해 모션 추정 및 모션 보상을 수행한다. 모션 추정은 하나 이상의 기준 프레임들 또는 다른 코딩된 단위에서의 대응하는 예측 비디오 블록들에 대한 비디오 블록들의 변위를 나타내는 모션 벡터를 생성한다. 모션 보상은 모션 벡터를 이용하여 하나 이상의 기준 프레임들 또는 다른 코딩된 단위로부터 예측 비디오 블록들을 생성한다. 모션 보상 후에, 코딩되는 원래의 비디오 블록들로부터 예측 비디오 블록들을 감산함으로써 잔류 비디오 블록들이 형성된다.
또한, 비디오 인코더는 잔류 블록들의 통신과 연관된 비트 레이트를 더욱 저감시키기 위해 변환 프로세스, 양자화 프로세스 및 엔트로피 코딩 프로세스를 적용할 수도 있다. 변환 기술들은 DCT (Discrete Cosine Transform) 또는 개념적으로 유사한 프로세스들을 포함할 수도 있다. 대안으로, 웨이브렛 변환, 정수 변환, 또는 다른 타입의 변환이 이용될 수도 있다. DCT 프로세스에서는, 일 예로서, 일 세트의 픽셀 값들이 주파수 도메인에서 픽셀 값들의 에너지를 나타낼 수도 있는 변환 계수들로 컨버팅된다. 양자화는 변환 계수들에 적용되며, 일반적으로 임의의 주어진 변환 계수와 연관된 비트들의 수를 저감시키는 프로세스를 수반한다. 엔트로피 코딩은 코딩 모드들, 모션 정보, 코딩된 블록 패턴들 및 양자화된 변환 계수들의 시퀀스를 일괄적으로 압축하는 하나 이상의 프로세스들을 포함한다. 엔트로피 코딩의 예로는 CAVLC (Content Adaptive Variable Length Coding) 및 CABAC (Context Adaptive Binary Arithmetic Coding) 을 들 수 있지만 이들로 한정되는 것은 아니다.
코딩된 비디오 블록은 예측 블록, 및 코딩되는 블록과 예측 블록 사이의 차이를 나타내는 데이터의 잔류 블록을 생성 또는 식별하는데 이용될 수 있는 예측 정보로 나타내질 수도 있다. 예측 정보는 데이터의 예측 블록을 식별하는데 이용되는 하나 이상의 모션 벡터들을 포함할 수도 있다. 모션 벡터가 주어진다고 하면, 디코더는 잔류물을 코딩하는데 이용된 예측 블록들을 복원할 수 있다. 따라서, 일 세트의 잔류 블록들 및 일 세트의 모션 벡터들 (및 가능하다면 일부 추가적인 신택스 (syntax)) 이 주어진다고 하면, 디코더는 원래 인코딩된 비디오 프레임을 복원할 수 있다. 모션 추정 및 모션 보상에 기초한 인터-코딩은 연속하는 비디오 프레임들 또는 다른 타입의 코딩된 단위가 종종 매우 유사하기 때문에 매우 양호한 압축을 달성할 수 있다. 인코딩된 비디오 시퀀스는 잔류 데이터의 블록들, 모션 벡터들, 및 가능하다면 다른 타입의 신택스를 포함할 수도 있다.
인터-코딩에서 달성될 수 있는 압축 레벨을 향상시키기 위하여 보간 기술들이 개발되었다. 이 경우에, 비디오 블록을 코딩하는데 이용되는, 모션 보상 동안 생성된 예측 데이터는 모션 추정에 이용된 비디오 프레임의 비디오 블록들의 픽셀들 또는 다른 코딩된 단위로부터 보간될 수도 있다. 보간은 종종 예측 1/2 픽셀 (1/2-화소 (half-pel)) 값들 및 예측 1/4 픽셀 (1/4-화소 (quarter-pel)) 값들을 생성하기 위해 수행된다. 1/2-화소 값들 및 1/4-화소 값들은 서브-픽셀 위치들과 연관된다. 프랙셔널 모션 벡터들 (fractional motion vectors) 은, 비디오 시퀀스에서의 프랙셔널 움직임 (fractional movement) 을 캡쳐하기 위하여 서브-픽셀 해상도에 있는 비디오 블록들을 식별하며, 이로써 정수 비디오 블록들보다 코딩되는 비디오 블록들과 더 유사한 예측 블록들을 제공하는데 이용될 수도 있다.
일반적으로, 본 개시물은 비디오 인코딩 및/또는 디코딩 프로세스의 예측 스테이지 동안 인코더 및 디코더에 의해 적용된 필터링 기술들을 설명한다. 이 설명된 필터링 기술들은 프랙셔널 보간 동안 이용된 예측 데이터의 정확성을 개선할 수도 있으며, 일부 경우에는 픽셀들의 정수 블록들의 예측 데이터를 향상시킬 수도 있다. 보간을 위해 이용될 수도 있는 유용한 12-픽셀 필터 서포트 (filter support), 보간을 위한 필터 서포트를 구성하기 위해 인코더와 디코더 사이에서 전송될 필요가 있는 데이터의 양을 저감시키도록 계수 대칭 및 픽셀 대칭을 이용하는 기술들, 및 서브-픽셀 보간과 유사한 방식으로 정수 픽셀 위치의 데이터를 필터링하는 기술들을 포함하는, 여러 양태들이 본 개시물에 있다. 본 개시물의 다른 양태들은 이용된 필터의 타입 및 가능하다면 이용된 필터 계수들을 전달하기 위해 비트스트림으로 정보를 인코딩하는 기술들에 관한 것이다. 필터 계수들에 대한 예측 인코딩 기술들이 또한 설명된다. 본 개시물의 이들 및 다른 양태들은 이하 설명으로부터 명백해질 것이다.
일 예에서, 본 개시물은 제 1 보간 필터에 기초하여 비디오 데이터의 인코딩을 위한 제 1 보간 예측 데이터 (interpolated predictive data) 를 생성하는 단계, 제 2 보간 필터에 기초하여 비디오 데이터의 비디오 인코딩을 위한 제 2 보간 예측 데이터를 생성하는 단계, 레이트 왜곡 분석에 기초하여 제 1 보간 예측 데이터와 제 2 보간 예측 데이터 사이에서 선택하는 단계, 그 선택에 기초하여 비디오 데이터를 인코딩하는 단계, 및 그 선택을 나타내기 위한 신택스 (syntax) 를 인코딩하는 단계를 포함하는 방법을 설명한다. 제 1 보간 필터는 고정된 보간 필터를 포함할 수도 있고, 제 2 보간 필터는 적응형 보간 필터를 포함할 수도 있지만, 본 개시물이 반드시 이들 예로 한정되는 것은 아니다.
레이트 왜곡 분석에서 또한 고려될 수도 있는, 추가적인 보간 예측 데이터를 생성하기 위해 추가적인 보간 필터들도 적용될 수도 있다. 즉, 상기 방법은 2 개의 보간 필터들에 기초하여 단지 제 1 보간 예측 데이터와 제 2 보간 예측 데이터만을 생성하는 것으로 한정되지 않고 임의의 수의 보간 필터들에 기초하여 임의의 복수의 보간 예측 데이터를 생성하도록 적용될 수 있다. 레이트 왜곡 분석 보간 예측 데이터가 어느 필터를 선택할지를 식별하는데 이용된다는 것이 중요하다.
따라서, 다른 예에서, 본 개시물은 복수의 상이한 보간 필터들에 기초하여 비디오 데이터의 인코딩을 위한 복수의 상이한 버전의 예측 데이터를 생성하는 단계, 레이트 왜곡 분석에 기초하여 복수의 상이한 버전의 예측 데이터 중에서 선택하는 단계, 그 선택에 기초하여 비디오 데이터를 인코딩하는 단계, 및 그 선택을 나타내기 위한 신택스를 인코딩하는 단계를 포함하는 방법을 설명한다.
다른 예에서, 본 개시물은 복수의 상이한 보간 필터들에 기초하여 비디오 데이터의 인코딩을 위한 복수의 상이한 버전의 예측 데이터를 생성하고, 레이트 왜곡 분석에 기초하여 복수의 상이한 버전의 예측 데이터 중에서 선택하고, 그 선택에 기초하여 비디오 데이터를 인코딩하며, 그 선택을 나타내기 위한 신택스를 인코딩하는 비디오 코더를 포함하는 장치를 설명한다.
다른 예에서, 본 개시물은 복수의 상이한 보간 필터들에 기초하여 비디오 데이터의 인코딩을 위한 복수의 상이한 버전의 예측 데이터를 생성하는 수단, 레이트 왜곡 분석에 기초하여 복수의 상이한 버전의 예측 데이터 중에서 선택하는 수단, 그 선택에 기초하여 비디오 데이터를 인코딩하는 수단, 및 그 선택을 나타내기 위한 신택스를 인코딩하는 수단을 포함하는 디바이스를 설명한다.
본 개시물에 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합에 구현될 수도 있다. 소프트웨어에 구현한 경우, 소프트웨어는 마이크로프로세서, 응용 주문형 집적 회로 (ASIC), 필드 프로그램가능한 게이트 어레이 (FPGA), 또는 디지털 신호 프로세서 (DSP) 와 같은 하나 이상의 프로세서들에서 실행될 수도 있다. 그 기술들을 실행하는 소프트웨어는 먼저 컴퓨터 판독가능 매체에 저장되고 로딩되어 프로세서에서 실행될 수도 있다.
따라서, 본 개시물은 또한 프로세서에 의한 실행 시에, 그 프로세서로 하여금 복수의 상이한 보간 필터들에 기초하여 비디오 데이터의 인코딩을 위한 복수의 상이한 버전의 예측 데이터를 생성하도록 하고, 레이터 왜곡 분석에 기초하여 복수의 상이한 버전의 예측 데이터 중에서 선택하도록 하고, 그 선택에 기초하여 비디오 데이터를 인코딩하도록 하며, 그 선택을 나타내기 위한 신택스를 인코딩하도록 하는 명령들을 포함하는 컴퓨터 판독가능 저장 매체를 고려한다.
본 개시물의 하나 이상의 양태들의 상세는 이하의 첨부 도면 및 상세한 설명에서 기술된다. 본 개시물에 설명된 기술들의 다른 특징들, 목적들 및 이점들은 상세한 설명과 도면으로부터, 및 청구범위로부터 명백할 것이다.
도 1 은 본 개시물의 기술들을 구현할 수도 있는 일 예시적인 비디오 인코딩 및 디코딩 시스템을 예시하는 블록도이다.
도 2 는 본 개시물에 부합하는 필터링 기술들을 수행할 수도 있는 비디오 인코더의 일 예를 예시하는 블록도이다.
도 3 은 예측 데이터와 연관된 정수-픽셀 포지션들 및 보간 예측 데이터와 연관된 서브-픽셀 포지션들을 예시하는 개념도이다.
도 4 는 9 개의 서브-픽셀 위치들에 대한 12 개의 픽셀 필터 서포트를 예시하는 개념도이다.
도 5 는 3 개의 수평 서브-픽셀 위치들에 대한 수평 6 개의 픽셀 필터 서포트, 및 3 개의 수직 서브-픽셀 위치들에 대한 수직 6 개의 픽셀 필터 서포트를 예시하는 개념도이다.
도 6 은 정수 픽셀 위치를 필터링하는 5 개의 픽셀×5 개의 픽셀 필터 서포트를 예시하는 개념도이다.
도 7 은 본 개시물에 부합하는 필터 계수들에 대한 픽셀 대칭을 이용할 수도 있는 픽셀 포지션들을 그룹화하기 위해 음영 (shading) 으로 4 개의 정수 픽셀 포지션들 및 15 개의 서브-픽셀 포지션들을 예시하는 개념도이다.
도 8 은 계수 대칭을 도시하는 음영으로, 일 서브-픽셀에 대한 6 개의 수평 선형 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 9 는 임의의 계수 대칭의 결여를 도시하는 음영으로, 일 서브-픽셀에 대한 6 개의 수평 선형 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 10 은 계수 대칭을 도시하는 음영으로, 일 서브-픽셀에 대한 6 개의 수직 선형 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 11 은 임의의 계수 대칭의 결여를 도시하는 음영으로, 일 서브-픽셀에 대한 6 개의 수직 선형 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 12 는 임의의 계수 대칭의 결여를 도시하는 음영으로, 일 서브-픽셀에 대한 12 개의 2 차원 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 13 은 계수 대칭을 도시하는 음영으로, 일 서브-픽셀에 대한 12 개의 2 차원 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 14 는 계수 대칭을 도시하는 음영으로, 일 서브-픽셀에 대한 12 개의 2 차원 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 15 는 계수 대칭을 도시하는 음영으로, 일 서브-픽셀에 대한 12 개의 2 차원 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 16 은 본원에 설명된 방식으로 인코딩되는 비디오 시퀀스를 디코딩할 수도 있는 비디오 디코더의 일 예를 예시하는 블록도이다.
도 17 은 본 개시물에 부합하는 12 개의 픽셀 필터 서포트를 이용하는 비디오 인코더의 동작예를 예시하는 흐름도이다.
도 18 은 본 개시물에 부합하는 12 개의 픽셀 필터 서포트를 이용하는 비디오 디코더의 동작예를 예시하는 흐름도이다.
도 19 는 본 개시물에 부합하는 계수 대칭 및 픽셀 대칭을 이용하는 비디오 인코더의 동작예를 예시하는 흐름도이다.
도 20 은 본 개시물에 부합하는 계수 대칭 및 픽셀 대칭을 이용하는 비디오 디코더의 동작예를 예시하는 흐름도이다.
도 21 은 본 개시물에 부합하는 조정된 정수 픽셀 값들을 생성하기 위해 정수 픽셀 위치들의 필터링을 이용하는 비디오 인코더의 동작예를 예시하는 흐름도이다.
도 22 는 본 개시물에 부합하는 조정된 정수 픽셀 값들을 생성하기 위해 정수 픽셀 위치들의 필터링을 이용하는 비디오 디코더의 동작예를 예시하는 흐름도이다.
도 23 은 고정된 필터 또는 적응형 필터에 기초한 비디오 코딩을 위해 레이트 왜곡 정의된 보간에 대한 기술을 예시하는 흐름도이다.
도 24 는 예측 코딩을 이용하여 필터 계수들을 인코딩하는 기술을 예시하는 흐름도이다.
도 25 는 예측 코딩을 이용하여 필터 계수들을 인코딩하는 기술을 예시하는 다른 흐름도이다.
도 26 은 예측 코딩을 이용하여 필터 계수들을 디코딩하는 기술을 예시하는 흐름도이다.
도 27 및 도 28 은 예측적으로 코딩될 수 있는 필터 계수들을 예시하는 개념적 그래프이다.
도 29 는 예측 기술들이 인코딩을 위해 이용될 수도 있는 정수-픽셀 필터 계수들의 어레이의 예시적인 예이다.
도 2 는 본 개시물에 부합하는 필터링 기술들을 수행할 수도 있는 비디오 인코더의 일 예를 예시하는 블록도이다.
도 3 은 예측 데이터와 연관된 정수-픽셀 포지션들 및 보간 예측 데이터와 연관된 서브-픽셀 포지션들을 예시하는 개념도이다.
도 4 는 9 개의 서브-픽셀 위치들에 대한 12 개의 픽셀 필터 서포트를 예시하는 개념도이다.
도 5 는 3 개의 수평 서브-픽셀 위치들에 대한 수평 6 개의 픽셀 필터 서포트, 및 3 개의 수직 서브-픽셀 위치들에 대한 수직 6 개의 픽셀 필터 서포트를 예시하는 개념도이다.
도 6 은 정수 픽셀 위치를 필터링하는 5 개의 픽셀×5 개의 픽셀 필터 서포트를 예시하는 개념도이다.
도 7 은 본 개시물에 부합하는 필터 계수들에 대한 픽셀 대칭을 이용할 수도 있는 픽셀 포지션들을 그룹화하기 위해 음영 (shading) 으로 4 개의 정수 픽셀 포지션들 및 15 개의 서브-픽셀 포지션들을 예시하는 개념도이다.
도 8 은 계수 대칭을 도시하는 음영으로, 일 서브-픽셀에 대한 6 개의 수평 선형 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 9 는 임의의 계수 대칭의 결여를 도시하는 음영으로, 일 서브-픽셀에 대한 6 개의 수평 선형 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 10 은 계수 대칭을 도시하는 음영으로, 일 서브-픽셀에 대한 6 개의 수직 선형 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 11 은 임의의 계수 대칭의 결여를 도시하는 음영으로, 일 서브-픽셀에 대한 6 개의 수직 선형 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 12 는 임의의 계수 대칭의 결여를 도시하는 음영으로, 일 서브-픽셀에 대한 12 개의 2 차원 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 13 은 계수 대칭을 도시하는 음영으로, 일 서브-픽셀에 대한 12 개의 2 차원 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 14 는 계수 대칭을 도시하는 음영으로, 일 서브-픽셀에 대한 12 개의 2 차원 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 15 는 계수 대칭을 도시하는 음영으로, 일 서브-픽셀에 대한 12 개의 2 차원 픽셀 서포트 포지션들을 예시하는 개념도이다.
도 16 은 본원에 설명된 방식으로 인코딩되는 비디오 시퀀스를 디코딩할 수도 있는 비디오 디코더의 일 예를 예시하는 블록도이다.
도 17 은 본 개시물에 부합하는 12 개의 픽셀 필터 서포트를 이용하는 비디오 인코더의 동작예를 예시하는 흐름도이다.
도 18 은 본 개시물에 부합하는 12 개의 픽셀 필터 서포트를 이용하는 비디오 디코더의 동작예를 예시하는 흐름도이다.
도 19 는 본 개시물에 부합하는 계수 대칭 및 픽셀 대칭을 이용하는 비디오 인코더의 동작예를 예시하는 흐름도이다.
도 20 은 본 개시물에 부합하는 계수 대칭 및 픽셀 대칭을 이용하는 비디오 디코더의 동작예를 예시하는 흐름도이다.
도 21 은 본 개시물에 부합하는 조정된 정수 픽셀 값들을 생성하기 위해 정수 픽셀 위치들의 필터링을 이용하는 비디오 인코더의 동작예를 예시하는 흐름도이다.
도 22 는 본 개시물에 부합하는 조정된 정수 픽셀 값들을 생성하기 위해 정수 픽셀 위치들의 필터링을 이용하는 비디오 디코더의 동작예를 예시하는 흐름도이다.
도 23 은 고정된 필터 또는 적응형 필터에 기초한 비디오 코딩을 위해 레이트 왜곡 정의된 보간에 대한 기술을 예시하는 흐름도이다.
도 24 는 예측 코딩을 이용하여 필터 계수들을 인코딩하는 기술을 예시하는 흐름도이다.
도 25 는 예측 코딩을 이용하여 필터 계수들을 인코딩하는 기술을 예시하는 다른 흐름도이다.
도 26 은 예측 코딩을 이용하여 필터 계수들을 디코딩하는 기술을 예시하는 흐름도이다.
도 27 및 도 28 은 예측적으로 코딩될 수 있는 필터 계수들을 예시하는 개념적 그래프이다.
도 29 는 예측 기술들이 인코딩을 위해 이용될 수도 있는 정수-픽셀 필터 계수들의 어레이의 예시적인 예이다.
본 개시물은 비디오 인코딩 및/또는 디코딩 프로세스의 예측 스테이지 동안 인코더 및 디코더에 의해 적용된 필터링 기술들을 설명한다. 설명된 필터링 기술들은 프랙셔널 보간 동안 이용된 예측 데이터의 정확성을 개선시킬 수도 있으며, 일부 경우에는, 픽셀들의 정수 블록들의 예측 데이터를 향상시킬 수도 있다. 보간을 위해 이용될 수도 있는 유용한 12-픽셀 필터 서포트, 보간을 위한 필터 서포트를 구성하기 위해 인코더와 디코더 사이에서 전송될 필요가 있는 데이터의 양을 저감시키도록 계수 대칭 및 픽셀 대칭을 이용하는 기술들, 및 서브-픽셀 보간과 유사한 방식으로 정수 픽셀 위치들의 데이터를 필터링하는 기술들을 포함하는, 여러 양태들이 본 개시물에 있다. 이들 및 다른 기술들이 이하 더 상세하게 설명된다.
도 1 은 본 개시물의 기술들 중 하나 이상의 기술을 구현하는데 이용될 수도 있는 일 예시적인 비디오 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록도이다. 도 1 에 도시한 바와 같이, 이 시스템 (10) 은 인코딩된 비디오를 통신 채널 (15) 을 통해 목적지 디바이스 (16) 로 송신하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 목적지 디바이스 (16) 는 광범위한 디바이스들 중 임의의 디바이스를 포함할 수도 있다. 일부 경우에, 소스 디바이스 (12) 및 목적지 디바이스 (16) 는 무선 핸드셋, 소위 셀룰러 또는 위성 무선전화기와 같은 무선 통신 디바이스들, 또는 통신 채널 (15) 을 통해 비디오 정보를 통신할 수 있는 임의의 무선 디바이스를 포함하며, 그 경우에 통신 채널 (15) 은 무선이다. 그러나, 예측 코딩 동안 예측 데이터의 생성 및 필터링에 관한 본 개시물의 기술들이 반드시 무선 애플리케이션들 또는 세팅들로 한정되는 것은 아닌다. 또한, 이 기술들은 물리적 와이어, 광섬유 또는 다른 물리적 또는 무선 매체를 통해 통신하는 디바이스들을 포함하는, 광범위한 다른 세팅들 및 디바이스들에 유용할 수도 있다. 또한, 인코딩 또는 디코딩 기술들은 임의의 다른 디바이스와 반드시 통신하는 것이 아닌 스탠드얼론 디바이스에 또한 적용될 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (20), 비디오 인코더 (22), 변조기/복조기 (모뎀) (23) 및 송신기 (24) 를 포함할 수도 있다. 목적지 디바이스 (16) 는 수신기 (26), 모뎀 (27), 비디오 디코더 (28) 및 디스플레이 디바이스 (30) 를 포함할 수도 있다. 본 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (22) 는 비디오 인코딩 프로세스의 일부로서 본 개시물의 기술들 중 하나 이상의 기술을 적용하도록 구성될 수도 있다. 유사하게, 목적지 디바이스 (16) 의 비디오 디코더 (28) 는 비디오 디코딩 프로세스의 일부로서 본 개시물의 기술들 중 하나 이상의 기술을 적용하도록 구성될 수도 있다.
다시, 도 1 의 예시된 시스템 (10) 은 단지 예이다. 본 개시물의 다양한 기술들은 블록 기반 예측 인코딩을 지원하는 임의의 인코딩 디바이스에 의해, 또는 블록 기반 예측 디코딩을 지원하는 임의의 디코딩 디바이스에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (16) 는 단지 이러한 코딩 디바이스들의 예이며, 여기서, 소스 디바이스 (12) 는 목적지 디바이스 (16) 로의 송신을 위한 코딩된 비디오 데이터를 생성한다. 일부 경우에, 디바이스들 (12, 16) 은 디바이스들 (12, 16) 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭 방식으로 동작할 수도 있다. 따라서, 시스템 (10) 은 예를 들어, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅 또는 비디오 전화를 위해, 비디오 디바이스들 (12, 16) 간의 1-방향 또는 2-방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (20) 는 비디오 카메라와 같은 비디오 캡쳐 디바이스, 이전에 캡쳐된 비디오를 포함하는 비디오 아카이브 (video archive), 또는 비디오 컨텐츠 제공자로부터의 비디오 피드를 포함할 수도 있다. 추가 대안으로서, 비디오 소스 (20) 는 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터-생성된 비디오의 조합으로서 컴퓨터 그래픽스-기반 데이터를 생성할 수도 있다. 일부 경우에, 비디오 소스 (20) 가 비디오 카메라이면, 소스 디바이스 (12) 및 목적지 디바이스 (16) 는 소위 카메라폰 또는 비디오폰을 형성할 수도 있다. 각각의 경우에, 캡쳐, 프리-캡쳐 또는 컴퓨터 생성된 비디오는 비디오 인코더 (22) 에 의해 인코딩될 수도 있다. 인코딩된 비디오 정보는 그 후 예를 들어 코드 분할 다중 액세스 (CDMA) 와 같은 통신 표준 또는 다른 통신 표준에 따라 모뎀 (23) 에 의해 변조될 수도 있고, 송신기 (24) 및 통신 채널 (15) 을 통해 목적지 디바이스 (16) 로 송신될 수도 있다. 모뎀 (23) 은 다양한 믹서들, 필터들, 증폭기들 또는 신호 변조를 위해 설계된 다른 컴포넌트들을 포함할 수도 있다. 송신기 (24) 는 증폭기들, 필터들, 및 하나 이상의 안테나들을 포함하는, 데이터를 송신하기 위해 설계된 회로들을 포함할 수도 있다.
목적지 디바이스 (16) 의 수신기 (26) 는 통신 채널 (15) 을 통해 정보를 수신하며, 모뎀 (27) 은 그 정보를 복조한다. 송신기 (24) 와 마찬가지로, 수신기 (26) 는 증폭기들, 필터들 및 하나 이상의 안테나들을 포함하는, 데이터를 수신하기 위해 설계된 회로들을 포함할 수도 있다. 일부 예에서, 송신기 (24) 및/또는 수신기 (26) 는 수신 회로와 송신 회로 양자를 포함하는 단일의 트랜시버 컴포넌트 내에 통합될 수도 있다. 모뎀 (27) 은 다양한 믹서들, 필터들, 증폭기들 또는 신호 복조를 위해 설계된 다른 컴포넌트들을 포함할 수도 있다. 일부 예에서, 모뎀들 (23 및 27) 은 변조와 복조 양자를 수행하는 컴포넌트들을 포함할 수도 있다.
다시, 비디오 인코더 (22) 에 의해 수행된 비디오 인코딩 프로세스는 모션 보상 동안 본원에 설명된 기술들 중 하나 이상의 기술을 구현할 수도 있다. 비디오 디코더 (28) 에 의해 수행된 비디오 디코딩 프로세스는 또한 디코딩 프로세스의 모션 보상 스테이지 동안 이러한 기술들을 수행할 수도 있다. "코더" 라는 용어는 본원에서 비디오 인코딩 또는 비디오 디코딩을 수행하는 전문화된 컴퓨터 디바이스 또는 장치를 지칭하기 위해 사용된다. "코더" 라는 용어는 일반적으로 임의의 비디오 인코더, 비디오 디코더, 또는 조합된 인코더/디코더 (코덱) 를 지칭한다. "코딩" 이라는 용어는 인코딩 또는 디코딩을 지칭한다. 디스플레이 디바이스 (30) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하며, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다.
도 1 의 예에서, 통신 채널 (15) 은 임의의 무선 또는 유선 통신 매체, 이를 테면 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들, 또는 무선과 유선 매체의 임의의 조합을 포함할 수도 있다. 통신 채널 (15) 은 패킷-기반 네트워크, 이를 테면 로컬 영역 네트워크, 광역 네트워크 또는 글로벌 네트워크, 이를 테면 인터넷의 일부를 형성할 수도 있다. 통신 채널 (15) 은 일반적으로 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (16) 로 송신하기 위한 임의의 적절한 통신 매체, 또는 상이한 통신 매체의 집합을 나타낸다. 통신 채널 (15) 은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (16) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (28) 는 다르게는 MPEG-4, Part 10, AVC (Advanced Video Coding) 로서 기재되는 ITU-T H.264 표준과 같은 비디오 압축 표준에 따라 동작할 수도 있다. 그러나, 본 개시물의 기술들은 임의의 특정 비디오 코딩 표준으로 한정되지 않는다. 도 1 에는 도시되어 있지 않지만, 일부 양태들에서, 비디오 인코더 (22) 및 비디오 디코더 (28) 는 각각 오디오 인코더 및 디코더와 통합될 수도 있으며, 공통 데이터 스트림 또는 개별 데이터 스트림들에서 오디오와 비디오 양자의 인코딩을 처리하기 위한 적절한 MUX-DEMUX 유닛들 또는 다른 하드웨어와 소프트웨어를 포함할 수도 있다. 적용가능하다면, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (UDP) 과 같은 다른 프로토콜들에 따를 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (28) 는 각각 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSPs), 응용 주문형 집적 회로들 (ASICs), 필드 프로그램가능한 게이트 어레이들 (FPGAs), 별개의 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합으로서 구현될 수도 있다. 비디오 인코더 (22) 와 비디오 디코더 (28) 의 각각은 어느 하나가 각각의 모바일 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 서버 등에서 인코딩 및 디코딩 능력들을 제공하는 조합된 코덱의 일부로서 통합될 수도 있는 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있다.
비디오 시퀀스는 통상적으로 일련의 비디오 프레임들을 포함한다. 비디오 인코더 (22) 는 비디오 데이터를 인코딩하기 위하여 개별적인 비디오 프레임들 내의 비디오 블록들에 대해 동작한다. 비디오 블록들은 고정된 또는 가변 사이즈를 가질 수도 있으며, 특정 코딩 표준에 따라 사이즈가 다를 수도 있다. 각 비디오 프레임은 일련의 슬라이스들을 포함한다. 각 슬라이스는 서브-블록들로 배열될 수도 있는 일련의 매크로블록들을 포함할 수도 있다. 일 예로서, ITU-T H.264 표준은 루마 컴포넌트 (luma component) 에 대해 16×16, 8×8 또는 4×4, 및 크로마 컴포넌트 (chroma component) 에 대해 8×8 과 같은 다양한 블록 사이즈들에서의 인트라 예측을 지원하는 것은 물론, 루마 컴포넌트에 대해 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 및 4×4, 및 크로마 컴포넌트에 대해 대응하게 스케일링된 사이즈들과 같은 다양한 블록 사이즈들에서의 인터 예측을 지원한다. 비디오 블록들은 예를 들어 DCT (Discrete Cosine Transform) 와 같은 변환 프로세스 또는 개념적으로 유사한 변환 프로세스에 후속하는 픽셀 데이터의 블록들 또는 변환 계수들의 블록들을 포함할 수도 있다.
더 작은 비디오 블록들은 더 양호한 해상도를 제공할 수 있으며, 높은 레벨의 디테일을 포함하는 비디오 프레임의 위치들에 대해 이용될 수도 있다. 일반적으로, 매크로블록들 및 다양한 서브-블록들은 비디오 블록들로 고려될 수도 있다. 또한, 슬라이스는 매크로블록들 및/또는 서브-블록들과 같은 일련의 비디오 블록들로 고려될 수도 있다. 각 슬라이스는 비디오 프레임의 독립적으로 디코딩가능한 단위일 수도 있다. 대안으로, 프레임들 그 자체는 디코딩가능한 단위일 수도 있으며, 프레임의 다른 부분들이 디코딩가능한 단위로서 정의될 수도 있다. "코딩된 단위" 라는 용어는 비디오 프레임의 임의의 독립적으로 디코딩가능한 유닛, 이를 테면 전체 프레임, 프레임의 슬라이스, 또는 이용된 코딩 기술들에 따라 정의된 다른 독립적으로 디코딩가능한 단위를 나타낸다.
비디오 블록들을 인코딩하기 위해, 비디오 인코더 (22) 는 인트라-예측 또는 인터-예측을 수행하여 예측 블록을 생성한다. 비디오 인코더 (22) 는 인코딩될 원래의 비디오 블록들에서 예측 블록들을 감산하여 잔류 블록들을 생성한다. 따라서, 잔류 블록들은 코딩되는 블록들과 예측 블록들 사이의 차이를 나타낸다. 비디오 인코더 (22) 는 잔류 블록들에 대해 변환을 수행하여 변환 계수들의 블록들을 생성할 수도 있다. 인트라-기반 또는 인터-기반 예측 코딩 및 변환 기술들에 이어, 비디오 인코더 (22) 는 양자화를 수행한다. 양자화는 일반적으로 계수들이 그 계수들을 나타내는데 이용되는 데이터의 양을 가능하게 저감시키기 위해 양자화되는 프로세스를 나타낸다. 양자화에 이어, 엔트로피 코딩이 CAVLC (Context Adaptive Variable Length Coding) 또는 CABAC (Context Adaptive Binary Arithmetic Coding) 와 같은 엔트로피 코딩 방법론에 따라 수행될 수도 있다. 비디오 인코더 (22) 에 의해 수행되는 인코딩 프로세스의 각 단계에 대한 그 이상의 상세는 도 2 에서 이하 더 상세하게 설명될 것이다.
목적지 디바이스 (16) 에서, 비디오 디코더 (28) 는 인코딩된 비디오 데이터를 수신한다. 비디오 디코더 (28) 는 수신된 비디오 데이터를 CAVLC 또는 CABAC 와 같은 엔트로피 코딩 방법론에 따라 엔트로피 디코딩하여 양자화된 계수들을 획득한다. 비디오 디코더 (28) 는 픽셀 도메인에서 잔류 블록을 복원하기 위해 역양자화 (양자화해제) 및 역변환 기능들을 적용한다. 또한, 비디오 디코더 (28) 는 인코딩된 비디오 데이터에 포함된 제어 정보 또는 신택스 정보 (예를 들어, 코딩 모드, 모션 벡터, 필터 계수들을 정의하는 신택스 등) 에 기초하여 예측 블록을 생성한다. 비디오 디코더 (28) 는 예측 블록을 복원된 잔류 블록과 합산하여 디스플레이를 위한 복원된 비디오 블록을 생성한다. 비디오 인코더 (22) 에 의해 수행되는 인코딩 프로세스의 각 단계의 그 이상의 상세는 도 16 에서 이하 더 상세하게 설명될 것이다.
본 개시물의 기술들에 의하면, 비디오 인코더 (22) 및 비디오 디코더 (28) 는 모션 보상 동안 하나 이상의 보간 필터링 기술들을 이용할 수도 있다. 특히, 본 개시물의 일 양태에 따르면, 비디오 인코더 (22) 및/또는 비디오 디코더 (28) 는 픽셀들의 블록을 획득하고 (여기서 픽셀들의 블록은 그 픽셀들의 블록 내의 정수 픽셀 포지션들에 대응하는 정수 픽셀 값들을 포함한다), 정수 픽셀 값들에 기초하여 픽셀들의 블록과 연관된 서브-픽셀 포지션들에 대한 서브-픽셀 값들을 컴퓨팅하며 (여기서 서브-픽셀 값들을 컴퓨팅하는 것은 서브-픽셀 포지션들을 방사형으로 둘러싸는 일 세트의 12 개 이상의 정수 픽셀 포지션들에 대응하는 2 차원 어레이의 필터 서포트 포지션들을 정의하는 보간 필터를 적용하는 것을 포함한다), 서브-픽셀 값들 중 적어도 일부에 기초하여 예측 블록을 생성할 수도 있다. 일 세트의 12 개 이상의 정수 픽셀 포지션들에 대응하는 2 차원 어레이의 필터 서포트 포지션들의 일 예는 이하 더 상세하게 설명된다.
본 개시물의 다른 양태에 따르면, 비디오 인코더 (22) 및/또는 비디오 디코더 (28) 는 보간에 이용되는 필터 계수들의 통신을 위해 소스 디바이스 (12) 와 목적지 디바이스 (16) 사이에서 통신될 필요가 있는 데이터의 양을 저감시키기 위하여 대칭의 양태들을 이용할 수도 있다. 비디오 인코더 (22) 는 15 개의 상이한 서브-픽셀 위치들에 대한 8 개의 세트의 필터 계수들을 결정하고 (여기서 8 개의 세트의 필터 계수들은 15 개의 서브-픽셀 위치들 중에서의 계수 대칭 및 픽셀 대칭에 기초하여 생성된다), 8 개의 세트의 필터 계수들을 인코딩된 비트스트림의 일부로서 다른 디바이스로 출력할 수도 있다. 이렇게 하여, 8 개의 세트는 픽셀 대칭 및 계수 대칭의 양태들에 따라 모든 15 개의 1/2-화소 및 1/4-화소 픽셀 포지션들에 대한 필터 계수들 모두를 정의할 수도 있다. 또한, 픽셀 대칭은 수직 차원 (vertical dimension) 및 수평 차원 (horizontal dimension) 에서의 15 개의 서브-픽셀 위치들 중 상이한 위치들 사이에 존재할 수도 있지만, 픽셀 대칭은 15 개 세트의 서브-픽셀 위치들 중 적어도 일부의 위치에 대한 대각 차원 (diagonal dimension) 에는 존재하지 않을 수도 있다. 15 개의 위치들 중 적어도 일부에 대한 대각선 차원에서의 이런 픽셀 대칭의 결여는 비디오 인코딩 및 디코딩에서의 비디오 품질 및 보간을 향상시킬 수도 있다.
목적지 디바이스 (16) 의 비디오 디코더 (28) 는 인코딩된 비디오 스트림의 일부로서 8 개의 세트의 필터 계수들을 수신하고, 8 개의 세트의 필터 계수들에 기초하여 15 개의 상이한 서브-픽셀 위치들에 대응하는 15 개의 세트의 필터 계수들을 생성하고, 15 개의 세트의 필터 계수들 중 하나에 기초하여 비디오 디코딩을 위한 보간 예측 데이터를 생성하며 (여기서 보간 예측 데이터는 15 개의 상이한 서브-픽셀 위치들 중 하나에 대응한다), 보간 예측 데이터에 기초하여 하나 이상의 비디오 블록들을 디코딩할 수도 있다.
본 개시물의 다른 양태에 따르면, 비디오 인코더 (22) 및/또는 비디오 디코더 (28) 는 조정된 정수 픽셀 값들을 생성하기 위하여 정수 픽셀 포지션들에 대하여 보간-형 필터링을 이용할 수도 있다. 이러한 보간-형 필터링은 특히 조명 변화, 씬 페이드-인 (scene fade-in) 또는 페이드 아웃 (fade-out) 동안 압축을 향상시킬 수도 있고, 잡음을 제거하고 이미지 프레임 선명화 (sharpening) 를 용이하게 할 수도 있으며, 특히 대칭이 필터 계수들에 부과되지 않을 때 연속하는 비디오 프레임들 사이에서의 미세한 물체 움직임의 인코딩의 향상을 도울 수도 있다.
비디오 인코더 (22) 및/또는 비디오 디코더 (28) 의 보간-형 필터링 기술들은 픽셀들의 블록들을 획득하는 것 (여기서 픽셀들의 블록들은 그 픽셀들의 블록들 내의 정수 픽셀 포지션들에 대응하는 정수 픽셀 값들을 포함한다), 픽셀들의 블록 내의 다른 정수 픽셀 값들에 기초하여 정수 픽셀 값들을 필터링하여 조정된 정수 픽셀 값들을 생성하는 것 (여기서 조정된 정수 픽셀 값들은 정수 픽셀 포지션들에 대응한다), 및 조정된 정수 픽셀 값들에 기초하여 예측 블록을 생성하는 것을 포함할 수도 있다.
본 개시물의 다른 양태에 따르면, 인코더 (22) 는 제 1 보간 필터에 기초하여 비디오 데이터의 인코딩을 위한 제 1 보간 예측 데이터를 생성하고, 제 2 보간 필터에 기초하여 비디오 데이터의 비디오 인코딩을 위한 제 2 보간 예측 데이터를 생성하고, 레이트 왜곡 분석에 기초하여 제 1 보간 예측 데이터와 제 2 보간 예측 데이터 사이에서 선택하고, 그 선택에 기초하여 비디오 데이터를 인코딩하며, 그 선택을 나타내기 위한 신택스를 인코딩할 수도 있다. 제 1 보간 필터는 고정된 보간 필터를 포함할 수도 있고, 제 2 보간 필터는 적응형 보간 필터를 포함할 수도 있지만, 본 개시물이 반드시 이들 예들로 한정되는 것은 아니다.
또한, 추가적인 보간 필터들이 레이트 왜곡 분석에서 또한 고려될 수도 있는 추가적인 보간 예측 데이터를 생성하기 위해 적용될 수도 있다. 즉, 본 개시물의 기술들은 2 개의 보간 필터들에 기초하여 단지 제 1 보간 예측 데이터와 제 2 보간 예측 데이터만을 생성하는 것으로 한정되지 않고, 임의의 수의 보간 필터들에 기초하여 임의의 복수의 보간 예측 데이터를 생성하기 위해 적용될 수 있다. 레이트 왜곡 분석 보간 예측 데이터는 어느 필터를 선택할지를 식별하기 위해 이용된다는 것이 중요하다.
일 예에서, 방법은 복수의 상이한 보간 필터들에 기초하여 비디오 데이터의 인코딩을 위한 복수의 상이한 버전의 예측 데이터를 생성하는 단계, 레이트 왜곡 분석에 기초하여 복수의 상이한 버전의 예측 데이터 중에서 선택하는 단계, 그 선택에 기초하여 비디오 데이터를 인코딩하는 단계, 및 그 선택을 나타내기 위한 신택스를 인코딩하는 단계를 포함할 수도 있다.
또한, 본 개시물은 필터 계수들을 인코딩하는 기술을 고려한다. 예를 들어, 비디오 인코더 (22) 는 비디오 인코딩에서의 예측 데이터의 보간을 위한 일 세트의 필터 계수들을 식별하고, 고정된 보간 필터와 연관된 필터 계수들에 대한 일 세트의 필터 계수들의 예측 코딩에 기초하여 일 세트의 필터 계수들과 연관된 잔류 값들을 생성하고, 그 잔류 값들에 양자화를 적용하며, 그 양자화된 잔류 값들을 인코딩된 비트스트림의 일부로서 출력할 수도 있다.
비디오 디코더 (28) 는 일 세트의 필터 계수들과 연관된 잔류 값들을 수신하고, 고정된 보간 필터와 연관된 일 세트의 잔류 값들 및 필터 계수들에 기초한 예측 디코딩을 이용하여 일 세트의 필터 계수들을 생성하며, 비디오 블록들의 예측 디코딩을 위해 이용된 예측 데이터를 보간하기 위해 일 세트의 필터 계수들을 적용할 수도 있다.
도 2 는 본 개시물에 부합하는 필터링 기술들을 수행할 수도 있는 비디오 인코더 (50) 의 일 예를 예시하는 블록도이다. 비디오 인코더 (50) 는 본원에 "코더" 로서 지칭되는 전문화된 비디오 컴퓨터 디바이스 또는 장치의 일 예이다. 비디오 인코더 (50) 는 디바이스 (20) 의 비디오 인코더 (22), 또는 상이한 디바이스의 비디오 인코더에 대응할 수도 있다. 비디오 인코더 (50) 는 설명의 용이성을 위해 인트라-코딩 컴포넌트가 도 2 에는 도시되지 않지만 비디오 프레임들 내의 블록들에 대해 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라-코딩은 주어진 비디오 프레임 내의 비디오에서의 공간적 리던던시를 저감시키거나 제거하기 위해 공간적 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접한 프레임들 내의 비디오에서의 시간적 리던던시를 저감시키거나 제거하기 위해 시간적 예측에 의존한다. 인트라-모드 (I-모드) 는 공간적 기반 압축 모드를 나타낼 수도 있고, 예측 (P-모드) 또는 양방향성 (B-모드) 과 같은 인터-모드는 시간적 기반 압축 모드들을 나타낼 수도 있다. 본 개시물의 기술들은 인터-코딩 동안 적용되므로, 단순화 및 설명의 용이성을 위해 공간적 예측 유닛과 같은 인트라-코딩 유닛들은 도 2 에 예시되지 않는다.
도 2 에 도시한 바와 같이, 비디오 인코더 (50) 는 인코딩될 비디오 프레임 내의 비디오 블록을 수신한다. 도 2 의 예에서, 비디오 인코더 (50) 는 예측 유닛 (32), 메모리 (34), 가산기 (48), 변환 유닛 (38), 양자화 유닛 (40) 및 엔트로피 코딩 유닛 (46) 을 포함한다. 비디오 블록 복원을 위해, 비디오 인코더 (50) 는 역양자화 유닛 (42), 역변환 유닛 (44) 및 가산기 (51) 를 또한 포함한다. 블록 경계들을 필터링하여 복원된 비디오로부터 블록화 인공물 (blockiness artifact) 을 제거하기 위해 디블록킹 (deblocking) 필터 (미도시) 가 또한 포함될 수도 있다. 원한다면, 디블록킹 필터는 통상적으로 가산기 (51) 의 출력을 필터링할 것이다.
예측 유닛 (32) 은 모션 추정 (ME) 유닛 (35), 및 모션 보상 (MC) 유닛 (37) 을 포함할 수도 있다. 필터 (37) 가 예측 유닛 (32) 에 포함될 수도 있으며, 본 개시물에 따라 모션 추정 및/또는 모션 보상의 일부로서 보간 또는 보간-형 필터링을 수행하기 위해 ME 유닛 (35) 과 MC 유닛 (37) 중 하나 또는 양자에 의해 인보크 (invoke) 될 수도 있다. 필터 (37) 는 실제로는, 본원에 설명한 바와 같이 다수의 상이한 타입의 보간 및 보간-형 필터링을 용이하게 하기 위해 복수의 상이한 필터들을 나타낼 수도 있다. 따라서, 예측 유닛 (32) 은 복수의 보간 또는 보간-형 필터들을 포함할 수도 있다. 인코딩 프로세스 동안, 비디오 인코더 (50) 는 (도 2 에 "VIDEO BLOCK" 으로 레이블된) 코딩될 비디오 블록을 수신하고, 예측 유닛 (32) 은 (도 2 에 "PRED. BLOCK" 으로 레이블된) 예측 블록을 생성하기 위해 인터-예측 코딩을 수행한다. 상세하게는, ME 유닛 (35) 은 메모리 (34) 내의 예측 블록을 식별하기 위해 모션 추정을 수행할 수도 있으며, MC 유닛 (37) 은 예측 블록을 생성하기 위해 모션 보상을 수행할 수도 있다.
모션 추정은 통상적으로 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스로 고려된다. 예를 들어, 모션 벡터는 현재 프레임 (또는 다른 코딩된 단위) 내의 코딩될 블록에 대한 예측 또는 기준 프레임 (또는 다른 코딩된 단위, 예를 들어 슬라이스) 내의 예측 블록의 변위를 나타낼 수도 있다. 기준 프레임 (또는 프레임의 일부) 은 현재 비디오 블록이 속하는 비디오 프레임 (또는 비디오 프레임의 일부) 의 전과 후에 시간적으로 위치될 수도 있다. 모션 보상은 통상적으로 메모리 (34) 로부터 예측 블록을 페치 (fetching) 또는 생성하거나, 또는 모션 추정에 의해 결정된 모션 벡터에 기초하여 필터링된 예측 데이터를 가능하게는 보간 또는 다르게는 생성하는 프로세스로 고려된다.
ME 유닛 (35) 은 코딩될 비디오 블록을 하나 이상의 기준 프레임들 (예를 들어, 이전 및/또는 후속 프레임) 의 비디오 블록들과 비교함으로써 그 비디오 블록에 대한 적절한 모션 벡터를 선택한다. ME 유닛 (35) 은 때때로 프랙셔널 픽셀, 프랙셔널 화소 또는 서브-픽셀 모션 추정으로 지칭되는 프랙셔널 픽셀 정밀도를 가진 모션 추정을 수행할 수도 있다. 이와 같이, 프랙셔널 픽셀, 프랙셔널 화소 또는 서브-픽셀 모션 추정이라는 용어는 상호교환가능하게 사용될 수도 있다. 프랙셔널 픽셀 모션 추정에서, ME 유닛 (35) 은 정수 픽셀 위치 이외의 위치로의 변위를 나타내는 모션 벡터를 선택할 수도 있다. 이 방식으로, 프랙셔널 픽셀 모션 추정은 예측 유닛 (32) 이 정수-픽셀 (또는 풀-픽셀) 위치들보다 높은 정밀도를 가진 모션을 추적하는 것을 허용하여, 보다 정확한 예측 블록을 생성한다. 프랙셔널 픽셀 모션 추정은 1/2-픽셀 정밀도, 1/4-픽셀 정밀도, 1/8-픽셀 정밀도 또는 임의의 보다 미세한 정밀도를 가질 수도 있다. ME 유닛 (35) 은 모션 추정 프로세스 동안 임의의 필요한 보간들을 위해 필터(들) (39) 를 인보크할 수도 있다.
프랙셔널 픽셀 모션 보상을 수행하기 위해, MC 유닛 (37) 은 (본원에 서브-픽셀 또는 프랙셔널 픽셀 값들로 지칭되는) 서브-픽셀 해상도의 데이터를 생성하기 위하여 보간 (때때로 보간 필터링으로 지칭) 을 수행할 수도 있다. MC 유닛 (37) 은 이 보간을 위해 필터(들) (39) 를 인보크할 수도 있다. 예측 유닛 (32) 은 본원에 설명된 기술들을 이용하여 보간 (또는 정수 픽셀들의 보간-형 필터링) 을 수행할 수도 있다.
일단 코딩될 비디오 블록에 대한 모션 벡터가 ME 유닛 (35) 에 의해 선택되면, MC 유닛 (37) 은 그 모션 벡터와 연관된 예측 비디오 블록을 생성한다. MC 유닛 (37) 은 MC 유닛 (35) 에 의해 결정된 모션 벡터에 기초하여 메모리 (34) 로부터 예측 블록을 페치할 수도 있다. 프랙셔널 픽셀 정밀도를 가진 모션 벡터의 경우에, MC 유닛 (37) 은 메모리 (34) 로부터의 데이터를 필터링하여 이러한 데이터를 서브-픽셀 해상도로 보간하며, 예를 들어 이 프로세스를 위해 필터(들) (39) 를 인보크한다. 일부 경우에, 서브-픽셀 예측 데이터를 생성하는데 이용된 보간 필터링 기술 또는 모드는 코딩된 비트스트림에의 포함을 위해 엔트로피 코딩 유닛 (66) 에 대한 하나 이상의 보간 신택스 엘리먼트들로서 나타내질 수도 있다. 실제로, 본 개시물의 일부 양태들은 전달될 필요가 있는 신택스의 양을 저감시키기 위한 픽셀 대칭 및 계수 대칭의 이용에 관한 것이다.
일단 예측 유닛 (32) 이 예측 블록을 생성했다면, 비디오 인코더 (50) 는 코딩되는 원래의 비디오 블록으로부터 예측 블록을 감산함으로써 (도 2 에 "RESID. BLOCK" 으로 레이블된) 잔류 비디오 블록을 형성한다. 가산기 (48) 는 이 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 변환 유닛 (38) 은 잔류 블록에, DCT 와 같은 변환 또는 개념적으로 유사한 변환을 적용하여, 잔류 변환 블록 계수들을 포함한 비디오 블록을 생성한다. 예를 들어, 변환 유닛 (38) 은 DCT 와 개념적으로 유사한, H.264 표준에 의해 정의된 변환과 같은 다른 변환들을 수행할 수도 있다. 웨이브렛 변환들, 정수 변환들, 서브-대역 변환들 또는 다른 타입의 변환들이 또한 이용될 수 있다. 임의의 경우에, 변환 유닛 (38) 은 잔류 블록에 변환을 적용하여, 잔류 변환 계수들의 블록을 생성한다. 변환은 잔류 정보를 픽셀 도메인으로부터 주파수 도메인으로 컨버팅할 수도 있다.
양자화 유닛 (40) 은 비트 레이트를 더욱 저감시키기 위해 잔류 변환 계수들을 양자화한다. 양자화 프로세스는 계수들 중 일부 또는 전부와 연관된 비트 심도 (bit depth) 를 저감시킬 수도 있다. 양자화에 이어, 엔트로피 코딩 유닛 (46) 은 양자화된 변환 계수들을 엔트로피 코딩한다. 예를 들어, 엔트로피 코딩 유닛 (46) 은 CAVLC, CABAC, 또는 다른 엔트로피 코딩 방법론을 수행할 수도 있다.
또한, 엔트로피 코딩 유닛 (46) 은 예측 유닛 (32) 또는 비디오 인코더 (50) 의 다른 컴포넌트로부터 획득된 하나 이상의 예측 신택스 엘리먼트들을 코딩할 수도 있다. 하나 이상의 예측 신택스 엘리먼트들은 코딩 모드, 하나 이상의 모션 벡터들, 서브-픽셀 데이터를 생성하기 위해 이용한 보간 기술, 일 세트 또는 서브세트의 필터 계수들, 또는 예측 블록의 생성과 연관된 다른 정보를 포함할 수도 있다. 계수 예측 및 양자화 유닛 (41) 은 본 개시물의 일부 양태들에 따라 필터 계수들과 같은 예측 신택스를 예측적으로 인코딩 및 양자화할 수도 있다. 엔트로피 코딩 유닛 (46) 에 의한 엔트로피 코딩에 이어, 인코딩된 비디오 및 신택스 엘리먼트들은 다른 디바이스로 송신되거나 추후 송신 또는 검색을 위해 아카이브될 수도 있다.
역양자화 유닛 (42) 및 역변환 유닛 (44) 은 예를 들어 기준 블록으로서의 추후 이용을 위해 픽셀 도메인에서 잔류 블록을 복원하기 위해 역양자화 및 역변환을 각각 적용한다. 복원된 잔류 블록 (도 2 에서 "RECON. RESID. BLOCK" 으로 레이블) 은 변환 유닛 (38) 에 제공되는 복원된 버전의 잔류 블록을 나타낼 수도 있다. 복원된 잔류 블록은 양자화 및 역양자화 동작들에 의해 야기되는 상세의 손실로 인해 합산기 (48) 에 의해 생성되는 잔류 블록과 다를 수도 있다. 합산기 (51) 는 복원된 잔류 블록을 예측 유닛 (32) 에 의해 생성된 모션 보상된 예측 블록에 가산하여 메모리 (34) 에의 저장을 위한 복원된 비디오 블록을 생성한다. 복원된 비디오 블록은 예측 유닛 (32) 에 의해, 후속 비디오 프레임 또는 후속 코딩된 단위에서의 블록을 후속 코딩하는데 이용될 수도 있는 기준 블록으로서 이용될 수도 있다.
상기 설명한 바와 같이, 예측 유닛 (32) 은 프랙셔널 픽셀 (또는 서브-픽셀) 정밀도를 가진 모션 추정을 수행할 수도 있다. 예측 유닛 (32) 이 프랙셔널 픽셀 모션 추정을 이용하는 경우에, 예측 유닛 (32) 은 본 개시물에 설명된 보간 동작들을 이용하여 서브-픽셀 해상도 (예를 들어, 서브-픽셀 또는 프랙셔널 픽셀 값들) 의 데이터를 생성할 수도 있다. 즉, 보간 동작들은 정수 픽셀 포지션들 간의 위치의 값들을 컴퓨팅하는데 이용된다. 정수 픽셀 포지션들 간의 거리의 절반에 위치한 서브-픽셀 포지션들은 1/2-픽셀 (1/2-화소 (half-pel)) 포지션들로 지칭될 수도 있고, 정수-픽셀 포지션과 1/2-픽셀 포지션 사이의 거리의 절반에 위치한 서브-픽셀 포지션들은 1/4-픽셀 (1/4-화소 (quarter-pel)) 포지션들로 지칭될 수도 있으며, 정수-픽셀 포지션 (또는 1/2-픽셀 포지션) 과 1/4-픽셀 포지션 사이의 거리의 절반에 위치한 서브-픽셀 포지션들은 1/8-픽셀 (1/8-화소 (eighth-pel)) 포지션들로 지칭될 수도 있으며, 등등이다.
도 3 은 예측 데이터와 연관된 정수 픽셀 (또는 풀 픽셀) 포지션들, 및 보간 예측 데이터와 연관된 서브-픽셀 (또는 프랙셔널-픽셀) 포지션들을 예시하는 개념도이다. 도 3 의 개념도에서, 상이한 박스들은 프레임 또는 프레임의 블록 내의 픽셀 및 서브-픽셀 위치들 또는 포지션들을 나타낸다. (실선으로 된 박스들 내의) 대문자들은 정수-픽셀 위치들을 나타내는 한편, (점선으로 된 박스들 내의) 소문자들은 서브-픽셀 위치들을 나타낸다. 특히, 픽셀 위치들 (A1 내지 A6, B1 내지 B6, C1 내지 C6, D1 내지 D6, E1 내지 E6 및 F1 내지 F6) 은 프레임, 슬라이스 또는 다른 코딩된 단위 내의 6×6 어레이의 정수 픽셀 위치들을 나타낸다. 서브-픽셀 위치들 "a" 내지 "o" 는 예를 들어 정수 픽셀 위치들 (C3, C4, D3, 및 D4) 사이의 정수 픽셀 C3 과 연관된 15 개의 서브-픽셀 위치들을 나타낸다. 유사한 서브-픽셀 위치들은 모든 정수 픽셀 위치에 대해 존재할 수도 있다. 서브-픽셀 위치들 "a" 내지 "o" 는 정수 픽셀 C3 과 연관된 모든 1/2-화소 및 1/4-화소 픽셀 위치를 나타낸다.
정수-픽셀 위치들은 비디오 데이터가 처음에 생성되었을 때 포토다이오드와 같은 물리적 센서 엘리먼트와 연관될 수도 있다. 포토다이오드는 센서의 위치에서의 광원의 강도를 측정하고 정수-픽셀 위치와 픽셀 강도 값을 연관시킬 수도 있다. 다시, 각 정수-픽셀 위치는 연관된 세트의 15 개의 서브-픽셀 위치들 (또는 가능하다면 그 보다 많은 서브-픽셀 위치들) 을 가질 수도 있다. 정수-픽셀 위치들과 연관된 서브-픽셀 위치들의 수는 원하는 정밀도에 의존할 수도 있다. 도 3 에 예시된 예에서, 원하는 정밀도는 1/4-픽셀 정밀도이며, 그 경우에, 정수 픽셀 위치들 각각은 15 개의 상이한 서브-픽셀 포지션들과 대응할 수도 있다. 보다 많거나 보다 적은 서브-픽셀 포지션들은 원하는 정밀도에 기초하여 각 정수-픽셀 위치와 연관될 수도 있다. 예를 들어, 1/2-픽셀 정밀도의 경우, 각 정수-픽셀 위치는 3 개의 서브-픽셀 포지션들과 대응할 수도 있다. 다른 예로서, 정수-픽셀 위치들 각각은 1/8-픽셀 정밀도의 경우 63 개의 서브-픽셀 포지션들과 대응할 수도 있다. 각 픽셀 위치는 하나 이상의 픽셀 값들, 예를 들어 하나 이상의 루미네선스 및 크로미넌스 값들을 정의할 수도 있다.
Y 는 루미네선스를 나타낼 수도 있고, Cb 및 Cr 은 3 차원 YCbCr 컬러 공간의 2 개의 상이한 값들의 크로미넌스를 나타낼 수도 있다. 각 픽셀 위치는 실제로는 3 차원 컬러 공간에 대한 3 개의 픽셀 값들을 정의할 수도 있다. 그러나, 본 개시물의 기술들은 단순화하기 위해 1 차원에 대한 예측과 관련이 있을 수도 있다. 기술들이 일차원에서 픽셀 값들에 대하여 설명될 경우에, 유사한 기술들은 다른 차원으로 확장될 수도 있다.
도 3 의 예에서, 정수 픽셀 "C3" 과 연관된 서브-픽셀 위치들은 1/4-픽셀 정밀도를 위해 예시된다. 픽셀 C3 과 연관된 15 개의 서브-픽셀 포지션들은 "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n" 및 "o" 로 레이블된다. (이하 더욱 상세하게 설명되는 바와 같이, 픽셀 위치 C3 과 연관된 15 개의 상이한 프랙셔널 위치들 중 하나 이상을 생성하는데 이용된 것 외에) 다른 정수-픽셀 위치들과 연관된 다른 프랙셔널 위치들 대부분은 단순화를 위해 도시되지 않는다. 서브-픽셀 위치들 "b", "h" 및 "j" 는 1/2-픽셀 위치들로 지칭될 수도 있으며, 서브-픽셀 위치들 "a", "c", "d", "e", "f", "g", "i", "k", "l", "m" 및 "o" 는 1/4-픽셀 위치들로 지칭될 수도 있다.
비디오 인코더 (40) 의 예측 유닛 (32) 은 MC 유닛 (37) 에 의한 보간 필터링을 이용하여 서브-픽셀 위치들 "a" 내지 "o" 에 대한 픽셀 값들을 결정할 수도 있다. ITU-T H.264 표준에 부합하여, 예를 들어, 예측 유닛 (32) 은 위너 필터와 같은 6-탭 보간 필터를 이용하여 1/2-픽셀 위치들에 대한 픽셀 값들을 결정할 수도 있다. H.264 표준의 경우에, 다른 계수들이 이용될 수도 있지만, 6-탭 보간 필터에 대한 필터 계수들은 통상적으로 [1, -5, 20, 20, -5, 1] 이다. 예측 유닛 (32) 은 보간 필터를 먼저 수평 방향으로, 그 후 수직 방향으로, 또는 먼저 수직 방향으로, 그 후 수평 방향으로 적용할 수도 있다. 1/2-픽셀 포지션들 "b" 및 "h" 의 경우, 각 탭은 각각 수평 및 수직 방향에서의 정수 픽셀 포지션에 대응할 수도 있다. 특히, 1/2-픽셀 포지션 "b" 의 경우, 6-탭 필터의 탭들은 C1, C2, C3, C4, C5 및 C6 에 대응한다. 마찬가지로, 1/2-픽셀 포지션 "h" 의 경우, 6-탭 필터의 탭들은 A3, B3, C3, D3, E3 및 F3 에 대응한다. 예를 들어, 서브-픽셀 포지션들 "b" 및 "h" 에 대한 픽셀 값들은 식 (1) 및 식 (2) :
를 이용하여 컴퓨팅될 수도 있다.
1/2-픽셀 포지션 "j" 의 경우, 6-탭 필터의 탭들은 그들을 포지션들 (C1 내지 C6 및 D1 내지 D6) 사이에 수평으로 또는 포지션들 (A3 내지 F3 및 A4 내지 A4) 사이에 수직으로 보간된 것에 대응시킨다. 1/2-픽셀 위치 "j" 는 예를 들어 식 (3) 또는 식 (4) :
중 하나에 따라 1/2-픽셀 포지션들의 이전에 보간된 픽셀 값들을 이용하는 6-탭 필터로 컴퓨팅될 수도 있으며, 여기서 (도 3 에 예시한 바와 같이) aa 는 A3 과 A4 사이의 보간에 대응하고, bb 는 B3 과 B4 사이의 보간에 대응하고, b 는 C3 과 C4 사이의 보간에 대응하고, hh 는 D3 과 D4 사이의 보간에 대응하고, ii 는 E3 과 E4 사이의 보간에 대응하며, jj 는 F3 과 F4 사이의 보간에 대응한다. 식 (4) 에서, cc 는 C1 과 D1 사이의 보간에 대응하고, dd 는 C2 와 D2 사이의 보간에 대응하고, h 는 C3 과 D3 사이의 보간에 대응하고, ee 는 C4 와 D4 사이의 보간에 대응하고, ff 는 C5 와 D5 사이의 보간에 대응하며, gg 는 C6 과 D6 사이의 보간에 대응한다.
H.264 표준에 부합하여, 예측 유닛 (32) 은 쌍일차 보간 필터를 이용하여 1/4-픽셀 위치들 "a", "c", "d", "e", "f", "g", "i", "k", "l", "m", "n" 및 "o" 의 픽셀 값들 및 주위의 정수-픽셀 및 1/2-픽셀 위치들의 픽셀 값들을 결정할 수도 있다. 예를 들어, 예측 유닛 (32) 은 C3 및 "b" 의 픽셀 값들을 이용하여 서브-픽셀 포지션 "a" 와 연관된 픽셀 값을 결정하고, "b" 및 C4 의 픽셀 값들을 이용하여 서브-픽셀 포지션 "c" 와 연관된 픽셀 값을 결정하며, 등등을 행할 수도 있다.
MC 유닛 (37) 에 의해 서브-픽셀 위치들에서의 보간된 데이터를 생성하기 위해 적용되는 실제 필터로 광범위한 구현이 실시될 수도 있다. 일 예로서, 예측 유닛 (32) 은 이하 설명되는 바와 같이 적응형 보간 필터링 (AIF) 을 이용하여 보간된 값들을 정의할 수도 있다. ITU-T SG16/Q.6/VCEG (Video Coding Expert Group) 위원회는 H.264 보다 더 높은 코딩 효율을 제공하는 코딩 테크놀로지들, 및 특히 AIF 를 연구하였다. AIF 는 특히 높은 해상도 (예를 들어, 720i/p 또는 1080i/p) 를 가진 비디오 시퀀스들에 대해, H.264 표준에서 이용된 보간 필터링에 비해 큰 코딩 이득을 제공한다. AIF 에서, 각 서브-픽셀 포지션에 대한 보간 필터는 보간 에러 에너지를 최소화함으로써 각 비디오 프레임에 대해 분석적으로 계산된다. 이는 에일리어싱 (aliasing), 양자화 및 모션 추정 에러들, 카메라 잡음 또는 원래의 및 기준 비디오 프레임들에 포함된 다른 인공물의 처리를 돕는다. 그 후, 각 프레임에 대해 분석적으로 도출된 적응형 필터 계수들은 예측되고, 양자화되며, 코딩되어 비디오 비트스트림으로 전송된다. 본 개시물의 기술들 중 일부 기술은 AIF 방식은 물론 많은 다른 보간 방식들 내에서 작동할 수 있다.
본 개시물의 양태들에 부합하는 많은 상이한 타입의 AIF 방식들이 있다. 예를 들어, 제 1 방식은 2 차원 NS-AIF (분리불가능한 (Non-Separable) AIF) 이고, 제 2 방식은 S (분리가능한 (Separable))-AIF 이며, 제 3 방식은 방향성 필터를 가진 AIF (D-AIF) 이다. 이들 AIF 방식들 각각이 상이한 보간 기술들 및 서포트를 이용하지만, 모든 3 개의 AIF 방식들은 일 예로서 분리불가능한 AIF 를 이용하여 이하 설명되는 필터 계수들을 도출하는데 유사한 분석적 프로세스들을 이용할 수도 있다.
6×6 2 차원 분리불가능한 필터가 계수들 을 갖는다는 것을 가정해본다 (여기서 i,j = 0, ..., 5 이고, SP 는 도 3 에 도시된 15 개의 서브-픽셀 포지션들 ("a" 내지 "o") 중 하나를 나타낸다). 15 개의 서브-픽셀 포지션들 중 6 개의 서브-픽셀 포지션들, 즉, "a", "b", "c", "d", "h" 및 "l" 은 1 차원 (1D) 서브-픽셀 포지션들이고, 예측 유닛 (32) 은 이러한 데이터를 보간하기 위해 6-탭 보간 필터를 이용할 수도 있다. 서브-픽셀 포지션들 "a", "b", "c", "d", "h" 및 "l" 은 그들이 2 개의 정수-픽셀 포지션들 사이에서 수평 또는 수직 라인에 위치된다는 의미에서 1D 이다. 또한, 기준 프레임에서 정수-픽셀 포지션들 (도 3 의 A1 내지 F6) 에서의 예측 픽셀들이 의 픽셀 값들을 취한다는 것을 가정한다 (여기서 i,j = 0, ..., 5 이다). 즉, A1 은 의 값을 취하고, ..., A6 은 의 값을 취하고, ..., F1 은 의 값을 취하며, ..., F6 은 의 값을 취한다. 그 후, 서브-픽셀 포지션 에서의 보간된 값 은 예측 유닛 (32) 에 의해 다음의 식 :
을 이용하여 계산될 수도 있다.
이며, 여기서 는 모션 벡터이고, 는 모션 벡터의 정수 컴포넌트이며, 는 필터 오프셋이다. 값 은 기준 프레임들에서의 대응하는 픽셀 포지션이다. 예를 들어, 6-탭 필터의 경우에, 이다. 각 서브-픽셀 포지션 의 경우, 현재의 프레임에서의 실제 픽셀 값과 보간된 값 사이의 예측 에러 에너지 는 예측 유닛 (32) 에 의해 서브-픽셀 포지션 에 대응하는 모션 벡터 정밀도를 갖는 모든 픽셀들에 대해 누산될 수 있다. 예측 에러 에너지 는 예측 유닛 (32) 에 의해 다음의 식 :
을 이용하여 계산될 수도 있다.
서브-픽셀 포지션들 a 내지 o 각각에 대해, MC 유닛 (37) 은 필터 계수들 에 대하여 의 도함수 (derivative) 를 컴퓨팅함으로써 개별적인 세트의 식들을 셋업할 수도 있다. 이 경우에, 식들의 수는 현재의 서브-픽셀 포지션 에 대해 이용된 필터 계수들의 수와 같다. 각 2 차원 (2D) 서브-픽셀 포지션 "e", "f", "g", "i", "j", "k", "m", "n" 및 "o" 에 대해, 예측 유닛 (32) 은 6×6 탭 2D 보간 필터를 이용할 수도 있다. 서브-픽셀 포지션들 "e", "f", "g", "i", "j", "k", "m", "n" 및 "o" 은 그들이 2 개의 정수-픽셀 포지션들 사이에서 수직 라인 또는 수평 라인에 위치되지 않는다는 의미에서 2D 이다. 이 경우에, 36 개의 미지물들 (unknowns) 을 가진 36 개의 식들의 시스템이 MC 유닛 (37) 에 의해 해결될 수 있다. 나머지 1D 서브-픽셀 포지션들 "a", "b", "c", "d", "h" 및 "l" 은 단지 1D 보간 필터 (예를 들어, 1D 6-탭 필터) 만을 요구할 수도 있다. 1D 6-탭 필터의 경우에, 6 개의 식들의 시스템은 MC 유닛 (37) 에 의해 해결될 수 있다.
필터(들) (39) 는 MC 유닛 (37) 에 의해 예측 데이터를 생성하는데 이용될 수 있는 하나의 필터 또는 일 세트의 다수의 상이한 필터들을 나타낼 수도 있다.
따라서, AIF 필터들을 도출 및 적용하는 하나의 프로세스예가 예측 유닛 (32) 에 의해 수행될 수 있는 다음의 단계들을 가질 수도 있다 :
2. 이들 모션 벡터들을 이용하여, 현재의 비디오 프레임에 걸쳐 각 서브-픽셀 포지션 에 대한 예측 에러 에너지를 누산. 그 후, 상기의 2 개의 예측 에너지 식들에서와 같이 예측 에러 에너지를 최소화함으로써 각 서브-픽셀 포지션 에 대한 적응형 필터 계수들 을 독립적으로 계산.
3. 새로운 모션 벡터들을 추정. 이 모션 추정 프로세스 동안, 단계 2 에서 컴퓨팅된 적응형 보간 필터들이 적용될 수도 있다. 적응형 보간 필터들을 이용하면, 에일리어싱, 카메라 잡음 등에 의해 야기되는 모션 추정 에러들이 저감되며 더 양호한 모션 예측이 달성된다.
상이한 AIF 방식들은 상기 주어진 것과 동일한 분석적 프로세스를 이용할 수도 있다. 상이한 방식들 사이의 차이는 대부분 이용되는 고유한 필터 계수들의 수, 보간 필터들이 분리가능한지 또는 분리불가능한지 여부, 및 이용되는 필터 서포트 (즉, 서브-픽셀 포지션들의 적어도 일부를 보간하는데 이용된 정수 픽셀 포지션들) 에 있다. 이들 방식들 각각에서, 인코딩되어 비디오 비트스트림으로 전송될 필요가 있는 필터 계수들의 수를 저감시키기 위해 AIF 필터들에 대한 소정의 대칭 제약들이 부과될 수도 있다.
예를 들어, NS-AIF 의 경우, 예측 유닛 (32) 의 MC 유닛 (37) 은 6 개의 계수들을 요구하는 1D 6-탭 보간 필터 (각 탭이 정수-픽셀 포지션과 대응하기 때문에 6-포지션 필터로도 지칭됨) 를 이용하여 1D 서브-픽셀 포지션들 "a", "b", "c", "d", "h" 및 "l" 을 보간할 수도 있다. 1D 서브-픽셀을 보간하는데 이용된 6-포지션 필터들의 6 개의 계수들은 각각 도 3 에 예시된 정수-픽셀 포지션들 중 하나와 대응한다. 예를 들어, 서브-픽셀 포지션들 "a", "b" 및 "c" 에 대해, 계수들에 대응하는 6 개의 정수-픽셀 포지션들은 C1, C2, C3, C4, C5 및 C6 이며, 서브-픽셀 포지션들 "d", "h" 및 "l" 에 대해, 계수들에 대응하는 6 개의 정수-픽셀 포지션들은 A3, B3, C3, D3, E3 및 F3 이다. 이들 정수-픽셀 포지션들은 보간 필터의 "필터 서포트" 를 나타낸다.
예측 유닛 (32) 은 36 개의 필터 계수들을 요구하는 2D 6×6 보간 필터를 이용하여 2D 서브-픽셀 포지션들 "e", "f", "g", "i", "j", "k", "m", "n" 및 "o" 를 보간할 수도 있다. 2D 서브-픽셀을 보간하는데 이용된 2D 6×6 보간 필터의 36 개의 계수들은 각각 정수-픽셀 포지션들 A1 내지 A6, B1 내지 B6, C1 내지 C6, D1 내지 D6, E1 내지 E6 및 F1 내지 F6 과 대응한다. 이들 정수-픽셀 포지션들은 보간 필터의 "필터 서포트" 를 나타낸다. 추가적인 제약이 부과되지 않는다면, 예를 들어, 계수 대칭 또는 픽셀 대칭이 없다면, 비디오 인코더 (50) 는 2D 서브-픽셀 포지션들에 대한 9 개의 세트의 36 개의 계수들 및 1D 서브-픽셀 포지션들에 대한 6 개의 세트의 6 개의 계수들 (총합 360 개의 계수들) 을 인코딩 및 송신할 수도 있다. 비디오 비트스트림에서의 그 수의 계수들을 인코딩 및 전송하면 비용이 많이 드는 비트 오버헤드를 초래할 수도 있다. 높은 비트 오버헤드는 차례로 주어진 레벨의 왜곡에 대한 비트 레이트를 증가시킬 수도 있는데, 이는 바람직하지 않다.
필터 계수들을 전송하는 것과 연관된 비트 오버헤드를 저감시키기 위해, 소정의 대칭 제약들이 디코더 (28) 로 전송될 필요가 있는 고유한 필터 계수들의 수를 저감시키기 위해 보간 필터들에 부과될 수도 있다. 2 가지 타입의 대칭, 즉, 픽셀 대칭 및 계수 대칭은 단독으로 또는 조합하여 부과될 수도 있다. 픽셀 대칭은 상이한 서브-픽셀 포지션들에 대해 동일한 세트의 필터 계수들 (및 미러링, 플립핑 및/또는 회전된 버전의 세트) 를 강요한다. 또한, 픽셀 대칭은 이러한 픽셀 대칭이 2 개 이상의 서브-픽셀 위치들과 연관된 필터 계수들에 대하여 적용되는 한에 있어서는 서브-픽셀 대칭으로 지칭될 수도 있다. 한편, 계수 대칭은 보간될 주어진 서브-픽셀 값들에 있어서 다른 필터 서포트 포지션들에 대한 다양한 필터 서포트 포지션들에 대해 소정 방향 (예를 들어, 수평 방향, 수직 방향 또는 양자의 방향) 에서 주어진 보간 필터가 대칭이 되는 것을 강요한다.
픽셀 대칭은 NS-AIF 에서 이용될 수도 있다. 다시 도 3 을 참조하여, 을 서브-픽셀 포지션 "a" 에 대한 필터 계수들의 세트로 하면, 서브-픽셀 포지션 "c" 에 대한 필터 계수들의 세트는 , 즉, 역순으로 또는 수평으로 플립핑된 동일한 계수이다. 즉, 서브-픽셀 포지션 "a" 에서의 예측 픽셀 값 및 서브-픽셀 포지션 "c" 에서의 예측 픽셀 값 은 각각 식 (8) 및 식 (9) :
을 이용하여 계산될 수도 있다.
서브-픽셀 포지션들 "d" 및 "l" 은 각각 서브-픽셀 포지션들 "a" 및 "c" 과 동일한 세트의 보간 필터 계수들을 이용하여 보간될 수도 있다. 이로써, 서브-픽셀 포지션들 "a" 및 "c" 는 서브-픽셀 포지션들 "d" 및 "l" 에 대해 픽셀 대칭을 가질 수도 있다.
본 개시물의 일 양태는 서브-픽셀 포지션들 "d" 및 "l" 에 대한 서브-픽셀 포지션들 "a" 및 "c" 사이의 픽셀 대칭을 실제로 제거하는 것이다. 또한, 픽셀 대칭은 서브-픽셀 포지션 "i" 에 대한 서브-픽셀 포지션 "f" 에 대해 회피될 수도 있다. 또한, 픽셀 대칭은 서브-픽셀 포지션 "n" 에 대한 서브-픽셀 포지션 "k" 에 대해 회피될 수도 있다. 이러한 경우에는, 대각 상관이 낮아, 이들 경우에 대각 대칭을 부과하는 것은 비효율적 또는 비효과적이 될 수도 있다.
다른 예로서, 을 서브-픽셀 포지션 "e" 에 대한 6×6 2D 필터 계수들의 세트로 한다. 그 때, 포지션 "g" 에 대한 필터 계수들의 세트는 (수평으로 플립핑된 버전) 이다. 유사하게, 서브-픽셀 포지션 "m" 에 대한 필터 계수들의 세트는 (수직으로 플립핑된 버전) 이며, 서브-픽셀 포지션 "o" 에 대한 필터 계수들의 세트는 (먼저 수평으로 플립핑된 후 수직으로 플립핑된) 이다. 이로써, 서브-픽셀 포지션들 "e", "g", "m" 및 "o" 는 픽셀 대칭을 갖는다. 서브-픽셀 포지션들 ("b" 및 "h") 사이, 및 포지션들 ("f", "i", "k" 및 "n") 사이의 대칭은 상기 주어진 예들과 유사한 방식으로 부과된다. 이러한 픽셀 대칭 제약 하에서는, 단지 5 개의 그룹의 고유한 필터 세트들, 즉, 서브 픽셀 그룹 "a", "c", "d" 및 "l" 에 대한 제 1 세트의 필터 계수들, 서브-픽셀 그룹 "b" 및 "h" 에 대한 제 2 세트의 필터 계수들, 서브-픽셀 그룹 "e", "g", "m" 및 "o" 에 대한 제 3 세트의 필터 계수들, 서브-픽셀 그룹 "f", "i", "k" 및 "n" 에 대한 제 4 세트의 필터 계수들, 및 서브-픽셀 그룹 "j" 에 대한 제 5 세트의 필터 계수들이 남아 있다.
또한, NS-AIF 는 이들 필터 세트들 중 일부에 대해 단독으로 또는 상기 설명된 서브-픽셀 대칭과 조합하여 계수 대칭 제약을 부과할 수도 있다. 일부 경우에, 대각 계수 대칭은 고의로 회피될 수도 있으며 예를 들어 임의의 대각 계수 대칭 제약들을 제거할 수도 있다. 일 경우에, 서브-픽셀 위치들 "a", "c", "d" 및 "l" 을 포함하는 제 1 그룹의 서브-픽셀 포지션들에 대한 필터에 대해 어떠한 계수 대칭도 부과되지 않는다. 그러나, 계수를 포함하는 제 2 그룹의 서브-픽셀 포지션들 "b" 및 "h" 은 식 (10) :
에 따라 계수 대칭을 가질 수도 있다. 마찬가지로, 서브-픽셀 포지션들 "e", "f" 및 "j" 를 각각 포함하는 제 3 그룹, 제 4 그룹 및 제 5 그룹의 서브-픽셀 포지션들에 대한 보간 필터들의 계수들은 각각 식 (11), 식 (12) 및 식 (13) :
에서 주어진 것처럼 계수 대칭을 가질 수도 있다.
상기 설명된 이러한 픽셀 대칭 및 계수 대칭 제약들 하에서, 고유한 필터 계수들의 수는 360 (대칭 제약이 없음) 개의 계수들에서 개의 계수들, 즉, 서브-픽셀 포지션 "a" 을 포함하는 그룹에 대해 6 개의 계수들, 서브-픽셀 포지션 "b" 를 포함하는 그룹에 대해 3 개의 계수들, 서브-픽셀 포지션 "e" 를 포함하는 그룹에 대해 21 개의 계수들, 서브-픽셀 포지션 "f" 를 포함하는 그룹에 대해 18 개의 계수들, 및 서브-픽셀 포지션 "j" 를 포함하는 그룹에 대해 6 개의 계수들까지 저감될 수 있다. 따라서, NS-AIF 에서, 비디오 인코더 (22) 는 대칭 제약이 없는 경우에서처럼, 360 개의 계수 대신에 54 개의 계수들을 인코딩 및 송신할 수도 있다. 상기 설명한 바와 같이, 54 개의 계수들은 상기 식 (7) 에 기초하여 분석적으로 해결될 수도 있다. 비디오 인코더 (50) 는 그 후 계수들을 예측하고, 양자화하며, (예를 들어 부호화된 Exp-Golobm 코드를 이용하여) 코딩하여, 비트스트림으로 전송할 수도 있다. 필터 계수들의 예측 코딩에 대한 추가적인 상세는 이하 더 상세하게 논의된다. 계수 예측 및 양자화 유닛 (41) 은 본 개시물에 부합하는 필터 계수들의 예측 코딩 및 양자화를 위해 이용될 수도 있다.
다른 AIF 방식, 즉, S-AIF 에서, 예측 유닛 (32) 은 NS-AIF 에 이용한 것처럼 분리불가능한 보간 필터들 대신에, 분리가능한 보간 필터들을 수평 방향 및 수직 방향으로 이용할 수도 있다. 1D 서브-픽셀 포지션들에 대해, 예측 유닛 (32) (예를 들어, 예측 유닛 (32) 의 MC 유닛 (37)) 은 서브-픽셀 위치에 의존하여 단지 수평 방향성 필터들 또는 단지 수직 방향성 필터들만을 적용한다. 일 예에서, 수평 방향성 필터들 및 수직 방향성 필터들은 6-포지션 (또는 6-탭) 필터들을 포함한다. 예측 유닛 (32) 은 필터 서포트로서 정수-픽셀 포지션들 C1, C2, C3, C4, C5 및 C6 과 서브-픽셀 포지션들 "a", "b" 및 "c" 에 대해 수평 방향성 필터들을 적용 (도 3 참조) 하고 필터 서포트로서 정수-픽셀 포지션들 A3, B3, C3, D3, E3 및 F3 과 서브-픽셀 포지션들 "d", "h" 및 "l" 에 대해 수직 방향성 필터들을 적용 (도 3 참조) 한다. 나머지 서브-픽셀 포지션들, 즉, 2D 서브-픽셀 포지션들에 대해서는, 예측 유닛 (32) 은 먼저 수평 필터링을 적용한 후 수직 필터링을 적용하거나 수직 필터링을 적용한 후 수평 필터링을 적용한다. 다시, 분리가능한 수평 필터들 및 수직 필터들에 대해 이용된 필터 계수들은 상기 식 (7) 에 따라 컴퓨팅될 수도 있다. 임의의 대칭 없이, S-AIF 는 대칭이 없는 NS-AIF 의 경우에서처럼, 코딩 및 전송될 필요가 있는 계수들의 수를 360 개의 계수들로부터 144 개의 계수들로 저감시킬 수도 있다.
S-AIF 는 또한 보간 필터들 중 적어도 일부에 대해 하나 이상의 대칭 제약들을 부과할 수도 있다. NS-AIF 의 서브-픽셀 대칭과 달리, S-AIF 의 경우에는, 서브-픽셀 포지션들 "a" 및 "c" 에 대해 이용된 필터 세트들은 비대칭, 즉, 서로 수평으로 플립핑된 버전이다. 대신에, 서브-픽셀 포지션들 "a" 및 "c" 에 대해 이용된 필터 세트들의 계수들은 각각 및 로서 서로 독립적으로 도출된다. 수직 움직임을 갖는 각 서브-픽셀 포지션에 대해, 서브-픽셀 대칭은 NS-AIF 와 유사하다. 즉, 서브-픽셀 포지션들 "d" 및 "l" 에 대한 계수들, 서브-픽셀 포지션들 "e" 및 "m" 에 대한 계수들, 서브-픽셀 포지션들 "f" 및 "n" 에 대한 계수들, 및 서브-픽셀 포지션들 "g" 및 "o" 에 대한 계수들은 각각 서로 수직으로 플립핑된 버전이다. 예를 들어, 서브-픽셀 포지션 "d" 에 대한 수직 필터의 계수들이 인 경우, 서브-픽셀 포지션 "l" 에 대한 수직 필터의 계수들은 이다. 따라서, S-AIF 에 이용되는 서브-픽셀 대칭은 단지 1 차원에서 수직 서브-픽셀 대칭을 갖는다. 그러나, S-AIF 는 수평 서브-픽셀 대칭을 갖지 않는다. S-AIF 에서의 서브-픽셀 대칭은 인코딩되고 전송될 필요가 있는 계수들의 수를 144 개의 계수들로부터 102 개의 계수들로 저감시킬 수도 있다.
또한, S-AIF 는 NS-AIF 와 마찬가지로, 계수 대칭을 이용하여 비디오 인코더 (50) 에 의해 인코딩 및 전송될 필요가 있는 계수들의 수를 더욱 저감시킬 수도 있다. S-AIF 에서 이용되는 계수 대칭은, S-AIF 에서 단지 1D (수평 또는 수직) 6-탭 필터들이 있다는 것을 제외하고는, NS-AIF 에서와 동일할 수도 있다. 즉, 6×6 2D 필터들이 없다. S-AIF 에서, 각 서브-픽셀 포지션 의 경우, 필터 계수들은 식 (14) :
에서 나타낸 바와 같이 대칭을 가질 수도 있다.
따라서, 서브-픽셀 대칭과 계수 대칭 양자로 인해, S-AIF 필터들은 11 개의 세트의 고유한 1D 6-탭 필터들을 가질 수도 있으며, 이 중 5 개는 3 개의 고유한 계수들을 각각 갖는 대칭 필터들이다. 나머지 6 개의 필터들은 6 개의 고유한 계수들을 각각 가질 수도 있다. 이 경우에, 비디오 인코더 (22) 는 총 51 개의 고유한 필터 계수들을 양자화, 예측, 코딩하여 비디오 스트림으로 전송할 수도 있다.
다른 AIF 방식, D-AIF 에서, 예측 유닛 (32) 은 2D 서브-픽셀 포지션들 "e", "f", "g", "i", "j", "k", "m", "n" 및 "o" 에 대해 방향성 필터들을 이용한다. 방향성 필터들은 6 개의 탭 필터들을 포함할 수도 있으며, 계수들은 대칭을 가질 수도 있어 단지 계수들의 서브세트만이 송신되어야 한다. 본원에 설명한 바와 같이, 필터 서포트는 서브-픽셀 포지션들을 통합하는데 이용되는 기준 프레임으로부터의 픽셀 포지션들을 나타낸다. MC 유닛 (37) 은 필터 서포트로서 정수 픽셀 포지션들 A1, B2, C3, D4, E5 및 F6 을 갖는 6-포지션 (또는 6-탭) 대각 보간 필터로 서브-픽셀 포지션들 "e" 및 "o" 를 컴퓨팅할 수도 있다. 예측 유닛 (32) 은 필터 서포트로서 정수 픽셀 포지션들 A6, B5, C4, D3, E2 및 F1 을 갖는 6-포지션 대각 보간 필터로 서브-픽셀 포지션들 "g" 및 "m" 을 컴퓨팅할 수도 있다. 예측 유닛 (32) 은 필터 서포트로서 정수 픽셀 포지션들 A1, B2, C3, D4, E5, F6, A6, B5, C4, D3, E2 및 F1 을 갖는 12-포지션 대각 보간 필터로 서브-픽셀 포지션들 "f", "i", "j", "k" 및 "n" 을 컴퓨팅할 수도 있다.
D-AIF 는 NS-AIF 에 대하여 상기 설명한 바와 같이 동일한 서브-픽셀 및 계수 대칭을 이용할 수도 있다. 서브-픽셀 대칭에 의하여, 15 개의 서브-픽셀 포지션들을 동일한 필터 계수들 (예를 들어, 미러링, 플립핑 및/또는 회전된 버전들) 을 공유하는 서브-픽셀 포지션들 "a", "c", "d" 및 "l", 동일한 필터 계수들 (예를 들어, 미러링, 플립핑 및/또는 회전된 버전들) 을 공유하는 서브-픽셀 포지션들 "e", "g", "m" 및 "o", 동일한 필터 계수들을 공유하는 서브-픽셀 포지션들 "b" 및 "h" ("b" 는 수평 필터이고 "h" 는 수직 필터이다), 동일한 필터 계수들 (예를 들어, 미러링, 플립핑 및/또는 회전된 버전들) 을 공유하는 서브-픽셀 포지션들 "f", "i", "k" 및 "n" 및 그 자신의 세트의 필터 계수들을 갖는 서브-픽셀 포지션 "j" 과 통합하는 5 개의 고유한 세트의 필터 계수들이 있다.
계수 대칭에 의하여, "a", "c", "d" 및 "l" 을 포함하는 제 1 서브-픽셀 그룹에 대한 필터 계수들은 6 개의 고유한 계수들을 갖는 1D 6-포지션 필터를 이용하고 (즉, 제 1 그룹은 비대칭임), 제 2 서브-픽셀 그룹 "b" 및 "h" 에 대한 계수들은 3 개의 고유한 계수들을 갖는 1D 6-포지션 필터를 이용하며 (즉, b 는 대칭임), 서브-픽셀 그룹 "e", "g", "m" 및 "o" 에 대한 제 3 세트의 필터 계수들은 6 개의 고유한 계수들을 갖는 방향성 6-포지션 필터를 이용한다. 서브-픽셀 그룹 "f", "i", "k" 및 "n" 에 대한 제 4 세트의 필터 계수들은 6 개의 고유한 계수들을 갖는 12-탭 필터를 이용하고 서브-픽셀 그룹 "j" 에 대한 제 5 세트의 필터 계수들는 3 개의 고유한 계수들을 갖는다. D-AIF 에서의 고유한 계수들의 총 수는 6(a) + 3(b) + 6(e) + 6(f) + 3(j) = 24 개의 계수들이다. 이들 필터 계수들은 예측되고, 양자화되며 코딩되어 비디오 스트림으로 전송될 수도 있다.
예측 유닛 (32) 의 MC 유닛 (37) 은 본원에 설명된 보간 기술들 중 하나 이상을 이용하여 서브-픽셀 포지션들의 보간의 정확성을 개선하고/개선하거나 코딩되어 송신될 필요가 있는 보간 필터 계수들의 수를 저감시킬 수도 있다. 보간을 위해 이용될 수도 있는 방사형을 가진 유용한 12-픽셀 필터 서포트, 보간을 위한 필터 서포트를 구성하기 위해 인코더와 디코더 사이에서 전송될 필요가 있는 데이터의 양을 저감시키기 위해 계수 대칭 및 픽셀 대칭을 이용하는 기술들, 종래의 기술들에 대한 대칭의 일부 양태들을 제거하는 기술들, 및 서브-픽셀 보간과 유사한 방식으로 정수 픽셀 위치의 데이터를 필터링하는 기술들이 이하 더 상세하게 설명된다. 또한, 오프셋 기술들이 설명된다. 또한, 보간 필터들 사이에서 선택하는 기술들, 및 필터 계수들을 예측적으로 인코딩하는 기술들이 또한 설명된다.
도 4 는 9 개의 서브-픽셀 위치들에 대한 12 개의 픽셀 필터 서포트를 예시하는 개념도이다. 본 개시물에 따르면, MC 유닛 (37) 은 음영표시된 정수 픽셀 값들에 기초하여 서브-픽셀 포지션들 "e", "f", "g", "i", "j", "k", "m", "n" 및 "o" 에 대한 서브-픽셀 값들을 컴퓨팅할 수도 있다. 이 경우에, 서브-픽셀 값들을 컴퓨팅하는 것은 도 4 에 예시한 바와 같이 서브-픽셀 포지션들을 둘러싸는 일 세트의 12 개의 (또는 가능하다면 그 보다 많은 수의) 정수 픽셀 포지션들에 대응하는 2 차원 어레이의 필터 서포트 포지션들을 정의하는 보간 필터를 적용하는 것을 포함한다. 필터 서포트 포지션들은 음영 및 대문자로 도시되며, 서브-픽셀 포지션들은 점선으로 된 박스들 및 소문자로 도시된다. MC 유닛 (37) 은 비디오 블록의 모든 픽셀에 대해 이런 방식으로 픽셀들을 보간할 수도 있으며, 보간된 서브-픽셀 값들에 기초하여 예측 블록을 생성할 수도 있다. 12 개의 포지션 필터 서포트는 방사형을 가지며, NS-AIF 에 이용된 36 개의 포지션 필터 서포트와 유사한 주파수 응답을 갖지만, 훨씬 저감된 보간 복잡도를 가진다.
도 3 으로부터 알 수 있는 바와 같이, 서브-픽셀 값들은 15 개의 1/2-화소 및 1/4-화소 값들을 포함할 수도 있다. 2 차원 어레이의 필터 서포트 포지션들을 정의하는 보간 필터는 도 4 에 도시한 바와 같이 15 개의 1/2-화소 및 1/4-화소 값들 중 9 개를 정의하기 위해 적용된다.
서브-픽셀 포지션들을 둘러싸는 일 세트의 12 개 이상의 정수 픽셀 포지션들이 도 4 에서 음영으로 도시되며, 9 개의 1/2-화소 및 1/4-화소 값들을 둘러싸는 4 개의 정수-픽셀 포지션들 C3, C4, D3 및 D4, 및 4 개의 정수-픽셀 포지션들을 둘러싸는 8 개의 정수-픽셀 포지션들 B3, B4, C2, C5, D2, D5, E3 및 E4 을 포함할 수도 있다. 도 4 에 도시된 2 차원 어레이의 필터 서포트 포지션들에서의 필터 서포트 포지션들 각각은 서브-픽셀 포지션들에 대해 2 개의 정수-픽셀 포지션들 내에 있다. 이러한 필터링은 비디오 인코더 (50) (도 2) 에 의한 비디오 인코딩 프로세스 동안 또는 비디오 디코더 (60) (도 16) 에 의한 비디오 디코딩 프로세스 동안 모션 보상의 일부를 형성할 수도 있다. 비디오 인코딩 프로세스 동안, 예측 유닛 (32) 은 예측 신택스 엘리먼트들의 일부로서 복수의 세트의 계수 값들을 엔트로피 코딩 유닛 (46) 으로 포워딩한다. 도 4 에 도시한 바와 같이, 서브-픽셀 포지션들을 둘러싸는 일 세트의 12 개 이상의 정수 픽셀 포지션들은 방사형을 가지며 보간 필터 (예를 들어, 도 2 의 필터(들) (39)) 에 의해 정의된 9 개의 1/2-화소 및 1/4-화소 값들에 대해 공간적으로 가장 근접한 일 세트의 정수 픽셀 포지션들을 포함할 수도 있다.
엔트로피 코딩 유닛 (46) 은 계수 값들의 세트를 인코딩하고 후에 다른 디바이스로 송신될 수도 있는 인코딩된 비트스트림의 일부로서 보간 필터의 계수 값들을 출력할 수도 있다. 도 4 에 도시된 각 상이한 서브-픽셀 위치에 대하여 정의된 복수의 세트의 계수 값들 각각은 12 개 이상의 정수 픽셀 포지션들에 대해 상이한 가중치들을 정의할 수도 있다. 픽셀 대칭은 M 개의 세트의 계수 값들이 12 개 이상의 정수 픽셀 포지션들에 대해 N 개의 상이한 가중치들을 정의하도록 존재할 수도 있으며, 여기서 M 및 N 은 양의 정수들이고 N 은 M 보다 크다. 즉, 픽셀 대칭은 계수들이 다른 서브-픽셀 위치들과 픽셀 대칭을 갖는 위치들에 대해 코딩될 필요가 없도록 픽셀 위치들의 일부가 다른 픽셀 위치들의 미러링, 역전 또는 회전된 가중치들에 의존하는 것을 허용할 수도 있다.
도 5 는 3 개의 수평 서브-픽셀 위치들에 대한 수평 6-픽셀 필터 서포트, 및 3 개의 수직 서브-픽셀 위치들에 대한 수직 6-픽셀 필터 서포트를 예시하는 개념도이다. 필터 서포트 위치들은 대문자를 가진 채 음영표시되고, 서브-픽셀 위치들은 소문자 및 점선을 가진 채 음영표시되지 않는다. MC 유닛 (37) 은 1 차원 어레이의 필터 서포트 포지션들 C1 내지 C6 을 정의하는 선형 보간 필터를 적용함으로써 위치들 "a", "b" 및 "c" 에 대한 서브-픽셀 값들을 컴퓨팅할 수도 있다. MC 유닛 (37) 은 또한 1 차원 어레이의 필터 서포트 포지션들 A3 내지 F3 을 정의하는 선형 보간 필터를 적용함으로써 위치들 "d", "h" 및 "l" 에 대한 서브-픽셀 값들을 컴퓨팅할 수도 있다. 이렇게 하여, 선형 보간 필터들은 도 3 에 도시된 15 개의 1/2-화소 및 1/4-화소 값들 중 6 개에 대해 이용될 수도 있다.
도 6 은 정수 픽셀 위치를 필터링하는 5 개의 픽셀×5 개의 픽셀 필터 서포트를 예시하는 개념도이다. 이 경우에, 보간-형 필터링이 조정된 정수 픽셀 값들을 생성하기 위하여 정수 픽셀 위치들에 대하여 적용될 수도 있다. 도 6 에서, 예를 들어, 포지션 C3 의 정수 픽셀 값은 5×5 픽셀 어레이 A1 내지 A5, B1 내지 B5, C1 내지 C5, D1 내지 D5 및 E1 내지 E5 에 기초하여 필터링될 수도 있다. 다른 필터 서포트들이 정수 필터링을 위해 정의될 수 있다. 이 경우에, ME 유닛 (35) 이 정수 픽셀들의 블록을 식별한다면, MC 유닛 (37) 은 도 6 에 도시된 5×5 픽셀 어레이 (또는 다른 필터 서포트) 에 기초하여 각 픽셀을 필터링하여 필터링된 정수 픽셀 값들을 생성할 수도 있다. 이렇게 하여, 보간-형 필터링은 정수 픽셀들에 적용될 수도 있으며, 이는 조명 변화 또는 씬 페이드-인 또는 페이드-오프의 시간에서의 인코딩을 향상시킬 수도 있다. 또한, 정수 필터링은 잡음을 저감시키고 이미지 프레임 선명화를 용이하게 할 수도 있으며, 특히 대칭이 필터 계수들에 부과되지 않을 때 연속하는 비디오 프레임들 사이의 미세한 물체 움직임의 인코딩의 향상을 도울 수도 있다. 또한, 정수-화소 필터링은 포커스 변화를 갖는 비디오 시퀀스들에 대한 압축 및/또는 품질을 향상시키는데 매우 유용할 수도 있다.
따라서, 비디오 인코더 (22) 및/또는 비디오 디코더 (28) 는 조정된 정수 픽셀 값들을 생성하기 위하여 정수 픽셀 포지션들에 대하여 보간-형 필터링을 이용할 수도 있다. 비디오 인코더 (22) 또는 비디오 디코더 (28) 는 예를 들어 픽셀들의 블록들을 획득할 수도 있으며, 픽셀들의 블록들은 픽셀들의 블록 내의 정수 픽셀 포지션들에 대응하는 정수 픽셀 값들을 포함한다. 비디오 인코더 (22) 또는 비디오 디코더 (28) 는 픽셀들의 블록 내의 다른 정수 픽셀 값들에 기초하여 정수 픽셀 값들을 필터링하여 조정된 정수 픽셀 값들 (여기서 조정된 정수 픽셀 값들은 정수 픽셀 포지션들에 대응한다) 을 생성하고, 그 조정된 정수 픽셀 값들에 기초하여 예측 블록을 생성할 수도 있다. 그 후, 예측 블록은 프로세스가 인코딩 동안 수행되는지 또는 디코딩 동안 수행되는지 여부에 의존하여, 비디오 블록을 인코딩 또는 디코딩하는데 이용될 수 있다.
기술이 인코딩 프로세스 동안 수행되는 경우, 비디오 인코더 (22) 는 인코딩되는 현재의 비디오 블록과 예측 블록 사이의 차이로서 잔류 비디오 블록을 생성할 수도 있다. 비디오 인코더 (22) 는 또한 정수 필터링에 대한 코딩된 단위 당 일 세트의 필터 계수들을 인코딩할 수도 있고, 또는 가능하다면 코딩된 단위 내의 상이한 위치에서 정수 필터링에 대한 코딩된 단위 당 2 개 이상의 세트의 필터 계수들을 인코딩할 수도 있다. 도 6 의 예에서, 정수 필터링에 대한 필터 서포트들은 2 차원 필터, 예를 들어 오프셋을 가진 5×5 필터를 정의할 수도 있다. 또한, 계수 대칭은 단지 서브세트의 25 개의 상이한 계수들이 필터에 대한 25 개의 계수들 모두를 결정하는데 필요하도록 필터링에 대해 이용된 적어도 일부 계수들 사이에 존재할 수도 있다. 다수의 다른 필터 사이즈들 및 형상들이 정수-화소 필터링에 따라 이용될 수도 있다.
정수-화소 필터링이 디코딩 프로세스 동안 수행되는 경우, 기술은 디코딩되는 예측 블록 및 현재의 비디오 블록과 연관된 잔류 비디오 블록의 합으로서 복원된 비디오 블록을 생성하는 것을 포함할 수도 있다. 이 경우에, 디코딩 디바이스 (예를 들어, 목적지 디바이스 (16)) 는 정수 필터링에 대한 코딩된 단위 당 일 세트의 필터 계수들을 수신할 수도 있고, 또는 코딩된 단위 내의 상이한 위치들에서 정수 필터링에 대한 코딩된 단위 당 2 개 이상의 세트의 필터 계수들을 수신할 수도 있다. 각 코딩된 단위는 정수-화소 필터링 계수들의 하나 이상의 세트는 물론, 서브-화소 필터링 계수들의 세트, 예를 들어 1/2-화소 및 1/4-화소 포지션들에 대한 15 개의 세트들 모두를 생성하는데 이용될 수도 있는 8 개의 세트를 가질 수도 있다.
다시, 정수 픽셀 값들의 보간-형 필터링은 특히 조명 변화, 씬 페이드-인 또는 페이드-아웃 동안 압축을 향상시킬 수도 있고, 잡음을 제거하고 이미지 프레임 선명화를 용이하게 할 수도 있으며, 특히 대칭이 필터 계수들에 부과되지 않을 때 연속하는 비디오 프레임들 사이에서의 미세한 물체 움직임의 인코딩의 향상을 도울 수도 있다. 또한, 정수-화소 필터링은 또한 포커스 변화를 갖는 비디오 시퀀스에서, 예를 들어 압축을 향상시키는데 매우 유용한 것으로 확인된다.
종래, 보간-형 필터링은 AIF 에서 정수-픽셀 포지션들에 대해 수행되지 않는다. 대신에, 기준 프레임에서의 대응하는 정수-픽셀 포지션이 "있는 그대로 (as is)" 단순히 이용된다. 그러나, 본 개시물에 따르면, 필터는 보간과 유사한 방식으로 정수-픽셀 위치들에 대해 이용될 수도 있다. 정수-픽셀 포지션들에 대한 보간 필터링은 정수-픽셀 포지션들의 픽셀 값들이 이미 존재하기 때문에 기술적으로 부적절한 명칭이다. 따라서, 정수-픽셀 포지션들의 필터링은 본원에 보간-형 필터링으로 지칭되며, 정수-픽셀 값들을 단순히 필터링하여 새로운 조정된 픽셀 값들을 생성하는 것으로 보여질 수도 있다.
서브-픽셀 포지션들에 대한 보간 필터링과 달리, 목표가 기준 프레임에서 존재하지 않는 값들을 획득하는 것인 경우, 기준 프레임에서의 정수 포지션들의 픽셀들은 이미 존재한다. 또한, 기준 프레임에서의 정수-픽셀 포지션들에 대해 필터링을 적용하는 것은 다수의 이점들을 제공한다. 예를 들어, 정수-픽셀 포지션들이 오프셋을 포함하는 경우, 정수-픽셀 포지션들의 필터링은 프레임들 사이의 조명 변화의 더 양호한 캡쳐를 허용할 수도 있다. 추가적으로, 정수-픽셀 포지션들에 대한 필터링은 정수-픽셀 포지션들이 페이드-인 및 페이드-아웃과 같은 특수 효과를 캡쳐하는 것을 허용할 수도 있다. 정수-픽셀 포지션들에 대한 필터링은 또한 필요하다면 소정의 신호 잡음 (이를 테면 카메라 잡음) 을 제거하고/제거하거나 선명화를 수행할 수도 있다. 또한, 정수-픽셀 필터에 어떠한 대칭도 부과되지 않는 경우, 정수-픽셀 필터는 1/4-픽셀의 배수가 아닌 물체 움직임과 같은 미세한 물체 움직임의 캡쳐를 도울 수도 있다. 마지막으로, 정수 픽셀 필터링은 또한 포커스 변화가 발생하는 경우 비디오 시퀀스들의 압축을 향상시키는데 유용할 수도 있다.
일부 경우에, 정수-픽셀 포지션들의 보간 필터링은 모션 벡터들에 의존할 수도 있다. 즉, 예측 유닛 (32) 의 MC 유닛 (37) 은 ME 유닛 (35) 에 의해 식별되는 모션 벡터에 기초하여 보간 필터링을 적응적으로 적용할 수도 있다. 예를 들어, 정수-픽셀 포지션들의 보간 필터링은 모션 벡터가 정수-픽셀 포지션으로 향할 때 수행될 수도 있다. 보간 필터링은 정수-픽셀 포지션에 대한 조정된 픽셀 값을 초래할 수도 있다. 모션 벡터가 서브-픽셀 포지션으로 향할 때, 정수 픽셀 값들에 대하여 정수-픽셀 포지션들의 필털링이 수행되지 않고, 서브-픽셀 값들의 보간을 위해 필터링이 이용될 수도 있다. 이 방식으로, 정수-픽셀 필터링은 모션 벡터들에 기초하여 적응형으로 고려될 수도 있다.
정수-픽셀 포지션들에 대해, 식 (15) 의 형태의 5×5 보간 필터는 서브-픽셀 포지션 필터들을 도출하는데 이용된 동일한 분석적 프로세스를 이용하여 도출될 수도 있다.
이며, 여기서 는 필터링된 정수 픽셀 값이고, 은 포지션 (i,j) 에서의 정수 픽셀 값이고, 는 포지션 (i,j) 에 대한 계수이며, 는 필터 오프셋이다. 일부 경우에, 정수-픽셀 포지션들에 대한 보간 필터는 필터 오프셋을 갖지 않을 수도 있다 (즉, = 0). 다른 경우에, 필터 오프셋 은 다수의 기술들 중 임의의 것을 이용할 수도 있다. 상이한 오프셋들은 각 서브-픽셀 포지션에 대해 정의될 수도 있으며, 예를 들어, 15 개의 상이한 오프셋들은 도 3 에 도시된 각 서브-픽셀 포지션에 대해 정의될 수도 있다. 다른 오프셋은 정수-픽셀들에 대해 정의될 수도 있으며, 이로써 총 오프셋의 수가 16 개에 이른다. 본 출원과 동일자로 출원되었고 여기에 참조로 통합되는, Karczewicz 등에 의해 출원되고 도켓 넘버 081399U2 를 가진 발명의 명칭이 "OFFSETS AT SUB-PIXEL RESOLUTION" 인 공동 계류중이고 공동 양도된 미국 특허출원 제 호는 상이한 픽셀 및 서브-픽셀 포지션들에 대한 다수의 오프셋들의 이용에 대해 다수의 추가적인 상세를 제공한다.
송신될 필터 계수들의 수를 저감시키기 위하여, 식 (16) 에서와 같은 계수 대칭은 정수-픽셀 필터에 부과될 수도 있다.
다른 형태의 계수 대칭이 또한 이용될 수도 있다. 계수 대칭이 부과되는지 여부는 인코더에 의해 결정되어 디코더로 시그널링될 수도 있다. 식 (16) 에서와 같은 대칭이 정수-픽셀 필터에 이용되는 경우, 9 필터 계수들 및 1 오프셋이 디코더로 전송될 필요가 있을 수도 있다.
오프셋들의 코딩은 먼저 정수 오프셋을 코딩한 후 각 프랙셔널 오프셋을 코딩함으로써 행해질 수도 있다. 이 경우에, 정수 오프셋 및 프랙셔널 오프셋들은 상이하게 코딩된다. 정수 오프셋은 부호화된 지수-골롬 (exponential-Golomb) 코드를 이용하여 코딩될 수도 있다. 정수 오프셋의 매그니튜드에 의존하여, 프랙셔널 오프셋들은 정수 오프셋과는 상이하게 양자화될 수도 있다. 예를 들어, 정수 오프셋이 큰 매그니튜드를 가질 때 프랙셔널 오프셋들에 대해 보다 코오스 (coarse) 레벨의 양자화가 적용될 수도 있다. 양자화 후에, 프랙셔널 오프셋들은 고정된 길이 코드들을 이용하여 코딩될 수도 있다. 일 예로서, 다음의 의사-코드는 정수 오프셋 값에 기초하여 정의된 상이한 고정된 길이 코드들을 이용하여 주어진 프랙셔널 오프셋이 어떻게 코딩될 수 있는지를 설명할 수도 있다.
이 경우에, 비디오 인코더 (50) 는 오프셋 값들 각각에 대해 주어진 오프셋 값의 정수 부분에 제 1 수의 비트들을 할당하고 주어진 오프셋 값의 프랙셔널 부분에 제 2 수의 비트들을 할당하는 계수 예측 및 양자화 유닛 (41) 을 이용할 수도 있으며, 제 1 수의 비트들 및 제 2 수의 비트들은 정수 부분의 매그니튜드에 기초하여 결정된다. 이 경우에, 양자화된 버전의 오프셋 값들은 예측 유닛 (32) 으로부터, 오프셋 값들의 양자화가 상기 의사-코드에 부합하여 수행된 후의 예측 신택스 엘리먼트들로서 포워딩될 수도 있다. 임의의 경우에, 비디오 인코더 (50) 는 제 2 수의 비트들과 상이하게 제 1 수의 비트들을 인코딩할 수도 있다.
도 7 은 본 개시물에 부합하는 필터 계수들에 대해 픽셀 대칭을 이용할 수도 있는 픽셀 포지션들을 그룹화하기 위해 음영으로 4 개의 정수 픽셀 포지션들 및 15 개의 서브-픽셀 포지션들을 예시하는 개념도이다. 특히, 도 7 은 정수 픽셀 포지션 C3 에 대응하는 서브-픽셀 포지션들 "a" 내지 "o" 을 예시한다. 도 7 에 도시된 서브-정수 픽셀 포지션들은 도 4 및 도 5 의 것에 대응한다. 즉, 서브-픽셀 위치들 "e", "f", "g", "i", "j", "k", "m", "n" 및 "o" 는 도 4 에 도시한 바와 같이 12 개의 픽셀 서포트에 의해 결정된 값들을 가질 수도 있는 한편, 서브-픽셀 위치들 "a", "b" 및 "c" 및 서브-픽셀 위치들 "d", "h" 및 "l" 은 도 5 에 도시된 수평 및 선형 픽셀 서포트들에 의해 결정된 값들을 가질 수도 있다.
이 시나리오에서, 픽셀 대칭은 픽셀 위치 "a" 에 대한 필터 계수들이 픽셀 위치 "c" 에 대한 필터 계수들에 대하여 대칭이 되도록 부과될 수도 있다. 유사하게, 픽셀 대칭은 픽셀 위치 "d" 에 대한 필터 계수들이 픽셀 위치 "l" 에 대한 필터 계수들에 대하여 대칭이 되도록 부과될 수도 있다. 픽셀 대칭은 픽셀 위치 "e" 에 대한 필터 계수들이 픽셀 위치들 "g", "m" 및 "o" 에 대한 필터 계수들에 대하여 대칭이 되도록 부과될 수도 있고, 픽셀 대칭은 픽셀 위치 "i" 에 대한 필터 계수들이 픽셀 위치 "k" 에 대한 필터 계수들에 대하여 대칭이 되도록 부과될 수도 있으며, 픽셀 대칭은 픽셀 위치 "f" 에 대한 필터 계수들이 픽셀 위치 "n" 에 대한 필터 계수들에 대하여 대칭이 되도록 부과될 수도 있다. 따라서, 단 8 개의 세트의 계수 값들만이, 디코더가 모든 15 개의 픽셀 위치들에 대해 완전한 세트의 계수 값들을 생성할 수 있게 하기 위하여 비디오 비트스트림의 일부로서 통신될 필요가 있을 수도 있다. 또한, 임의의 주어진 세트의 계수들에 대해, 계수 대칭은 단지 서브세트의 계수 값들만이 전송되는 것을 허용할 수도 있으며, 디코더는 서브세트 및 계수 대칭에 기초하여 주어진 픽셀 위치에 대해 완전한 세트의 계수 값들을 생성할 수 있다.
본 개시물의 일 양태는 서브-픽셀 포지션들 "d" 및 "l" 에 대한 서브-픽셀 포지션들 "a" 및 "c" 사이의 임의의 픽셀 대칭을 실제로 제거하는 것이다. 또한, 픽셀 대칭은 서브-픽셀 포지션 "i" 에 대한 서브-픽셀 포지션 "f" 에 대해 회피될 수도 있다. 또한, 픽셀 대칭은 서브-픽셀 포지션 "n" 에 대한 서브-픽셀 포지션 "k" 에 대해 회피될 수도 있다. 이러한 경우에, 대각 상관이 낮아, 대각 대칭을 부과하는 것은 비효율적 또는 비효과적이 될 수도 있다. 이 방식으로, 모든 15 개의 세트의 계수들을 생성하는데 이용되는 8 개의 세트의 계수들은 대칭이 픽셀 위치들 중 일부에 대해 대각 차원에서 회피된다는 점에 있어서는 일부 종래의 기술들보다 더 많은 세트일 수도 있다. 일부 경우에, 대각 픽셀 대칭 및 대각 계수 대칭은 수직 차원에서의 변이를 허용하기 위해 제거 또는 회피될 수도 있다.
다시 도 1 을 참조하면, 비디오 인코더 (22) 는 8 개의 세트의 필터 계수들을 결정하고, 8 개의 세트의 필터 계수들을 이용하여, 계수 대칭 및 픽셀 대칭에 기초하여 15 개의 상이한 서브-픽셀 위치들에 대응하는 15 개의 세트의 필터 계수들 모두를 생성하며, 인코딩된 비트스트림의 일부로서 8 개의 세트의 필터 계수들을 출력할 수도 있다. 8 개의 세트의 필터 계수들은 인코딩된 비트스트림의 모든 코딩된 단위에 대해 출력될 수도 있으며, 또는 가능하다면 8 개의 세트의 필터 계수들의 여러 발생이 코딩된 단위의 상이한 영역들에 대해 출력될 수도 있다.
15 개의 세트는 도 3 에 도시된 모든 1/2-화소 및 1/4-화소 서브-픽셀 위치에 대응하며, 8 개의 세트, 계수 대칭 및 픽셀 대칭은 모든 1/2-화소 및 1/4-화소 서브-픽셀 위치에 대한 필터 서포트들을 정의한다. 목적지 디바이스 (16) 의 비디오 디코더 (28) 는 인코딩된 비디오 비트스트림의 일부로서 8 개의 세트의 필터 계수들을 수신하고, 8 개의 세트의 필터 계수들에 기초하여 15 개의 상이한 서브-픽셀 위치들에 대응하는 15 개의 세트의 필터 계수들을 생성하고, 15 개의 세트의 필터 계수들 중 하나에 기초하여 비디오 디코딩을 위한 보간 예측 데이터를 생성하며 (여기서, 보간 예측 데이터는 15 개의 상이한 서브-픽셀 위치들 중 하나에 대응한다), 보간 예측 데이터에 기초하여 하나 이상의 비디오 블록들을 디코딩할 수도 있다.
8 개의 세트의 필터 계수들 중 적어도 일부는 계수 대칭을 가진 주어진 세트가 그 주어진 세트와 연관된 주어진 서브-픽셀 위치에 대한 필터 서포트와 연관되는 서브세트의 필터 계수들을 포함하도록 계수 대칭을 가질 수도 있다. 따라서, 비디오 디코더 (28) 는 2 개 이상의 상이한 서브-픽셀 위치들 사이의 픽셀 대칭에 적어도 부분적으로 기초하여 15 개의 세트의 필터 계수들을 생성할 수도 있다. 또한, 비디오 디코더 (28) 는 2 개 이상의 상이한 서브-픽셀 위치들 사이의 픽셀 대칭에 적어도 부분적으로 기초하여, 그리고 계수 대칭을 가진 주어진 세트가 그 주어진 세트와 연관된 주어진 서브-픽셀 위치에 대한 필터 서포트와 연관되는 서브세트의 필터 계수들을 포함하도록 주어진 세트에 대해 정의되는 계수 대칭에 적어도 부분적으로 기초하여 15 개의 세트의 필터 계수들을 생성할 수도 있다.
다시, 15 개의 세트는 모든 1/2-화소 및 1/4-화소 서브-픽셀 위치에 대응할 수도 있다. 픽셀 대칭은 수직 차원 및 수평 차원에서 15 개의 세트의 필터 계수들 중 상이한 것들 사이에 존재할 수도 있지만, 픽셀 대칭은 15 개의 세트의 필터 계수들 중 적어도 일부의 경우에는 대각 차원에 존재하지 않는다. 이하 더 상세하게 설명되는 바와 같이, 8 개의 세트 중 2 개의 세트는 수평 필터 서포트에 대해 15 개의 세트 중 3 개의 세트를 정의할 수도 있고, 8 개의 세트 중 2 개의 세트는 수직 필터 서포트에 대해 15 개의 세트 중 3 개의 세트를 정의할 수도 있으며, 8 개의 세트 중 4 개의 세트는 2 차원 필터 서포트에 대해 15 개의 세트 중 9 개의 세트를 정의할 수도 있다. 2 차원 서포트는 방사형으로 9 개의 서브-픽셀 포지션들을 둘러싸는 유용한 12 개의 포지션 필터 서포트를 포함할 수도 있다.
상세하게는, 보간 예측 데이터는 예를 들어, 도 7 에 도시된 15 개의 1/2-화소 및 1/4-화소 값들을 포함할 수도 있으며, 보간 필터는 15 개의 1/2-화소 및 1/4-화소 값들 중 9 개를 정의하는데 적용되고 예를 들어 도 4 에도 도시되는 2 차원 어레이의 12 개의 필터 서포트 포지션들 (예를 들어, 도 4 에 도시) 을 정의한다. 보간 예측 데이터를 생성하는 것은 예를 들어, 도 5 에 도시한 바와 같이 15 개의 1/2-화소 및 1/4-화소 값들 중 6 개에 대한 1 차원 어레이의 필터 서포트 포지션들을 정의하는 선형 보간 필터들을 적용하는 것을 더 포함할 수도 있다.
수평 대칭 및 대각 대칭의 결여는 서브-픽셀 포지션들 "a" 및 "c" 에 대하여 또는 서브-픽셀 포지션들 "i" 및 "k" 에 대하여 보여질 수 있다. 이 경우에, 서브-정수 픽셀 포지션들 "a" 및 "c" 는 수평 X 축을 따라 대칭이지만, 서브-픽셀 위치들 "d" 및 "l" 이 각각 서브-픽셀 포지션들 "a" 및 "c" 에 대하여 대칭이 아니도록 이들 픽셀들에 대한 대각 축을 따라 대칭이 존재하지 않는다. 유사하게, 서브-픽셀 포지션들 "i" 및 "k" 는 수평 X 축을 따라 대칭이지만, 서브-픽셀 위치들 "f" 및 "n" 이 각각 서브-픽셀 포지션들 "i" 및 "k" 에 대하여 대칭이 아니도록 이들 픽셀들에 대한 대각 축을 따라 대칭이 존재하지 않는다.
픽셀 대칭은 제 1 서브-픽셀 포지션에 대한 제 1 세트의 계수들이 제 2 서브-픽셀 포지션에 대한 제 2 세트의 계수들에 대하여 대칭이라는 것을 의미한다. 예를 들어, 픽셀 위치 "a" 는 픽셀 위치 "c" 에 대하여 픽셀 대칭을 갖고, 픽셀 위치 "d" 는 픽셀 위치 "l" 에 대하여 픽셀 대칭을 갖는다. 픽셀 위치 "f" 는 픽셀 위치 "n" 에 대하여 픽셀 대칭을 갖고, 픽셀 위치 "i" 는 픽셀 위치 "k" 에 대하여 픽셀 대칭을 갖는다. 픽셀 위치 "e" 는 픽셀 위치들 "g", "m" 및 "o" 에 대하여 픽셀 대칭을 갖는다. 도 7 에 도시된 음영은 이런 픽셀 대칭을 증명하며, 예를 들어, 공통 음영은 다른 픽셀 위치들에 대하여 대칭적인 픽셀 위치들에 대응한다. 이 경우에, (픽셀 대칭의 양태들과 함께) 8 개의 픽셀 위치들에 대한 계수들은 15 개의 픽셀 위치들 모두에 대한 계수들을 정의할 수도 있다. 또한, 주어진 세트의 계수들 내에서, 계수 대칭은 단지 그 세트의 계수들에서의 서브세트의 계수들만이 비트스트림과 통신될 필요가 있도록 존재할 수도 있다.
비디오 인코더 (22) 는 보간 예측 데이터에 기초하여 인코딩된 비디오 데이터를 생성할 수 있으며, 보간 예측 데이터는 15 개의 1/2-화소 및 1/4-화소 값들을 포함하고, 보간 필터는 15 개의 1/2-화소 및 1/4-화소 값들 중 9 개의 정의하도록 적용되는 2 차원 어레이의 12 개의 필터 서포트 포지션들을 정의한다. 보간 예측 데이터에 기초하여 인코딩된 비디오 데이터를 생성하는 것은 15 개의 1/2-화소 및 1/4-화소 값들 중 6 개에 대한 1 차원 어레이의 필터 서포트 포지션들을 정의하는 선형 보간 필터들을 적용하는 것을 더 포함할 수도 있다.
도 8 은 계수 대칭을 도시하는 음영로, 서브-픽셀 포지션 "b" 에 대한 6 개의 수평 선형 픽셀 서포트 포지션들 C1 내지 C6 을 예시하는 개념도이다. 이 경우에, 계수 대칭은 필터 서포트 포지션들 C1 내지 C6 에 대한 전체 세트의 계수들을 정의하기 위하여 단 3 개의 필터 계수들만이 C1, C2 및 C3 에 대해 필요하다는 것을 의미한다. C1 은 C6 과 대칭적이고, C2 는 C5 와 대칭이며 C3 은 C4 와 대칭적이다. 따라서, 서브-픽셀 포지션 "b" 를 보간하기 위해 필요한 6 개의 계수들의 세트를 정의하기 위하여 단 3 개의 계수들만이 인코딩된 비디오 비트스트림의 일부로서 통신될 필요가 있다.
도 9 는 임의의 계수 대칭의 결여를 도시하는 음영으로, 서브-픽셀에 대한 6 개의 수평 선형 픽셀 서포트 포지션들을 예시하는 개념도이다. 따라서, 서브-픽셀 포지션 "a" 에 대하여 필터 서포트에 대한 계수들의 세트를 정의하기 위하여 모든 6 개의 계수들이 필요하다. 그러나, 상기 언급한 바와 같이, 픽셀 대칭은 서브-픽셀 포지션 "a" 에 대한 이들 동일한 계수들이 또한 서브-픽셀 포지션 "c" 에 대한 필터 서포트를 도출하는데 이용될 수 있다는 것을 의미한다 (도 7 참조). 따라서, 서브-픽셀 포지션 "a" 및 "c" 를 보간하는데 필요한 2 개의 상이한 세트의 6 개의 계수들을 정의하기 위하여 단 6 개의 계수들만이 인코딩된 비디오 비트스트림의 일부로서 통신될 필요가 있다.
도 10 은 계수 대칭을 도시하는 음영으로, 서브-픽셀 "h" 에 대한 6 개의 수직 선형 픽셀 서포트 포지션들 A3, B3, C3, D3, E3 및 F3 을 예시하는 개념도이다. 이 경우에, 계수 대칭은 필터 서포트 포지션들 A3, B3, C3, D3, E3 및 F3 에 대한 전체 세트의 계수들을 정의하기 위하여 단 3 개의 필터 계수들만이 A3, B3 및 C3 에 대해 필요하다는 것을 의미한다. A3 은 F3 과 대칭적이고, B3 은 E3 과 대칭이며, C3 은 D3 과 대칭적이다. 따라서, 서브-픽셀 포지션 "h" 를 보간하기 위해 필요한 6 개의 계수들의 세트를 정의하기 위하여 단 3 개의 계수들만이 인코딩된 비디오 비트스트림의 일부로서 통신될 필요가 있다.
도 11 은 임의의 계수 대칭의 결여를 도시하는 음영으로, 서브-픽셀에 대한 6 개의 수직 선형 픽셀 서포트 포지션들을 예시하는 개념도이다. 따라서, 모든 6 개의 계수들은 서브-픽셀 포지션 "d" 에 대하여 필터 서포트에 대한 계수들의 세트를 정의하기 위하여 필요하다. 그러나, 상기 언급한 바와 같이, 픽셀 대칭은 서브-픽셀 포지션 "d" 에 대한 이들 동일한 계수들이 또한 서브-픽셀 포지션 "l" 에 대한 필터 서포트를 도출하는데 이용될 수 있다는 것을 의미한다 (도 7 참조). 따라서, 서브-픽셀 포지션 "d" 및 "l" 을 보간하는데 필요한 2 개의 상이한 세트의 6 개의 계수들을 정의하기 위하여 단 6 개의 계수들만이 인코딩된 비디오 비트스트림의 일부로서 통신될 필요가 있다.
도 12 는 서브-픽셀 포지션 "e" 에 대한 12 개의 2 차원 픽셀 서포트 포지션들 (대문자 및 음영으로 도시된 정수 픽셀 포지션들) 을 예시하는 개념도이다. 음영은 임의의 계수 대칭의 결여를 도시한다. 따라서, 서브-픽셀 포지션 "e" 에 대하여 필터 서포트에 대한 계수들의 세트를 정의하기 위하여 모든 12 개의 계수들이 필요하다. 그러나, 상기 언급한 바와 같이, 픽셀 대칭은 서브-픽셀 포지션 "e" 에 대한 이들 동일한 계수들이 또한 서브-픽셀 포지션들 "g", "m" 및 "o" 에 대한 필터 서포트를 도출하는데 이용될 수 있다는 것을 의미한다 (도 7 참조). 따라서, 12 개의 계수들은 필터 서포트 서브-픽셀 포지션 "e" 를 정의하고 이들 동일한 계수들은 서브-픽셀 포지션들 "g", "m" 및 "o" 에 대한 계수들의 세트를 도출하는데 이용될 수 있다.
도 13 은 계수 대칭을 도시하는 음영으로, 서브-픽셀 "i" 에 대한 12 개의 2 차원 픽셀 서포트 포지션들 (대문자로 도시된 정수 픽셀 포지션들) 을 예시하는 개념도이다. 이 경우에, 계수 대칭은 필터 서포트 포지션들 B3, B4, C2, C3, C4 및 C5 에 대한 필터 계수들이 필터 서포트 포지션들 E3, E4, D2, D3, D4 및 D5 에 대한 필터 계수들을 정의하는데 이용될 수 있다는 것을 의미한다. B3 은 E3 과 대칭적이고, B4 는 E4 와 대칭이고, C2 는 D2 와 대칭적이고, C3 은 D3 과 대칭이고, C4 는 D4 와 대칭적이며, C5 는 D5 와 대칭이다. 따라서, 서브-픽셀 포지션 "i" 를 보간하는데 필요한 12 개의 계수들의 세트를 정의하기 위하여 단 6 개의 계수들만이 인코딩된 비디오 비트스트림의 일부로서 통신될 필요가 있다. 또한, 상기 언급한 바와 같이, 서브-픽셀 포지션 "i" 는 서브-픽셀 포지션 "k" 에 대하여 픽셀 대칭을 가질 수도 있다. 따라서, 동일한 서브세트의 6 개의 계수들은 서브-픽셀 포지션들 "i" 및 "k" 에 대한 전체 세트의 12 개의 필터 계수들을 정의할 수도 있다.
도 14 는 계수 대칭을 도시하는 음영으로, 서브-픽셀 "f" 에 대한 12 개의 2 차원 픽셀 서포트 포지션들 (대문자로 도시된 정수 픽셀 포지션들) 을 예시하는 개념도이다. 이 경우에, 계수 대칭은 필터 서포트 포지션들 C2, D2, B3, C3, D3 및 E3 에 대한 필터 계수들이 필터 서포트 포지션들 C5, D5, B4, C4, D4 및 E4 에 대한 필터 계수들을 정의하는데 이용될 수 있다는 것을 의미한다. C2 는 C5 와 대칭적이고, D2 는 D5 와 대칭이고, B3 은 B4 와 대칭적이고, C3 은 C4 와 대칭이고, D3 은 D4 와 대칭적이며, E3 은 E4 와 대칭이다. 따라서, 서브-픽셀 포지션 "f" 를 보간하는데 필요한 12 개의 계수들의 세트를 정의하기 위하여 단 6 개의 계수들만이 인코딩된 비디오 비트스트림의 일부로서 통신될 필요가 있다. 또한, 상기 언급한 바와 같이, 서브-픽셀 포지션 "f" 는 서브-픽셀 포지션 "n" 에 대하여 픽셀 대칭을 가질 수도 있다. 따라서, 동일한 서브세트의 6 개의 계수들은 서브-픽셀 포지션들 "f" 및 "n" 에 대한 전체 세트의 12 개의 필터 계수들을 정의할 수 있다.
도 15 는 계수 대칭을 도시하는 음영으로, 서브-픽셀 "j" 에 대한 12 개의 2 차원 픽셀 서포트 포지션들 (대문자로 도시된 정수 픽셀 포지션들) 을 예시하는 개념도이다. 이 경우에, 계수 대칭은 단 3 개의 필터 계수들만이 필터 서포트 포지션들 B3, B4, C2, C3, C4, C5, D2, D3, D4, D5, E3 및 E4 에 대한 전체 세트의 12 개의 계수들을 정의하기 위하여 B3, C2 및 C3 에 대해 필요하다는 것을 의미한다. C3 은 C4, D3 및 D4 와 대칭적이고, C2 는 D2, C5 및 E4 와 대칭이며, B3 은 B4, E3 및 D5 와 대칭적이다. 따라서, 서브-픽셀 포지션 "j" 를 보간하는데 필요한 12 개의 계수들의 세트를 정의하기 위하여 단 3 개의 계수들만이 인코딩된 비디오 비트스트림의 일부로서 통신될 필요가 있다.
도 16 은 본원에 설명된 방식으로 인코딩되는 비디오 시퀀스를 디코딩할 수도 있는 비디오 디코더의 일 예를 예시하는 블록도이다. 비디오 디코더 (60) 는 본원에 "코더" 로서 지칭되는 전문화된 비디오 컴퓨터 디바이스 또는 장치의 일 예이다. 비디오 디코더 (60) 는 수신된 비트스트림을 엔트로피 디코딩하여 양자화된 계수들 및 예측 신택스 엘리먼트들을 생성하는 엔트로피 디코딩 유닛 (52) 을 포함한다. 예측 신택스 엘리먼트들은 코딩 모드, 하나 이상의 모션 벡터들, 서브-픽셀 데이터를 생성하는데 이용된 보간 기술을 식별하는 정보, 보간 필터링에 이용하기 위한 계수들 및/또는 예측 블록의 생성과 연관된 다른 정보를 포함할 수도 있다.
예측 신택스 엘리먼트들, 예를 들어 계수들은 예측 유닛 (55) 으로 포워딩된다. 고정된 필터의 계수들에 대하여, 또는 서로에 대하여 계수들을 코딩하는데 예측이 이용되는 경우, 계수 예측 및 역양자화 유닛 (53) 은 신택스 엘리먼트들을 디코딩하여 실제 계수들을 정의할 수 있다. 또한, 예측 신택스 중 임의의 것에 양자화가 적용되는 경우, 계수 예측 및 역양자화 유닛 (53) 은 또한 이러한 양자화를 제거할 수 있다. 예를 들어, 필터 계수들은 본 개시물에 따라 예측적으로 코딩 및 양자화될 수도 있으며, 이 경우에, 계수 예측 및 역양자화 유닛 (53) 은 비디오 디코더 (60) 에 의해 이러한 계수들을 예측적으로 디코딩 및 양자화해제하는데 이용될 수 있다.
예측 유닛 (55) 은 비디오 인코더 (50) 의 예측 유닛 (32) 에 대하여 상기 상세하게 설명한 것과 동일한 방식으로, 메모리 (62) 에 저장되는 하나 이상의 이전에 디코딩된 블록들 및 예측 신택스 엘리먼트들에 기초하여 예측 데이터를 생성할 수도 있다. 특히, 예측 유닛 (55) 은 모션 보상 동안 본 개시물의 보간 필터링 기술들 중 하나 이상을 수행하여 1/4-화소 정밀도와 같은 특정 정밀도를 가진 예측 블록을 생성할 수도 있다. 이로써, 본 개시물의 기술들 중 하나 이상은 비디오 디코더 (60) 에 의해 예측 블록을 생성하는데 이용될 수도 있다. 예측 유닛 (55) 은 본 개시물의 보간 및 보간-형 필터링 기술들에 이용된 필터들을 포함하는 모션 보상 유닛을 포함할 수도 있다. 모션 보상 컴포넌트는 단순화 및 설명의 용이성을 위해 도 16 에는 도시되지 않는다.
역양자화 유닛 (56) 은 양자화된 계수들을 역양자화, 즉 양자화해제한다. 역양자화 프로세스는 H.264 표준에 대해 정의된 프로세스일 수도 있다. 역변환 유닛 (58) 은 픽셀 도메인에서 잔류 블록들을 생성하기 위하여 변환 계수들에 대해, 역변환, 예를 들어 역 DCT 또는 개념적으로 유사한 역변환 프로세스를 적용한다. 합산기 (64) 는 예측 유닛 (55) 에 의해 생성되는 대응하는 예측 블록과 잔류 블록을 합산하여 비디오 인코더 (50) 에 의해 인코딩된 원래의 블록의 복원된 버전을 형성한다. 원한다면, 블록화 인공물을 제거하기 위하여 디코딩된 블록들을 필터링하기 위해 디블록킹 필터가 또한 적용될 수도 있다. 디코딩된 비디오 블록들은 그 후 후속 모션 보상을 위해 기준 블록들을 제공하고 또한 디스플레이 디바이스 (이를 테면 도 1 의 디스플레이 (28)) 를 구동하기 위해 디코딩된 비디오를 생성하는 기준 프레임 저장소 (62) 내에 저장된다.
NS-AIF 기술들은 36-포지션 필터 서포트 (즉, 2D 6×6 필터 서포트) 를 갖는 보간 필터를 이용하여 2D 서브-픽셀 포지션들에 대한 픽셀 값들을 컴퓨팅할 수도 있다. S-AIF 는 수직 차원보다 수평 방향으로 먼저 필터링하는 보간을 위한 필터 서포트로서 분리가능한 정수 픽셀 포지션들을 이용한다. D-AIF 는 NS-AIF 보다 2D 서브-픽셀 포지션들을 컴퓨팅하기 위해 덜 복잡한 보간 필터를 이용한다. D-AIF 에서, 2D 서브-픽셀 포지션들은 6-포지션 필터 서포트나 12-포지션 대각 필터 서포트 중 어느 하나를 갖는 보간 필터를 이용하여 컴퓨팅된다.
D-AIF 에서처럼 대각 필터 서포트를 이용하는 하나의 결점은 필터링하는데 이용되는 정수-픽셀 포지션들이 보간될 현재의 포지션으로부터 멀리 떨어져 있다는 것이다. 보간될 현재의 포지션과 필터 서포트로서 이용된 픽셀들의 포지션 사이의 거리가 증가함에 따라, 공간적 픽셀 상관은 감소한다. 이로써, D-AIF 에 이용되는 대각 필터 서포트는 정확한 예측을 형성하기에 덜 적합하다.
D-AIF 에 의해 제공되는 동일한 낮은 복잡성을 유지하면서, 보간될 포지션과 더 높은 상관을 가진 픽셀들 (즉, 보간될 포지션에 의해 더 근접하거나 그 보간될 포지션으로부터 더 짧은 거리인 픽셀 포지션들) 을 이용하여 더 양호한 예측을 제공하기 위하여, 도 4 에 도시된 12-포지션 필터 서포트가 보간을 위해 이용될 수도 있다. 본 개시물에 설명된 12-포지션 필터 서포트에 이용되는 정수-픽셀 포지션들은, 2D 서브-픽셀 포지션들의 코너들 근방에 위치되기 때문에 "코너" 정수-픽셀 포지션들로 지칭될 수도 있는, 서브-픽셀 포지션들을 둘러싸는 4 개의 정수-픽셀 포지션들, 즉, 정수-픽셀 포지션들 C3, C4, D3 및 D4 를 포함한다. 코너 정수-픽셀 포지션들에 더하여, 코너 정수-픽셀 포지션들에 바로 인접한 하나 이상의 정수-픽셀 포지션들이 또한 필터 서포트에서 이용될 수도 있다. 코너 정수-픽셀 포지션들에 바로 인접한 정수-픽셀 포지션들은 코너 정수-픽셀 포지션들의 바로 위 (상부 또는 북쪽을 향해 있는) 또는 바로 아래 (저부 또는 남쪽을 향해 있는) 정수-픽셀 포지션들은 물론 코너 정수-픽셀 포지션들의 바로 좌측 (또는 서쪽) 또는 바로 우측 (또는 동쪽) 의 정수-픽셀 포지션들을 포함할 수도 있다. 도 4 에 예시된 예에서, 12-포지션 필터 서포트는 정수-픽셀 포지션들 B3, B4, C2, C3, C4, C5, D2, D3, D4, D5, E3 및 E4 를 포함할 수도 있다. 이들 정수-픽셀 포지션들 모두는 보간될 서브-픽셀의 2 개의 정수-픽셀 포지션들 내에 위치된다.
그러나 본 개시물의 기술들에 따르면 필터 서포트는 추가적인 정수-픽셀 위치들을 포함할 수도 있다. 예를 들어, 필터 서포트는 방사형을 형성하는 보간될 서브-픽셀 포지션의 3 개의 정수-픽셀 포지션들 내에 위치되는 정수-픽셀 위치들을 포함할 수도 있다.
1/4-픽셀 포지션들 또는 더 미세한 해상도조차 적어도 2 개의 정수-픽셀 포지션들 내에 위치한 정수 픽셀 포지션들에 기초하여 보간될 수도 있다. 이 방식으로, 본 개시물의 필터 서포트 기술들은 D-AIF 에 의해 제공된 동일한 낮은 복잡성을 유지하면서, 보간될 포지션과 더 높은 상관을 가진 정수-픽셀들을 이용하여 더 양호한 보간 예측을 제공한다.
상기 설명한 바와 같이, 서브-픽셀 대칭은 일 그룹의 하나 이상의 서브-픽셀 포지션들에 대해 동일한 세트 (및 미러링, 역전 및/또는 회전된 버전의 세트) 의 필터 계수들을 강요할 수도 있다. 식 (5) 에서와 같은 분석적 프로세스를 이용하는 것은, 모든 서브-픽셀 포지션들, 예를 들어 1/4-픽셀 정밀도의 경우에는 15 개의 서브-픽셀 포지션들에 대한 보간 필터 계수들을 도출하는데 이용될 수도 있다. 15 개의 세트의 보간 필터 계수들 사이의 상관의 분석은 동일한 차원 (예를 들어, 수직 또는 수평 차원) 에서 서브-픽셀 포지션들 (1D 및 2D 양자의 서브-픽셀 포지션들) 의 필터 계수들 사이에서 비교적 강한 상관을 보인다. 그와 반대로, 다른 대각 방향에서의 서브-픽셀 포지션들의 필터 계수들 사이의 상관은 현저히 약할 수도 있다.
예를 들어, 양자가 수평 차원에 있는 서브-픽셀 포지션들 "a" 및 "b" 에 대한 필터 계수들 사이에 높은 상관이 있을 수도 있다. 다른 예로서, 양자가 수직 차원에 있는 서브-픽셀 포지션들 "d" 및 "l" 에 대한 필터 계수들 사이에 높은 상관이 있을 수도 있다. 그러나, 수평 차원에 있는 서브-픽셀 포지션들 "a" 및 수직 차원에 있는 서브-픽셀 포지션 "d" 에 대한 필터 계수들 사이에는 만약에 있다면 적은 상관이 있을 수도 있다. 이러한 상관의 관찰에 기초하여, 서브-픽셀 대칭은 대각 차원에서의 서브-픽셀 포지션들의 필터 계수들에 대한 서브-픽셀 대칭이 부과되지 않도록 설계될 수도 있다. 이것은 본원에 설명한 바와 같이, 일부 종래의 프로세스들에 대해 필요로 한 것보다 더 많은 세트들일 수도 있는 8 개의 세트의 계수들에 이르게 한다. 일부 픽셀 위치들에 대한 대각 픽셀 대칭을 제거함으로써, 본원에 설명한 바와 같이, 비디오 인코딩 및 압축이 향상될 수도 있다.
다시, 도 7 은 서브-픽셀 대칭을 갖는 일 그룹의 서브-픽셀 포지션들에 속하는 동일한 음영 (또는 해칭) 을 가진 픽셀 포지션들을 도시한다. 특히, 서브-픽셀 포지션들 "a" 및 "c" 는 서브-픽셀 대칭을 갖는 제 1 그룹을 형성하고, 서브-픽셀 포지션들 "d" 및 "l" 은 서브-픽셀 대칭을 갖는 제 2 그룹을 형성하고, 서브-픽셀 포지션들 "e", "g", "m" 및 "o" 는 서브-픽셀 대칭을 갖는 제 3 그룹을 형성하고, 서브-픽셀 포지션들 "f" 및 "n" 은 서브-픽셀 대칭을 갖는 제 4 그룹을 형성하며, 서브-픽셀 포지션들 "i" 및 "k" 는 서브-픽셀 대칭을 갖는 제 5 그룹을 형성한다. 서브-픽셀 포지션들 "b", "h" 및 "j" 는 임의의 다른 서브-픽셀 포지션들과의 서브-픽셀 대칭을 갖지 않는다. 이로써, 서브-픽셀 포지션들 "b", "h" 및 "j" 는 그들 자신의 그룹, 즉, 각각 제 6 그룹, 제 7 그룹 및 제 8 그룹에 속하는 것을 보여질 수도 있다. (계수 대칭으로 인한 서브세트일 수도 있는) 각 그룹의 계수들은 상이한 타입의 필터링이 코딩된 단위의 상이한 영역 또는 피쳐에 대해 정의된다면 코딩된 단위 당 일 회, 또는 가능하다면 코딩된 단위 당 다수 회 통신될 수도 있다. 정수-화소 보간-형 필터링에 대한 계수들은 또한 코딩된 단위 당 일 회 또는 수 회 전송될 수도 있다.
NS-AIF 및 D-AIF 에서, 서브-픽셀 대칭은 동일한 차원에서 서브-픽셀 포지션들, 예를 들어, 수직 차원에서 2 개의 서브-픽셀 포지션들 또는 수평 차원에서 2 개의 서브-픽셀 포지션들 사이에 존재할 수도 있다. 일부 종래의 NS-AIF 및 D-AIF 에서, 대칭은 또한 상이한 차원에서 서브-픽셀 포지션들 사이에 대각선으로 존재한다. 예를 들어, 서브-픽셀 대칭은 일부 종래의 NS-AIF 및 D-AIF 에 있어서 수직 차원에서 서브-픽셀 포지션 "a" 와 수평 방향에서 서브-픽셀 포지션 "d" 사이에 존재한다. 수평, 수직 및 대각 차원에서의 서브-픽셀 대칭의 경우에는, 겨우 5 개의 고유한 세트의 보간 필터 계수들이 1/4-픽셀 정밀도에 대해 이용될 수도 있다.
한편, 일부 타입의 S-AIF 의 경우, 서브-픽셀 대칭은 수직 방향 (또는 차원) 에서 서브-픽셀 포지션들 사이에 존재하지만, 수평 차원에서는 서브-픽셀 포지션들 사이에 존재하지 않는다. 즉, 서브-픽셀 대칭은 동일 차원에서 서브-픽셀 포지션들에 대해 항상 존재하는 것은 아니다. 또한, 서브-픽셀 대칭은 대각 차원에서 존재하지 않는다. 따라서, 일부 S-AIF 방식들의 대칭은 보다 많은 세트의 보간 계수들을 요구한다. 특히, 1/4-픽셀 정밀도의 경우, 일부 S-AIF 방식들은 11 개의 고유한 세트의 보간 계수들을 요구한다.
본 개시물에 설명되고 도 7 에 예시되는 서브-픽셀 대칭 방식은 일부 타입의 NS-AIF 및 D-AIF 에 대해 상기 설명된 서브-픽셀 대칭보다 더 정확한 예측을 초래할 수도 있다. 특히, 도 7 의 서브-픽셀 대칭 방식은 일차원 (예를 들어, 수평 방향 또는 수직 방향) 에서 서브-픽셀 대칭을 부과하지만, 양자의 차원에서 동시에 (또는 대각선으로) 서브-픽셀 대칭을 부과하지 않는다.
서브-픽셀 포지션들에 대해 서브-픽셀 대칭을 대각선으로 부과하지 않음으로써, 상이한 차원에서의 보간 필터 계수들과 서브-픽셀 포지션들 사이의 약한 상관은 보간에 통합되지 않는다. 보다 많은 (예를 들어, 5 대신에 8) 세트의 보간 계수들이 요구될 수도 있지만, 결과의 보간 예측 데이터는 더 정확할 수도 있다. 대각 계수 대칭은 또한 훨씬 동일한 방식으로 회피 또는 제거될 수도 있다.
예측 유닛 (32) 은 또한 상기 설명한 바와 같이 계수 대칭을 부과할 수도 있다. 특히, 계수 대칭은 일차원 (예를 들어, 수평 또는 수직 차원) 에서 필터 계수들에 대해 부과되지만, 대각 방식의 양자의 차원들에 대해서는 부과되지 않는다. 예를 들어, 서브-픽셀 포지션 "e" 에 대한 필터 계수들은 상기 설명되고 식 (11) 에 나타내진 NS-AIF 방식에서처럼 대각선으로 대칭적이 되도록 강요되지 않는다. 계수 대칭은 식 (17) 내지 식 (22) 에서 이하 요약된다.
서브-픽셀 포지션들 "f", "i" 및 "j" 에 대해, 일부 필터 계수들, 즉, 는 도 4 에 대하여 상세하게 설명된 12-포지션 필터가 이용될 수도 있는 경우에 0 과 같다. 이로써, 본 개시물에 설명된 서브-픽셀 및 계수 대칭은 필터 서포트 기술들과 함께 또는 필터 서포트 기술들과 별개로 이용될 수도 있다. 도 4 에 설명된 12-포지션 필터 서포트와 함께 이용한 경우, 디코더로 전송될 필요가 있는 이들 서브-픽셀 포지션들에 대해 개의 고유한 계수들, 즉 서브-픽셀 포지션 "a" 를 포함하는 그룹에 대한 6 개의 계수들, 서브-픽셀 포지션 "b" 를 포함하는 그룹에 대한 3 개의 계수들, 서브-픽셀 포지션 "d" 를 포함하는 그룹에 대한 6 개의 계수들, 서브-픽셀 포지션 "h" 를 포함하는 그룹에 대한 3 개의 계수들, 서브-픽셀 포지션 "e" 를 포함하는 그룹에 대한 12 개의 계수들, 서브-픽셀 포지션 "f" 를 포함하는 그룹에 대한 6 개의 계수들, 서브-픽셀 포지션 "i" 를 포함하는 그룹에 대한 6 개의 계수들, 및 서브-픽셀 포지션 "j" 를 포함하는 그룹에 대한 3 개의 계수들이 있다.
도 17 은 본 개시물에 부합하는 12 개의 픽셀 필터 서포트를 이용하는 비디오 인코더의 동작예를 예시하는 흐름도이다. 도 17 의 기술은 다른 디바이스들이 유사한 기술들을 수행할 수도 있지만 도 2 의 비디오 인코더 (50) 의 관점에서 설명될 것이다. 도 17 에 도시한 바와 같이, 예측 유닛 (32) 의 MC 유닛 (37) 은 메모리 (34) 로부터 정수 픽셀 포지션들에 대응하는 정수 픽셀 값들을 포함하는 픽셀들의 블록을 획득한다 (171). 필터(들) (39) 는 서브-픽셀 포지션들을 둘러싸는 12 개 이상의 포지션들을 포함하는 필터 서포트에 기초하여 서브-픽셀 값들을 컴퓨팅한다 (172). 상기 더 상세하게 설명한 바와 같이, 12-포지션 필터 서포트는 15 개의 가능한 서브-픽셀 보간들 중 9 개를 생성하는데 이용될 수도 있지만, 선형 수평 및 선형 수직 필터링은 15 개의 가능한 서브-픽셀 보간들 중 6 개를 생성하는데 이용될 수도 있다.
그 후, MC 유닛 (37) 은 컴퓨팅된 서브-픽셀 값들에 기초하여 예측 블록을 생성한다 (173). 특히, MC 유닛 (37) 은 보간된 서브-픽셀 값들을 포함하는 보간 예측 블록을 생성 및 출력할 수도 있다. 그 후, 가산기 (48) 는 보간 예측 블록에 기초하여, 예를 들어 인코딩되는 비디오 블록으로 보간된 예측 블록을 감산하여 잔류 블록을 생성함으로써 현재의 비디오 블록을 인코딩할 수 있다 (174). 그 후, 잔류 블록은 변환 유닛 (38) 및 양자화 유닛 (40) 에 의해 각각 변환 및 양자화될 수도 있다. 엔트로피 코딩 유닛 (46) 에 의한 엔트로피 코딩에 이어, 비디오 인코더 (50) 는 인코딩된 비디오 비트스트림 및 필터 정보를 출력할 수 있다 (175). 필터 정보는, 본원에 설명한 바와 같이, 15 개의 서브-화소 포지션들에 대한 15 개의 세트의 계수들 모두를 생성하기 위해 이용된 8 개의 세트의 계수들을 포함할 수도 있다. 필터 정보는 코딩된 단위의 상이한 영역이 상이한 타입의 서브-화소 보간을 이용하는 경우에 코딩된 단위 당 일 회, 또는 가능하다면 코딩된 단위 당 수 회 출력될 수도 있다.
도 18 은 본 개시물에 부합하는 12 개의 픽셀 필터 서포트를 이용하는 비디오 디코더의 동작예를 예시하는 흐름도이다. 따라서, 도 18 의 프로세스는 도 17 의 인코딩 프로세스와 상호관계를 보이는 디코딩 프로세스로 고려될 수도 있다. 도 18 은 다른 디바이스들이 유사한 기술들을 수행할 수도 있지만 도 16 의 비디오 디코더 (60) 의 관점에서 설명될 것이다. 도 18 에 도시한 바와 같이, 비디오 디코더 (60) 는 인코딩된 비디오 블록들 및 필터 정보를 수신한다 (181). 엔트로피 디코딩 유닛 (52) 은 이 수신된 정보를 엔트로피 디코딩할 수도 있다. 예측 유닛 (55) 은 본 개시물의 기술들에 따라 보간적 모션 보상을 수행한다. 특히, 예측 유닛 (55) 은 메모리 (62) 로부터 정수 픽셀 포지션들에 대응하는 정수 픽셀 값들을 포함하는 픽셀들의 블록을 획득한다 (182). 예측 유닛 (55) 은 수신된 모션 벡터들을 이용하여 보간을 수행하기 위한 방법을 결정할 수도 있다. 모션 벡터들에 기초하여, 예측 유닛 (55) 은 서브-픽셀 포지션들을 둘러싸는 12 개 이상의 포지션들을 포함하는 필터 서포트에 기초하여 서브-픽셀을 컴퓨팅할 수 있다 (183). 이렇게 하여, 예측 유닛 (55) 은 보간을 이용하여 예측 블록을 생성한다 (184). 예측 블록은 그 예측 블록을 잔류 블록에 가산하기 위해 (185) 가산기 (64) 를 인보크함으로써 잔류 비디오 블록을 디코딩하는데 이용될 수도 있다. 방사형으로 서브-픽셀 포지션들을 둘러싸는 12 개의 포지션 필터 서포트의 이용을 포함하는, 본원에 설명된 다양한 양태의 보간은 종래의 기술들보다 더 양호한 품질의 보간 데이터를 제공함으로써 비디오 인코딩을 향상시킬 수도 있다.
도 19 는 본 개시물에 부합하는 계수 대칭 및 픽셀 대칭을 이용하는 비디오 인코더의 동작예를 예시하는 흐름도이다. 도 19 의 기술은 다른 디바이스들이 유사한 기술들을 수행할 수도 있지만 도 2 의 비디오 인코더 (50) 의 관점에서 설명될 것이다. 도 19 에 도시한 바와 같이, 비디오 인코더 (50) 의 예측 유닛 (32) 은 본원에 설명한 바와 같이, 계수 대칭 및 픽셀 대칭에 기초하여 15 개의 서브-픽셀 포지션들에 대한 8 개의 세트의 필터 계수들을 정의한다 (201). 특히, 예측 유닛 (32) 은 픽셀 대칭을 이용하여 계수들의 세트를 15 개에서 8 개로 저감시킬 수도 있으며, 또한 주어진 세트의 계수들 사이의 계수 대칭에 기초하여 8 개의 세트 중 일부 또는 전부에 대한 계수들의 수를 저감시킬 수도 있다. 그 후, 예측 유닛 (32) 은 보간 필터들 (이를 테면 필터(들) (39)) 및 8 개의 세트의 필터 계수들을 이용하여 비디오 데이터를 인코딩할 수 있다 (202). 비디오 인코더 (50) 는 인코딩된 비디오 데이터 및 8 개의 세트의 필터 계수들을 출력할 수도 있다 (203). 인코딩되어 비트스트림으로 출력되는 8 개의 세트의 계수들은 디코딩 디바이스가 보간을 위해 이용하기 위한 필터 계수들에 대해 통지받을 수 있도록 각 코딩된 단위 (예를 들어, 각 프레임 또는 슬라이스) 로 전송될 수도 있다. 대안으로, 상이한 그룹의 8 개의 세트의 계수들은 각 코딩된 단위로 인코딩 및 전송되어 코딩된 단위 내의 상이한 위치에서 상이한 타입의 보간을 가능하게 할 수도 있다.
도 20 은 본 개시물에 부합하는 계수 대칭 및 픽셀 대칭을 이용하는 비디오 디코더의 동작예를 예시하는 흐름도이다. 이 경우에, 비디오 디코더 (60) 의 예측 유닛 (55) 은 8 개의 세트의 필터 계수들을 수신하고 (191), 8 개의 세트, 계수 대칭 및 픽셀 대칭에 기초하여 15 개의 세트의 필터 계수들을 생성한다. 그 후, 예측 유닛 (60) 은 그 보간 필터들을 프로그램하고 이러한 보간 필터들을 보간 예측 데이터를 적절하게 생성할 수 있다 (193). 그 후, 비디오 디코더 (60) 는 예측 데이터에 기초하여, 예를 들어, 예측 유닛 (55) 에 의해 보간 예측 데이터를 디코딩되는 잔류 블록에 가산하기 위해 가산기 (64) 를 인보크함으로써 비디오 블록들을 디코딩할 수 있다 (194).
도 21 은 본 개시물에 부합하는 조정된 정수 픽셀 값들을 생성하기 위해 정수 픽셀 위치들의 필터링을 이용하는 비디오 인코더의 동작예를 예시하는 흐름도이다. 이는 보간과 유사하지만 서브-정수 값들을 생성하지 않는 한에서는 보간-형 필터링으로 상기 설명된다. 오히려, 이 프로세스는 원래의 정수 값 및 그 원래의 정수 값을 둘러싸는 다른 정수 값들에 기초하여 필터링되는 새로운 정수 값들을 생성한다.
도 21 은 다른 디바이스들이 유사한 기술들을 수행할 수도 있지만 도 2 의 비디오 인코더 (50) 의 관점에서 설명될 것이다. 도 21 에 도시한 바와 같이, 예측 유닛 (32) 의 MC 유닛 (37) 은 메모리 (34) 로부터 정수 픽셀 위치들에 대응하는 정수 픽셀 값들을 포함하는 픽셀들의 블록을 획득한다 (211). 예측 유닛 (32) 의 필터(들) (39) 는 픽셀들의 블록의 다른 정수 픽셀 값들에 기초하여 정수 픽셀 값들을 필터링하여 조정된 정수 픽셀 값들을 생성한다 (212). 예측 유닛 (32) 은 조정된 정수 픽셀 값들에 기초하여 예측 블록을 생성하고 (213), 예측 블록에 기초하여, 예를 들어 그 예측 블록을 인코딩되는 비디오 블록으로부터 감산하여 잔류 블록을 생성하기 위해 가산기 (48) 를 인보크함으로써 비디오 블록을 인코딩한다 (214). 변환 유닛 (38) 및 양자화 유닛 (40) 에 의한 잔류 블록의 변환 및 양자화에 이어, 및 엔트로피 코딩 유닛 (46) 에 의한 엔트로피 코딩에 이어, 비디오 인코더 (50) 는 인코딩된 비디오 블록 및 필터 정보를 출력한다 (215). 서브-화소 보간과 마찬가지로, 정수 픽셀 위치들에 대한 보간-형 필터링은 코딩된 단위의 상이한 영역이 상이한 타입의 정수 보간-형 필터링을 이용한다면 코딩된 단위 당 일 회 또는 가능하다면 코딩된 단위 당 수 회의 필터 정보의 출력 및 통신을 수반할 수도 있다.
도 22 는 본 개시물에 부합하는 조정된 정수 픽셀 값들을 생성하기 위해 정수 픽셀 위치들의 필터링을 이용하는 비디오 디코더의 동작예를 예시하는 흐름도이다. 비디오 디코더 (60) 의 예측 유닛 (55) 은 인코딩된 비디오 블록들을 수신하고, 또한 필터 정보를 (예를 들어, 코딩된 단위 당 일 회) 수신한다 (221). 예측 유닛 (55) 은 메모리 (62) 로부터 정수 픽셀 포지션들에 대응하는 정수 픽셀 값들을 포함하는 픽셀들의 블록을 획득한다 (222). 예측 유닛 (55) 은 픽셀들의 블록의 다른 정수 픽셀 값들에 기초하여 정수 픽셀 값들을 필터링하여 조정된 정수 픽셀 값들을 생성하기 위해 (223) 모션 보상의 일부로서 필터를 인보크한다. 예측 유닛 (55) 은 조정된 정수 픽셀 값들에 기초하여 예측 블록을 생성한다 (224). 비디오 디코더 (60) 는 그 후 예측 블록에 기초하여, 예를 들어, 예측 유닛 (55) 에 의해 보간 예측 블록을 디코딩될 잔류 비디오 블록에 가산하기 위해 (225) 가산기 (64) 를 인보크하여 비디오 블록들을 디코딩할 수 있다.
도 23 은 2 개의 세트의 후보 필터들에 기초한 비디오 코딩을 위한 레이트 왜곡 정의된 보간의 기술을 예시하는 흐름도이다. 이 경우에, 예측 유닛 (32) 의 MC 유닛 (37) 은 2 개 이상의 상이한 세트의 예측 데이터, 즉, 제 1 세트의 후보 보간 필터들에 기초하여 1 세트 및 2 세트의 후보 보간 필터들에 기초하여 다른 세트를 생성할 수도 있다. MC 유닛 (37) 은 그 후 어느 보간 필터가 레이트 및 왜곡의 관점에서 최선의 결과를 산출할지를 선택하기 위하여 레이트 왜곡 기반 분석을 이용할 수 있다. 이렇게 하여, MC 유닛 (37) 은 어느 세트의 예측 데이터가 최선의 결과들 (즉, 최소 왜곡) 을 산출할지를 고려할 뿐만 아니라, 일 세트의 후보 필터들이 그 필터 계수들을 디코더에 전달하기 위하여 더 적은 비트 오버헤드를 요구할 수도 있다는 사실을 고려할 것이다.
도 23 에 도시한 바와 같이, 예측 유닛 (32) 의 MC 유닛 (37) 은 제 1 보간 필터에 기초하여 비디오 데이터의 인코딩을 위한 제 1 보간 예측 데이터를 생성한다 (231). 일 예에서, 제 1 보간 필터는 특정 비디오 코딩 표준에 의해 정의된 필터, 이를 테면 ITU-T H.264 보간 필터에 대응하는 필터에 대응하는 고정된 보간 필터를 포함한다. 추가된 정밀도를 위해, 일부 경우에, 고정된 보간 필터는 1/4-픽셀 값들을 생성하는데 이용되는 1/2-픽셀 값들의 중간 반올림 (intermediate rounding) 없는 ITU-T H.264 보간 필터에 대응할 수도 있다. 이 경우에, 고정된 보간 필터는 1/2-픽셀 값들을 생성할 수도 있고 1/2-픽셀 해상도로의 보간을 위해 이러한 값들을 위로 반올림할 수도 있다. 그러나, 이러한 1/2-픽셀 값들이 또한 1/4-픽셀 해상도로의 보간을 위해 이용될 경우, MC 유닛 (37) 은 비-반올림된 (non-rounded) 버전의 1/2-픽셀 값들을 저장하고 1/4-픽셀 해상도로의 임의의 보간을 위해 비-반올림된 버전의 1/2-픽셀 값들을 이용할 수도 있다. 본 출원과 동일자로 출원되었고 여기에 참조로 통합되는, Karezewicz 등에 의해 출원되고 도켓 넘버 081399U1 을 가진 발명의 명칭이 "ADVANCED INTERPOLATION TECHNIQUES FOR MOTION COMPENSATION IN VIDEO CODING" 인 공동 계류중이고 공동 양도된 미국 특허출원번호 제 호는 1/4-픽셀 값들을 생성하는데 이용되는 1/2-픽셀 값들의 중간 반올림 없는 보간 필터에 대해 많은 추가적인 상세를 제공한다.
다음에, 예측 유닛 (32) 의 MC 유닛 (37) 은 제 2 보간 필터에 기초하여 비디오 데이터의 비디오 인코딩을 위한 제 2 보간 예측 데이터를 생성한다 (232). 일 예에서, 제 2 보간 필터는 적응형 보간 필터를 포함할 수도 있다. 이 경우에, 적응형 보간에 부합하여, MC 유닛 (37) 은 이용될 필터 계수들을 정의할 수도 있다. 특히, MC 유닛 (37) 은 MC 유닛 (37) 이 미리 설정된 필터 계수들로 시작하고, 예비 예측 데이터를 생성한 후 필터 계수들을 적응형 프로세스에서 조정하여 이러한 필터 계수들이 보다 바람직한 예측 데이터를 정의하도록 하는 적응형 보간 프로세스를 실행할 수도 있다.
일단 예측 유닛 (32) 의 MC 유닛 (37) 이 제 1 보간 예측 데이터와 제 2 보간 예측 데이터 양자를 생성했다면, MC 유닛 (37) 은 레이트 왜곡 분석에 기초하여 제 1 보간 예측 데이터와 제 2 보간 예측 데이터 사이에서 선택할 수 있다 (233). 이렇게 하여, MC 유닛 (37) 은 어느 세트의 예측 데이터가 최선의 결과들 (즉, 최소 왜곡) 을 산출할 것인지를 고려할 뿐만 아니라, MC 유닛 (37) 은 또한 제 2 보간 필터에 대한 제 1 보간 필터에 대해 요구될 상이한 양의 데이터 (즉, 상이한 비트 레이트) 를 고려한다. 특히, 고정된 보간 필터가 (예를 들어, 제 1 보간 필터로서) 이용되는 경우, 비디오 인코더 (50) 는 비트스트림의 필터 계수들을 인코딩할 필요가 없지만, 적응형 보간 필터가 (예를 들어, 제 2 보간 필터로서) 이용되는 경우, 비디오 인코더 (50) 는 필터 계수들을 인코딩할 필요가 있을 것이다. 따라서, 레이트 왜곡 분석은 고정된 보간 필터의 이용이 필터 계수들을 디코더로 전달하기 위하여 추가적인 비트들을 요구하지 않는다는 사실을 고려함으로써, 어느 세트의 예측 데이터가 최선의 결과들 (즉, 최소 레이트 왜곡 비용) 을 산출할지를 결정할 수 있다.
더 상세하게는, 레이트 왜곡 분석에 기초하여 제 1 보간 예측 데이터와 제 2 보간 예측 데이터 사이에서 선택하는 것 (233) 은 비디오 데이터가 제 1 보간 예측 데이터를 통해 인코딩되는 경우 비디오 데이터와 연관된 제 1 레이트 왜곡 비용을 계산하는 것, 비디오 데이터가 제 2 보간 예측 데이터를 통해 인코딩되는 경우 비디오 데이터와 연관된 제 2 레이트 왜곡 비용을 계산하는 것, 및 제 1 레이트 왜곡 비용 및 제 2 레이트 왜곡 비용에 기초하여 제 1 보간 예측 데이터와 제 2 보간 예측 데이터 사이에서 선택하는 것을 포함할 수도 있다.
비디오 데이터가 제 1 보간 예측 데이터를 통해 인코딩되는 경우 비디오 데이터와 연관된 레이트 왜곡 비용은 필터 계수들의 인코딩과 연관된 비용을 정량화하는 제 1 값을 더한, 비디오 데이터와 제 1 보간 예측 데이터 사이의 차이를 나타내는 제 1 차이 메트릭, 예를 들어, 픽셀 값들의 MSE (Mean Squared Error) 또는 픽셀 값들의 SAD (Sum of Absolute Difference) 또는 픽셀 값들의 SSD (Sum of Squared Difference) 를 포함할 수도 있다. 이 경우에, 제 1 보간 필터가 고정된 보간 필터인 경우에, 비용을 정량화하는 제 1 값은 0 으로 정의될 수도 있다. 유사하게, 제 2 레이트 왜곡 비용은 필터 계수들의 인코딩과 연관된 비용을 정량하는 제 2 값을 더한, 비디오 데이터와 제 2 보간 예측 데이터 사이의 차이를 나타내는 제 2 차이 메트릭 (MSE, SAD 또는 SSD) 을 포함할 수도 있다. 제 2 보간 필터가 적응형 보간 필터인 경우에 있어서, 필터 계수들의 인코딩과 연관된 비용을 정량화하는 제 2 값은 적응형 보간 필터 계수들을 인코딩하는데 필요한 비트들의 수 (r) 또는 가능하다면 이 수 (r) 를 라그랑지안 승수 (λ) 와 승산한 것을 포함할 수도 있다.
레이트 왜곡 분석에 기초하여 제 1 보간 예측 데이터와 제 2 보간 예측 데이터 사이에서 선택 (233) 한 후에, 예측 유닛 (32) 의 MC 유닛 (37) 은 상기 선택에 기초하여 비디오 데이터를 인코딩하고 (234), 상기 선택을 나타내기 위한 신택스를 인코딩한다 (235). 신택스는 디코더가 제 1 보간 필터를 이용해야 하는지 또는 제 2 보간 필터를 이용해야 하는지 여부를 정의하는 일 비트 플래그 또는 멀티 비트 플래그를 포함할 수도 있다. 도 23 의 프로세스는 복수의 서브-픽셀 위치들 각각에 대해 디코더가 제 1 보간 필터를 이용해야 하는지 또는 제 2 보간 필터를 이용해야 하는지 여부를 나타내기 위해 비디오 시퀀스의 각 코딩된 단위에 대한 복수의 서브-픽셀 위치들 각각에 대해 반복될 수도 있다. 서브-픽셀 위치들은 1/4-픽셀 해상도로의 보간에 부합하는 15 개의 가능한 서브-픽셀 위치들을 포함할 수도 있고, 또는 상이한 수의 서브-픽셀 위치들을 포함할 수도 있다. 도 23 의 프로세스는 또한 정수-픽셀 위치에 대해 디코더가 제 1 보간 필터를 이용해야 하는지 또는 제 2 보간 필터를 이용해야 하는지 여부를 나타내기 위해 비디오 시퀀스의 각 코딩된 단위에 대한 정수-픽셀 위치에 대해 반복될 수도 있다.
일단 비디오 인코더 (50) (도 2) 가 상기 선택에 기초하여 비디오 데이터를 인코딩했고 (234) 상기 선택을 나타내기 위한 신택스를 인코딩했다면 (235), 모뎀 (23) 및 송신기 (24) (도 1) 는 인코딩된 비디오 데이터 및 신택스를 변조하여 목적지 디바이스 (17) 로 송신할 수도 있다. 제 1 보간 필터가 고정되고 제 2 보간 필터가 적응형인 경우에 있어서, 송신기 (24) 는 신택스가 제 2 보간 예측 데이터가 인코딩된 비디오 데이터를 생성하는데 이용되었다는 것을 나타낼 때 필터 계수들을 송신할 수도 있지만, 신택스가 제 1 보간 예측 데이터가 인코딩된 비디오 데이터를 생성하는데 이용되었다는 것을 나타낼 때에는 어떠한 필터 계수들도 송신할 수 없을 수도 있다. 이렇게 하여, 제 1 보간 필터가 고정되고 제 2 보간 필터가 적응형인 경우, 필터 계수들은 단지 신택스가 적응형 보간 필터링이 이용되었다는 것을 나타내는 경우에만 전송되고, 적응형 보간 필터링을 이용하는지 여부의 결정은 예측 비디오 품질뿐만 아니라, 송신된 비트스트림에서의 필터 계수들의 존재에 의해 영향받은 비트 레이트를 고려한다. 그러나, 다른 예에서, 제 1 보간 필터 및 제 2 보간 필터는 양자가 모두 고정될 수도 있고, 또는 양자가 모두 적응형일 수도 있다.
본 개시물의 기술들은 인코더에 의해 선택되는 2 개보다 더 많은 세트의 필터들이 있을 때의 시나리오들을 포함하는, 다수의 시나리오들에 적용될 수도 있다. 즉, 추가적인 보간 필터들이 또한 레이트 왜곡 분석에서 또한 고려될 수도 있는 추가적인 보간 예측 데이터를 생성하기 위해 적용될 수도 있다. 즉, 이 방법은 2 개의 보간 필터들에 기초하여 단지 제 1 보간 예측 데이터와 제 2 보간 예측 데이터만을 생성하는 것으로 한정되지 않고 임의의 수의 보간 필터들에 기초하여 임의의 복수의 보간 예측 데이터를 생성하기 위해 적용될 수 있다. 레이트 왜곡 분석 보간 예측 데이터는 어느 필터를 선택할지를 식별하는데 이용되는 것이 중요하다. 일 예에서, 비디오 인코더 (50) 에 의해 실행되는 방법은 복수의 상이한 보간 필터들에 기초하여 비디오 데이터의 인코딩을 위한 복수의 상이한 버전의 예측 데이터를 생성하는 것, 레이트 왜곡 분석에 기초하여 복수의 상이한 버전의 예측 데이터 사이에서 선택하는 것, 그 선택에 기초하여 비디오 데이터를 인코딩하는 것, 및 그 선택을 나타내기 위한 신택스를 인코딩하는 것을 포함할 수도 있다.
레이트 왜곡 분석에 기초하여 보간 필터를 선택하고 그 선택을 나타내기 위한 신택스를 생성하는 것에 더하여, 예측 유닛 (32) 의 MC 유닛 (37) 은 또한 상기 더 상세하게 설명되는 정수 픽셀 필터링에 대하여 유사한 레이트 왜곡 분석을 수행할 수도 있다. 특히, 예측 유닛 (32) 의 MC 유닛 (37) 은 정수 픽셀 위치들에 대한 2 개 이상의 상이한 세트의 예측 데이터, 예를 들어 정수 픽셀 필터링을 사용하여 하나 그리고 정수 픽셀 필터링을 사용하지 않고 하나를 생성할 수도 있으며, 정수 픽셀 필터링이 요망되는지 여부를 결정하기 위하여 이들 2 개의 상이한 세트에 대하여 레이트 왜곡 분석을 수행할 수도 있다. 따라서, 예측 유닛 (32) 의 MC 유닛 (37) 은 정수 픽셀 필터링이 코딩된 단위에 대해 적용되어야 하는지 여부를 나타내기 위해 2 개의 상이한 세트의 정수 예측 데이터와 연관된 레이트 왜곡 분석에 기초하여 다른 신택스 엘리먼트를 생성할 수도 있으며, 제 1 세트의 정수 예측 데이터는 필터링되지 않고, 제 2 세트의 정수 예측 데이터는 필터링된다. 이렇게 하여, 정수 픽셀 필터링을 수행할지 여부의 결정은 특히 정수 픽셀 필터링이 이러한 정수 픽셀 필터링을 수행하는데 이용된 정수 픽셀 필터 계수들의 인코딩 및 전송을 수반하는 경우, 비디오 코딩의 품질뿐만 아니라 정수 픽셀 필터링과 연관된 가능한 비트 오버헤드에 기초할 수도 있다. 정수 필터링은 또한 N 개의 정수 필터들 (예를 들어, N 은 임의의 양의 복수형 정수이다) 을 고려할 수도 있다. N 개의 정수 필터들의 이용에 부합하여, 상기 예는 N 이 2 이고 필터들 중 하나가 임의의 필터링을 적용하지 않는 경우에 대응할 것이다.
보간 필터 계수들이 실제로 인코딩되어 소스 디바이스 (12) 로부터 목적지 디바이스 (16) 로 전송될 때마다, 본 개시물은 또한 이러한 보간 필터 계수들을 코딩하기 위한 기술들을 고려한다. 필터 계수들에 대한 상기 설명된 인코딩은 데이터 압축을 향상시킬 수 있다. 특히, 본 개시물은 필터 계수들에 대한, 예를 들어 고정된 필터 계수들에 대한 예측 기술들을 고려한다. 또한, 본 개시물은 제 1 세트의 필터 계수들에 대한 제 2 세트의 필터 계수들의 예측 기술들을 고려한다. 이들 방식에서, 상이한 필터 계수들 사이의 불완전한 대칭이 데이터 압축을 고려하기 위해 활용될 수도 있다. 보간 필터 계수들에 대한 이러한 예측 기술들의 이용에 더하여, 본 개시물은 또한 프리픽스 (prefix) 및 서픽스 (suffix) 코딩에 기초하여 보간 필터 계수들의 유용한 양자화 기술들 및 엔트로피 코딩을 가능하게 한다. 다음의 설명은 본 개시물의 이들 양태들에 대해 그 이상의 상세를 제공한다.
도 24 는 예측 코딩을 이용하여 필터 계수들을 인코딩하는 기술을 예시하는 흐름도이다. 이 경우에, 비디오 인코더 (50) 에 의해 이용된 필터 계수들은 필터 계수들이 인코딩된 비트스트림의 일부로서 전송될 때 데이터 압축을 더욱 향상시킬 수도 있는, 고정된 필터의 필터 계수들에 대하여 예측적으로 인코딩될 수도 있다.
도 24 에 도시한 바와 같이, 예측 유닛 (32) 의 MC 유닛 (37) 은 비디오 인코딩에서의 예측 데이터의 보간을 위한 일 세트의 필터 계수들을 식별한다 (241). 예를 들어, MC 유닛 (37) 은 적응형 보간 필터링 프로세스를 수행함으로써 일 세트의 필터 계수들을 식별할 수도 있다. 이 경우에, MC 유닛 (37) 은 적응형 보간 필터링 프로세스를 통해 일 세트의 필터 계수들을 결정하고 적응형 보간 필터링 프로세스에서 식별된 필터 계수들에 기초하여 예측 데이터를 생성할 수도 있다. 적응형 보간 필터링에서, 본원에 더 상세하게 설명한 바와 같이, MC 유닛 (37) 은 예측 데이터가 고정된 필터에 기초하여 생성된 후 필터 계수들이 그 예측 데이터가 코딩되는 비디오 데이터와 더 많이 유사하게 되도록 조정되는 2 단계 접근법을 수행할 수도 있다. 그 후, 조정된 필터 계수들은 비트스트림으로 이용 및 인코딩되는 필터 계수들을 정의한다.
필터 계수들을 인코딩하여 이러한 필터 계수들이 비트스트림의 일부로서 송신될 수도 있도록 하기 위하여, 계수 예측 및 양자화 유닛 (41) 은 고정된 보간 필터와 연관된 필터 계수들에 대한 일 세트의 필터 계수들의 예측 코딩에 기초하여 일 세트의 필터 계수들과 연관된 잔류 값들을 생성할 수도 있다 (242). 특히, 계수 예측 및 양자화 유닛 (41) 은 고정된 필터, 이를 테면 ITU-T H.264 보간 필터, 또는 1/2-픽셀 값들의 중간 반올림 없는 ITU-T H.264 보간 필터와 연관된 대응하는 필터 계수들로부터 적응형 보간 필터링 프로세스에서 결정된 필터 계수들을 감산할 수도 있다. 실제 필터 계수들을 송신하기 보다는 잔류 값들을 인코딩 및 송신함으로써, 비트스트림으로 통신된 데이터의 양이 저감될 수 있다. 이 경우에, 디코더는 필터 계수들이 인코딩되는 방식을 알도록 프로그램될 수도 있다.
비디오 인코더 (50) 는 잔류 계수들은 예측하고 또한 양자화하는 계수 예측 및 양자화 유닛 (41) 을 인보크할 수도 있고, 엔트로피 코딩 유닛 (46) 은 양자화된 잔류물들을 엔트로피 코딩할 수도 있다 (243). 비디오 인코더 (50) 는 그 후 잔류 값들을 인코딩된 비트스트림의 일부로서 출력할 수 있다 (244). 필터 계수들과 연관된 잔류 값들의 양자화는 그 잔류 값들을 양자화하는 것을 수반할 수도 있으며, 상이한 필터 계수들과 연관된 잔류 값들 중 적어도 일부는 상이한 레벨의 양자화를 할당받는다. 이렇게 하여, 바람직한 밸런스의 양자화 및 정확성을 달성하기 위하여 계수 예측 및 양자화 유닛 (41) 은 더 많은 양자화를 더 큰 잔류 계수들에 할당할 수도 있으며, 더 적은 양자화를 더 미세한 잔류 계수들에 할당할 수도 있다. 더 많은 양자화가 이용되는 경우, 더 많은 데이터가 제거되지만 더 큰 압축이 달성될 수도 있다. 엔트로피 코딩 유닛 (46) 은 잔류 값들의 양자화에 이어 잔류 값들에 대해, 프리픽스 코드를 할당하고, 서픽스 코드를 할당하며 부호 값을 할당함으로써 잔류 값들을 엔트로피 코딩할 수도 있다. 비디오 인코더 (50) 는 그 후 잔류 값들을 인코딩된 비트스트림의 일부로서 출력할 수 있다 (244).
도 27 은 예측적으로 코딩될 수 있는 일부 예시적인 필터 계수들을 예시하는 개념도이다. 이 경우에, 필터 계수들 O1, O2, O3 및 O4 은 고정된 보간 필터와 연관된 필터 계수들을 정의할 수도 있다. 필터 계수들 X1, X2, X3 및 X4 는 고정된 보간 필터의 것과 상당히 유사할 수도 있는 원하는 필터 계수들을 정의할 수도 있다. 따라서, 필터 계수들 X1, X2, X3 및 X4 는 각각 필터 계수들 O1, O2, O3 및 O4 에 기초하여 예측될 수도 있다. 특히, 제 1 잔류물은 X1 과 O1 사이의 차이로서 형성될 수도 있다. 유사하게, 제 2 잔류물은 X2 와 O2 사이의 차이로서 형성될 수도 있고, 제 3 잔류물은 X3 과 O3 사이의 차이로서 형성될 수도 있으며, 제 4 잔류물은 X4 와 O4 사이의 차이로서 형성될 수도 있다. 잔류물들은 원래의 필터 계수들보다 적은 데이터를 포함하여 데이터 압축을 촉진할 수도 있다.
일부 경우에, 일 세트의 필터 계수들은 적응형 보간 필터와 연관된 전체 세트의 필터 계수들의 일부만을 정의하는 제 1 세트의 필터 계수들을 포함하며, 제 2 세트의 필터 계수들은 제 1 세트의 필터 계수들 및 계수 대칭에 기초하여 디코더에 의해 결정될 수 있다. 예를 들어, 필터 계수들 X1 및 X2 는 각각 O1 및 O2 에 기초하여 예측적으로 인코딩될 수도 있다. 그러나, 이 경우에, X3 및 X4 는 X1 및 X2 와 대칭적일 수도 있으며, 디코더는 이러한 대칭이 부과되는 것을 알도록 프로그램될 수도 있다. 따라서, 대칭의 이용을 통하여, 이 단순한 예에서의 계수들 X3 및 X4 는 비트스트림으로부터 제거될 수도 있으며, 일단 계수들 X1 및 X2 가 예측적으로 디코딩되면 알려진 계수 대칭에 기초하여 디코더에서 계산될 수도 있다.
도 25 는 예측 코딩을 이용하여 필터 계수들을 인코딩하는 기술을 예시하는 다른 흐름도이다. 그러나, 이 경우에, 2 개의 상이한 타입의 예측이 이용된다. 도 25 에 도시한 바와 같이, 예측 유닛 (32) 의 MC 유닛 (37) 은 비디오 인코딩에서의 예측 데이터의 보간을 위한 일 세트의 필터 계수들을 식별한다 (251). 도 24 의 프로세스와 마찬가지로, 도 25 에서, MC 유닛 (37) 은 적응형 보간 필터링 프로세스를 수행함으로써 일 세트의 필터 계수들을 식별할 수도 있다. 이 경우에, MC 유닛 (37) 은 적응형 보간 필터링 프로세스를 통해 일 세트의 필터 계수들을 결정할 수도 있으며, 적응형 보간 필터링 프로세스에서 식별된 필터 계수들에 기초하여 예측 데이터를 생성할 수도 있다. 적응형 보간 필터링에서, MC 유닛 (37) 은 예측 데이터가 고정된 필터에 기초하여 생성된 후, 필터 계수들이 그 예측 데이터가 코딩되는 비디오 데이터와 더 많이 유사하게 되도록 조정되는 2 단계 접근법을 수행할 수도 있다. 그 후, 조정된 필터 계수들은 비트스트림으로 이용 및 인코딩되는 필터 계수들을 정의한다.
필터 계수들을 인코딩하여 이러한 필터 계수들이 비트스트림의 일부로서 송신될 수도 있도록 하기 위하여, 계수 예측 및 양자화 유닛 (41) 은 고정된 보간 필터와 연관된 필터 계수들에 대한 예측 코딩에 기초하여 제 1 세트의 필터 계수들과 연관된 제 1 세트의 잔류 값들을 생성할 수도 있다 (252). 특히, 계수 예측 및 양자화 유닛 (41) 은 고정된 필터, 이를 테면 ITU-T H.264 보간 필터, 또는 1/2-픽셀 값들의 중간 라운딩 없는 ITU-T H.264 보간 필터와 연관된 대응하는 필터 계수들로부터 제 1 세트의 필터 계수들을 감산할 수도 있다. 다음에, 계수 예측 및 양자화 유닛 (41) 은 제 1 세트의 필터 계수들에 대한 예측 코딩에 기초하여 제 2 세트의 필터 계수들과 연관된 제 2 세트의 잔류 값들을 생성할 수도 있다 (253). 특히, 계수 예측 및 양자화 유닛 (41) 은 제 2 세트의 필터 계수들을 제 1 세트의 계수들의 미러링 또는 회전된 값들로부터 감산할 수도 있다. 따라서, 제 1 세트의 계수들은 고정된 필터의 계수들에 기초하여 예측적으로 코딩되고, 제 2 세트의 계수들은 제 1 세트의 계수들에 기초하여 예측적으로 코딩된다. 실제 필터 계수들을 이용하기보다는 잔류 값들을 생성함으로써, 비트스트림으로 통신된 데이터의 양이 저감될 수 있다. 또한, 고정된 필터를 이용하여 제 1 세트의 계수들을 예측한 후, 제 1 세트의 계수들을 이용하여 제 2 세트의 계수들을 예측함으로써, 고정된 필터에만 의존하는 예측에 대하여 추가 데이터 압축이 달성될 수도 있다.
도 24 의 프로세스와 마찬가지로, 도 25 에서, 비디오 인코더 (50) 는 잔류 계수들을 예측적으로 코딩하고 또한 양자화하기 위해 계수 예측 및 양자화 유닛 (41) 을 인보크할 수도 있고, 엔트로피 코딩 유닛 (46) 은 양자화된 잔류물들을 엔트로피 코딩할 수도 있다 (254). 비디오 인코더 (50) 는 그 후 잔류 값들을 인코딩된 비트스트림의 일부로서 출력할 수 있다 (254). 다시, 필터 계수들과 연관된 잔류 값들의 양자화는 그 잔류 값들을 양자화하는 것을 수반할 수도 있으며, 상이한 필터 계수들과 연관된 잔류 값들 중 적어도 일부는 상이한 레벨의 양자화를 할당받는다. 이렇게 하여, 바람직한 밸런스의 양자화 및 정확성을 달성하기 위하여, 계수 예측 및 양자화 유닛 (41) 은 더 많은 양자화를 더 큰 잔류 계수들에 할당할 수도 있고, 더 적은 양자화를 더 마세한 잔류 계수들에 할당할 수도 있다. 엔트로피 코딩 유닛 (46) 은 잔류 값들의 양자화에 이어 잔류 값들에 대해, 프리픽스 코드를 할당하고, 서픽스 코드를 할당하며 부호 값을 할당함으로써 잔류 값들을 엔트로피 코딩할 수도 있다. 비디오 인코더 (50) 는 그 후 잔류 값들을 인코딩된 비트스트림의 일부로서 출력할 수 있다 (255).
도 28 은 도 25 의 프로세스에 부합하여 예측적으로 코딩될 수 있는 일부 예시적인 필터 계수들을 예시하는 개념도이다. 이 경우에, 필터 계수들 O1 및 O2 는 고정된 보간 필터와 연관된 필터 계수들을 정의할 수도 있다. 필터 계수들 X1 및 X2 는 고정된 보간 필터의 것과 상당히 유사할 수도 있는 제 1 세트의 원하는 필터 계수들을 정의할 수도 있다. 따라서, 필터 계수들 X1 및 X2 는 각각 필터 계수들 O1 및 O2 에 기초하여 예측될 수도 있다. 특히, 제 1 잔류물은 X1 과 O1 사이의 차이로서 형성될 수도 있고, 제 2 잔류물은 X2 와 O2 사이의 차이로서 형성될 수도 있다. 잔류물들은 원래의 필터 계수들보다 적은 데이터를 포함하여 데이터 압축을 촉진할 수도 있다. 잔류물들은 그 후 계수 예측 및 양자화 유닛 (41) 에 의해 양자화되고 엔트로피 코딩 유닛 (46) 에 의해 엔트로피 코딩된다. 및 는 예측 필터 계수들 O1 및 O2 에 양자화된 잔류물들을 가산함으로써 생성되는 변형된 필터 계수들을 나타낼 수도 있다.
다음에, 제 2 세트의 필터 계수들 Z1 및 Z2 는 제 1 세트의 계수들 X1 및 X2, 특히, 예를 들어 계수들 X1 및 X2 에 기초하여 정의되는 계수들 및 로부터 예측적으로 코딩될 수도 있다. 특히, 제 3 잔류물은 Z1 과 사이의 차이로서 형성될 수도 있고, 제 4 잔류물은 Z2 와 사이의 차이로서 형성될 수도 있다. 및 는 O1 및 O2 보다 Z1 및 Z2 와 더 유사할 수도 있기 때문에, 및 를 이용하여 Z1 및 Z2 를 예측적으로 인코딩함으로써, 추가 데이터 압축이 촉진될 수도 있다.
도 26 은 예측 코딩을 예용하여 필터 계수들을 디코딩하는 기술을 예시하는 흐름도이다. 도 26 은 도 16 의 비디오 디코더 (60) 의 관점에서 설명될 것이다. 도시한 바와 같이, 비디오 디코더 (60) 는 일 세트의 필터 계수들과 연관된 잔류 값들을 수신한다 (261). 비디오 디코더 (60) 는 엔트로피 디코딩 유닛 (52) 을 통해 잔류 값들을 엔트로피 디코딩할 수도 있고, 후에 예측 유닛 (55) 으로 전송되는 잔류 값들을 양자화해제하기 위해 계수 예측 및 역양자화 유닛 (53) 을 인보크할 수도 있다 (262). 예측 유닛 (56) 은 잔류 값들의 예측 디코딩을 이용하여 일 세트의 필터 계수들을 생성한다 (263).
특히, 예측 유닛 (56) 은 예를 들어 도 27 에 개념적으로 예시하고 인코딩의 맥락에서 상기 처리한 바와 같이, 고정된 보간 필터와 연관된 필터 계수들 및 잔류 값들에 기초하여 전체 세트의 필터 계수들을 생성할 수도 있다. 일부 경우에, 제 1 세트의 필터 계수들은 고정된 보간 필터와 연관된 필터 계수들 및 잔류 값들에 기초하여 생성될 수도 있고, 제 2 세트의 필터 계수들은 대칭에 기초하여 생성될 수도 있다. 다른 경우에, 도 28 에 개념적으로 예시하고 인코딩의 맥락에서 상기 처리한 바와 같이, 제 1 세트의 필터 계수들은 고정된 보간 필터와 연관된 필터 계수들 및 잔류 값들에 기초하여 생성될 수도 있고, 제 2 세트의 필터 계수들은 제 1 세트의 필터 계수들 및 추가적인 잔류 값들에 기초하여 생성될 수도 있다. 임의의 경우에, 비디오 디코더 (60) 의 예측 유닛 (56) 은 일 세트의 필터 계수들을 적용하여 비디오 블록들의 예측 디코딩에 이용되는 예측 데이터를 보간한다 (264). 특히, 예측 유닛 (56) 은 데이터를 필터링하여 예측적으로 디코딩된 필터 계수들을 이용하여 보간 예측 데이터를 생성하여, 이러한 보간 예측 데이터에 기초하여 비디오 블록들이 디코딩될 수 있도록 한다.
다시, 예측적으로 디코딩된 필터 계수들의 세트는 적응형 보간 필터와 연관된 전체 세트의 필터 계수들 중 일부만을 정의하는 제 1 세트의 필터 계수들을 포함할 수도 있다. 이 경우에, 비디오 디코더 (60) 의 계수 예측 및 역양자화 유닛 (53) 은 제 1 세트의 필터 계수들 및 계수 대칭에 기초하여 제 2 세트의 필터 계수들을 생성하고, 제 1 세트의 필터 계수들 및 제 2 세트의 필터 계수들을 적용하여 예측 데이터를 보간할 수도 있다.
다른 경우에, 예측적으로 디코딩된 필터 계수들의 세트는 적응형 보간 필터와 연관된 전체 세트의 필터 계수들 중 일부만을 정의하는 제 1 세트의 필터 계수들을 포함할 수도 있다. 이 경우에, 비디오 디코더 (60) 는 전체 세트의 필터 계수들과 연관된 추가적인 잔류 값들을 수신할 수도 있다. 계수 예측 및 역양자화 유닛 (53) 은 추가적인 잔류 값들 및 제 1 세트의 필터 계수들에 기초한 예측 디코딩을 이용하여 제 2 세트의 필터 계수들을 생성할 수도 있고, 예측 유닛 (55) 은 제 1 세트의 필터 계수들 및 제 2 세트의 필터 계수들을 적용하여 예측 데이터를 보간할 수도 있다.
일부 경우에, H.264/AVC 필터들에 기초한 고정된 보간 필터들은 (도 8, 도 9, 도 10 및 도 11 에 도시된 서브-픽셀 포지션들 a, b, d, h 에 대한 필터들을 포함할 수도 있는) 1-D 필터들을 예측하는데 이용될 수도 있다. 도 12, 도 13, 도 14 및 도 15 에 도시된 서브-픽셀 포지션들 e, f, i 및 j 에 대한 필터들을 포함하는 2-D 필터들의 경우, 다음의 예측 방식들 중 하나가 이용될 수도 있다 :
2. 트레이닝 세트를 통해 수집된 평균 필터와 같은 고정된 필터 예측을 이용, 즉, , 여기서, 는 서브-픽셀 포지션 SP 에 대한 평균 필터에서의 (i,j)-번째 필터 계수이다.
3. 계수들에서 가능한 대칭을 활용 및 이미 코딩된 계수들을 이용하여 나머지 계수들을 예측.
1-D 필터들의 경우에는, 이들 3 개의 예측 방법들 중 임의의 방법이 또한 적용될 수도 있다.
예측에 있어서, 도 29 는 예측 기술들이 인코딩을 위해 이용될 수도 있는 정수-픽셀 필터 계수들의 어레이의 일 예를 제공한다. 이 예에서, 정수-픽셀 필터에 대해서는 대칭이 부과되지 않는 것으로 가정될 수도 있다. 계수들 (h0,0), (h0,1), (h1,0), (h1,1), (h2,0), (h2,1), (h0,2), (h1,2) 및 (h2,2) 은 먼저 양자화 및 코딩될 수도 있다. 그 후, 이미 코딩된 상부-좌측 계수들 (h0,0), (h0,1), (h1,0), (h1,1) 및 (h2,0) 상부-우측 계수들 (h0,3), (h1,3), (h2,3), (h0,4), (h1,4) 및 (h2,4) 를 예측하는데 이용될 수도 있다. 다음에, 일단 상부 절반의 필터 계수들 (h0,0), (h0,1), (h0,2), (h0,3), (h0,4), (h1,0), (h1,1), (h1,2), (h1,3) 및 (h1,4) 이 양자화 및 코딩되면, 그들은 또한 저부 절반의 필터 계수들 (h3,0), (h3,1), (h3,2), (h3,3), (h3,4), (h4,0), (h4,1), (h4,2), (h4,3) 및 (h4,4) 을 예측하는데 이용될 수도 있다. 다른 필터 계수들의 예측은 유사한 방식으로 행해질 수도 있다. 예를 들어, 대각선으로의 일부 대칭을 가질 수도 있는 서브-픽셀 포지션 "e" 필터 (도 12 참조) 의 경우, 상부-우측 계수들이 먼저 양자화 및 코딩된 후 저부-좌측 계수들을 예측하는데 이용될 수도 있다.
임의의 경우에, (예를 들어, 예측 유닛 (32) 의 계수 예측 및 양자화 유닛 (41) 에 의한) 계수들의 예측 후에, 예측 에러들이 (예를 들어, 계수 예측 및 양자화 유닛 (41) 에 의해) 양자화된다. 상기 개요를 서술한 바와 같이, 소위 "불균일한 양자화 (uneven quantization)" 가 이용될 수도 있다. 이 경우에, 계수 예측 및 양자화 유닛 (41) 에 의해 적용된 양자화 정밀도는 계수 위치에 의존할 수도 있다. 더 작은 매그니튜드를 가진 계수들 (이는 통상적으로 필터의 중심에서 더 멀리 떨어져 있는 계수들이다) 의 경우에는, 더 양호한 정밀도가 바람직할 수도 있는 것으로 확인되었다. 반대로, 더 큰 매그니튜드를 가진 계수들 (이는 통상적으로 필터의 중심에 더 근접한 계수들이다) 의 경우에는, 더 적은 정밀도가 더 바람직하다.
다음의 메트릭들, 는 계수 예측 및 양자화 유닛 (41) 에 의해 1D 필터들, 2D 필터들 및 정수-픽셀 필터 각각에서의 계수들에 대한 양자화 정밀도를 특정하는데 이용될 수도 있다. 행렬에 주어진 다수의 비트들은 각각의 계수들의 부호를 인코딩하기 위해 1 비트를 포함할 수도 있다.
계수 예측 및 양자화 유닛 (41) 은 단순한 프리픽스 코딩 방식에 기초하여 양자화된 계수 예측 에러들, 즉, 계수 잔류물들을 코딩할 수도 있다. 먼저, 예측 에러의 매그니튜드의 동적 범위는 N (예를 들어, N = 6) 개의 빈 (bin) 들로 분할된다. 매그니튜드의 동적 범위가 인 경우 (여기서 q 는 주어진 계수 포지션에 대한 양자화 정밀도이다), (상기 행렬에서 특정한 바와 같이) 각 빈 n, n = 0, ..., N-1 은 다음의 범위 :
를 스패닝할 수도 있다.
이 경우에, 입력 매그니튜드 m 이 속하는 빈 b, b = 0, .., N-1 은 (b + 1 비트들을 취하는) 단항의 프리픽스 코드를 이용하여 코딩될 수도 있다. 그 후, 매그니튜드의 나머지 는 비트들의 고정된 길이 서픽스 코드를 이용하여 코딩될 수도 있다. 마지막으로, 예측 에러의 부호는 1 비트를 이용하여 코딩된다.
예를 들어, 1D 필터에서의 중심 계수에 대해, 9 비트 정밀도가 계수 예측 및 양자화 유닛 (41) 에 의해, 8 비트가 에러 매그니튜드를 양자화하는데 이용될 수도 있는 예측 에러, 즉, q = 9 를 양자화하는데 이용될 수도 있다. 에러 매그니튜드가 97 인 경우에는, 4 번째 빈, 즉 b = 4 내에 놓인다. 따라서, 단항의 프리픽스 코드 "11110" 은 4 번째 빈을 나타내기 위해 인코딩될 수도 있고, 나머지 는 비트의 고정된 길이 서픽스 코드를 이용하여 인코딩될 수도 있다. 마지막으로, 비트 "0" 은 양의 부호를 나타내기 위해 인코딩될 수 있다.
본 개시물의 기술들은 무선 핸드셋, 집적 회로 (IC) 또는 일 세트의 IC 세트들 (즉, 칩 세트) 를 포함하는, 광범위한 디바이스들 또는 장치들에 구현될 수도 있다. 임의의 컴포넌트들, 모듈들 또는 유닛들은 기능적 양태들을 강조하기 위해 설명 및 제공되었으며 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하는 것은 아니다.
따라서, 본원에 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합에 구현될 수도 있다. 하드웨어에 구현한 경우, 모듈들, 유닛들 또는 컴포넌트들로서 설명된 임의의 특징들이 집적된 로직 디바이스에 함께 또는 별개이지만 공동 이용가능한 로직 디바이스에 개별적으로 구현될 수도 있다. 소프트웨어에 구현한 경우, 그 기술들은 프로세서에서의 실행 시에, 상기 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 컴퓨터 판독가능 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체를 포함할 수도 있고 패키징물들을 포함할 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터 판독가능 저장 매체는 SDRAM (Synchronous Dynamic Random Access Memory) 과 같은 RAM (Random Access Memory), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 소거가능한 프로그램가능한 판독 전용 메모리 (EEPROM), FLASH 메모리, 자기 또는 광학 데이터 저장 매체 등을 포함할 수도 있다. 상기 기술들은, 부가적으로 또는 대안으로 컴퓨터에 의해 액세스, 판독 및/또는 실행될 수 있는 명령들 또는 데이터 구조들의 형태의 코드를 운반 또는 통신하는 컴퓨터 판독가능 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
코드는 하나 이상의 디지털 신호 프로세서들 (DSPs), 범용 프로세서들, 응용 주문형 집적 회로들 (ASICs), 필드 프로그램가능한 로직 어레이들 (FPGAs), 또는 다른 등가의 집적 또는 별개의 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, "프로세서" 라는 용어는, 본원에 이용한 바와 같이, 전술한 구조 또는 본원에 설명된 기술들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 나타낼 수도 있다. 또한, 일부 양태들에서, 본원에 설명된 기능성은 인코딩 및 디코딩용으로 구성되고 조합된 비디오 코덱에 통합된 전용 소프트웨어 모듈들 또는 하드웨어 모듈들 내에 제공될 수도 있다. 또한, 상기 기술들은 하나 이상의 회로들 또는 로직 엘리먼트들에 완전히 구현될 수 있다.
본 개시물의 다양한 양태들이 설명되었다. 이들 및 다른 양태들은 다음의 특허청구의 범위 내에 있다.
Claims (50)
- 복수의 상이한 보간 필터들에 기초하여 비디오 데이터의 인코딩을 위한 복수의 상이한 버전의 예측 데이터를 생성하는 단계;
레이트 왜곡 분석에 기초하여 상기 복수의 상이한 버전의 예측 데이터 중에서 선택하는 단계;
상기 선택에 기초하여 상기 비디오 데이터를 인코딩하는 단계; 및
상기 선택을 나타내기 위한 신택스를 인코딩하는 단계를 포함하는, 방법. - 제 1 항에 있어서,
상기 생성하는 단계 및 상기 선택하는 단계는,
제 1 보간 필터에 기초하여 비디오 데이터의 인코딩을 위한 제 1 보간 예측 (interpolated predictive) 데이터를 생성하는 단계;
제 2 보간 필터에 기초하여 상기 비디오 데이터의 인코딩을 위한 제 2 보간 예측 데이터를 생성하는 단계; 및
상기 레이트 왜곡 분석에 기초하여 상기 제 1 보간 예측 데이터와 상기 제 2 보간 예측 데이터 사이에서 선택하는 단계를 포함하는, 방법. - 제 2 항에 있어서,
상기 제 1 보간 필터는 고정된 보간 필터에 대응하는, 방법. - 제 3 항에 있어서,
상기 제 1 보간 필터는 ITU-T H.264 보간 필터에 대응하는, 방법. - 제 3 항에 있어서,
상기 제 1 보간 필터는 다른 프랙셔널-픽셀 값들을 생성하는데 이용되는 프랙셔널-픽셀 값들의 중간 반올림 (intermediate rounding) 없는 ITU-T H.264 보간 필터에 대응하는, 방법. - 제 2 항에 있어서,
상기 제 1 보간 필터는 고정된 보간 필터에 대응하며, 상기 제 2 보간 필터는 적응형 보간 필터에 대응하는, 방법. - 제 2 항에 있어서,
상기 신택스는 디코더가 상기 제 1 보간 필터를 이용해야 하는지 또는 상기 제 2 보간 필터를 이용해야 하는지 여부를 정의하는 플래그를 포함하는, 방법. - 제 2 항에 있어서,
개별 신택스 엘리먼트가 코딩된 단위에 대한 복수의 서브-픽셀 위치들 각각에 대해 정의되어, 상기 복수의 서브-픽셀 위치들 각각에 대해 디코더가 상기 제 1 보간 필터를 이용해야 하는지 또는 상기 제 2 보간 필터를 이용해야 하는지 여부를 나타내는, 방법. - 제 1 항에 있어서,
개별 신택스 엘리먼트가 상기 비디오 데이터의 정수-픽셀 위치들에 대해 정의되어, 상기 정수-픽셀 위치들에 대해 디코더가 제 1 필터를 이용해야 하는지 또는 제 2 필터를 이용해야 하는지 여부를 나타내는, 방법. - 제 8 항에 있어서,
상기 제 1 필터는 어떤 필터링도 적용하지 않으며, 상기 제 2 필터는 적응형 필터 계수들과 연관되는, 방법. - 제 2 항에 있어서,
상기 인코딩된 비디오 데이터, 및 상기 인코딩된 비디오 데이터를 생성하는데 상기 제 1 보간 예측 데이터가 이용되었는지 또는 상기 제 2 보간 예측 데이터가 이용되었는지 여부를 나타내기 위한 상기 신택스를 송신하는 단계를 더 포함하는, 방법. - 제 11 항에 있어서,
상기 제 2 보간 필터가 적응형이고 상기 인코딩된 비디오 데이터를 생성하는데 상기 제 2 보간 예측 데이터가 이용되었다는 것을 상기 신택스가 나타낼 때 필터 계수들을 송신하는 단계; 및
상기 제 1 보간 필터가 고정되고 상기 인코딩된 비디오 데이터를 생성하는데 상기 제 1 보간 예측 데이터가 이용되었다는 것을 상기 신택스가 나타낼 때 어떤 필터 계수들도 송신하지 않는 단계를 더 포함하는, 방법. - 제 2 항에 있어서,
상기 레이트 왜곡 분석에 기초하여 상기 제 1 보간 예측 데이터와 상기 제 2 보간 예측 데이터 사이에서 선택하는 단계는,
상기 비디오 데이터가 상기 제 1 보간 예측 데이터를 통해 인코딩되는 경우 상기 비디오 데이터와 연관된 제 1 레이트 왜곡 비용을 계산하는 단계;
상기 비디오 데이터가 상기 제 2 보간 예측 데이터를 통해 인코딩되는 경우 상기 비디오 데이터와 연관된 제 2 레이트 왜곡 비용을 계산하는 단계; 및
상기 제 1 레이트 왜곡 비용 및 상기 제 2 레이트 왜곡 비용에 기초하여 상기 제 1 보간 예측 데이터와 상기 제 2 보간 예측 데이터 사이에서 선택하는 단계를 포함하는, 방법, - 비디오 코더를 포함하는 장치로서,
상기 비디오 코더는,
복수의 상이한 보간 필터들에 기초하여 비디오 데이터의 인코딩을 위한 복수의 상이한 버전의 예측 데이터를 생성하고;
레이트 왜곡 분석에 기초하여 상기 복수의 상이한 버전의 예측 데이터 중에서 선택하고;
상기 선택에 기초하여 상기 비디오 데이터를 인코딩하며;
상기 선택을 나타내기 위한 신택스를 인코딩하는, 비디오 코더를 포함하는 장치. - 제 14 항에 있어서,
상기 비디오 코더는,
제 1 보간 필터에 기초하여 비디오 데이터의 인코딩을 위한 제 1 보간 예측 데이터를 생성하고;
제 2 보간 필터에 기초하여 상기 비디오 데이터의 인코딩을 위한 제 2 보간 예측 데이터를 생성하며,
상기 레이트 왜곡 분석에 기초하여 상기 제 1 보간 예측 데이터와 상기 제 2 보간 예측 데이터 사이에서 선택하는, 비디오 코더를 포함하는 장치. - 제 15 항에 있어서,
상기 제 1 보간 필터는 고정된 보간 필터에 대응하는, 비디오 코더를 포함하는 장치. - 제 16 항에 있어서,
상기 고정된 보간 필터는 ITU-T H.264 보간 필터에 대응하는, 비디오 코더를 포함하는 장치. - 제 16 항에 있어서,
상기 고정된 보간 필터는 다른 프랙셔널 픽셀 값들을 생성하는데 이용되는 프랙셔널 픽셀 값들의 중간 반올림 없는 ITU-T H.264 보간 필터에 대응하는, 비디오 코더를 포함하는 장치. - 제 15 항에 있어서,
상기 제 1 보간 필터는 고정된 보간 필터에 대응하며, 상기 제 2 보간 필터는 적응형 보간 필터에 대응하는, 비디오 코더를 포함하는 장치. - 제 15 항에 있어서,
상기 신택스는 디코더가 상기 제 1 보간 필터를 이용해야 하는지 또는 상기 제 2 보간 필터를 이용해야 하는지 여부를 정의하는 플래그를 포함하는, 비디오 코더를 포함하는 장치. - 제 15 항에 있어서,
개별 신택스 엘리먼트가 코딩된 단위에 대한 복수의 서브-픽셀 위치들 각각에 대해 정의되어, 상기 복수의 서브-픽셀 위치들 각각에 대해 디코더가 상기 제 1 보간 필터를 이용해야 하는지 또는 상기 제 2 보간 필터를 이용해야 하는지 여부를 나타내는, 비디오 코더를 포함하는 장치. - 제 14 항에 있어서,
개별 신택스 엘리먼트가 상기 비디오 데이터의 정수-픽셀 위치들에 대해 정의되어, 상기 정수-픽셀 위치들에 대해 디코더가 제 1 필터를 이용해야 하는지 또는 제 2 필터를 이용해야 하는지 여부를 나타내는, 비디오 코더를 포함하는 장치. - 제 22 항에 있어서,
상기 제 1 필터는 어떤 필터링도 적용하지 않으며, 상기 제 2 필터는 적응형 필터 계수들과 연관되는, 비디오 코더를 포함하는 장치. - 제 15 항에 있어서,
상기 인코딩된 비디오 데이터, 및 상기 인코딩된 비디오 데이터를 생성하는데 상기 제 1 보간 예측 데이터가 이용되었는지 또는 상기 제 2 보간 예측 데이터가 이용되었는지 여부를 나타내기 위한 상기 신택스를 송신하는 송신기를 더 포함하는, 비디오 코더를 포함하는 장치. - 제 24 항에 있어서,
상기 송신기는,
상기 제 2 보간 필터가 적응형이고 상기 인코딩된 비디오 데이터를 생성하는데 상기 제 2 보간 예측 데이터가 이용되었다는 것을 상기 신택스가 나타낼 때 필터 계수들을 송신하고;
상기 제 1 보간 필터가 고정되고 상기 인코딩된 비디오 데이터를 생성하는데 상기 제 1 보간 예측 데이터가 이용되었다는 것을 상기 신택스가 나타낼 때 어떤 필터 계수들도 송신하지 않는, 비디오 코더를 포함하는 장치. - 제 15 항에 있어서,
상기 레이트 왜곡 분석에 기초하여 상기 제 1 보간 예측 데이터와 상기 제 2 보간 예측 데이터 사이에서 선택하는데 있어서, 상기 장치는,
상기 비디오 데이터가 상기 제 1 보간 예측 데이터를 통해 인코딩되는 경우 상기 비디오 데이터와 연관된 제 1 레이트 왜곡 비용을 계산하고;
상기 비디오 데이터가 상기 제 2 보간 예측 데이터를 통해 인코딩되는 경우 상기 비디오 데이터와 연관된 제 2 레이트 왜곡 비용을 계산하며;
상기 제 1 레이트 왜곡 비용 및 상기 제 2 레이트 왜곡 비용에 기초하여 상기 제 1 보간 예측 데이터와 상기 제 2 보간 예측 데이터 사이에서 선택하는, 비디오 코더를 포함하는 장치. - 제 14 항에 있어서,
상기 비디오 코더는 집적 회로를 포함하는, 비디오 코더를 포함하는 장치. - 제 14 항에 있어서,
상기 비디오 코더는 마이크로프로세서를 포함하는, 비디오 코더를 포함하는 장치. - 제 14 항에 있어서,
상기 장치는 상기 비디오 코더를 포함하는 무선 통신 디바이스를 포함하는, 비디오 코더를 포함하는 장치. - 복수의 상이한 보간 필터들에 기초하여 비디오 데이터의 인코딩을 위한 복수의 상이한 버전의 예측 데이터를 생성하는 수단;
레이트 왜곡 분석에 기초하여 상기 복수의 상이한 버전의 예측 데이터 중에서 선택하는 수단;
상기 선택에 기초하여 상기 비디오 데이터를 인코딩하는 수단; 및
상기 선택을 나타내기 위한 신택스를 인코딩하는 수단을 포함하는, 디바이스. - 제 30 항에 있어서,
상기 생성하는 수단 및 상기 선택하는 수단은,
제 1 보간 필터에 기초하여 비디오 데이터의 인코딩을 위한 제 1 보간 예측 데이터를 생성하는 수단;
제 2 보간 필터에 기초하여 상기 비디오 데이터의 인코딩을 위한 제 2 보간 예측 데이터를 생성하는 수단; 및
상기 레이트 왜곡 분석에 기초하여 상기 제 1 보간 예측 데이터 및 상기 제 2 보간 예측 데이터 사이에서 선택하는 수단을 포함하는, 디바이스. - 제 31 항에 있어서,
상기 제 1 보간 필터는 고정된 보간 필터에 대응하는, 디바이스. - 제 32 항에 있어서,
상기 고정된 보간 필터는 ITU-T H.264 보간 필터에 대응하는, 디바이스. - 제 32 항에 있어서,
상기 고정된 보간 필터는 다른 프랙셔널 픽셀 값들을 생성하는데 이용되는 프랙셔널 픽셀 값들의 중간 반올림 없는 ITU-T H.264 보간 필터에 대응하는, 디바이스. - 제 31 항에 있어서,
상기 제 1 보간 필터는 고정된 보간 필터에 대응하며, 상기 제 2 보간 필터는 적응형 보간 필터에 대응하는, 디바이스. - 제 31 항에 있어서,
상기 신택스는 디코더가 상기 제 1 보간 필터를 이용해야 하는지 또는 상기 제 2 보간 필터를 이용해야 하는지 여부를 정의하는 플래그를 포함하는, 디바이스. - 제 31 항에 있어서,
개별 신택스 엘리먼트가 코딩된 단위에 대한 복수의 서브-픽셀 위치들 각각에 대해 정의되어, 상기 복수의 서브-픽셀 위치들 각각에 대해 디코더가 상기 제 1 보간 필터를 이용해야 하는지 또는 상기 제 2 보간 필터를 이용해야 하는지 여부를 나타내는, 디바이스. - 제 30 항에 있어서,
상기 비디오 데이터의 정수-픽셀 위치들에 대한 개별 신택스 엘리먼트를 생성하여 상기 정수-픽셀 위치들에 대해 디코더가 제 1 필터를 이용해야 하는지 또는 제 2 필터를 이용해야 하는지 여부를 나타내는 수단을 더 포함하는, 디바이스. - 제 38 항에 있어서,
상기 제 1 필터는 어떤 필터링도 적용하지 않으며, 상기 제 2 필터는 적응형 필터 계수들과 연관되는, 디바이스. - 제 31 항에 있어서,
상기 인코딩된 비디오 데이터, 및 상기 인코딩된 비디오 데이터를 생성하는데 상기 제 1 보간 예측 데이터가 이용되었는지 또는 상기 제 2 보간 예측 데이터가 이용되었는지 여부를 나타내기 위한 상기 신택스를 송신하는 수단을 더 포함하는, 디바이스. - 제 40 항에 있어서,
상기 제 2 보간 필터가 적응형이고 상기 인코딩된 비디오 데이터를 생성하는데 상기 제 2 보간 예측 데이터가 이용되었다는 것을 상기 신택스가 나타낼 때 필터 계수들을 송신하는 수단; 및
상기 제 1 보간 필터가 고정되고 상기 인코딩된 비디오 데이터를 생성하는데 상기 제 1 보간 예측 데이터가 이용되었다는 것을 상기 신택스가 나타낼 때 어떤 필터 계수들도 송신하지 않는 수단을 더 포함하는, 디바이스. - 제 31 항에 있어서,
상기 레이트 왜곡 분석에 기초하여 상기 제 1 보간 예측 데이터와 상기 제 2 보간 예측 데이터 사이에서 선택하는 수단은,
상기 비디오 데이터가 상기 제 1 보간 예측 데이터를 통해 인코딩되는 경우 상기 비디오 데이터와 연관된 제 1 레이트 왜곡 비용을 계산하는 수단;
상기 비디오 데이터가 상기 제 2 보간 예측 데이터를 통해 인코딩되는 경우 상기 비디오 데이터와 연관된 제 2 레이트 왜곡 비용을 계산하는 수단; 및
상기 제 1 레이트 왜곡 비용 및 상기 제 2 레이트 왜곡 비용에 기초하여 상기 제 1 보간 예측 데이터와 상기 제 2 보간 예측 데이터 사이에서 선택하는 수단을 포함하는, 디바이스. - 프로세서에 의한 실행 시에, 상기 프로세서로 하여금,
복수의 상이한 보간 필터들에 기초하여 비디오 데이터의 인코딩을 위한 복수의 상이한 버전의 예측 데이터를 생성하도록 하고;
레이트 왜곡 분석에 기초하여 상기 복수의 상이한 버전의 예측 데이터 사이에서 선택하도록 하고;
상기 선택에 기초하여 상기 비디오 데이터를 인코딩하도록 하며;
상기 선택을 나타내기 위한 신택스를 인코딩하도록 하는 명령들을 포함하는, 컴퓨터 판독가능 저장 매체. - 제 43 항에 있어서,
상기 명령들은, 상기 프로세서로 하여금,
제 1 보간 필터에 기초하여 비디오 데이터의 인코딩을 위한 제 1 보간 예측 데이터를 생성하도록 하고;
제 2 보간 필터에 기초하여 상기 비디오 데이터의 인코딩을 위한 제 2 보간 예측 데이터를 생성하도록 하며;
상기 레이트 왜곡 분석에 기초하여 상기 제 1 보간 예측 데이터와 상기 제 2 보간 예측 데이터 사이에서 선택하도록 하는, 컴퓨터 판독가능 저장 매체. - 제 44 항에 있어서,
상기 제 1 보간 필터는 고정된 보간 필터에 대응하며, 상기 제 2 보간 필터는 적응형 보간 필터에 대응하는, 컴퓨터 판독가능 저장 매체. - 제 44 항에 있어서,
상기 신택스는 디코더가 상기 제 1 보간 필터를 이용해야 하는지 또는 상기 제 2 보간 필터를 이용해야 하는지 여부를 정의하는 플래그를 포함하는, 컴퓨터 판독가능 저장 매체. - 제 44 항에 있어서,
개별 신택스 엘리먼트가 코딩된 단위에 대한 복수의 서브-픽셀 위치들 각각에 대해 정의되어, 상기 복수의 서브-픽셀 위치들 각각에 대해 디코더가 상기 제 1 보간 필터를 이용해야 하는지 또는 상기 제 2 보간 필터를 이용해야 하는지 여부를 나타내는, 컴퓨터 판독가능 저장 매체. - 제 44 항에 있어서,
상기 명령들은, 상기 프로세서로 하여금,
상기 인코딩된 비디오 데이터, 및 상기 인코딩된 비디오 데이터를 생성하는데 상기 제 1 보간 예측 데이터가 이용되었는지 또는 상기 제 2 보간 예측 데이터가 이용되었는지 여부를 나타내기 위한 상기 신택스의 송신을 야기하도록 하는, 컴퓨터 판독가능 저장 매체. - 제 48 항에 있어서,
상기 프로세서로 하여금,
상기 제 2 보간 필터가 적응형이고 상기 인코딩된 비디오 데이터를 생성하는데 상기 제 2 보간 예측 데이터가 이용되었다는 것을 상기 신택스가 나타낼 때 필터 계수들의 송신을 야기하도록 하고;
상기 제 1 보간 필터가 고정되고 상기 인코딩된 비디오 데이터를 생성하는데 상기 제 1 보간 예측 데이터가 이용되었다는 것을 상기 신택스가 나타낼 때 어떤 필터 계수들의 송신도 야기하지 않도록 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체. - 제 44 항에 있어서,
상기 레이트 왜곡 분석에 기초하여 상기 제 1 보간 예측 데이터와 상기 제 2 보간 예측 데이터 사이에서 선택하는데 있어서, 상기 명령들은, 상기 프로세서로 하여금,
상기 비디오 데이터가 상기 제 1 보간 예측 데이터를 통해 인코딩되는 경우 상기 비디오 데이터와 연관된 제 1 레이트 왜곡 비용을 계산하도록 하고;
상기 비디오 데이터가 상기 제 2 보간 예측 데이터를 통해 인코딩되는 경우 상기 비디오 데이터와 연관된 제 2 레이트 왜곡 비용을 계산하도록 하며;
상기 제 1 레이트 왜곡 비용 및 상기 제 2 레이트 왜곡 비용에 기초하여 상기 제 1 보간 예측 데이터와 상기 제 2 보간 예측 데이터 사이에서 선택하도록 하는, 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US4402308P | 2008-04-10 | 2008-04-10 | |
US4402008P | 2008-04-10 | 2008-04-10 | |
US61/044,020 | 2008-04-10 | ||
US61/044,023 | 2008-04-10 | ||
US4424008P | 2008-04-11 | 2008-04-11 | |
US61/044,240 | 2008-04-11 | ||
US5737308P | 2008-05-30 | 2008-05-30 | |
US61/057,373 | 2008-05-30 | ||
US12/420,315 US9967590B2 (en) | 2008-04-10 | 2009-04-08 | Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter |
US12/420,315 | 2009-04-08 | ||
PCT/US2009/040254 WO2009126915A1 (en) | 2008-04-10 | 2009-04-10 | Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100129339A true KR20100129339A (ko) | 2010-12-08 |
KR101202633B1 KR101202633B1 (ko) | 2012-11-19 |
Family
ID=40688433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107025053A KR101202633B1 (ko) | 2008-04-10 | 2009-04-10 | 고정된 필터 또는 적응형 필터에 기초한 비디오 코딩을 위한 레이트 왜곡 정의된 보간 |
Country Status (9)
Country | Link |
---|---|
US (3) | US9967590B2 (ko) |
EP (1) | EP2304961B1 (ko) |
JP (2) | JP5536034B2 (ko) |
KR (1) | KR101202633B1 (ko) |
CN (1) | CN101990758B (ko) |
BR (1) | BRPI0910634B1 (ko) |
CA (1) | CA2719232C (ko) |
TW (1) | TWI542222B (ko) |
WO (1) | WO2009126915A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023153891A1 (ko) * | 2022-02-13 | 2023-08-17 | 엘지전자 주식회사 | 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9967590B2 (en) | 2008-04-10 | 2018-05-08 | Qualcomm Incorporated | Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter |
US8831086B2 (en) * | 2008-04-10 | 2014-09-09 | Qualcomm Incorporated | Prediction techniques for interpolation in video coding |
JP5200788B2 (ja) * | 2008-09-09 | 2013-06-05 | 富士通株式会社 | 映像信号処理装置、映像信号処理方法および映像信号処理プログラム |
WO2010063881A1 (en) * | 2008-12-03 | 2010-06-10 | Nokia Corporation | Flexible interpolation filter structures for video coding |
KR101678968B1 (ko) * | 2009-08-21 | 2016-11-25 | 에스케이텔레콤 주식회사 | 참조 픽처 보간 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 |
US8554061B2 (en) * | 2009-09-10 | 2013-10-08 | Apple Inc. | Video format for digital video recorder |
US8737825B2 (en) | 2009-09-10 | 2014-05-27 | Apple Inc. | Video format for digital video recorder |
US20120163479A1 (en) * | 2009-09-28 | 2012-06-28 | Canon Kabushiki Kaisha | Methods and devices for filtering and coding a digital signal |
KR101709822B1 (ko) * | 2009-11-24 | 2017-02-23 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 부호화된 텍셀 블록에서 동작할 수 있는 복호 시스템 및 방법 |
WO2011086672A1 (ja) * | 2010-01-13 | 2011-07-21 | 株式会社 東芝 | 動画像符号化装置および復号装置 |
JP2011146980A (ja) * | 2010-01-15 | 2011-07-28 | Sony Corp | 画像処理装置および方法 |
US8995527B2 (en) * | 2010-02-19 | 2015-03-31 | Qualcomm Incorporated | Block type signalling in video coding |
US9094658B2 (en) | 2010-05-10 | 2015-07-28 | Mediatek Inc. | Method and apparatus of adaptive loop filtering |
WO2011142815A1 (en) * | 2010-05-12 | 2011-11-17 | Thomson Licensing | Methods and apparatus for uni-prediction of self-derivation of motion estimation |
US8577159B2 (en) | 2010-09-14 | 2013-11-05 | Blackberry Limited | Methods and devices for data compression with adaptive filtering in the transform domain |
CA2805722C (en) * | 2010-10-05 | 2016-03-29 | Ching-Yeh Chen | Method and apparatus of region-based adaptive loop filtering |
US10045046B2 (en) | 2010-12-10 | 2018-08-07 | Qualcomm Incorporated | Adaptive support for interpolating values of sub-pixels for video coding |
US9172972B2 (en) | 2011-01-05 | 2015-10-27 | Qualcomm Incorporated | Low complexity interpolation filtering with adaptive tap size |
JP5552092B2 (ja) * | 2011-06-13 | 2014-07-16 | 日本電信電話株式会社 | 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム |
JP5762243B2 (ja) * | 2011-10-18 | 2015-08-12 | 日本電信電話株式会社 | 映像符号化方法,装置,映像復号方法,装置およびそれらのプログラム |
EP2595382B1 (en) | 2011-11-21 | 2019-01-09 | BlackBerry Limited | Methods and devices for encoding and decoding transform domain filters |
KR101156667B1 (ko) * | 2011-12-06 | 2012-06-14 | 주식회사 에이디알에프코리아 | 통신 시스템의 필터 계수 설정 방법 |
US10230956B2 (en) | 2012-09-26 | 2019-03-12 | Integrated Device Technology, Inc. | Apparatuses and methods for optimizing rate-distortion of syntax elements |
US10277907B2 (en) | 2012-10-25 | 2019-04-30 | Integrated Device Technology, Inc. | Rate-distortion optimizers and optimization techniques including joint optimization of multiple color components |
WO2015015681A1 (ja) * | 2013-07-31 | 2015-02-05 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 画像符号化方法および画像符号化装置 |
US20160080771A1 (en) * | 2014-09-17 | 2016-03-17 | Mediatek Inc. | Motion compensation apparatus having at least one processing circuit shared by normal mode and resized reference frame mode and related motion compensation method |
WO2016129851A1 (ko) * | 2015-02-13 | 2016-08-18 | 엘지전자(주) | 비균등 위상 보간을 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치 |
US10200713B2 (en) * | 2015-05-11 | 2019-02-05 | Qualcomm Incorporated | Search region determination for inter coding within a particular picture of video data |
GB2576286B (en) | 2017-04-21 | 2022-09-07 | Zenimax Media Inc | Systems and methods for deferred post-processes in video encoding |
CN111201791B (zh) * | 2017-11-07 | 2022-05-24 | 华为技术有限公司 | 用于视频编码的帧间预测装置和方法的插值滤波器 |
Family Cites Families (111)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61210599A (ja) | 1985-03-14 | 1986-09-18 | Casio Comput Co Ltd | 録音機能付電子機器 |
JP2904284B2 (ja) | 1989-06-01 | 1999-06-14 | キヤノン株式会社 | 符号化方法及び装置 |
JP2835187B2 (ja) | 1991-01-07 | 1998-12-14 | 株式会社東芝 | 符号化/復号化器および符号化/復号化方法 |
US5684538A (en) | 1994-08-18 | 1997-11-04 | Hitachi, Ltd. | System and method for performing video coding/decoding using motion compensation |
DE69601362T2 (de) | 1995-05-02 | 1999-08-26 | Innovision Ltd. | Bewegungskompensierende filterung |
US6345145B1 (en) * | 1995-08-25 | 2002-02-05 | Sony Corporation | Signal recording/reproducing method and apparatus, signal record medium and signal transmission/reception method and apparatus |
JP3787650B2 (ja) | 1995-09-08 | 2006-06-21 | ソニー株式会社 | デイジタル画像信号符号化装置及び方法、符号化画像信号復号装置及び方法 |
JP2938412B2 (ja) | 1996-09-03 | 1999-08-23 | 日本電信電話株式会社 | 動画像の輝度変化補償方法、動画像符号化装置、動画像復号装置、動画像符号化もしくは復号プログラムを記録した記録媒体および動画像の符号化データを記録した記録媒体 |
KR100303685B1 (ko) | 1996-09-30 | 2001-09-24 | 송문섭 | 영상 예측부호화 장치 및 그 방법 |
JP3235546B2 (ja) | 1997-11-07 | 2001-12-04 | 日本電気株式会社 | ディジタルフィルタの量子化係数の決定方法及びその決定プログラムが記録されたコンピュータ上で読み出し可能な記録媒体 |
US6539058B1 (en) | 1998-04-13 | 2003-03-25 | Hitachi America, Ltd. | Methods and apparatus for reducing drift due to averaging in reduced resolution video decoders |
US6266373B1 (en) | 1998-06-15 | 2001-07-24 | U.S. Philips Corporation | Pixel data storage system for use in half-pel interpolation |
JP2000106675A (ja) | 1998-07-29 | 2000-04-11 | Matsushita Electric Ind Co Ltd | 映像符号化方法、映像符号化装置及び動きベクトル検出装置 |
US6529638B1 (en) | 1999-02-01 | 2003-03-04 | Sharp Laboratories Of America, Inc. | Block boundary artifact reduction for block-based image compression |
JP2000353961A (ja) | 1999-06-11 | 2000-12-19 | Fuji Xerox Co Ltd | 画像処理装置 |
JP3639462B2 (ja) | 1999-06-25 | 2005-04-20 | 三洋電機株式会社 | リチウム二次電池 |
FI117533B (fi) | 2000-01-20 | 2006-11-15 | Nokia Corp | Menetelmä digitaalisten videokuvien suodattamiseksi |
JP3992419B2 (ja) | 2000-03-27 | 2007-10-17 | パイオニア株式会社 | 情報再生装置 |
US6813505B2 (en) * | 2001-01-05 | 2004-11-02 | Skyworks Solutions, Inc. | Efficient and flexible communication device and system with base-to-base communication |
DE10120395A1 (de) | 2001-04-25 | 2002-10-31 | Bosch Gmbh Robert | Einrichtung zur Interpolation von Abtastwerten sowie Bildencoder und Bilddecoder |
JP2003026296A (ja) | 2001-07-18 | 2003-01-29 | Nkk Plant Engineering Corp | 樽定量充填及び/又は抜取り装置、充填ノズル、抜取りノズル、並びにライン内残酒抜取りシステム |
US6950469B2 (en) | 2001-09-17 | 2005-09-27 | Nokia Corporation | Method for sub-pixel value interpolation |
GB2379820A (en) | 2001-09-17 | 2003-03-19 | Nokia Corp | Interpolating values for sub-pixels |
KR100747958B1 (ko) | 2001-09-18 | 2007-08-08 | 마쯔시다덴기산교 가부시키가이샤 | 화상 부호화 방법 및 화상 복호화 방법 |
JP3936335B2 (ja) | 2001-11-30 | 2007-06-27 | 株式会社エヌ・ティ・ティ・ドコモ | 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、プログラム及びプログラムを記憶したコンピュータ読み取り可能な記録媒体 |
MXPA04006814A (es) | 2002-01-14 | 2004-12-06 | Nokia Corp | Filtros dinamicos de codificacion. |
JP2004007379A (ja) | 2002-04-10 | 2004-01-08 | Toshiba Corp | 動画像符号化方法及び動画像復号化方法 |
JP4015934B2 (ja) | 2002-04-18 | 2007-11-28 | 株式会社東芝 | 動画像符号化方法及び装置 |
US7129962B1 (en) | 2002-03-25 | 2006-10-31 | Matrox Graphics Inc. | Efficient video processing method and system |
US7620109B2 (en) | 2002-04-10 | 2009-11-17 | Microsoft Corporation | Sub-pixel interpolation in motion estimation and compensation |
US7305034B2 (en) | 2002-04-10 | 2007-12-04 | Microsoft Corporation | Rounding control for multi-stage interpolation |
JP4120301B2 (ja) | 2002-04-25 | 2008-07-16 | ソニー株式会社 | 画像処理装置およびその方法 |
EP1467491B1 (de) * | 2002-05-02 | 2007-01-24 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Arithmetische Codierung von Transformationskoeffizienten |
JP2004007277A (ja) | 2002-05-31 | 2004-01-08 | Ricoh Co Ltd | 通信端末装置、音声認識システム、および情報アクセスシステム |
US8406301B2 (en) | 2002-07-15 | 2013-03-26 | Thomson Licensing | Adaptive weighting of reference pictures in video encoding |
AU2003246987A1 (en) | 2002-07-09 | 2004-01-23 | Nokia Corporation | Method and system for selecting interpolation filter type in video coding |
KR20050018948A (ko) | 2002-07-09 | 2005-02-28 | 노키아 코포레이션 | 비디오 부호화에서 보간 필터 유형을 선택하기 위한 방법및 장치 |
US7903742B2 (en) | 2002-07-15 | 2011-03-08 | Thomson Licensing | Adaptive weighting of reference pictures in video decoding |
JP4724351B2 (ja) | 2002-07-15 | 2011-07-13 | 三菱電機株式会社 | 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および通信装置 |
US20040012610A1 (en) | 2002-07-22 | 2004-01-22 | Taneja Nimita J. | Anti-aliasing interlaced video formats for large kernel convolution |
AU2002364104A1 (en) | 2002-08-15 | 2004-03-03 | On2.Com | Imprroved video compression system |
KR100472476B1 (ko) | 2002-08-31 | 2005-03-10 | 삼성전자주식회사 | 움직임 보상을 위한 보간 방법 및 그 장치 |
DE10240404A1 (de) | 2002-09-02 | 2004-03-18 | Austriamicrosystems Ag | Hall-Sensor und Verfahren zu dessen Betrieb |
US20040076333A1 (en) | 2002-10-22 | 2004-04-22 | Huipin Zhang | Adaptive interpolation filter system for motion compensated predictive video coding |
KR100534207B1 (ko) | 2002-12-09 | 2005-12-08 | 삼성전자주식회사 | 비디오 부호화기의 움직임 추정기 및 그 방법 |
WO2004082290A1 (ja) | 2003-03-10 | 2004-09-23 | Mitsubishi Denki Kabushiki Kaisha | 映像信号符号化装置、および映像信号符号化方法 |
JP2004297768A (ja) | 2003-03-10 | 2004-10-21 | Mitsubishi Electric Corp | 映像信号符号化装置、および映像信号符号化方法 |
RU2305377C2 (ru) | 2003-05-20 | 2007-08-27 | Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." | Способ уменьшения искажения сжатого видеоизображения и устройство для его реализации |
US7471724B2 (en) * | 2003-06-23 | 2008-12-30 | Vichip Corp. Limited | Method and apparatus for adaptive multiple-dimensional signal sequences encoding/decoding |
EP1636998A2 (en) | 2003-06-25 | 2006-03-22 | Thomson Licensing | Method and apparatus for weighted prediction estimation using a displaced frame differential |
US7599438B2 (en) | 2003-09-07 | 2009-10-06 | Microsoft Corporation | Motion vector block pattern coding and decoding |
US8094711B2 (en) * | 2003-09-17 | 2012-01-10 | Thomson Licensing | Adaptive reference picture generation |
NO319629B1 (no) | 2003-11-28 | 2005-09-05 | Tandberg Telecom As | Fremgangsmate for korrigering av interpolerte pikselverdier |
CN1294490C (zh) | 2003-12-31 | 2007-01-10 | 宏碁股份有限公司 | 智能卡与终端机间的数据处理方法及数据处理*** |
EP1578137A2 (en) | 2004-03-17 | 2005-09-21 | Matsushita Electric Industrial Co., Ltd. | Moving picture coding apparatus with multistep interpolation process |
WO2005104564A1 (ja) | 2004-04-21 | 2005-11-03 | Matsushita Electric Industrial Co., Ltd. | 動き補償装置 |
JP2005318297A (ja) | 2004-04-28 | 2005-11-10 | Toshiba Corp | 動画像符号化・復号方法及び装置 |
US7436405B2 (en) | 2004-05-14 | 2008-10-14 | Microsoft Corporation | Terrain rendering using nested regular grids |
KR100605105B1 (ko) | 2004-05-28 | 2006-07-26 | 삼성전자주식회사 | 영상 보간 장치 |
CN1717056A (zh) | 2004-07-02 | 2006-01-04 | 三菱电机株式会社 | 用于小波视频编码中的高通时间滤波帧的帧内预测 |
WO2006004331A1 (en) | 2004-07-07 | 2006-01-12 | Samsung Electronics Co., Ltd. | Video encoding and decoding methods and video encoder and decoder |
US8374238B2 (en) | 2004-07-13 | 2013-02-12 | Microsoft Corporation | Spatial scalability in 3D sub-band decoding of SDMCTF-encoded video |
EP1617672A1 (en) | 2004-07-13 | 2006-01-18 | Matsushita Electric Industrial Co., Ltd. | Motion estimator/compensator including a 16-bit 1/8 pel interpolation filter |
EP3133813B1 (en) | 2004-09-16 | 2020-06-17 | InterDigital VC Holdings, Inc. | Method and apparatus for weighted prediction video codec utilizing local brightness variation |
EP1641274B1 (en) | 2004-09-23 | 2013-06-05 | Panasonic Corporation | Video coding employing an image de-graining loop-filter |
JP4284265B2 (ja) | 2004-11-02 | 2009-06-24 | 株式会社東芝 | 動画像符号化装置、動画像符号化方法、動画像復号化装置および動画像復号化方法 |
US7653132B2 (en) | 2004-12-21 | 2010-01-26 | Stmicroelectronics, Inc. | Method and system for fast implementation of subpixel interpolation |
US8218634B2 (en) | 2005-01-13 | 2012-07-10 | Ntt Docomo, Inc. | Nonlinear, in-the-loop, denoising filter for quantization noise removal for hybrid video compression |
JP2006211152A (ja) | 2005-01-26 | 2006-08-10 | Hokkaido Univ | 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、画像符号化用プログラム、画像復号用プログラム |
JP2008536414A (ja) | 2005-04-13 | 2008-09-04 | ゴットフリート・ヴィルヘルム・ライプニッツ・ウニヴェルジテート・ハノーヴァー | ビデオの拡張された符号化方法及び装置 |
US8208564B2 (en) | 2005-06-24 | 2012-06-26 | Ntt Docomo, Inc. | Method and apparatus for video encoding and decoding using adaptive interpolation |
EP1746839A1 (en) | 2005-07-22 | 2007-01-24 | Thomson Licensing | Method and apparatus for encoding video data |
JP2007060199A (ja) | 2005-08-24 | 2007-03-08 | Matsushita Electric Ind Co Ltd | 可変長復号装置およびそれを含む集積回路 |
WO2007047271A2 (en) | 2005-10-12 | 2007-04-26 | Thomson Licensing | Methods and apparatus for weighted prediction in scalable video encoding and decoding |
US7778494B2 (en) | 2005-10-13 | 2010-08-17 | Texas Instruments Incorporated | FIR-based interpolation in advanced video codecs on VLIW processor |
KR100754841B1 (ko) | 2005-10-28 | 2007-09-04 | 경희대학교 산학협력단 | 비트율 왜곡 비용에 기초하여 선택된 보간 필터를 이용하여공간 계층간 예측을 수행하는 스케일러블 h.264부호화/복호화 방법 |
US7899263B2 (en) | 2006-01-10 | 2011-03-01 | Texas Instruments Incorporated | Method and apparatus for processing analytical-form compression noise in images with known statistics |
EP1985122A1 (en) | 2006-02-17 | 2008-10-29 | Thomson Licensing | Localized weighted prediction handling video data brightness variations |
US8189934B2 (en) | 2006-03-27 | 2012-05-29 | Panasonic Corporation | Image coding apparatus and image decoding apparatus |
GB0609117D0 (en) | 2006-05-09 | 2006-06-21 | Biotica Tech Ltd | Novel compounds |
TWI444047B (zh) | 2006-06-16 | 2014-07-01 | Via Tech Inc | 用於視訊解碼的去方塊效應濾波器、視訊解碼器與圖形處理單元 |
JP5535625B2 (ja) | 2006-07-18 | 2014-07-02 | トムソン ライセンシング | 適応的参照フィルタリングの方法及び装置 |
TW200808067A (en) | 2006-07-31 | 2008-02-01 | Univ Nat Cheng Kung | Prediction module |
BRPI0715507A2 (pt) | 2006-08-02 | 2013-06-18 | Thomson Licensinc S A | mÉtodos e aparelhos para particionamento geomÉtrico adaptativo para decodificaÇço de vÍdeo |
US8582663B2 (en) | 2006-08-08 | 2013-11-12 | Core Wireless Licensing S.A.R.L. | Method, device, and system for multiplexing of video streams |
SG140508A1 (en) | 2006-08-31 | 2008-03-28 | St Microelectronics Asia | Multimode filter for de-blocking and de-ringing |
US20080075165A1 (en) | 2006-09-26 | 2008-03-27 | Nokia Corporation | Adaptive interpolation filters for video coding |
US9014280B2 (en) | 2006-10-13 | 2015-04-21 | Qualcomm Incorporated | Video coding with adaptive filtering for motion compensated prediction |
US8509316B2 (en) * | 2007-01-09 | 2013-08-13 | Core Wireless Licensing, S.a.r.l. | Adaptive interpolation filters for video coding |
US8942505B2 (en) | 2007-01-09 | 2015-01-27 | Telefonaktiebolaget L M Ericsson (Publ) | Adaptive filter representation |
EP2132941B1 (en) | 2007-04-09 | 2017-05-17 | Nokia Technologies Oy | High accuracy motion vectors for video coding with low encoder and decoder complexity |
JP2009047917A (ja) | 2007-08-20 | 2009-03-05 | Fujitsu Ltd | 光波長選択スイッチおよび制御方法 |
EP2048886A1 (en) | 2007-10-11 | 2009-04-15 | Panasonic Corporation | Coding of adaptive interpolation filter coefficients |
US20090097545A1 (en) * | 2007-10-14 | 2009-04-16 | Nokia Corporation | Fixed-Point Implementation of an Adaptive Image Filter with High Coding Efficiency |
US8831086B2 (en) | 2008-04-10 | 2014-09-09 | Qualcomm Incorporated | Prediction techniques for interpolation in video coding |
US8462842B2 (en) | 2008-04-10 | 2013-06-11 | Qualcomm, Incorporated | Symmetry for interpolation filtering of sub-pixel positions in video coding |
US20090257499A1 (en) | 2008-04-10 | 2009-10-15 | Qualcomm Incorporated | Advanced interpolation techniques for motion compensation in video coding |
US9077971B2 (en) | 2008-04-10 | 2015-07-07 | Qualcomm Incorporated | Interpolation-like filtering of integer-pixel positions in video coding |
US8804831B2 (en) | 2008-04-10 | 2014-08-12 | Qualcomm Incorporated | Offsets at sub-pixel resolution |
US8705622B2 (en) | 2008-04-10 | 2014-04-22 | Qualcomm Incorporated | Interpolation filter support for sub-pixel resolution in video coding |
US9967590B2 (en) | 2008-04-10 | 2018-05-08 | Qualcomm Incorporated | Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter |
US8971412B2 (en) | 2008-04-10 | 2015-03-03 | Qualcomm Incorporated | Advanced interpolation techniques for motion compensation in video coding |
US8120607B1 (en) | 2008-05-30 | 2012-02-21 | Nvidia Corporation | Boundary transition region stitching for tessellation |
US8188999B2 (en) | 2008-06-17 | 2012-05-29 | Qualcomm Incorporated | Method and apparatus for organizing object geometry for spatial and memory coherency and optimal rendering |
US20100164954A1 (en) | 2008-12-31 | 2010-07-01 | Sathe Rahul P | Tessellator Whose Tessellation Time Grows Linearly with the Amount of Tessellation |
US20100214294A1 (en) | 2009-02-20 | 2010-08-26 | Microsoft Corporation | Method for tessellation on graphics hardware |
US20100253683A1 (en) | 2009-04-01 | 2010-10-07 | Munkberg Carl J | Non-uniform tessellation technique |
US8884957B2 (en) | 2009-09-09 | 2014-11-11 | Advanced Micro Devices, Inc. | Tessellation engine and applications thereof |
US8537158B2 (en) | 2009-12-02 | 2013-09-17 | Microsoft Corporation | Parallel triangle tessellation |
GB201007348D0 (en) | 2010-04-30 | 2010-06-16 | Imagination Tech Ltd | Programmable tessellation in a tile based rendering system |
US20110310102A1 (en) | 2010-06-17 | 2011-12-22 | Via Technologies, Inc. | Systems and methods for subdividing and storing vertex data |
-
2009
- 2009-04-08 US US12/420,315 patent/US9967590B2/en active Active
- 2009-04-10 KR KR1020107025053A patent/KR101202633B1/ko active IP Right Grant
- 2009-04-10 WO PCT/US2009/040254 patent/WO2009126915A1/en active Application Filing
- 2009-04-10 EP EP09730952.0A patent/EP2304961B1/en active Active
- 2009-04-10 CA CA2719232A patent/CA2719232C/en active Active
- 2009-04-10 TW TW098112131A patent/TWI542222B/zh active
- 2009-04-10 BR BRPI0910634-0A patent/BRPI0910634B1/pt active IP Right Grant
- 2009-04-10 CN CN2009801126790A patent/CN101990758B/zh active Active
- 2009-04-10 JP JP2011504212A patent/JP5536034B2/ja active Active
-
2014
- 2014-02-24 JP JP2014033412A patent/JP2014140192A/ja active Pending
-
2018
- 2018-02-20 US US15/900,720 patent/US10440388B2/en active Active
-
2019
- 2019-10-02 US US16/591,540 patent/US11683519B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023153891A1 (ko) * | 2022-02-13 | 2023-08-17 | 엘지전자 주식회사 | 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 |
Also Published As
Publication number | Publication date |
---|---|
JP5536034B2 (ja) | 2014-07-02 |
TWI542222B (zh) | 2016-07-11 |
EP2304961B1 (en) | 2016-03-09 |
CA2719232C (en) | 2016-05-24 |
TW201010441A (en) | 2010-03-01 |
US20090257502A1 (en) | 2009-10-15 |
EP2304961A1 (en) | 2011-04-06 |
BRPI0910634A2 (pt) | 2016-08-02 |
US20200107044A1 (en) | 2020-04-02 |
CN101990758B (zh) | 2013-02-20 |
JP2014140192A (ja) | 2014-07-31 |
JP2011517238A (ja) | 2011-05-26 |
US20180184113A1 (en) | 2018-06-28 |
CA2719232A1 (en) | 2009-10-15 |
WO2009126915A1 (en) | 2009-10-15 |
KR101202633B1 (ko) | 2012-11-19 |
CN101990758A (zh) | 2011-03-23 |
BRPI0910634B1 (pt) | 2020-11-03 |
US11683519B2 (en) | 2023-06-20 |
WO2009126915A8 (en) | 2010-12-23 |
US10440388B2 (en) | 2019-10-08 |
US9967590B2 (en) | 2018-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101242958B1 (ko) | 비디오 코딩에서의 서브-픽셀 해상도를 위한 보간 필터 서포트 | |
KR101202632B1 (ko) | 비디오 코딩에서의 보간을 위한 예측 기술 | |
KR101202633B1 (ko) | 고정된 필터 또는 적응형 필터에 기초한 비디오 코딩을 위한 레이트 왜곡 정의된 보간 | |
KR101250115B1 (ko) | 비디오 코딩에서의 서브-픽셀 포지션들의 보간 필터링을 위한 대칭 | |
KR101214021B1 (ko) | 비디오 코딩에서의 정수-픽셀 포지션들의 보간형 필터링 | |
CA2820061C (en) | Adaptive support for interpolating values of sub-pixels for video coding | |
RU2505938C2 (ru) | Интерполяция на основе искажений в зависимости от скорости передачи для кодирования видео на основе неперестраиваемого фильтра или адаптивного фильтра |
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: 20150930 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20161028 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170929 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180928 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20190924 Year of fee payment: 8 |