KR20150139881A - 비디오 코딩 예측에 대한 메모리 감소 - Google Patents
비디오 코딩 예측에 대한 메모리 감소 Download PDFInfo
- Publication number
- KR20150139881A KR20150139881A KR1020157030968A KR20157030968A KR20150139881A KR 20150139881 A KR20150139881 A KR 20150139881A KR 1020157030968 A KR1020157030968 A KR 1020157030968A KR 20157030968 A KR20157030968 A KR 20157030968A KR 20150139881 A KR20150139881 A KR 20150139881A
- Authority
- KR
- South Korea
- Prior art keywords
- video
- video block
- motion vector
- block
- prediction
- 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/513—Processing of motion vectors
-
- 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/103—Selection of coding mode or of prediction mode
- H04N19/109—Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
-
- 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/136—Incoming video signal characteristics or properties
-
- 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/17—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 an image region, e.g. an object
- H04N19/176—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 an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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/186—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 colour or a chrominance component
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
- H04N19/426—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
-
- 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
-
- 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/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- 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/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
일 예에 있어서, 비디오 데이터를 코딩하는 장치는 비디오 코더를 포함하고, 그 비디오 코더는 비-4:2:0 크로마 포맷을 갖는 비디오 블록을 예측하기 위한 모션 벡터를 획득하고, 비디오 블록에 대한 비디오 블록 사이즈를 결정하고, 비디오 블록 사이즈가 사이즈 기준을 충족하면 비디오 블록을 예측할 적어도 하나의 레퍼런스 픽처의 샘플들을 획득하기 위해 변경된 모션 벡터를 생성하도록 모션 벡터를 변경하고, 그리고 적어도 하나의 레퍼런스 픽처의 샘플들 및 변경된 모션 벡터를 이용하여 비디오 블록에 대한 예측 블록을 생성하도록 구성된다.
Description
본 출원은 2013년 3월 29일자로 출원된 미국 가출원 제61/806,700호; 및 2013년 4월 4일자로 출원된 미국 가출원 제61/808,479호의 이점을 주장하며, 이들 가출원들 각각의 전체 내용은 본 명세서에 참조로 통합된다.
본 개시는 비디오 코딩에 관한 것으로서, 더 상세하게는, 비디오 코딩에 대한 모션 정보 (예를 들어, 모션 벡터) 예측에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인용 디지털 보조기들 (PDA들), 랩탑 또는 데스크탑 컴퓨터들, 태블릿 컴퓨터들, e-북 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 소위 "스마트 폰들", 비디오 텔레컨퍼런싱 디바이스들, 비디오 스트리밍 디바이스들 등을 포함한, 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, 어드밴스드 비디오 코딩 (AVC) 에 의해 정의된 표준들, 현재 개발 중인 고 효율 비디오 코딩 (HEVC) 표준, 및 그러한 표준들의 확장들에서 설명된 기술들과 같은 비디오 압축 기술들을 구현한다. 비디오 디바이스들은 그러한 비디오 압축 기술들을 구현함으로써 디지털 비디오 정보를 더 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 압축 기술들은 비디오 시퀀스들에 고유한 리던던시를 감소 또는 제거하기 위해 공간 (인트라-픽처) 예측 및/또는 시간 (인터-픽처) 예측을 수행한다. 블록 기반 비디오 코딩에 있어서, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 일부) 는 비디오 블록들로 파티셔닝될 수도 있으며, 이 비디오 블록들은 또한 트리블록들, 코딩 유닛들 (CU들) 및/또는 코딩 노드들로 지칭될 수도 있다. 픽처의 인트라-코딩된 (I) 슬라이스에서의 비디오 블록들은 동일 픽처의 이웃 블록들에서의 레퍼런스 샘플들에 대한 공간 예측을 이용하여 인코딩된다. 픽처의 인터-코딩된 (P 또는 B) 슬라이스에서의 비디오 블록들은 동일 픽처의 이웃 블록들에서의 레퍼런스 샘플들에 대한 공간 예측, 또는 다른 레퍼런스 픽처들에서의 레퍼런스 샘플들에 대한 시간 예측을 이용할 수도 있다. 픽처들은 프레임들로서 지칭될 수도 있으며, 레퍼런스 픽처들은 레퍼런스 프레임들로 지칭될 수도 있다.
공간 또는 시간 예측은 코딩될 블록에 대한 예측 블록을 발생시킨다. 잔차 데이터는 코딩될 오리지널 블록과 예측 블록 간의 픽셀 차이들을 나타낸다. 인터-코딩된 블록은 예측 블록을 형성하는 레퍼런스 샘플들의 블록을 포인팅하는 모션 벡터, 및 코딩된 블록과 예측 블록 간의 차이를 나타내는 잔차 데이터에 따라 인코딩된다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가적인 압축을 위해, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어, 잔차 변환 계수들을 발생시킬 수도 있으며, 그 후, 이 잔차 변환 계수들은 양자화될 수도 있다. 2차원 어레이로 초기에 배열되는 양자화된 변환 계수들은 변환 계수들의 1차원 벡터를 생성하기 위해 스캐닝될 수도 있으며, 엔트로피 코딩이 훨씬 더 많은 압축을 달성하도록 적용될 수도 있다.
일반적으로, 본 개시는 비디오 코딩에 대한 메모리 대역폭 감소를 위한 기술들을 설명한다. 특히, 본 개시는, 비디오 코더, 예를 들어, 비디오 인코더 또는 비디오 디코더가 비디오 인코딩을 위한 예측 블록들을 획득하기 위해 픽처 버퍼들로부터 판독될 샘플들의 수를 감소시키는 기술들을 설명한다. 그 기술들은, 특히, 비디오 샘플들에 대한 비-4:2:0 크로마 포맷을 이용한 비디오 코딩을 위해 적용가능할 수도 있다.
일부 예들에 있어서, 그 기술들은 양방향 인터 예측, 또는 "양방향 예측" 에 대한 제한들을 부가적인 비디오 블록 사이즈들로, 또는 대안적으로 소정의 비디오 블록의 전부보다는 더 적은 컴포넌트들로 확장하는 것을 포함할 수도 있다. 그러한 예들에 있어서, 비디오 코더는 비디오 블록에 대한 예측자를 획득하기 위해 수신된 양방향 모션 벡터를 단방향 모션 벡터로 변환할 수도 있다. 일부 예들에 있어서, 그 기술들은, 예를 들어, 비디오 코더가 예측을 위해 필요한 픽셀 샘플들의 수를 감소하기 위해 적어도 하나의 크로마 컴포넌트를 분할하는 것을 회피하면서 부가적인 압축 효율을 위해 루마 컴포넌트를 분할할 수 있도록 소정의 비디오 블록의 상이한 컴포넌트들을 상이하게 파티셔닝하는 것을 포함할 수도 있다. 일부 예들에 있어서, 그 기술들은 양방향 예측을 위해 개별 모션 벡터들에 대한 상이한 레퍼런스 픽처 리스트들의 상이한 파티션 사이즈들을 시그널링하는 것을 포함할 수도 있다. 일부 예들에 있어서, 그 기술들은, 예를 들어, 양방향 예측에 대한 제한들을 위한 임계치, 비디오 블록에 대한 면적에 기초한 임계치, 사이즈 면적 내의 블록들의 수, 또는 비디오 블록 높이 및 폭의 합산 값을 적용하는 것을 포함할 수도 있다. 상기 기술들 중 임의의 하나 이상에 따라 동작하는 비디오 코더는, 결과적으로, 완화된 하드웨어 사양 요건에 대한 감소된 비용들과 함께 비디오 코딩 표준에 대한 비디오 코더의 하드웨어 사양 요건을 정의하는 감소된 피크 메모리 대역폭을 가질 수도 있다.
일 예에 있어서, 비디오 데이터를 코딩하는 방법은 비-4:2:0 크로마 포맷을 갖는 비디오 블록을 예측하기 위한 모션 벡터를 획득하는 단계, 비디오 블록에 대한 비디오 블록 사이즈를 결정하는 단계, 비디오 블록 사이즈가 사이즈 기준을 충족하면 비디오 블록을 예측할 적어도 하나의 레퍼런스 픽처의 샘플들을 획득하기 위해 변경된 모션 벡터를 생성하도록 모션 벡터를 변경하는 단계, 및 적어도 하나의 레퍼런스 픽처의 샘플들 및 변경된 모션 벡터를 이용하여 비디오 블록에 대한 예측 블록을 생성하는 단계를 포함한다.
다른 예에 있어서, 비디오 데이터를 코딩하는 장치는 비디오 코더를 포함하고, 그 비디오 코더는 비-4:2:0 크로마 포맷을 갖는 비디오 블록을 예측하기 위한 모션 벡터를 획득하고, 비디오 블록에 대한 비디오 블록 사이즈를 결정하고, 비디오 블록 사이즈가 사이즈 기준을 충족하면 비디오 블록을 예측할 적어도 하나의 레퍼런스 픽처의 샘플들을 획득하기 위해 변경된 모션 벡터를 생성하도록 모션 벡터를 변경하고, 그리고 적어도 하나의 레퍼런스 픽처의 샘플들 및 변경된 모션 벡터를 이용하여 비디오 블록에 대한 예측 블록을 생성하도록 구성된다.
다른 예에 있어서, 비디오 데이터를 코딩하는 장치는 비-4:2:0 크로마 포맷을 갖는 비디오 블록을 예측하기 위한 모션 벡터를 획득하는 수단, 비디오 블록에 대한 비디오 블록 사이즈를 결정하는 수단, 비디오 블록 사이즈가 사이즈 기준을 충족하면 비디오 블록을 예측할 적어도 하나의 레퍼런스 픽처의 샘플들을 획득하기 위해 변경된 모션 벡터를 생성하도록 모션 벡터를 변경하는 수단, 및 적어도 하나의 레퍼런스 픽처의 샘플들 및 변경된 모션 벡터를 이용하여 비디오 블록에 대한 예측 블록을 생성하는 수단을 포함한다.
다른 예에 있어서, 컴퓨터 판독가능 저장 매체는 저장된 명령들을 가지며, 그 명령들은, 실행될 경우, 비디오 데이터를 코딩하는 장치의 하나 이상의 프로세서들로 하여금 비-4:2:0 크로마 포맷을 갖는 비디오 블록을 예측하기 위한 모션 벡터를 획득하게 하고, 비디오 블록에 대한 비디오 블록 사이즈를 결정하게 하고, 비디오 블록 사이즈가 사이즈 기준을 충족하면 비디오 블록을 예측할 적어도 하나의 레퍼런스 픽처의 샘플들을 획득하기 위해 변경된 모션 벡터를 생성하도록 모션 벡터를 변경하게 하고, 그리고 적어도 하나의 레퍼런스 픽처의 샘플들 및 변경된 모션 벡터를 이용하여 비디오 블록에 대한 예측 블록을 생성하게 한다.
하나 이상의 예들의 상세들이 첨부 도면들 및 하기의 설명에 개시된다. 다른 특징들, 목적들, 및 이점들은 그 설명 및 도면들로부터, 그리고 청구항들로부터 명백할 것이다.
도 1 은 본 개시에서 설명된 기술들을 활용할 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템을 도시한 블록 다이어그램이다.
도 2 는 예시적인 비디오 블록뿐 아니라 예시적인 비디오 블록에 대한 모션 벡터 정보를 구성하기 위한 대표적인 공간 및 시간 이웃 블록들을 도시한 개념 다이어그램이다.
도 3 은 본 개시에서 설명된 기술들을 구현할 수도 있는 예시적인 비디오 인코더를 도시한 블록 다이어그램이다.
도 4 는 본 개시에서 설명된 기술들을 구현할 수도 있는 예시적인 비디오 디코더를 도시한 블록 다이어그램이다.
도 5 는 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 상이한 컴포넌트들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다.
도 6 은 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다.
도 7 은 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다.
도 8 은 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다.
도 9 는 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다.
도 10 은 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다.
도 11 은 컴포넌트 보간을 위한 예시적인 정수 및 분수 샘플 포지션 매트릭스를 도시한 블록 다이어그램이다.
유사한 참조 부호들은 텍스트 및 도면들 전반에 걸쳐 유사한 엘리먼트들을 나타낸다.
도 2 는 예시적인 비디오 블록뿐 아니라 예시적인 비디오 블록에 대한 모션 벡터 정보를 구성하기 위한 대표적인 공간 및 시간 이웃 블록들을 도시한 개념 다이어그램이다.
도 3 은 본 개시에서 설명된 기술들을 구현할 수도 있는 예시적인 비디오 인코더를 도시한 블록 다이어그램이다.
도 4 는 본 개시에서 설명된 기술들을 구현할 수도 있는 예시적인 비디오 디코더를 도시한 블록 다이어그램이다.
도 5 는 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 상이한 컴포넌트들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다.
도 6 은 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다.
도 7 은 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다.
도 8 은 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다.
도 9 는 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다.
도 10 은 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다.
도 11 은 컴포넌트 보간을 위한 예시적인 정수 및 분수 샘플 포지션 매트릭스를 도시한 블록 다이어그램이다.
유사한 참조 부호들은 텍스트 및 도면들 전반에 걸쳐 유사한 엘리먼트들을 나타낸다.
상기 논의된 바와 같이, 비디오 압축 기술들은 비디오 데이터의 블록들, 즉, 비디오 블록들의, 다른 픽처에서의 다른 블록의 레퍼런스 샘플들에 대한 시간적 (인터-픽처) 예측을 포함한다. 인터-코딩된 블록은 다른 픽처에서의 예측 블록을 형성하는 레퍼런스 샘플들의 블록을 포인팅하는 모션 정보, 예를 들어, 모션 벡터에 따라 코딩된다. 일부 예들에 있어서, 추가의 비트스트림 효율을 달성하기 위해, 비디오 블록에 대한 모션 정보, 예를 들어, 모션 벡터, 예측 방향 및 레퍼런스 픽처 인덱스 값은, 모션 벡터 예측 (MVP) 기술들로서 종종 지칭되는 모션 정보 예측 기술들을 이용하여 그 자체가 예측될 수도 있다.
그러한 모션 정보 예측 기술들에 따르면, 비디오 코더는 현재 비디오 블록에 대한 모션 벡터 및/또는 다른 모션 정보를 레퍼런스 블록으로부터 도출할 수도 있다. 모션 정보가 도출될 수도 있는 레퍼런스 블록들은 일반적으로, 복수의 미리정의된 공간적으로 이웃한 블록들, 및 하나 이상의 (예를 들어, 시간적으로) 상이한 픽처들로부터의 하나 이상의 공동위치된 또는 이웃한 블록들을 포함한다. 비디오 코더, 예를 들어, 비디오 인코더 또는 비디오 디코더는, 비디오 블록을 코딩하기 위한 후보 모션 정보로서 공간적 및 시간적 이웃 블록들의 모션 정보를 포함하는 후보 리스트 또는 후보 세트로서도 또한 지칭되는 모션 정보 후보 리스트를 구성할 수도 있다. 비디오 코더는, 비디오 블록을 코딩하기 위한 선택된 모션 정보 후보를 식별하기 위해 인덱스를 후보 리스트로 인코딩 또는 디코딩할 수도 있다.
고효율 비디오 코딩 (HEVC) (H.265 또는 ISO/IEC 23008-HEVC 로서도 또한 지칭됨) 을 위한 모션 정보 예측 모드들은 병합 모드 및 어드밴스드 모션 벡터 예측 (AMVP) 모드를 포함한다. 양자의 모드들에 대해, 비디오 코더, 예를 들어, 비디오 인코더 또는 비디오 디코더는 공간적으로 및 시간적으로 이웃한 블록들의 모션 정보에 기초하여 모션 정보 후보들의 리스트를 구성할 수 있다. 부가적으로, 비디오 코더는 모션 벡터들에 대한 서브-샘플 정밀도를 사용할 수도 있다. 예를 들어, HEVC 에 따라 획득된 루마 블록들에 대해, 비디오 코더는 분수 샘플 포지션들을 보간하기 위해 7탭 필터 (1/4 샘플 포지션용) 또는 8탭 필터 (1/2 샘플 포지션용) 로 1/4 샘플 정밀도, 즉, 루마 샘플들 사이의 거리의 1/4 을 사용할 수도 있다.
4:2:0 크로마 포맷에 대한 다수의 크로마 픽셀들을 샘플링하는 비-4:2:0 샘플링 포맷들에 대해, 크로마 블록들을 예측하기 위하여 크로마 컴포넌트들 각각에 대하여 다수의 크로마 픽셀들을 보간하는 것은 비디오 코더에 대한 메모리 대역폭을 현저히 증가시킬 수도 있다. 메모리 대역폭은 컴퓨터 판독가능 저장 매체로부터 판독되거나 컴퓨터 판독가능 저장 매체에 기입되는 데이터에 대한 데이터 레이트를 지칭한다. 이에 따라, 메모리 대역폭을 증가시키는 것은, 그러한 매체로부터 판독되거나 그러한 매체에 기입된 데이터에 대한 레이트를 증가시키는 것을 지칭할 수도 있으며, 이러한 문맥에서, 비-4:2:0 샘플링에 대한 보간을 위해 필요한 부가적인 수의 크로마 픽셀들로 인해 더 많은 데이터 부하들로부터 기인할 수도 있다. 이는, 비-4:2:0 에 대한 사양들을 충족하기 위해 비디오 코더에 대한 하드웨어 비용들을 증가시킬 수도 있으며, 이는 일부 사용 케이스들에 있어서 용인불가능할 수도 있다. 예를 들어, 더 높은 요구 메모리 대역폭은 더 높은 요구 메모리 대역폭에 대한 사양들을 충족시키기 위해 더 큰 버스, 더 큰 메모리, 더 빠른 버스, 더 빠른 메모리, 또는 이들 개선들의 일부 조합을 요구할 수도 있다.
본 개시의 기술들에 따른 일 예에 있어서, 비디오 코더는 부가적인 환경들에 대하여 비-4:2:0 포맷들에 대한 비디오 코딩에 있어서 양방향 예측 모드의 사용을 제한할 수도 있다. 예를 들어, 크로마 포맷이 4:2:2 또는 4:4:4 이면, 비디오 코더는 대역폭 감소 동작들을 더 큰 사이즈의 블록들로 확장할 수도 있다. 따라서, 예를 들어, 4x8 및 8x4 블록들에 대해 양방향 예측을 제한하는 것에 부가하여, 비디오 코더는 비-4:2:0 포맷을 검출할 수도 있거나 비-4:2:0 포맷을 인코딩하도록 구성될 수도 있고, 따라서, 8x8 블록들, 8x16/16x8 블록들 등과 같이 임의의 하나 이상의 더 큰 블록 파티션 사이즈들에 대해 양방향 예측을 부가적으로 제한할 수도 있다. 이에 따라, 비디오 코더는 (다시, 비디오 코더가 확장된 제한을 적용할 경우) 그러한 블록에 대한 양방향 모션 벡터들을 단방향 모션 벡터로 변환할 수도 있다. 비디오 코더는 상기 설명된 병합 모드 또는 AMVP 에 대한 변환 기술들 중 하나를 이용하여 양방향 모션 벡터들을 단방향 모션 벡터로 변환할 수도 있다.
본 명세서에서 설명된 바와 같은 비-4:2:0 포맷들에 대해 비디오 코딩에서의 양방향 예측 모드의 사용을 제한하는 비디오 코더의 일부 예들에 있어서, HEVC 표준에 따라 4x8 및 8x4 블록들에 대해 양방향 예측을 제한하는 것에 부가하여 또는 그에 대안적으로, 비디오 코더는 컴포넌트의 타입에 따라 더 큰 사이즈 블록들에 대해 양방향 예측을 제한할 수도 있다. 예를 들어, 비-4:2:0 포맷으로 인코딩된 8x8 블록에 대해, 비디오 코더는 루마 컴포넌트에 대해 양방향 예측을 허용하면서 크로마 컴포넌트들 중 적어도 하나에 대해서는 양방향 예측을 제한할 수도 있다. 이에 따라, 비디오 코더는 (다시, 비디오가 이러한 확장된 컴포넌트 당 제한을 적용할 경우) 그러한 컴포넌트들에 대한 양방향 모션 벡터들을 단방향 모션 벡터로 변환할 수도 있다. 확장된 대역폭 감소 제한들이 전체 코딩 효율에 대해 불균등한 영향을 주기 때문에, 이러한 제한을 크로마 컴포넌트에 적용하는 것은, 비디오 코딩 프로세스에 대해 요구된 메모리 대역폭의 감소들을 여전히 잠재적으로 획득하면서 그 제한을 루마 컴포넌트에 적용하여 전체 코딩 성능에 더 적은 영향을 줄 수도 있다.
도 1 은 본 개시에서 설명된 기술들을 활용할 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템 (10) 을 도시한 블록 다이어그램이다. 도 1 에 도시된 바와 같이, 시스템 (10) 은, 목적지 디바이스 (14) 에 의해 더 나중 시간에 디코딩될 인코딩된 비디오 데이터를 생성하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크탑 컴퓨터들, 노트북 (즉, 랩탑) 컴퓨터들, 태블릿 컴퓨터들, 셋탑 박스들, 소위 "스마트" 폰들과 같은 전화기 핸드셋들, 소위 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함한 광범위한 디바이스들 중 임의의 디바이스를 포함할 수도 있다. 일부 경우들에 있어서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신을 위해 장비될 수도 있다.
목적지 디바이스 (14) 는 디코딩될 인코딩된 비디오 데이터를 링크 (16) 를 통해 수신할 수도 있다. 링크 (16) 는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동 가능한 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 일 예에 있어서, 링크 (16) 는, 소스 디바이스 (12) 로 하여금 인코딩된 비디오 데이터를 직접 목적지 디바이스 (14) 로 실시간으로 송신할 수 있게 하는 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되고, 목적지 디바이스 (14) 로 송신될 수도 있다. 통신 매체는 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적인 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 부분을 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
대안적으로, 인코딩된 데이터는 출력 인터페이스 (22) 로부터 저장 디바이스 (36) 로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 목적지 디바이스 (14) 의 입력 인터페이스 (28) 에 의해 저장 디바이스 (36) 로부터 액세스될 수도 있다. 저장 디바이스 (36) 는 하드 드라이브, 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산된 또는 국부적으로 액세스된 데이터 저장 매체들 중 임의의 데이터 저장 매체를 포함할 수도 있다. 추가의 예에 있어서, 저장 디바이스 (36) 는, 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 보유할 수도 있는 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스 (14) 는 저장 디바이스 (36) 로부터의 저장된 비디오 데이터에 스트리밍 또는 다운로드를 통해 액세스할 수도 있다. 파일 서버는, 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 송신하는 것이 가능한 임의의 타입의 서버일 수도 있다. 예시적인 파일 서버들은 웹 서버 (예를 들어, 웹 사이트용), FTP 서버, 네트워크 접속형 저장 (NAS) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인코딩된 비디오 데이터에, 인터넷 커넥션을 포함한 임의의 표준 데이터 커넥션을 통해 액세스할 수도 있다. 이는 파일 서버 상에 저장되는 인코딩된 비디오 데이터에 액세스하기에 적합한 무선 채널 (예를 들어, Wi-Fi 커넥션), 유선 커넥션 (예를 들어, DSL, 케이블 모뎀 등), 또는 이들 양자의 조합을 포함할 수도 있다. 인코딩된 비디오 데이터의 저장 디바이스 (36) 로부터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들 양자의 조합일 수도 있다.
본 개시의 기술들은 무선 어플리케이션들 또는 설정들로 반드시 한정되는 것은 아니다. 그 기술들은, 공중 경유 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예를 들어, 인터넷을 통한 스트리밍 비디오 송신들, 데이터 저장 매체 상의 저장을 위한 디지털 비디오의 인코딩, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 어플리케이션들과 같은 다양한 멀티미디어 어플리케이션들 중 임의의 어플리케이션들의 지원으로 비디오 코딩에 적용될 수도 있다. 일부 예들에 있어서, 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 전화와 같은 어플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 의 예에 있어서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 일부 경우들에 있어서, 출력 인터페이스 (22) 는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수도 있다. 소스 디바이스 (12) 에 있어서, 비디오 소스 (18) 는 비디오 캡쳐 디바이스, 예를 들어, 비디오 카메라, 이전에 캡쳐된 비디오를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오를 수신하기 위한 비디오 피드 인터페이스, 및/또는 컴퓨터 그래픽스 데이터를 소스 비디오로서 생성하기 위한 컴퓨터 그래픽스 시스템과 같은 소스, 또는 그러한 소스들의 조합을 포함할 수도 있다. 일 예로서, 비디오 소스 (18) 가 비디오 카메라이면, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 하지만, 본 개시에서 설명된 기술들은 일반적으로 비디오 코딩에 적용가능할 수도 있으며, 무선 및/또는 유선 어플리케이션들에 적용될 수도 있다.
캡쳐되거나 사전-캡쳐되거나 또는 컴퓨터 생성된 비디오는 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 인코딩된 비디오 데이터는 소스 디바이스 (12) 의 출력 인터페이스 (22) 를 통해 목적지 디바이스 (14) 로 직접 송신될 수도 있다. 인코딩된 비디오 데이터는 또한 (또는 대안적으로), 디코딩 및/또는 플레이백을 위한 목적지 디바이스 (14) 또는 다른 디바이스들에 의한 더 나중의 액세스를 위해 저장 디바이스 (36) 상으로 저장될 수도 있다.
목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 일부 경우들에 있어서, 입력 인터페이스 (28) 는 수신기 및/또는 모뎀을 포함할 수도 있다. 목적지 디바이스 (14) 의 입력 인터페이스 (28) 는 인코딩된 비디오 데이터를 링크 (16) 상으로 수신할 수도 있다. 링크 (16) 상으로 통신되는 또는 저장 디바이스 (36) 상에 제공되는 인코딩된 비디오 데이터는, 비디오 데이터를 디코딩함에 있어서 비디오 디코더 (30) 와 같은 비디오 디코더에 의한 사용을 위해 비디오 인코더 (20) 에 의해 생성된 다양한 신택스 엘리먼트들을 포함할 수도 있다. 그러한 신택스 엘리먼트들에는, 통신 매체 상으로 송신되거나 저장 매체 상에 저장되거나 또는 파일 서버에 저장되는 인코딩된 비디오 데이터가 포함될 수도 있다.
디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합되거나 그 외부에 있을 수도 있다. 일부 예들에 있어서, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함할 수도 있고, 또한, 외부 디스플레이 디바이스와 인터페이싱하도록 구성될 수도 있다. 다른 예들에 있어서, 목적지 디바이스 (14) 는 디스플레이 디바이스일 수도 있다. 일반적으로, 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하며, 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 디바이스를 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 현재 개발 중인 고 효율 비디오 코딩 (HEVC) 표준과 같은 비디오 압축 표준에 따라 동작할 수도 있고, HEVC 테스트 모델 (HM) 에 부합할 수도 있다. 대안적으로, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 MPEG-4, 파트 10, 어드밴스드 비디오 코딩 (AVC) 으로서 대안적으로 지칭되는 ITU-T H.264 표준과 같은 다른 전매특허 또는 산업 표준들, 또는 그러한 표준들의 확장들에 따라 동작할 수도 있다. 하지만, 본 개시의 기술들은 임의의 특정 코딩 표준에 한정되지 않는다. 비디오 압축 표준들의 다른 예들은 MPEG-2 및 ITU-T H.263 을 포함한다.
비록 도 1 에 도시되지는 않지만, 일부 양태들에 있어서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 오디오 인코더 및 디코더와 각각 통합될 수도 있으며, 오디오 및 비디오 양자의 인코딩을 공통 데이터 스트림 또는 별개의 데이터 스트림들로 핸들링하기 위해 적절한 MUX-DEMUX 유닛들 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능하다면, 일부 예들에 있어서, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (UDP) 과 같은 다른 프로토콜들에 부합할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합들과 같은 다양한 적합한 인코더 회로 중 임의의 회로로서 구현될 수도 있다. 기술들이 부분적으로 소프트웨어로 구현될 경우, 디바이스는 적합한 비-일시적인 컴퓨터 판독가능 매체에 소프트웨어에 대한 명령들을 저장하고, 본 개시의 기술들을 수행하기 위해 하나 이상의 프로세서들을 사용하는 하드웨어에서 명령들을 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 하나는 개별 디바이스에 있어서 결합된 인코더/디코더 (CODEC) 의 부분으로서 통합될 수도 있다.
본 개시는 일반적으로 특정 정보를, 비디오 디코더 (30) 와 같은 다른 디바이스로 "시그널링"하는 비디오 인코더 (20) 를 언급할 수도 있다. 용어 "시그널링" 은 일반적으로, 압축된 비디오 데이터를 디코딩하는데 사용되는 신택스 엘리먼트들 및/또는 다른 데이터의 통신을 지칭할 수도 있다. 그러한 통신은 실시간 또는 준-실시간으로 발생할 수도 있다. 대안적으로, 그러한 통신은, 신택스 엘리먼트들을 인코딩 시 인코딩된 비트스트림으로 컴퓨터 판독가능 저장 매체에 저장할 경우 (그 후, 이 매체에 저장된 이후 임의의 시간에서 디코딩 디바이스에 의해 취출될 수도 있음) 에 발생할 수도 있는 것과 같이 시간 기간에 걸쳐 발생할 수도 있다.
HEVC 및 다른 비디오 코딩 표준들에 있어서, 비디오 시퀀스는 통상적으로 픽처들의 시리즈를 포함한다. 픽처들은 또한 "프레임들" 로서 지칭될 수도 있다. 픽처는 3자극치 YCbCr 컬러 공간에 따라 SL, SCb, 및 SCr 로 표기되는 3개의 샘플 어레이들을 포함할 수도 있다. SL 은 루마 샘플들의 2차원 어레이 (즉, 블록) 이다. SCb 는 Cb 크로미넌스 샘플들의 2차원 어레이이다. SCr 는 Cr 크로미넌스 샘플들의 2차원 어레이이다. Cb 크로미넌스 샘플들은 본 명세서에서 "U 샘플들" 로서 지칭될 수도 있다. Cr 크로미넌스 샘플들은 본 명세서에서 "V 샘플들" 로서 지칭될 수도 있다. 크로미넌스 샘플들은 또한, 본 명세서에서 "크로마" 샘플들로서 지칭될 수도 있다. 다른 경우들에 있어서, 픽처는 단색일 수도 있으며 오직 루마 샘플들의 어레이만을 포함할 수도 있다.
비디오 인코더 (20) 는 크로마에 대한 루마로의 휴먼 시각 시스템의 감도를 반영하기 위해 4:2:0 샘플링을 사용할 수도 있다. 이러한 또는 다른 예들에 있어서, 비디오 인코더 (20) 는 루마 어레이에 대한 픽처의 크로마 어레이들 (즉, SCb 및 SCr) 을 다운샘플링할 수도 있다. 하지만, 여전히 다른 경우들에 있어서, 다운 샘플링은 최고 품질 비디오를 보장하기 위해 회피될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 YUV 4:2:0 비디오 포맷, YUV 4:2:2 비디오 포맷, 또는 4:4:4 비디오 포맷을 사용할 수도 있다. YUV 4:2:0 비디오 포맷에 있어서, 비디오 인코더 (20) 는, 크로마 어레이들이 루마 어레이의 1/2 높이 및 1/2 폭이 되도록 크로마 어레이들을 다운샘플링할 수도 있다. YUV 4:2:2 비디오 포맷에 있어서, 비디오 인코더 (20) 는, 크로마 어레이들이 루마 어레이의 1/2 폭 및 동일한 높이가 되도록 크로마 어레이들을 다운샘플링할 수도 있다. YUV 4:4:4 비디오 포맷에 있어서, 비디오 인코더 (20) 는 크로마 어레이들을 다운샘플링하지 않는다. Y, Cr, 및 Cr 컴포넌트들 각각에 대한 샘플들은, 예를 들어, 8비트 또는 10비트 정밀도를 사용하여 표현될 수도 있다.
픽처의 인코딩된 표현을 생성하기 위해, 비디오 인코더 (20) 는 코딩 트리 유닛들 (CTU들) 의 세트를 생성할 수도 있다. CTU들 각각은 루마 샘플들의 코딩 트리 블록, 크로마 샘플들의 2개의 대응하는 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하는데 사용된 신택스 구조들을 포함할 수도 있다. 단색 픽처 또는 3개의 별개의 컬러 평면들을 갖는 픽처에 있어서, CTU 는 단일의 코딩 트리 블록, 및 그 코딩 트리 블록의 샘플들을 코딩하는데 사용된 신택스 구조들을 포함할 수도 있다. 코딩 트리 블록은 샘플들의 NxN 블록일 수도 있다. CTU 는 또한 "트리 블록" 또는 "최대 코딩 유닛" (LCU) 으로서 지칭될 수도 있다. HEVC 의 CTU들은 H.264/AVC 와 같은 다른 비디오 코딩 표준들의 매크로블록들과 대체로 유사할 수도 있다. 하지만, CTU 는 반드시 특정 사이즈로 한정되지는 않으며, 하나 이상의 코딩 유닛들 (CU들) 을 포함할 수도 있다. 슬라이스는 래스터 스캔에 있어서 연속적으로 순서화된 정수 개수의 CTU들을 포함할 수도 있다.
본 개시는 용어 "비디오 유닛" 또는 "비디오 블록" 을 사용하여, 샘플들의 하나 이상의 블록들 및 샘플들의 하나 이상의 블록들의 샘플들을 코딩하는데 사용된 신택스 구조들을 지칭할 수도 있다. 비디오 유닛들의 예시적인 타입들은 CTU들, CU들, PU들, 변환 유닛들 (TU들), 매크로블록들, 매크로블록 파티션들 등을 포함할 수도 있다.
코딩된 CTU 를 생성하기 위해, 비디오 인코더 (20) 는 CTU 의 코딩 트리 블록들에 대해 쿼드 트리 파티셔닝을 재귀적으로 수행하여, 코딩 트리 블록들을 코딩 블록들, 따라서, 명칭 "코딩 트리 유닛들" 로 분할할 수도 있다. 코딩 블록은 샘플들의 NxN 블록일 수도 있다. CU 는 루마 샘플들의 코딩 블록, 및 루마 샘플 어레이, Cb 샘플 어레이, 및 Cr 샘플 어레이를 갖는 픽처의 크로마 샘플들의 2개의 대응하는 코딩 블록들, 그리고 코딩 블록들의 샘플들을 코딩하는데 사용된 신택스 구조들을 포함할 수도 있다. 단색 픽처 또는 3개의 별개의 컬러 평면들을 갖는 픽처에 있어서, CU 는 단일의 코딩 블록, 및 그 코딩 블록의 샘플들을 코딩하는데 사용된 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은, 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록일 수도 있다. CU 의 예측 유닛 (PU) 은 루마 샘플들의 예측 블록 (PB), 픽처의 크로마 샘플들의 2개의 대응하는 예측 블록들 (PB들), 및 PB들을 예측하는데 사용된 신택스 구조들을 포함할 수도 있다. 단색 픽처 또는 3개의 별개의 컬러 평면들을 갖는 픽처에 있어서, PU 는 단일의 예측 블록, 및 그 예측 블록 샘플들을 예측하는데 사용된 신택스 구조들을 포함할 수도 있다. 비디오 인코더 (20) 는 CU 의 각각의 PU 의 루마, Cb 및 Cr 예측 블록들에 대한 예측 루마, Cb, 및 Cr 블록들을 생성할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 다양한 사이즈들을 갖는 PU들을 지원할 수도 있다. 상기 나타낸 바와 같이, CU 의 사이즈는 CU 의 루마 코딩 블록의 사이즈를 지칭할 수도 있으며, PU 의 사이즈는 PU 의 루마 예측 블록의 사이즈를 지칭할 수도 있다. 특정 CU 의 사이즈가 2Nx2N 이라고 가정하면, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 인트라 예측을 위해 2Nx2N 또는 NxN 의 PU 사이즈들을 지원하고, 인터 예측을 위해 2Nx2N, 2NxN, Nx2N, NxN, 기타 등등의 대칭적인 PU 사이즈들을 지원할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 또한, 인터 예측을 위해 2NxnU, 2NxnD, nLx2N, 및 nRx2N 의 PU 사이즈들에 대한 비대칭적인 파티셔닝을 지원할 수도 있다.
비디오 인코더 (20) 는 인트라 예측 또는 인터 예측을 이용하여 PU 에 대한 예측 블록들을 생성할 수도 있다. 비디오 인코더 (20) 가 인트라 예측을 이용하여 PU 의 예측 블록들을 생성하면, 비디오 인코더 (20) 는 PU 와 연관된 픽처의 디코딩된 샘플들에 기초하여 PU 의 PB들을 생성할 수도 있다. PB 사이즈는 비트스트림에서 허용가능한 최소 코딩 블록 사이즈를 제외하면 모든 블록 사이즈들에 대해 (예를 들어, 모든 N 에 대해) CB 사이즈와 동일하게 설정될 수도 있다. 이러한 예외 케이스에 있어서, CB 는 4개의 예측 블록 사분면들로 분할될 수도 있고 각각의 예측 블록 사분면은 별개의 픽처내 예측 모드를 갖는다.
비디오 인코더 (20) 가 인터 예측을 이용하여 PU 의 PB들을 생성하면, 루마 및 크로마 CB들은 1개의, 2개의 또는 4개의 PB들로 분할될 수도 있다. CU 를 PU들로 분할하는 것에 관하여 상기 언급된 바와 같이, CU 의 CB들은 PB들에 대한 대칭적 또는 비대칭적 모션 파티션으로 분할될 수도 있다. 비디오 인코더 (20) 는 각각의 인터-예측된 예측 블록에게, 레퍼런스 픽처 리스트에 대한 하나 또는 2개의 모션 벡터들 (MV들) 및 인덱스들을 할당한다 (하기에서 더 상세히 설명됨). HEVC 는, 레퍼런스 픽처 메모리 로딩으로 인해 다른 방법으로 발생할 메모리 대역폭 병목들로 인해, 사이즈 4x4 를 갖는 루마 PB 가 인터-예측되지 않을 수도 있고 그리고 4x8 사이징된 및 8x4 사이징된 루마들이 양방향 예측을 이용하여 인터-예측되지 않을 수도 있음 (즉, 이들 차원들의 루마들은 단방향 예측으로 제한됨) 을 명시한다.
더욱이, 비디오 인코더 (20) 가 인터 예측을 이용하여 PU 의 예측 블록들을 생성하면, 비디오 인코더 (20) 는 PU 와 연관된 픽처 이외의 하나 이상의 픽처들의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다. 인터 예측은 단방향 인터 예측 (즉, 단방향 예측) 또는 양방향 인터 예측 (즉, 양방향 예측) 일 수도 있다. 단방향 예측 또는 양방향 예측을 수행하기 위해, 비디오 인코더 (20) 는 현재 슬라이스에 대한 제 1 레퍼런스 픽처 리스트 (RefPicList0) 및 제 2 레퍼런스 픽처 리스트 (RefPicList1) 를 생성할 수도 있다. 레퍼런스 픽처 리스트들 각각은 하나 이상의 레퍼런스 픽처들을 포함할 수도 있다. 단방향 예측을 이용할 경우, 비디오 인코더 (20) 는 RefPicList0 및 RefPicList1 중 어느 하나 또는 그 양자에서 레퍼런스 픽처들을 탐색하여 레퍼런스 픽처 내의 레퍼런스 위치를 결정할 수도 있다. 더욱이, 단방향 예측을 이용할 경우, 비디오 인코더 (20) 는, 레퍼런스 위치에 대응하는 샘플들에 적어도 부분적으로 기초하여, PU 에 대한 예측 샘플 블록들을 생성할 수도 있다. 더욱이, 단방향 예측을 이용할 경우, 비디오 인코더 (20) 는, PU 의 예측 블록과 레퍼런스 위치 간의 공간 변위를 표시하는 단일 모션 벡터를 생성할 수도 있다. PU 의 예측 블록과 레퍼런스 위치 간의 공간 변위를 표시하기 위해, 모션 벡터는 PU 의 예측 블록과 레퍼런스 위치 간의 수평 변위를 명시하는 수평 컴포넌트를 포함할 수도 있고, PU 의 예측 블록과 레퍼런스 위치 간의 수직 변위를 명시하는 수직 컴포넌트를 포함할 수도 있다.
양방향 예측을 이용하여 PU 를 인코딩할 경우, 비디오 인코더 (20) 는 RefPicList0 에 있어서의 레퍼런스 픽처에서의 제 1 레퍼런스 위치 및 RefPicList1 에 있어서의 레퍼런스 픽처에서의 제 2 레퍼런스 위치를 결정할 수도 있다. 그 후, 비디오 인코더 (20) 는, 제 1 및 제 2 레퍼런스 위치들에 대응하는 샘플들에 적어도 부분적으로 기초하여, PU 에 대한 예측 블록들을 생성할 수도 있다. 더욱이, 양방향 예측을 이용하여 PU 를 인코딩할 경우, 비디오 인코더 (20) 는 PU 의 샘플 블록과 제 1 레퍼런스 위치 간의 공간 변위를 표시하는 제 1 MV, 및 PU 의 예측 블록과 제 2 레퍼런스 위치 간의 공간 변위를 표시하는 제 2 MV 를 생성할 수도 있다. 비록 "양방향" 인터 예측을 위해 이용가능한 것으로서 본 명세서에서 설명되지만, 상이한 레퍼런스 픽처 리스트들 (RefPicList0 및 RefPicList1) 에서의 레퍼런스 픽처들은 시간적 의미에서 반드시, 각각, 선행/이전 및 후속/이후일 필요는 없다. 대신, 2개의 레퍼런스 픽처 리스트들은, 일부 경우들에 있어서, 양자가 하나 이상의 이전 프레임들로부터의 데이터를 포함할 수도 있거나, 또는 양자가 하나 이상의 후속 프레임들로부터의 데이터를 포함할 수도 있다. 2개의 레퍼런스 픽처 리스트들에서의 데이터는 또한, 일부 상황들에 있어서 동일할 수도 있다.
비디오 인코더 (20) 는 MV들에 대한 서브-샘플 정밀도를 사용할 수도 있다. 예를 들어, HEVC 에 따라 획득된 루마 PB들에 대해, 비디오 인코더 (20) 는 분수 샘플 포지션들을 보간하기 위해 7탭 필터 (1/4 샘플 포지션용) 또는 8탭 필터 (1/2 샘플 포지션용) 로 1/4 샘플 정밀도, 즉, 루마 샘플들 사이의 거리의 1/4 을 사용할 수도 있다.
크로마 샘플 MV 분수 정확도는 크로마 샘플링 포맷에 따라 가변일 수도 있다. 예를 들어, 4:2:0 포맷은, 수평 및 수직 차원들 각각에 대해 크로마 샘플들의 1/2 이 존재함을 고려하면, 크로마 샘플들 간의 거리의 1/8 단위들을 야기한다. 하지만, 크로마 PB들에 대한 분수 샘플 보간은 루마 PB 의 분수 샘플 보간과 유사하다. 하지만, 비디오 인코더 (20) 는 크로마 컴포넌트들에 대한 보간을 위해 4탭 필터를 이용할 수도 있으며, 이는 다시 4:2:0 포맷에 대해 1/8 분수 정확도를 야기한다. 4:2:2 포맷에 대해, 4탭 필터로의 수평 분수 정확도는 1/8 이고, 수직 분수 정확도는 1/4 이다. 4:4:4 포맷에 대해, 크로마 샘플 MV 분수 정확도는 루마 블록들의 분수 정확도와 동일하다.
따라서, 루마 PB 를 도출하기 위해, 비디오 인코더 (20) 는 8탭 필터를 이용하여 분수 샘플 보간을 수행한다. 도 11 은 컴포넌트 보간을 위한 예시적인 정수 및 분수 샘플 포지션 매트릭스 (400) 를 도시한 블록 다이어그램이다. 현재의 HEVC 표준은 1/2 샘플 (hfilter) 및 1/4 샘플 (qfilter) 보간 포지션들에 대한 이들 8탭 필터들을 표 1 에 나타낸 바와 같이 정의한다.
매트릭스 (400) 에서 A0, 0 으로 라벨링된 포지션은, 정수들 (i, j) 의 상이한 값들에 대한 루마 샘플들을 나타내는 정수 포지션들 (Ai,j) 의 인스턴스이다. 비디오 인코더 (20) 는 분수 샘플 보간 필터들을 적용하여 다음과 같이 분수 샘플 값들을 획득한다:
상기 식들에 있어서, B 는 레퍼런스 샘플의 비트 심도, 예를 들어, 8비트를 지칭하고, >> 는 우측 시프트 연산을 나타낸다. 비디오 인코더 (20) 는 매트릭스 (400) 에 있어서의 나머지 포지션들 (e, f, g, i, j, k, p, q, 및 r) 에 위치된 분수 샘플들을, 그 나머지 위치들에 대한 대응하는 공식들에 따라 수직으로 인접한 포지션들에 위치된 샘플에 대응 필터들을 적용함으로써 도출할 수도 있다. 따라서, 이제, 도 1 로 돌아가면, 비디오 인코더 (20) 는 보간을 수행하기 위해 레퍼런스 블록의 외부에 위치된 픽셀들/샘플들을 획득한다. 루마 PB 에 대한 8탭 필터의 상기 필터링 공식들의 경우, 비디오 인코더 (20) 는 수평 및 수직 방향들 양자에 있어서 포지션들 (-3 내지 +4) 에서의 샘플들을 판독할 수도 있으며, 이는, 8x8 루마 예측 블록에 대해, 단방향 예측에 대한 레퍼런스 픽처의 픽셀들의 15x15 세트를 페치하는 것을 요구한다. 양방향 예측에 대해, 픽셀들의 수는 레퍼런스 픽처들의 수와 함께 배가되어, 15x15*2 픽셀들을 발생한다. 8x4 및 4x8 루마 PB들에 대해, 페치될 픽셀들의 수는 단방향 예측에 대해 15x11*2 이다. 상기 언급된 바와 같이, HEVC 는 8x4 및 4x8 루마 PB들을 단방향 예측으로 제한한다.
비디오 인코더 (20) 는, 루마에 대한 것과 유사하게 하지만 4탭 필터를 이용하여 분수 샘플 보간을 크로마 컴포넌트들에 적용한다. 따라서, 비디오 인코더 (20) 는 수평 및 수직 방향들 양자에 있어서 포지션들 (-2 내지 +1) 에서의 샘플들을 판독할 수도 있다. 4:2:0 포맷에 있어서 8x8 양방향 예측된 크로마 예측 블록에 대해, 이는 레퍼런스 픽처들의 픽셀들의 11x11*2*2 세트를 페치하는 것을 요구한다. 8x4 및 4x8 단방향 예측된 크로마 PB들에 대해, 페치될 픽셀들의 수는 11x7*2*2 이다. 분수 샘플 보간을 위해 HEVC 에 따라 필요한 픽셀들의 수가 표 2 에 제공된다.
표 2 로부터 볼 수 있는 바와 같이, 4:2:0 크로마 포맷 및 4:4:4 크로마 포맷 양자에 대한 최악의 경우는, 양방향 예측을 이용하여 인터 예측되는 8x8 예측 유닛이다. 루마 인터 예측을 위해 요구된 픽셀들의 수는 변하지 않으며 루마에 대해 4:2:0, 4:2:2, 또는 4:4:4 에서 서브-샘플링되지 않음을 주목한다. 하지만, 4:4:4 크로마 포맷에 대한 분수 샘플 보간을 위해 메모리로부터 샘플들을 페치하는데 요구된 대역폭은 4:2:0 크로마 포맷보다 약 45% 더 높다. 비-4:2:0 크로마 포맷들 (예를 들어, 4:2:2 및 4:4:4) 을 지원하기 위한 하드웨어 설계는 필요한 프레임 생성 레이트에서 필요한 여분의 대역폭을 설명해야 한다. 이는 더 많은 및/또는 더 빠른 메모리를 위한 증가된 하드웨어 구현 비용들, 증가된 시스템 버스 속도들 등을 야기할 수도 있다.
비디오 인코더 (20) 가 CU 의 하나 이상의 PU들에 대한 예측 루마, Cb, 및 Cr 블록들을 생성한 후, 비디오 인코더 (20) 는 CU 에 대한 루마 잔차 블록을 생성할 수도 있다. CU 의 루마 잔차 블록에서의 각각의 샘플은 CU 의 예측 루마 블록들 중 하나에서의 루마 샘플과 CU 의 오리지널 루마 코딩 블록 (CB) 에서의 대응하는 샘플 간의 차이를 나타낸다. 부가적으로, 비디오 인코더 (20) 는 CU 에 대한 Cb 잔차 블록을 생성할 수도 있다. CU 의 Cb 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cb 블록들 중 하나에서의 Cb 샘플과 CU 의 오리지널 Cb 코딩 블록에서의 대응하는 샘플 간의 차이를 나타낼 수도 있다. 비디오 인코더 (20) 는 또한, CU 에 대한 Cr 잔차 블록을 생성할 수도 있다. CU 의 Cr 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cr 블록들 중 하나에서의 Cr 샘플과 CU 의 오리지널 Cr 코딩 블록에서의 대응하는 샘플 간의 차이를 나타낼 수도 있다.
더욱이, 비디오 인코더 (20) 는 쿼드 트리 파티셔닝을 이용하여, CU 의 루마, Cb, 및 Cr 잔차 블록들을 하나 이상의 루마, Cb, 및 Cr 변환 블록들로 분해할 수도 있다. 변환 블록은, 동일한 변환이 적용되는 샘플들의 직사각형 블록일 수도 있다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2개의 대응하는 변환 블록들, 및 변환 블록 샘플들을 변환하는데 사용된 신택스 구조들을 포함할 수도 있다. 단색 픽처 또는 3개의 별개의 컬러 평면들을 갖는 픽처에 있어서, TU 는 단일의 변환 블록, 및 그 변환 블록 샘플들을 변환하는데 사용된 신택스 구조들을 포함할 수도 있다. 따라서, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록과 연관될 수도 있다. TU 와 연관된 루마 변환 블록은 CU 의 루마 잔차 블록의 서브-블록일 수도 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브-블록일 수도 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브-블록일 수도 있다.
비디오 인코더 (20) 는 TU 의 루마 변환 블록에 하나 이상의 변환들을 적용하여 TU 에 대한 루마 계수 블록을 생성할 수도 있다. 계수 블록은 변환 계수들의 2차원 어레이일 수도 있다. 변환 계수는 스칼라량일 수도 있다. 비디오 인코더 (20) 는 TU 의 Cb 변환 블록에 하나 이상의 변환들을 적용하여 TU 에 대한 Cb 계수 블록을 생성할 수도 있다. 비디오 인코더 (20) 는 TU 의 Cr 변환 블록에 하나 이상의 변환들을 적용하여 TU 에 대한 Cr 계수 블록을 생성할 수도 있다.
계수 블록 (예를 들어, 루마 계수 블록, Cb 계수 블록 또는 Cr 계수 블록) 을 생성한 후, 비디오 인코더 (20) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로, 변환 계수들이 그 변환 계수들을 나타내는데 사용되는 데이터의 양을 가능하게는 감소시키도록 양자화되어 추가 압축을 제공하는 프로세스를 지칭한다. 더욱이, 비디오 인코더 (20) 는 픽처의 CU들의 TU들의 변환 블록들을 복원하기 위하여 변환 계수들을 역양자화하고 변환 계수들에 역변환을 적용할 수도 있다. 비디오 인코더 (20) 는 CU 의 TU들의 복원된 변환 블록들 및 CU 의 PU들의 예측 블록들을 이용하여 CU 의 코딩 블록들을 복원할 수도 있다. 픽처의 각각의 CU 의 코딩 블록들을 복원함으로써, 비디오 인코더 (20) 는 픽처를 복원할 수도 있다. 비디오 인코더 (20) 는 복원된 픽처들을 디코딩된 픽처 버퍼 (DPB) 에 저장할 수도 있다. 비디오 인코더 (20) 는 인터 예측 및 인트라 예측을 위해 DPB 내의 복원된 픽처들을 이용할 수도 있다.
비디오 인코더 (20) 가 계수 블록을 양자화한 후, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들에 대해 컨텍스트-적응형 바이너리 산술 코딩 (CABAC) 을 수행할 수도 있다. 비디오 인코더 (20) 는 엔트로피 인코딩된 신택스 엘리먼트을 비트스트림으로 출력할 수도 있다.
비디오 인코더 (20) 는 추가로, 블록 기반 신택스 데이터, 프레임 기반 신택스 데이터, 및 GOP 기반 신택스 데이터와 같은 신택스 데이터를, 예를 들어, 프레임 헤더, 블록 헤더, 슬라이스 헤더, 또는 GOP 헤더에서 비디오 디코더 (30) 로 전송할 수도 있다. GOP 신택스 데이터는 개별 GOP 에서의 다수의 프레임들을 기술할 수도 있고, 프레임 신택스 데이터는 대응하는 프레임을 인코딩하는데 사용된 인코딩/예측 모드를 표시할 수도 있다.
부가적으로, 비디오 인코더 (20) 는, 예를 들어, 잔차 데이터를 역양자화 및 역변환함으로써 인코딩된 픽처들을 디코딩하고 잔차 데이터를 예측 데이터와 결합할 수도 있다. 이러한 방식으로, 비디오 인코더 (20) 는 비디오 디코더 (30) 에 의해 수행된 디코딩 프로세스를 시뮬레이션할 수 있다. 따라서, 비디오 인코더 (20) 및 비디오 디코더 (30) 양자는 픽처간 예측에서 사용하기 위해 실질적으로 동일한 디코딩된 픽처들로의 액세스를 가질 것이다.
일반적으로, 비디오 디코더 (30) 는, 비디오 인코더에 의해 수행된 인코딩 프로세스의 역인 디코딩 프로세스를 수행할 수도 있다. 예를 들어, 비디오 디코더 (30) 는, 양자화된 비디오 데이터를 엔트로피 인코딩하기 위해 비디오 인코더에 의해 사용된 엔트로피 인코딩 기술들의 역을 이용하여 엔트로피 디코딩을 수행할 수도 있다. 비디오 디코더 (30) 는 추가로, 비디오 인코더 (20) 에 의해 채용된 양자화 기술들의 역을 이용하여 비디오 데이터를 역양자화할 수도 있고, 비디오 인코더 (20) 에 의해 사용된 변환의 역을 수행하여 양자화된 변환 계수들을 생성할 수도 있다. 그 후, 비디오 디코더 (30) 는 결과적인 잔차 블록들을 인접한 레퍼런스 블록들 (인트라-예측) 또는 다른 픽처로부터의 레퍼런스 블록들 (인터-예측) 에 적용하여 궁극적인 디스플레이를 위한 비디오 블록을 생성할 수도 있다. 비디오 디코더 (30) 는, 비디오 디코더 (30) 에 의해 수신된 비트스트림에서의 인코딩된 비디오 데이터와 함께 비디오 인코더 (20) 에 의해 제공된 신택스 엘리먼트들에 기초하여 비디오 인코더 (20) 에 의해 수행된 다양한 프로세스들의 역을 수행하도록 구성, 명령, 제어 또는 지시될 수도 있다.
픽처간 예측의 추가적인 효율을 위해, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 모션 정보 예측을 위한 기술들, 예를 들어, 모션 벡터 예측 (MVP) 을 구현할 수도 있다. HM 에 의해 지원된 모션 정보 예측의 모드들은, 예를 들어, 병합 모드 및 AMVP 를 포함한다.
병합 모드는, 코딩될 현재 비디오 블록에 대한 모션 벡터들, 레퍼런스 프레임 인덱스들, 예측 방향들, 또는 다른 정보와 같은 모션 정보가 현재 비디오 블록과 동일한 픽처에서의 공간적으로 이웃한 비디오 블록, 또는 (시간적으로) 상이한 픽처에서의 공동위치된 또는 이웃한 비디오 블록으로부터 승계된 하나 이상의 비디오 코딩 모드들을 지칭한다. 동일한 픽처에서의 공간적으로 이웃한 블록들은 로컬 공간 이웃 블록들로서 지칭될 수도 있다. 상이한 픽처에서의 공동위치된 또는 이웃한 블록들은 시간 이웃 블록들로서 지칭될 수도 있다.
병합 모드를 구현하기 위해, 비디오 인코더 (20) 및 비디오 디코더 (30) 양자는 공통의 미리정의된 프로세스를 구현하여, 이웃한 블록들의 모션 정보를 평가하고 그러한 모션 정보로부터 모션 정보 후보 리스트를 구성한다. 비디오 인코더 (20) 로부터 비디오 디코더 (30) 로 시그널링된 인덱스 값은 후보 리스트에서의 어느 후보가 비디오 블록을 코딩하는데 사용되는지, 따라서 현재 비디오 블록이 그 모션 정보를 어느 이웃 블록으로부터 승계하는지를 식별 (예를 들어, 현재 블록에 대해 또는 시간적으로 인접한 픽처로부터 상측, 우상측, 좌측, 좌하측, 또는 좌상측 블록) 하는데 사용될 수도 있다.
스킵 모드는 병합 모드의 일 타입 (또는 병합 모드와 유사한 모드) 을 포함할 수도 있다. 스킵 모드로, 모션 정보는 승계되지만 어떠한 잔차 정보도 코딩되지 않는다. 잔차 정보는 일반적으로, 코딩될 블록의 오리지널 인코딩되지 않은 버전과 공간적으로 이웃한 블록 또는 공동위치된 블록으로부터 승계된 모션 정보에 의해 식별된 예측 블록 간의 픽셀 차이들을 나타내는 픽셀 차이 정보를 지칭한다. 다이렉트 모드는 병합 모드의 다른 타입 (또는 병합 모드와 유사한 모드) 일 수도 있다. 다이렉트 모드는 모션 정보가 승계된다는 점에 있어서 스킵 모드와 유사할 수도 있지만, 다이렉트 모드에 있어서, 비디오 블록은 잔차 정보를 포함하도록 코딩된다. 어구 "병합 모드" 는 스킵 모드, 다이렉트 모드 또는 병합 모드로 지칭될 수도 있는 이들 모드들 중 임의의 하나를 지칭하도록 본 명세서에서 사용된다.
상기 언급된 바와 같이, HEVC 표준에 대한 인터 예측은 8x4 및 4x8 PU들에 대한 단방향 예측으로 제한된다. 8x4 및 4x8 PU들에 대한 단방향 예측으로 변환하기 위해, HEVC 표준에 따라 동작하는 비디오 인코더 (20) 는 그러한 PU들에 대한 양방향 MV들을 병합 모드에 대한 RefPicList0 으로부터의 단방향 MV 로 변환할 수도 있다. AMVP 에 대해, HEVC 표준에 따라 동작하는 비디오 인코더 (20) 는 오직 단방향 MV 예측자와 연관된 MVP 인덱스만을 시그널링할 수도 있다.
본 개시의 기술들의 일 예에 따르면, 비디오 인코더 (20) 는 변경된 압축 기술을 적용하여 압축을 개선할 수도 있다. 예를 들어, 비디오 인코더 (20) 는, 비트스트림의 압축 효율을 개선하기 위해, 메모리 대역폭 요건들을 감소하도록 확립된 인터 예측에 대한 전술한 제한들을 제거할 수도 있다. 이에 따라, 비디오 인코더 (20) 는 8x4 및 4x8 PU들에 대해 심지어 비-4:2:0 포맷들에 대해 양방향 예측 MV 정보를 획득 및 시그널링할 수도 있다. 따라서, 병합 모드에 대해, 비디오 인코더 (20) 는 RefPicList0 및 RefPicList1 에 대해 양방향 예측된 MV들 및 인덱스들을 시그널링한다. 따라서, AMVP 에 대해, 비디오 인코더 (20) 는 양방향 예측을 위한 제 1 및 제 2 MV들과 연관된 MVP 인덱스들을 시그널링한다.
변경된 압축 기술들을 적용하는 다른 예에 있어서, 비디오 인코더 (20) 는 8x4 또는 4x8 과 같은 특정 파티션 사이즈에 따라 파티셔닝된 코딩 유닛의 상이한 컴포넌트들에 대해 상이한 형태들의 파티셔닝을 적용함으로써 대역폭 감소를 위한 제한들을 완화할 수도 있다. 예를 들어, 비-2Nx2N 파티션 타입을 갖는 CU 에 대해, 비디오 인코더 (20) 는 CB 파티션 타입에 따라 루마 CB 를 파티셔닝하고 2Nx2N 파티션 타입 (즉, 분할 안됨) 에 따라 크로마 CB들 중 적어도 하나를 또 파티셔닝할 수도 있다. 일 예로서, 비디오 인코더 (20) 는 2NxN 파티션 타입을 갖는 CU 를, 2개의 루마 2Nx2 PB들, 2Nx2N Cr 컴포넌트 PB, 및 2Nx2N Cb 컴포넌트 PB 로 파티셔닝할 수도 있다. 비디오 인코더 (20) 는, 항상 제 1 루마 PB 로부터, 항상, 제 2, 제 3, 또는 제 4 루마 PB들로부터 모션 정보를 획득함으로써, 또는 다양한 루마 PB들로부터의 모션 정보를 일부 방식으로 결합함으로써 루마 CB 와는 상이하게 파티셔닝되는 적어도 하나의 크로마 CB 에 대한 모션 정보를 도출할 수도 있다. 이는, 크로마 컴포넌트 PB들에 대한 분수 샘플 보간을 수행하는데 요구된 메모리 대역폭을 감소시킬 수도 있다.
변경된 압축 기술들을 적용하는 다른 예에 있어서, 비디오 인코더 (20) 는, 다른 레퍼런스 픽처 리스트의 픽처로부터 예측자를 획득하기 위해 동일한 블록에 대한 2Nx2N 파티션 타입 (즉, 분할 안됨) 을 이용하면서 일 레퍼런스 픽처 리스트로부터의 레퍼런스 픽처를 이용하여 예측될 블록에 대한 비-2Nx2N 파티션 타입을 갖기 위해 적어도 하나의 루마 또는 크로마 컴포넌트를 양방향 예측 인터 예측에 대해 시그널링할 수도 있다. 예를 들어, 비디오 인코더 (20) 는, 블록을 양방향 예측하기 위해 RefPicList1 에 대한 2Nx2N 파티션을 이용하면서 레퍼런스 리스트 (RefPicList0) 에 대한 2NxN 파티션 타입을 시그널링할 수도 있다 (또는 그 역도 성립). 이들 기술들은 인터 예측을 위한 대역폭 요건들을 감소하고, 상기 서술된 부수적인 하드웨어 비용 증가들을 잠재적으로 회피하는 것을 허용할 수도 있다.
본 개시의 기술들에 따른 다른 예에 있어서, 비디오 인코더 (20) 는 부가적인 환경들에 대하여 비-4:2:0 포맷들에 대한 비디오 코딩에 있어서 양방향 예측 모드의 사용을 제한할 수도 있다. 예를 들어, 크로마 포맷이 4:2:2 또는 4:4:4 이면, 비디오 인코더 (20) 는 대역폭 감소 동작들을 더 큰 사이즈의 PU들로 확장할 수도 있다. 따라서, 예를 들어, 4x8 및 8x4 PU들에 대해 양방향 예측을 제한하는 것에 부가하여, 비디오 인코더 (20) 는 비-4:2:0 포맷을 검출할 수도 있거나 비-4:2:0 포맷을 인코딩하도록 구성될 수도 있고, 따라서, 부가적으로, 8x8 PU들, 8x16/16x8 PU들 등과 같이 예를 들어 임의의 하나 이상의 더 큰 PU 파티션 사이즈들에 대해 사이즈 기준을 충족하는 PU 파티션 사이즈들에 대해 양방향 예측을 제한할 수도 있다. 이에 따라, 비디오 인코더 (20) 는 (다시, 비디오 인코더 (20) 가 확장된 제한을 적용할 경우) 그러한 PU들에 대한 양방향 모션 벡터들을 단방향 모션 벡터로 변환할 수도 있다. 비디오 인코더 (20) 는 상기 설명된 병합 모드 또는 AMVP 에 대한 변환 기술들 중 하나를 이용하여 양방향 MV들을 단방향 MV 로 변환할 수도 있다.
다른 예에 있어서, 비디오 인코더 (20) 는 PU 에 대한 하나 이상의 MU들을 4x8 및 8x4 PU들과 같이 PU들에 대한 정수-펠 (integer-pel) 더 작은 사이즈의 PU들로 라운딩할 수도 있다. 모션 벡터를 정수-펠로 라운딩하는 것은 모션 벡터의 수평 및 수직 컴포넌트들을 레퍼런스 픽처에서의 컴포넌트에 대한 최근접 샘플 포지션으로 라운딩하는 것을 지칭할 수도 있다. 일부 경우들에 있어서, 비디오 인코더 (20) 는 오직 양방향 예측을 이용하여 획득된 PU들에 대해서만 라운딩하는 정수-펠을 적용할 수도 있다.
상기 기술들은 대역폭 감소를 야기할 수도 있으며, 여기서, PU 분수 샘플 보간을 위해 페치된 픽셀들의 수는 표 3 과 일치한다. 크로마 포맷 4:4:4 에 대한 최악의 경우는 934 픽셀들로부터 638 픽셀들로 개선하며, 이는 단방향 예측에 대한 양방향 예측이 4x8 및 8x4 PU들에 적용되는 4:2:0 크로마 포맷에 대한 최악의 경우에 필적할 만하다.
본 명세서에서 설명된 바와 같은 비-4:2:0 포맷들에 대해 비디오 코딩에서의 양방향 예측 모드의 사용을 제한하는 비디오 인코더 (20) 의 일부 예들에 있어서, HEVC 표준에 따라 4x8 및 8x4 PU들에 대해 양방향 예측을 제한하는 것에 부가하여 또는 그에 대안적으로, 비디오 인코더 (20) 는 컴포넌트의 타입에 따라 더 큰 사이즈 PU들에 대해 양방향 예측을 제한할 수도 있다. 예를 들어, 비-4:2:0 포맷으로 인코딩된 8x8 CU 에 대해, 비디오 인코더 (20) 는 루마 PB 에 대해 양방향 예측을 허용하면서 크로마 PB들 중 적어도 하나에 대해서는 양방향 예측을 제한할 수도 있다. 이에 따라, 비디오 인코더 (20) 는 (다시, 비디오 인코더 (20) 가 이러한 확장된 컴포넌트 당 제한을 적용할 경우) 그러한 PB들에 대한 양방향 모션 벡터들을 단방향 모션 벡터로 변환할 수도 있다. 확장된 대역폭 감소 제한들이 전체 코딩 효율에 대해 불균등한 영향을 주기 때문에, 이러한 제한을 크로마 컴포넌트에 적용하는 것은, 비디오 코딩 프로세스에 대해 요구된 메모리 대역폭의 감소들을 여전히 잠재적으로 획득하면서 그 제한을 루마 컴포넌트에 적용하여 전체 코딩 성능에 더 적은 영향을 줄 수도 있다.
상기 기술들은 메모리 대역폭 감소를 야기할 수도 있으며, 여기서, PU 분수 샘플 보간을 위해 페치된 픽셀들의 수는 표 4 와 일치한다. 크로마 포맷 4:4:4 에 대한 최악의 경우는 934 픽셀들로부터 692 픽셀들로 개선하며, 이는 또한, 단방향 예측에 대한 양방향 예측이 4x8 및 8x4 PU들에 적용되는 4:2:0 크로마 포맷에 대한 최악의 경우에 필적할 만하다.
그러한 메모리 대역폭 감소는, 본 명세서에서 설명된 기술들을 채용하지 않는 시스템에 비해, 메모리 버퍼의 사이즈, 메모리 버퍼의 속도, 메모리 버스의 사이즈 및/또는 속도를 감소시키거나, 메모리 판독/기입들을 용이하게 하는데 필요한 전력의 양을 감소시키거나, 또는 상기의 일부 조합일 수도 있다.
본 명세서에서 설명된 바와 같은 비-4:2:0 포맷들에 대해 비디오 코딩에서의 양방향 예측 모드의 사용을 제한하는 비디오 인코더 (20) 의 일부 예들에 있어서, 비디오 인코더 (20) 가 양방향 예측에 대한 제한을 갖는 CU 에 대한 적어도 하나의 크로마 PB 를 결정하는 상기 설명에 대한 대안으로, 비디오 인코더 (20) 는 크로마 PB 에 대한 양방향 예측을 사용 (즉, 2개의 예측자들을 획득) 하는 대신 2개의 예측자들에 대한 동일한 모션 정보를 사용할 수도 있다. 즉, 비디오 인코더 (20) 는 단방향 예측자들 중 어느 하나를 다른 단방향 예측자에 카피할 수도 있다. 단방향 예측자는 RefPicList0 또는 RefPicList1 중 어느 하나로부터 유래할 수도 있다. 그 후, 비디오 인코더 (20) 는, 제 1 예측자 및 제 1 예측자의 카피인 제 2 예측자에 대한 개별 가중치들 (w0 및 w1) 을 갖는 2개의 예측자들에 가중된 양방향 예측을 적용할 수도 있다. 예를 들어, RefPicList0 을 참조한 모션 정보를 이용하여 획득된 인터-예측일 수도 있는 Pred0, 및 RefPicList1 을 참조한 모션 정보를 이용하여 획득된 인터-예측일 수도 있는 Pred1 을 고려한다. 양방향 예측을 이용하여 획득되는 결정된 예측자는, 가중된 양?향 예측에 따라,
이며, 여기서, MV0 및 MV1 은 대응하는 예측자들에 대한 모션 벡터들이고, refIdx0 및 refIdx1 은 대응하는 RefPicList0 및 RefPicList1 에 대한 인덱스들이다. 상기 설명된 대안적인 기술들을 이용하여, 비디오 인코더 (20) 는 Pred1 = Pred0 또는 Pred0 = Pred1 을 설정한다. Pred1 과 Pred0 이 동일하면, PredBi = (w0 + w1) * Pred0 또는 PredBi = (w0 + w1) * Pred1 이다. 비록 w0 + w1 이 모든 경우들에서 1 로 합산되지 않을 수도 있더라도, w0 + w1 = 1 이면, 본 기술은, 비디오 인코더 (20) 가 크로마 PB들 중 적어도 하나에 대한 양방향 예측을 제한하고 그리고 크로마 PB들 중 적어도 하나 (즉, 크로마 컴포넌트들) 에 대해 양?향 예측 모션 벡터를 단방향 예측 모션 벡터로 변환할 수도 있는 이전의 기술들에 대해 획득되었던 유사한 예측자를 획득한다.
상기 설명들에 있어서, 8x8 블록은 오직 예시적인 목적들로 사용되었다. 상기 설명된 기술들은 또한 다른 블록 사이즈들에 적용가능하다.
본 개시의 기술들에 따른 다른 예에 있어서, 비디오 인코더 (20) 는 블록에서의 픽셀들의 수에 따라 양방향 예측 제한을 적용할 수도 있다. 예를 들어, 소정의 임계치 (T) 에 대해, 비디오 인코더 (20) 는 H * W ≤ T 인 임의의 블록 사이징된 HxW 에 대해 양방향 예측 제한 및 양방향-단방향 변환을 적용할 수도 있다. 예를 들어, T=64 이면, 4x8, 8x4, 8x8, 4x16, 및 16x4 PU들이 양방향 예측 제한에 포함된다. 일부 예들에 있어서, 비디오 인코더 (20) 는 H + W ≤ T 인 임의의 블록 사이징된 HxW 에 임계치 (T) 에 대한 양방향 예측 제한을 적용할 수도 있다. 대안적으로, 비디오 인코더 (20) 는 다른 타입들의 임계화를 적용할 수도 있다.
이전 문단에서 설명된 차원 기반 임계 기술들에 부가하여, 비디오 인코더 (20) 는 양방향 예측 제한을, 코딩 유닛 또는 사이즈 면적에 대한 블록들의 임계 수로 제한할 수도 있다. 양방향 예측 제한이 적용되는 CU 의 블록들의 수가 초과되면, 비디오 인코더 (20) 는 CU 에 의해 정의된 사이즈 면적의 나머지 블록들에 대해 제한을 적용하는 것을 회피시킬 수도 있으며, 이는 그 자체가 쿼드트리 분할 프로세스에 따라 분할될 수도 있다. 상기의 일 예에 있어서, 16x16 CU 는 4개의 8x8 PU들을 포함할 수도 있다. 블록의 임계 수가 2 이면, 비디오 인코더 (20) 는 양방향 예측 제한을 오직 16x16 CU 의 처음 2개의 (또는 일부 다른 2개의) 블록들에만 적용할 수도 있다. 나머지 8x8 PU들은, 비록 8x8 사이즈가 다른 방법으로 양방향 예측에 대한 (적어도, 비-4:2:0 포맷에서의 크로마 컴포넌트들에 대한) 사이즈 제한을 충족할 것이더라도 양방향 예측될 수도 있다.
비디오 인코더에 의해 수행되는 것으로서 상기 설명된 기술들은, 유사하게, 비디오 디코더 (30) 에 의해 수행될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 상기 예들 중 임의의 예를 결합하여 또는 대안적으로 적용할 수도 있다. 상기 기술들 중 임의의 하나 이상을 적용하는 결과로서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 분수 샘플 보간을 위해 페치될 픽셀들의 수를 감소시키고, 이에 의해, 비디오 인코더 (20) 및 비디오 디코더 (30) 에 대한 하드웨어 사양 요건을 정의하는 피크 메모리 대역폭을 감소시킬 수도 있다.
도 2 는 현재 비디오 블록 (40) 의 일 예뿐 아니라 예시적인 비디오 블록 (40) 에 대한 모션 정보 후보 리스트를 구성하기 위한 대표적인 공간 및 시간 이웃 블록들을 도시한 개념 다이어그램이다. 상기 논의된 바와 같이, 병합 모드 및 AMVP 모드 양자는 공간 및 시간 이웃 블록들의 모션 정보로부터 코딩되는 현재 비디오 블록에 대한 모션 정보 후보들을 식별하는 것을 포함한다. 더욱이, HEVC 에 따르면, 병합 모드 및 AMVP 모드 양자에 대해, 비디오 코더는, 모션 정보 후보 리스트들을 구성할 경우, 동일한 후보 블록들, 예를 들어, 도 2 에 의해 도시된 후보 블록들의 세트의 모션 정보를 고려할 수도 있다.
도 2 의 예는 공간 이웃 블록들 (41-45) 및 시간 이웃 블록들 (T1 및 T2) 을, 그 모션 정보가 병합 모드 또는 AMVP 모드에 따라 현재 블록 (40) 을 코딩하기 위한 잠재적인 모션 정보 후보들로 고려될 수도 있는 이웃 블록들로서 도시한다. 블록 (41) (좌측 이웃), 블록 (42) (상측 이웃), 블록 (43) (우상측 이웃), 블록 (44) (좌하측 이웃), 및 블록 (45) (좌상측 이웃) 은 도 2 에 도시된 현재 비디오 블록 (40) 에 대한 공간 이웃 블록들이다. 블록들 (41-45) 은, 병합 모드 또는 AMVP 모드 중 어느 하나 또는 그 양자에 따라 현재 비디오 블록 (40) 을 코딩하기 위한 모션 정보 후보 리스트를 구성하기 위해 모션 정보 후보들을 식별하기 위한 공간 이웃 블록들일 수도 있다.
시간 이웃 블록들 (T1 및 T2) 은, 각각, 현재 비디오 블록 (40) 에 인접하게 그리고 현재 비디오 블록 내에 도시되지만, 그들이 사실상 현재 비디오 블록 (40) 과는 상이한 픽처에 위치됨 (따라서, 현재 비디오 블록에 시간적 이웃들임) 을 반영하기 위해 점선의 경계들을 갖는다. 시간 이웃 블록들 (T1 및 T2) 중 하나 또는 그 양자는, 병합 모드 또는 AMVP 모드 중 어느 하나 또는 그 양자에 따라 현재 비디오 블록 (40) 을 코딩하기 위한 모션 정보 후보 리스트를 구성하기 위해 모션 정보 후보들을 식별하기 위한 시간 이웃 블록일 수도 있다. 도 2 에 도시된 바와 같이, 시간 후보 블록 (T1) 은 현재 블록 (40) 의 (하지만 레퍼런스 픽처로부터) 우하측에 있을 수도 있으며, 시간 후보 (T2) 는 현재 비디오 블록 (40) 의 (하지만 레퍼런스 픽처로부터) 중심에 또는 중심 근처에 있을 수 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각, 병합 모드 또는 AMVP 모드에 따라 현재 블록 (40) 을 코딩함에 있어서 사용하기 위한 동일한 또는 유사한 방식으로 모션 정보 후보들의 리스트를 형성할 수도 있다. 후보 리스트로부터 후보를 선택한 이후, 비디오 인코더 (20) 는 선택된 후보의 인덱스를 비디오 디코더에 시그널링할 수도 있다. 인덱스에 기초하여, 비디오 디코더 (30) 와 같은 비디오 디코더는 비디오 인코더 (20) 에 의해 선택된 후보를 식별할 수 있다. 선택된 후보와 연관된 모션 정보에 기초하여, 비디오 디코더 (30) 는 현재 비디오 블록을 디코딩할 수 있다. 후보 리스트로부터 적절한 후보를 선택하기 위해, 비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 사용된 동일한 후보 세트를 구성할 수도 있다.
HEVC 코딩 표준에 있어서, 비디오 블록들은 병합 모드에 기반한 스킵 모드 및 병합 인터 예측 모드를 이용하여 코딩될 수 있으며, 여기서, 모션 정보 후보로부터의 모션 벡터, 레퍼런스 픽처 인덱스 및 인터 디렉션과 같은 모션 정보는 현재 블록 (40) 의 모션 정보에 카피될 수 있다. 일부 예들에 있어서, 5개의 공간 후보들은 후보들의 리스트, 예를 들어, 5개까지의 모션 정보 후보들의 리스트를 형성하기 위해 하나의 시간 모션 정보 후보 (종종, 시간 모션 벡터 예측자 또는 "TMVP" 로서 지칭됨) 와 함께 고려될 수 있다. HEVC 에 따르면, 병합 모드 모션 정보 후보 리스트에서 사용될 후보들의 총 수는 5 로 고정되며 (또는 5 의 최대값으로 비디오 인코더에 의해 선택될 수도 있음), 그 리스트는 4개까지의 공간 모션 정보 후보들 및 하나의 시간 모션 정보 후보를 포함한다. 이에 따라, 일부 예들에 있어서, 병합 모드 모션 정보 후보 리스트는 공간 후보들 중 4개 (즉, 도 2 에 있어서 블록들 (41-45) 에 의해 표시된 후보들 중 4개) 및 하나의 시간 모션 정보 후보 (즉, 도 2 에 있어서 블록들 (T1 및 T2) 에 의해 표시된 2개의 후보들 중 하나) 를 포함할 수도 있다. 시간 모션 정보 후보는 T1 일 수 있거나, 또는 T1 이 이용가능하지 않으면 T2 일 수 있다.
공간 또는 시간 모션 정보 후보들 중 하나가 이용불가능하거나 또는 이미 포함된 모션 정보 후보와 용장성이면, 비디오 코더는 용장성의 또는 이용불가능한 후보를 제 5 공간 후보로 대체할 수도 있다. 일부 예들에 있어서, 용장성의 또는 이용불가능한 후보는 T1 또는 T2 의 다른 것으로 대체될 수도 있다. 도 2 에 도시된 넘버링은, 공간 후보들이 후보들의 리스트에 추가될 수도 있는 예시적인 순서화에 대응할 수도 있다. 따라서, 이러한 예시적인 순서화를 이용하여, 공간 후보 (45) 는 제 5 공간 후보일 것이며, 공간 후보들 (41-44) 이후에 추가될 것이다.
모션 정보 후보 리스트로의 포함을 위해 후보 블록들 (41-45, T1 및 T2) 에 이웃한 모션 정보의 고려를 위한 스캔 순서는 예를 들어 41-44, T1, 45 일 수도 있다. 다른 예들에 있어서, 비디오 인코더 (20) 및 비디오 디코더 (30) 에 의해 채용되는 한, 임의의 스캔 순서가 사용될 수도 있다. 예를 들어, 다른 구성들에 있어서, 제 5 공간 후보는 시간 모션 정보 후보 전에 고려될 수도 있다. 모션 정보 후보가 모션 정보 후보 리스트로의 추가를 위해 고려되는 스캔 순서는, 예를 들어, 그 후보와 연관된 인덱스에 영향을 줄 수도 있다. 인덱스들 (0 내지 4) 을 갖는 리스트 내의 5개의 후보들이 존재하면, 시간 모션 정보 후보는 그들 인덱스들 중 임의의 인덱스에 할당될 수도 있다. 유사하게, 공간 후보들이 또한 임의의 인덱스에 할당될 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 예측자를 결정하기 위해 분수 샘플 보간을 후보 블록들 (T1 및 T2) 중 임의의 블록에 적용할 수도 있으며, 이는 페치된 픽셀들의 수로 인해 높은 메모리 대역폭을 발생시킬 수도 있다. 본 명세서에서 설명된 기술들에 따르면, 비디오 인코더 (20) 및 비디오 디코더 (30) 는, 비-4:2:0 크로마 포맷들로 인코딩된 현재 블록 (40) 및 후보들 (T1, T2) 로 예측자를 결정하기 위해 대역폭 감소를 적용할 수도 있다. 결과적으로, 비디오 인코더 (20) 및 비디오 디코더 (30) 는, 다른 방법으로 표준 HEVC 로 경험될 피크 메모리 대역폭을 감소시킬 수도 있다.
도 3 은 본 개시에서 설명된 기술들을 구현할 수도 있는 예시적인 비디오 인코더 (20) 를 도시한 블록 다이어그램이다. 비디오 인코더 (20) 는 비디오 슬라이스들 내에서 비디오 블록들의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라 코딩은 소정의 비디오 프레임 또는 픽처 내 비디오에 있어서 공간 리던던시를 감소 또는 제거하기 위해 공간 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접한 프레임들 또는 픽처들 내 비디오에 있어서 시간 리던던시를 감소 또는 제거하기 위해 시간 예측에 의존한다. 인트라-모드 (I 모드) 는 수개의 공간 기반 압축 모드들 중 임의의 모드를 지칭할 수도 있다. 단방향 예측 (P 모드) 또는 양방향 예측 (B 모드) 과 같은 인터-모드들은 수개의 시간 기반 압축 모드들 중 임의의 모드를 지칭할 수도 있다.
도 3 의 예에 있어서, 비디오 인코더 (20) 는 파티셔닝 유닛 (135), 예측 프로세싱 유닛 (141), 레퍼런스 픽처 메모리 (164), 합산기 (150), 변환 프로세싱 유닛 (152), 양자화 유닛 (154), 및 엔트로피 인코딩 유닛 (156) 을 포함한다. 예측 프로세싱 유닛 (141) 은 모션 추정 유닛 (142), 모션 보상 유닛 (144) 및 인트라-예측 프로세싱 유닛 (146) 을 포함한다. 비디오 블록 복원을 위해, 비디오 인코더 (20) 는 또한 역양자화 유닛 (158), 역변환 프로세싱 유닛 (160), 및 합산기 (162) 를 포함한다. 디블로킹 (deblocking) 필터 (도 3 에 도시 안됨) 가 또한 블록 경계들을 필터링하여 복원된 비디오로부터 블록키니스 아티팩트들을 제거하기 위해 포함될 수도 있다. 요구된다면, 디블로킹 필터는 통상적으로 합산기 (162) 의 출력을 필터링할 것이다. 부가적인 루프 필터들 (인-루프 (in loop) 또는 포스트 루프) 이 또한 디블로킹 필터에 부가하여 이용될 수도 있다.
도 3 에 도시된 바와 같이, 비디오 인코더 (20) 는 비디오 데이터를 수신하고, 파티셔닝 유닛 (135) 은 그 데이터를 비디오 블록들로 파티셔닝한다. 이러한 파티셔닝은 또한, 예를 들어, LCU들 및 CU들의 쿼드트리 구조에 따른 비디오 블록 파티셔닝뿐 아니라 슬라이스들, 타일들, 또는 다른 더 큰 유닛들로의 파티셔닝을 포함할 수도 있다. 도 3 에 도시된 비디오 인코더 (20) 의 예시적인 구성은 일반적으로, 인코딩될 비디오 슬라이스 내에서의 비디오 블록들을 인코딩하는 컴포넌트들을 도시한다. 슬라이스는 다중의 비디오 블록들로 (및 가능하게는 타일들로서 지칭되는 비디오 블록들의 세트들로) 분할될 수도 있다.
예측 프로세싱 유닛 (141) 은 에러 결과들 (예를 들어, 코딩 레이트 및 왜곡의 레벨) 에 기반한 현재 비디오 블록에 대해 복수의 인트라 코딩 모드들 중 하나 또는 복수의 인터 코딩 모드들 중 하나와 같이 복수의 가능한 코딩 모드들 중 하나를 선택할 수도 있다. 예측 프로세싱 유닛 (141) 은 결과적인 인트라- 또는 인터-코딩된 블록을 합산기 (150) 에 제공하여 잔차 블록 데이터를 생성하고, 합산기 (162) 에 제공하여 레퍼런스 픽처로서의 사용을 위한 인코딩된 블록을 복원할 수도 있다.
예측 프로세싱 유닛 (141) 내의 인트라 예측 프로세싱 유닛 (146) 은 공간 압축을 제공하기 위해, 코딩될 현재 블록과 동일한 프레임 또는 슬라이스에 있어서의 하나 이상의 이웃한 블록들에 대해 현재 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다. 예측 프로세싱 유닛 (141) 내의 모션 추정 유닛 (142) 및 모션 보상 유닛 (144) 은 시간 압축을 제공하기 위해 하나 이상의 레퍼런스 픽처들에 있어서의 하나 이상의 예측 블록들에 대해 현재 비디오 블록의 인터-예측 코딩을 수행한다.
모션 추정 유닛 (142) 은 비디오 시퀀스에 대한 미리결정된 패턴에 따라 비디오 슬라이스에 대한 인터-예측 모드를 결정하도록 구성될 수도 있다. 미리결정된 패턴은 시퀀스에서의 비디오 슬라이스들을, P 슬라이스들, B 슬라이스들 또는 GPB 슬라이스들로서 명시할 수도 있다. 모션 추정 유닛 (142) 및 모션 보상 유닛 (144) 은 고도로 통합될 수도 있지만, 개념적인 목적을 위해 별개로 도시된다. 모션 추정 유닛 (142) 에 의해 수행된 모션 추정은, 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 모션 벡터는, 예를 들어, 레퍼런스 픽처 내에서의 예측 블록에 대한 현재 비디오 프레임 또는 픽처 내의 비디오 블록의 PU 의 변위를 표시할 수도 있다.
예측 블록은 픽셀 차이의 관점에서 코딩될 비디오 블록의 PU 와 밀접하게 매칭되도록 발견되는 블록이며, 이 픽셀 차이는 절대 차이의 합 (SAD), 제곱 차이의 합 (SSD), 또는 다른 상이한 메트릭들에 의해 결정될 수도 있다. 일부 예들에 있어서, 비디오 인코더 (20) 는 레퍼런스 픽처 메모리 (164) 에 저장된 레퍼런스 픽처들의 서브-정수 픽셀 포지션들에 대한 값들을 계산할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 레퍼런스 픽처의 1/4 픽셀 포지션들, 1/8 픽셀 포지션들, 또는 다른 분수 픽셀 포지션들의 값들을 보간할 수도 있다. 따라서, 모션 추정 유닛 (142) 은 풀 픽셀 포지션들 및 분수 픽셀 포지션들에 대한 모션 탐색을 수행하고, 분수 픽셀 정밀도로 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (142) 은 인터-코딩된 슬라이스에 있어서의 비디오 블록의 PU 에 대한 모션 벡터를, 그 PU 의 포지션을 레퍼런스 픽처의 예측 블록의 포지션과 비교함으로써 계산한다. 레퍼런스 픽처는 제 1 레퍼런스 픽처 리스트 (리스트 0 또는 RefPicList0) 또는 제 2 레퍼런스 픽처 리스트 (리스트 1 또는 RefPicList1) 로부터 선택될 수도 있으며, 이 리스트들 각각은 레퍼런스 픽처 메모리 (164) 에 저장된 하나 이상의 레퍼런스 픽처들을 식별한다. 모션 추정 유닛 (142) 은 계산된 모션 벡터를 엔트로피 인코딩 유닛 (156) 및 모션 보상 유닛 (144) 으로 전송한다.
모션 보상 유닛 (144) 에 의해 수행된 모션 보상은 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페치 또는 생성하여, 가능하게는 서브-픽셀 정밀도로 보간들을 수행하는 것을 수반할 수도 있다. 현재 비디오 블록의 PU 에 대한 모션 벡터를 수신할 시, 모션 보상 유닛 (144) 은, 모션 벡터가 레퍼런스 픽처 리스트들 중 하나에 포인팅하는 예측 블록을 로케이팅할 수도 있다. 비디오 인코더 (20) 는, 코딩되고 있는 현재 비디오 블록의 픽셀 값들로부터 예측 블록의 픽셀 값들을 감산하여 픽셀 차이 값들을 형성함으로써 잔차 비디오 블록을 형성한다. 픽셀 차이 값들은 블록에 대한 잔차 데이터를 형성하고, 루마 및 크로마 차이 컴포넌트들 양자를 포함할 수도 있다. 합산기 (150) 는 이러한 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 모션 보상 유닛 (144) 은 또한, 비디오 슬라이스의 비디오 블록들을 디코딩함에 있어서 비디오 디코더 (30) 에 의한 사용을 위해 비디오 블록들 및 비디오 슬라이스와 연관된 신택스 엘리먼트들을 생성할 수도 있다.
인트라-예측 프로세싱 유닛 (146) 은 현재 블록을, 상기 설명된 바와 같은 모션 추정 유닛 (142) 및 모션 보상 유닛 (144) 에 의해 수행된 인터-예측에 대한 대안으로서 인트라-예측할 수도 있다. 특히, 인트라-예측 프로세싱 유닛 (146) 은 현재 블록을 인코딩하는데 이용하기 위한 인트라-예측 모드를 결정할 수도 있다. 일부 예들에 있어서, 인트라-예측 프로세싱 유닛 (146) 은 예를 들어 별도의 인코딩 패스들 동안에 다양한 인트라-예측 모드들을 이용하여 현재 블록을 인코딩할 수도 있으며, 인트라-예측 프로세싱 유닛 (146) (또는 일부 예들에서는 모드 선택 유닛 (도시 안됨)) 은 테스팅된 모드들로부터의 이용을 위해 적절한 인트라-예측 모드를 선택할 수도 있다. 예를 들어, 인트라-예측 프로세싱 유닛 (146) 은 다양한 테스팅된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 이용하여 레이트-왜곡 값들을 계산하고, 테스팅된 모드들 중 최상의 레이트-왜곡 특성들을 갖는 인트라-예측 모드를 선택할 수도 있다. 레이트-왜곡 분석은 일반적으로, 인코딩된 블록과 그 인코딩된 블록을 생성하도록 인코딩되었던 오리지널의 인코딩되지 않은 블록 간의 왜곡 (또는 에러) 의 양뿐 아니라 인코딩된 블록을 생성하는데 사용된 비트 레이트 (즉, 비트들의 수) 를 결정한다. 인트라-예측 프로세싱 유닛 (146) 은 다양한 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터의 비율들을 계산하여, 어느 인트라-예측 모드가 그 블록에 대한 최상의 레이트-왜곡 값을 나타내는지를 결정할 수도 있다.
어떤 경우든, 블록에 대한 인트라-예측 모드를 선택한 이후, 인트라-예측 프로세싱 유닛 (146) 은 블록에 대한 선택된 인트라-예측 모드를 표시하는 정보를 엔트로피 인코딩 유닛 (156) 에 제공할 수도 있다. 엔트로피 인코딩 유닛 (156) 은 선택된 인트라-예측 모드를 표시한 정보를 인코딩할 수도 있다. 비디오 인코더 (20) 는 송신된 비트스트림에, 복수의 인트라-예측 모드 인덱스 테이블들 및 복수의 변형된 인트라-예측 모드 인덱스 테이블들 (코드워드 매핑 테이블들로서도 또한 지칭됨) 을 포함할 수도 있는 구성 데이터, 다양한 블록들에 대한 인코딩 컨텍스트들의 정의들, 및 컨텍스트들 각각에 대한 사용을 위한 가장 가능성있는 인트라-예측 모드, 인트라-예측 모드 인덱스 테이블, 및 변형된 인트라-예측 모드 인덱스 테이블의 표시들을 포함할 수도 있다.
예측 프로세싱 유닛 (141) 이 인터-예측 또는 인트라-예측 중 어느 하나를 통해 현재 비디오 블록에 대한 예측 블록을 생성한 이후, 비디오 인코더 (20) 는 현재 비디오 블록으로부터 예측 블록을 감산함으로써 잔차 비디오 블록을 형성한다. 잔차 블록에서의 잔차 비디오 데이터는 하나 이상의 TU들에 포함되고 변환 프로세싱 유닛 (152) 에 적용될 수도 있다. 변환 프로세싱 유닛 (152) 은 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환과 같은 변환을 이용하여 잔차 비디오 데이터를 잔차 변환 계수들로 변환한다. 변환 프로세싱 유닛 (152) 은 잔차 비디오 데이터를 픽셀 도메인으로부터 주파수 도메인과 같은 변환 도메인으로 컨버팅할 수도 있다.
변환 프로세싱 유닛 (152) 은 결과적인 변환 계수들을 양자화 유닛 (154) 으로 전송할 수도 있다. 양자화 유닛 (154) 은 비트 레이트를 추가로 감소시키기 위해 변환 계수들을 양자화한다. 양자화 프로세스는 그 계수들의 일부 또는 그 모두와 연관되는 비트 심도를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 변경될 수도 있다. 그 후, 일부 예들에 있어서, 양자화 유닛 (154) 은, 양자화된 변환 계수들을 포함하는 매트릭스의 스캔을 수행할 수도 있다. 대안적으로, 엔트로피 인코딩 유닛 (156) 은 스캔을 수행할 수도 있다.
양자화 이후, 엔트로피 인코딩 유닛 (156) 은 양자화된 변환 계수들을 엔트로피 인코딩한다. 예를 들어, 엔트로피 인코딩 유닛 (156) 은 컨텍스트 적응형 바이너리 산술 코딩 (CABAC), 컨텍스트 적응형 가변 길이 코딩 (CAVLC), 신택스 기반 컨텍스트 적응형 바이너리 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩, 또는 다른 엔트로피 인코딩 방법 또는 기술을 수행할 수도 있다. 엔트로피 인코딩 유닛 (156) 에 의한 엔트로피 인코딩 이후, 인코딩된 비트스트림은 비디오 디코더 (30) 로 송신되거나, 또는 비디오 디코더 (30) 에 의한 더 나중의 송신 또는 취출을 위해 아카이브될 수도 있다. 엔트로피 인코딩 유닛 (156) 은 또한, 코딩되고 있는 현재 비디오 슬라이스에 대한 모션 벡터들, 다른 모션 정보 및 다른 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
역양자화 유닛 (158) 및 역변환 프로세싱 유닛 (160) 은, 각각, 역양자화 및 역변환을 적용하여, 레퍼런스 픽처의 레퍼런스 블록으로서의 더 나중 사용을 위해 픽셀 도메인에서 잔차 블록을 복원한다. 모션 보상 유닛 (144) 은, 레퍼런스 픽처 리스트들 중 하나 내에서의 레퍼런스 픽처들 중 하나의 예측 블록에 잔차 블록을 부가함으로써 레퍼런스 블록을 계산할 수도 있다. 모션 보상 유닛 (144) 은 또한, 하나 이상의 보간 필터들을 복원된 잔여 블록에 적용하여, 모션 추정에서 사용하기 위한 서브-정수 픽셀 값들을 계산할 수도 있다. 합산기 (162) 는 복원된 잔차 블록을, 모션 보상 유닛 (144) 에 의해 생성된 모션 보상된 예측 블록에 부가하여, 레퍼런스 픽처 메모리 (164) 로의 저장을 위한 레퍼런스 블록을 생성한다. 레퍼런스 블록은, 후속 비디오 프레임 또는 픽처에서의 블록을 인터-예측하기 위해 레퍼런스 블록으로서 모션 추정 유닛 (142) 및 모션 보상 유닛 (144) 에 의해 사용될 수도 있다.
예를 들어, 모션 추정 유닛 (142) 및 모션 보상 유닛 (144) 에 의해 수행된 바와 같은 모션 추정 및 모션 보상은 복수의 상이한 모션 정보 예측 모드들, 예를 들어, 병합 모드 및 AMVP 모드에 따른 모션 정보 예측을 포함할 수도 있다. 본 개시의 기술들에 따르면, 모션 추정 유닛 (142) 및/또는 모션 보상 유닛 (144) 은 비-4:2:0 크로마 포맷들에 대한 상이한 모션 정보 예측 모드들 중 임의의 모드에 의해 수행된 인터 예측을 위한 양방향 예측에 대한 제한들을 확장하거나 그렇지 않으면 변경할 수도 있다. 일반적으로, 모션 추정 유닛 (142) 및/또는 모션 보상 유닛 (144) 은, 인터 예측을 위한 양방향 예측에 대한 제한들을 한정하거나 그렇지 않으면 변경하기 위해 본 명세서에서 설명된 기술들 중 임의의 기술 (예를 들어, 도 1, 도 5 내지 도 10 에 대하여 설명된 기술들 포함) 을 수행할 수도 있다.
도 4 는 본 개시에서 설명된 기술들을 구현할 수도 있는 예시적인 비디오 디코더 (30) 를 도시한 블록 다이어그램이다. 도 4 의 예에 있어서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (180), 예측 프로세싱 유닛 (181), 역양자화 유닛 (186), 역변환 프로세싱 유닛 (188), 합산기 (190), 및 레퍼런스 픽처 메모리 (192) 를 포함한다. 예측 프로세싱 유닛 (181) 은 모션 보상 유닛 (182) 및 인트라 예측 프로세싱 유닛 (184) 을 포함한다. 일부 예들에 있어서, 비디오 디코더 (30) 는 도 3 으로부터의 비디오 인코더 (20) 에 대하여 설명된 인코딩 패스에 일반적으로 상호적인 디코딩 패스를 수행할 수도 있다.
디코딩 프로세스 동안, 비디오 디코더 (30) 는, 인코딩된 비디오 슬라이스의 비디오 블록들 및 관련 신택스 엘리먼트들을 나타내는 인코딩된 비디오 비트스트림을 비디오 인코더 (20) 로부터 수신한다. 비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (180) 은 비트스트림을 엔트로피 디코딩하여, 양자화된 계수들, 모션 벡터들, 다른 모션 정보 및 다른 신택스 엘리먼트들을 생성한다. 엔트로피 디코딩 유닛 (180) 은 모션 정보 및 다른 신택스 엘리먼트들을 예측 프로세싱 유닛 (181) 으로 포워딩한다. 예들로서, 비디오 디코더 (30) 는 신택스 엘리먼트들을 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨로 수신할 수도 있다. 비디오 디코더 (30) 는, 일부 경우들에 있어서, 비디오 디코더 (30) 에 의해 수신된 비트스트림으로부터 신택스 엘리먼트들을 추출할 수도 있다.
비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩된 경우, 예측 프로세싱 유닛 (181) 의 인트라 예측 프로세싱 유닛 (184) 은 현재 프레임 또는 픽처의 이전에 디코딩된 블록들로부터의 데이터 및 시그널링된 인트라 예측 모드에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 비디오 프레임이 인터-코딩된 (즉, B, P 또는 GPB) 슬라이스로서 코딩된 경우, 예측 프로세싱 유닛 (181) 의 모션 보상 유닛 (182) 은 엔트로피 디코딩 유닛 (180) 으로부터 수신된 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성한다. 예측 블록들은 레퍼런스 픽처 리스트들 중 하나 내에서의 레퍼런스 픽처들 중 하나로부터 생성될 수도 있다. 비디오 디코더 (30) 는 레퍼런스 픽처 메모리 (192) 에 저장된 레퍼런스 픽처들에 기초한 디폴트 구성 기술들을 이용하여 레퍼런스 픽처 리스트들, 즉, 리스트 0 및 리스트 1 을 구성할 수도 있다.
모션 보상 유닛 (182) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 그 예측 정보를 사용하여, 디코딩되는 현재 비디오 블록에 대한 예측 블록들을 생성한다. 예를 들어, 모션 보상 유닛 (182) 은 수신된 신택스 엘리먼트들 중 일부를 사용하여, 비디오 슬라이스의 비디오 블록들을 코딩하는데 사용되는 예측 모드 (예를 들어, 인트라-예측 또는 인터-예측), 인터-예측 슬라이스 타입 (예를 들어, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 대한 레퍼런스 픽처 리스트들 중 하나 이상에 대한 구성 정보, 슬라이스의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터-코딩된 비디오 블록에 대한 인터-예측 상태, 및 현재 비디오 슬라이스에 있어서의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정한다.
모션 보상 유닛 (182) 은 또한, 보간 필터들에 기초하여 보간을 수행할 수도 있다. 모션 보상 유닛 (182) 은 비디오 블록들의 인코딩 동안 비디오 인코더 (20) 에 의해 사용된 바와 같은 보간 필터들을 이용하여, 레퍼런스 블록들의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수도 있다. 이 경우, 모션 보상 유닛 (182) 은 수신된 신택스 엘리먼트들로부터 비디오 인코더 (20) 에 의해 사용된 보간 필터들을 결정하고, 보간 필터들을 이용하여 예측 블록들을 생성할 수도 있다.
역양자화 유닛 (186) 은 비트스트림에서 제공되고 엔트로피 디코딩 유닛 (180) 에 의해 디코딩되는 양자화된 변환 계수들을 역양자화, 즉, 양자화해제한다. 역양자화 프로세스는 비디오 슬라이스에 있어서의 각각의 비디오 블록에 대해 비디오 인코더 (20) 에 의해 계산된 양자화 파라미터의 이용을 포함하여, 적용되어야 하는 양자화의 정도 및 유사하게 역양자화의 정도를 결정할 수도 있다. 역변환 프로세싱 유닛 (188) 은 픽셀 도메인에서 잔차 블록들을 생성하기 위해, 역변환, 예를 들어, 역 DCT, 정수 역변환, 또는 개념적으로 유사한 역변환 프로세스를 변환 계수들에 적용한다.
모션 보상 유닛 (182) 이 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재 비디오 블록에 대한 예측 블록을 생성한 이후, 비디오 디코더 (30) 는 역변환 프로세싱 유닛 (188) 으로부터의 잔차 블록들을 모션 보상 유닛 (182) 에 의해 생성된 대응하는 예측 블록들과 합산함으로써 디코딩된 비디오 블록을 형성한다. 합산기 (190) 는 이러한 합산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 요구된다면, 디블로킹 필터가 또한, 블록키니스 아티팩트들을 제거하기 위해, 디코딩된 블록들을 필터링하는데 적용될 수도 있다. (코딩 루프에 있어서 또는 코딩 루프 이후에) 다른 루프 필터들이 또한 픽셀 천이들을 평활하게 하거나 그렇지 않으면 비디오 품질을 개선하기 위해 이용될 수도 있다. 그 후, 소정의 프레임 또는 픽처에 있어서의 디코딩된 비디오 블록들이 레퍼런스 픽처 메모리 (192) 에 저장되고, 이 레퍼런스 픽처 메모리는 후속적인 모션 보상을 위해 사용되는 레퍼런스 픽처들을 저장한다. 레퍼런스 픽처 메모리 (192) 는 또한, 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상으로의 더 나중의 프리젠테이션을 위해 디코딩된 비디오를 저장한다.
모션 보상 프로세스의 일부로서 예측 프로세싱 유닛 (181) 및/또는 모션 보상 유닛 (182) 에 의해 비디오 디코더 (30) 에서 수행될 수도 있는 모션 추정은 복수의 모션 정보 예측 모드들, 예를 들어, 병합 모드 및 AMVP 모드에 따른 모션 정보 예측을 포함할 수도 있다. 본 개시의 기술들에 따르면, 복수의 모션 정보 예측 모드들에 따른 모션 정보 예측은 공통 모션 정보 후보 리스트 구성 프로세스를 포함할 수도 있다. 일부 예들에 있어서, 예측 프로세싱 유닛 (181) 및/또는 모션 보상 유닛 (182) 은 모션 정보 예측 모드들 중 하나, 예를 들어, 병합 모드에 대한 리스트 구성 프로세스에 따라 모션 정보 후보 리스트를 생성할 수도 있으며, 이는 병합 모드 및 AMVP 모드 중 어느 하나에 따라 비디오 블록을 코딩할 경우에 사용될 수 있다.
예측 프로세싱 유닛 (181) 및/또는 모션 보상 유닛 (182) 은 비디오 인코더 (20) 에 의해 비트스트림에 포함된 신택스 엘리먼트들을 엔트로피 디코딩 유닛 (180) 으로부터 수신할 수도 있으며, 이는 현재 비디오 블록을 디코딩하기 위한 모션 정보를 나타낼 수도 있다. 본 개시의 기술들에 따르면, 예측 프로세싱 유닛 (181) 및/또는 모션 보상 유닛 (182) 은 비-4:2:0 크로마 포맷들에 대한 상이한 모션 정보 예측 모드들 중 임의의 모드에 의해 수행된 인터 예측을 위한 양방향 예측에 대한 제한들을 확장하거나 그렇지 않으면 변경할 수도 있다. 일반적으로, 예측 프로세싱 유닛 (181) 및/또는 모션 보상 유닛 (182) 은, 인터 예측을 위한 양방향 예측에 대한 제한들을 한정하거나 그렇지 않으면 변경하기 위해 본 명세서에서 설명된 기술들 중 임의의 기술 (예를 들어, 도 1, 도 5 내지 도 10 에 대하여 설명된 기술들 포함) 을 수행할 수도 있다.
도 5 는 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 상이한 컴포넌트들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다. 도 5 의 예시적인 방법에 따르면, 비디오 코더, 예를 들어, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는, 인터 예측 프로세스의 부분으로서, 비디오 블록의 파티션 타입에 따라 비디오 블록의 루마 컴포넌트를 파티셔닝한다 (200). 예를 들어, 비디오 블록은 2NxN 파티션 타입을 가질 수도 있으며, 비디오 코더는 루마 컴포넌트를 2개의 2NxN 예측 블록들로 파티셔닝할 수도 있다. 하지만, 비디오 코더는, 비디오 블록에 대한 파티션 타입과는 상이한 파티션 타입에 따라 비디오 블록의 적어도 하나의 크로마 컴포넌트를 파티셔닝한다 (202). 예를 들어, 비디오 블록은 2NxN 파티션 타입을 가질 수도 있으며, 비디오 코더는 비디오 블록의 Cb 및 Cr 컴포넌트 중 적어도 하나를 하나의 2Nx2N 예측 블록으로 파티셔닝할 수도 있다.
도 6 은 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다. 도 6 의 예시적인 방법에 따르면, 비디오 코더, 예를 들어, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는, 인터 예측 프로세스의 부분으로서, 제 1 레퍼런스 리스트에 대한 비트스트림에서 시그널링된 파티션 타입을 갖는 비디오 블록의 컴포넌트를 수신한다 (210). 양방향 예측이 명시되면 (212 의 "예" 브랜치), 비디오 코더는, 제 2 레퍼런스 리스트로부터의 예측자에 대응하고 그리고 제 1 레퍼런스 리스트에 대한 비트스트림에서 시그널링된 파티션 타입과는 상이한 파티션 타입에 따라 양방향 예측되는 비디오 블록을 파티셔닝한다 (214). 그 후, 비디오 코더는 제 1 및 제 2 레퍼런스 픽처 리스트들의 레퍼런스 픽처들의 개별 파티션들에 대한 대응하는 블록 영역들을 획득하고, 양?향 예측 및 대응하는 블록 영역들을 이용하여 인터-예측을 적용한다 (216). 양방향 예측이 명시되지 않으면 (212 의 "아니오" 브랜치), 비디오 코더는 단방향 예측을 이용하여 인터-예측을 적용한다 (218).
도 7 은 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다. 도 7 의 예시적인 방법에 따르면, 비디오 코더, 예를 들어, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는, 인터 예측 프로세스의 부분으로서, 비디오 블록에 대한 양방향 모션 벡터들을 획득한다 (220). 비디오 블록이 비-4:2:0 크로마 포맷에서 샘플링되고 비디오 블록이 8x8 이하 (예를 들어, 8x8, 8x4, 또는 4x8) 로 사이징되면 (222 및 224 의 "예" 브랜치들), 비디오 코더는 양방향 모션 벡터들을 단방향 모션 벡터로 변환하고 (226), 단방향 모션 벡터를 이용한 인터 예측을 적용하여 비디오 블록에 대한 예측자를 획득한다 (228). 비디오 블록이 8x8 보다 크게 사이징되거나 크로마 포맷이 4:2:0 이면 (222 및 224 의 "아니오" 브랜치들), 비디오 코더는 양방향 모션 벡터들을 이용하여 비디오 블록에 대한 예측자를 획득한다 (228).
도 8 은 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다. 도 8 의 예시적인 방법에 따르면, 비디오 코더, 예를 들어, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는, 인터 예측 프로세스의 부분으로서, 비디오 블록에 대한 양방향 모션 벡터들을 획득한다 (240). 비디오 블록이 비-4:2:0 크로마 포맷에서 샘플링되고 비디오 블록이 8x8 이하 (예를 들어, 8x8, 8x4, 또는 4x8) 로 사이징되면 (242 및 244 의 "예" 브랜치들), 비디오 코더는 루마 컴포넌트에 대해서가 아닌 오직 비디오 블록의 크로마 컴포넌트들 중 하나 또는 그 양자에 대해서만 양방향 모션 벡터들을 단방향 모션 벡터로 변환한다 (246). 변환된 벡터들을 갖는 컴포넌트들에 대해, 단방향 모션 벡터를 이용한 인터 예측을 적용하여 컴포넌트들에 대한 예측자를 획득한다 (248). 비디오 블록이 8x8 보다 크게 사이징되거나 크로마 포맷이 4:2:0 이면 (242 및 244 의 "아니오" 브랜치들), 비디오 코더는 양방향 모션 벡터들을 이용하여 비디오 블록에 대한 예측자를 획득한다 (248).
도 9 는 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다. 도 9 의 예시적인 방법에 따르면, 비디오 코더, 예를 들어, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는, 인터 예측 프로세스의 부분으로서, 비디오 블록에 대한 양방향 모션 벡터들을 획득한다 (250). 비디오 블록이 비-4:2:0 크로마 포맷에서 샘플링되고 비디오 블록이 8x8 이하 (예를 들어, 8x8, 8x4, 또는 4x8) 로 사이징되면 (252 및 254 의 "예" 브랜치들), 비디오 코더는 비디오 블록의 크로마 컴포넌트에 대해, 제 1 레퍼런스 픽처 리스트 (예를 들어, 리스트 0) 로부터의 양방향 모션 벡터들에 대한 제 1 예측자를 제 2 레퍼런스 픽처 리스트 (예를 들어, 리스트 1) 로부터의 제 2 예측자로 설정한다 (256).
비디오 코더는 크로마 블록에 대한 예측자를 획득 (258) 하기 위하여 제 1 및 제 2 예측자들을 개별 가중치들에 따라 가중함으로써 제 1 및 제 2 예측자들을 이용하여 양방향 인터 예측을 적용한다. 이러한 방식으로, 비디오 코더는 예측자를 도출하는데 필요한 픽셀들을 페치하기 위한 메모리 대역폭을 감소시킬 수도 있다.
도 10 은 메모리 대역폭 감소를 위해 본 명세서에서 설명된 기술들에 따른, 비디오 블록의 적어도 하나의 컴포넌트에 대한 양방향 예측을 위한 레퍼런스 리스트들의 예측 블록들을 상이하게 파티셔닝하는 것을 포함하는 예시적인 방법을 도시한 플로우 다이어그램이다. 도 10 의 예시적인 방법에 따르면, 비디오 코더, 예를 들어, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는, 인터 예측 프로세스의 부분으로서, 비디오 블록에 대한 양방향 모션 벡터들을 획득한다 (270). 비디오 블록의 사이즈 (예를 들어, HxW 또는 H+W) 가 구성가능 임계치를 초과하고 (272 의 "예" 브랜치) 비디오 블록에 대한 크로마 포맷이 4:2:0 이 아니면 (274 의 "예" 브랜치), 비디오 코더는 양방향 모션 벡터들을 단방향 모션 벡터로 변환한다 (276). 그 후, 비디오 코더는 인터 예측을 수행하여, 모션 벡터들의 수에 따라 비디오 블록에 대한 예측자를 획득한다 (예를 들어, 2개의 모션 벡터들에 대한 양방향 예측, 또는 변환된 모션 벡터에 대한 단방향 예측) (278).
하나 이상의 예들에 있어서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상으로 저장 또는 전송되고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체는, 예를 들어, 통신 프로토콜에 따라 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 데이터 저장 매체 또는 통신 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체를 포함할 수도 있다. 이러한 방식으로, 컴퓨터 판독가능 매체는 일반적으로 (1) 비-일시적인 유형의 컴퓨터 판독가능 저장 매체 또는 (2) 신호 또는 캐리어파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는 본 개시에서 설명된 기술들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 컴퓨터 프로그램 제품이 컴퓨터 판독가능 매체를 포함할 수도 있다.
한정이 아닌 예로서, 그러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장부 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 커넥션이 컴퓨터 판독가능 매체로 적절히 명명된다. 예를 들어, 동축 케이블, 광섬유 케이블, 꼬임쌍선, 디지털 가입자 라인 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신된다면, 동축 케이블, 광섬유 케이블, 꼬임쌍선, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다. 하지만, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 커넥션들, 캐리어파들, 신호들, 또는 다른 일시적 매체를 포함하지 않지만 대신 비-일시적인 유형의 저장 매체로 지향됨을 이해해야 한다. 본 명세서에서 사용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서, 디스크 (disk) 는 통상적으로 데이터를 자기적으로 재생하지만 디스크 (disc) 는 레이저들을 이용하여 데이터를 광학적으로 재생한다. 상기의 조합들이 또한, 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적된 또는 별도의 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 이에 따라, 본 명세서에서 사용된 바와 같은 용어 "프로세서" 는 본 명세서에서 설명된 기술들의 구현에 적합한 전술한 구조 또는 임의의 다른 구조 중 임의의 구조를 지칭할 수도 있다. 부가적으로, 일부 양태들에 있어서, 본 명세서에서 설명된 기능은 인코딩 및 디코딩을 위해 구성되거나 또는 결합된 코덱에서 통합된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 그 기술들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
본 개시의 기술들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예를 들어, 칩 세트) 를 포함하여 매우 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들 또는 유닛들이 개시된 기술들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하지는 않는다. 오히려, 상기 설명된 바와 같이, 다양한 유닛들은 적합한 소프트웨어 및/또는 펌웨어와 함께 상기 설명된 바와 같은 하나 이상의 프로세서들을 포함하여 코덱 하드웨어 유닛으로 결합되거나 상호운용식 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.
Claims (30)
- 비디오 데이터를 코딩하는 방법으로서,
비-4:2:0 크로마 포맷을 갖는 비디오 블록을 예측하기 위한 모션 벡터를 획득하는 단계;
상기 비디오 블록에 대한 비디오 블록 사이즈를 결정하는 단계;
상기 비디오 블록 사이즈가 사이즈 기준을 충족하면 상기 비디오 블록을 예측할 적어도 하나의 레퍼런스 픽처의 샘플들을 획득하기 위해 변경된 모션 벡터를 생성하도록 상기 모션 벡터를 변경하는 단계; 및
상기 적어도 하나의 레퍼런스 픽처의 샘플들 및 상기 변경된 모션 벡터를 이용하여 상기 비디오 블록에 대한 예측 블록을 생성하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 1 항에 있어서,
상기 비디오 블록 사이즈는, 상기 비디오 블록 사이즈가 4x8 또는 8x4 가 아니면 상기 사이즈 기준을 충족하는, 비디오 데이터를 코딩하는 방법. - 제 1 항에 있어서,
상기 비디오 블록에 대한 파티션 타입을 획득하는 단계;
상기 비디오 블록에 대한 상기 파티션 타입에 따라 상기 비디오 블록의 제 1 컴포넌트를 파티셔닝하는 단계; 및
상기 비디오 블록의 제 2 컴포넌트를, 상기 비디오 블록에 대한 상기 파티션 타입과는 상이한, 상기 제 2 컴포넌트에 대한 파티션 타입에 따라 파티셔닝하는 단계를 더 포함하고,
상기 모션 벡터를 변경하는 단계는 상기 비디오 블록의 상기 제 1 컴포넌트에 대한 모션 벡터에 적어도 기초하여 상기 비디오 블록의 상기 제 2 컴포넌트에 대한 모션 벡터를 생성하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 1 항에 있어서,
상기 모션 벡터는 상기 비디오 블록에 대한 양방향 모션 벡터들을 포함하고,
상기 모션 벡터를 변경하는 단계는 상기 양방향 모션 벡터들을 상기 비디오 블록에 대한 단방향 모션 벡터로 변환하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 1 항에 있어서,
상기 모션 벡터는 상기 비디오 블록의 복수의 컴포넌트들 각각에 대한 개별 양방향 모션 벡터들을 포함하고,
상기 모션 벡터를 변경하는 단계는 상기 비디오 블록의 상기 복수의 컴포넌트들 중 오직 제 1 컴포넌트에 대한 상기 양방향 모션 벡터들을 상기 제 1 컴포넌트에 대한 단방향 모션 벡터로 변환하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 1 항에 있어서,
상기 모션 벡터는 상기 비디오 블록에 대한 양방향 모션 벡터들을 포함하고,
상기 모션 벡터를 변경하는 단계는 상기 양방향 모션 벡터들을 단방향 모션 벡터로 변환하는 단계를 포함하고,
상기 비디오 블록에 대한 예측 블록을 생성하는 단계는 단방향 모션 벡터를, 상기 비디오 블록의 복수의 컴포넌트들 중 오직 전부보다는 적은 컴포넌트들에만 적용하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 1 항에 있어서,
상기 비디오 블록에 대한 제 1 예측자는 양방향 예측 시간 예측을 위한 제 1 모션 벡터를 포함하고, 상기 비디오 블록에 대한 제 2 예측자는 양방향 예측 시간 예측을 위한 제 2 모션 벡터를 포함하고,
상기 모션 벡터를 변경하는 단계는 상기 제 1 예측자를 상기 제 2 예측자로 설정하기 위해 상기 모션 벡터를 포함하는 모션 정보를 변경하는 단계를 포함하고,
상기 비디오 블록에 대한 예측 블록을 생성하는 단계는 상기 제 1 예측자 및 상기 제 2 예측자를 이용하여 양방향 예측을 적용하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 7 항에 있어서,
상기 제 1 예측자 및 상기 제 2 예측자를 이용하여 양방향 예측을 적용하는 단계는 상기 제 1 예측자에 제 1 가중치를 적용하고 상기 제 2 예측자에 제 2 가중치를 적용하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 1 항에 있어서,
상기 비디오 데이터를 코딩하는 것은 상기 비디오 데이터를 디코딩하는 것을 포함하고,
상기 비-4:2:0 크로마 포맷을 갖는 비디오 블록을 예측하기 위한 모션 벡터를 획득하는 단계는 상기 모션 벡터에 대한 모션 정보를 명시하는 하나 이상의 신택스 엘리먼트들을 비트스트림으로부터 추출하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 1 항에 있어서,
상기 비디오 데이터를 코딩하는 것은 상기 비디오 데이터를 인코딩하는 것을 포함하고,
상기 비-4:2:0 크로마 포맷을 갖는 비디오 블록을 예측하기 위한 모션 벡터를 획득하는 단계는 상기 비디오 블록에 대한 모션 벡터를 적어도 하나의 레퍼런스 블록으로부터 도출하고 비트스트림에 대한 하나 이상의 신택스 엘리먼트들에 상기 모션 벡터에 대한 모션 정보를 인코딩하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 비디오 데이터를 코딩하는 장치로서,
상기 장치는 비디오 코더를 포함하고,
상기 비디오 코더는,
비-4:2:0 크로마 포맷을 갖는 비디오 블록을 예측하기 위한 모션 벡터를 획득하고;
상기 비디오 블록에 대한 비디오 블록 사이즈를 결정하고;
상기 비디오 블록 사이즈가 사이즈 기준을 충족하면 상기 비디오 블록을 예측할 적어도 하나의 레퍼런스 픽처의 샘플들을 획득하기 위해 변경된 모션 벡터를 생성하도록 상기 모션 벡터를 변경하고; 그리고
상기 적어도 하나의 레퍼런스 픽처의 샘플들 및 상기 변경된 모션 벡터를 이용하여 상기 비디오 블록에 대한 예측 블록을 생성하도록
구성되는, 비디오 데이터를 코딩하는 장치. - 제 11 항에 있어서,
상기 비디오 블록 사이즈는, 상기 비디오 블록 사이즈가 4x8 또는 8x4 가 아니면 상기 사이즈 기준을 충족하는, 비디오 데이터를 코딩하는 장치. - 제 11 항에 있어서,
상기 비디오 코더는 추가로,
상기 비디오 블록에 대한 파티션 타입을 획득하고;
상기 비디오 블록에 대한 상기 파티션 타입에 따라 상기 비디오 블록의 제 1 컴포넌트를 파티셔닝하고; 그리고
상기 비디오 블록의 제 2 컴포넌트를, 상기 비디오 블록에 대한 상기 파티션 타입과는 상이한, 상기 제 2 컴포넌트에 대한 파티션 타입에 따라 파티셔닝하도록
구성되고,
상기 모션 벡터를 변경하기 위해, 상기 비디오 코더는 추가로, 상기 비디오 블록의 상기 제 1 컴포넌트에 대한 모션 벡터에 적어도 기초하여 상기 비디오 블록의 상기 제 2 컴포넌트에 대한 모션 벡터를 생성하도록 구성되는, 비디오 데이터를 코딩하는 장치. - 제 11 항에 있어서,
상기 모션 벡터는 상기 비디오 블록에 대한 양방향 모션 벡터들을 포함하고,
상기 모션 벡터를 변경하기 위해, 상기 비디오 코더는 추가로, 상기 양방향 모션 벡터들을 상기 비디오 블록에 대한 단방향 모션 벡터로 변환하도록 구성되는, 비디오 데이터를 코딩하는 장치. - 제 11 항에 있어서,
상기 모션 벡터는 상기 비디오 블록의 복수의 컴포넌트들 각각에 대한 개별 양방향 모션 벡터들을 포함하고,
상기 모션 벡터를 변경하기 위해, 상기 비디오 코더는 추가로, 상기 비디오 블록의 상기 복수의 컴포넌트들 중 오직 제 1 컴포넌트에 대한 상기 양방향 모션 벡터들을 상기 제 1 컴포넌트에 대한 단방향 모션 벡터로 변환하도록 구성되는, 비디오 데이터를 코딩하는 장치. - 제 11 항에 있어서,
상기 모션 벡터는 상기 비디오 블록에 대한 양방향 모션 벡터들을 포함하고,
상기 모션 벡터를 변경하기 위해, 상기 비디오 코더는 추가로, 상기 양방향 모션 벡터들을 단방향 모션 벡터로 변환하도록 구성되며,
상기 비디오 블록에 대한 예측 블록을 생성하기 위해, 상기 비디오 코더는 추가로, 단방향 모션 벡터를, 상기 비디오 블록의 복수의 컴포넌트들 중 오직 전부보다는 적은 컴포넌트들에만 적용하도록 구성되는, 비디오 데이터를 코딩하는 장치. - 제 11 항에 있어서,
상기 비디오 블록에 대한 제 1 예측자는 양방향 예측 시간 예측을 위한 제 1 모션 벡터를 포함하고, 상기 비디오 블록에 대한 제 2 예측자는 양방향 예측 시간 예측을 위한 제 2 모션 벡터를 포함하고,
상기 모션 벡터를 변경하기 위해, 상기 비디오 코더는 추가로, 상기 제 1 예측자를 상기 제 2 예측자로 설정하기 위해 상기 모션 벡터를 포함하는 모션 정보를 변경하도록 구성되며,
상기 비디오 블록에 대한 예측 블록을 생성하기 위해, 상기 비디오 코더는 추가로, 상기 제 1 예측자 및 상기 제 2 예측자를 이용하여 양방향 예측을 적용하도록 구성되는, 비디오 데이터를 코딩하는 장치. - 제 17 항에 있어서,
상기 제 1 예측자 및 상기 제 2 예측자를 이용하여 양방향 예측을 적용하기 위해, 상기 비디오 코더는 추가로, 상기 제 1 예측자에 제 1 가중치를 적용하고 상기 제 2 예측자에 제 2 가중치를 적용하도록 구성되는, 비디오 데이터를 코딩하는 장치. - 제 11 항에 있어서,
상기 비디오 코더는 상기 비디오 데이터를 디코딩하도록 구성된 비디오 디코더를 포함하고,
상기 비-4:2:0 크로마 포맷을 갖는 비디오 블록을 예측하기 위한 모션 벡터를 획득하기 위해, 상기 비디오 디코더는, 상기 모션 벡터에 대한 모션 정보를 명시하는 하나 이상의 신택스 엘리먼트들을 비트스트림으로부터 추출하도록 구성되는, 비디오 데이터를 코딩하는 장치. - 제 11 항에 있어서,
상기 비디오 코더는 상기 비디오 데이터를 인코딩하도록 구성된 비디오 인코더를 포함하고,
상기 비-4:2:0 크로마 포맷을 갖는 비디오 블록을 예측하기 위한 모션 벡터를 획득하기 위해, 상기 비디오 인코더는, 상기 비디오 블록에 대한 모션 벡터를 적어도 하나의 레퍼런스 블록으로부터 도출하고 비트스트림에 대한 하나 이상의 신택스 엘리먼트들에 상기 모션 벡터에 대한 모션 정보를 인코딩하도록 구성되는, 비디오 데이터를 코딩하는 장치. - 비디오 데이터를 코딩하는 장치로서,
비-4:2:0 크로마 포맷을 갖는 비디오 블록을 예측하기 위한 모션 벡터를 획득하는 수단;
상기 비디오 블록에 대한 비디오 블록 사이즈를 결정하는 수단;
상기 비디오 블록 사이즈가 사이즈 기준을 충족하면 상기 비디오 블록을 예측할 적어도 하나의 레퍼런스 픽처의 샘플들을 획득하기 위해 변경된 모션 벡터를 생성하도록 상기 모션 벡터를 변경하는 수단; 및
상기 적어도 하나의 레퍼런스 픽처의 샘플들 및 상기 변경된 모션 벡터를 이용하여 상기 비디오 블록에 대한 예측 블록을 생성하는 수단을 포함하는, 비디오 데이터를 코딩하는 장치. - 제 21 항에 있어서,
상기 비디오 블록 사이즈는, 상기 비디오 블록 사이즈가 4x8 또는 8x4 가 아니면 상기 사이즈 기준을 충족하는, 비디오 데이터를 코딩하는 장치. - 제 21 항에 있어서,
상기 비디오 블록에 대한 파티션 타입을 획득하는 수단;
상기 비디오 블록에 대한 상기 파티션 타입에 따라 상기 비디오 블록의 제 1 컴포넌트를 파티셔닝하는 수단; 및
상기 비디오 블록의 제 2 컴포넌트를, 상기 비디오 블록에 대한 상기 파티션 타입과는 상이한, 상기 제 2 컴포넌트에 대한 파티션 타입에 따라 파티셔닝하는 수단을 더 포함하고,
상기 모션 벡터를 변경하는 수단은 상기 비디오 블록의 상기 제 1 컴포넌트에 대한 모션 벡터에 적어도 기초하여 상기 비디오 블록의 상기 제 2 컴포넌트에 대한 모션 벡터를 생성하는 수단을 포함하는, 비디오 데이터를 코딩하는 장치. - 제 21 항에 있어서,
상기 모션 벡터는 상기 비디오 블록의 복수의 컴포넌트들 각각에 대한 개별 양방향 모션 벡터들을 포함하고,
상기 모션 벡터를 변경하는 수단은 상기 비디오 블록의 상기 복수의 컴포넌트들 중 오직 제 1 컴포넌트에 대한 상기 양방향 모션 벡터들을 상기 제 1 컴포넌트에 대한 단방향 모션 벡터로 변환하는 수단을 포함하는, 비디오 데이터를 코딩하는 장치. - 제 21 항에 있어서,
상기 모션 벡터는 상기 비디오 블록에 대한 양방향 모션 벡터들을 포함하고,
상기 모션 벡터를 변경하는 수단은 상기 양방향 모션 벡터들을 단방향 모션 벡터로 변환하는 것을 포함하고,
상기 비디오 블록에 대한 예측 블록을 생성하는 수단은 단방향 모션 벡터를, 상기 비디오 블록의 복수의 컴포넌트들 중 오직 전부보다는 적은 컴포넌트들에만 적용하는 수단을 포함하는, 비디오 데이터를 코딩하는 장치. - 제 21 항에 있어서,
상기 비디오 블록에 대한 제 1 예측자는 양방향 예측 시간 예측을 위한 제 1 모션 벡터를 포함하고, 상기 비디오 블록에 대한 제 2 예측자는 양방향 예측 시간 예측을 위한 제 2 모션 벡터를 포함하고,
상기 모션 벡터를 변경하는 수단은 상기 제 1 예측자를 상기 제 2 예측자로 설정하기 위해 상기 모션 벡터를 포함하는 모션 정보를 변경하는 수단을 포함하며,
상기 비디오 블록에 대한 예측 블록을 생성하는 수단은 상기 제 1 예측자 및 상기 제 2 예측자를 이용하여 양방향 예측을 적용하는 수단을 포함하는, 비디오 데이터를 코딩하는 장치. - 명령들이 저장된 컴퓨터 판독가능 저장 매체로서,
상기 명령들은, 실행될 경우, 비디오 데이터를 코딩하는 장치의 하나 이상의 프로세서들로 하여금
비-4:2:0 크로마 포맷을 갖는 비디오 블록을 예측하기 위한 모션 벡터를 획득하게 하고;
상기 비디오 블록에 대한 비디오 블록 사이즈를 결정하게 하고;
상기 비디오 블록 사이즈가 사이즈 기준을 충족하면 상기 비디오 블록을 예측할 적어도 하나의 레퍼런스 픽처의 샘플들을 획득하기 위해 변경된 모션 벡터를 생성하도록 상기 모션 벡터를 변경하게 하고; 그리고
상기 적어도 하나의 레퍼런스 픽처의 샘플들 및 상기 변경된 모션 벡터를 이용하여 상기 비디오 블록에 대한 예측 블록을 생성하게 하는, 컴퓨터 판독가능 저장 매체. - 제 27 항에 있어서,
상기 비디오 블록 사이즈는, 상기 비디오 블록 사이즈가 4x8 또는 8x4 가 아니면 상기 사이즈 기준을 충족하는, 컴퓨터 판독가능 저장 매체. - 제 27 항에 있어서,
실행될 경우, 상기 하나 이상의 프로세서들로 하여금,
상기 비디오 블록에 대한 파티션 타입을 획득하게 하고;
상기 비디오 블록에 대한 상기 파티션 타입에 따라 상기 비디오 블록의 제 1 컴포넌트를 파티셔닝하게 하고; 그리고
상기 비디오 블록의 제 2 컴포넌트를, 상기 비디오 블록에 대한 상기 파티션 타입과는 상이한, 상기 제 2 컴포넌트에 대한 파티션 타입에 따라 파티셔닝하게 하는
명령들을 더 포함하고,
상기 모션 벡터를 변경하기 위해, 상기 명령들은 상기 하나 이상의 프로세서들로 하여금 상기 비디오 블록의 상기 제 1 컴포넌트에 대한 모션 벡터에 적어도 기초하여 상기 비디오 블록의 상기 제 2 컴포넌트에 대한 모션 벡터를 생성하게 하는, 컴퓨터 판독가능 저장 매체. - 제 27 항에 있어서,
상기 모션 벡터는 상기 비디오 블록의 복수의 컴포넌트들 각각에 대한 개별 양방향 모션 벡터들을 포함하고,
상기 모션 벡터를 변경하기 위해, 상기 명령들은 상기 하나 이상의 프로세서들로 하여금 상기 비디오 블록의 상기 복수의 컴포넌트들 중 오직 제 1 컴포넌트에 대한 상기 양방향 모션 벡터들을 상기 제 1 컴포넌트에 대한 단방향 모션 벡터로 변환하게 하는, 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361806700P | 2013-03-29 | 2013-03-29 | |
US61/806,700 | 2013-03-29 | ||
US201361808479P | 2013-04-04 | 2013-04-04 | |
US61/808,479 | 2013-04-04 | ||
US14/227,839 | 2014-03-27 | ||
US14/227,839 US9491460B2 (en) | 2013-03-29 | 2014-03-27 | Bandwidth reduction for video coding prediction |
PCT/US2014/032180 WO2014160943A1 (en) | 2013-03-29 | 2014-03-28 | Memory reduction for video coding prediction |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150139881A true KR20150139881A (ko) | 2015-12-14 |
Family
ID=51620836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157030968A KR20150139881A (ko) | 2013-03-29 | 2014-03-28 | 비디오 코딩 예측에 대한 메모리 감소 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9491460B2 (ko) |
EP (1) | EP2979448B1 (ko) |
JP (1) | JP6342477B2 (ko) |
KR (1) | KR20150139881A (ko) |
CN (1) | CN105075259B (ko) |
WO (1) | WO2014160943A1 (ko) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180005121A (ko) * | 2016-07-05 | 2018-01-15 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
KR20180005120A (ko) * | 2016-07-05 | 2018-01-15 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
KR20180005119A (ko) * | 2016-07-05 | 2018-01-15 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
WO2018062892A1 (ko) * | 2016-09-28 | 2018-04-05 | 엘지전자(주) | 가중치 인덱스에 기초하여 최적의 예측을 수행하는 방법 및 장치 |
US11575917B2 (en) | 2019-04-19 | 2023-02-07 | Tencent America LLC | Method and apparatus for video coding |
Families Citing this family (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2934221T3 (es) * | 2010-12-22 | 2023-02-20 | Lg Electronics Inc | Método de intrapredicción y aparato que utiliza el método |
EP3754982B1 (en) | 2011-09-29 | 2024-05-01 | SHARP Kabushiki Kaisha | Image decoding device, image decoding method, image encoding method and image encoding device for performing bi-prediction to uni-prediction conversion |
KR102424431B1 (ko) * | 2012-07-02 | 2022-07-22 | 엘지전자 주식회사 | 영상 정보 코딩 방법 및 이를 이용하는 장치 |
US9213781B1 (en) | 2012-09-19 | 2015-12-15 | Placemeter LLC | System and method for processing image data |
CN111193930B (zh) * | 2013-12-16 | 2021-11-30 | 浙江大学 | 一种前向双假设编码图像块的编解码方法和装置 |
EP3085085A4 (en) * | 2014-01-29 | 2017-11-08 | MediaTek Inc. | Method and apparatus for adaptive motion vector precision |
JP2017525064A (ja) | 2014-05-30 | 2017-08-31 | プレイスメーター インコーポレイテッドPlacemeter Inc. | ビデオデータを用いた活動モニタリングのためのシステム及び方法 |
CN107809642B (zh) | 2015-02-16 | 2020-06-16 | 华为技术有限公司 | 用于视频图像编码和解码的方法、编码设备和解码设备 |
US10043078B2 (en) | 2015-04-21 | 2018-08-07 | Placemeter LLC | Virtual turnstile system and method |
US11334751B2 (en) | 2015-04-21 | 2022-05-17 | Placemeter Inc. | Systems and methods for processing video data for activity monitoring |
US11100335B2 (en) | 2016-03-23 | 2021-08-24 | Placemeter, Inc. | Method for queue time estimation |
US11509930B2 (en) * | 2016-07-12 | 2022-11-22 | Electronics And Telecommunications Research Institute | Image encoding/decoding method and recording medium therefor |
CN116708785A (zh) * | 2016-07-12 | 2023-09-05 | 韩国电子通信研究院 | 图像编码/解码方法以及用于该方法的记录介质 |
EP3306937A1 (en) * | 2016-10-05 | 2018-04-11 | Thomson Licensing | Method and apparatus for encoding and decoding a video |
US10750203B2 (en) | 2016-12-22 | 2020-08-18 | Mediatek Inc. | Method and apparatus of adaptive bi-prediction for video coding |
US10262393B2 (en) * | 2016-12-29 | 2019-04-16 | Intel Corporation | Multi-sample anti-aliasing (MSAA) memory bandwidth reduction for sparse sample per pixel utilization |
WO2018131986A1 (ko) * | 2017-01-16 | 2018-07-19 | 세종대학교 산학협력단 | 영상의 부호화/복호화 방법 및 장치 |
US10701366B2 (en) * | 2017-02-21 | 2020-06-30 | Qualcomm Incorporated | Deriving motion vector information at a video decoder |
TWI761552B (zh) * | 2017-07-13 | 2022-04-21 | 美商松下電器(美國)知識產權公司 | 編碼裝置、編碼方法、解碼裝置及解碼方法 |
JP6825506B2 (ja) * | 2017-07-19 | 2021-02-03 | 富士通株式会社 | 動画像符号化装置、動画像符号化方法、動画像符号化用コンピュータプログラム、動画像復号装置及び動画像復号方法ならびに動画像復号用コンピュータプログラム |
US10609384B2 (en) * | 2017-09-21 | 2020-03-31 | Futurewei Technologies, Inc. | Restriction on sub-block size derivation for affine inter prediction |
EP3739885A4 (en) * | 2018-01-09 | 2021-10-27 | Sharp Kabushiki Kaisha | DEVICE FOR DERIVING MOTION VECTORS, DECODING DEVICE FOR MOVING PICTURES, AND CODING DEVICE FOR MOVING PICTURES |
WO2019234606A1 (en) | 2018-06-05 | 2019-12-12 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between ibc and atmvp |
WO2019244118A1 (en) | 2018-06-21 | 2019-12-26 | Beijing Bytedance Network Technology Co., Ltd. | Component-dependent sub-block dividing |
CN110636298B (zh) | 2018-06-21 | 2022-09-13 | 北京字节跳动网络技术有限公司 | 对于Merge仿射模式和非Merge仿射模式的统一约束 |
MX2020012688A (es) * | 2018-06-27 | 2021-02-15 | Kt Corp | Metodo y aparato para procesar se?ales de video. |
MX2021000129A (es) * | 2018-06-27 | 2021-03-25 | Vid Scale Inc | Métodos y aparato para reducir la latencia de codificación del refinamiento de movimiento lateral de decodificador. |
WO2020010089A1 (en) * | 2018-07-06 | 2020-01-09 | Op Solutions, Llc | Bi-prediction with adaptive weights |
CN110719479B (zh) * | 2018-07-15 | 2023-01-10 | 北京字节跳动网络技术有限公司 | 跨分量编码信息导出 |
US11277628B2 (en) * | 2018-09-24 | 2022-03-15 | Qualcomm Incorporated | Restrictions for the worst-case bandwidth reduction in video coding |
CN117768651A (zh) | 2018-09-24 | 2024-03-26 | 北京字节跳动网络技术有限公司 | 处理视频数据的方法、装置、介质、以及比特流存储方法 |
CA3141117A1 (en) | 2018-09-25 | 2020-04-02 | Digitalinsights Inc. | Method and device for encoding or decoding image on basis of inter mode |
WO2020084475A1 (en) | 2018-10-22 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Utilization of refined motion vector |
CN113056917B (zh) | 2018-11-06 | 2024-02-06 | 北京字节跳动网络技术有限公司 | 为视频处理使用具有几何分割的帧间预测 |
WO2020094150A1 (en) * | 2018-11-10 | 2020-05-14 | Beijing Bytedance Network Technology Co., Ltd. | Rounding in current picture referencing |
CN111436227B (zh) | 2018-11-12 | 2024-03-29 | 北京字节跳动网络技术有限公司 | 在视频处理中使用组合帧间-帧内预测 |
JP7241870B2 (ja) | 2018-11-20 | 2023-03-17 | 北京字節跳動網絡技術有限公司 | 部分的な位置に基づく差分計算 |
EP4325849A3 (en) | 2018-11-22 | 2024-04-17 | Beijing Bytedance Network Technology Co., Ltd. | Coordination method for sub-block based inter prediction |
BR112021009666A2 (pt) * | 2018-11-22 | 2021-08-17 | Beijing Bytedance Network Technology Co., Ltd. | método para processar vídeo, aparelho em um sistema de vídeo, e, produto de programa de computador |
KR20210113188A (ko) * | 2018-12-21 | 2021-09-15 | 브이아이디 스케일, 인크. | 템플릿 기반 비디오 코딩을 위한 개선된 선형 모델 추정에 관한 방법들, 아키텍처들, 장치들 및 시스템들 |
WO2020140862A1 (en) | 2018-12-30 | 2020-07-09 | Beijing Bytedance Network Technology Co., Ltd. | Conditional application of inter prediction with geometric partitioning in video processing |
CN113475078A (zh) * | 2019-01-08 | 2021-10-01 | 腾讯美国有限责任公司 | 用于小帧间块的存储器带宽减小的方法和装置 |
CN113424528A (zh) | 2019-02-01 | 2021-09-21 | 北京字节跳动网络技术有限公司 | 环路整形和块差分脉冲编解码调制之间的相互作用 |
EP3900362A4 (en) | 2019-02-01 | 2022-03-02 | Beijing Bytedance Network Technology Co., Ltd. | SIGNALING LOOP SHAPED INFORMATION USING PARAMETER SETS |
WO2020156540A1 (en) * | 2019-02-02 | 2020-08-06 | Beijing Bytedance Network Technology Co., Ltd. | Buffer management for intra block copy in video coding |
KR20210123300A (ko) | 2019-02-02 | 2021-10-13 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 비디오 코딩에서 인트라 블록 복사를 위한 버퍼 관리 |
KR102688366B1 (ko) | 2019-03-01 | 2024-07-24 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 비디오 코딩에서 인트라 블록 복사를 위한 방향 기반 예측 |
WO2020177662A1 (en) | 2019-03-01 | 2020-09-10 | Beijing Bytedance Network Technology Co., Ltd. | Implementation aspects in intra block copy in video coding |
KR20210125506A (ko) | 2019-03-04 | 2021-10-18 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 비디오 코딩에서 인트라 블록 복사를 위한 버퍼 관리 |
EP3915259A4 (en) * | 2019-03-06 | 2022-03-30 | Beijing Bytedance Network Technology Co., Ltd. | USE OF A CONVERTED UNIVERSITY PREDICTION CANDIDATE |
KR20210076125A (ko) * | 2019-03-12 | 2021-06-23 | 텐센트 아메리카 엘엘씨 | 비디오 인코딩 또는 디코딩을 위한 방법 및 장치 |
CN116320484A (zh) * | 2019-03-13 | 2023-06-23 | 北京大学 | 视频处理方法和设备 |
CN113574889B (zh) | 2019-03-14 | 2024-01-12 | 北京字节跳动网络技术有限公司 | 环路整形信息的信令和语法 |
CN113632476B (zh) | 2019-03-23 | 2024-03-19 | 北京字节跳动网络技术有限公司 | 默认的环内整形参数 |
JP7325540B2 (ja) * | 2019-05-10 | 2023-08-14 | フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | ブロックベース予測 |
CN117294841A (zh) | 2019-07-06 | 2023-12-26 | 北京字节跳动网络技术有限公司 | 用于视频编解码中的帧内块复制的虚拟预测缓冲 |
JP7359934B2 (ja) | 2019-07-10 | 2023-10-11 | 北京字節跳動網絡技術有限公司 | 映像符号化におけるイントラブロックコピーのためのサンプル識別 |
EP3981146A4 (en) | 2019-07-11 | 2022-08-03 | Beijing Bytedance Network Technology Co., Ltd. | BITSTREAM CONFORMITY RESTRICTIONS FOR INTRA-BLOCK COPY IN VIDEO ENCODING |
KR20220043109A (ko) | 2019-08-13 | 2022-04-05 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 서브 블록 기반 인터 예측의 모션 정밀도 |
WO2021027862A1 (en) * | 2019-08-13 | 2021-02-18 | Beijing Bytedance Network Technology Co., Ltd. | Motion precision in sub-block based inter prediction |
CN117714683A (zh) | 2019-09-02 | 2024-03-15 | 北京字节跳动网络技术有限公司 | 基于色彩格式的视频区分割 |
CN114424553A (zh) | 2019-09-22 | 2022-04-29 | 北京字节跳动网络技术有限公司 | 基于子块的帧间预测的缩放方法 |
JP2023506877A (ja) * | 2019-12-20 | 2023-02-20 | フラウンホッファー-ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ | 基準画像リサンプリングのための部分サンプル補間 |
US11546592B2 (en) | 2020-01-08 | 2023-01-03 | Tencent America LLC | Flexible block partitioning for chroma component |
CN115428455A (zh) * | 2020-03-31 | 2022-12-02 | 阿里巴巴集团控股有限公司 | 调色板预测方法 |
US20220286675A1 (en) * | 2021-03-05 | 2022-09-08 | Tencent America LLC | Decoupled transform partitioning |
US11838498B2 (en) * | 2021-06-28 | 2023-12-05 | Tencent America LLC | Harmonized design for intra bi-prediction and multiple reference line selection |
US20230336748A1 (en) * | 2022-04-19 | 2023-10-19 | Tencent America LLC | Chroma from luma prediction using mapping and different types |
US20240031566A1 (en) * | 2022-07-20 | 2024-01-25 | Tencent America LLC | Signaling of downsampling filters for chroma from luma intra prediction mode |
US20240179304A1 (en) * | 2022-11-29 | 2024-05-30 | Tencent America LLC | Systems and methods for signaling of downsampling filters for chroma from luma intra prediction mode |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7602851B2 (en) * | 2003-07-18 | 2009-10-13 | Microsoft Corporation | Intelligent differential quantization of video coding |
KR100716791B1 (ko) * | 2005-08-08 | 2007-05-14 | 삼성전기주식회사 | 이미지 압축디바이스 및 그 방법 |
JP4763549B2 (ja) * | 2006-08-18 | 2011-08-31 | 富士通セミコンダクター株式会社 | フレーム間予測処理装置、画像符号化装置、及び画像復号化装置 |
US7545293B2 (en) * | 2006-11-14 | 2009-06-09 | Qualcomm Incorporated | Memory efficient coding of variable length codes |
US8432968B2 (en) * | 2007-10-15 | 2013-04-30 | Qualcomm Incorporated | Scalable video coding techniques for scalable bitdepths |
BRPI0910477A2 (pt) * | 2008-04-11 | 2015-09-29 | Thomson Licensing | método e equipamento para predição de equiparação de gabarito (tmp) na codificação e decodificação de vídeo |
US20110002391A1 (en) * | 2009-06-11 | 2011-01-06 | Motorola, Inc. | Digital image compression by resolution-adaptive macroblock coding |
JP5234368B2 (ja) * | 2009-09-30 | 2013-07-10 | ソニー株式会社 | 画像処理装置および方法 |
US20110274162A1 (en) * | 2010-05-04 | 2011-11-10 | Minhua Zhou | Coding Unit Quantization Parameters in Video Coding |
EP2559005B1 (en) * | 2010-04-13 | 2015-11-04 | GE Video Compression, LLC | Inheritance in sample array multitree subdivision |
US9300970B2 (en) * | 2010-07-09 | 2016-03-29 | Samsung Electronics Co., Ltd. | Methods and apparatuses for encoding and decoding motion vector |
US9357229B2 (en) * | 2010-07-28 | 2016-05-31 | Qualcomm Incorporated | Coding motion vectors in video coding |
US9008175B2 (en) * | 2010-10-01 | 2015-04-14 | Qualcomm Incorporated | Intra smoothing filter for video coding |
US9288496B2 (en) * | 2010-12-03 | 2016-03-15 | Qualcomm Incorporated | Video coding using function-based scan order for transform coefficients |
GB2488815C (en) * | 2011-03-09 | 2018-03-28 | Canon Kk | Video decoding |
US11184623B2 (en) * | 2011-09-26 | 2021-11-23 | Texas Instruments Incorporated | Method and system for lossless coding mode in video coding |
JP2013102305A (ja) * | 2011-11-07 | 2013-05-23 | Nippon Hoso Kyokai <Nhk> | 画像復号装置、画像復号方法、プログラム及び画像符号化装置 |
CN104067621B (zh) * | 2011-11-07 | 2018-03-27 | Vid拓展公司 | 使用偶数‑奇数整数变换后台的视频和数据处理的设备和方法 |
US9253487B2 (en) * | 2012-05-31 | 2016-02-02 | Qualcomm Incorporated | Reference index for enhancement layer in scalable video coding |
US9906786B2 (en) * | 2012-09-07 | 2018-02-27 | Qualcomm Incorporated | Weighted prediction mode for scalable video coding |
-
2014
- 2014-03-27 US US14/227,839 patent/US9491460B2/en active Active
- 2014-03-28 WO PCT/US2014/032180 patent/WO2014160943A1/en active Application Filing
- 2014-03-28 EP EP14727284.3A patent/EP2979448B1/en not_active Not-in-force
- 2014-03-28 KR KR1020157030968A patent/KR20150139881A/ko not_active Application Discontinuation
- 2014-03-28 JP JP2016505592A patent/JP6342477B2/ja active Active
- 2014-03-28 CN CN201480018167.9A patent/CN105075259B/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180005121A (ko) * | 2016-07-05 | 2018-01-15 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
KR20180005120A (ko) * | 2016-07-05 | 2018-01-15 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
KR20180005119A (ko) * | 2016-07-05 | 2018-01-15 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
US11394988B2 (en) | 2016-07-05 | 2022-07-19 | Kt Corporation | Method and apparatus for processing video signal |
US11743481B2 (en) | 2016-07-05 | 2023-08-29 | Kt Corporation | Method and apparatus for processing video signal |
US11805255B2 (en) | 2016-07-05 | 2023-10-31 | Kt Corporation | Method and apparatus for processing video signal |
US11876999B2 (en) | 2016-07-05 | 2024-01-16 | Kt Corporation | Method and apparatus for processing video signal |
WO2018062892A1 (ko) * | 2016-09-28 | 2018-04-05 | 엘지전자(주) | 가중치 인덱스에 기초하여 최적의 예측을 수행하는 방법 및 장치 |
US10880552B2 (en) | 2016-09-28 | 2020-12-29 | Lg Electronics Inc. | Method and apparatus for performing optimal prediction based on weight index |
US11575917B2 (en) | 2019-04-19 | 2023-02-07 | Tencent America LLC | Method and apparatus for video coding |
US12075068B2 (en) | 2019-04-19 | 2024-08-27 | Tencent America LLC | Conditions for applying DMVR/BDOF |
Also Published As
Publication number | Publication date |
---|---|
US9491460B2 (en) | 2016-11-08 |
CN105075259A (zh) | 2015-11-18 |
EP2979448B1 (en) | 2018-07-04 |
EP2979448A1 (en) | 2016-02-03 |
CN105075259B (zh) | 2018-10-12 |
JP2016518052A (ja) | 2016-06-20 |
JP6342477B2 (ja) | 2018-06-13 |
WO2014160943A1 (en) | 2014-10-02 |
US20140294078A1 (en) | 2014-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10771811B2 (en) | Overlapped motion compensation for video coding | |
CN111164973B (zh) | 译码用于视频译码的仿射预测运动信息 | |
US9491460B2 (en) | Bandwidth reduction for video coding prediction | |
CN113812148B (zh) | 用于视频译码的参考图片重采样和帧间译码工具 | |
JP7211816B2 (ja) | イントラブロックコピーマージモードおよび利用できないibc参照領域のパディング | |
CN107690810B (zh) | 确定用于视频译码的照明补偿状态的系统及方法 | |
CN107710764B (zh) | 确定用于视频译码的照明补偿状态的系统及方法 | |
CN110393009B (zh) | 帧内预测模式传播 | |
JP7504925B2 (ja) | ビデオコーディングのための組み合わされたインターおよびイントラ予測モード | |
EP3849182B1 (en) | Restriction of prediction units in b slices to uni-directional inter prediction | |
JP5989794B2 (ja) | 適応型重複ブロック動き補償 | |
KR20210068439A (ko) | 히스토리 기반 모션 벡터 예측자에 대한 개선들 | |
US20150071357A1 (en) | Partial intra block copying for video coding | |
CN111213376A (zh) | 使用基于编码结构的候选列表构建对视频数据的运动信息进行编码 | |
KR20170131448A (ko) | 비디오 코딩에서의 서브-블록들에 대한 모션 정보 유도 | |
WO2018129539A1 (en) | Encoding optimization with illumination compensation and integer motion vector restriction | |
JP2015510358A (ja) | Bスライス中の予測単位の単方向インター予測への制限 | |
WO2013155274A1 (en) | Bandwidth reduction in video coding through applying the same reference index | |
KR102449889B1 (ko) | 비디오 코딩을 위한 서브-블록 시간적 움직임 벡터 예측 | |
KR102723082B1 (ko) | 비디오 코딩을 위한 중첩 모션 보상 | |
WO2023158765A1 (en) | Methods and devices for geometric partitioning mode split modes reordering with pre-defined modes order |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |