KR102372120B1 - 멀티­계층 코덱들을 위한 hevc sei 메시지들의 일반적인 이용 - Google Patents

멀티­계층 코덱들을 위한 hevc sei 메시지들의 일반적인 이용 Download PDF

Info

Publication number
KR102372120B1
KR102372120B1 KR1020167026709A KR20167026709A KR102372120B1 KR 102372120 B1 KR102372120 B1 KR 102372120B1 KR 1020167026709 A KR1020167026709 A KR 1020167026709A KR 20167026709 A KR20167026709 A KR 20167026709A KR 102372120 B1 KR102372120 B1 KR 102372120B1
Authority
KR
South Korea
Prior art keywords
layer
nal units
vcl nal
coding
picture
Prior art date
Application number
KR1020167026709A
Other languages
English (en)
Other versions
KR20160136327A (ko
Inventor
예-쿠이 왕
아다르쉬 크리쉬난 라마수브라모니안
프누 헨드리
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20160136327A publication Critical patent/KR20160136327A/ko
Application granted granted Critical
Publication of KR102372120B1 publication Critical patent/KR102372120B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

예에서, 비디오 데이터를 코딩하는 방법은 비디오 데이터의 멀티-계층 비트스트림의 액세스 유닛 및 제 1 계층의 하나 이상의 비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 획득하는 것을 포함한다. 방법은 또한, 액세스 유닛 내에서, 비트스트림이 제 1 계층의 VCL NAL 유닛들과, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 비-VCL NAL 유닛들 사이에서, 멀티-계층 비트스트림의 임의의 다른 계층의 임의의 코딩된 픽처들을 포함하지 않도록, 제 1 계층의 VCL NAL 유닛들과 함께, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들을 오직 코딩하는 것을 포함한다.

Description

멀티­계층 코덱들을 위한 HEVC SEI 메시지들의 일반적인 이용{GENERIC USE OF HEVC SEI MESSAGES FOR MULTI-LAYER CODECS}
이 출원은 2014 년 3 월 24 일자로 출원된 미국 가출원 제 61/969,797 호의 이익을 주장하고, 그 전체 내용은 참조로 본원에 편입된다.
이 개시물은 비디오 코딩 및 압축과, 비트스트림에서의 압축된 비디오와 연관된 데이터의 시그널링에 관한 것이다.
디지털 비디오 기능들은, 디지털 텔레비전들, 디지털 다이렉트 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 정보 단말 (personal digital assistant; PDA) 들, 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, 전자책 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게임용 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 라디오 전화들, 소위 "스마트폰들", 화상 원격회의 디바이스들, 비디오 스트리밍 디바이스들 및 기타 등등을 포함하는 광범위한 디바이스들 내에 편입될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, 진보된 비디오 코딩 (Advanced Video Coding; AVC) 에 의해 정의된 표준들, 고효율 비디오 코딩 (High Efficiency Video Coding; HEVC) 표준, 및 이러한 표준들의 확장들에서 설명된 것들과 같은 비디오 압축 기법들을 구현한다. 비디오 디바이스들은 이러한 비디오 압축 기법들을 구현함으로써 디지털 비디오 정보를 더 효율적으로 송신하고, 수신하고, 인코딩하고, 디코딩하고, 및/또는 저장할 수도 있다.
비디오 압축 기법들은 비디오 시퀀스들에 내재된 중복성을 감소시키거나 제거하기 위해 공간적 (인트라-픽처 (intra-picture)) 예측 및/또는 시간적 (인터-픽처 (inter-picture)) 예측을 수행한다. 블록-기반 비디오 코딩을 위하여, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 부분) 는 비디오 블록들로 파티셔닝 (partitioning) 될 수도 있으며, 이 비디오 블록들은 트리블록 (treeblock) 들, 코딩 유닛 (coding unit; CU) 들 및/또는 코딩 노드들로서 또한 지칭될 수도 있다. 픽처의 인트라-코딩된 (I) 슬라이스에서의 비디오 블록들은 동일한 픽처에서의 이웃하는 블록들 내의 참조 샘플들에 대한 공간적 예측을 이용하여 인코딩된다. 픽처의 인터-코딩된 (P 또는 B) 슬라이스 내의 비디오 블록들은 동일한 픽처에서의 이웃하는 블록들 내의 참조 샘플들에 대한 공간적 예측, 또는 다른 참조 픽처들에서의 참조 샘플들에 대한 시간적 예측을 이용할 수도 있다. 픽처들은 프레임들로서 지칭될 수도 있고, 참조 픽처들은 참조 프레임들로서 지칭될 수도 있다.
공간적 또는 시간적 예측은 코딩되어야 할 블록에 대한 예측 블록으로 귀착된다. 잔차 데이터 (residual data) 는 코딩되어야 할 원래의 블록과 예측 블록과의 사이의 픽셀 차이들을 나타낸다. 인터-코딩된 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 지시하는 모션 벡터와, 코딩된 블록 및 예측 블록 사이의 차이를 표시하는 잔차 데이터에 따라 인코딩된다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가의 압축을 위하여, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어 잔차 변환 계수들로 귀착될 수도 있고, 그 후 이들은 양자화될 수도 있다. 초기에 2 차원 어레이로 배열된 양자화된 변환 계수들은 변환 계수들의 1 차원 벡터를 생성하기 위해 스캔될 수도 있고, 엔트로피 코딩은 훨씬 더 많은 압축을 달성하기 위해 적용될 수도 있다.
이 개시물의 양태들은 멀티-계층 상황 (multi-layer context) 에서의 고효율 비디오 코딩 (High Efficiency Video Coding; HEVC) 표준에서 정의되는 보충 강화 계층 (supplemental enhancement layer; SEI) 메시지들을 적용하기 위한 기법들에 대한 것이다. 예를 들어, 이 개시물의 기법들은 예컨대, HEVC 에 대한 멀티-뷰 비디오 코딩 확장 (Multi-view Video Coding extension to HEVC; MV-HEVC) 또는 HEVC 에 대한 스케일러블 비디오 코딩 (Scalable Video Coding; SVC) 확장 (SHVC) 과 같은 HEVC 표준에 대한 확장들을 이용하여 멀티-계층 비디오 코딩에서 적용되어야 할 HEVC 에서 기재된 다양한 SEI 메시지 신택스에 대한 변경들 및/또는 제약들을 포함할 수도 있다. 일부의 사례들에서, 기법들은 이러한 멀티-계층 코덱들의 연산 효율 및/또는 에러 내성 (error resilience) 을 개선시킬 수도 있다.
예에서, 비디오 데이터를 코딩하는 방법은, 비디오 데이터의 멀티-계층 비트스트림의 액세스 유닛 및 제 1 계층의 하나 이상의 비디오 코딩 계층 (video coding layer; VCL) 네트워크 추상화 계층 (network abstraction layer; NAL) 유닛들을 획득하는 단계와, 액세스 유닛 내에서, 비트스트림이 제 1 계층의 VCL NAL 유닛들과, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 비-VCL (non-VCL) NAL 유닛들 사이에서, 멀티-계층 비트스트림의 임의의 다른 계층의 임의의 코딩된 픽처들을 포함하지 않도록, 제 1 계층의 VCL NAL 유닛들과 함께, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들을 오직 코딩하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 코딩하기 위한 디바이스는 비디오 데이터의 멀티-계층 비트스트림의 적어도 부분을 저장하도록 구성된 메모리와, 비디오 데이터의 멀티-계층 비트스트림의 액세스 유닛 및 제 1 계층의 하나 이상의 비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 획득하고, 액세스 유닛 내에서, 비트스트림이 제 1 계층의 VCL NAL 유닛들과, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 비-VCL NAL 유닛들 사이에서, 멀티-계층 비트스트림의 임의의 다른 계층의 임의의 코딩된 픽처들을 포함하지 않도록, 제 1 계층의 VCL NAL 유닛들과 함께, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들을 오직 코딩하도록 구성된 하나 이상의 프로세서들을 포함한다.
또 다른 예에서, 비디오 데이터를 코딩하기 위한 장치는, 비디오 데이터의 멀티-계층 비트스트림의 액세스 유닛 및 제 1 계층의 하나 이상의 비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 획득하기 위한 수단과, 액세스 유닛 내에서, 비트스트림이 제 1 계층의 VCL NAL 유닛들과, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 비-VCL NAL 유닛들 사이에서, 멀티-계층 비트스트림의 임의의 다른 계층의 임의의 코딩된 픽처들을 포함하지 않도록, 제 1 계층의 VCL NAL 유닛들과 함께, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들을 오직 코딩하기 위한 수단을 포함한다.
또 다른 예에서, 비-일시적 컴퓨터-판독가능 매체는, 실행될 경우, 하나 이상의 프로세서들로 하여금, 비디오 데이터의 멀티-계층 비트스트림의 액세스 유닛 및 제 1 계층의 하나 이상의 비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 획득하게 하고, 그리고 액세스 유닛 내에서, 비트스트림이 제 1 계층의 VCL NAL 유닛들과, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 비-VCL NAL 유닛들 사이에서, 멀티-계층 비트스트림의 임의의 다른 계층의 임의의 코딩된 픽처들을 포함하지 않도록, 제 1 계층의 VCL NAL 유닛들과 함께, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들을 오직 코딩하게 하는 명령들을 저장한다.
또 다른 예에서, 비디오 데이터를 코딩하는 방법은 멀티-계층 비트스트림의 계층의 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하는 단계로서, 하나 이상의 비-VCL NAL 유닛들은 디코딩된 픽처 해시 (decoded picture hash) SEI 메시지를 포함하는, 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하는 단계와, 디코딩된 픽처 해시 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들의 계층 식별자에 기초하여, 디코딩된 픽처 해시 SEI 메시지가 적용가능한 멀티-계층 비트스트림의 계층들의 세트를 결정하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 코딩하기 위한 디바이스는 멀티-계층 비트스트림의 적어도 부분을 저장하도록 구성된 메모리와, 멀티-계층 비트스트림의 계층의 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하는 것으로서, 하나 이상의 비-VCL NAL 유닛들은 디코딩된 픽처 해시 SEI 메시지를 포함하는, 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하고, 그리고 디코딩된 픽처 해시 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들의 계층 식별자에 기초하여, 디코딩된 픽처 해시 SEI 메시지가 적용가능한 멀티-계층 비트스트림의 계층들의 세트를 결정하도록 구성된 하나 이상의 프로세서들을 포함한다.
또 다른 예에서, 비디오 데이터를 코딩하기 위한 장치는 멀티-계층 비트스트림의 계층의 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하기 위한 수단으로서, 하나 이상의 비-VCL NAL 유닛들은 디코딩된 픽처 해시 SEI 메시지를 포함하는, 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하기 위한 수단과, 디코딩된 픽처 해시 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들의 계층 식별자에 기초하여, 디코딩된 픽처 해시 SEI 메시지가 적용가능한 멀티-계층 비트스트림의 계층들의 세트를 결정하기 위한 수단을 포함한다.
또 다른 예에서, 비-일시적 컴퓨터-판독가능 매체는, 실행될 경우, 하나 이상의 프로세서들로 하여금, 멀티-계층 비트스트림의 계층의 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하게 하는 것으로서, 하나 이상의 비-VCL NAL 유닛들은 디코딩된 픽처 해시 SEI 메시지를 포함하는, 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하게 하고, 그리고 디코딩된 픽처 해시 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들의 계층 식별자에 기초하여, 디코딩된 픽처 해시 SEI 메시지가 적용가능한 멀티-계층 비트스트림의 계층들의 세트를 결정하게 하는 명령들을 저장한다.
또 다른 예에서, 비디오 데이터를 코딩하는 방법은 비디오 데이터의 멀티-계층 비트스트림의 계층의 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하는 단계로서, 하나 이상의 비-VCL NAL 유닛들은 SEI 페이로드 타입 (payload type) 을 가지는 SEI 메시지를 포함하는, 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하는 단계와, SEI 페이로드 타입에 기초하여, SEI 메시지가 적용되는 멀티-계층 비트스트림의 하나 이상의 신택스 값들을 결정하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 코딩하기 위한 디바이스는 멀티-계층 비트스트림의 계층을 저장하도록 구성된 메모리와, 비디오 데이터의 멀티-계층 비트스트림의 계층의 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하는 것으로서, 하나 이상의 비-VCL NAL 유닛들은 SEI 페이로드 타입을 가지는 SEI 메시지를 포함하는, 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하고, 그리고 SEI 페이로드 타입에 기초하여, SEI 메시지가 적용되는 멀티-계층 비트스트림의 하나 이상의 신택스 값들을 결정하도록 구성된 하나 이상의 프로세서들을 포함한다.
또 다른 예에서, 비디오 데이터를 코딩하기 위한 장치는 비디오 데이터의 멀티-계층 비트스트림의 계층의 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하기 위한 수단으로서, 하나 이상의 비-VCL NAL 유닛들은 SEI 페이로드 타입을 가지는 SEI 메시지를 포함하는, 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하기 위한 수단과, SEI 페이로드 타입에 기초하여, SEI 메시지가 적용되는 멀티-계층 비트스트림의 하나 이상의 신택스 값들을 결정하기 위한 수단을 포함한다.
또 다른 예에서, 비-일시적 컴퓨터-판독가능 매체는, 실행될 경우, 하나 이상의 프로세서들로 하여금, 비디오 데이터의 멀티-계층 비트스트림의 계층의 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하게 하는 것으로서, 하나 이상의 비-VCL NAL 유닛들은 SEI 페이로드 타입을 가지는 SEI 메시지를 포함하는, 하나 이상의 비-비디오 코딩 계층 (VCL) 네트워크 추상화 계층 (NAL) 유닛들을 코딩하게 하고, 그리고 SEI 페이로드 타입에 기초하여, SEI 메시지가 적용되는 멀티-계층 비트스트림의 하나 이상의 신택스 값들을 결정하게 하는 명령들을 저장한다.
개시물의 하나 이상의 예들의 세부 사항들은 동반된 도면들 및 이하의 설명에서 기재된다. 다른 특징들, 목적들, 및 장점들은 설명 , 도면들, 및 청구항들로부터 명백할 것이다.
도 1 은 이 개시물에서 설명된 기법들을 사용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템을 예시하는 블록도이다.
도 2 는 이 개시물에서 설명된 기법들을 구현할 수도 있는 일 예의 비디오 인코더를 예시하는 블록도이다.
도 3 은 이 개시물에서 설명된 기법들을 구현할 수도 있는 일 예의 비디오 디코더를 예시하는 블록도이다.
도 4 는 이 개시물의 하나 이상의 양태들이 구현될 수 있는 캡슐화 유닛의 하나의 예를 예시하는 블록도이다.
도 5 는 이 개시물의 하나 이상의 양태들이 구현될 수 있는 하나의 예의 네트워크를 예시하는 블록도이다.
도 6 은 이 개시물에서 설명된 기법들의 다양한 양태들에 따라 SEI 메시지를 코딩하도록 구성된 비디오 프로세싱 디바이스의 일 예의 동작을 예시하는 흐름도이다.
도 7 은 이 개시물에서 설명된 기법들의 다양한 양태들에 따라 SEI 메시지를 코딩하도록 구성된 비디오 프로세싱 디바이스의 또 다른 예의 동작을 예시하는 흐름도이다.
도 8 은 이 개시물에서 설명된 기법들의 다양한 양태들에 따라 SEI 메시지를 코딩하도록 구성된 비디오 프로세싱 디바이스의 또 다른 예의 동작을 예시하는 흐름도이다.
이 개시물은 멀티-계층 상황에서의 고효율 비디오 코딩 (HEVC) 표준에서 정의되는 보충 강화 계층 (SEI) 메시지들을 적용하기 위한 기법들을 포함한다. 일부의 사례들에서, 기법들은 이하에서 언급된 바와 같이, HEVC 에 대한 멀티-뷰 비디오 코딩 확장 (MV-HEVC) 또는 HEVC 에 대한 스케일러블 비디오 코딩 (SVC) 확장 (SHVC) 과 같은 HEVC 표준에 대한 멀티-계층 확장들로 수행될 수도 있다. 그러나, 이 개시물의 기법들은 임의의 특정한 비디오 코딩 표준으로 제한되지는 않고, 또한 또는 대안적으로, HEVC 에 대한 다른 확장들, 다른 멀티-뷰 코딩 표준들, 및/또는 다른 멀티-계층 비디오 표준들과 함께 이용될 수도 있다. 게다가, 이하에서 설명된 바와 같은 이 개시물의 기법들은 독립적으로 또는 조합하여 적용될 수도 있다.
비디오 데이터의 "계층 (layer)" 은 뷰 (view), 프레임 레이트 (frame rate), 해상도 (resolution) 등과 같은 적어도 하나의 공통의 특성을 가지는 픽처들의 시퀀스를 일반적으로 지칭할 수도 있다. 예를 들어, 계층은 멀티-뷰 비디오 데이터의 특정한 뷰 (예컨대, 관점) 와 연관된 비디오 데이터를 포함할 수도 있다. 또 다른 예로서, 계층은 스케일러블 비디오 데이터의 특정한 계층과 연관된 비디오 데이터를 포함할 수도 있다. 이에 따라, 이 개시물은 비디오 데이터의 계층 및 뷰를 상호 교환가능하게 지칭할 수도 있다. 즉, 비디오 데이터의 뷰는 비디오 데이터의 계층으로서 지칭될 수도 있고, 그 반대도 마찬가지이고, 복수의 뷰들 또는 복수의 스케일러블 계층들은 유사한 방식으로 예컨대, 멀티-계층 코딩 시스템에서 다수의 계층들로서 지칭될 수도 있다. 게다가, (또한, 멀티-계층 비디오 코더 또는 멀티-계층 인코더-디코더로서 지칭된) 멀티-계층 코덱은 멀티-뷰 코덱 또는 스케일러블 코덱 (예컨대, MV-HEVC, SHVC, 또는 또 다른 멀티-계층 코딩 기법을 이용하여 비디오 데이터를 인코딩하고 및/또는 디코딩하도록 구성된 코덱) 을 지칭할 수도 있다.
멀티-계층 비트스트림은 예컨대, SHVC 에서 기본 계층 및 하나 이상의 비-기본 (non-base) 계층들, 또는 예컨대, MV-HEVC 에서 복수의 뷰들을 포함할 수도 있다. 스케일러블 비트스트림에서, 기본 계층은 전형적으로 제로 (zero) 와 동일한 계층 식별자를 가질 수도 있다. 비-기본 계층은 제로보다 더 큰 계층 식별자를 가질 수도 있고, 기본 계층 내에 포함되지 않는 추가적인 비디오 데이터를 제공할 수도 있다. 예를 들어, 멀티-뷰 비디오 데이터의 비-기본 계층은 비디오 데이터의 추가적인 뷰를 포함할 수도 있다. 스케일러블 비디오 데이터의 비-기본 계층은 스케일러블 비디오 데이터의 추가적인 계층을 포함할 수도 있다. 비-기본 계층은 강화 계층 (enhancement layer) 으로서 상호 교환가능하게 지칭될 수도 있다.
멀티-계층 비트스트림의 (때때로 AU 로서 축약된) 액세스 유닛은 일반적으로, 공통의 시각적 인스턴스 (temporal instance) 에 대한 모든 계층 컴포넌트들 (예컨대, 모든 네트워크 추상화 계층 (NAL) 유닛들) 을 포함하는 데이터의 유닛이다. 액세스 유닛의 계층 컴포넌트들은 전형적으로 함께 출력되도록 (즉, 실질적으로 동시에 출력됨) 의도된 것이고, 여기서, 픽처를 출력하는 것은 일반적으로 디코딩된 픽처 버퍼 (decoded picture buffer; DPB) 로부터의 픽처들을 전송하는 것 (예컨대, DPB 로부터의 픽처들을 외부 메모리에 저장하는 것, DPB 로부터의 픽처들을 디스플레이로 전송하는 것 등) 을 수반한다.
비디오 데이터의 인코딩된 표현을 포함하는 비트스트림은 일련의 네트워크 추상화 계층 (NAL) 유닛들을 포함할 수도 있다. NAL 유닛은 에뮬레이션 방지 비트 (emulation prevention bit) 들이 필요한 바와 같이 산재된 원시 바이트 시퀀스 페이로드 (raw byte sequence payload; RBSP) 의 형태로, NAL 유닛에서의 데이터의 타입의 표시, 및 그 데이터를 포함하는 바이트들을 포함하는 신택스 구조일 수도 있다. NAL 유닛들은 비디오 코딩 계층 (VCL) NAL 유닛들 및 비-VCL NAL 유닛들을 포함할 수도 있다. VCL NAL 유닛들은 픽처들의 코딩된 슬라이스들을 포함할 수도 있다. 비-VCL NAL 유닛은 비디오 파라미터 세트 (video parameter set; VPS), 시퀀스 파라미터 세트 (sequence parameter set; SPS), 픽처 파라미터 세트 (picture parameter set; PPS), 하나 이상의 보충 강화 정보 (SEI) 메시지들, 또는 다른 타입들의 데이터를 캡슐화 (encapsulate) 할 수도 있다.
비트스트림의 NAL 유닛들은 비트스트림의 상이한 계층들과 연관될 수도 있다. SHVC 에서는, 위에서 언급된 바와 같이, 기본 계층 이외의 계층들이 "강화 계층들" 로서 지칭될 수도 있고, 비디오 데이터의 재생의 품질을 개선시키는 데이터를 포함할 수도 있다. MV-HEVC 와 같은, 멀티-뷰 코딩 및 3 차원 비디오 (3-dimensional video; 3DV) 코딩에서는, 계층들이 상이한 뷰들과 연관된 데이터를 포함할 수도 있다. 비트스트림의 각각의 계층은 상이한 계층 식별자와 연관된다.
게다가, NAL 유닛들은 시간적 식별자들을 포함할 수도 있다. 비트스트림의 각각의 동작 포인트는 계층 식별자들의 세트 및 시간적 식별자를 가진다. NAL 유닛이 동작 포인트에 대한 계층 식별자들의 세트에서 계층 식별자를 특정하고 NAL 유닛의 시간적 식별자가 동작 포인트의 시간적 식별자 이상일 경우, NAL 유닛은 동작 포인트와 연관된다.
H.264/AVC 및 HEVC 의 양자에서 지원된 SEI 메커니즘은 비디오 인코더들이 출력 픽처들의 샘플 값들의, 비디오 디코더 또는 다른 디바이스에 의한 정확한 디코딩을 위하여 요구되지 않는 비트스트림에서의 이러한 메타데이터를 포함하는 것을 가능하게 하지만, 픽처 출력 타이밍, 디스플레이뿐만 아니라, 손실 검출 및 은닉과 같은 다양한 다른 목적들을 위하여 이용될 수 있다. 하나 이상의 SEI 메시지들을 캡슐화하는 NAL 유닛은 SEI NAL 유닛으로서 본원에서 지칭된다. 하나의 타입의 SEI 메시지는 스케일러블 네스팅 (scalable nesting) SEI 메시지이다. 스케일러블 네스팅 SEI 메시지는 하나 이상의 추가적인 SEI 메시지들을 포함하는 SEI 메시지이다. 스케일러블 네스팅 SEI 메시지는 SEI 메시지가 멀티-계층 비트스트림의 특정한 계층들 또는 시간적 서브-계층들에 적용되는지 여부를 표시하기 위하여 이용될 수도 있다. 스케일러블 네스팅 SEI 메시지 내에 포함되지 않는 SEI 메시지는 비-네스팅된 (non-nested) SEI 메시지로서 본원에서 지칭된다.
어떤 타입들의 SEI 메시지들은 특정한 동작 포인트들에 오직 적용가능한 정보를 포함한다. 비트스트림의 동작 포인트는 계층 식별자들의 세트 및 시간적 식별자와 연관된다. 동작 포인트 표현은 동작 포인트와 연관되는 각각의 NAL 유닛을 포함할 수도 있다. 동작 포인트 표현은 원래의 비트스트림과는 상이한 프레임 레이트 및/또는 비트 레이트를 가질 수도 있다. 이것은 동작 포인트 표현이 일부의 픽처들 및/또는 원래의 비트스트림의 데이터의 일부를 포함하지 않을 수도 있기 때문이다.
버퍼링 주기 (buffering period) SEI 메시지들, 픽처 타이밍 (picture timing) SEI 메시지들, 및 디코딩 유닛 SEI 메시지들은 특정한 동작 포인트들에 오직 적용가능할 수도 있다. 이에 따라, 이러한 SEI 메시지들에서의 정보를 이용하기 위하여, 비디오 프로세서는 어느 동작 포인트들이 SEI 메시지들에 적용가능한지를 결정할 수도 있다. 다른 타입들의 SEI 메시지들은 특정한 계층들에 오직 적용가능하다. 이에 따라, 이러한 SEI 메시지들에서의 정보를 이용하기 위하여, 비디오 프로세서는 어느 계층들이 SEI 메시지들에 적용가능한지를 결정할 수도 있다.
멀티-계층 코딩의 상황에서의 HEVC SEI 메시지들의 일반적인 이용은 몇몇 도전들을 제시할 수도 있다. 예를 들어, 이하에서 더욱 상세하게 설명된 바와 같이, HEVC 에서 특정된 SEI 메시지들을 다수의 계층들에 적용하는 것은 복잡도를 증가시킬 수도 있고, 신택스 불일치들을 생성할 수도 있고, 멀티-계층 비디오 코덱으로 하여금, 오동작하게 하는 다른 에러들을 생성할 수도 있다.
일부의 예들에서, 이 개시물의 기법들은 HEVC SEI 메시지들의 일반적인 이용에 관련된 다양한 쟁점들을 해결하기 위한 해결책들을 제공할 수도 있다. 예를 들어, 기법들은 어떤 신택스 엘리먼트들에 관한 제약들을 적용하는 것을 포함할 수도 있어서, 비디오 인코더 또는 비디오 디코더는 멀티-계층 비트스트림의 특성들에 기초하여 어떤 신택스 엘리먼트들에 대한 값들을 자동으로 코딩 (또는 코딩 없이 자동으로 결정) 한다.
도 1 은 이 개시물에서 설명된 기법들을 사용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록도이다. 도 1 에서 도시된 바와 같이, 시스템 (10) 은 목적지 디바이스 (14) 에 의해 더 이후의 시간에 디코딩되어야 할 인코딩된 비디오 데이터를 생성하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 데스크톱 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 (set-top) 박스들, 소위 "스마트" 폰들과 같은 전화 핸드셋들, 소위 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게임용 콘솔들, 비디오 스트리밍 디바이스 등을 포함하는 광범위한 디바이스들 중의 임의의 것을 포함할 수도 있다. 일부의 경우들에는, 소스 디바이스 (12) 및 목적지 디바이스 (14) 가 무선 통신을 위해 구비될 수도 있다.
목적지 디바이스 (14) 는 링크 (16) 를 통해 디코딩되어야 할 인코딩된 비디오 데이터를 수신할 수도 있다. 링크 (16) 는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시킬 수 있는 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 하나의 예에서, 링크 (16) 는 소스 디바이스 (12) 가 인코딩된 비디오 데이터를 실시간으로 목적지 디바이스 (14) 로 직접 송신하는 것을 가능하게 하기 위한 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조될 수도 있고, 목적지 디바이스 (14) 로 송신될 수도 있다. 통신 매체는 라디오 주파수 (radio frequency; RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 일부를 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 가능하게 하기 위해 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
대안적으로, 인코딩된 데이터는 출력 인터페이스 (22) 로부터 저장 디바이스 (32) 로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스 (32) 로부터 액세스될 수도 있다. 저장 디바이스 (32) 는 하드 드라이브, 블루-레이 (Blu-ray) 디스크들, DVD 들, CD-ROM 들, 플래시 메모리, 휘발성 또는 비-휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적당한 디지털 저장 매체들과 같은, 다양한 분산되거나 국부적으로 액세스된 데이터 저장 매체들 중의 임의의 것을 포함할 수도 있다. 추가의 예에서, 저장 디바이스 (32) 는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 유지할 수도 있는 파일 서버 또는 또 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해 저장 디바이스 (32) 로부터 저장된 비디오 데이터를 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장할 수 있으며 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 송신할 수 있는 임의의 타입의 서버일 수도 있다. 일 예의 파일 서버들은 (예컨대, 웹사이트를 위한) 웹 서버, FTP 서버, 네트워크 연결 저장 (network attached storage; NAS) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인터넷 접속을 포함하는 임의의 표준 데이터 접속을 통해 인코딩된 비디오 데이터를 액세스할 수도 있다. 이것은, 파일 서버 상에 저장된 인코딩된 비디오 데이터를 액세스하기에 적당한 무선 채널 (예컨대, Wi-Fi 접속), 유선 접속 (예컨대, DSL, 케이블 모뎀 등), 또는 양자의 조합을 포함할 수도 있다. 저장 디바이스 (32) 로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 양자의 조합일 수도 있다.
이 개시물의 기법들은 무선 애플리케이션들 또는 세팅 (setting) 들로 반드시 제한되는 것은 아니다. 기법들은 오버-디-에어 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예컨대, 인터넷을 통한 스트리밍 비디오 송신들, 데이터 저장 매체 상에서의 저장을 위한 디지털 비디오의 인코딩, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들과 같은 다양한 멀티미디어 애플리케이션들 중의 임의의 것의 지원 하에서 비디오 코딩에 적용될 수도 있다. 일부의 예들에서, 시스템 (10) 은 비디오 스트리밍, 비디오 재생, 비디오 브로드캐스팅, 및/또는 화상 통화 (video telephony) 와 같은 애플리케이션들을 지원하기 위하여 일방향 (one-way) 또는 양방향 (two-way) 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 캡슐화 유닛 (encapsulation unit; 21), 및 출력 인터페이스 (22) 를 포함한다. 일부의 경우들에는, 출력 인터페이스 (22) 가 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수도 있다. 소스 디바이스 (12) 에서, 비디오 소스 (18) 는 비디오 캡처 디바이스, 예컨대, 비디오 카메라, 이전에 캡처된 비디오를 포함하는 비디오 아카이브 (video archive), 비디오 컨텐츠 제공자로부터 비디오를 수신하기 위한 비디오 공급 인터페이스, 및/또는 소스 비디오로서 컴퓨터 그래픽 데이터를 생성하기 위한 컴퓨터 그래픽 시스템과 같은 소스, 또는 이러한 소스들의 조합을 포함할 수도 있다. 하나의 예로서, 비디오 소스 (18) 가 비디오 카메라일 경우, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 이 개시물에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다.
캡처된 (captured), 프리-캡처된 (pre-captured), 또는 컴퓨터-생성된 비디오는 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 캡슐화 유닛 (21) 은 멀티미디어 컨텐츠의 하나 이상의 표현들을 형성할 수도 있고, 여기서, 표현들의 각각은 하나 이상의 계층들을 포함할 수도 있다. 일부의 예들에서, 비디오 인코더 (20) 는 상이한 방법들로, 예를 들어, 상이한 프레임 레이트들, 상이한 비트 레이트들, 상이한 해상도들, 또는 다른 이러한 차이들로 각각의 계층을 인코딩할 수도 있다. 이에 따라, 캡슐화 유닛 (21) 은 다양한 특성들, 예컨대, 비트 레이트, 프레임 레이트, 해상도 등을 가지는 다양한 표현들을 형성할 수도 있다.
표현들의 각각은 목적지 디바이스 (14) 에 의해 취출 (retrieve) 될 수 있는 개개의 비트스트림들에 대응할 수도 있다. 캡슐화 유닛 (21) 은 예컨대, 멀티미디어 컨텐츠에 대한 미디어 프리젠테이션 설명 (media presentation description; MPD) 데이터 구조 내에서, 각각의 표현 내에 포함된 뷰들에 대한 뷰 식별자들 (view_ids) 의 범위의 표시를 제공할 수도 있다. 예를 들어, 캡슐화 유닛 (21) 은 표현의 뷰들에 대한 최대 뷰 식별자 및 최소 뷰 식별자의 표시를 제공할 수도 있다. MPD 는 멀티미디어 컨텐츠의 복수의 표현들의 각각에 대한 출력을 위하여 타겟으로 된 뷰들의 최대 수들의 표시들을 추가로 제공할 수도 있다. MPD 또는 그 데이터는 일부의 예들에서, 표현 (들) 을 위한 매니페스트 (manifest) 내에 저장될 수도 있다.
인코딩된 비디오 데이터는 소스 디바이스 (12) 의 출력 인터페이스 (22) 를 통해 목적지 디바이스 (14) 로 직접적으로 송신될 수도 있다. 인코딩된 비디오 데이터는 또한 (또는 대안적으로), 디코딩 및/또는 재생을 위하여, 목적지 디바이스 (14) 또는 다른 디바이스들에 의한 더 이후의 액세스를 위하여 저장 디바이스 (32) 상으로 저장될 수도 있다.
목적지 디바이스 (14) 는 입력 인터페이스 (28), 역캡슐화 유닛 (decapsulation unit; 29), 비디오 디코더 (30), 및 디스플레이 디바이스 (31) 를 포함한다. 일부의 경우들에는, 입력 인터페이스 (28) 가 수신기 및/또는 모뎀을 포함할 수도 있다. 목적지 디바이스 (14) 의 입력 인터페이스 (28) 는 링크 (16) 를 통해 인코딩된 비디오 데이터를 수신한다. 링크 (16) 를 통해 통신되거나 저장 디바이스 (32) 상에서 제공된 인코딩된 비디오 데이터는 비디오 데이터를 디코딩함에 있어서, 비디오 디코더 (30) 와 같은 비디오 디코더에 의한 이용을 위하여 비디오 인코더 (20) 에 의해 생성된 다양한 신택스 엘리먼트들을 포함할 수도 있다. 이러한 신택스 엘리먼트들은 통신 매체 상에서 송신되거나, 저장 매체 상에 저장되거나, 파일 서버 상에 저장된 인코딩된 비디오 데이터와 함께 포함될 수도 있다.
목적지 디바이스 (14) 의 역캡슐화 유닛 (29) 은 비트스트림 (또는 멀티-계층 코딩의 상황에서 동작 포인트로서 지칭된 비트스트림의 서브세트) 으로부터의 SEI 메시지들을 역캡슐화하는 유닛을 나타낼 수도 있다. 역캡슐화 유닛 (29) 은 SEI 메시지들과 같은 캡슐화된 인코딩된 비트스트림으로부터의 데이터를 역캡슐화하기 위하여 캡슐화 유닛 (21) 에 의해 수행된 것들과 반대인 순서로 동작들을 수행할 수도 있다.
디스플레이 디바이스 (31) 는 목적지 디바이스 (14) 와 통합될 수도 있거나, 목적지 디바이스 (14) 의 외부에 있을 수도 있다. 일부의 예들에서, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함할 수도 있고, 또한, 외부의 디스플레이 디바이스와 인터페이스하도록 구성될 수도 있다. 다른 예들에서, 목적지 디바이스 (14) 는 디스플레이 디바이스일 수도 있다. 일반적으로, 디스플레이 디바이스 (31) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 액정 디스플레이 (liquid crystal display; LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (organic light emitting diode; OLED) 디스플레이, 또는 또 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중의 임의의 것을 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (digital signal processor; DSP) 들, 애플리케이션 특정 집적 회로 (application specific integrated circuit; ASIC) 들, 필드 프로그래밍가능 게이트 어레이 (field programmable gate array; FPGA) 들, 개별 로직, 소프트웨어, 하드웨어, 펌웨어 또는 그 임의의 조합들과 같은 다양한 적당한 인코더 회로부 중의 임의의 것으로서 구현될 수도 있다. 기법들이 소프트웨어로 부분적으로 구현될 때, 디바이스는 소프트웨어를 위한 명령들을 적당한 비-일시적 컴퓨터-판독가능 매체 내에 저장할 수도 있고, 이 개시물의 기법들을 수행하기 위하여 하나 이상의 프로세서들을 이용하여 명령들을 하드웨어로 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들 내에 포함될 수도 있고, 인코더들 또는 디코더들 중의 어느 하나는 조합된 인코더/디코더 (combined encoder/decoder; CODEC) 의 일부로서 개개의 디바이스 내에 통합될 수도 있다.
도 1 에서 도시되지 않았지만, 일부의 양태들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각 오디오 인코더 및 디코더와 통합될 수도 있고, 공통의 데이터 스트림 또는 별도의 데이터 스트림들에서 오디오 및 비디오 양자의 인코딩을 처리하기 위한 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능한 경우, 일부의 예들에서, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (user datagram protocol; UDP) 과 같은 다른 프로토콜들을 준수할 수도 있다.
이 개시물은 일반적으로, 비디오 인코더 (20) 가 어떤 정보를 비디오 디코더 (30) 와 같은 또 다른 디바이스로 "시그널링하는 것" 을 지칭할 수도 있다. 용어 "시그널링" 은 일반적으로, 압축된 비디오 데이터를 디코딩하기 위하여 이용된 신택스 엘리먼트들 및/또는 다른 데이터의 통신을 지칭할 수도 있다. 이러한 통신은 실시간 또는 실시간에 근접하게 발생할 수도 있다. 대안적으로, 이러한 통신은, 인코딩 시에 인코딩된 비트스트림으로, 신택스 엘리먼트들을 컴퓨터-판독가능 저장 매체에 저장할 때에 발생할 수도 있는 것과 같이, 시간의 기간에 걸쳐 발생할 수도 있고, 다음으로, 이러한 신택스 엘리먼트들은 이 매체에 저장된 후의 임의의 시간에 디코딩 디바이스에 의해 취출될 수도 있다.
일부의 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 그 스케일러블 비디오 코딩 (SVC) 확장, 멀티뷰 비디오 코딩 (Multiview Video Coding; MVC) 확장, 및 MVC-기반 3DV 확장을 포함하는 ISO/IEC MPEG-4 비주얼 (Visual) 및 ITU-T H.264 (또한, ISO/IEC MPEG-4 AVC 로서 알려짐) 와 같은 비디오 압축 표준에 따라 동작한다. 다른 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 ITU-T 비디오 코딩 전문가 그룹 (Video Coding Experts Group; VCEG) 및 ISO/IEC 동화상 전문가 그룹 (Motion Picture Experts Group; MPEG) 의 비디오 코딩에 관한 합동 협력 팀 (Joint Collaboration Team on Video Coding; JCT-VC) 에 의해 개발된 고효율 비디오 코딩 (HEVC) 에 따라 동작할 수도 있다. HEVC 표준의 초안은 ITU-T H.265 고효율 비디오 코딩 (High Efficiency Video Coding), 2014 년 4 월, 및 HEVC 버전 1 에 대한 제 3 결함 보고를 제공하는, Wang 등 "High Efficiency Video Coding (HEVC) defect report 3 (고효율 비디오 코딩 (HEVC) 결함 보고 3)", ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 비디오 코딩에 관한 합동 협력 팀 (JCT-VC), 문서 JCTVC-P1003_v1, 16 차 회의, San Jose, 2014 년 1 월, Wang 등 "High Efficiency Video Coding (HEVC) defect report 3 (고효율 비디오 코딩 (HEVC) 결함 보고 3)", ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 비디오 코딩에 관한 합동 협력 팀 (JCT-VC), 문서 JCTVC-P1003_v1, 16 차 회의, San Jose, 2014 년 1 월에 설명되어 있다.
또한, HEVC 를 위한 스케일러블 비디오 코딩, 멀티-뷰 코딩, 및 3DV 확장들을 생성하기 위한 진행 중인 노력들이 있다. HEVC 의 스케일러블 비디오 코딩 확장은 SHEVC 로서 지칭될 수도 있다. (이하, SHVC WD5 또는 현재의 SHVC WD 로서 지칭된) SHVC 의 최신 작업 초안 (Working Draft; WD) 은 Chen 등, "High Efficiency Video Coding (HEVC) scalable extension draft 5 (고효율 비디오 코딩 (HEVC) 스케일러블 확장 초안 5)", ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 비디오 코딩에 관한 합동 협력 팀 (JCT-VC), 문서 JCTVC-P1008_v4, 16 차 회의, San Jose, 2014 년 1 월에 설명되어 있다. (이하, MV-HEVC WD7 또는 현재의 MV-HEVC WD 로서 지칭된) MV-HEVC 의 최신 작업 초안 (WD) 은 Tech 등, "MV-HEVC Draft Text 7 (MV-HEVC 초안 텍스트 7)", ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 비디오 코딩에 관한 합동 협력 팀 (JCT-VC), 문서 JCTVC-G1004_v7, 16 차 회의, San Jose, 2014 년 1 월에 설명되어 있다.
HEVC 및 다른 비디오 코딩 사양들에서, 비디오 시퀀스는 전형적으로 일련의 픽처들을 포함한다. 픽처들은 또한, "프레임들" 로서 지칭될 수도 있다. 픽처는 SL, SCb, 및 SCr 로 나타낸 3 개의 샘플 어레이들을 포함할 수도 있다. SL 은 루마 샘플 (luma sample) 들의 2 차원 어레이 (즉, 블록) 이다. SCb 는 Cb 크로미넌스 샘플 (chrominance sample) 들의 2 차원 어레이이다. SCr 은 Cr 크로미넌스 샘플 (chrominance sample) 들의 2 차원 어레이이다. 크로미넌스 샘플들은 또한, 본원에서 "크로마 (chroma)" 샘플들로서 지칭될 수도 있다. 다른 사례들에서, 픽처는 단색일 수도 있고 루마 샘플들의 어레이를 오직 포함할 수도 있다.
픽처의 인코딩된 표현을 생성하기 위하여, 비디오 인코더 (20) 는 코딩 트리 유닛 (coding tree unit; CTU) 들의 세트를 생성할 수도 있다. CTU 들의 각각은 루마 샘플들의 코딩 트리 블록, 크로마 샘플들의 2 개의 대응하는 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 단색 픽처들, 또는 3 개의 별도의 컬러 평면들을 포함하는 픽처들에서는, CTU 가 단일 코딩 트리 블록과, 코딩 트리 블록의 샘플들을 코딩하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 코딩 트리 블록은 샘플들의 NxN 블록일 수도 있다. CTU 는 또한, "트리 블록" 또는 "최대 코딩 유닛 (largest coding unit)" (LCU) 으로서 지칭될 수도 있다. HEVC 의 CTU 들은 H.264/AVC 와 같은 다른 표준들의 매크로블록들과 대략 유사할 수도 있다. 그러나, CTU 는 반드시 특정한 사이즈 (size) 로 제한되는 것은 아니고, 하나 이상의 코딩 유닛 (CU) 들을 포함할 수도 있다. 슬라이스는 래스터 스캔 순서 (raster scan order) 로 연속으로 순서화된 정수 (integer number) 의 CTU 들을 포함할 수도 있다.
코딩된 CTU 를 생성하기 위하여, 비디오 인코더 (20) 는 코딩 트리 블록들을 코딩 블록들, 이 때문에, 명칭 "코딩 트리 유닛들" 로 분할하기 위하여, CTU 의 코딩 트리 블록들에 대해 쿼드-트리 파티셔닝을 재귀적으로 수행할 수도 있다. 코딩 블록은 샘플들의 NxN 블록일 수도 있다. CU 는, 루마 샘플 어레이, Cb 샘플 어레이, 및 Cr 샘플 어레이를 가지는 픽처의 크로마 샘플들의 2 개의 대응하는 코딩 블록들 및 루마 샘플들의 코딩 블록과, 코딩 블록들의 샘플들을 코딩하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 단색 픽처들, 또는 3 개의 별도의 컬러 평면들을 가지는 픽처들에서는, CU 가 단일 코딩 블록과, 코딩 블록의 샘플들을 코딩하기 위해 이용된 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록이다. CU 의 예측 유닛 (PU) 은 루마 샘플들의 예측 블록, 크로마 샘플들의 2 개의 대응하는 예측 블록들, 및 예측 블록들을 예측하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 단색 픽처들, 또는 3 개의 별도의 컬러 평면들을 가지는 픽처들에서는, PU 가 단일 예측 블록과, 예측 블록을 예측하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 비디오 인코더 (20) 는 CU 의 각각의 PU 의 루마, Cb, 및 Cr 예측 블록들에 대한 예측 루마, Cb, 및 Cr 블록들을 생성할 수도 있다.
비디오 인코더 (20) 는 PU 에 대한 예측 블록들을 생성하기 위하여 인트라 예측 또는 인터 예측을 이용할 수도 있다. 비디오 인코더 (20) 가 PU 의 예측 블록들을 생성하기 위하여 인트라 예측을 이용할 경우, 비디오 인코더 (20) 는 PU 와 연관된 픽처의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다. 비디오 인코더 (20) 가 PU 의 예측 블록들을 생성하기 위하여 인터 예측을 이용할 경우, 비디오 인코더 (20) 는 PU 와 연관된 픽처 이외의 하나 이상의 픽처들의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다.
비디오 인코더 (20) 가 CU 의 하나 이상의 PU 들에 대한 예측 루마, Cb, 및 Cr 블록들을 생성한 후, 비디오 인코더 (20) 는 CU 에 대한 루마 잔차 블록을 생성할 수도 있다. CU 의 루마 잔차 블록에서의 각각의 샘플은 CU 의 예측 루마 블록들 중의 하나에서의 루마 샘플과, CU 의 원래의 루마 코딩 블록에서의 대응하는 샘플과의 사이의 차이를 표시한다. 게다가, 비디오 인코더 (20) 는 CU 에 대한 Cb 잔차 블록을 생성할 수도 있다. CU 의 Cb 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cb 블록들 중의 하나에서의 Cb 샘플과, CU 의 원래의 Cb 코딩 블록에서의 대응하는 샘플과의 사이의 차이를 표시할 수도 있다. 비디오 인코더 (20) 는 또한, CU 에 대한 Cr 잔차 블록을 생성할 수도 있다. CU 의 Cr 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cr 블록들 중의 하나에서의 Cr 샘플과, CU 의 원래의 Cr 코딩 블록에서의 대응하는 샘플과의 사이의 차이를 표시할 수도 있다.
또한, 비디오 인코더 (20) 는 CU 의 루마, Cb, 및 Cr 잔차 블록들을 하나 이상의 루마, Cb, 및 Cr 변환 블록들로 분해하기 위하여 쿼드-트리 파티셔닝을 이용할 수도 있다. 변환 블록은 동일한 변환이 적용되는 샘플들의 직사각형 (예컨대, 정사각형 또는 비-정사각형) 블록이다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2 개의 대응하는 변환 블록들, 및 변환 블록 샘플들을 변환하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 이에 따라, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록과 연관될 수도 있다. TU 와 연관된 루마 변환 블록은 CU 의 루마 잔차 블록의 서브-블록 (sub-block) 일 수도 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브-블록일 수도 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브-블록일 수도 있다. 단색 픽처들, 또는 3 개의 별도의 컬러 평면들을 가지는 픽처들에서는, TU 가 단일 변환 블록과, 변환 블록의 샘플들을 변환하기 위해 이용된 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 TU 에 대한 루마 계수 블록을 생성하기 위하여 하나 이상의 변환들을 TU 의 루마 변환 블록에 적용할 수도 있다. 계수 블록은 변환 계수들의 2 차원 어레이일 수도 있다. 변환 계수는 스칼라 양 (scalar quantity) 일 수도 있다. 비디오 인코더 (20) 는 TU 에 대한 Cb 계수 블록을 생성하기 위하여 하나 이상의 변환들을 TU 의 Cb 변환 블록에 적용할 수도 있다. 비디오 인코더 (20) 는 TU 에 대한 Cr 계수 블록을 생성하기 위하여 하나 이상의 변환들을 TU 의 Cr 변환 블록에 적용할 수도 있다.
계수 블록 (예컨대, 루마 계수 블록, Cb 계수 블록, 또는 Cr 계수 블록) 을 생성한 후, 비디오 인코더 (20) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로, 변환 계수들을 나타내기 위해 이용된 데이터의 양을 가능한 대로 감소시키기 위하여 변환 계수들이 양자화되어 추가의 압축을 제공하는 프로세스를 지칭한다. 비디오 인코더 (20) 가 계수 블록을 양자화한 후, 비디오 인코더 (20) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들에 대해 컨텍스트-적응 2 진 산술 코딩 (Context-Adaptive Binary Arithmetic Coding; CABAC) 을 수행할 수도 있다.
비디오 인코더 (20) 는 코딩된 픽처들 및 연관된 데이터의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 출력할 수도 있다. 비트스트림은 네트워크 추상화 계층 (network abstraction layer; NAL) 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛은 에뮬레이션 방지 비트들이 필요에 따라 산재된 원시 바이트 시퀀스 페이로드 (RBSP) 의 형태로, NAL 유닛에서의 데이터의 타입의 표시 및 그 데이터를 포함하는 바이트들을 포함하는 신택스 구조이다. NAL 유닛들의 각각은 NAL 유닛 헤더를 포함하고 RBSP 를 캡슐화한다. NAL 유닛 헤더는 NAL 유닛 타입 코드를 표시하는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 특정된 NAL 유닛 타입 코드는 NAL 유닛의 타입을 표시한다. RBSP 는 NAL 유닛 내에서 캡슐화되는 정수의 바이트들을 포함하는 신택스 구조일 수도 있다. 일부의 사례들에서, RBSP 는 제로 비트들을 포함한다.
상이한 타입들의 NAL 유닛들은 상이한 타입들의 RBSP 들을 캡슐화할 수도 있다. 예를 들어, NAL 유닛의 제 1 타입은 픽처 파라미터 세트 (PPS) 에 대한 RBSP 를 캡슐화할 수도 있고, NAL 유닛의 제 2 타입은 코딩된 슬라이스에 대한 RBSP 를 캡슐화할 수도 있으며, NAL 유닛의 제 3 타입은 SEI 에 대한 RBSP 를 캡슐화할 수도 있는 등등과 같다. (파라미터 세트들 및 SEI 메시지들에 대한 RBSP들과 대조적으로) 비디오 코딩 데이터에 대한 RBSP들을 캡슐화하는 NAL 유닛들은 비디오 코딩 계층 (NCL) NAL 유닛들로서 지칭될 수도 있다.
비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 생성된 비트스트림을 수신할 수도 있다. 게다가, 비디오 디코더 (30) 는 비트스트림으로부터 신택스 엘리먼트들을 획득하기 위하여 비트스트림을 파싱 (parse) 할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 획득된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 재구성할 수도 있다. 비디오 데이터를 재구성하기 위한 프로세스는 비디오 인코더 (20) 에 의해 수행된 프로세스와 일반적으로 상반적일 수도 있다. 게다가, 비디오 디코더 (30) 는 현재의 CU 의 TU 들과 연관된 계수 블록들을 역양자화할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 TU 들과 연관된 변환 블록들을 재구성하기 위하여 계수 블록들에 대해 역변환들을 수행할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 PU 들에 대한 예측 블록들의 샘플들을 현재의 CU 의 TU 들의 변환 블록들의 대응하는 샘플들에 추가함으로써, 현재의 CU 의 코딩 블록들을 재구성할 수도 있다. 픽처의 각각의 CU 에 대한 코딩 블록들을 재구성함으로써, 비디오 디코더 (30) 는 픽처를 재구성할 수도 있다.
멀티-뷰 코딩에서는, 상이한 뷰포인트들로부터의 동일한 장면의 다수의 뷰들이 있을 수도 있다. 위에서 언급된 바와 같이, 액세스 유닛은 동일한 시간 인스턴스에 대응하는 픽처들의 세트를 포함한다. 이에 따라, 비디오 데이터는 시간 경과에 따라 발생하는 일련의 액세스 유닛들로서 개념화될 수도 있다. "뷰 컴포넌트" 는 단일 액세스 유닛에서의 뷰의 코딩된 표현일 수도 있다. 이 개시물에서, "뷰" 는 동일한 뷰 식별자와 연관된 뷰 컴포넌트들의 시퀀스를 지칭할 수도 있다. 일 예의 타입들의 뷰 컴포넌트들은 텍스처 뷰 컴포넌트들 및 심도 뷰 컴포넌트들을 포함한다.
멀티-뷰 코딩은 인터-뷰 예측을 지원한다. 인터-뷰 예측은 HEVC 에서 이용된 인터 예측과 유사하고, 동일한 신택스 엘리먼트들을 이용할 수도 있다. 그러나, 비디오 코더가 (PU 와 같은) 현재의 비디오 유닛에 대해 인터-뷰 예측을 수행할 때, 비디오 인코더 (20) 는 참조 픽처로서, 현재의 비디오 유닛과 동일한 액세스 유닛에 있지만 상이한 뷰에 있는 픽처를 이용할 수도 있다. 대조적으로, 기존의 인터 예측은 참조 픽처들로서, 상이한 액세스 유닛들 내의 픽처들을 오직 이용한다.
멀티-뷰 코딩에서는, 비디오 디코더 (예컨대, 비디오 디코더 (30)) 가 임의의 다른 뷰에서의 픽처들을 참조하지 않으면서 뷰에서의 픽처들을 디코딩할 수 있을 경우에, 뷰는 "기본 뷰" 로서 지칭될 수도 있다. 비-기본 뷰들 중의 하나에서의 픽처를 코딩할 때에는, 픽처가 상이한 뷰에 있지만 비디오 코더가 현재 코딩하고 있는 픽처와 동일한 시간 인스턴스 (즉, 액세스 유닛) 내에 있을 경우에, (비디오 인코더 (20) 또는 비디오 디코더 (30) 와 같은) 비디오 코더는 픽처를 참조 픽처 리스트 내로 추가할 수도 있다. 다른 인터 예측 참조 픽처들처럼, 비디오 코더는 참조 픽처 리스트의 임의의 위치에서 인터-뷰 예측 참조 픽처를 삽입할 수도 있다.
H.264/AVC 및 HEVC 의 양자에서 지원된 SEI 메커니즘은 비디오 인코더들 (예컨대, 비디오 인코더 (20)) 이 출력 픽처들의 샘플 값들의 정확한 디코딩을 위하여 요구되지 않는 비트스트림에서의 이러한 메타데이터를 포함하는 것을 가능하게 하지만, 픽처 출력 타이밍, 디스플레이뿐만 아니라, 손실 검출 및 은닉과 같은 다양한 다른 목적들을 위하여 이용될 수 있다. 비디오 인코더 (20) 는 픽처들의 샘플 값들의 정확한 디코딩을 위하여 요구되지 않는 메타데이터를 비트스트림 내에 포함하기 위하여 SEI 메시지들을 이용할 수도 있다. 그러나, 비디오 디코더 (30) 또는 다른 디바이스들은 다양한 다른 목적들을 위하여 SEI 메시지들에 포함된 메타데이터를 이용할 수도 있다. 예를 들어, 비디오 디코더 (30) 또는 또 다른 디바이스는 픽처 출력 타이밍, 픽처 디스플레이, 손실 검출, 및 에러 은닉을 위하여 SEI 메시지들 내의 메타데이터를 이용할 수도 있다.
비디오 인코더 (20) 는 액세스 유닛에서 하나 이상의 SEI NAL 유닛들을 포함할 수도 있다. 다시 말해서, 임의의 수의 SEI NAL 유닛들은 액세스 유닛과 연관될 수도 있다. 또한, 각각의 SEI NAL 유닛은 하나 이상의 SEI 메시지들을 포함할 수도 있다. 즉, 비디오 인코더들은 액세스 유닛에서 임의의 수의 SEI NAL 유닛들을 포함할 수 있고, 각각의 SEI NAL 유닛은 하나 이상의 SEI 메시지들을 포함할 수도 있다. SEI NAL 유닛은 NAL 유닛 헤더 및 페이로드를 포함할 수도 있다. SEI NAL 유닛의 NAL 유닛 헤더는 적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함한다. 제 1 신택스 엘리먼트는 SEI NAL 유닛의 계층 식별자를 특정한다. 제 2 신택스 엘리먼트는 SEI NAL 유닛의 시간적 식별자를 특정한다.
네스팅된 SEI 메시지는 스케일러블 네스팅 SEI 메시지 내에 포함되는 SEI 메시지를 지칭한다. 비-네스팅된 SEI 메시지는 스케일러블 네스팅 SEI 메시지 내에 포함되지 않는 SEI 메시지를 지칭한다. SEI NAL 유닛의 페이로드는 네스팅된 SEI 메시지 또는 비-네스팅된 SEI 메시지를 포함할 수도 있다.
HEVC 표준은 다양한 타입들의 SEI 메시지들에 대한 신택스 및 시맨틱 (semantic) 들을 설명한다. 그러나, SEI 메시지들은 규범적인 디코딩 프로세스 (normative decoding process) 에 영향을 주지 않으므로, HEVC 표준은 SEI 메시지들의 핸들링을 설명하지 않는다. HEVC 표준에서 SEI 메시지들을 가지기 위한 하나의 이유는 HEVC 를 이용하는 상이한 시스템들에서 동일하게 해독되는 보충 데이터를 가능하게 하기 위한 것이다. HEVC 를 이용하는 사양들 및 시스템들은 비디오 인코더들이 어떤 SEI 메시지들을 생성할 것을 요구할 수도 있거나, 특별한 타입들의 수신된 SEI 메시지들의 특정한 처리를 정의할 수도 있다.
이하의 표 1 은 HEVC 에서 특정된 SEI 메시지들을 열거하고 그 목적들을 간략하게 설명한다.
Figure 112016093498633-pct00001
Figure 112016093498633-pct00002
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 하나의 잠재적인 쟁점은, 제 1 계층 (예의 목적들을 위한 layerIdA) 과 동일한 (예컨대, 비트스트림의 nuh_layer_id 신택스 엘리먼트에 의해 식별된 바와 같은) 계층 식별자를 갖는 계층에 적용되는 SEI 메시지를 포함하는 SEI NAL 유닛이 계층들의 픽처들을 포함하는 액세스 유닛 (AU) 내의 제 1 계층 (layerIdA) 보다 더 큰 계층 식별자 (nuh_layer_id) 를 갖는 픽처의 VCL NAL 유닛을 후속 (follow) 하도록 허용된다는 것이다. 예를 들어, SEI 메시지는 SEI 메시지를 이용하는 픽처로부터 비트스트림에서 분리될 수도 있다.
예시의 목적들을 위한 예에서, 액세스 유닛은 멀티-계층 비트스트림의 제 1 계층의 제 1 픽처와, 멀티-계층 비트스트림의 제 2 계층의 제 2 픽처를 포함할 수도 있다. 일부의 사례들에서, 제 1 계층의 제 1 픽처에 적용가능한 SEI 메시지는 제 2 계층과 연관된 NAL 유닛들과 함께 포함될 수도 있다. SEI NAL 유닛이 비디오 데이터의 다른 계층들과 함께 포함되도록 허용될 경우, 비디오 인코더 (20) 및/또는 비디오 디코더 (20) 는 다른 계층들로부터 SEI NAL 유닛을 추출해야 할 수도 있고, 액세스 유닛을 코딩하기 전에 메시지를 저장해야 할 수도 있다.
이 개시물의 제 1 양태에 따르면, 제 1 계층 (layerIdA) 과 동일한 계층 식별자 (nuh_layer_id) 를 갖는 계층에 적용되는 SEI 메시지를 포함하는 SEI NAL 유닛은 임의의 VCL NAL 유닛뿐만 아니라, 액세스 유닛 내에서 제 1 계층 (layerIdA) 보다 더 큰 계층 식별자 (nuh_layer_id) 를 갖는 픽처의 그 연관된 비-VCL NAL 유닛들을 후속하도록 허용되지 않는다. 예를 들어, 이 개시물의 양태들에 따르면, SEI NAL 유닛들의 배치는 SEI NAL 유닛이 멀티-계층 비트스트림에서 적용되는 계층 (또는 계층들) 과 함께 있도록 SEI NAL 유닛이 제약될 수도 있다.
상기 예에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는, 비트스트림이 제 1 계층의 VCL NAL 유닛들과, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 비-VCL NAL 유닛들 사이에서, 멀티-계층 비트스트림의 임의의 다른 계층의 임의의 코딩된 픽처들을 포함하지 않도록, 제 1 계층의 VCL NAL 유닛들과 함께, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들을 오직 코딩할 수도 있다 (예컨대, SEI NAL 유닛 및 VCL NAL 유닛들을 연속적으로 코딩함). 일부의 사례들에서, SEI NAL 유닛이 적용되는 계층들에서의 픽처들을 갖는 멀티-계층 비트스트림에서 SEI NAL 유닛을 함께 가지는 것은 예컨대, 연관된 NAL 유닛들을 함께 저장하고 송신할 때에 저장 또는 송신 오버헤드를 최소화함에 있어서 유익할 수도 있다. 예를 들어, 비-VCL NAL 유닛들이 비트스트림에서 함께 적용되는 비-VCL 및 VCL NAL 유닛들을 유지함으로써, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 VCL NAL 유닛들을 코딩하기 전에, 비-VCL NAL 유닛들을 위치시켜야 하고 메모리로부터 비-VCL NAL 유닛들을 페치 (fetch) 해야 할 필요가 없을 수도 있다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 제 2 잠재적인 쟁점은, 디코딩된 픽처 해시 SEI 메시지가 적용되는 멀티-계층 비트스트림의 적용가능한 계층들의 세트가 HEVC 표준에서 명확하게 특정되지 않는다는 것이다. 디코딩된 픽처 해시 SEI 메시지는 디코딩된 픽처의 샘플 값들로부터 유도된 검사합을 제공한다. 디코딩된 픽처 해시 메시지는 픽처가 정확하게 수신되고 디코딩되었는지 여부를 검출하기 위하여 이용될 수도 있다.
이 개시물의 제 2 양태에 따르면, 디코딩된 픽처 해시 SEI 메시지의 적용가능한 계층들의 세트는 SEI 메시지를 포함하는 SEI NAL 유닛의 계층 식별자 (nuh_layer_id) 와 동일한 계층 식별자 (nuh_layer_id) 를 갖는 계층인 것으로 특정될 수도 있고, 디코딩된 픽처 해시 SEI 메시지는 네스팅되도록 허용되지 않는다. 예를 들어, 이 개시물의 양태들에 따르면, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 SEI NAL 유닛에서의 하나의 디코딩된 픽처 해시 SEI 메시지를 비-네스팅된 SEI 메시지로서 오직 코딩할 수도 있고, 디코딩된 픽처 해시 SEI 메시지는 SEI 메시지를 포함하는 SEI NAL 유닛의 동일한 계층 식별자 (nuh_layer_id) 를 가지는 계층에 오직 적용된다.
상기 예에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 디코딩된 픽처 해시 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들 (예컨대, SEI NAL 유닛들) 을 코딩할 수도 있고, 디코딩된 픽처 해시 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들의 계층 식별자에 기초하여, 디코딩된 픽처 해시 SEI 메시지가 적용가능한 멀티-계층 비트스트림의 계층들의 세트를 결정할 수도 있다. 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는, 계층들의 세트를 결정하는 것이 신택스 엘리먼트에 기초하도록, nuh_layer_id 신택스 엘리먼트와 같이, SEI NAL 유닛에 대한 계층 식별자를 표시하는 하나 이상의 신택스 엘리먼트들을 코딩할 수도 있다. 일부의 사례들에서, 기법들은 에러 내성을 증가시킬 수도 있고, 및/또는 멀티-계층 코딩에서의 디코딩된 픽처 해시 SEI 메시지들과 연관된 저장 오버헤드를 감소시킬 수도 있다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 제 3 잠재적인 쟁점은, 활성 파라미터 세트들 SEI 메시지의 적용가능한 계층들의 세트가 HEVC 표준에서 명확하게 특정되지 않는다는 것이다. 활성 파라미터 세트들 SEI 메시지는 어느 VPS 가 SEI 메시지와 연관된 액세스 유닛의 VCL NAL 유닛들에 대하여 활성인지를 표시한다. SEI 메시지는 또한, 어느 SPS 가 SEI 메시지와 연관된 액세스 유닛의 VCL NAL 유닛들에 대하여 활성인지에 대한 정보와, 파라미터 세트들에 관련된 다른 정보를 제공할 수도 있다. 예를 들어, SEI 메시지는 전체 랜덤 액세스가능성이 지원되는지 여부 (예컨대, 지원될 때, 디코딩 순서에서 더 빠른 모든 액세스 유닛들을 완전히 폐기함으로써 현재의 코딩된 비디오 시퀀스의 초반부터 랜덤 액세스할 때의 비트스트림의 나머지 픽처들의 디코딩을 위하여 필요한 모든 파라미터 세트들이 나머지 비트스트림에서 존재하고, 나머지 비트스트림에서의 모든 코딩된 픽처들은 정확하게 디코딩될 수 있음), 또는 디코딩 순서에서 선행하는 동일한 타입의 또 다른 파라미터 세트를 업데이트하는 현재의 코딩된 비디오 시퀀스 내에 파라미터 세트가 없는지 여부 (예컨대, 파라미터 세트의 업데이트는 동일한 파라미터 세트 식별자의 이용을 지칭하지만, 일부의 다른 파라미터들은 변경됨) 의 표시를 포함할 수도 있다.
이 개시물의 제 3 양태에 따르면, 활성 파라미터 세트들 SEI 메시지는 비트스트림에서 모든 계층들에 적용하도록 정의된다. 게다가, 활성 파라미터 세트들 SEI 메시지는 네스팅되는 것이 제약된다. 이 예에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 활성 파라미터 세트들 SEI 메시지를 포함하는 멀티-계층 비트스트림의 하나 이상의 비-VCL NAL 유닛들을 코딩할 수도 있고, 활성 파라미터 세트 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들에 기초하여, 활성 파라미터 세트들 SEI 메시지가 멀티-계층 비트스트림의 모든 계층들에 적용가능한 것으로 결정할 수도 있다. 예를 들어, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 활성 파라미터 세트들 SEI 메시지를 코딩하는 것으로 인해, 활성 파라미터 세트들 SEI 메시지가 멀티-계층 비트스트림의 모든 계층들에 적용되는 것을 자동으로 유도할 수도 있다. 일부의 사례들에서, 기법들은 멀티-계층 코딩에서의 활성 파라미터 세트들 SEI 메시지들과 연관된 복잡도를 감소시킬 수도 있다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 제 4 잠재적인 쟁점은, frame_field_info_present_flag 신택스 엘리먼트가 네스팅되거나 비-네스팅된 픽처 타이밍 정보 SEI 메시지에 대하여 1 과 동일할 때, 적용가능한 계층들의 세트는 신택스 엘리먼트들 pic_struct, source_scan_type, 및 duplicate_flag 에서 반송된 (carried) 프레임-필드 (frame-field) 정보에 대하여 명확하게 특정되지 않는다는 것이다. 예를 들어, 1 과 동일한 frame_field_info_present_flag 신택스 엘리먼트는, 픽처 타이밍 SEI 메시지들이 매 픽처에 대하여 존재하고 pic_struct, source_scan_type, 및 duplicate_flag 신택스 엘리먼트들을 포함한다는 것을 특정한다. 일반적으로, pic_struct 신택스 엘리먼트는 픽처가 프레임으로서, 또는 하나 이상의 필드들로서 디스플레이되어야 하는지 여부를 표시하고, source_scan_type 신택스 엘리먼트는 스캔 타입 (예컨대, 프로그레시브, 인터레이싱, 또는 알려지지 않음) 을 표시하고, duplicate_flag 신택스 엘리먼트는 현재의 픽처가 출력 순서에서의 이전의 픽처의 복제본 (duplicate) 인 것으로 표시된다는 것을 표시한다.
이 개시물의 제 4 양태에 따르면, frame_field_info_present_flag 신택스 엘리먼트가 네스팅되거나 비-네스팅된 픽처 타이밍 정보 SEI 메시지에 대하여 1 과 동일할 때, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 신택스 엘리먼트들 pic_struct, source_scan_type, 및 duplicate_flag 에서 반송된 프레임-필드 정보가 픽처 타이밍 SEI 메시지가 적용되는 동작 포인트들의 전부에서 계층들에 적용되는 것으로 자동으로 결정할 수도 있다. 이러한 방식으로, 일부의 사례들에서, 기법들은 멀티-계층 코딩에서 frame_field_info_present_flag 신택스 엘리먼트를 이용할 때, 복잡도를 감소시킬 수도 있고 및/또는 에러 내성을 개선시킬 수도 있다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 제 5 잠재적인 쟁점은, 활성 파라미터 세트들 SEI 메시지가 HEVC 에서 네스팅되는 것으로 허용된다는 것이다. 그러나, 위에서 언급된 바와 같이, 활성 파라미터 세트들 SEI 메시지는 모든 계층들에 적용가능하다. 따라서, (예컨대, 네스팅 SEI 메시지를 이용하여) 멀티-계층 비트스트림의 특정한 계층들에 적용되어야 할 활성 파라미터 세트들 SEI 메시지의 유연성 (flexibility) 을 제공하는 것은 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 의 복잡도를 불필요하게 증가시킬 수도 있다. 예를 들어, 스케일러블 네스팅 SEI 메시지를 수신하고 디코딩할 시에, 비디오 디코더 (30) 는 스케일러블 네스팅 SEI 메시지에 대한 적용가능한 계층들을 결정하기 위하여 (예컨대, 비-네스팅된 SEI 메시지들에 비하여) 추가적인 동작들을 수행해야 할 수도 있다.
이 개시물의 제 5 양태에 따르면, 활성 파라미터 세트들 SEI 메시지는 스케일러블 네스팅 SEI 메시지에서 네스팅되도록 허용되지 않는다. 예를 들어, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 스케일러블 네스팅 SEI 메시지에서가 아니라, 오직 비-네스팅된 SEI 메시지에서 멀티-계층 비트스트림의 활성 파라미터 세트들 SEI 메시지를 코딩하도록 제약될 수도 있다. 기법들은 활성 파라미터 세트들 SEI 메시지들을 코딩하고 이용하는 것과 연관된 연산 복잡도를 감소시킬 수도 있다. 예를 들어, 상기 예로 복귀하면, 비디오 디코더 (30) 는 스케일러블 네스팅 SEI 메시지들과 연관된 추가적인 동작들을 수행하지 않으면서, 활성 파라미터 세트들 SEI 메시지를 코딩하고 이용할 수도 있다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 제 6 잠재적인 쟁점은, 1 과 동일한 bitstream_subset_flag 신택스 엘리먼트 및 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 또는 134 (예컨대, 0, 1, 4, 5, 130, 및 133 중의 임의의 것과 동일하지 않은 payloadType 을 가지는 SEI 메시지들 중의 하나) 와 동일한 payloadType 을 가지는 네스팅된 SEI 메시지의 시맨틱들이 명확하지 않다는 것이다. HEVC 에서, bitstream_subset_flag 는 스케일러블 네스팅 SEI 메시지 내에 포함된 SEI 메시지들이 멀티-계층 비트스트림의 특정 계층들 또는 서브-계층들에 적용되는지 여부를 표시한다. 예를 들어, 제로와 동일한 bitstream_subset_flag 는 스케일러블 네스팅 SEI 메시지 내에 포함된 SEI 메시지들이 특정 계층들 또는 서브-계층들에 적용된다는 것을 특정한다. 1 과 동일한 bitstream_subset_flag 는 스케일러블 네스팅 SEI 메시지 내에 포함된 SEI 메시지들이 서브-비트스트림 추출 프로세스로부터 기인하는 하나 이상의 서브-비트스트림들에 적용된다는 것을 특정한다. 이 때문에, HEVC 는 특정한 계층 세트 (예컨대, 서브-비트스트림) 가 멀티-계층 비트스트림으로부터 추출될 때에 (위에서 식별된 페이로드 타입들을 가지는) 특정한 SEI 메시지들이 처리되는 방식을 명확하게 특정하지 않고, 이것은 멀티-계층 코딩 동안에 에러들 및/또는 비효율성들을 생성할 수도 있다.
payloadType 이 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 129, 131, 132, 또는 134 와 동일할 때, SEI 메시지는 각각, 출력 픽처들의 픽처 종횡비와는 상이한 픽처 종횡비에서 디스플레이하는 것과 연관된 데이터를 포함하는 팬-스캔 직사각형 SEI 메시지; 특정 제약들을 충족시키기 위하여 비트 레이트를 조절하기 위한 데이터를 포함하는 필러 페이로드 SEI 메시지; 클린 랜덤 액세스 또는 점진적 디코딩 리프레시를 위한 정보를 포함하는 복원 포인트 SEI 메시지; 장면 변경들 및 천이들과 연관된 정보를 포함하는 장면 정보 SEI 메시지; 연관된 디코딩된 픽처를 비디오 컨텐츠의 스틸-이미지 스냅샷으로서 라벨을 붙이기 위한 표시를 포함하는 픽처 스냅샷 SEI 메시지; 움직이는 장면이 아니라 픽처의 품질의 프로그레시브 세분화를 나타내는 연속적인 픽처들의 세그먼트의 시작과 연관된 정보를 포함하는 프로그레시브 세분화 세그먼트 시작 SEI 메시지; 연속적인 픽처들의 세그먼트의 종료와 연관된 정보를 포함하는 프로그레시브 세분화 세그먼트 종료 SEI 메시지; 필름 그레인 효과들을 합성하는 것과 연관된 정보를 포함하는 필름 그레인 특성들 SEI 메시지; 포스트-필터 설계를 위한 제안된 포스트-필터 계수들 또는 상관 정보와 연관된 정보를 포함하는 포스트 필터 힌트 SEI 메시지; 인코딩 시에 이용되거나 가정된 것과는 또 다른 컬러 공간에 재맵핑하는 것과 연관된 정보를 포함하는 톤 맵핑 정보 SEI 메시지; 비트스트림으로의 입체 비디오의 팩킹과 연관된 정보를 포함하는 프레임 팩킹 배열 SEI 메시지; 출력 픽처들이 디스플레이될 때에 출력 픽처들에 적용되어야 할 플립핑 및/또는 회전을 특정하는 정보를 포함하는 디스플레이 배향 SEI 메시지; 비트스트림의 시간적 및 인터 예측 구조를 설명하는 정보를 포함하는 픽처들의 구조 정보 SEI 메시지; 시간적 서브-계층 제로 인덱스를 표시하는 시간적 서브-계층 제로 인덱스 SEI 메시지; 디코딩된 픽처 해시 SEI 메시지, 또는 현재의 SEI 메시지와 연관된 슬라이스 세그먼트들이 현재의 픽처에서의 리프레시된 영역에 속하는지 여부를 표시하는 영역 리프레시 정보 SEI 메시지 중의 하나이다.
payloadType 이 0, 1, 4, 5, 130, 및 133 과 동일할 때, SEI 메시지는 각각, 버퍼링 주기 SEI 메시지, 픽처 타이밍 SEI 메시지, 사용자 등록된 SEI 메시지, 사용자 미등록된 SEI 메시지, 디코딩 유닛 정보 SEI 메시지, 또는 스케일러블 네스팅 SEI 메시지 중의 하나이다.
이 개시물의 제 6 양태에 따르면, 스케일러블 네스팅 SEI 메시지가 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 또는 134 (예컨대, 0, 1, 4, 5, 130, 및 133 중의 임의의 것과 동일하지 않은 payloadType 을 가지는 SEI 메시지들 중의 하나) 와 동일한 payloadType 을 가지는 SEI 메시지를 포함할 때, 스케일러블 네스팅 SEI 메시지의 신택스 엘리먼트 bitstream_subset_flag 의 값은 0 과 동일하도록 요구된다. 예를 들어, 이 개시물의 양태들에 따르면, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 SEI 메시지들의 미리 결정된 세트 내에 포함되는 SEI 메시지의 페이로드 타입에 기초하여 신택스 엘리먼트 bitstream_subset_flag 를 자동으로 결정하고 및/또는 코딩할 수도 있다. SEI 메시지들의 미리 결정된 세트는 단일 계층에 적용되는 SEI 메시지들일 수도 있다. 이러한 방식으로, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 멀티-계층 비트스트림에서 하나를 초과하는 계층에 적용되는 것으로부터, 상기-식별된 세트 내에 포함된 SEI 메시지를 적용하는 것이 제약됨으로써, 멀티-계층 코딩 동안에 에러들 및/또는 비효율성들을 잠재적으로 감소시킨다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 제 7 잠재적인 쟁점은, 비-네스팅된 버퍼링 주기, 픽처 타이밍, 또는 디코딩 유닛 정보 SEI 메시지를 포함하는 SEI NAL 유닛에 대하여 계층 식별자 값 (nuh_layer_id) 이 무엇이어야 하는지가 명확하지 않다는 것이다. 버퍼링 주기 SEI 메시지는 디코딩 순서에서의 연관된 액세스 유닛의 위치에서 HRD 의 초기화를 위한 초기 코딩된 픽처 버퍼 (coded picture buffer; CPB) 제거 지연 및 초기 CPB 제거 지연 오프셋 정보를 제공한다. 픽처 타이밍 SEI 메시지는 HRD 동작을 위한 픽처 출력 시간 및 픽처/서브-픽처 제거 시간뿐만 아니라, 픽처 구조 관련된 정보를 제공한다. 디코딩 유닛 정보 SEI 메시지는 디코딩 유닛에 대한 CPB 제거 지연 정보를 제공한다. 메시지는 매우-낮은-지연 버퍼링 동작들에서 이용될 수도 있다. 따라서, 상기 언급된 SEI 메시지들은 HRD 에 의해 필요하게 되는 정보를 제공하고, SEI 메시지는 계층 세트 (예컨대, 서브-비트스트림으로서 또한 지칭된 계층들의 자체-제약된 세트) 에 적용가능하다. 이러한 SEI 메시지들이 네스팅되지 않고 계층 식별자가 제로가 아닐 경우, 메시지들이 어느 계층 세트들에 적용되는지가 명확하지 않고, 이것은 멀티-계층 코딩 동안에 에러들을 생성할 수도 있다.
이 개시물의 제 7 양태에 따르면, 비-네스팅된 버퍼링 주기, 픽처 타이밍, 또는 디코딩 유닛 정보 SEI 메시지를 포함하는 SEI NAL 유닛에 대한 계층 식별자 (nuh_layer_id) 의 값은 0 과 동일하도록 요구된다. 예를 들어, 이 개시물의 양태들에 따르면, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 비-네스팅된 버퍼링 주기 SEI 메시지, 픽처 타이밍 SEI 메시지, 또는 디코딩 유닛 정보 SEI 메시지를 포함하는 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들에 기초하여 계층의 계층 식별자가 제로 값인 것으로 (및/또는 계층 식별자 신택스 엘리먼트에 대한 제로 값을 코딩함) 자동으로 결정할 수도 있다. 이러한 방식으로, 기법들은 멀티-계층 코딩 동안에 에러들 및/또는 비효율성들을 잠재적으로 감소시킬 수도 있다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 제 8 잠재적인 쟁점은, 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 또는 134 (즉, 0, 1, 129, 130, 및 133 중의 임의의 것과 동일하지 않은 payloadType 을 가지는 SEI 메시지들 중의 하나) 와 동일한 payloadType 을 가지는 비-네스팅된 SEI 메시지에 대하여 계층 식별자 신택스 엘리먼트 (nuh_layer_id) 의 값이 무엇이어야 하는지가 명확하지 않다는 것이다. 예를 들어, HEVC 는 (위에서 식별된 페이로드 타입들을 가지는) 특정한 SEI 메시지들이 멀티-계층 비트스트림의 (특정한 계층 식별자를 가지는) 특정한 계층들에 대하여 처리되는 방식을 명확하게 특정하지 않고, 이것은 멀티-계층 코딩 동안에 에러들 및/또는 비효율성들을 생성할 수도 있다.
이 개시물의 제 8 양태에 따르면, 비-네스팅된 SEI 메시지가 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 또는 134 (즉, 0, 1, 129, 130, 및 133 중의 임의의 것과 동일하지 않은 payloadType 을 가지는 SEI 메시지들 중의 하나) 와 동일한 payloadType 을 가질 때, 비-네스팅된 SEI 메시지를 포함하는 SEI NAL 유닛에 대한 계층 식별자 (nuh_layer_id) 의 값은 SEI NAL 유닛의 연관된 VCL NAL 유닛들의 계층 식별자 (nuh_layer_id) 와 동일한 것으로 요구된다. 즉, 예를 들어, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 페이로드 타입들 (예컨대, 위에서 식별된 페이로드 타입들) 의 제 1 세트 내에 포함되는 SEI 페이로드 타입에 기초하여, SEI 메시지를 포함하는 비-VCL NAL 유닛들에 대한 계층 식별자 신택스 엘리먼트가 SEI 메시지와 연관된 VCL NAL 유닛들의 계층 식별자 신택스 엘리먼트와 동일한 것으로 자동으로 결정할 수도 있다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 제 9 잠재적인 쟁점은, 프리픽스 (prefix) SEI 메시지가 액세스 유닛의 2 개의 VCL NAL 유닛들 사이에서 동일한 타입의 프리픽스 SEI 메시지가 있는 사례들에서 존재하고 액세스 유닛의 최초 VCL NAL 유닛을 선행하도록 HEVC 에서 요구된다는 것이다. 예를 들어, 프리픽스 SEI 메시지들은 SEI 메시지가 적용되는 VCL NAL 유닛들 이전에 비트스트림 내에 전형적으로 포함된다. HEVC 에서, 프리픽스 SEI 메시지들의 배치에 관한 한정은 액세스 유닛에 기반하고, 이것은 다수의 계층 컴포넌트들을 가지는 액세스 유닛들 (예컨대, 다수의 계층들로부터의 픽처들을 가지는 액세스 유닛들) 에 대한 쟁점을 제시할 수도 있다. 즉, 일부의 프리픽스 SEI 메시지들은 다수의 계층 컴포넌트들을 가지는 액세스 유닛들에서 (예컨대, SEI 메시지가 적용되는 VCL NAL 유닛들 이전에) 적절한 로케이션에서 위치되지 않을 수도 있다.
이 개시물의 제 9 양태에 따르면, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 (예컨대, 상기 언급된 액세스 유닛 기반 기법들과 대조적으로) 프리픽스 SEI 메시지들이 적용되는 픽처에 기초하여, 프리픽스 SEI 메시지들이 코딩되는 방식을 제어할 수도 있다. 예를 들어, 이 개시물의 양태들에 따르면, 픽처를 포함하는 계층 (예컨대, layerA) 에 적용되는 프리픽스 SEI 메시지는, 동일한 타입이며 픽처의 2 개의 VCL NAL 유닛들 사이에 존재하는 계층 (예컨대, layerA) 에 적용되는 프리픽스 SEI 메시지가 있는 사례들에서 존재하고 픽처의 최초 VCL NAL 유닛을 선행하도록 요구된다.
예를 들어, 적어도 제 1 픽처 및 제 2 픽처를 포함하는 액세스 유닛에 대하여, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 제 1 픽처의 VCL NAL 유닛들에 적용가능한 제 1 프리픽스 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들과, 비트스트림에서 제 1 픽처를 후속하는 제 2 픽처의 VCL NAL 유닛들에 적용가능한 제 2 프리픽스 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들을 코딩하도록 제약될 수도 있다. 이러한 방식으로, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 액세스 유닛의 다른 로케이션들에서 프리픽스 SEI 메시지들을 코딩하는 것이 제약되고, 이것은 멀티-계층 코딩에 대하여 효율성을 증가시킬 수도 있고 저장 오버헤드를 감소시킬 수도 있다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 제 10 잠재적인 쟁점은, HEVC 에서, 서픽스 (suffix) SEI 메시지가 액세스 유닛의 2 개의 VCL NAL 유닛들 사이에서 동일한 타입의 서픽스 SEI 메시지가 있을 때에 존재하고 액세스 유닛의 최후 VCL NAL 유닛을 뒤따르도록 (후속함) 요구된다는 것이다. 예를 들어, 서픽스 SEI 메시지는 SEI 메시지가 적용되는 VCL NAL 유닛들 이후에 비트스트림 내에 전형적으로 포함된다. HEVC 에서, 서픽스 SEI 메시지들의 배치에 관한 한정은 액세스 유닛에 기반하고, 이것은 다수의 계층 컴포넌트들을 가지는 액세스 유닛들 (예컨대, 멀티-계층 비트스트림의 액세스 유닛들) 에 대한 쟁점을 제시할 수도 있다. 즉, 일부의 서픽스 SEI 메시지들은 다수의 계층 컴포넌트들을 가지는 액세스 유닛들에서 (예컨대, SEI 메시지가 적용되는 VCL NAL 유닛들에 후속하여) 적절한 로케이션에서 위치되지 않을 수도 있다.
이 개시물의 제 10 양태에 따르면, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 (예컨대, 상기 언급된 액세스 유닛 기반 기법들과 대조적으로) 서픽스 SEI 메시지들이 적용되는 픽처에 기초하여, 서픽스 SEI 메시지들이 코딩되는 방식을 제어할 수도 있다. 예를 들어, 이 개시물의 양태들에 따르면, 픽처를 포함하는 계층 (예컨대, layerA) 에 적용되는 서픽스 SEI 메시지는, 동일한 타입이며 픽처의 2 개의 VCL NAL 유닛들 사이에 존재하는 계층 (예컨대, layerA) 에 적용되는 서픽스 SEI 메시지가 있을 때에 존재하고 픽처의 최후 VCL NAL 유닛을 뒤따르도록 (후속함) 요구된다.
예를 들어, 적어도 제 1 픽처 및 제 2 픽처를 포함하는 액세스 유닛에 대하여, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 제 1 픽처를 후속하는 제 1 픽처의 VCL NAL 유닛들에 적용가능한 제 1 서픽스 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들과, 비트스트림에서 제 2 픽처를 후속하는 제 2 픽처의 VCL NAL 유닛들에 적용가능한 제 2 프리픽스 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들을 코딩하도록 제약될 수도 있다. 이러한 방식으로, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 액세스 유닛의 다른 로케이션들에서 서픽스 SEI 메시지들을 코딩하는 것이 제약되고, 이것은 멀티-계층 코딩에 대하여 효율성을 증가시킬 수도 있고 저장 오버헤드를 감소시킬 수도 있다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 제 11 잠재적인 쟁점은, HEVC 에서, SEI 메시지가 반복되도록 허용되는 횟수가 액세스 유닛마다 특정된다는 것이다. 예를 들어, 일부의 사례들에서, SEI 메시지는 픽처를 코딩할 때에 반복될 수도 있다. 예시의 목적들을 위한 예에서, 각각의 슬라이스가 그 자신의 VCL NAL 유닛과 연관되는 8 개의 슬라이스들을 가지는 픽처에 대하여, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 각각의 VCL NAL 유닛에 대하여 특정한 SEI 메시지를 반복시킬 수도 있다. 그러나, SEI 메시지가 반복될 수도 있는 횟수에 관한 액세스 유닛-기반 한정은 멀티-계층 비디오 코딩에서 쟁점을 제시할 수도 있는데, 이것은 다수의 계층 컴포넌트들을 가지는 액세스 유닛이 단일 계층 컴포넌트 (예컨대, 단일 픽처) 를 가지는 액세스 유닛보다 더 많은 슬라이스들을 잠재적으로 가질 수도 있기 때문이다. 이 예에서, 에러 성능 (및/또는 SEI 메시지들에 의해 영향받은 다른 기능들) 은 불리하게 영향받을 수도 있다.
이 개시물의 제 11 양태에 따르면, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 SEI 메시지가 픽처마다에 기초하여 반복될 수도 있는 횟수를 특정할 수도 있다. 이 상황에서, 픽처는 코딩된 픽처의 VCL NAL 유닛들과, VCL NAL 유닛들과 연관되는 비-VCL NAL 유닛들을 포함하는 것으로서 정의될 수도 있다. 이 때문에, 이 개시물의 양태들에 따르면, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 픽처의 VCL NAL 유닛들, 및 픽처의 연관된 비-VCL NAL 유닛들을 포함하는 픽처 유닛에 기초하여, SEI 메시지에 대한 최대 반복 파라미터 (예컨대, SEI 메시지가 반복될 수도 있는 최대 횟수) 를 결정할 수도 있다. 기법들은 일부의 사례들에서, 멀티-계층 코딩에서의 에러 내성을 증가시킬 수도 있다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 제 12 잠재적인 쟁점은, default_op_flag 신택스 엘리먼트가 1 과 동일하고, bitstream_subset_flag 신택스 엘리먼트가 1 과 동일하지만, 0 내지 현재의 SEI NAL 유닛의 nuh_layer_id 까지의 범위에서의 계층 식별자 값들 (nuh_layer_id) 을 가지는 계층들을 포함하고 그리고 이를 오직 포함하는 비트스트림에 대하여 VPS 에 의해 특정된 계층 세트들이 없는 사례들에서 충돌이 유발될 수도 있다는 것이다. 예를 들어, 1 과 동일한 default_op_flag 신택스 엘리먼트는, maxTemporalId[ 0 ] 이 현재의 SEI NAL 유닛의 nuh_temporal_id_plus1 마이너스 (minus) 1 과 동일하다는 것과, nestingLayerIdList[ 0 ] 이 값들의 증가하는 순서로, 0 내지 현재의 SEI NAL 유닛의 nuh_layer_id 까지의 범위에서의 모든 정수 값들을 포함한다는 것을 특정한다. 위에서 언급된 바와 같이, 1 과 동일한 bitstream_subset_flag 신택스 엘리먼트는 스케일러블 네스팅 SEI 메시지 내에 포함된 SEI 메시지들이 서브-비트스트림 추출 프로세스로부터 기인하는 하나 이상의 서브-비트스트림들에 적용된다는 것을 특정한다. 다시 말해서, 멀티-계층 비트스트림의 디폴트 계층 세트가 표시되지만, VPS 는 디폴트 계층 세트에 대응하는 특정한 계층 세트를 특정하지 않는 상황들에서는 충돌이 유발될 수도 있다.
이 개시물의 제 12 양태에 따르면, bitstream_subset_flag 신택스 엘리먼트가 1 과 동일하고 VPS 에 의해 특정된 계층 세트들의 어느 것도 0 내지 현재의 SEI NAL 유닛의 nuh_layer_id 까지의 범위에서의 nuh_layer_id 값들을 가지는 계층들을 포함하지 않고 그리고 이를 오직 포함하지 않을 때, default_op_flag 신택스 엘리먼트의 값은 제로와 동일한 것으로 요구된다. 예를 들어, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 멀티-계층 비트스트림의 bitstream_subset_flag 신택스 엘리먼트를 코딩할 수도 있고, bitstream_subset_flag 가 1 과 동일한 것과, 멀티-계층 비트스트림의 VPS 에 의해 특정된 어느 계층 세트들도 제로 내지 SEI 메시지를 포함하는 비-VCL NAL 유닛들의 계층 식별자까지의 범위에서의 계층 식별자들을 포함하지 않는 것에 기초하여, 멀티-계층 비트스트림의 default_op_flag 신택스 엘리먼트의 값이 제로 값인 것으로 결정할 수도 있다. 기법들은 멀티-계층 코딩에서 default_op_flag 신택스 엘리먼트를 이용할 때에 에러 내성을 개선시킬 수도 있다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 제 13 잠재적인 쟁점은, nesting_op_flag 신택스 엘리먼트가 제로와 동일하고 all_layers_flag 신택스 엘리먼트가 1 과 동일할 때, 변수 maxTemporalId[ 0 ] 의 값은 HEVC 에서 특정되지 않는다는 것이다. 제로와 동일한 nesting_op_flag 신택스 엘리먼트는, 리스트 nestingLayerIdList[ 0 ] 가 all_layers_flag 신택스 엘리먼트와, 존재할 때, 0 내지 nesting_num_layers_minus1 까지의 범위에서의 모든 i 값들에 대한 nesting_layer_id[ i ] 에 의해 특정되고, 변수 maxTemporalId[ 0 ] 는 nesting_no_op_max_temporal_id_plus1 에 의해 특정된다는 것을 특정한다. 다시 말해서, HEVC 는 네스팅된 SEI 메시지들이 멀티-계층 비트스트림의 시간적 서브-계층들과 함께 이용될 때에 (예컨대, maxTemporalId[ 0 ] 변수를 이용하여 식별된 바와 같은) 적용가능한 서브-계층들을 특정하지 않고, 이것은 불필요한 복잡함들을 야기시킬 수도 있다.
이 개시물의 제 13 양태에 따르면, nesting_op_flag 신택스 엘리먼트가 제로와 동일하고 all_layers_flag 신택스 엘리먼트가 1 과 동일할 때, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 TemporalId 신택스 엘리먼트에 대한 최대 가능한 값인 6 의 값을 가지기 위하여 maxTemporalId[ 0 ] 신택스 엘리먼트를 자동으로 코딩할 수도 있다. 즉, 이 개시물의 양태들에 따르면, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 포함되는 서브-계층들의 수에 관계 없이, 비디오 데이터의 계층 내에 포함되는 모든 서브-계층들의 SEI 메시지를 적용하도록 구성될 수도 있다. 이러한 방식으로, 기법들은 멀티-계층 코딩과 연관된 복잡도를 감소시킬 수도 있다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서의 제 14 잠재적인 쟁점은, 네스팅된 SEI 메시지가 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 또는 134 (예컨대, 0, 1, 4, 5, 130, 및 133 중의 임의의 것과 동일하지 않은 payloadType 을 가지는 SEI 메시지들 중의 하나) 와 동일한 payloadType 을 가지고 SEI 메시지가 계층들의 세트에 적용될 때, 계층들의 세트는 비트스트림에서 TemporalId 의 가장 큰 값보다 더 작은 maxTemporalId[ i ] 의 값과 연관될 수도 있다는 것이다. 그러나, 이 SEI 메시지들의 시맨틱들은 서브-계층들을 고려하지 않고 설명되어 있고, 결과적으로, 상기 상황이 발생할 때에 스케일러블 네스팅 SEI 메시지의 시맨틱들과 불일치한다. 이 불일치는 멀티-계층 코딩의 복잡도를 불필요하게 증가시킬 수도 있다.
이 개시물의 제 14 양태에 따르면, 네스팅된 SEI 메시지가 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 또는 134 (예컨대, 0, 1, 4, 5, 130, 및 133 중의 임의의 것과 동일하지 않은 payloadType 을 가지는 SEI 메시지들 중의 하나) 와 동일한 payloadType 을 가질 때, 스케일러블 네스팅 SEI 메시지를 포함하는 SEI NAL 유닛은 제로와 동일한 TemporalId 신택스 엘리먼트를 가지고 모든 i 에 대한 maxTemporalId[ i ] 신택스 엘리먼트가 TemporalId 신택스 엘리먼트에 대한 최대 가능한 값인 6 과 동일하도록 요구한다. 예를 들어, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 페이로드 타입들 (예컨대, 위에서 식별된 타입들) 의 미리 결정된 세트에서의 페이로드 타입을 가지는 SEI 메시지에 기초하여, 제로와 동일한 TemporalId 신택스 엘리먼트와, 6 과 동일한 모든 i 에 대한 maxTemporalId[ i ] 신택스 엘리먼트에 대한 값을 자동으로 결정하도록 구성될 수도 있다. 이러한 방식으로, 기법들은 멀티-계층 코딩과 연관된 복잡도를 감소시킬 수도 있다.
멀티-계층 상황에서 HEVC SEI 메시지들을 이용함에 있어서 제 15 잠재적인 쟁점은, bitstream_subset_flag 신택스 엘리먼트가 1 과 동일하고 nesting_op_flag 신택스 엘리먼트가 제로와 동일할 때, HEVC 표준은 nestingLayeridList[ 0 ] 신택스 엘리먼트가 멀티-계층 비트스트림에 대한 VPS 에 의해 특정되지 않는 계층 세트에 대응하는 것을 허용한다.
이 개시물의 제 15 양태에 따르면, bitstream_subset_flag 신택스 엘리먼트가 1 과 동일하고 nesting_op_flag 신택스 엘리먼트가 제로와 동일할 때, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 VPS 에 의해 특정된 계층 세트들 중의 하나의 계층 세트의 nuh_layer_id 값들을 포함하고 그리고 오직 이를 포함하기 위하여 nestingLayeridList[ 0 ] 신택스 엘리먼트를 코딩하도록 구성될 수도 있다. 예를 들어, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 멀티-계층 비트스트림의 bitstream_subset_flag 신택스 엘리먼트 및 멀티-계층 비트스트림의 nesting_op_flag 신택스 엘리먼트를 코딩하고, 1 의 값을 가지는 bitstream_subset_flag 신택스 엘리먼트 및 제로의 값을 가지는 nesting_op_flag 신택스 엘리먼트에 기초하여, 멀티-계층 비트스트림의 nestingLayeridList[ 0 ] 가 멀티-계층 비트스트림의 VPS 에서 특정된 계층 세트의 계층 식별자 값들을 오직 포함하는 것으로 결정하도록 구성될 수도 있다. 이러한 방식으로, 기법들은 멀티-계층 코딩과 연관된 복잡도를 감소시킬 수도 있다.
위에서 설명된 기법들은 독립적으로 적용될 수도 있거나 조합하여 적용될 수도 있다. 이 개시물과 일치하는 상세한 예들은 이하에서 기재된다. 위에서 설명된 기법들의 일부에 대한 상기 언급된 SHVC 표준에 관련된 텍스트 변경들은 삽입된 자료를 식별하기 위한 밑줄들과, 이하의 삭제된 자료를 표시하기 위한 이중 괄호들 ([[제거됨: ]]) 을 이용하여 표시된다.
조항 3 에서의 다음의 정의들을 다음과 같이 변경:
3.X 액세스 유닛: 특정된 분류 규칙에 따라 서로 연관되고, 디코딩 순서 에서 연속적이고, 동일한 출력 시간과 연관된 모든 코딩된 픽처들 VCL NAL 유닛들 및 그 연관된 비- VCL NAL 유닛들 을 포함하는 NAL 유닛들 의 세트.
주목 - 동일한 액세스 유닛에서의 픽처들은 동일한 픽처 순서 카운트와 연관된다.
다음의 정의들을 조항 3 에 추가:
3.X 기본 비트스트림 파티션 : 또한, 준수하는 비트스트림 자체인 비트스트림 파티션.
3.X 비트스트림 파티션 : 파티셔닝에 따른 비트스트림의 서브세트인, NAL 유닛 스트림 또는 바이트 스트림의 형태인 비트들의 시퀀스.
3.X 출력 계층: TargetOptLayerSetIdx 가 출력 계층 세트의 인덱스와 동일할 때에 출력되는 출력 계층 세트계층.
3.X 출력 계층 세트: 특정된 계층 세트들 중의 하나의 계층 세트의 계층들로 구성되는 계층들의 세트, 여기서, 계층들의 세트에서의 하나 이상의 계층들출력 계층들인 것으로 표시됨.
3.X 출력 동작 포인트: 입력들로서 또 다른 비트스트림 , 타겟 최고 TemporalId , 및 타겟 계층 식별자 리스트 를 갖는 서브- 비트스트림 추출 프로세스 의 동작에 의해 또 다른 비트스트림 으로부터 생성되고, 타겟 출력 계층들 의 세트와 연관되는 비트스트림 .
3.X 픽처 유닛: 특정된 분류 규칙에 따라 서로 연관되고, 디코딩 순서 에서 연속적이고, 코딩된 픽처 VCL NAL 유닛들 및 그 연관된 비- VCL NAL 유닛들 을 포함하는 NAL 유닛들 의 세트.
3.X 타겟 출력 계층: 출력되어야 하고, TargetOptLayerSetIdx 가 olsIdx 와 동일하도록 인덱스 olsIdx 를 갖는 출력 계층 세트출력 계층들 중의 하나인 계층.
3.X 타겟 출력 계층 세트: 이용 중인 출력 동작 포인트계층 식별자 리스트타겟 출력 계층들의 세트를 특정하는 변수 TargetOptLayerSetIdx 와 연관된 출력 계층 세트.
[[제거됨: 3.X 동작 포인트: 입력들로서 또 다른 비트스트림, 타겟 최고 TemporalId, 및 타겟 계층 식별자 리스트를 갖는 서브- 비트스트림 추출 프로세스의 동작에 의해 또 다른 비트스트림으로부터 생성되고, 타겟 출력 계층들의 세트와 연관되는 비트스트림.
주목 14 - 동작 포인트의 타겟 최고 TemporalId 가 타겟 계층 식별 리스트와 연관된 리스트에서의 TemporalId 의 가장 큰 값과 동일할 경우, 동작 포인트는 계층 세트와 동일하다. 이와 다를 경우, 그것은 계층 세트의 서브세트이다.]]
C.1 일반
이 부록은 비트스트림 및 디코더 적합성을 검사하기 위하여 가상 참조 디코더 (hypothetical reference decoder; HRD) 및 그 용도를 특정한다.
...
다수의 테스트들은 테스트 중인 비트스트림으로서 지칭되는 비트스트림의 적합성을 검사하기 위하여 필요하게 될 수도 있다. 각각의 테스트에 대하여, 다음의 단계들이 열거된 순서로 적용된다:
1. TargetOp 로서 나타낸, 테스트 중인 출력 동작 포인트는 TargetOutputLayerSetIdx 에 의해 식별된 타겟 출력 계층 세트를 선택함으로써, 그리고 타겟 최고 TemporalId 값 HighestTid 를 선택함으로써 선택된다. TargetOutputLayerSetIdx 의 값은 0 내지 NumOutputLayerSets - 1 까지의 범위에 있을 것이다. HighestTid 의 값은 0 내지 vps_max_sub_layers_minus1 까지의 범위에 있을 것이다. 다음으로, 변수들 TargetDecLayerSetIdx, TargetOptLayerIdList, 및 TargetDecLayerIdList 는 수학식 8-1 에 의해 특정된 바와 같이 유도된다. 테스트 중인 출력 동작 포인트는 TargetOptLayerIdList 와 동일한 OptLayerIdList, TargetDecLayerIdList 와 동일한 OpLayerIdList, 및 HighestTid 와 동일한 OpTid 를 가진다.
...
비트스트림-특정 CPB 동작이 테스트될 때의 테스트 중인 각각의 출력 동작 포인트에 대하여, 수행되어야 할 비트스트림 적합성 테스트들의 수는 n0 * n1 * ( n2 * 2 + n3 ) * n4 와 동일하고, 여기서, n0, n1, n2, n3, 및 n4 의 값들은 다음과 같이 특정된다:
...
하위조항 D.3.1 을 다음과 같이 수정:
17 (프로그레시브 세분화 세그먼트
Figure 112016093498633-pct00003
종료) 또는 22 (포스트-필터 힌트) 와 동일한 payloadType 을 갖는 프리픽스 SEI 메시지가 액세스 유닛에서 존재할 때, payloadType 의 동일한 값을 갖는 서픽스 SEI 메시지는 동일한 액세스 유닛 액세스 유닛에서 존재하지 않을 것이라는 것이 비트스트림 적합성의 요건이다.
[[제거됨: SEI NAL 유닛 또는 SEI 메시지의 prevVclNalUnitInAu 를, 만약 존재할 경우, 동일한 액세스 유닛에서 디코딩 순서에서의 선행하는 VCL NAL 유닛이라고 하고, SEI NAL 유닛 또는 SEI 메시지의 nextVclNalUnitInAu 를, 만약 존재할 경우, 동일한 액세스 유닛에서 디코딩 순서에서의 다음 VCL NAL 유닛이라고 한다.]]
다음의 한정들이 SEI NAL 유닛들에서의 SEI 메시지들의 포함에 대해 적용되는 것은 비트스트림 적합성의 요건이다:
- 활성 파라미터 세트들 SEI 메시지를 포함하는 SEI NAL 유닛은 오직 하나의 활성 파라미터 세트들 SEI 메시지를 포함할 것이고 임의의 다른 SEI 메시지들을 포함하지 않을 것이다.
[[제거됨: 활성 파라미터 세트들 SEI 메시지를 포함하는 SEI NAL 유닛이 액세스 유닛에서 존재할 때, 그것은 SEI NAL 유닛의 prevVclNalUnitInAu 를 후속하고 SEI NAL 유닛의 nextVclNalUnitInAu 를 선행하는 최초 SEI NAL 유닛일 것이다.]]
- SEI NAL 유닛이 비-네스팅된 버퍼링 주기 SEI 메시지, 비-네스팅된 픽처 타이밍 SEI 메시지, 또는 비-네스팅된 디코딩 유닛 정보 SEI 메시지를 포함할 때, SEI NAL 유닛은 0 (버퍼링 주기), 1 (픽처 타이밍), 또는 130 (디코딩 유닛 정보) 과 동일하지 않은 payloadType 을 갖는 임의의 다른 SEI 메시지를 포함하지 않을 것이다.
- SEI NAL 유닛이 네스팅된 버퍼링 주기 SEI 메시지, 네스팅된 픽처 타이밍 SEI 메시지, 또는 네스팅된 디코딩 유닛 정보 SEI 메시지를 포함할 때, SEI NAL 유닛은 0 (버퍼링 주기), 1 (픽처 타이밍), 130 (디코딩 유닛 정보), 또는 133 (스케일러블 네스팅) 과 동일하지 않은 payloadType 을 갖는 임의의 다른 SEI 메시지를 포함하지 않을 것이다.
SEI NAL 유닛 또는 SEI 메시지의 prevVclNalUnitInAu 를 , 만약 존재할 경우, 동일한 액세스 유닛에서 디코딩 순서에서의 선행하는 VCL NAL 유닛이라고 하고, SEI NAL 유닛 또는 SEI 메시지의 nextVclNalUnitInAu 를 , 만약 존재할 경우, 동일한 액세스 유닛에서 디코딩 순서에서의 다음 VCL NAL 유닛이라고 한다. 다음의 한정들이 적용되는 것은 비트스트림 적합성의 요건이다:
다음의 한정들이 SEI 메시지들의 순서에 대해 적용되는 것은 비트스트림 적합성의 요건이다.
- 활성 파라미터 세트들 SEI 메시지를 포함하는 SEI NAL 유닛이 액세스 유닛에서 존재할 때, 그것은 SEI NAL 유닛의 prevVclNalUnitInAu 를 후속하고 SEI NAL 유닛의 nextVclNalUnitInAu 를 선행하는 최초 SEI NAL 유닛일 것이다.
- 비-네스팅된 버퍼링 주기 SEI 메시지가 액세스 유닛에서 존재할 때, 그것은 활성 파라미터 세트들 SEI 메시지 이외에, 버퍼링 주기 SEI 메시지의 prevVclNalUnitInAu 를 후속하고 버퍼링 주기 SEI 메시지의 nextVclNalUnitInAu 를 선행하는 임의의 다른 SEI 메시지를 후속하지 않을 것이다.
- 비-네스팅된 픽처 타이밍 SEI 메시지가 액세스 유닛에서 존재할 때, 그것은 활성 파라미터 세트들 SEI 메시지 또는 비-네스팅된 버퍼링 주기 SEI 메시지 이외에, 픽처 타이밍 SEI 메시지의 prevVclNalUnitInAu 를 후속하고 픽처 타이밍 SEI 메시지의 nextVclNalUnitInAu 를 선행하는 임의의 다른 SEI 메시지를 후속하지 않을 것이다.
- 비-네스팅된 디코딩 유닛 정보 SEI 메시지가 액세스 유닛에서 존재할 때, 그것은 활성 파라미터 세트들 SEI 메시지, 비-네스팅된 버퍼링 주기 SEI 메시지, 또는 비-네스팅된 픽처 타이밍 SEI 메시지 이외에, 디코딩 유닛 정보 SEI 메시지의 prevVclNalUnitInAu 를 후속하고 디코딩 유닛 정보 SEI 메시지의 nextVclNalUnitInAu 를 선행하는 동일한 액세스 유닛에서의 임의의 다른 SEI 메시지를 후속하지 않을 것이다.
- 네스팅된 버퍼링 주기 SEI 메시지, 네스팅된 픽처 타이밍 SEI 메시지, 또는 네스팅된 디코딩 유닛 정보 SEI 메시지가 액세스 유닛에서의 스케일러블 네스팅 SEI 메시지 내에 포함될 때, 스케일러블 네스팅 SEI 메시지는 활성 파라미터 세트들 SEI 메시지, 비-네스팅된 버퍼링 주기 SEI 메시지, 비-네스팅된 픽처 타이밍 SEI 메시지, 비-네스팅된 디코딩 유닛 정보 SEI 메시지, 또는 또 다른 스케일러블 네스팅 SEI 메시지로서, 버퍼링 주기 SEI 메시지, 픽처 타이밍 SEI 메시지, 또는 디코딩 유닛 정보 SEI 메시지를 포함하는 또 다른 스케일러블 네스팅 SEI 메시지 이외에, 스케일러블 네스팅 SEI 메시지의 prevVclNalUnitInAu 를 후속하고 스케일러블 네스팅 SEI 메시지의 nextVclNalUnitInAu 를 선행하는 임의의 다른 SEI 메시지를 후속하지 않을 것이다.
- payloadType 이 액세스 유닛 내의 네스팅되거나 비- 네스팅된 SEI 메시지에 대하여 0 (버퍼링 주기), 1 ( 픽처 타이밍), 또는 130 (디코딩 유닛 정보) 과 동일할 때, SEI 메시지를 포함하는 SEI NAL 유닛은 highestAppLayerId 보다 더 큰 nuh_layer_id 를 가지는 임의의 픽처의 모든 NAL 유닛들을 선행할 것이고, 여기서, highestAppLayerId SEI 메시지가 적용되는 모든 동작 포인트들에서의 모든 계층들의 nuh _layer_ id 의 가장 큰 값이다.
- payloadType 이 액세스 유닛 내의 네스팅되거나 비- 네스팅된 SEI 메시지에 대하여 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 또는 134 (즉, 0, 1, 4, 5, 130, 및 133 중의 임의의 것과 동일하지 않은 payloadType 을 가지는 SEI 메시지들 중의 하나) 와 동일할 때, SEI 메시지를 포함하는 SEI NAL 유닛은 highestAppLayerId 보다 더 큰 nuh _layer_ id 를 가지는 임의의 픽처 유닛의 모든 NAL 유닛들을 선행할 것이고, 여기서, highestAppLayerId SEI 메시지가 적용되는 모든 계층들의 nuh _layer_ id 의 가장 큰 값이다.
[[제거됨: 비-네스팅된 SEI 메시지에 대하여, payloadType, t 의 값에 따라서는]]
다음이 SEI 메시지들의 적용가능한 동작 포인트들 또는 계층들에 대해 적용된다:
- 비- 네스팅된 SEI 메시지에 대하여, [[제거됨: 만약]] payloadType 이 0 (버퍼링 주기), 1 (픽처 타이밍), 또는 130 (디코딩 유닛 정보) 일 때, 비-네스팅된 SEI 메시지는, 비트스트림에서의 모든 VCL NAL 유닛들 중에서 nuh_temporal_id_plus1 의 가장 큰 값과 동일한 OpTid 를 가지고, 비트스트림에서의 모든 VCL 유닛들 내의 nuh_layer_id 의 모든 값들을 포함하는 OpLayerIdList 를 가지는 동작 포인트에 적용된다.
- 비- 네스팅된 SEI 메시지에 대하여, [[제거됨: 이와 다를 경우,]] payloadType 이 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 또는 134 (즉, 0, 1, 4, 5, [[제거됨: 또는]] 130, 및 133 중의 임의의 것과 동일하지 않은 payloadType 을 가지고 [[제거됨: 네스팅된 SEI 메시지들인 것으로 허용되는]] SEI 메시지들 중의 하나) 와 동일할 때, 비-네스팅된 SEI 메시지는 VCL NAL 유닛들이 SEI 메시지를 포함하는 SEI NAL 유닛의 nuh_layer_id 와 동일한 nuh_layer_id 를 가지는 계층에 적용된다.
- 네스팅될 수 없는 활성 파라미터 세트들 SEI 메시지는 비트스트림에서의 모든 계층들에 적용된다.
- frame_field_info_present_flag 가 네스팅되거나 비- 네스팅된 픽처 타이밍 정보 SEI 메시지에 대하여 1 과 동일할 때, 신택스 엘리먼트들 pic _ struct , source_scan_type 및 duplicate_ flag 에서 반송된 프레임 필드 정보는 픽처 타이밍 SEI 메시지가 적용되는 모든 동작 포인트들에서의 모든 계층들에 적용된다.
다음의 한정들이 SEI 메시지들의 네스팅에 대해 적용되는 것은 비트스트림 적합성의 요건이다.
- 129 (활성 파라미터 세트들), 132 (디코딩된 픽처 해시), 및 133 (스케일러블 네스팅 [[제거됨:) SEI 메시지]] 과 동일한 payloadType 을 가지는 SEI 메시지는 스케일러블 네스팅 SEI 메시지에서 네스팅되지 않을 것이다.
- 스케일러블 네스팅 SEI 메시지가 버퍼링 주기 SEI 메시지, 픽처 타이밍 SEI 메시지, 또는 디코딩 유닛 정보 SEI 메시지를 포함할 때, 스케일러블 네스팅 SEI 메시지는 0 (버퍼링 주기), 1 (픽처 타이밍), 또는 130 (디코딩 유닛 정보) 과 동일하지 않은 payloadType 을 갖는 임의의 다른 SEI 메시지를 포함하지 않을 것이다.
- 스케일러블 네스팅 SEI 메시지가 버퍼링 주기 SEI 메시지, 픽처 타이밍 SEI 메시지, 또는 디코딩 유닛 정보 SEI 메시지를 포함할 때, 스케일러블 네스팅 SEI 메시지의 bitstream _subset_ flag 의 값은 1 과 동일할 것이다.
- 스케일러블 네스팅 SEI 메시지가 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 또는 134 (즉, 0, 1, 4, 5, 130, 및 133 중의 임의의 것과 동일하지 않은 payloadType 을 가지는 SEI 메시지들 중의 하나) 와 동일한 payloadType 을 가지는 SEI 메시지를 포함할 때, 스케일러블 네스팅 SEI 메시지의 bitstream_subset_flag 의 값은 0 과 동일할 것이다.
다음의 한정들이 SEI NAL 유닛들의 nuh _layer_id 및 TemporalId 의 값들에 대해 적용되는 것은 비트스트림 적합성의 요건이다:
- 비-네스팅된 SEI 메시지가 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 또는 134 (즉, 0, 1, 4, 5, 129, [[제거됨: 또는]] 130, 및 133 중의 임의의 것과 동일하지 않은 payloadType 을 가지고 [[제거됨: 네스팅된 SEI 메시지들인 것으로 허용되는]] SEI 메시지들 중의 하나) 와 동일한 payloadType 을 가질 때, 비-네스팅된 SEI 메시지를 포함하는 SEI NAL 유닛은 SEI NAL 유닛을 포함하는 액세스 유닛의 TemporalId 와 동일한 TemporalId 를 가질 것이다.
- 비- 네스팅된 SEI 메시지가 0, 1, 129, 또는 130 과 동일한 payloadType 을 가질 때, 비- 네스팅된 SEI 메시지를 포함하는 SEI NAL 유닛은 0 과 동일한 nuh_layer_id 를 가질 것이다.
- 비- 네스팅된 SEI 메시지가 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 또는 134 (즉, 0, 1, 129, 130, 및 133 중의 임의의 것과 동일하지 않은 payloadType 을 가지는 SEI 메시지들 중의 하나) 와 동일한 payloadType 을 가질 때, 비- 네스팅된 SEI 메시지를 포함하는 SEI NAL 유닛은 SEI NAL 유닛의 연관된 VCL NAL 유닛의 nuh _layer_id 와 동일한 nuh _layer_ id 를 가질 것이다.
주목 4 -  스케일러블 네스팅 SEI 메시지를 포함하는 SEI NAL 유닛에 대하여, TemporalId 및 nuh _layer_ id 의 값들은 각각, 네스팅된 SEI 메시지들이 적용되는 모든 서브-계층들 또는 동작 포인트들의 TemporalId nuh _layer_ id 의 최저 값과 동일하게 설정되어야 한다.
다음의 한정들이 [[제거됨: 액세스 유닛]] 픽처의 2 개의 VCL NAL 유닛들 사이에서의 SEI 메시지들의 존재에 대해 적용되는 것은 비트스트림 적합성의 요건이다.
- 0, 1, 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 129, 또는 131 (즉, Rec. ITU-T T.35 에 의해 사용자 데이터 등록된 SEI 메시지, 사용자 데이터 미등록된 SEI 메시지, 디코딩 유닛 정보 SEI 메시지, 스케일러블 네스팅 SEI 메시지, 또는 영역 리프레시 정보 SEI 메시지가 아닌 프리픽스 SEI 메시지들 중의 하나) 과 동일한 payloadType 을 가지고 디코딩 순서에서 [[제거됨: 액세스 유닛]] 픽처의 2 개의 VCL NAL 유닛들 사이에 존재하는 계층 layerA 의 픽처에 적용되는 프리픽스 SEI 메시지가 있을 때, 동일한 타입이고, [[제거됨: 액세스 유닛]] 픽처의 최초 VCL NAL 유닛을 선행하는 동일한 액세스 유닛에서 존재하는 계층 layerA 에 적용되는 프리픽스 SEI 메시지가 있을 것이다.
- 3 (필러 페이로드), 17 (프로그레시브 세분화 세그먼트 종료), 22 (포스트 필터 힌트), 또는 132 (디코딩된 픽처 해시) 와 동일한 payloadType 을 가지고 디코딩 순서에서 [[제거됨: 액세스 유닛]] 픽처의 2 개의 VCL NAL 유닛들 사이에 존재하는 계층 layerA 의 픽처에 적용되는 서픽스 SEI 메시지가 있을 때, 동일한 타입이고, [[제거됨: 액세스 유닛]] 픽처의 최후 VCL NAL 유닛을 뒤따르는 동일한 액세스 유닛에서 존재하는 계층 layerA 에 적용되는 서픽스 SEI 메시지가 있을 것이다.
다음의 한정들이 SEI 메시지들의 반복에 대해 적용되는 것은 비트스트림 적합성의 요건이다.
- 다음의 payloadType 값들의 각각에 대하여, [[제거됨: 액세스 유닛]] 픽처 유닛 내에 8 개 이하의 동일한 sei_payload( ) 신택스 구조들이 있을 것이다: 0, 1, 2, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 129, 131, 132, 및 133.
- 디코딩 유닛 내에 130 과 동일한 payloadType 을 갖는 8 개 이하의 동일한 sei_payload( ) 신택스 구조들이 있을 것이다.
- [[제거됨: 액세스 유닛]] 픽처 유닛에서 134 와 동일한 payloadType 을 갖는 동일한 sei_payload( ) 신택스 구조들의 수는 [[제거됨: 액세스 유닛]] 픽처 유닛에서 슬라이스 세그먼트들의 수 이하일 것이다.
하위조항 D.3.23 을 다음과 같이 수정:
스케일러블 네스팅 SEI 메시지는 SEI 메시지들을 다양한 동작 포인트들에 대응하는 비트스트림 서브세트들, 또는 특정 계층들 또는 서브-계층들과 연관시키기 위한 메커니즘을 제공한다.
스케일러블 네스팅 SEI 메시지는 하나 이상의 SEI 메시지들을 포함한다.
0 과 동일한 bitstream _subset_flag 는 스케일러블 네스팅 SEI 메시지들 내에 포함된 SEI 메시지들이 특정 계층들 또는 서브-계층들에 적용된다는 것을 특정한다. 1 과 동일한 bitstream_subset_flag 는, 스케일러블 네스팅 SEI 메시지 내에 포함된 SEI 메시지들이 이하에서 특정된 바와 같은 스케일러블 네스팅 SEI 메시지의 신택스 엘리먼트들에 기초한 입력들을 갖는 조항 10 에서 특정된 바와 같은 서브-비트스트림 추출 프로세스로부터 기인하는 하나 이상의 서브-비트스트림들에 적용된다는 것을 특정한다.
[[제거됨: 버퍼링 주기 SEI 메시지, 픽처 타이밍 SEI 메시지, 또는 디코딩 유닛 정보 SEI 메시지가 스케일러블 네스팅 SEI 메시지 내에 포함될 때, bitstream_subset_flag 가 1 과 동일할 것이다.]]
bitstream_subset_flag 의 값에 따라서는, 스케일러블 네스팅 SEI 메시지 내에 포함된 SEI 메시지들이 적용되는 계층들 또는 서브-계층들, 또는 동작 포인트들이 이하에서 특정된 바와 같은 신택스 엘리먼트 값들에 기초하여 리스트들 nestingLayedIdList[ i ] 및 변수들 maxTemporalId[ i ] 을 유도함으로써 특정된다.
0 과 동일한 nesting_op_flag 는, 리스트 nestingLayerIdList[ 0 ] 가 all_layers_flag 와, 존재할 때, 0 내지 nesting_num_layers_minus1 까지의 범위에서의 모든 i 값들에 대한 nesting_layer_id[ i ] 에 의해 특정되고, 변수 maxTemporalId[ 0 ] 는 nesting_no_op_max_temporal_id_plus1 에 의해 특정된다는 것을 특정한다. 1 과 동일한 nesting_op_flag 는, 리스트 nestingLayerIdList[ i ] 및 변수 maxTemporalId[ i ] 가 nesting_num_ops_minus1, default_op_flag, 존재할 때, nesting_max_temporal_id_plus1[ i ], 및 존재할 때, nesting_op_idx[ i ] 에 의해 특정된다는 것을 특정한다.
1 과 동일한 default_op_flag 는, maxTemporalId[ 0 ] 가 현재의 SEI NAL 유닛의 nuh_temporal_id_plus1 마이너스 1 과 동일하고, nestingLayerIdList[ 0 ] 가 값들의 증가하는 순서에서 0 내지 현재의 SEI NAL 유닛의 nuh_layer_id 까지의 범위에서의 모든 정수 값들을 포함한다는 것을 특정한다.
bitstream _subset_flag 가 1 과 동일하고 VPS 에 의해 특정된 계층 세트들의 어느 것도 0 내지 현재의 SEI NAL 유닛의 nuh _layer_ id 까지의 범위에서의 nuh_layer_id 값들을 가지는 계층들을 포함하고 오직 이를 포함할 때, default_op_flag 의 값은 0 과 동일할 것이다.
nesting_ num _ops_ minus1 플러스 1 마이너스 default_op_flag 는 다음의 nesting_op_idx[ i ] 신택스 엘리먼트들의 수를 특정한다. nesting_num_ops_minus1 의 값은 0 내지 1023 까지의 범위에 있을 것이다.
nesting_op_flag 가 0 과 동일할 경우, 변수 nestingNumOps 는 1 과 동일하게 설정된다. 이와 다를 경우, 변수 nestingNumOps 는 nesting_num_ops_minus1 + 1 과 동일하게 설정된다.
nesting_max_temporal_id_ plus1[ i ] 은 변수 maxTemporalId[ i ] 를 특정하기 위하여 이용된다. nesting_max_temporal_id_plus1[ i ] 의 값은 현재의 SEI NAL 유닛의 nuh_temporal_id_plus1 이상일 것이다. 변수 maxTemporalId[ i ] 는 nesting_max_temporal_id_plus1[ i ] - 1 과 동일하게 설정된다.
nesting_op_ idx[ i ] 는 리스트 nestingLayerIdList[ i ] 을 특정하기 위하여 이용된다. nesting_op_idx[ i ] 의 값은 0 내지 1023 까지의 범위에 있을 것이다.
리스트 nestingLayerIdList[ i ] 는 활성 VPS 에 의해 특정된 nesting_op_idx[ i ]-번째 계층 세트의 OpLayerIdList 와 동일하게 설정된다.
0 과 동일한 all_layers_flag 는, 리스트 nestingLayerIdList[ 0 ] 가 0 내지 nesting_num_layers_minus1 까지의 범위에서의 모든 i 값들에 대한 nesting_layer_id[ i ] 에 의해 특정된다는 것을 특정한다. 1 과 동일한 all_layers_flag 는, 리스트 nestingLayerIdList[ 0 ] 가 값들의 증가하는 순서에서 현재의 SEI NAL 유닛의 nuh_layer_id 이상인, 현재의 액세스 유닛에서 존재하는 nuh_layer_id 의 모든 값들로 구성된다는 것을 특정한다.
주목: 스케일러블 네스팅 SEI 메시지를 포함하는 SEI NAL 유닛의 nuh _layer_id 가 0 보다 더 클 때, 이 경우, 네스팅된 SEI 메시지들의 적용가능한 동작 포인트가 기본 계층을 포함하지 않을 것이고, 결과적으로, 적용가능한 동작 포인트에 대응하는 서브- 비트스트림이 비-준수 (non-conforming) 비트스트림일 것이므로, bitstream _subset_flag 및 all_layers_flag 양자가 1 과 동일할 수 없다.
nesting_op_flag 가 0 과 동일하고 all_layers_flag 가 1 과 동일할 때, maxTemporalId [ 0 ] 는 6 과 동일하게 설정된다.
nesting_no_op_max_temporal_id_ plus1 마이너스 1 은, nesting_op_flag 가 0 과 동일하고 all_layers_flag 가 0 과 동일할 때에 maxTemporalId[ 0 ] 의 값을 특정한다. nesting_no_op_max_temporal_id_plus1 의 값은 0 과 동일하지 않을 것이다.
nesting_ num _layers_ minus1 플러스 1 은 다음의 nesting_layer_id[ i ] 신택스 엘리먼트들의 수를 특정한다. nesting_num_layers_minus1 의 값은 0 내지 63 까지의 범위에 있을 것이다.
nesting_layer_id[ i ] 는 리스트 nestingLayerIdList[ 0 ] 내에 포함된 i-번째 nuh_layer_id 값을 특정한다.
i 가 j 보다 작은, 0 내지 nesting_num_layers_minus1 까지의 범위에서의 임의의 i 및 j 에 대하여, nesting_layer_id[ i ] 는 nesting_layer_id[ j ] 보다 더 작을 것이다.
리스트 nestingLayerIdList[ 0 ] 는 i 값들의 증가하는 순서에서 0 내지 nesting_num_layers_minus1 까지의 범위에서의 모든 i 값들에 대한 nesting_layer_id[ i ] 로 구성되도록 설정된다.
bitstream_subset_flag 가 0 과 동일할 때, 다음이 적용된다:
- 스케일러블 네스팅 SEI 메시지 내에 포함된 SEI 메시지들은 0 내지 nestingNumOps - 1 까지의 범위에서의 모든 i 값들에 대한 계층들 또는 서브-계층들 subLayerSet[ i ] 의 세트들에 적용되고, 여기서, 각각의 세트 subLayerSet[ i ] 에서의 계층들 또는 서브-계층들의 VCL NAL 유닛들은 리스트
Figure 112016093498633-pct00004
내에 포함되는 nuh_layer_id 값들과, 현재의 SEI NAL 유닛의 TemporalId 내지 maxTemporalId[ i ] 까지의 범위에 있는 TemporalId 값들을 가진다.
- 네스팅된 SEI 메시지가 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 또는 134 (즉, 0, 1, 4, 5, 130, 및 133 중의 임의의 것과 동일하지 않은 payloadType 을 가지는 SEI 메시지들 중의 하나) 와 동일한 payloadType 을 가질 때, 스케일러블 네스팅 SEI 메시지를 포함하는 SEI NAL 유닛의 nuh _layer_id 는 0 과 동일한 TemporalId 를 가질 것이고, 모든 i 에 대한 maxTemporalId [ i ] 는 6 과 동일할 것이다.
- 네스팅된 SEI 메시지가 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 또는 134 (즉, 0, 1, 4, 5, 130, 및 133 중의 임의의 것과 동일하지 않은 payloadType 을 가지는 SEI 메시지들 중의 하나) 와 동일한 payloadType 을 가지고 nestingNumOps 의 값이 0 보다 더 클 때, 네스팅된 SEI 메시지는 각각의 nuh_layer_id 가 0 으로부터 nestingNumOps  -  1 까지의 범위인 i 를 갖는 리스트들 nestingLayerIdList [ i ] 중의 적어도 하나 내에 포함되는 모든 계층들에 적용된다.
bitstream_subset_flag 가 1 과 동일할 때, 스케일러블 네스팅 SEI 메시지 내에 포함된 SEI 메시지들은 0 내지 nestingNumOps - 1 까지의 범위에서의 모든 i 값들에 대한 서브-비트스트림들 subBitstream[ i ] 에 대응하는 동작 포인트들에 적용되고, 여기서, 각각의 서브-비트스트림 subBitstream[ i ] 는 입력들로서 비트스트림, maxTemporalId[ i ], 및 nestingLayerIdList[ i ] 를 갖는 조항 10 의 서브-비트스트림 추출 프로세스의 출력이다.
bitstream _subset_flag 가 1 과 동일하고 nesting_op_flag 가 0 과 동일할 때, nestingLayeridList[ 0 ] 는 VPS 에 의해 특정된 계층 세트들 중의 하나의 계층 세트의 nuh _layer_id 값들을 포함할 것이고 그리고 오직 이를 포함할 것이다.
nesting_zero_bit 는 0 과 동일할 것이다.
F.3 정의들
이 부록의 목적을 위하여, 다음의 정의들은 조항 3 에서의 정의들에 추가하여 적용된다. 이 정의들은 조항 3 에서 존재하지 않거나, 조항 3 에서의 정의들을 대체한다.
[[제거됨:
F.3.1 액세스 유닛: 특정된 분류 규칙에 따라 서로 연관되고, 디코딩 순서에서 연속적이고, 동일한 출력 시간과 연관된 모든 코딩된 픽처들VCL NAL 유닛들 및 그 연관된 비-VCL NAL 유닛들을 포함하는 NAL 유닛들의 세트.
F.3.2 주목 1 - 동일한 액세스 유닛에서의 픽처들은 동일한 픽처 순서 카운트와 연관된다.]]
F.3.1 대안적인 출력 계층. 출력 계층직접 참조 계층 또는 간접 참조 계층이고, 출력 계층의 픽처가 픽처를 포함하는 액세스 유닛에서 존재하지 않을 때에 출력될 수도 있는 픽처를 포함할 수도 있는 계층.
F.7.4.3.1 비디오 파라미터 세트 RBSP 시맨틱들
하위조항 7.4.3.1 에서의 사양들은 다음의 수정들 및 추가들과 함께 적용된다:
- layerSetLayerIdList 는 LayerSetLayerIdList 에 의해 대체된다.
- numLayersInIdList 는 NumLayersInIdList 에 의해 대체된다.
- "각각의 동작 포인트는, nuh_layer_id 값들의 증가하는 순서에서 동작 포인트 내에 포함된 모든 NAL 유닛들의 nuh_layer_id 값들의 리스트로 구성되는, OpLayerIdList 로서 나타낸 연관된 계층 식별자 리스트와, 동작 포인트 내에 포함된 모든 NAL 유닛들의 최고 TemporalId 와 동일한 변수 OpTid 에 의해 식별된다." 를, "각각의 동작 포인트는, nuh _layer_id 값들의 증가하는 순서에서 동작 포인트 내에 포함된 모든 NAL 유닛들의 nuh _layer_id 값들의 리스트로 구성되는, OpLayerIdList 로서 나타낸 연관된 계층 식별자 리스트와, 동작 포인트 내에 포함된 모든 NAL 유닛들의 최고 TemporalId 와 동일한 변수 OpTid 에 의해 식별된다. 각각의 출력 동작 포인트는 동작 포인트와 연관되고, OptLayerIdList 로서 나타낸, nuh_layer_id 값들의 증가하는 순서에서, 출력되어야 할 모든 픽처들의 nuh_layer_id 값들의 리스트와, 연관된 동작 포인트의 [[제거됨: 변수]] OpTid 에 의해 식별된다. 출력 동작 포인트와 연관된 동작 포인트의 OpLayerIdList 는 또한, 출력 동작 포인트의 OpLayerIdList 로서 지칭된다 [[제거됨: 동작 포인트 내에 포함된 모든 NAL 유닛들의 최고 TemporalId 와 동일함. OpLayerIdList 로서 나타낸, 리스트 OptLayerIdList 와 연관된 계층 식별자 리스트는 nuh_layer_id 값들의 증가하는 순서에서, 동작 포인트 내에 포함된 모든 NAL 유닛들의 nuh_layer_id 값들의 리스트로 구성된다."]] 로 대체한다.
도 2 는 이 개시물에서 설명된 기법들을 구현할 수도 있는 일 예의 비디오 인코더 (20) 를 예시하는 블록도이다. 도 2 는 설명의 목적들을 위하여 제공되고, 이 개시물에서 대략 예시되고 설명된 바와 같은 기법들의 제한으로 고려되지 않아야 한다. 설명의 목적들을 위하여, 이 개시물은 HEVC 코딩의 상황에서 비디오 인코더 (20) 를 설명한다. 그러나, 이 개시물의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
비디오 인코더 (20) 는 이 개시물에서 설명된 기법들을 구현할 수도 있는 또 다른 예의 디바이스인 포스트-프로세싱 엔티티 (27) 로 비디오를 출력하도록 구성될 수도 있다. 포스트-프로세싱 엔티티 (27) 는, 비디오 인코더 (20) 로부터의 인코딩된 비디오 데이터를 프로세싱할 수도 있는 미디어 인지 네트워크 엘리먼트 (media aware network element; MANE), 스플라이싱/편집 디바이스 (splicing/editing device), 또는 또 다른 중간 디바이스와 같은 비디오 엔티티의 예를 나타내도록 의도된다. 일부의 사례들에서, 포스트-프로세싱 엔티티 (27) 는 네트워크 엔티티의 예일 수도 있다. 일부의 비디오 인코딩 시스템들에서, 포스트-프로세싱 엔티티 (27) 및 비디오 인코더 (20) 는 별도의 디바이스들의 일부들일 수도 있는 반면, 다른 사례들에서는, 포스트-프로세싱 엔티티 (27) 에 대하여 설명된 기능성이 비디오 인코더 (20) 를 포함하는 동일한 디바이스에 의해 수행될 수도 있다.
비디오 인코더 (20) 는 비디오 슬라이스들 내의 비디오 블록들의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라-코딩은 주어진 비디오 프레임 또는 픽처 내의 비디오에서의 공간적 중복성을 감소시키거나 제거하기 위하여 공간적 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접한 프레임들 또는 픽처들 내에서의 비디오에 있어서의 시간적 중복성을 감소시키거나 제거하기 위하여 시간적 예측에 의존한다. 인트라-모드 (I 모드) 는 몇몇 공간 기반 압축 모드들 중의 임의의 것을 지칭할 수도 있다. 단방향 예측 (P 모드) 또는 양방향-예측 (B 모드) 과 같은 인터-모드들은 몇몇 시간 기반 압축 모드들 중의 임의의 것을 지칭할 수도 있다.
도 2 의 예에서, 비디오 인코더 (20) 는 파티셔닝 유닛 (35), 예측 프로세싱 유닛 (41), 필터 유닛 (63), 디코딩된 픽처 메모리 (64), 합산기 (50), 변환 프로세싱 유닛 (52), 양자화 유닛 (54), 및 엔트로피 인코딩 유닛 (56) 을 포함한다. 예측 프로세싱 유닛 (41) 은 모션 추정 유닛 (42), 모션 보상 유닛 (44), 및 인트라 예측 프로세싱 유닛 (46) 을 포함한다. 비디오 블록 재구성을 위하여, 비디오 인코더 (20) 는 또한, 역양자화 유닛 (58), 역변환 프로세싱 유닛 (60), 및 합산기 (62) 를 포함한다. 필터 유닛 (63) 은 디블록킹 필터, 적응적 루프 필터 (adaptive loop filter; ALF), 및 샘플 적응적 오프셋 (sample adaptive offset; SAO) 필터와 같은 하나 이상의 루프 필터들을 나타내도록 의도된다. 필터 유닛 (63) 은 인 루프 필터 (in loop filter) 인 것으로서 도 2 에서 도시되어 있지만, 다른 구성들에서는, 필터 유닛 (63) 이 포스트 루프 필터 (post loop filter) 로서 구현될 수도 있다.
도 2 에서 도시된 바와 같이, 비디오 인코더 (20) 는 비디오 데이터를 수신하고, 파티셔닝 유닛 (35) 은 데이터를 비디오 블록들로 파티셔닝한다. 이 파티셔닝은 또한, 슬라이스 (slice) 들, 타일 (tile) 들, 또는 다른 더 큰 유닛들로의 파티셔닝뿐만 아니라, 예컨대, LCU 들 및 CU 들의 쿼드트리 구조에 따른 비디오 블록 파티셔닝을 포함할 수도 있다. 비디오 인코더 (20) 는 인코딩되어야 할 비디오 슬라이스 내의 비디오 블록들을 인코딩하는 컴포넌트들을 일반적으로 예시한다. 슬라이스는 다수의 비디오 블록들로 (그리고 아마도 타일들로서 지칭된 비디오 블록들의 세트들로) 분할될 수도 있다. 예측 프로세싱 유닛 (41) 은 에러 결과들 (예컨대, 코딩 레이트 및 왜곡의 레벨) 에 기초하여, 현재의 비디오 블록에 대하여, 복수의 인트라 코딩 모드들 중의 하나 또는 복수의 인터 코딩 모드들 중의 하나와 같은 복수의 가능한 코딩 모드들 중의 하나를 선택할 수도 있다. 예측 프로세싱 유닛 (41) 은 결과적인 인트라-코딩된 또는 인터-코딩된 블록을, 잔차 블록 데이터를 생성하기 위하여 합산기 (50) 에, 그리고 참조 픽처로서의 이용을 위한 인코딩된 블록을 재구성하기 위하여 합산기 (62) 에 제공할 수도 있다.
예측 프로세싱 유닛 (41) 내의 인트라 예측 프로세싱 유닛 (46) 은 공간적 압축을 제공하기 위하여, 코딩되어야 할 현재의 블록과 동일한 프레임 또는 슬라이스에서의 하나 이상의 이웃하는 블록들에 관련된 현재의 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다. 예측 프로세싱 유닛 (41) 내의 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 시간적 압축을 제공하기 위하여, 하나 이상의 참조 픽처들 내의 하나 이상의 예측 블록들에 관련된 현재의 비디오 블록의 인터-예측 코딩을 수행한다.
모션 추정 유닛 (42) 은 비디오 시퀀스에 대한 미리 결정된 패턴에 따라 비디오 슬라이스에 대한 인터-예측 모드를 결정하도록 구성될 수도 있다. 미리 결정된 패턴은 시퀀스에서의 비디오 슬라이스들을 P 슬라이스들 또는 B 슬라이스들로서 지정할 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념적인 목적들을 위하여 별도로 예시되어 있다. 모션 추정 유닛 (42) 에 의해 수행된 모션 추정은 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 예를 들어, 모션 벡터는 참조 픽처 내에서의 예측 블록에 관련된 현재의 비디오 프레임 또는 픽처 내에서의 비디오 블록의 PU 의 변위를 표시할 수도 있다.
예측 블록은, 절대차의 합 (sum of absolute difference; SAD), 제곱차의 합 (sum of square difference; SSD), 또는 다른 차이 메트릭들에 의해 결정될 수도 있는 픽셀 차이의 측면에서, 코딩되어야 할 비디오 블록의 PU 와 근접하게 일치시키기 위하여 구해지는 블록이다. 일부의 예들에서, 비디오 인코더 (20) 는 참조 픽처 메모리 (64) 내에 저장된 참조 픽처들의 정수-미만 (sub-integer) 픽셀 위치들에 대한 값들을 계산할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 참조 픽처의 1/4 픽셀 위치들, 1/8 픽셀 위치들, 또는 다른 분수 픽셀 위치들의 값들을 보간할 수도 있다. 그러므로, 모션 추정 유닛 (42) 은 전체 픽셀 위치들 및 분수 픽셀 위치들에 관련된 모션 검색을 수행할 수도 있고, 분수 픽셀 정밀도를 갖는 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (42) 은 PU 의 위치를 참조 픽처의 예측 블록의 위치와 비교함으로써, 인터-코딩된 슬라이스에서의 비디오 블록의 PU 에 대한 모션 벡터를 계산한다. 참조 픽처는 제 1 참조 픽처 리스트 (List 0) 또는 제 2 참조 픽처 리스트 (List 1) 로부터 선택될 수도 있고, 이들의 각각은 참조 픽처 메모리 (64) 내에 저장된 하나 이상의 참조 픽처들을 식별한다. 모션 추정 유닛 (42) 은 계산된 모션 벡터를 엔트로피 인코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송한다.
모션 보상 유닛 (44) 에 의해 수행된 모션 보상은 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페치 (fetch) 하거나 생성하여, 서브-픽셀 정밀도 (sub-pixel precision) 로의 보간들을 아마도 수행하는 것을 수반할 수도 있다. 현재의 비디오 블록의 PU 에 대한 모션 벡터를 수신할 시에, 모션 보상 유닛 (44) 은 모션 벡터가 참조 픽처 리스트들 중의 하나에서 지시하는 예측 블록을 위치시킬 수도 있다. 비디오 인코더 (20) 는 코딩되고 있는 현재의 비디오 블록의 픽셀 값들로부터 예측 블록의 픽셀 값들을 감산하여 픽셀 차이 값들을 형성함으로써 잔차 비디오 블록을 형성한다. 픽셀 차이 값들은 블록에 대한 잔차 데이터를 형성하고, 루마 및 크로마 차이 컴포넌트들의 양자를 포함할 수도 있다. 합산기 (50) 는 이 감산 동작을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 모션 보상 유닛 (44) 은 또한, 비디오 슬라이스의 비디오 블록들을 디코딩할 시에 비디오 디코더 (30) 에 의한 이용을 위한 비디오 블록들 및 비디오 슬라이스와 연관된 신택스 엘리먼트들을 생성할 수도 있다.
인트라 예측 프로세싱 유닛 (46) 은 위에서 설명된 바와 같이, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 수행된 인터-예측에 대한 대안으로서, 현재의 블록을 인트라-예측할 수도 있다. 특히, 인트라 예측 프로세싱 유닛 (46) 은 현재의 블록을 인코딩하기 위하여 이용하기 위한 인트라-예측 모드를 결정할 수도 있다. 일부의 예들에서, 인트라 예측 프로세싱 유닛 (46) 은 예컨대, 별도의 인코딩 패스 (encoding pass) 들 동안에 다양한 인트라-예측 모드들을 이용하여 현재의 블록을 인코딩할 수도 있고, 인트라 예측 프로세싱 유닛 (46) (또는 일부의 예들에서, 모드 선택 유닛 (40)) 은 테스팅된 모드들로부터 이용하기 위한 적절한 인트라-예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측 프로세싱 유닛 (46) 은 다양한 테스팅된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 이용하여 레이트-왜곡 값들을 계산할 수도 있고, 테스팅된 모드들 중에서 최상의 레이트-왜곡 특성들을 가지는 인트라-예측 모드를 선택할 수도 있다. 레이트-왜곡 분석은 일반적으로, 인코딩된 블록과, 인코딩된 블록을 생성하기 위하여 인코딩되었던 원래의 인코딩되지 않은 블록과의 사이의 왜곡 (또는 에러) 의 양뿐만 아니라, 인코딩된 블록을 생성하기 위하여 이용된 비트 레이트 (즉, 비트들의 수) 를 결정한다. 인트라 예측 프로세싱 유닛 (46) 은 어느 인트라-예측 모드가 블록에 대한 최상의 레이트-왜곡 값을 나타내는지를 결정하기 위하여 다양한 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터 비율 (ratio) 들을 계산할 수도 있다.
어떤 경우에도, 블록에 대한 인트라-예측 모드를 선택한 후, 인트라 예측 프로세싱 유닛 (46) 은 블록에 대한 선택된 인트라-예측 모드를 표시하는 정보를 엔트로피 인코딩 유닛 (56) 에 제공할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 이 개시물의 기법들에 따라, 선택된 인트라-예측 모드를 표시하는 정보를 인코딩할 수도 있다. 비디오 인코더 (20) 는 복수의 인트라-예측 모드 인덱스 표들 및 복수의 수정된 인트라-예측 모드 인덱스 표들 (또한 코드워드 맵핑 표 (codeword mapping table) 들로서 지칭됨) 을 포함할 수도 있는 송신된 비트스트림 구성 데이터에서, 다양한 블록들에 대한 인코딩 컨텍스트들의 정의들과, 컨텍스트들의 각각에 대해 이용하기 위한 가장 가능성 있는 인트라-예측 모드, 인트라-예측 모드 인덱스 표, 및 수정된 인트라-예측 모드 인덱스 표의 표시들을 포함할 수도 있다.
예측 프로세싱 유닛 (41) 이 인터-예측 또는 인트라-예측의 어느 하나를 통해 현재의 비디오 블록에 대한 예측 블록을 생성한 후, 비디오 인코더 (20) 는 현재의 비디오 블록으로부터 예측 블록을 감산함으로써 잔차 비디오 블록을 형성한다. 잔차 블록에서의 잔차 비디오 데이터는 하나 이상의 TU 들에 포함될 수도 있고 변환 프로세싱 유닛 (52) 에 적용될 수도 있다. 변환 프로세싱 유닛 (52) 은 이산 코사인 변환 (discrete cosine transform; DCT) 또는 개념적으로 유사한 변환과 같은 변환을 이용하여 잔차 비디오 데이터를 잔차 변환 계수들로 변환한다. 변환 프로세싱 유닛 (52) 은 잔차 비디오 데이터를 픽셀 도메인으로부터, 주파수 도메인과 같은 변환 도메인으로 변환할 수도 있다.
변환 프로세싱 유닛 (52) 은 결과적인 변환 계수들을 양자화 유닛 (54) 으로 전송할 수도 있다. 양자화 유닛 (54) 은 비트 레이트를 추가로 감소시키기 위하여 변환 계수들을 양자화한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 양자화도 (degree of quantization) 는 양자화 파라미터를 조절함으로써 수정될 수도 있다. 일부의 예들에서, 다음으로, 양자화 유닛 (54) 은 양자화된 변환 계수들을 포함하는 행렬 (matrix) 의 스캔을 수행할 수도 있다. 대안적으로, 엔트로피 인코딩 유닛 (56) 이 스캔을 수행할 수도 있다.
양자화에 후속하여, 엔트로피 인코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 인코딩한다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 컨텍스트 적응 가변 길이 코딩 (CAVLC), 컨텍스트 적응 2 진 산술 코딩 (CABAC), 신택스-기반 컨텍스트-적응 2 진 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 또는 또 다른 엔트로피 인코딩 방법론 또는 기법을 수행할 수도 있다. 엔트로피 인코딩 유닛 (56) 에 의한 엔트로피 인코딩에 후속하여, 인코딩된 비트스트림은 비디오 디코더 (30) 로 송신될 수도 있거나, 비디오 디코더 (30) 에 의한 더 이후의 송신 또는 취출을 위하여 아카이빙될 수도 있다. 엔트로피 인코딩 유닛 (56) 은 또한, 코딩되고 있는 현재의 비디오 슬라이스에 대한 모션 벡터들 및 다른 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
역양자화 유닛 (58) 및 역변환 프로세싱 유닛 (60) 은 참조 픽처의 참조 블록으로서의 더 이후의 이용을 위해 픽셀 도메인에서 잔차 블록을 재구성하기 위하여, 역양자화 및 역변환을 각각 적용한다. 모션 보상 유닛 (44) 은 잔차 블록을 참조 픽처 리스트들 중의 하나의 참조 픽처 리스트 내의 참조 픽처들 중의 하나의 참조 픽처의 예측 블록에 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한, 모션 추정 시에 이용하기 위한 정수 미만 픽셀 값들을 계산하기 위하여 하나 이상의 보간 필터들을 재구성된 잔차 블록에 적용할 수도 있다. 합산기 (62) 는 참조 픽처 메모리 (64) 에서의 저장을 위한 참조 블록을 생성하기 위하여, 재구성된 잔차 블록을 모션 보상 유닛 (44) 에 의해 생성된 모션 보상된 예측 블록에 추가한다. 참조 블록은 후속 비디오 프레임 또는 픽처에서 블록을 인터-예측하기 위하여, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 참조 블록으로서 이용될 수도 있다.
이 개시물의 양태들에 따르면, 비디오 인코더 (20) 는 멀티-계층 코덱들을 위한 SEI 메시지들을 포함하는 위에서 설명된 SEI 메시지들과 연관된 신택스 엘리먼트들과 같은 다수의 신택스 엘리먼트들을 생성하도록 구성될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 도 1 에 대하여 위에서 설명된 제 15 양태들의 임의의 조합에 따라 신택스 엘리먼트들을 생성하도록 구성될 수도 있다. 일부의 사례들에서, 비디오 인코더 (20) 는 데이터를 인코딩하고 인코딩된 비트스트림을 생성하는 것을 담당하는 엔트로피 인코딩 유닛 (56) 또는 또 다른 유닛을 이용하여 이러한 신택스 엘리먼트들을 인코딩할 수도 있다. 또한, 도 2 의 포스트-프로세싱 엔티티 (27) 는 멀티-계층 코덱들을 위한 SEI 메시지들을 포함하는 SEI 메시지들에 대하여 이 개시물에서 설명된 기법들을 구현할 수도 있는 또 다른 예의 디바이스이다.
도 3 은 이 개시물에서 설명된 기법들을 구현할 수도 있는 일 예의 비디오 디코더 (30) 를 예시하는 블록도이다. 도 3 은 설명의 목적들을 위하여 제공되고, 이 개시물에서 대략 예시되고 설명된 바와 같은 기법들에 대해 제한하지 않는다. 설명의 목적들을 위하여, 이 개시물은 HEVC 코딩의 상황에서 비디오 디코더 (30) 를 설명한다. 그러나, 이 개시물의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 3 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (80), 예측 프로세싱 유닛 (81), 역양자화 유닛 (86), 역변환 프로세싱 유닛 (88), 합산기 (90), 필터 유닛 (91), 및 참조 픽처 메모리 (92) 를 포함한다. 예측 프로세싱 유닛 (81) 은 모션 보상 유닛 (82) 및 인트라 예측 프로세싱 유닛 (84) 을 포함한다. 일부의 예들에서, 비디오 디코더 (30) 는 도 2 로부터의 비디오 인코더 (20) 에 대하여 설명된 인코딩 패스와 일반적으로 상반되는 디코딩 패스를 수행할 수도 있다.
디코딩 프로세스 동안, 비디오 디코더 (30) 는 비디오 인코더 (20) 로부터, 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관된 신택스 엘리먼트들을 나타내는 인코딩된 비디오 비트스트림을 수신한다. 비디오 디코더 (30) 는 네트워크 엔티티 (78) 로부터 인코딩된 비디오 비트스트림을 수신할 수도 있다. 네트워크 엔티티 (78) 는 예를 들어, 서버, MANE, 비디오 편집기/스플라이서, 또는 위에서 설명된 기법들 중의 하나 이상을 구현하도록 구성된 이러한 다른 디바이스일 수도 있다. 네트워크 엔티티 (78) 는 비디오 인코더 (20) 와 같은 비디오 인코더를 포함할 수도 있거나 포함하지 않을 수도 있다. 이 개시물에서 설명된 기법들의 일부는, 네트워크 엔티티 (78) 가 인코딩된 비디오 비트스트림을 비디오 디코더 (30) 로 송신하기 이전에 네트워크 엔티티 (78) 에 의해 구현될 수도 있다. 일부의 비디오 디코딩 시스템들에서, 네트워크 엔티티 (78) 및 비디오 디코더 (30) 는 별도의 디바이스들의 일부들일 수도 있는 반면, 다른 사례들에서는, 네트워크 엔티티 (78) 에 대하여 설명된 기능성이 비디오 디코더 (30) 를 포함하는 동일한 디바이스에 의해 수행될 수도 있다.
비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (80) 은 양자화된 계수들, 모션 벡터들, 및 다른 신택스 엘리먼트들을 생성하기 위하여 비트스트림을 엔트로피 디코딩한다. 엔트로피 디코딩 유닛 (80) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 예측 프로세싱 유닛 (81) 으로 포워딩 (forwarding) 한다. 비디오 디코더 (30) 는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 엘리먼트들을 수신할 수도 있다.
비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩될 때, 예측 프로세싱 유닛 (81) 의 인트라 예측 프로세싱 유닛 (84) 은 시그널링된 인트라 예측 모드와, 현재의 프레임 또는 픽처의 이전에 디코딩된 블록들로부터의 데이터에 기초하여, 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 비디오 프레임이 인터-코딩된 (즉, B 또는 P) 슬라이스로서 코딩될 때, 예측 프로세싱 유닛 (81) 의 모션 보상 유닛 (82) 은 모션 벡터들과, 엔트로피 디코딩 유닛 (80) 으로부터 수신된 다른 신택스 엘리먼트들에 기초하여, 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성한다. 예측 블록들은 참조 픽처 리스트들 중의 하나 내의 참조 픽처들 중의 하나로부터 생성될 수도 있다. 비디오 디코더 (30) 는 참조 픽처 메모리 (92) 내에 저장된 참조 픽처들에 기초하여, 디폴트 구성 (default construction) 기법들을 이용하여 참조 프레임 리스트들, List 0 및 List 1 을 구성할 수도 있다.
모션 보상 유닛 (82) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱 (parsing) 함으로써 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 디코딩되고 있는 현재의 비디오 블록에 대한 예측 블록들을 생성하기 위하여 예측 정보를 이용한다. 예를 들어, 모션 보상 유닛 (82) 은 비디오 슬라이스의 비디오 블록들을 코딩하기 위해 이용된 예측 모드 (예컨대, 인트라-예측 또는 인터-예측), 인터-예측 슬라이스 타입 (예컨대, B 슬라이스 또는 P 슬라이스), 슬라이스에 대한 참조 픽처 리스트들 중의 하나 이상에 대한 구성 정보, 슬라이스의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터-코딩된 비디오 블록에 대한 인터-예측 상태, 및 현재의 비디오 슬라이스에서 비디오 블록들을 디코딩하기 위한 다른 정보를 결정하기 위하여 수신된 신택스 엘리먼트들의 일부를 이용한다.
모션 보상 유닛 (82) 은 또한, 보간 필터들에 기초하여 보간을 수행할 수도 있다. 모션 보상 유닛 (82) 은 참조 블록들의 정수-미만 픽셀들에 대한 보간된 값들을 계산하기 위하여, 비디오 블록들의 인코딩 동안에 비디오 인코더 (20) 에 의해 이용된 바와 같은 보간 필터들을 이용할 수도 있다. 이 경우, 모션 보상 유닛 (82) 은 수신된 신택스 엘리먼트들로부터 비디오 인코더 (20) 에 의해 이용된 보간 필터들을 결정할 수도 있고, 예측 블록들을 생성하기 위하여 보간 필터들을 이용할 수도 있다.
역양자화 유닛 (86) 은, 비트스트림에서 제공되며 엔트로피 디코딩 유닛 (80) 에 의해 디코딩된 양자화된 변환 계수들을 역양자화, 즉, 탈양자화 (de-quantize) 한다. 역양자화 프로세스는 적용되어야 할 양자화도 및, 마찬가지로, 역양자화도를 결정하기 위하여 비디오 슬라이스에서의 각각의 비디오 블록에 대해 비디오 인코더 (20) 에 의해 계산된 양자화 파라미터의 이용을 포함할 수도 있다. 역변환 프로세싱 유닛 (88) 은 픽셀 도메인 (pixel domain) 에서 잔차 블록들을 생성하기 위하여, 역변환, 예컨대, 역 DCT, 역정수 변환 (inverse integer transform), 또는 개념적으로 유사한 역변환 프로세스를 변환 계수들에 적용한다.
모션 보상 유닛 (82) 이 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재의 비디오 블록에 대한 예측 블록을 생성한 후, 비디오 디코더 (30) 는 역변환 프로세싱 유닛 (88) 으로부터의 잔차 블록들을 모션 보상 유닛 (82) 에 의해 생성된 대응하는 예측 블록들과 합산함으로써 디코딩된 비디오 블록을 형성한다. 합산기 (90) 는 이 합산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 희망하는 경우, (코딩 루프 내 또는 코딩 루프 이후 중의 어느 하나에서의) 루프 필터들은 또한, 픽셀 천이 (pixel transition) 들을 평활화하거나, 또는 이와 다르게 비디오 품질을 개선시키기 위하여 이용될 수도 있다.
필터 유닛 (91) 은 디블록킹 필터, 적응적 루프 필터 (ALF), 및 샘플 적응적 오프셋 (SAO) 필터와 같은 하나 이상의 루프 필터들을 나타내도록 의도된다. 필터 유닛 (91) 은 인 루프 필터인 것으로서 도 3 에서 도시되어 있지만, 다른 구성들에서는, 필터 유닛 (91) 이 포스트 루프 필터로서 구현될 수도 있다. 다음으로, 소정의 프레임 또는 픽처에서의 디코딩된 비디오 블록들은, 후속 모션 보상을 위하여 이용된 참조 픽처들을 저장하는 참조 픽처 메모리 (92) 내에 저장된다. 참조 픽처 메모리 (92) 는 또한, 도 1 의 디스플레이 디바이스 (31) 와 같은 디스플레이 디바이스 상에서의 더 이후의 제시를 위한 디코딩된 비디오를 저장한다.
이 개시물의 양태들에 따르면, 비디오 인코더 (30) 는 멀티-계층 코덱들을 위한 SEI 메시지들을 포함하는 위에서 설명된 SEI 메시지들과 연관된 신택스 엘리먼트들과 같은 다수의 신택스 엘리먼트들을 파싱하고 디코딩하도록 구성될 수도 있다. 예를 들어, 비디오 디코더 (30) 는 도 1 에 대하여 위에서 설명된 제 15 양태들의 임의의 조합에 따라 신택스 엘리먼트들을 파싱하고 디코딩하도록 구성될 수도 있다. 일부의 사례들에서, 비디오 디코더 (30) 는 인코딩된 비트스트림으로부터 데이터를 디코딩하는 것을 담당하는 엔트로피 디코딩 유닛 (80) 또는 또 다른 유닛을 이용하여 이러한 신택스 엘리먼트들을 디코딩할 수도 있다. 또한, (미디어 인지 네트워크 엘리먼트일 수도 있는) 도 3 의 네트워크 엔티티 (78) 는 멀티-계층 코덱들을 위한 SEI 메시지들을 포함하는 SEI 메시지들에 대하여 이 개시물에서 설명된 기법들을 구현할 수도 있는 또 다른 예의 디바이스이다.
도 4 는 캡슐화 유닛 (21) 을 더욱 상세하게 예시하는 블록도이다. 도 4 의 예에서, 캡슐화 유닛 (21) 은 비디오 입력 인터페이스 (100), 오디오 입력 인터페이스 (102), 비디오 파일 생성 유닛 (104), 및 비디오 파일 출력 인터페이스 (106) 를 포함한다. 이 예에서, 비디오 파일 생성 유닛 (104) 은 보충 강화 정보 (supplemental enhancement information; SEI) 메시지 생성 유닛 (108), 뷰 식별자 (ID) 배정 유닛 (110), 표현 생성 유닛 (112), 및 동작 포인트 생성 유닛 (114) 을 포함한다.
비디오 입력 인터페이스 (100) 및 오디오 입력 인터페이스 (102) 는 인코딩된 비디오 및 오디오 데이터를 각각 수신한다. 도 1 의 예에서는 도시되어 있지 않지만, 소스 디바이스 (12) 는 또한, 각각 오디오 데이터를 생성하고 오디오 데이터를 인코딩하기 위한 오디오 소스 및 오디오 인코더를 포함할 수도 있다. 다음으로, 캡슐화 유닛 (21) 은 비디오 파일을 형성하기 위하여 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터를 캡슐화할 수도 있다. 비디오 입력 인터페이스 (100) 및 오디오 입력 인터페이스 (102) 는 데이터가 인코딩될 때에 인코딩된 비디오 및 오디오 데이터를 수신할 수도 있거나, 컴퓨터-판독가능 매체로부터 인코딩된 비디오 및 오디오 데이터를 취출할 수도 있다. 인코딩된 비디오 및 오디오 데이터를 수신할 시에, 비디오 입력 인터페이스 (100) 및 오디오 입력 인터페이스 (102) 는 비디오 파일로의 조립을 위하여 인코딩된 비디오 및 오디오 데이터를 비디오 파일 생성 유닛 (104) 으로 전달한다.
비디오 파일 생성 유닛 (104) 은 기능들 및 그것에 기인된 절차들을 수행하도록 구성된 하드웨어, 소프트웨어, 및/또는 펌웨어를 포함하는 제어 유닛에 대응할 수도 있다. 제어 유닛은 일반적으로 캡슐화 유닛 (21) 에 기인된 기능들을 추가로 수행할 수도 있다. 비디오 파일 생성 유닛 (104) 이 소프트웨어 및/또는 펌웨어로 구체화되는 예들에 대하여, 캡슐화 유닛 (21) 은 비디오 파일 생성 유닛 (104) 및 프로세싱 유닛이 명령들을 실행하기 위한 명령들을 포함하는 컴퓨터-판독가능 매체를 포함할 수도 있다. 비디오 파일 생성 유닛 (104) 의 서브-유닛들 (이 예에서, SEI 메시지 생성 유닛 (108), 뷰 ID 배정 유닛 (110), 표현 생성 유닛 (112), 및 동작 포인트 생성 유닛 (114) 의 각각은 개별적인 하드웨어 유닛들 및/또는 소프트웨어 모듈들로서 구현될 수도 있고, 기능적으로 통합될 수도 있거나 추가적인 서브-유닛들로 추가로 분리될 수도 있다.
비디오 파일 생성 유닛 (104) 은 예를 들어, 하나 이상의 마이크로프로세서들, 애플리케이션-특정 집적 회로 (ASIC) 들, 필드 프로그래밍가능 게이트 어레이 (FPGA) 들, 디지털 신호 프로세서 (DSP) 들, 또는 그 임의의 조합과 같은 임의의 적당한 프로세싱 유닛 또는 프로세싱 회로부에 대응할 수도 있다. 비디오 파일 생성 유닛 (104) 은 SEI 메시지 생성 유닛 (108), 뷰 ID 배정 유닛 (110), 표현 생성 유닛 (112), 및 동작 포인트 생성 유닛 (114) 뿐만 아니라, 명령들을 실행하기 위한 프로세서 중의 임의의 것 또는 전부에 대한 명령들을 저장하는 비-일시적 컴퓨터-판독가능 매체를 더 포함할 수도 있다.
일반적으로, 비디오 파일 생성 유닛 (104) 은 수신된 오디오 및 비디오 데이터를 포함하는 하나 이상의 비디오 파일들을 생성할 수도 있다. 비디오 파일 생성 유닛 (104) 은 2 개 이상의 뷰들을 포함하는 멀티미디어 컨텐츠를 위한 미디어 프리젠테이션 설명 (MPD) 을 구성할 수도 있다. 다른 예들에서, 비디오 파일 생성 유닛 (104) 은 멀티미디어 컨텐츠에 대한 MPD 의 것과 유사한 데이터를 저장하는 매니페스트를 생성할 수도 있다.
SEI 메시지 생성 유닛 (108) 은 SEI 메시지들을 생성하는 유닛을 나타낼 수도 있다. SEI 메시지 생성 유닛 (108) 은 이 개시물에서 설명된 기법들에 따라, 멀티-계층 코덱들을 위한 SEI 메시지들을 포함하는 위에서 설명된 SEI 메시지들과 연관된 신택스 엘리먼트들과 같은 다수의 신택스 엘리먼트들을 생성하도록 구성될 수도 있다. 예를 들어, SEI 메시지 생성 유닛 (108) 은 도 1 에 대하여 위에서 설명된 제 15 양태들의 임의의 조합에 따라 신택스 엘리먼트들을 생성하도록 구성될 수도 있다.
뷰 ID 배정 유닛 (110) 은 뷰 식별자들을 멀티미디어 컨텐츠의 뷰들의 각각에 배정할 수도 있다. 표현 생성 유닛 (112) 은 멀티미디어 컨텐츠를 위한 하나 이상의 표현들을 구성할 수도 있고, 이러한 표현들의 각각은 멀티미디어 컨텐츠를 위한 뷰들의 하나 이상을 포함할 수도 있다. 동일한 예들에서, 뷰 ID 배정 유닛 (110) 은 표현들 내에 포함된 뷰들에 대한 뷰 식별자들의 최대 및 최소를 표시하는 MPD 및/또는 표현들에서의 데이터 (예컨대, 표현들에 대한 헤더 데이터) 를 포함할 수도 있다. 게다가, 표현 생성 유닛 (112) 은 더 큰 뷰 ID 들이 더 작은 뷰 ID 들을 가지는 뷰들에 대한 카메라 관점들의 우측 또는 좌측의 카메라 관점들을 가지는 뷰들에 대응하는지 여부를 표시하는 MPD 에서의 정보를 제공할 수도 있다.
일부의 예들에서, 동일한 계층은 상이한 프레임 레이트들, 상이한 비트 레이트들, 상이한 인코딩 방식들, 또는 다른 차이들과 같은 다양한 인코딩 특성들을 이용하여 인코딩될 수도 있다. 표현 생성 유닛 (112) 은 공통의 표현 내에 포함된 각각의 계층이 동일한 인코딩 특성들에 따라 인코딩되는 것을 보장할 수도 있다. 이러한 방식으로, MPD 및/또는 표현에 대한 헤더 데이터는 표현에서의 모든 계층들에 적용되는 표현에 대한 특성들 (또는 속성들) 의 세트를 시그널링할 수도 있다. 또한, 표현 생성 유닛 (112) 은 잠재적으로 상이한 인코딩 특성들을 갖지만, 동일한 계층들을 포함하는 다수의 표현들을 생성할 수도 있다. 일부의 예들에서, 표현 생성 유닛 (112) 은 개별적인 표현들에서의 멀티미디어 컨텐츠의 각각의 계층을 캡슐화할 수도 있다. 이러한 예들에서, 하나를 초과하는 계층을 출력하기 위하여, 목적지 디바이스 (14) 는 멀티미디어 컨텐츠의 2 개 이상의 표현들을 요청할 수도 있다.
동작 포인트 생성 유닛 (114) 은 멀티미디어 컨텐츠의 하나 이상의 표현들에 대한 동작 포인트들을 생성할 수도 있다. 일반적으로, 동작 포인트는 출력을 위하여 타겟으로 되는 표현에서의 뷰들의 서브세트에 대응하고, 여기서, 뷰들의 각각은 공통의 시간적 레벨을 공유한다. 하나의 예로서, 동작 포인트는 타겟 시간적 레벨을 나타내는 temporal_id 값과, 타겟 출력 뷰들을 나타내는 view_id 값들의 세트에 의해 식별될 수도 있다. 하나의 동작 포인트는, 타겟 출력 뷰들, 및 타겟 출력 뷰들이 종속되는 모든 다른 뷰들로 구성되는 비트스트림 서브세트와 연관될 수도 있다.
비디오 파일 출력 인터페이스 (106) 는 생성된 비디오 파일을 출력할 수도 있다. 예를 들어, 비디오 파일 출력 인터페이스 (106) 는 도 1 에 대하여 위에서 설명된 바와 같이, 생성된 비디오 파일을 출력 인터페이스 (22) 에 제공하도록 구성될 수도 있다.
도 4 의 기법들은 예의 목적들을 위하여 캡슐화 유닛 (21) 과 함께 설명되지만, 유사한 기법들이 역캡슐화 유닛 (29) (도 1), 비디오 인코더 (20), 또는 비디오 디코더 (30) 와 같은 다른 비디오 프로세싱 유닛들에 의해 수행될 수도 있다는 것을 이해해야 한다. 예를 들어, 역캡슐화 유닛 (29) 은 멀티-계층 비트스트림을 수신하고 멀티-계층 비트스트림으로부터 상기-언급된 신택스를 파싱/디코딩하도록 구성될 수도 있다.
도 5 는 네트워크 (120) 의 일부를 형성하는 디바이스들의 일 예의 세트를 예시하는 블록도이다. 이 예에서, 네트워크 (120) 는 라우팅 디바이스들 (124A, 124B) (라우팅 디바이스들 (124)) 및 트랜스코딩 디바이스 (126) 를 포함한다. 라우팅 디바이스들 (124) 및 트랜스코딩 디바이스 (126) 는 네트워크 (120) 의 일부를 형성할 수도 있는 작은 수의 디바이스들을 나타내도록 의도된다. 스위치들, 허브들, 게이트웨이들, 방화벽들, 브리지들, 및 다른 이러한 디바이스들과 같은 다른 네트워크 디바이스들이 네트워크 (120) 내에 또한 포함될 수도 있다. 또한, 추가적인 네트워크 디바이스들은 서버 디바이스 (122) 와 클라이언트 디바이스 (128) 사이의 네트워크 경로를 따라 제공될 수도 있다. 일부의 예들에서, 서버 디바이스 (122) 는 소스 디바이스 (12) (도 1) 에 대응할 수도 있는 반면, 클라이언트 디바이스 (128) 는 목적지 디바이스 (14) (도 1) 에 대응할 수도 있다.
일반적으로, 라우팅 디바이스들 (124) 은 네트워크 (120) 를 통해 네트워크 데이터를 교환하기 위하여 하나 이상의 라우팅 프로토콜들을 구현한다. 일부의 예들에서, 라우팅 디바이스들 (124) 은 프록시 또는 캐시 동작들을 수행하도록 구성될 수도 있다. 그러므로, 일부의 예들에서, 라우팅 디바이스들 (124) 은 프록시 디바이스들로서 지칭될 수도 있다. 일반적으로, 라우팅 디바이스들 (124) 은 네트워크 (120) 를 통해 루트들을 탐색하기 위하여 라우팅 프로토콜들을 실행한다. 이러한 라우팅 프로토콜들을 실행함으로써, 라우팅 디바이스 (124B) 는 라우팅 디바이스 (124A) 를 통해 그 자신으로부터 서버 디바이스 (122) 까지의 네트워크 루트를 탐색할 수도 있다. 라우팅 디바이스들 (124) 중의 하나 이상은 이 개시물의 하나 이상의 양태들을 이용하는 MANE 를 포함할 수도 있다.
이 개시물의 기법들은 라우팅 디바이스들 (124) 및 트랜스코딩 디바이스 (126) 와 같은 네트워크 디바이스들에 의해 구현될 수도 있지만, 또한, 클라이언트 디바이스 (128) 에 의해 구현될 수도 있다. 이러한 방식으로, 라우팅 디바이스들 (124), 트랜스코딩 디바이스 (126), 및 클라이언트 디바이스 (128) 는 이 개시물의 기법들을 수행하도록 구성된 디바이스들의 예들을 나타낸다. 또한, 도 1 의 디바이스들과, 도 2 에서 예시된 인코더 (20) 및 도 3 에서 예시된 디코더 (30) 는 또한, 이 개시물의 기법들을 수행하도록 구성될 수 있는 예시적인 디바이스들이다.
도 6 은 이 개시물에서 설명된 기법들의 다양한 양태들에 따라 SEI 메시지를 코딩하도록 구성된 비디오 프로세싱 디바이스의 일 예의 동작을 예시하는 흐름도이다. 도 6 의 예에서, 비디오 인코더 (20), 캡슐화 유닛 (21), 역캡슐화 유닛 (29), 포스트-프로세싱 엔티티 (27), 네트워크 엔티티 (78) 와 같은 비디오 프로세싱 디바이스는 멀티-계층 비트스트림의 제 1 계층의 하나 이상의 VCL NAL 유닛들을 획득한다 (140). 예를 들어, 비디오 프로세싱 디바이스가 비디오 인코더 또는 비디오 디코더인 사례들에서, 비디오 프로세싱 디바이스는 멀티-계층 비트스트림에서의 VCL NAL 유닛들을 인코딩할 수도 있거나, 멀티-계층 비트스트림으로부터의 VCL NAL 유닛들을 디코딩할 수도 있다. 비디오 프로세싱 디바이스가 이러한 VCL NAL 유닛들을 인코딩하거나 디코딩하도록 구성되지 않는 예들에서, 비디오 프로세싱 디바이스는 멀티-계층 비트스트림으로부터 VCL NAL 유닛들을 파싱하고 획득할 수도 있다.
비디오 프로세싱 디바이스는 또한, 멀티-계층 비트스트림에서의 제 1 계층과 함께 있어야 할, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 코딩 (예컨대, 인코딩하거나 디코딩함) 한다 (142). 예를 들어, 이 개시물의 양태들에 따르면, 비디오 프로세싱 디바이스는 제 1 계층의 VCL NAL 유닛들과 함께 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 비-VCL NAL 유닛들을 오직 코딩하고, 멀티-계층 비트스트림의 다른 계층들을 갖는 SEI 메시지를 포함하지 않는다. 예를 들어, 이 개시물의 양태들에 따르면, 멀티-계층 비트스트림은 제 1 계층의 VCL NAL 유닛들과, 제 1 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 비-VCL NAL 유닛들 사이의 멀티-계층 비트스트림의 임의의 다른 계층의 임의의 코딩된 픽처들을 포함하지 않는다. 이러한 방식으로, SEI 메시지는 SEI 메시지가 다수의 계층 컴포넌트들을 가지는 액세스 유닛들에 대하여 적용되는 계층과 함께 남아 있다. 일부의 예들에서, 비디오 프로세싱 디바이스는 메시지가 멀티-계층 비트스트림에서 적용되는 VCL NAL 유닛들에 직접적으로 인접해야 할 SEI 메시지를 코딩할 수도 있다.
일부의 예들에서, 제 1 계층의 VCL NAL 유닛들은 제 1 계층의 제 1 픽처의 VCL NAL 유닛들이고, SEI 메시지는 제 1 계층의 제 1 픽처에 적용가능한 프리픽스 SEI 메시지이다. 이러한 예들에서, VCL NAL 유닛들과 함께 프리픽스 SEI 메시지를 포함하는 비-VCL NAL 유닛들을 오직 코딩하는 것은 비트스트림에서 VCL NAL 유닛들을 선행하는 비-VCL NAL 유닛들을 오직 코딩하는 것을 포함할 수도 있다. 즉, 비디오 프로세싱 디바이스는 멀티-계층 비트스트림에서 제 1 픽처의 VCL NAL 유닛들 직전에 위치되어야 할 SEI 메시지를 포함하는 비-VCL NAL 유닛들을 코딩할 수도 있다.
일부의 예들에서, 제 1 계층의 VCL NAL 유닛들은 제 1 계층의 제 1 픽처의 VCL NAL 유닛들이고, SEI 메시지는 제 1 계층의 제 1 픽처에 적용가능한 서픽스 SEI 메시지이다. 이러한 예들에서, VCL NAL 유닛들과 함께 서픽스 SEI 메시지를 포함하는 비-VCL NAL 유닛들을 오직 코딩하는 것은 비트스트림에서 VCL NAL 유닛들에 후속하는 비-VCL NAL 유닛들을 오직 코딩하는 것을 포함할 수도 있다. 즉, 비디오 프로세싱 디바이스는 멀티-계층 비트스트림에서 제 1 픽처의 VCL NAL 유닛들 직후에 위치되어야 할 SEI 메시지를 포함하는 비-VCL NAL 유닛들을 코딩할 수도 있다.
도 6 의 예에서, 비디오 프로세싱 디바이스는 또한, 멀티-계층 비트스트림의 제 2 계층의 VCL NAL 유닛들을 획득한다 (144). 예를 들어, 비디오 프로세싱 디바이스는 멀티-계층 비트스트림의 제 2 계층의 픽처의 슬라이스들을 코딩 (즉, 인코딩하거나 디코딩함) 할 수도 있다. 비디오 프로세싱 디바이스는 또한, 제 2 계층의 VCL NAL 유닛들과 함께 있어야 할, 제 2 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 코딩한다 (146). 예를 들어, 위에서 설명된 바와 같이, 비디오 프로세싱 디바이스는, 비트스트림이 제 2 계층의 VCL NAL 유닛들과, 제 2 계층의 VCL NAL 유닛들에 적용가능한 SEI 메시지를 포함하는 비-VCL NAL 유닛들 사이의 멀티-계층 비트스트림의 임의의 다른 계층의 임의의 코딩된 픽처들을 포함하지 않도록, 멀티-계층 비트스트림을 코딩할 수도 있다. 이러한 방식으로, SEI 메시지는 SEI 메시지가 다수의 계층 컴포넌트들을 가지는 액세스 유닛들에 대하여 적용되는 계층과 함께 남아 있다.
또한, 일부의 예들에서, 비디오 프로세싱 디바이스는 비트스트림에서 제 1 픽처를 후속하는 제 2 픽처의 VCL NAL 유닛들에 적용가능한 제 2 프리픽스 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들을 코딩할 수도 있다. 비디오 프로세싱 디바이스는 또한, 비트스트림에서 제 2 픽처를 후속하는 제 2 픽처의 VCL NAL 유닛들에 적용가능한 제 2 서픽스 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들을 코딩할 수도 있다.
일부의 사례들에서, 비디오 프로세싱 디바이스는 또한, 제 1 계층의 제 1 픽처의 VCL NAL 유닛들 및 제 1 픽처의 연관된 비-VCL NAL 유닛들을 포함하는 픽처 유닛에 기초하여, SEI 메시지에 대한 최대 반복 파라미터를 결정할 수도 있다.
또한, 도 6 에 대하여 도시되고 설명된 단계들은 단지 하나의 예로서 제공되는 것을 이해해야 한다. 즉, 도 6 의 예에서 도시된 단계들은 도 6 에서 도시된 순서로 반드시 수행될 필요가 없고, 더 적거나, 추가적인, 또는 대안적인 단계들이 수행될 수도 있다. 또한, 기법들은 비디오 프로세싱 디바이스에 대하여 위에서 일반적으로 설명되지만, 기법들은 비디오 인코더 (20), 캡슐화 유닛 (21), 역캡슐화 유닛 (29), 포스트-프로세싱 엔티티 (27), 네트워크 엔티티 (78), 또는 다른 프로세싱 유닛들과 같은 다양한 비디오 프로세싱 디바이스들에 의해 구현될 수도 있다.
도 7 은 이 개시물에서 설명된 기법들의 다양한 양태들에 따라 SEI 메시지를 코딩하도록 구성된 비디오 프로세싱 디바이스의 또 다른 예의 동작을 예시하는 흐름도이다. 도 7 의 예에서, 비디오 인코더 (20), 캡슐화 유닛 (21), 역캡슐화 유닛 (29), 포스트-프로세싱 유닛 (27), 네트워크 엔티티 (78) 와 같은 비디오 프로세싱 디바이스는 디코딩된 픽처 해시 SEI 메시지를 포함하는 멀티-계층 비트스트림의 계층의 하나 이상의 비-VCL NAL 유닛들을 코딩한다 (150). 위에서 언급된 바와 같이, 디코딩된 픽처 해시 메시지는 디코딩된 픽처의 샘플 값들로부터 유도된 검사합을 제공할 수도 있다. 디코딩된 픽처 해시 메시지는 픽처가 정확하게 수신되고 디코딩되었는지 여부를 검출하기 위하여 예컨대, 비디오 디코더 (30) 와 같은 비디오 디코더에 의해 이용될 수도 있다.
비디오 프로세싱 디바이스는 또한, 비-VCL NAL 유닛들과 연관된 계층 식별자를 결정한다 (152). 비디오 프로세싱 디바이스는 또한, 디코딩된 픽처 해시 SEI 메시지를 포함하는 비-VCL NAL 유닛들의 계층 식별자에 기초하여, 디코딩된 픽처 해시 SEI 메시지가 적용가능한 멀티-계층 비트스트림의 계층들의 세트를 결정한다 (154). 이 개시물의 양태들에 따르면, 디코딩된 픽처 해시 SEI 메시지의 적용가능한 계층들의 세트는 SEI 메시지를 포함하는 SEI NAL 유닛의 계층 식별자 (nuh_layer_id) 와 동일한 계층 식별자 (nuh_layer_id) 를 갖는 계층인 것으로 특정될 수도 있다. 즉, 디코딩된 픽처 해시 SEI 메시지는 SEI 메시지를 포함하는 SEI NAL 유닛의 동일한 계층 식별자 (nuh_layer_id) 를 가지는 계층에 오직 적용된다. 일부의 사례들에서, 디코딩된 픽처 해시 SEI 메시지는 오직 비-네스팅된 SEI 메시지일 수도 있다.
일부의 예들에서, 추가적으로 또는 대안적으로, 비디오 프로세싱 디바이스는 또한, 멀티-계층 비트스트림의 하나 이상의 제 2 비-VCL NAL 유닛들을 코딩할 수도 있다. 제 2 비-VCL NAL 유닛들은 비디오 데이터의 특정한 부분에 대하여 활성인 파라미터 세트들을 표시하는 활성 파라미터 세트들 SEI 메시지를 포함할 수도 있다. 비디오 프로세싱 디바이스는 또한, 활성 파라미터 세트 SEI 메시지를 포함하는 하나 이상의 제 2 비-VCL NAL 유닛들에 기초하여, 활성 파라미터 세트들 SEI 메시지가 멀티-계층 비트스트림의 모든 계층들에 적용가능한 것으로 결정할 수도 있다. 즉, 비디오 프로세싱 디바이스는 활성 파라미터 세트들 SEI 메시지인 SEI 메시지로 인해, 활성 파라미터 세트들 SEI 메시지가 멀티-계층 비트스트림의 모든 계층들에 적용가능한 것으로 결정할 수도 있다. 일부의 예들에서, 비디오 프로세싱 디바이스는 활성 파라미터 세트들 SEI 메시지가 멀티-계층 비트스트림의 모든 계층들에 적용가능하다는 것을 표시하는 하나 이상의 신택스 엘리먼트들을 추가로 코딩할 수도 있다. 일부의 예들에서, 비디오 프로세싱 디바이스는 활성 파라미터 세트들 SEI 메시지를 비-네스팅된 SEI 메시지로서 오직 코딩할 수도 있다.
일부의 예들에서, 추가적으로 또는 대안적으로, 비디오 프로세싱 디바이스는 프레임 필드 정보가 멀티-계층 비트스트림의 픽처 타이밍 SEI 메시지에서 존재한다는 것을 표시하는 하나 이상의 신택스 엘리먼트들을 코딩할 수도 있다. 비디오 프로세싱 디바이스는 또한, 프레임 필드 정보를, 픽처 타이밍 SEI 메시지가 적용되는 멀티-계층 비트스트림의 모든 동작 포인트들에서의 모든 계층들에 적용할 수도 있다.
또한, 도 7 에 대하여 도시되고 설명된 단계들은 단지 하나의 예로서 제공되는 것을 이해해야 한다. 즉, 도 7 의 예에서 도시된 단계들은 도 7 에서 도시된 순서로 반드시 수행될 필요가 없고, 더 적거나, 추가적인, 또는 대안적인 단계들이 수행될 수도 있다. 또한, 기법들은 비디오 프로세싱 디바이스에 대하여 위에서 일반적으로 설명되지만, 기법들은 비디오 인코더 (20), 캡슐화 유닛 (21), 역캡슐화 유닛 (29), 포스트-프로세싱 엔티티 (27), 네트워크 엔티티 (78), 또는 다른 프로세싱 유닛들과 같은 다양한 비디오 프로세싱 디바이스들에 의해 구현될 수도 있다.
도 8 은 이 개시물에서 설명된 기법들의 다양한 양태들에 따라 SEI 메시지를 코딩하도록 구성된 비디오 프로세싱 디바이스의 또 다른 예의 동작을 예시하는 흐름도이다. 도 8 의 예에서, 비디오 인코더 (20), 캡슐화 유닛 (21), 역캡슐화 유닛 (29), 포스트-프로세싱 유닛 (27), 네트워크 엔티티 (78) 와 같은 비디오 프로세싱 디바이스는 SEI 페이로드 타입을 가지는 SEI 메시지를 포함하는 멀티-계층 비트스트림의 계층의 하나 이상의 비-VCL NAL 유닛들을 코딩할 수도 있다 (160). 비디오 프로세싱 디바이스는 또한, 페이로드 타입에 기초하여, SEI 메시지가 적용되는 멀티-계층 비트스트림의 신택스를 결정할 수도 있다 (162). 예를 들어, 비디오 프로세싱 디바이스는 SEI 페이로드 타입에 기초하여, SEI 메시지가 적용되는 멀티-계층 비트스트림의 하나 이상의 신택스 값들을 결정할 수도 있다.
예를 들어, 이 개시물의 양태들에 따르면, SEI 메시지는 스케일러블 네스팅 SEI 메시지를 포함할 수도 있다. 이 예에서, 비디오 프로세싱 디바이스는 페이로드 타입들의 제 1 세트 내에 포함되는 SEI 페이로드 타입에 기초하여, 스케일러블 네스팅 SEI 메시지의 bitstream_subset_flag 신택스 엘리먼트가 제로 값인 것으로 결정할 수도 있다. 예에서, 페이로드 타입들의 제 1 세트는 도 1 에 대하여 위에서 설명된 바와 같이, 페이로드 타입들 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 및 134 를 포함하지만, 세트는 예에서 식별된 것들보다 더 많거나 더 적은 것들을 포함할 수도 있다.
또 다른 예에서, SEI 메시지는 비-네스팅된 SEI 메시지일 수도 있다. 이 예에서, 비디오 프로세싱 디바이스는 페이로드 타입들의 제 1 세트 내에 포함되는 SEI 페이로드 타입에 기초하여, SEI 메시지를 포함하는 비-VCL NAL 유닛들에 대한 계층 식별자 신택스 엘리먼트가 SEI 메시지와 연관된 VCL NAL 유닛들의 계층 식별자 신택스 엘리먼트와 동일한 것으로 결정할 수도 있다. 예에서, 페이로드 타입들의 제 1 세트는 페이로드 타입들 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 및 134 를 포함하지만, 세트는 식별된 것들보다 더 많거나 더 적은 것들을 포함할 수도 있다.
또 다른 예에서, SEI 메시지는 스케일러블 네스팅 SEI 메시지일 수도 있다. 이 예에서, 비디오 프로세싱 디바이스는 페이로드 타입들의 제 1 세트 내에 포함되는 SEI 페이로드 타입에 기초하여, 스케일러블 네스팅 SEI 메시지를 포함하는 하나 이상의 비-VCL NAL 유닛들이 제로와 동일한 TemporalId 와, i 의 모든 값들에 대하여 7 과 동일한 maxTemporalId[ i ] 를 가지는 것으로 결정할 수도 있다. 예에서, 페이로드 타입들의 제 1 세트는 페이로드 타입들 2, 3, 6, 9, 15, 16, 17, 19, 22, 23, 45, 47, 128, 131, 132, 및 134 를 포함하지만, 세트는 예에서 식별된 것들보다 더 많거나 더 적은 것들을 포함할 수도 있다.
이 개시물의 양태들에 따르면, 추가적으로 또는 대안적으로, 비디오 프로세싱 디바이스는 스케일러블 네스팅 SEI 메시지에서가 아니라, 오직 비-네스팅된 SEI 메시지에서 멀티-계층 비트스트림의 활성 파라미터 세트들 SEI 메시지를 코딩할 수도 있다.
추가적으로 또는 대안적으로, 비디오 프로세싱 디바이스는 비-네스팅된 버퍼링 주기 SEI 메시지, 픽처 타이밍 SEI 메시지, 또는 디코딩 유닛 정보 SEI 메시지를 포함하는 SEI 메시지에 기초하여, 멀티-계층 비디오 데이터의 계층의 계층 식별자가 제로 값인 것으로 결정할 수도 있다. 일부의 예들에서, 비디오 프로세싱 디바이스는 또한, 제로 값을 가지기 위하여 계층 식별자 신택스 엘리먼트를 코딩할 수도 있다.
추가적으로 또는 대안적으로, 비디오 프로세싱 디바이스는 멀티-계층 비트스트림의 bitstream_subset_flag 신택스 엘리먼트를 코딩할 수도 있다. 비디오 코딩 디바이스는 bitstream_subset_flag 신택스 엘리먼트가 1 과 동일한 것과, 멀티-계층 비트스트림의 비디오 파라미터 세트 (VPS) 에 의해 특정된 계층 세트들이 제로 내지 SEI 메시지를 포함하는 비-VCL NAL 유닛들의 계층 식별자까지의 범위에서의 계층 식별자들을 포함하지 않는 것에 기초하여, 멀티-계층 비트스트림의 default_op_flag 신택스 엘리먼트의 값이 제로 값인 것으로 결정할 수도 있다. 일부의 예들에서, 비디오 프로세싱 디바이스는 또한, 제로 값을 가지기 위하여 default_op_flag 신택스 엘리먼트를 코딩할 수도 있다.
이 개시물의 추가적인 양태에 따르면, 추가적으로 또는 대안적으로, 비디오 프로세싱 디바이스는 멀티-계층 비트스트림의 nesting_op_flag 및 멀티-계층 비트스트림의 all_layers_flag 를 코딩할 수도 있다. 비디오 프로세싱 디바이스는 제로의 값을 가지는 nesting_op_flag 및 1 의 값을 가지는 all_layers_flag 에 기초하여, 멀티-계층 비트스트림의 maxTemporalId[ 0 ] 신택스 엘리먼트의 값이 7 과 동일한 것으로 결정할 수도 있다. 일부의 예들에서, 비디오 프로세싱 디바이스는 또한, 7 의 값을 가지기 위하여 maxTemporalId[ 0 ] 신택스 엘리먼트를 코딩할 수도 있다.
추가적으로 또는 대안적으로, 비디오 프로세싱 디바이스는 멀티-계층 비트스트림의 bitstream_subset_flag 신택스 엘리먼트 및 멀티-계층 비트스트림의 nesting_op_flag 신택스 엘리먼트를 코딩할 수도 있다. 비디오 프로세싱 디바이스는 1 의 값을 가지는 bitstream_subset_flag 신택스 엘리먼트 및 제로의 값을 가지는 nesting_op_flag 신택스 엘리먼트에 기초하여, 멀티-계층 비트스트림의 nestingLayeridList[ 0 ] 가 멀티-계층 비트스트림의 VPS 에서 특정된 계층 세트의 계층 식별자 값들을 오직 포함하는 것으로 결정할 수도 있다. 일부의 예들에서, 비디오 프로세싱 디바이스는 또한, 멀티-계층 비트스트림의 VPS 에서 특정된 계층 세트의 계층 식별자 값들을 오직 포함하기 위하여 nestingLayeridList[ 0 ] 신택스 엘리먼트를 코딩할 수도 있다.
또한, 도 8 에 대하여 도시되고 설명된 단계들은 단지 하나의 예로서 제공되는 것을 이해해야 한다. 즉, 도 8 의 예에서 도시된 단계들은 도 8 에서 도시된 순서로 반드시 수행될 필요가 없고, 더 적거나, 추가적인, 또는 대안적인 단계들이 수행될 수도 있다. 또한, 기법들은 비디오 프로세싱 디바이스에 대하여 위에서 일반적으로 설명되지만, 기법들은 비디오 인코더 (20), 캡슐화 유닛 (21), 역캡슐화 유닛 (29), 포스트-프로세싱 엔티티 (27), 네트워크 엔티티 (78), 또는 다른 프로세싱 유닛들과 같은 다양한 비디오 프로세싱 디바이스들에 의해 구현될 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현될 경우, 기능들은 하나 이상의 명령들 또는 코드로서, 컴퓨터-판독가능 매체 상에 저장되거나 컴퓨터-판독가능 매체를 통해 송신될 수도 있고, 하드웨어-기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터-판독가능 매체들은 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터-판독가능 저장 매체들, 또는 예컨대, 통신 프로토콜에 따라 하나의 장소로부터 또 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이러한 방식으로, 컴퓨터-판독가능 매체들은 일반적으로 (1) 비-일시적 유형의 컴퓨터-판독가능 저장 매체들, 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 이 개시물에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수도 있다.
제한이 아닌 예로서, 이러한 컴퓨터-판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장, 자기 디스크 저장, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령들 또는 데이터 구조들의 형태로 희망하는 프로그램 코드를 저장하기 위해 이용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속은 컴퓨터-판독가능 매체로 적절하게 칭해진다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스트 페어 (twisted pair), 디지털 가입자 회선 (digital subscriber line; DSL), 또는 무선 기술들 예컨대, 적외선, 라디오 (radio), 및 마이크로파 (microwave) 를 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신될 경우, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 무선 기술들 예컨대, 적외선, 라디오, 및 마이크로파는 매체의 정의 내에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체들 및 데이터 저장 매체들은 접속들, 반송파들, 신호들, 또는 다른 순시적 매체 (transient medium) 들을 포함하는 것이 아니라, 그 대신에, 비-순시적인, 유형의 저장 매체들에 관한 것이라는 것을 이해해야 한다. 본원에서 이용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (compact disc; CD), 레이저 디스크 (laser disc), 광학 디스크 (optical disc), 디지털 다기능 디스크 (digital versatile disc; DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크 (Blu-ray disc) 를 포함하고, 여기서 디스크 (disk) 들은 통상 데이터를 자기적으로 재생하는 반면, 디스크 (disc) 들은 데이터를 레이저들로 광학적으로 재생한다. 상기의 조합들은 컴퓨터-판독가능 매체들의 범위 내에 또한 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 애플리케이션 특정 집적 회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적된 또는 별도의 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 본원에서 이용된 바와 같은 용어 "프로세서" 는 상기한 구조, 또는 본원에서 설명된 기법들의 구현을 위해 적당한 임의의 다른 구조 중의 임의의 것을 지칭할 수도 있다. 게다가, 일부의 양태들에서는, 본원에서 설명된 기능성이 인코딩 및 디코딩을 위해 구성되거나 조합된 코덱 내에 통합된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에서 제공될 수도 있다. 또한, 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
이 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC 들의 세트 (예를 들어, 칩셋) 를 포함하는 광범위한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위하여 이 개시물에서 설명되어 있지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다. 오히려, 위에서 설명된 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛 내에 조합될 수도 있거나, 적당한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명된 바와 같은 하나 이상의 프로세서들을 포함하는 상호동작하는 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (29)

  1. 비디오 데이터를 코딩하는 방법으로서,
    제 1 계층 및 적어도 하나의 제 2 계층을 포함하는 비디오 데이터의 멀티-계층 비트스트림의 액세스 유닛을 획득하는 단계로서, 상기 액세스 유닛을 획득하는 단계는 상기 제 1 계층의 하나 이상의 비디오 코딩 계층 (video coding layer; VCL) 네트워크 추상화 계층 (network abstraction layer; NAL) 유닛들을 획득하고, 상기 제 2 계층의 하나 이상의 VCL NAL 유닛들을 획득하는 단계를 포함하고, 상기 제 1 계층은 제 1 픽처를 포함하고, 상기 제 2 계층은 제 2 픽처를 포함하는, 상기 액세스 유닛을 획득하는 단계; 및
    상기 액세스 유닛을 코딩하는 단계로서, 상기 액세스 유닛을 코딩하는 단계는, 상기 제 1 계층의 상기 VCL NAL 유닛들에 적용가능한 제 1 SEI 메시지를 포함하는 하나 이상의 제 1 비-VCL NAL 유닛들 및 상기 제 1 계층의 상기 VCL NAL 유닛들을 연속적으로 코딩하고, 상기 하나 이상의 제 1 비-VCL NAL 유닛들 및 상기 제 1 계층의 상기 VCL NAL 유닛들을 연속적으로 코딩한 후에, 상기 제 2 계층의 상기 VCL NAL 유닛들에 적용가능한 제 2 SEI 메시지를 포함하는 하나 이상의 제 2 비-VCL NAL 유닛들 및 상기 제 2 계층의 상기 VCL NAL 유닛들을 연속적으로 코딩하여, 상기 멀티-계층 비트스트림이, 상기 제 1 계층의 상기 VCL NAL 유닛들과 상기 하나 이상의 제 1 비-VCL NAL 유닛들 사이에 상기 제 1 계층 이외의 다른 계층의 코딩된 픽처들에 대한 다른 NAL 유닛들을 포함하지 않고, 상기 제 2 계층의 상기 VCL NAL 유닛들과 상기 하나 이상의 제 2 비-VCL NAL 유닛들 사이에 상기 제 2 계층 이외의 다른 계층의 코딩된 픽처들에 대한 다른 NAL 유닛들을 포함하지 않도록 하는 단계를 포함하는, 상기 액세스 유닛을 코딩하는 단계를 포함하고,
    상기 방법은, 상기 제 1 계층의 상기 제 1 픽처의 VCL NAL 유닛들 및 상기 제 1 픽처의 연관된 비-VCL NAL 유닛들을 포함하는 픽처 유닛에 기초하여, 각각의 SEI 메시지에 대한 최대 반복 파라미터를 결정하는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 하나 이상의 제 1 비-VCL NAL 유닛들을 코딩하는 것은, 상기 멀티-계층 비트스트림에서 상기 제 1 계층의 상기 VCL NAL 유닛들에 직접적으로 인접하는 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 코딩하는 것을 포함하고, 상기 하나 이상의 제 2 비-VCL NAL 유닛들을 코딩하는 것은, 상기 멀티-계층 비트스트림에서 상기 제 2 계층의 상기 VCL NAL 유닛들에 직접적으로 인접하는 상기 하나 이상의 제 2 비-VCL NAL 유닛들을 코딩하는 것을 포함하는, 비디오 데이터를 코딩하는 방법.
  3. 제 1 항에 있어서,
    상기 제 1 계층의 상기 VCL NAL 유닛들은 상기 제 1 계층의 상기 제 1 픽처의 VCL NAL 유닛들이고, 상기 제 1 SEI 메시지는 상기 제 1 계층의 상기 제 1 픽처에 적용가능한 제 1 프리픽스 SEI 메시지를 포함하고, 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 연속적으로 코딩하는 것은, 상기 멀티-계층 비트스트림에서 상기 제 1 계층의 첫번째 VCL NAL 유닛을 선행하는 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 코딩하는 것을 포함하는, 비디오 데이터를 코딩하는 방법.
  4. 제 1 항에 있어서,
    상기 제 2 계층의 상기 VCL NAL 유닛들은 상기 제 2 계층의 상기 제 2 픽처의 VCL NAL 유닛들이고, 상기 제 2 SEI 메시지는 상기 제 2 픽처의 VCL NAL 유닛들에 적용가능한 제 2 프리픽스 SEI 메시지를 포함하고, 상기 방법은:
    상기 멀티-계층 비트스트림에서 상기 제 1 픽처를 후속하는 상기 하나 이상의 제 2 비-VCL NAL 유닛들을 코딩하는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  5. 제 1 항에 있어서,
    상기 제 1 계층의 상기 VCL NAL 유닛들은 상기 제 1 계층의 상기 제 1 픽처의 VCL NAL 유닛들이고, 상기 제 1 SEI 메시지는 상기 제 1 계층의 상기 제 1 픽처에 적용가능한 제 1 서픽스 SEI 메시지를 포함하고, 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 연속적으로 코딩하는 것은, 상기 멀티-계층 비트스트림에서 상기 제 1 계층의 상기 VCL NAL 유닛들에 후속하는 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 코딩하는 것을 포함하는, 비디오 데이터를 코딩하는 방법.
  6. 제 1 항에 있어서,
    상기 제 2 계층의 상기 VCL NAL 유닛들은 상기 제 2 계층의 상기 제 2 픽처의 VCL NAL 유닛들이고, 상기 제 2 SEI 메시지는 상기 제 2 픽처의 VCL NAL 유닛들에 적용가능한 제 2 서픽스 SEI 메시지를 포함하고, 상기 방법은:
    상기 멀티-계층 비트스트림에서 상기 제 2 픽처를 후속하는 상기 하나 이상의 제 2 비-VCL NAL 유닛들을 코딩하는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  7. 삭제
  8. 제 1 항에 있어서,
    상기 하나 이상의 비-VCL NAL 유닛들을 코딩하는 것은, 상기 하나 이상의 비-VCL NAL 유닛들을 인코딩하는 것을 포함하고, 상기 방법은,
    예측 데이터와 실제의 비디오 데이터 사이의 차이를 표시하는 상기 제 1 계층의 상기 VCL NAL 유닛들에 대한 잔차 데이터를 생성하는 단계;
    변환 계수들을 생성하기 위하여 변환을 상기 잔차 데이터에 적용하는 단계; 및
    상기 변환 계수들의 표시를 포함하는 비트스트림을 생성하는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  9. 제 1 항에 있어서,
    상기 하나 이상의 비-VCL NAL 유닛들을 코딩하는 것은, 상기 하나 이상의 비-VCL NAL 유닛들을 디코딩하는 것을 포함하고, 상기 방법은,
    인코딩된 비트스트림으로부터 상기 VCL NAL 유닛들에 대한 변환 계수들을 획득하는 단계;
    잔차 데이터를 생성하기 위하여 역변환을 상기 변환 계수들에 적용하는 단계; 및
    상기 생성된 잔차 데이터에 기초하여 상기 비디오 데이터를 결정하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법.
  10. 비디오 데이터를 코딩하기 위한 디바이스로서,
    비디오 데이터의 멀티-계층 비트스트림의 적어도 부분을 저장하도록 구성된 메모리; 및
    하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은,
    제 1 계층 및 적어도 하나의 제 2 계층을 포함하는 비디오 데이터의 멀티-계층 비트스트림의 액세스 유닛을 획득하되, 상기 액세스 유닛을 획득하기 위해, 상기 하나 이상의 프로세서들은 상기 제 1 계층의 하나 이상의 비디오 코딩 계층 (video coding layer; VCL) 네트워크 추상화 계층 (network abstraction layer; NAL) 유닛들을 획득하고, 상기 제 2 계층의 하나 이상의 VCL NAL 유닛들을 획득하도록 구성되며, 상기 제 1 계층은 제 1 픽처를 포함하고, 상기 제 2 계층은 제 2 픽처를 포함하고; 그리고
    상기 액세스 유닛을 코딩하되, 상기 액세스 유닛을 코딩하기 위해, 상기 하나 이상의 프로세서들은 상기 제 1 계층의 상기 VCL NAL 유닛들에 적용가능한 제 1 SEI 메시지를 포함하는 하나 이상의 제 1 비-VCL NAL 유닛들 및 상기 제 1 계층의 상기 VCL NAL 유닛들을 연속적으로 코딩하고, 상기 하나 이상의 제 1 비-VCL NAL 유닛들 및 상기 제 1 계층의 상기 VCL NAL 유닛들을 연속적으로 코딩한 후에, 상기 제 2 계층의 상기 VCL NAL 유닛들에 적용가능한 제 2 SEI 메시지를 포함하는 하나 이상의 제 2 비-VCL NAL 유닛들 및 상기 제 2 계층의 상기 VCL NAL 유닛들을 연속적으로 코딩하여, 상기 멀티-계층 비트스트림이, 상기 제 1 계층의 상기 VCL NAL 유닛들과 상기 하나 이상의 제 1 비-VCL NAL 유닛들 사이에 상기 제 1 계층 이외의 다른 계층의 코딩된 픽처들에 대한 다른 NAL 유닛들을 포함하지 않고, 상기 제 2 계층의 상기 VCL NAL 유닛들과 상기 하나 이상의 제 2 비-VCL NAL 유닛들 사이에 상기 제 2 계층 이외의 다른 계층의 코딩된 픽처들에 대한 다른 NAL 유닛들을 포함하지 않도록 구성되고,
    상기 하나 이상의 프로세서들은, 상기 제 1 계층의 상기 제 1 픽처의 VCL NAL 유닛들 및 상기 제 1 픽처의 연관된 비-VCL NAL 유닛들을 포함하는 픽처 유닛에 기초하여, 각각의 SEI 메시지에 대한 최대 반복 파라미터를 결정하도록 추가로 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  11. 제 10 항에 있어서,
    상기 하나 이상의 제 1 비-VCL NAL 유닛들을 코딩하기 위하여, 상기 하나 이상의 프로세서들은 상기 멀티-계층 비트스트림에서 상기 제 1 계층의 상기 VCL NAL 유닛들에 직접적으로 인접한 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 코딩하도록 구성되고, 상기 하나 이상의 제 2 비-VCL NAL 유닛들을 코딩하기 위하여, 상기 하나 이상의 프로세서들은 상기 멀티-계층 비트스트림에서 상기 제 2 계층의 상기 VCL NAL 유닛들에 직접적으로 인접한 상기 하나 이상의 제 2 비-VCL NAL 유닛들을 코딩하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  12. 제 10 항에 있어서,
    상기 제 1 계층의 상기 VCL NAL 유닛들은 상기 제 1 계층의 상기 제 1 픽처의 VCL NAL 유닛들이고, 상기 제 1 SEI 메시지는 상기 제 1 계층의 상기 제 1 픽처에 적용가능한 제 1 프리픽스 SEI 메시지를 포함하고, 상기 제 1 계층의 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 연속적으로 코딩하기 위하여, 상기 하나 이상의 프로세서들은 상기 멀티-계층 비트스트림에서 상기 제 1 계층의 첫번째 VCL NAL 유닛을 선행하는 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 코딩하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  13. 제 10 항에 있어서,
    상기 제 2 계층의 상기 VCL NAL 유닛들은 상기 제 2 계층의 상기 제 2 픽처의 VCL NAL 유닛들이고, 상기 제 2 SEI 메시지는 상기 제 2 픽처의 VCL 유닛들에 적용가능한 제 2 프리픽스 SEI 메시지를 포함하고, 상기 하나 이상의 프로세서들은:
    상기 멀티-계층 비트스트림에서 상기 제 1 픽처를 후속하는 상기 하나 이상의 제 2 비-VCL NAL 유닛들을 코딩하도록 추가로 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  14. 제 10 항에 있어서,
    상기 제 1 계층의 상기 VCL NAL 유닛들은 상기 제 1 계층의 상기 제 1 픽처의 VCL NAL 유닛들이고, 상기 제 1 SEI 메시지는 상기 제 1 계층의 상기 제 1 픽처에 적용가능한 제 1 서픽스 SEI 메시지를 포함하고, 상기 제 1 계층의 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 연속적으로 코딩하기 위하여, 상기 하나 이상의 프로세서들은 상기 멀티-계층 비트스트림에서 상기 제 1 계층의 상기 VCL NAL 유닛들에 후속하는 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 코딩하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  15. 제 10 항에 있어서,
    상기 제 2 계층의 상기 VCL NAL 유닛들은 상기 제 2 계층의 상기 제 2 픽처의 VCL NAL 유닛들이고, 상기 제 2 SEI 메시지는 상기 제 2 픽처의 VCL NAL 유닛들에 적용가능한 제 2 서픽스 SEI 메시지를 포함하고, 상기 하나 이상의 프로세서들은:
    상기 멀티-계층 비트스트림에서 상기 제 2 픽처를 후속하는 하나 이상의 제 2 비-VCL NAL 유닛들을 코딩하도록 추가로 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  16. 삭제
  17. 제 10 항에 있어서,
    상기 하나 이상의 비-VCL NAL 유닛들을 코딩하기 위하여, 상기 하나 이상의 프로세서들은 상기 하나 이상의 비-VCL NAL 유닛들을 인코딩하도록 구성되고, 상기 하나 이상의 프로세서들은,
    예측 데이터와 실제의 비디오 데이터 사이의 차이를 표시하는 상기 제 1 계층의 상기 VCL NAL 유닛들에 대한 잔차 데이터를 생성하고;
    변환 계수들을 생성하기 위하여 변환을 상기 잔차 데이터에 적용하고; 그리고
    상기 변환 계수들의 표시를 포함하는 비트스트림을 생성하도록 추가로 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  18. 제 10 항에 있어서,
    상기 하나 이상의 비-VCL NAL 유닛들을 코딩하기 위하여, 상기 하나 이상의 프로세서들은 상기 하나 이상의 비-VCL NAL 유닛들을 디코딩하도록 구성되고, 상기 하나 이상의 프로세서들은,
    인코딩된 비트스트림으로부터 상기 VCL NAL 유닛들에 대한 변환 계수들을 획득하고;
    잔차 데이터를 생성하기 위하여 역변환을 상기 변환 계수들에 적용하고; 그리고
    상기 생성된 잔차 데이터에 기초하여 상기 비디오 데이터를 결정하도록 추가로 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  19. 제 10 항에 있어서,
    상기 디바이스는,
    집적 회로;
    마이크로프로세서; 또는
    무선 통신 디바이스 중의 적어도 하나를 포함하는, 비디오 데이터를 코딩하기 위한 디바이스.
  20. 비디오 데이터를 코딩하기 위한 장치로서,
    제 1 계층 및 적어도 하나의 제 2 계층을 포함하는 비디오 데이터의 멀티-계층 비트스트림의 액세스 유닛을 획득하기 위한 수단으로서, 상기 액세스 유닛을 획득하기 위한 수단은 상기 제 1 계층의 하나 이상의 비디오 코딩 계층 (video coding layer; VCL) 네트워크 추상화 계층 (network abstraction layer; NAL) 유닛들을 획득하고, 상기 제 2 계층의 하나 이상의 VCL NAL 유닛들을 획득하기 위한 수단을 포함하며, 상기 제 1 계층은 제 1 픽처를 포함하고, 상기 제 2 계층은 제 2 픽처를 포함하는, 상기 액세스 유닛을 획득하기 위한 수단; 및
    상기 액세스 유닛을 코딩하기 위한 수단으로서, 상기 액세스 유닛을 코딩하기 위한 수단은, 상기 제 1 계층의 상기 VCL NAL 유닛들에 적용가능한 제 1 SEI 메시지를 포함하는 하나 이상의 제 1 비-VCL NAL 유닛들 및 상기 제 1 계층의 상기 VCL NAL 유닛들을 연속적으로 코딩하고, 상기 하나 이상의 제 1 비-VCL NAL 유닛들 및 상기 제 1 계층의 상기 VCL NAL 유닛들을 연속적으로 코딩한 후에, 상기 제 2 계층의 상기 VCL NAL 유닛들에 적용가능한 제 2 SEI 메시지를 포함하는 하나 이상의 제 2 비-VCL NAL 유닛들 및 상기 제 2 계층의 상기 VCL NAL 유닛들을 연속적으로 코딩하여, 상기 멀티-계층 비트스트림이, 상기 제 1 계층의 상기 VCL NAL 유닛들과 상기 하나 이상의 제 1 비-VCL NAL 유닛들 사이에 상기 제 1 계층 이외의 다른 계층의 코딩된 픽처들에 대한 다른 NAL 유닛들을 포함하지 않고, 상기 제 2 계층의 상기 VCL NAL 유닛들과 상기 하나 이상의 제 2 비-VCL NAL 유닛들 사이에 상기 제 2 계층 이외의 다른 계층의 코딩된 픽처들에 대한 다른 NAL 유닛들을 포함하지 않도록 하는 수단을 포함하는, 상기 액세스 유닛을 코딩하기 위한 수단
    을 포함하고,
    상기 장치는, 상기 제 1 계층의 상기 제 1 픽처의 VCL NAL 유닛들 및 상기 제 1 픽처의 연관된 비-VCL NAL 유닛들을 포함하는 픽처 유닛에 기초하여, 각각의 SEI 메시지에 대한 최대 반복 파라미터를 결정하는 수단을 더 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  21. 제 20 항에 있어서,
    상기 하나 이상의 제 1 비-VCL NAL 유닛들을 코딩하기 위한 수단은, 상기 멀티-계층 비트스트림에서 상기 제 1 계층의 상기 VCL NAL 유닛들에 직접적으로 인접하는 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 코딩하기 위한 수단을 포함하고, 상기 하나 이상의 제 2 비-VCL NAL 유닛들을 코딩하기 위한 수단은, 상기 멀티-계층 비트스트림에서 상기 제 2 계층의 상기 VCL NAL 유닛들에 직접적으로 인접하는 상기 하나 이상의 제 2 비-VCL NAL 유닛들을 코딩하기 위한 수단을 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  22. 제 20 항에 있어서,
    상기 제 1 계층의 상기 VCL NAL 유닛들은 상기 제 1 계층의 상기 제 1 픽처의 VCL NAL 유닛들이고, 상기 제 1 SEI 메시지는 상기 제 1 계층의 상기 제 1 픽처에 적용가능한 제 1 프리픽스 SEI 메시지를 포함하고, 상기 제 1 계층의 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 연속적으로 코딩하기 위한 수단은, 상기 멀티-계층 비트스트림에서 상기 제 1 계층의 첫번째 VCL NAL 유닛을 선행하는 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 코딩하기 위한 수단을 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  23. 제 20 항에 있어서,
    상기 제 2 계층의 상기 VCL NAL 유닛들은 상기 제 2 계층의 상기 제 2 픽처의 VCL NAL 유닛들이고, 상기 제 2 SEI 메시지는 상기 제 2 픽처의 VCL 유닛들에 적용가능한 제 2 프리픽스 SEI 메시지를 포함하고, 상기 장치는:
    상기 멀티-계층 비트스트림에서 상기 제 1 픽처를 후속하는 상기 하나 이상의 제 2 비-VCL NAL 유닛들을 코딩하기 위한 수단을 더 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  24. 제 20 항에 있어서,
    상기 제 1 계층의 상기 VCL NAL 유닛들은 상기 제 1 계층의 상기 제 1 픽처의 VCL NAL 유닛들이고, 상기 제 1 SEI 메시지는 상기 제 1 계층의 상기 제 1 픽처에 적용가능한 제 1 서픽스 SEI 메시지를 포함하고, 상기 제 1 계층의 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 연속적으로 코딩하기 위한 수단은, 상기 멀티-계층 비트스트림에서 상기 제 1 계층의 상기 VCL NAL 유닛들에 후속하는 상기 하나 이상의 제 1 비-VCL NAL 유닛들을 코딩하기 위한 수단을 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  25. 명령들을 저장한 비-일시적 컴퓨터-판독가능 매체로서,
    상기 명령들은, 실행될 경우, 하나 이상의 프로세서들로 하여금,
    제 1 계층 및 적어도 하나의 제 2 계층을 포함하는 비디오 데이터의 멀티-계층 비트스트림의 액세스 유닛을 획득하게 하되, 상기 액세스 유닛을 획득하기 위해, 상기 명령들은 상기 하나 이상의 프로세서들로 하여금, 상기 제 1 계층의 하나 이상의 비디오 코딩 계층 (video coding layer; VCL) 네트워크 추상화 계층 (network abstraction layer; NAL) 유닛들을 획득하게 하고, 상기 제 2 계층의 하나 이상의 VCL NAL 유닛들을 획득하게 하며, 상기 제 1 계층은 제 1 픽처를 포함하고, 상기 제 2 계층은 제 2 픽처를 포함하게 하고; 그리고
    상기 액세스 유닛을 코딩하게 하되, 상기 액세스 유닛을 코딩하기 위해, 상기 명령들은 상기 하나 이상의 프로세서들로 하여금, 상기 제 1 계층의 상기 VCL NAL 유닛들에 적용가능한 제 1 SEI 메시지를 포함하는 하나 이상의 제 1 비-VCL NAL 유닛들 및 상기 제 1 계층의 상기 VCL NAL 유닛들을 연속적으로 코딩하게 하고, 상기 하나 이상의 제 1 비-VCL NAL 유닛들 및 상기 제 1 계층의 상기 VCL NAL 유닛들을 연속적으로 코딩한 후에, 상기 제 2 계층의 상기 VCL NAL 유닛들에 적용가능한 제 2 SEI 메시지를 포함하는 하나 이상의 제 2 비-VCL NAL 유닛들 및 상기 제 2 계층의 상기 VCL NAL 유닛들을 연속적으로 코딩하게 하여, 상기 멀티-계층 비트스트림이, 상기 제 1 계층의 상기 VCL NAL 유닛들과 상기 하나 이상의 제 1 비-VCL NAL 유닛들 사이에 상기 제 1 계층 이외의 다른 계층의 코딩된 픽처들에 대한 다른 NAL 유닛들을 포함하지 않고, 상기 제 2 계층의 상기 VCL NAL 유닛들과 상기 하나 이상의 제 2 비-VCL NAL 유닛들 사이에 상기 제 2 계층 이외의 다른 계층의 코딩된 픽처들에 대한 다른 NAL 유닛들을 포함하지 않도록 하고,
    상기 명령들은 상기 하나 이상의 프로세서들로 하여금 또한, 상기 제 1 계층의 상기 제 1 픽처의 VCL NAL 유닛들 및 상기 제 1 픽처의 연관된 비-VCL NAL 유닛들을 포함하는 픽처 유닛에 기초하여, 각각의 SEI 메시지에 대한 최대 반복 파라미터를 결정하게 하는, 비-일시적 컴퓨터-판독가능 매체.
  26. 제 1 항에 있어서,
    상기 방법은 무선 통신 디바이스 상에서 실행가능하고,
    상기 디바이스는,
    상기 비디오 데이터의 액세스 유닛을 저장하도록 구성된 메모리;
    상기 메모리에 저장된 상기 비디오 데이터의 액세스 유닛을 프로세싱하기 위한 명령들을 실행하도록 구성된 프로세서; 및
    상기 비디오 데이터의 액세스 유닛을 수신하도록 구성된 수신기
    를 포함하는, 비디오 데이터를 코딩하는 방법.
  27. 제 26 항에 있어서,
    상기 무선 통신 디바이스는 셀룰러 전화이고, 상기 액세스 유닛은 상기 수신기에 의해 수신되고 셀룰러 통신 표준에 따라 변조되는, 비디오 데이터를 코딩하는 방법.
  28. 제 10 항에 있어서,
    상기 디바이스는 무선 통신 디바이스이고, 상기 비디오 데이터의 액세스 유닛을 수신하도록 구성된 수신기를 더 포함하는, 비디오 데이터를 코딩하기 위한 디바이스.
  29. 제 28 항에 있어서,
    상기 무선 통신 디바이스는 셀룰러 전화이고, 상기 비디오 데이터의 액세스 유닛은 상기 수신기에 의해 수신되고 셀룰러 통신 표준에 따라 변조되는, 비디오 데이터를 코딩하기 위한 디바이스.
KR1020167026709A 2014-03-24 2015-03-24 멀티­계층 코덱들을 위한 hevc sei 메시지들의 일반적인 이용 KR102372120B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461969797P 2014-03-24 2014-03-24
US61/969,797 2014-03-24
US14/665,999 US10645404B2 (en) 2014-03-24 2015-03-23 Generic use of HEVC SEI messages for multi-layer codecs
US14/665,999 2015-03-23
PCT/US2015/022303 WO2015148550A2 (en) 2014-03-24 2015-03-24 Generic use of hevc sei messages for multi-layer codecs

Publications (2)

Publication Number Publication Date
KR20160136327A KR20160136327A (ko) 2016-11-29
KR102372120B1 true KR102372120B1 (ko) 2022-03-07

Family

ID=54143325

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020167026708A KR102353191B1 (ko) 2014-03-24 2015-03-24 멀티­계층 코덱들을 위한 hevc 디코딩된 픽처 해시 sei 메시지들의 이용
KR1020167026707A KR102353659B1 (ko) 2014-03-24 2015-03-24 멀티­계층 코덱들을 위한 hevc sei 메시지들의 일반적인 이용
KR1020167026709A KR102372120B1 (ko) 2014-03-24 2015-03-24 멀티­계층 코덱들을 위한 hevc sei 메시지들의 일반적인 이용

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020167026708A KR102353191B1 (ko) 2014-03-24 2015-03-24 멀티­계층 코덱들을 위한 hevc 디코딩된 픽처 해시 sei 메시지들의 이용
KR1020167026707A KR102353659B1 (ko) 2014-03-24 2015-03-24 멀티­계층 코덱들을 위한 hevc sei 메시지들의 일반적인 이용

Country Status (8)

Country Link
US (3) US10178397B2 (ko)
EP (3) EP3123726B1 (ko)
JP (3) JP2017514361A (ko)
KR (3) KR102353191B1 (ko)
CN (3) CN106134200B (ko)
BR (3) BR112016022200B1 (ko)
MX (3) MX360864B (ko)
WO (3) WO2015148545A1 (ko)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170272778A9 (en) * 2014-01-06 2017-09-21 Samsung Electronics Co., Ltd. Image encoding and decoding methods for preserving film grain noise, and image encoding and decoding apparatuses for preserving film grain noise
US10178397B2 (en) 2014-03-24 2019-01-08 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs
US9800898B2 (en) * 2014-10-06 2017-10-24 Microsoft Technology Licensing, Llc Syntax structures indicating completion of coded regions
EP3226561A1 (en) * 2016-03-31 2017-10-04 Thomson Licensing Method and apparatus for coding a video into a bitstream carrying region-based post processing parameters into an sei nesting message
US10554981B2 (en) * 2016-05-10 2020-02-04 Qualcomm Incorporated Methods and systems for generating regional nesting messages for video pictures
US10582201B2 (en) * 2016-05-19 2020-03-03 Qualcomm Incorporated Most-interested region in an image
US10834153B2 (en) * 2016-08-24 2020-11-10 Qualcomm Incorporated System level signaling of SEI tracks for media data streaming
US10764575B2 (en) * 2017-03-03 2020-09-01 Qualcomm Incorporated Coding MCTS-nested SEI messages to exclude other SEI messages that are not MCTS-nested
GB2594615B (en) * 2017-03-20 2022-11-30 Canon Kk Method and apparatus for encoding and transmitting at least a spatial part of a video sequence
US11468781B2 (en) * 2017-08-11 2022-10-11 The Boeing Company Simulation of an asset including message playback using nested hash tables
CN107690069B (zh) * 2017-08-28 2021-01-01 中国科学院深圳先进技术研究院 一种数据驱动的级联视频编码方法
GB201817781D0 (en) * 2018-10-31 2018-12-19 V Nova Int Ltd Mehods, apparatuses, computer programs and computer-readable media
SG11202106524PA (en) 2018-12-20 2021-07-29 Ericsson Telefon Ab L M Normative indication of recovery point
US11889118B2 (en) * 2019-02-24 2024-01-30 Sharp Kabushiki Kaisha Systems and methods for signaling types of pictures and associated information in video coding
BR112022000158A2 (pt) * 2019-07-08 2022-02-22 Huawei Tech Co Ltd Restrições de imagem de unidade de nal mista em codificação de vídeo
CN110446047A (zh) * 2019-08-16 2019-11-12 苏州浪潮智能科技有限公司 视频码流的解码方法及装置
WO2021032747A1 (en) * 2019-08-19 2021-02-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Usage of access unit delimiters and adaptation parameter sets
AU2020352900A1 (en) * 2019-09-24 2022-04-14 Huawei Technologies Co., Ltd. Scalable Nesting SEI Messages For OLSs
AU2020354368A1 (en) 2019-09-24 2022-04-14 Huawei Technologies Co., Ltd. Temporal identifier constraints for SEI messages
JP7323099B2 (ja) 2019-09-24 2023-08-08 ホアウェイ・テクノロジーズ・カンパニー・リミテッド マルチレイヤビデオビットストリームのためのdpbパラメータのシグナリング
KR20220065867A (ko) * 2019-09-24 2022-05-20 후아웨이 테크놀러지 컴퍼니 리미티드 레이어에 대한 hrd 파라미터
KR20220063278A (ko) 2019-09-24 2022-05-17 후아웨이 테크놀러지 컴퍼니 리미티드 모든 계층에 대한 스케일러블 네스팅 sei 메시지
MX2022003557A (es) * 2019-09-24 2022-06-14 Huawei Tech Co Ltd Ols para escalabilidad multivista.
US20210195259A1 (en) * 2019-12-23 2021-06-24 Comcast Cable Communications, Llc Method and apparatus for managing redundant segmented streams
WO2021133721A1 (en) * 2019-12-26 2021-07-01 Bytedance Inc. Techniques for implementing a decoding order within a coded picture
WO2021134015A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Profile, tier and layer indication in video coding
EP4062634A4 (en) 2019-12-26 2022-12-28 ByteDance Inc. LIMITATIONS ON SIGNALING HYPOTHETICAL REFERENCE DECODER PARAMETERS IN VIDEO BITSTREAMS
WO2021128295A1 (en) * 2019-12-27 2021-07-01 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for inter prediction
CN114902567A (zh) 2019-12-27 2022-08-12 字节跳动有限公司 视频编解码中的子图像信令
CN113055668B (zh) * 2019-12-27 2023-06-02 腾讯美国有限责任公司 从已编码视频比特流中提取子比特流的方法和设备
EP4074052A4 (en) 2020-01-09 2023-05-31 ByteDance Inc. PROCESSING OF FILLER DATA UNITS IN VIDEO STREAMS
DK202070130A1 (en) 2020-02-28 2021-12-21 Vkr Holding As A roof window with an opening restrictor for limiting the opening of a roof window
TWI718026B (zh) * 2020-03-13 2021-02-01 松翰科技股份有限公司 圖像指標
WO2021201541A1 (ko) * 2020-03-30 2021-10-07 엘지전자 주식회사 Dpb 파라미터의 개수 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체
EP4131965A4 (en) 2020-03-30 2024-04-24 LG Electronics, Inc. VIDEO ENCODING/DECODING METHOD AND APPARATUS FOR SIGNALING DPB PARAMETER, AND COMPUTER READABLE RECORDING MEDIUM STORING BIT STREAM
JP7488360B2 (ja) * 2020-04-02 2024-05-21 エルジー エレクトロニクス インコーポレイティド Dpb関連情報及びptl関連情報をシグナリングする画像符号化/復号化方法及び装置、並びにビットストリームを保存したコンピュータ可読記録媒体
US11706428B2 (en) * 2020-04-06 2023-07-18 Tencent America LLC Method for signaling picture header in coded video stream
CR20230153A (es) 2020-05-22 2023-05-16 Ge Video Compression Llc Codificador de video, decodificador de video, métodos para codificar y decodificar y flujo de datos de video para realizar conceptos avanzados de codificación de video (divisional exp. n°2022-0589)
AU2021276676B2 (en) * 2020-05-22 2024-08-22 Bytedance Inc. Scalable nested SEI message handling in video sub-bitstream extraction process
EP4144093A4 (en) 2020-05-22 2023-08-23 ByteDance Inc. SIGNALING OF IMAGE INFORMATION IN ACCESS UNITS
CN115715466A (zh) * 2020-05-22 2023-02-24 抖音视界有限公司 子比特流提取处理中的填充符有效载荷
JP7549045B2 (ja) 2020-06-09 2024-09-10 バイトダンス インコーポレイテッド マルチレイヤ映像ビットストリームのサブビットストリーム抽出
KR20230019850A (ko) 2020-06-09 2023-02-09 바이트댄스 아이엔씨 서브픽처 레벨 및 버퍼링 정보의 시그널링
US11321878B2 (en) 2020-06-26 2022-05-03 Sony Group Corporation Decoded tile hash SEI message for V3C/V-PCC
US11580671B2 (en) * 2020-08-17 2023-02-14 Tencent America LLC Hash-based attribute prediction for point cloud coding
US20220086387A1 (en) 2020-09-17 2022-03-17 Lemon Inc. Subpicture entity groups in video coding
CN116530083A (zh) * 2020-09-25 2023-08-01 抖音视界有限公司 视频比特流中的嵌套的和非嵌套的sei消息
GB2599171A (en) * 2020-09-29 2022-03-30 Canon Kk Method and apparatus for encapsulating video data into a file
US12041386B2 (en) 2020-09-29 2024-07-16 Lemon Inc. Dependent random access point indication in video bitstreams
AU2022257959B2 (en) * 2021-04-12 2024-06-20 Telefonaktiebolaget Lm Ericsson (Publ) Message referencing
US12113974B2 (en) * 2021-09-30 2024-10-08 Nokia Technologies Oy High-level syntax for signaling neural networks within a media bitstream
WO2024026032A1 (en) * 2022-07-27 2024-02-01 Bytedance Inc. Enhanced signalling of sei processing order in video bitstreams

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015137237A1 (ja) * 2014-03-14 2015-09-17 シャープ株式会社 画像復号装置

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7586924B2 (en) * 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
EP2184919A3 (en) * 2004-04-28 2010-07-28 Panasonic Corporation Stream generation apparatus, stream generation method, coding apparatus, coding method, recording medium and program thereof
US20070014346A1 (en) 2005-07-13 2007-01-18 Nokia Corporation Coding dependency indication in scalable video coding
US20070189732A1 (en) * 2006-02-10 2007-08-16 Sai Pothana System and method for reconstructing MPEG-2 start codes from AVC data
US8699583B2 (en) 2006-07-11 2014-04-15 Nokia Corporation Scalable video coding and decoding
JP2010507346A (ja) 2006-10-16 2010-03-04 ヴィドヨ,インコーポレーテッド スケーラブルビデオ符号化においてシグナリング及び時間レベルスイッチングを実施するためのシステム及び方法
US20100142613A1 (en) * 2007-04-18 2010-06-10 Lihua Zhu Method for encoding video data in a scalable manner
US20080291999A1 (en) 2007-05-24 2008-11-27 Julien Lerouge Method and apparatus for video frame marking
CN101690229A (zh) 2007-06-26 2010-03-31 诺基亚公司 用于指示时间层切换点的系统和方法
EP2257067A1 (en) * 2009-05-29 2010-12-01 Thomson Licensing Method for inserting watermark assistance data in a bitstream, method of watermarking said bitstream, device implementing the method of watermarking and bitstream comprising the watermark assistance data
JP2011066844A (ja) * 2009-09-18 2011-03-31 Toshiba Corp 並列復号装置及びプログラム並びに符号化データの並列復号方法
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
JP2012222710A (ja) 2011-04-13 2012-11-12 Hitachi Consumer Electronics Co Ltd 符号化装置および復号装置
US9247249B2 (en) * 2011-04-20 2016-01-26 Qualcomm Incorporated Motion vector prediction in video coding
US10237565B2 (en) 2011-08-01 2019-03-19 Qualcomm Incorporated Coding parameter sets for various dimensions in video coding
US9124895B2 (en) 2011-11-04 2015-09-01 Qualcomm Incorporated Video coding with network abstraction layer units that include multiple encoded picture partitions
PL2822276T3 (pl) * 2012-02-29 2019-04-30 Lg Electronics Inc Sposób predykcji międzywarstwowej i stosujące go urządzenie
DE102012204103A1 (de) 2012-03-15 2013-09-19 Siemens Aktiengesellschaft Hitzeschildelement für einen Verdichterluftbypass um die Brennkammer
US9351016B2 (en) * 2012-04-13 2016-05-24 Sharp Kabushiki Kaisha Devices for identifying a leading picture
CN104396244B (zh) * 2012-04-16 2019-08-09 诺基亚技术有限公司 用于视频编码和解码的装置、方法和计算机可读存储介质
US20160165230A9 (en) 2012-04-16 2016-06-09 Texas Instruments Incorporated Color Component Checksum Computation in Video Coding
US20130278834A1 (en) * 2012-04-20 2013-10-24 Samsung Electronics Co., Ltd. Display power reduction using extended nal unit header information
KR101626522B1 (ko) * 2012-06-12 2016-06-01 엘지전자 주식회사 영상 디코딩 방법 및 이를 이용하는 장치
WO2014003379A1 (ko) * 2012-06-24 2014-01-03 엘지전자 주식회사 영상 디코딩 방법 및 이를 이용하는 장치
AU2013285333A1 (en) * 2012-07-02 2015-02-05 Nokia Technologies Oy Method and apparatus for video coding
EP2871567A4 (en) 2012-07-06 2016-01-06 Samsung Electronics Co Ltd METHOD AND APPARATUS FOR ENCODING MULTILAYER VIDEO, AND METHOD AND APPARATUS FOR DECODING MULTILAYER VIDEO
EP4221217B1 (en) * 2012-09-26 2024-09-18 Sun Patent Trust Image decoding method and image decoding apparatus
KR20140043239A (ko) * 2012-09-27 2014-04-08 한국전자통신연구원 계층간 전환을 이용한 영상 부호화/복호화 방법 및 그 장치
US9565452B2 (en) * 2012-09-28 2017-02-07 Qualcomm Incorporated Error resilient decoding unit association
CN104904202A (zh) * 2012-09-28 2015-09-09 三星电子株式会社 用于使用参考画面信息进行并行视频编码的方法和设备以及用于使用参考画面信息进行并行视频解码的方法和设备
US20140092992A1 (en) 2012-09-30 2014-04-03 Microsoft Corporation Supplemental enhancement information including confidence level and mixed content information
CN107770546B (zh) 2012-12-10 2020-04-10 Lg 电子株式会社 解码图像的方法和使用其的装置
US20140177706A1 (en) 2012-12-21 2014-06-26 Samsung Electronics Co., Ltd Method and system for providing super-resolution of quantized images and video
JP6209772B2 (ja) * 2013-01-15 2017-10-11 華為技術有限公司Huawei Technologies Co.,Ltd. シグナリングを用いたビデオデコーダ
US9807421B2 (en) * 2013-04-05 2017-10-31 Sharp Kabushiki Kaisha NAL unit type restrictions
US9591321B2 (en) 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
US9609329B2 (en) * 2013-06-25 2017-03-28 Samsung Electronics Co., Ltd Dynamic voltage/frequency scaling for video processing using embedded complexity metrics
WO2015009693A1 (en) * 2013-07-15 2015-01-22 Sony Corporation Layer based hrd buffer management for scalable hevc
US9648333B2 (en) * 2013-10-11 2017-05-09 Vid Scale, Inc. High level syntax for HEVC extensions
WO2015056158A1 (en) 2013-10-14 2015-04-23 Nokia Technologies Oy Multi-layer hypothetical reference decoder
WO2015076616A1 (ko) * 2013-11-21 2015-05-28 엘지전자 주식회사 신호 송수신 장치 및 신호 송수신 방법
CN104935944B (zh) 2014-03-18 2018-03-13 华为技术有限公司 一种视频数据编码、解码的方法和装置
US10178397B2 (en) 2014-03-24 2019-01-08 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015137237A1 (ja) * 2014-03-14 2015-09-17 シャープ株式会社 画像復号装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Y-K. Wang, et al. .MV-HEVC/SHVC HLS: SEI message cleanups. JCT-VC of ITU-T and ISO/IEC. JCTVC-Q0183 Ver.1, Mar. 25, 2014, pp.1-6

Also Published As

Publication number Publication date
EP3123724A1 (en) 2017-02-01
MX2016011208A (es) 2016-12-16
EP3123726A2 (en) 2017-02-01
KR20160136325A (ko) 2016-11-29
WO2015148550A2 (en) 2015-10-01
BR112016022200A8 (pt) 2021-07-13
JP2017510198A (ja) 2017-04-06
BR112016022080B1 (pt) 2024-03-12
CN106134200B (zh) 2019-08-02
JP2017514361A (ja) 2017-06-01
US10645404B2 (en) 2020-05-05
MX2016011603A (es) 2016-12-12
US10178397B2 (en) 2019-01-08
CN106170982A (zh) 2016-11-30
WO2015148545A1 (en) 2015-10-01
JP6549145B2 (ja) 2019-07-24
JP2017513372A (ja) 2017-05-25
MX367235B (es) 2019-08-09
KR20160136327A (ko) 2016-11-29
EP3123725A1 (en) 2017-02-01
BR112016022079A2 (pt) 2017-08-15
BR112016022079A8 (pt) 2021-07-13
EP3123724B1 (en) 2020-02-19
MX360864B (es) 2018-11-09
MX2016011212A (es) 2016-11-30
KR102353191B1 (ko) 2022-01-18
WO2015148535A1 (en) 2015-10-01
WO2015148550A3 (en) 2016-03-17
JP6608386B2 (ja) 2019-11-20
CN106170982B (zh) 2019-07-26
MX359788B (es) 2018-10-08
KR102353659B1 (ko) 2022-01-19
BR112016022080A2 (pt) 2017-08-15
CN106105225A (zh) 2016-11-09
CN106105225B (zh) 2019-08-27
BR112016022079B1 (pt) 2024-01-23
CN106134200A (zh) 2016-11-16
US20150271529A1 (en) 2015-09-24
BR112016022080A8 (pt) 2021-07-13
BR112016022200B1 (pt) 2023-12-12
US20150271498A1 (en) 2015-09-24
US9894370B2 (en) 2018-02-13
EP3123726B1 (en) 2023-07-12
US20150271528A1 (en) 2015-09-24
BR112016022200A2 (pt) 2017-08-15
KR20160136326A (ko) 2016-11-29

Similar Documents

Publication Publication Date Title
KR102372120B1 (ko) 멀티­계층 코덱들을 위한 hevc sei 메시지들의 일반적인 이용
CA2952826C (en) Multi-layer video coding
KR102388868B1 (ko) 멀티 계층 비디오 코덱들에서의 복구 포인트 sei 메시지

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant