KR20140142255A - 3차원 비디오 코딩을 위한 네트워크 추상화 계층 (nal) 단위 헤더 설계 - Google Patents

3차원 비디오 코딩을 위한 네트워크 추상화 계층 (nal) 단위 헤더 설계 Download PDF

Info

Publication number
KR20140142255A
KR20140142255A KR1020147026905A KR20147026905A KR20140142255A KR 20140142255 A KR20140142255 A KR 20140142255A KR 1020147026905 A KR1020147026905 A KR 1020147026905A KR 20147026905 A KR20147026905 A KR 20147026905A KR 20140142255 A KR20140142255 A KR 20140142255A
Authority
KR
South Korea
Prior art keywords
nal unit
compliant
mvc
avc
header extension
Prior art date
Application number
KR1020147026905A
Other languages
English (en)
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 KR20140142255A publication Critical patent/KR20140142255A/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/188Methods 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 video data packet, e.g. a network abstraction layer [NAL] unit
    • 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

Landscapes

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

Abstract

비디오 인코더는 적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 네트워크 추상화 계층 (NAL) 단위를 생성한다. 제 1 신택스 엘리먼트는 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타낸다. 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들 특정 NAL 단위 유형에 속하는 NAL 단위들 내에 캡슐화된다. 제 2 신택스 엘리먼트는 NAL 단위의 NAL 단위 헤더가 고급 비디오 코딩 (AVC)-호환 3차원 비디오 (3DV) 헤더 확장을 포함하는지 또는 멀티뷰 비디오 코딩 (MVC)-호환 3DV 헤더 확장을 포함하는지를 나타낸다. 비디오 인코더는 NAL 단위를 포함하는 비트스트림을 출력한다. 비디오 디코더는 NAL 단위를 수신하고, NAL 단위의 NAL 단위 헤더가 상기 AVC-호환 3DV 헤더 확장 또는 MVC-호환 3DV 헤더 확장을 포함한다는 것을 제 2 신택스 엘리먼트가 나타내는지의 여부를 결정한다.

Description

3차원 비디오 코딩을 위한 네트워크 추상화 계층 (NAL) 단위 헤더 설계{NETWORK ABSTRACTION LAYER (NAL) UNIT HEADER DESIGN FOR THREE-DIMENSIONAL VIDEO CODING}
본 출원은 2012년 2월 28일자로 출원된 미국 특허 가출원 제61/604,436호를 우선권 주장하며, 그 전체 내용은 참조로 본원에 통합된다.
기술 분야
본 개시물은 비디오 코딩 (즉, 비디오 데이터의 인코딩 및/또는 디코딩) 에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인휴대 정보단말들 (PDA들), 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, e-북 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 이른바 "스마트 폰들", 비디오 원격회의 디바이스들, 비디오 스트리밍 디바이스들 등을 포함하는 넓은 범위의 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263 또는 ITU-T H.264/MPEG-4, 파트 10, 고급 비디오 코딩 (Advanced Video Coding; AVC) 에 의해 규정된 표준들, 현재 개발중인 고 효율 비디오 코딩 (High Efficiency Video Coding, HEVC) 표준, 및 이러한 표준들의 확장본들에 기재된 것들과 같은 비디오 압축 기법들을 구현한다. 비디오 디바이스들은 그런 비디오 압축 기법들을 구현하는 것에 의해 디지털 비디오 정보를 더 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 압축 기법들은 공간적 (화상 내) 예측 및/또는 시간적 (화상 간) 예측을 수행하여 비디오 시퀀스들에 내재하는 리던던시를 감소시키거나 제거한다. 블록 기반 비디오 코딩의 경우, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 부분) 는 비디오 블록들로 구획될 수도 있다. 화상의 인트라 코딩식 (intra-coded; I) 슬라이스에서의 비디오 블록들은 동일한 화상의 이웃 블록들에서의 참조 샘플들에 관한 공간적 예측을 이용하여 인코딩된다. 화상의 인터 코딩식 (inter-coded; P 또는 B) 슬라이스에서의 비디오 블록들은 동일한 화상의 이웃 블록들에서의 참조 샘플들에 관한 공간적 예측 또는 다른 참조 화상들에서의 참조 샘플들에 관한 시간적 예측을 이용할 수도 있다. 화상들은 프레임들이라고 지칭될 수도 있고, 참조 화상들은 참조 프레임들이라고 말해질 수도 있다.
공간적 또는 시간적 예측은 코딩될 블록에 대한 예측 블록으로 나타나게 된다. 잔차 데이터는 코딩될 원본 블록과 예측 블록 사이의 화소 차이들을 나타낸다. 인터 코딩식 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터에 따라 인코딩되고, 잔차 데이터는 코딩된 블록 및 예측 블록 사이의 차이를 나타낸다. 인트라 코딩식 블록은 인트라 코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가 압축을 위해, 잔차 데이터는 화소 도메인으로부터 변환 도메인으로 변환될 수도 있으며, 결과적으로 잔차 계수들이 생겨나며, 그 계수들은 그 다음에 양자화될 수도 있다. 처음에는 2차원 어레이로 배열된 양자화된 계수들은, 계수들의 1차원 벡터를 생성하기 위하여 스캐닝될 수도 있고, 엔트로피 코딩이 더 많은 압축을 달성하기 위해 적용될 수도 있다.
네트워크 추상화 계층 (network abstraction layer; NAL) 단위가 고급 비디오 코딩 (AVC)-호환 3차원 비디오 (3-dimensional video; 3DV) 헤더 확장을 포함할 수도 있거나 또는 멀티뷰 비디오 코딩 (Multiview Video Coding; MVC)-호환 3DV 헤더 확장을 포함할 수도 있다. NAL 단위 헤더에서의 신택스 엘리먼트는 NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 3DV 헤더 확장을 포함하는지를 나타낸다. 비디오 디코더는 NAL 단위를 수신하고, 신택스 엘리먼트에 적어도 부분적으로 기초하여, NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 3DV 헤더 확장을 포함하는지를 결정한다. 비디오 디코더는 AVC-호환 3DV 헤더 확장 또는 MVC-호환 3DV 신택스 엘리먼트에 부분적으로 기초하여 NAL 단위의 비디오 데이터를 복원할 수도 있다.
하나의 양태에서, 본 개시물은 적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 NAL 단위를 생성하는 단계를 포함하는 비디오 데이터를 인코딩하는 방법을 설명한다. 제 1 신택스 엘리먼트는 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타낸다. 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 특정 NAL 단위 유형에 속하는 NAL 단위 내에 캡슐화된다. 제 2 신택스 엘리먼트는 NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 3DV 헤더 확장을 포함하는지를 나타낸다. AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다. MVC-호환 3DV 헤더 확장은 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고, MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다.
다른 양태에서, 본 개시물은 적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 NAL 단위를 수신하는 단계를 포함하는 비디오 데이터를 디코딩하는 방법을 설명한다. 제 1 신택스 엘리먼트는 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타낸다. 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 특정 NAL 단위 유형에 속하는 NAL 단위 내에 캡슐화된다. 그 방법은 또한, 제 2 신택스 엘리먼트에 적어도 부분적으로 기초하여, NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 3DV 헤더 확장을 포함하는지를 결정하는 단계를 포함한다. AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다. MVC-호환 3DV 헤더 확장은 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다.
다른 양태에서, 본 개시물은 비디오 데이터를 인코딩하는 비디오 인코딩 디바이스를 설명한다. 그 비디오 인코딩 디바이스는 적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 NAL 단위를 생성하도록 구성된 하나 이상의 프로세서들을 포함한다. 제 1 신택스 엘리먼트는 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타낸다. 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 특정 NAL 단위 유형에 속하는 NAL 단위 내에 캡슐화된다. 제 2 신택스 엘리먼트는 NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 3DV 헤더 확장을 포함하는지를 나타낸다. AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다. MVC-호환 3DV 헤더 확장은 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다.
다른 양태에서, 본 개시물은 비디오 데이터를 디코딩하는 비디오 디코딩 디바이스를 설명한다. 그 비디오 디코딩 디바이스는 적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 NAL 단위를 수신하도록 구성된 하나 이상의 프로세서들을 포함한다. 제 1 신택스 엘리먼트는 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타낸다. 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 특정 NAL 단위 유형에 속하는 NAL 단위 내에 캡슐화된다. 하나 이상의 프로세서들은 또한, 제 2 신택스 엘리먼트에 적어도 부분적으로 기초하여, NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 헤더 확장을 포함하는지를 결정하도록 구성된다. AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다. MVC-호환 3DV 헤더 확장은 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다.
다른 양태에서, 본 개시물은 비디오 데이터를 인코딩하는 비디오 인코딩 디바이스를 설명한다. 그 비디오 인코딩 디바이스는 적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 NAL 단위를 생성하는 수단을 포함한다. 제 1 신택스 엘리먼트는 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타낸다. 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 특정 NAL 단위 유형에 속하는 NAL 단위 내에 캡슐화된다. 제 2 신택스 엘리먼트는 NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 헤더 확장을 포함하는지를 나타낸다. AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다. MVC-호환 3DV 헤더 확장은 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다.
다른 양태에서, 본 개시물은 비디오 데이터를 디코딩하는 비디오 디코딩 디바이스를 설명한다. 그 비디오 디코딩 디바이스는 적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 NAL 단위를 수신하는 수단을 포함한다. 제 1 신택스 엘리먼트는 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타낸다. 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 특정 NAL 단위 유형에 속하는 NAL 단위 내에 캡슐화된다. 그 비디오 디코딩 디바이스는 또한, 제 2 신택스 엘리먼트에 적어도 부분적으로 기초하여, NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 헤더 확장을 포함하는지를 결정하는 수단을 포함한다. AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다. MVC-호환 3DV 헤더 확장은 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다.
다른 양태에서, 본 개시물은, 비디오 인코딩 디바이스의 하나 이상의 프로세서들에 의해 실행되는 경우, 적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 NAL 단위를 수신하도록 비디오 인코딩 디바이스를 구성하는 명령들을 저장하는 컴퓨터 판독가능 저장 매체를 설명한다. 제 1 신택스 엘리먼트는 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타낸다. 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 특정 NAL 단위 유형에 속하는 NAL 단위 내에 캡슐화된다. 하나 이상의 프로세서들은 또한, 제 2 신택스 엘리먼트에 적어도 부분적으로 기초하여, NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 헤더 확장을 포함하는지를 결정하도록 구성된다. AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다. MVC-호환 3DV 헤더 확장은 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다.
다른 양태에서, 본 개시물은, 비디오 디코딩 디바이스의 하나 이상의 프로세서들에 의해 실행되는 경우, 적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 NAL 단위를 수신하도록 비디오 디코딩 디바이스를 구성하는 명령들을 저장하는 컴퓨터 판독가능 저장 매체를 설명한다. 제 1 신택스 엘리먼트는 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타낸다. 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 특정 NAL 단위 유형에 속하는 NAL 단위 내에 캡슐화된다. 그 비디오 디코딩 디바이스는 또한, 제 2 신택스 엘리먼트에 적어도 부분적으로 기초하여, NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 헤더 확장을 포함하는지를 결정하는 수단을 포함한다. AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다. MVC-호환 3DV 헤더 확장은 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다.
본 개시물의 하나 이상의 예들의 상세는 첨부 도면들 및 다음의 설명에서 언급된다. 다른 특징들, 목적들, 및 장점들은 상세한 설명 및 도면들로부터, 그리고 청구항들로부터 명확하게 될 것이다.
도 1은 본 개시물에서 설명되는 기법들을 활용할 수도 있는 일 예의 비디오 코딩 시스템을 도시하는 블록도이다.
도 2는 본 개시물에서 설명되는 기법들을 구현할 수도 있는 일 예의 비디오 인코더를 도시하는 블록도이다.
도 3은 본 개시물에서 설명되는 기법들을 구현할 수도 있는 일 예의 비디오 디코더를 도시하는 블록도이다.
도 4는 본 개시물의 하나 이상의 기법들에 따른, 비디오 데이터를 인코딩하는 프로세스의 부분으로서 비디오 인코더에 의해 수행되는 일 예의 동작을 도시하는 흐름도이다.
도 5는 본 개시물의 하나 이상의 기법들에 따른, 비디오 데이터를 디코딩하는 프로세스의 부분으로서 비디오 디코더에 의해 수행되는 일 예의 동작을 도시하는 흐름도이다.
도 6은 본 개시물의 하나 이상의 기법들에 따른, 인코딩된 비디오 데이터를 디코딩하는 프로세스의 부분으로서 비디오 디코더에 의해 수행되는 다른 예의 동작을 도시하는 흐름도이다.
도 7은 일 예의 멀티뷰 비디오 코딩 (MVC)-호환 3차원 비디오 (3DV) 디코딩 순서를 도시하는 개념도이다.
도 8은 일 예의 MVC 시간적 및 인터 뷰 (inter-view) 예측 구조를 도시하는 개념도이다.
비트스트림이 비디오 데이터의 인코딩된 표현을 포함할 수도 있다. 비디오 데이터의 인코딩된 표현은 일련의 네트워크 추상화 계층 (NAL) 단위들을 포함할 수도 있다. 멀티뷰 비디오 코딩 (MVC)-호환 3차원 비디오 (3DV) 및 고급 비디오 코딩 (AVC)-호환 3차원 비디오 (3DV) 는 H.264/AVC 비디오 코딩 표준에 대한 2 개의 확장본들이다. MVC-호환 3DV 및 AVC-호환 3DV 확장본들에 대한 NAL 단위들의 NAL 단위 헤더들은 H.264/AVC 표준에서 정의된 신택스 엘리먼트들의 세트들 외에도 신택스 엘리먼트들의 상이한 세트들을 포함할 수도 있다. MVC-호환 3DV 및 AVC-호환 3DV 확장본들에 대한 새로운 NAL 단위 유형들의 사용은 이들 부가적인 신택스 엘리먼트들을 수용하는 방도로서 제안되었다. 그러나, H.264/AVC 표준의 이용가능한 NAL 단위 유형들의 수는 제한되고, 나머지 이용가능한 NAL 단위 유형들을 H.264/AVC 표준의 추가의 확장본들을 위해 보존하는 것이 바람직할 수도 있다.
본 개시물의 기법들은 이 문제를 해결한다. 본 개시물의 기법들에 따라, 비디오 인코더는 적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 NAL 단위를 생성할 수도 있다. 제 1 신택스 엘리먼트는 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타낸다. 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 특정 NAL 단위 유형에 속하는 NAL 단위 내에 캡슐화된다. 제 2 신택스 엘리먼트는 NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 헤더 확장을 포함하는지를 나타낸다. AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다. MVC-호환 3DV 헤더 확장은 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다. 비디오 인코더는 NAL 단위를 포함하는 비트스트림을 출력한다. 비디오 디코더는 NAL 단위를 수신하고, 제 2 신택스 엘리먼트에 적어도 부분적으로 기초하여, NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 3DV 헤더 확장을 포함하는지를 결정할 수도 있다. 비디오 디코더는 AVC-호환 3DV 헤더 확장 또는 MVC-호환 3DV 헤더 확장에 부분적으로 기초하여 비디오 데이터를 복원할 수도 있다. 이런 식으로, NAL 단위 헤더가 AVC-호환 3DV 헤더 확장들을 포함하는 NAL 단위들 및 NAL 단위 헤더들이 MVC-호환 3DV 헤더 확장들을 포함하는 NAL 단위들에 대해, 별도의 NAL 단위 유형들은 사용될 필요가 없다.
첨부된 도면들이 예들을 도시한다. 첨부된 도면들에서 참조 번호들에 의해 나타낸 엘리먼트들은 다음의 설명에서 유사한 참조 번호들에 의해 나타낸 엘리먼트들에 대응한다. 본 개시물에서, 엘리먼트들이 서수 단어들 (예컨대, "제 1", "제 2", "제 3" 등) 로 시작하는 이름들을 갖는 것은 반드시 그 엘리먼트들이 특정 순서를 가진다는 것을 의미하지는 않는다. 오히려, 이러한 서수 단어들은 단지 동일한 또는 유사한 유형의 상이한 엘리먼트들을 언급하기 위해 사용될 수도 있다.
도 1은 본 개시물의 기법들을 활용할 수도 있는 일 예의 비디오 코딩 시스템 (10) 을 도시하는 블록도이다. 본원에서 사용되는 바와 같이, 용어 "비디오 코더"는 비디오 인코더들 및 비디오 디코더들 양쪽 모두를 일반적으로 지칭한다. 본 개시물에서, 용어들 "비디오 코딩" 또는 "코딩"은 비디오 인코딩 또는 비디오 디코딩을 일반적으로 지칭할 수도 있다.
도 1에 도시된 바와 같이, 비디오 코딩 시스템 (10) 은 소스 디바이스 (12) 와 목적지 디바이스 (14) 를 구비한다. 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 생성한다. 따라서, 소스 디바이스 (12) 는 비디오 인코딩 디바이스 또는 비디오 인코딩 장치라고 지칭될 수도 있다. 목적지 디바이스 (14) 는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수도 있다. 따라서, 목적지 디바이스 (14) 는 비디오 디코딩 디바이스 또는 비디오 디코딩 장치라고 지칭될 수도 있다. 소스 디바이스 (12) 와 목적지 디바이스 (14) 는 비디오 코딩 디바이스들 또는 비디오 코딩 장치들의 예들일 수도 있다.
소스 디바이스 (12) 와 목적지 디바이스 (14) 는 데스크톱 컴퓨터들, 모바일 컴퓨팅 디바이스들, 노트북 (예컨대, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 이른바 "스마트" 폰들과 같은 전화기 핸드셋들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 차량내 컴퓨터 등을 포함한 다양한 범위의 디바이스들을 포함할 수도 있다.
목적지 디바이스 (14) 는 소스 디바이스 (12) 로부터 채널 (16) 을 통해 인코딩된 비디오 데이터를 수신할 수도 있다. 채널 (16) 은 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 인코딩된 비디오 데이터를 이동시킬 수 있는 하나 이상의 매체들 또는 디바이스들을 포함할 수도 있다. 하나의 예에서, 채널 (16) 은 소스 디바이스 (12) 가 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 직접 실시간으로 송신하는 것을 가능하게 하는 하나 이상의 통신 매체들을 포함할 수도 있다. 이 예에서, 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 통신 표준, 이를테면 무선 통신 프로토콜에 따라 변조할 수도 있고, 변조된 비디오 데이터를 목적지 디바이스 (14) 로 송신할 수도 있다. 하나 이상의 통신 매체들은 무선 및/또는 유선 통신 매체들, 이를테면 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들을 포함할 수도 있다. 하나 이상의 통신 매체들은 패킷 기반 네트워크, 이를테면 로컬 영역 네트워크, 광역 네트워크, 또는 글로벌 네트워크 (예컨대, 인터넷) 의 부분을 형성할 수도 있다. 하나 이상의 통신 매체들은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는 다른 장비를 포함할 수도 있다.
다른 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 저장하는 저장 매체를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 디스크 액세스 또는 카드 액세스를 통해 저장 매체에 액세스할 수도 있다. 저장 매체는 블루 레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 다른 적합한 디지털 저장 매체들과 같은 다양한 국소적으로 액세스되는 데이터 저장 매체들을 포함할 수도 있다.
추가의 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 저장하는 파일 서버 또는 다른 중간 저장 디바이스를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 파일 서버 또는 다른 중간 저장 디바이스에 저장된 인코딩된 비디오 데이터를 스트리밍 또는 다운로드를 통해 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 에 송신할 수 있는 유형의 서버일 수도 있다. 예의 파일 서버들은 웹 서버들 (예컨대, 웹사이트용), 파일 전송 프로토콜 (FTP) 서버들, 네트워크 부속 스토리지 (network attached storage; NAS) 디바이스들, 및 로컬 디스크 드라이브들을 포함한다.
목적지 디바이스 (14) 는 표준 데이터 접속, 이를테면 인터넷 접속을 통해, 인코딩된 비디오 데이터에 액세스할 수도 있다. 예의 유형들의 데이터 접속들은 무선 채널 (예컨대, Wi-Fi 접속들), 유선 접속들 (예컨대, DSL, 케이블 모뎀 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하기에 적합한 양쪽 모두의 조합을 포함할 수도 있다. 파일 서버로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 양쪽 모두의 조합일 수도 있다.
본 개시물의 기법들은 무선 애플리케이션들 또는 설정 (setting) 들로 제한되지 않는다. 그 기법들은, 다양한 멀티미디어 애플리케이션들, 이를테면 OTA (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예컨대, 인터넷을 통한 스트리밍 비디오 송신들 중 임의의 것의 지원 하의 비디오 코딩, 데이터 저장 매체 상의 저장을 위한 비디오 데이터의 인코딩, 데이터 저장 매체 상에 저장된 비디오 데이터의 디코딩, 또는 다른 애플리케이션들에 적용될 수도 있다. 일부 예들에서, 비디오 코딩 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 화상 통화와 같은 애플리케이션들을 지원하기 위해 단방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 구비한다. 일부 예들에서, 출력 인터페이스 (22) 는 변조기/복조기 (모뎀) 및/또는 송신기를 구비할 수도 있다. 비디오 소스 (18) 는 비디오 캡처 디바이스, 예컨대, 비디오 카메라, 이전에 캡처된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하는 비디오 피드 인터페이스, 및/또는 비디오 데이터를 생성하는 컴퓨터 그래픽 시스템, 또는 비디오 데이터의 이러한 소스들의 조합을 포함할 수도 있다.
비디오 인코더 (20) 는 비디오 소스 (18) 로부터의 비디오 데이터를 인코딩할 수도 있다. 일부 예들에서, 소스 디바이스 (12) 는 출력 인터페이스 (22) 를 통해 목적지 디바이스 (14) 로 인코딩된 비디오 데이터를 직접 송신할 수도 있다. 다른 예들에서, 인코딩된 비디오 데이터는 또한 디코딩 및/또는 플레이백을 위한 목적지 디바이스 (14) 에 의한 나중의 액세스를 위해 저장 매체 또는 파일 서버 상에 저장될 수도 있다.
도 1의 예에서, 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 구비한다. 일부 예들에서, 입력 인터페이스 (28) 는 수신기 및/또는 모뎀을 구비한다. 입력 인터페이스 (28) 는 채널 (16) 을 통해 인코딩된 비디오 데이터를 수신할 수도 있다. 디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합되거나 또는 그것 외부에 있을 수도 있다. 대체로, 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 디스플레이한다. 디스플레이 디바이스 (32) 는 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 유형의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들을 포함할 수도 있다.
일부 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는, 이를테면 ISO/IEC MPEG-4 비주얼 그리고 SVC (Scalable Video Coding) 및 MVC (Multiview Video Coding) 확장본들을 포함한 ITU-T H.264 (또한 ISO/IEC MPEG-4 AVC로 알려짐) 를 포함하는 비디오 압축 표준에 따라 동작한다. H.264/AVC의 MVC 확장본의 최근의 초안은, 2013년 1월 14일 현재, http://wftp3.itu.int/av-arch/jvt-site/2009_01_Geneva/JVT-AD007.zip에서 다운로드 가능하며, 그 전체 내용은 본원에 참조로 통합된다. 덧붙여서, MVC 표준의 확장본으로서, 『"WD of MVC extension for inclusion of depth maps," MPEG document w12351』에 기재된 비디오 코딩 표준, 즉 "MVC 기반 3DV" (즉, MVC-호환 3DV) 이 있으며, 그 전체 내용은 참조로 본원에 통합된다. H264/AVC의 AVC-호환 3DV 확장본의 초안은 『Mannuksela et al., "3D-AVC Draft Text 4," Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 2nd meeting, Shanghai China, October 2012』에 기재되어 있으며, 그것은, 2013년 1월 14일 현재, http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/2_Shanghai/wg11/JCT3V-B1002-v1.zip에서 입수가능하며, 그 전체 내용은 참조로 본원에 통합된다. AVC-호환 3DV에 부합하는 임의의 법적 비트스트림은 MVC 프로파일, 예컨대, 스테레오 하이 프로파일을 준수하는 서브-비트스트림을 항상 포함할 수도 있다.
다른 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262, ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼, 및 현재 개발 중인 고 효율 비디오 코딩 (HEVC) 표준을 포함하는 다른 비디오 압축 표준들에 따라 동작할 수도 있다. 게다가, "HEVC 규격 초안 9"이라고 지칭되는 곧 도래할 HEVC 표준의 초안은, 『Bross et al., "High Efficiency Video Coding (HEVC) text specification draft 9," Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 11th Meeting: Shanghai, China, October, 2012』에 기재되어 있으며, 이는 2013년 1월 14일 현재, http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v8.zip에서 다운로드가능하고, 그 전체가 참조로 본원에 통합된다. 비록 본 개시물의 기법들이 H.264/AVC에 관해 설명되고 있지만, 이러한 기법들은 다른 코딩 표준들에 적용될 수도 있고 임의의 특정 코딩 표준 또는 기법으로 제한되지 않는다.
도 1은 단지 일 예이고 본 개시물의 기법들은 인코딩 및 디코딩 디바이스들 사이의 임의의 데이터 통신을 반드시 포함하지는 않는 비디오 코딩 설정들 (예컨대, 비디오 인코딩 또는 비디오 디코딩) 에 적용될 수도 있다. 다른 예들에서, 데이터는 로컬 메모리로부터 취출되며, 네트워크를 통해 스트리밍되는 등등이 된다. 비디오 인코딩 디바이스가 데이터를 인코딩하고 메모리에 저장할 수도 있으며, 그리고/또는 비디오 디코딩 디바이스는 메모리로부터 데이터를 취출하고 디코딩할 수도 있다. 많은 예들에서, 인코딩 및 디코딩은, 서로 통신하지 않지만 단순히 데이터를 메모리에 인코딩하고 및/또는 메모리로부터 데이터를 취출하고 디코딩하는 디바이스들에 의해 수행된다.
비디오 인코더 (20) 와 비디오 디코더 (30) 각각은 다양한 적합한 회로, 이를테면 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적회로들 (ASIC들), 필드 프로그램가능 게이트 어레이들 (FPGA들), 개별 로직, 하드웨어, 또는 그것들의 임의의 조합 중 임의의 것으로서 구현될 수도 있다. 그 기법들이 소프트웨어에서 부분적으로 구현되면, 디바이스는 적합한 비일시적 컴퓨터 판독가능 저장 매체 내에 소프트웨어에 대한 명령을 저장할 수도 있고 하나 이상의 프로세서들을 사용하여 하드웨어에서 그 명령들을 실행하여 본 개시물의 기법들을 수행할 수도 있다. 전술한 바의 임의의 것 (하드웨어, 소프트웨어, 하드웨어 및 소프트웨어의 조합 등을 포함) 은 하나 이상의 프로세서들이라고 간주될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들 내에 구비될 수도 있고, 그것들 중 어느 하나는 결합형 인코더/디코더 (CODEC) 의 부분으로서 개별 디바이스 내에 통합될 수도 있다.
본 개시물은 다른 디바이스, 이를테면 비디오 디코더 (30) 에 특정한 정보를 "시그널링하는" 비디오 인코더 (20) 를 일반적으로 지칭할 수도 있다. 용어 "시그널링"은 일반적으로 압축된 비디오 데이터를 디코딩하는데 사용되는 신택스 엘리먼트들 및/또는 다른 데이터의 통신을 말할 수도 있다. 이러한 통신은 실시간 또는 거의 실시간으로 일어날 수도 있다. 대안으로, 이러한 통신은, 인코딩 시에 신택스 엘리먼트들을 인코딩된 비트스트림으로 컴퓨터 판독가능 저장 매체에 저장하는 경우에 일어날 수도 있는 바와 같이 시간의 범위 (span of time) 에 걸쳐 일어날 수도 있으며, 그 신택스 엘리먼트들이 이 매체에 저장된 후의 임의의 시간에 디코딩 디바이스에 의해 취출될 수도 있다.
비디오 시퀀스는 통상 일련의 비디오 프레임들을 포함한다. 화상들의 그룹 (GOP) 은 일반적으로 일련의 하나 이상의 비디오 프레임들을 포함한다. GOP는 신택스 데이터를 GOP의 헤더, GOP의 하나 이상의 프레임들의 헤더, 또는 GOP에 포함된 프레임들의 수를 기술하는 다른 곳에 포함할 수도 있다. 각각의 프레임은 개별 프레임에 대한 인코딩 모드를 기술하는 프레임 신택스 데이터를 포함할 수도 있다. 비디오 인코더 (20) 는 비디오 데이터를 인코딩하기 위하여 개개의 비디오 프레임들 내의 비디오 블록들에 대해 통상 동작한다. H.264/AVC에서, 비디오 블록은 매크로블록 또는 매크로블록의 구획에 대응할 수도 있다. HEVC에서, 비디오 블록은 코딩 단위 (CU) 에 대응할 수도 있다. 비디오 블록들은 고정된 또는 가변하는 사이즈들을 가질 수도 있고, 특정된 코딩 표준에 따라 사이즈를 달리할 수도 있다. 더욱이, 각각의 비디오 프레임은 복수의 슬라이스들을 포함할 수도 있다. 각각의 슬라이스는 복수의 비디오 블록들을 포함할 수도 있다.
비디오 인코더 (20) 가 비디오 블록을 인코딩하는 경우, 비디오 인코더 (20) 는 비디오 블록에 대응하는 예측 화소 블록을 생성할 수도 있다. 비디오 인코더 (20) 는 인트라 예측 또는 인터 예측을 사용하여 예측 화소 블록을 생성할 수도 있다. 비디오 인코더 (20) 가 비디오 블록에 대해 인트라 예측을 수행하는 경우, 비디오 인코더 (20) 는, 그 비디오 블록과 동일한 비디오 프레임 내의 샘플들 (예컨대, 화소 성분들의 값들) 에 기초하여, 그 비디오 블록에 대응하는 예측 화소 블록을 생성할 수도 있다. 비디오 인코더 (20) 가 비디오 블록에 대응하는 예측 화소 블록을 생성하기 위해 인터 예측을 수행하는 경우, 비디오 인코더 (20) 는 하나 이상의 참조 화상들 내의 샘플들에 기초하여 예측 화소 블록을 생성할 수도 있다. 참조 화상들은 비디오 블록을 포함하는 화상과는 다른 화상들일 수도 있다.
비디오 인코더 (20) 가 비디오 블록에 대응하는 예측 화소 블록을 생성한 후, 비디오 인코더 (20) 는 그 비디오 블록에 대응하는 잔차 비디오 블록을 생성할 수도 있다. 잔차 비디오 블록에서의 각각의 샘플은 비디오 블록 및 예측 화소 블록에서의 대응하는 샘플들 사이의 차이에 기초할 수도 있다. 비디오 인코더 (20) 는 하나 이상의 계수 블록들을 생성하기 위해 잔차 비디오 블록에 변환을 적용할 수도 있다. 비디오 인코더 (20) 는 다양한 변환들을 잔차 비디오 블록에 적용할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 이산 코사인 변환 (DCT), 정수 변환, 웨이브릿 변환과 같은 변환, 또는 개념적으로 유사한 변환을 잔차 비디오 블록에 적용할 수도 있다. 비디오 인코더 (20) 는 계수 블록들을 양자화하여 비디오 블록을 표현하는데 사용된 비트들의 수를 추가로 감소시킬 수도 있다. 계수 블록을 양자화한 후, 비디오 인코더 (20) 는 계수 블록에서의 계수들을 나타내는 신택스 엘리먼트들 및 그 비디오 블록과 연관된 다른 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 신택스 엘리먼트들에 대해 콘텍스트 적응 이진 산술 코딩 (context-adaptive binary arithmetic coding; CABAC), 콘텍스트 적응 가변 길이 코딩 (context-adaptive variable length coding; CAVLC), 지수-골롬 코딩 (exponential-Golomb coding) 또는 다른 유형의 엔트로피 인코딩을 수행할 수도 있다. 비디오 인코더 (20) 는 비디오 블록과 연관된 엔트로피 인코딩된 신택스 엘리먼트들을 포함하는 비트스트림을 출력할 수도 있다.
비디오 디코더 (30) 는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 수신할 수도 있다. 비디오 디코더 (30) 는 그 비트스트림을 파싱하여 비트스트림으로부터 신택스 엘리먼트들을 추출할 수도 있다. 비트스트림으로부터 신택스 엘리먼트들을 추출하는 부분으로서, 비디오 디코더 (30) 는 비트스트림의 부분들을 엔트로피 디코딩할 수도 있다. 비디오 디코더 (30) 는, 비디오 블록와 연관된 신택스 엘리먼트들에 적어도 부분적으로 기초하여, 인터 또는 인트라 예측을 수행하여 그 비디오 블록에 대한 예측 화소 블록을 생성할 수도 있다. 덧붙여서, 비디오 디코더 (30) 는 비디오 블록과 연관된 계수 블록들의 계수들을 역 양자화할 수도 있고, 하나 이상의 역 변환들을 계수 블록들에 적용하여 그 비디오 블록에 대한 잔차 비디오 블록을 생성할 수도 있다. 비디오 디코더 (30) 는 그 다음에 잔차 비디오 블록 및 예측 화소 블록에 적어도 부분적으로 기초하여 비디오 블록을 복원할 수도 있다. 이런 식으로, 프레임의 비디오 블록들의 각각을 복원함으로써, 비디오 디코더 (30) 는 그 프레임을 복원할 수도 있다.
위에서 언급했듯이, 비디오 인코더 (20) 는 인터 예측을 수행하여 특정 비디오 블록에 대응하는 예측 화소 블록을 생성할 수도 있다. 더 구체적으로는, 비디오 인코더 (20) 는 단방향 인터 예측 또는 양방향 인터 예측을 수행하여 예측 화소 블록을 생성할 수도 있다.
비디오 인코더 (20) 가 특정 비디오 블록에 대해 단방향 인터 예측을 수행하는 경우, 비디오 인코더 (20) 는 단일 참조 화상 리스트에서의 참조 화상들 내에서 참조 블록을 검색할 수도 있다. 참조 블록은 특정 비디오 블록에 유사한 샘플들의 블록일 수도 있다. 더욱이, 비디오 인코더 (20) 가 단방향 인터 예측을 수행하는 경우, 비디오 인코더 (20) 는 특정 비디오 블록에 대한 모션 정보를 생성할 수도 있다. 특정 비디오 블록에 대한 모션 정보는 모션 벡터 및 참조 화상 인덱스를 포함할 수도 있다. 모션 벡터는 현재 프레임 (즉, 특정 비디오 블록을 포함하는 프레임) 내의 특정 비디오 블록의 포지션 및 참조 프레임 내의 참조 블록의 포지션 사이의 공간적 변위를 나타낼 수도 있다. 참조 화상 인덱스는 참조 화상 리스트를 포함하는 참조 프레임의 참조 화상 리스트 내의 포지션을 나타낸다. 특정 비디오 블록에 대한 예측 화소 블록은 참조 블록과 동일할 수도 있다.
비디오 인코더 (20) 가 특정 비디오 블록에 대해 양방향 인터 예측을 수행하는 경우, 비디오 인코더 (20) 는 제 1 참조 화상 리스트 ("리스트 0") 에서의 참조 화상들 내에서 제 1 참조 블록을 검색할 수도 있고, 제 2 참조 화상 리스트 ("리스트 1") 에서의 참조 화상들 내에서 제 2 참조 블록을 검색할 수도 있다. 비디오 인코더 (20) 는, 제 1 및 제 2 참조 블록들에 적어도 부분적으로 기초하여, 특정 비디오 블록에 대한 예측 화소 블록을 생성할 수도 있다. 덧붙여서, 비디오 인코더 (20) 는 특정 비디오 블록 및 제 1 참조 블록 사이의 공간적 변위를 나타내는 제 1 모션 벡터를 생성할 수도 있다. 비디오 인코더 (20) 는 제 1 참조 블록을 포함하는 참조 화상의 제 1 참조 화상 리스트 내의 로케이션을 식별하는 제 1 참조 화상 인덱스를 또한 생성할 수도 있다. 더욱이, 비디오 인코더 (20) 는 특정 비디오 블록 및 제 2 참조 블록 사이의 공간적 변위를 나타내는 제 2 모션 벡터를 생성할 수도 있다. 비디오 인코더 (20) 는 제 2 참조 블록을 포함하는 참조 화상의 제 2 참조 화상 리스트 내의 로케이션을 식별하는 제 2 참조 화상 인덱스를 또한 생성할 수도 있다.
비디오 인코더 (20) 가 특정 비디오 블록에 대해 단방향 인터 예측을 수행하는 경우, 비디오 디코더 (30) 는 특정 비디오 블록의 모션 정보를 사용하여 그 특정 비디오 블록의 참조 샘플을 식별할 수도 있다. 비디오 디코더 (30) 는 그 다음에 특정 비디오 블록의 참조 샘플에 기초하여 특정 비디오 블록의 예측 화소 블록을 생성할 수도 있다. 비디오 인코더 (20) 가 특정 비디오 블록에 대해 양방향 인터 예측을 수행하는 경우, 비디오 디코더 (30) 는 특정 비디오 블록의 모션 정보를 사용하여 그 특정 비디오 블록의 2 개의 참조 샘플들을 식별할 수도 있다. 비디오 디코더 (30) 는 특정 비디오 블록의 2 개의 참조 샘플들에 기초하여 특정 비디오 블록의 예측 화소 블록을 생성할 수도 있다.
멀티뷰 비디오 코딩 (MVC)-호환 3DV는 H.264/AVC 표준의 확장본이다. MVC-호환 3DV는 또한 MVC 기반 3DV라고 지칭될 수도 있다. H.264/AVC에 대한 MVC-호환 3DV 확장본에서는, 상이한 관점들로부터의 동일한 장면의 다수의 뷰들이 있을 수도 있다. 용어 "액세스 단위"는 동일한 시간 인스턴스에 대응하는 화상들의 세트를 지칭하는데 사용된다. 따라서, 비디오 데이터는 시간이 지남에 따라 발생하는 일련의 액세스 단위들로서 개념화될 수도 있다
MVC-호환 3DV는 인터 뷰 예측을 지원한다. 인터 뷰 예측은 H.264/AVC에서 사용된 인터 예측과 유사하고, 동일한 신택스 엘리먼트들을 사용할 수도 있다. 그러나, 비디오 코더가 비디오 블록에 대해 인터 뷰 예측을 수행하는 경우, 비디오 인코더 (20) 는, 참조 화상으로서, 비디오 블록과 동일한 액세스 단위에 있지만 상이한 뷰에 있는 화상을 사용할 수도 있다. 그 반면, 기존의 인터 예측은 상이한 액세스 단위들에서의 화상들만을 참조 화상들로서 사용한다. MVC-호환 3DV에서, 비디오 디코더 (예컨대, 비디오 디코더 (30)) 가 뷰에서의 화상들을 임의의 다른 뷰에서의 화상들을 참조하지 않고 디코딩할 수 있다면, 그 뷰는 "기본 뷰 (base view)"라고 지칭된다. 비기본 뷰들 (non-base views) 중 하나의 비기본 뷰에서의 화상을 코딩하는 경우, 화상이 상이한 뷰에 있지만 비디오 코더가 현재 코딩하고 있는 화상과는 동일한 시간 인스턴스 내에 있다면, 비디오 코더는 그 화상을 참조 화상 리스트에 추가할 수도 있다. 다른 인터 예측 참조 화상들처럼, 비디오 코더는 인터 뷰 예측 참조 화상을 참조 화상 리스트의 임의의 포지션에 삽입할 수도 있다. MVC-호환 3DV에서, 인터 뷰 예측은 디스패리티 (disparity) 모션 보상에 의해 지원될 수도 있다. 디스패리티 모션 보상은 H.264/AVC 모션 보상의 신택스를 사용하지만, 상이한 뷰에서의 화상이 참조 화상으로서 사용되는 것을 허용할 수도 있다. 둘 이상의 뷰들의 코딩은 MVC-호환 3DV에 의해 지원될 수도 있다. MVC-호환 3DV의 장점들 중 하나는, MVC-호환 3DV 인코더가 2 개를 초과하는 뷰들을 3D 비디오 입력으로서 사용할 수도 있고 MVC 디코더는 이러한 멀티뷰 표현을 디코딩할 수도 있다는 것일 수도 있다. 그 결과, MVC-호환 3DV를 지원하는 비디오 디코더들은 2 개를 초과하는 뷰들을 갖는 3D 비디오 콘텐츠를 프로세싱할 수도 있다.
MVC-호환 3DV는 깊이 맵들을 제공한다. 깊이 맵들은, 화소 값들이 대응하는 "텍스처" 화상들에 도시된 오브젝트들의 3차원 깊이들을 나타내는 화상들이다. 일부 예들에서, 깊이 지도에서의 더 밝은 화소 값들일수록 카메라에 더 가까이 있는 오브젝트들에 대응할 수도 있고, 깊이 지도에서의 더 어두운 화소 값들일수록 카메라로부터 더 멀리 있는 오브젝트들에 대응할 수도 있다. "텍스처" 화상들은 일반 H.264/AVC 화상들일 수도 있다. 하나의 액세스 단위에서의 뷰의 텍스처 부분, 즉, 액세스 단위에서의 텍스처 뷰는, "텍스처 뷰 성분"이라 명명된다. 액세스 단위에 대한 깊이 지도는 또한 액세스 단위의 "깊이 뷰 성분"이라고 지칭될 수도 있다. 용어 "뷰 성분"은 액세스 단위에서의 뷰를 지칭하는데 사용될 수도 있고, 동일한 액세스 단위에서의 텍스처 뷰 성분 및 깊이 뷰 성분을 총칭하여 말한다. 어떤 경우에, MVC-호환 3DV에서, 깊이 뷰 성분은 텍스처 뷰 성분에 기초하여 인코딩되는 것이 허용되지 않는다.
더욱이, H.264/AVC에 대한 3차원 비디오 (3DV) 코딩 확장본, 즉 AVC-호환 3DV를 생성하려는 지속적인 노력이 있다. MVC-호환 3DV처럼, AVC-호환 3DV는 깊이 맵들을 제공한다. AVC 3DV 확장본에서, 비디오 인코더 (20) 는 액세스 단위의 다른 뷰들과 동일한 방식으로 깊이 지도를 인코딩할 수도 있다. 다시 말하면, 상이한 뷰들에 대한 텍스처 화상들 외에, 액세스 단위는 깊이 지도를 포함할 수도 있다. AVC-호환 3DV는 깊이 뷰 성분이 텍스처 뷰 성분에 기초하여 인코딩되는 것을 허용한다. 이는 코딩 효율을 증가시킬 수도 있지만, 복잡도를 증가시킬 수도 있다.
MVC-호환 3DV 및 AVC-호환 3DV 양쪽 모두에서, 비디오 인코더 (20) 는 깊이 이미지 기반 랜더링 (Depth Image Based Rendering; DIBR) 을 사용하여, 이용가능한 텍스처 및 깊이 뷰 성분들에 기초하여, 합성 텍스처 뷰 성분을 생성할 수도 있다. 합성 텍스처 뷰 성분은, 깊이 지도 및 하나 이상의 텍스처 뷰 성분들에 기초하여 합성된 텍스처 뷰 성분일 수도 있다. 예를 들어, 특정 텍스처 뷰 성분은 왼쪽 눈 텍스처 뷰 성분일 수도 있고 비디오 인코더 (20) 는 DIBR를 사용하여 3차원 비디오 플레이백을 위한 오른쪽 눈 텍스처 뷰 성분을 생성할 수도 있다. 어떤 경우들에서는, 합성 텍스처 뷰 성분이 액세스 단위간 예측 또는 인터 뷰 예측을 위한 참조 화상으로서 사용될 수도 있다. 참조 화상들로서 사용되는 합성 텍스처 뷰 성분들은, 뷰 합성 참조 화상 (view synthesis reference picture; VSRP) 들이라고 지칭될 수도 있다. 비디오 코더들은 VSRP들을 참조 화상 리스트들에 포함시킬 수도 있다.
위에서 간략히 언급된 바와 같이, 비디오 인코더 (20) 는 인코딩된 비디오 데이터를 포함하는 비트스트림을 출력할 수도 있다. 그 비트스트림은 코딩된 화상들의 표현 및 연관된 데이터를 형성하는 비트들의 시퀀스를 포함할 수도 있다. 그 비트스트림은 네트워크 추상화 계층 (NAL) 단위들의 시퀀스를 포함할 수도 있다. NAL 단위들의 각각은 NAL 단위 헤더를 포함하고 원시 바이트 시퀀스 패이로드 (raw byte sequence payload; RBSP) 를 캡슐화한다. NAL 단위 헤더는 NAL 단위 유형 코드를 나타내는 신택스 엘리먼트를 포함할 수도 있다. NAL 단위의 NAL 단위 헤더에 의해 특정된 NAL 단위 유형 코드는 NAL 단위의 유형을 나타낸다. RBSP는 NAL 단위 내에 캡슐화되는 정수 수의 바이트들을 포함하는 신택스 구조일 수도 있다. 어떤 경우들에서는, RBSP는 영 비트들을 포함할 수도 있다.
상이한 유형들의 NAL 단위들이 상이한 유형들의 RBSP들을 캡슐화할 수도 있다. 예를 들어, 제 1 유형의 NAL 단위는 화상 파라미터 세트 (PPS) 에 대한 RBSP를 캡슐화할 수도 있으며, 제 2 유형의 NAL 단위는 코딩된 슬라이스에 대한 RBSP를 캡슐화할 수도 있으며, 제 3 유형의 NAL 단위는 추가 향상 정보 (supplemental enhancement information; SEI) 에 대한 RBSP를 포함할 수도 있다는 등등이다.
비디오 코딩 데이터에 대한 RBSP들 (파라미터 세트들 및 SEI 메시지들에 대한 RBSP과는 대조적임) 을 캡슐화하는 NAL 단위들은, 비디오 코딩 계층 (video coding layer; VCL) NAL 단위들이라고 지칭될 수도 있다. 코딩된 슬라이스를 캡슐화하는 NAL 단위는 코딩된 슬라이스 NAL 단위라고 지칭될 수도 있다. AVC-호환 3DV의 일부 설계들에서, 코딩된 깊이 뷰 성분들을 캡슐화하는 VCL NAL 단위들은 NAL 단위 유형 21을 가진다.
AVC-호환 3DV에 부합하는 코딩된 뷰 성분들을 캡슐화하는 NAL 단위들은, MVC-호환 3DV에 부합하는 코딩된 뷰 성분들을 캡슐화하는 NAL 단위들과는 상이한 신택스 엘리먼트들을 그것들의 NAL 단위 헤더들에 가진다. 예를 들어, AVC-호환 3DV에 부합하는 코딩된 뷰 성분들을 캡슐화하는 NAL 단위들은 다음의 신택스 엘리먼트들, 즉, non_idr_flag, anchor_pic_flag, temporal_id, inter_view_flag, depth_flag, 및 view_idx flag를 포함할 수도 있다. MVC-호환 3DV에 대한 NAL 단위들은 또한 non_idr_flag, anchor_pic_flag, temporal_id, 및 inter_view_flag 신택스 엘리먼트들을 포함할 수도 있다. non_idr_flag, anchor_pic_flag, temporal_id, 및 inter_view_flag 신택스 엘리먼트들은 AVC-호환 3DV 및 MVC-호환 3DV에 대한 동일한 의미체계 (semantics) 를 NAL 단위들에서 가질 수도 있다. 그러나, MVC-호환 3DV에 대한 NAL 단위들은 view_idx 및 depth_flag 신택스 엘리먼트들을 포함하지 않는다.
view_idx 신택스 엘리먼트는 NAL 단위에 대한 뷰 순서 인덱스를 특정한다. 동일한 값의 view_idx를 갖는 NAL 단위들은 동일한 뷰에 속한다. view_idx 신택스 엘리먼트는 MVC-호환 3DV에서의 view_order_index 신택스 엘리먼트와 동일할 수도 있다. depth_flag 신택스 엘리먼트가 1과 동일하면, NAL 단위는 깊이 뷰 성분에 속한다. depth_flag 신택스 엘리먼트가 0과 동일하면, NAL 단위는 텍스처 뷰 성분에 속한다. depth_flag 신택스 엘리먼트가 존재하지 않으면, 비디오 디코더 (30) 는 depth_flag 신택스 엘리먼트가 0과 동일하다고 유추 (즉, 자동으로 결정) 할 수도 있다.
위에서 설명된 AVC-호환 3DV의 설계에는 여러 문제들이 있다. 첫째로, AVC-호환 3DV가 AVC에 대한 다른 확장본들과 공존하기 위하여, 비기본, 텍스처 뷰 성분들 및/또는 깊이 뷰 성분들의 VCL NAL 단위들에 대해 새로운 NAL 단위 유형이 요구될 수도 있다. 둘째로, 비기본 텍스처 뷰 성분들의 VCL NAL 단위들이 MVC-호환 3DV에서 사용된 프리픽스 NAL 단위와는 상이한 신택스 엘리먼트들을 가진다면, AVC-호환 3DV 확장본의 현재 설계는 새로운 프리픽스 NAL 단위의 사용을 필요로 할 수도 있다. 프리픽스 NAL 단위는, NAL 단위 헤더 (및 NAL 단위 헤더 확장) 를 포함하고 0-바이트 RBSP를 캡슐화하는 NAL 단위일 수도 있다. 따라서, 위에서 설명된 AVC-호환 3DV의 설계는 3 개의 새로운 NAL 단위 유형들, 즉, 새로운 프리픽스 NAL 단위 유형, 비기본 텍스처 뷰 성분들의 VCL NAL 단위들에 대한 새로운 NAL 단위 유형, 및 깊이 뷰 성분들의 VCL NAL 단위들에 대한 새로운 NAL 단위 유형의 사용을 요구할 수도 있다. 새로운 NAL 단위 유형들의 사용은 문제가 있을 수도 있는데, H.264/AVC 표준에는 사용되지 않은 NAL 단위 유형들이 극히 적게 남아 있기 때문이다.
본 개시물의 기법들은 위에서 설명된 문제들을 해결할 수도 있다. 본 개시물의 기법들에 따라, 비디오 인코더 (20) 는 적어도 제 1 및 제 2 신택스 엘리먼트들을 포함하는 NAL 단위를 생성할 수도 있다. 제 1 신택스 엘리먼트 ("nal_unit_type") 는 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타낸다. 텍스처 뷰 성분들의 코딩된 슬라이스들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 특정 NAL 단위 유형에 속하는 NAL 단위 내에 캡슐화될 수도 있다. 제 2 신택스 엘리먼트 ("avc_based_3dv_flag") 는 NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 3DV 헤더 확장을 포함하는지를 나타낸다. "avc_based_3dv_flag"는 AVC 3DV 헤더 확장 또는 MVC 헤더 확장 바로 앞에 선행할 수도 있다. AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다. MVC-호환 3DV 헤더 확장은 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다.
NAL 단위들이 "avc_based_3dv_flag"를 포함할 수도 있기 때문에 AVC-호환 3DV 헤더 확장들 및 MVC-호환 3DV 헤더 확장들을 포함하는 NAL 단위들은 동일한 NAL 단위 유형에 속할 수도 있다. 따라서, "avc_based_3dv_flag"는 AVC-호환 3DV 헤더 확장들 및 MVC-호환 3DV 헤더 확장들을 포함하는 NAL 단위들에 대해 별도의 NAL 단위 유형들을 필요로 하지 않을 수도 있다. 이런 식으로, 본 개시물의 기법들은 H.264/AVC의 추가의 확장본들에 대한 이용가능한 NAL 단위 유형들을 보존할 수도 있다. 일부 예들에서, NAL 단위는, "nal_unit_type"가 21과 동일한 경우에만, "avc_based_3dv_flag"를 포함할 수도 있다.
도 2는 본 개시물의 기법들을 구현하도록 구성되는 일 예의 비디오 인코더 (20) 를 도시하는 블록도이다. 도 2는 설명의 목적으로 제공되고 본 개시물에서 폭넓게 예시되고 설명된 바와 같은 기법들의 제한으로서 고려되지 않아야 한다. 설명의 목적으로, 본 개시물은 H.264/AVC 코딩의 맥락에서 비디오 인코더 (20) 를 설명한다. 그러나, 본 개시물의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 2의 예에서, 비디오 인코더 (20) 는 예측 프로세싱 유닛 (100), 잔차 생성 유닛 (102), 변환 프로세싱 유닛 (104), 양자화 유닛 (106), 역 양자화 유닛 (108), 역 변환 프로세싱 유닛 (110), 복원 유닛 (112), 필터 유닛 (113), 디코딩된 화상 버퍼 (114), 및 엔트로피 인코딩 유닛 (116) 을 포함한다. 예측 프로세싱 유닛 (100) 은 인터 예측 프로세싱 유닛 (121) 과 인트라 예측 프로세싱 유닛 (126) 을 구비한다. 인터 예측 프로세싱 유닛 (121) 은 모션 추정 유닛 (122) 과 모션 보상 유닛 (124) 을 구비한다. 다른 예들에서, 비디오 인코더 (20) 는 더 많거나, 더 적거나, 또는 상이한 기능성 컴포넌트들을 포함할 수도 있다.
비디오 인코더 (20) 는 비디오 데이터를 수신한다. 비디오 데이터를 인코딩하기 위해, 비디오 인코더 (20) 는 비디오 데이터의 각각의 화상의 각각의 슬라이스를 인코딩할 수도 있다. 슬라이스를 인코딩하는 부분으로서, 비디오 인코더 (20) 는 그 슬라이스에서의 비디오 블록들을 인코딩할 수도 있다.
인터 예측 프로세싱 유닛 (121) 은 비디오 블록에 대해 인터 예측을 수행함으로써 그 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 비디오 블록에 대한 예측 데이터는, 비디오 블록에 대응하는 예측 화소 블록과 비디오 블록에 대한 모션 정보를 포함할 수도 있다.
슬라이스들은 I 슬라이스들, P 슬라이스들, 또는 B 슬라이스들일 수도 있다. 모션 추정 유닛 (122) 과 모션 보상 유닛 (124) 은 비디오 블록이 I 슬라이스에 있는지, P 슬라이스에 있는지, 또는 B 슬라이스에 있는지에 의존하여 비디오 블록에 대해 상이한 동작들을 수행할 수도 있다. I 슬라이스에서, 모든 비디오 블록은 인트라 예측된다. 그런고로, 비디오 블록이 I 슬라이스에 있으면, 모션 추정 유닛 (122) 과 모션 보상 유닛 (124) 은 비디오 블록에 대해 인터 예측을 수행하지 않는다.
비디오 블록이 P 슬라이스에 있으면, 모션 추정 유닛 (122) 은 비디오 블록에 대한 참조 블록을 참조 화상 리스트 (예컨대, 리스트 0) 에서의 참조 화상들에서 검색할 수도 있다. 비디오 인코더 (20) 가 MVC-호환 3DV 또는 AVC-호환 3DV를 사용하는 예들에서, 참조 화상 리스트는 인터 뷰 참조 화상들을 포함할 수도 있다. 비디오 인코더 (20) 가 AVC-호환 3DV를 사용하는 예들에서, 참조 화상 리스트에서의 인터 뷰 참조 화상들은 깊이 지도에 기초하여 합성된 참조 화상들을 포함할 수도 있다. 비디오 블록의 참조 블록은 비디오 블록에 가장 밀접하게 대응하는 화소 블록일 수도 있다. 모션 추정 유닛 (122) 은 참조 화상에서의 화소 블록이 비디오 블록에 얼마나 밀접하게 대응하는지를 결정하기 위해 다양한 메트릭들을 사용할 수도 있다. 예를 들어, 모션 추정 유닛 (122) 은 절대 차이 합 (sum of absolute difference; SAD), 차이 절대값 합 (sum of square difference; SSD), 또는 다른 차이 메트릭들에 의해 참조 화상에서의 화소 블록이 비디오 블록에 얼마나 밀접하게 대응하는지를 결정할 수도 있다.
모션 추정 유닛 (122) 은 P 슬라이스에서의 비디오 블록의 참조 블록을 포함하는 리스트 0에서의 참조 화상을 나타내는 참조 화상 인덱스와 비디오 블록 및 참조 블록 사이의 공간적 변위를 나타내는 모션 벡터를 생성할 수도 있다. 모션 추정 유닛 (122) 은 참조 화상 인덱스 및 모션 벡터를 비디오 블록의 모션 정보로서 출력할 수도 있다. 모션 보상 유닛 (124) 은 비디오 블록의 모션 정보에 의해 나타내어진 참조 블록에 기초하여 비디오 블록에 대한 예측 화소 블록을 생성할 수도 있다.
비디오 블록이 B 슬라이스에 있으면, 모션 추정 유닛 (122) 은 비디오 블록에 대해 단방향 인터 예측 또는 양방향 인터 예측을 수행할 수도 있다. 비디오 블록에 대해 단방향 인터 예측을 수행하기 위해, 모션 추정 유닛 (122) 은 비디오 블록에 대한 참조 블록을 리스트 0 또는 제 2 참조 화상 리스트 (예컨대, 리스트 1) 의 참조 화상들에서 검색할 수도 있다. 비디오 인코더 (20) 가 MVC 또는 3DV를 사용하는 예들에서, 리스트 0 및/또는 리스트 1은 인터 뷰 참조 화상들을 포함할 수도 있다. 모션 추정 유닛 (122) 은 참조 블록을 포함하는 참조 화상의 리스트 0 또는 리스트 1에서의 위치를 나타내는 참조 화상 인덱스와 비디오 블록 및 참조 블록 사이의 공간적 변위를 나타내는 모션 벡터를 생성할 수도 있다. 모션 추정 유닛 (122) 은 참조 화상이 리스트 0에 있는지 또는 리스트 1에 있는지를 나타내는 예측 방향 표시자를 또한 생성할 수도 있다.
비디오 블록에 대한 양방향 인터 예측을 수행하기 위해, 모션 추정 유닛 (122) 은 비디오 블록에 대한 참조 블록을 리스트 0에서의 참조 화상들에서 검색할 수도 있고 또한 비디오 블록에 대한 다른 참조 블록을 리스트 1에서의 참조 화상들에서 검색할 수도 있다. 모션 추정 유닛 (122) 은 참조 블록들을 포함하는 참조 화상들의 리스트 0 및 리스트 1에서의 포지션들을 나타내는 참조 화상 인덱스들을 생성할 수도 있다. 덧붙여서, 모션 추정 유닛 (122) 은 참조 블록들 및 비디오 블록 사이의 공간적 변위들을 나타내는 모션 벡터들을 생성할 수도 있다. 비디오 블록에 대한 모션 정보는 참조 화상 인덱스들 및 비디오 블록의 모션 벡터들을 포함할 수도 있다. 모션 보상 유닛 (124) 은 비디오 블록의 모션 정보에 의해 나타내어진 참조 블록들에 기초하여 비디오 블록의 예측 샘플 블록들을 생성할 수도 있다. 샘플 블록은 샘플들 (예컨대, 루미넌스 샘플들 또는 크로미넌스 샘플들) 의 블록일 수도 있다.
인트라 예측 프로세싱 유닛 (126) 은 비디오 블록에 대해 인트라 예측을 수행함으로써 그 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 비디오 블록에 대한 예측 데이터는 비디오 블록에 대한 예측 화소 블록과 다양한 신택스 엘리먼트들을 포함할 수도 있다. 화소 블록은 화소들의 블록일 수도 있다. 각각의 화소가 복수의 샘플들을 포함하기 때문에, 각각의 화소 블록은, 샘플의 각각의 유형마다 하나씩, 복수의 샘플 블록들로 나누어질 수도 있다. 인트라 예측 프로세싱 유닛 (126) 은 I 슬라이스들, P 슬라이스들, 및 B 슬라이스들에서의 비디오 블록들에 대해 인트라 예측을 수행할 수도 있다.
비디오 블록에 대해 인트라 예측을 수행하기 위해, 인트라 예측 프로세싱 유닛 (126) 은 PU에 대한 예측 데이터의 다수의 세트들을 생성하도록 다수의 인트라 예측 모드들을 사용할 수도 있다. 인트라 예측 모드를 사용하여 비디오 블록에 대한 예측 데이터의 세트를 생성하기 위해, 인트라 예측 프로세싱 유닛 (126) 은 이웃하는 비디오 블록들로부터 그 비디오 블록을 가로질러 인트라 예측 모드와 연관된 방향으로 샘플들을 확장할 수도 있다. 비디오 블록들에 대한 좌측에서 우측으로, 상단에서 하단으로의 인코딩 순서를 가정하면, 이웃하는 비디오 블록들은 비디오 블록의 상측, 우상측, 좌상측, 또는 좌측에 있을 수도 있다. 일부 예들에서, 인트라 예측 모드들의 수는 비디오 블록의 사이즈에 의존할 수도 있다.
예측 프로세싱 유닛 (100) 은 비디오 블록에 대해 인터 예측 프로세싱 유닛 (121) 에 의해 생성된 예측 데이터 또는 그 비디오 블록에 대해 인트라 예측 프로세싱 유닛 (126) 에 의해 생성된 예측 데이터 중에서 비디오 블록에 대한 예측 데이터를 선택할 수도 있다. 일부 예들에서, 예측 프로세싱 유닛 (100) 은 예측 데이터의 세트들의 레이트/왜곡 메트릭들에 기초하여 비디오 블록에 대한 예측 데이터를 선택한다.
잔차 생성 유닛 (102) 은 예측 화소 블록에서의 샘플들을 비디오 블록의 대응하는 샘플들로부터 감산함으로써 잔차 샘플 블록들을 생성할 수도 있다. 변환 프로세싱 유닛 (104) 은 하나 이상의 변환들을 잔차 샘플 블록에 적용함으로써 각각의 잔차 샘플 블록에 대한 계수 블록들을 생성할 수도 있다. 변환 프로세싱 유닛 (104) 은 다양한 변환들을 잔차 샘플 블록에 적용할 수도 있다. 예를 들어, 변환 프로세싱 유닛 (104) 은 이산 코사인 변환 (DCT), 방향성 변환, 또는 개념적으로 유사한 변환을 잔차 샘플 블록에 적용할 수도 있다.
양자화 유닛 (106) 은 계수 블록에서의 계수들을 양자화할 수도 있다. 양자화 프로세스는 그 계수들의 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수도 있다. 예를 들어, n-비트 계수는 양자화 동안에 m-비트 계수로 내림될 (rounded down) 수도 있으며, 여기서 n m보다 크다. 양자화 유닛 (106) 은 양자화 파라미터 (QP) 값에 기초하여 계수 블록을 양자화할 수도 있다. 비디오 인코더 (20) 는 QP 값을 조정함으로써 계수 블록들에 적용된 양자화 정도를 조정할 수도 있다.
역 양자화 유닛 (108) 과 역 변환 프로세싱 유닛 (110) 은 역 양자화 및 역 변환들을 변환 계수 블록에 각각 적용하여, 계수 블록으로부터 잔차 샘플 블록을 복원할 수도 있다. 복원 유닛 (112) 은 복원된 잔차 샘플 블록들에서의 샘플들을 예측 프로세싱 유닛 (100) 에 의해 생성된 하나 이상의 예측 샘플 블록들로부터의 대응하는 샘플들에 가산하여 복원된 샘플 블록들을 생성할 수도 있다. 필터 유닛 (113) 은 블록화제거 (deblocking) 동작을 수행하여 복원된 비디오 블록들에서의 블록화 아티팩트들을 감소시킬 수도 있다. 디코딩된 화상 버퍼 (114) 는, 필터 유닛 (113) 이 복원된 비디오 블록에 대해 하나 이상의 블록화제거 동작들을 수행한 후에 복원된 비디오 블록을 저장할 수도 있다. 모션 추정 유닛 (122) 과 모션 보상 유닛 (124) 은 후속 화상들의 비디오 블록들에 대해 인터 예측을 수행하기 위해 복원된 비디오 블록들을 포함하는 참조 화상을 사용할 수도 있다. 덧붙여서, 인트라 예측 프로세싱 유닛 (126) 은 디코딩된 화상 버퍼 (114) 에서의 복원된 비디오 블록들을 사용하여 인트라 예측을 수행할 수도 있다.
엔트로피 인코딩 유닛 (116) 은 비디오 인코더 (20) 의 다른 기능성 컴포넌트들로부터 데이터를 수신할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (116) 은 양자화 유닛 (106) 으로부터 계수 블록들을 수신할 수도 있고 예측 프로세싱 유닛 (100) 으로부터 신택스 엘리먼트들을 수신할 수도 있다. 엔트로피 인코딩 유닛 (116) 은 데이터에 대해 하나 이상의 엔트로피 인코딩 동작들을 수행하여 엔트로피 인코딩된 데이터를 생성할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 그 데이터에 대해 CAVLC 동작, CABAC 동작, 가변 대 가변 (variable-to-variable; V2V) 길이 코딩 동작, 신택스 기반 콘텍스트 적응 이진 산술 코딩 (syntax-based context-adaptive binary arithmetic coding; SBAC) 동작, 확률 간격 구획화 엔트로피 (Probability Interval Partitioning Entropy; PIPE) 코딩 동작, 지수-골롬 코딩 동작, 또는 다른 유형의 엔트로피 인코딩 동작을 수행할 수도 있다.
비디오 인코더 (20) 는 엔트로피 인코딩 유닛 (116) 에 의해 생성된 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수도 있다. 그 비트스트림은 일련의 NAL 단위들을 포함할 수도 있다. NAL 단위들의 각각은 NAL 단위 헤더 및 RBSP를 포함할 수도 있다. 본 개시물의 기법들에 따라, NAL 단위 헤더는 슬라이스 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 3DV 헤더 확장을 포함하는지를 나타내는 신택스 엘리먼트를 포함할 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 아래의 표 1에 기재된 신택스에 부합하는 NAL 단위를 생성할 수도 있다.
표 1
Figure pct00001
표 1의 예의 신택스에서, svc_extension_flag 신택스 엘리먼트는, NAL 단위가 H.264/AVC 표준에 대한 스케일러블 비디오 코딩 (SVC) 확장본에 관련되는지 또는 H.264/AVC 표준의 MVC-호환 3DV 확장본에 관련되는지를 나타낸다. 본 개시물의 기법들에 따라, NAL 단위 유형 21은 svc_extension_flag 신택스 엘리먼트가 1과 동일한 경우 재사용된다. svc_extension_flag 신택스 엘리먼트는 이제 NAL 단위 헤더 확장의 제 1 플래그일 수도 있다. svc_extension_flag 신택스 엘리먼트가 1과 동일하면, NAL 단위는 SVC에 관련되고 SVC 헤더 확장, nal_unit_header_svc_extension( )을 포함한다. svc_extension_flag 신택스 엘리먼트가 0과 동일하면, NAL 단위는 MVC-호환 3DV에 관련되고 NAL 단위는 MVC-호환 3DV 헤더 확장, nal_unit_header_mvc_extension( )을 포함한다. MVC-호환 3DV 및 SVC 양쪽 모두에는, 동일한 NAL 단위 헤더 설계를 공유하는 2 개의 NAL 단위 유형들 (14 및 20) 이 있다. NAL 단위 유형 14는 프리픽스 NAL 단위를 위한 것이고 NAL 단위 유형 20은 향상 계층들 또는 비기본 뷰들에서의 다른 VCL NAL 단위들을 위한 것이다.
표 1의 예의 신택스에서, NAL 단위 유형 21은 AVC-호환 3DV 헤더 확장들 및 MVC-호환 3DV 헤더 확장들 양쪽 모두를 위해 재사용된다. 다시 말하면, nal_unit_type 신택스 엘리먼트가 21과 동일하면, NAL 단위는 AVC-호환 3DV 헤더 확장 또는 MVC-호환 3DV 헤더 확장을 포함할 수도 있다. 표 1의 예의 신택스에서, avc_based_3dv_flag 신택스 엘리먼트는, NAL 단위가 AVC-호환 3DV 헤더 확장, nal_unit_header_avc_3dv_extension( )을 포함하는지, 또는 MVC-호환 3DV 헤더 확장, nal_unit_header_mvc_extension( )을 포함하는지를 나타낸다.
avc_based_3dv_flag 신택스 엘리먼트가 1과 동일하면, NAL 단위는 AVC-호환 3DV 헤더 확장을 포함한다. 다시 말하면, avc_based_3dv_flag 신택스 엘리먼트의 값은, H.264/AVC 표준의 부록 J (또는 부록 J가 AVC 기반 3DV 확장을 위해 사용되지 않는 경우 AVC 기반 3DV 확장을 특정하는 부록) 에서 특정된 하나 이상의 프로파일들에 부합하는 코딩된 비디오 시퀀스들에 대해 1과 동일할 수도 있다. 일부 예들에서, H.264/AVC 표준의 부록 J에서 특정된 하나 이상의 프로파일들에 부합하는 비디오 디코더들은, nal_unit_type 신택스 엘리먼트가 21과 동일하고 그리고 avc_based_3dv_extension_flag 신택스 엘리먼트가 0과 동일한 NAL 단위들을 프로세싱하도록 구성되지 않는다. 따라서, 이러한 비디오 디코더들은, nal_unit_type 신택스 엘리먼트가 21과 동일하고 그리고 avc_based_3dv_extension_flag 신택스 엘리먼트가 0과 동일한 NAL 단위들을 무시할 (즉, 비트스트림으로부터 제거하고 버릴) 수도 있다.
avc_based_3dv_flag 신택스 엘리먼트가 0과 동일하면, NAL 단위는 MVC-호환 3DV 헤더 확장을 포함한다. 다시 말하면, avc_based_3dv_flag 신택스 엘리먼트의 값은, H.264/AVC 표준의 부록 I (MVC 기반 3DV) 에서 특정된 하나 이상의 디코더 프로파일들에 부합하는 코딩된 비디오 시퀀스들에 대해 0과 동일할 수도 있다. 결과적으로, H.264/AVC 표준의 부록 I에 특정된 하나 이상의 프로파일들에 부합하지만 nal_unit_type 신택스 엘리먼트가 21과 동일한 NAL 단위들을 프로세싱하도록 구성되지 않은 비디오 디코더들은, nal_unit_type 신택스 엘리먼트가 21과 동일하고 그리고 avc_based_3dv_extension_flag 신택스 엘리먼트가 1과 동일한 NAL 단위들을 무시할 (즉, 비트스트림으로부터 제거하고 버릴) 수도 있다.
다른 예들에서, avc_based_3dv_flag 신택스 엘리먼트는 AVC-호환 3DV 확장에서, mvc_3dv_extension_flag로서 재명명될 수도 있다. 이러한 예들에서, mvc_3dv_extension_flag가 1과 동일하면, NAL 단위는 MVC-호환 3DV 헤더 확장을 포함한다. mvc_3dv_extension_flag가 0과 동일하면, NAL 단위는 AVC-호환 3DV 헤더 확장을 포함한다.
MVC-호환 3DV에서의 NAL 단위는, NAL 단위 유형이 프리픽스 NAL 단위 또는 MVC VCL NAL 단위이면, 1-바이트 NAL 단위 헤더 및 3-바이트 MVC NAL 단위 헤더 확장을 포함할 수도 있다. MVC-호환 3DV에서의 프리픽스 NAL 단위는 오직 NAL 단위 헤더 및 MVC NAL 단위 헤더 확장만을 포함할 수도 있다. 아래의 표 2는, nal_unit_header_mvc_extension 함수에 대한 일 예의 신택스 구조를 나타낸다.
표 2
Figure pct00002
표 2 및 다음의 표들의 예에서, n이 음이 아닌 정수인 형태 u (n) 의 기술자를 갖는 신택스 엘리먼트는, 길이 n의 부호없는 값들이다. 표 2의 예의 신택스 구조에서, non_idr_flag는, NAL 단위가 순시 디코딩 리프레시 (instantaneous decoding refresh; IDR) NAL 단위에 속하는지의 여부를 나타낸다. 랜덤 액세스 포인트는 I 슬라이스들만을 포함하는 화상이다. priority_id 신택스 엘리먼트는 일-경로 적응을 위해 사용될 수도 있는데, 여기서 적응은 단순히 priority_id를 체크함으로써 행해질 수 있다. view_id 신택스 엘리먼트는 현재 뷰의 뷰 식별자를 나타낼 수도 있다. NAL 단위는 현재 뷰의 뷰 성분의 슬라이스의 코딩된 표현을 캡슐화할 수도 있다. temporal_id 신택스 엘리먼트는 NAL 단위의 시간적 레벨을 나타낼 수도 있다. 시간적 레벨은 NAL 단위와 연관된 프레임 레이트를 나타낼 수도 있다. anchor_pic_flag 신택스 엘리먼트는 NAL 단위가 랜덤 액세스를 위해 사용될 수 있는 앵커 화상에 속하는지의 여부를 나타낼 수도 있다. 앵커 화상은, 모든 슬라이스들이 동일한 액세스 단위에서의 슬라이스들만을 참조할 수도 있게 되는 코딩된 화상이다. 다시 말하면, 인터 뷰 예측은 앵커 화상을 인코딩하는데 사용될 수도 있지만, 인터 예측은 앵커 화상을 인코딩하는데 사용되지 않을 수도 있다. inter_view_flag 신택스 엘리먼트는 현재 뷰 성분이 다른 뷰들에서의 NAL 단위들에 대한 인터 뷰 예측을 위해 사용되는지의 여부를 나타낸다. NAL 단위는 현재 뷰 성분의 슬라이스의 코딩된 표현을 캡슐화할 수도 있다.
NAL 단위가 MVC-호환 3DV 헤더 확장을 포함하면, 그 NAL 단위는 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하지 않는다. 깊이 뷰 성분의 코딩된 슬라이스를 캡슐화하는 NAL 단위는, NAL 단위가 AVC-호환 3DV 헤더 확장을 포함하면 제 1 신택스 구조를 가질 수도 있고, NAL 단위가 MVC-호환 3DV 헤더 확장을 포함하면 제 2 신택스 구조를 가질 수도 있고, 제 2 신택스 구조는 제 1 신택스 구조와는 상이하다. 일부 예들에서, 비디오 인코더 (20) 는 상이한 NAL 단위 유형에 속하는 다른 NAL 단위를 생성 (하고 비디오 디코더 (30) 는 수신) 할 수도 있다. 다른 NAL 단위의 NAL 단위 헤더는 제 2 MVC-호환 3DV 헤더 확장을 포함할 수도 있다. 제 2 MVC-호환 3DV 헤더 확장은 제 1 MVC-호환 3DV 헤더 확장과는 동일한 신택스 구조를 가질 수도 있다. 다른 NAL 단위는 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화할 수도 있다.
아래의 표 3은, nal_unit_header_avc_3dv_extension 함수에 대한 일 예의 신택스 구조를 나타낸다.
표 3
Figure pct00003
표 3의 예의 신택스 구조에서, non_idr_flag 신택스 엘리먼트, anchor_pic_flag 신택스 엘리먼트, temporal_id 신택스 엘리먼트, 및 inter_view_flag 신택스 엘리먼트는, nal_unit_header_mvc_extension의 대응하는 신택스 엘리먼트들과는 동일한 의미체계를 가질 수도 있다. depth_flag 신택스 엘리먼트는 NAL 단위가 깊이 뷰 성분을 캡슐화하는지 또는 텍스처 뷰 성분의 인코딩된 데이터를 캡슐화하는지를 나타낼 수도 있다. 다시 말하면, 비디오 디코더 (30) 는, 깊이 플래그 신택스 엘리먼트에 기초하여, NAL 단위가 깊이 뷰 성분의 인코딩된 데이터를 캡슐화하는지 또는 텍스처 뷰 성분의 인코딩된 데이터를 캡슐화하는지를 결정할 수도 있다. 예를 들어, depth_flag 신택스 엘리먼트가 1과 동일하면, NAL 단위는 깊이 뷰 성분의 인코딩된 데이터를 캡슐화한다. 이 예에서, depth_flag 신택스 엘리먼트가 0과 동일하면, NAL 단위는 텍스처 뷰 성분의 인코딩된 데이터를 캡슐화한다. 일부 예들에서, depth_flag 신택스 엘리먼트가 NAL 단위에 존재하지 않으면, 비디오 디코더 (30) 는 depth_flag 신택스 엘리먼트가 0과 동일하다고 자동으로 결정한다. MVC-호환 3DV 헤더 확장의 신택스는 깊이 플래그 신택스 엘리먼트를 허용하지 않는다. 다시 말하면, 일부 예들에서, MVC-호환 3DV 헤더 확장은 깊이 플래그 신택스 엘리먼트를 포함하지 않을 수 있다. AVC-호환 3DV 헤더 확장은, NAL 단위가 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하는지 또는 깊이 뷰 성분의 코딩된 슬라이스를 캡슐화하는지에 상관없이 동일한 신택스 구조를 가진다.
표 3의 예의 신택스에서, 동일한 NAL 단위 유형은 비기본 뷰 텍스처의 VCL NAL 단위들과 프리픽스 NAL 단위에 공유될 수도 있다. 이 경우, view_idx는 view_id 대신, NAL 단위 헤더에서 시그널링된다. view_idx 신택스 엘리먼트는 NAL 단위에 대한 뷰 순서 인덱스를 나타낸다. view_idx 신택스 엘리먼트의 동일한 값을 갖는 NAL 단위들은 동일한 뷰에 속한다. view_idx 신택스 엘리먼트는 MVC-호환 3DV 사양 (즉, MVC 기반 3DV 사양) 에서의 뷰 순서 인덱스 (VOIdx) 와 동일한 의미체계를 가질 수도 있다. 일부 예들에서, 프리픽스 NAL 단위의 경우, view_idx 신택스 엘리먼트는 항상 0과 동일하다.
일부 예들에서, nal_unit_header_avc_3dv_extension 함수의 view_idx 신택스 엘리먼트 및 depth_flag 신택스 엘리먼트가 양쪽 모두 0과 동일하면, NAL 단위의 RBSP는 프리픽스 NAL 단위 AVC 3DV RBSP이다. 표 1의 예의 신택스에서, 동일한 NAL 단위 유형은 비기본 뷰 텍스처 컴포넌트들의 VCL NAL 단위들과 프리픽스 NAL 단위들을 위해 사용된다. 프리픽스 NAL 단위 AVC 3DV RSBP는 0 바이트를 포함하는 RBSP일 수도 있다. 아래의 표 4는, 프리픽스 NAL 단위 AVC 3DV RBSP의 일 예의 신택스 구조를 제공한다.
표 4
Figure pct00004
다른 예에서, 새로운 NAL 단위 유형이 프리픽스 AVC-호환 3DV NAL 단위들을 위해 사용된다. 아래의 표 5는, 새로운 NAL 단위 유형이 프리픽스 AVC-호환 3DV NAL 단위들을 위해 사용되는 NAL 단위에 대한 일 예의 신택스 구조이다. 표 5의 예의 신택스에서, NAL 단위의 nal_unit_type 신택스 엘리먼트가 17과 동일하면, 그 NAL 단위는 프리픽스 AVC-호환 3DV NAL 단위이다. 따라서, nal_unit_type 신택스 엘리먼트는 NAL 단위가 프리픽스 AVC-호환 3DV NAL 단위임을 나타낼 수도 있고, 비디오 디코더 (30) 는, nal_unit_type 신택스 엘리먼트에 기초하여, NAL 단위가 프리픽스 AVC-호환 3DV NAL 단위라고 결정할 수도 있다.
표 5
Figure pct00005
다른 예에서, 비디오 인코더 (20) 는, 비기본 뷰 텍스처 뷰 성분들 또는 깊이 뷰 성분들의 VCL NAL 단위들에 대해 새로운 NAL 단위 유형을 사용하는 NAL 단위들을 생성한다. 아래의 표 6은, 새로운 NAL 단위 유형이 비기본 뷰 텍스처 뷰 성분들 또는 깊이 뷰 성분들의 VCL NAL 단위들을 위해 사용되는 NAL 단위에 대한 일 예의 신택스이다. 표 6의 예의 신택스 구조에서, NAL 단위의 nal_unit_type 신택스 엘리먼트가 22와 동일하면, 그 NAL 단위는 비기본 뷰 텍스처 뷰 성분 또는 깊이 뷰 성분의 VCL NAL 단위이다.
표 6
Figure pct00006
표 6의 예의 신택스에서, 비디오 인코더 (20) 는 nal_unit_header_avc_3dv_extension 함수를 아래의 표 7의 예의 신택스에서 도시된 바와 같이 확장할 수도 있다. 표 3의 예에서 도시된 nal_unit_header_avc_3dv_extension 함수와는 대조적으로, 표 7의 예의 신택스는 reserved_one_bit 신택스 엘리먼트를 포함한다. reserved_one_bit 신택스 엘리먼트는 유보된 비트이다.
표 7
Figure pct00007
다른 예에서, 하나의 새로운 NAL 단위 유형이 비기본 뷰 텍스처 뷰 성분들의 VCL NAL 단위들을 위해 사용될 수도 있고 다른 새로운 NAL 단위 유형이 깊이 뷰 성분들의 VCL NAL 단위들을 위해 사용될 수도 있다. 이 예에서, 비디오 인코더 (20) 는 아래의 표 8에 도시된 예의 신택스 구조에 부합하는 NAL 단위들을 생성할 수도 있다. 표 8의 예의 신택스 구조에서, 비기본 뷰 텍스처 뷰 성분의 VCL NAL 단위의 NAL 단위 유형은 22와 동일할 수도 있다. 더욱이, 표 8의 예의 신택스 구조에서, 텍스처 뷰 성분 NAL 단위의 VCL NAL 단위의 NAL 단위 유형은 23과 동일할 수도 있다.
표 8
Figure pct00008
표 8의 예의 신택스에서, 비디오 인코더 (20) 는 nal_unit_header_avc_3dv_extension 함수를 아래의 표 9의 예의 신택스 구조에서 도시된 바와 같이 확장할 수도 있다.
표 9
Figure pct00009
표 9의 예의 신택스 구조에서 non_idr_flag 신택스 엘리먼트, anchor_pic_flag 신택스 엘리먼트, temporal_id 신택스 엘리먼트, inter_view_flag 신택스 엘리먼트, 및 view_idx 신택스 엘리먼트는 위에서 설명된 바와 동일한 의미체계를 가질 수도 있다. reserved_two_zero_bits 신택스 엘리먼트는 유보된 2-비트 부호없는 값일 수도 있다. 표 9는 표 9가 depth_view 신택스 엘리먼트를 포함하지 않고 reserved_one_bit 신택스 엘리먼트 대신 reserved_two_zero_bits 신택스 엘리먼트를 포함한다는 점에서 표 7과는 상이하다.
다른 예에서, 프리픽스 AVC-호환 3DV NAL 단위에 대해, 비디오 인코더 (20) 는 표 7 및 표 9에 도시된 view_idx 신택스 엘리먼트를 시그널링하지 않으며; 따라서 하나의 바이트가 절약될 수 있다. 일부 예들에서, view_idx 신택스 엘리먼트에서의 비트들의 수는 표 7 및 표 9의 8-비트 부호없는 값과는 상이할 수도 있다. 예를 들면, 비디오 인코더 (20) 가 view_idx 신택스 엘리먼트를 시그널링하지 않는 예들에서, view_idx 신택스 엘리먼트는 10-비트 값일 수 있다. 표 9의 예의 신택스에서, view_idx는 9-비트 값일 수도 있다. 다른 예들에서, view_idx 신택스 엘리먼트에 대한 비트들의 수는 4, 5, 6, 7, 또는 미만과 같은 다른 값들일 수도 있다.
일부 예들에서, 비디오 인코더 (20) 는 상이한 디코더 프로파일들에 대해 적응적 방식으로 view_idx 신택스 엘리먼트를 시그널링한다. 예를 들어, 비디오 인코더 (20) 가 제 1 디코더 프로파일에 대한 비디오 데이터를 인코딩하면, view_idx 신택스 엘리먼트는 비디오 인코더 (20) 가 제 2 디코더 프로파일에 대한 비디오 데이터를 인코딩하는 경우보다 적은 수의 비트들을 NAL 단위 헤더에 포함할 수도 있다. 이 예에서, 비디오 인코더 (20) 가 제 2 디코더 프로파일에 대한 비디오 데이터를 인코딩하는 경우 view_idx 신택스 엘리먼트는 하나의 부가적인 바이트를 포함할 수도 있다.
더욱이, 위의 표 7 및 표 9의 예의 신택스들에서, 비디오 인코더 (20) 는 view_idx 신택스 엘리먼트를 2-비트 부호없는 값으로서 시그널링할 수도 있다. 그 결과, NAL 단위 헤더 확장은 단지 1 바이트만을 포함할 수도 있다. 대안으로, 일부 비디오 디코더 프로파일들에서, NAL 단위 헤더 확장의 길이는 1 바이트와 동일할 수도 있다. 비디오 인코더 (20) 는 더 큰 수의 코딩된 뷰들을 허용하는 다른 디코더 프로파일들에 대해 view_idx 신택스 엘리먼트에 대한 확장 바이트를 시그널링할 수도 있다. 비디오 인코더 (20) 가 view_idx 신택스 엘리먼트에 대한 확장 바이트를 시그널링하는 예들에서, view_idx 신택스 엘리먼트의 제 1 확장 바이트에서 시그널링된 비트들은, view_idx 신택스 엘리먼트의 최하위 비트들 (즉, view_idx_lsb) 을 포함할 수도 있는 한편 view_idx 신택스 엘리먼트의 제 2 확장 바이트는 최상위 비트들 (view_idx_msb) 을 포함한다. 따라서, view_idx 신택스 엘리먼트는 view_idx_msb << (numBitsViewIdxFirstByte) + view_idx_lsb와 동일할 수도 있으며, 여기서 view_idx_msb는 view_idx 신택스 엘리먼트의 최상위 비트들이며, numBitsViewIdxFirstByte는 view_idx 신택스 엘리먼트의 제 1 바이트의 뷰의 수이고, view_idx_lsb는 view_idx 신택스 엘리먼트의 최하위 비트들이다.
일부 예들에서, 비디오 인코더 (20) 는 NAL 단위 헤더 확장에서 inter_view_flag 신택스 엘리먼트를 시그널링하지 않는다. 일부 이러한 예들에서, 그렇지 않으면 inter_view_flag 신택스 엘리먼트를 위해 사용될 비트는 view_idx 신택스 엘리먼트의 여분의 비트로서 사용될 수도 있다. 이런 식으로, inter_view_flag 신택스 엘리먼트를 시그널링하지 않음으로써, 비디오 인코더 (20) 는 부가적인 뷰들의 뷰 인덱스들을 시그널링할 수도 있다. 예를 들면, 일부 예들에서, 비디오 인코더 (20) 는 view_idx를 3-비트 값으로서 시그널링할 수도 있다. 그 결과, NAL 단위 헤더 확장은 하나의 바이트만을 포함할 수도 있다. 대안으로, 일부 비디오 디코더 프로파일들에서, NAL 단위 헤더 확장의 길이는 1 바이트와 동일한 반면, 더 큰 수의 코딩된 뷰들을 가능하게 하는 프로파일들의 경우, view_idx에 대한 확장 바이트가 시그널링된다. 비디오 인코더 (20) 가 view_idx에 대한 확장 바이트를 시그널링하는 예들에서, view_idx의 제 1 확장 바이트에서 시그널링된 비트들은 view_idx의 최하위 비트들을 포함할 수도 있는 한편 view_idx의 제 2 확장 바이트는 최상위 비트들을 포함한다. 예를 들어, 뷰들의 수가 8 미만인 경우, NAL 단위 헤더 확장에서 3 개의 비트들이면 충분하다. 8 개를 초과하는 뷰들, 예컨대, 100 개의 뷰들을 가능하게 하는 비디오 디코더 프로파일에서, 비디오 인코더 (20) 는 view_idx_msb 신택스 엘리먼트를 시그널링할 수도 있다. 비디오 디코더 (30) 는 view_idx를 다음과 같이 계산할 수도 있으며: view_idx = view_idx_msb << (numBitsViewIdxFirstByte) + view_idx_lsb, 여기서 view_idx_msb는 view_idx의 최상위 비트들이며, view_idx_lsb는 view_idx의 최하위 비트들이고, numBitViewIdxFirstByte는 제 1 바이트에서 view_idx의 비트들의 수를 나타낸다.
도 3은 본 개시물의 기법들을 구현하도록 구성되는 일 예의 비디오 디코더 (30) 를 도시하는 블록도이다. 도 3은 설명의 목적으로 제공되고 본 개시물에서 폭넓게 예시되고 설명된 바와 같은 기법들에 대해 제한하고 있지는 않다. 설명의 목적으로, 본 개시물은 H.264/AVC 코딩의 맥락에서 비디오 디코더 (30) 를 설명한다. 그러나, 본 개시물의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 3의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (150), 예측 프로세싱 유닛 (152), 역 양자화 유닛 (154), 역 변환 프로세싱 유닛 (156), 복원 유닛 (158), 필터 유닛 (159), 및 디코딩된 화상 버퍼 (160) 를 구비한다. 예측 프로세싱 유닛 (152) 은 모션 보상 유닛 (162) 과 인트라 예측 프로세싱 유닛 (164) 을 구비한다. 다른 예들에서, 비디오 디코더 (30) 는 더 많거나, 더 적거나, 또는 상이한 기능성 컴포넌트들을 포함할 수도 있다.
비디오 디코더 (30) 는 비디오 데이터를 수신할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 비트스트림을 파싱하여 비트스트림으로부터 신택스 엘리먼트들을 추출할 수도 있다. 비트스트림을 파싱하는 부분으로서, 엔트로피 디코딩 유닛 (150) 은 비트스트림에서의 엔트로피 인코딩된 신택스 엘리먼트들을 엔트로피 디코딩할 수도 있다. 예측 프로세싱 유닛 (152), 역 양자화 유닛 (154), 역 변환 프로세싱 유닛 (156), 복원 유닛 (158), 및 필터 유닛 (159) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여 디코딩된 비디오 데이터를 생성 (즉, 그 비디오 데이터를 복원) 할 수도 있다. 비트스트림으로부터 추출된 신택스 엘리먼트들은 계수 블록들을 나타내는 신택스 엘리먼트들을 포함할 수도 있다.
본 개시물의 기법들에 따르면, 비디오 디코더 (30) 는 NAL 단위를 수신할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 그 NAL 단위로부터 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 파싱할 수도 있다. 엔트로피 디코딩 유닛 (150) 은, 제 2 신택스 엘리먼트에 기초하여, NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 3DV 헤더 확장을 포함하는지를 결정할 수도 있다. NAL 단위가 AVC-호환 3DV 헤더 확장을 포함한다는 결정에 응답하여, 엔트로피 디코딩 유닛 (150) 은 NAL 단위로부터 AVC-호환 3DV 헤더 확장을 파싱할 수도 있다. NAL 단위가 MVC-호환 3DV 헤더 확장을 포함한다는 결정에 응답하여, 엔트로피 디코딩 유닛 (150) 은 NAL 단위로부터 MVC-호환 3DV 헤더 확장을 파싱할 수도 있다. 예측 프로세싱 유닛 (152), 역 양자화 유닛 (154), 역 변환 프로세싱 유닛 (156), 복원 유닛 (158), 및 필터 유닛 (159) 은 AVC-호환 3DV 헤더 확장 또는 MVC-호환 헤더 확장의 신택스 엘리먼트들에 기초하여 적어도 일부 비디오 데이터를 복원할 수도 있다.
역 양자화 유닛 (154) 은 계수 블록들을 역 약자화, 즉 탈 양자화(de-quantization)할 수도 있다. 역 양자화 유닛 (154) 은 QP 값을 사용하여 양자화 정도를 결정하고, 비슷하게, 역 양자화 유닛 (154) 이 적용할 역 양자화 정도를 결정할 수도 있다. 역 양자화 유닛 (154) 이 계수 블록을 역 양자화한 후, 역 변환 프로세싱 유닛 (156) 은 잔차 샘플 블록을 생성하기 위하여 하나 이상의 역 변환들을 계수 블록에 적용할 수도 있다. 예를 들어, 역 변환 프로세싱 유닛 (156) 은 역 DCT, 역 정수 변환, 역 카루넨-뢰베 변환 (Karhunen-Loeve transform; KLT), 역 회전 변환, 역 방향성 변환, 또는 다른 역 변환을 계수 블록에 적용할 수도 있다.
비디오 블록이 인트라 예측을 사용하여 인코딩되면, 인트라 예측 프로세싱 유닛 (164) 은 비디오 블록에 대한 예측 화소 블록을 생성하기 위해 인트라 예측을 수행할 수도 있다. 예를 들어, 인트라 예측 프로세싱 유닛 (164) 은 비트스트림에서의 신택스 엘리먼트들에 기초하여 비디오 블록에 대한 인트라 예측 모드를 결정할 수도 있다. 인트라 예측 프로세싱 유닛 (164) 은 인트라 예측 모드를 사용하여 공간적으로 이웃하는 비디오 블록들에 기초하여 비디오 블록에 대한 예측 화소 블록을 생성할 수도 있다.
모션 보상 유닛 (162) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여 제 1 참조 화상 리스트 (리스트 0) 및 제 2 참조 화상 리스트 (리스트 1) 를 구성할 수도 있다. 비트스트림이 MVC-호환 3DV 또는 AVC-호환 3DV를 사용하여 인코딩되는 예들에서, 리스트 0 및/또는 리스트 1은 인터 뷰 참조 화상들을 포함할 수도 있다. 비트스트림이 AVC-호환 3DV를 사용하여 인코딩되는 예들에서, 리스트 0 및/또는 리스트 1에서의 인터 뷰 참조 화상들은 깊이 맵들에 기초하여 합성된 참조 화상들을 포함할 수도 있다. 더욱이, 비디오 블록이 인터 예측을 사용하여 인코딩되면, 엔트로피 디코딩 유닛 (150) 은 비디오 블록에 대한 모션 정보를 추출할 수도 있다. 모션 보상 유닛 (162) 은, 비디오 블록의 모션 정보에 기초하여, 비디오 블록에 대한 하나 이상의 참조 블록들을 결정할 수도 있다. 모션 보상 유닛 (162) 은, 비디오 블록에 대한 하나 이상의 참조 블록들에 기초하여, 비디오 블록에 대한 예측 화소 블록을 생성할 수도 있다.
복원 유닛 (158) 은 비디오 블록에 대한 잔차 화소 블록 및 비디오 블록의 예측 화소 블록에 기초하여 비디오 블록을 복원할 수도 있다. 특히, 복원 유닛 (158) 은 잔차 화소 블록의 샘플들 (예컨대, 루마 또는 크로마 성분들) 을 예측 화소 블록의 대응하는 샘플들에 가산하여 비디오 블록을 복원할 수도 있다. 필터 유닛 (159) 은 블록화제거 동작을 수행하여 비디오 블록과 연관된 블록화 아티팩트들을 감소시킬 수도 있다. 비디오 디코더 (30) 는 비디오 블록들을 디코딩된 화상 버퍼 (160) 에 저장할 수도 있다. 디코딩된 화상 버퍼 (160) 는 후속하는 모션 보상, 인트라 예측, 및 디스플레이 디바이스, 이를테면 도 1의 디스플레이 디바이스 (32) 상의 프레젠테이션을 위해 참조 화상들을 제공할 수도 있다. 예를 들면, 비디오 디코더 (30) 는, 디코딩된 화상 버퍼 (160) 에서의 비디오 블록들에 기초하여, 다른 CU들의 PU들에 대한 인트라 예측 또는 인터 예측 동작들을 수행할 수도 있다.
도 4는 본 개시물의 하나 이상의 기법들에 따른, 비디오 데이터를 인코딩하는 프로세스의 부분으로서 비디오 인코더 (20) 에 의해 수행되는 일 예의 동작 (200) 을 도시하는 흐름도이다. 도 4의 흐름도 및 다음의 도면들의 흐름도들은 예들로서 제공된다. 다른 예들에서, 본 개시물의 기법들은 도 4의 예 및 다음의 도면들에서 도시된 것들에 비해 많거나, 적거나, 또는 상이한 단계들을 사용하여 구현될 수도 있다.
도 4의 예에서, 비디오 인코더 (20) 는 적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 NAL 단위를 생성할 수도 있다 (202). 제 1 신택스 엘리먼트는 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타낼 수도 있다. 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 특정 NAL 단위 유형에 속하는 NAL 단위 내에 캡슐화된다. 제 2 신택스 엘리먼트는 NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 3DV 헤더 확장을 포함하는지를 나타낼 수도 있다. AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다. MVC-호환 3DV 헤더 확장은 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함한다. 비디오 인코더 (20) 는 그 NAL 단위를 포함하는 비트스트림을 출력할 수도 있다 (204).
도 5는 본 개시물의 하나 이상의 기법들에 따른, 비디오 디코더 (30) 에 의해 수행되는 일 예의 동작 (230) 을 도시하는 흐름도이다. 도 5의 예에서, 비디오 디코더 (30) 는 적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 NAL 단위를 수신할 수도 있다 (232). 제 1 신택스 엘리먼트는 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타낼 수도 있다. 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 특정 NAL 단위 유형에 속하는 NAL 단위 내에 캡슐화된다. 비디오 디코더 (30) 는, 제 2 신택스 엘리먼트에 적어도 부분적으로 기초하여, NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 3DV 헤더 확장을 포함하는지를 결정할 수도 있다 (234). AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함할 수도 있다. MVC-호환 3DV 헤더 확장은 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가질 수도 있고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함할 수도 있다.
도 6은 본 개시물의 하나 이상의 기법들에 따른, 인코딩된 비디오 데이터를 디코딩하는 프로세스의 부분으로서 비디오 디코더 (30) 에 의해 수행되는 다른 예의 동작 (250) 을 도시하는 흐름도이다. 도 6은 도 5의 동작 (230) 의 더 구체적인 예일 수도 있다. 도 6의 예에서, 비디오 디코더 (30) 는 NAL 단위를 포함하는 비트스트림을 수신할 수도 있다 (252). 비디오 디코더 (30) 는 그 비트스트림으로부터 NAL 단위 유형 신택스 엘리먼트를 파싱할 수도 있다 (254). 비디오 디코더 (30) 는 그 다음에 NAL 단위 유형 신택스 엘리먼트가 특정 값 (예컨대, 21) 을 가지는지의 여부를 결정할 수도 있다 (256). NAL 단위 유형 신택스 엘리먼트가 특정 값을 가진다는 결정 (256의 "예") 에 응답하여, 비디오 디코더 (30) 는 비트스트림으로부터 3DV-표시 엘리먼트 (예컨대, avc_based_3dv_flag) 를 파싱할 수도 있다 (258). 3DV-표시 엘리먼트는 NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하는지 또는 MVC-호환 3DV 헤더 확장을 포함하는지를 나타낼 수도 있다. 비트스트림으로부터 3DV-표시 신택스 엘리먼트를 파싱한 후, 비디오 디코더 (30) 는, NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함한다는 것을 3DV-표시 신택스 엘리먼트가 나타내는지의 여부를 결정할 수도 있다 (260).
NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함한다는 것을 3DV-표시 신택스 엘리먼트가 나타낸다는 결정 (260의 "예") 에 응답하여, 비디오 디코더 (30) 는 비트스트림으로부터 AVC-호환 3DV 헤더 확장의 신택스 엘리먼트들을 파싱할 수도 있다 (262). NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함하지 않는다는 것을 3DV-표시 신택스 엘리먼트가 나타낸다는 결정 (260의 "아니오") 에 응답하여, 비디오 디코더 (30) 는 비트스트림으로부터 MVC-호환 3DV 헤더 확장의 신택스 엘리먼트들을 파싱할 수도 있다 (264).
NAL 단위 유형 신택스 엘리먼트가 특정 값과 동일하지 않다는 결정 (256의 "아니오") 에 응답하여 또는 비트스트림으로부터 AVC-호환 3DV 헤더 확장 또는 MVC-호환 3DV 헤더 확장을 파싱한 후, 비디오 디코더 (30) 는 비트스트림으로부터 NAL 단위 내에 캡슐화된 RBSP를 파싱할 수도 있다 (266). 비디오 디코더 (30) 는 그 다음에 NAL 단위 내에 캡슐화된 RBSP로부터 파싱된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터를 복원할 수도 있다 (268). 따라서, NAL 단위의 NAL 단위 헤더가 AVC-호환 3DV 헤더 확장을 포함한다는 것을 3DV-표시 신택스 엘리먼트가 나타내면, 비디오 디코더 (30) 는 AVC-호환 3DV 헤더 확장에 적어도 부분적으로 기초하여 비디오 데이터를 디코딩할 수도 있다.
도 7은 일 예의 MVC-호환 3DV 디코딩 순서를 도시하는 개념도이다. 도 7의 예에서, 각각의 정사각형은 뷰 성분에 대응한다. 정사각형들의 열들은 액세스 단위들에 대응한다. 각각의 액세스 단위는 시간 인스턴스의 모든 뷰들의 코딩된 화상들을 포함하도록 정의될 수도 있다. 정사각형들의 행들은 뷰들에 대응한다. 도 7의 예에서, 액세스 단위들은 T0, ..., T7로 라벨 표시되고 뷰들은 S0, ..., S7로 라벨 표시된다. 액세스 단위의 각각의 뷰 성분이 다음 액세스 단위의 임의의 뷰 성분 전에 디코딩되기 때문에, 도 7의 디코딩 순서는 시간 우선 코딩 (time-first coding) 이라고 지칭될 수도 있다. 도 7의 예에 도시된 바와 같이, 액세스 단위들의 디코딩 순서는 뷰들의 출력 또는 디스플레이 순서와 동일하지 않을 수도 있다.
도 8은 일 예의 MVC 시간적 및 인터 뷰 예측 구조를 도시하는 개념도이다. 도 8의 예에서, 각각의 정사각형은 뷰 성분에 대응한다. "I"로 라벨 표시된 정사각형들은 인트라 예측된 뷰 성분들이다. "P"로 라벨 표시된 정사각형들은 단방향으로 인터 예측된 뷰 성분들이다. "B" 및 "b"로 라벨 표시된 정사각형들은 양방향으로 인터 예측된 뷰 성분들이다. "b"로 라벨 표시된 정사각형들은 "B" 라벨 표시된 정사각형들을 참조 화상들로서 사용할 수도 있다. 제 1 정사각형에서부터 제 2 정사각형을 가리키는 화살표는, 제 1 정사각형이 인터 예측에서 제 2정사각형에 대한 참조 화상으로서 이용가능하다는 것을 나타낸다. 도 8에서 수직 화살표들에 의해 나타낸 바와 같이, 동일한 액세스 단위의 상이한 뷰들에서의 뷰 성분들은 참조 화상들로서 이용가능할 수도 있다. 하나의 액세스 단위의 하나의 뷰 성분의 동일한 액세스 단위의 다른 뷰 성분에 대한 참조 화상으로서의 사용은 인터 뷰 예측으로서 지칭될 수도 있다.
MVC-호환 3DV에서, 인터 뷰 예측은, 다른 뷰에서의 뷰 성분이 인터 예측 참조 화상이었던 것처럼 구현될 수도 있다. 잠정적 인터 뷰 참조 화상들은, 아래의 도 10에 도시된 바와 같이, SPS MVC 확장에서 시그널링될 수도 있다. 참조 화상 리스트들은 인터 예측 또는 인터 뷰 예측 참조 화상들의 유연한 순서화를 가능하게 하기 위하여 참조 화상 리스트구성 프로세스 동안 수정될 수도 있다.
표 10
Figure pct00010
위의 표 10에서, 유형 기술자 ue(v) 를 갖는 신택스 엘리먼트들은, 좌측 비트를 첫째로 하는 0차 지수 골롬 (Exp-Golomb) 코딩을 사용하여 인코딩된 가변 길이 부호없는 정수들일 수도 있다. 유형 기술자들 u(3) 및 u(8) 을 갖는 신택스 엘리먼트들은 3 개 및 8 개 비트들을 각각 갖는 부호없는 정수들일 수도 있다. 비디오 인코더 (20) 는, 표 10의 SPS MVC 확장본에서, 각각의 뷰에 대해, 참조 화상 리스트 0 및 참조 화상 리스트 1을 형성하는데 사용될 수 있는 뷰들의 수를 시그널링할 수도 있다. 앵커 화상에 대한 예측 관계는, SPS MVC 확장본에서 시그널링된 바와 같이, 동일한 뷰의 (SPS MVC 확장본에서 시그널링된) 비-앵커 화상에 대한 예측 관계와 상이할 수도 있다.
비디오 코더는 시간적 및 뷰 예측 참조들을 유연하게 배열하기 위해 참조 화상 리스트 구성 프로세스를 수행할 수도 있다. 참조 화상 리스트 구성 프로세스를 수행하는 것은 잠재적인 코딩 효율 이득들뿐 아니라 에러 내성 또한 제공할 수도 있는데, 참조 화상 섹션들 및 용장성 화상 메커니즘들이 뷰 차원으로 확장될 수 있기 때문이다.
참조 화상 리스트 구성은 다음의 단계들을 포함할 수도 있다. 첫째, 비디오 코더는 H.264/AVC 표준에서 특정된 바와 같은 시간적 (인트라 뷰 (intra-view)) 참조 화상들에 대한 참조 화상 리스트 초기화 프로세스를, 다른 뷰들로부터의 참조 화상들의 사용 없이, 적용할 수도 있다. 둘째, 비디오 코더는 인터 뷰 참조 화상들이 SPS MVC 확장본에서 발생하는 순서로 리스트의 말단에 인터 뷰 참조 화상들을 첨부할 수도 있다. 셋째, 비디오 코더는 인트라 뷰 및 인터 뷰 참조 화상들 양쪽 모두에 대해 참조 화상 리스트 수정 (reference picture list modification; RPLM) 프로세스를 적용한다. 비디오 코더는 인터 뷰 참조 화상들을 MVC SPS 확장본에서 특정되는 바와 같은 그것들의 인덱스 값들에 의해 RPLM 커맨드들에서 식별할 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장되거나 또는 그것을 통해 송신될 수도 있고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은, 데이터 저장 매체들과 같은 유형의 (tangible) 매체에 대응하는 컴퓨터 판독가능 저장 매체들, 또는 예컨대 통신 프로토콜에 따라 한 장소에서 다른 장소로 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이런 방식으로, 컴퓨터 판독가능 매체들은 일반적으로 (1) 비일시적 (non-transitory) 인 유형의 (tangible) 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 반송파와 같은 통신 매체에 해당할 수도 있다. 데이터 저장 매체들은 본 개시물에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
비제한적인 예로, 이러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다. 예를 들어, 명령들이 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 연선 (twisted pair), 디지털 가입자 회선 (DSL), 또는 무선 기술들 이를테면 적외선, 라디오, 및/또는 마이크로파를 이용하여 송신된다면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 접속들, 반송파들, 신호들, 또는 다른 일시적인 매체들을 포함하지 않지만, 대신 비일시적 (non-transient), 유형의 저장 매체들을 지향하고 있음이 이해되어야 한다. 디스크 (disk 및 disc) 는 본원에서 사용되는 바와 같이, 콤팩트 디스크 (compact disc, CD), 레이저 디스크, 광 디스크, 디지털 다용도 디스크 (DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크를 포함하는데, 디스크들 (disk들) 은 보통 데이터를 자기적으로 재생하지만, 디스크들 (disc들) 은 레이저들로써 광적으로 데이터를 재생한다. 상기한 것들의 조합들은 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 프로세서들, 이를테면 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적회로들 (ASIC들), 필드 프로그램가능 로직 어레이들 (FPGA들), 또는 다른 동등한 집적 또는 개별 로직 회로에 의해 실행될 수도 있다. 따라서, 본원에서 사용되는 바와 같은 용어 "프로세서"는 앞서의 구조 또는 본원에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 말할 수도 있다. 덧붙여서, 일부 양태들에서, 본원에서 설명된 기능성은 인코딩 및 디코딩을 위해 구성되는, 또는 결합형 코덱 (codec) 으로 통합되는 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 본 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들 내에 완전히 구현될 수 있다.
본 개시내용의 기법들은 무선 핸드셋, 집적회로 (IC) 또는 IC들의 세트 (예컨대, 칩 셋) 을 포함하는, 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시물에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다. 대신에, 위에서 설명된 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛에 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명된 바와 같은 하나 이상의 프로세서들을 포함하는, 상호운용적 하드웨어 유닛들의 컬렉션에 의해 제공될 수도 있다.
다양한 예들이 설명되어 있다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (42)

  1. 비디오 데이터를 인코딩하는 방법으로서,
    적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 네트워크 추상화 계층 (network abstraction layer; NAL) 단위를 생성하는 단계로서, 상기 제 1 신택스 엘리먼트는 상기 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타내는, 상기 NAL 단위를 생성하는 단계를 포함하며,
    텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들이 상기 특정 NAL 단위 유형에 속하는 NAL 단위들 내에 캡슐화되며,
    상기 제 2 신택스 엘리먼트는 상기 NAL 단위의 NAL 단위 헤더가 고급 비디오 코딩 (Advanced Video Coding; AVC)-호환 3차원 비디오 (three-dimensional video; 3DV) 헤더 확장을 포함하는지 또는 멀티-뷰 코딩 (Multi-View Coding; MVC)-호환 헤더 확장을 포함하는지를 나타내며,
    상기 AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하고,
    상기 MVC-호환 3DV 헤더 확장은 상기 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하는, 비디오 데이터를 인코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 AVC-호환 3DV 헤더 확장은, 상기 NAL 단위가 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하는지 또는 깊이 뷰 성분의 코딩된 슬라이스를 캡슐화하는지에 상관없이 동일한 신택스 구조를 가지는, 비디오 데이터를 인코딩하는 방법.
  3. 제 1 항에 있어서,
    상기 NAL 단위가 MVC-호환 3DV 헤더 확장을 포함하면, 상기 NAL 단위는, 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하지 않으며;
    상기 NAL 단위는 깊이 뷰 성분의 코딩된 슬라이스를 캡슐화하며, 그리고
    상기 깊이 뷰 성분의 코딩된 슬라이스는 상기 NAL 단위가 상기 AVC-호환 3DV 헤더 확장을 포함하면 제 1 신택스 구조를 가지고, 상기 NAL 단위가 상기 MVC-호환 3DV 헤더 확장을 포함하면 제 2 신택스 구조를 가지며, 상기 제 2 신택스 구조는 상기 제 1 신택스 구조와는 상이한, 비디오 데이터를 인코딩하는 방법.
  4. 제 3 항에 있어서,
    상기 NAL 단위는 제 1 NAL 단위이며, 상기 특정 NAL 단위 유형은 제 1 NAL 단위 유형이며, 상기 MVC-호환 3DV 헤더 확장은 제 1 MVC-호환 3DV 헤더 확장이고,
    상기 방법은,
    제 2 NAL 단위 유형에 속하는 제 2 NAL 단위를 생성하는 단계로서, 상기 제 2 NAL 단위의 NAL 단위 헤더는 제 2 MVC-호환 3DV 헤더 확장을 포함하며, 상기 제 2 MVC-호환 3DV 헤더 확장은 상기 제 1 MVC-호환 3DV 헤더 확장과 동일한 신택스 구조를 가지며, 상기 제 2 NAL 단위는 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하는, 상기 제 2 NAL 단위를 생성하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  5. 제 1 항에 있어서,
    상기 제 1 신택스 엘리먼트는 상기 NAL 단위가 프리픽스 AVC 기반 3DV NAL 단위임을 나타내는, 비디오 데이터를 인코딩하는 방법.
  6. 제 1 항에 있어서,
    상기 제 2 신택스 엘리먼트는 상기 AVC-호환 3DV 헤더 확장 또는 상기 MVC-호환 3DV 헤더 확장 바로 앞에서 선행하는, 비디오 데이터를 인코딩하는 방법.
  7. 제 1 항에 있어서,
    상기 제 1 신택스 엘리먼트의 값은 21과 동일한, 비디오 데이터를 인코딩하는 방법.
  8. 제 1 항에 있어서,
    상기 NAL 단위는 제 3 신택스 엘리먼트 및 텍스처 뷰 성분의 슬라이스의 코딩된 표현을 포함하며, 상기 제 3 신택스 엘리먼트는 상기 텍스처 뷰 성분의 뷰 인덱스를 나타내며, 상기 비디오 데이터가 제 1 디코더 프로파일에 대해 인코딩되는 경우, 상기 제 3 신택스 엘리먼트는 상기 비디오 데이터가 제 2 디코더 프로파일에 대해 인코딩되는 경우보다 적은 수의 비트들을 상기 NAL 단위의 NAL 단위 헤더에 포함하는, 비디오 데이터를 인코딩하는 방법.
  9. 제 1 항에 있어서,
    모바일 컴퓨팅 디바이스에서 상기 비디오 데이터를 인코딩하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  10. 비디오 데이터를 디코딩하는 방법으로서,
    적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 네트워크 추상화 계층 (NAL) 단위를 수신하는 단계로서, 상기 제 1 신택스 엘리먼트는 상기 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타내며, 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 상기 특정 NAL 단위 유형에 속하는 NAL 단위들 내에 캡슐화되는, 상기 NAL 단위를 수신하는 단계; 및
    상기 제 2 신택스 엘리먼트에 적어도 부분적으로 기초하여, 상기 NAL 단위의 NAL 단위 헤더가 고급 비디오 코딩 (AVC)-호환 3차원 비디오 (3DV) 헤더 확장을 포함하는지 또는 멀티-뷰 코딩 (MVC)-호환 헤더 확장을 포함하는지를 결정하는 단계를 포함하며,
    상기 AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하고,
    상기 MVC-호환 3DV 헤더 3DV 확장은 상기 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하는, 비디오 데이터를 디코딩하는 방법.
  11. 제 10 항에 있어서,
    상기 AVC-호환 3DV 헤더 확장은, 상기 NAL 단위가 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하는지 또는 깊이 뷰 성분의 코딩된 슬라이스를 캡슐화하는지에 상관없이 동일한 신택스 구조를 가지는, 비디오 데이터를 디코딩하는 방법.
  12. 제 10 항에 있어서,
    상기 NAL 단위가 MVC-호환 3DV 헤더 확장을 포함하면, 상기 NAL 단위는, 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하지 않으며;
    상기 NAL 단위는 깊이 뷰 성분의 코딩된 슬라이스를 캡슐화하며, 그리고
    상기 깊이 뷰 성분의 코딩된 슬라이스는 상기 NAL 단위가 상기 AVC-호환 3DV 헤더 확장을 포함하면 제 1 신택스 구조를 가지고, 상기 NAL 단위가 상기 MVC-호환 3DV 헤더 확장을 포함하면 제 2 신택스 구조를 가지며, 상기 제 2 신택스 구조는 상기 제 1 신택스 구조와는 상이한, 비디오 데이터를 디코딩하는 방법.
  13. 제 12 항에 있어서,
    상기 NAL 단위는 제 1 NAL 단위이며, 상기 특정 NAL 단위 유형은 제 1 NAL 단위 유형이며, 상기 MVC-호환 3DV 헤더 확장은 제 1 MVC-호환 3DV 헤더 확장이고,
    상기 방법은,
    제 2 NAL 단위 유형에 속하는 제 2 NAL 단위를 수신하는 단계로서, 상기 제 2 NAL 단위의 NAL 단위 헤더는 제 2 MVC-호환 3DV 헤더 확장을 포함하며, 상기 제 2 MVC-호환 3DV 헤더 확장은 상기 제 1 MVC-호환 3DV 헤더 확장과 동일한 신택스 구조를 가지며, 상기 제 2 NAL 단위는 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하는, 상기 제 2 NAL 단위를 수신하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  14. 제 10 항에 있어서,
    상기 NAL 단위가 상기 AVC-호환 3DV 헤더 확장을 포함한다는 것을 상기 제 2 신택스 엘리먼트가 나타낸다는 결정에 응답하여, 상기 AVC-호환 3DV 헤더 확장에 적어도 부분적으로 기초하여 상기 비디오 데이터의 적어도 일부 (portion) 를 복원하는 단계; 및
    상기 NAL 단위의 상기 NAL 단위 헤더가 상기 MVC-호환 3DV 헤더 확장을 포함한다는 것을 상기 제 2 신택스 엘리먼트가 나타낸다는 결정에 응답하여, 상기 MVC-호환 3DV 헤더 확장에 적어도 부분적으로 기초하여 상기 비디오 데이터의 적어도 일부를 복원하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  15. 제 10 항에 있어서,
    상기 제 1 신택스 엘리먼트에 기초하여, 상기 NAL 단위가 프리픽스 AVC-호환 3DV NAL 단위라는 것을 결정하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  16. 제 10 항에 있어서,
    상기 제 2 신택스 엘리먼트는 상기 AVC-호환 3DV 헤더 확장 또는 상기 MVC-호환 3DV 헤더 확장 바로 앞에서 선행하는, 비디오 데이터를 디코딩하는 방법.
  17. 제 10 항에 있어서,
    상기 제 1 신택스 엘리먼트의 값은 21과 동일한, 비디오 데이터를 디코딩하는 방법.
  18. 제 10 항에 있어서,
    상기 NAL 단위는 제 3 신택스 엘리먼트 및 텍스처 뷰 성분의 슬라이스의 코딩된 표현을 포함하며, 상기 제 3 신택스 엘리먼트는 상기 텍스처 뷰 성분의 뷰 인덱스를 나타내며, 상기 비디오 데이터가 제 1 디코더 프로파일에 대해 인코딩되는 경우, 상기 제 3 신택스 엘리먼트는 상기 비디오 데이터가 제 2 디코더 프로파일에 대해 인코딩되는 경우보다 적은 수의 비트들을 상기 NAL 단위의 NAL 단위 헤더에 포함하는, 비디오 데이터를 디코딩하는 방법.
  19. 제 10 항에 있어서,
    모바일 컴퓨팅 디바이스에서 상기 비디오 데이터를 디코딩하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  20. 비디오 데이터를 인코딩하는 비디오 인코딩 디바이스로서,
    하나 이상의 프로세서들을 포함하며,
    상기 하나 이상의 프로세서들은,
    적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 네트워크 추상화 계층 (NAL) 단위를 생성하도록 구성되며,
    상기 제 1 신택스 엘리먼트는 상기 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타내며,
    텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들이 상기 특정 NAL 단위 유형에 속하는 NAL 단위들 내에 캡슐화되며,
    상기 제 2 신택스 엘리먼트는 상기 NAL 단위의 NAL 단위 헤더가 고급 비디오 코딩 (AVC)-호환 3차원 비디오 (3DV) 헤더 확장을 포함하는지 또는 멀티-뷰 코딩 (MVC)-호환 헤더 확장을 포함하는지를 나타내며,
    상기 AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하고,
    상기 MVC-호환 3DV 헤더 확장은 상기 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하는, 비디오 인코딩 디바이스.
  21. 제 20 항에 있어서,
    상기 AVC-호환 3DV 헤더 확장은, 상기 NAL 단위가 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하는지 또는 깊이 뷰 성분의 코딩된 슬라이스를 캡슐화하는지에 상관없이 동일한 신택스 구조를 가지는, 비디오 인코딩 디바이스.
  22. 제 20 항에 있어서,
    상기 NAL 단위가 MVC-호환 3DV 헤더 확장을 포함하면, 상기 NAL 단위는, 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하지 않으며;
    상기 NAL 단위는 깊이 뷰 성분의 코딩된 슬라이스를 캡슐화하며, 그리고
    상기 깊이 뷰 성분의 코딩된 슬라이스는 상기 NAL 단위가 상기 AVC-호환 3DV 헤더 확장을 포함하면 제 1 신택스 구조를 가지고, 상기 NAL 단위가 상기 MVC-호환 3DV 헤더 확장을 포함하면 제 2 신택스 구조를 가지며, 상기 제 2 신택스 구조는 상기 제 1 신택스 구조와는 상이한, 비디오 인코딩 디바이스.
  23. 제 22 항에 있어서,
    상기 NAL 단위는 제 1 NAL 단위이며, 상기 특정 NAL 단위 유형은 제 1 NAL 단위 유형이며, 상기 MVC-호환 3DV 헤더 확장은 제 1 MVC-호환 3DV 헤더 확장이고,
    상기 하나 이상의 프로세서들은,
    제 2 NAL 단위 유형에 속하는 제 2 NAL 단위를 생성하도록 더 구성되며,
    상기 제 2 NAL 단위의 NAL 단위 헤더는 제 2 MVC-호환 3DV 헤더 확장을 포함하며, 상기 제 2 MVC-호환 3DV 헤더 확장은 상기 제 1 MVC-호환 3DV 헤더 확장과 동일한 신택스 구조를 가지며, 상기 제 2 NAL 단위는 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하는, 비디오 인코딩 디바이스.
  24. 제 20 항에 있어서,
    상기 제 1 신택스 엘리먼트는 상기 NAL 단위가 프리픽스 AVC 기반 3DV NAL 단위임을 나타내는, 비디오 인코딩 디바이스.
  25. 제 20 항에 있어서,
    상기 제 2 신택스 엘리먼트는 상기 AVC 3DV 헤더 확장 또는 상기 MVC 3DV 헤더 확장 바로 앞에서 선행하는, 비디오 인코딩 디바이스.
  26. 제 20 항에 있어서,
    상기 제 1 신택스 엘리먼트의 값은 21과 동일한, 비디오 인코딩 디바이스.
  27. 제 20 항에 있어서,
    상기 NAL 단위는 제 3 신택스 엘리먼트 및 텍스처 뷰 성분의 슬라이스의 코딩된 표현을 포함하며, 상기 제 3 신택스 엘리먼트는 상기 텍스처 뷰 성분의 뷰 인덱스를 나타내며, 상기 비디오 데이터가 제 1 디코더 프로파일에 대해 인코딩되는 경우, 상기 제 3 신택스 엘리먼트는 상기 비디오 데이터가 제 2 디코더 프로파일에 대해 인코딩되는 경우보다 적은 수의 비트들을 상기 NAL 단위의 NAL 단위 헤더에 포함하는, 비디오 인코딩 디바이스.
  28. 제 20 항에 있어서,
    상기 비디오 인코딩 디바이스는 모바일 컴퓨팅 디바이스인, 비디오 인코딩 디바이스.
  29. 비디오 데이터를 디코딩하는 비디오 디코딩 디바이스로서,
    하나 이상의 프로세서들을 포함하며,
    상기 하나 이상의 프로세서들은,
    적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 네트워크 추상화 계층 (NAL) 단위를 수신하며; 및
    상기 제 2 신택스 엘리먼트에 적어도 부분적으로 기초하여, 상기 NAL 단위의 NAL 단위 헤더가 고급 비디오 코딩 (AVC)-호환 3차원 비디오 (3DV) 헤더 확장을 포함하는지 또는 멀티-뷰 코딩 (MVC)-호환 헤더 확장을 포함하는지를 결정하도록 구성되며,
    상기 제 1 신택스 엘리먼트는 상기 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타내며, 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 상기 특정 NAL 단위 유형에 속하는 NAL 단위들 내에 캡슐화되며,
    상기 AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하고,
    상기 MVC-호환 3DV 헤더 확장은 상기 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하는, 비디오 디코딩 디바이스.
  30. 제 29 항에 있어서,
    상기 AVC-호환 3DV 헤더 확장은, 상기 NAL 단위가 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하는지 또는 깊이 뷰 성분의 코딩된 슬라이스를 캡슐화하는지에 상관없이 동일한 신택스 구조를 가지는, 비디오 디코딩 디바이스.
  31. 제 29 항에 있어서,
    상기 NAL 단위가 MVC-호환 3DV 헤더 확장을 포함하면, 상기 NAL 단위는, 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하지 않으며;
    상기 NAL 단위는 깊이 뷰 성분의 코딩된 슬라이스를 캡슐화하며, 그리고
    상기 깊이 뷰 성분의 코딩된 슬라이스는 상기 NAL 단위가 상기 AVC-호환 3DV 헤더 확장을 포함하면 제 1 신택스 구조를 가지고, 상기 NAL 단위가 상기 MVC-호환 3DV 헤더 확장을 포함하면 제 2 신택스 구조를 가지며, 상기 제 2 신택스 구조는 상기 제 1 신택스 구조와는 상이한, 비디오 디코딩 디바이스.
  32. 제 31 항에 있어서,
    상기 NAL 단위는 제 1 NAL 단위이며, 상기 특정 NAL 단위 유형은 제 1 NAL 단위 유형이며, 상기 MVC-호환 3DV 헤더 확장은 제 1 MVC-호환 3DV 헤더 확장이고,
    상기 하나 이상의 프로세서들은,
    제 2 NAL 단위 유형에 속하는 제 2 NAL 단위를 수신하도록 더 구성되며,
    상기 제 2 NAL 단위의 NAL 단위 헤더는 제 2 MVC-호환 3DV 헤더 확장을 포함하며, 상기 제 2 MVC-호환 3DV 헤더 확장은 상기 제 1 MVC-호환 3DV 헤더 확장과 동일한 신택스 구조를 가지며, 상기 제 2 NAL 단위는 텍스처 뷰 성분의 코딩된 슬라이스를 캡슐화하는, 비디오 디코딩 디바이스.
  33. 제 29 항에 있어서,
    상기 하나 이상의 프로세서들은,
    상기 NAL 단위가 상기 AVC-호환 3DV 헤더 확장을 포함한다는 것을 상기 제 2 신택스 엘리먼트가 나타낸다는 결정에 응답하여, 상기 AVC-호환 3DV 헤더 확장에 적어도 부분적으로 기초하여 상기 비디오 데이터의 적어도 일부를 복원하며; 및
    상기 NAL 단위의 상기 NAL 단위 헤더가 상기 MVC-호환 3DV 헤더 확장을 포함한다는 것을 상기 제 2 신택스 엘리먼트가 나타낸다는 결정에 응답하여, 상기 MVC-호환 3DV 헤더 확장에 적어도 부분적으로 기초하여 상기 비디오 데이터의 적어도 일부를 복원하도록 구성되는, 비디오 디코딩 디바이스.
  34. 제 29 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 제 1 신택스 엘리먼트에 기초하여, 상기 NAL 단위가 프리픽스 AVC-호환 3DV NAL 단위라는 것을 결정하도록 구성되는, 비디오 디코딩 디바이스.
  35. 제 29 항에 있어서,
    상기 제 2 신택스 엘리먼트는 상기 AVC-호환 3DV 헤더 확장 또는 상기 MVC-호환 3DV 헤더 확장 바로 앞에서 선행하는, 비디오 디코딩 디바이스.
  36. 제 29 항에 있어서,
    상기 제 1 신택스 엘리먼트의 값은 21과 동일한, 비디오 디코딩 디바이스.
  37. 제 29 항에 있어서,
    상기 NAL 단위는 제 3 신택스 엘리먼트 및 텍스처 뷰 성분의 슬라이스의 코딩된 표현을 포함하며, 상기 제 3 신택스 엘리먼트는 상기 텍스처 뷰 성분의 뷰 인덱스를 나타내며, 상기 비디오 데이터가 제 1 디코더 프로파일에 대해 인코딩되는 경우, 상기 제 3 신택스 엘리먼트는 상기 비디오 데이터가 제 2 디코더 프로파일에 대해 인코딩되는 경우보다 적은 수의 비트들을 상기 NAL 단위의 NAL 단위 헤더에 포함하는, 비디오 디코딩 디바이스.
  38. 제 29 항에 있어서,
    모바일 컴퓨팅 디바이스는 상기 비디오 데이터를 디코딩하는, 비디오 디코딩 디바이스.
  39. 비디오 데이터를 인코딩하는 비디오 인코딩 디바이스로서,
    적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 네트워크 추상화 계층 (NAL) 단위를 생성하는 수단으로서, 상기 제 1 신택스 엘리먼트는 상기 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타내는, 상기 NAL 단위를 생성하는 수단을 포함하며,
    텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들이 상기 특정 NAL 단위 유형에 속하는 NAL 단위들 내에 캡슐화되며,
    상기 제 2 신택스 엘리먼트는 상기 NAL 단위의 NAL 단위 헤더가 고급 비디오 코딩 (AVC)-호환 3차원 비디오 (3DV) 헤더 확장을 포함하는지 또는 멀티-뷰 코딩 (MVC)-호환 헤더 확장을 포함하는지를 나타내며,
    상기 AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하며,
    상기 MVC-호환 3DV 헤더 확장은 상기 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하는, 비디오 인코딩 디바이스.
  40. 비디오 데이터를 디코딩하는 비디오 디코딩 디바이스로서,
    적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 네트워크 추상화 계층 (NAL) 단위를 수신하는 수단으로서, 상기 제 1 신택스 엘리먼트는 상기 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타내며, 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 상기 특정 NAL 단위 유형에 속하는 NAL 단위들 내에 캡슐화되는, 상기 NAL 단위를 수신하는 수단; 및
    상기 제 2 신택스 엘리먼트에 적어도 부분적으로 기초하여, 상기 NAL 단위의 NAL 단위 헤더가 고급 비디오 코딩 (AVC)-호환 3차원 비디오 (3DV) 헤더 확장을 포함하는지 또는 멀티-뷰 코딩 (MVC)-호환 헤더 확장을 포함하는지를 결정하는 수단을 포함하며,
    상기 AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하고,
    상기 MVC-호환 3DV 헤더 확장은 상기 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하는, 비디오 디코딩 디바이스.
  41. 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 비디오 인코딩 디바이스의 하나 이상의 프로세서들에 의해 실행되는 경우,
    적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 네트워크 추상화 계층 (NAL) 단위를 생성하도록 상기 비디오 인코딩 디바이스를 구성하며,
    상기 제 1 신택스 엘리먼트는 상기 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타내며,
    텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들이 상기 특정 NAL 단위 유형에 속하는 NAL 단위들 내에 캡슐화되며,
    상기 제 2 신택스 엘리먼트는 상기 NAL 단위의 NAL 단위 헤더가 고급 비디오 코딩 (AVC)-호환 3차원 비디오 (3DV) 헤더 확장을 포함하는지 또는 멀티-뷰 코딩 (MVC)-호환 헤더 확장을 포함하는지를 나타내며,
    상기 AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하고,
    상기 MVC-호환 3DV 헤더 확장은 상기 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하는, 컴퓨터 판독가능 저장 매체.
  42. 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 비디오 디코딩 디바이스의 하나 이상의 프로세서들에 의해 실행되는 경우,
    적어도 제 1 신택스 엘리먼트 및 제 2 신택스 엘리먼트를 포함하는 네트워크 추상화 계층 (NAL) 단위를 수신하며; 및
    상기 제 2 신택스 엘리먼트에 적어도 부분적으로 기초하여, 상기 NAL 단위의 NAL 단위 헤더가 고급 비디오 코딩 (AVC)-호환 3차원 비디오 (3DV) 헤더 확장을 포함하는지 또는 멀티-뷰 코딩 (MVC)-호환 헤더 확장을 포함하는지를 결정하도록 상기 비디오 디코딩 디바이스를 구성하며,
    상기 제 1 신택스 엘리먼트는 상기 NAL 단위가 특정 NAL 단위 유형에 속한다는 것을 나타내며, 텍스처 뷰 성분들 및 깊이 뷰 성분들의 코딩된 슬라이스들은 상기 특정 NAL 단위 유형에 속하는 NAL 단위들 내에 캡슐화되며,
    상기 AVC-호환 3DV 헤더 확장은 AVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하며,
    상기 MVC-호환 3DV 헤더 확장은 상기 AVC-호환 3DV 헤더 확장과는 상이한 신택스 구조를 가지고 MVC-호환 3DV와 연관된 신택스 엘리먼트들을 포함하는, 컴퓨터 판독가능 저장 매체.
KR1020147026905A 2012-02-28 2013-02-28 3차원 비디오 코딩을 위한 네트워크 추상화 계층 (nal) 단위 헤더 설계 KR20140142255A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261604436P 2012-02-28 2012-02-28
US61/604,436 2012-02-28
US13/779,468 2013-02-27
US13/779,468 US10447990B2 (en) 2012-02-28 2013-02-27 Network abstraction layer (NAL) unit header design for three-dimensional video coding
PCT/US2013/028319 WO2013130804A1 (en) 2012-02-28 2013-02-28 Network abstraction layer (nal) unit header design for three-dimensional video coding

Publications (1)

Publication Number Publication Date
KR20140142255A true KR20140142255A (ko) 2014-12-11

Family

ID=49002437

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147026905A KR20140142255A (ko) 2012-02-28 2013-02-28 3차원 비디오 코딩을 위한 네트워크 추상화 계층 (nal) 단위 헤더 설계

Country Status (7)

Country Link
US (1) US10447990B2 (ko)
EP (1) EP2820846A1 (ko)
JP (1) JP6199320B2 (ko)
KR (1) KR20140142255A (ko)
CN (1) CN104137551B (ko)
TW (1) TW201340723A (ko)
WO (1) WO2013130804A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979959B2 (en) 2012-04-20 2018-05-22 Qualcomm Incorporated Video coding with enhanced support for stream adaptation and splicing
US9479776B2 (en) 2012-07-02 2016-10-25 Qualcomm Incorporated Signaling of long-term reference pictures for video coding
WO2015131388A1 (en) * 2014-03-07 2015-09-11 Qualcomm Incorporated Simplification of depth intra mode coding in 3d video coding
CN107343220B (zh) 2016-08-19 2019-12-31 北京市商汤科技开发有限公司 数据处理方法、装置和终端设备
SG11202012940XA (en) 2018-06-26 2021-01-28 Huawei Tech Co Ltd High-level syntax designs for point cloud coding
US10812818B2 (en) * 2018-12-14 2020-10-20 Tencent America LLC Network abstraction unit layer type classes in network abstraction layer unit header
US11265357B2 (en) * 2019-10-10 2022-03-01 Microsoft Technology Licensing, Llc AV1 codec for real-time video communication
CN114762356B (zh) * 2019-12-13 2024-06-11 索尼集团公司 图像处理装置和方法
US11706428B2 (en) * 2020-04-06 2023-07-18 Tencent America LLC Method for signaling picture header in coded video stream

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070177671A1 (en) 2006-01-12 2007-08-02 Lg Electronics Inc. Processing multiview video
CN101375593A (zh) 2006-01-12 2009-02-25 Lg电子株式会社 处理多视图视频
US20080317124A1 (en) 2007-06-25 2008-12-25 Sukhee Cho Multi-view video coding system, decoding system, bitstream extraction system for decoding base view and supporting view random access
US8121191B1 (en) 2007-11-13 2012-02-21 Harmonic Inc. AVC to SVC transcoder
WO2010024925A1 (en) 2008-08-29 2010-03-04 Thomson Licensing View synthesis with heuristic view merging
WO2010043773A1 (en) 2008-10-17 2010-04-22 Nokia Corporation Sharing of motion vector in 3d video coding
WO2010070567A1 (en) 2008-12-19 2010-06-24 Koninklijke Philips Electronics N.V. Method and device for overlaying 3d graphics over 3d video
JP2010157821A (ja) 2008-12-26 2010-07-15 Victor Co Of Japan Ltd 画像符号化装置、画像符号化方法およびそのプログラム
CN105744284B (zh) 2009-02-19 2019-04-19 交互数字麦迪逊专利控股公司 使用3d视频格式的装置
JP4962525B2 (ja) 2009-04-08 2012-06-27 ソニー株式会社 再生装置、再生方法、およびプログラム
KR101097690B1 (ko) 2009-04-28 2011-12-22 파나소닉 주식회사 화상 복호 방법 및 화상 복호 장치
KR20120081022A (ko) * 2009-05-01 2012-07-18 톰슨 라이센싱 3d 비디오 코딩 포맷
US9124874B2 (en) 2009-06-05 2015-09-01 Qualcomm Incorporated Encoding of three-dimensional conversion information with two-dimensional video sequence
US8976871B2 (en) 2009-09-16 2015-03-10 Qualcomm Incorporated Media extractor tracks for file format track selection
CN102598646B (zh) 2009-11-13 2014-05-07 皇家飞利浦电子股份有限公司 3d视频中深度过渡的有效编码
US20110149032A1 (en) 2009-12-17 2011-06-23 Silicon Image, Inc. Transmission and handling of three-dimensional video content
JPWO2012029883A1 (ja) 2010-09-03 2013-10-31 ソニー株式会社 符号化装置および符号化方法、並びに復号装置および復号方法
CN103298978B (zh) 2010-11-12 2016-07-06 伊沃夸水技术私人有限公司 模块化电化学系统和方法
US9565449B2 (en) 2011-03-10 2017-02-07 Qualcomm Incorporated Coding multiview video plus depth content
US9706227B2 (en) 2011-03-10 2017-07-11 Qualcomm Incorporated Video coding techniques for coding dependent pictures after random access
US20120236934A1 (en) 2011-03-18 2012-09-20 Qualcomm Incorporated Signaling of multiview video plus depth content with a block-level 4-component structure

Also Published As

Publication number Publication date
WO2013130804A1 (en) 2013-09-06
US10447990B2 (en) 2019-10-15
TW201340723A (zh) 2013-10-01
JP6199320B2 (ja) 2017-09-20
CN104137551A (zh) 2014-11-05
EP2820846A1 (en) 2015-01-07
CN104137551B (zh) 2018-02-06
US20130222538A1 (en) 2013-08-29
JP2015511786A (ja) 2015-04-20

Similar Documents

Publication Publication Date Title
KR101697886B1 (ko) 가설 참조 디코더 파라미터 신택스 구조
KR101917936B1 (ko) 멀티-뷰 및 3 차원 비디오 코딩을 위한 참조 픽처 리스트 구성
US10447990B2 (en) Network abstraction layer (NAL) unit header design for three-dimensional video coding
WO2014107396A1 (en) Non-nested sei messages in video coding
WO2015009712A1 (en) Tiles and wavefront processing in multi-layer context
WO2014190171A1 (en) Video coding using sample prediction among color components
KR101968425B1 (ko) 비디오 코딩 확장본들의 캐리지를 위한 전송 스트림
KR101968376B1 (ko) 3차원 비디오에서의 비트스트림 추출

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2020101001498; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20200603

Effective date: 20200729

GRNO Decision to grant (after opposition)