KR102191846B1 - 비디오 인코딩 및 디코딩 - Google Patents
비디오 인코딩 및 디코딩 Download PDFInfo
- Publication number
- KR102191846B1 KR102191846B1 KR1020197007461A KR20197007461A KR102191846B1 KR 102191846 B1 KR102191846 B1 KR 102191846B1 KR 1020197007461 A KR1020197007461 A KR 1020197007461A KR 20197007461 A KR20197007461 A KR 20197007461A KR 102191846 B1 KR102191846 B1 KR 102191846B1
- Authority
- KR
- South Korea
- Prior art keywords
- motion vector
- vector component
- picture
- prediction
- precision
- 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/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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- 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/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
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- 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/537—Motion estimation other than block-based
- H04N19/54—Motion estimation other than block-based using feature points or meshes
-
- 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/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 인코딩 및 디코딩을 위한 다양한 방법, 장치 및 컴퓨터 프로그램 제품이 개시된다. 인코딩을 위한 몇몇 실시형태에서, 모션 예측을 위한 샘플의 블록이 획득된다(900). 샘플의 블록에 대한 적어도 하나의 병진 기본 모션 벡터 성분은, 병진 기본 모션 벡터 성분에 대한 예측을 정의하는 것에 의해 계산된다(902, 904). 제1 정밀도를 사용하는 제1 차분 모션 벡터 성분이 정의된다(906). 제1 차분 모션 벡터 성분은 병진 기본 모션 벡터 성분에 대한 예측에 가산된다. 적어도 하나의 고차 모션 벡터 성분은, 고차 모션 벡터 성분에 대한 예측을 정의하는 것(908) 및 제1 정밀도와는 상이한 제2 정밀도를 사용하여 제2 차분 모션 벡터 성분을 정의하는 것(910)에 의해 계산된다. 제2 차분 모션 벡터 성분은 고차 모션 벡터 성분에 대한 예측에 가산된다. 모션 보상 동작은, 적어도 하나의 병진 기본 모션 벡터 성분 및 적어도 하나의 차분 모션 벡터 성분을 사용하여 샘플의 블록에 대해 수행된다(912, 914).
Description
본 출원은 일반적으로 미디어 프리젠테이션(media presentations)의 인코딩 및 디코딩에 관한 것이다.
이 섹션은 청구범위에서 열거되는 본 발명의 배경 또는 컨텍스트를 제공하도록 의도된다. 본원의 설명은 추구될 수 있는 개념을 포함할 수도 있지만, 그러나 반드시 이전에 고안된 또는 추구된 개념은 아니다. 따라서, 본원에서 달리 나타내어지지 않는 한, 이 섹션에서 설명되는 것은 본 출원의 설명 및 청구범위에 대한 종래 기술이 아니며, 이 섹션에서의 포함에 의해 종래 기술이 되는 것으로 간주되지 않는다.
비디오 코딩 시스템은, 입력 비디오를 저장/송신에 적절한 압축된 표현으로 변환하는 인코더 및 압축된 비디오 표현을 볼 수 있는 형태로 다시 압축 해제할 수 있는 디코더를 포함할 수도 있다. 인코더는, 비디오를 더욱 압축된 형태로 표현하기 위해, 예를 들면, 그렇지 않다면 필요로 될 수도 있는 것보다 더 낮은 비트레이트에서 비디오 정보의 저장/송신을 가능하게 하기 위해, 원래의 비디오 시퀀스 내의 몇몇 정보를 폐기할 수도 있다.
몇몇 실시형태는 비디오 정보를 인코딩 및 디코딩하기 위한 방법을 제공한다. 몇몇 실시형태에서, 장치, 컴퓨터 프로그램 제품, 방법을 구현하기 위한 컴퓨터 판독 가능 매체가 제공된다.
본 발명의 예의 다양한 양태가 상세한 설명에서 제공된다.
제1 양태에 따르면, 다음을 포함하는 방법이 제공된다:
모션 예측을 위한 샘플의 블록을 획득하는 단계;
샘플의 블록에 대한 병진 기본 모션 벡터 성분(translational base motion vector component)에 대한 예측을 정의하는 것에 의해 적어도 하나의 병진 기본 모션 벡터 성분을 계산하는 단계;
제1 정밀도를 사용하여 제1 차분 모션 벡터 성분(differential motion vector component)을 정의하는 단계; 및
제1 차분 모션 벡터 성분을 병진 기본 모션 벡터 성분에 대한 예측에 가산하는 단계;
고차 모션 벡터 성분(higher order motion vector component)에 대한 예측을 정의하는 것에 의해 적어도 하나의 고차 모션 벡터 성분을 계산하는 단계;
제1 정밀도와는 상이한 제2 정밀도를 사용하여 제2 차분 모션 벡터 성분을 정의하는 단계;
제2 차분 모션 벡터 성분을 고차 모션 벡터 성분에 대한 예측에 가산하는 단계; 및
적어도 하나의 병진 기본 모션 벡터 성분 및 적어도 하나의 차분 모션 벡터 성분을 사용하여 샘플의 블록에 대한 모션 보상 동작을 수행하는 단계.
제2 양태에 따르면, 적어도 하나의 프로세서; 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되는데, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서와 함께, 장치로 하여금 다음 중 적어도 하나를 수행하게 한다:
모션 예측을 위한 샘플의 블록을 획득하는 것;
샘플의 블록에 대한 병진 기본 모션 벡터 성분에 대한 예측을 정의하는 것에 의해 적어도 하나의 병진 기본 모션 벡터 성분을 계산하는 것;
제1 정밀도를 사용하여 제1 차분 모션 벡터 성분을 정의하는 것; 및
제1 차분 모션 벡터 성분을 병진 기본 모션 벡터 성분에 대한 예측에 가산하는 것;
고차 모션 벡터 성분에 대한 예측을 정의하는 것에 의해 적어도 하나의 고차 모션 벡터 성분을 계산하는 것;
제1 정밀도와는 상이한 제2 정밀도를 사용하여 제2 차분 모션 벡터 성분을 정의하는 것;
제2 차분 모션 벡터 성분을 고차 모션 벡터 성분에 대한 예측에 가산하는 것; 및
적어도 하나의 병진 기본 모션 벡터 성분 및 적어도 하나의 차분 모션 벡터 성분을 사용하여 샘플의 블록에 대한 모션 보상 동작을 수행하는 것.
제3 양태에 따르면, 장치에 의해 사용될 코드가 저장된 컴퓨터 판독가능 저장 매체가 제공되는데, 그 코드는, 프로세서에 의한 실행시, 장치로 하여금 다음의 것을 수행하게 한다:
모션 예측을 위한 샘플의 블록을 획득하는 것;
샘플의 블록에 대한 병진 기본 모션 벡터 성분에 대한 예측을 정의하는 것에 의해 적어도 하나의 병진 기본 모션 벡터 성분을 계산하는 것;
제1 정밀도를 사용하여 제1 차분 모션 벡터 성분을 정의하는 것; 및
제1 차분 모션 벡터 성분을 병진 기본 모션 벡터 성분에 대한 예측에 가산하는 것;
고차 모션 벡터 성분에 대한 예측을 정의하는 것에 의해 적어도 하나의 고차 모션 벡터 성분을 계산하는 것;
제1 정밀도와는 상이한 제2 정밀도를 사용하여 제2 차분 모션 벡터 성분을 정의하는 것;
제2 차분 모션 벡터 성분을 고차 모션 벡터 성분에 대한 예측에 가산하는 것; 및
적어도 하나의 병진 기본 모션 벡터 성분 및 적어도 하나의 차분 모션 벡터 성분을 사용하여 샘플의 블록에 대한 모션 보상 동작을 수행하는 것.
제4 양태에 따르면, 이미지 시퀀스를 포함하는 비트스트림을 인코딩하도록 구성되는 비디오 인코더를 포함하는 장치가 제공되는데, 비디오 인코더는 다음을 포함한다:
모션 예측을 위한 샘플의 블록을 획득하기 위한 수단;
샘플의 블록에 대한 병진 기본 모션 벡터 성분에 대한 예측을 정의하는 것에 의해 적어도 하나의 병진 기본 모션 벡터 성분을 계산하기 위한 수단;
제1 정밀도를 사용하여 제1 차분 모션 벡터 성분을 정의하기 위한 수단;
제1 차분 모션 벡터 성분을 병진 기본 모션 벡터 성분에 대한 예측에 가산하기 위한 수단;
고차 모션 벡터 성분에 대한 예측을 정의하는 것에 의해 적어도 하나의 고차 모션 벡터 성분을 계산하기 위한 수단;
제1 정밀도와는 상이한 제2 정밀도를 사용하여 제2 차분 모션 벡터 성분을 정의하는 것;
제2 차분 모션 벡터 성분을 고차 모션 벡터 성분에 대한 예측에 가산하기 위한 수단; 및
적어도 하나의 병진 기본 모션 벡터 성분 및 적어도 하나의 차분 모션 벡터 성분을 사용하여 샘플의 블록에 대한 모션 보상 동작을 수행하기 위한 수단.
본 발명의 예시적인 실시형태의 더 완전한 이해를 위해, 이제, 첨부의 도면과 연계하여 취해지는 하기의 설명을 참조하는데, 도면에서:
도 1은 한 실시형태에 따른 비디오 코딩 시스템의 블록도를 예시한다;
도 2는 한 실시형태에 따른 장치의 레이아웃을 예시한다;
도 3은 한 실시형태에 따른 복수의 장치, 네트워크 및 네트워크 엘리먼트를 포함하는 비디오 코딩을 위한 배치를 예시한다;
도 4는 한 실시형태에 따른 비디오 인코더의 블록도를 예시한다;
도 5는 한 실시형태에 따른 비디오 디코더의 블록도를 예시한다;
도 6은 두 개의 타일로 구성되는 픽쳐의 예를 도시한다;
도 7은, 한 실시형태에 따른, 모션 벡터 결정 엘리먼트를 단순화된 블록도로서 예시한다;
도 8a는 코딩 단위 내부의 기본 모션 벡터(b0 및 b1)를 예시한다;
도 8b는 코딩 단위 외부의 기본 모션 벡터(b0 및 b1)를 예시한다;
도 8c는 1차 파라미터(a0)에 대한 양의 값을 갖는 아핀 모델(affine model)을 사용하는 것을 예시한다;
도 9는 한 실시형태에 따른 인코딩 방법을 플로우차트로서 예시한다;
도 10은 한 실시형태에 따른 디코딩 방법을 플로우차트로서 예시한다; 그리고
도 11은 다양한 실시형태가 구현될 수도 있는 예시적인 멀티미디어 통신 시스템의 개략도를 도시한다.
도 1은 한 실시형태에 따른 비디오 코딩 시스템의 블록도를 예시한다;
도 2는 한 실시형태에 따른 장치의 레이아웃을 예시한다;
도 3은 한 실시형태에 따른 복수의 장치, 네트워크 및 네트워크 엘리먼트를 포함하는 비디오 코딩을 위한 배치를 예시한다;
도 4는 한 실시형태에 따른 비디오 인코더의 블록도를 예시한다;
도 5는 한 실시형태에 따른 비디오 디코더의 블록도를 예시한다;
도 6은 두 개의 타일로 구성되는 픽쳐의 예를 도시한다;
도 7은, 한 실시형태에 따른, 모션 벡터 결정 엘리먼트를 단순화된 블록도로서 예시한다;
도 8a는 코딩 단위 내부의 기본 모션 벡터(b0 및 b1)를 예시한다;
도 8b는 코딩 단위 외부의 기본 모션 벡터(b0 및 b1)를 예시한다;
도 8c는 1차 파라미터(a0)에 대한 양의 값을 갖는 아핀 모델(affine model)을 사용하는 것을 예시한다;
도 9는 한 실시형태에 따른 인코딩 방법을 플로우차트로서 예시한다;
도 10은 한 실시형태에 따른 디코딩 방법을 플로우차트로서 예시한다; 그리고
도 11은 다양한 실시형태가 구현될 수도 있는 예시적인 멀티미디어 통신 시스템의 개략도를 도시한다.
도 1은 비디오 코딩 시스템을 한 실시형태에 따른 장치 또는 전자 디바이스(50)의 개략적인 블록도로서 도시한다. 전자 디바이스(50)는 한 실시형태에 따른 코덱을 통합할 수도 있다. 도 2는 한 실시형태에 따른 장치의 레이아웃을 도시한다. 다음에, 도 1 및 도 2의 엘리먼트가 설명될 것이다.
전자 디바이스(50)는, 예를 들면, 무선 통신 시스템의 모바일 단말 또는 유저 기기일 수도 있다. 그러나, 본 발명의 실시형태는, 인코딩 및 디코딩, 또는 비디오 이미지의 인코딩 또는 디코딩을 수행할 수도 있는 임의의 전자 디바이스 또는 장치 내에서 구현될 수도 있다는 것이 인식된다.
장치(50)는 디바이스를 통합 및 보호하기 위한 하우징(30)을 포함할 수도 있다. 장치(50)는 액정 디스플레이 형태의 디스플레이(32)를 더 포함할 수도 있다. 다른 실시형태에서, 디스플레이는 이미지 또는 비디오를 디스플레이하기에 적절한 임의의 적절한 디스플레이 기술일 수도 있다. 장치(50)는 키패드(34)를 더 포함할 수도 있다. 한 실시형태에 따르면, 임의의 적절한 데이터 또는 유저 인터페이스 메커니즘이 활용될 수도 있다. 예를 들면, 유저 인터페이스는 터치 감지 디스플레이의 일부로서의 가상 키보드 또는 데이터 입력 시스템으로서 구현될 수도 있다. 장치는 마이크(36) 또는 디지털 신호 입력 또는 아날로그 신호 입력일 수도 있는 임의의 적절한 오디오 입력을 포함할 수도 있다. 장치(50)는, - 실시형태에 따라 - 다음 중 임의의 하나일 수도 있는 오디오 출력 디바이스를 더 포함할 수도 있다: 이어 피스(38), 스피커, 또는 아날로그 오디오 또는 디지털 오디오 출력 연결. 장치(50)는 또한 배터리(40)를 포함할 수도 있다(또는 한 실시형태에서, 디바이스는, 태양 전지, 연료 전지 또는 시계 태엽 발전기(clockwork generator)와 같은 임의의 적절한 이동식 에너지 디바이스에 의해 전력을 공급받을 수도 있다). 장치는 이미지 및/또는 비디오를 기록 또는 캡쳐할 수 있는 카메라(42)를 더 포함할 수도 있다. 한 실시형태에 따르면, 장치(50)는 다른 디바이스에 대한 짧은 거리의 가시거리 내 통신(short range line of sight communication)을 위한 적외선 포트를 더 포함할 수도 있다. 한 실시형태에 따르면, 장치(50)는, 예를 들면, Bluetooth®(블루투스) 무선 연결 또는 USB/파이어와이어 유선 연결과 같은 임의의 적절한 짧은 거리의 통신 솔루션을 더 포함할 수도 있다.
장치(50)는 장치(50)를 제어하기 위한 컨트롤러(56) 또는 프로세서를 포함할 수도 있다. 컨트롤러(56)는, 한 실시형태에 따라 이미지 및 오디오 데이터의 형태의 데이터 둘 모두를 저장할 수도 있는 및/또는 구현을 위한 명령어를 컨트롤러(56) 상에 또한 저장할 수도 있는 메모리(58)에 연결될 수도 있다. 컨트롤러(56)는 또한, 오디오 및/또는 비디오 데이터의 코딩 및/또는 디코딩을 수행하기에 또는 컨트롤러(56)에 의해 수행되는 코딩 및/또는 디코딩을 보조하기에 적절한 코덱 회로부(circuitry)(54)에 연결될 수도 있다.
장치(56)는 카드 판독기(48) 및 스마트 카드(46), 예를 들면 유저 정보를 제공하기 위한 그리고 네트워크에서 유저의 인증 및 권한 부여를 위한 인증 정보를 제공하기에 적절한 UICC(Universal Integrated Circuit Card; 범용 집적 회로 카드) 및 UICC 판독기를 더 포함할 수도 있다.
장치(50)는, 컨트롤러에 연결되고 예를 들면 셀룰러 통신 네트워크, 무선 통신 시스템 또는 무선 근거리 통신망과 통신하기 위한 무선 통신 신호를 생성하기에 적절한 무선 인터페이스 회로부(52)를 더 포함할 수도 있다. 장치(50)는, 무선 인터페이스 회로부(52)에서 생성되는 무선 주파수 신호를 다른 장치(들)로 송신하기 위한 그리고 다른 장치(들)로부터 무선 주파수 신호를 수신하기 위한, 무선 인터페이스 회로부(52)에 연결되는 안테나(44)를 더 포함할 수도 있다.
한 실시형태에 따르면, 장치(50)는 개개의 프레임을 기록 또는 검출할 수 있는 카메라를 포함하는데, 개개의 프레임은, 그 다음, 프로세싱을 위해 코덱(54) 또는 컨트롤러로 전달된다. 한 실시형태에 따르면, 장치는 송신 및/또는 저장 이전에 다른 디바이스로부터 프로세싱을 위한 비디오 이미지 데이터를 수신할 수도 있다. 한 실시형태에 따르면, 장치(50)는 코딩/디코딩을 위한 이미지를 무선으로 또는 유선 연결에 의해 수신할 수도 있다.
도 3은, 한 실시형태에 따른 복수의 장치, 네트워크 및 네트워크 엘리먼트를 포함하는 비디오 코딩을 위한 배치를 도시한다. 도 3과 관련하여, 본 발명의 실시형태가 활용될 수 있는 시스템의 예가 도시된다. 시스템(10)은 하나 이상의 네트워크를 통해 통신할 수 있는 다수의 통신 디바이스를 포함한다. 시스템(10)은, 무선 셀룰러 전화 네트워크(예컨대 GSM, UMTS, CDMA 네트워크 등등), 예컨대 IEEE 802.x 표준 중 임의의 것에 의해 정의되는 무선 근거리 통신망(wireless local area network; WLAN), 블루투스 개인 영역 네트워크, 이더넷 근거리 통신망, 토큰 링 근거리 통신망, 광역 네트워크(wide area network) 및 인터넷을 포함하는 그러나 이들로 제한되지는 않는 유선 또는 무선 네트워크의 임의의 조합을 포함할 수도 있다.
시스템(10)은 실시형태를 구현하기에 적절한 유선 및 무선 통신 디바이스 또는 장치(50) 둘 모두를 포함할 수도 있다. 예를 들면, 도 3에서 도시되는 시스템은 이동 전화 네트워크(11) 및 인터넷(28)의 표현을 도시한다. 인터넷(28)에 대한 연결은, 장거리 무선 연결, 짧은 거리의 무선 연결, 및 전화선, 케이블 회선, 전력선, 및 유사한 통신 경로를 포함하는, 그러나 이들로 제한되지는 않는 다양한 유선 연결을 포함할 수도 있지만, 그러나 이들로 제한되지는 않는다.
시스템(10)에서 도시되는 예시적인 통신 디바이스는, 전자 디바이스 또는 장치(50), 개인 휴대형 정보 단말(personal digital assistant; PDA) 및 이동 전화(14)의 임의의 조합, PDA(16), 통합 메시징 디바이스(integrated messaging device; IMD)(18), 데스크탑 컴퓨터(20), 노트북 컴퓨터(22)를 포함할 수도 있지만, 그러나 이들로 제한되지는 않는다. 장치(50)는 고정식일 수도 있거나 또는 움직이고 있는 사람에 의해 운반될 때 이동될 수도 있다. 장치(50)는 또한, 자동차, 트럭, 택시, 버스, 기차, 보트, 비행기, 자전거, 오토바이 또는 임의의 유사한 적절한 운송 모드를 포함하는, 그러나 이들로 제한되지 않는 운송 모드에 위치될 수도 있다.
실시형태는 또한, 셋탑 박스: 즉, 디스플레이 또는 무선 성능을 가질 수도 있는/가지지 않을 수도 있는 디지털 TV 수신기에서, 하드웨어 또는 소프트웨어 또는 인코더/디코더 구현예의 조합을 구비하는 태블릿 또는 (랩탑) 퍼스널 컴퓨터(personal computer; PC)에서, 다양한 오퍼레이팅 시스템에서, 그리고 하드웨어/소프트웨어 기반의 코딩을 제공하는 칩셋, 프로세서, DSP 및/또는 임베딩된 시스템에서 구현될 수도 있다.
몇몇 또는 추가적인 장치가 호출 및 메시지를 전송 및 수신할 수도 있고 기지국(24)으로의 무선 연결(25)을 통해 서비스 제공자와 통신할 수도 있다. 기지국(24)은 이동 전화 네트워크(11)와 인터넷(28) 사이의 통신을 허용하는 네트워크 서버(26)에 연결될 수도 있다. 시스템은 추가적인 통신 디바이스 및 다양한 타입의 통신 디바이스를 포함할 수도 있다.
통신 디바이스는, 코드 분할 다중 액세스(code division multiple access; CDMA), 이동 통신용 글로벌 시스템(global systems for mobile communications; GSM), 범용 이동 통신 시스템(universal mobile telecommunications system; UMTS), 시분할 다중 액세스(time divisional multiple access; TDMA), 주파수 분할 다중 액세스(frequency division multiple access; FDMA) 송신 제어 프로토콜-인터넷 프로토콜(transmission control protocol-internet protocol; TCP-IP), 단문 메시징 서비스(short messaging service; SMS), 멀티미디어 메시징 서비스(multimedia messaging service; MMS) 이메일, 인스턴트 메시징 서비스(instant messaging service; IMS), 블루투스, IEEE 802.11, 및 임의의 유사한 무선 통신 기술을 포함하는, 그러나 이들로 제한되지는 않는 다양한 송신 기술을 사용하여 통신할 수도 있다. 본 발명의 다양한 실시형태를 구현함에 있어서 수반되는 통신 디바이스는, 무선(radio), 적외선, 레이저, 케이블 연결 및 임의의 적절한 연결을 포함하는, 그러나 이들로 제한되지는 않는 다양한 미디어를 사용하여 통신할 수도 있다.
비디오 인코더는, 입력 비디오를 저장/송신에 적절한 압축된 표현으로 변환하는 인코더를 포함할 수도 있고, 디코더는 압축된 비디오 표현을 볼 수 있는 형태로 다시 압축 해제할 수 있다. 비디오 인코더 및/또는 비디오 디코더는 또한 서로 별개일 수도 있다, 즉, 코덱을 형성할 필요가 없을 수도 있다. 인코더는, 비디오를 더욱 압축된 형태로(즉, 더 낮은 비트레이트에서) 표현하기 위해, 원래의 비디오 시퀀스의 몇몇 정보를 폐기할 수도 있다.
하이브리드 비디오 코덱, 예를 들면, ITU-T H.263 및 H.264는 비디오 정보를 두 단계로 인코딩할 수도 있다. 먼저, 소정의 픽쳐(또는, "블록")의 픽셀 값이, 예를 들면, (이전에 코딩된 비디오 프레임 중 하나에서, 코딩되고 있는 블록에 가장 가깝게 대응하는 영역을 찾고 나타내는) 모션 보상 수단에 의해 또는 (코딩될 블록 주위의 픽셀 값을 명시된 방식으로 사용하는) 공간적 수단에 의해 예측된다. 다음으로, 예측 에러, 즉 픽셀의 예측된 블록과 픽셀의 원래 블록 사이의 차이가 코딩된다. 이것은, 명시된 변환(예를 들면, 이산 코사인 변환(Discrete Cosine Transform; DCT) 또는 그것의 변형)을 사용하여 픽셀 값의 차이를 변환하는 것, 계수를 양자화하는 것 및 양자화된 계수를 엔트로피 코딩하는 것에 의해 행해질 수도 있다. 양자화 프로세스의 충실도를 변경시키는 것에 의해, 인코더는 픽셀 표현(픽쳐 품질)의 정확도와 결과적으로 나타나는 코딩된 비디오 표현의 사이즈(송신 비트레이트의 파일 사이즈) 사이의 균형을 제어할 수 있다.
시간 예측, 모션 보상, 또는 모션 보상 예측으로 또한 칭해질 수도 있는 인터 예측은 시간 중복성(redundancy)을 감소시킨다. 인터 예측에서, 예측의 소스는 이전에 디코딩된 픽쳐이다. 인트라 예측은 동일한 픽쳐 내의 인접 픽셀이 상관될 가능성이 있다는 사실을 활용한다. 인트라 예측은 공간 또는 변환 도메인에서 수행될 수 있다, 즉, 샘플 값 또는 변환 계수 중 어느 하나가 예측될 수 있다. 인트라 예측은, 인터 예측이 적용되지 않는 인트라 코딩에서 통상적으로 활용된다.
코딩 프로시져의 하나의 결과는, 모션 벡터 및 양자화된 변환 계수와 같은 코딩 파라미터의 세트이다. 많은 파라미터는, 그들이 공간적으로 또는 시간적으로 이웃하는 파라미터로부터 먼저 예측된다면 더욱 효율적으로 엔트로피 코딩될 수 있다. 예를 들면, 모션 벡터는 공간적으로 인접한 모션 벡터로부터 예측될 수도 있고, 모션 벡터 예측자(motion vector predictor)에 대한 차이만이 코딩될 수도 있다. 인트라 예측 및 코딩 파라미터의 예측은 일괄적으로 픽쳐 내(in-picture) 예측으로 칭해질 수도 있다.
고급 비디오 코딩(Advanced Video Coding)(AVC로서 또한 알려진 H.264/AVC) 표준은, 국제 전기 통신 연합(International Telecommunication Union; ITU-T)의 전기 통신 표준화 부분의 비디오 코딩 전문가 그룹(Video Coding Experts Group; VCEG)의 공동 비디오 팀(Joint Video Team; JVT) 및 국제 표준화 기구(International Organisation for Standardization; ISO)/국제 전기 기술 위원회(International Electrotechnical Commission; IEC)의 동영상 전문가 그룹(Moving Picture Experts Group; MPEG)에 의해 개발되었다. H.264/AVC 표준은, 양쪽 부모(parent) 표준화 단체에 의해 발표되었으며, ITU-T 권고안 H.264 및 ISO/IEC 국제 표준 14496-10으로서 칭해지며, 또한 MPEG-4 파트 10 고급 비디오 코딩(Advanced Video Coding; AVC)으로서 알려져 있다. 새로운 확장(extension) 또는 피쳐를 명세(specification)에 통합하는, H.264/AVC 표준의 다수의 버전이 존재한다. 이들 확장은 스케일러블 비디오 코딩(Scalable Video Coding; SVC) 및 멀티뷰 비디오 코딩(Multiview Video Coding; MVC)을 포함한다.
고효율 비디오 코딩(HEVC로서 또한 알려진 H.265/HEVC) 표준의 버전 1은, VCEG 및 MPEG의 공동 협력 팀-비디오 코딩(Joint Collaborative Team-Video Coding; JCT-VC)에 의해 개발되었다. 그 표준은, 양쪽 부모 표준화 단체에 의해 발표되었으며, ITU-T 권고안 H.265 및 ISO/IEC 국제 표준 23008-2로서 칭해지며, 또한 MPEG-H 파트 2 고효율 비디오 코딩(High Efficiency Video Coding; HEVC)으로서 알려져 있다. H.265/HEVC의 버전 2는, 각각 SHVC, MV-HEVC 및 REXT로 축약될 수도 있는, 스케일러블, 멀티뷰, 및 충실도 범위 확장을 포함하였다. H.265/HEVC의 버전 2는 ITU-T 권고안 H.265(10/2014)로서 사전 발표되었으며, 2015년에 ISO/IEC 23008-2의 2판(Edition 2)로서 게시될 예정이다. H.265/HEVC에 대한 추가 확장을 개발하기 위해 현재 진행 중인 표준화 프로젝트가 있으며, 각각 3D-HEVC 및 SCC로 축약될 수도 있는, 삼차원 및 스크린 콘텐츠 코딩 확장을 포함한다.
SHVC, MV-HEVC, 및 3D-HEVC는 HEVC 표준의 버전 2의 부록 F에서 명시되는 공통 기본 명세를 사용한다. 이러한 공통적인 기초는, 예를 들면, 레이어간(inter-layer) 의존성과 같은 비트스트림의 레이어의 특성뿐만 아니라, 레이어간 참조 픽쳐를 포함하는 참조 픽쳐 목록 구성 및 멀티 레이어 비트스트림(multi-layer bitstream)을 위한 픽쳐 순서 카운트 유도와 같은 디코딩 프로세스의 일부를 명시하는, 예를 들면, 하이 레벨 신택스 및 의미론(semantics)을 포함한다. 부록 F는 또한 HEVC의 잠재적인 후속 멀티 레이어 확장에서 사용될 수도 있다. 비록 비디오 인코더, 비디오 디코더, 인코딩 방법, 디코딩 방법, 비트스트림 구조, 및/또는 실시형태가 SHVC 및/또는 MV-HEVC와 같은 특정한 확장을 참조하여 하기에서 설명될 수도 있지만, 그들은 일반적으로 HEVC의 임의의 멀티 레이어 확장에 적용 가능하고, 더욱 일반적으로는, 임의의 멀티 레이어 비디오 코딩 스킴(scheme)에 적용 가능하다는 것이 이해되어야 한다.
H.264/AVC 및 HEVC의 몇몇 핵심 정의, 비트스트림 및 코딩 구조, 및 개념은, 실시형태가 구현될 수도 있는, 비디오 인코더, 디코더, 인코딩 방법, 디코딩 방법, 및 비트스트림 구조의 한 예로서 이 섹션에서 설명된다. H.264/AVC의 핵심 정의, 비트스트림 및 코딩 구조, 및 개념 중 일부는 HEVC에서와 동일하다 - 그러므로, 그들은 하기에서 공동으로 설명된다. 본 발명의 양태는 H.264/AVC 또는 HEVC로 제한되지 않으며, 오히려, 본 발명이 부분적으로 또는 완전히 실현될 수도 있는 하나의 가능한 기초에 대한 설명이 주어진다.
많은 이전의 비디오 코딩 표준과 유사하게, 에러 없는 비트스트림을 위한 비트스트림 신택스 및 의미론뿐만 아니라 디코딩 프로세스는 H.264/AVC 및 HEVC에서 명시된다. 인코딩 프로세스는 명시되지는 않지만, 그러나 인코더는 적합한(conforming) 비트스트림을 생성해야만 한다. 비트스트림 및 디코더 적합성(conformance)은 가상 참조 디코더(Hypothetical Reference Decoder; HRD)로 검증될 수 있다. 표준은, 송신 에러 및 손실을 대처함에 있어서 도움이 되는 코딩 도구를 포함하지만, 그러나 인코딩에서의 도구의 사용은 옵션 사항이며 에러가 있는 비트스트림에 대해 어떠한 디코딩 프로세스도 명시되지 않았다.
현존하는 표준의 설명에서뿐만 아니라 예시적인 실시형태의 설명에서, 신택스 엘리먼트는 비트스트림에서 표현되는 데이터의 엘리먼트로서 정의될 수도 있다. 신택스 구조는 명시된 순서로 비트스트림에 함께 존재하는 제로 개 이상의 신택스 엘리먼트로서 정의될 수도 있다. 현존하는 표준의 설명에서뿐만 아니라 예시적인 실시형태의 설명에서, 어구(phrase) "외부 수단에 의한" 또는 "외부 수단을 통해"가 사용될 수도 있다. 예를 들면, 디코딩 프로세스에서 사용되는 신택스 구조 또는 변수의 값과 같은 엔티티가 "외부 수단에 의해" 디코딩 프로세스에 제공될 수도 있다. 어구 "외부 수단에 의해"는, 인코더에 의해 생성되는 비트스트림에 엔티티가 포함되지 않고, 오히려, 예를 들면, 제어 프로토콜을 사용하여 비트스트림으로부터 외부로 전달된다는 것을 나타낼 수도 있다. 그것은, 대안적으로 또는 추가적으로, 엔티티가 인코더에 의해 생성되지는 않지만, 그러나, 예를 들면, 디코더를 사용하고 있는 플레이어 또는 디코딩 제어 논리 또는 등등에서 생성될 수도 있다는 것을 의미할 수도 있다. 디코더는, 가변 값과 같은 외부 수단을 입력하기 위한 인터페이스를 구비할 수도 있다.
프로파일은 디코딩/코딩 표준 또는 명세에 의해 명시되는 전체 비트스트림 신택스의 서브세트로서 정의될 수도 있다. 주어진 프로파일의 신택스에 의해 부과되는 범위 내에서, 디코딩된 픽쳐의 명시된 사이즈와 같은 비트스트림에서 신택스 엘리먼트에 의해 취해지는 값에 의존하여 인코더 및 디코더의 성능에서 매우 큰 변동을 요구하는 것이 여전히 가능하다. 많은 애플리케이션에서, 특정한 프로파일 내에서 신택스의 모든 가상 사용을 다룰 수 있는 디코더를 구현하는 것은 실용적이지도 않고 경제적이지도 않을 수도 있을 것이다. 이 이슈를 다루기 위해, 레벨이 사용될 수도 있다. 레벨은, 디코딩/코딩 표준 또는 명세에서 명시되는 변수 및 비트스트림의 신택스 엘리먼트의 값에 부과되는 제약의 명시된 세트로서 정의될 수도 있다. 이들 제약은 값에 대한 단순한 제한일 수도 있다. 대안적으로 또는 추가적으로, 그들은 값의 산술 조합(예를 들면, 픽쳐 폭 곱하기 픽쳐 높이 곱하기 초당 디코딩되는 픽쳐의 수)에 대한 제약의 형태를 취할 수도 있다. 레벨에 대한 제약을 명시하기 위한 다른 수단이 또한 사용될 수도 있다. 레벨에서 명시되는 제약 중 일부는, 예를 들면, 어떤 시간 기간당, 예컨대 1초당 코딩 단위, 예컨대 매크로블록의 관점에서의 최대 데이터 레이터, 최대 비트레이트 및 최대 픽쳐 사이즈에 관련될 수도 있다. 모든 프로파일에 대해 레벨의 동일한 세트가 정의될 수도 있다. 예를 들면, 각각의 레벨의 정의의 대부분의 또는 모든 양태가 상이한 프로파일에 걸쳐 공통일 수도 있는 상이한 프로파일을 구현하는 단말의 상호 운용성을 증가시키는 것이 바람직할 수도 있다. 비트스트림 내의 신택스 엘리먼트의 값에 부과되는 레벨 제약의 명시된 카테고리로서 층(tier)이 정의될 수도 있는데, 여기서 레벨 제약은 층 내에서 네스트화되고, 소정의 층 및 레벨에 적합한 디코더는, 그 레벨 또는 그 레벨 아래의 임의의 레벨의 동일 층 또는 하위 층(lower tier)에 적합한 모든 비트스트림을 디코딩할 수 있을 것이다.
몇몇 경우에, 적합성 포인트는 특정한 프로파일 및 특정한 레벨의 조합 또는 특정한 프로파일, 특정한 층, 및 특정한 레벨의 조합으로서 정의될 수도 있다. 적합성 포인트는 대안적인 방식으로 정의될 수도 있지만, 디코더의 비트스트림 및/또는 특성 및 (최대) 리소스의 특성 및 한계를 명시하려는 의도는 변함없이 유지될 수도 있다는 것이 이해될 필요가 있다.
H.264/AVC 또는 HEVC 인코더에 대한 입력 및 H.264/AVC 또는 HEVC 디코더의 출력에 대한 기본 단위(elementary unit)는, 각각, 픽쳐이다. 인코더에 대한 입력으로서 주어지는 픽쳐는 또한 소스 픽쳐로 칭해질 수도 있고, 디코더에 의해 디코딩되는 픽쳐는 디코딩된 픽쳐로서 칭해질 수도 있다.
소스 및 디코딩된 픽쳐는 샘플 어레이의 다음의 세트 중 하나와 같은, 하나 이상의 샘플 어레이로 각각 구성된다:
루마(Y) 전용(단색(monochrome)).
루마 및 두 개의 크로마(YCbCr 또는 YCgCo).
녹색(Green), 청색(Blue) 및 적색(Red)(RGB로서 또한 알려진 GBR).
다른 명시되지 않은 단색 또는 3 자극(tri-stimulus) 컬러 샘플링(예를 들면, XYZ로서 또한 알려진 YZX)을 나타내는 어레이.
하기에서, 이들 어레이는 루마(또는 L 또는 Y) 및 크로마로 칭해질 수도 있는데, 여기서 두 개의 크로마 어레이는 Cb 및 Cr로 칭해질 수도 있다; 사용 중인 실제 컬러 표현 방법에 무관함. 사용 중인 실제 컬러 표현 방법은, 예를 들면, H.264/AVC 및/또는 HEVC의 비디오 가용성 정보(Video Usability Information; VUI) 신택스를 사용하여, 예를 들면, 코딩된 비트스트림에서 나타내어질 수 있다. 단색 포맷의 픽쳐를 구성하는 어레이의 단일의 샘플 또는 어레이 또는 세 개의 샘플 어레이(루마 및 두 개의 크로마) 중 하나로부터의 단일의 샘플 또는 어레이로서 컴포넌트가 정의될 수도 있다.
H.264/AVC 및 HEVC에서, 픽쳐는 프레임 또는 필드 중 어느 하나일 수도 있다. 프레임은 루마 샘플 및 어쩌면 대응하는 크로마 샘플의 매트릭스를 포함한다. 필드는 프레임의 교대하는 샘플 행의 세트이며, 소스 신호가 인터레이스될 때 인코더 입력으로서 사용될 수도 있다. 크로마 샘플 어레이는 없을 수도 있거나(그러므로 단색 샘플링이 사용 중일 수도 있음) 또는 크로마 샘플 어레이가, 루마 샘플 어레이와 비교될 때, 서브샘플링될 수도 있다. 크로마 포맷은 다음과 같이 요약될 수도 있다:
단색 샘플링에서, 명목상 루마 어레이로 간주될 수도 있는 단지 하나의 샘플 어레이가 있다.
4:2:0 샘플링에서, 두 개의 크로마 어레이의 각각은 루마 어레이의 절반 높이 및 절반 폭을 갖는다.
4:2:2 샘플링에서, 두 개의 크로마 어레이의 각각은 루마 어레이의 동일한 높이 및 절반 폭을 갖는다.
별개의 컬러 평면이 사용되지 않는 경우의 4:4:4 샘플링에서, 두 개의 크로마 어레이의 각각은 루마 어레이와 동일한 높이 및 폭을 갖는다.
H.264/AVC 및 HEVC에서, 샘플 어레이를 별개의 컬러 평면으로서 비트스트림에 코딩하고, 비트스트림으로부터 개별적으로 코딩된 컬러 평면을 각각 디코딩하는 것이 가능하다. 별개의 컬러 평면이 사용 중일 때, 그들 중 각각의 컬러 평면은 (인코더 및/또는 디코더에 의해) 단색 샘플링을 갖는 픽쳐로서 별개로 프로세싱된다.
크로마 서브샘플링이 사용되는 경우(예를 들면, 4:2:0 또는 4:2:2 크로마 샘플링), 루마 샘플에 대한 크로마 샘플의 위치는 인코더 측에서 (예를 들면, 사전 프로세싱 단계로서 또는 인코딩의 일부로서) 결정될 수도 있다. 루마 샘플 위치에 대한 크로마 샘플 위치는, 예를 들면, H.264/AVC 또는 HEVC와 같은 코딩 표준에서 미리 정의될 수도 있거나, 또는 예를 들면, H.264/AVC 또는 HEVC의 VUI의 일부로서 비트스트림에서 나타내어질 수도 있다.
구획화(partitioning)는, 세트의 각각의 엘리먼트가 서브세트의 정확히 하나 내에 있도록 하는 세트의 서브세트로의 분할로서 정의될 수도 있다.
H.264/AVC에서, 매크로블록은 루마 샘플의 16×16 블록 및 크로마 샘플의 대응하는 블록이다. 예를 들면, 4:2:0 샘플링 패턴에서, 매크로블록은 각각의 크로마 성분마다 크로마 샘플의 하나의 8×8 블록을 포함한다. H.264/AVC에서, 픽쳐는 하나 이상의 슬라이스 그룹으로 구획화되고, 슬라이스 그룹은 하나 이상의 슬라이스를 포함한다. H.264/AVC에서, 슬라이스는 특정한 슬라이스 그룹 내에서의 래스터 스캔에서 연속적으로 정렬되는 정수 개의 매크로블록으로 구성된다.
HEVC 인코딩 및/또는 디코딩의 동작을 설명할 때, 다음의 용어가 사용될 수도 있다. 코딩 블록은, 코딩 트리 블록의 코딩 블록으로의 분할이 구획화이도록 하는 어떤 값의 N에 대한 샘플의 N×N 블록으로서 정의될 수도 있다. 코딩 트리 블록(coding tree block; CTB)은, 컴포넌트의 코딩 트리 블록으로의 분할이 구획화이도록 하는 어떤 값의 N에 대한 샘플의 N×N 블록으로서 정의될 수도 있다. 코딩 트리 단위(coding tree unit; CTU)는, 루마 샘플의 코딩 트리 블록, 세 개의 샘플 어레이를 갖는 픽쳐의 크로마 샘플의 두 개의 대응하는 코딩 트리 블록, 또는 샘플을 코딩하기 위해 사용되는 신택스 구조 및 세 개의 별개의 컬러 평면을 사용하여 코딩되는 픽쳐 또는 단색 픽쳐의 샘플의 코딩 트리 블록으로서 정의될 수도 있다. 코딩 단위(coding unit; CU)는, 루마 샘플의 코딩 블록, 세 개의 샘플 어레이를 갖는 픽쳐의 크로마 샘플의 두 개의 대응하는 코딩 블록, 또는 샘플을 코딩하기 위해 사용되는 신택스 구조 및 세 개의 별개의 컬러 평면을 사용하여 코딩되는 픽쳐 또는 단색 픽쳐의 샘플의 코딩 블록으로서 정의될 수도 있다.
고효율 비디오 코딩(HEVC) 코덱과 같은 몇몇 비디오 코덱에서, 비디오 픽쳐는 픽쳐의 영역을 커버하는 코딩 단위(CU)로 분할된다. CU는, CU 내의 샘플에 대한 예측 프로세스를 정의하는 하나 이상의 예측 단위(prediction unit; PU) 및 상기 CU 내의 샘플에 대한 예측 에러 코딩 프로세스를 정의하는 하나 이상의 변환 단위(TU)로 구성된다. 통상적으로, CU는 가능한 CU 사이즈의 미리 정의된 세트로부터 선택 가능한 사이즈를 갖는 샘플의 정사각형 블록으로 구성된다. 최대 허용된 사이즈를 갖는 CU는, LCU(largest coding unit; 최대 코딩 단위) 또는 코딩 트리 단위(CTU)로 명명될 수도 있고, 비디오 픽쳐는 비중첩 LCU로 분할된다. LCU는, 예를 들면, LCU와 결과적으로 나타나는 CU를 재귀적으로 분할하는 것에 의해, 더 작은 CU의 조합으로 더 분할될 수 있다. 각각의 결과적으로 나타나는 CU는, 통상적으로, 자신과 관련되는 적어도 하나의 PU 및 적어도 하나의 TU를 구비한다. 각각의 PU 및 TU는, 예측 및 예측 에러 코딩 프로세스의 세분성(granularity)을 각각 증가시키기 위해 더 작은 PU 및 TU로 더 분할될 수 있다. 각각의 PU는, 어떤 종류의 예측이 그 PU 내의 픽셀에 적용될 것인지를 정의하는 자신과 관련되는 예측 정보(예를 들면, 인터 예측된 PU에 대한 모션 벡터 정보 및 인트라 예측된 PU에 대한 인트라 예측 방향성 정보)를 갖는다.
각각의 TU는, 상기 TU 내의 샘플에 대한 예측 에러 디코딩 프로세스를 설명하는 정보(예를 들면, DCT 계수 정보를 포함함)와 관련될 수 있다. 각각의 CU에 대해 예측 에러 코딩이 적용되든 또는 되지 않든 간에, 그것은 통상적으로 CU 레벨에서 시그널링된다. CU와 관련되는 예측 에러 잔차가 없는 경우, 상기 CU에 대한 TU가 없다는 것이 고려될 수 있다. 이미지의 CU로의 분할, 및 CU의 PU 및 TU로의 분할은 비트스트림에서 시그널링되어, 디코더가 이들 단위의 의도된 구조를 재생하는 것을 허용할 수도 있다.
HEVC에서, 픽쳐는, 직사각형이며 정수 개의 LCU를 포함하는 타일로 구획될 수 있다. HEVC에서, 타일로의 구획화는 규칙적인 그리드를 형성하는데, 여기서 타일의 높이 및 폭은 최대 하나의 LCU만큼 서로 상이하다. HEVC에서, 슬라이스는, 하나의 독립 슬라이스 세그먼트 및 동일한 액세스 단위 내의 다음 독립 슬라이스 세그먼트(존재하는 경우)에 선행하는 모든 후속 종속 슬라이스 세그먼트(존재하는 경우)에 포함되는 정수 개의 코딩 트리 단위인 것으로 정의된다. HEVC에서, 슬라이스 세그먼트는 타일 스캔 순서로 연속적으로 정렬되며 단일의 NAL 단위에 포함되는 정수 개의 트리의 코딩 트리 단위인 것으로 정의된다. 각각의 픽쳐의 슬라이스 세그먼트로의 분할은 구획화이다. HEVC에서, 독립적인 슬라이스 세그먼트는, 슬라이스 세그먼트 헤더의 신택스 엘리먼트의 값이 선행하는 슬라이스 세그먼트에 대한 값으로부터 추론되지 않는 슬라이스 세그먼트인 것으로 정의되고, 종속 슬라이스 세그먼트는, 슬라이스 세그먼트 헤더의 몇몇 신택스 엘리먼트의 값이 디코딩 순서에서 선행하는 독립 슬라이스 세그먼트에 대한 값으로부터 추론되는 슬라이스 세그먼트인 것으로 정의된다. HEVC에서, 슬라이스 헤더는, 현재의 슬라이스 세그먼트인 또는 현재의 종속 슬라이스 세그먼트에 선행하는 독립 슬라이스 세그먼트인 독립 슬라이스 세그먼트의 슬라이스 세그먼트 헤더인 것으로 정의되고, 슬라이스 세그먼트 헤더는, 슬라이스 세그먼트에서 표현되는 제1 또는 모든 코딩 트리 단위에 속하는 데이터 엘리먼트를 포함하는 코딩된 슬라이스 세그먼트의 일부인 것으로 정의된다. CU는, 타일 내의 또는 타일이 사용되지 않는 경우 픽쳐 내의 LCU의 래스터 스캔 순서로 스캔된다. LCU 내에서, CU에는 특정한 스캔 순서를 갖는다. 도 6은, 직사각형 코딩 단위(실선)로 추가로 구획되는 정사각형 코딩 단위(실선)로 구획되는 두 개의 타일로 구성되는 픽쳐의 예를 도시한다.
디코더는, (인코더에 의해 생성되며 압축된 표현으로 저장되는 모션 또는 공간 정보를 사용하여) 픽셀 블록의 예측된 표현을 형성하기 위한 인코더와 유사한 예측 수단 및 예측 에러 디코딩(공간 픽셀 도메인에서 양자화된 예측 에러 신호를 복원하는 예측 에러 코딩의 역동작)을 적용하는 것에 의해 출력 비디오를 재구성할 수도 있다. 예측 및 예측 에러 디코딩 수단을 적용한 이후, 디코더는 예측 및 예측 에러 신호(픽셀 값)를 합산하여 출력 비디오 프레임을 형성할 수도 있다. 디코더(및 인코더)는 또한, 디스플레이를 위해 출력 비디오를 전달하기 이전에 및/또는 비디오 시퀀스의 향후 프레임에 대한 예측 참조로서 출력 비디오를 저장하기 이전에, 출력 비디오의 품질을 향상시키기 위해 추가적인 필터링 수단을 적용할 수도 있다.
필터링은, 예를 들면, 다음 중 하나 이상을 포함할 수도 있다: 디블로킹(deblocking), 샘플 적응 오프셋(sample adaptive offset; SAO), 및/또는 적응 루프 필터링(adaptive loop filtering; ALF). H.264/AVC는 디블로킹을 포함하고, 반면 HEVC는 디블로킹 및 SAO를 둘 모두를 포함한다.
코딩된 샘플 값을 나타내기 위한 샘플 값 예측 및 변환 코딩을 활용하는 접근법 대신, 또는 그에 부가하여, 컬러 팔레트 기반의 코딩이 사용될 수도 있다. 팔레트 기반의 코딩은, 팔레트, 즉, 컬러 및 관련된 인덱스의 세트가 정의되고 코딩 단위 내의 각각의 샘플에 대한 값이 팔레트에서의 자신의 인덱스를 나타내는 것에 의해 표현되는 접근법의 일군을 가리킨다. 팔레트 기반의 코딩은, (텍스트 또는 간단한 그래픽과 같은 컴퓨터 스크린 콘텐츠를 나타내는 이미지 영역과 같은) 상대적으로 적은 수의 컬러를 갖는 코딩 단위에서 양호한 코딩 효율성을 획득할 수 있다. 팔레트 코딩의 코딩 효율성을 향상시키기 위해, 상이한 종류의 팔레트 인덱스 예측 접근법이 활용될 수 있거나, 또는 팔레트 인덱스는 더 큰 균질한 이미지 영역을 효율적으로 표현할 수 있도록 런 렝쓰 코딩될(run-length coded) 수 있다. 또한, CU가 CU 내에서 되풀이되지 않는 샘플 값을 포함하는 경우, 이스케이프 코딩(escape coding)이 활용될 수 있다. 이스케이프 코딩된 샘플은 팔레트 인덱스 중 임의의 것에 대한 참조 없이 송신된다. 대신, 그들의 값은 각각의 이스케이프 코딩된 샘플에 대해 개별적으로 나타내어진다.
디코딩된 픽쳐 버퍼(Decoded Picture Buffer; DPB)는 인코더에서 및/또는 디코더에서 사용될 수도 있다. 인터 예측에서의 참조를 위한 그리고 디코딩된 픽쳐를 출력 순서로 재정렬하기(reordering) 위한, 디코딩된 픽쳐를 버퍼링하는 두 가지 이유가 있다. H.264/AVC 및 HEVC가, 참조 픽쳐 마킹 및 출력 재정렬 둘 모두에 대해 상당한 양의 유연성을 제공하기 때문에, 참조 픽쳐 버퍼링 및 출력 픽쳐 버퍼링을 위한 별개의 버퍼는 메모리 리소스를 낭비할 수도 있다. 그러므로, DPB는 참조 픽쳐 및 출력 재정렬을 위한 통합된 디코딩 픽쳐 버퍼 버퍼링 프로세스(unified decoded picture buffering process)를 포함할 수도 있다. 디코딩된 픽쳐가 더 이상 참조로서 사용되지 않고 출력에 대해 필요로 되지 않을 때, 디코딩된 픽쳐는 DPB로부터 제거될 수도 있다.
H.264/AVC 및 HEVC의 많은 코딩 모드에서, 인터 예측을 위한 참조 픽쳐는 참조 픽쳐 목록에 대한 인덱스로 나타내어진다. 인덱스는, 일반적으로 더 작은 인덱스로 하여금 대응하는 신택스 엘리먼트에 대해 더 짧은 값을 갖게 하는 가변 길이 코딩으로 코딩될 수도 있다. H.264/AVC 및 HEVC에서, 각각의 양예측(bi-predictive)(B) 슬라이스에 대해 두 개의 참조 픽쳐 목록(참조 픽쳐 목록 0 및 참조 픽쳐 목록 1)이 생성되고, 각각의 인터 코딩된(P) 슬라이스에 대해 하나의 참조 픽쳐 목록(참조 픽쳐 목록 0)이 형성된다.
참조 픽쳐 목록 0 및 참조 픽쳐 목록 1과 같은 참조 픽쳐 목록은 두 단계에서 통상적으로 구성된다: 먼저, 초기 참조 픽쳐 목록이 생성된다. 초기 참조 픽쳐 목록은, 예를 들면, frame_num, POC, temporal_id(또는 TemporalId 또는 등등), 또는 GOP 구조와 같은 예측 계층 구조(hierarchy)에 대한 정보, 또는 이들의 임의의 조합에 기초하여 생성될 수도 있다. 둘째, 초기 참조 픽쳐 목록은, 슬라이스 헤더에 포함될 수도 있는, 참조 픽쳐 목록 수정 신택스 구조로서 또한 알려져 있는 참조 픽쳐 목록 재정렬(reference picture list reordering; RPLR) 커맨드에 의해 재정렬될 수도 있다. H.264/AVC에서, RPLR 커맨드는, 각각의 참조 픽쳐 목록의 시작으로 배열되는 픽쳐를 나타낸다. 이 제2 단계는 또한 참조 픽쳐 목록 수정 프로세스로서 칭해질 수도 있고, RPLR 커맨드는 참조 픽쳐 목록 수정 신택스 구조에 포함될 수도 있다. 참조 픽쳐 세트가 사용되면, 참조 픽쳐 목록 0은 먼저 RefPicSetStCurr0을, 후속하여 RefPicSetStCurr1을, 그리고 후속하여 RefPicSetLtCurr을 포함하도록 초기화될 수도 있다. 참조 픽쳐 목록 1은, 먼저 RefPicSetStCurr1을, 후속하여 RefPicSetStCurr0을 포함하도록 초기화될 수도 있다. HEVC에서, 초기 참조 픽쳐 목록은 참조 픽쳐 목록 수정 신택스 구조를 통해 수정될 수도 있는데, 여기서 초기 참조 픽쳐 목록 내의 픽쳐는 목록에 대한 엔트리 인덱스를 통해 식별될 수도 있다. 다시 말하면, HEVC에서, 참조 픽쳐 목록 수정은, 최종 참조 픽쳐 목록 내의 각각의 엔트리에 걸친 루프를 포함하는 신택스 구조에 인코딩되는데, 여기서 각각의 루프 엔트리는 초기 참조 픽쳐 목록에 대한 고정 길이 코딩된 인덱스이고, 픽쳐를 최종 참조 픽쳐 목록에서 오름차순으로 나타낸다.
H.264/AVC 및 HEVC를 비롯한 많은 코딩 표준은, 다수의 참조 픽쳐 중 어떤 참조 픽쳐가 특정한 블록에 대한 인터 예측을 위해 사용되는지를 나타내기 위해 사용될 수도 있는, 참조 픽쳐 목록에 대한 참조 픽쳐 인덱스를 유도하기 위한 디코딩 프로세스를 가질 수도 있다. 참조 픽쳐 인덱스는 인코더에 의해 몇몇 인터 코딩 모드에서 비트스트림으로 코딩될 수도 있거나 또는 그것은, 예를 들면, 몇몇 다른 인터 코딩 모드에서 이웃하는 블록을 사용하여 (인코더 및 디코더에 의해) 유도될 수도 있다.
모션 정보는 각각의 모션 보상 이미지 블록(motion compensated image block)과 관련되는 모션 벡터를 갖는 비디오 코덱에서 나타내어질 수도 있다. 이들 모션 벡터의 각각은 (인코더 측에서) 코딩될 또는 (디코더 측에서) 디코딩될 픽쳐에서의 이미지 블록 및 이전에 코딩된 또는 디코딩된 픽쳐 중 하나에서의 예측 소스 블록의 변위를 나타낼 수도 있다. 모션 벡터를 효율적으로 표현하기 위해, 그들 벡터는 블록 고유의 예측 모션 벡터에 대해 차분적으로(differentially) 코딩될 수도 있다. 비디오 코덱에서, 예측된 모션 벡터는, 예를 들면, 인접한 블록의 인코딩된 또는 디코딩된 모션 벡터의 중앙값을 계산하는 것에 의해, 미리 정의된 방식으로 생성될 수도 있다. 모션 벡터 예측을 생성하는 다른 방식은, 시간 참조 픽쳐에서의 인접한 블록 및/또는 동일 위치의 블록(co-located block)으로부터 후보 예측의 목록을 생성하고 선택된 후보를 모션 벡터 예측으로서 시그널링하는 것이다. 모션 벡터 값을 예측하는 것 이외에, 이전에 코딩된/디코딩된 픽쳐의 참조 인덱스가 예측될 수도 있다. 참조 인덱스는, 예를 들면, 시간 참조 픽쳐에서의 인접한 블록 및/또는 동일 위치의 블록으로부터 예측될 수도 있다. 또한, 고효율 비디오 코덱은, "병합하는/병합 모드(merging/merge mode)"로 칭해지는, 추가적인 모션 정보 코딩/디코딩 메커니즘을 활용할 수도 있는데, 각각의 이용 가능한 참조 픽쳐 목록에 대한 모션 벡터 및 대응하는 참조 픽쳐 인덱스를 포함할 수도 있는 모든 모션 필드 정보는 어떠한 수정 및 보정 없이 예측 및 사용된다. 유사하게, 모션 필드 정보를 예측하는 것은, 시간 참조 픽쳐에서의 인접한 블록 및/또는 동일 위치의 블록의 모션 필드 정보를 사용하여 수행될 수도 있고, 사용된 모션 필드 정보는 이용 가능한 인접한/동일 위치의 블록의 모션 필드 정보로 채워진 모션 필드 후보 목록의 목록 중에서 시그널링된다.
몇몇 비디오 코덱은, (디)코딩되고 있는 블록에 대해 단일의 예측 블록이 사용되는 단예측(uni-prediction), 및 두 개의 예측 블록이 결합되어 (디)코딩되고 있는 블록에 대한 예측을 형성하는 양예측을 가능하게 한다. 몇몇 비디오 코덱은, 잔차 정보를 추가하기 이전에 예측 블록의 샘플 값이 가중되는 가중된 예측(weighted prediction)을 가능하게 한다. 예를 들면, 승산적 가중 계수(multiplicative weighting factor) 및 가산적 오프셋(additive offset)이 적용될 수도 있다. 몇몇 비디오 코덱에 의해 가능하게 되는 명시적인 가중된 예측에서, 가중 계수 및 오프셋은, 예를 들면, 각각의 허용 가능한 참조 픽쳐 인덱스에 대한 슬라이스 헤더에서 코딩될 수도 있다. 몇몇 비디오 코덱에 의해 가능하게 되는 암시적인 가중된 예측에서, 가중 계수 및/또는 오프셋은 코딩되지 않지만, 그러나, 예를 들면, 참조 픽쳐의 상대적인 픽쳐 순서 카운트(picture order count; POC) 거리에 기초하여 유도된다.
인터 픽쳐 예측을 위해 모션 보상을 적용하는 것에 부가하여, 유사한 접근법이 인트라 픽쳐 예측에 적용될 수 있다. 이 경우, 변위 벡터는, 코딩될 또는 디코딩될 블록의 예측을 형성하기 위해, 동일한 픽쳐로부터 샘플의 블록이 복사될 수 있는 곳을 나타낸다. 이러한 종류의 인트라 블록 복사 방법은, 프레임 내의 반복되는 구조 - 예컨대 텍스트 또는 다른 그래픽 - 의 존재 하에서 코딩 효율성을 실질적으로 향상시킬 수도 있다.
비디오 코덱에서, 모션 보상 이후의 예측 잔차는, 먼저 변환 커널(예를 들면, DCT)로 변환되고 그 다음 코딩될 수도 있다. 이것의 이유는, 잔차 사이에 어떤 상관이 여전히 존재할 수도 있고, 변환은, 많은 경우에, 이 상관을 감소시키는 것을 도울 수도 있고 더욱 효율적인 코딩을 제공할 수도 있기 때문이다.
비디오 인코더는, 최적의 코딩 모드, 예를 들면, 소망되는 매크로블록 모드 및 관련된 모션 벡터를 찾기 위해 라그랑지안(Lagrangian) 비용 함수를 활용할 수도 있다. 이러한 종류의 비용 함수는, 손실성 코딩 방법으로 인한 (정확한 또는 추정된) 이미지 왜곡과 이미지 영역에서의 픽셀 값을 나타내는 데 필요한 정보의 (정확한 또는 추정된) 양을 함께 결부시키기 위해, 가중 계수(λ(람다)를) 사용한다:
여기서 C는 최소화될 라그랑지안 비용이고, D는 모드 및 모션 벡터를 고려한 이미지 왜곡(예를 들면, 평균 제곱 오차(Mean Squared Error))이고, R은 (후보 모션 벡터를 나타내기 위한 데이터의 양을 비롯한) 디코더에서 이미지 블록을 재구성하기 위한 필요한 데이터를 나타내는데 필요로 되는 비트의 수이다.
비디오 코딩 표준 및 명세는, 인코더가 코딩된 픽쳐를 코딩된 슬라이스 또는 등등으로 분할하는 것을 허용할 수도 있다. 픽쳐 내 예측은 통상적으로 슬라이스 경계를 넘어서면 디스에이블된다. 따라서, 슬라이스는 코딩된 픽쳐를 독립적으로 디코딩 가능한 조각으로 분할하는 방식으로서 간주될 수 있다. H.264/AVC 및 HEVC에서, 픽쳐 내 예측은 슬라이스 경계를 넘어서면 디스에이블될 수도 있다. 따라서, 슬라이스는 코딩된 픽쳐를 독립적으로 디코딩 가능한 조각으로 분할하는 방식으로 간주될 수 있고, 슬라이스는 따라서 종종 송신을 위한 기본 단위로서 간주된다. 많은 경우, 인코더는, 어떤 타입의 픽쳐 내 예측이 슬라이스 경계를 넘어서 턴오프되는지를 비트스트림에서 나타낼 수도 있고, 디코더 동작은, 예를 들면, 어떤 예측 소스가 이용 가능한지의 결론을 내릴 때 이 정보를 고려한다. 예를 들면, 이웃하는 매크로블록 또는 CU로부터의 샘플은, 이웃하는 매크로블록 또는 CU가 상이한 슬라이스에 상주하는 경우, 인트라 예측에 대해 이용 불가능한 것으로 간주될 수도 있다.
H.264/AVC 또는 HEVC 인코더의 출력 및 H.264/AVC 또는 HEVC 디코더의 입력을 위한 기본 단위는, 각각, 네트워크 추상 레이어(Network Abstraction Layer; NAL) 단위이다. 패킷 지향 네트워크를 통한 전송 또는 구조화된 파일로의 저장을 위해, NAL 단위는 패킷 또는 유사한 구조로 캡슐화될 수도 있다. 프레임화 구조(framing structure)를 제공하지 않는 송신 또는 저장 환경의 경우, H.264/AVC 및 HEVC에서 바이트스트림 포맷이 명시되었다. 바이트스트림 포맷은, 각각의 NAL 단위 전방에 시작 코드를 첨부하는 것에 의해 NAL 단위를 서로 분리한다. NAL 단위 경계의 잘못된 검출을 방지하기 위해, 인코더는 바이트 지향의 시작 코드 에뮬레이션 방지 알고리즘(byte-oriented start code emulation prevention algorithm)을 실행하는데, 이 알고리즘은, 시작 코드가 달리 발생하지 않으면, NAL 단위 페이로드에 에뮬레이션 방지 바이트를 추가한다. 패킷 지향 시스템과 및 스트림 지향 시스템 사이의 간단한 게이트웨이 동작을 가능하게 하기 위해, 바이트스트림 포맷이 사용 중이든지 또는 사용 중이지 않든지의 여부에 무관하게, 시작 코드 에뮬레이션 방지가 항상 수행될 수도 있다. NAL 단위는, 후속할 데이터의 타입의 표시 및 필요에 따라 에뮬레이션 방지 바이트와 함께 산재되는 RBSP 형태로 그 데이터를 포함하는 바이트를 포함하는 신택스 구조로서 정의될 수도 있다. 원시 바이트 시퀀스 페이로드(raw byte sequence payload; RBSP)는, NAL 단위로 캡슐화되는 정수 개의 바이트를 포함하는 신택스 구조로서 정의될 수도 있다. RBSP는 비어 있거나, 신택스 엘리먼트, 후속하여 RBSP 정지 비트 및 후속하여 0과 동일한 제로 개 이상의 후속하는 비트를 포함하는 데이터 비트의 문자열의 형태를 갖는다.
NAL 단위는 헤더 및 페이로드로 구성된다. H.264/AVC 및 HEVC에서, NAL 단위 헤더는 NAL 단위의 타입을 나타낸다.
H.264/AVC NAL 단위 헤더는 2 비트의 nal_ref_idc 신택스 엘리먼트를 포함하는데, 이것은, 0과 동일한 경우, NAL 단위에 포함되는 코딩된 슬라이스가 비참조 픽쳐(non-reference picture)의 일부이다는 것을 나타내고, 0보다 더 큰 경우, NAL 단위에 포함되는 코딩된 슬라이스가 참조 픽쳐의 일부이다는 것을 나타낸다. SVC 및 MVC NAL 단위의 헤더는, 스케일러빌러티(scalability) 및 멀티뷰 계층에 관련되는 다양한 표시를 추가적으로 포함할 수도 있다.
HEVC에서, 2 바이트 NAL 단위 헤더가 모든 명시된 NAL 단위 타입에 대해 사용된다. NAL 단위 헤더는, 하나의 예약 비트, 6 비트의 NAL 단위 타입 표시, 시간 레벨에 대한 3 비트의 nuh_temporal_id_plus1 표시(1보다 더 크거나 또는 동일하도록 요구받을 수도 있음) 및 6 비트의 nuh_layer_id 신택스 엘리먼트를 포함한다. temporal_id_plus1 신택스 엘리먼트는 NAL 단위에 대한 시간 식별자로 간주될 수도 있고, 제로 기반의 TemporalId 변수는 다음과 같이 유도될 수도 있다: TemporalId = temporal_id_plus1 - 1. 0과 동일한 TemporalId는 가장 낮은 시간 레벨에 대응한다. temporal_id_plus1의 값은, 두 개의 NAL 단위 헤더 바이트를 수반하는 시작 코드 에뮬레이션을 방지하기 위해 넌제로(non-zero)이도록 요구받는다. 선택된 값보다 더 큰 또는 동일한 TemporalId를 갖는 모든 VCL NAL 단위를 배제하는 것 및 모든 다른 VCL NAL 단위를 포함하는 것에 의해 생성되는 비트스트림은 적합한 상태로 남는다. 결과적으로, TID와 동일한 TemporalId를 갖는 픽쳐는, TID보다 더 큰 TemporalId를 갖는 어떠한 픽쳐도 인터 예측 참조로서 사용하지 않는다. 서브 레이어 또는 시간 서브 레이어가, TemporalId 변수의 특정한 값을 갖는 VCL NAL 단위 및 관련된 비VCL NAL 단위(non-VCL NAL unit)로 구성되는, 시간 스케일러블 비트스트림의 시간 스케일러블 레이어인 것으로 정의될 수도 있다. HEVC의 nuh_layer_id 신택스 엘리먼트는 스케일러빌러티 계층에 대한 정보를 전달할 수도 있다.
NAL 단위는 비디오 코딩 레이어(Video Coding Layer; VCL) NAL 단위 및 비VCL NAL 단위로 분류될 수 있다. VCL NAL 단위는 통상적으로 코딩된 슬라이스 NAL 단위이다. H.264/AVC에서, 코딩된 슬라이스 NAL 단위는 하나 이상의 코딩된 매크로블록을 나타내는 신택스 엘리먼트를 포함하는데, 하나 이상의 코딩된 매크로블록의 각각은 압축되지 않은 픽쳐에서의 샘플의 블록에 대응한다. HEVC에서, VCL NAL 단위는 하나 이상의 CU를 나타내는 신택스 엘리먼트를 포함한다.
H.264/AVC에서, 코딩된 슬라이스 NAL 단위는, 순간 디코딩 리프레시(Instantaneous Decoding Refresh; IDR) 픽쳐에서의 코딩된 슬라이스 또는 비IDR 픽쳐에서의 코딩된 슬라이스인 것으로 나타내어질 수 있다.
HEVC에서, 코딩된 슬라이스 NAL 단위는 다음의 타입 중 하나인 것으로 나타내어질 수 있다:
HEVC에서, 픽쳐 타입에 대한 약어는 다음과 같이 정의될 수도 있다: 트레일링(trailing; TRAIL) 픽쳐, 시간 서브 레이어 액세스(Temporal Sub-layer Access; TSA), 단계적 시간 서브 레이어 액세스(Step-wise Temporal Sub-layer Access; STSA), 랜덤 액세스 디코딩 가능 리딩(Random Access Decodable Leading; RADL) 픽쳐, 랜덤 액세스 스킵된 리딩(Random Access Skipped Leading; RASL) 픽쳐, 브로큰 링크 액세스(Broken Link Access; BLA) 픽쳐, 순간 디코딩 리프레시(Instantaneous Decoding Refresh; IDR) 픽쳐, 클린 램덤 액세스(Clean Random Access; CRA) 픽쳐.
인트라 랜덤 액세스 포인트(Intra Random Access Point; IRAP) 픽쳐로 또한 칭해질 수도 있는 랜덤 액세스 포인트(Random Access Point; RAP) 픽쳐는, 각각의 슬라이스 또는 슬라이스 세그먼트가, 16 이상 23 이하의 범위 내에 있는 nal 단위 타입을 갖는 픽쳐이다. 독립 레이어 내의 IRAP 픽쳐는 인트라 코딩된 슬라이스만을 포함한다. nuh_layer_id 값 currLayerId를 갖는 예측된 레이어에 속하는 IRAP 픽쳐는 P, B 및 I 슬라이스를 포함할 수도 있고, currLayerId와 동일한 nuh_layer_id를 갖는 다른 픽쳐로부터의 인터 예측을 사용할 수 없고, 자신의 직접 참조 레이어로부터의 레이어간 예측(inter-layer prediction)을 사용할 수도 있다. HEVC의 현재 버전에서, IRAP 픽쳐는 BLA 픽쳐, CRA 픽쳐 또는 IDR 픽쳐일 수도 있다. 베이스 레이어(base layer)를 포함하는 비트스트림 내의 제1 픽쳐는 IRAP 픽쳐이다. 필요한 파라미터 세트가 활성화될 필요가 있는 경우 그들이 이용 가능하다면, 독립 레이어에서의 IRAP 픽쳐 및 디코딩 순서에서 독립 레이어에서의 모든 후속하는 비RASL 픽쳐(non-RASL picture)는, 디코딩 순서에서 IRAP 픽쳐에 선행하는 임의의 픽쳐의 디코딩 프로세스를 수행하지 않고도 정확하게 디코딩될 수 있다. RAP 픽쳐가 아닌 인트라 코딩된 슬라이스만을 포함하는 픽쳐가 비트스트림에 존재할 수도 있다. nuh_layer_id 값 currLayerId를 갖는 예측된 레이어에 속하는 IRAP 픽쳐 및 디코딩 순서에서 currLayerId와 동일한 nuh_layer_id를 갖는 모든 후속하는 비RASL 픽쳐는, 필요한 파라미터 세트가 활성화될 필요가 있을 때 그들이 이용 가능한 경우 그리고 currLayerId와 동일한 nuh_layer_id를 갖는 레이어의 각각의 직접 참조 레이어의 디코딩이 초기화된 경우(즉, currLayerId와 동일한 nuh_layer_id를 갖는 레이어의 직접 참조 레이어의 모든 nuh_layer_id 값과 동일한 refLayerld에 대해 LayerInitializedFlag[refLayerld]가 1과 동일한 경우), 디코딩 순서에서 IRAP 픽쳐에 선행하는 currLayerId와 동일한 nuh_layer_id를 갖는 임의의 픽쳐의 디코딩 프로세스를 수행하지 않고도, 정확하게 디코딩될 수 있다.
HEVC에서, CRA 픽쳐는 디코딩 순서에서 비트스트림 내의 제1 픽쳐일 수도 있거나, 또는 비트스트림에서 나중에 나타날 수도 있다. HEVC의 CRA 픽쳐는, 디코딩 순서에서 CRA 픽쳐에 후속하지만 그러나 출력 순서에서 그것에 선행하는 소위 리딩 픽쳐를 허용한다. 소위 RASL 픽쳐인 리딩 픽쳐 중 몇몇은, CRA 픽쳐 이전에 디코딩된 픽쳐를 참조로서 사용할 수도 있다. 디코딩 및 출력 순서 둘 모두에서 CRA 픽쳐에 후속하는 픽쳐는, 랜덤 액세스가 CRA 픽쳐에서 수행되면 디코딩 가능할 수도 있고, 그러므로, 클린 랜덤 액세스가 IDR 픽쳐의 깨끗한 랜덤 액세스 기능성(functionality)과 유사하게 달성될 수도 있다.
CRA 픽쳐는 관련된 RADL 또는 RASL 픽쳐를 가질 수도 있다. CRA 픽쳐가 디코딩 순서에서 비트스트림의 제1 픽쳐인 경우, CRA 픽쳐는 디코딩 순서에서 코딩된 비디오 시퀀스의 제1 픽쳐이며, 임의의 관련된 RASL 픽쳐는 디코더에 의해 출력되지 않으며 디코딩 가능하지 않을 수도 있는데, 그들이 비트스트림에 존재하지 않는 픽쳐에 대한 참조를 포함할 수도 있기 때문이다.
리딩 픽쳐는 출력 순서에서 관련된 RAP 픽쳐에 선행하는 픽쳐이다. 관련된 RAP 픽쳐는 (존재한다면) 디코딩 순서에서의 이전 RAP 픽쳐이다. 리딩 픽쳐는 RADL 픽쳐 또는 RASL 픽쳐 중 어느 하나일 수도 있다.
모든 RASL 픽쳐는 관련된 BLA 또는 CRA 픽쳐의 리딩 픽쳐이다. 관련된 RAP 픽쳐가 BLA 픽쳐이거나 또는 비트스트림의 제1 코딩된 픽쳐인 경우, RASL 픽쳐는 출력되지 않고 정확하게 디코딩 가능하지 않을 수도 있는데, RASL 픽쳐가 비트스트림에 존재하지 않는 픽쳐에 대한 참조를 포함할 수도 있기 때문이다. 그러나, RASL 픽쳐는, RASL 픽쳐의 관련된 RAP 픽쳐 이전에 RAP 픽쳐로부터 디코딩이 시작된 경우 정확하게 디코딩될 수 있다. RASL 픽쳐는 비RASL 픽쳐의 디코딩 프로세스에 대한 참조 픽쳐로서 사용되지 않는다. 존재하는 경우, 모든 RASL 픽쳐는, 디코딩 순서에서, 동일한 관련된 RAP 픽쳐의 모든 트레일링 픽쳐에 선행한다. HEVC 표준의 몇몇 초안에서, RASL 픽쳐가 폐기 태깅된(Tagged for Discard; TFD) 픽쳐로 참조되었다.
모든 RADL 픽쳐는 리딩 픽쳐이다. RADL 픽쳐는 동일한 관련된 RAP 픽쳐의 트레일링 픽쳐의 디코딩 프로세스에 대한 참조 픽쳐로서 사용되지 않는다. 존재하는 경우, 모든 RADL 픽쳐는, 디코딩 순서에서, 동일한 관련된 RAP 픽쳐의 모든 트레일링 픽쳐에 선행한다. RADL 픽쳐는 디코딩 순서에서 관련된 RAP 픽쳐에 선행하는 어떠한 픽쳐도 참조하지 않으며, 따라서, 디코딩이 관련된 RAP 픽쳐로부터 시작하는 경우, 정확하게 디코딩될 수 있다. HEVC 표준의 몇몇 초안에서, RADL 픽쳐는 디코딩 가능한 리딩 픽쳐(Decodable Leading Picture; DLP)로 참조되었다.
CRA 픽쳐로부터 시작하는 비트스트림의 일부가 다른 비트스트림에 포함되는 경우, CRA 픽쳐와 관련되는 RASL 픽쳐는 정확하게 디코딩 가능하지 않을 수도 있을 것인데, 그 이유는, 그들 참조 픽쳐 중 일부가 결합된 비트스트림에 존재하지 않을 수도 있을 것이기 때문이다. 이러한 접합 동작을 간단하게 만들기 위해, CRA 픽쳐의 NAL 단위 타입은, 자신이 BLA 픽쳐이다는 것을 나타내도록 변경될 수 있다. BLA 픽쳐와 관련되는 RASL 픽쳐는 정확하게 디코딩 가능하지 않을 수도 있고 그러므로 출력/디스플레이되지 않는다. 더구나, BLA 픽쳐와 관련되는 RASL 픽쳐는 디코딩에서 생략될 수도 있다.
BLA 픽쳐는 디코딩 순서에서 비트스트림의 제1 픽쳐일 수도 있거나, 또는 비트스트림에서 나중에 나타날 수도 있다. 각각의 BLA 픽쳐는 새로운 코딩된 비디오 시퀀스를 시작하고, 디코딩 프로세스에 대해 IDR 픽쳐와 유사한 효과를 갖는다. 그러나, BLA 픽쳐는, 비어 있지 않는 참조 픽쳐 세트를 명시하는 신택스 엘리먼트를 포함할 수도 있다. BLA 픽쳐가 BLA_W_LP와 동일한 nal_unit_type을 갖는 경우, 그것은, 디코더에 의해 출력되지 않으며 디코딩 가능하지 않을 수도 있는 관련된 RASL 픽쳐를 가질 수도 있는데, 그들이 비트스트림에 존재하지 않는 픽쳐에 대한 참조를 포함할 수도 있기 때문이다. BLA 픽쳐가 BLA_W_LP와 동일한 nal_unit_type을 갖는 경우, 디코딩되도록 명시되는 관련된 RADL 픽쳐를 또한 가질 수도 있다. BLA 픽쳐가 BLA_W_DLP와 동일한 nal_unit_type을 갖는 경우, 그것은 관련된 RASL 픽쳐를 가지지 않지만, 그러나, 디코딩되도록 명시되는 관련된 RADL 픽쳐를 가질 수도 있다. BLA 픽쳐가 BLA_N_LP와 동일한 nal_unit_type을 갖는 경우, 그것은 어떠한 관련된 리딩 픽쳐도 가지지 않는다.
IDR_N_LP와 동일한 nal_unit_type을 갖는 IDR 픽쳐는 비트스트림에 존재하는 관련된 리딩 픽쳐를 가지지 않는다. IDR_W_LP와 동일한 nal_unit_type을 갖는 IDR 픽쳐는 비트스트림에 존재하는 관련된 RASL 픽쳐를 가지지 않지만, 그러나 비트스트림에서 관련된 RADL 픽쳐를 가질 수도 있다.
nal_unit_type의 값이 TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV _VCL_N10, RSV_VCL_N12, 또는 RSV_VCL_N14와 동일한 경우, 디코딩된 픽쳐는 동일한 시간 서브 레이어의 임의의 다른 픽쳐에 대한 참조로서 사용되지 않는다. 즉, HEVC에서, nal_unit_type의 값이 TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12, 또는 RSV_VCL_N14와 동일한 경우, 디코딩된 픽쳐는, 동일한 값의 TemporalId를 갖는 임의의 픽쳐의 RefPicSetStCurrBefore, RefPicSetStCurrAfter 및 RefPicSetLtCurr 중 어느 것에도 포함되지 않는다. TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12, 또는 RSV_VCL_N14와 동일한 nal_unit_type을 갖는 코딩된 픽쳐는, 동일한 값의 TemporalId를 갖는 다른 픽쳐의 디코딩 가능성에 영향을 주지 않으면서 폐기될 수도 있다.
트레일링 픽쳐는 출력 순서에서 관련된 RAP 픽쳐에 후속하는 픽쳐로서 정의될 수도 있다. 트레일링 픽쳐인 임의의 픽쳐는 RADL_N, RADL_R, RASL_N 또는 RASL_R과 동일한 nal_unit_type을 가지지 않는다. 리딩 픽쳐인 임의의 픽쳐는, 디코딩 순서에서, 동일한 RAP 픽쳐와 관련되는 모든 트레일링 픽쳐에 선행하도록 제한될 수도 있다. BLA_W_DLP 또는 BLA_N_LP와 동일한 nal_unit_type을 갖는 BLA 픽쳐와 관련되는 어떠한 RASL 픽쳐도 비트스트림에 존재하지 않는다. BLA_N_LP와 동일한 nal_unit_type을 갖는 BLA 픽쳐와 관련되는 또는 IDR_N_LP와 동일한 nal_unit_type을 갖는 IDR 픽쳐와 관련되는 어떠한 RADL 픽쳐도 비트스트림에 존재하지 않는다. CRA 또는 BLA 픽쳐와 관련되는 임의의 RASL 픽쳐는, 출력 순서에서, CRA 또는 BLA 픽쳐와 관련되는 임의의 RADL 픽쳐에 선행하도록 제한될 수도 있다. CRA 픽쳐와 관련되는 임의의 RASL 픽쳐는, 디코딩 순서에서 CRA 픽쳐에 선행하는 임의의 다른 RAP 픽쳐에 출력 순서에서 후속하도록 제한될 수도 있다.
HEVC에서는, 시간 서브 레이어 스위칭 포인트를 나타내기 위해 사용될 수 있는 TSA 및 STSA 픽쳐 타입의 두 가지 픽쳐 타입이 존재한다. N까지의 TemporalId를 갖는 시간 서브 레이어가 TSA 또는 STSA 픽쳐(제외적임)까지 디코딩되고 TSA 또는 STSA 픽쳐가 N + 1과 동일한 TemporalId를 갖는 경우, TSA 또는 STSA 픽쳐는, N + 1과 동일한 TemporalId를 갖는 (디코딩 순서에서) 모든 후속하는 픽쳐의 디코딩을 가능하게 한다. TSA 픽쳐 타입은 TSA 픽쳐 그 자체 및 디코딩 순서에서 TSA 픽쳐에 후속하는 동일한 서브 레이어의 모든 픽쳐에 제약을 부과할 수도 있다. 이들 픽쳐 중 어느 것도, 디코딩 순서에서 TSA 픽쳐에 선행하는 동일한 서브 레이어의 임의의 픽쳐로부터 인터 예측을 사용하도록 허용되지 않는다. TSA 정의는 또한, 디코딩 순서에서 TSA 픽쳐에 후속하는 상위 서브 레이어의 픽쳐에 제약을 부가할 수도 있다. 이들 픽쳐 중 어느 것도, 그 픽쳐가 TSA 픽쳐와 동일한 또는 더 높은 서브 레이어에 속하는 경우, 디코딩 순서에서 TSA 픽쳐에 선행하는 픽쳐를 참조하도록 허용되지 않는다. TSA 픽쳐는 0보다 더 큰 TemporalId를 갖는다. STSA는 TSA 픽쳐와 유사하지만 그러나 디코딩 순서에서 STSA 픽쳐에 후속하는 상위 서브 레이어의 픽쳐에 제약을 부과하지 않으며 그러므로 STSA 픽쳐가 존재하는 서브 레이어 상으로의 상방 스위칭(up-switching)만을 가능하게 한다.
비VCL NAL 단위는, 예를 들면, 다음의 타입 중 하나일 수도 있다: 시퀀스 파라미터 세트, 픽쳐 파라미터 세트, 보충 향상 정보(Supplemental Enhancement Information; SEI) NAL 단위, 액세스 단위 구분 기호, 시퀀스 NAL 단위의 끝, 비트스트림 NAL 단위의 끝, 또는 필러(filler) 데이터 NAL 단위. 파라미터 세트는 디코딩된 픽쳐의 재구성을 위해 필요로 될 수도 있고, 반면, 다른 비VCL NAL 단위 중 많은 것은 디코딩된 샘플 값의 재구성을 위해 필요하지 않다.
코딩된 비디오 시퀀스를 통해 변경되지 않고 남아 있는 파라미터는 시퀀스 파라미터 세트에 포함될 수도 있다. 디코딩 프로세스에 의해 필요로 될 수도 있는 파라미터 이외에, 시퀀스 파라미터 세트는, 버퍼링, 픽쳐 출력 타이밍, 렌더링, 및 리소스 예약에 중요할 수도 있는 파라미터를 포함하는 비디오 이용 가능성 정보(video usability information; VUI)를 옵션 사항으로(optionally) 포함할 수도 있다. 시퀀스 파라미터 세트를 전달하기 위한 H.264/AVC에서 명시되는 세 개의 NAL 단위가 존재한다: 시퀀스 내의 H.264/AVC VCL NAL 단위에 대한 모든 데이터를 포함하는 시퀀스 파라미터 세트 NAL 단위, 보조 코딩된 픽쳐에 대한 데이터를 포함하는 시퀀스 파라미터 세트 확장 NAL 단위, 및 MVC 및 SVC VCL NAL 단위에 대한 서브세트 시퀀스 파라미터 세트. HEVC에서, 시퀀스 파라미터 세트 RBSP는, 버퍼링 기간 SEI 메시지를 포함하는 하나 이상의 SEI NAL 단위 또는 하나 이상의 픽쳐 파라미터 세트 RBSP에 의해 참조될 수 있는 파라미터를 포함한다. 픽쳐 파라미터 세트는 몇몇 코딩된 픽쳐에서 변경되지 않을 가능성이 있는 그러한 파라미터를 포함한다. 픽쳐 파라미터 세트(RBSP)는 하나 이상의 코딩된 픽쳐의 코딩된 슬라이스 NAL 단위에 의해 참조될 수 있는 파라미터를 포함할 수도 있다.
HEVC에서, 비디오 파라미터 세트(video parameter set; VPS)는, 각각의 슬라이스 세그먼트 헤더에서 발견되는 신택스 엘리먼트에 의해 참조되는 PPS에서 발견되는 신택스 엘리먼트에 의해 참조되는 SPS에서 발견되는 신택스 엘리먼트의 콘텐츠에 의해 결정되는 바와 같은 제로 개 이상의 전체 코딩된 비디오 시퀀스에 적용되는 신택스 엘리먼트를 포함하는 신택스 구조로서 정의될 수도 있다.
비디오 파라미터 세트 RBSP는 하나 이상의 시퀀스 파라미터 세트 RBSP에 의해 참조될 수 있는 파라미터를 포함할 수도 있다.
비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(sequence parameter set; SPS), 및 픽쳐 파라미터 세트(picture parameter set; PPS) 사이의 관계 및 계층 구조는 다음과 같이 설명될 수도 있다. VPS는 파라미터 세트 계층 구조에서 그리고 스케일러빌러티 및/또는 3D 비디오의 맥락에서 SPS 한 레벨 위에 존재한다. VPS는 전체 코딩된 비디오 시퀀스에서 모든 (스케일러빌러티 또는 뷰) 레이어에 걸쳐 모든 슬라이스에 대해 공통인 파라미터를 포함할 수도 있다. SPS는 전체 코딩된 비디오 시퀀스에서 특정한 (스케일러빌러티 또는 뷰) 레이어의 모든 슬라이스에 대해 공통인 파라미터를 포함하며, 다수의 (스케일러빌러티 또는 뷰) 레이어에 의해 공유될 수도 있다. PPS는, 특정한 레이어 표현(하나의 액세스 단위에서 하나의 스케일러빌러티 또는 뷰 레이어 표현) 내의 모든 슬라이스에 대해 공통이며 다수의 레이어 표현 내의 모든 슬라이스에 의해 공유될 가능성이 있는 파라미터를 포함한다.
VPS는, 비트스트림 내의 레이어의 의존성 관계에 관한 정보뿐만 아니라, 전체 코딩된 비디오 시퀀스 내의 모든 (스케일러빌러티 또는 뷰) 레이어에 걸친 모든 슬라이스에 적용 가능한 많은 다른 정보를 제공할 수도 있다. VPS는, 기본 VPS, VPS 확장, 및 VPS VUI의 세 개의 부분을 포함하는 것으로 간주될 수도 있는데, 여기서 VPS 확장 및 VPS VUI는 옵션 사항으로 존재할 수도 있다. HEVC에서, 기본 VPS는, vps_extension() 신택스 구조가 없는 video_parameter_set_rbsp() 신택스 구조를 포함하는 것으로 간주될 수도 있다. video_parameter_set_rbsp() 신택스 구조는, 주로, HEVC 버전 1에 대해 이미 명시되었고 베이스 레이어 디코딩을 위해 유용할 수도 있는 신택스 엘리먼트를 포함한다. HEVC에서, VPS 확장은 vps_extension() 신택스 구조를 포함하는 것으로 간주될 수도 있다. vps_extension() 신택스 구조는 HEVC 버전 2에서 주로 다중 레이어 확장을 위해 명시되었고, 레이어 종속 관계를 나타내는 신택스 엘리먼트와 같은, 하나 이상의 비베이스 레이어(non-base layer)의 디코딩을 위해 유용할 수도 있는 신택스 엘리먼트를 포함한다. VPS VUI는, 디코딩 또는 다른 목적을 위해 유용할 수도 있지만 그러나 HEVC 디코딩 프로세스에서 사용될 필요가 없는 신택스 엘리먼트를 포함한다.
H.264/AVC 및 HEVC 신택스는 파라미터 세트의 많은 인스턴스를 허용하고, 각각의 인스턴스는 고유한 식별자로 식별된다. 파라미터 세트에 필요한 메모리 사용량을 제한하기 위해, 파라미터 세트 식별자의 값 범위는 제한되었다. H.264/AVC 및 HEVC에서, 각각의 슬라이스 헤더는, 슬라이스를 포함하는 픽쳐의 디코딩을 위해 활성인 픽쳐 파라미터 세트의 식별자를 포함하고, 각각의 픽쳐 파라미터 세트는 활성 시퀀스 파라미터 세트의 식별자를 포함한다. 결과적으로, 픽쳐 및 시퀀스 파라미터 세트의 송신은, 슬라이스의 송신과 정확하게 동기화되지 않아도 된다. 대신, 활성 시퀀스 및 픽쳐 파라미터 세트는 그들이 참조되기 이전의 임의의 순간에 수신되는 것으로 충분한데, 이것은 슬라이스 데이터에 대해 사용되는 프로토콜과 비교하여 더욱 신뢰성 있는 송신 메커니즘을 사용하여 "대역 외(out-of-band)"에서 파라미터 세트의 송신을 허용한다. 예를 들면, 파라미터 세트는 실시간 전송 프로토콜(Real-time Transport Protocol; RTP) 세션에 대한 세션 설명에서 파라미터로서 포함될 수 있다. 파라미터 세트가 대역 내에서 송신되는 경우, 에러 강건성을 향상시키기 위해 그들은 반복될 수 있다.
대역 외 송신, 시그널링 또는 저장은 액세스의 용이성 또는 세션 협상과 같은 송신 에러에 대한 허용 에러 이외의 다른 목적을 위해 추가적으로 또는 대안적으로 사용될 수 있다. 예를 들면, ISO 기본 미디어 파일 포맷을 준수하는 파일 내의 트랙의 샘플 엔트리는 파라미터 세트를 포함할 수도 있고, 반면 비트스트림 내의 코딩된 데이터는 파일 내의 다른 곳에 또는 다른 파일 내에 저장된다. 어구 "비트 스트림을 따르는"(예를 들면, 비트스트림을 따르는 것을 나타냄)은, 대역 외 데이터가 비트스트림과 관련되는 방식으로 대역 외 송신, 시그널링, 또는 저장을 나타내기 위해 청구항 및 설명된 실시형태에서 사용될 수도 있다. 어구 "비트스트림 또는 등등을 따르는 디코딩"은, 비트스트림과 관련되는 참조된 대역 외 데이터(이것은 대역 외 송신, 시그널링, 또는 스토리지로부터 획득될 수도 있음)를 디코딩하는 것을 가리킬 수도 있다.
파라미터 세트는 슬라이스로부터의 또는 다른 활성 파라미터 세트로부터의, 또는, 몇몇 경우에는, 버퍼링 기간 SEI 메시지와 같은 다른 신택스 구조로부터의 참조에 의해 활성화될 수도 있다.
SEI NAL 단위는, 출력 픽쳐의 디코딩에 필요하지 않지만 그러나 픽쳐 출력 타이밍, 렌더링, 에러 검출, 에러 은닉, 및 리소스 예약과 같은 관련 프로세스를 보조할 수도 있는 하나 이상의 SEI 메시지를 포함할 수도 있다. 여러 SEI 메시지가 H.264/AVC 및 HEVC에 명시되며, 유저 데이터 SEI 메시지는 조직 및 회사가 그들 자신의 사용을 위해 SEI 메시지를 명시하는 것을 가능하게 한다. H.264/AVC 및 HEVC는 명시된 SEI 메시지에 대한 신택스 및 의미론을 포함하지만 그러나 수신측(recipient)에서 메시지를 핸들링하기 위한 어떠한 프로세스도 정의되지 않는다. 결과적으로, 인코더는 그들이 SEI 메시지를 생성할 때 H.264/AVC 표준 또는 HEVC 표준을 따르도록 요구받고, H.264/AVC 표준 또는 HEVC 표준을 각각 준수하는 디코더는 출력 순서 적합성을 위해 SEI 메시지를 프로세싱하도록 요구받지 않는다. H.264/AVC 및 HEVC에서 SEI 메시지의 신택스 및 의미론을 포함시키는 이유 중 하나는, 상이한 시스템 명세가 보충 정보를 동일하게 해석하여 상호 운용하는 것을 허용하는 것이다. 시스템 명세는 인코딩 끝 및 디코딩 끝 둘 모두에서 특정한 SEI 메시지의 사용을 요구할 수 있고, 추가적으로 수신측에서 특정한 SEI 메시지를 핸들링하기 위한 프로세스가 명시될 수 있다는 것이 의도된다.
몇몇 네스팅 SEI 메시지가 AVC 및 HEVC 표준에서 명시되었거나 또는 다르게는 제안되었다. SEI 메시지를 네스팅하는 것의 아이디어는, 네스팅 SEI 메시지 내에 하나 이상의 SEI 메시지를 포함시키고 포함된 SEI 메시지를 비트스트림의 서브세트 및/또는 디코딩된 데이터의 서브세트와 관련시키기 위한 메커니즘을 제공하는 것이다. 네스팅 SEI 메시지는, SEI 메시지 그 자체를 네스팅하고 있지 않은 하나 이상의 SEI 메시지를 포함한다는 것이 규정될 수도 있다. 네스팅 SEI 메시지에 포함되는 SEI 메시지는 네스트화된 SEI 메시지로서 칭해질 수도 있다. 네스팅 SEI 메시지에 포함되지 않은 SEI 메시지는 네스트화되지 않은 SEI 메시지로 칭해질 수도 있다. HEVC의 스케일러블 네스팅 SEI 메시지는, (서브 비트스트림 추출 프로세스로부터 유래하는) 비트스트림 서브세트 또는 네스트화된 SEI 메시지가 적용되는 레이어의 세트를 식별하는 것을 가능하게 한다. 비트스트림 서브세트는 또한 서브 비트스트림으로 칭해질 수도 있다.
코딩된 픽쳐는 픽쳐의 코딩된 표현이다. H.264/AVC의 코딩된 픽쳐는 픽쳐의 디코딩에 필요로 되는 VCL NAL 단위를 포함한다. H.264/AVC에서, 코딩된 픽쳐는 주 코딩된 픽쳐(primary coded picture) 또는 리던던트 코딩된 픽쳐(redundant coded picture)일 수 있다. 주 코딩된 픽쳐는 유효한 비트스트림의 디코딩 프로세스에서 사용되고, 반면 리던던트 코딩된 픽쳐는 주 코딩된 픽쳐가 성공적으로 디코딩될 수 없는 경우에만 디코딩되어야 하는 리던던트 표현이다. HEVC에서는, 어떠한 리던던트 코딩된 픽쳐도 명시되지 않았다.
H.264/AVC에서, 액세스 단위(AU)는 주 코딩된 픽쳐 및 그것과 관련되는 NAL 단위를 포함한다. H.264/AVC에서, 액세스 단위 내의 NAL 단위의 출현 순서는 다음과 같이 제한된다. 옵션 사항인 액세스 단위 구분 기호 NAL 단위는 액세스 단위의 시작을 나타낼 수도 있다. 그 다음에는 제로 개 이상의 SEI NAL 단위가 후속된다. 주 코딩된 픽쳐의 코딩된 슬라이스는 다음에 나타난다. H.264/AVC에서, 주 코딩된 픽쳐의 코딩된 슬라이스 다음에 제로 개 이상의 리던던트 코딩된 픽쳐에 대한 코딩된 슬라이스가 후속될 수도 있다. 리던던트 코딩된 픽쳐는 픽쳐 또는 픽쳐의 일부의 코딩된 표현이다. 예를 들면, 송신에서의 손실 또는 물리적 저장 매체의 손상에 기인하여 주 코딩된 픽쳐가 디코더에 의해 수신되지 않으면 리던던트 코딩된 픽쳐가 디코딩될 수도 있다.
H.264/AVC에서, 액세스 단위는 또한, 주 코딩된 픽쳐를 보충하는 픽쳐이며 예를 들면 디스플레이 프로세스에서 사용될 수도 있는 보조 코딩된 픽쳐(auxiliary coded picture)를 포함할 수도 있다. 보조 코딩된 픽쳐는, 예를 들면, 디코딩된 픽쳐에서 샘플의 투명도 레벨을 명시하는 알파 채널 또는 알파 평면으로서 사용될 수도 있다. 알파 채널 또는 평면은, 적어도 부분적으로 투명한 픽쳐를 서로의 상부에 중첩시키는 것에 의해 출력 픽쳐가 형성되는 레이어화된 합성 또는 렌더링 시스템에서 사용될 수도 있다. 보조 코딩된 픽쳐는 단색 리던던트 코딩된 픽쳐와 동일한 신택스 및 의미 제약을 갖는다. H.264/AVC에서, 보조 코딩된 픽쳐는 주 코딩된 픽쳐와 동일한 수의 매크로블록을 포함한다.
HEVC에서, 코딩된 픽쳐는, 픽쳐의 모든 코딩 트리 단위를 포함하는 픽쳐의 코딩된 표현으로서 정의될 수도 있다. HEVC에서, 액세스 단위(AU)는, 명시된 분류 규칙에 따라 서로 관련되고, 디코딩 순서에서 연속적이며, nuh_layer_id의 임의의 특정한 값을 갖는 최대 하나의 픽쳐를 포함하는 NAL 단위의 세트로서 정의될 수도 있다. 코딩된 픽쳐의 VCL NAL 단위를 포함하는 것 외에도, 액세스 단위는 또한 비VCL NAL 단위를 포함할 수도 있다.
비트스트림은, 하나 이상의 코딩된 비디오 시퀀스를 형성하는 코딩된 픽쳐 및 관련된 데이터의 표현을 형성하는, NAL 단위 스트림 또는 바이트 스트림의 형태의 비트 시퀀스로서 정의될 수도 있다. 제1 비트스트림 다음에, 동일한 논리 채널에서, 예컨대 동일 파일에서 또는 통신 프로토콜의 동일한 연결에서, 제2 비트스트림이 후속될 수도 있다. (비디오 코딩의 맥락에서) 기본 스트림은 하나 이상의 비트스트림의 시퀀스로서 정의될 수도 있다. 제1 비트스트림의 끝은, 비트스트림의 끝(end of bitstream; EOB) NAL 단위로서 칭해질 수도 있고 비트스트림의 마지막 NAL 단위인 특정한 NAL 단위에 의해 나타내어질 수도 있다. HEVC 및 그것의 현재의 초안 확장에서, EOB NAL 단위는 0과 동일한 nuh_layer_id를 가지도록 요구받는다.
H.264/AVC에서, 코딩된 비디오 시퀀스는, 어떤 IDR 액세스 단위로부터(그 자신을 포함함), 다음 IDR 액세스 단위까지(그 자신을 제외함), 또는 비트스트림의 끝까지 중 더 먼저 나타나는 것까지의 디코딩 순서에서 연속하는 액세스 단위의 시퀀스인 것으로 정의된다.
HEVC에서, 코딩된 비디오 시퀀스(coded video sequence; CVS)는, 예를 들면, 디코딩 순서에서, 1과 동일한 NoRaslOutputFlag를 갖는 IRAP 액세스 단위, 후속하여, 1과 동일한 NoRaslOutputFlag를 갖는 IRAP 액세스 단위인 임의의 후속하는 액세스 단위까지의 그러나 그 임의의 후속하는 액세스 단위를 포함하지 않는 모든 후속하는 액세스 단위를 비롯한, 1과 동일한 NoRaslOutputFlag를 갖는 IRAP 액세스 단위가 아닌 제로 개 이상의 액세스 단위로 구성되는 액세스 단위의 시퀀스로서 정의될 수도 있다. IRAP 액세스 단위는 베이스 레이어 픽쳐가 IRAP 픽쳐인 액세스 단위로서 정의될 수도 있다. NoRaslOutputFlag의 값은, 디코딩 순서에서 비트스트림 내의 그 특정한 레이어에서 제1 픽쳐이며, 디코딩 순서에서 동일한 값의 nuh_layer_id를 갖는 시퀀스 NAL 단위의 끝에 후속하는 제1 IRAP 픽쳐인 각각의 IRAP 픽쳐, 각각의 BLA 픽쳐, 및 각각의 IDR 픽쳐에 대해 1과 동일하다. 멀티 레이어 HEVC에서, NoRaslOutputFlag의 값은, 각각의 IRAP 픽쳐에 대해, 그것의 nuh_layer_id가, LayerInitializedFlag[nuh_layer_id]가 0과 동일하고 LayerInitializedFlag[refLayerId]가 IdDirectRefLayer[nuh_layer_id][j]와 동일한 refLayerld의 모든 값에 대해 1과 동일하도록 하는 그러한 것인 경우, 1과 동일한데, 여기서 j는 0 이상 NumDirectRefLayers[nuh_layer_id] - 1 이하의 범위 내에 있다. 그렇지 않으면, NoRaslOutputFlag의 값은 HandleCraAsBlaFlag와 동일하다. 1과 동일한 NoRaslOutputFlag는, NoRaslOutputFlag가 설정되는 IRAP 픽쳐와 관련되는 RASL 픽쳐가 디코더에 의해 출력되지 않는 영향을 갖는다. 디코더를 제어할 수도 있는 플레이어 또는 수신기와 같은 외부 엔티티로부터 디코더에 HandleCraAsBlaFlag의 값을 제공하기 위한 수단이 있을 수도 있다. HandleCraAsBlaFlag는, 예를 들면, 비트스트림에서 새로운 위치를 찾는 또는 방송에 동조시켜 디코딩을 시작하고 그 다음 CRA 픽쳐로부터 디코딩을 시작하는 플레이어에 의해 1로 설정될 수도 있다. HandleCraAsBlaFlag가 CRA 픽쳐에 대해 1과 동일한 경우, CRA 픽쳐는, 마치 그것이 BLA 픽쳐인 것처럼 핸들링되고 디코딩된다.
HEVC에서, 코딩된 비디오 시퀀스는, 시퀀스의 끝(End of Sequence; EOS) NAL 단위로 칭해질 수도 있는 특정 NAL 단위가 비트스트림에서 나타나고 0과 동일한 nuh_layer_id를 갖는 경우, (상기의 명세에 대해) 추가적으로 또는 대안적으로 종료하도록 명시될 수도 있다.
HEVC에서, 코딩된 비디오 시퀀스 그룹(coded video sequence group; CVSG)은, 예를 들면, 아직 활성화되지 않았던 VPS RBSP firstVpsRbsp를 활성화하는 IRAP 액세스 단위, 후속하여, 비트스트림의 끝까지 또는 firstVpsRbsp와는 상이한 VPS RBSP를 활성화하는 액세스 단위까지(그러나 그 액세스 단위를 제외함) 중 디코딩 순서에서 더 빠른 것까지 firstVpsRbsp가 활성 VPS RBSP인, 디코딩 순서에서 모든 후속하는 액세스 단위로 집합적으로 구성되는 디코딩 순서에서 하나 이상의 연속적인 CVS로서 정의될 수도 있다.
픽쳐의 그룹(group of pictures; GOP) 및 그것의 특성은 다음과 같이 정의될 수도 있다. 임의의 이전 픽쳐가 디코딩되었는지의 여부에 무관하게 GOP가 디코딩될 수 있다. 개방(open) GOP는, 디코딩이 개방 GOP의 초기 인트라 픽쳐로부터 시작할 때, 출력 순서에서 초기 인트라 픽쳐에 선행하는 픽쳐가 정확하게 디코딩될 수 없을 수도 있는 그러한 픽쳐의 그룹이다. 다시 말하면, 개방 GOP의 픽쳐는, 이전 GOP에 속하는 픽쳐를 (인터 예측에서) 참조할 수도 있다. H.264/AVC 디코더는, H.264/AVC 비트스트림의 복구 포인트 SEI 메시지로부터 개방 GOP를 시작하는 인트라 픽쳐를 인식할 수 있다. 특정한 NAL 단위 타입, CRA NAL 단위 타입이 그것의 코딩된 슬라이스에 대해 사용될 수도 있기 때문에, HEVC 디코더는 개방 GOP를 시작하는 인트라 픽쳐를 인식할 수 있다. 닫힌 GOP는, 닫힌 GOP의 초기 인트라 픽쳐로부터 디코딩이 시작할 때 모든 픽쳐가 정확하게 디코딩될 수 있는 그러한 픽쳐의 그룹이다. 다시 말하면, 닫힌 GOP 내의 어떤 픽쳐도 이전 GOP의 임의의 픽쳐를 참조하지 않는다. H.264/AVC 및 HEVC에서, 닫힌 GOP는 IDR 픽쳐로부터 시작할 수도 있다. HEVC에서, 닫힌 GOP는 또한 BLA_W_RADL 또는 BLA_N_LP 픽쳐로부터 시작할 수도 있다. 개방 GOP 코딩 구조는, 참조 픽쳐의 선택에서의 더 큰 유연성에 기인하여, 닫힌 GOP 코딩 구조에 비교하여 압축에서 잠재적으로 더욱 효율적이다.
픽쳐의 구조(Structure of Pictures; SOP)는 디코딩 순서에서 연속하는 하나 이상의 코딩된 픽쳐로서 정의될 수도 있는데, 디코딩 순서에서 제1 코딩된 픽쳐는 최하위 시간 서브 레이어에 있는 참조 픽쳐이고, 디코딩 순서에서 잠재적으로 제1 코딩된 픽쳐를 제외한 어떠한 코딩된 픽쳐도 RAP 픽쳐가 아니다. 이전 SOP 내의 모든 픽쳐는 현재 SOP 내의 모든 픽쳐를 디코딩 순서에서 선행하고, 다음 SOP 내의 모든 픽쳐는 현재 SOP 내의 모든 픽쳐를 디코딩 순서에서 후행한다. SOP는 계층적이고 반복적인 인터 예측 구조를 나타낼 수도 있다. 용어 픽쳐의 그룹(GOP)은, 때로는, 용어 SOP와 상호 교환 가능하게 사용될 수도 있으며 SOP의 의미론과 동일한 의미론을 갖는다.
H.264/AVC 및 HEVC의 비트스트림 신택스는, 특정한 픽쳐가 임의의 다른 픽쳐의 인터 예측을 위한 참조 픽쳐인지의 여부를 나타낸다. 임의의 코딩 타입(I, P, B)의 픽쳐는, H.264/AVC 및 HEVC에서 참조 픽쳐 또는 비참조 픽쳐일 수 있다.
H.264/AVC는, 디코더에서의 메모리 소비를 제어하기 위해, 디코딩된 참조 픽쳐 마킹을 위한 프로세스를 명시한다. M으로 지칭되는, 인터 예측을 위해 사용되는 참조 픽쳐의 최대 수는 시퀀스 파라미터 세트에서 결정된다. 참조 픽쳐가 디코딩되는 경우, 그것은 "참조용으로 사용됨"으로 마킹된다. 참조 픽쳐의 디코딩이 M 개보다 많은 픽쳐를 "참조용으로 사용됨"으로 마킹되게 한 경우, 적어도 하나의 픽쳐는 "참조용으로 사용되지 않음"으로 마킹된다. 디코딩된 참조 픽쳐 마킹을 위한 두 가지 타입의 동작이 존재한다: 적응형 메모리 제어(adaptive memory control) 및 슬라이딩 윈도우(sliding window). 디코딩된 참조 픽쳐 마킹을 위한 동작 모드는 픽쳐 기반으로 선택된다. 적응형 메모리 제어는, 어떤 픽쳐가 "참조용으로 사용되지 않음"으로 마킹되는지를 명시적으로 시그널링하는 것을 가능하게 하고, 또한, 단기(short-term) 참조 픽쳐에 장기(long-term) 인덱스를 할당할 수도 있다. 적응형 메모리 제어는 비트스트림에서 메모리 관리 제어 동작(memory management control operation; MMCO) 파라미터의 존재를 필요로 할 수도 있다. MMCO 파라미터는 디코딩된 참조 픽쳐 마킹 신택스 구조에 포함될 수도 있다. 슬라이딩 윈도우 동작 모드가 사용 중이고 "참조용으로 사용됨"으로 마킹되어 있는 M 개의 픽쳐가 존재하는 경우, "참조용으로 사용됨"으로 마킹되는 이들 단기 참조 픽쳐 중 제1 디코딩된 픽쳐인 단기 참조 픽쳐는, "참조용으로 사용되지 않음"으로 마킹된다. 다시 말하면, 슬라이딩 윈도우 동작 모드는 단기 참조 픽쳐 중에서 선입 선출(first-in-first-out) 버퍼링 동작으로 나타나게 된다.
H.264/AVC에서의 메모리 관리 제어 동작 중 하나는, 현재 픽쳐를 제외한 모든 참조 픽쳐로 하여금 "참조용으로 사용되지 않음"으로 마킹되게 한다. 순간 디코딩 리프레시(IDR) 픽쳐는 인트라 코딩된 슬라이스만을 포함하며, 참조 픽쳐의 유사한 "리셋"을 야기한다.
HEVC에서, 참조 픽쳐 마킹 신택스 구조 및 관련된 디코딩 프로세스는 사용되지 않지만, 그러나 대신, 참조 픽쳐 세트(reference picture set; RPS) 신택스 구조 및 디코딩 프로세스가 유사한 목적을 위해 대신 사용된다. 픽쳐에 대해 유효한 또는 활성인 참조 픽쳐 세트는, 픽쳐에 대한 참조로서 사용되는 모든 참조 픽쳐 및 디코딩 순서에서 임의의 후속하는 픽쳐에 대해 "참조용으로 사용됨"으로 마킹된 상태로 유지되는 모든 참조 픽쳐를 포함한다. 참조 픽쳐 세트의 여섯 개의 서브세트가 존재하는데, 이들은, 말하자면, RefPicSetStCurr0(RefPicSetStCurrBefore로도 알려짐), RefPicSetStCurr1(RefPicSetStCurrAfter로도 알려짐), RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, 및 RefPicSetLtFoll로 칭해진다. RefPicSetStFoll0 및 RefPicSetStFoll1은 또한, 하나의 서브세트 RefPicSetStFoll을 공동으로 형성하는 것으로 간주될 수도 있다. 6개의 서브세트의 표기법은 다음과 같다. "Curr"은, 현재 픽쳐의 참조 픽쳐 목록에 포함되는 참조 픽쳐를 가리키며, 그러므로, 현재 픽쳐에 대한 인터 예측 참조로서 사용될 수도 있다. "Foll"은 현재 픽쳐의 참조 픽쳐 목록에 포함되지 않지만 그러나 참조 픽쳐로서 디코딩 순서에서 후속하는 픽쳐에서 사용될 수도 있는 참조 픽쳐를 가리킨다. "St"는, 그들의 POC 값의 소정 수의 최하위 비트를 통해 일반적으로 식별될 수도 있는 단기 참조 픽쳐를 가리킨다. "Lt"는, 구체적으로 식별되며, 언급된 소정 수의 최하위 비트에 의해 표현될 수 있는 것보다, 현재 픽쳐에 대해 POC 값의 더 큰 차이를 일반적으로 갖는 장기 참조 픽쳐를 가리킨다. "0"은 현재 픽쳐의 것보다 더 작은 POC 값을 갖는 참조 픽쳐를 가리킨다. "1"은 현재 픽쳐의 것보다 더 큰 POC 값을 갖는 참조 픽쳐를 가리킨다. RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0 및 RefPicSetStFoll1은 집합적으로 참조 픽쳐 세트의 단기 서브세트로서 칭해진다. RefPicSetLtCurr 및 RefPicSetLtFoll은 집합적으로 참조 픽쳐 세트의 장기 서브세트로서 칭해진다.
HEVC에서, 참조 픽쳐 세트는 시퀀스 파라미터 세트에서 명시될 수도 있고, 참조 픽쳐 세트에 대한 인덱스를 통해 슬라이스 헤더에서 사용될 수도 있다. 참조 픽쳐 세트는 또한 슬라이스 헤더에서 명시될 수도 있다. 참조 픽쳐 세트는 독립적으로 코딩될 수도 있거나 또는 다른 참조 픽쳐 세트로부터 예측될 수도 있다(인터 RPS 예측으로 알려짐). 참조 픽쳐 세트 코딩의 타입 둘 모두에서, 참조 픽쳐가 현재 픽쳐에 의해 참조용으로 사용되는지(*Curr 목록에 포함됨) 또는 사용되지 않는지(*Foll 목록에 포함됨)의 여부를 나타내는 플래그(used_by_curr_pic_X_flag)가 각각의 참조 픽쳐에 대해 추가적으로 송신된다. 현재 슬라이스에 의해 사용되는 참조 픽쳐 세트에 포함되는 픽쳐는 "참조용으로 사용됨"으로 마킹되고, 현재 슬라이스에 의해 사용되는 참조 픽쳐 세트에 없는 픽쳐는 "참조용으로 사용되지 않음"으로 마킹된다. 현재 픽쳐가 IDR 픽쳐인 경우, RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, 및 RefPicSetLtFoll은 모두 빈 상태로 설정된다.
스케일러블 비디오 코딩은, 하나의 비트스트림이 상이한 비트레이트, 해상도 또는 프레임 레이트에서 콘텐츠의 다수의 표현을 포함할 수 있는 코딩 구조를 가리킬 수도 있다. 이들 경우, 수신기는 자신의 특성(예를 들면, 디스플레이 디바이스와 가장 잘 매치하는 해상도)에 따라 소망되는 표현을 추출할 수 있다. 대안적으로, 서버 또는 네트워크 엘리먼트는, 예를 들면, 수신기의 프로세싱 능력 또는 네트워크 특성에 따라 수신기로 송신될 비트스트림의 일부분을 추출할 수 있다. 스케일러블 비트스트림은, 이용 가능한 가장 낮은 품질의 비디오를 제공하는 "베이스 레이어" 및 수신되어 하위 레이어(lower layer)와 함께 디코딩될 때 비디오 품질을 향상시키는 하나 이상의 향상 레이어로 구성될 수도 있다. 향상 레이어에 대한 코딩 효율성을 향상시키기 위해, 그 레이어의 코딩된 표현은 하위 레이어에 의존할 수도 있다. 예를 들면, 향상 레이어의 모션 및 모드 정보는 하위 레이어로부터 예측될 수도 있다. 유사하게, 하위 레이어의 픽셀 데이터는, 향상 레이어에 대한 예측을 생성하기 위해 사용될 수도 있다.
품질 스케일러빌러티(신호 대 잡음(Signal-to-Noise) 또는 SNR로도 또한 알려짐) 및/또는 공간 스케일러빌러티를 위한 스케일러블 비디오 코덱은 다음과 같이 구현될 수도 있다. 베이스 레이어의 경우, 종래의 비스케일러블(non-scalable) 비디오 인코더 및 디코더가 사용된다. 베이스 레이어의 재구성된/디코딩된 픽쳐는 향상 레이어에 대한 참조 픽쳐 버퍼에 포함된다. H.264/AVC, HEVC, 및 인터 예측을 위해 참조 픽쳐 목록(들)을 사용하는 유사한 코덱에서, 베이스 레이어 디코딩된 픽쳐는, 향상 레이어의 디코딩된 참조 픽쳐와 유사하게 향상 레이어 픽쳐의 코딩/디코딩을 위해 참조 픽쳐 목록(들)에 삽입될 수도 있다. 결과적으로, 인코더는 인터 예측 참조로서 베이스 레이어 참조 픽쳐를 선택할 수도 있고 코딩된 비트스트림 내의 참조 픽쳐 인덱스와 함께 그것의 사용을 나타낼 수도 있다. 디코더는 비트스트림으로부터, 예를 들면, 참조 픽쳐 인덱스로부터, 베이스 레이어 픽쳐가 향상 레이어에 대한 인터 예측 참조로서 사용된다는 것을 디코딩한다. 디코딩된 베이스 레이어 픽쳐가 향상 레이어에 대한 예측 참조로서 사용되는 경우, 그것은 레이어간 참조 픽쳐로 칭해진다.
품질 스케일러빌러티에 추가하여, 다른 스케일러빌러티 모드 또는 스케일러빌러티 차원이 또한 존재할 수도 있는데, 이들은 다음을 포함할 수도 있지만 그러나 이들로 제한되지는 않는다:
- 품질 스케일러빌러티: 베이스 레이어 픽쳐는 향상 레이어 픽쳐보다 더 낮은 품질에서 코딩되는데, 이것은, 예를 들면, 향상 레이어에서보다 베이스 레이어에서 더 큰 양자화 파라미터 값(즉, 변환 계수 양자화를 위한 더 큰 양자화 단계 사이즈)을 사용하여 달성될 수도 있다. 품질 스케일러빌러티는 또한, 하기에서 설명되는 바와 같이, 미세한 규모의 또는 미세한 세분성 스케일러빌러티(fine-grain or fine-granularity scalability; FGS), 중간 규모의 또는 중간 세분성 스케일러빌러티(medium-grain or medium-granularity scalability; MGS) 및/또는 큰 규모의 또는 큰 세분성 스케일러빌러티(coarse-grain or coarse-granularity scalability; CGS)로 분류될 수도 있다.
- 공간 스케일러빌러티: 베이스 레이어 픽쳐는 향상 레이어 픽쳐보다 더 낮은 해상도(즉, 더 적은 샘플을 가짐)에서 코딩된다. 공간 스케일러빌러티 및 품질 스케일러빌러티, 특히 그것의 큰 규모의 스케일러빌러티 타입은, 때로는, 동일한 타입의 스케일러빌러티로 간주될 수도 있다.
- 비트 깊이 스케일러빌러티: 베이스 레이어 픽쳐는 향상 레이어 픽쳐(예를 들면, 10 또는 12 비트)보다 더 낮은 비트 깊이(예를 들면, 8 비트)에서 코딩된다.
- 크로마 포맷 스케일러빌러티: 베이스 레이어 픽쳐는 향상 레이어 픽쳐(예를 들면, 4:4:4 포맷)보다 크로마 샘플 어레이에서 더 낮은 공간 해상도를 제공한다(예를 들면, 4:2:0 크로마 포맷으로 코딩됨).
- 컬러 색역(gamut) 스케일러빌러티: 향상 레이어 픽쳐는 베이스 레이어 픽쳐보다 더 풍부하고 더 넓은 컬러 표현 범위를 가진다 - 예를 들면, 향상 레이어는 UHDTV(ITU-R BT.2020) 컬러 색역을 가질 수도 있고 베이스 레이어는 ITU-R BT.709 컬러 색역을 가질 수도 있다.
- 멀티뷰 코딩으로 또한 칭해질 수도 있는 뷰 스케일러빌러티. 베이스 레이어는 제1 뷰를 나타내고, 반면 향상 레이어는 제2 뷰를 나타낸다.
- 깊이 향상 코딩으로 또한 칭해질 수도 있는 깊이 스케일러빌러티. 비트스트림의 한 레이어 또는 몇몇 레이어는 텍스쳐 뷰(들)를 나타낼 수도 있고, 한편 다른 레이어 또는 레이어들은 깊이 뷰(들)를 나타낼 수도 있다.
- (하기에서 설명되는 바와 같은) 주목 영역(region-of-interest) 스케일러빌러티.
- 인터레이스 대 프로그레시브 스케일러빌러티(interlaced-to-progressive scalability)(필드 대 프레임(field-to-frame) 스케일러빌러티로서 또한 알려짐): 베이스 레이어의 코딩된 인터레이스 소스 콘텐츠 자료(coded interlaced source content material)는 프로그레시브 소스 콘텐츠를 표현하는 향상 레이어로 향상된다. 베이스 레이어의 코딩된 인터레이스 소스 콘텐츠는 코딩된 필드, 필드 쌍을 나타내는 코딩된 프레임, 또는 이들의 혼합을 포함할 수도 있다. 인터레이스 대 프로그레시브 스케일러빌러티에서, 베이스 레이어 픽쳐는, 그것이 하나 이상의 향상 레이어 픽쳐에 대한 적절한 참조 픽쳐가 되도록, 리샘플링될 수도 있다.
- 하이브리드 코덱 스케일러빌러티(코딩 표준 스케일러빌러티로서 또한 알려짐): 하이브리드 코덱 스케일러빌러티에서, 베이스 레이어 및 향상 레이어의 비트스트림 신택스, 의미론 및 디코딩 프로세스는 상이한 비디오 코딩 표준에서 명시된다. 따라서, 베이스 레이어 픽쳐는 향상 레이어 픽쳐와는 상이한 코딩 표준 또는 포맷에 따라 코딩된다. 예를 들면, 베이스 레이어는 H.264/AVC로 코딩될 수도 있고, 향상 레이어는 HEVC 멀티 레이어 확장으로 코딩될 수도 있다. 더 일반적으로, 하이브리드 코덱 스케일러빌러티에서, 하나 이상의 레이어는 하나의 코딩 표준 또는 명세에 따라 코딩될 수도 있고 다른 하나 이상의 레이어는 다른 코딩 표준 또는 명세에 따라 코딩될 수도 있다. 예를 들면, H.264/AVC의 MVC 확장에 따라 코딩되는 두 개의 레이어(그 중 하나는 H.264/AVC에 따라 코딩되는 베이스 레이어임), 및 MV-HEVC에 따라 코딩되는 하나 이상의 추가적인 레이어가 존재할 수도 있다. 더구나, 코딩 표준 또는 명세 - 이것에 따라 동일한 비트스트림의 상이한 레이어가 코딩됨 - 의 수는, 하이브리드 코덱 스케일러빌러티에서 두 개로 제한되지 않을 수도 있을 것이다.
스케일러빌러티 타입 중 많은 것은 결합되어 함께 적용될 수도 있다는 것이 이해되어야 한다. 예를 들면, 컬러 색역 스케일러빌러티 및 비트 깊이 스케일러빌러티가 결합될 수도 있다.
상기의 스케일러빌러티 경우에서, 베이스 레이어 정보는 추가적인 비트레이트 오버헤드를 최소화하기 위해 향상 레이어를 코딩하는 데 사용될 수도 있다.
스케일러빌러티는 두 가지 방식으로 가능하게 될 수도 있다. 스케일러블 표현의 하위 레이어로부터 픽셀 값 또는 신택스의 예측을 수행하기 위한 새로운 코딩 모드를 도입하는 것 또는 하위 레이어 픽쳐를 상위 레이어의 참조 픽쳐 버퍼(디코딩된 픽쳐 버퍼, DPB)에 배치하는 것 중 어느 하나에 의해. 제1 접근법은 더 유연하며 따라서 대부분의 경우 더 나은 코딩 효율성을 제공할 수 있다. 그러나 제2의, 참조 프레임 기반의 스케일러빌러티 접근법은, 이용 가능한 코딩 효율성 이득의 대부분을 여전히 달성하면서, 단일 레이어 코덱에 대한 최소 변경을 가지면서 아주 효율적으로 구현될 수 있다. 본질적으로 참조 프레임 기반의 스케일러빌러티 코덱은, 단지 외부 수단에 의해 DPB 관리를 돌보면서, 모든 레이어에 대해 동일한 하드웨어 또는 소프트웨어 구현을 활용하는 것에 의해 구현될 수도 있다.
병렬 프로세싱을 활용할 수 있기 위해서, 이미지는 독립적으로 코딩 가능하고 디코딩 가능한 이미지 세그먼트(슬라이스 또는 타일)로 분할될 수도 있다. 슬라이스는, 디폴트 코딩 또는 디코딩 순서에서 프로세싱되는 소정 개수의 기본 코딩 단위로 구성되는 이미지 세그먼트를 가리킬 수도 있고, 한편 타일은, 개개의 프레임으로서 적어도 어느 정도까지 프로세싱되는 직사각형 이미지 영역으로서 정의된 이미지 세그먼트를 가리킬 수도 있다.
이하에서, 한 실시형태에 따른 방법이 도 7의 블록도, 도 8a 내지 도 8c 및 도 9의 플로우차트를 참조하여 더욱 상세히 설명될 것이다. 도 7은, 한 실시형태에 따른, 모션 벡터 결정 엘리먼트(700)를 단순화된 블록도로서 예시한다. 모션 벡터 결정 엘리먼트(700)의 기능성은 인터 예측기(inter predictor)(306, 406)(도 4)에 포함될 수도 있거나 또는 그것은 인코더(500)의 별개의 엘리먼트일 수도 있다. 현재 코딩될 코딩 단위(900)는 현재 코딩 단위로 칭해질 수도 있다. 병진 기본 모션 벡터(b0)는 기본 모션 벡터 선택기(702)에 의해 현재 코딩 단위(820)에 대해 선택될 수도 있다(902). 병진 기본 모션 벡터(b0)는 하나 이상의 이전에 코딩된 코딩 단위의 모션 벡터 중에서 선택될 수도 있다. 다시 말하면, 기본 모션 벡터 선택기(702)는 병진 기본 모션 벡터(b0)가 선택될 수도 있는 후보 위치의 세트의 정보에 액세스할 수도 있다. 선택된 병진 기본 모션 벡터는 소스 모션 벡터로 또한 칭해질 수도 있다. 예측을 위한 소스 모션 벡터의 위치는 비트스트림에서 나타내어질 수도 있고, 후보 위치의 세트로부터 기본 모션 벡터 선택기(702)에 의해 선택될 수도 있다. 한 예로서, 후보 위치의 세트는 현재 코딩 단위(또는 예측 단위) 바로 위의 위치 및 코딩 단위의 좌측 상의 위치를 포함할 수도 있다.
후보 위치의 세트의 정보 및 어쩌면 대응하는 모션 벡터는, 하나 이상의 다른 코딩 단위의 이전의 인코딩 동안 메모리에 저장되었을 수도 있다.
모션 필드 생성 블록(704)은, 예를 들면, 다음과 같이 현재 코딩 단위를 커버하는 평활한 연속 모션 벡터 필드(830)를 생성할 수도 있다. 성분(bx, by)을 갖는 선택된 기본 모션 벡터(b0)는 모션 필드 생성 블록(704)에 의해 사용되어 적어도 제1 병진 기본 모션 벡터 성분(bx, by)에 대한 예측을 정의할 수도 있다(904). 모션 필드 생성 블록(704)은, 제1 정밀도를 사용하는 것에 의해, 제1 병진 모션 벡터 성분(bx, by)에 대한 개선치(refinement)(rbx, rby)를 추가로 정의할 수도 있다(906). 모션 필드 생성 블록(704)은 또한, 현재 코딩 단위(예를 들면, 샘플의 블록)의 하나 이상의 다른 픽셀(샘플)에 대한 모션 벡터 예측을 수행할 수도 있다. 한 실시형태에 따르면, 모션 필드 생성 블록(704)은 현재 코딩 단위의 각각의 픽셀에 대한 모션 벡터 예측을 수행하여 각각의 픽셀에 대한 모션 벡터 예측을 획득한다. 선택된 기본 모션 벡터(b0)에 대한 모션 벡터 예측 및 하나 이상의 다른 픽셀에 대한 모션 벡터 예측이 정의되면, 모션 필드 생성 블록(704)은 또한 이들 모션 벡터에 기초하여 적어도 하나의 고차 모션 벡터 성분(a0, a1)에 대한 예측을 정의할 수도 있다(908). 모션 필드 생성 블록(704)은, 제1 정밀도와는 상이한 제2 정밀도를 사용하여, 고차 모션 벡터 성분(들)(a0, a1)에 대한 개선치(ra0, ra1)를 추가로 정의할 수도 있다(910). 모션 필드 생성 블록(704)은, 제1 모션 벡터를 계산하기 위해, 제1 병진 기본 모션 벡터 성분(bx, by), 제1 병진 모션 벡터 성분(bx, by)에 대한 개선치(rbx, rby), 적어도 하나의 고차 모션 벡터 성분(a0, a1)에 대한 예측, 및 고차 모션 벡터 성분(a0, a1)에 대한 개선치(ra0, ra1)를 사용할 수도 있다(912). 그러나, 제1 모션 벡터를 계산하기 위해, 제1 병진 모션 벡터 성분에 대한 개선치(rbx, rby) 및/또는 고차 모션 벡터 성분(a0, a1)에 대한 개선치(ra0, ra1)를 정의 및 사용하는 것이 항상 필요하지는 않을 수도 있다는 것을 유의해야 한다.
평활한 연속 모션 벡터 필드는, 예를 들면, 상기 정의된 데이터를 적용하여 모션 벡터의 필드(세트)를 현재 코딩 단위 내의 샘플 또는 샘플의 블록 위치의 함수로서 생성하는 것에 의해 생성될 수도 있다. 한 예로서, 기본 병진 모션 벡터 성분(bx, by)은, 승수(multiplier)(Sb)를 사용하여 스케일링된 개선치(rbx, rby)를 예측된 모션 벡터 성분(pbx, pby)에 추가하는 것에 의해 계산될 수도 있다:
그러나, 개선치 정보 및 기본 모션 벡터의 소망되는 정밀도가 동일한 경우(예를 들면, 기본 벡터 및 예측된 벡터 둘 모두가 1/4 샘플 정확도에서 평가되고 개선치 정보가 1/4 샘플 정확도에서 또한 시그널링되는 경우), 스케일링 파라미터(Sb)는 1로 설정될 수 있고 스케일링 동작은 생략될 수 있다.
고차 모션 계수(a0, a1)는 또한 그들 각각의 예측된 값(pa0, Pa1)으로부터 예측될 수도 있다. 이 경우, 모션 계수(a0 및 a1)는 고차 정밀도 승수(sa) 및 시그널링된 개선치 값(ra0, ra1)에 기초하여 다음과 같이 계산될 수도 있다:
또한, 고차 모션 계수의 정밀도가 개선치의 정밀도와 동일한 경우에도, 스케일링 동작은 생략될 수 있다.
한 실시형태에 따르면, 병진 모션 이외에, 회전 및 줌을 핸들링할 수 있는 제한된 아핀 모션 모델(restricted affine motion model)이 사용될 수도 있다. 이 경우, 주어진 샘플 또는 샘플 그룹에 대한 모션 벡터는 다음과 같이 계산될 수 있다:
여기서, (vx, vy)는, 위치(x0, y0)에서의 기본 모션 벡터(bx, by) 및 모션 벡터 필드 적응을 샘플의 위치의 함수로서 정의하는 두 개의 파라미터(a0 및 a1)가 주어지면, 위치(x, y)에 대한 결과적으로 나타나는 모션 벡터이다.
도 8a 및 도 8b는 코딩 단위의 모션 벡터 필드를 정의하는 기본 모션 벡터에 대한 몇몇 가능한 선택을 묘사한다. 도 8a의 경우, 좌측 상부(822) 서브 블록(또는 샘플)에 대한 모션 벡터(b0) 및 우측 상부(824) 서브 블록(또는 샘플)에 대한 모션 벡터(b1)가 계산되고 이들 모션 벡터 사이의 수평 차이가 사용되어, 모션 벡터 필드(830)가 (상기의 식 상의 a0 파라미터와 관련하여) 수평 방향에서 어떻게 적응하는지를 설명하는 단계 값(dx)을 유도한다. 도 8b는 기본 모션 벡터가 현재 코딩 단위 외부에 있는 시나리오를 묘사한다. 이 예에서, 좌측 상부(822) 서브 블록(또는 샘플)에 대한 모션 벡터(b0) 및 우측 상부(824) 서브 블록(또는 샘플)에 대한 모션 벡터(b1)는 좌측 상부 서브 블록(822)의 위쪽 및 좌측의 이전에 코딩된 블록(826) 및 우측 상부 서브 블록(824)의 위쪽의 이전에 코딩된 블록(828)을 사용하여 계산된다. 이들 모션 벡터 사이의 수평 차이는, 모션 벡터 필드(830)가 (상기의 식 상의 a0 파라미터와 관련하여) 수평 방향에서 어떻게 적응하는지를 설명하는 단계 값(dx)을 유도하기 위해 사용된다. 이러한 종류의 접근법은 도 8a의 시나리오에 비해 두 가지 이점을 가질 수도 있다. 먼저, 픽셀 단위의 블록의 폭이 2의 멱승인 경우, 기본 벡터(b0)와 관련되는 서브 블록과 기본 벡터(b1)와 관련되는 서브 블록 사이의 수평 거리도 또한 2의 멱승이고 차이(dx)는 비트 단위 시프팅 연산을 사용하여 계산될 수 있다. 둘째로, 기본 모션 벡터(b0 및/또는 b1)는, 이제, 이전 블록의 이미 코딩된/디코딩된 실제 모션 벡터일 수 있고, 그들은 코딩 단위(또는 예측 단위)의 경계 상에서 연속적으로 변화하는 모션 벡터 필드를 달성하기 위해 반드시 개선될 필요는 없다).
모션 벡터 필드가 정의된 경우, 모션 보상 예측(motion compensated prediction)은, 예를 들면, 샘플 또는 샘플의 그룹에 대해 상기 모션 벡터를 사용하여, 모션 예측 블록(706)에 의해 수행될 수도 있다(914). 다시 말하면, 모션 벡터가 샘플 단위로 정의된 경우, 현재 코딩 단위의 하나의 샘플이 예측을 위해 선택되고, 이 코딩 단위에 대해 정의되는 모션 벡터는 예측에서 사용된다. 그 다음, 예를 들면, 현재 샘플에서의 다음 샘플이 선택되고 모션 벡터의 필드에서 이 샘플에 대해 정의되는 모션 벡터는 모션 예측에서 사용된다. 이 프로시져는 현재 코딩 단위에서 모든 샘플에 대한 모션 예측이 수행될 때까지 반복될 수도 있다.
모션 벡터가 블록 단위로 정의된 경우, 동일한 모션 벡터는 모션 예측을 위해 현재 블록의 각각의 샘플에 대해 사용될 수도 있다. 이 프로시져는 현재 코딩 단위에서 모든 블록에 대한 모션 예측이 수행될 때까지 반복될 수도 있다. 그 다음, 존재하는 경우, 다른 코딩 단위가 현재 코딩 단위로서 선택될 수도 있고, 모션 예측이 이 코딩 단위에 대해 사용되어야 하는 경우, 상기 설명된 프로시져가 반복될 수도 있다.
한 실시형태에 따르면, 병진 기본 모션 벡터(bx, by)는 다른 코딩 단위의 이미 디코딩된 모션 벡터에 기초하여 결정될 수도 있다. 예측을 위한 이 소스 모션 벡터의 위치는 비트스트림에서 나타내어질 수도 있고, 후보 위치의 세트로부터 인코더에 의해 선택될 수도 있다. 고차 모션 벡터 성분(들)은, 나머지 모션 파라미터(a0, a1)를 상이한 방식으로 시그널링하는 것에 의해 나타내어질 수 있다. 그들은 코딩 단위 내부의 또는 외부의 소정의 위치에 대한 추가적인 모션 벡터로서 나타내어질 수 있거나, 또는 그들은 개개의 모션 계수로서 나타내어질 수 있다.
모션 파라미터 또는 모션 파라미터에 대한 개선치를 시그널링하기 위해, 상이한 접근법이 사용될 수도 있다. 예를 들면, 상이한 위치에서의 모션 벡터가 계산될 수 있고 파라미터는 이들 모션 벡터로부터 유도될 수 있다.
대안적인 구현예에서, 여섯 개의 파라미터: bx, by 및 a0 내지 a3을 갖는 완전한 아핀 모델(full affine model)이 사용될 수도 있다:
더 일반적인 경우에, 공간 의존성을 갖는 임의의 모션 모델, 예를 들면, N + M 개의 고차 기본 함수(higher order basis function)의 선형 모델이 적용될 수도 있다:
한 실시형태에서, 모션 벡터 필드는 코딩 단위의 코너 모션 벡터를 사용하여 시그널링될 수도 있다. 이 경우, 코딩 단위에 대한 좌측 상부 모션 벡터를 계산하기 위해 사용되는 델타 모션 벡터는 제1 정밀도(예를 들면, 1/4 샘플 정확도)에서 코딩되고 코딩 단위 내의 다른 샘플에 대한 모션 벡터(예를 들면, 우측 상부 모션 벡터)를 계산하기 위해 사용되는 델타 모션 벡터는 제2 정밀도(예를 들면, 1/16 샘플 정확도)에서 코딩된다.
한 실시형태에서, 코딩 단위의 모션 벡터 필드에 대한 기본 모션 벡터는, 코딩 단위의 좌측 상부 코너의 좌측 상부 방향에서 현재 코딩 단위의 바로 외부의 4×4 샘플 블록에 대한 모션 벡터로서 정의된다.
한 실시형태에서, 코딩 단위에 대한 기본 모션 벡터는, 현재 코딩 단위에 대한 기본 모션 벡터를 예측하기 위한 소스로서 사용되었던 위치로부터 고차 모션 벡터 성분을 가산하는 것에 의해 조정된다.
한 실시형태에서, 모션 벡터 예측을 위한 참조 픽쳐 또는 픽쳐들은, 현재 코딩 단위에 대한 기본 모션 벡터를 예측하기 위한 소스로서 사용되었던 위치에 대해 사용되는 참조 픽쳐 또는 픽쳐들에 기초하여 선택된다.
한 실시형태에서, 고차 모션 계수에 대한 개선치의 정밀도는, 선택된 모션 파라미터가 적용되는 코딩 단위의 사이즈에 의존한다.
한 실시형태에서, 병진 기본 모션 벡터에 대한 개선치에 어떠한 시그널링도 없지만, 그러나 이웃하는 코딩 단위 또는 예측 단위의 이미 디코딩된 모션 벡터가 현재 단위에 대한 기본 모션 벡터로서 사용될 수도 있다.
한 실시형태에서, 기본 모션 벡터 개선치, 고차 모션 계수 개선치 중 어느 하나, 또는 둘 모두에 대한 스케일링 인자는 파라미터 세트 또는 픽쳐/슬라이스/타일 헤더에서 또는 비트스트림 내의 다른 장소에서 시그널링될 수도 있다.
한 실시형태에서, 기본 모션 벡터, 고차 모션 계수 중 어느 하나, 또는 둘 모두에 대한 스케일링 인자는 파라미터 세트 또는 픽쳐/슬라이스/타일 헤더 또는 비트스트림 내의 다른 장소에서 시그널링될 수도 있다.
도 8a는 코딩 단위 내부의 기본 모션 벡터(b0 및 b1)를 예시한다. 모션 벡터 사이의 수평 모션 벡터 차이는, 기본 모션 벡터의 수평 성분 사이의 차이로서 계산될 수도 있고 기본 모션 벡터의 거리에 의해 나누어질 수도 있다.
도 8b는 코딩 단위 외부의 기본 모션 벡터(b0 및 b1)를 예시한다. 모션 벡터 사이의 수평 모션 벡터 차이는, 기본 모션 벡터의 수평 성분 사이의 차이로서 계산될 수도 있고 기본 모션 벡터의 거리에 의해 나누어질 수도 있다. 이제, 기본 모션 벡터는 더 이전 블록의 모션 보상을 위해 사용된 실제 모션 벡터일 수 있다.
도 8c는 1차 파라미터(first order parameter)(a0)에 대한 양의 값을 갖는 아핀 모델을 사용하는 것을 예시한다. 도 8c에서 보이는 바와 같이, 그 파라미터는, 수평 방향에서 코딩 단위를 진행할 때, 수평 모션 벡터 성분이 변화하는 양에 영향을 줄 수도 있다.
도 8a, 도 8b 및 도 8c는, 모션 벡터의 수평 적응만을 예시하지만, 그러나 유사한 접근법이 수직 방향에서 또한 사용될 수도 있다.
이하에서, 몇몇 구현예가 간략하게 설명될 것이다. 인코더 및 디코더 측 둘 모두 상에서의 프로세싱 단계는 상이한 순서로 행해질 수도 있거나 또는 서로 인터리빙될 수도 있고, 상이한 단계는 서로 병렬로 행해질 수도 있다.
상이한 정밀도가 최종 모션 벡터 및 모션 벡터 성분을 나타내기 위해 사용될 수도 있다. 예를 들면, 1/4 샘플 정확도가 모션 벡터 성분에 대해 사용될 수 있지만, 그러나 코딩 단위 내의 상이한 위치에 대한 최종 모션 벡터를 평가할 때, 예를 들면, 1/16 샘플 정밀도가 사용될 수 있다.
모션 벡터는 샘플의 세트 또는 코딩 단위 내의 개개의 픽셀에 대해 평가될 수도 있다. 예를 들면, 모션 벡터는 샘플의 각각의 4×4 세트에 대해 계산될 수 있다.
모션 벡터 필드는 상이한 방식으로 제시될 수도 있다. 예를 들면, 그것은 픽셀 좌표의 다항식 함수로서 제시될 수 있거나 또는 그것은 코딩 단위의 코너에서 모션 벡터로서 제시될 수 있거나 또는 그것은 코딩 단위의 내부, 외부 또는 경계 상의 몇몇 다른 위치에 대한 모션 벡터로서 제시될 수 있다.
상이한 파라미터는 비트스트림에서 시그널링될 수도 있거나 또는 비트스트림 외부에서 정의될 수도 있다. 예를 들면, 병진 기본 모션 벡터에 대한 개선치는 비트스트림에서 시그널링될 수 있거나 또는 그들은 다른 수단에 의해 소정의 값(예를 들면, 제로)으로 설정될 수 있다.
방법은 단일의 참조를 갖는 단예측, 두 개의 참조를 갖는 양예측 또는 모션 보상 예측을 위한 두 개보다 더 많은 참조 블록을 갖는 다중 가설 예측(multi-hypothesis prediction)을 활용할 수도 있다.
디코더에서, 디코더가 병진 기본 모션 벡터를 선택하는 것 및 파라미터를 계산하는 것을, 디코더가 인코더로부터 비트스트림에서 이러한 정보를 수신할 수도 있기 때문에, 필요로 하지 않을 수도 있다는 것을 제외하면, 블록의 샘플을 재구성하기 위해 유사한 동작이 수행될 수도 있다. 디코더는, 모션 예측에 관련되는 파라미터 및 현재 코딩 단위에 관한 정보를 수신할 수도 있고(1000), 인코더가 인코딩에서 사용한 병진 기본 모션 벡터(b0)의 정보를 찾기 위해 수신된 정보를 검사할 수도 있다(1002). 디코더는 또한, 제1 병진 모션 벡터 성분(bx, by)에 대한 개선치(rbx, rby) 및 고차 모션 벡터 성분(a0, a1), 및 고차 모션 벡터 성분(a0, a1)에 대한 개선치(ra0, ra1) 중 어떤 종류가 인코더에 의해 정의되었는지를 검사할 수도 있다(1004). 디코더는 또한 수신된 정보를 사용하여 인코더가 인코딩에서 사용했던 제1 정밀도 및 제2 정밀도의 값을 찾을 수도 있다. 그 다음, 디코더는 이 정보를 사용하여 제1 기본 모션 벡터를 계산할 수도 있다(1006). 유사하게, 디코더는 현재 코딩 단위에 대한 모션 벡터의 필드를 정의하기 위해 다른 모션 벡터를 계산할 수도 있다(1008). 한 실시형태에 따르면, 모션 벡터의 필드는 현재 코딩 단위의 각각의 샘플에 대한 모션 벡터를 포함한다. 그 다음, 현재 코딩 단위의 샘플을 재구성하기 위해 모션 벡터의 필드를 사용하여 디코더에 의해 모션 예측이 수행될 수도 있다(1010).
도 4는 한 실시형태에 따른 비디오 인코더의 블록도를 도시한다. 도 4는 두 개의 레이어에 대한 인코더를 제시하지만, 그러나 제시된 인코더는 두 개보다 더 많은 레이어, 또는 단지 하나의 레이어만을 인코딩하도록 유사하게 확장될 수 있다는 것이 인식될 것이다. 도 4는 베이스 레이어에 대한 제1 인코더 섹션(500) 및 향상 레이어를 위한 제2 인코더 섹션(502)을 포함하는 비디오 인코더의 한 실시형태를 예시한다. 제1 인코더 섹션(500) 및 제2 인코더 섹션(502)의 각각은 유입하는 픽쳐를 인코딩하기 위한 유사한 엘리먼트를 포함할 수도 있다. 인코더 섹션(500, 502)은 픽셀 예측기(302, 402), 예측 에러 인코더(303, 403) 및 예측 에러 디코더(304, 404)를 포함할 수도 있다. 도 4는 또한, 픽셀 예측기(302, 402)의 한 실시형태를, 인터 예측기(inter-predictor)(306, 406), 인트라 예측기(intra-predictor)(308, 408), 모드 선택기(310, 410), 필터(316, 416), 및 참조 프레임 메모리(318, 418)를 포함하는 것으로 도시한다. 제1 인코더 섹션(500)의 픽셀 예측기(302)는 인터 예측기(306)(이것은 이미지와 모션 보상 참조 프레임(motion compensated reference frame)(318) 사이의 차이를 결정함) 및 인트라 예측기(308)(이것은 현재 프레임 또는 픽쳐의 이미 프로세싱된 부분에만 기초하여 이미지 블록에 대한 예측을 결정함) 둘 모두에서 인코딩될 비디오 스트림의 베이스 레이어 이미지를 수신한다(300). 인터 예측기 및 인트라 예측기 둘 모두의 출력은 모드 선택기(310)로 전달된다. 인트라 예측기(308)는 하나보다 더 많은 인트라 예측 모드를 가질 수도 있다. 그러므로, 각각의 모드는 인트라 예측을 수행할 수도 있고 예측된 신호를 모드 선택기(310)에 제공할 수도 있다. 모드 선택기(310)는 또한 베이스 레이어 픽쳐(300)의 사본(copy)을 수신한다. 상응하여, 제2 인코더 섹션(502)의 픽셀 예측기(402)는 인터 예측기(406)(이것은 이미지와 모션 보상 참조 프레임(418) 사이의 차이를 결정함) 및 인트라 예측기(408)(이것은 현재 프레임 또는 픽쳐의 이미 프로세싱된 부분에만 기초하여 이미지 블록에 대한 예측을 결정함) 둘 모두에서 인코딩될 비디오 스트림의 향상 레이어 이미지를 수신한다(400). 인터 예측기 및 인트라 예측기 둘 모두의 출력은 모드 선택기(410)로 전달된다. 인트라 예측기(408)는 하나보다 더 많은 인트라 예측 모드를 가질 수도 있다. 그러므로, 각각의 모드는 인트라 예측을 수행할 수도 있고 예측된 신호를 모드 선택기(410)에 제공할 수도 있다. 모드 선택기(410)는 또한 향상 레이어 픽쳐(400)의 사본을 수신한다.
현재 코딩 단위를 인코딩하기 위해 어떤 인코딩 모드가 선택되는지에 따라, 인터 예측기(306, 406)의 출력 또는 옵션 사항인 인트라 예측기 모드 중 하나의 출력 또는 모드 선택기 내의 표면 인코더의 출력은 모드 선택기(310, 410)의 출력으로 전달된다. 모드 선택기의 출력은 제1 합산 디바이스(321, 421)로 전달된다. 제1 합산 디바이스는, 베이스 레이어 픽쳐(300)/향상 레이어 픽쳐(400)로부터 픽셀 예측기(302, 402)의 출력을 감산하여, 예측 에러 인코더(303, 403)에 입력되는 제1 예측 에러 신호(320, 420)를 생성할 수도 있다.
픽셀 예측기(302, 402)는 또한, 예측 에러 디코더(304, 404)의 출력(338, 438) 및 이미지 블록(312, 412)의 예측 표현의 조합을 예비 재구성기(preliminary reconstructor)(339,439)로부터 수신한다. 예비 재구성된 이미지(314, 414)는 인트라 예측기(308, 408)로 그리고 필터(316, 416)로 전달될 수도 있다. 예비 표현을 수신하는 필터(316, 416)는 예비 표현을 필터링할 수도 있고, 참조 프레임 메모리(318, 418)에 저장될 수도 있는 최종 재구성된 이미지(340, 440)를 출력할 수도 있다. 참조 프레임 메모리(318)는, 인터 예측기(306)에 연결되어, 인터 예측 동작에서 미래의 베이스 레이어 픽쳐(300)가 비교되는 참조 이미지로서 사용될 수도 있다. 몇몇 실시형태에 따라, 베이스 레이어가 선택되어 향상 레이어의 레이어간 샘플 예측 및/또는 레이어간 모션 정보 예측을 위한 소스인 것으로 나타내어지는 것에 종속하여, 참조 프레임 메모리(318)는 또한, 인터 예측기(406)에 연결되어, 인터 예측 동작에서 미래의 향상 레이어 픽쳐(400)가 비교되는 참조 이미지로서 사용될 수도 있다. 또한, 참조 프레임 메모리(418)는 인터 예측기(406)에 연결되어, 인터 예측 동작에서 미래의 향상 레이어 픽쳐(400)가 비교되는 참조 이미지로서 사용될 수도 있다.
제1 인코더 섹션(500)의 필터(316)로부터의 필터링 파라미터는, 몇몇 실시형태에 따라 베이스 레이어가 선택되어 향상 레이어의 필터링 파라미터를 예측하기 위한 소스인 것으로 나타내어지는 것에 종속하여, 제2 인코더 섹션(502)으로 제공될 수도 있다.
예측 에러 인코더(303, 403)는 변환 유닛(342, 442) 및 양자화기(344, 444)를 포함한다. 변환 유닛(342, 442)은 제1 예측 에러 신호(320, 420)를 변환 도메인으로 변환한다. 변환은, 예를 들면, DCT 변환이다. 양자화기(344, 444)는, 변환 도메인 신호, 예를 들면, DCT 계수를 양자화하여 양자화된 계수를 형성한다.
예측 에러 디코더(304, 404)는 예측 에러 인코더(303, 403)로부터 출력을 수신하고, 예측 에러 인코더(303, 403)의 반대 프로세스를 수행하여 디코딩된 예측 에러 신호(338, 438)를 생성하는데, 이것은, 제2 합산 디바이스(339, 439)에서 이미지 블록(312, 412)의 예측 표현과 결합되는 경우, 예비 재구성된 이미지(314, 414)를 생성한다. 예측 에러 디코더는, 양자화된 계수 값, 예를 들면, DCT 계수를 역양자화하여(dequantize) 변환 신호를 재구성하는 역양자화기(dequantizer)(361, 461) 및 재구성된 변환 신호에 역변환을 수행하는 역변환 유닛(363, 463)을 포함하는 것으로 간주될 수도 있는데, 역변환 유닛(363, 463)의 출력은 재구성된 블록(들)을 포함한다. 예측 에러 디코더는 또한, 추가로 디코딩된 정보 및 필터 파라미터에 따라 재구성된 블록(들)을 필터링할 수도 있는 블록 필터를 포함할 수도 있다.
엔트로피 인코더(330, 430)는 예측 에러 인코더(303, 403)의 출력을 수신하고, 신호에 대해 적절한 엔트로피 인코딩/가변 길이 인코딩을 수행하여 에러 검출 및 보정 성능을 제공할 수도 있다. 엔트로피 인코더(330, 430)의 출력은, 예를 들면, 멀티플렉서(508)에 의해 비트스트림에 삽입될 수도 있다.
도 5는 한 실시형태에 따른 비디오 디코더의 블록도를 도시한다. 도 5는 두 개의 레이어의 디코더의 구조를 묘사하지만, 그러나, 디코딩 동작은 단일 레이어의 디코더에서 유사하게 활용될 수도 있다는 것이 인식될 것이다.
비디오 디코더(550)는 기본 뷰 컴포넌트에 대한 제1 디코더 섹션(552) 및 비기본(non-base) 뷰 컴포넌트에 대한 제2 디코더 섹션(554)을 포함한다. 블록(556)은, 베이스 뷰 컴포넌트에 관한 정보를 제1 디코더 섹션(552)으로 전달하기 위한 그리고 비베이스 뷰 컴포넌트에 관한 정보를 제2 디코더 섹션(554)으로 전달하기 위한 디멀티플렉서(demultiplexer)를 예시한다. 참조 부호(reference) P'n은 이미지 블록의 예측된 표현을 나타낸다. 참조 부호 D'n은 재구성된 예측 에러 신호를 나타낸다. 블록(704, 804)은 예비 재구성된 이미지(I'n)를 예시한다. 참조 부호 R'n은 최종 재구성된 이미지를 나타낸다. 블록(703, 803)은 역변환(T-1)을 예시한다. 블록(702, 802)은 역양자화(Q-1)를 예시한다. 블록(701, 801)은 엔트로피 디코딩(E-1)을 예시한다. 블록(706, 806)은 참조 프레임 메모리(RFM)를 예시한다. 블록(707, 807)은 예측(P)(인터 예측 또는 인트라 예측 중 어느 하나)을 예시한다. 블록(708, 808)은 필터링(F)을 예시한다. 블록(709, 809)은, 디코딩된 예측 에러 정보를 예측된 기본 뷰/비기본 뷰 컴포넌트와 결합하여 예비 재구성된 이미지(705, 805)(I'n)를 획득하기 위해 사용될 수도 있다. 예비 재구성되고 필터링된 기본 뷰 이미지는 제1 디코더 섹션(552)으로부터 출력될 수도 있고(710), 예비 재구성되고 필터링된 기본 뷰 이미지는 제1 디코더 섹션(554)으로부터 출력될 수도 있다(810).
H.265/HEVC 스크린 콘텐츠 테스트 모델은 간단한 블록 복사 구현예를 설명한다. 인트라 블록 복사 방법은, 동일한 이미지의 소정의 영역을 예측 영역에 복사하는 것에 의해 샘플의 블록에 대한 예측을 생성한다. 복사 동작을 위한 소스 영역의 위치는, 더 일찍 코딩된 몇몇 블록의 블록 벡터에 의해 형성되는 후보 블록 벡터의 세트로부터 선택되는 예측된 블록 벡터에 대해 차 동적으로 코딩될 수도 있는 블록 벡터로 나타내어질 수도 있다.
도 11은 다양한 실시형태가 구현될 수도 있는 예시적인 멀티미디어 통신 시스템의 그래픽 표현이다. 데이터 소스(1110)는 아날로그, 비압축 디지털, 또는 압축 디지털 포맷, 또는 이들 포맷의 임의의 조합으로 소스 신호를 제공한다. 인코더(1120)는, 소스 신호의 데이터 포맷 변환 및/또는 필터링과 같은, 사전 프로세싱을 포함할 수도 있거나 또는 그와 연결될 수도 있다. 인코더(1120)는 소스 신호를 코딩된 미디어 비트스트림으로 인코딩한다. 디코딩될 비트스트림은, 사실상 임의의 타입의 네트워크 내에 위치되는 원격 디바이스로부터 직접적으로 또는 간접적으로 수신될 수도 있다는 것을 유의해야 한다. 추가적으로, 비트스트림은 로컬 하드웨어 또는 소프트웨어로부터 수신될 수도 있다. 인코더(1120)는, 오디오 및 비디오와 같은, 하나보다 더 많은 미디어 타입을 인코딩할 수 있을 수도 있거나, 또는 소스 신호의 상이한 미디어 타입을 코딩하기 위해 하나보다 더 많은 인코더(1120)가 필요할 수도 있다. 인코더(1120)는 또한, 그래픽 및 텍스트와 같은, 합성적으로 생성된 입력을 얻을 수도 있거나, 또는 그것은 합성 매체의 코딩된 비트스트림을 생성할 수 있을 수도 있다. 이하에서, 설명을 단순화하기 위해, 하나의 미디어 타입의 하나의 코딩된 미디어 비트스트림의 프로세싱만이 고려된다. 그러나, 통상적으로 실시간 방송 서비스는 여러 가지 스트림(통상적으로 적어도 하나의 오디오, 비디오 및 텍스트 자막 스트림)을 포함한다는 것을 유의해야 한다. 시스템은 많은 인코더를 포함할 수도 있지만, 그러나, 도면에서는, 일반성의 결여 없이 설명을 단순화하기 위해, 단지 하나의 인코더(1120)만이 표현된다는 것을 또한 유의해야 한다. 비록 본원에서 포함되는 텍스트 및 예가 인코딩 프로세스를 구체적으로 설명할 수도 있지만, 기술 분야에서 숙련된 자는, 동일한 개념 및 원리가 대응하는 디코딩 프로세스에도 또한 적용되고 그 반대도 마찬가지이다는 것을 이해할 것이다는 것이 추가로 이해되어야 한다.
코딩된 미디어 비트스트림은 스토리지(1130)로 전송될 수도 있다. 스토리지(1130)는 코딩된 미디어 비트스트림을 저장하기 위한 임의의 타입의 대용량 메모리를 포함할 수도 있다. 스토리지(1130)에서의 코딩된 미디어 비트스트림의 포맷은 기본 독립형 비트스트림 포맷(elementary self-contained bitstream format)일 수도 있거나, 또는 하나 이상의 코딩된 미디어 비트스트림이 컨테이너 파일로 캡슐화될 수도 있다. 하나 이상의 미디어 비트스트림이 컨테이너 파일에 캡슐화되면, 파일에 하나 이상의 미디어 비트스트림을 저장하기 위해 그리고 파일에 또한 저장될 수도 있는 파일 포맷 메타데이터를 생성하기 위해 파일 생성기(도면에서 도시되지 않음)가 사용될 수도 있다. 인코더(1120) 또는 스토리지(1130)는 파일 생성기를 포함할 수도 있거나, 또는 파일 생성기는 인코더(1120) 또는 스토리지(1130) 중 어느 하나에 동작 가능하게 부착된다. 몇몇 시스템은 "라이브로" 동작한다, 즉, 스토리지를 생략하고 인코더(1120)로부터의 코딩된 미디어 비트스트림을 전송기(sender)(1140)로 직접적으로 전송한다. 그 다음, 코딩된 미디어 비트스트림은, 필요에 기초하여, 서버로 또한 칭해지는, 전송기(1140)로 전송될 수도 있다. 송신에서 사용되는 포맷은, 기본 독립형 비트스트림 포맷, 패킷 스트림 포맷일 수도 있거나, 또는 하나 이상의 코딩된 미디어 비트스트림이 컨테이너 파일로 캡슐화될 수도 있다. 인코더(1120), 스토리지(1130), 및 서버(1140)는 동일한 물리적 디바이스에 존재할 수도 있거나 또는 그들은 별개의 디바이스에 포함될 수도 있다. 인코더(1120) 및 서버(1140)는 라이브의 실시간 콘텐츠와 함께 동작할 수도 있는데, 이 경우, 프로세싱 지연, 전송 지연, 및 코딩된 미디어 비트레이트에서의 변동을 평활화하기 위해, 코딩된 미디어 비트스트림은 통상적으로 영구적으로 저장되기보다는, 오히려, 콘텐츠 인코더(1120)에서 및/또는 서버(1140)에서 시간의 작은 기간 동안 버퍼링된다.
서버(1140)는 통신 프로토콜 스택을 사용하여 코딩된 미디어 비트스트림을 전송할 수도 있다. 스택은, 실시간 전송 프로토콜(Real-Time Transport Protocol; RTP), 유저 데이터 그램 프로토콜(User Datagram Protocol; UDP), 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol; HTTP), 전송 제어 프로토콜(Transmission Control Protocol; TCP) 및 인터넷 프로토콜(Internet Protocol; IP) 중 하나 이상을 포함할 수도 있지만, 그러나 이들로 제한되지는 않는다. 통신 프로토콜 스택이 패킷 지향적인 경우, 서버(1140)는 코딩된 미디어 비트스트림을 패킷으로 캡슐화한다. 예를 들면, RTP가 사용될 때, 서버(1140)는 코딩된 미디어 비트스트림을 RTP 페이로드 포맷에 따라 RTP 패킷으로 캡슐화한다. 통상적으로, 각각의 미디어 타입은 전용 RTP 페이로드 포맷을 갖는다. 시스템은 하나보다 더 많은 서버(1140)를 포함할 수도 있지만, 그러나, 간략화를 위해, 다음의 설명은 하나의 서버(1140)만을 고려한다는 것을 다시 유의해야 한다.
미디어 콘텐츠가 스토리지(1130)를 위해 또는 전송기(1140)에 데이터를 입력하기 위해 컨테이너 파일에 캡슐화되는 경우, 전송기(1140)는 "전송 파일 파서(sending file parser)"(도면에서 도시되지 않음)를 포함할 수도 있거나 또는 그것에 동작 가능하게 부착될 수도 있다. 특히, 컨테이너 파일이 그대로 송신되지 않지만 그러나 포함된 코딩된 미디어 비트스트림 중 적어도 하나가 통신 프로토콜을 통한 전송을 위해 캡슐화되는 경우, 전송 파일 파서는 통신 프로토콜을 통해 전달될 코딩된 미디어 비트스트림의 적절한 부분을 찾는다. 전송 파일 파서는 또한, 패킷 헤더 및 페이로드와 같은, 통신 프로토콜에 대한 올바른 포맷을 생성함에 있어서 도움을 줄 수도 있다. 멀티미디어 컨테이너 파일은, 통신 프로토콜 상에서의 포함된 미디어 비트스트림 중 적어도 하나를 캡슐화를 위해, ISO 기본 미디어 파일 포맷(Base Media File Format)에서의 힌트 트랙과 같은 캡슐화 명령어를 포함할 수도 있다.
서버(1140)는 통신 네트워크를 통해 게이트웨이(1150)에 연결될 수도 있거나 또는 연결되지 않을 수도 있다. 게이트웨이는, 또한 또는 대안적으로, 중간 박스(middle-box)로 칭해질 수도 있다. 시스템은 일반적으로 임의의 수의 게이트웨이 또는 등등을 포함할 수도 있지만, 그러나, 간략화를 위해, 다음의 설명은 하나의 게이트웨이(1150)만을 고려한다는 것을 유의한다. 게이트웨이(1150)는, 패킷, 스트림 또는 리소스를 캐싱하는 것, 사전에(pro-actively) 미디어 데이터를 프리페치하는(pre-fetching) 것, 하나의 통신 프로토콜 스택에 따른 패킷 스트림을 다른 통신 프로토콜 스택으로 변환하는 것, 데이터 스트림의 병합 및 포킹(forking), 및 다운링크 및/또는 수신기 성능에 따른 데이터 스트림의 조작, 예컨대 지배적인 다운링크 네트워크 조건에 따라 포워딩된 스트림의 비트레이트를 제어하는 것과 같은 상이한 타입의 기능을 수행할 수도 있다. 게이트웨이(1150)의 예는, 다지점 회의 제어 유닛(multipoint conference control unit; MCU), 회선 교환식 및 패킷 교환식 화상 전화 사이의 게이트웨이, 셀룰러를 통한 푸시 투 토크(Push-to-talk over Cellular; PoC) 서버, 디지털 비디오 브로드캐스팅 핸드헬드(digital video broadcasting-handheld; DVB-H) 시스템에서의 IP 캡슐화기(encapsulator), 또는 셋탑 박스 또는 방송 송신을 로컬하게 가정 무선 네트워크로 포워딩하는 다른 디바이스를 포함한다. RTP가 사용되는 경우, 게이트웨이(1150)는 RTP 믹서 또는 RTP 변환기(translator)로 칭해질 수도 있고 RTP 연결의 종단점으로서 작용할 수도 있다. 게이트웨이(1150) 대신에 또는 게이트웨이(1150)에 추가하여, 시스템은 비디오 시퀀스 또는 비트스트림을 사슬 연결하는(concatenate) 스플라이서(splicer)를 포함할 수도 있다.
시스템은, 통상적으로 송신된 신호를 코딩된 미디어 비트스트림으로 수신, 복조(de-modulating) 및 캡슐화 해제(de-capsulating)할 수 있는 하나 이상의 수신기(1160)를 포함한다. 코딩된 미디어 비트스트림은 기록 스토리지(1170)로 전송될 수도 있다. 기록 스토리지(1170)는 코딩된 미디어 비트스트림을 저장하기 위한 임의의 타입의 대용량 메모리를 포함할 수도 있다. 기록 스토리지(1170)는 대안적으로 또는 추가적으로 랜덤 액세스 메모리와 같은 계산 메모리를 포함할 수도 있다. 기록 스토리지(1170)에서의 코딩된 미디어 비트스트림의 포맷은, 기본 독립형 비트스트림 포맷일 수도 있거나, 또는 하나 이상의 코딩된 미디어 비트스트림은 컨테이너 파일로 캡슐화될 수도 있다. 서로 관련되는, 오디오 스트림 및 비디오 스트림과 같은 다수의 코딩된 미디어 비트스트림이 있는 경우, 컨테이너 파일이 통상적으로 사용되고 수신기(1160)는 입력 스트림으로부터 컨테이너 파일을 생성하는 컨테이너 파일 생성기를 포함하거나 또는 그것에 부착된다. 몇몇 시스템은 "라이브로" 동작한다, 즉, 기록 스토리지(1170)를 생략하고 수신기(1160)로부터의 코딩된 미디어 비트스트림을 디코더(1180)로 직접적으로 전송한다. 몇몇 시스템에서, 기록된 스트림의 가장 최근의 부분, 예를 들면, 기록된 스트림의 가장 최근의 10 분 발췌분만이 기록 스토리지(1170)에서 유지되고, 한편 임의의 더 이전의 기록 데이터는 기록 스토리지(1170)로부터 폐기된다.
코딩된 미디어 비트스트림은 기록 스토리지(1170)로부터 디코더(1180)로 전송될 수도 있다. 서로 관련되며 컨테이너 파일로 캡슐화되는, 오디오 스트림 및 비디오 스트림과 같은 많은 코딩된 미디어 비트스트림이 존재하거나 또는 단일의 미디어 비트스트림이, 예를 들면, 더 쉬운 액세스를 위해 컨테이너 파일에 캡슐화되는 경우, 컨테이너 파일로부터 각각의 코딩된 미디어 비트스트림을 캡슐화 해제하기 위해, 파일 파서(도면에서 도시되지 않음)가 사용된다. 기록 스토리지(1170) 또는 디코더(1180)는 파일 파서를 포함할 수도 있거나, 또는 파일 파서는 기록 스토리지(1170) 또는 디코더(1180) 중 어느 하나에 부착된다. 또한, 시스템은 많은 디코더를 포함할 수도 있지만, 그러나, 일반성의 결여 없이 설명을 단순화하기 위해, 단지 하나의 디코더(1170)만이 논의된다는 것을 또한 유의해야 한다.
코딩된 미디어 비트스트림은, 그 출력이 하나 이상의 비압축 미디어 스트림인 디코더(1170)에 의해 추가로 프로세싱될 수도 있다. 최종적으로, 렌더러(renderer)(1190)는 예를 들면, 라우드스피커 또는 디스플레이를 사용하여 비압축 미디어 스트림을 재생할 수도 있다. 수신기(1160), 기록 스토리지(1170), 디코더(1170), 및 렌더러(1190)는 동일한 물리적 디바이스에 상주할 수도 있거나 또는 그들은 별개의 디바이스에 포함될 수도 있다.
상기에서, 몇몇 실시형태는 용어 표현 및/또는 비트스트림과 관련하여 설명되었다. 실시형태가 유사한 용어, 예를 들면, 비트스트림 대신 표현, 표현 대신 비트스트림, 또는 비트스트림 또는 표현 대신 기본 스트림과 관련하여 유사하게 설명될 수도 있다는 것이 이해될 필요가 있다.
상기에서, 예시적인 실시형태가 인코더와 관련하여 설명된 경우, 결과적으로 나타나는 비트스트림 및 디코더는 대응하는 엘리먼트를 그들 내에 가질 수도 있다는 것이 이해될 필요가 있다. 마찬가지로, 예시적인 실시형태가 디코더를 참조하여 설명된 경우, 인코더는 디코더에 의해 디코딩될 비트스트림을 생성하기 위한 구조 및/또는 컴퓨터 프로그램을 구비할 수도 있다는 것이 이해될 필요가 있다.
상기에서 설명되는 본 발명의 실시형태는, 수반되는 프로세스의 이해를 돕기 위해, 별개의 인코더 및 디코더 장치의 관점에서 코덱을 설명한다. 그러나, 장치, 구조 및 동작은 단일의 인코더-디코더 장치/구조/동작으로서 구현될 수도 있다는 것이 인식될 것이다. 더구나, 코더 및 디코더가 몇몇 또는 모든 공통 엘리먼트를 공유할 수도 있다는 것이 가능하다.
비록 상기의 예가 전자 디바이스 내의 코덱 내에서 동작하는 본 발명의 실시형태를 설명하지만, 청구범위에서 정의되는 바와 같은 본 발명은 임의의 비디오 코덱의 일부로서 구현될 수도 있다는 것이 인식될 것이다. 따라서, 예를 들면, 본 발명의 실시형태는, 고정된 또는 유선 통신 경로를 통한 비디오 코딩을 구현할 수도 있는 비디오 코덱에서 구현될 수도 있다.
따라서, 유저 기기는 상기의 본 발명의 실시형태에서 설명되는 것과 같은 비디오 코덱을 포함할 수도 있다. 용어 유저 기기는, 이동 전화, 휴대형 데이터 프로세싱 디바이스 또는 휴대용 웹 브라우저와 같은, 임의의 적절한 타입의 무선 유저 기기를 커버하도록 의도된다는 것이 인식되어야 할 것이다.
더구나, 공용 지상 모바일 네트워크(public land mobile network; PLMN)의 엘리먼트는 상기에서 설명되는 바와 같은 비디오 코덱을 또한 포함할 수도 있다.
일반적으로, 본 발명의 다양한 실시형태는, 하드웨어 또는 특수 목적 회로, 소프트웨어, 논리 또는 이들의 임의의 조합으로 구현될 수도 있다. 예를 들면, 몇몇 양태는 하드웨어로 구현될 수도 있고, 한편 다른 양태는, 컨트롤러, 마이크로프로세서 또는 다른 컴퓨팅 디바이스에 의해 실행될 수도 있는 펌웨어 또는 소프트웨어로 구현될 수도 있지만, 본 발명은 이것으로 제한되지는 않는다. 본 발명의 다양한 양태가 블록도, 플로우차트로서, 또는 몇몇 다른 도해적 표현을 사용하여 예시 및 설명될 수도 있지만, 본원에서 설명되는 이들 블록, 장치, 시스템, 기법 또는 방법은, 비제한적인 예로서, 하드웨어, 소프트웨어, 특수 목적 회로 또는 논리, 범용 하드웨어 또는 컨트롤러 또는 다른 컴퓨팅 디바이스, 또는 이들의 몇몇 조합으로 구현될 수도 있다는 것이 잘 이해된다.
본 발명의 실시형태는, 모바일 디바이스의 데이터 프로세서에 의해, 예컨대 프로세서 엔티티에서 실행 가능한 컴퓨터 소프트웨어에 의해, 또는 하드웨어에 의해, 또는 소프트웨어 및 하드웨어의 조합에 의해 구현될 수도 있다. 컴퓨터 소프트웨어는, 인코더 또는 디코더와 같은 관련 장치로 하여금 본 발명을 수행하게 할 수도 있다. 예를 들면, 디바이스는, 데이터를 핸들링, 수신, 및 송신하기 위한 회로부와 전자장치, 메모리 내의 컴퓨터 프로그램 코드, 및 컴퓨터 프로그램 코드를 실행하는 경우, 디바이스로 하여금 실시형태의 피쳐를 수행하게 하는 프로세서를 포함할 수도 있다. 여전히 또한, 서버와 같은 네트워크 디바이스는, 데이터를 핸들링, 수신 및 송신하기 위한 회로부와 전자장치, 메모리 내의 컴퓨터 프로그램 코드, 및 컴퓨터 프로그램 코드를 실행하는 경우, 네트워크 디바이스로 하여금 실시형태의 피쳐를 수행하게 하는 프로세서를 포함할 수도 있다.
다양한 실시형태는, 컴퓨터에 의한 실행시, 다양한 실시형태를 수행하는 명령어로 인코딩된 비일시적인 컴퓨터 판독 가능 매체의 도움으로 구현될 수 있다.
소망되는 경우, 본원에서 논의되는 상이한 기능은 상이한 순서로 및/또는 서로 동시적으로 수행될 수도 있다. 더구나, 소망되는 경우, 상기에서 설명된 기능 중 하나 이상은 옵션 사항일 수도 있거나 또는 결합될 수도 있다. 더구나, 본 실시형태는 디코딩하기 위한 방법과 관련하여 그리고 디코더와 관련하여 개시된다. 그러나, 본 개시의 교시는, 코딩 단위의 인코딩 및 코딩 단위 내에서 이스케이프 코딩의 존재의 표시의 코딩을 수행하도록 인코더에서 적용될 수 있다.
또한 이와 관련하여, 도면에서와 같은 논리 플로우의 임의의 블록은, 프로그램 단계, 또는 상호 연결된 논리 회로, 블록 및 기능, 또는 프로그램 단계 및 논리 회로, 블록 및 기능의 조합을 나타낼 수도 있다는 것을 유의해야 한다. 소프트웨어는 메모리 칩과 같은 물리적 매체, 프로세서 내에서 구현되는 메모리 블록, 하드 디스크 또는 플로피 디스크와 같은 자기 매체, 및 예를 들면, DVD 및 그 데이터 변형체인 CD와 같은 광학 매체 상에 저장될 수도 있다.
메모리는 국소적 기술 환경에 적절한 임의의 타입의 것일 수도 있고, 반도체 기반의 메모리 디바이스, 자기 메모리 디바이스 및 시스템, 광학 메모리 디바이스 및 시스템, 고정식 메모리 및 착탈식 메모리와 같은, 임의의 적절한 데이터 저장 기술을 사용하여 구현될 수도 있다. 데이터 프로세서는, 국소적 기술 환경에 적절한 임의의 타입의 것일 수도 있고, 비제한적인 예로서, 범용 컴퓨터, 특수 목적 컴퓨터, 마이크로프로세서, 디지털 신호 프로세서(digital signal processor; DSP) 및 멀티 코어 프로세서 아키텍쳐에 기초한 프로세서 중 하나 이상을 포함할 수도 있다.
본 발명의 실시형태는 집적 회로 모듈과 같은 다양한 컴포넌트에서 실시될 수도 있다. 집적 회로의 설계는, 대체로, 고도로 자동화된 프로세스이다. 논리 레벨 설계를 반도체 기판 상에 에칭 및 형성될 준비가 된 반도체 회로 설계로 변환하기 위한 복잡하고 강력한 소프트웨어 툴이 이용 가능하다.
미국 캘리포니아 마운틴 뷰(Mountain View) 소재의 Synopsys, Inc. 및 미국 캘리포니아 산호세(San Jose) 소재의 Cadence Design에 의해 제공되는 것과 같은 프로그램은, 잘 확립된 설계의 규칙뿐만 아니라, 미리 저장된 설계 모듈의 라이브러리를 사용하여, 도체를 자동적으로 경로 지정하고 반도체 칩 상에서 부품의 위치를 정한다. 일단 반도체 회로에 대한 설계가 완료되면, 표준화된 전자 포맷(예를 들면, Opus, GDSII, 또는 등등)의 결과적으로 나타나는 설계는, 제조를 위해 반도체 제조 설비 또는 "팹(fab)"으로 송신될 수도 있다.
전술한 설명은 예시적이고 비제한적인 예로서 본 발명의 예시적인 실시형태의 완전하고 유익한 설명을 제공한다. 그러나, 첨부의 도면 및 첨부된 청구범위와 관련하여 판독할 때, 전술한 설명의 견지에서 다양한 수정예 및 적응예가 관련 기술 분야에서 숙련된 자에게 명백하게 될 수도 있다. 그러나, 본 발명의 교시의 모든 이러한 그리고 유사한 수정예는 여전히 본 발명의 범위 내에 속할 것이다.
실시형태는 몇몇 이점을 제공할 수도 있다. 예를 들면, 모션 보상 예측의 정확도는 고차 모션 벡터 필드를 모델링하는 데 필요한 추가적인 정보를 시그널링하는 비트레이트 효율적인 방식을 제공하는 것에 의해 향상될 수도 있다.
제1 예에 따르면, 다음을 포함하는 방법이 제공된다:
모션 예측을 위한 샘플의 블록을 획득하는 단계;
샘플의 블록에 대한 병진 기본 모션 벡터를 선택하는 단계;
적어도 병진 기본 모션 벡터 성분에 대한 예측을 정의하는 단계;
제1 정밀도를 사용하여 병진 기본 모션 벡터 성분에 대한 제1 개선치를 정의하는 단계;
적어도 하나의 고차 모션 벡터 성분에 대한 예측을 정의하는 단계;
제1 정밀도와는 상이한 제2 정밀도를 사용하여 고차 모션 벡터 성분에 대한 제2 개선치를 정의하는 단계; 및
병진 기본 모션 벡터 성분, 제1 개선치, 및 제2 개선치에 관한 정보를 하나 이상의 비트스트림으로 인코딩하는 단계.
제2 예에 따르면, 다음을 포함하는 방법이 제공된다:
모션 예측을 위한 샘플의 블록을 획득하는 단계;
샘플의 블록에 대한 제1 정밀도를 갖는 병진 기본 모션 벡터를 선택하는 단계;
적어도 하나의 고차 모션 벡터 성분에 대한 예측을 정의하는 단계;
제1 정밀도와는 상이한 제2 정밀도를 사용하여 고차 모션 벡터 성분에 대한 개선치를 정의하는 단계; 및
병진 기본 모션 벡터 성분, 및 개선치에 관한 정보를 하나 이상의 비트스트림으로 인코딩하는 단계.
몇몇 실시형태에서, 제1 및/또는 제2 예의 방법은 다음을 포함한다:
기본 모션 벡터 성분, 기본 모션 벡터 성분에 대한 개선치, 고차 모션 벡터 성분, 및 고차 모션 벡터 성분에 대한 개선치에 기초하여 모션 벡터를 계산하는 단계.
몇몇 실시형태에서, 제1 및/또는 제2 예의 방법은 다음을 포함한다:
병진 기본 모션 벡터 및 제1 개선치의 정밀도가 동일하지 않은 경우, 제1 개선치에 제1 승수를 승산하여 스케일링된 제1 개선치를 획득하는 단계; 및
병진 모션 벡터 성분 계산에서 스케일링된 제1 개선치를 사용하는 단계.
몇몇 실시형태에서, 제1 및/또는 제2 예의 방법은 다음을 포함한다:
고차 모션 벡터 및 제2 개선치의 정밀도가 동일하지 않은 경우, 제2 개선치에 제2 승수를 승산하여 스케일링된 제2 개선치를 획득하는 단계; 및
고차 모션 벡터 성분 계산에서 스케일링된 제2 개선치를 사용하는 단계.
몇몇 실시형태에서, 제1 및/또는 제2 예의 방법은 다음을 포함한다:
고차 모션 벡터 성분에 대한 예측을 정의하기 위해 회전 및 줌을 핸들링할 수 있는 제한된 아핀 모션 모델을 사용하는 단계.
몇몇 실시형태에서, 제1 및/또는 제2 예의 방법은 다음을 포함한다:
고차 모션 벡터 성분에 대한 예측을 정의하기 위해 회전 및 줌을 핸들링할 수 있는 완전한 아핀 모션 모델(a full affine motion model)을 사용하는 단계.
몇몇 실시형태에서, 제1 및/또는 제2 예의 방법은 다음을 포함한다:
코딩 단위의 코너 모션 벡터를 사용하는 것에 의해 모션 벡터 필드를 시그널링하는 단계.
제1 및/또는 제2 예의 방법의 몇몇 실시형태에서, 인코딩은 다음을 포함한다:
파라미터 세트 또는 픽쳐 헤더 내의 정보의 적어도 일부를 슬라이스 헤더에서 또는 타일 헤더에서 시그널링하는 것.
제1 및/또는 제2 예의 방법의 몇몇 실시형태에서, 제1 정밀도는 제2 정밀도보다 더 낮다.
방법의 몇몇 실시형태에서, 제1 정밀도는 제2 정밀도보다 더 높다.
몇몇 실시형태에서, 제1 및/또는 제2 예의 방법은, 제1 정밀도 및 제2 정밀도 중 적어도 하나에 관한 정보를 하나 이상의 비트스트림으로 인코딩하는 단계를 더 포함한다.
제3 예에 따르면, 적어도 하나의 프로세서; 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되는데, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서와 함께, 장치로 하여금, 적어도 다음의 것을 수행하게 하도록 구성된다:
모션 예측을 위한 샘플의 블록을 획득하는 것;
샘플의 블록에 대한 병진 기본 모션 벡터를 선택하는 것;
적어도 병진 기본 모션 벡터 성분에 대한 예측을 정의하는 것;
제1 정밀도를 사용하여 병진 기본 모션 벡터 성분에 대한 제1 개선치를 정의하는 것;
적어도 하나의 고차 모션 벡터 성분에 대한 예측을 정의하는 것;
제1 정밀도와는 상이한 제2 정밀도를 사용하여 고차 모션 벡터 성분에 대한 제2 개선치를 정의하는 것; 및
병진 기본 모션 벡터 성분, 제1 개선치, 및 제2 개선치에 관한 정보를 하나 이상의 비트스트림으로 인코딩하는 것.
제4 예에 따르면, 적어도 하나의 프로세서; 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되는데, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서와 함께, 장치로 하여금, 적어도 다음의 것을 수행하게 하도록 구성된다:
모션 예측을 위한 샘플의 블록을 획득하는 것;
샘플의 블록에 대한 제1 정밀도를 갖는 병진 기본 모션 벡터를 선택하는 것;
적어도 하나의 고차 모션 벡터 성분에 대한 예측을 정의하는 것;
제1 정밀도와는 상이한 제2 정밀도를 사용하여 고차 모션 벡터 성분에 대한 개선치를 정의하는 것; 및
병진 기본 모션 벡터 성분, 및 개선치에 관한 정보를 하나 이상의 비트스트림으로 인코딩하는 것.
몇몇 실시형태에서, 제3 및/또는 제4 예의 장치는 또한 다음의 것을 수행하게 된다:
기본 모션 벡터 성분, 기본 모션 벡터 성분에 대한 개선치, 고차 모션 벡터 성분, 및 고차 모션 벡터 성분에 대한 개선치에 기초하여 모션 벡터를 계산하는 것.
몇몇 실시형태에서, 제3 및/또는 제4 예의 장치는 또한 다음의 것을 수행하게 된다:
병진 기본 모션 벡터 및 제1 개선치의 정밀도가 동일하지 않은 경우, 제1 개선치에 제1 승수를 승산하여 스케일링된 제1 개선치를 획득하는 것; 및
병진 모션 벡터 성분 계산에서 스케일링된 제1 개선치를 사용하는 것.
몇몇 실시형태에서, 제3 및/또는 제4 예의 장치는 또한 다음의 것을 수행하게 된다:
고차 모션 벡터 및 제2 개선치의 정밀도가 동일하지 않은 경우, 제2 개선치에 제2 승수를 승산하여 스케일링된 제2 개선치를 획득하는 것; 및
고차 모션 벡터 성분 계산에서 스케일링된 제2 개선치를 사용하는 것.
몇몇 실시형태에서, 제3 및/또는 제4 예의 장치는 또한 다음의 것을 수행하게 된다:
고차 모션 벡터 성분에 대한 예측을 정의하기 위해 회전 및 줌을 핸들링할 수 있는 제한된 아핀 모션 모델 및 완전한 아핀 모션 모델 중 하나를 사용하는 것.
몇몇 실시형태에서, 제3 및/또는 제4 예의 장치는 또한 다음의 것을 수행하게 된다:
코딩 단위의 코너 모션 벡터를 사용하는 것에 의해 모션 벡터 필드를 시그널링하는 것.
몇몇 실시형태에서, 제3 및/또는 제4 예의 장치는 또한 다음의 것을 수행하게 된다:
파라미터 세트 또는 픽쳐 헤더 내의 정보의 적어도 일부를 슬라이스 헤더에서 또는 타일 헤더에서 시그널링하는 것.
제5 예에 따르면, 장치에 의한 사용을 위한 코드가 저장된 컴퓨터 판독 가능 저장 매체가 제공되는데, 그 코드는, 프로세서에 의한 실행시, 장치로 하여금 다음의 것을 수행하게 한다:
모션 예측을 위한 샘플의 블록을 획득하는 것;
샘플의 블록에 대한 병진 기본 모션 벡터를 선택하는 것;
적어도 병진 기본 모션 벡터 성분에 대한 예측을 정의하는 것;
제1 정밀도를 사용하여 병진 기본 모션 벡터 성분에 대한 제1 개선치를 정의하는 것;
적어도 하나의 고차 모션 벡터 성분에 대한 예측을 정의하는 것;
제1 정밀도와는 상이한 제2 정밀도를 사용하여 고차 모션 벡터 성분에 대한 제2 개선치를 정의하는 것; 및
병진 기본 모션 벡터 성분, 제1 개선치, 및 제2 개선치에 관한 정보를 하나 이상의 비트스트림으로 인코딩하는 것.
제6 예에 따르면, 장치에 의한 사용을 위한 코드가 저장된 컴퓨터 판독 가능 저장 매체가 제공되는데, 그 코드는, 프로세서에 의한 실행시, 장치로 하여금 다음의 것을 수행하게 한다:
모션 예측을 위한 샘플의 블록을 획득하는 것;
샘플의 블록에 대한 제1 정밀도를 갖는 병진 기본 모션 벡터를 선택하는 것;
적어도 하나의 고차 모션 벡터 성분에 대한 예측을 정의하는 것;
제1 정밀도와는 상이한 제2 정밀도를 사용하여 고차 모션 벡터 성분에 대한 개선치를 정의하는 것; 및
병진 기본 모션 벡터 성분, 및 개선치에 관한 정보를 하나 이상의 비트스트림으로 인코딩하는 것.
제7 실시형태에 따르면, 이미지 시퀀스를 포함하는 비트스트림을 인코딩하도록 구성되는 비디오 인코더를 포함하는 장치가 제공되는데, 비디오 인코더는 다음을 포함한다:
모션 예측을 위한 샘플의 블록을 획득하기 위한 수단;
샘플의 블록에 대한 병진 기본 모션 벡터를 선택하기 위한 수단;
적어도 병진 기본 모션 벡터 성분에 대한 예측을 정의하기 위한 수단;
제1 정밀도를 사용하여 병진 기본 모션 벡터 성분에 대한 제1 개선치를 정의하기 위한 수단;
적어도 하나의 고차 모션 벡터 성분에 대한 예측을 정의하기 위한 수단;
제1 정밀도와는 상이한 제2 정밀도를 사용하여 고차 모션 벡터 성분에 대한 제2 개선치를 정의하기 위한 수단; 및
병진 기본 모션 벡터 성분, 제1 개선치, 및 제2 개선치에 관한 정보를 하나 이상의 비트스트림으로 인코딩하기 위한 수단.
제8 실시형태에 따르면, 이미지 시퀀스를 포함하는 비트스트림을 인코딩하도록 구성되는 비디오 인코더를 포함하는 장치가 제공되는데, 비디오 인코더는 다음을 포함한다:
모션 예측을 위한 샘플의 블록을 획득하기 위한 수단;
샘플의 블록에 대한 제1 정밀도를 갖는 병진 기본 모션 벡터를 선택하기 위한 수단;
적어도 하나의 고차 모션 벡터 성분에 대한 예측을 정의하기 위한 수단;
제1 정밀도와는 상이한 제2 정밀도를 사용하여 고차 모션 벡터 성분에 대한 개선치를 정의하기 위한 수단; 및
병진 기본 모션 벡터 성분, 및 개선치에 관한 정보를 하나 이상의 비트스트림으로 인코딩하기 위한 수단.
제9 예에 따르면, 다음을 포함하는 방법이 제공된다:
모션 예측을 위한 샘플의 블록을 수신하는 것;
샘플의 블록에 대해 선택된 제1 정밀도를 갖는 병진 기본 모션 벡터의 정보를 수신하는 것;
적어도 하나의 고차 모션 벡터 성분에 대한 예측의 정보를 수신하는 것;
제1 정밀도와는 상이한 제2 정밀도를 갖는 고차 모션 벡터 성분에 대한 개선치의 정보를 수신하는 것; 및
수신된 정보를 사용하는 것에 의해 모션 벡터를 계산하는 것.
몇몇 실시형태에서, 방법은 다음을 포함한다:
제1 정밀도를 갖는 병진 기본 모션 벡터 성분에 대한 개선치의 정보를 수신하는 것.
몇몇 실시형태에서, 방법은 다음을 포함한다:
기본 모션 벡터 성분, 기본 모션 벡터 성분에 대한 개선치, 고차 모션 벡터 성분, 및 고차 모션 벡터 성분에 대한 개선치에 기초하여 모션 벡터를 계산하는 단계.
몇몇 실시형태에서, 방법은 다음을 포함한다:
고차 모션 벡터 성분에 대한 예측을 정의하기 위해 회전 및 줌을 핸들링할 수 있는 제한된 아핀 모션 모델 및 완전한 아핀 모션 모델 중 하나를 사용하는 단계.
몇몇 실시형태에서, 방법은 다음을 포함한다:
코딩 단위의 코너 모션 벡터로서 모션 벡터 필드를 수신하는 단계.
몇몇 실시형태에서, 방법은 다음을 포함한다:
파라미터 세트 또는 픽쳐 헤더 내의 정보의 적어도 일부를 슬라이스 헤더에서 또는 타일 헤더에서 수신하는 단계.
제10 예에 따르면, 적어도 하나의 프로세서; 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되는데, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서와 함께, 장치로 하여금, 적어도 다음의 것을 수행하게 하도록 구성된다:
모션 예측을 위한 샘플의 블록을 수신하는 것;
샘플의 블록에 대해 선택된 제1 정밀도를 갖는 병진 기본 모션 벡터의 정보를 수신하는 것;
적어도 하나의 고차 모션 벡터 성분에 대한 예측의 정보를 수신하는 것;
제1 정밀도와는 상이한 제2 정밀도를 갖는 고차 모션 벡터 성분에 대한 개선치의 정보를 수신하는 것; 및
수신된 정보를 사용하는 것에 의해 모션 벡터를 계산하는 것.
몇몇 실시형태에서, 장치는 또한 다음의 것을 수행하게 된다:
제1 정밀도를 갖는 병진 기본 모션 벡터 성분에 대한 개선치의 정보를 수신하는 것.
몇몇 실시형태에서, 장치는 또한 다음의 것을 수행하게 된다:
기본 모션 벡터 성분, 기본 모션 벡터 성분에 대한 개선치, 고차 모션 벡터 성분, 및 고차 모션 벡터 성분에 대한 개선치에 기초하여 모션 벡터를 계산하는 것.
몇몇 실시형태에서, 장치는 또한 다음의 것을 수행하게 된다:
고차 모션 벡터 성분에 대한 예측을 정의하기 위해 회전 및 줌을 핸들링할 수 있는 제한된 아핀 모션 모델 및 완전한 아핀 모션 모델 중 하나를 사용하는 것.
몇몇 실시형태에서, 장치는 또한 다음의 것을 수행하게 된다:
코딩 단위의 코너 모션 벡터로서 모션 벡터 필드를 수신하는 것.
몇몇 실시형태에서, 장치는 또한 다음의 것을 수행하게 된다:
파라미터 세트 또는 픽쳐 헤더 내의 정보의 적어도 일부를 슬라이스 헤더에서 또는 타일 헤더에서 수신하는 것.
제11 예에 따르면, 장치에 의한 사용을 위한 코드가 저장된 컴퓨터 판독 가능 저장 매체가 제공되는데, 그 코드는, 프로세서에 의한 실행시, 장치로 하여금 다음의 것을 수행하게 한다:
모션 예측을 위한 샘플의 블록을 수신하는 것;
샘플의 블록에 대해 선택된 제1 정밀도를 갖는 병진 기본 모션 벡터의 정보를 수신하는 것;
적어도 하나의 고차 모션 벡터 성분에 대한 예측의 정보를 수신하는 것;
제1 정밀도와는 상이한 제2 정밀도를 갖는 고차 모션 벡터 성분에 대한 개선치의 정보를 수신하는 것; 및
수신된 정보를 사용하는 것에 의해 모션 벡터를 계산하는 것.
제12 실시형태에 따르면, 이미지 시퀀스를 포함하는 비트스트림을 디코딩하도록 구성되는 비디오 디코더를 포함하는 장치가 제공되는데, 비디오 인코더는 다음을 포함한다:
모션 예측을 위한 샘플의 블록을 수신하기 위한 수단;
샘플의 블록에 대해 선택된 제1 정밀도를 갖는 병진 기본 모션 벡터의 정보를 수신하기 위한 수단;
적어도 하나의 고차 모션 벡터 성분에 대한 예측의 정보를 수신하기 위한 수단;
제1 정밀도와는 상이한 제2 정밀도를 갖는 고차 모션 벡터 성분에 대한 개선치의 정보를 수신하기 위한 수단; 및
수신된 정보를 사용하는 것에 의해 모션 벡터를 계산하기 위한 수단.
Claims (13)
- 모션 예측을 위한 샘플의 블록을 획득하는 단계와,
상기 샘플의 블록에 대한 병진 기본 모션 벡터 성분(translational base motion vector component)에 대한 예측을 정의하는 것에 의해 적어도 하나의 상기 병진 기본 모션 벡터 성분을 계산하는 단계와,
제1 정밀도를 사용하여 제1 차분 모션 벡터 성분(differential motion vector component)을 정의하는 단계와,
상기 제1 차분 모션 벡터 성분을 상기 병진 기본 모션 벡터 성분에 대한 상기 예측에 가산하는 단계와,
고차 모션 벡터 성분(higher order motion vector component)에 대한 예측을 정의하는 것에 의해 적어도 하나의 상기 고차 모션 벡터 성분을 계산하는 단계 - 상기 예측은 상기 병진 기본 모션 벡터 성분에 적어도 부분적으로 기초함 - 와,
상기 제1 정밀도와는 상이한 제2 정밀도를 사용하여 제2 차분 모션 벡터 성분을 정의하는 단계와,
상기 제2 차분 모션 벡터 성분을 상기 고차 모션 벡터 성분에 대한 상기 예측에 가산하는 단계와,
상기 적어도 하나의 병진 기본 모션 벡터 성분 및 상기 적어도 하나의 차분 모션 벡터 성분을 사용하여 상기 샘플의 블록에 대한 모션 보상 동작을 수행하는 단계를 포함하는
방법. - 제1항에 있어서,
상기 병진 기본 모션 벡터 성분에 대한 개선치(refinement)에 관한 정보를 하나 이상의 비트스트림에 인코딩하는 단계 또는 상기 정보를 하나 이상의 비트스트림으로부터 수신하는 단계를 더 포함하는
방법. - 제1항 또는 제2항에 있어서,
상기 병진 기본 모션 벡터 성분에 기초하여 모션 벡터를 계산하는 단계, 상기 제1 차분 모션 벡터 성분에 기초하여 모션 벡터를 계산하는 단계, 상기 고차 모션 벡터 성분에 기초하여 모션 벡터를 계산하는 단계, 그리고 상기 제2 차분 모션 벡터 성분에 기초하여 모션 벡터를 계산하는 단계 중 적어도 하나를 더 포함하는
방법. - 제1항 또는 제2항에 있어서,
상기 병진 기본 모션 벡터 성분 및 상기 제1 차분 모션 벡터 성분의 정밀도가 동일하지 않은 경우, 상기 제1 차분 모션 벡터 성분에 제1 승수(multiplier)를 승산하여 스케일링된(scaled) 제1 차분 모션 벡터 성분을 획득하는 단계와,
상기 병진 기본 모션 벡터 성분 계산에서 상기 스케일링된 제1 차분 모션 벡터 성분을 사용하는 단계를 더 포함하는
방법. - 제1항 또는 제2항에 있어서,
상기 고차 모션 벡터 성분 및 상기 제2 차분 모션 벡터 성분의 정밀도가 동일하지 않은 경우, 상기 제2 차분 모션 벡터 성분에 제2 승수를 승산하여 스케일링된 제2 차분 모션 벡터 성분을 획득하는 단계와,
상기 고차 모션 벡터 성분 계산에서 상기 스케일링된 제2 차분 모션 벡터 성분을 사용하는 단계를 더 포함하는
방법. - 제1항 또는 제2항에 있어서,
상기 제1 정밀도와 상기 제2 정밀도 중 적어도 하나에 관한 정보를 하나 이상의 비트스트림에 인코딩하는 단계 또는 상기 정보를 하나 이상의 비트스트림으로부터 수신하는 단계를 포함하는
방법. - 제1항 또는 제2항에 있어서,
상기 고차 모션 벡터 성분에 대한 상기 예측을 정의하기 위해 회전 및 줌을 핸들링할 수 있는 제한된 아핀 모션 모델(restricted affine motion model)을 사용하는 단계, 또는
상기 고차 모션 벡터 성분에 대한 상기 예측을 정의하기 위해 회전 및 줌을 핸들링할 수 있는 완전한 아핀 모션 모델(a full affine motion model)을 사용하는 단계
중 하나의 단계를 포함하는
방법. - 제1항 또는 제2항에 있어서,
코딩 단위의 코너 모션 벡터(corner motion vector)를 사용하는 것에 의해 상기 모션 벡터 필드를 시그널링하거나 수신하는 단계를 포함하는
방법. - 제1항 또는 제2항에 있어서,
파라미터 세트 또는 픽쳐 헤더 내의 정보의 적어도 일부를 슬라이스 헤더에서 또는 타일 헤더에서 시그널링하거나 수신하는 단계를 포함하는
방법. - 장치로서,
적어도 하나의 프로세서와,
컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하되,
상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금 적어도,
모션 예측을 위한 샘플의 블록을 획득하는 것과,
상기 샘플의 블록에 대한 병진 기본 모션 벡터 성분에 대한 예측을 정의하는 것에 의해 적어도 하나의 상기 병진 기본 모션 벡터 성분을 계산하는 것과,
제1 정밀도를 사용하여 제1 차분 모션 벡터 성분을 정의하는 것과,
상기 제1 차분 모션 벡터 성분을 상기 병진 기본 모션 벡터 성분에 대한 상기 예측에 가산하는 것과,
고차 모션 벡터 성분에 대한 예측을 정의하는 것에 의해 적어도 하나의 상기 고차 모션 벡터 성분을 계산하는 것 - 상기 예측은 상기 병진 기본 모션 벡터 성분에 적어도 부분적으로 기초함 - 과,
상기 제1 정밀도와는 상이한 제2 정밀도를 사용하여 제2 차분 모션 벡터 성분을 정의하는 것과,
상기 제2 차분 모션 벡터 성분을 상기 고차 모션 벡터 성분에 대한 상기 예측에 가산하는 것과,
상기 적어도 하나의 병진 기본 모션 벡터 성분 및 상기 적어도 하나의 차분 모션 벡터 성분을 사용하여 상기 샘플의 블록에 대한 모션 보상 동작을 수행하는 것
을 수행하게 하도록 구성되는
장치. - 제10항에 있어서,
상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금, 제2항에 따른 방법을 수행하게 하도록 구성되는 컴퓨터 프로그램 코드를 더 포함하는
장치. - 장치에 의해 사용될 코드가 저장된 컴퓨터 판독가능 저장 매체로서,
상기 코드는, 프로세서에 의한 실행시, 상기 장치로 하여금,
모션 예측을 위한 샘플의 블록을 획득하는 것과,
상기 샘플의 블록에 대한 병진 기본 모션 벡터 성분에 대한 예측을 정의하는 것에 의해 적어도 하나의 상기 병진 기본 모션 벡터 성분을 계산하는 것과,
제1 정밀도를 사용하여 제1 차분 모션 벡터 성분을 정의하는 것과,
상기 제1 차분 모션 벡터 성분을 상기 병진 기본 모션 벡터 성분에 대한 상기 예측에 가산하는 것과,
고차 모션 벡터 성분에 대한 예측을 정의하는 것에 의해 적어도 하나의 상기 고차 모션 벡터 성분을 계산하는 것 - 상기 예측은 상기 병진 기본 모션 벡터 성분에 적어도 부분적으로 기초함 - 과,
상기 제1 정밀도와는 상이한 제2 정밀도를 사용하여 제2 차분 모션 벡터 성분을 정의하는 것과,
상기 제2 차분 모션 벡터 성분을 상기 고차 모션 벡터 성분에 대한 상기 예측에 가산하는 것과,
상기 적어도 하나의 병진 기본 모션 벡터 성분 및 상기 적어도 하나의 차분 모션 벡터 성분을 사용하여 상기 샘플의 블록에 대한 모션 보상 동작을 수행하는 것
을 수행하게 하는
컴퓨터 판독가능 저장 매체. - 제12항에 있어서,
상기 프로세서에 의한 실행시, 상기 장치로 하여금, 제2항에 따른 방법을 수행하게 하는, 상기 장치에 의해 사용될 코드를 더 포함하는
컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI20165613 | 2016-08-15 | ||
FI20165613 | 2016-08-15 | ||
PCT/FI2017/050570 WO2018033661A1 (en) | 2016-08-15 | 2017-08-11 | Video encoding and decoding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190033635A KR20190033635A (ko) | 2019-03-29 |
KR102191846B1 true KR102191846B1 (ko) | 2020-12-17 |
Family
ID=61197184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197007461A KR102191846B1 (ko) | 2016-08-15 | 2017-08-11 | 비디오 인코딩 및 디코딩 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10659802B2 (ko) |
EP (1) | EP3497932A4 (ko) |
JP (1) | JP6768145B2 (ko) |
KR (1) | KR102191846B1 (ko) |
CN (1) | CN109565602A (ko) |
PH (1) | PH12019500288A1 (ko) |
WO (1) | WO2018033661A1 (ko) |
ZA (1) | ZA201901466B (ko) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3780608A4 (en) | 2018-04-02 | 2021-12-01 | SZ DJI Technology Co., Ltd. | IMAGE PROCESSING PROCESS AND IMAGE PROCESSING DEVICE |
KR20200133327A (ko) * | 2018-04-12 | 2020-11-27 | 삼성전자주식회사 | 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 |
WO2019208372A1 (ja) | 2018-04-25 | 2019-10-31 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
GB2588004B (en) | 2018-06-05 | 2023-03-01 | Beijing Bytedance Network Tech Co Ltd | Interaction between IBC and affine |
EP3806461A4 (en) * | 2018-06-07 | 2022-03-16 | Wilus Institute of Standards and Technology Inc. | VIDEO SIGNAL PROCESSING METHOD AND APPARATUS USING ADAPTIVE MOTION VECTOR RESOLUTION |
WO2019244117A1 (en) | 2018-06-21 | 2019-12-26 | Beijing Bytedance Network Technology Co., Ltd. | Unified constrains for the merge affine mode and the non-merge affine mode |
CN113115046A (zh) | 2018-06-21 | 2021-07-13 | 北京字节跳动网络技术有限公司 | 分量相关的子块分割 |
US10904574B2 (en) * | 2018-09-13 | 2021-01-26 | Tencent America LLC | Method and device using an out of band end of stream NAL unit in decoding |
US11665365B2 (en) * | 2018-09-14 | 2023-05-30 | Google Llc | Motion prediction coding with coframe motion vectors |
CN110944196B (zh) | 2018-09-24 | 2023-05-30 | 北京字节跳动网络技术有限公司 | 简化的基于历史的运动矢量预测 |
CN111083491B (zh) | 2018-10-22 | 2024-09-20 | 北京字节跳动网络技术有限公司 | 细化运动矢量的利用 |
WO2020094150A1 (en) | 2018-11-10 | 2020-05-14 | Beijing Bytedance Network Technology Co., Ltd. | Rounding in current picture referencing |
WO2020098644A1 (en) * | 2018-11-12 | 2020-05-22 | Beijing Bytedance Network Technology Co., Ltd. | Bandwidth control methods for inter prediction |
CN117319644A (zh) | 2018-11-20 | 2023-12-29 | 北京字节跳动网络技术有限公司 | 基于部分位置的差计算 |
WO2020177755A1 (en) | 2019-03-06 | 2020-09-10 | Beijing Bytedance Network Technology Co., Ltd. | Usage of converted uni-prediction candidate |
KR20210145754A (ko) | 2019-04-12 | 2021-12-02 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 행렬 기반 인트라 예측에서의 산출 |
KR20220002989A (ko) * | 2019-04-25 | 2022-01-07 | 오피 솔루션즈, 엘엘씨 | 픽처 헤더 내의 글로벌 모션 벡터의 시그널링 |
KR20200132753A (ko) * | 2019-05-15 | 2020-11-25 | 현대자동차주식회사 | 영상 부호화 및 복호화 방법 및 장치 |
JP2022535726A (ja) | 2019-05-31 | 2022-08-10 | 北京字節跳動網絡技術有限公司 | 行列ベースイントラ予測における制約されたアップサンプリングプロセス |
WO2020244610A1 (en) | 2019-06-05 | 2020-12-10 | Beijing Bytedance Network Technology Co., Ltd. | Context determination for matrix-based intra prediction |
WO2021006614A1 (ko) * | 2019-07-08 | 2021-01-14 | 현대자동차주식회사 | 인터 예측을 이용하여 비디오를 부호화 및 복호화하는 방법 및 장치 |
US11432002B2 (en) | 2019-07-08 | 2022-08-30 | Hyundai Motor Company | Method and apparatus for encoding and decoding video using inter-prediction |
US11343524B2 (en) * | 2019-12-27 | 2022-05-24 | Tencent America LLC | Method for adaptation parameter set reference and constraints in coded video stream |
US20230262223A1 (en) * | 2020-06-03 | 2023-08-17 | Nokia Technologies Oy | A Method, An Apparatus and a Computer Program Product for Video Encoding and Video Decoding |
US12058310B2 (en) | 2021-02-26 | 2024-08-06 | Lemon Inc. | Methods of coding images/videos with alpha channels |
US20220279185A1 (en) * | 2021-02-26 | 2022-09-01 | Lemon Inc. | Methods of coding images/videos with alpha channels |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3529432B2 (ja) | 1994-06-30 | 2004-05-24 | 株式会社東芝 | 動画像符号化/復号化装置 |
WO1998042134A1 (en) | 1997-03-17 | 1998-09-24 | Mitsubishi Denki Kabushiki Kaisha | Image encoder, image decoder, image encoding method, image decoding method and image encoding/decoding system |
JP2009290827A (ja) | 2008-06-02 | 2009-12-10 | Sony Corp | 画像処理装置および画像処理方法 |
CN106067983B (zh) * | 2010-04-13 | 2019-07-12 | Ge视频压缩有限责任公司 | 解码数据流的方法、生成数据流的方法及解码器 |
US8743962B2 (en) * | 2011-03-01 | 2014-06-03 | Technische Universität Berlin | Encoding and decoding of video data |
CN104396244B (zh) * | 2012-04-16 | 2019-08-09 | 诺基亚技术有限公司 | 用于视频编码和解码的装置、方法和计算机可读存储介质 |
CN105531999B (zh) * | 2013-07-09 | 2019-08-09 | 诺基亚技术有限公司 | 涉及用于信号传输运动信息的语法的视频编码方法及装置 |
US9621917B2 (en) * | 2014-03-10 | 2017-04-11 | Euclid Discoveries, Llc | Continuous block tracking for temporal prediction in video encoding |
CN104661031B (zh) * | 2015-02-16 | 2017-12-22 | 华为技术有限公司 | 用于视频图像编码和解码的方法、编码设备和解码设备 |
CN106331722B (zh) | 2015-07-03 | 2019-04-26 | 华为技术有限公司 | 图像预测方法和相关设备 |
-
2017
- 2017-08-11 KR KR1020197007461A patent/KR102191846B1/ko active IP Right Grant
- 2017-08-11 JP JP2019507895A patent/JP6768145B2/ja not_active Expired - Fee Related
- 2017-08-11 CN CN201780049794.2A patent/CN109565602A/zh not_active Withdrawn
- 2017-08-11 EP EP17841142.7A patent/EP3497932A4/en not_active Withdrawn
- 2017-08-11 US US16/325,177 patent/US10659802B2/en not_active Expired - Fee Related
- 2017-08-11 WO PCT/FI2017/050570 patent/WO2018033661A1/en unknown
-
2019
- 2019-02-11 PH PH12019500288A patent/PH12019500288A1/en unknown
- 2019-03-08 ZA ZA2019/01466A patent/ZA201901466B/en unknown
Non-Patent Citations (1)
Title |
---|
Han Huan ET AL., Control-Point Representation and Differential Coding Affine-Motion Compensation, IEEE Transactions on Circuits and Systems for Video Technology ( Volume: 23 , Issue: 10 , Oct. 2013 ), 2013.03.27.* |
Also Published As
Publication number | Publication date |
---|---|
KR20190033635A (ko) | 2019-03-29 |
ZA201901466B (en) | 2020-12-23 |
JP6768145B2 (ja) | 2020-10-14 |
US20190182504A1 (en) | 2019-06-13 |
JP2019528024A (ja) | 2019-10-03 |
WO2018033661A1 (en) | 2018-02-22 |
CN109565602A (zh) | 2019-04-02 |
PH12019500288A1 (en) | 2019-10-28 |
EP3497932A4 (en) | 2020-03-25 |
EP3497932A1 (en) | 2019-06-19 |
US10659802B2 (en) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102191846B1 (ko) | 비디오 인코딩 및 디코딩 | |
KR102474636B1 (ko) | 크로스-채널 잔차 인코딩 및 디코딩을 위한 양자화 파라미터 도출 | |
EP2987326B1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
US11223849B2 (en) | Transform sign compression in video encoding and decoding | |
EP2941877B1 (en) | An apparatus, a method and a computer program for coding and decoding prediction type information | |
CN111327893B (zh) | 用于视频编码和解码的装置、方法和计算机程序 | |
US20140254681A1 (en) | Apparatus, a method and a computer program for video coding and decoding | |
EP3311572A1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
KR20220061245A (ko) | 비디오 코딩 및 디코딩 장치, 방법 및 컴퓨터 프로그램 | |
WO2018172609A2 (en) | Motion compensation in video encoding and decoding | |
KR20240027829A (ko) | 크로스-성분 파라미터 계산을 위한 장치, 방법 및 컴퓨터 프로그램 | |
GB2534591A (en) | Video encoding and decoding | |
WO2019211514A1 (en) | Video encoding and decoding | |
GB2519750A (en) | An apparatus, a method and a computer program for video coding and decoding |
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 |