KR20130141674A - 코딩 멀티뷰 비디오 플러스 심도 콘텐츠 - Google Patents
코딩 멀티뷰 비디오 플러스 심도 콘텐츠 Download PDFInfo
- Publication number
- KR20130141674A KR20130141674A KR1020137026625A KR20137026625A KR20130141674A KR 20130141674 A KR20130141674 A KR 20130141674A KR 1020137026625 A KR1020137026625 A KR 1020137026625A KR 20137026625 A KR20137026625 A KR 20137026625A KR 20130141674 A KR20130141674 A KR 20130141674A
- Authority
- KR
- South Korea
- Prior art keywords
- depth
- data
- view
- texture
- view component
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
본 개시물은 3D 비디오 블록 유닛들을 코딩하는 기법들을 기술한다. 일 예에서, 비디오 인코더는 3차원 비디오 데이터의 뷰를 나타내는 이미지의 적어도 일 부분으로부터 하나 이상의 텍스쳐 성분들을 수신하고, 그 이미지의 적어도 일부분에 대한 심도 맵 성분을 수신하고, 그 이미지의 부분에 대한 하나 이상의 텍스쳐 성분들 및 심도 맵 성분의 픽셀들을 나타내는 블록 유닛을 코딩하도록 구성된다. 이 코딩하는 것은 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 수신하는 것, 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터에 대응하는 심도 데이터를 수신하는 것, 그리고, 텍스쳐 데이터 및 심도 데이터가 공통 비트스트림 내에 캡슐화되도록 그 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 데이터 및 심도 데이터를 캡슐화하는 것을 포함한다.
Description
본 개시물은 비디오 코딩, 특히, 3차원 비디오 콘텐츠 코딩의 분야에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전, 디지털 직접 브로드캐스트 시스템들, 무선 전화기 핸드셋들과 같은 무선 통신 디바이스들, 무선 브로드캐스트 시스템들, 개인 휴대정보 단말기들 (PDAs), 랩탑 또는 데스크탑 컴퓨터들, 디지털 카메라들, 디지털 리코딩 디바이스들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들 등을 포함한, 광범위한 디바이스들에 포함될 수 있다. 디지털 비디오 디바이스들은 디지털 비디오를 좀더 효율적으로 송수신하기 위해, MPEG-2, MPEG-4, 또는 H.264/MPEG-4, 파트 10, AVC (Advanced Video Coding) 과 같은, 비디오 압축 기법들을 구현한다. 비디오 압축 기법들은 비디오 시퀀스들에 고유한 리던던시를 감소시키거나 또는 제거하기 위해 공간 및 시간 예측을 수행한다.
비디오 압축 기법들은 비디오 시퀀스들에 고유한 리던던시를 감소시키거나 또는 제거하기 위해 공간 예측 및/또는 시간 예측을 수행한다. 블록-기반의 비디오 코딩에 있어, 비디오 프레임 또는 슬라이스는 매크로블록들로 파티셔닝될 수도 있다. 각각의 매크로블록은 더 파티셔닝될 수도 있다. 인트라-코딩된 (I) 프레임 또는 슬라이스에서 매크로블록들은 이웃하는 매크로블록들에 대한 공간 예측을 이용하여 인코딩된다. 인터-코딩된 (P 또는 B) 프레임 또는 슬라이스에서 매크로블록들은 동일한 프레임 또는 슬라이스에서의 이웃하는 매크로블록들에 대한 공간 예측 또는 다른 참조 프레임들에 대한 시간 예측을 이용할 수도 있다.
비디오 데이터가 인코딩된 후, 비디오 데이터는 송신 또는 저장을 위해 패킷화될 수도 있다. 비디오 데이터는 ISO (International Organization for Standardization) 베이스 미디어 파일 포맷 및 그의 확장판들, 예컨대, AVC 와 같은 다양한 표준들 중 임의의 표준에 따르는 비디오 파일로 조합될 수도 있다.
H.264/AVC 에 기초하여 새로운 비디오 코딩 표준들을 개발하려는 노력들이 이루어져 왔다. 하나의 이런 표준은 H.264/AVC 에 대한 스케일러블 확장판인 스케일러블 비디오 코딩 (SVC) 표준이다. 또 다른 표준은 H.264/AVC 에 대한 멀티뷰 확장판이 되는 멀티-뷰 비디오 코딩 (MVC) 이다. MVC 의 합동 초안은 http://wftp3.itu.int/av-arch/jvt-site/2008_07_Hannover/JVT-AB204.zip 에서 입수가능한, 2008 년 7월, Germany, Hannover, 28th JVT meeting, "Joint Draft 8.0 on Multiview Video Coding", JVT-AB204 에 설명되어 있다. AVC 표준의 버전은 http://wftp3.itu.int/av-arch/jvt-site/2009_01_Geneva/JVT-AD007.zip 에서 입수 가능한, 2009년 2월, CH, Geneva, 30th JVT meeting, "Editors' draft revision to ITU-T Rec. H.264 | ISO/IEC 14496-10 Advanced Video Coding - in preparation for ITU-T SG 16 AAP Consent (in integrated form)", JVT-AD007 에 설명되어 있다. 이 문서는 AVC 사양에서 SVC 와 MVC 를 통합한다.
일반적으로, 본 개시물은 텍스쳐 및 심도 정보를 포함하는 비디오 데이터의 코딩을 지원하는 기법들을 기술한다. 텍스쳐 정보는 휘도 (brightness) 및 색차 (칼라) 정보와 같은, 2차원 화상을 렌더링하기 위한 정보를 지칭한다. 심도 정보는 심도 맵 (예컨대, 픽셀 당 기준으로 심도 값들) 또는 시차 맵 (예컨대, 픽셀 당 기준으로 수평 디스패리티) 과 같은, 3차원의 비디오를 형성할 때에 유용한 정보를 포함할 수도 있다.
일반적으로, 본 개시물은 3차원의 (3D) 비디오 렌더링을 지원하는 기법들을 기술한다. 특히, 본 개시물의 기법들은 텍스쳐 성분 및 심도 성분 (texture and depth components) 을 포함하는 3D 비디오 콘텐츠를 코딩하고 디코딩하는 것에 관한 것이다. 본 개시물은 또한 비디오 데이터에 대한 시그널링 기법들을 제안한다. 심도 성분들은 이미지의 심도 맵 (depth map) 으로부터 기인할 수도 있다. 3D 이미지 렌더링에서, 심도 맵들은 심도 성분들을 포함하며, 제공된 뷰잉 관점 (viewing perspective) 으로부터 가상 뷰들 (virtual views) 을 생성하는데 사용될 수 있다. 시그널링 기법들은 텍스쳐 및 심도 뷰 성분들, 심도 뷰 성분들의 예측 의존성, 뷰 성분 내 심도 뷰 성분과 그의 대응하는 텍스쳐 뷰 성분의 의존성, 및 텍스쳐 뷰 성분이 예컨대, 뷰 합성 예측을 위해 다른 시간 인스턴스의 심도 뷰 성분에 의존할 수 있는 지를 시그널링하는 것을 포함할 수도 있다. 시그널링은 또한 각각의 뷰와 연관되는 카메라 파라미터들을 제공하는 것을 포함할 수도 있다. 본 개시물에서 "코딩된 블록들" 로서 또한 간단히 지칭되는, 코딩된 블록 유닛들은, ITU-T H.264/AVC (Advanced Video Coding) 에서의 매크로블록들 또는 HEVC (High Efficiency Video Coding) 의 코딩 유닛들에 대응할 수도 있다.
본 개시물의 일 예에서, 뷰 성분의 텍스쳐 NAL 및 심도 NAL 은 연속되는 방법 (예컨대, VCL NAL 유닛 코딩 순서) 으로 편성될 수도 있다. 일부 예들에서, 시그널링 기법들이 이용될 수도 있으며, 이 기법들은 예를 들어, 새로운 NAL 유닛 유형으로 또는 NAL 유닛 헤더로 NAL 유닛이 심도 뷰 성분에 속하는지를 표시하고, 그 텍스쳐 뷰 성분으로부터 대응하는 심도 뷰 성분을 예측하는 것을 포함할 수도 있다. 다른 예들에서, 카메라 및 심도 콘텐츠에 관련된 파라미터들이 시그널링될 수도 있다. 파라미터들은 예를 들어, 공통 본질적인 카메라 파라미터들 및 외적인 카메라 파라미터들, 양자화된 심도 값으로부터 실-세계 심도 값에의 맵핑, 상이한 외적인 카메라 파라미터들 (예컨대, 각각의 뷰의 전환) 등을 포함할 수도 있다.
일 예에서, 본 개시물은 비디오 데이터를 코딩하는 방법에 관한 것으로, 이 방법은 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 포함하는 텍스쳐 뷰 성분을 수신하는 단계, 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는 심도 뷰 성분을 수신하는 단계, 및 텍스쳐 뷰 성분 및 심도 뷰 성분이 공통 비트스트림 내에 캡슐화되도록, 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 뷰 성분 및 심도 뷰 성분을 캡슐화하는 단계를 포함한다.
또 다른 예에서, 본 개시물은 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 포함하는 텍스쳐 뷰 성분을 수신하고, 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는 심도 뷰 성분을 수신하고, 그리고, 텍스쳐 뷰 성분 및 심도 뷰 성분이 공통 비트스트림 내에 캡슐화되도록, 뷰의 시간 인스턴스에 대한 뷰 성분에서 뷰 성분 텍스쳐 및 심도 뷰 성분을 캡슐화하도록 구성된 비디오 코더를 포함하는, 비디오 데이터를 프로세싱하는 디바이스에 관한 것이다.
또 다른 예에서, 본 개시물은 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 포함하는 텍스쳐 뷰 성분을 수신하는 수단, 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는 심도 뷰 성분을 수신하는 수단, 및 텍스쳐 뷰 성분 및 심도 뷰 성분이 공통 비트스트림 내에 캡슐화되도록, 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 뷰 성분 및 심도 뷰 성분을 캡슐화하는 수단을 포함하는, 비디오 데이터를 프로세싱하는 디바이스에 관한 것이다.
본 개시물에서 설명하는 기법들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 소프트웨어는 프로세서에서 실행될 수도 있으며, 이 프로세서는 마이크로프로세서, 주문형 집적회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 (FPGA), 또는 디지털 신호 프로세서 (DSP), 또는 다른 등가의 통합 또는 이산 로직 회로와 같은 하나 이상의 프로세서들을 지칭할 수도 있다. 이 기법들을 실행하는 명령들을 포함하는 소프트웨어는 컴퓨터-판독가능 매체에 초기에 저장되고, 프로세서에 의해 로드되어 실행될 수도 있다.
따라서, 본 개시물은 또한 명령들이 저장되어 있는 컴퓨터-판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품에 관한 것이고, 명령들은 실행될 때, 비디오 인코딩 디바이스의 프로세서로 하여금, 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 포함하는 텍스쳐 뷰 성분을 수신하게 하고, 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는 심도 뷰 성분을 수신하게 하며, 텍스쳐 뷰 성분 및 심도 뷰 성분이 공통 비트스트림 내에 캡슐화되도록, 뷰의 시간 인스턴스에 대한 뷰 성분에서 뷰 성분 텍스쳐 및 심도 뷰 성분을 캡슐화하게 한다.
또 다른 예에서, 본 개시물은 비디오 데이터를 코딩하는 방법에 관한 것으로, 이 방법은 비디오 데이터의 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 뷰 성분 및 심도 뷰 성분을 캡슐화하는 공통 비트스트림을 수신하는 단계로서, 상기 텍스쳐 뷰 성분은 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 포함하며 상기 심도 뷰 성분은 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는, 상기 공통 비트스트림을 수신하는 단계, 및 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 뷰 성분 및 심도 뷰 성분을 캡슐화하는 단계를 포함한다.
또 다른 예에서, 본 개시물은 비디오 데이터의 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 뷰 성분 및 심도 뷰 성분을 캡슐화하는 공통 비트스트림을 수신하고, 그리고, 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 뷰 성분 및 심도 뷰 성분을 분리하도록 구성된 비디오 코더를 포함하며, 상기 텍스쳐 뷰 성분은 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 포함하며 상기 심도 뷰 성분은 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는, 비디오 데이터를 프로세싱하는 디바이스에 관한 것이다.
또 다른 예에서, 본 개시물은 비디오 데이터의 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 뷰 성분 및 심도 뷰 성분을 캡슐화하는 공통 비트스트림을 수신하는 수단으로서, 상기 텍스쳐 뷰 성분은 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 포함하며 상기 심도 뷰 성분은 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는, 상기 공통 비트스트림을 수신하는 수단, 및 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 뷰 성분 및 심도 뷰 성분을 분리하는 수단을 포함하는, 비디오 데이터를 프로세싱하는 디바이스에 관한 것이다.
또 다른 예에서, 본 개시물은 명령들이 저장되어 있는 컴퓨터-판독가능 저장 매체를 포함하고, 명령들은 실행될 때, 비디오 디코딩 디바이스의 프로세서로 하여금, 비디오 데이터의 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 뷰 성분 및 심도 뷰 성분을 캡슐화하는 공통 비트스트림을 수신하게 하고, 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 뷰 성분 및 심도 뷰 성분을 분리하게 하며, 상기 텍스쳐 뷰 성분은 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 포함하며 상기 심도 뷰 성분은 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는, 컴퓨터 프로그램 제품에 관한 것이다.
하나 이상의 본 개시물의 양태들의 세부 사항들이 첨부도면 및 아래의 상세한 설명에서 개시된다. 본 개시물에서 설명하는 본 기법들의 다른 특징들, 목적들, 및 이점들은 설명 및 도면들로부터, 그리고 청구항들로부터 명백히 알 수 있을 것이다.
도 1 은 본 개시물의 기법들 중 하나 이상의 기법들을 구현하는데 사용될 수도 있는 비디오 인코딩 및 디코딩 시스템의 일 예를 예시하는 블록도이다.
도 2 는 도 1 의 비디오 인코더의 일 예를 더 상세히 예시하는 블록도이다.
도 3a 는 본 개시물의 기법들 중 하나 이상의 기법들의 구현예에서 사용될 수도 있는 비트스트림 구조의 일 예를 예시하는 개념도이다.
도 3b 는 도 3a 의 비트스트림 구조에 포함될 수도 있는 뷰의 일 예를 예시하는 개념도이다.
도 4a 는 예시적인 MVC 예측 패턴을 예시하는 개념도이다.
도 4b 는 2개의 뷰들에 대한 멀티뷰 비디오 코딩 (MVC) 호환가능한 멀티뷰 비디오-플러스 심도 (MVD) 코딩을 예시하는 개념도이다.
도 4c 는 3개 이상의 뷰들에 대한 MVC-호환가능한 MVD 코딩을 예시하는 개념도이다.
도 4d 는 다수의 뷰들에 대한 MVC-호환가능한 MVD 코딩을 예시하는 개념도이다.
도 5 는 본 개시물에 부합하는 비디오 인코더의 예시적인 동작을 예시하는 흐름도이다.
도 6 은 도 1 의 비디오 디코더의 일 예를 더 상세히 예시하는 블록도이다.
도 7 은 본 개시물에 부합하는 비디오 디코더의 예시적인 동작을 예시하는 흐름도이다.
도 2 는 도 1 의 비디오 인코더의 일 예를 더 상세히 예시하는 블록도이다.
도 3a 는 본 개시물의 기법들 중 하나 이상의 기법들의 구현예에서 사용될 수도 있는 비트스트림 구조의 일 예를 예시하는 개념도이다.
도 3b 는 도 3a 의 비트스트림 구조에 포함될 수도 있는 뷰의 일 예를 예시하는 개념도이다.
도 4a 는 예시적인 MVC 예측 패턴을 예시하는 개념도이다.
도 4b 는 2개의 뷰들에 대한 멀티뷰 비디오 코딩 (MVC) 호환가능한 멀티뷰 비디오-플러스 심도 (MVD) 코딩을 예시하는 개념도이다.
도 4c 는 3개 이상의 뷰들에 대한 MVC-호환가능한 MVD 코딩을 예시하는 개념도이다.
도 4d 는 다수의 뷰들에 대한 MVC-호환가능한 MVD 코딩을 예시하는 개념도이다.
도 5 는 본 개시물에 부합하는 비디오 인코더의 예시적인 동작을 예시하는 흐름도이다.
도 6 은 도 1 의 비디오 디코더의 일 예를 더 상세히 예시하는 블록도이다.
도 7 은 본 개시물에 부합하는 비디오 디코더의 예시적인 동작을 예시하는 흐름도이다.
본 개시물은 텍스쳐 및 심도 정보를 포함하는 비디오 데이터의 코딩을 지원하는 기법들을 기술한다. 텍스쳐 정보는 휘도 (brightness) 및 색차 (칼라) 정보와 같은, 2차원 (2D) 화상을 렌더링하기 위한 정보를 지칭한다. 심도 정보는 심도 맵 (예컨대, 픽셀 당 기준으로 심도 값들) 또는 시차 맵 (예컨대, 픽셀 당 기준으로 수평 디스패리티) 과 같은 3D 비디오를 형성할 때에 유용한 정보를 포함할 수도 있다.
설명되는 기법들은 3차원 (3D) 비디오 콘텐츠의 코딩에 관련된다. 특히, 이들 기법들은 MVC 비트스트림의 하나 이상의 뷰들의 텍스쳐 성분들에 대해 심도 성분들을 제공하는 것에 관련된다. 3D 비디오 콘텐츠는 예를 들어, 멀티뷰 비디오-플러스 심도 (MVD) 데이터로서 표현될 수도 있다. 즉, 이들 기법들은 멀티뷰 비디오 코딩 (MVC) 비트스트림과 유사한 비트스트림을 인코딩하는데 적용될 수도 있으며, 여기서, MVC 비트스트림의 임의의 또는 모든 뷰들은 심도 뷰 성분들과 같은 심도 정보를 더 포함할 수도 있다.
심도 추정 및 가상 뷰 합성에 기초한 비디오 변환이 3D 비디오 애플리케이션들과 같은, 3D 이미지를 생성하는데 사용될 수도 있다. 특히, 장면의 가상 뷰들이 장면의 3D 뷰를 생성하는데 사용될 수도 있다. 장면의 기존 뷰에 기초한 장면의 가상 뷰의 생성은 관례적으로 가상 뷰를 합성하기 전에 오브젝트 심도 값들을 추정함으로써 달성된다. 심도 추정은 스테레오 쌍들 또는 모노스코픽 (monoscopic) 콘텐츠로부터 오브젝트들 (objects) 과 카메라 평면 사이의 절대 또는 상대적인 거리들을 추정하는 프로세스이다. 심도 정보는 심도 맵 (예컨대, 픽셀 당 기준으로 심도 값들) 또는 시차 맵 (예컨대, 픽셀 당 기준으로 수평 디스패리티) 과 같은, 3차원의 비디오를 형성할 때에 유용한 정보를 포함할 수도 있다.
그레이-레벨 이미지 심도 맵으로 대개 표현되는, 추정된 심도 정보는, 심도 이미지 기반 렌더링 (DIBR) 기법들을 이용하여 가상 뷰들의 임의의 앵글을 생성하는데 이용될 수 있다. 멀티-뷰 시퀀스들이 효율적인 인터-뷰 압축의 도전들에 직면하는 전통적인 3차원의 텔레비전 (3DTV) 시스템들에 비해, 심도 맵 기반의 시스템은 효율적으로 인코딩될 수 있는 심도 맵(들) 과 함께 오직 하나 또는 몇 개의 뷰들을 송신함으로써 대역폭의 사용을 감소시킬 수도 있다. 심도 맵 기반의 변환에 사용되는 심도 맵(들) 은 뷰 합성에 사용되기 전에 최종 사용자들에 의해 (예컨대, 스케일링 (scaling) 을 통해서) 제어가능할 수도 있다. 커스터마이즈된 가상 뷰들이 상이한 양의 인식 심도로 생성될 수도 있다. 또한, 심도의 추정은 오직 하나의-뷰 2D 콘텐츠가 이용가능한 모노스코픽 비디오를 이용하여 수행될 수 있다.
MVC 는 장면의 2개 이상의 뷰들의 인코딩을 지원하는 ITU-T H.264 인코딩 표준의 확장판이다. HEVC 의 MVC 확장판이 또한 제안되어 있다. 미가공 비디오 데이터를 캡쳐할 때, 2개 이상의 카메라들이 장면의 촬영 (filming) 동안 작동할 수도 있으며, 카메라들의 각각이 상이한 관점으로부터 각각의 뷰에 대한 데이터를 생성할 수도 있다. MVC 에 따라서, 뷰들 각각은 인코딩될 수도 있으며, 뷰들은 도 4a 에 예시된 바와 같이, 다른 코딩된 뷰들의 화상들을 참조 화상들 (인터-뷰 예측) 로서 뿐만 아니라, 동일한 뷰의 다른 화상들을 참조 화상들 (시간 예측) 로서 이용하여, 인코딩될 수도 있다.
2개 이상의 카메라들에 의해 캡쳐된, 상이한 뷰들은 3D 비디오 데이터를 지원하는데 사용될 수도 있다. 2개의 뷰들은 광의 상이한 편광들 (polarizations) 을 이용하여 동시에 디스플레이될 수도 있으며, 뷰어는 뷰어의 눈들의 각각이 뷰들의 각각의 하나를 수신하도록 수동, 편광 안경들을 착용할 수도 있다. 이의 대안으로, 뷰어는 각각의 눈을 독립적으로 셔터링하는 능동 안경들을 착용할 수도 있으며, 디스플레이가 안경들과 동기하여, 각각의 눈의 이미지들 사이를 빨리 교번할 수도 있다. 일부 디스플레이들은 8개 만큼이나 많거나 또는 심지어 더 많은 뷰들을 디스플레이할 수 있으므로, 사용자들은 여러 앵글들로부터 디스플레이를 관찰하여, 여러 관점들로부터 장면을 볼 수도 있다.
본 기법들은 동일한 뷰에 대해 공통 비트스트림으로 텍스쳐 및 심도 정보 양자를 코딩하는 것을 수반한다. 비디오 디코더는 인코딩된 뷰의 텍스쳐 및 심도 정보로부터 하나 이상의 추가적인 뷰들을 생성할 수도 있다. 따라서, 8개의 뷰들의 풀 세트를 인코딩하는 대신, 예를 들어, 본 개시물의 기법들에 따른 인코더는 예를 들어, 각각의 뷰에 대해 텍스쳐 및 심도 정보를 포함한 4개 뷰들을 인코딩할 수도 있다. 본 개시물에서, 용어 "코딩" 은 인코딩 및/또는 디코딩 중 어느 하나 또는 양자를 지칭할 수도 있다.
좀더 구체적으로는, 본 개시물의 기법들은 동일한 비트스트림 내 동일한 뷰의 텍스쳐 및 심도 정보의 코딩을 지원하는 것에 관련된다. 텍스쳐 및 심도 정보에 대한 기존 코딩하는 기법들은 텍스쳐 및 심도 정보를 별개의 비트스트림들로 제공하는 것에 관련된다.
본 개시물의 일 양태에서, 텍스트 및 심도 정보가 동일한 비트스트림의 별개의 성분들로서 코딩될 수도 있으므로, 2개의 성분들이 서로로부터 용이하게 분리되게 허용될 수도 있다. 그 결과, 비트스트림이 디스플레이 디바이스들로 포워딩될 때, 그 비트스트림이 디스플레이 디바이스의 능력들에 따라서 적응될 수도 있다. 예를 들어, 양자의 성분들을 포함하는 비트스트림은 3D-레디 (ready) 디바이스들로 포워딩될 수도 있지만, 이 비트스트림은 필터링되어, 심도 정보 성분을 포함하지 않고, 2D-레디 디바이스들로 포워딩될 수도 있다.
좀더 자세하게 설명하면, 본 개시물은 뷰의 뷰 성분이 텍스쳐 및 심도 정보 양자를 포함하도록 비디오 데이터의 뷰에 대한 데이터를 제공하는 것을 제안한다. 뷰 성분은 특정의 뷰에 대해 공통 시간 인스턴스에 대한 모든 데이터를 포함하는 데이터의 유닛이다. VCL NAL 유닛으로서 또한 지칭되는 비디오 코딩 층 (VCL) 에서 네트워크 추상 계층 (NAL) 유닛은 텍스쳐 또는 심도 데이터와 같은 코딩된 비디오 데이터의 슬라이스 또는 프레임을 포함할 수도 있다. 본 개시물의 기법들은 공통 시간 인스턴스에 대한 텍스쳐 및 심도 VCL NAL 유닛들을 공통 뷰 성분에 속하는 것으로서 취급하는 것을 제안한다.
본 개시물의 기법들에 따르면, 동일한 뷰 성분에서 공통 시간 인스턴스에 대한 텍스쳐 및 심도 VCL NAL 유닛들을 제공함으로써, 텍스쳐 정보에 대한 어떤 코딩 데이터가 심도 정보를 코딩하는데 재사용될 수도 있다. 예를 들어, VCL NAL 유닛에 대한 심도 맵은 변위 벡터들을 이용하여 대응하는 텍스쳐 정보로부터 예측될 수도 있다. 종래의 MVC 와 같이, 인터-뷰 예측은 또한 다른 뷰들의 텍스쳐 정보에 상대적인 뷰들의 텍스쳐 정보를 코딩하는데 이용될 수도 있다.
게다가, 본 개시물은 제공되는 뷰들에 대한 카메라 파라미터들을 시그널링하고 뷰 합성 예측에서 그 카메라 파라미터들을 이용하는 기법들을 제공한다. 카메라 파라미터들을 이용하여, 비디오 디코더는 예를 들어, 심도 이미지 기반 렌더링 (DIBR) 을 이용하여, 참조 뷰 및 대응하는 심도 맵으로부터 가상 뷰를 합성할 수 있다. 합성된 가상 뷰는 또 다른 뷰를 인코딩하기 위한 예측으로서 사용될 수도 있다. 일 예에서, 참조 뷰는 심도 맵 자체일 수도 있다. 이 방법으로, 카메라 파라미터들 및 하나의 참조 심도 맵이 가상의 현재 심도 맵을 합성하기에 충분할 수도 있다.
본원에서 설명하는 기법들은 텍스쳐 성분 및 심도 성분을 인코딩하여 그들을 함께 단일 비트스트림으로 캡슐화하는데 적용될 수도 있다. 시간의 단일 인스턴스에서 단일 뷰와 연관되는 텍스쳐 성분 및 심도 성분은 함께 인코딩되고, 비디오 데이터 유닛, 예컨대, 비디오 프레임 또는 슬라이스와 연관될 수도 있다. 본 개시물의 기법들에 따르면, 비디오 인코더는 뷰의 텍스쳐 성분과 연관되는 예측 데이터를 재사용하여, 뷰의 심도 성분을 코딩할 수도 있다. 이 방법으로, 인코더는 2개의 성분들 또는 2개의 뷰들 사이, 또는 합성된 뷰들에 대한 예측 의존성들을 이용하여 텍스쳐 성분 및 심도 성분을 인코딩하고, 비디오 데이터를 코딩하는데 유용할 예측 의존성들을 시그널링할 수도 있다. 게다가, 본 개시물은 다른 뷰들의 텍스쳐 정보에 상대적인, 뷰들의 텍스쳐 정보를 코딩하기 위해, 인터-뷰 예측의 기법들을 제공할 수도 있다. 이들 및 다른 본 개시물의 기법들이 이하에서 좀더 자세하게 설명될 수도 있다.
도 1 은 본 개시물의 기법들 중 하나 이상의 기법들을 구현하는데 사용될 수도 있는 비디오 인코딩 및 디코딩 시스템 (10) 의 일 예를 예시하는 블록도이다. 도 1 이 나타내는 바와 같이, 시스템 (10) 은 인코딩된 비디오를 목적지 디바이스 (16) 로 통신 채널 (15) 을 통해서 송신하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 목적지 디바이스 (16) 는 광범위한 디바이스들 중 임의의 디바이스를 포함할 수도 있다. 일부의 경우, 소스 디바이스 (12) 및 목적지 디바이스 (16) 중 어느 하나 또는 양자는 무선 핸드셋들, 소위 셀룰러 또는 위성 무선 전화기들, 또는 비디오 정보를 통신 채널 (15) 을 통해서 통신할 수 있는 임의의 무선 디바이스들과 같은, 무선 통신 디바이스들을 포함할 수도 있으며, 이 경우 통신 채널 (15) 은 무선이다. 그러나, 텍스쳐 및 심도 정보 양자를 포함하는 비디오 데이터를 코딩하는 것에 관련되는 본 개시물의 기법들은 반드시 무선 애플리케이션들 또는 설정들에 한정되지는 않는다. 이 기법들은 또한 물리적인 와이어들, 광 섬유들 또는 다른 물리적인 또는 무선 매체들을 통해서 통신하는 디바이스들을 포함한, 광범위한 다른 설정들 및 디바이스들에 유용할 수도 있다. 예를 들어, 인코딩된 비디오는 목적지 디바이스 (16) 에 의한 후속 취출, 디코딩, 및 디스플레이를 위해서 저장 디바이스 상에 저장될 수도 있다. 게다가, 인코딩 또는 디코딩 기법들은 또한 임의의 다른 디바이스와 반드시 통신할 필요가 없는 독립형 디바이스에 적용될 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (20), 심도 프로세싱 유닛 (21), 비디오 인코더 (22), 변조기/복조기 (모뎀) (23), 및 송신기 (24) 를 포함할 수도 있다. 목적지 디바이스 (16) 는 수신기 (26), 모뎀 (27), 비디오 디코더 (28), 및 디스플레이 디바이스 (30) 를 포함할 수도 있다. 본 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (22) 는 본 개시물의 기법들 중 하나 이상의 기법들을 비디오 인코딩 프로세스의 부분으로서 적용하도록 구성될 수도 있다. 이와 유사하게, 목적지 디바이스 (16) 의 비디오 디코더 (28) 는 본 개시물의 기법들 중 하나 이상의 기법들을 비디오 디코딩 프로세스의 부분으로서 적용하도록 구성될 수도 있다.
비디오 인코더 (22) 는 또한 변환, 양자화, 및 엔트로피 코딩 프로세스들을 적용하여, 잔여 블록들의 통신과 연관되는 비트 레이트를 추가로 감소시킬 수도 있다. 변환 기법들은 이산 코사인 변환들 (DCTs) 또는 개념적으로 유사한 프로세스들을 포함할 수도 있다. 이의 대안으로, 웨이블릿 변환들, 정수 변환들, 또는 다른 유형들의 변환들이 이용될 수도 있다. DCT 프로세스에서, 일 예로서, 픽셀 값들의 세트는 변환 계수들로 변환될 수도 있으며, 이 변환 계수들은 주파수 도메인에서 픽셀 값들의 에너지를 나타낼 수도 있다. 비디오 인코더 (22) 는 또한 변환 계수들을 양자화할 수도 있는데, 일반적으로 대응하는 변환 계수와 연관되는 비트수를 감소시키는 프로세스를 수반할 수도 있다. 엔트로피 코딩은 비트스트림으로의 출력을 위해 일괄 압축하는 하나 이상의 프로세스들을 포함할 수도 있으며, 여기서, 압축된 데이터는 예를 들어, 코딩 모드들의 시퀀스, 모션 정보, 코딩된 블록 패턴들, 및 양자화된 변환 계수들을 포함할 수도 있다. 엔트로피 코딩의 예들은 컨텍스트 적응 가변 길이 코딩 (CAVLC) 및 컨텍스트 적응 2진 산술 코딩 (CABAC) 을 포함하지만, 이에 한정되지 않는다.
코딩된 비디오 블록은 예측 블록을 생성하거나 또는 식별하는데 사용될 수 있는 예측 정보, 및 원래 블록을 재생성하기 위해 예측 블록에 적용될 수 있는 데이터의 잔여 블록으로 표현될 수도 있다. 예측 정보는 데이터의 예측 블록을 식별하는데 사용되는 하나 이상의 모션 벡터들을 포함할 수도 있다. 이 모션 벡터들을 이용하여, 비디오 디코더 (28) 는 잔여 블록들을 코딩하는데 사용되었던 예측 블록들을 재구성할 수도 있다. 따라서, 잔여 블록들의 세트 및 모션 벡터들의 세트 (그리고, 가능한 한 일부 추가적인 구문) 가 주어질 때, 비디오 디코더 (28) 는 원래 인코딩되었던 비디오 프레임을 재구성할 수 있다. 연속적인 비디오 프레임들 또는 다른 유형들의 코딩된 유닛들이 종종 유사하기 때문에, 모션 추정 및 모션 보상에 기초한 인터-코딩은 과도한 데이터 손실 없이 상대적으로 높은 압축의 양들을 달성할 수 있다. 인코딩된 비디오 시퀀스는 잔여 데이터의 블록들, (인터-예측 인코딩될 때) 모션 벡터들, 인트라-예측을 위한 인트라-예측 모드들의 표시들, 심도 성분 및 텍스쳐 성분에 관한 정보, 및 가능한 한, 구문 엘리먼트들의 유형들과 같은 다른 데이터를 포함할 수도 있다.
비디오 인코더 (22) 는 또한 인트라-예측 기법들을 이용하여, 공통 프레임 또는 슬라이스의 이웃하는 비디오 블록들에 상대적인 비디오 블록들을 인코딩할 수도 있다. 이 방법으로, 비디오 인코더 (22) 는 블록들을 공간적으로 예측할 수도 있다. 비디오 인코더 (22) 는 다양한 인트라-예측 모드들로 구성될 수도 있으며, 이 인트라-예측 모드들은 일반적으로 여러 공간 예측 방향들에 대응한다. 모션 추정에서와 같이, 비디오 인코더 (22) 는 블록의 휘도 성분에 기초하여 인트라-예측 모드를 선택한 후 그 인트라-예측 모드를 재사용하여 블록의 색차 성분들 (chrominance components) 을 인코딩하도록 구성될 수도 있다. 더욱이, 본 개시물의 기법들에 따르면, 비디오 인코더 (22) 는 루마 및 크로마 성분들을 포함하는 뷰의 텍스쳐 성분을 인코딩할 때에 사용되는 예측 관계를 재사용하여, 뷰의 심도 성분을 인코딩할 수도 있다. 게다가, 본 개시물의 기법들에 따르면, 비디오 인코더 (22) 는 다른 뷰들의 텍스쳐 성분들에 상대적인 뷰의 텍스쳐 성분들을 인코딩할 수도 있으며, 다른 뷰들의 심도 성분들에 상대적인 뷰의 심도 성분을 인코딩할 수도 있다. 일부 예들에서, 비디오 인코더 (22) 는 합성된 뷰의 텍스쳐 데이터에 상대적인 심도 성분을 인코딩할 수도 있다.
본 개시물의 기법들은 MVD 에서 텍스쳐 성분 및 심도 성분을 코딩하는 프로세스를 간소화할 수도 있으며, 하나의 뷰와 연관되는 텍스쳐 성분 및 심도 성분을 동일한 비트스트림으로 캡슐화함으로써 비트스트림 효율을 향상시킬 수도 있다. 이들 기법들은 또한 인트라-뷰 예측, 인터-뷰 예측, 및 뷰 합성 예측을 위한 정보를 제공하는 것을 포함할 수도 있다. 인트라-뷰 예측에서, 텍스쳐로부터 심도까지의 모션 예측에 관한 정보가 시그널링될 수도 있다. 인터-뷰 예측에서, 하나의 뷰로부터 다른 뷰로의 예측에 관한 정보가 시그널링될 수도 있다. 뷰 합성 예측은 텍스쳐 성분 및 심도 성분을 포함하는 참조 뷰로부터 가상 뷰의 합성을 가능하게 할 수도 있다.
도 1 의 예시된 시스템 (10) 은 단지 일 예이다. 본 개시물의 여러 기법들은 예측 인코딩을 지원하는 임의의 인코딩 디바이스에 의해, 또는 예측 디코딩을 지원하는 임의의 디코딩 디바이스에 의해, 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (16) 는 소스 디바이스 (12) 가 목적지 디바이스 (16) 로의 송신을 위해 코딩된 비디오 데이터를 생성하는 단지 이런 코딩 디바이스들의 예들이다. 일부의 경우, 디바이스들 (12 및 16) 은 디바이스들 (12 및 16) 의 각각이 비디오 인코딩 및 디코딩 성분들을 포함하도록, 실질적으로 대칭적 방법으로 동작할 수도 있다. 그러므로, 시스템 (10) 은 예컨대, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 전화 통신을 위해, 비디오 디바이스 (12) 와 비디오 디바이스 (16) 사이의 1-방향 또는 2-방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (20) 는 비디오 카메라와 같은 비디오 캡쳐 디바이스, 이전에 캡쳐된 비디오를 포함하는 비디오 아카이브, 또는 비디오 콘텐츠 제공자로부터 배급된 비디오를 포함할 수도 있다. 추가 대안적인 예로서, 비디오 소스 (20) 는 컴퓨터 그래픽스-기반의 데이터를 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및/또는 컴퓨터-생성된 비디오의 조합으로서 생성할 수도 있다. 일부의 경우, 비디오 소스 (20) 가 비디오 카메라이면, 소스 디바이스 (12) 및 목적지 디바이스 (16) 는 소위 카메라 폰들 또는 비디오 폰들, 또는 비디오 데이터를 조작하도록 구성된 다른 모바일 디바이스들, 예컨대 태블릿 컴퓨팅 디바이스들을 형성할 수도 있다. 각 경우에, 캡쳐되거나, 사전-캡쳐되거나, 또는 컴퓨터-생성된 비디오는 비디오 인코더 (22) 에 의해 인코딩될 수도 있다. 비디오 소스 (20) 는 뷰 (2) 를 캡쳐하여, 이를 심도 프로세싱 유닛 (21) 에 제공한다.
비디오 소스 (20) 는 뷰 (2) 의 오브젝트들에 대한 심도 이미지의 계산을 위해, 뷰 (2) 를 심도 프로세싱 유닛 (21) 에 제공한다. 심도 프로세싱 유닛 (21) 은 뷰 (2) 의 이미지에서의 오브젝트들에 대한 심도 값들을 자동적으로 계산하도록 구성될 수도 있다. 예를 들어, 심도 프로세싱 유닛 (21) 은 텍스쳐 정보에 기초하여 오브젝트들에 대한 심도 값들을 계산할 수도 있으며, 이 텍스쳐 정보는 휘도 및 색차 정보를 포함할 수도 있다. 일부 예들에서, 심도 프로세싱 유닛 (21) 은 사용자로부터 심도 정보를 수신하도록 구성될 수도 있다. 일부 예들에서, 비디오 소스 (20) 는 장면의 2개 이상의 뷰들을 상이한 관점들에서 캡쳐한 후, 2개 이상의 뷰들에서의 오브젝트들 사이의 디스패리티에 기초하여 장면 내 오브젝트들에 대한 심도 정보를 계산할 수도 있다. 여러 예들에서, 비디오 소스 (20) 는 표준 2차원 카메라, 장면의 입체적인 뷰를 제공하는 2개 이상의 카메라 시스템, 장면의 다수의 뷰들을 캡쳐하는 카메라 어레이, 또는 하나의 뷰 플러스 심도 정보를 캡쳐하는 카메라를 포함할 수도 있다.
심도 프로세싱 유닛 (21) 은 텍스쳐 성분들 (4) 및 심도 정보 (6) 를 비디오 인코더 (22) 로 전달할 수도 있다. 심도 프로세싱 유닛 (21) 은 또한 뷰 (2) 를 비디오 인코더 (22) 로 전달할 수도 있다. 심도 정보 (6) 는 뷰 (2) 에 대한 심도 맵 이미지를 포함할 수도 있다. 심도 맵은 디스플레이되는 영역 (예컨대, 블록, 슬라이스, 또는 프레임) 과 연관되는 픽셀들의 각 영역에 대한 심도 값들의 맵을 포함할 수도 있다. 픽셀들의 영역은 단일 픽셀 또는 하나 이상의 픽셀들의 그룹일 수도 있다. 심도 맵들의 일부 예들은 픽셀 당 하나의 심도 성분을 갖는다. 다른 예들에서, 픽셀 당 다수의 심도 성분들을 가질 수도 있다.
일부 예들에서, 심도 맵은 추정된다. 하나 보다 많은 뷰가 존재할 때, 하나 보다 많은 뷰가 이용가능할 때 심도 맵들을 추정하는데 스테레오 매칭이 사용될 수도 있다. 그러나, 2D 대 3D 변환에서는, 심도를 추정하는 것이 더 어려울 수도 있다. 그럼에도 불구하고, 여러 방법들에 의해 추정된 심도 맵이 심도-이미지-기반 렌더링 (DIBR) 에 기초하여 3D 렌더링하는데 사용될 수도 있다.
비디오 소스 (20) 가 장면의 다수의 뷰들을 제공할 수도 있지만, 심도 프로세싱 유닛 (21) 은 다수의 뷰들에 기초하여 심도 정보를 계산할 수도 있으며, 소스 디바이스 (12) 는 일반적으로 장면의 각각의 뷰에 대한 하나의 뷰 플러스 심도 정보를 송신할 수도 있다. 본 개시물의 일 예에서, 상이한 뷰들과 연관되는 파라미터들, 예컨대, 카메라 파라미터들이 송신되어, 참조 뷰 및 대응하는 심도 맵을 이용하여 가상 뷰를 합성하는데 디코더에 의해 후속하여 사용될 수도 있다. 카메라 파라미터들은 예를 들어, 본질적인 파라미터들 (예컨대, 초점 길이 및 수평 방향에서의 주 지점 오프셋 (principle point offset)) 및 외적인 파라미터들 (예컨대, 각각의 뷰에 대한 실-세계 수평 카메라 로케이션) 을 포함할 수도 있다. 일반적으로, 멀티-뷰 시퀀스의 각각의 뷰는 동일한 본질적인 파라미터들을 공유할 것이다. 따라서, 이들 파라미터들은 본질적인 파라미터들이 시퀀스의 모든 뷰들에 적용되도록, 시퀀스에 대해 한번 시그널링될 수도 있다. 이 방법으로, 각각의 시퀀스에 대해, 어떤 카메라 파라미터들이 시그널링되어 한번 통신되므로, 인코딩되어 송신되는 정보의 양을 감소시킬 수도 있다. 일 예에서, 카메라 파라미터들은 시퀀스 레벨에서 시그널링될 수도 있다.
일 예에서, 각각의 심도 맵 이미지는 8-비트 픽셀들을 이용하여 표현될 수도 있다. 심도 맵 이미지의 각각의 8-비트 픽셀에 있어, 양자화된 8-비트 심도 값에 맵핑하는 실-세계 z 값이 예컨대, DIBR 에 사용될 수도 있으며, 이 DIBR 은 디코딩 루프의 부분일 수도 있다. 시퀀스 레벨 또는 화상 레벨에서, 8-비트 심도 값으로부터 실-세계 z 값에 맵핑하는 함수가 시그널링되거나 또는 추정될 수도 있다. 이 예에서, 디폴트 심도 대 z 값 변환 함수들 (default depth to z value conversion functions), 예를 들어, 이 함수가 심도 값으로부터 z 값까지 반비례 함수임을 규정하는 표시가 시그널링될 수도 있다. 더욱이, 함수가 결정될 때, 심도 범위가 또한 예컨대, 시퀀스 파라미터들 세트로 시그널링될 수도 있다. 심도 값과 z-값 사이의 더 많은 복잡한 변환이 이용되는 예들에서, 심도 값 대 실-세계 z 값 (256 부동수) 를 포함하는 테이블이 시그널링될 수도 있다.
뷰 (2) 가 디지털 정지 화상일 때, 비디오 인코더 (22) 는 뷰 (2) 를 예를 들어, JPEG (Joint Photographic Experts Group) 이미지로서 인코딩하도록 구성될 수도 있다. 뷰 (2) 가 비디오 데이터의 프레임일 때, 비디오 인코더 (22) 는 예를 들어, MPEG (Motion Picture Experts Group), ISO (International Organization for Standardization)/ IEC (International Electrotechnical Commission ) MPEG-1 Visual, ISO/IEC MPEG-2 Visual, ISO/IEC MPEG-4 Visual, ITU (International Telecommunication Union) H.261, ITU-T H.262, ITU-T H.263, ITU-T H.264/MPEG-4, H.264 AVC (Advanced Video Coding), 차기 HEVC (High Efficiency Video Coding) 표준 (또한, H.265 로도 지칭됨), 또는 다른 비디오 인코딩 표준들과 같은, 비디오 코딩 표준에 따라서, 제 1 뷰 (50) 를 인코딩하도록 구성될 수도 있다. 비디오 인코더 (22) 는 각각의 뷰에 대해, 텍스쳐 데이터 및 심도 데이터 (예컨대, 텍스쳐 슬라이스들 및 심도 슬라이스들) 를 인코딩할 수도 있다. 비디오 인코더 (22) 는 텍스쳐 슬라이스들 및 심도 슬라이스들에 대한 네트워크 추상 계층 (NAL) 유닛들을 형성하고 특정의 시간 인스턴스에서의 특정의 뷰의 NAL 유닛들을 뷰 성분으로서 캡슐화할 수도 있다. 이 방법으로, 코딩된 비트스트림 (8) 은 심도 정보 (6) 와 함께, 인코딩된 이미지 데이터 또는 텍스쳐 정보 (4) 를 포함할 수도 있다. 비디오 인코더 (22) 는 코딩된 비트스트림 (8) 을 송신기 (24) 로 전달한다. 코딩된 비트스트림 (8) 은 코딩된 텍스쳐 정보 (4), 심도 정보 (6) 를 포함할 수도 있으며, 예를 들어, 예측 의존성들 및 카메라 파라미터들과 같은 시그널링된 정보와 함께 송신될 수도 있다.
코딩된 비트스트림 (8) 은 텍스쳐 정보 (4) 및 심도 정보 (6) 를 포함할 수도 있다. 텍스쳐 성분들 (4) 은 비디오 정보의 휘도 (루마) 및 색차 (크로마) 성분들을 포함할 수도 있다. 루마 성분들은 일반적으로 휘도를 기술하지만, 색차 성분들은 일반적으로 칼라의 휴들 (hues) 을 기술한다. 심도 프로세싱 유닛 (21) 은 비디오 (2) 의 심도 맵으로부터 심도 정보 (6) 를 추출할 수도 있다. 비디오 인코더 (22) 는 텍스쳐 성분들 (4) 및 심도 정보 (6) 를 인코딩하여, 그들을 단일 비트스트림, 특히, 코딩된 비트스트림 (8) 으로 캡슐화할 수도 있다. 이와 유사하게, 비디오 인코더 (22) 는 심도 성분을 인코딩하는데 텍스쳐 성분에 대한 모션 예측 의존성들이 사용되도록, 비트스트림을 인코딩할 수도 있다. 이 방법으로, 심도 성분이 텍스쳐 성분으로부터 예측될 수도 있다. 게다가, 본 개시물의 기법들에 따르면, 비디오 인코더 (22) 는 특정의 뷰와 연관되는 카메라 파라미터들, 예컨대 초점 길이 및 수평 방향에서의 주 지점 오프셋, 및 각각의 뷰에 대한 실-세계 수평 카메라 로케이션을 시그널링할 수도 있다.
이 방법으로, 목적지 디바이스 (16) 는 특정의 3D 렌더링 효과를 달성하기 위해, (예컨대, 상대적으로 더 많거나 또는 더 적은 심도를 생성하기 위해) 특정의 뷰에 대한 텍스쳐 및 심도 정보를 이용하여 뷰들을 합성하여, 예컨대, 합성된 뷰를 특정의 관찰 지점에서 획득할 수도 있다. 예를 들어, 상대적으로 더 인식되는 심도를 생성하기 위해, 목적지 디바이스 (16) 는 코딩된 뷰의 카메라 위치로부터 상대적으로 더 먼 카메라 위치를 갖는 뷰를 합성할 수도 있으며, 반면, 상대적으로 더 적은 인식 심도를 생성하기 위해, 목적지 디바이스 (16) 는 코딩된 뷰의 카메라 위치에 더 상대적으로 더 가까운 카메라 위치를 갖는 뷰를 합성할 수도 있다. 이 방법으로, 목적지 디바이스 (16) 는 카메라 파라미터들, 예컨대 비트스트림의 코딩된 뷰들에 대한 실-세계 카메라 로케이션들을 이용하여, 비트스트림의 뷰가 합성된 뷰와 함께 디스플레이될 때 3차원의 효과를 생성하는데 사용되는 뷰를 합성하도록 구성될 수도 있다.
코딩된 비트스트림 (8) 은 예컨대, 코드분할 다중접속 (CDMA) 또는 또 다른 통신 표준과 같은 통신 표준에 따라서 모뎀 (23) 에 의해 변조되어, 목적지 디바이스 (16) 로 송신기 (24) 및 통신 채널 (15) 을 통해서 송신될 수도 있다. 모뎀 (23) 은 여러 믹서들, 필터들, 증폭기들 또는 신호 변조용으로 설계된 다른 성분들을 포함할 수도 있다. 송신기 (24) 는 증폭기들, 필터들, 및 하나 이상의 안테나들을 포함한, 데이터를 송신하도록 설계된 회로들을 포함할 수도 있다. 일부 예들에서, 통신 채널을 통해서 송신하는 대신, 소스 디바이스 (12) 는 인코딩된 비디오 데이터 (예컨대, 코딩된 비트스트림 (8)) 를 디지털 비디오 디스크 (DVD), 블루-레이 디스크, 플래시 드라이브 등과 같은 저장 매체 상에 저장한다.
목적지 디바이스 (16) 의 수신기 (26) 는 통신 채널 (15) 을 거쳐서 정보를 수신하고, 모뎀 (27) 은 그 정보를 복조한다. 송신기 (24) 와 유사하게, 수신기 (26) 는 증폭기들, 필터들, 및 하나 이상의 안테나들을 포함한, 데이터를 수신하도록 설계된 회로들을 포함할 수도 있다. 일부의 경우, 송신기 (24) 및/또는 수신기 (26) 는 수신 회로 및 송신 회로 양자를 포함하는 단일 송수신기 구성요소 내에 포함될 수도 있다. 모뎀 (27) 은 여러 믹서들, 필터들, 증폭기들 또는 신호 복조용으로 설계된 다른 구성요소들을 포함할 수도 있다. 일부의 경우, 모뎀들 (23 및 27) 은 변조 및 복조 양자를 수행하는 구성요소들을 포함할 수도 있다.
용어 "코더 (coder)" 는 본원에서 비디오 인코딩 또는 비디오 디코딩을 수행하는 특수화된 컴퓨터 디바이스 또는 장치를 지칭하기 위해 사용된다. 용어 "코더" 는 일반적으로 임의의 비디오 인코더, 비디오 디코더, 또는 결합된 인코더/디코더 (코덱) 를 지칭한다. 용어 "코딩" 은 인코딩 또는 디코딩을 지칭한다. 용어 "코딩된 비디오 데이터" 는 블록, 전체 프레임, 프레임의 슬라이스, 비디오 데이터의 블록, 또는 사용되는 코딩 기법들에 따라서 정의되는 또 다른 독립적으로 디코딩가능한 유닛과 같은, 비디오 데이터의 임의의 독립적으로 디코딩가능한 유닛을 지칭할 수도 있다.
디스플레이 디바이스 (30) 는 그 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 또 다른 유형의 디스플레이 디바이스와 같은, 다양한 하나 이상의 디스플레이 디바이스들 중 임의의 디스플레이 디바이스를 포함할 수도 있다. 일부 예들에서, 디스플레이 디바이스 (30) 는 3차원 플레이백이 가능한 디바이스에 대응한다. 예를 들어, 디스플레이 디바이스 (30) 는 뷰어가 착용한 안경들과 함께 사용되는 입체 디스플레이를 포함할 수도 있다. 안경들은 능동 안경들 (active glasses) 을 포함할 수도 있으며, 이 경우, 디스플레이 디바이스 (30) 는 능동 안경들의 렌즈들의 교번하는 셔터링과 동기하여, 상이한 뷰들의 이미지들 사이에 빨리 교번한다. 이의 대안으로, 안경들은 수동 안경들 (passive glasses) 을 포함할 수도 있으며, 이 경우 디스플레이 디바이스 (30) 는 상이한 뷰들로부터의 이미지들을 동시에 디스플레이하고, 수동 안경들은 상이한 뷰들 사이를 필터링하기 위해 일반적으로 직교 방향들로 편광된 편광 렌즈들을 포함할 수도 있다.
도 1 의 예에서, 통신 채널 (15) 은 임의의 무선 또는 유선 통신 매체, 예컨대 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적인 송신 라인들, 또는 무선 매체와 유선 매체들의 임의의 조합을 포함할 수도 있다. 통신 채널 (15) 은 근거리 네트워크, 광역 네트워크, 또는 글로벌 네트워크, 예컨대 인터넷과 같은 패킷-기반 네트워크의 부분을 형성할 수도 있다. 통신 채널 (15) 은 일반적으로 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (16) 로 송신하기 위한, 임의의 적합한 통신 매체, 또는 상이한 통신 매체들의 컬렉션을 나타낸다. 통신 채널 (15) 은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (16) 로 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (28) 는 MPEG 4, 파트 10, AVC (Advanced Video Coding) 으로서 대안적으로 기술되는, ITU-T H.264 표준과 같은 비디오 압축 표준에 따라서 동작할 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (28) 에 의해 사용될 수도 있는 ITU H.264/AVC 표준에 기초하는 추가적인 비디오 압축 표준들은 스케일러블 비디오 코딩 (SVC) 표준을 포함하며, 이 표준은 ITU H.264/AVC 표준에 대한 스케일러블 확장판이다. 비디오 인코더 (22) 및 비디오 디코더 (28) 와 함께 또 다른 표준이 멀티-뷰 비디오 코딩 (MVC) 표준에 따라서 동작할 수도 있으며, 이 표준은 ITU H.264/AVC 표준에 대한 멀티-뷰 확장판이다. 본 개시물의 기법들은, 그러나, 임의의 특정의 비디오 코딩 표준에 한정되지 않는다.
일부 양태들에서, 비디오 인코더 (22) 및 비디오 디코더 (28) 는 오디오 인코더 및 디코더와 각각 통합될 수도 있으며, 오디오 및 비디오 양자의 인코딩을 공통 데이터 스트림 또는 별개의 데이터 스트림들로 처리하기 위해 적합한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능한 경우, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 다른 프로토콜들, 예컨대, 사용자 데이터그램 프로토콜 (UDP) 에 따를 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (28) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSPs), 주문형 집적회로들 (ASICs), 필드 프로그래밍가능 게이트 어레이들 (FPGAs), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 임의의 이들의 조합들로서 구현될 수도 있다. 본 개시물의 기법들 중 임의의 기법 또는 모두가 소프트웨어로 구현될 때, 구현하는 디바이스는 소프트웨어에 대한 명령들을 저장하거나 및/또는 실행하기 위한 하드웨어, 예컨대, 명령들을 저장하기 위한 메모리 및 명령들을 실행하기 위한 하나 이상의 프로세싱 유닛들을 추가로 포함할 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (28) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 쪽이든 각각의 모바일 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 서버 등에서 인코딩 및 디코딩 능력들을 제공하는 결합된 코덱의 부분으로서 통합될 수도 있다.
비디오 시퀀스는 전형적으로 비디오 화상들로서 지칭되는, 비디오 프레임들의 시리즈를 포함한다. 비디오 인코더 (22) 는 비디오 데이터를 인코딩하기 위해 개개의 비디오 프레임들 내 비디오 블록들에 대해 작용할 수도 있다. 비디오 블록들은 고정 또는 가변 사이즈들을 가질 수도 있으며, 규정된 코딩 표준에 따라서 사이즈가 상이할 수도 있다. 각각의 비디오 프레임은 하나 이상의 슬라이스들의 시리즈를 포함한다. ITU-T H.264 표준에서, 예를 들어, 각각의 슬라이스는 일련의 매크로블록들을 포함할 수도 있으며, 이 매크로블록들은 서브-블록들로 배열될 수도 있다. H.264 표준은 루마 성분들에 대해 16 × 16, 8 × 8, 또는 4 × 4, 그리고 크로마 성분들에 대해 8 × 8 과 같은 2차원 (2D) 비디오 인코딩을 위한 여러 블록 사이즈들에서 인트라 예측을 지원할 뿐만 아니라, 루마 성분들에 대해 16 × 16, 16 × 8, 8 × 16, 8 × 8, 8 × 4, 4 × 8 및 4 × 4, 그리고 크로마 성분들에 대해 대응하는 스케일링된 사이즈들과 같은 여러 블록 사이즈들에서 인터 예측을 지원한다. 비디오 블록들은 예컨대, 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환 프로세스와 같은 변환 프로세스 이후에, 픽셀 데이터의 블록들, 또는 변환 계수들의 블록들을 포함할 수도 있다. 이들 기법들은 2개의 성분들, 즉, 텍스쳐 및 심도를 포함하는 3D 비디오 스트림들로 확장될 수도 있다.
더 작은 비디오 블록들은 더 나은 해상도를 제공할 수 있으며, 높은 세부 레벨들을 포함하는 비디오 프레임의 로케이션들에 사용될 수도 있다. 일반적으로, 매크로블록들 및 여러 서브 블록들은 비디오 블록들인 것으로 간주될 수도 있다. 게다가, 비디오 데이터의 슬라이스는 매크로블록들 및/또는 서브-블록들과 같은, 비디오 블록들의 시리즈인 것으로 간주될 수도 있다. 각각의 슬라이스는 비디오 프레임의 독립적으로 디코딩가능한 유닛일 수도 있다. 이의 대안으로, 프레임들 자체가 디코딩가능한 유닛들이거나, 또는 프레임의 다른 부분들은 디코딩가능한 유닛들로서 정의될 수도 있다.
ITU-T H.264 표준의 2D 비디오 데이터 유닛들 (예컨대, 프레임들 또는 슬라이스들) 은 그 비디오 프레임 또는 슬라이스에 대한 텍스쳐 성분들 (4) 에 더해서, 심도 맵 또는 시차 맵으로부터 심도 정보 (6) 를 인코딩함으로써, 3D 로 확장될 수도 있다. 시차 맵핑 (또한, 가상 변위 맵핑 또는 오프셋 맵핑으로 지칭됨) 은 픽셀 로케이션에서의 시야각 및 높이 맵의 함수에 기초하여 픽셀 로케이션에서의 텍스쳐 성분들을 변위시킨다. 비디오 인코더 (22) 는 심도 정보를 단색광의 비디오로 인코딩할 수도 있다. 뷰에 대한 이 단색광의 비디오 인코딩된 심도 정보는 인코딩되어, 동일한 뷰의 텍스쳐 성분과 함께, 비디오 유닛 (예컨대, 비트스트림) 으로 캡슐화될 수도 있다. 본 개시물의 기법들에 따르면, 비디오 데이터의 뷰의 뷰 성분은 코딩되어 동일한 비트스트림으로 함께 캡슐화된 텍스쳐 성분 및 심도 성분 양자를 포함할 수도 있다. 뷰 성분은 특정의 뷰 (예컨대, 특정의 카메라 또는 비디오-캡쳐링 엘리먼트) 에 대해 공통 시간 인스턴스에 대한 모든 데이터를 포함하는 데이터의 유닛이다.
코딩된 비트스트림 (8) 의 성분들을 구성하는 비디오 블록들과 같은 비디오 블록들을 인코딩하기 위해, 비디오 인코더 (22) 는 인트라- 또는 인터 예측을 수행하여 하나 이상의 예측 블록들을 생성한다. 비디오 인코더 (22) 는 텍스쳐 성분 데이터 유닛 (예컨대, 프레임 또는 슬라이스) 및 심도 성분 데이터 유닛에 대한 예측 블록들을 생성할 수도 있다. 게다가, 비디오 인코더 (22) 는 인트라- 또는 인터-뷰 예측을 수행하여 뷰에 대한 하나 이상의 예측 블록들을 생성할 수도 있으며, 여기서, 인트라-뷰 예측은 동일한 뷰 내 성분들 사이의 의존성을 활용할 수도 있으며 인터-뷰 예측은 상이한 뷰들의 성분들 간의 의존성을 활용할 수도 있다.
비디오 인코더 (22) 는 인코딩되는 원래 비디오 블록들로부터 예측 블록들을 감산하여, 잔여 블록들을 생성한다. 따라서, 잔여 블록들은 코딩중인 블록들과 예측 블록들 사이의 픽셀 단위 차이들을 나타낼 수도 있다. 비디오 인코더 (22) 는 잔여 블록들에 대해 변환을 수행하여 변환 계수들의 블록들을 생성할 수도 있다. 인트라- 또는 인터-기반의 예측 코딩 및 변환 기법들에 이어서, 비디오 인코더 (22) 는 그 변환 계수들을 양자화할 수도 있다. 양자화는 일반적으로 계수들을 나타내는데 사용되는 데이터의 양을 가능한 한 감소시키기 위해 계수들이 양자화되는 프로세스를 지칭한다. 양자화 이후, 엔트로피 코딩이 컨텍스트 적응 가변 길이 코딩 (CAVLC) 또는 컨텍스트 적응 2진 산술 코딩 (CABAC) 과 같은, 엔트로피 코딩 방법론에 따라서 수행될 수도 있다. 비디오 인코더 (22) 에 의해 수행되는 인코딩 프로세스의 추가적인 세부 사항들이 아래에서 도 2 에 대해서 설명된다.
HEVC (High Efficiency Video Coding) 로서 현재 지칭되는 새로운 비디오 코딩 표준을 개발하려는 노력들이 현재 계속되고 있다. 차기 표준은 또한 H.265 로서 지칭된다. 이 표준화 노력들은 HEVC 테스트 모델 (HM) 로서 지칭되는 비디오 코딩 디바이스의 모델에 기초한다. HM 은 예컨대, ITU-T H.264/AVC 에 따른 디바이스들을 넘어서는 비디오 코딩 디바이스들의 여러 능력들을 가정한다. 예를 들어, H.264 는 9개의 인트라-예측 인코딩 모드들을 제공하는 반면, HM 은 34개 만큼이나 많은 인트라-예측 인코딩 모드들을 제공한다. HEVC 는 본원에서 설명하는 바와 같이 2개의 성분 비디오 유닛들을 지원하도록 확장될 수도 있다.
HM 은 비디오 데이터의 블록을 코딩 유닛 (CU) 으로서 지칭한다. 비트스트림 내 구문 데이터는 가장 큰 코딩 유닛 (LCU) 을 정의하며, 이 가장 큰 코딩 유닛은 픽셀들의 개수의 관점에서 가장 큰 코딩 유닛이다. 일반적으로, CU 가 사이즈 구별을 갖지 않는다는 점을 제외하고는, CU 는 H.264 의 매크로블록과 유사한 목적을 갖는다. 2-성분 (즉, 텍스쳐 성분 및 심도 성분) 코딩된 블록은 HM 표준에 따른 CU 일 수도 있다. 따라서, CU 는 서브-CUs 로 분할될 수도 있다. 일반적으로, CU 에 대한 본 개시물에서의 언급들은 화상의 최대 코딩 유닛 (LCU) 또는 LCU 의 서브-CU 를 지칭할 수도 있다. LCU 는 서브-CUs 로 분할될 수도 있으며, 각각의 서브-CU 는 서브-CUs 로 분할될 수도 있다. 비트스트림에 대한 구문 데이터는 LCU 가 분할되는 최대 횟수를 정의할 수도 있으며, 이는 CU 심도로 지칭된다. 따라서, 비트스트림은 또한 가장 작은 코딩 유닛 (SCU) 을 정의할 수도 있다. 본 개시물은 또한 CU, 예측 유닛 (PU), 또는 변환 유닛 (TU) 중 임의의 것을 지칭하기 위해 용어 "블록" 을 사용한다.
LCU 는 쿼드트리 (quadtree) 데이터 구조와 연관될 수도 있다. 일반적으로, 쿼드트리 데이터 구조는 CU 당 하나의 노드를 포함하며, 여기서, 루트 노드는 LCU 에 대응한다. CU 가 4개의 서브-CUs 로 분할되면, CU 에 대응하는 노드는 4개 잎 노드들 (leaf nodes) 을 포함하며, 각각의 잎 노드는 서브-CUs 중 하나에 대응한다. 쿼드트리 데이터 구조의 각각의 노드는 대응하는 CU에 대해 구문 데이터를 제공할 수도 있다. 예를 들어, 쿼드트리에서 노드는 그 노드에 대응하는 CU 가 서브-CUs 로 분할될지 여부를 나타내는 분할 플래그를 포함할 수도 있다. CU 에 대한 구문 엘리먼트들은 회귀적으로 정의될 수도 있으며, CU 가 서브-CUs 로 분할되는지 여부에 의존할 수도 있다.
분할되지 않은 CU 는 하나 이상의 예측 유닛들 (PUs) 을 포함할 수도 있다. 일반적으로, PU 는 대응하는 CU 의 모두 또는 부분을 나타내며, PU 에 대한 참조 샘플을 취출하기 위한 데이터를 포함한다. 예를 들어, PU 가 인트라-모드 인코딩될 때, PU 는 PU 에 대한 인트라-예측 모드를 기술하는 데이터를 포함할 수도 있다. 또 다른 예로서, PU 가 인터-모드 인코딩될 때, PU 는 PU 에 대한 모션 벡터를 정의하는 데이터를 포함할 수도 있다. 모션 벡터를 정의하는 데이터는 예를 들어, 모션 벡터의 수평 성분, 모션 벡터의 수직 성분, 모션 벡터에 대한 해상도 (예컨대, 1/4 픽셀 정밀도 또는 1/8 픽셀 정밀도), 모션 벡터가 가리키는 참조 프레임, 및/또는 모션 벡터에 대한 참조 리스트 (예컨대, 리스트 0 또는 리스트 1) 를 기술할 수도 있다. 모션 벡터는 또한 텍스쳐 성분들 (4) 및 심도 정보 (6) 에 대해 상이한 해상도들을 갖는 것으로 취급될 수도 있다. PU(s) 를 정의하는 CU 에 대한 데이터는 또한 예를 들어, 하나 이상의 PUs 로의 CU 의 파티셔닝을 기술할 수도 있다. 모드들을 파티셔닝하는 것은 CU 가 코딩되지 않거나, 인트라-예측 모드 인코딩되거나, 또는 인터-예측 모드 인코딩되는지 여부에 따라 상이할 수도 있다.
하나 이상의 PUs 를 갖는 CU 는 또한 하나 이상의 변환 유닛들 (TUs) 을 포함할 수도 있다. PU 를 이용한 예측 이후, 비디오 인코더 (22) 는 PU 에 대응하는 CU 의 부분에 대해 잔여 값을 계산할 수도 있다. 이 잔여 값은 변환되고, 스캔되고, 그리고 양자화될 수도 있다. TU 는 PU 의 사이즈에 반드시 제한될 필요는 없다. 따라서, TUs 는 동일한 CU 에 대한 대응하는 PUs 보다 더 크거나 또는 더 작을 수도 있다. 일부 예들에서, TU 의 최대 사이즈는 대응하는 CU 의 사이즈에 대응할 수도 있다.
위에서 언급한 바와 같이, 인트라-예측은 동일한 화상의 이전에 코딩된 CUs 로부터 화상의 현재의 CU 의 PU 를 예측하는 것을 포함한다. 좀더 구체적으로는, 비디오 인코더 (22) 는 특정의 인트라-예측 모드를 이용하여 화상의 현재의 CU 를 인트라-예측할 수도 있다. HM 인코더는 34개 까지의 인트라-예측 모드들로 구성될 수도 있다. 따라서, 방향 인트라-예측 모드들과 방향 변환들 사이의 일-대-일 맵핑을 지원하기 위해, HM 인코더들 및 디코더들은 각각의 지원되는 변환 사이즈에 대한 (66) 개의 매트릭스들을 저장할 필요가 있을 것이다. 더욱이, 모든 34개의 인트라-예측 모드들이 지원되는 블록 사이즈들은 상대적으로 큰 블록들, 예컨대, 32 × 32 픽셀들, 64 × 64 픽셀들, 또는 심지어 더 큰 픽셀들일 수도 있다.
텍스쳐 성분 및 심도 성분 각각을 인코딩한 후, 비디오 인코더 (22) 는 뷰의 텍스쳐 성분과 심도 성분들 사이 및/또는 상이한 뷰들의 텍스쳐 성분과 심도 성분 간 임의의 예측 의존성들을 결정할 수도 있다. 소스 디바이스 (12) 는 텍스쳐 성분 및 심도 성분을, 공통 뷰 성분으로서 취급될 수도 있는, 뷰에 대한 동일한 시간 인스턴스에 대응하는 각각의 VCL NAL 유닛들로 캡슐화함으로써 본 개시물의 기법들을 구현할 수도 있다. 본 개시물의 기법들은 뷰에 대한 텍스쳐 데이터 및 심도 맵 데이터를 연속하여 비트스트림 (예컨대, 코딩된 비트스트림 (8)) 으로 코딩하기 위해 제공할 수도 있다. 뷰 성분의 텍스쳐 정보와 심도 맵 정보를 분리하기 위해, 비디오 인코더 (22) 는 구분문자, 예컨대, 뷰 성분에 대한, 텍스쳐 정보의 끝과 심도 정보의 시작을 나타내는 NAL 유닛 구분문자를 비트스트림에 추가할 수도 있다. 게다가, 비디오 인코더 (22) 는 인트라- 및 인터-뷰 예측 의존성들 및 뷰 합성 예측과 연관되는 파라미터들을 비트스트림 내에서 시그널링할 수도 있다.
또 다른 본 개시물의 양태에 따르면, 비디오 인코더 (22) 는 비디오 데이터로 카메라 파라미터들을 시그널링할 수도 있으며, 심도 값 대 실-세계 z 값 맵핑 (depth value to real-world z value mapping) 을 추가로 기술할 수도 있다. 비디오 데이터는 또한 심도 맵 뷰들 및 텍스쳐 뷰들의 예측 관계를 기술할 수도 있다. 비디오 인코더 (22) 는 이들 추가적인 파라미터들 및 정보를 시퀀스 레벨에서 (예컨대, 시퀀스 파라미터 세트 (SPS) 데이터 구조로), 화상 레벨에서 (예컨대, 화상 파라미터 세트 (PPS) 데이터 구조 또는 프레임 헤더로), 슬라이스 레벨에서 (예컨대, 슬라이스 헤더로), 또는 블록 레벨에서 (예컨대, 블록 헤더로) 시그널링할 수도 있다.
목적지 디바이스 (16) 에서, 비디오 디코더 (28) 는 인코딩된 비디오 데이터 (예컨대, 코딩된 비트스트림 (8)) 을 수신한다. 비디오 디코더 (28) 는 아래에서 설명하는 바와 같이, NAL 유닛이 텍스쳐 또는 심도 정보를 포함하는지를 나타내는 플래그를 이용하여, 심도 NAL 유닛들 (예컨대, 심도 성분) 로부터 텍스쳐 NAL 유닛들 (예컨대, 텍스쳐 성분) 을 구별할 수도 있다. 심도 성분들을 디코딩한 후, 목적지 디바이스 (16) 는 하나의 2D 뷰 (즉, 텍스쳐 정보) 를 이용하여, 다른 뷰들 및 심도 정보를 제거하거나; 3D 플레이백을 위한 가상 뷰를 합성하기 위해 하나의 2D 뷰 및 그의 대응하는 심도 정보를 이용하거나; 3D 플레이백을 위한 2개 이상의 2D 뷰들을 이용하거나; 또는 멀티뷰 플레이백을 위한 다수의 가상 뷰들을 생성하기 위해 다수의 뷰들 및 그들의 심도 정보를 이용할 수도 있다. 콘텐츠를 어떻게 플레이백할 지를 결정하는 것은 예를 들어, 디스플레이 디바이스 (30) 의 유형 및 디스플레이 디바이스 (30) 에 의해 지원되는 비디오 포맷들과 같은 인자들에 의존할 수도 있다.
코딩된 비트스트림 (8) 의 텍스쳐 성분과 심도 성분을 분리한 후, 비디오 디코더 (28) 는 성분들의 각각에 대응하는 코딩된 블록들과 같은, 수신된 비디오 데이터를 CAVLC 또는 CABAC 과 같은 엔트로피 코딩 방법론에 따라서 엔트로피 디코딩하여, 양자화된 계수들을 획득한다. 비디오 디코더 (28) 는 역양자화 (양자화 해제) 및 역변환 함수들을 적용하여 픽셀 도메인에서 잔여 블록을 재구성한다. 비디오 디코더 (28) 는 또한 인코딩된 비디오 데이터에 포함된 제어 정보 또는 구문 정보 (예컨대, 코딩 모드, 모션 벡터들, 필터 계수들을 정의하는 구문 등) 에 기초하여, 예측 블록을 생성한다. 비디오 디코더 (28) 는 예측 블록과 재구성된 잔여 블록의 합을 계산하여 디스플레이를 위해 재구성된 비디오 블록을 생성할 수도 있다. 비디오 디코더 (28) 에 의해 수행되는 예시적인 디코딩 프로세스의 추가적인 세부 사항들이 아래에서 도 7 에 대해서 설명된다.
본원에서 설명하는 바와 같이, 텍스쳐 정보는 3개의 성분들을 포함할 수도 있으며, 예를 들어, Y 는 휘도를 나타낼 수도 있으며, Cb 및 Cr 은 3차원의 YCbCr 칼라 공간의 2개의 상이한 색차의 값들 (예컨대, 청색 및 적색 휴들) 을 나타낼 수도 있으며, D 는 심도 정보를 나타낼 수도 있다. 일부 예들에서, 각각의 픽셀 로케이션은 픽셀의 텍스쳐에 대한 하나의 픽셀 값, 및 픽셀 로케이션의 심도에 대한 하나의 픽셀 값을 실제로 정의할 수도 있다. 텍스쳐 값은 예를 들어, 휘도 및 색차 성분들을 나타내는 2개 이상의 값들을 포함할 수도 있다. 게다가, 심도 성분 및 텍스쳐 성분은 상이한 해상도들을 가질 수도 있다. 심도 성분 및 텍스쳐 성분 양자는 픽셀들의 각각의 블록들로 파티셔닝될 수도 있으며, 이 블록들 각각은 개별적으로 코딩될 수도 있다.
일부 예들에서, 비디오 인코더 (22) 및 비디오 디코더 (28) 는 모션 보상 동안 하나 이상의 내삽 필터링 기법들을 이용할 수도 있다. 즉, 비디오 인코더 (22) 및/또는 비디오 디코더 (28) 는 내삽 필터를 풀 정수 픽셀 위치들의 세트들을 포함하는 필터 서포트 (filter support) 에 적용할 수도 있다.
위에서 언급한 바와 같이, 목적지 디바이스 (16) 의 비디오 디코더 (28) 는 코딩된 비트스트림 (8) 을 수신할 수도 있으며, 이 비트스트림은 예측 의존성들, 및 텍스쳐 성분 및 심도 성분과 연관되는 뷰에 관한 정보를 포함한, 추가 정보와 함께, 텍스쳐 성분 및 심도 성분을 포함할 수도 있다. 게다가, 카메라 파라미터들은 뷰에 대해 시그널링될 수도 있다. 비디오 디코더 (28) 는 코딩된 비트스트림 (8) 의 성분들과, 뷰 정보 및 카메라 파라미터들을 포함한 하나 이상의 추가 정보에 기초하여 3D 플레이백을 위한 비디오 데이터를 렌더링할 수도 있다. 본 개시물의 기법들에 따르면, 그리고, 이하에 더 자세히 설명하는 바와 같이, 하나 이상의 뷰들에 대한 포함된 정보가 동일한 뷰의 텍스쳐 성분 및/또는 하나 이상의 다른 뷰들의 심도 성분들에 기초하여, 하나 이상의 다른 뷰들의 텍스쳐 성분들로부터의 하나의 뷰의 텍스쳐 성분, 및 하나의 뷰의 심도 성분을 예측하는데 이용될 수도 있다.
도 2 는 도 1 의 비디오 인코더 (22) 의 일 예를 더 자세히 예시하는 블록도이다. 비디오 인코더 (22) 는 비디오 소스에 의해 제공된 상이한 뷰들에 대응하는 이미지와 연관되는 블록 유닛들을 인코딩할 수도 있으며, 여기서, 각각의 뷰는 텍스쳐 성분 및 심도 성분을 포함할 수도 있다. 비디오 인코더 (22) 는 "코더" 로서 본원에서 지칭되는 특수화된 비디오 컴퓨터 디바이스 또는 장치의 일 예이다. 도 2 에 나타낸 바와 같이, 비디오 인코더 (22) 는 소스 디바이스 (12) 의 비디오 인코더 (22) 에 대응한다. 그러나, 다른 예들에서, 비디오 인코더 (22) 는 상이한 디바이스에 대응할 수도 있다. 추가적인 예들에서, (예를 들어, 다른 인코더/디코더 (코덱들) 와 같은) 다른 유닛들이 또한 비디오 인코더 (22) 에 의해 수행되는 기법들과 유사한 기법들을 수행할 수 있다.
인트라-코딩 성분들은 예시의 용이를 위해 도 2 에 도시되지 않지만, 비디오 인코더 (22) 는 비디오 프레임들 내 블록들의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라 코딩은 주어진 비디오 프레임 내 비디오에서 공간 리던던시를 감소시키거나 제거하기 위해 공간 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접 프레임들 내 비디오에서 시간 리던던시를 감소시키거나 제거하기 위해 시간 예측에 의존한다. 인트라-모드 (I-모드) 는 공간-기반의 압축 모드를 지칭할 수도 있다. 예측 (P-모드) 또는 양방향 (B-모드) 과 같은 인터-모드들은 시간 기반의 압축 모드들을 지칭할 수도 있다. 그러나, 예시의 단순성과 용이성을 위해, 공간 예측 유닛과 같은 인트라-코딩 유닛들은 도 2 에 예시되지 않는다.
도 2 에 나타낸 바와 같이, 비디오 인코더 (22) 는 인코딩되는 비디오 프레임의 텍스쳐 성분 및 심도 성분과 연관되는 비디오 블록들을 수신하며, 여기서, 비디오 프레임은 특정의 시간에서 다수의 뷰들 중 하나에 대응할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 텍스쳐 성분들 (4) 및 심도 성분들 (6) 을 수신할 수도 있다. 도 2 의 예에서, 비디오 인코더 (22) 는 예측 코딩 유닛 (MCU) (32), 메모리 (34), 가산기 (48), 변환 유닛 (38), 양자화 유닛 (40), 및 엔트로피 코딩 유닛 (46) 을 포함한다. 비디오 블록 재구성을 위해, 비디오 인코더 (22) 는 또한 역양자화 유닛 (42), 역변환 유닛 (44), 가산기 (51), 및 디블로킹 유닛 (43) 을 포함한다. 디블로킹 유닛 (43) 은 재구성된 비디오로부터 블록킹 현상 아티팩트들을 제거하기 위해 블록 경계들을 필터링할 수도 있는 디블로킹 필터일 수도 있다. 비디오 인코더 (22) 에 포함되면, 디블로킹 유닛 (43) 은 일반적으로 가산기 (51) 의 출력을 필터링할 것이다. 일 예에서, 도 2 에 나타낸 바와 같이, 변환 유닛 (38) 은 HEVC 의 관점에서 "TU" 가 아닌, 기능 블록일 수도 있다. 디블로킹 유닛 (43) 은 하나 이상의 텍스쳐 성분들에 대한 디블로킹 정보를 결정할 수도 있다. 디블로킹 유닛 (43) 은 또한 심도 맵 성분에 대한 디블로킹 정보를 결정할 수도 있다. 일부 예들에서, 하나 이상의 텍스쳐 성분들에 대한 디블로킹 정보는 심도 맵 성분에 대한 디블로킹 정보와 상이할 수도 있다.
일부 예들에서, 비디오 인코더 (22) 는 다른 뷰들의 데이터를 인코딩할 때 참조용으로 사용되는 가상 뷰들을 합성하기 위한 뷰 합성 유닛을 포함할 수도 있다. 뷰 합성 유닛은 명료성을 위해서 도 2 의 예시에 나타내지 않지만, 제공될 경우, 통상 메모리 (34) 로부터 (특정의 뷰 성분에 대한 텍스쳐 및 심도 정보와 같은) 데이터를 취출하고, 그 취출된 데이터를 이용하여 텍스쳐 정보를 포함하는 뷰 성분을 합성하고, 그리고, 다른 뷰들의 비디오 데이터를 코딩할 때 참조로서 사용하기 위해 그 합성된 뷰 성분을 메모리 (34) 에 저장할 것이다.
예측 유닛 (32) 은 텍스쳐 성분들 (4) 또는 심도 정보 (6) 를 포함하는 비디오 블록 (도 2 에 "비디오 블록" 으로 라벨링됨) 을 수신한다. 예측 유닛 (32) 은 모션 추정 (ME) 유닛 (35) 및 모션 보상 (MC) 유닛 (37) 을 포함할 수도 있다. 예측 유닛 (32) 은 심도 성분 블록들에서 심도 정보 및 텍스쳐 성분 블록들에서 텍스쳐 정보를 예측할 수도 있다. 하나 이상의 내삽 필터들 (39) ("필터 (39)" 로서 지칭함) 은 예측 유닛 (32) 에 포함될 수도 있으며, 모션 추정 및/또는 모션 보상의 부분으로서 내삽을 수행하기 위해 ME 유닛 (35) 및 MC 유닛 (37) 의 하나 또는 양자에 의해 호출될 수도 있다. 내삽 필터 (39) 는 실제로 매우 많은 상이한 유형들의 내삽 및 내삽-유형 필터링을 용이하게 하기 위해서, 복수의 상이한 필터들을 나타낼 수도 있다. 따라서, 예측 유닛 (32) 은 복수의 내삽 또는 내삽-형 필터들을 포함할 수도 있다. 예측 유닛 (32) 은 심도 및/또는 텍스쳐 정보를 공통 시간 인스턴스와 연관되는 동일한 뷰 및/또는 다른 뷰들로부터의 심도 및/또는 텍스쳐 정보를 이용하여 예측할 수도 있다. 예측 유닛 (32) 은 또한 뷰 합성 예측을 수행할 수도 있으며, 이는 합성된 뷰의 데이터에 상대적인 뷰의 블록의 예측을 가능하게 하는 예측 정보를 제공할 수도 있다.
인코딩 프로세스 동안, 비디오 인코더 (22) 는 코딩되는 비디오 블록 (도 2 에서 "비디오 블록" 으로 라벨링됨) 을 수신하고, 예측 유닛 (32) 은 인터-예측 코딩을 수행하여, 예측 블록 (도 2 에서 "예측 블록" 으로 라벨링됨) 을 생성한다. 코딩되는 비디오 블록 및 예측 블록은 각각 텍스쳐 성분들 (4) 및 심도 정보 (6) 에 대응할 수도 있다. 구체적으로 설명하면, ME 유닛 (35) 은 모션 추정을 수행하여 메모리 (34) 내 예측 블록을 식별할 수도 있으며, MC 유닛 (37) 은 모션 보상을 수행하여 예측 블록을 생성할 수도 있다. ME 유닛 (35) 및 MC 유닛 (37) 은 공통 시간 인스턴스와 연관되는 동일한 뷰 또는 다른 뷰들로부터의 텍스쳐 및/또는 심도 성분들에 대응하는 블록들을 이용하여 모션 추정 및 모션 보상을 각각 수행할 수도 있다. ME 유닛 (35) 은 인터-뷰 예측을 수행할 때 "변위 벡터" 를 실제로 생성할 수도 있으며, 이 변위 벡터는 개념적으로 모션 벡터와 유사하지만, 일반적으로 시간 경과에 따른 오브젝트들의 모션 대신, 각각의 뷰들에 대한 카메라들의 수평 위치들에서의 차이들로 인해, 특정의 블록의 수평 오프셋을 예측한다. MC 유닛 (37) 은 따라서 또한 "모션/변위 보상 유닛" 로서 지칭될 수도 있다. 이 방법으로, ME 유닛 (35) 및 MC 유닛 (37) 은 텍스쳐 성분 및 심도 성분의 인터- 및 인트라-뷰 예측에 사용될 수 있는 결정들을 행할 수도 있다.
모션 추정은 일반적으로 모션 벡터들을 생성하는 프로세스로 간주되며, 이 프로세스는 비디오 블록들에 대한 모션을 추정한다. 모션 벡터는, 예를 들어, 현재의 프레임 (또는, 다른 코딩된 유닛) 내 코딩되는 블록에 상대적인, 예측 또는 참조 프레임 (또는, 다른 코딩된 유닛, 예컨대, 슬라이스) 내 예측 블록의 변위를 나타낼 수도 있다. 모션 벡터는 풀-정수 또는 서브-정수 픽셀 정밀도를 가질 수도 있다. 예를 들어, 모션 벡터의 수평 성분 및 수직 성분 양자는 각각의 풀 정수 성분들 및 서브-정수 성분들을 가질 수도 있다. 참조 프레임 (또는, 프레임의 부분) 은 시간적으로 현재의 비디오 블록이 속하는 비디오 프레임 (또는, 비디오 프레임의 부분) 의 전후에 로케이트될 수도 있다. 모션 보상은 일반적으로 메모리 (34) 로부터 예측 블록을 페치하거나 또는 생성하는 프로세스로 간주되며, 이 프로세스는 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 데이터를 내삽하거나 또는 아니면 생성하는 것을 포함할 수도 있다.
ME 유닛 (35) 은 비디오 블록을 하나 이상의 참조 프레임들 (예컨대, 동일한 시간 인스턴스에서 다른 뷰들로부터의 이전 및/또는 후속 프레임 또는 프레임들) 의 참조 블록들과 비교함으로써, 코딩되는 비디오 블록에 대한 적어도 하나의 모션 벡터를 계산한다. 참조 프레임들에 대한 데이터 (예컨대, 텍스쳐 및/또는 심도 성분들) 는 메모리 (34) 에 저장될 수도 있다. ME 유닛 (35) 은 모션 추정을 분수 픽셀 정밀도로 수행할 수도 있는데, 이는 종종 분수 픽셀, 분수 펠 (pel), 서브-정수, 또는 서브-픽셀 모션 추정으로서 지칭된다. 분수 픽셀 모션 추정에서, ME 유닛 (35) 은 정수 픽셀 로케이션 이외의 로케이션까지의 변위를 나타내는 모션 벡터를 계산할 수도 있다. 따라서, 모션 벡터는 분수 픽셀 정밀도, 예컨대, 1/2-픽셀 정밀도, 1/4-픽셀 정밀도, 1/8 픽셀 정밀도, 또는 다른 분수 픽셀 정밀도들을 가질 수도 있다. 이 방법으로, 분수 픽셀 모션 추정은 예측 유닛 (32) 로 하여금 정수-픽셀 (또는, 풀-픽셀) 로케이션들보다 더 높은 정밀도로 모션을 추정할 수 있도록 하며, 따라서, 예측 유닛 (32) 은 더 정확한 예측 블록을 생성할 수도 있다.
ME 유닛 (35) 은 모션 추정 프로세스 동안 임의의 필요한 내삽들을 위해 필터(들) (39) 을 호출할 수도 있다. 일부 예들에서, 메모리 (34) 는 서브-정수 픽셀들에 대한 내삽된 값들을 저장할 수도 있으며, 이 내삽된 값들은 예컨대, 필터(들) (39) 을 이용하여 합산기 (51) 에 의해 계산될 수도 있다. 예를 들어, 합산기 (51) 는 메모리 (34) 에 저장되는 재구성된 블록들에 필터(들) (39) 을 적용할 수도 있다.
분수 픽셀 모션 보상을 수행하기 위해, MC 유닛 (37) 은 서브-픽셀 해상도 (본원에서는, 서브-픽셀 또는 분수 픽셀 값들로서 지칭됨) 에서 데이터를 생성하기 위해 내삽 (종종 내삽 필터링으로서 지칭됨) 을 수행할 수도 있다. MC 유닛 (37) 은 이 내삽을 위해 필터(들) (39) 을 호출할 수도 있다. 이 방법으로, 예측 유닛 (32) 은 참조 블록의 서브-정수 픽셀 위치들에 대한 값들을 계산할 수도 있으며, 이 값들은 이후 3D 블록 유닛의 심도 성분 및 텍스쳐 성분의 각각에 대한 비디오 데이터의 예측 블록을 생성하는데 사용될 수도 있다. 일 예에서, 예측 블록이 3D 블록 유닛의 텍스쳐 성분에 대해 생성될 수도 있으며, 예측 블록 또는 3D 블록 유닛의 텍스쳐 성분이 동일한 뷰, 또는 공통 시간 인스턴스와 연관되는 다른 뷰들에 대응하여, 동일한 3D 블록 유닛의 심도 성분을 생성하는데 사용될 수도 있다.
일단 코딩되는 비디오 블록에 대한 모션 벡터가 ME 유닛 (35) 에 의해 계산되면, MC 유닛 (37) 은 그 모션 벡터와 연관되는 예측 비디오 블록을 생성한다. MC 유닛 (37) 은 MC 유닛 (35) 에 의해 결정된 모션 벡터에 기초하여, 메모리 (34) 로부터 예측 블록을 페치할 수도 있다. 분수 픽셀 정밀도를 가진 모션 벡터의 경우에, MC 유닛 (37) 은 메모리 (34) 로부터의 데이터를 필터링하여, 이런 데이터를 서브-픽셀 해상도로 내삽할 수도 있다, 예컨대, 이 프로세스를 위해 필터(들) (39) 를 호출할 수도 있다.
일부의 경우, 이런 데이터를 서브-픽셀 해상도로 내삽하는데 사용되는 필터 계수들에 대응하는 풀-정수 픽셀 위치들은 코딩된 비트스트림에의 포함을 위해 엔트로피 코딩 유닛 (46) 에 하나 이상의 내삽 구문 엘리먼트들로서 표시될 수도 있다. 이와 유사하게, 서브-픽셀 예측 데이터를 생성하는데 사용되었던 내삽 필터링 기법 또는 모드는 또한 코딩된 비트스트림에의 포함을 위해 하나 이상의 내삽 구문 엘리먼트들로서 엔트로피 코딩 유닛 (46) 에 표시될 수도 있다.
일단 예측 유닛 (32) 이 예측 블록을 생성하였으면, 비디오 인코더 (22) 는 코딩중인 원래 비디오 블록으로부터 예측 블록을 감산하여, 잔여 비디오 블록 (도 2 에서 "RESID.BLOCK" 으로 라벨링됨) 을 형성한다. 이 감산은 원래 비디오 블록에서의 텍스쳐 성분들과 텍스쳐 예측 블록에서의 텍스쳐 성분들 사이 뿐만 아니라, 원래 비디오 블록에서의 심도 정보 또는 심도 예측 블록에서의 심도 정보로부터의 심도 맵에 대해서도 일어날 수도 있다. 가산기 (48) 는 이 감산 동작을 수행하는 구성요소 또는 구성요소들을 나타낸다.
변환 유닛 (38) 은 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환과 같은 변환을 잔여 블록에 적용하여, 잔여 변환 블록 계수들을 포함하는 비디오 블록을 생성한다. 변환 유닛 (38) 이 HEVC 에 의해 정의되는 바와 같은 CU 의 TU 에 대조적으로, 비디오 데이터의 블록의 잔여 계수들에 변환을 적용하는 비디오 인코더 (22) 의 구성요소를 나타내는 것으로 이해되어야 한다. 변환 유닛 (38) 은 예를 들어, DCT 와 개념적으로 유사한, H.264 표준에 정의된 변환들과 같은, 다른 변환들을 수행할 수도 있다. 이런 변환들은 예를 들어, (Karhunen-Loeve theorem 변환들과 같은) 방향 변환들, 웨이블릿 변환들, 정수 변환들, 서브밴드 변환들, 또는 다른 유형들의 변환들을 포함할 수도 있다. 어쨌든, 변환 유닛 (38) 은 그 변환을 잔여 블록에 적용하여, 잔여 변환 계수들의 블록을 생성한다. 변환 유닛 (38) 은 동일한 유형의 변환을 대응하는 잔여 블록들에서 텍스쳐 성분들 및 심도 정보 양자에 적용할 수도 있다. 각각의 텍스쳐 및 심도 성분에 대해 별개의 잔여 블록들이 존재할 것이다. 이 변환은 잔여 정보를 픽셀 도메인으로부터 주파수 도메인으로 변환할 수도 있다.
양자화 유닛 (40) 은 비트 레이트를 추가로 감소시키기 위해 잔여 변환 계수들을 양자화한다. 양자화 프로세스는 그 계수들의 일부 또는 모두와 연관되는 비트 심도를 감소시킬 수도 있다. 양자화 유닛 (40) 은 심도 이미지 코딩 잔여 (residue) 를 양자화할 수도 있다. 양자화 이후, 엔트로피 코딩 유닛 (46) 은 양자화된 변환 계수들을 엔트로피 코딩한다. 예를 들어, 엔트로피 코딩 유닛 (46) 은 CAVLC, CABAC, 또는 또 다른 엔트로피 코딩 방법론을 수행할 수도 있다.
엔트로피 코딩 유닛 (46) 은 또한 하나 이상의 모션 벡터들을 코딩하고 예측 유닛 (32) 또는 비디오 인코더 (22) 의 다른 구성요소, 예컨대 양자화 유닛 (40) 로부터 획득되는 정보를 지원할 수도 있다. 하나 이상의 예측 구문 엘리먼트들은 코딩 모드, 하나 이상의 모션 벡터들에 대한 데이터 (예컨대, 수평 및 수직 성분들, 참조 리스트 식별자들, 리스트 인덱스들, 및/또는 모션 벡터 해상도 시그널링 정보), 사용되는 내삽 기법의 표시, 필터 계수들의 세트, 루마 성분의 해상도에 대한 심도 이미지의 상대적인 해상도의 표시, 심도 이미지 코딩 잔여에 대한 양자화 매트릭스, 심도 이미지에 대한 디블로킹 정보, 또는 예측 블록의 생성과 연관되는 다른 정보를 포함할 수도 있다. 이들 예측 구문 엘리먼트들은 시퀀스 레벨에서 또는 화상 레벨에서 제공될 수도 있다. 본 개시물의 기법들에 따르면, 엔트로피 코딩 유닛 (46) 은 또한 인트라- 및 인터-뷰 예측 의존성들 및 뷰 합성 예측과 연관되는 파라미터들에 관한 정보를 코딩할 수도 있다.
하나 이상의 구문 엘리먼트들은 또한 텍스쳐 성분과 심도 성분 사이의 양자화 파라미터 (QP) 차이를 포함할 수도 있다. 이 QP 차이는 슬라이스 레벨에서 시그널링될 수도 있다. 심도 정보에 대한 코딩된 블록 패턴, 심도 정보에 대한 delta QP, 모션 벡터 차이, 또는 예측 블록의 생성과 연관되는 다른 정보를 포함한, 다른 구문 엘리먼트들이 또한 코딩된 블록 유닛 레벨에서 시그널링될 수도 있다. 모션 벡터 차이는 텍스쳐 성분들의 목표 모션 벡터와 모션 벡터 사이의 delta 값으로서, 또는 목표 모션 벡터 (즉, 코딩중인 블록의 모션 벡터) 와 그 블록 (예컨대, CU 의 PU) 에 대한 이웃하는 모션 벡터들로부터의 예측자 사이의 delta 값으로서 시그널링될 수도 있다.
본 개시물의 기법들에 따르면, 엔트로피 코딩 유닛 (46) 에 의한 엔트로피 코딩 이후, 뷰의 텍스쳐 성분 및 심도 성분은 그 뷰에 대한 동일한 시간 인스턴스에 대응하는 VCL NAL 유닛들로 캡슐화될 수도 있다. 엔트로피 코딩 유닛 (46) 은 NAL 유닛 헤더를 텍스쳐 또는 심도 정보의 각각의 슬라이스들 및 프레임들에 추가하여, 각각의 NAL 유닛 내에 심도 또는 텍스쳐 정보를 캡슐화할 수도 있다. 비디오 인코더 (22) 는 또한 그 뷰에 대한 텍스쳐 데이터의 끝 및 심도 정보의 시작을 나타내는 NAL 유닛 구분문자를 비트스트림에 추가할 수도 있다. 이의 대안으로, 비디오 인코더 (22) 는 NAL 유닛이 텍스쳐 또는 심도 정보를 포함하는 지를 나타내기 위해 NAL 유닛 헤더에 포함된 심도 플래그에 대한 값을 설정할 수도 있다.
게다가, 본 개시물의 기법들은 인트라- 및 인터-뷰 예측 의존성들 및 뷰 합성 예측과 연관되는 파라미터들에 관한 신호를 비트스트림 내에 제공할 수도 있다. 즉, 비디오 인코더 (22) 는 텍스쳐 성분들 및 심도 성분들에 대한 참조를 위해 사용되는 특정의 엘리먼트들을 나타내는 정보를 제공할 수도 있다. 뷰의 텍스쳐 성분 및 심도 성분을 캡슐화하는 코딩된 비트스트림은 그후 또 다른 디바이스로 송신되거나 또는 송신 또는 취출을 위해 (예를 들어, 메모리 (34) 에서) 아카이브될 수도 있다.
역양자화 유닛 (42) 및 역변환 유닛 (44) 은 역양자화 및 역변환을 각각 적용하여, 예컨대, 참조 블록으로 추후 사용을 위해, 픽셀 도메인에서 잔여 블록을 재구성한다. 재구성된 잔여 블록 (도 2 에서 "RECON.RESID.BLOCK" 으로 라벨링됨) 은 변환 유닛 (38) 에 제공되는 잔여 블록의 재구성된 버전을 나타낼 수도 있다. 재구성된 잔여 블록은 양자화 및 역양자화 동작들에 의해 초래되는 세부 손실로 인해, 합산기 (48) 에 의해 생성되는 잔여 블록과는 상이할 수도 있다. 합산기 (51) 는 재구성된 잔여 블록을 예측 유닛 (32) 에 의해 생성된 모션 보상된 예측 블록에 가산하여, 메모리 (34) 에의 저장을 위해 재구성된 비디오 블록을 생성한다. 재구성된 비디오 블록은 후속 비디오 프레임 또는 후속 코딩된 유닛에서 블록 유닛을 후속하여 코딩하는데 사용될 수도 있는 참조 블록으로서 예측 유닛 (32) 에 의해 사용될 수도 있다.
이 방법으로, 비디오 인코더 (22) 는 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 수신하고, 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터에 대응하는 심도 데이터를 수신하고, 그리고 텍스쳐 데이터 및 심도 데이터가 공통 비트스트림 내에 캡슐화되게 그 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 데이터 및 심도 데이터를 캡슐화하도록 구성된 비디오 인코더의 일 예를 나타낸다. 비디오 인코더 (22) 는 또한 예를 들어, 인트라-예측 (예컨대, 동일한 뷰의 다른 심도 정보로부터 심도 정보를 예측하는 것), 시간 또는 인터-뷰 예측 (예컨대, 상이한 뷰 성분의 심도 정보로부터 또는 상이한 뷰 성분의 텍스쳐 정보로부터 심도 정보를 예측하는 것), 및 비디오 데이터의 뷰의 텍스쳐 데이터를 캡쳐하는데 사용되는 카메라에 대한 카메라 파라미터들과 같은, 예측 의존성들에 관한 정보를 시그널링할 수도 있다.
도 3a 내지 도 3b 는 본 개시물의 기법들 중 하나 이상의 기법들의 구현예에서 사용될 수 있는 비트스트림 구조의 엘리먼트들의 예들을 예시하는 개념도들이다. 비트스트림은 2-구성요소 MVD 블록 유닛들 및 구문 엘리먼트들을, 예를 들어, 도 1 의 소스 디바이스 (12) 와 목적지 디바이스 (16) 사이에 전송하는데 사용될 수도 있다. 이 비트스트림은 코딩 표준 ITU H.264/AVC 에 부합할 수도 있으며, 특히, MVC 비트스트림 구조를 따른다. 즉, 비트스트림은 일부 예들에서, H.264/AVC 의 MVC 확장판을 따를 수도 있다. 다른 예들에서, 비트스트림은 HEVC 의 멀티뷰 확장판 또는 또 다른 표준의 멀티뷰 확장판을 따를 수도 있다. 또한 다른 예들에서, 다른 코딩 표준들이 사용될 수도 있다.
대표적인 MVC 비트스트림 순서 (디코딩 순서) 배열은 시간-우선 코딩 (time-first coding) 이다. 각각의 액세스 유닛은 하나의 출력 시간 인스턴스에 대해 모든 뷰들의 코딩된 화상들을 포함하도록 정의된다. 액세스 유닛들의 디코딩 순서는 출력 또는 디스플레이 순서와 동일하거나 동일하지 않을 수도 있다. 일반적으로, MVC 예측은 각각의 뷰 내 인터-화상 예측 및 인터-뷰 예측 양자를 포함할 수도 있다. MVC 에서, 인터-뷰 예측은 디스패리티 모션 보상에 의해 지원될 수도 있으며, 이 디스패리티 모션 보상은 H.264/AVC 모션 보상의 구문을 이용하지만, 상이한 뷰에서의 화상이 참조 화상으로서 사용될 수 있게 한다.
2개의 뷰들의 코딩은 MVC 에 의해 지원된다. MVC 의 이점들 중 하나는, MVC 인코더가 2개 보다 많은 뷰들을 3D 비디오 입력으로서 취할 수 있고 MVC 디코더가 2개의 뷰들을 멀티-뷰 표현으로 디코딩할 수 있다는 점이다. 따라서, MVC 디코더를 가진 렌더러는 3D 비디오 콘텐츠를 다수의 뷰들을 갖는 것으로 취급할 수도 있다. 이전에, MVC 는 SEI 메시지들 (스테레오 정보 (info.) 또는 공간 인터리빙 화상들) 을 갖는 H.264/AVC 와 유사하게, 심도 맵 입력을 프로세싱하지 않았다.
H.264/AVC 표준에서, 네트워크 추상 계층 (NAL) 유닛들은 비디오 전화 통신, 스토리지, 또는 스트리밍 비디오와 같은 "네트워크-친화적인" 비디오 표현 어드레싱 (addressing) 애플리케이션들을 제공하기 위해 정의된다. NAL 유닛들은 비디오 코딩 층 (VCL) NAL 유닛들 및 비-VCL NAL 유닛들로 분류될 수 있다. VCL 유닛들은 코어 압축 엔진을 포함하고, 블록, 매크로블록 (MB), 및 슬라이스 레벨들을 포함할 수도 있다. 다른 NAL 유닛들은 비-VCL NAL 유닛들이다.
2D 비디오 인코딩에 있어, 각각의 NAL 유닛은 1 바이트 NAL 유닛 헤더 및 가변 사이즈의 페이로드를 포함할 수도 있다. 5 비트들이 NAL 유닛 유형을 규정하는데 사용될 수도 있다. 3 비트들이 nal_ref_idc 에 대해 사용될 수도 있으며, 이것은 NAL 유닛이 다른 화상들 (NAL 유닛들) 에 의해 참조되고 있다는 관점에서 얼마나 중요한 지를 나타낸다. 예를 들어, 0 과 같이 nal_ref_idc 을 설정하는 것은 NAL 유닛이 인터 예측에 사용되지 않는다는 것을 의미한다. H.264/AVC 가 스케일러블 비디오 코딩 (SVC) 표준과 같은 3D 비디오 인코딩을 포함하도록 확장될 수도 있기 때문에, NAL 헤더는 2D 시나리오의 NAL 헤더와 유사할 수도 있다. 예를 들어, NAL 유닛 헤더에서 하나 이상의 비트들이 그 NAL 유닛이 4-구성요소 NAL 유닛인지를 식별하는데 사용될 수도 있다.
NAL 유닛 헤더들은 또한 MVC NAL 유닛들에 대해 사용될 수도 있다. 그러나, MVC 에서, NAL 유닛 헤더 구조가 접두사 NAL 유닛들 및 MVC 코딩된 슬라이스 NAL 유닛들을 제외하고, 보유될 수도 있다. MVC 코딩된 슬라이스 NAL 유닛들은 4-바이트 헤더 및 NAL 유닛 페이로드를 포함할 수도 있으며, 도 1 의 코딩된 블록 (8) 과 같은 블록 유닛을 포함할 수도 있다. MVC NAL 유닛 헤더에서 구문 엘리먼트들은 priority_id, temporal_id, anchor_pic_flag, view_id, non_idr_flag 및 inter_view_flag 를 포함할 수도 있다. 다른 예들에서, 다른 구문 엘리먼트들이 MVC NAL 유닛 헤더에 포함될 수도 있다.
구문 엘리먼트 anchor_pic_flag 는 화상이 앵커 화상 또는 비-앵커 화상인 지를 나타낼 수도 있다. 앵커 화상들 및 출력 순서 (즉, 디스플레이 순서) 에서 그에 뒤를 잇는 모든 화상들은 디코딩 순서 (즉, 비트스트림 순서) 에서 이전 화상들의 디코딩 없이 정확히 디코딩될 수 있으며, 따라서 무작위 액세스 지점들로서 사용될 수 있다. 앵커 화상들 및 비-앵커 화상들은 상이한 의존성들을 가질 수 있으며, 이 양자는 시퀀스 파라미터 세트로 시그널링될 수도 있다.
MVC 에서 정의된 비트스트림 구조는 2개의 구문 엘리먼트들: view_id 및 temporal_id 을 특징으로 할 수도 있다. 구문 엘리먼트 view_id 는 각각의 뷰의 식별자를 나타낼 수도 있다. NAL 유닛 헤더에서 이 식별자는 디코더에서 NAL 유닛들의 용이한 식별 및 디스플레이를 위한 디코딩된 뷰들의 신속한 액세스를 가능하게 한다. 구문 엘리먼트 temporal_id 는 시간 스케일러빌리티 계층 (temporal scalability hierarchy) 또는, 간접적으로는, 프레임 레이트를 나타낼 수도 있다. 예를 들어, 더 작은 최대 temporal_id 값을 가진 NAL 유닛들을 포함하는 동작 지점은 더 큰 최대 temporal_id 값을 가진 동작 지점보다 낮은 프레임 레이트를 가질 수도 있다. 더 높은 temporal_id 값을 가진 코딩된 화상들은 일반적으로 뷰 내에 낮은 temporal_id 값들을 가진 코딩된 화상들에 의존하지만, 더 높은 temporal_id 를 가진 임의의 코딩된 화상에 의존하지 않을 수도 있다.
NAL 유닛 헤더에서 구문 엘리먼트들 view_id 및 temporal_id 는 비트스트림 추출 및 적응 양자를 위해 사용될 수도 있다. 구문 엘리먼트 priority_id 는 간단한 하나의-경로 비트스트림 적응 프로세스에 대해 주로 사용될 수도 있다. 구문 엘리먼트 inter_view_flag 는 이 NAL 유닛이 상이한 뷰에서 또 다른 NAL 유닛을 인터-뷰 예측하는데 사용되는 지를 나타낼 수도 있다.
MVC 는 또한 시퀀스 파라미터 세트들 (SPSs) 을 채용하고 SPS MVC 확장판을 포함할 수도 있다. 파라미터 세트들이 H.264/AVC 에서 시그널링하는데 사용된다. 파라미터 세트들은 시퀀스-레벨 헤더 정보를 시퀀스 파라미터 세트들로, 그리고 드물게 변하는 화상-레벨 헤더 정보를 화상 파라미터 세트들 (PPSs) 로 포함할 수도 있다. 파라미터 세트들에 의하면, 이 드물게 변하는 정보는 각각의 시퀀스 또는 화상에 대해 반복될 필요가 없으며, 따라서 코딩 효율이 향상된다. 더욱이, 파라미터 세트들의 사용은 헤더 정보의 대역외 송신을 가능하게 하여, 에러 복원력을 위한 여분의 송신들의 요구를 회피한다. 대역외 송신의 일부 예들에서, 파라미터 세트 NAL 유닛들은 다른 NAL 유닛들과는 상이한 채널 상에서 송신될 수도 있다. MVC 에서, 뷰 의존성은 SPS MVC 확장판으로 시그널링될 수도 있다. 모든 인터-뷰 예측은 SPS MVC 확장판에 의해 규정된 범위 내에서 이루어질 수도 있다.
3D 비디오 인코딩 기법들에서, MVD 콘텐츠의 텍스쳐 및 심도를 고효율로 공동으로 코딩하는 것이 바람직할 수도 있다. 그러나, 텍스쳐 성분 및 심도 성분을 공동으로 코딩하는 것을 효율적으로 달성하기 위해, 어떤 요구사항들을 만족시키는 것이 바람직할 수도 있다. 예를 들어, 심도 및 텍스쳐의 코딩된 화상들 및 디코딩된 화상들을 글로벌하게 관리하는 것이 더 바람직할 수도 있다. 따라서, 뷰 내부의 텍스쳐에 대한 NAL 유닛과는 별개인 심도 맵에 대한 NAL 유닛을 이용하는 것이 바람직할 수도 있다. 또한, 그 포맷이 H.264/AVC 및 MVC 과 같은 어떤 표준들과 호환가능한 것이 바람직할 수도 있다. 더욱이, 동일한 뷰의 심도 맵과 텍스쳐 사이 및 상이한 뷰들 사이의 상관들이 존재할 수도 있으며, 코딩 효율을 향상시키는데 이용될 수도 있다.
본원에서 설명하는 바와 같이, 기법들은 3D 비디오를 지원하기 위해, MVC 과 같은 기존 표준들에 추가될 수도 있다. 멀티-뷰 비디오 플러스 심도 (MVD) 가 3D 비디오 프로세싱을 위해 MVC 에 추가될 수도 있다. 3D 비디오 인코딩 기법들은 예를 들어, 디바이스들의 사양들 또는 사용자 선호사항들에 기초하여 시야각을 부드럽게 변경하거나 또는 수렴 (convergence) 또는 심도 지각 (depth perception) 을 역방향으로 또는 순방향으로 조정하기 위해, 더 많은 유연성 및 확장성을 기존 비디오 표준들에 제공할 수도 있다. 코딩 표준들은 또한 3D 비디오에서 가상 뷰들의 생성을 위해 심도 맵들을 이용하도록 확장될 수도 있다.
본 개시물의 기법들은 3D 비디오의 코딩을 위한 프레임워크를 제공할 수도 있다. 예를 들어, 코딩된 이미지들 및 디코딩된 이미지들은 텍스쳐 및 심도에 대해 최적으로 관리될 수도 있다. 본 개시물의 기법들은 또한 MVC 스테레오 프로파일 (예컨대, 2개의 뷰들이 있는 경우) 과 호환가능한 구조를 제공할 수도 있다. 이 기법들은 또한 (예컨대, 하나의 뷰의 텍스쳐 성분과 심도 성분 사이, 또는 상이한 뷰들의 텍스쳐 성분들 간) 예측 의존성들 및 코딩에 유익한 파라미터들 (예컨대, 각각의 뷰에 대한 카메라 파라미터들) 의 비트스트림으로 시그널링하는 것을 제공할 수도 있다. 본 개시물의 기법들에 따르면, NAL 유닛 구분문자는 비트스트림에서, 텍스쳐 뷰 성분과 심도 뷰 성분 사이에 추가될 수도 있다. 예를 들어, 구분문자는 텍스쳐 데이터 (예컨대, 텍스쳐 뷰 성분) 의 끝 및 심도 정보 (예컨대, 심도 뷰 성분) 의 시작, 심도 정보의 끝, 또는 뷰 성분에 대한 텍스쳐 데이터의 시작을 나타낼 수도 있다. 이런 구분문자는 예를 들어, MPEG-2 TS 또는 다른 시스템들에 사용될 수도 있다. 일 예에서, 구분문자는 MVC 에서 상이한 뷰들로부터 뷰 성분들을 분리하는데 사용되는 NAL 유닛 구분문자와는 상이한 NAL 유닛 유형을 가질 수도 있다.
도 3a 는 본 개시물의 기법들 중 하나 이상의 기법들의 구현예에서 사용될 수도 있는 비트스트림 구조 (70) 의 일 예를 예시하는 개념도이다. 도 3a 에서, 비트스트림 (70) 은 본 개시물의 기법에 따르면, MVD 를 포함하도록 확장되어진 후 MVC 표준에 따른다. 다른 예들에서, 비트스트림 (70) 은 다른 비디오 인코딩 표준들에 따를 수도 있다.
비트스트림 (70) 은 블록 유닛들의 시그널링에 관련된 추가 정보를 포함할 수도 있다. 예를 들어, 비트스트림 (70) 은 하나 이상의 텍스쳐 성분들 (4) 에 상대적인 심도 정보 (6) 와 같은, 상이한 성분들 사이의 예측 의존성들의 표시를 포함할 수도 있다. 다른 예들에서, 비트스트림 (70) 은 상이한 뷰들과 연관되는 텍스쳐 성분들 사이의 예측 의존성들의 표시를 포함할 수도 있다. 다른 예들에서, 비트스트림 (70) 은 비트스트림에 표시된 텍스쳐 성분 및 심도 성분과 연관되는 뷰에 대한 카메라 파라미터들을 시그널링할 수도 있다.
도 3a 에 나타낸 바와 같이, 비트스트림 (70) 은 복수의 액세스 유닛들 (72-1 내지 72-N) 을 포함한다. 액세스 유닛들은 뷰들 (74-1 내지 74-M) 와 같은 뷰 성분들의 세트 (이하, 편의상 뷰들로서 지칭됨) 를 포함한다. 일반적으로, 액세스 유닛들은 공통 시간 인스턴스에 대한 모든 데이터, 예컨대, 뷰 당 하나의 뷰 성분에 대한 데이터를 포함한다. 일부 예들에서, 각각의 액세스 유닛 (72-1 내지 72-N) 은 동일한 개수의 뷰들 (74-1 내지 74-M) (뷰 (74) 로서 지칭됨) 을 포함한다. 각각의 액세스 유닛을 디코딩하는 것은 뷰 당 하나의 디코딩된 화상을 초래할 수도 있다. 액세스 유닛들 (72-1 내지 72-N) 은 3D 비디오 플레이백을 렌더링하는데 사용될 수도 있는 인코딩된 비디오 데이터를 포함할 수도 있다. 본 개시물의 기법들에 따르면, 액세스 유닛들의 뷰 성분들은 텍스쳐 및 심도 성분을 포함할 수도 있다.
도 3b 는 도 3a 의 비트스트림 (70) 의 구조에 포함될 수도 있는 뷰 성분 (74-M) 의 일 예를 도시하는 개념도이다. (액세스 유닛 (72-1) 에서의 뷰 성분 (74-1) 과 같은) 액세스 유닛에서의 각각의 뷰 성분은 비디오 코덱 층 (VCL) NAL 유닛들 (76-1 내지 76-3) 의 세트를 포함한다. 뷰 성분 (74-M) 은 NAL 유닛들 (76-1 내지 76-3) 을 특정의 유형 및 순서로 포함한다. 일반적으로, 뷰 성분들은 각각의 액세스 유닛에서 k번째 뷰 성분이 동일한 뷰에 대응하도록, 각각의 액세스 유닛에서 동일한 순서로 배열된다. 다른 예들에서, 뷰 성분 (74-M) 은 다른 개수의 NAL 유닛들을 포함하며, 이 유닛들의 일부는 텍스쳐 정보를 포함할 수도 있지만, 나머지들은 심도 정보를 포함할 수도 있다. 본 개시물의 기법들에 따르면, NAL 유닛들 (76-1 내지 76-3) 은 NAL 유닛이 텍스쳐 또는 심도 정보를 포함하는 지를 나타내는 정보 (예컨대, 플래그) 를 포함할 수도 있다. 게다가, 텍스쳐 정보 NAL 유닛이 중지하고 심도 정보 NAL 유닛이 시작하는 지를 나타내기 위해 NAL 유닛 구분문자가 이용될 수도 있다.
일 예에서, NAL 유닛을 구현할 때에, NAL 유닛 헤더 확장판이 사용될 수도 있으며, 여기서, 현재의 NAL 유닛이 뷰의 심도 맵 또는 텍스쳐의 VCL NAL 유닛을 포함하는 지를 나타내기 위해, NAL 유닛 헤더에 플래그가 추가될 수도 있다. 이의 대안으로, NAL 유닛이 심도 맵 슬라이스에 대응하는 VCL NAL 유닛인 지를 나타내기 위해 새로운 NAL 유닛 유형이 추가될 수 있다. 이 VCL NAL 유닛이 뷰의 텍스쳐의 임의의 코딩된 화상을 예측하는데 사용되는 지를 나타내기 위해, 심도 맵의 VCL NAL 유닛에 1 비트가 추가될 것이다. inter_view_flag 의 의미들은 원하는 표시를 제공하기 위해 확장될 수도 있으며, 그렇지 않으면, 심도 맵의 VCL NAL 유닛에서 inter_view_flag 는 이 NAL 유닛이 또 다른 뷰의 심도 맵을 예측하는데 사용되는 지를 나타낸다. 일 예에서, 접두사 NAL 유닛은 다음과 같은, NAL 유닛 헤더 베이스 뷰 확장판, 즉, nal_unit_header_mvc_extension() 을 포함할 수도 있다:
nal_unit_header_mvc_extension( ) {
non_idr_flag
priority_id
view_id
temporal_id
anchor_pic_flag
inter_view_flag
depth_flag
depth_to_view_flag
}
여기서, depth_flag 는 연관되는 뷰 성분이 심도 맵 NAL 유닛인 지 여부를 나타낸다. depth_flag 의 값은 NAL 유닛이 심도 맵의 코딩된 VCL NAL 유닛인 지를 나타내기 위해 1 로 설정되고, NAL 유닛이 뷰의 텍스쳐의 코딩된 VCL NAL 유닛인 지를 나타내기 위해 0 으로 설정될 수도 있다. depth_to_view_flag 가 0 과 같을 때, 그것은 텍스쳐 뷰 성분이면, 현재의 뷰 성분이 심도 뷰 성분들을 예측하는데 사용되지 않는다는 것을 나타낼 수도 있다. 심도 뷰 성분이면, 텍스쳐 성분들을 예측하는데 사용되지 않는다. depth_to_view_flag 가 1 과 같을 때, 그것이 텍스쳐 뷰 성분이면 현재의 뷰 성분이 동일한 액세스 유닛의 심도 뷰 성분들을 예측하는데 사용될 수도 있으며, 그것이 심도 뷰 성분이면 동일한 액세스 유닛의 텍스쳐 뷰 성분들을 예측하는데 사용될 수도 있다는 것을 나타낼 수도 있다. inter_view_flag 가 1 과 같을 때, 현재의 뷰 성분이 현재의 뷰 성분과 함께 양자가 텍스쳐 뷰 성분이거나 또는 양자가 심도 뷰 성분인 뷰 성분에 사용될 수도 있다는 것을 나타낸다.
아래의 표 1 은 예시적인 NAL 유닛 유형 코드들, 구문 엘리먼트 카테고리들, 및 NAL 유닛 유형 클래스들 (classes) 을 예시한다. nal_unit_type 21 은 심도 뷰 성분들, 즉, slice_layer_depth_extension_rbsp( ) 을 포함하는 NAL 유닛들에 대해 도입될 수도 있다.
nal_unit_type | NAL 유닛의 내용 및 RBSP 구문 구조 | C | 부록 A NAL 유닛 유형 클래스 |
부록 G 및 부록 H NAL 유닛 유형 클래스 |
0 | 미규정됨 | 비-VCL | 비-VCL | |
1 | 비-IDR 화상의 코딩된 슬라이스 slice_layer_without_partitioning_rbsp( ) |
2, 3, 4 | VCL | VCL |
… | ||||
19 | 파티셔닝 없이 보조 코딩된 화상의 코딩된 슬라이스 slice_layer_without_partitioning_rbsp( ) |
2, 3, 4 | 비-VCL | 비-VCL |
20 | 코딩된 슬라이스 확장판 slice_layer_extension_rbsp( ) |
2, 3, 4 | 비-VCL | VCL |
21 | 코딩된 슬라이스 심도 확장판 slice_layer_depth_extension_rbsp( ) |
2, 3, 4 | 비-VCL | VCL |
21..23 | 예약됨 | 비-VCL | 비-VCL | |
24..31 | 미규정됨 | 비-VCL | 비-VCL |
일 예에서, 시퀀스 파라미터 세트 심도 확장판이 이용될 수도 있으며 다음의 예시적인 일반 설계를 가질 수도 있다:
여기서, depth_z_mapping_idc 는 실-세계 z 값을 8-비트 심도 값 d 로 변환하는데 사용되는 심도 맵 양자화 방법을 규정한다. 이 값이 0 과 같을 때, d 가 1/z, 즉 d/255=(1/z-1/z_far)/(1/z_near-1/z_far) 에 비례한다는 것을 규정한다. 이 값이 1 과 같을 때, d 가 z, 즉, d/255 =(z-z_near)/(z_far-z_near) 에 비례한다는 것을 규정한다. 이 값이 2 와 같을 때, 맵핑 폼 (form) d 내지 z 가 명시적으로 시그널링된다는 것을 규정한다. value_z_i() 는 depth_z_mapping_idc 가 2 와 같을 때, d 내지 i 와 같은 각각의 8-비트 심도 값에 대한 z[i] 값을 시그널링하기 위한 구문 테이블이다. value_z_near() 및 value_z_far() 은 z_near 및 z_far 값들을 각각 시그널링하기 위한 구문 테이블들이다. value_focal_length_x() 및 value_focal_length_y() 은 focol_length_x 및 focal_length_y 값들을 각각, 카메라들에 의해 공유될 수도 있는 본질적인 카메라 파라미터의 부분으로서 시그널링하기 위한 구문 테이블들이다. value_principal_point_x() 및 value_principal_point_y() 은 principal_point_x 및 principal_point_y 값들을, 각각, 카메라들에 의해 공유될 수도 있는 본질적인 카메라 파라미터의 부분으로서 시그널링하기 위한 구문 테이블들이다.
카메라에 대한 외적인 카메라 파라미터의 회전 매트릭스 R 은 다음과 같이 표현될 수도 있다:
value_rotation_xy(),value_rotation_xz(), 및 value_rotation_yz() 은 회전 매트릭스 R 의 대각선 엘리먼트들의 값을 시그널링하기 위한 구문 테이블들이다. 1 과 같은 horizontal_alligned_flag 는 모든 카메라들이 수평으로 정렬된다는 것을 나타낸다. value_rotation_xy_i() 는 뷰 i 에 대응하는 카메라에 대한 회전 매트릭스 R 의 Rxy 의 값을 시그널링하기 위한 구문 테이블이다. value_translation() 는 전환 (translation) 의 값을, 뷰 i 에 대응하는 카메라의 외적인 카메라 파라미터의 부분으로서 시그널링하기 위한 구문 테이블이다. 일반적으로, value_syntax() 는 부동 소수점 값으로서 시그널링될 수도 있다.
일 예에서, 카메라들은 수평으로 정렬될 수도 있으며 상이한 카메라들은 상이한 심도 범위들에 대응할 수도 있다. 다음은 이 예에 대응하는 특정의 설계를 나타내며, 여기서, 카메라 파라미터들은 예를 들어, 다수의 뷰들 간 차분 코딩을 이용하여 좀더 효율적으로 코딩될 수도 있다:
이 구문 테이블에서, 부동 소수점 값 (V) 은 V=I*10P 가 되도록, 그의 정밀도 (P) 와 함께, 십진수 값 및 정수 값 (I) 으로서 표현될 수도 있으며, 정밀도는 제로 전후의 자리들 (digits) 의 개수를 나타낸다. I 가 양의 값일 때, V 가 또한 양의 값이고, I 가 음의 값일 때, V 는 또한 음의 값이다. 다음은 SPS 에 관련되는 뷰들에 대해 본질적인 파라미터들이다. 추가로 지정되거나 또는 업데이트되지 않는 한, 파라미터들은 관련되는 뷰들 중 임의의 뷰에 대해 동일하다:
- focal_length_precision 는 focal_length_x 및 focal_length_y 의 값들의 정밀도를 규정한다.
- focal_length_x_I 는 focal_length_x 의 값의 정수 부분을 규정한다.
focal_length_x= focal_length_x_I*10focal _ length _ precision
- focal_length_y_I_diff_x plus focal_length_x_I 는 focal_length_y 의 정수 값 부분을 규정한다.
focal_length_y=(focal_length_x_I+focal_length_y_I_diff_x )*10focal _ length _ precision
- principal_precision 는 principal_point_x 및 principal_point_y 의 값들의 정밀도를 규정한다.
- principal_point_x_I 는 principal_point_x 의 값의 정수 부분을 규정한다.
principal_point_x= principal_point_x_I*10principal _ precision
- principal_point_y_I_diff_x plus principal_point_x 는 principal_point_y 의 값의 정수 부분을 규정한다.
principal_point_y=(principal_point_x_I+ principal_point_y_I_diff_x)*10principal _ precision
다음은 SPS 에 관련되는 뷰들에 대한 외적인 파라미터들이다. 추가로 지정되거나 또는 업데이트되지 않는 한, 파라미터들은 관련되는 뷰들 중 임의의 뷰에 대해 동일하다.
- 각각의 카메라에 대한 회전 매트릭스 R 은 다음과 같이 표현된다:
- rotation_kl_half_pi 는 kl 이 xy, yz, 또는 xz 이면, 회전 매트릭스 R 의 대각선 엘리먼트들을 나타내며, 여기서, Rkl = (-1)rotation _ kl _ half _ pi 이다. 0 과 같은 이 플래그는 Rkl=1 을 규정하고; 1 과 같은 이 플래그는 Rkl =-1 을 규정한다.
- translation_precision 는 모든 관련되는 뷰들의 전환들의 값들의 정밀도를 규정한다. 이 SPS 에서 규정된 바와 같은 전환 값들의 정밀도는 이 SPS 를 참조하는 모든 뷰 성분들의 전환 값들에 적용된다.
- anchor_view_id 는 뷰의 view_id 를 규정하며, 뷰의 전환이 다른 뷰들의 전환을 계산하는데 앵커로서 사용된다. anchor_view_id 와 같은 view_id 를 가진 뷰의 전환이 zero_translation_present_flag 가 0 과 같을 때 0 과 같으며, 그렇지 않으면, 전환이 시그널링된다.
- z_near_precision 는 z_near 의 값의 정밀도를 규정한다. 이 SPS 에서 규정된 바와 같은 z_near 의 정밀도는 이 SPS 를 참조하는 뷰 성분들의 모든 z_near 값들에 적용된다.
- z_far_precision 는 z_near 의 값의 정밀도를 규정한다. 이 SPS 에서 규정된 바와 같은 z_far 의 정밀도는 이 SPS 를 참조하는 뷰 성분들의 모든 z_far 값들에 적용된다.
- z_near_integer 는 z_near 의 값의 정수 부분을 규정한다. z_near= z_near_integer*10z_ near _ precision
- z_far_integer 는 z_far 의 값의 정수 부분을 규정한다. z_far= z_far_integer*10z_ far _ precision
(심도 범위 값들이 상이한 뷰들에 대해 상이할 때, z_near 및 z_far 는 앵커 뷰의 심도 범위를 규정한다)
- 1 과 같은 zero_translation_present_flag 는 anchor_view_id 와 같은 view_id 를 가진 뷰의 전환이 0 임을 나타내며; 0 과 같은 이 값은 anchor_view_id 와 같은 view_id 를 가진 뷰의 전환이 시그널링된다는 것을 나타낸다.
- translation_anchor_view_I 는 앵커 뷰의 전환의 정수 부분을 규정한다.
- translation_anchor_view = translation_anchor_view_I*10translation _ precision
- translation_anchor_view_I 는 zero_translation_present_flag 가 1 과 같을 때 0 으로 추론된다.
- translation_diff_anchor_view_I[i] plus translation_anchor_view_I 는 translation_view[i] 로서 표기되는, i 와 같은 view_id 를 가진 뷰의 전환의 정수 부분을 규정한다.
- translation_view[i] = (translation_anchor_view_I+ translation_diff_anchor_view_I[i]) *10translation _ precision
(translation_view[i] 의 정수 부분을 translation_view_I[i] 로서 표기한다)
- z_near_diff_anchor_view_I plus z_near_integer 는 z_near[i] 로서 표기되는, i 와 같은 view_id 을 가진 뷰의 가장 가까운 심도 값의 정수 부분을 규정한다.
- z_near[i] = (z_near_diff_anchor_view_I[i] + z_near_integer) *10z_ near _ precision
(z_near[i] 의 정수 부분을 z_near_I[i] 로서 표기한다)
- z_far_diff_anchor_view_I plus z_far_integer 는 z_far[i] 로서 표기되는, i 와 같은 view_id 를 가진 뷰의 가장 먼 심도 값의 정수 부분을 규정한다.
- z_far[i] = (z_far_diff_anchor_view_I[i] + z_far_integer) *10z_ far _ precision
(z_far[i] 의 정수 부분을 z_far_I[i] 로서 표기한다)
이 예시적인 설계에서, 값은 V=I*10P 로서 표현된다. 또 다른 예에서, 이 값은 V=I*bP 와 같은 다른 베이스들 (bases) 로 표현될 수도 있으며, 여기서, b 는 2, 8, 또는 16 과 같을 수도 있다. 일 예에서, focal_length_x_I, principal_point_x_I, translation_anchor_view_I, z_near_integer 및 z_far_integer 는 고정 길이 코딩으로서, 예컨대, 32 비트의 디폴트 길이로, 또는 N-비트의 시그널링되는 길이로 시그널링될 수도 있다.
일부 예들에서, 뷰의 심도 범위 또는 외적인 카메라 파라미터 (예컨대, 전환) 는 화상 단위로 변화될 수도 있거나 또는 업데이트될 수도 있다. 업데이트된 심도 범위 또는 카메라 파라미터들은, 현재의 PPS 가 그 관련되는 뷰들에 대한 그들 값들을 업데이트한 이후의 PPS 심도 확장판을 새로운 PPS 가 포함할 때까지, 그 비트스트림에서 현재의 액세스 유닛의 뷰 성분들 및 다음 뷰 성분들에 적용할 수도 있다. 또 다른 예에서, PPS 심도 확장판을 포함하는 PPS 는 상이한 NAL 유닛 유형으로서 할당될 수도 있으며, 그 경우, PPS 심도 확장판 자체는 RBSP 를 형성한다.
또 다른 예에서, 상이한 NAL 유닛 유형을 가진 뷰 파라미터 세트가 심도 범위 및 전환의 변화를 시그널링하기 위해 도입될 수도 있다. 심도 범위 및 카메라의 전환은 화상 단위로 변화될 수도 있다. 업데이트된 심도 범위 또는 카메라 파라미터들은, 현재의 VPS 다음의 새로운 VPS 가 관련되는 뷰들에 대한 그들 값들을 업데이트할 때까지, 그 비트스트림에서 현재의 액세스 유닛의 뷰 성분들 및 다음 뷰 성분들에 적용될 수도 있다. 구문 엘리먼트들은 PPS 확장판에 대한 의미들과 동일한 의미들을 가질 수도 있다. 뷰 파라미터 세트는 심도 확장판을 포함하는 현재 활성 SPS 를 직접 참조할 수도 있다.
일부 예들에서, 심도 범위 및 전환은 잠시 후 극적으로 변할 것이며, 따라서, VPS 가 오직 SPS 를 직접 참조하면 덜 효율적이 될 것이다. 이 잠재적인 문제를 해결하는 한 방법은, 뷰 파라미터 세트가 심도 확장판을 가진 PPS 를 참조할 때, 어느 PPS VPS 가 참조되는 지를 알기 위해 제 1 심도 뷰 성분의 슬라이스 헤더를 파싱한 후 뷰 파라미터 세트를 계산하는 것이 있을 수도 있다. 또 다른 예에서, PPS id 가 이 문제를 해결하기 위해 VPS 에 더해질 수 있다.
일부 예들에서, 일부 뷰 파라미터 세트는 SPS 및 PPS 와 동일한 우선순위로 주어질 수도 있으며, 따라서 대역외로 시그널링될 수도 있다. 이 예에서, 플래그는 VPS 가 업데이트들 SPS 에서의 값들을 업데이트하고 다음 정상 VPS 가 오직 그 업데이트된 값들을 참조하도록 도입될 수도 있다. 이 예에서, 프레임에는 VPS 가 시그널링될 수도 있다.
심도 범위 및 카메라의 전환은 화상 단위로 변화될 수도 있다. 업데이트된 심도 범위 또는 카메라 파라미터들은, 현재의 PPS 가 관련되는 뷰들에 대한 그들 값들을 업데이트한 이후의 PPS 심도 확장판을 새로운 PPS 가 포함할 때까지, 그 비트스트림에서 현재의 액세스 유닛의 뷰 성분들 및 다음 뷰 성분들에 적용될 수도 있다.
일 예에서, 화상 파라미터 세트 구문은 다음과 같을 수도 있다:
여기서,
- base_pic_parameter_set_id 는 현재의 화상 파라미터 세트가 참조하는 화상 파라미터 세트의 id 를 규정한다. 대응하는 파라미터 세트는 정상 화상 파라미터 세트 또는 화상 파라미터 세트 확장판일 것이다.
- z_near_diff_integer_anchor plus z_near_integer 는 앵커 뷰의 새로운 가장 가까운 심도의 정수 부분을 규정한다.
- z_far_diff_integer_anchor plus z_far_integer 는 앵커 뷰의 새로운 가장 먼 심도의 정수 부분을 규정한다.
- delta_translation_anchor_view_I plus 는 앵커 뷰의 새로운 전환과 앵커 뷰의 이전 전환의 정수 부분들 사이의 차이를 규정한다. 이 값은 zero_tranlation_present_flag 가 1 과 같으면, 0 으로 추론된다.
- SPS 에서 규정된 바와 같이, delta_translation_diff_anchor_view_I[i] plus translation_diff_anchor_view_I[i] 는 translation_anchor_view_I 와, i 와 같은 view_id 을 가진 뷰의 새로운 전환의 정수 부분 사이의 차이를 규정한다.
- new_translation_view_I[i] =(delta_translation_diff_anchor_view_I[i]+translation_diff_anchor_view_I[i]+new_translation_anchor_view_I)*10translation_precision
또는
new_translation_view_I[i]
=(delta_translation_diff_anchor_view_I[i]+translation_view_I[i]+
new_translation_anchor_view_I- translation_anchor_view_I) *10translation _ precision
일부 예들에서, 앵커 뷰 전환들은 항상 0 이며, 따라서 제 2 공식은 더 간단하게 될 수도 있다. 다른 예들에서, 이 값은 i 와 같은 view_id 을 가진 뷰의 새로운 전환 및 SPS 로 시그널링된 대응하는 전환의 정수 부분들 사이의 차이를 직접 시그널링하는데 사용될 수도 있다.
- translation_diff_update_anchor_view_I[i] 는 i 와 같은 view_id 와 같은 뷰의 새로운 전환 및 동일한 뷰에 대한 SPS 에서의 시그널링으로 계산된 전환의 정수 부분들 사이의 차이를 규정한다.
- new_translation_view_I[i] = (translation_diff_update_anchor_view_I[i] + translation_view_I[i])*10translation _ precision
이 예에서, 구문 이름은 delta_translation_diff_anchor_view_I[i] 로부터 translation_diff_update_anchor_view_I[i] 로 변화될 수도 있다. 참조하고 있는 현재의 PPS 의 이전 값들은 base_pic_parameter_set_id 가 정상 화상 파라미터 세트에 대응하면 SPS 에서 정의된 값들이고; 아니면, (base_pic_parmeter_set_id 가 화상 파라미터 세트 심도 확장판에 대응하면) 이전 값들은 참조 (베이스) 화상 파라미터 세트에 의해 시그널링된 값들이다.
또 다른 예에서, PPS 심도 확장판을 포함하는 PPS 는 상이한 NAL 유닛 유형으로서 할당될 수도 있으며, 그 경우, PPS 심도 확장판 자체는 RBSP 를 형성한다:
여기서,
- base_pic_parameter_set_id 는 현재의 화상 파라미터 세트가 참조하는 화상 파라미터 세트의 id 를 규정한다. 대응하는 파라미터 세트는 정상 화상 파라미터 세트 또는 화상 파라미터 세트 확장판일 것이다.
- pic_parameter_set_id 는 현재의 화상 파라미터 세트 확장판의 화상 파라미터 세트 id 를 규정한다.
일 예에서, 정상 화상 파라미터 세트들 및 화상 파라미터 세트 심도 확장판들은 동일한 넘버링 (numbering) 시스템을 공유한다.
일부 예들에서, (예컨대, 상이한 NAL 유닛 유형을 가진) 뷰 파라미터 세트가 심도 범위 및 전환의 변화들을 시그널링하기 위해 도입될 수도 있다.
일부 예들에서, 심도 범위 및 카메라의 전환은 화상 단위로 변화될 수도 있다. 업데이트된 심도 범위 또는 카메라 파라미터들은, 현재의 VPS 다음의 새로운 VPS 가 관련되는 뷰들에 대한 그들 값들을 업데이트할 때까지, 그 비트스트림에서 현재의 액세스 유닛의 뷰 성분들 및 다음 뷰 성분들에 적용될 수도 있다. VPS 가 비트스트림의 액세스 유닛에 존재하면, VPS 는 액세스 유닛의 임의의 뷰 성분들 앞에 더해질 수도 있다. 구문 엘리먼트들은 PPS 확장판에 대한 의미들과 동일한 의미들을 가질 수도 있다. 뷰 파라미터 세트는 심도 확장판을 포함하는 현재 활성 SPS 를 직접 참조할 수도 있다.
일부 예들에서, 심도 범위 및 전환은 잠시 후 극적으로 변화할 수도 있으며, 따라서 VPS 가 오직 SPS 를 직접 참조하면 그렇게 효율적이지 않을 수도 있다. 이 예에서, 뷰 파라미터 세트는 심도 확장판을 가진 PPS 를 참조할 수도 있으며, 어느 PPS VPS 가 참조하고 있는 지를 알기 위해 제 1 심도 뷰 성분의 슬라이스 헤더를 파싱한 후에 계산될 수 있다. 또 다른 예에서, PPS id 가 아래에 나타낸 바와 같이, VPS 에 더해질 수도 있다:
일부 예들에서, 일부 뷰 파라미터 세트들은 SPS 및 PPS 와 동일한 우선순위로 주어질 수도 있으며, 그러므로 대역외로 시그널링될 수도 있다. 이 예에서, 플래그는 VPS 가 SPS 에서의 값들을 업데이트하도록 도입될 수도 있으며, 다음 정상 VPS 는 그 업데이트된 값들을 참조할 수도 있다. 이 예에서, VPS 가 적용되는 제 1 프레임이 시그널링된다. 이런 VPS 가 start_frame_num 과 같은 frame_num 을 가진 참조 프레임을 디코딩하여 수신되지 않으면, 분실된 것으로 간주될 수도 있다. 또 다른 예에서, POC 값이 또한 시그널링될 수도 있다.
도 4a 는 예시적인 MVC 예측 패턴을 예시하는 개념도이다. 도 4a 는 인터-뷰 예측을 위한 예시적인 코딩 방식을 제공한다. 일반적으로, MVC 비디오 데이터의 인코딩된 프레임은 공간적으로, 시간적으로, 및/또는 공통 시간 로케이션에서의 다른 뷰들의 프레임들을 참조하여 예측 인코딩될 수도 있다. 따라서, 다른 뷰들이 예측되어지는, 참조 뷰들은, 일반적으로 이들 디코딩된 뷰들이 참조 뷰들을 디코딩할 때에 참조용으로 사용될 수 있도록, 참조 뷰들이 참조로서 작용하는 뷰들 앞에서 디코딩된다. 디코딩 순서는 view_ids 의 순서에 반드시 대응할 필요는 없다. 따라서, 뷰들의 디코딩 순서는 뷰 순서 인덱스들을 이용하여 설명된다. 뷰 순서 인덱스들은 액세스 유닛에서 대응하는 뷰 성분들의 디코딩 순서를 나타내는 인덱스들이다.
도 4a 의 예에서, (뷰 IDs "S0" 내지 "S7" 을 가진) 8개의 뷰들이 예시되며, 12개의 시간 로케이션들 ("T0" 내지 "T11") 이 각각의 뷰에 대해 예시된다. 즉, 도 4a 에서 각각의 로우는 뷰에 대응하지만, 각각의 칼럼은 시간 로케이션을 나타낸다. MVC 가 H.264/AVC 디코더들에 의해 디코딩가능한 소위 베이스 뷰를 갖고 스테레오 뷰 쌍이 또한 MVC 에 의해 지원될 수 있지만, MVC 의 이점은 2개 보다 많은 뷰들을 3D 비디오 입력으로서 사용하고 다수의 뷰들로 표현되는 이 3D 비디오를 디코딩하는 예를 지원할 수 있다는 점이다. MVC 디코더를 갖는 클라이언트의 렌더러는 다수의 뷰들을 가진 3D 비디오 콘텐츠를 기대할 수도 있다.
도 4a 에서 프레임들은 도 4a 에서 각각의 로우 및 각각의 칼럼의 교차점에, 대응하는 프레임이 인트라-코딩되는지 (즉, I-프레임), 또는 (즉, P-프레임과 같이) 하나의 방향으로 또는 (즉, B-프레임과 같이) 다수의 방향들로 인터-코딩되는지를 나타내는, 문자를 포함하는 음영친 블록을 이용하여 표시된다. 일반적으로, 예측들은 화살표들로 표시되며, 여기서, 지시-도달 (pointed-to) 프레임은 예측 참조를 위해 지시-출발 (point-from) 오브젝트를 사용한다. 예를 들어, 시간 로케이션 (T0) 에서 뷰 (S2) 의 P-프레임은 시간 로케이션 (T0) 에서 뷰 (S0) 의 I-프레임으로부터 예측된다.
단일 뷰 비디오 인코딩에서와 같이, 멀티뷰 비디오 코딩 비디오 시퀀스의 프레임들은 상이한 시간 로케이션들에서 프레임들에 대해 예측 인코딩될 수도 있다. 예를 들어, 시간 로케이션 (T1) 에서 뷰 (S0) 의 b-프레임은 시간 로케이션 (T0) 에서의 뷰 (S0) 의 I-프레임으로부터 자신에게 지시되는 화살표를 가지며, 이 화살표는 b-프레임이 I-프레임으로부터 예측된다는 것을 나타낸다. 게다가, 그러나, 멀티뷰 비디오 인코딩의 상황에서, 프레임들은 인터-뷰 예측될 수도 있다. 즉, 뷰 성분은 참조를 위해 다른 뷰들에서의 뷰 성분들을 이용할 수도 있다. MVC 에서, 예를 들어, 인터-뷰 예측은 마치 또 다른 뷰에서의 뷰 성분이 인터-예측 참조인 것 처럼 실현된다. 잠재적인 인터-뷰 참조들이 시퀀스 파라미터 세트 (SPS) MVC 확장판으로 시그널링되며, 참조 화상 리스트 구성 프로세스에 의해 변경될 수 있으며, 이 프로세스는 인터-예측 또는 인터-뷰 예측 참조들의 유연한 순서정렬 (ordering) 을 가능하게 한다. MVC 에서 인터-뷰 예측은 디스패리티 보상에 의해 지원받을 수도 있으며, 이 보상은 H.264/AVC 모션 보상의 구문을 이용하지만, 상이한 뷰에서의 화상이 참조 화상으로서 더해지는 것을 가능하게 한다.
도 4a 는 인터-뷰 예측의 여러 예들을 제공한다. 뷰 (S1) 의 프레임들은, 도 4a 의 예에서, 뷰 (S1) 의 상이한 시간 로케이션들에서의 프레임들로부터 예측될 뿐만 아니라, 동일한 시간 로케이션들에서의 뷰들 (S0 및 S2) 의 프레임들의 프레임들로부터 인터-뷰 예측되는 것으로 예시된다. 예를 들어, 시간 로케이션 (T1) 에서 뷰 (S1) 의 b-프레임은 시간 로케이션들 (T0 및 T2) 에서의 뷰 (S1) 의 B-프레임들의 각각 뿐만 아니라, 시간 로케이션 (T1) 에서의 뷰들 (S0 및 S2) 의 b-프레임들로부터 예측된다.
도 4a 의 예에서, 대문자 "B" 및 소문자 "b" 는 상이한 인코딩 방법론들보다는, 프레임들 사이의 상이한 계층적 관계들을 나타내도록 의도된다. 일반적으로, 대문자 "B" 프레임들은 소문자 "b" 프레임들보다 예측 계층에서 상대적으로 더 높다. 도 4a 는 또한 상이한 레벨들의 음영을 이용한 예측 계층에서의 변형예들을 예시하며, 여기서, 더 많은 양의 음영친 (즉, 상대적으로 더 어두운) 프레임들이 예측 계층에서 더 적은 음영을 갖는 그들 프레임들보다 더 높다 (즉, 상대적으로 더 밝다). 예를 들어, 도 4a 에서 모든 I-프레임들은 풀 음영으로 예시되지만, P-프레임들은 다소 밝은 음영을 가지며, B-프레임들 (및 소문자 b-프레임들) 은 서로에 대해 여러 레벨들의 음영을 가지나, P-프레임들 및 I-프레임들의 음영보다 항상 더 밝다.
도 4b 는 2개의 뷰들에 대한 멀티뷰 비디오 코딩 (MVC) 호환가능한 멀티뷰 비디오-플러스 심도 (MVD) 코딩을 예시하는 개념도이다. MVC 코딩된 비트스트림에서 각각의 "뷰" 는 복수의 뷰 성분들을 포함할 수도 있으며, 이 성분들 각각은 플레이백 동안 특정의 시간 인스턴스들에 대응한다. 각각의 뷰 성분은 텍스쳐 데이터 및 심도 데이터를 포함할 수도 있다. 도 4b 는 오직 2개의 뷰들만이 있기 때문에, 스테레오 비디오 코딩을 채용하는 MVC 의 특정의 경우이다. 그럼에도 불구하고, 도 4b 에 따라 조합된 비트스트림의 데이터는 다른 뷰들을 합성하는데 이용될 수도 있는 포함된 심도 정보 때문에, 2개보다 많은 출력 뷰들을 생성하는데 사용될 수도 있다.
일 예에서, 하나 이상의 카메라들이 텍스쳐 성분 및 심도 성분을 생성하는데 사용되는 비디오 데이터를 캡쳐하여 제공하는데 이용될 수도 있다. 카메라에 의해 캡쳐된 비디오 데이터는 텍스쳐 정보이다. 일 예에서, 스테레오 카메라 쌍들이 텍스쳐 성분에 대한 심도 맵을 계산하는데 사용될 수도 있다. 또 다른 예에서, 심도 센서 (예컨대, 레이더, LADAR 등) 가 뷰에 대한 심도 맵들을 결정할 수도 있다. 심도 성분의 결정은 도 1 의 소스 디바이스 (12) 의 심도 프로세싱 유닛 (21) 에 의해 수행될 수도 있다. 일 예에서, 심도 프로세싱 유닛은 비디오 디코더 (22) 에 통합될 수도 있다.
도 2b 의 예에서, 각각의 시점에서, 2개의 뷰들, 즉 뷰 (0) 및 뷰 (1) 가 획득될 수도 있다. 뷰 (0) 은 텍스쳐 성분 (90A) (예컨대, 텍스쳐 0) 및 심도 성분 (90B) (예컨대, 심도 0) 을 포함하며, 뷰 (1) 은 텍스쳐 성분 (92A) (예컨대, 텍스쳐 1) 및 심도 성분 (92B) (예컨대, 심도 1) 을 포함한다. 도 4b 의 예에서, 성분들 (90A, 90B, 92A, 및 92B) 의 각각은 예를 들어, 공통 시간 인스턴스 (f0) 에서의 2개의 뷰들의 대응하는 성분들을 참조할 수도 있다. 동일한 성분들이 후속 시간 인스턴스들 f1, f2 등에서 결정될 수도 있다. 기법들이 f0 에서의 성분들을 참조하여 설명되지만, 동일한 기법들이 다른 시간 인스턴스들 f1, f2 등에서의 성분들에 유사하게 적용될 수도 있는 것으로 이해되어야 한다.
2개의 뷰들의 텍스쳐는 MVC-호환가능한 MVD 코딩으로 코딩될 수도 있으며, 이 코딩은 일반적으로, 심도 정보를 텍스쳐 정보와 동일한 비트스트림에 포함하지만 그들의 분리를 유지하도록 조정하기 위해 본 개시물의 기법들에 따라서 확장되기 때문에, MVC 와 비슷할 수도 있다.
본 개시물의 기법들을 이용하여, 2개의 뷰들의 각각의 심도 맵들은 동일한 뷰 또는 다른 뷰에 대응하는 다른 정보를 이용하여 예측될 수도 있다. 일 예에서, 심도 성분과 연관되는 심도 맵은 텍스쳐로부터 심도 맵까지의 모션 예측을 이용하여 예측될 수도 있다. 예를 들어, 심도 성분 (90B) 은 텍스쳐 성분 (90A) 을 이용하여 예측될 수도 있으며, 심도 성분 (92B) 은 텍스쳐 성분 (92A) 을 이용하여 예측될 수도 있다.
또 다른 예에서, 하나의 뷰의 심도 맵은 하나의 뷰로부터 다른 뷰까지의 인터-뷰 디스패리티 예측 (MVC 에서의 인터-뷰 예측) 을 이용하여 예측될 수도 있다. 예를 들어, 심도 성분 (92B) 은 심도 성분 (90B) 에 대해 예측될 수도 있다. 동일한 방법으로, 텍스쳐 성분 (92A) 은 텍스쳐 성분 (90A) 에 대해 예측될 수도 있다.
여전히, 또 다른 예에서, 뷰의 심도 맵은 뷰 합성 예측을 이용하여 예측될 수도 있으며, 이 뷰 합성 예측은 그 뷰와 연관되는 카메라 파라미터들을 이용할 수도 있다. 뷰들 각각의 카메라 파라미터들이 이용가능하면, 가상의 현재 뷰는 예를 들어, DIBR 기법들과 같은 기법들을 이용하여 참조 뷰 및 그의 대응하는 심도 맵으로부터 합성될 수도 있다. 합성된 가상 뷰는 또 다른 뷰를 예측하고 인코딩하는데 이용될 수도 있다. 일 예에서, 심도 맵 뷰 합성 예측을 위해, 참조 뷰는 심도 맵 자신일 수도 있다. 따라서, 카메라 파라미터들 및 하나의 참조 심도 맵은 가상의 현재 심도 맵을 합성하기에 충분할 수도 있다.
위에서 설명한 바와 같이, 본 개시물의 기법들은 뷰에 대한 카메라 파라미터들을 시그널링하는 것을 포함할 수도 있다. 카메라 파라미터들은 예를 들어, 본질적인 파라미터들 및 외적인 파라미터들을 포함할 수도 있다. 본질적인 파라미터들은 예를 들어, 초점 길이 및 수평 방향에서의 주 지점 오프셋을 포함할 수도 있다. 외적인 파라미터들은 예를 들어, 각각의 뷰에 대한 실-세계 수평 카메라 로케이션을 포함할 수도 있다. 일반적으로, 멀티-뷰 시퀀스의 각각의 뷰는 동일한 본질적인 파라미터들을 공유할 것이다. 따라서, 이들 파라미터들은 시그널링된 본질적인 파라미터들이 그 시퀀스의 모든 뷰들에 적용되도록, 그 시퀀스에 대해 한번 시그널링될 수도 있다.
일 예에서, 본질적인 및 외적인 카메라 파라미터들은 3차원의 비디오 데이터 (3DV) 시퀀스 파라미터 세트 (SPS), 또는 SPS 3DV 확장판으로 시그널링될 수도 있다. SPS 3DV 확장판은 심도 범위 및 디폴트 심도 대 z-값 변환 함수들을 포함할 수도 있는 심도 값 대 실-세계 z 값 맵핑 (depth value to real-world z value mapping), 및/또는 각각의 카메라 설정에 대한 심도 값 대 실-세계 z 값을 포함하는 테이블을 추가로 기술할 수도 있다. SPS 3DV 확장판은 또한 심도 맵 뷰들 및 텍스쳐 뷰들의 예측 관계를 기술할 수도 있으며, 이 예측 관계는 텍스쳐로부터 심도 맵까지의 모션 예측에 이용될 수도 있다.
도 4c 는 3개 이상의 뷰들에 대한 MVC-호환가능한 MVD 코딩을 예시하는 개념도이다. 예시적인 목적들을 위해, 도 4c 의 예는 3개의 뷰들을 나타내지만, 이들 기법들이 3 이상의 뷰들에 대해 이용될 수도 있는 것으로 이해되어야 한다. 일 예에서, 뷰들 각각은 상이한 관점 (perspective) 으로부터의 카메라에 의해 획득될 수도 있으며, 각각의 뷰는 텍스쳐 및 심도 정보를 포함할 수도 있다. 다른 예들에서, 일부 뷰들은 상이한 관점들로부터 획득될 수도 있으며, 다른 뷰들은 그 획득된 뷰들의 성분들을 이용하여 합성될 수도 있다. 각각의 시점에서, 3개 뷰들, 즉, 뷰 (0), 뷰 (1), 및 뷰 (2) 가 획득될 수도 있다. 뷰 (0) 은 텍스쳐 성분 (94A) (예컨대, 텍스쳐 (0)) 및 심도 성분 (94B) (예컨대, 심도 0) 을 포함하며, 뷰 (1) 은 텍스쳐 성분 (96A) (예컨대, 텍스쳐 1) 및 심도 성분 (96B) (예컨대, 심도 1) 을 포함하며, 및 뷰 (2) 는 텍스쳐 성분 (98A) (예컨대, 텍스쳐 2) 및 심도 성분 (98B) (예컨대, 심도 2) 을 포함한다.
뷰들 각각과 연관되는 심도 맵들은 위에서 설명한 바와 같이, 다른 뷰의 심도 맵들을 이용하거나 또는 동일한 뷰의 텍스쳐 정보를 이용하여, 예측될 수도 있다. 게다가, 하나의 뷰의 텍스쳐 정보는 하나 이상의 다른 뷰들의 텍스쳐 정보를 이용하여 예측될 수도 있다. 도 4b 의 예에서, 제 3 뷰에 대한 텍스쳐는 또한 하나 이상의 다른 뷰들의 텍스쳐 및 심도 맵들로부터 예측될 수도 있다. 이 예에서, 제 3 뷰는 MVC 에 정의된 인터-뷰 예측 모드들을 이용하여 예측될 수도 있다. 제 3 뷰의 블록들은 또한 뷰 합성 예측을 이용하여 예측될 수도 있으며, 이 뷰 합성 예측은 제 1 뷰 및 제 2 뷰의 텍스쳐 및 심도 맵에 의존할 수도 있다.
위에서 언급한 바와 같이, 본 개시물의 기법들은 SPS 3DV 확장판을 이용하여, 텍스쳐 및 심도 정보를 예측할 때에 사용될 수도 있는 어떤 파라미터들을 시그널링할 수도 있다. SPS 3DV 확장판은 카메라 파라미터들, 심도 값 대 실-세계 z 값 맵핑, 및/또는 심도 맵 뷰들과 텍스쳐 뷰들의 예측 관계를 기술할 수도 있다.
카메라 파라미터들은 본질적인 파라미터들 및 외적인 파라미터들을 포함할 수도 있다. 본질적인 파라미터들은 초점 길이 및 수평 방향에서의 주 지점 오프셋을 포함할 수도 있다. 멀티-뷰 시퀀스들은 보통 동일한 초점 길이 및 수평 방향에서의 주 지점 오프셋을 공유한다. 따라서, 구현예에서, 본질적인 파라미터들에 대해, 2개의 부동수들 (float numbers) 이 모든 뷰들에 대해 이용될 수도 있다. 외적인 파라미터들은 각각의 뷰의 카메라 수평 로케이션을 포함할 수도 있다. 멀티-뷰 시퀀스들은 병렬 (parallel) 카메라 어레이에 의해 일반적으로 캡쳐되며, 여기서, 모든 카메라들은 세계 좌표들에서 동일한 방위를 가질 수도 있다. 카메라들은 그들의 위치들이 수평 방향으로만 오직 상이하도록 일렬로 배치될 수도 있다. 따라서, 외적인 파라미터들의 개수는 뷰들의 개수와 동일하다. 예를 들어, N 개의 뷰 경우에 대해, N 개의 부동수들 (float numbers) 이 외적인 파라미터들에 대해 이용될 수도 있다.
일 예에서, 심도 값 대 실-세계 z 값 맵핑은 심도 범위 및 디폴트 심도 대 z 값 변환 함수들을 이용하여 획득될 수도 있다. 다른 예들에서, 다른 변환 함수들이 디폴트 함수들과 상이할 수도 있는 경우, 심도 값 대 실-세계 z 값을 포함하는 테이블이 각각의 카메라 설정에 대해 포함될 수도 있다. 일 예에서, 심도 값과 실-세계 z 값 사이의 변환이 하나 이상의 코딩된 뷰들로부터 뷰들, 예컨대, 가상 뷰를 예측하기 위해 뷰 합성에 사용될 수도 있다. 즉, 실-세계 z 값에 맵핑되는 심도 값은 실-세계 심도 범위 (real-world depth range) 로 표현될 수도 있으며, 이 실-세계 심도 범위는 적합한 3D 효과를 제공하기 위해 가상 뷰를 생성할 때에 요구되는 수평 오프셋을 나타낼 수도 있다.
심도 맵 뷰들 및 텍스쳐 뷰들의 예측 관계는 또한 SPS 3DV 확장판에 의해 기술될 수도 있다. 심도 맵 뷰들의 예측 관계는 뷰 합성의 예측 관계를 따른다. 따라서, 뷰 (0) 의 텍스쳐가 인터-뷰 예측에 기초하여 뷰 (1) 의 텍스쳐에 의존하면, 뷰 (0) 의 심도 맵은 뷰 (1) 에 의존할 수도 있다. 뷰 (0) 의 텍스쳐가 뷰 (1) 의 텍스쳐에 의존하지 않으면, 뷰 (0) 의 심도 맵은 뷰 (1) 의 심도 맵에 의존하지 않을 가능성이 있다. 상기 예측 관계들 각각, 즉, 뷰 (0) 의 텍스쳐가 뷰 (1) 의 텍스쳐에 의존한다는 조건 하에서 뷰 (0) 의 심도 맵이 뷰 (1) 의 심도 맵에 의존하는 지에 대해, 플래그가 예측 관계가 존재하는지를 나타내기 위해 시그널링될 수도 있다. 게다가, SEI 메시지가 예측 관계의 변화들에 관한 더 많은 세부 사항들을 제공하기 위해 추가될 수도 있다. 그 방법에서, SEI 메시지는 참 (true) 과 같은 특정의 플래그를 갖는 서브-시퀀스에 연관될 수도 있지만, 반면 또 다른 SEI 메시지는 거짓 (false) 과 같은 특정의 플래그를 갖는 또 다른 서브-시퀀스에 연관될 수도 있다.
위에서 설명한 바와 같이, 뷰에 대한 동일한 시간 인스턴스에 대응하는 VCL NAL 유닛들은 공통 뷰 성분으로서 취급될 수도 있다. 본 개시물의 기법들은 뷰에 대한 텍스쳐 데이터 및 심도 맵 데이터를 연속적으로 비트스트림으로 코딩하기 위해 제공할 수도 있다. 일반적으로, 심도 성분은, 존재하면, 항상 비트스트림 순서에서 그의 대응하는 텍스쳐 성분을 뒤따른다. 뷰 성분의 텍스쳐 및 심도 맵 정보를 분리하기 위해, 본 개시물의 이 기법들은 구분문자, 예컨대, 그 뷰 성분에 대한 텍스쳐 데이터의 끝 및 심도 정보의 시작을 나타내는 NAL 유닛 구분문자를 비트스트림에 추가하는 것을 제안한다.
이에 추가적으로 또는 대안적으로, 텍스쳐 및 심도 VCL NAL 유닛들은 NAL 유닛이 텍스쳐 또는 심도 정보를 포함하는 지를 나타내는 플래그를 NAL 유닛 헤더에 포함할 수도 있다. 이 플래그는 NAL 유닛이 텍스쳐 정보를 포함한다는 것을 나타내는 0 의 값, 또는 NAL 유닛이 심도 정보를 포함한다는 것을 나타내는 1 의 값을 갖는 심도 플래그로서 지칭될 수도 있다. 이 NAL 유닛 헤더는 새로운 NAL 유닛 유형에 대응할 수도 있다. 더욱이, NAL 유닛이 뷰의 임의의 코딩된 텍스쳐 화상을 예측하는데 사용되는 지를 나타내기 위해 NAL 유닛 헤더 정보가 제공될 수도 있다. 예를 들어, 이 VCL NAL 유닛이 뷰의 텍스쳐의 임의의 코딩된 화상을 예측하는데 사용될 것인 지를 나타내기 위해, 심도 맵의 VCL NAL 유닛에 1 비트가 추가될 수도 있다.
도 4d 는 다수의 뷰들에 대한 MVC-호환가능한 MVD 코딩을 예시하는 개념도이다. 이 예에서, 상이한 뷰들에 대응하는 비디오 데이터가 예를 들어, 상이한 시간 인스턴스들에서 상이한 관점으로부터의 카메라에 의해 각각 획득될 수도 있다. 이 예에서, 뷰들 (200 및 220) 은 2개의 상이한 뷰들에 대응할 수도 있다. 뷰 성분들 (202A 및 222A) 과 연관되는 비디오 데이터는 동일한 시간 인스턴스에서 획득될 수도 있으며, 뷰 성분들 (202B 및 222B) 과 연관되는 비디오 데이터는 뷰 성분들 (202A 및 222A) 과 연관되는 비디오 데이터가 획득되었던 시간에 뒤이은, 동일한 시간 인스턴스에서 획득될 수도 있다.
뷰 성분들 (202A, 222A, 202B, 및 222B) 의 각각은 텍스쳐 성분 및 심도 성분을 포함할 수도 있다. 텍스쳐 성분은 카메라에 의해 캡쳐된 데이터에 대응할 수도 있다. 심도 성분들은 동일한 뷰, 또는 다른 뷰들로부터의 성분들에 대해 인코딩될 수도 있다. 도 4d 의 예에서, 심도 성분 (206A) 은 동일한 뷰 성분 (202A) 의 텍스쳐 성분 (204A) 에 대해 예측된다. 이 예에서, 심도 성분 (206B) 은 동일한 뷰 (예컨대, 뷰 (200)) 의 또 다른 뷰 성분 (202A) 의 심도 성분 (206A) 에 대해 예측되며, 따라서, 인트라-뷰 예측을 이용하는 일 예를 예시한다. 또 다른 예에서, 또 다른 뷰 (200) 의 심도 성분 (206A) 에 상대적인 뷰 (220) 의 심도 성분 (226A) 을 예측하는 것과 같이, 인터-뷰 예측이 사용될 수도 있다.
일 예에서, 뷰 합성 예측이 캡쳐된 뷰 (200) 를 이용하여 가상 뷰 (230) 를 합성하는데 이용될 수도 있다. 이 예에서, 가상 뷰 성분 (232B) 은 텍스쳐 성분 (234B) 을 포함할 수도 있으며, 이 텍스트 성분은 다른 뷰들로부터의 하나 이상의 성분들, 예컨대, 뷰 성분 (202B) 의 텍스쳐 성분 (204B) 및 심도 성분 (206B) 의 데이터에 기초하여 형성, 예컨대, 내삽될 수도 있다. 합성된 가상 성분이 또한 다른 성분들을 예측하는데 이용될 수도 있다. 이 예에서, 뷰 성분 (222B) 의 심도 성분 (226B) 은 텍스쳐 성분 (234B) 에 대해 예측된다.
도 5 는 본 개시물에 부합하는 비디오 인코더의 예시적인 동작을 예시하는 흐름도이다. 다른 디바이스들이 유사한 기법들을 실행할 수도 있지만, 도 5 의 기법들은 도 2 의 비디오 인코더 (22) 의 관점으로 설명될 것이다.
비디오 인코더 (22) 는 텍스쳐 비디오 데이터의 프레임을 획득할 수도 있다 (102). 다른 예들에서, 비디오 인코더 (22) 는 슬라이스 또는 비디오 데이터의 하나 이상의 블록들을 포함하는 다른 코딩된 유닛을 수신할 수도 있다. 일부 예들에서, 2개 이상의 뷰들로부터의 프레임들이 비디오 인코더 (22) 에 의해 획득될 수도 있으며, 여기서, 2개 이상의 뷰는 2개 이상의 카메라들에 대응할 수도 있다. 비디오 인코더 (22) 는 뷰의 뷰 성분에 대한 텍스쳐 데이터를 인코딩할 수도 있으며 (104), 여기서, 뷰 성분은 텍스쳐 비디오 데이터의 프레임 (또는, 슬라이스) 뿐만 아니라, 공통 시간 인스턴스에 대한 심도 비디오 데이터의 프레임 (또는, 슬라이스) 양자를 포함한다. 인코딩은 프레임의 인트라- 또는 인터-뷰 인코딩 중 임의의 인코딩 또는 모두를 포함할 수도 있다.
비디오 인코더 (22) 는 뷰 성분에 대응하는 심도 맵을 추가로 수신할 수도 있다 (106). 심도 맵은 그 비디오 프레임에서 픽셀들의 영역들에 대한 심도 정보를 포함할 수도 있다. 심도 맵은 텍스쳐 성분들의 해상도와 동일한 또는 상이한 해상도를 가질 수도 있다. 일 예에서, 심도 맵은 심도 프로세싱 유닛에 의해 결정될 수도 있다.
비디오 디코더 (22) 는 심도 맵의 블록들에 대한 참조 샘플을 결정할 수도 있다 (108). 일 예에서, 참조 샘플은 동일한 뷰 성분에서의 성분, 동일한 뷰에서의 성분이지만 시간적으로 별개인 뷰 성분, 또는 상이한 뷰에서의 성분일 수도 있다. 일 예에서, 참조 샘플들을 결정하는 것은 동일한 뷰 성분들에 대한 텍스쳐 데이터 또는 동일한 뷰에서 이전에-코딩된 뷰 성분의 심도를 분석하는 것을 포함할 수도 있다. 비디오 디코더 (22) 는 그후 그 결정된 참조 샘플에 상대적인 심도 맵을 인코딩할 수도 있다 (110). 비디오 디코더 (22) 는 그 결정된 참조 샘플을 나타내는 예측 의존성 정보를 제공할 수도 있다 (112). 이 정보는 심도 맵의 예측과 연관되는 예측 의존성들을 포함할 수도 있다. 예측 의존성 정보는 현재의 프레임 또는 코딩중인 슬라이스의 데이터 (예컨대, 뷰 식별자, POC 값 등) 를 예측하는데 사용되는 참조 프레임들 또는 참조 슬라이스들을 기술할 수도 있다.
각각의 뷰 성분으로부터의 인코딩된 성분들은 NAL 유닛이 텍스쳐 성분 또는 심도 성분에 대응하는 지를 나타내기 위해 심도 플래그를 NAL 유닛의 헤더에 포함시킴으로써, 별개로 유지하면서, 하나의 비트스트림에 함께 캡슐화될 수도 있다. 일 예에서, 텍스쳐 및 심도 데이터를 캡슐화하는 것은 텍스쳐 성분 및 심도 성분의 각각에 대한 NAL 유닛들을 이용하는 것을 포함할 수도 있으며, 여기서, NAL 유닛이 텍스쳐 또는 심도 NAL 유닛인 지를 나타내기 위해 NAL 유닛의 헤더에 플래그가 이용될 수도 있다. 게다가, 텍스쳐 NAL 유닛이 종료하는 위치 및 심도 NAL 유닛이 시작하는 위치를 나타내기 위해 공통 비트스트림에 텍스쳐 데이터 및 심도 데이터 NAL 유닛 사이에 구분문자 NAL 유닛이 제공될 수도 있다.
일 예에서, 텍스쳐 및 심도 데이터를 캡슐화하는 것은 텍스쳐 데이터를 제 1 네트워크 추상 계층 (NAL) 유닛으로서 캡슐화하고, 심도 데이터를 제 2 NAL 유닛으로서 캡슐화하는 것을 포함할 수도 있으며, 여기서, 제 1 NAL 유닛 및 제 2 NAL 유닛은 NAL 유닛의 동일한 유형의 인스턴스들에 대응한다. 일 예에서, 제 1 NAL 유닛은 제 1 NAL 유닛이 텍스쳐 또는 심도 정보를 포함하는 지를 나타내는 플래그를 포함하는 제 1 NAL 유닛 헤더를 포함할 수도 있으며, 제 2 NAL 유닛은 제 2 NAL 유닛이 텍스쳐 또는 심도 정보를 포함하는 지를 나타내는 플래그를 포함하는 제 2 NAL 유닛 헤더를 포함할 수도 있다. 일 예에서, 제 1 NAL 유닛이 텍스쳐 정보를 포함한다는 것을 나타내기 위해 제 1 NAL 유닛 헤더의 플래그의 값이 설정될 수도 있으며, 제 2 NAL 유닛이 심도 정보를 포함한다는 것을 나타내기 위해 제 2 NAL 유닛 헤더의 플래그의 값이 설정될 수도 있다. 이 방법으로, 텍스쳐 및 심도 정보 양자를 포함하는 비트스트림의 프로세싱 동안, NAL 유닛들의 헤더들에서 플래그들이 텍스쳐 데이터가 종료하고 심도 데이터가 시작하는 위치를 결정하기 위해 이용될 수도 있다. 따라서, 2개의 성분들이 공통 비트스트림으로 캡슐화되더라도 2개의 성분들을 용이하게 분리한다. 이것은 또한 비트스트림이 3D 디스플레이를 지원하는 디바이스들 및 2D 디스플레이를 지원하는 디바이스들로 송신될 수도 있는 경우에 유용할 수도 있으며, 여기서, 간단한 필터링이 오직 텍스쳐 정보만을 2D 디스플레이 디바이스에 제공하기 위해 NAL 유닛에서 이용될 수도 있다.
본 개시물의 기법들을 이용하여, 텍스쳐 성분과 심도 성분 사이의 예측 관계를 나타내는 정보가 비트스트림으로 시그널링될 수도 있다. 예측 관계들은 심도 성분이 인트라- 또는 인터-뷰 예측을 이용하여 예측될 수도 있는 지, 및 가상 뷰 성분이 하나 이상의 다른 뷰들의 텍스쳐 성분들 및/또는 심도 성분으로부터 형성될 수도 있는 지를 나타낼 수도 있다. 다른 시그널링된 정보는 상이한 뷰들의 각각과 연관되는 카메라 파라미터들을 포함할 수도 있다. 카메라 파라미터들을 이용하여, 상이한 뷰들에 대한 텍스쳐 및 심도 정보가 참조 뷰로부터의 텍스쳐 및 심도 정보에 상대적으로 인코딩될 수도 있다. 이 방법으로, 뷰들의 서브세트로부터의 텍스쳐 및 심도 정보가 비트스트림으로 인코딩되어 송신될 수도 있다. 나머지 뷰들과 연관되는 카메라 파라미터들이 송신된 텍스쳐 및 심도 정보를 이용하여 텍스쳐 및 심도 정보를 생성하기 위해 이용될 수도 있다.
이 방법으로, 도 5 의 방법은 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 수신하는 단계, 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터에 대응하는 심도 데이터를 수신하는 단계, 및 텍스쳐 데이터 및 심도 데이터가 공통 비트스트림 내에 캡슐화되도록, 그 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 데이터 및 심도 데이터를 캡슐화하는 단계를 포함하는 방법의 일 예를 나타낸다.
도 6 은 본원에서 설명하는 방법으로 인코딩되는 비디오 시퀀스를 디코딩할 수도 있는 비디오 디코더의 일 예 (28) 를 예시하는 블록도이다. 비디오 디코더 (28) 는 "코더" 로서 지칭되는, 특수화된 비디오 컴퓨터 디바이스 또는 장치의 일 예이다. 도 6 에 나타낸 바와 같이, 비디오 디코더 (28) 는 목적지 디바이스 (16) 의 비디오 디코더 (28) 에 대응한다. 그러나, 다른 예들에서, 비디오 디코더 (28) 는 상이한 디바이스에 대응할 수도 있다. 추가적인 예들에서, (예를 들어, 다른 인코더/디코더 (CODECS) 와 같은) 다른 유닛들이 또한 비디오 디코더 (28) 와 유사한 기법들을 수행할 수 있다.
인코딩된 비디오 비트스트림은 위에서 설명한 바와 같이, 뷰 성분들과 연관되는 캡슐화된 텍스쳐 성분 및 심도 성분을 포함할 수도 있다. 비트스트림은 텍스쳐 성분 및 심도 성분의 각각과 연관되는 NAL 유닛들을 포함할 수도 있다. 각각의 NAL 유닛의 헤더에서의 플래그는 NAL 유닛이 텍스쳐 성분 NAL 유닛 또는 심도 성분 NAL 유닛인 지를 나타낼 수도 있다. 게다가, NAL 구분문자는 텍스쳐 NAL 유닛이 종료하고 심도 NAL 유닛이 시작하는 위치를 나타낼 수도 있다. 비트스트림은 또한 위에서 자세히 설명한 바와 같이, 성분들 각각의 예측 의존성들을 나타내는 신호들을 포함할 수도 있다. 비디오 디코더 (28) 는 NAL 유닛이 텍스쳐 또는 심도 정보를 포함하는 지를 구분문자 NAL 유닛, 또는 NAL 유닛 헤더에서의 심도 플래그를 이용하여, 결정할 수도 있다.
비디오 디코더 (28) 는 수신된 비트스트림의 성분들을 엔트로피 디코딩하여 양자화된 계수들 및 예측 구문 엘리먼트들을 생성하는 엔트로피 디코딩 유닛 (52) 을 포함한다. 비트스트림은 3D 비디오를 렌더링하기 위해, 각각의 픽셀 로케이션에 대해 텍스쳐 성분들 및 심도 성분을 갖는 2개의-성분 코딩된 블록들을 포함할 수도 있다. 예측 구문 엘리먼트들은 코딩 모드, 하나 이상의 모션 벡터들, 사용된 내삽 기법을 식별하는 정보, 내삽 필터링에 사용하기 위한 계수들, 및 동일한 뷰의 텍스쳐 성분과 심도 성분 사이 및 다른 뷰들에 상대적인 예측 관계의 표시를 포함할 수도 있다. 비트스트림은 또한 비트스트림의 성분들의 대응하는 뷰와 연관되는 시그널링된 카메라 파라미터들과 연관될 수도 있다.
예측 구문 엘리먼트들, 예컨대, 계수들이, 예측 유닛 (55) 으로 포워딩된다. 예측이 고정된 필터의 계수들에 상대적인, 또는 서로에 대해 상대적인 계수들을 코딩하는데 사용되면, 예측 유닛 (55) 은 실제 계수들을 정의하기 위해 구문 엘리먼트들을 디코딩할 수 있다. 또한, 양자화가 예측 구문 중 임의의 예측 구문에 적용되면, 역양자화 유닛 (56) 은 또한 이런 양자화를 제거할 수도 있다. 역양자화 유닛 (56) 은 그 인코딩된 비트스트림에서 그 코딩된 블록들의 각각의 픽셀 로케이션에 대한 심도 성분 및 텍스쳐 성분을 상이하게 취급할 수도 있다. 예를 들어, 심도 성분은 텍스쳐 성분들과는 상이하게 양자화되었을 수도 있다. 따라서, 역양자화 유닛 (56) 은 심도 성분 및 텍스쳐 성분을 별개로 프로세싱할 수도 있다. 필터 계수들은, 예를 들어, 본 개시물에 따라 예측 코딩되어 양자화될 수도 있으며, 이 경우, 역양자화 유닛 (56) 은 이런 계수들을 예측 디코딩하여 양자화 해제하기 위해, 비디오 디코더 (28) 에 의해 사용될 수도 있다.
예측 유닛 (55) 은 예측 구문 엘리먼트들 및 메모리 (62) 에 저장된 하나 이상의 이전에 디코딩된 블록들에 기초하여, 비디오 인코더 (22) 의 예측 유닛 (32) 에 대해 위에서 자세히 설명한 방법과 매우 동일한 방법으로, 예측 데이터를 생성할 수도 있다. 특히, 예측 유닛 (55) 은 각각의 심도 성분들 및 텍스쳐 성분들에 대한 예측 블록들을 생성하기 위해, 모션 보상 및/또는 인트라 예측 동안 본 개시물의 멀티-뷰 비디오 플러스 심도 기법들 중 하나 이상을 수행할 수도 있다. 예측 블록 (뿐만 아니라, 코딩된 블록) 은 심도 성분들 대 텍스쳐 성분들에 대해 상이한 해상도를 가질 수도 있다. 예를 들어, 심도 성분들은 1/4-픽셀 정밀도를 가질 수도 있지만, 반면 텍스쳐 성분들은 풀-정수 픽셀 정밀도를 갖는다. 이와 같이, 본 개시물의 기법들 중 하나 이상의 기법들이 예측 블록을 생성할 때에 비디오 디코더 (28) 에 의해 사용될 수도 있다. 예측 유닛 (55) 은 본 개시물의 내삽 및 내삽-형 필터링 기법들에 사용되는 필터들을 포함하는 모션 보상 유닛을 포함할 수도 있다. 모션 보상 성분은 예시의 단순성 및 용이성을 위해 도 6 에 도시하지 않는다.
역양자화 유닛 (56) 은 양자화된 계수들을 역양자화한다, 즉 양자화 해제한다. 이 역양자화 프로세스는 H.264 디코딩에 대한 또는 임의의 다른 디코딩 표준에 대한 프로세스일 수도 있다. 역변환 유닛 (58) 은 픽셀 도메인에서 잔여 블록들을 생성하기 위해 변환 계수들에 역변환, 예컨대, 역 DCT 또는 개념적으로 유사한 역변환 프로세스를 적용한다. 합산기 (64) 는 잔여 블록과 예측 유닛 (55) 에 의해 생성된 대응하는 예측 블록을 합산하여, 비디오 인코더 (22) 에 의해 인코딩된 원래 블록의 재구성된 버전을 형성한다. 원할 경우, 블록킹 현상 아티팩트들을 제거하기 위해 디블로킹 필터가 또한 그 디코딩된 블록들을 필터링하는데 적용될 수도 있다. 디코딩된 비디오 블록들은 그후 메모리 (62) 에 저장되며, 이 메모리는 후속 모션 보상을 위해 참조 블록들을 제공하고 또한 그 디코딩된 비디오를 생성하여 (도 1 의 디바이스 (28) 와 같은) 디스플레이 디바이스를 구동한다.
디코딩된 비디오가 3D 비디오를 렌더링하는데 이용될 수도 있다. 3D 비디오는 3차원 가상 뷰를 포함할 수도 있다. 심도 정보가 그 블록의 각각의 픽셀에 대해 수평 오프셋 (수평 디스패리티) 을 결정하는데 이용될 수도 있다. 폐색 처리가 또한 가상 뷰를 생성하기 위해 수행될 수 있다. 일 예에서, 비디오 디코더 (28) 는 그 디코딩된 비디오를, 2D 디스플레이 디바이스들을 포함한, 상이한 디스플레이 디바이스들로 송신할 수도 있다. 이 예에서, 비디오 디코더 (28) 는 심도 성분이 아닌, 오직 그 디코딩된 텍스쳐 성분만을 디스플레이 디바이스로 전송할 수도 있다. 일 예에서, 비디오 디코더, 디스플레이, 또는 중간 유닛은 합성된 뷰를 텍스쳐 및 심도 정보를 이용하여 생성할 수도 있다.
도 7 은 본 개시물에 부합하는 비디오 디코더의 예시적인 동작을 나타내는 흐름도이다. 따라서, 도 7 의 프로세스는 도 5 의 인코딩 프로세스에 반대인 디코딩 프로세스로 간주될 수도 있다. 다른 디바이스들이 유사한 기법들을 수행할 수도 있지만, 도 7 은 도 6 의 비디오 디코더 (28) 의 관점으로 설명될 것이다.
비디오 디코더 (28) 는 뷰 성분의 캡슐화된 텍스쳐 성분 및 심도 성분을 포함하는 비트스트림을 수신할 수도 있다 (140). 비디오 디코더 (28) 는 비트스트림을 인코딩될 수도 있는, 텍스쳐 성분 및 심도 성분으로 분리할 수도 있다 (142). 비디오 디코더 (28) 는 또한 비트스트림 내에서 시그널링된 정보, 예컨대, 동일한 뷰의 텍스쳐 데이터와 심도 데이터 사이 및 다른 뷰들의 텍스쳐 데이터와 심도 데이터에 상대적인 예측 의존성들, 및 뷰 성분과 연관되는 카메라 파라미터를 획득하였을 수도 있다.
비디오 디코더 (28) 는 (비디오 인코더 (22) 와 같은) 인코더에서 잔여 계수들이 결정되었던 예측 블록을 결정하기 위해 예측 모드를 결정한다 (144). 예측 모드의 결정에 기초하여, 비디오 디코더 (28) 는 그 코딩된 블록들에 대해 예측 데이터를 계산할 수도 있다 (146). 결정된 예측 모드 및 예측 데이터를 이용하여, 비디오 디코더 (28) 는 텍스쳐 성분 및 심도 성분 각각을 디코딩할 수도 있다 (148). 그 성분들을 디코딩하기 위해, 비디오 디코더 (28) 는 적합한 시그널링된 예측 관계들 및 참조들을 이용하고, 비디오 디코딩 기능들을 이용할 수도 있다. 예를 들어, 비디오 디코더 (28) 는 잔여 계수들을 디코딩할 수도 있으며, 이 잔여 계수들은 역 양자화된 (예를 들어, 역양자화 유닛 (56) 에 의해) 역양자화되어 (예를 들어, 역변환 유닛 (58) 에 의해) 역변환될 수도 있다.
디코딩된 잔여 계수들을 이용하여, 비디오 디코더 (28) 는 잔여 계수들과 예측 데이터를 합하여, 재구성된 블록을 형성할 수도 있다 (150). 이 재구성된 블록으로부터, 비디오 디코더 (28) 는 텍스쳐 성분 및 심도 성분을 갖는 이미지의 프레임을 생성할 수도 있다.
텍스쳐 성분들 및 심도 맵을 갖는 프레임을 이용하여, 비디오 디코더 (28) 는 프레임의 3차원 가상 뷰를 생성할 수도 있다 (152). 이 프레임은 이미지의 3차원 가상 뷰를 생성하기 위해 다른 디코딩된 프레임들과 결합될 수도 있다. 일부 예들에서, 비디오 디코더 (28) 는 3차원 가상 뷰를 생성하지 않고, 대신, 텍스쳐 성분들 및 심도 맵을 갖는 프레임을 외부 렌더링 디바이스로 포워딩한다.
이 방법으로, 도 7 의 방법은 비디오 데이터의 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 데이터 및 심도 데이터를 캡슐화하는 공통 비트스트림을 수신하는 단계로서, 상기 심도 데이터는 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터에 대응하는, 상기 공통 비트스트림을 수신하는 단계, 및 비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터 및 심도 데이터를 분리하는 단계를 포함하는 방법의 일 예를 나타낸다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 그 기능들은 하나 이상의 명령들 또는 코드들로서 컴퓨터-판독가능 매체 상에 저장되거나 송신되어, 하드웨어-기반의 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터-판독가능 매체는 컴퓨터-판독가능 저장 매체들을 포함할 수도 있으며, 이 컴퓨터-판독가능 저장 매체들은 데이터 저장 매체와 같은 유형의 매체, 또는 예컨대, 통신 프로토콜에 따라서 한 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함한 통신 매체들에 대응한다. 이 방법으로, 컴퓨터-판독가능 매체들은 일반적으로 (1) 비일시적인 유형의 컴퓨터-판독가능 저장 매체 또는 (2) 신호 또는 캐리어 파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는 본 개시물에서 설명하는 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 가용 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수도 있다.
일 예로서, 이에 한정하지 않고, 이런 컴퓨터-판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광디스크 저장, 자기디스크 저장, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터-판독가능 매체로 적절히 지칭된다. 예를 들어, 동축 케이블, 광섬유 케이블, 이중 권선, 디지털 가입자 회선 (DSL), 또는 무선 기술들 예컨대 적외선, 무선, 및 마이크로파를 이용하여 명령들이 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되는 경우, 동축 케이블, 광섬유 케이블, 이중 권선, DSL, 또는 무선 기술들 예컨대 적외선, 무선, 및 마이크로파가 그 매체의 정의에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체들 및 데이터 저장 매체들이 접속부들, 캐리어 파들, 신호들, 또는 다른 일시적인 매체들을 포함하지 않고, 대신 비일시적인 유형의 저장 매체들에 관련되는 것으로 이해되어야 한다. 디스크 (disk) 및 디스크 (disc) 는, 본원에서 사용할 때, 컴팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하며, 본원에서, 디스크들 (disks) 은 데이터를 자기적으로 보통 재생하지만, 디스크들 (discs) 은 레이저로 데이터를 광학적으로 재생한다. 앞에서 언급한 것들의 조합들이 또한 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSPs), 범용 마이크로프로세서들, 주문형 집적회로들 (ASICs), 필드 프로그래밍가능 로직 어레이들 (FPGAs), 또는 다른 등가의 통합 또는 이산 로직 회로와 같은, 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 용어 “프로세서" 는, 본원에서 사용될 때 전술한 구조 중 임의의 구조 또는 본원에서 설명하는 기법들의 구현에 적합한 임의의 다른 구조를 지칭할 수도 있다. 게다가, 일부 양태들에서, 본원에서 설명하는 기능 전용 하드웨어 및/또는 인코딩 및 디코딩을 위해 구성되는 소프트웨어 모듈들 내에 제공되거나, 또는 결합된 코덱에 포함될 수도 있다. 또한, 이 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들로 완전히 구현될 수 있다.
본 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 ICs 의 세트 (예컨대, 칩 세트) 를 포함한, 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 개시한 기법들을 수행하도록 구성되는 디바이스들의 기능적 양태들을 강조하기 위해서 여러 구성요소들, 모듈들, 또는 유닛들이 본 개시물에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로 하지는 않는다. 더 정확히 말하면, 위에서 설명한 바와 같이, 여러 유닛들이 코덱 하드웨어 유닛에 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명한 바와 같은 하나 이상의 프로세서들을 포함한, 상호작용하는 하드웨어 유닛들의 컬렉션으로 제공될 수도 있다.
본 개시물의 여러 예들이 설명되었다. 이들 및 다른 예들은 다음 청구항들의 범위 이내이다.
Claims (52)
- 비디오 데이터를 코딩하는 방법으로서,
비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 포함하는 텍스쳐 뷰 성분을 수신하는 단계;
상기 비디오 데이터의 뷰의 상기 시간 인스턴스에 대한 상기 텍스쳐 데이터에 대응하는 심도 데이터 (depth data) 를 포함하는 심도 뷰 성분을 수신하는 단계; 및
상기 텍스쳐 뷰 성분 및 상기 심도 뷰 성분이 공통 비트스트림 내에 캡슐화되도록 상기 뷰의 상기 시간 인스턴스에 대한 뷰 성분에서 상기 텍스쳐 뷰 성분 및 상기 심도 뷰 성분을 캡슐화하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 1 항에 있어서,
상기 텍스쳐 데이터는 텍스쳐 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하며, 상기 심도 데이터는 심도 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하는, 비디오 데이터를 코딩하는 방법. - 제 1 항에 있어서,
상기 뷰 성분의 상기 심도 뷰 성분이 연속해서 뒤따르는 상기 뷰 성분의 상기 텍스쳐 뷰 성분을 포함하도록 상기 공통 비트스트림을 형성하는 단계; 및
구분문자 네트워크 추상 계층 (network abstraction layer; NAL) 유닛을 형성하는 단계를 더 포함하며,
상기 캡슐화하는 단계는 상기 구분문자 NAL 유닛을 상기 공통 비트스트림의 액세스 유닛에서 상기 텍스쳐 뷰 성분과 상기 심도 뷰 성분 사이에 제공하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 1 항에 있어서,
상기 캡슐화하는 단계는,
상기 심도 뷰 성분을, 상기 텍스쳐 뷰 성분을 캡슐화하는데 사용된 NAL 유닛 유형들과는 상이한 NAL 유닛 유형을 가진 네트워크 추상 계층 (NAL) 유닛으로서 캡슐화하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 1 항에 있어서,
상기 비트스트림으로 비디오 데이터의 뷰들과 관련된 하나 이상의 카메라들에 대한 카메라 파라미터들을 시그널링하는 단계를 더 포함하며,
상기 카메라 파라미터들을 시그널링하는 단계는,
상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 본질적인 카메라 파라미터들을 결정하는 단계로서, 상기 본질적인 카메라 파라미터들은 초점 길이 및 주 지점 오프셋 (principle point offset) 중 하나 이상을 포함하는, 상기 본질적인 카메라 파라미터들을 결정하는 단계;
상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 외적인 카메라 파라미터들을 결정하는 단계;
상기 하나 이상의 카메라들의 실-세계 수평 로케이션들을 포함하는 뷰-특정의 카메라 파라미터들을 결정하는 단계; 및
상기 본질적인 카메라 파라미터들, 상기 외적인 카메라 파라미터들, 및 상기 뷰-특정의 카메라 파라미터들을 나타내는 값들을 포함하는 시퀀스 레벨 데이터 구조를 형성하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 1 항에 있어서,
실-세계 심도 (z) 값들로부터 코딩된 프레임들로서 상기 심도 데이터에 나타낸 심도 값들로의 변환을 나타내는 데이터를 시그널링하는 단계를 더 포함하고,
상기 변환을 나타내는 상기 데이터는,
상기 실-세계 심도 (z) 값들을 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 선형 함수의 표시, 상기 실-세계 심도 (z) 값들을 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 역 선형 함수의 표시, 상기 실-세계 심도 (z) 값들의 범위를 나타내는 데이터, 및 상기 실-세계 심도 (z) 값들을 시그널링하는데 사용된 룩업 테이블의 표시 중 적어도 하나를 나타내는 데이터를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 6 항에 있어서,
상기 변환을 나타내는 상기 데이터를 시그널링하는 단계는, 고유한 NAL 유닛 유형 값 및 상기 변환을 나타내는 상기 데이터를 포함하는 NAL 유닛을 형성하는 단계를 포함하며,
상기 방법은, 하나 이상의 액세스 유닛들에서 상기 공통 스트림에서의 뷰 파라미터 세트를 시그널링하는 단계를 더 포함하며,
상기 뷰 파라미터 세트는 상기 실-세계 심도 (z) 값들의 상기 범위를 나타내는 정보를 포함하는, 비디오 데이터를 코딩하는 방법. - 비디오 데이터를 프로세싱하는 디바이스로서,
비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 포함하는 텍스쳐 뷰 성분을 수신하고, 상기 비디오 데이터의 뷰의 상기 시간 인스턴스에 대한 상기 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는 심도 뷰 성분을 수신하며, 상기 텍스쳐 뷰 성분 및 상기 심도 뷰 성분이 공통 비트스트림 내에 캡슐화되도록 상기 뷰의 상기 시간 인스턴스에 대한 뷰 성분에서 상기 뷰 성분 텍스쳐 및 상기 심도 뷰 성분을 캡슐화하도록 구성된 비디오 코더를 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 8 항에 있어서,
상기 텍스쳐 데이터는 텍스쳐 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하며, 상기 심도 데이터는 심도 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 8 항에 있어서,
상기 비디오 코더는 또한,
상기 뷰 성분의 상기 심도 뷰 성분이 연속해서 뒤따르는 상기 뷰 성분의 상기 텍스쳐 뷰 성분을 포함하도록 상기 공통 비트스트림을 형성하며;
구분문자 네트워크 추상 계층 (NAL) 유닛을 형성하도록 구성되고,
상기 캡슐화하는 것은 상기 구분문자 NAL 유닛을 상기 공통 비트스트림의 액세스 유닛에서 상기 텍스쳐 뷰 성분과 상기 심도 뷰 성분 사이에 제공하는 것을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 8 항에 있어서,
캡슐화하기 위해, 상기 비디오 코더는 또한,
상기 심도 뷰 성분을 상기 텍스쳐 뷰 성분을 캡슐화하는데 사용된 NAL 유닛 유형들과는 상이한 NAL 유닛 유형을 가진 네트워크 추상 계층 (NAL) 유닛으로서 캡슐화하도록 구성되는, 비디오 데이터를 프로세싱하는 디바이스. - 제 8 항에 있어서,
상기 비디오 코더는 또한, 상기 비트스트림에서 비디오 데이터의 뷰들과 관련된 하나 이상의 카메라들에 대한 카메라 파라미터들을 시그널링하도록 구성되며,
상기 카메라 파라미터들을 시그널링하기 위해, 상기 비디오 코더는,
상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 본질적인 카메라 파라미터들을 결정하고;
상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 외적인 카메라 파라미터들을 결정하고;
상기 하나 이상의 카메라들의 실-세계 수평 로케이션들을 포함하는 뷰-특정의 카메라 파라미터들을 결정하며;
상기 본질적인 카메라 파라미터들, 상기 외적인 카메라 파라미터들, 및 상기 뷰-특정의 카메라 파라미터들을 나타내는 값들을 포함하는 시퀀스 레벨 데이터 구조를 형성하도록 구성되며,
상기 본질적인 카메라 파라미터들은 초점 길이 및 주 지점 오프셋 중 하나 이상을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 8 항에 있어서,
상기 비디오 코더는 또한, 실-세계 심도 (z) 값들로부터 상기 심도 데이터에 나타낸 심도 값들로의 변환을 나타내는 데이터를 코딩된 프레임들로서 시그널링하도록 구성되며,
상기 변환을 나타내는 상기 데이터는, 상기 실-세계 심도 (z) 값들을 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 선형 함수의 표시, 상기 실-세계 심도 (z) 값들로부터 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 역 선형 함수의 표시, 상기 실-세계 심도 (z) 값들의 범위를 나타내는 데이터, 및 상기 실-세계 심도 (z) 값들을 시그널링하는데 사용된 룩업 테이블의 표시 중 적어도 하나를 나타내는 데이터를 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 13 항에 있어서,
상기 변환을 나타내는 상기 데이터를 시그널링하기 위해 상기 비디오 코더는, 고유한 NAL 유닛 유형 값 및 상기 변환을 나타내는 상기 데이터를 포함하는 NAL 유닛을 형성하고, 하나 이상의 액세스 유닛들에서 상기 공통 스트림에서의 뷰 파라미터 세트를 시그널링하도록 구성되며,
상기 뷰 파라미터 세트는 상기 실-세계 심도 (z) 값들의 상기 범위를 나타내는 정보를 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 명령들이 저장되어 있는 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서,
상기 명령들은, 실행될 때, 비디오 인코딩 디바이스의 프로세서로 하여금,
비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 포함하는 텍스쳐 뷰 성분을 수신하게 하고;
상기 비디오 데이터의 뷰의 상기 시간 인스턴스에 대한 상기 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는 심도 뷰 성분을 수신하게 하며;
상기 텍스쳐 뷰 성분 및 상기 심도 뷰 성분이 공통 비트스트림 내에 캡슐화되도록 상기 뷰의 상기 시간 인스턴스에 대한 뷰 성분에서 상기 뷰 성분 텍스쳐 및 상기 심도 뷰 성분을 캡슐화하게 하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품. - 제 15 항에 있어서,
상기 텍스쳐 데이터는 텍스쳐 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하며, 상기 심도 데이터는 심도 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품. - 제 15 항에 있어서,
상기 프로세서로 하여금,
상기 뷰 성분의 상기 심도 뷰 성분이 연속해서 뒤따르는 상기 뷰 성분의 상기 텍스쳐 뷰 성분을 포함하도록 상기 공통 비트스트림을 형성하게 하며;
구분문자 네트워크 추상 계층 (NAL) 유닛을 형성하게 하는 명령들을 더 포함하며,
상기 캡슐화하는 것은 상기 구분문자 NAL 유닛을 상기 공통 비트스트림의 액세스 유닛에서 상기 텍스쳐 뷰 성분과 상기 심도 뷰 성분 사이에 제공하는 것을 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품. - 제 15 항에 있어서,
상기 캡슐화하게 하는 명령들은,
상기 프로세서로 하여금, 상기 심도 뷰 성분을 상기 텍스쳐 뷰 성분을 캡슐화하는데 사용된 NAL 유닛 유형들과는 상이한 NAL 유닛 유형을 가진 네트워크 추상 계층 (NAL) 유닛으로서 캡슐화하게 하는 명령들을 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품. - 제 15 항에 있어서,
상기 프로세서로 하여금, 상기 비트스트림에서 비디오 데이터의 뷰들과 관련된 하나 이상의 카메라들에 대한 카메라 파라미터들을 시그널링하게 하는 명령들을 더 포함하며,
상기 카메라 파라미터들을 시그널링하게 하는 명령들은,
상기 프로세서로 하여금,
상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 본질적인 카메라 파라미터들을 결정하게 하고;
상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 외적인 카메라 파라미터들을 결정하게 하고;
상기 하나 이상의 카메라들의 실-세계 수평 로케이션들을 포함하는 뷰-특정의 카메라 파라미터들을 결정하게 하며;
상기 본질적인 카메라 파라미터들, 상기 외적인 카메라 파라미터들, 및 상기 뷰-특정의 카메라 파라미터들을 나타내는 값들을 포함하는 시퀀스 레벨 데이터 구조를 형성하게 하는 명령들을 포함하며,
상기 본질적인 카메라 파라미터들은 초점 길이 및 주 지점 오프셋 중 하나 이상을 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품. - 제 15 항에 있어서,
상기 프로세서로 하여금, 실-세계 심도 (z) 값들로부터 상기 심도 데이터에 나타낸 심도 값들로의 변환을 나타내는 데이터를 코딩된 프레임들로서 시그널링하게 하는 명령들을 더 포함하며,
상기 변환을 나타내는 상기 데이터는,
상기 실-세계 심도 (z) 값들을 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 선형 함수의 표시, 상기 실-세계 심도 (z) 값들을 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 역 선형 함수의 표시, 상기 실-세계 심도 (z) 값들의 범위를 나타내는 데이터, 및 상기 실-세계 심도 (z) 값들을 시그널링하는데 사용된 룩업 테이블의 표시 중 적어도 하나를 나타내는 데이터를 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품. - 제 20 항에 있어서,
상기 프로세서로 하여금 상기 변환을 나타내는 상기 데이터를 시그널링하게 하는 명령들은,
상기 프로세서로 하여금, 고유한 NAL 유닛 유형 값 및 상기 변환을 나타내는 상기 데이터를 포함하는 NAL 유닛을 형성하게 하고, 하나 이상의 액세스 유닛들에서 상기 공통 스트림에서의 뷰 파라미터 세트를 시그널링하게 하는 명령들을 포함하며,
상기 뷰 파라미터 세트는 상기 실-세계 심도 (z) 값들의 상기 범위를 나타내는 정보를 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품. - 비디오 데이터를 프로세싱하는 디바이스로서,
비디오 데이터의 뷰의 시간 인스턴스에 대한 텍스쳐 데이터를 포함하는 텍스쳐 뷰 성분을 수신하는 수단;
상기 비디오 데이터의 뷰의 상기 시간 인스턴스에 대한 상기 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는 심도 뷰 성분을 수신하는 수단; 및
상기 텍스쳐 뷰 성분 및 상기 심도 뷰 성분이 공통 비트스트림 내에 캡슐화되도록 상기 뷰의 상기 시간 인스턴스에 대한 뷰 성분에서 상기 텍스쳐 뷰 성분 및 상기 심도 뷰 성분을 캡슐화하는 수단을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 22 항에 있어서,
상기 텍스쳐 데이터는 텍스쳐 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하며, 상기 심도 데이터는 심도 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 22 항에 있어서,
상기 뷰 성분의 상기 심도 뷰 성분이 연속해서 뒤따르는 상기 뷰 성분의 상기 텍스쳐 뷰 성분을 포함하도록 상기 공통 비트스트림을 형성하는 수단; 및
구분문자 네트워크 추상 계층 (NAL) 유닛을 형성하는 수단을 더 포함하며,
상기 캡슐화하는 것은 상기 구분문자 NAL 유닛을 상기 공통 비트스트림의 액세스 유닛에서 상기 텍스쳐 뷰 성분과 상기 심도 뷰 성분 사이에 제공하는 것을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 22 항에 있어서,
상기 캡슐화하는 수단은,
상기 심도 뷰 성분을, 상기 텍스쳐 뷰 성분을 캡슐화하는데 사용된 NAL 유닛 유형들과는 상이한 NAL 유닛 유형을 가진 네트워크 추상 계층 (NAL) 유닛으로서 캡슐화하는 수단을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 22 항에 있어서,
상기 비트스트림에서 비디오 데이터의 뷰들과 관련된 하나 이상의 카메라들에 대한 카메라 파라미터들을 시그널링하는 수단을 더 포함하며,
상기 카메라 파라미터들을 시그널링하는 수단은,
상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 본질적인 카메라 파라미터들을 결정하는 수단으로서, 상기 본질적인 카메라 파라미터들은 초점 길이 및 주 지점 오프셋 중 하나 이상을 포함하는, 상기 본질적인 카메라 파라미터들을 결정하는 수단;
상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 외적인 카메라 파라미터들을 결정하는 수단;
상기 하나 이상의 카메라들의 실-세계 수평 로케이션들을 포함하는 뷰-특정의 카메라 파라미터들을 결정하는 수단; 및
상기 본질적인 카메라 파라미터들, 상기 외적인 카메라 파라미터들, 및 상기 뷰-특정의 카메라 파라미터들을 나타내는 값들을 포함하는 시퀀스 레벨 데이터 구조를 형성하는 수단을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 22 항에 있어서,
실-세계 심도 (z) 값들로부터 상기 심도 데이터에 나타낸 심도 값들로의 변환을 나타내는 데이터를 코딩된 프레임들로서 시그널링하는 수단을 더 포함하며,
상기 변환을 나타내는 상기 데이터는, 상기 실-세계 심도 (z) 값들을 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 선형 함수의 표시, 상기 실-세계 심도 (z) 값들로부터 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 역 선형 함수의 표시, 상기 실-세계 심도 (z) 값들의 범위를 나타내는 데이터, 및 상기 실-세계 심도 (z) 값들을 시그널링하는데 사용된 룩업 테이블의 표시 중 적어도 하나를 나타내는 데이터를 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 27 항에 있어서,
상기 변환을 나타내는 상기 데이터를 시그널링하는 수단은,
고유한 NAL 유닛 유형 값 및 상기 변환을 나타내는 상기 데이터를 포함하는 NAL 유닛을 형성하는 수단, 및 하나 이상의 액세스 유닛들에서 상기 공통 스트림에서의 뷰 파라미터 세트를 시그널링하는 수단을 포함하며,
상기 뷰 파라미터 세트는 상기 실-세계 심도 (z) 값들의 상기 범위를 나타내는 정보를 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 비디오 데이터를 코딩하는 방법으로서,
비디오 데이터의 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 뷰 성분 및 심도 뷰 성분을 캡슐화하는 공통 비트스트림을 수신하는 단계로서, 상기 텍스쳐 뷰 성분은 뷰의 상기 시간 인스턴스에 대한 텍스쳐 데이터를 포함하고 상기 심도 뷰 성분은 상기 비디오 데이터의 뷰의 상기 시간 인스턴스에 대한 상기 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는, 상기 공통 비트스트림을 수신하는 단계; 및
상기 비디오 데이터의 뷰의 상기 시간 인스턴스에 대한 상기 텍스쳐 뷰 성분 및 상기 심도 뷰 성분을 분리하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법. - 제 29 항에 있어서,
상기 텍스쳐 데이터는 텍스쳐 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하며, 상기 심도 데이터는 심도 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하는, 비디오 데이터를 코딩하는 방법. - 제 29 항에 있어서,
상기 공통 비트스트림은 상기 공통 비트스트림에서 상기 텍스쳐 뷰 성분과 상기 심도 뷰 성분 사이에 구분문자 NAL 유닛을 포함하는, 비디오 데이터를 코딩하는 방법. - 제 29 항에 있어서,
상기 심도 뷰 성분은 상기 텍스쳐 뷰 성분을 캡슐화하는데 사용된 NAL 유닛 유형들과는 상이한 NAL 유닛 유형을 가진 네트워크 추상 계층 (NAL) 유닛으로서 캡슐화되는, 비디오 데이터를 코딩하는 방법. - 제 29 항에 있어서,
상기 비트스트림에서 비디오 데이터의 뷰들과 관련된 하나 이상의 카메라들에 대한 시그널링된 카메라 파라미터들을 획득하는 단계를 더 포함하며,
상기 비트스트림은 상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 본질적인 카메라 파라미터들, 상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 외적인 카메라 파라미터들, 및 상기 하나 이상의 카메라들의 실-세계 수평 로케이션들을 포함하는 뷰-특정의 카메라 파라미터들을 나타내는 값들을 포함하는 SPS 데이터 구조를 캡슐화하며,
상기 본질적인 카메라 파라미터들은 초점 길이 및 주 지점 오프셋 중 하나 이상을 포함하는, 비디오 데이터를 코딩하는 방법. - 제 29 항에 있어서,
실-세계 심도 (z) 값들로부터 코딩된 프레임들로서 상기 심도 데이터에 나타낸 심도 값들로의 변환을 나타내는 시그널링된 데이터를 획득하는 단계를 더 포함하며,
상기 변환을 나타내는 상기 데이터는,
상기 실-세계 심도 (z) 값들을 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 선형 함수의 표시, 상기 실-세계 심도 (z) 값들을 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 역 선형 함수의 표시, 상기 실-세계 심도 (z) 값들의 범위를 나타내는 데이터, 및 상기 실-세계 심도 (z) 값들을 시그널링하는데 사용된 룩업 테이블의 표시 중 적어도 하나를 나타내는 데이터를 포함하는, 비디오 데이터를 코딩하는 방법. - 비디오 데이터를 프로세싱하는 디바이스로서,
상기 비디오 데이터의 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 뷰 성분 및 심도 뷰 성분을 캡슐화하는 공통 비트스트림을 수신하고, 상기 비디오 데이터의 뷰의 상기 시간 인스턴스에 대한 상기 텍스쳐 뷰 성분 및 상기 심도 뷰 성분을 분리하도록 구성된 비디오 코더를 포함하며,
상기 텍스쳐 뷰 성분은 뷰의 상기 시간 인스턴스에 대한 텍스쳐 데이터를 포함하고, 상기 심도 뷰 성분은 상기 비디오 데이터의 뷰의 상기 시간 인스턴스에 대한 상기 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 35 항에 있어서,
상기 텍스쳐 데이터는 텍스쳐 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하며, 상기 심도 데이터는 심도 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 35 항에 있어서,
상기 공통 비트스트림은 상기 공통 비트스트림에서 상기 텍스쳐 뷰 성분과 상기 심도 뷰 성분 사이에 구분문자 NAL 유닛을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 35 항에 있어서,
상기 심도 뷰 성분은 상기 텍스쳐 뷰 성분을 캡슐화하는데 사용된 NAL 유닛 유형들과는 상이한 NAL 유닛 유형을 가진 네트워크 추상 계층 (NAL) 유닛으로서 캡슐화되는, 비디오 데이터를 프로세싱하는 디바이스. - 제 35 항에 있어서,
상기 비디오 코더는 또한, 상기 비트스트림에서 비디오 데이터의 뷰들과 관련된 하나 이상의 카메라들에 대한 시그널링된 카메라 파라미터들을 획득하도록 구성되며,
상기 비트스트림은 상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 본질적인 카메라 파라미터들, 상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 외적인 카메라 파라미터들, 및 상기 하나 이상의 카메라들의 실-세계 수평 로케이션들을 포함하는 뷰-특정의 카메라 파라미터들을 나타내는 값들을 포함하는 SPS 데이터 구조를 캡슐화하며,
상기 본질적인 카메라 파라미터들은 초점 길이 및 주 지점 오프셋 중 하나 이상을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 35 항에 있어서,
상기 비디오 코더는 또한, 실-세계 심도 (z) 값들로부터 코딩된 프레임들로서 상기 심도 데이터에 나타낸 심도 값들로의 변환을 나타내는 시그널링된 데이터를 획득하도록 구성되며,
상기 변환을 나타내는 상기 데이터는,
상기 실-세계 심도 (z) 값들을 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 선형 함수의 표시, 상기 실-세계 심도 (z) 값들로부터 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 역 선형 함수의 표시, 상기 실-세계 심도 (z) 값들의 범위를 나타내는 데이터, 및 상기 실-세계 심도 (z) 값들을 시그널링하는데 사용된 룩업 테이블의 표시 중 적어도 하나를 나타내는 데이터를 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 명령들이 저장되어 있는 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서,
상기 명령들은, 실행될 때, 비디오 디코딩 디바이스의 프로세서로 하여금,
비디오 데이터의 상기 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 뷰 성분 및 심도 뷰 성분을 캡슐화하는 공통 비트스트림을 수신하게 하고;
상기 비디오 데이터의 뷰의 상기 시간 인스턴스에 대한 상기 텍스쳐 뷰 성분 및 상기 심도 뷰 성분을 분리하게 하며,
상기 텍스쳐 뷰 성분은 뷰의 상기 시간 인스턴스에 대한 텍스쳐 데이터를 포함하고, 상기 심도 뷰 성분은 상기 비디오 데이터의 뷰의 상기 시간 인스턴스에 대한 상기 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품. - 제 41 항에 있어서,
상기 텍스쳐 데이터는 텍스쳐 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하며, 상기 심도 데이터는 심도 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품. - 제 41 항에 있어서,
상기 공통 비트스트림은 상기 공통 비트스트림에서 상기 텍스쳐 뷰 성분과 상기 심도 뷰 성분 사이에 구분문자 NAL 유닛을 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품. - 제 41 항에 있어서,
상기 심도 뷰 성분은 상기 텍스쳐 뷰 성분을 캡슐화하는데 사용된 NAL 유닛 유형들과는 상이한 NAL 유닛 유형을 가진 네트워크 추상 계층 (NAL) 유닛으로서 캡슐화되는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품. - 제 41 항에 있어서,
상기 프로세서로 하여금, 상기 비트스트림에서 비디오 데이터의 뷰들과 관련된 하나 이상의 카메라들에 대한 시그널링된 카메라 파라미터들을 획득하도록 하는 명령들을 더 포함하며,
상기 비트스트림은, 상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 본질적인 카메라 파라미터들, 상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 외적인 카메라 파라미터들, 및 상기 하나 이상의 카메라들의 실-세계 수평 로케이션들을 포함하는 뷰-특정의 카메라 파라미터들을 나타내는 값들을 포함하는 SPS 데이터 구조를 캡슐화하며,
상기 본질적인 카메라 파라미터들은 초점 길이 및 주 지점 오프셋 중 하나 이상을 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품. - 제 41 항에 있어서,
상기 프로세서로 하여금, 실-세계 심도 (z) 값들로부터 코딩된 프레임들로서 상기 심도 데이터에 나타낸 심도 값들로의 변환을 나타내는 시그널링된 데이터를 획득하도록 하는 명령들을 더 포함하며,
상기 변환을 나타내는 상기 데이터는,
상기 실-세계 심도 (z) 값들을 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 선형 함수의 표시, 상기 실-세계 심도 (z) 값들로부터 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 역 선형 함수의 표시, 상기 실-세계 심도 (z) 값들의 범위를 나타내는 데이터, 및 상기 실-세계 심도 (z) 값들을 시그널링하는데 사용된 룩업 테이블의 표시 중 적어도 하나를 나타내는 데이터를 포함하는, 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품. - 비디오 데이터를 프로세싱하는 디바이스로서,
상기 비디오 데이터의 뷰의 시간 인스턴스에 대한 뷰 성분에서 텍스쳐 뷰 성분 및 심도 뷰 성분을 캡슐화하는 공통 비트스트림을 수신하는 수단으로서, 상기 텍스쳐 뷰 성분은 뷰의 상기 시간 인스턴스에 대한 텍스쳐 데이터를 포함하고 상기 심도 뷰 성분은 상기 비디오 데이터의 뷰의 상기 시간 인스턴스에 대한 상기 텍스쳐 데이터에 대응하는 심도 데이터를 포함하는, 상기 공통 비트스트림을 수신하는 수단; 및
상기 비디오 데이터의 뷰의 상기 시간 인스턴스에 대한 상기 텍스쳐 뷰 성분 및 상기 심도 뷰 성분을 분리하는 수단을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 47 항에 있어서,
상기 텍스쳐 데이터는 텍스쳐 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하며, 상기 심도 데이터는 심도 데이터의 코딩된 프레임의 코딩된 슬라이스들을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 47 항에 있어서,
상기 공통 비트스트림은 상기 공통 비트스트림에서 상기 텍스쳐 뷰 성분과 상기 심도 뷰 성분 사이에 구분문자 NAL 유닛을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 47 항에 있어서,
상기 심도 데이터는 상기 텍스쳐 데이터를 캡슐화하는데 사용되는 NAL 유닛 유형들과는 상이한 NAL 유닛 유형을 가진 네트워크 추상 계층 (NAL) 유닛으로서 캡슐화되는, 비디오 데이터를 프로세싱하는 디바이스. - 제 47 항에 있어서,
상기 비트스트림에서 비디오 데이터의 뷰들과 관련된 하나 이상의 카메라들에 대한 시그널링된 카메라 파라미터들을 획득하는 수단을 더 포함하며,
상기 비트스트림은 상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 본질적인 카메라 파라미터들, 상기 하나 이상의 카메라들에 대응하는 상기 뷰들에 의해 공유된 외적인 카메라 파라미터들, 및 상기 하나 이상의 카메라들의 실-세계 수평 로케이션들을 포함하는 뷰-특정의 카메라 파라미터들을 나타내는 값들을 포함하는 SPS 데이터 구조를 캡슐화하며,
상기 본질적인 카메라 파라미터들은 초점 길이 및 주 지점 오프셋 중 하나 이상을 포함하는, 비디오 데이터를 프로세싱하는 디바이스. - 제 47 항에 있어서,
실-세계 심도 (z) 값들로부터 코딩된 프레임들로서 상기 심도 데이터에 나타낸 심도 값들로의 변환을 나타내는 시그널링된 데이터를 획득하는 수단을 더 포함하며,
상기 변환을 나타내는 상기 데이터는,
상기 실-세계 심도 (z) 값들을 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 선형 함수의 표시, 상기 실-세계 심도 (z) 값들로부터 상기 심도 뷰 성분의 심도 값들로 변환하기 위한 역 선형 함수의 표시, 상기 실-세계 심도 (z) 값들의 범위를 나타내는 데이터, 및 상기 실-세계 심도 (z) 값들을 시그널링하는데 사용된 룩업 테이블의 표시 중 적어도 하나를 나타내는 데이터를 포함하는, 비디오 데이터를 프로세싱하는 디바이스.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161451333P | 2011-03-10 | 2011-03-10 | |
US61/451,333 | 2011-03-10 | ||
US201161487587P | 2011-05-18 | 2011-05-18 | |
US61/487,587 | 2011-05-18 | ||
US13/414,515 US9565449B2 (en) | 2011-03-10 | 2012-03-07 | Coding multiview video plus depth content |
US13/414,515 | 2012-03-07 | ||
PCT/US2012/028252 WO2012122364A1 (en) | 2011-03-10 | 2012-03-08 | Coding multiview video plus depth content |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130141674A true KR20130141674A (ko) | 2013-12-26 |
KR101521373B1 KR101521373B1 (ko) | 2015-05-18 |
Family
ID=46795198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137026625A KR101521373B1 (ko) | 2011-03-10 | 2012-03-08 | 코딩 멀티뷰 비디오 플러스 심도 콘텐츠 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9565449B2 (ko) |
EP (1) | EP2684372B1 (ko) |
JP (1) | JP5698391B2 (ko) |
KR (1) | KR101521373B1 (ko) |
CN (1) | CN103493483B (ko) |
ES (1) | ES2692721T3 (ko) |
HU (1) | HUE040109T2 (ko) |
WO (1) | WO2012122364A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016056779A1 (ko) * | 2014-10-08 | 2016-04-14 | 엘지전자 주식회사 | 3d 비디오 코딩에서 카메라 파라미터 처리 방법 및 장치 |
Families Citing this family (146)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7983835B2 (en) | 2004-11-03 | 2011-07-19 | Lagassey Paul J | Modular intelligent transportation system |
KR101733443B1 (ko) | 2008-05-20 | 2017-05-10 | 펠리칸 이매징 코포레이션 | 이종 이미저를 구비한 모놀리식 카메라 어레이를 이용한 이미지의 캡처링 및 처리 |
US11792538B2 (en) | 2008-05-20 | 2023-10-17 | Adeia Imaging Llc | Capturing and processing of images including occlusions focused on an image sensor by a lens stack array |
US8866920B2 (en) | 2008-05-20 | 2014-10-21 | Pelican Imaging Corporation | Capturing and processing of images using monolithic camera array with heterogeneous imagers |
EP2502115A4 (en) | 2009-11-20 | 2013-11-06 | Pelican Imaging Corp | RECORDING AND PROCESSING IMAGES THROUGH A MONOLITHIC CAMERA ARRAY WITH HETEROGENIC IMAGE CONVERTER |
US20120012748A1 (en) | 2010-05-12 | 2012-01-19 | Pelican Imaging Corporation | Architectures for imager arrays and array cameras |
KR20120020627A (ko) * | 2010-08-30 | 2012-03-08 | 삼성전자주식회사 | 3d 영상 포맷을 이용한 영상 처리 장치 및 방법 |
US8878950B2 (en) | 2010-12-14 | 2014-11-04 | Pelican Imaging Corporation | Systems and methods for synthesizing high resolution images using super-resolution processes |
US9118928B2 (en) * | 2011-03-04 | 2015-08-25 | Ati Technologies Ulc | Method and system for providing single view video signal based on a multiview video coding (MVC) signal stream |
US20140044347A1 (en) * | 2011-04-25 | 2014-02-13 | Sharp Kabushiki Kaisha | Mage coding apparatus, image coding method, image coding program, image decoding apparatus, image decoding method, and image decoding program |
KR101973822B1 (ko) | 2011-05-11 | 2019-04-29 | 포토네이션 케이맨 리미티드 | 어레이 카메라 이미지 데이터를 송신 및 수신하기 위한 시스템들 및 방법들 |
KR20140004209A (ko) * | 2011-06-15 | 2014-01-10 | 미디어텍 인크. | 3d 비디오 코딩에서의 텍스처 이미지 압축 방법 및 장치 |
US20130188013A1 (en) * | 2011-07-22 | 2013-07-25 | Qualcomm Incorporated | Mvc based 3dvc codec supporting inside view motion prediction (ivmp) mode |
US9521418B2 (en) * | 2011-07-22 | 2016-12-13 | Qualcomm Incorporated | Slice header three-dimensional video extension for slice header prediction |
US11496760B2 (en) | 2011-07-22 | 2022-11-08 | Qualcomm Incorporated | Slice header prediction for depth maps in three-dimensional video codecs |
US9288505B2 (en) * | 2011-08-11 | 2016-03-15 | Qualcomm Incorporated | Three-dimensional video with asymmetric spatial resolution |
US9497435B2 (en) * | 2011-08-15 | 2016-11-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Encoder, method in an encoder, decoder and method in a decoder for providing information concerning a spatial validity range |
JP5155462B2 (ja) * | 2011-08-17 | 2013-03-06 | 株式会社スクウェア・エニックス・ホールディングス | 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体 |
US20130070060A1 (en) | 2011-09-19 | 2013-03-21 | Pelican Imaging Corporation | Systems and methods for determining depth from multiple views of a scene that include aliasing using hypothesized fusion |
EP2761534B1 (en) | 2011-09-28 | 2020-11-18 | FotoNation Limited | Systems for encoding light field image files |
US9143802B2 (en) | 2011-10-31 | 2015-09-22 | Qualcomm Incorporated | Fragmented parameter set for video coding |
US20130113882A1 (en) * | 2011-11-08 | 2013-05-09 | Sony Corporation | Video coding system and method of operation thereof |
KR102492490B1 (ko) | 2011-11-11 | 2023-01-30 | 지이 비디오 컴프레션, 엘엘씨 | 깊이-맵 추정 및 업데이트를 사용한 효율적인 멀티-뷰 코딩 |
EP3657796A1 (en) | 2011-11-11 | 2020-05-27 | GE Video Compression, LLC | Efficient multi-view coding using depth-map estimate for a dependent view |
US9485503B2 (en) | 2011-11-18 | 2016-11-01 | Qualcomm Incorporated | Inside view motion prediction among texture and depth view components |
EP2781091B1 (en) * | 2011-11-18 | 2020-04-08 | GE Video Compression, LLC | Multi-view coding with efficient residual handling |
US9369710B2 (en) * | 2012-02-06 | 2016-06-14 | Qualcomm Incorporated | Reference picture list modification for video coding |
EP2817955B1 (en) | 2012-02-21 | 2018-04-11 | FotoNation Cayman Limited | Systems and methods for the manipulation of captured light field image data |
JP5307958B1 (ja) | 2012-02-23 | 2013-10-02 | 株式会社スクウェア・エニックス・ホールディングス | 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体 |
KR20130098122A (ko) * | 2012-02-27 | 2013-09-04 | 세종대학교산학협력단 | 영상 부호화/복호화 장치 및 영상을 부호화/복호화하는 방법 |
WO2013129822A1 (ko) | 2012-02-27 | 2013-09-06 | 세종대학교산학협력단 | 영상 부호화와 복호화 장치 및 영상을 부호화와 복호화하는 방법 |
US10447990B2 (en) | 2012-02-28 | 2019-10-15 | Qualcomm Incorporated | Network abstraction layer (NAL) unit header design for three-dimensional video coding |
JP2013198059A (ja) * | 2012-03-22 | 2013-09-30 | Sharp Corp | 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法およびプログラム |
JP2013211776A (ja) * | 2012-03-30 | 2013-10-10 | Sharp Corp | 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法およびプログラム |
KR20150003406A (ko) | 2012-04-12 | 2015-01-08 | 가부시키가이샤 스퀘어.에닉스.홀딩스 | 동화상 배포 서버, 동화상 재생 장치, 제어 방법, 기록 매체, 및 동화상 배포 시스템 |
CN104350748B (zh) * | 2012-04-19 | 2018-01-23 | 瑞典爱立信有限公司 | 使用低分辨率深度图的视图合成 |
US10205961B2 (en) | 2012-04-23 | 2019-02-12 | Qualcomm Incorporated | View dependency in multi-view coding and 3D coding |
WO2013162257A1 (ko) * | 2012-04-23 | 2013-10-31 | 삼성전자 주식회사 | 다시점 비디오 부호화 방법 및 장치, 다시점 비디오 복호화 방법 및 장치 |
CN104412602A (zh) * | 2012-04-23 | 2015-03-11 | 三星电子株式会社 | 多视点视频编码方法和装置以及多视点视频解码方法和装置 |
US20130287093A1 (en) * | 2012-04-25 | 2013-10-31 | Nokia Corporation | Method and apparatus for video coding |
US9210392B2 (en) | 2012-05-01 | 2015-12-08 | Pelican Imaging Coporation | Camera modules patterned with pi filter groups |
US9762903B2 (en) | 2012-06-01 | 2017-09-12 | Qualcomm Incorporated | External pictures in video coding |
US9258562B2 (en) | 2012-06-13 | 2016-02-09 | Qualcomm Incorporated | Derivation of depth map estimate |
JP2015534734A (ja) | 2012-06-28 | 2015-12-03 | ペリカン イメージング コーポレイション | 欠陥のあるカメラアレイ、光学アレイ、およびセンサを検出するためのシステムおよび方法 |
US20140002674A1 (en) | 2012-06-30 | 2014-01-02 | Pelican Imaging Corporation | Systems and Methods for Manufacturing Camera Modules Using Active Alignment of Lens Stack Arrays and Sensors |
US10110890B2 (en) | 2012-07-02 | 2018-10-23 | Sony Corporation | Video coding system with low delay and method of operation thereof |
US9912941B2 (en) | 2012-07-02 | 2018-03-06 | Sony Corporation | Video coding system with temporal layers and method of operation thereof |
CN103533324B (zh) * | 2012-07-03 | 2017-04-05 | 乐金电子(中国)研究开发中心有限公司 | 一种深度图像帧内编码方法、装置及编码器 |
KR101641606B1 (ko) * | 2012-07-09 | 2016-07-21 | 니폰 덴신 덴와 가부시끼가이샤 | 화상 부호화 방법, 화상 복호 방법, 화상 부호화 장치, 화상 복호 장치, 화상 부호화 프로그램, 화상 복호 프로그램 및 기록매체 |
CN104429062B (zh) * | 2012-07-13 | 2017-02-01 | 华为技术有限公司 | 用于对表示三维视频的比特流进行编码的设备 |
EP3869797B1 (en) | 2012-08-21 | 2023-07-19 | Adeia Imaging LLC | Method for depth detection in images captured using array cameras |
US20140055632A1 (en) | 2012-08-23 | 2014-02-27 | Pelican Imaging Corporation | Feature based high resolution motion estimation from low resolution images captured using an array source |
KR101664758B1 (ko) * | 2012-09-21 | 2016-10-10 | 노키아 테크놀로지스 오와이 | 비디오 코딩 방법 및 장치 |
US9992490B2 (en) | 2012-09-26 | 2018-06-05 | Sony Corporation | Video parameter set (VPS) syntax re-ordering for easy access of extension parameters |
WO2014051404A1 (ko) * | 2012-09-28 | 2014-04-03 | 삼성전자 주식회사 | 컬러 영상과 깊이 영상의 부호화/복호화 정보 공유를 이용한 부호화/복호화 장치 및 방법 |
EP2901671A4 (en) | 2012-09-28 | 2016-08-24 | Pelican Imaging Corp | CREATING IMAGES FROM LIGHT FIELDS USING VIRTUAL POINTS OF VIEW |
US9479779B2 (en) | 2012-10-01 | 2016-10-25 | Qualcomm Incorporated | Sub-bitstream extraction for multiview, three-dimensional (3D) and scalable media bitstreams |
CN104704835B (zh) * | 2012-10-03 | 2017-11-24 | 联发科技股份有限公司 | 视频编码中运动信息管理的装置与方法 |
WO2014053087A1 (en) * | 2012-10-03 | 2014-04-10 | Mediatek Inc. | Method and apparatus of motion data buffer reduction for three-dimensional video coding |
US9544612B2 (en) * | 2012-10-04 | 2017-01-10 | Intel Corporation | Prediction parameter inheritance for 3D video coding |
US20150245063A1 (en) * | 2012-10-09 | 2015-08-27 | Nokia Technologies Oy | Method and apparatus for video coding |
WO2014062934A1 (en) * | 2012-10-19 | 2014-04-24 | Visa International Service Association | Digital broadcast methods using secure meshes and wavelets |
WO2014078068A1 (en) * | 2012-11-13 | 2014-05-22 | Intel Corporation | Content adaptive transform coding for next generation video |
US9143711B2 (en) | 2012-11-13 | 2015-09-22 | Pelican Imaging Corporation | Systems and methods for array camera focal plane control |
US10419778B2 (en) | 2013-01-04 | 2019-09-17 | Sony Corporation | JCTVC-L0227: VPS_extension with updates of profile-tier-level syntax structure |
US9648299B2 (en) | 2013-01-04 | 2017-05-09 | Qualcomm Incorporated | Indication of presence of texture and depth views in tracks for multiview coding plus depth |
US10219006B2 (en) * | 2013-01-04 | 2019-02-26 | Sony Corporation | JCTVC-L0226: VPS and VPS_extension updates |
US9462164B2 (en) | 2013-02-21 | 2016-10-04 | Pelican Imaging Corporation | Systems and methods for generating compressed light field representation data using captured light fields, array geometry, and parallax information |
US9374512B2 (en) | 2013-02-24 | 2016-06-21 | Pelican Imaging Corporation | Thin form factor computational array cameras and modular array cameras |
US9774789B2 (en) | 2013-03-08 | 2017-09-26 | Fotonation Cayman Limited | Systems and methods for high dynamic range imaging using array cameras |
US8866912B2 (en) | 2013-03-10 | 2014-10-21 | Pelican Imaging Corporation | System and methods for calibration of an array camera using a single captured image |
US9519972B2 (en) | 2013-03-13 | 2016-12-13 | Kip Peli P1 Lp | Systems and methods for synthesizing images from image data captured by an array camera using restricted depth of field depth maps in which depth estimation precision varies |
US9106784B2 (en) | 2013-03-13 | 2015-08-11 | Pelican Imaging Corporation | Systems and methods for controlling aliasing in images captured by an array camera for use in super-resolution processing |
US9888194B2 (en) | 2013-03-13 | 2018-02-06 | Fotonation Cayman Limited | Array camera architecture implementing quantum film image sensors |
WO2014164550A2 (en) | 2013-03-13 | 2014-10-09 | Pelican Imaging Corporation | System and methods for calibration of an array camera |
WO2014159779A1 (en) | 2013-03-14 | 2014-10-02 | Pelican Imaging Corporation | Systems and methods for reducing motion blur in images or video in ultra low light with array cameras |
WO2014153098A1 (en) | 2013-03-14 | 2014-09-25 | Pelican Imaging Corporation | Photmetric normalization in array cameras |
US9445003B1 (en) | 2013-03-15 | 2016-09-13 | Pelican Imaging Corporation | Systems and methods for synthesizing high resolution images using image deconvolution based on motion and depth information |
US9497429B2 (en) | 2013-03-15 | 2016-11-15 | Pelican Imaging Corporation | Extended color processing on pelican array cameras |
US9438888B2 (en) | 2013-03-15 | 2016-09-06 | Pelican Imaging Corporation | Systems and methods for stereo imaging with camera arrays |
US10122993B2 (en) | 2013-03-15 | 2018-11-06 | Fotonation Limited | Autofocus system for a conventional camera that uses depth information from an array camera |
US9516306B2 (en) | 2013-03-27 | 2016-12-06 | Qualcomm Incorporated | Depth coding modes signaling of depth data for 3D-HEVC |
US9369708B2 (en) * | 2013-03-27 | 2016-06-14 | Qualcomm Incorporated | Depth coding modes signaling of depth data for 3D-HEVC |
CN105103543B (zh) * | 2013-04-12 | 2017-10-27 | 寰发股份有限公司 | 兼容的深度依赖编码方法 |
US9497485B2 (en) | 2013-04-12 | 2016-11-15 | Intel Corporation | Coding unit size dependent simplified depth coding for 3D video coding |
US9571809B2 (en) | 2013-04-12 | 2017-02-14 | Intel Corporation | Simplified depth coding with modified intra-coding for 3D video coding |
US9483845B2 (en) | 2013-04-26 | 2016-11-01 | Nvidia Corporation | Extending prediction modes and performance of video codecs |
JP6361866B2 (ja) * | 2013-05-09 | 2018-07-25 | サン パテント トラスト | 画像処理方法および画像処理装置 |
US10080036B2 (en) | 2013-05-16 | 2018-09-18 | City University Of Hong Kong | Method and apparatus for depth video coding using endurable view synthesis distortion |
US10356430B2 (en) | 2013-07-12 | 2019-07-16 | Samsung Electronics Co., Ltd. | Interlayer video decoding method and apparatus using view synthesis prediction and interlayer video encoding method and apparatus using view synthesis prediction |
WO2015003383A1 (en) * | 2013-07-12 | 2015-01-15 | Mediatek Singapore Pte. Ltd. | Methods for inter-view motion prediction |
KR20150012206A (ko) | 2013-07-24 | 2015-02-03 | 한국전자통신연구원 | 3차원 콘텐츠의 부호화 방법 및 장치 |
US9906768B2 (en) * | 2013-07-26 | 2018-02-27 | Qualcomm Incorporated | Use of a depth condition in 3DV codec |
WO2015048694A2 (en) * | 2013-09-27 | 2015-04-02 | Pelican Imaging Corporation | Systems and methods for depth-assisted perspective distortion correction |
US9224187B2 (en) | 2013-09-27 | 2015-12-29 | Apple Inc. | Wavefront order to scan order synchronization |
FR3011429A1 (fr) * | 2013-09-27 | 2015-04-03 | Orange | Codage et decodage video par heritage d'un champ de vecteurs de mouvement |
US9336558B2 (en) | 2013-09-27 | 2016-05-10 | Apple Inc. | Wavefront encoding with parallel bit stream encoding |
CN104581159B (zh) * | 2013-10-18 | 2019-04-05 | 华为技术有限公司 | 视频编解码中的块分割方式确定方法及相关装置 |
US9185276B2 (en) | 2013-11-07 | 2015-11-10 | Pelican Imaging Corporation | Methods of manufacturing array camera modules incorporating independently aligned lens stacks |
US10119808B2 (en) | 2013-11-18 | 2018-11-06 | Fotonation Limited | Systems and methods for estimating depth from projected texture using camera arrays |
WO2015081279A1 (en) | 2013-11-26 | 2015-06-04 | Pelican Imaging Corporation | Array camera configurations incorporating multiple constituent array cameras |
CN112887737B (zh) * | 2014-01-03 | 2024-04-02 | 康普英国有限公司 | 用于hevc扩展处理的条件解析扩展语法 |
WO2015134996A1 (en) | 2014-03-07 | 2015-09-11 | Pelican Imaging Corporation | System and methods for depth regularization and semiautomatic interactive matting using rgb-d images |
WO2015135174A1 (en) * | 2014-03-13 | 2015-09-17 | Qualcomm Incorporated | Simplified disparity derived depth coding in three-dimensional (3d) video coding |
WO2015139203A1 (en) * | 2014-03-18 | 2015-09-24 | Mediatek Singapore Pte. Ltd. | Dlt signaling in 3d video coding |
US9716884B2 (en) * | 2014-03-20 | 2017-07-25 | Hfi Innovation Inc. | Method of signaling for mode selection in 3D and multi-view video coding |
US9402083B2 (en) * | 2014-04-24 | 2016-07-26 | Vidyo, Inc. | Signaling conformance points using profile space |
US20170048552A1 (en) * | 2014-05-05 | 2017-02-16 | Jicheng An | Method and apparatus for determining residue transform tree representation |
CN105519120B (zh) * | 2014-06-20 | 2019-03-22 | 寰发股份有限公司 | 用于视频数据的三维或多视图视频编码的分区模式编码方法 |
EP3201877B1 (en) | 2014-09-29 | 2018-12-19 | Fotonation Cayman Limited | Systems and methods for dynamic calibration of array cameras |
EP3178229A4 (en) * | 2014-09-30 | 2018-03-14 | HFI Innovation Inc. | Method of lookup table size reduction for depth modelling mode in depth coding |
CN105721852B (zh) * | 2014-11-24 | 2018-12-14 | 奥多比公司 | 用于确定深度细化图像捕获指令的方法、存储设备和系统 |
US9292926B1 (en) | 2014-11-24 | 2016-03-22 | Adobe Systems Incorporated | Depth map generation |
US20160277751A1 (en) * | 2015-03-19 | 2016-09-22 | Patrick J. Sweeney | Packaging/mux and unpackaging/demux of geometric data together with video data |
US9942474B2 (en) | 2015-04-17 | 2018-04-10 | Fotonation Cayman Limited | Systems and methods for performing high speed video capture and depth estimation using array cameras |
CN109417635B (zh) * | 2016-06-17 | 2021-03-30 | 华为技术有限公司 | 3d视频编码设备和方法 |
CN109588055A (zh) * | 2016-07-29 | 2019-04-05 | 索尼公司 | 图像处理设备和图像处理方法 |
CN107770511A (zh) * | 2016-08-15 | 2018-03-06 | 中国移动通信集团山东有限公司 | 一种多视点视频的编解码方法、装置和相关设备 |
CN108616748A (zh) * | 2017-01-06 | 2018-10-02 | 科通环宇(北京)科技有限公司 | 一种码流及其封装方法、解码方法及装置 |
DE112018000795T5 (de) * | 2017-02-13 | 2019-12-12 | Sony Corporation | Bildverarbeitungsvorrichtung und bildverarbeitungsverfahren |
US10652579B2 (en) * | 2017-06-12 | 2020-05-12 | Dolby Laboratories Licensing Corporation | Coding multiview video |
US10482618B2 (en) | 2017-08-21 | 2019-11-19 | Fotonation Limited | Systems and methods for hybrid depth regularization |
US10735826B2 (en) * | 2017-12-20 | 2020-08-04 | Intel Corporation | Free dimension format and codec |
US11010955B2 (en) | 2018-06-27 | 2021-05-18 | Sony Group Corporation | Point cloud mapping |
GB201817780D0 (en) * | 2018-10-31 | 2018-12-19 | V Nova Int Ltd | Methods,apparatuses, computer programs and computer-readable media for processing configuration data |
KR20200095408A (ko) * | 2019-01-31 | 2020-08-10 | 한국전자통신연구원 | 이머시브 비디오 포맷팅 방법 및 장치 |
JP7161736B2 (ja) * | 2019-03-14 | 2022-10-27 | 日本電信電話株式会社 | 符号化方法、符号化装置及びプログラム |
MX2022003020A (es) | 2019-09-17 | 2022-06-14 | Boston Polarimetrics Inc | Sistemas y metodos para modelado de superficie usando se?ales de polarizacion. |
KR20220063272A (ko) * | 2019-09-24 | 2022-05-17 | 알리바바 그룹 홀딩 리미티드 | 비디오 코딩을 위한 움직임 보상 방법 |
KR20230004423A (ko) | 2019-10-07 | 2023-01-06 | 보스턴 폴라리메트릭스, 인크. | 편광을 사용한 표면 법선 감지 시스템 및 방법 |
WO2021108002A1 (en) | 2019-11-30 | 2021-06-03 | Boston Polarimetrics, Inc. | Systems and methods for transparent object segmentation using polarization cues |
US11195303B2 (en) | 2020-01-29 | 2021-12-07 | Boston Polarimetrics, Inc. | Systems and methods for characterizing object pose detection and measurement systems |
KR20220133973A (ko) | 2020-01-30 | 2022-10-05 | 인트린식 이노베이션 엘엘씨 | 편광된 이미지들을 포함하는 상이한 이미징 양식들에 대해 통계적 모델들을 훈련하기 위해 데이터를 합성하기 위한 시스템들 및 방법들 |
CN115606183A (zh) | 2020-04-07 | 2023-01-13 | 抖音视界有限公司(Cn) | 参考图片环绕的剪裁操作 |
CN115668917A (zh) | 2020-04-09 | 2023-01-31 | 抖音视界有限公司 | 视频编解码中的去块信令通知 |
WO2021204251A1 (en) | 2020-04-10 | 2021-10-14 | Beijing Bytedance Network Technology Co., Ltd. | Use of header syntax elements and adaptation parameter set |
WO2021209061A1 (en) | 2020-04-17 | 2021-10-21 | Beijing Bytedance Network Technology Co., Ltd. | Presence of adaptation parameter set units |
KR20230002447A (ko) | 2020-04-26 | 2023-01-05 | 바이트댄스 아이엔씨 | 비디오 코딩 신택스 요소의 조건적 시그널링 |
WO2021243088A1 (en) | 2020-05-27 | 2021-12-02 | Boston Polarimetrics, Inc. | Multi-aperture polarization optical systems using beam splitters |
CN114071116A (zh) * | 2020-07-31 | 2022-02-18 | 阿里巴巴集团控股有限公司 | 视频处理方法、装置、电子设备及存储介质 |
US12020455B2 (en) | 2021-03-10 | 2024-06-25 | Intrinsic Innovation Llc | Systems and methods for high dynamic range image reconstruction |
US12069227B2 (en) | 2021-03-10 | 2024-08-20 | Intrinsic Innovation Llc | Multi-modal and multi-spectral stereo camera arrays |
US11290658B1 (en) | 2021-04-15 | 2022-03-29 | Boston Polarimetrics, Inc. | Systems and methods for camera exposure control |
US11954886B2 (en) | 2021-04-15 | 2024-04-09 | Intrinsic Innovation Llc | Systems and methods for six-degree of freedom pose estimation of deformable objects |
US12067746B2 (en) | 2021-05-07 | 2024-08-20 | Intrinsic Innovation Llc | Systems and methods for using computer vision to pick up small objects |
US11689813B2 (en) | 2021-07-01 | 2023-06-27 | Intrinsic Innovation Llc | Systems and methods for high dynamic range imaging using crossed polarizers |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7154500B2 (en) | 2004-04-20 | 2006-12-26 | The Chinese University Of Hong Kong | Block-based fragment filtration with feasible multi-GPU acceleration for real-time volume rendering on conventional personal computer |
US8983175B2 (en) | 2005-08-17 | 2015-03-17 | Entropic Communications, Inc. | Video processing method and device for depth extraction |
KR100873636B1 (ko) | 2005-11-14 | 2008-12-12 | 삼성전자주식회사 | 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치 |
US7903737B2 (en) * | 2005-11-30 | 2011-03-08 | Mitsubishi Electric Research Laboratories, Inc. | Method and system for randomly accessing multiview videos with known prediction dependency |
US8767836B2 (en) * | 2006-03-27 | 2014-07-01 | Nokia Corporation | Picture delimiter in scalable video coding |
EP1933564A1 (en) * | 2006-12-14 | 2008-06-18 | Thomson Licensing | Method and apparatus for encoding and/or decoding video data using adaptive prediction order for spatial and bit depth prediction |
WO2008085876A2 (en) | 2007-01-04 | 2008-07-17 | Thomson Licensing | Method and apparatus for video error concealment using high level syntax reference views in multi-view coded video |
JP5156088B2 (ja) | 2007-03-23 | 2013-03-06 | エルジー エレクトロニクス インコーポレイティド | ビデオ信号のデコーディング/エンコーディング方法及び装置 |
JP4706068B2 (ja) | 2007-04-13 | 2011-06-22 | 国立大学法人名古屋大学 | 画像情報処理方法及び画像情報処理システム |
CN101690220B (zh) | 2007-04-25 | 2013-09-25 | Lg电子株式会社 | 用于解码/编码视频信号的方法和装置 |
WO2008140190A1 (en) | 2007-05-14 | 2008-11-20 | Samsung Electronics Co, . Ltd. | Method and apparatus for encoding and decoding multi-view image |
US8265144B2 (en) * | 2007-06-30 | 2012-09-11 | Microsoft Corporation | Innovations in video decoder implementations |
WO2009091383A2 (en) | 2008-01-11 | 2009-07-23 | Thomson Licensing | Video and depth coding |
US9973739B2 (en) | 2008-10-17 | 2018-05-15 | Nokia Technologies Oy | Sharing of motion vector in 3D video coding |
KR101260613B1 (ko) | 2008-12-26 | 2013-05-03 | 닛뽕빅터 가부시키가이샤 | 화상 부호화 장치, 화상 부호화 방법 및 그 프로그램 및 화상 복호화 장치, 화상 복호화 방법 및 그 프로그램 |
US9036714B2 (en) | 2009-01-26 | 2015-05-19 | Thomson Licensing | Frame packing for video coding |
US8798158B2 (en) | 2009-03-11 | 2014-08-05 | Industry Academic Cooperation Foundation Of Kyung Hee University | Method and apparatus for block-based depth map coding and 3D video coding method using the same |
WO2010108024A1 (en) | 2009-03-20 | 2010-09-23 | Digimarc Coporation | Improvements to 3d data representation, conveyance, and use |
US20120050475A1 (en) | 2009-05-01 | 2012-03-01 | Dong Tian | Reference picture lists for 3dv |
US9417700B2 (en) | 2009-05-21 | 2016-08-16 | Edge3 Technologies | Gesture recognition systems and related methods |
US10198792B2 (en) | 2009-10-14 | 2019-02-05 | Dolby Laboratories Licensing Corporation | Method and devices for depth map processing |
US9451233B2 (en) | 2010-04-14 | 2016-09-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and arrangements for 3D scene representation |
US8773427B2 (en) | 2010-12-22 | 2014-07-08 | Sony Corporation | Method and apparatus for multiview image generation using depth map information |
US20120236934A1 (en) | 2011-03-18 | 2012-09-20 | Qualcomm Incorporated | Signaling of multiview video plus depth content with a block-level 4-component structure |
-
2012
- 2012-03-07 US US13/414,515 patent/US9565449B2/en active Active
- 2012-03-08 ES ES12708492.9T patent/ES2692721T3/es active Active
- 2012-03-08 EP EP12708492.9A patent/EP2684372B1/en active Active
- 2012-03-08 KR KR1020137026625A patent/KR101521373B1/ko active IP Right Grant
- 2012-03-08 HU HUE12708492A patent/HUE040109T2/hu unknown
- 2012-03-08 WO PCT/US2012/028252 patent/WO2012122364A1/en active Search and Examination
- 2012-03-08 CN CN201280018874.9A patent/CN103493483B/zh active Active
- 2012-03-08 JP JP2013557859A patent/JP5698391B2/ja active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016056779A1 (ko) * | 2014-10-08 | 2016-04-14 | 엘지전자 주식회사 | 3d 비디오 코딩에서 카메라 파라미터 처리 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
ES2692721T3 (es) | 2018-12-04 |
EP2684372A1 (en) | 2014-01-15 |
CN103493483A (zh) | 2014-01-01 |
CN103493483B (zh) | 2016-08-31 |
WO2012122364A1 (en) | 2012-09-13 |
US20120229602A1 (en) | 2012-09-13 |
JP2014514799A (ja) | 2014-06-19 |
HUE040109T2 (hu) | 2019-02-28 |
KR101521373B1 (ko) | 2015-05-18 |
EP2684372B1 (en) | 2018-08-01 |
JP5698391B2 (ja) | 2015-04-08 |
US9565449B2 (en) | 2017-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101521373B1 (ko) | 코딩 멀티뷰 비디오 플러스 심도 콘텐츠 | |
KR101733852B1 (ko) | 3차원의 비디오 코덱들에서 심도 맵들에 대한 슬라이스 헤더 예측 | |
JP6022652B2 (ja) | スライスヘッダ予測のためのスライスヘッダ三次元映像拡張 | |
KR101617970B1 (ko) | 심도 범위 변동을 갖는 모션 심도 맵들의 코딩 | |
US20120236934A1 (en) | Signaling of multiview video plus depth content with a block-level 4-component structure | |
US20130271565A1 (en) | View synthesis based on asymmetric texture and depth resolutions | |
TWI566589B (zh) | 三維視訊之視圖合成 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180329 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190327 Year of fee payment: 5 |