KR102187729B1 - 3d 비디오에 대한 인터-뷰 예측된 모션 벡터 - Google Patents

3d 비디오에 대한 인터-뷰 예측된 모션 벡터 Download PDF

Info

Publication number
KR102187729B1
KR102187729B1 KR1020157008745A KR20157008745A KR102187729B1 KR 102187729 B1 KR102187729 B1 KR 102187729B1 KR 1020157008745 A KR1020157008745 A KR 1020157008745A KR 20157008745 A KR20157008745 A KR 20157008745A KR 102187729 B1 KR102187729 B1 KR 102187729B1
Authority
KR
South Korea
Prior art keywords
motion information
candidate
block
motion
video
Prior art date
Application number
KR1020157008745A
Other languages
English (en)
Other versions
KR20150065706A (ko
Inventor
리 장
잉 천
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20150065706A publication Critical patent/KR20150065706A/ko
Application granted granted Critical
Publication of KR102187729B1 publication Critical patent/KR102187729B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

비디오 코더는, 깊이 뷰 컴포넌트에서의 깊이 블록에 대해, 디코딩된 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록의 모션 정보를 포함하는 모션 정보 후보를 도출하고, 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 모션 정보 후보를 추가하며, 후보 리스트에서의 후보에 기초하여 현재의 블록을 코딩한다.

Description

3D 비디오에 대한 인터-뷰 예측된 모션 벡터{INTER-VIEW PREDICTED MOTION VECTOR FOR 3D VIDEO}
본 출원은 2012년 10월 4일자로 출원된 미국 가출원 제61/709,912호의 이익을 주장하며, 그 전체 내용은 본 명세서에 참조에 의해 통합된다.
본 개시물은 비디오 코딩에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 휴대 정보 단말기들 (PDA들), 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, e-북 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 라디오 전화기들, 소위 "스마트 폰들", 화상 회의 디바이스들, 비디오 스트리밍 디바이스들 등을 포함하는 다양한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, 어드밴스드 비디오 코딩 (AVC) 에 의해 정의된 표준들, 현재 개발중인 고효율 비디오 코딩 (High Efficiency Video Coding; HEVC) 표준, 및 이러한 표준들의 확장들에 설명된 것들과 같은 비디오 압축 기법들을 구현한다. 비디오 디바이스들은 이러한 비디오 압축 기법들을 구현함으로써 디지털 비디오 정보를 보다 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 압축 기법들은 비디오 시퀀스들에 내재하는 리던던시 (redundancy) 를 감소 또는 제거하기 위해 공간 (인트라-픽처) 예측 및/또는 시간 (인터-픽처) 예측을 수행한다. 블록 기반 비디오 코딩을 위해, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 부분) 는 비디오 블록들로 파티셔닝될 수도 있고, 비디오 블록들은 또한 트리블록들, 코딩 유닛들 (CU들) 및/또는 코딩 노드들로 지칭될 수도 있다. 픽처의 인트라-코딩된 (I) 슬라이스에서의 비디오 블록들은 동일한 픽처 내의 이웃하는 블록들에서의 참조 샘플들에 대하여 공간 예측을 이용하여 인코딩된다. 픽처의 인터-코딩된 (P 또는 B) 슬라이스에서의 비디오 블록들은 동일한 픽처 내의 이웃하는 블록들에서의 참조 샘플들에 대하여 공간 예측을 이용하고 다른 참조 픽처들에서의 참조 샘플들에 대하여 시간 예측을 이용할 수도 있다. 픽처들은 프레임들로 지칭될 수도 있고, 참조 픽처들은 참조 프레임들로 지칭될 수도 있다.
공간 또는 시간 예측은 코딩될 블록에 대한 예측 블록을 초래한다. 잔차 데이터 (residual data) 는 코딩될 원래의 블록과 예측 블록 간의 픽셀 차이들을 표현한다. 인터-코딩된 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터, 및 코딩된 블록과 예측 블록 간의 차이를 표시하는 잔차 데이터에 따라 인코딩된다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가 압축을 위해, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어, 후에 양자화될 수도 있는 잔차 변환 계수들을 초래할 수도 있다. 처음에는 2 차원 어레이로 배열된, 양자화된 변환 계수들은, 변환 계수들의 일차원 벡터를 생성하기 위하여 스캔될 수도 있고, 엔트로피 코딩이 더 많은 압축을 달성하기 위해 적용될 수도 있다.
일반적으로, 본 개시물은 멀티뷰 및 3D 비디오 코딩에서 모션 예측의 코딩 효율을 개선하기 위한 기법들을 설명한다.
하나의 예에서, 3D 비디오 데이터를 디코딩하는 방법은, 깊이 뷰에서의 깊이 블록에 대해, 모션 정보 후보를 도출하는 단계로서, 모션 정보 후보는 디코딩된 텍스처 뷰에서의 대응하는 텍스처 블록의 모션 정보를 포함하는, 상기 모션 정보 후보를 도출하는 단계; 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 모션 정보 후보를 추가하는 단계로서, 후보 리스트에서의 각각의 후보는 연관된 인덱스를 갖는, 상기 모션 정보 후보를 추가하는 단계; 및 후보 리스트에서의 후보에 기초하여 현재의 블록을 디코딩하는 단계를 포함한다.
다른 예에서, 3D 비디오 데이터를 인코딩하는 방법은, 깊이 뷰 컴포넌트에서의 깊이 블록에 대해, 모션 정보 후보를 도출하는 단계로서, 모션 정보 후보는 디코딩된 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록의 모션 정보를 포함하는, 상기 모션 정보 후보를 도출하는 단계; 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 모션 정보 후보를 추가하는 단계; 및 후보 리스트에서의 후보에 기초하여 현재의 블록을 인코딩하는 단계를 포함한다.
다른 예에서, 비디오 데이터를 코딩하는 디바이스는, 깊이 뷰 컴포넌트에서의 깊이 블록에 대해, 모션 정보 후보를 도출하는 것으로서, 모션 정보 후보는 디코딩된 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록의 모션 정보를 포함하는, 상기 모션 정보 후보를 도출하고; 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 모션 정보 후보를 추가하며; 후보 리스트에서의 후보에 기초하여 현재의 블록을 디코딩하도록 구성된 비디오 디코더를 포함한다.
다른 예에서, 비디오 데이터를 코딩하는 디바이스는, 깊이 뷰 컴포넌트에서의 깊이 블록에 대해, 모션 정보 후보를 도출하는 것으로서, 모션 정보 후보는 디코딩된 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록의 모션 정보를 포함하는, 상기 모션 정보 후보를 도출하고; 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 모션 정보 후보를 추가하며; 후보 리스트에서의 후보에 기초하여 현재의 블록을 인코딩하도록 구성된 비디오 인코더를 포함한다.
다른 예에서, 컴퓨터 판독가능 저장 매체는, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 깊이 뷰 컴포넌트에서의 깊이 블록에 대해, 모션 정보 후보를 도출하는 것으로서, 모션 정보 후보는 디코딩된 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록의 모션 정보를 포함하는, 상기 모션 정보 후보를 도출하게 하고; 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 모션 정보 후보를 추가하게 하며; 후보 리스트에서의 후보에 기초하여 현재의 블록을 디코딩하게 하는 명령들을 저장한다.
다른 예에서, 3D 비디오 데이터를 인코딩하는 장치는 깊이 뷰 컴포넌트에서의 깊이 블록에 대해 모션 정보 후보를 도출하는 수단으로서, 모션 정보 후보는 디코딩된 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록의 모션 정보를 포함하는, 상기 모션 정보 후보를 도출하는 수단; 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 모션 정보 후보를 추가하는 수단; 및 후보 리스트에서의 후보에 기초하여 현재의 블록을 인코딩하는 수단을 포함한다.
하나 이상의 예들의 상세들은 첨부 도면들 및 이하의 설명에 기재된다. 다른 특징들, 목적들, 및 이점들은 설명 및 도면들로부터, 그리고 청구항들로부터 명백해질 것이다.
도 1 은 본 개시물의 인터-예측 기법들을 활용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템을 예시하는 블록도이다.
도 2 는 병합 모드 및 AMVP 모드 양자에서 이용될 수도 있는 후보 블록들의 일 예의 세트를 도시한다.
도 3 은 본 개시물의 인터-예측 기법들을 구현할 수도 있는 비디오 인코더의 일 예를 예시하는 블록도이다.
도 4 는 본 개시물의 인터-예측 기법들을 구현할 수도 있는 비디오 디코더의 일 예를 예시하는 블록도이다.
도 5 는 본 개시물의 기법들에 따른 일 예의 인코딩 프로세스를 도시하는 플로우차트이다.
도 6 은 본 개시물의 기법들에 따른 일 예의 디코딩 프로세스를 도시하는 플로우차트이다.
본 개시물은 새롭게 부상하는 3 차원, 고효율 비디오 코딩 (3D-HEVC) 표준에 포함하는, 멀티뷰 비디오 코딩에서의 모션 파라미터들의 시그널링에 관한 기법들을 설명한다. 새롭게 부상하는 3D-HEVC 표준은 기본 HEVC 코딩 기법들의 대부분을 3D 비디오 데이터로 확장하는 3D 비디오 코딩 표준이다. 본 개시물의 기법들은 때로는 HEVC 및 3D-HEVC 에 대한 특정 참조로 설명될 수도 있고 때로는 HEVC 및 3D-HEVC 용어들을 사용할 수도 있지만, 본 개시물의 기법들은 임의의 특정 코딩 표준에 제한되지는 않는다는 것이 이해되어야 한다. 본 개시물의 기법들은 잠재적으로는 임의의 멀티뷰 또는 3D 비디오 코딩 표준에 적용가능할 수도 있다.
2D 비디오 및 3D 비디오 양자에 대한 비디오 압축 기법들은 비디오 데이터의 이미 코딩된 블록에 기초하여 비디오 데이터의 현재의 블록을 예측하는 것을 포함할 수 있다. 본 개시물에서, 용어 현재의 블록은, 이미 코딩되는 비디오 블록들 또는 앞으로 코딩될 비디오 블록들이 아니라, 현재 코딩 (예를 들어, 인코딩 또는 디코딩) 되고 있는 비디오 데이터의 블록을 일반적으로 지칭한다. 인트라 예측 모드에서, 현재의 블록은 현재의 블록과 동일한 픽처에서의 이미 코딩된 블록에 기초하여 예측되는 한편, 인터 예측 모드에서, 현재의 블록은 상이한 픽처에서의 이미 코딩된 블록에 기초하여 예측된다. 상이한 픽처는 현재의 블록과 동일한 뷰와는 상이한 시간 인스턴스의 픽처일 수도 있고, 또는 동일한 시간 인스턴스로부터의 것이지만 상이한 뷰 또는 뷰 컴포넌트로부터의 픽처일 수도 있다.
비디오 디코더가 주어진 비디오 블록에 대해 인터 예측을 수행할 때, 모션 파라미터들이 인코딩된 비디오 비트스트림으로 시그널링된다. 모션 파라미터들은, 어느 블록에서의 픽처를 현재의 블록에 대한 예측 블록으로서 이용할지를 비디오 디코더가 결정할 수 있도록, 예를 들어 하나 이상의 모션 벡터들, 하나 이상의 참조 픽처 인덱스들, 및 예측 방향을 포함한다. 비디오 코더는 인코딩된 비트스트림으로 모션 파라미터들을 시그널링하기 위해 다양한 모드들을 이용할 수도 있다. 인터-예측 코딩을 구현하는데 필요한 비트들의 수를 감소시키기 위하여, 그 모드들 중 일부는 모션 파라미터들의 명시적 시그널링 대신에 모션 파라미터들의 예측을 활용할 수도 있다.
전개중인 HEVC 표준에서, 모션 파라미터들의 예측을 위한 다양한 모드들이 존재하며, 그 중 하나가 병합 모드 (merge mode) 로 지칭된다. 병합 모드에서, 비디오 코더는 공간 이웃하는 블록들 및 시간 이웃하는 블록들을 포함하고, 및 3D-HEVC 의 경우에는 인터-뷰 이웃하는 블록들을 또한 포함하는, 이웃하는 블록들로부터의 후보들을 이용하여 모션 파라미터들 (예를 들어, 참조 픽처들 및 모션 벡터들) 의 후보 리스트를 구성한다. 선정된 모션 파라미터들은 후보 리스트로부터의 선택된 후보의 인덱스를 송신함으로써 비디오 인코더로부터 비디오 디코더로 시그널링된다. 비디오 디코더에서, 일단 인덱스가 디코딩되면, 선택된 후보의 대응하는 블록의 모든 모션 파라미터들은 인덱스가 대응하는 병합 후보로부터 인계된다. 비디오 인코더 및 비디오 디코더는 이미 코딩된 블록들에 기초하여 동일한 후보 리스트들을 구성하도록 구성된다. 따라서, 그 인덱스에 기초하여, 비디오 디코더는 비디오 인코더에 의해 선택된 후보의 모션 파라미터들을 식별할 수 있다. HEVC 에서의 스킵 모드의 경우, 동일한 병합 후보 리스트가 병합 모드에 대한 것으로서 생성된다. 그러나, 스킵 모드에서는, 어떠한 잔차 데이터도 비디오 인코더로부터 비디오 디코더로 시그널링되지 않는다. 본 개시물에서, 병합 모드에 대하여 설명된 모든 기법들은 또한 스킵 모드에도 적용될 수도 있다.
AMVP (advanced motion vector prediction) 모드는, 비디오 인코더 및 비디오 디코더가 이웃하는 후보 블록들의 모션 정보 (예를 들어, 참조 인덱스들 및 모션 벡터들) 를 평가하고 평가된 모션 정보에 기초하여 현재의 비디오 블록에 대한 후보 리스트를 구성하기 위해 공통의 미리 정의된 프로세스를 구현한다는 점에서 병합 모드와 유사하다. 그러나, AMVP 에 대한 미리 정의된 리스트 구성 프로세스는 병합 모드에 대한 것과는 상이할 수 있다. 추가적으로, AMVP 의 경우, 현재의 비디오 블록은 후보 모션 정보 모두를 인계하지 않는다. 오히려, AMVP 에서, 비디오 디코더는 모션 벡터 예측변수로서, 필요하다면 스케일링한 후에, 선택된 후보 블록으로부터의 모션 벡터를 이용한다. 비디오 디코더는 또한, 참조 픽처 인덱스들, 모션 벡터 차이 정보는 물론 필요하다면 예측 방향도 수신하며, 따라서 모션 벡터 예측변수 및 모션 벡터 차이를 이용하여, 비디오 디코더는 현재의 비디오 블록을 코딩하는데 이용할 새로운 모션 벡터(들)를 결정한다. 따라서, AMVP 는 병합 모드에 비해 감소된 비트 스트림 효율의 희생으로, 비디오 블록에 대한 더 많은 모션 정보를 명시적으로 시그널링함으로써, 비디오 블록에 대한 더 큰 비디오 코딩 충실도 (fidelity) 를 제공할 수도 있다.
MPI (motion parameter inheritance) 는 병합 모드와 합께 이용될 수도 있는 3D-HEVC 에서의 깊이 뷰 컴포넌트에 대한 코딩 툴이다. MPI 는 예를 들어, 플래그 (예를 들어, use_mvi_flag[i], 여기서 i 는 특정 깊이 뷰를 식별한다) 를 이용한 비디오 파라미터 세트 (VPS) 레벨에서의 특정 깊이 뷰 컴포넌트에 대해 인에이블될 수도 있다. MPI 가 인에이블 (예를 들어, "use_mvi_flag[i]" 플래그가 1 로 설정) 될 때, 연관된 텍스처 뷰 컴포넌트에서의 공동배치된 (co-located) 블록의 모션 정보는 깊이 뷰의 시퀀스에서의 적어도 하나의 현재의 블록을 코딩하는데 이용될 수 있으며, 여기서 시퀀스는 일반적으로 하나 이상의 픽처들을 지칭하며 픽처들의 그룹에 대응할 수도 있다. MPI 가 깊이 뷰에서의 블록 (예를 들어, 예측 유닛 (PU)) 에 대해 이용되는지 여부를 시그널링하기 위해, 플래그 ("bMPIUsed" 로 나타내짐) 가 시퀀스의 각각의 블록에 대한 인코딩된 비트스트림에 포함된다.
MPI 가 현재의 깊이 블록에 대해 인에이블 (즉, bMPIUsed 가 1 과 동일하게 설정) 될 때, 현재의 깊이 블록은 텍스처 뷰 컴포넌트에서의 공동배치된 블록의 모션 벡터, 참조 인덱스, 및 연관된 코딩 구조 (예를 들어, 스플릿 정보 및/또는 파티션 정보) 를 인계한다. 따라서, 이 플래그는 본질적으로 0 과 동일하게 설정된 인덱스를 가진 특수한 병합 후보로서 취급 (treat) 된다. 본 개시물은 일반적으로, 텍스처 뷰 컴포넌트에서의 대응하는 블록의 모션 정보를 포함하는, 후보, 이를 테면 병합 후보 또는 AMVP 후보를 지칭하기 위해 용어 MPI 후보를 사용할 것이다. MPI 에 대한 일부 제안들에서, MPI 후보가 선택될 때, 현재의 블록은 모션 정보 (예를 들어, 모션 벡터들, 참조 인덱스들) 는 물론 코딩 구조들도 인계한다. 다른 병합 모드 및 AMVP 후보들의 경우, 코딩 구조는 통상 인계되지 않는다. MPI 후보가 리스트에 포함될 때, 다른 병합 후보들 (예를 들어, 공간/시간/결합된 양-예측 (bi-predictive)/제로 모션 벡터 병합 후보들) 의 인덱스들은 1 씩 증가되고, 병합 리스트의 최대 사이즈가 1 씩 (예를 들어, 5 에서 6 으로) 증가된다. 본 개시물에서, 결합된 양-예측 후보들, 제로 후보들, 및 다른 인공적으로 생성된 후보들은 가상 후보 (virtual candidate) 들로 통칭될 수도 있다. 현재의 블록이 MPI 후보가 선택될 때 텍스처로부터의 CU/PU 구조들 및 모션 데이터를 다시 이용함에 따라, CU/PU 코딩 구조들에 대한 추가적인 버퍼들이 MPI 후보를 위해 요구될 수도 있다.
3D-HEVC 에서의 MPI 의 일부 구현들은, 일부 비디오 시퀀스들에 대해, 다른 병합 후보들이 MPI 후보보다 더 빈번하게 이용될 수도 있다는 사실로 인해, 전반적인 코딩 효율을 감소시킬 수도 있는 다른 병합 후보들 전부보다 MPI 후보가 더 높은 우선순위를 갖는다는 것을 항상 가정한다. 더욱이, MPI 는 바로 기본 뷰에서 공동배치된 블록들의 모션 정보를 다시 이용하는 한편, 일부 경우들에서는, 예를 들어 AMVP 모드의 일부로서, 현재의 모션 정보의 예측변수로서 공동배치된 블록의 모션 정보를 대신 이용하는 것이 유익할 수도 있다.
본 개시물은 3D-HEVC 에서의 이용을 위해 MPI 에 관한 기법들을 제안한다. 본 개시물의 기법들에 따르면, MPI 가 이용되는 것을 표시하는 플래그를 송신하고, 0 과 동일한 인덱스를 갖기 위해, 코딩 구조 정보를 포함하는, MPI 후보를 도출하는 대신에, 비디오 코더는 텍스처 뷰에서의 공동배치된 블록의 모션 정보를, 병합 리스트에서의 다른 후보들과 유사하게 시그널링된 병합 인덱스를 갖고 단지 인계된 모션 정보만을 가진 병합 후보로서 취급할 수도 있다. 따라서, 본 개시물의 기법들에 따르면, MPI 후보는 병합 리스트 어디에나 포함될 수도 있다. 추가적으로, 본 개시물의 기법들에 따르면, MPI 후보는 모션 정보와 코딩 구조 정보 양자 대신에 단지 모션 정보만을 포함할 수도 있다. 깊이 뷰 블록 및 대응하는 텍스처 뷰 블록이 상이한 코딩 구조들을 갖는 경우들에서, 이용될 텍스처 블록은 예를 들어 공동배치된 픽셀에 기초하여 식별될 수도 있다. 하나의 예로서, 깊이 뷰 블록의 중심 픽셀에 대하여 공동배치되는 텍스처 뷰 컴포넌트에서의 픽셀이 식별될 수도 있고, 그 픽셀을 포함하는 텍스처 블록이 깊이 블록들 대응 텍스처 블록으로서 이용될 수도 있다. 중심 픽셀 이외의 픽셀들은 대응하는 텍스처 뷰 블록을 결정하기 위해 유사하게 이용될 수도 있다.
MPI 후보는 예를 들어, 0 보다 더 큰 인덱스를 갖도록 병합 후보 리스트에 추가될 수도 있으며, 인덱스는 1 내지 5 중 임의의 것과 동일하다. 대안으로, MPI 후보는 시간 병합 후보가 후보 리스트에 추가되기 직전에 추가되고, 제 1 공간 후보가 병합 후보 리스트에 추가된 후에 추가되고, N 개의 공간 후보들이 검사된 후 추가될 수 있으며, 여기서 N 은 0, 1, 2 및 3 과 동일하다. 일부 구현들에서, MPI 후보가 병합 후보로서 취급된다면, 대응하는 인덱스는 하나의 슬라이스, 하나의 픽처 등 내에서 적응적으로 변경될 수 있다. 일반적으로 말하면, 인코더 및 디코더가 동일한 후보 리스트를 구성하도록 구성되는 한은, MPI 후보는 임의의 다양한 리스트 구성 방법들을 이용하여 후보 리스트의 임의의 포지션에 추가될 수 있다.
본 개시물의 다른 양태에 따르면, 텍스처 뷰에서의 공동배치된 블록의 모션 정보는 AMVP 모드에 대한 추가적인 후보로서 이용될 수 있다. MPI 후보가 AMVP 후보로서 취급될 때, MPI 후보는 예를 들어, 기존의 후보, 이를 테면 시간 AMVP 후보를 대신할 수도 있고, 또는 대안으로, AMVP 후보 리스트 사이즈가 1 씩 증가될 수도 있다. MPI 후보의 인덱스는, AMVP 후보 리스트에서 이용된다면, AMVP 후보 리스트가 N 개의 후보들을 갖는 것을 가정하여, 0 내지 N-1 중 임의의 값일 수도 있다.
이전에 제안된 MPI 구현들에 대하여, MPI 후보가 0 의 인덱스를 가진 특수화된 병합 후보라고 하는 것은, 설명하기 위한 것으로 의도되며, 비디오 인코더 또는 비디오 디코더에 의해 수행된 프로세스들을 실제로 반영할 수도 있고 또는 반영하지 않을 수도 있다. 예를 들어, 비디오 인코더 또는 디코더가 MPI 후보를 이용하여 블록을 코딩하는 경우들에서, 비디오 인코더 또는 디코더는 MPI 후보 이외의 병합 후보가 선택될 때 수행되는 풀 리스트 구성 프로세스를 수행하지 않을 수도 있다. 대신에, 비디오 인코더 또는 디코더는 완료 이전에 리스트 구성 프로세스를 종료할 수도 있고 또는 임의의 리스트 구성을 조금도 수행하지 않을 수도 있다. 반대로, 본 개시물의 기법들을 수행하는 비디오 코더는, 병합 리스트에서의 MPI 후보를 포함하며, 그에 따라 MPI 후보를 병합 리스트 구성 프로세스의 일부로서 결정한다.
도 1 은 본 개시물의 기법들을 활용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록도이다. 도 1 에 도시한 바와 같이, 시스템 (10) 은 목적지 디바이스 (14) 에 의해 추후에 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스 (12) 를 포함한다. 특히, 소스 디바이스 (12) 는 그 비디오 데이터를 컴퓨터 판독가능 매체 (16) 를 통해 목적지 디바이스 (14) 에 제공한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크톱 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 전화기 핸드셋들, 이를 테면 소위 "스마트" 폰들, 소위 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함하는, 다양한 디바이스들 중 임의의 것을 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신을 위해 갖춰져 있을 수도 있다.
목적지 디바이스 (14) 는 컴퓨터 판독가능 매체 (16) 를 통해 디코딩될 인코딩된 비디오 데이터를 수신할 수도 있다. 컴퓨터 판독가능 매체 (16) 는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시키는 것이 가능한 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 하나의 예에서, 컴퓨터 판독가능 매체 (16) 는 소스 디바이스 (12) 가 인코딩된 비디오 데이터를 직접 목적지 디바이스 (14) 에 실시간으로 송신하는 것을 가능하게 하기 위한 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 통신 표준, 이를 테면 무선 통신 프로토콜에 따라 변조되고, 목적지 디바이스 (14) 에 송신될 수도 있다. 통신 매체는 임의의 무선 또는 유선 통신 매체, 이를 테면 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들을 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 일부를 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
일부 예들에서, 인코딩된 데이터는 출력 인터페이스 (22) 로부터 저장 디바이스로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는 하드 드라이브, 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 불휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산된 또는 로컬로 액세스된 데이터 저장 매체들 중 임의의 것을 포함할 수도 있다. 추가 예에서, 저장 디바이스는 소스 디바이스 (12) 에 의해 생성되는 인코딩된 비디오를 저장할 수도 있는 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해 저장 디바이스로부터의 저장된 비디오 데이터에 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 에 송신가능한 임의의 타입의 서버일 수도 있다. 예의 파일 서버들은 웹 서버 (예를 들어, 웹사이트용), FTP 서버, 네트워크 연결 스토리지 (network attached storage; NAS) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인터넷 접속을 포함하는 임의의 표준 데이터 접속을 통하여 인코딩된 비디오 데이터에 액세스할 수도 있다. 이것은 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하기 적합한 무선 채널 (예를 들어, Wi-Fi 접속), 유선 접속 (예를 들어, DSL, 케이블 모뎀 등), 또는 양자의 조합을 포함할 수도 있다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수도 있다.
본 개시물의 기법들은 무선 애플리케이션들 또는 세팅들에 반드시 제한되는 것은 아니다. 이 기법들은 공중 경유 (over-the-air) 텔리비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 인터넷 스트리밍 비디오 송신들, 이를 테면 DASH (dynamic adaptive streaming over HTTP), 데이터 저장 매체 상으로 인코딩되는 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들과 같은 다양한 멀티미디어 애플리케이션들 중 임의의 것을 지원하여 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 화상 통화와 같은 애플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 깊이 추정 유닛 (19), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 깊이 이미지 기반 렌더링 (DIBR) 유닛 (31), 및 디스플레이 디바이스 (32) 를 포함한다. 다른 예들에서, 소스 디바이스 및 목적지 디바이스는 다른 컴포넌트들 또는 어레인지먼트들을 포함할 수도 있다. 예를 들어, 소스 디바이스 (12) 는 외부 카메라와 같은 외부 비디오 소스 (18) 로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함하기 보다는, 외부 디스플레이 디바이스와 인터페이스할 수도 있다. 본 개시물에 설명된 기법들 대부분은 비디오 인코더 (20) 와 비디오 디코더 (30) 양자에 의해 수행될 수 있다. 따라서, 설명의 용이함을 위해, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 가끔은 공동으로 비디오 코더 (20/30) 로 지칭될 수도 있다. 비디오 코더 (20/30) 에 대해 설명된 기법들은 비디오 인코더 (20) 또는 비디오 디코더 (30) 중 어느 하나에 의해 수행될 수도 있다.
도 1 의 예시된 시스템 (10) 은 단지 하나의 예일 뿐이다. 본 개시물의 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 일반적으로, 본 개시물의 기법들은 비디오 인코딩 디바이스에 의해 수행되지만, 그 기법들은 또한 통상 "CODEC" 으로 지칭되는 비디오 인코더/디코더에 의해 수행될 수도 있다. 더욱이, 본 개시물의 기법들은 또한 비디오 프리프로세서에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 단지, 소스 디바이스 (12) 가 목적지 디바이스 (14) 로의 송신을 위한 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스들의 예들일 뿐이다. 일부 예들에서, 디바이스들 (12, 14) 은 디바이스들 (12, 14) 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수도 있다. 따라서, 시스템 (10) 은 예를 들어, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 화상 통화를 위해, 비디오 디바이스들 (12, 14) 간에 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 카메라, 이전에 캡처된 비디오를 포함하는 비디오 아카이브 (video archive), 및/또는 비디오 콘텐츠 제공자로부터 비디오를 수신하기 위한 비디오 피드 인터페이스와 같은 비디오 캡처 디바이스를 포함할 수도 있다. 추가 대안으로서, 비디오 소스 (18) 는 소스 비디오로서의 컴퓨터 그래픽 기반 데이터, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성 비디오의 조합을 생성할 수도 있다. 일부 경우들에서, 비디오 소스 (18) 가 비디오 카메라인 경우, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 상기 언급한 바와 같이, 본 개시물에 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각각의 경우에, 캡처된, 사전-캡처된, 또는 컴퓨터 생성된 비디오는 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 인코딩된 비디오 정보는 그 후 출력 인터페이스 (22) 에 의해 컴퓨터 판독가능 매체 (16) 상으로 출력될 수도 있다.
비디오 소스 (18) 는 비디오 데이터의 다수의 뷰들을 비디오 인코더 (20) 에 제공할 수도 있다. 예를 들어, 비디오 소스 (18) 는 각각이 촬영되는 특정 장면에 대해 고유한 수평 포지션을 갖는, 카메라들의 어레이에 대응할 수도 있다. 대안으로, 비디오 소스 (18) 는 예를 들어, 컴퓨터 그래픽을 이용하여, 이질적인 수평 카메라 관점 (disparate horizontal camera perspective) 들로부터 비디오 데이터를 생성할 수도 있다. 깊이 추정 유닛 (19) 은 텍스처 이미지에서의 픽셀들에 대응하는 깊이 픽셀들에 대한 값들을 결정하도록 구성될 수도 있다. 예를 들어, 깊이 추정 유닛 (19) 은 깊이 값들을 직접 결정하는 것과 실질적으로 동시에 장면의 비디오 데이터를 레코딩가능한 SONAR (Sound Navigation and Ranging) 유닛, LIDAR (Light Detection and Ranging) 유닛, 또는 다른 유닛을 표현할 수도 있다.
추가적으로 또는 대안으로, 깊이 추정 유닛 (19) 은 상이한 수평 카메라 관점들로부터 실질적으로 동시에 캡처되었던 2 개 이상의 이미지들을 비교함으로써 간접적으로 깊이 값들을 계산하도록 구성될 수도 있다. 그 이미지들에서의 실질적으로 유사한 픽셀 값들 간의 수평 디스패리티를 계산함으로써, 깊이 추정 유닛 (19) 은 장면에서의 다양한 오브젝트들의 깊이를 근사화할 수도 있다. 깊이 추정 유닛 (19) 은 일부 예들에서 비디오 소스 (18) 와 기능상 통합될 수도 있다. 예를 들어, 비디오 소스 (18) 가 컴퓨터 그래픽 이미지들을 생성할 때, 깊이 추정 유닛 (19) 은 예를 들어, 텍스처 이미지들을 렌더링하는데 이용된 픽셀들 및 오브젝트들의 z-좌표들을 이용하여, 그래픽 오브젝트들에 대한 실제 깊이 맵들을 제공할 수도 있다.
컴퓨터 판독가능 매체 (16) 는 트랜지언트 (transient) 매체들, 이를 테면 무선 브로드캐스트 또는 유선 네트워크 송신, 또는 저장 매체들 (즉, 비일시적 (non-transitory) 저장 매체들), 이를 테면 하드 디스크, 플래시 드라이브, 콤팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크, 또는 다른 컴퓨터 판독가능 매체들을 포함할 수도 있다. 일부 예들에서, 네트워크 서버 (미도시) 는 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신하고, 그 인코딩된 비디오 데이터를 예를 들어 네트워크 송신을 통해 목적지 디바이스 (14) 에 제공할 수도 있다. 유사하게, 매체 생산 시설 (medium production facility), 이를 테면 디스크 스탬핑 시설 (disc stamping facility) 의 컴퓨팅 디바이스는 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신하고 인코딩된 비디오 데이터를 포함하는 디스크를 생산할 수도 있다. 따라서, 컴퓨터 판독가능 매체 (16) 는 다양한 예들에서, 다양한 형태들의 하나 이상의 컴퓨터 판독가능 매체들을 포함하는 것으로 이해될 수도 있다.
목적지 디바이스 (14) 의 입력 인터페이스 (28) 는 컴퓨터 판독가능 매체 (16) 로부터 정보를 수신한다. 컴퓨터 판독가능 매체 (16) 의 정보는 비디오 인코더 (20) 에 의해 정의되고, 비디오 디코더 (30) 에 의해서도 또한 이용되는, 블록들 및 다른 코딩된 유닛들, 예를 들어, GOP들의 특성들 및/또는 프로세싱을 설명하는 신택스 엘리먼트들을 포함하는 신택스 정보를 포함할 수도 있다. 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하며, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다. 일부 예들에서, 디스플레이 디바이스 (32) 는 예를 들어, 뷰어에 대한 3D 시각 효과를 생성하기 위해, 2 개 이상의 뷰들을 동시에 또는 실질적으로 동시에 디스플레이가능한 디바이스를 포함할 수도 있다.
목적지 디바이스 (14) 의 DIBR 유닛 (31) 은 비디오 디코더 (30) 로부터 수신된 디코딩된 뷰들의 텍스처 및 깊이 정보를 이용하여 합성된 뷰들을 렌더링할 수도 있다. 예를 들어, DIBR 유닛 (31) 은 대응하는 깊이 맵들에서의 픽셀들의 값들의 함수로서 텍스처 이미지들의 픽셀 데이터에 대한 수평 디스패리티를 결정할 수도 있다. DIBR 유닛 (31) 은 그 후 결정된 수평 디스패리티만큼 텍스처 이미지에서의 픽셀들을 좌측 또는 우측으로 오프셋함으로써 합성된 이미지를 생성할 수도 있다. 이 방식으로, 디스플레이 디바이스 (32) 는 임의의 조합으로 디코딩된 뷰들 및/또는 합성된 뷰들에 대응할 수도 있는 하나 이상의 뷰들을 디스플레이할 수도 있다. 본 개시물의 기법들에 따르면, 비디오 디코더 (30) 는 깊이 범위들 및 카메라 파라미터들에 대한 원래의 및 업데이트된 정밀도 값들을 DIBR 유닛 (31) 에 제공할 수도 있으며, DIBR 유닛 (31) 은 깊이 범위들 및 카메라 파라미터들을 이용하여 뷰들을 적절히 합성할 수도 있다.
도 1 에는 도시하고 있지는 않지만, 일부 양태들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각 오디오 인코더 및 디코더와 통합될 수도 있고, 공통 데이터 스트림 또는 개별의 데이터 스트림들에서의 오디오 및 비디오 양자의 인코딩을 핸들링하기 위해, 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능하다면, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (user datagram protocol; UDP) 과 같은 다른 프로토콜들에 따를 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 비디오 코딩 표준, 이를 테면 현재 개발중인 고효율 비디오 코딩 (HEVC) 표준에 따라 동작할 수도 있고, HEVC 테스트 모델 (Test Model; HM) 에 따를 수도 있다.
도래하는 HEVC 표준의 최근의 초안은 ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 JCT-VC (Joint Collaborative Team on Video Coding), 10차 미팅: 2012년 7월 11일부터 2012년 7월 12일까지, 스웨덴 스톡홀름, Bross 등의, "High Efficiency Video Coding (HEVC) Text Specification Draft 8", 문헌 HCTVC-J1003 에 기술되어 있으며, 이는 2013년 8월 15일자로, http://phenix.intevry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip 으로부터 다운로드가능하다. "HEVC 작업 초안 10" 또는 "WD10" 으로 지칭되는, HEVC 표준의 다른 최근의 초안은, ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 JCT-VC (Joint Collaborative Team on Video Coding), 12차 미팅: 2013년 1월 14일부터 23일까지, 스위스 제네바, Bross 등의, "High efficiency video coding (HEVC) text specificaion draft 10 (for FDIS & Last Call)", 문헌 JCTVC-L1003v34 에 기술되어 있으며, 이는 2013년 8월 15일자로, http://phenix.intevry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC_L1003-v34.zip 으로부터 다운로드가능하다. HEVC 표준의 또 다른 초안은 본 명세서에서 "WD10 수정안들 (revisions)" 로 지칭되며, 이는 ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 JCT-VC (Joint Collaborative Team on Video Coding), 13차 미팅: 2013년 4월, 대한민국 인천, Bross 등의, "Editors' proposed corrections to HEVC version 1" 에 기술되어 있으며, 2013년 10월 3일자로, http://phenix.intevry.fr/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC-M0432-v3.zip 으로부터 입수가능가능하다.
예시를 목적으로, 본 개시물의 기법들은 HEVC 의 3DV 확장에 대하여 주로 설명된다. 그러나, 이들 기법들은 3 차원 효과를 생성하는데 이용되는 비디오 데이터를 코딩하기 위한 다른 표준들에도 물론 적용될 수도 있다는 것이 이해되어야 한다.
VCEG 및 MPEG 의 JCT-3C (Joint Collaboration Team on 3D Video Coding) 은, 표준화 노력들의 일부가 HEVC 에 기초한 3D 비디오 코딩 (3D-HEVC) 에 대한 다른 부분 및 HEVC 에 기초한 멀티뷰 비디오 코덱 (MV-HEVC) 의 표준화를 포함하기 때문에, HEVC 에 기초한 3DV 표준을 개발중이다. MV-HEVC 의 경우에는, 일반적으로 HEVC 의 CU/PU 레벨에서의 어떠한 모델도 재설계될 필요가 없고 MV-HEVC 에 대해 완전히 다시 이용될 수 있도록, HEVC 에 대해 단지 하이-레벨 신택스 (HLS) 변경들이 존재하는 것이 요구된다. 3D-HEVC 의 경우, 텍스처 및 깊이 뷰들 양자에 대해, 유닛/예측 유닛 레벨에서 코딩하는데 있어서의 툴들을 포함하는, 새로운 코딩 툴들이 포함되고 지원될 수도 있다. 3D-HEVC 에 대한 가장 최근의 소프트웨어 3D-HTM 은 2013년 10월 3일자로, 다음의 링크 : https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/trunk/ 로부터 다운로드될 수 있다.
대안으로, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 대안으로는 MPEG-4, Part 10, 어드밴스드 비디오 코딩 (AVC) 으로 지칭되는 ITU-T H.264 표준과 같은 다른 독점 또는 산업 표준들, 또는 ITU-T H.264/AVC 의 MVC 확장과 같은 이러한 표준들의 확장들에 따라 동작할 수도 있다. 특히, 본 개시물의 기법들은 어드밴스드 코덱들에 기초한 멀티뷰 및/또는 3D 비디오 코딩에 관련된다. 일반적으로, 본 개시물의 기법들은 다양한 상이한 비디오 코딩 표준들 중 임의의 것에 적용될 수도 있다. 예를 들어, 이들 기법들은 ITU-T H.264/AVC (advanced video coding) 의 멀티뷰 비디오 코딩 (MVC) 확장에, 도래하는 HEVC 표준의 3D 비디오 (3DV) 확장 (예를 들어, 3D-HEVC) 에, 또는 다른 코딩 표준에 적용될 수도 있다.
ITU-T H.264/MPEG-4 (AVC) 표준은 JVT (Joint Video Team) 로 공지된 집합적 파트너쉽 (collective partnership) 의 제품으로서 ISO/IEC MPEG (Moving Picture Experts Group) 와 함께 ITU-T VCEG (Video Coding Experts Group) 에 의해 공식화되었다. 일부 양태들에서, 본 개시물에 설명된 기법들은 H.264 표준에 일반적으로 따르는 디바이스들에 적용될 수도 있다. H.264 표준은 2005년 3월의 ITU-T 연구 그룹에 의한, 일반 오디오비주얼 서비스들에 대한 ITU-T 권고 H.264, 어드밴스드 비디오 코딩에 기술되어 있으며, 이는 본 명세서에서 H.264 표준 또는 H.264 사양, 또는 H.264/AVC 표준 또는 사양으로 지칭될 수도 있다. JVT (Joint Video Team) 는 H.264/MPEG-4 AVC 에 대한 확장들에 대해 계속 연구하고 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적 회로들 (ASIC들), 필드 프로그램가능 게이트 어레이들 (FPGA들), 별개의 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합들과 같은 다양한 적합한 인코더 회로부 (circuitry) 중 임의의 것으로서 구현될 수도 있다. 그 기법들이 소프트웨어로 부분적으로 구현될 때, 디바이스는 소프트웨어용 명령들을 적합한, 비일시적 컴퓨터 판독가능 매체에 저장하고, 그 명령들을 본 개시물의 기법들을 수행하기 위해 하나 이상의 프로세서들을 이용하는 하드웨어에서 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 하나는 각각의 디바이스에서 결합된 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있다. 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 를 포함하는 디바이스는 집적 회로, 마이크로프로세서, 및/또는 셀룰러 전화기와 같은 무선 통신 디바이스를 포함할 수도 있다.
처음에, HEVC 의 예의 코딩 기법들이 논의될 것이다. JCT-VC 는 HEVC 표준의 개발에 대해 연구중이다. HEVC 표준화 노력들은 HEVC 테스트 모델 (HM) 로 지칭되는 비디오 코딩 디바이스의 진화하는 모델에 기초한다. HM 은 예를 들어, ITU-T H.264/AVC 에 따르는 기존의 디바이스들에 비해 비디오 코딩 디바이스들의 몇몇 추가적인 능력들을 추정한다. 예를 들어, H.264 는 9 개의 인트라-예측 인코딩 모드들을 제공하는 반면, HM 은 무려 33 개나 되는 각도 인트라-예측 인코딩 모드들 플러스 DC 및 평면 모드들을 제공할 수도 있다.
일반적으로, HM 의 작업 모델은, 비디오 프레임 또는 픽처가 루마 (luma) 샘플과 크로마 (chroma) 샘플 양자를 포함하는 최대 코딩 유닛들 (largest coding units; LCU) 또는 트리블록들의 시퀀스로 분할될 수도 있다는 것을 설명한다. 비트스트림 내의 신택스 데이터는 픽셀들의 수의 관점에서 최대 코딩 유닛인 LCU 에 대한 사이즈를 정의할 수도 있다. 슬라이스는 코딩 순서로 다수의 연속되는 트리블록들을 포함한다. 비디오 프레임 또는 픽처는 하나 이상의 슬라이스들로 파티셔닝될 수도 있다. 각각의 트리블록은 쿼드트리에 따라 코딩 유닛들 (CU들) 로 스플리팅될 수도 있다. 일반적으로, 쿼드트리 데이터 구조는 CU 당 하나의 노드를 포함하며, 루트 노드는 트리블록에 대응한다. CU 가 4 개의 서브-CU들로 스플리팅된다면, 그 CU 에 대응하는 노드는 4 개의 리프 노드들을 포함하며, 그 리프 노드들 각각은 서브-CU들 중 하나에 대응한다.
쿼드트리 데이터 구조의 각각의 노드는 대응하는 CU 에 대한 신택스 데이터를 제공할 수도 있다. 예를 들어, 쿼드트리에서의 노드는, 그 노드에 대응하는 CU 가 서브-CU들로 스플리팅되는지 여부를 표시하는 스플릿 플래그 (split flag) 를 포함할 수도 있다. CU 에 대한 신택스 엘리먼트들은 재귀적으로 정의될 수도 있고, CU 가 서브-CU들로 스플리팅되는지 여부에 의존할 수도 있다. CU 가 더욱 스플리팅되지 않는다면, 그것은 리프-CU 로 지칭된다. 본 개시물에서, 리프-CU 의 4 개의 서브-CU들은 또한, 원래의 리프-CU 의 명시적 스플리팅이 없더라도 리프-CU들로 지칭될 것이다. 예를 들어, 16x16 사이즈의 CU 가 더욱 스플리팅되지 않는다면, 4 개의 8x8 서브-CU들은 또한, 16x16 CU 가 절대 스플리팅되지 않았지만 리프-CU들로 지칭될 것이다.
CU 는, CU 가 사이즈 구분 (size distinction) 을 갖지 않는다는 점을 제외하고는, H.264 표준의 매크로블록과 유사한 목적을 갖는다. 예를 들어, 트리블록은 4 개의 자식 노드들 (서브-CU들로도 지칭) 로 스플리팅될 수도 있고, 각각의 자식 노드는 결국 부모 노드일 수도 있고 다른 4 개의 자식 노드들로 스플리팅될 수도 있다. 쿼드트리의 리프 노드로 지칭되는, 최종, 스플리팅되지 않은 자식 노드는, 리프-CU 로도 지칭되는 코딩 노드를 포함한다. 코딩된 비트스트림과 연관된 신택스 데이터는, 최대 CU 깊이로 지칭되는, 트리블록이 스플리팅될 수도 있는 최대 횟수를 정의할 수도 있고, 또한 코딩 노드들의 최소 사이즈를 정의할 수도 있다. 따라서, 비트스트림은 또한 최소 코딩 유닛 (smallest coding unit; SCU) 을 정의할 수도 있다. 본 개시물은 HEVC 의 맥락에서 CU, PU, 또는 TU 중 임의의 것, 또는 다른 표준들의 맥락에서 유사한 데이터 구조들 (예를 들어, H.264/AVC 에서의 매크로블록들 및 그 서브-블록들) 을 지칭하기 위해 용어 "블록" 을 사용한다.
CU 는 코딩 노드 및 그 코딩 노드와 연관된 예측 유닛들 (PU들) 및 변환 유닛들 (TU들) 을 포함한다. CU 의 사이즈는 코딩 노드의 사이즈에 대응하며 형상이 정방형 (square) 이어야 한다. CU 의 사이즈는 8x8 픽셀들로부터 최대 64x64 픽셀들 이상인 트리블록의 사이즈까지의 범위에 이를 수도 있다. 각각의 CU 는 하나 이상의 PU들 및 하나 이상의 TU들을 포함할 수도 있다. CU 와 연관된 신택스 데이터는 예를 들어, CU 의 하나 이상의 PU들로의 파티셔닝을 설명할 수도 있다. 파티셔닝 모드들은 CU 가 스킵 또는 병합 모드 인코딩되는지, 인트라-예측 모드 인코딩되는지, 또는 인터-예측 모드 인코딩되는지 여부 간에 다를 수도 있다. PU들은 형상이 비정방형 (non-square) 인 것으로 파티셔닝될 수도 있다. CU 와 연관된 신택스 데이터는 또한, 예를 들어, 쿼드트리에 따라 CU 의 하나 이상의 TU들로의 파티셔닝을 설명할 수도 있다. TU 는 형상이 정방형 또는 비정방형 (예를 들어, 장방형 (rectangular)) 일 수 있다.
HEVC 표준은 TU들에 따라 변환들을 허용하며, 이는 상이한 CU들에 대해 상이할 수도 있다. 항상 그런 것은 아닐 수도 있지만, TU들은 통상 파티셔닝된 LCU 에 대해 정의되는 주어진 CU 내의 PU들의 사이즈에 기초하여 사이징된다. TU들은 통상 PU들과 동일한 사이즈이거나 PU들보다 더 작다. 일부 예들에서, CU 에 대응하는 잔차 샘플들은 "잔차 쿼드 트리" (RQT) 로 공지된 쿼드트리 구조를 이용하여 더 작은 유닛들로 서브분할될 수도 있다. RQT 의 리프 노드들은 변환 유닛들 (TU들) 로 지칭될 수도 있다. TU들과 연관된 픽셀 차이 값들은 양자화될 수도 있는 변환 계수들을 생성하기 위해 변환될 수도 있다.
리프-CU 는 하나 이상의 예측 유닛들 (PU들) 을 포함할 수도 있다. 일반적으로, PU 는 대응하는 CU 의 전부 또는 부분에 대응하는 공간 영역을 표현하고, PU 에 대한 참조 샘플을 취출하기 위한 데이터를 포함할 수도 있다. 더욱이, PU 는 예측에 관한 데이터를 포함한다. 예를 들어, PU 가 인트라-모드 인코딩될 때, PU 에 대한 데이터는 잔차 쿼드트리 (RQT) 에 포함될 수도 있으며, 이는 PU 에 대응하는 TU 에 대한 인트라-예측 모드를 설명하는 데이터를 포함할 수도 있다. 다른 예로서, PU 가 인터-모드 인코딩될 때, PU 는 PU 에 대한 하나 이상의 모션 벡터들을 정의하는 데이터를 포함할 수도 있다. PU 에 대한 모션 벡터를 정의하는 데이터는 예를 들어, 모션 벡터의 수평 컴포넌트, 모션 벡터의 수직 컴포넌트, 모션 벡터에 대한 해상도 (예를 들어, 1/4 픽셀 정밀도 또는 1/8 픽셀 정밀도), 모션 벡터가 가리키는 참조 픽처, 및/또는 모션 벡터에 대한 참조 픽처 리스트 (예를 들어, 리스트 0, 리스트 1, 또는 리스트 C) 를 설명할 수도 있다.
하나 이상의 PU들을 갖는 리프-CU 는 또한 하나 이상의 변환 유닛들 (TU들) 을 포함할 수도 있다. 변환 유닛들은 상기 논의한 바와 같이 RQT (TU 쿼드트리 구조로도 지칭) 를 이용하여 특정될 수도 있다. 예를 들어, 스플릿 플래그는 리프-CU 가 4 개의 변환 유닛들로 스플리팅되는지 여부를 표시할 수도 있다. 그 후, 각각의 변환 유닛은 추가 서브-TU들로 더욱 스플리팅될 수도 있다. TU 가 더욱 스플리팅되지 않을 때, 그것은 리프-TU 로 지칭될 수도 있다. 일반적으로, 인트라 코딩의 경우, 리프-CU 에 속하는 리프-TU들 전부는 동일한 인트라 예측 모드를 공유한다. 즉, 동일한 인트라-예측 모드는 일반적으로 리프-CU 의 모든 TU들에 대한 예측된 값들을 계산하기 위해 적용된다. 인트라 코딩의 경우, 비디오 인코더는 TU 에 대응하는 CU 의 부분과 원래의 블록 간의 차이로서, 인트라 예측 모드를 이용하는 각각의 리프-TU 에 대한 잔차 값을 계산할 수도 있다. TU 는 PU 의 사이즈에 반드시 제한되는 것은 아니다. 따라서, TU들은 PU 보다 더 크거나 더 작을 수도 있다. 인트라 코딩의 경우, PU 는 동일한 CU 에 대한 대응하는 리프-TU 와 병치될 수도 있다. 일부 예들에서, 리프-TU 의 최대 사이즈는 대응하는 리프-CU 의 사이즈에 대응할 수도 있다.
더욱이, 리프-CU들의 TU들은 또한, 잔차 쿼드트리들 (RQT들) 로 지칭되는, 각각의 쿼드트리 데이터 구조들과 연관될 수도 있다. 즉, 리프-CU 는 리프-CU 가 TU들로 파티셔닝되는 방법을 표시하는 쿼드트리를 포함할 수도 있다. TU 쿼드트리의 루트 노드는 일반적으로 리프-CU 에 대응하는 한편, CU 쿼드트리의 루트 노드는 일반적으로 트리블록 (또는 LCU) 에 대응한다. 스플리팅되지 않은 RQT 의 TU들은 리프-TU들로 지칭된다. 일반적으로, 본 개시물은, 다르게 언급하지 않았다면, 리프-CU 및 리프-TU 를 각각 지칭하기 위해 용어 CU 및 용어 TU 를 사용한다.
비디오 시퀀스는 통상 일련의 비디오 프레임들 또는 픽처들을 포함한다. 픽처들의 그룹 (GOP) 은 일반적으로 일련의 하나 이상의 비디오 픽처들을 포함한다. GOP 는 GOP 의 헤더, 하나 이상의 픽처들의 헤더, 또는 다른 곳에, GOP 에 포함된 다수의 픽처들을 설명하는 신택스 데이터를 포함할 수도 있다. 픽처의 각각의 슬라이스는 각각의 슬라이스에 대한 인코딩 모드를 설명하는 슬라이스 신택스 데이터를 포함할 수도 있다. 비디오 인코더 (20) 는 통상 비디오 데이터를 인코딩하기 위하여 개개의 비디오 슬라이스들 내의 비디오 블록들에 대해 동작한다. 비디오 블록은 CU 내의 코딩 노드에 대응할 수도 있다. 비디오 블록들은 고정 또는 가변 사이즈들을 가질 수도 있고, 특정된 코딩 표준에 따라 사이즈가 다를 수도 있다.
일 예로서, HM 은 다양한 PU 사이즈들의 예측을 지원한다. 특정 CU 의 사이즈가 2Nx2N 인 것을 가정하면, HM 은 2Nx2N 또는 NxN 의 PU 사이즈들의 인트라-예측, 및 2Nx2N, 2NxN, Nx2N, 또는 NxN 의 대칭적인 PU 사이즈들의 인터-예측을 지원한다. HM 은 또한 2NxnU, 2NxnD, nLx2N, 및 nRx2N 의 PU 사이즈들의 인터-예측을 위해 비대칭적인 파티셔닝을 지원한다. 비대칭적인 파티셔닝에 있어서, CU 의 하나의 방향이 파티셔닝되지 않는 한편, 다른 방향은 25% 및 75% 로 파티셔닝된다. 25% 파티션에 대응하는 CU 의 부분은 "n" 다음에 "위 (Up)", "아래 (Down)", "좌 (Left)", 또는 "우 (Right)" 의 표시가 오는 것에 의해 표시된다. 따라서, 예를 들어, "2NxnU" 는 맨 위가 2Nx0.5N PU 이고 맨 아래가 2Nx1.5N PU 인 수평으로 파티셔닝되는 2Nx2N CU 를 지칭한다.
본 개시물에서, "NxN" 및 "N 바이 N" 은 수직 및 수평 치수 (dimensions) 들의 관점에서 비디오 블록의 픽셀 치수들, 예를 들어, 16x16 픽셀들 또는 16 바이 16 픽셀들을 지칭하기 위해 상호교환가능하게 사용될 수도 있다. 일반적으로, 16x16 블록은 수직 방향으로 16 개의 픽셀들 (y = 16) 및 수평 방향으로 16 개의 픽셀들 (x = 16) 을 가질 것이다. 마찬가지로, NxN 블록은 일반적으로 수직 방향으로 N 개의 픽셀들 및 수평 방향으로 N 개의 픽셀들을 가지며, 여기서 N 은 비음의 정수값을 표현한다. 블록에서의 픽셀들은 로우 (row) 들 및 컬럼 (column) 들로 배열될 수도 있다. 더욱이, 블록들은 수평 방향에서, 수직 방향에서와 동일한 수의 픽셀들을 반드시 가질 필요는 없다. 예를 들어, 블록들은 NxM 픽셀들을 포함할 수도 있으며, 여기서 M 은 반드시 N 과 동일할 필요는 없다.
CU 의 PU들을 이용한 인트라-예측 또는 인터-예측 코딩에 이어, 비디오 인코더 (20) 는 CU 의 TU들에 대한 잔차 데이터를 계산할 수도 있다. PU들은 공간 도메인 (픽셀 도메인으로도 지칭) 에서의 예측 픽셀 데이터를 생성하는 방법 또는 모드를 설명하는 신택스 데이터를 포함할 수도 있고, TU들은 잔차 비디오 데이터에 대한 변환, 예를 들어, 이산 코사인 변환 (DCT), 정수 변환, 웨이브릿 변환, 또는 개념상 유사한 변환의 적용에 뒤따르는 변환 도메인에서의 계수들을 포함할 수도 있다. 잔차 데이터는 미인코딩된 픽처의 픽셀들과 PU들에 대응하는 예측 값들 간의 픽셀 차이들에 대응할 수도 있다. 비디오 인코더 (20) 는 CU 에 대한 잔차 데이터를 포함하는 TU들을 형성하고, 그 후 그 TU들을 변환하여 CU 에 대한 변환 계수들을 생성할 수도 있다.
변환 계수들을 생성하기 위한 임의의 변환들에 이어, 비디오 인코더 (20) 는 변환 계수들의 양자화를 수행할 수도 있다. 양자화는 일반적으로, 변환 계수들이 계수들을 표현하는데 이용되는 데이터의 양을 가능한 한 감소시키기 위해 양자화되어, 더욱 압축을 제공하는 프로세스를 지칭한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 깊이 (bit depth) 를 감소시킬 수도 있다. 예를 들어, n-비트 값은 양자화 동안 m-비트 값으로 내림 (round down) 될 수도 있으며, 여기서 n 은 m 보다 더 크다.
양자화에 이어, 비디오 인코더는 변환 계수들을 스캔하여, 양자화된 변환 계수들을 포함하는 2 차원 매트릭스로부터 일차원 벡터를 생성할 수도 있다. 스캔은 어레이의 앞 부분에 더 높은 에너지 (및 그에 따른 더 낮은 주파수) 계수들을 배치하고 어레이의 뒷 부분에 더 낮은 에너지 (및 그에 따른 더 높은 주파수) 계수들을 배치하도록 설계될 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 미리 정의된 스캔 순서를 활용하여 양자화된 변환 계수들을 스캔하여, 엔트로피 인코딩될 수 있는 직렬화된 벡터를 생성할 수도 있다. 다른 예들에서, 비디오 인코더 (20) 는 적응적 스캔을 수행할 수도 있다. 양자화된 변환 계수들을 스캔하여 일차원 벡터를 형성한 후에, 비디오 인코더 (20) 는 예를 들어, 콘텍스트 적응적 가변 길이 코딩 (CAVLC), 콘텍스트 적응적 이진 산술 코딩 (CABAC), 신택스 기반 콘텍스트 적응적 이진 산술 코딩 (SBAC), PIPE (Porbability Interval Partitioning Entropy) 코딩 또는 다른 엔트로피 인코딩 방법론들에 따라 일차원 벡터를 엔트로피 인코딩할 수도 있다. 비디오 인코더 (20) 는 또한 비디오 데이터를 디코딩하는데 있어서 비디오 디코더 (30) 에 의한 이용을 위해 인코딩된 비디오 데이터와 연관된 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
CABAC 을 수행하기 위해, 비디오 인코더 (20) 는 송신될 심볼에 콘텍스트 모델 내의 콘텍스트를 할당할 수도 있다. 콘텍스트는 예를 들어, 심볼의 이웃하는 값들이 넌-제로인지 아닌지 여부에 관한 것일 수도 있다. CAVLC 를 수행하기 위해, 비디오 인코더 (20) 는 송신될 심볼에 대한 가변 길이 코드를 선택할 수도 있다. VLC 에서의 코드워드들은 비교적 더 짧은 코드들이 더 가능성있는 심볼들에 대응하는 한편, 더 긴 코드들이 덜 가능성있는 심볼들에 대응하도록 구성될 수도 있다. 이렇게 하여, VLC 의 이용은 예를 들어, 송신될 각각의 심볼에 대해 동일 길이의 코드워드들을 이용하는 것에 비해, 비트 절약을 달성할 수도 있다. 가능성 결정은 심볼에 할당된 콘텍스트에 기초할 수도 있다.
다음은 멀티뷰 코딩 및/또는 깊이 (3D-HEVC) 에 의한 멀티뷰 코딩 (MV-HEVC) 과 함께 이용될 수도 있는 인터-예측에 관한 일부 관련 HEVC 기법들을 설명한다. 논의를 위한 제 1 기법은 인터-예측을 위한 참조 픽처 리스트 구성이다.
인터-예측을 이용하여 PU 를 코딩하는 것은 현재의 블록 (예를 들어, PU) 과 참조 프레임에서의 블록 간의 모션 벡터를 계산하는 것을 수반한다. 모션 벡터들은 모션 추정 (또는 모션 검색) 으로 불리는 프로세스를 통하여 계산된다. 모션 벡터는, 예를 들어, 참조 프레임의 참조 블록에 대한 현재의 프레임에서의 예측 유닛의 변위 (displacement) 를 표시할 수도 있다. 참조 블록은 픽셀 차이의 관점에서 코딩되는 PU 를 포함하는 CU 의 부분에 밀접하게 매칭하는 것으로 확인되는 블록일 수도 있으며, 이는 SAD (sum of absolute difference), SSD (sum of squared difference), 또는 다른 차이 메트릭들에 의해 결정될 수도 있다. 참조 블록은 참조 프레임 또는 참조 슬라이스 내의 어디에나 발생할 수도 있다. 일부 예들에서, 참조 블록은 분수 픽셀 포지션에서 발생할 수도 있고, 이 경우 참조 블록의 픽셀들에 대한 값들은 보간, 예를 들어, 바이리니어 보간을 이용하여 참조 프레임에서의 다른 픽셀 값들로부터 계산될 수도 있다. 현재의 부분에 가장 잘 매칭하는 참조 프레임의 부분을 발견할 시에, 인코더는 현재의 블록으로부터 참조 프레임에서의 매칭 부분까지의 (예를 들어, 현재의 블록의 중심으로부터 매칭 부분의 중심까지의) 위치의 차이로서 현재의 블록에 대한 현재의 모션 벡터를 결정한다.
일부 예들에서, 인코더는 인코딩된 비디오 비트스트림으로 각각의 블록에 대한 모션 벡터를 시그널링할 수도 있다. 시그널링된 모션 벡터는 비디오 데이터를 디코딩하기 위하여 디코더에 의해 모션 보상을 수행하는데 이용된다. 그러나, 원래의 모션 벡터를 직접 시그널링하는 것은 대다수의 비트들이 통상 정보를 전달하는데 필요해짐에 따라 덜 효율적인 코딩을 초래할 수도 있다.
일부 경우들에서, 원래의 모션 벡터를 직접 시그널링하기 보다는, 인코더는 각각의 파티셔닝에 대한, 즉, 각각의 PU 에 대한 모션 벡터를 예측할 수도 있다. 이 모션 벡터 예측을 수행하는데 있어서, 인코더는 현재의 블록과 동일한 프레임에서의 공간 이웃하는 블록들로부터 결정된 일 세트의 모션 벡터 후보들 또는 참조 프레임 (즉, 현재의 프레임이 아닌 프레임) 에서의 공동배치된 블록으로부터 결정된 시간 모션 벡터 후보를 선택할 수도 있다. 비디오 인코더 (20) 는 모션 벡터 예측을 수행하고, 필요하다면, 시그널링 시의 비트 레이트를 감소시키기 위해, 원래의 모션 벡터를 시그널링하기 보다는, 모션 벡터를 예측하기 위해 참조 픽처에 대한 인덱스를 시그널링할 수도 있다. 공간 이웃하는 블록들로부터의 모션 벡터 후보들은 공간 MVP 후보들로 지칭될 수도 있는 반면, 다른 참조 프레임에서의 공동배치된 블록들로부터의 모션 벡터 후보들은 시간 MVP 후보들로 지칭될 수도 있다.
2 개의 상이한 모드들 또는 타입들의 모션 벡터 예측은 HEVC 표준에서 제안된다. 하나의 모드는 "병합" 모드로 지칭된다. 다른 모드는 적응적 모션 벡터 예측 (adaptive motion vector prediction; AMVP) 으로 지칭된다.
병합 모드에서, 비디오 인코더 (20) 는 예측 신택스의 비트스트림 시그널링을 통하여, 프레임의 현재의 블록에 대한 선택된 모션 벡터 후보로부터 모션 벡터, 참조 인덱스 (주어진 참조 픽처 리스트에서, 모션 벡터가 가리키는 참조 프레임을 식별) 및 모션 예측 방향 (즉, 참조 프레임이 현재의 프레임을 시간상 선행하는지 또는 후행하는지 여부의 관점에서의, 참조 픽처 리스트 (리스트 0 또는 리스트 1) 를 식별) 을 카피할 것을 비디오 디코더 (30) 에 명령한다. 이것은 선택된 모션 벡터 후보 (즉, 특정 공간 MVP 후보 또는 시간 MVP 후보) 를 식별하는 모션 벡터 후보 리스트에 대한 인덱스를 비트스트림으로 시그널링함으로써 달성된다.
따라서, 병합 모드의 경우, 예측 신택스는 모드 (이 경우에는 "병합" 모드) 를 식별하는 플래그 및 선택된 모션 벡터 후보를 식별하는 인덱스를 포함할 수도 있다. 일부 경우들에서, 모션 벡터 후보는 현재의 블록과 관련하여 이미 코딩된 블록에 있을 것이다. 즉, 모션 벡터 후보는 비디오 디코더 (30) 에 의해 이미 디코딩되었을 것이다. 이로써, 비디오 디코더 (30) 는 원인이 되는 (causal) 블록에 대한 모션 벡터, 참조 인덱스, 및 모션 예측 방향을 이미 수신 및/또는 결정하였다. 따라서, 비디오 디코더 (30) 는 단순히 메모리로부터 원인이 되는 블록과 연관된 모션 벡터, 참조 인덱스, 및 모션 예측 방향을 취출하고, 이들 값들을 현재의 블록에 대한 모션 정보로서 카피할 수도 있다. 병합 모드를 이용한 블록에 대한 모션 벡터의 복원에 뒤따르는 블록을 복원하기 위해, 비디오 디코더 (30) 는 현재의 블록에 대한 도출된 모션 정보를 이용하여 예측 블록을 획득하고, 예측 블록에 잔차 데이터를 추가하여 블록을 복원한다.
스킵 모드의 경우에는, 동일한 병합 후보 리스트가 생성되지만 어떠한 잔차도 시그널링되지 않는다는 것에 주목한다. 단순화를 위해, 스킵 모드는 병합 모드와 동일한 모션 벡터 도출 프로세스를 갖기 때문에, 병합 모드에 대하여 이 문헌에서 설명된 모든 기법들은 병합 모드와 스킵 모드 양자에 적용한다.
AMVP 에서, 비디오 인코더 (20) 는 비트스트림 시그널링을 통하여, 단지 후보 블록으로부터의 모션 벡터를 카피하고 카피된 벡터를 현재의 블록의 모션 벡터에 대한 예측변수로서 이용할 것을 비디오 디코더 (30) 에 명령하고, 모션 벡터 차이 (MVD) 를 시그널링한다. 현재의 블록의 모션 벡터와 연관된 예측 방향 및 참조 프레임은 개별적으로 시그널링된다. MVD 는 현재의 블록에 대한 현재의 모션 벡터와 후보 블록으로부터 도출된 모션 벡터 예측변수 간의 차이이다. 이 경우에, 비디오 인코더 (20) 는 모션 추정을 이용하여, 코딩될 블록에 대한 실제 모션 벡터를 결정하고, 그 후 실제 모션 벡터와 모션 벡터 예측변수 간의 차이를 MVD 값으로서 결정한다. 이렇게 하여, 비디오 디코더 (30) 는 병합 모드에서처럼, 현재의 모션 벡터로서 모션 벡터 후보의 정확한 카피를 이용하지 않고, 오히려 모션 추정으로부터 결정된 현재의 모션 벡터에 대한 값에 "밀접" 할 수도 있는 모션 벡터 후보를 이용하고 MVD 를 추가하여 현재의 모션 벡터를 재현할 수도 있다. AMVP 모드에서의 블록을 복원하기 위해, 디코더는 대응하는 잔차 데이터를 추가하여 코딩된 블록을 복원한다.
대부분의 환경에서, MVD 는 전체 현재의 모션 벡터보다 시그널링하기 위해 더 적은 비트들을 요구한다. 이로써, AMVP 는 전체 모션 벡터를 전송하는 것에 비해 코딩 효율을 유지하면서 현재의 모션 벡터의 보다 정밀한 시그널링을 허용한다. 반대로, 병합 모드는 MVD 의 사양을 허용하지 않으며, 이로써 병합 모드는 증가된 시그널링 효율 (즉, 더 적은 비트들) 을 위해 모션 벡터 시그널링의 정확성을 희생한다. AMVP 에 대한 예측 신택스는 모드에 대한 플래그 (이 경우에는 AMVP 플래그), 후보 블록에 대한 인덱스, 현재의 모션 벡터와 후보 블록으로부터의 예측 모션 벡터 간의 MVD, 참조 인덱스, 및 모션 예측 방향을 포함할 수도 있다.
도 2 는 병합 모드에서 이용될 수도 있는 일 예의 세트의 후보 블록들 (120) 을 도시한다. 상이한 후보 블록들, 또는 잠재적으로는 동일한 후보 블록들이 AMVP 모드에서 이용될 수도 있다. 이 예에서, 후보 블록들은 좌측 하방 (A0) (121), 좌측 (A1) (122), 좌측 상방 (B2) (125), 상방 (B1) (124), 및 우측 상방 (B0) (123) 공간 포지션들에, 그리고 시간 (T) (126) 포지션(들)에 있다. 이 예에서, 좌측 후보 블록 (122) 은 현재의 블록 (127) 의 좌측 에지에 인접하다. 좌측 블록 (122) 의 하부 에지는 현재의 블록 (127) 의 하부 에지와 정렬된다. 상방 블록 (124) 은 현재의 블록 (127) 의 상부 에지에 인접하다. 상방 블록 (124) 의 우측 에지는 현재의 블록 (127) 의 우측 에지와 정렬된다.
블록들 (A0, A1, B0, B1 및 B2) 은 공간 이웃하는 블록들 또는 공간 이웃하는 PU들로 통칭된다. 비디오 코더 (20/30) 는 먼저 현재의 픽처의 최상부-좌측 샘플에 대한 현재의 PU (예를 들어, 도 2 의 블록 (127)) 의 최상부-좌측 루마 샘플의 위치를 결정함으로써 공간 이웃하는 블록들의 위치들을 결정할 수도 있다. 이 루마 위치는 위치 (xP, yP) 로 지칭될 것이다. 비디오 코더 (20/30) 는 루마 PU 의 폭 (nPSW 로 간략화됨) 및 루마 PU 의 높이 (nPSH 로 간략화됨) 를 추가적으로 결정할 수도 있다. 현재의 PU 의 최상부-좌측 루마 샘플의 위치 및 현재의 PU 의 높이 및 폭에 기초하여, 공간 이웃하는 블록들의 루마 샘플의 위치는 다음과 같이 결정될 수 있다 :
블록 A0 은 위치 (xP-1, yP+nPSH) 에서의 루마 샘플을 포함한다;
블록 A1 은 위치 (xP-1, yP+nPSH-1) 에서의 루마 샘플을 포함한다;
블록 B0 은 위치 (xP+nPSW, yP-1) 에서의 루마 샘플을 포함한다;
블록 B1 은 위치 (xP+nPSW-1, yP-1) 에서의 루마 샘플을 포함한다;
블록 B2 는 위치 (xP-1, yP-1) 에서의 루마 샘플을 포함한다.
공간 이웃하는 블록들은 현재의 PU 와 동일한 사이즈일 수도 있고 또는 현재의 PU 와는 상이한 사이즈들일 수도 있다.
병합 모드에서의 이용을 위한 후보 리스트는 상기 논의된 공간 이웃하는 블록들을 이용하여 도출될 수 있다. 양자의 참조 리스트들에 대한 모션 벡터들 및 참조 인덱스들은 다음의 순서화된 단계들에 의해 특정한 바와 같이 도출될 수도 있으며, 이는 공간 병합 후보들에 대한 도출 프로세스의 일 예이다. 도출 프로세스의 일부로서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 다음의 순서 : A1, B1, B0, A0, 또는 B2 로 공간 이웃하는 PU들의 모션 정보를 검사한다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 중복 후보들이 후보 리스트에 추가되는 것을 감소 또는 제거하기 위하여 제약된 프루닝 (constrained pruning) 을 수행할 수도 있다. 비디오 코더 (20/30) 는 다음과 같이 병합 모드 후보 리스트에 포함될 공간 후보들을 도출할 수도 있다 :
- 비디오 코더 (20/30) 는 A1 이 이용가능하다면 후보 리스트에 A1 을 삽입한다.
- B1 및 A1 이 동일한 모션 벡터들 및 동일한 참조 인덱스들을 갖는다면, 비디오 코더 (20/30) 는 후보 리스트에 B1 을 삽입하지 않는다. B1 및 A1 이 동일한 모션 벡터들 및 동일한 참조 인덱스들을 갖지 않는다면, 비디오 코더 (20/30) 는 B1 이 이용가능하다면 후보 리스트에 B1 을 삽입한다.
- B0 및 B1 이 동일한 모션 벡터들 및 동일한 참조 인덱스들을 갖는다면, 비디오 코더 (20/30) 는 후보 리스트에 B0 을 삽입하지 않는다. B0 및 B1 이 동일한 모션 벡터들 및 동일한 참조 인덱스들을 갖지 않는다면, 비디오 코더 (20/30) 는 B0 이 이용가능하다면 후보 리스트에 B0 을 삽입한다.
- A0 및 A1 이 동일한 모션 벡터들 및 동일한 참조 인덱스들을 갖는다면, 비디오 코더 (20/30) 는 후보 리스트에 A0 을 삽입하지 않는다. A0 및 A1 이 동일한 모션 벡터들 및 동일한 참조 인덱스들을 갖지 않는다면, 비디오 코더 (20/30) 는 A0 이 이용가능하다면 후보 리스트에 A0 을 삽입한다.
- 비디오 코더 (20/30) 는 다음의 조건들 중 양자가 충족되지 않을 때 후보 리스트에 B2 를 삽입한다 :
- B2 및 B1 또는 B2 및 A1 은 동일한 모션 벡터들 및 동일한 참조 인덱스들을 갖는다.
- A1, B1, B0, A0 으로부터 도출된 4 개의 공간 병합 후보들 모두는 후보 리스트에 포함된다.
비디오 코더 (20/30) 는 다음과 같이 병합 모드 후보 리스트에 포함될 시간 후보를 도출할 수도 있다 :
- 시간 병합 후보를 얻기 위해, 비디오 코더 (20/30) 는 먼저 공동배치된 픽처를 식별한다. 현재의 픽처가 B 슬라이스라면, 신택스 엘리먼트 "collocated_from_10_flag" 는 공동배치된 픽처가 RefPicList0 으로부터의 것인지 RefPicList1 로부터의 것인지 여부를 표시하기 위해 슬라이스 헤더에서 시그널링된다.
- 비디오 코더 (20/30) 가 참조 픽처 리스트를 식별한 후에, 비디오 코더 (20/30) 는 리스트 내의 픽처에서의 픽처를 식별하기 위해, 슬라이스 헤더에서 시그널링된, 신택스 엘리먼트 collocated_ref_idx 를 이용한다.
- 비디오 코더 (20/30) 는 그 후 공동배치된 픽처를 검사함으로써 공동배치된 PU 를 식별한다. 비디오 코더 (20/30) 는 시간 후보로서, 이 PU 를 포함하는 CU 의 우측 맨 아래의 PU 의 모션 또는 이 PU 를 포함하는 CU 의 중심 PU들 내의 우측 맨 아래의 PU 의 모션 중 어느 하나를 이용한다.
- 상기 프로세스에 의해 식별된 모션 벡터들이 병합 모드에 대한 모션 후보를 생성하는데 이용될 때, 비디오 코더 (20/30) 는 (픽처 순서 카운트, 즉 POC 에 의해 반영된) 시간 위치에 기초하여 모션 벡터들을 스케일링할 필요가 있을 수도 있다.
- HEVC 에서, PPS 는 플래그 enable_temporal_mvp_flag 를 포함한다. 0 과 동일한 temporal_id 를 가진 특정 픽처가 0 과 동일한 enable_temporal_mvp_flag 를 갖는 PPS 와 관련 있을 때, 비디오 코더 (20/30) 는 DPB 에서의 참조 픽처들 모두를 "시간 모션 벡터 예측을 위해 미사용됨" 으로 마크할 수도 있고, 디코딩 순서의 그 특정 픽처 이전의 픽처들로부터의 어떠한 모션 벡터도 특정 픽처 또는 디코딩 순서의 특정 픽처 다음의 픽처의 디코딩 시의 시간 모션 벡터 예측변수로서 이용되지 않을 것이다.
현재의 슬라이스가 B 슬라이스이고 상기 설명된 공간 및 시간 후보 도출 프로세스들로부터 도출된 후보들의 총 수가 후보들의 최대 수보다 더 작고 1 보다 더 크다면, 비디오 코더 (20/30) 는 양-예측 후보들을 생성하기 위한 프로세스를 인보크할 수도 있다. 비디오 코더 (20/30) 는 다음과 같이 병합 모드 후보 리스트에 포함될 양-예측 후보들을 도출할 수도 있다 :
- 이하 표 1 에 기초하여, 인덱스 combIdx 를 가진 결합된 양-예측 후보를 생성하기 위해, 이용가능하다면 10CandIdx 와 동일한 엔트리를 가진 후보 리스트의 RefList0 모션 정보 (MotList0) 및 이용가능하다면 MotList0 과 동일하지 않고 11CandIdx 와 동일한 엔트리를 가진 후보 리스트의 RefList1 모션 정보 (MotList1) 는 결합된 양-예측 후보의 RefList0 및 RefList1 모션 정보로서 비디오 코더 (20/30) 에 의해 다시 이용될 수도 있다.
Figure 112015033277091-pct00001
비디오 코더 (20/30) 는 공간, 시간, 및 양-예측 후보들을 결정하기 위한 상기 설명된 상기 3 개의 프로세스들로부터 도출된 후보들의 총 수가 후보들의 최대 수보다 더 작게 된다면 병합 모드 후보 리스트에 포함될 제로 모션 벡터 후보들을 도출할 수도 있다. 이러한 경우에, 비디오 코더 (20/30) 는 후보 리스트에 각각의 참조 픽처에 대한 제로 모션 벡터들을 삽입할 수도 있다.
HEVC WD 10 에서, MRG 리스트에서의 후보들의 총 수는 최대 5 이며, five_minus_max_num_merge_cand 는 슬라이스 헤더에서 5 에서 감산된 MRG 후보들의 최대 수를 특정하도록 시그널링된다. 후보들의 총 수 N 이 (5-five_minus_max_num_merge_cand) 에 의해 도출된다고 하면, 병합 후보 리스트에서의 제 1 N 개의 후보들이 선택되고, 그들 중 하나는 현재의 예측 유닛에 대한 모션 벡터를 코딩하기 위해 선정될 수도 있다. 즉, 일단 N 개의 후보들이 병합 후보 리스트에 삽입되었다면, 더 많은 후보들을 삽입할 필요가 없고, 병합 리스트 구성 프로세스는 종료될 수도 있다.
3D-HEVC 에서, 각각의 액세스 유닛은 각각 고유한 뷰 id, 뷰 순서 인덱스, 계층 id, 또는 일부 다른 이러한 식별자를 포함하는 다수의 뷰 컴포넌트들을 포함한다. 뷰 컴포넌트는 텍스처 뷰 컴포넌트는 물론 깊이 뷰 컴포넌트를 포함한다. 텍스처 뷰 컴포넌트는 하나 이상의 텍스처 슬라이스들로서 코딩되는 한편, 깊이 뷰 컴포넌트는 하나 이상의 깊이 슬라이스들로서 코딩된다. 일부 경우들에서, 텍스처 뷰 컴포넌트 및 깊이 뷰 컴포넌트는 상이한 공간 해상도들을 갖는다.
3D 비디오 데이터는 멀티뷰 비디오 플러스 깊이 포맷을 이용하여 표현될 수도 있고, 이 경우 캡처된 뷰들 (텍스처) 은 대응하는 깊이 맵들과 연관된다. 3D 비디오 코딩에서, 텍스처들 및 깊이 맵들은 3D 비디오 비트스트림으로 코딩 및 멀티플렉싱된다. 깊이 맵들은 루마 샘플들이 깊이 값들을 표현하는 그레이스케일 비디오로서 코딩되고, 종래의 인트라- 및 인터-코딩 방법들은 깊이 맵 코딩을 위해 적용될 수 있다.
상기 소개된 바와 같이, MPI 는 병합 모드의 일부로서 현재 이용되는 3D-HEVC 에서의 깊이에 대한 코딩 툴이다. MPI 가 인에이블될 때, 예를 들어, 시퀀스 레벨에서, 연관된 텍스처 뷰 컴포넌트에서의 공동배치된 블록의 모션 정보, 연관된 코딩 구조, 및 스플릿 정보가 깊이 뷰 컴포넌트에서의 현재의 블록에 의해 이용될 수도 있다. 따라서, 비트스트림으로 모션 정보를 송신할 필요는 없다. 상기 논의한 바와 같이, 깊이 뷰 컴포넌트 및 텍스처 뷰 컴포넌트는 상이한 공간 해상도들을 가질 수도 있다. 따라서, 어구 "공동배치된 블록" 은 깊이 뷰 컴포넌트의 블록에 대응하는 텍스처 뷰 컴포넌트에서의 블록을 지칭하는 것으로 이해되어야 하며, 이는 텍스처 및 깊이 뷰 컴포넌트들 간의 공간 해상도들의 차이들을 고려하는 것을 포함할 수도 있다.
MPI 가 깊이 블록에 대해 이용되는지 여부를 시그널링하기 위해, bMPIUsed 로 나타내지는 플래그가 이용된다. 예를 들어, MPI 가 하나의 예측 유닛에 대한 최종 코딩 모드로서 이용될 때, bMPIUsed 는 1 과 동일하게 설정될 수도 있다. MPI 가 하나의 깊이 뷰 컴포넌트에 대해 인에이블될 때, 모션 정보 (모션 벡터들, 참조 인덱스들을 포함), 연관된 코딩 구조, 및 스플릿 정보가 텍스처 뷰 컴포넌트로부터 인계되고 최대 사이즈가 1 씩 증가되는 (이는 6 이 되는) 병합 후보 리스트에 삽입된다. 즉, 이 플래그는 0 과 동일하게 설정된 인덱스를 가진 특수한 병합 후보로서 취급되고, 다른 병합 후보들 (공간/시간/결합된 양-예측/제로 모션 벡터 병합 후보들) 의 인덱스가 1 씩 증가된다.
단순화를 위해, MPI 모드 하에서 도출된 모션 벡터 후보는 본 개시물에서 MPI 후보로 지칭될 것이다.
3D-HEVC 에서의 MPI 의 현재의 설계는 일부 결점들을 가질 수도 있다. 하나의 예로서, 항상 MPI 후보는 모든 병합 후보들보다 더 높은 우선순위를 갖는 것으로 가정되는데, 이는 예를 들어 병합 후보들의 이용이 MPI 후보의 가능성보다 더 높은 가능성을 가질 수도 있는, 일부 시퀀스들에 대한 코딩 효율을 감소시킬 수도 있다. 다른 예로서, MPI 는 현재의 모션 정보의 예측변수로서 더욱 이용될 수 있는 기본 뷰에서의 공동배치된 블록들의 모션 정보 및 코딩 구조를 바로 다시 이용한다.
본 개시물은 기존의 기법들의 결점들 중 일부를 다룰 수도 있는 3D-HEVC 에 대한 MPI 에 관련된 기법들을 제안한다. 본 개시물의 하나의 기법에 따르면, MPI 가 이용되는 것을 표시하는 플래그를 송신하고 0 과 동일한 인덱스를 갖기 위해 MPI 후보를 도출하는 대신에, 비디오 코더 (20/30) 는 단지 코딩 구조 없이 모션 정보만이 인계되는 병합 리스트에서의 다른 후보들과 유사하게, 병합 인덱스가 시그널링된 병합 후보로서 텍스처 뷰에서의 공동배치된 블록의 모션 정보를 취급할 수도 있다.
본 개시물의 다른 기법에 따르면, 비디오 코더 (20/30) 는 MPI 후보가 0 보다 더 큰 인덱스, 예를 들어 1 과 동일한 인덱스를 갖도록 병합 후보 리스트에 MPI 후보를 추가할 수도 있다. 대안으로, 비디오 코더 (20/30) 는 MPI 후보가 2, 3, 4, 5 의 인덱스, 또는 임의의 다른 이용가능한 인덱스를 갖도록 병합 후보 리스트에 MPI 후보를 추가할 수도 있다. 예를 들어, 비디오 코더 (20/30) 는 리스트에서의 시간 병합 후보 직전에, 제 1 공간 후보가 병합 후보 리스트에 추가된 후에, 또는 N 개의 공간 후보들이 검사된 직후에 MPI 후보를 추가할 수도 있으며, N 은 0, 1, 2 및 3 과 동일하다. 일부 예들에서, MPI 가 병합 후보로서 취급될 때, 대응하는 인덱스는 하나의 슬라이스 또는 하나의 픽처 내에서 적응적으로 변경될 수 있다. 따라서, 비디오 인코더 (20) 는 비디오 디코더 (30) 에 그 슬라이스 또는 픽처에 대한 병합 인덱스를 시그널링할 수 있고, 또는 비디오 디코더 (30) 는 콘텍스트 정보에 기초하여 (예를 들어, 이전에 디코딩된 블록들에 관한 정보에 기초하여) 그 슬라이스 또는 픽처에 대한 병합 인덱스를 결정할 수도 있다.
본 개시물의 다른 기법에 따르면, 비디오 코더 (20/30) 는 AMVP 모드에 대한 추가적인 후보로서 텍스처 뷰에서의 공동배치된 블록의 모션 정보를 이용할 수도 있다. 이러한 경우들에서, AMVP 후보 리스트 사이즈는 1 씩 증가될 수도 있다. 다른 예에서, AMVP 후보 리스트 사이즈는 바뀌지 않을 수도 있고, MPI 후보는 다르게 포함된 후보를 대신할 수도 있다. 예를 들어, MPI 후보는 시간 AMVP 후보를 대신할 수도 있다. 비디오 코더 (20/30) 는 MPI 후보에 임의의 인덱스를 할당할 수도 있다. 예를 들어, 비디오 코더 (20/30) 는 MPI 후보에 N 의 인덱스를 할당할 수도 있으며, 여기서 N 은 0, 1, 2, 또는 임의의 다른 값일 수 있다.
도 3 은 상기 설명된 인터-뷰 예측 기법들을 포함하는, 본 개시물에 설명된 기법들을 구현할 수도 있는 일 예의 비디오 인코더 (20) 를 예시하는 블록도이다. 비디오 인코더 (20) 는 비디오 슬라이스들 내의 비디오 블록들의 인트라- 및 인터-코딩을 수행할 수도 있다. 인트라-코딩은 주어진 비디오 프레임 또는 픽처 내의 비디오에서의 공간 리던던시를 감소 또는 제거하기 위해 공간 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접한 프레임들 또는 픽처들 내의 비디오에서의 시간 리던던시를 감소 또는 제거하기 위해 시간 예측 및/또는 인터-뷰 예측에 의존한다. 인트라-모드 (I 모드) 는 몇몇 공간 기반 압축 모드들 중 임의의 것을 지칭할 수도 있다. 인터-모드들, 이를 테면 단방향 예측 (P 모드) 또는 양-예측 (B 모드) 은 몇몇 시간 기반 및/또는 인터-뷰 기반 압축 모드들 중 임의의 것을 지칭할 수도 있다.
도 3 의 예에서, 비디오 인코더 (20) 는 파티셔닝 및 모드 선택 유닛 (35), 예측 프로세싱 유닛 (41), 필터 유닛 (63), 참조 픽처 메모리 (64), 합산기 (50), 변환 프로세싱 유닛 (52), 양자화 유닛 (54), 및 엔트로피 인코딩 유닛 (56) 을 포함한다. 예측 프로세싱 유닛 (41) 은 모션 및 디스패리티 추정 유닛 (42), 모션 및 디스패리티 보상 유닛 (44), 및 인트라 예측 프로세싱 유닛 (46) 을 포함한다. 비디오 블록 복원을 위해, 비디오 인코더 (20) 는 또한 역 양자화 유닛 (58), 역 변환 프로세싱 유닛 (60), 및 합산기 (62) 를 포함한다. 필터 유닛 (63) 은 디블록킹 필터 (deblocking filter), 적응적 루프 필터 (adaptive loop filter; ALF), 및 샘플 적응적 오프셋 (sample adaptive offset; SAO) 필터와 같은 하나 이상의 루프 필터들을 표현하는 것으로 의도된다. 필터 유닛 (63) 은 인 루프 필터인 것으로 도 3 에 도시되지만, 다른 구성들에서, 필터 유닛 (63) 은 포스트 루프 필터로서 구현될 수도 있다.
도 3 에 도시한 바와 같이, 비디오 인코더 (20) 는 비디오 데이터를 수신하고, 파티셔닝 및 모드 선택 유닛 (35) 은 그 데이터를 비디오 블록들로 파티셔닝한다. 이 파티셔닝은 또한, 슬라이스들, 타일들, 또는 다른 더 큰 유닛들로의 파티셔닝은 물론, 예를 들어, LCU들 및 CU들의 쿼드트리 구조에 따른 비디오 블록 파티셔닝을 포함할 수도 있다. 파티셔닝 및 모드 선택 유닛 (35) 은 슬라이스 또는 프레임에 대한 파티셔닝 및 코딩 모드들의 결합들의 최상의 세트를 선택하기 위해, 예를 들어 레이트 왜곡 최적화 (rate distortion optimization; RDO) 를 이용하여 다양한 타입들의 파티셔닝을 테스트한다. 다양한 코딩 모드들을 테스트하기 위하여, 파티셔닝 및 모드 선택 유닛 (35) 은 일부 경우들에서, 예측 프로세싱 유닛 (41) 과 고도로 통합될 수도 있다. 비디오 인코더 (20) 는 일반적으로 인코딩될 비디오 슬라이스 내의 비디오 블록들을 인코딩하는 컴포넌트들을 예시한다. 슬라이스는 다수의 비디오 블록들로 (그리고 가능하다면 타이들로 지칭되는 비디오 블록들의 세트들로) 분할될 수도 있다. 예측 프로세싱 유닛 (41) 은 오차 결과들 (예를 들어, 코딩 레이트 및 왜곡의 레벨) 에 기초한 현재의 비디오 블록에 대해, 복수의 가능한 코딩 모드들 중 하나, 이를 테면 복수의 인트라 코딩 모드들 중 하나 또는 복수의 인터 코딩 모드들 중 하나를 선택할 수도 있다. 예측 프로세싱 유닛 (41) 은 결과의 인트라- 또는 인터-코딩된 블록을, 잔차 블록 데이터를 생성하기 위해 합산기 (50) 에 제공하고, 참조 픽처로서의 이용을 위한 인코딩된 블록을 복원하기 위해 합산기 (62) 에 제공할 수도 있다.
예측 프로세싱 유닛 (41) 내의 인트라-예측 프로세싱 유닛 (46) 은 공간 압축을 제공하기 위해 코딩될 현재의 블록과 동일한 프레임 또는 슬라이스에서의 하나 이상의 이웃하는 블록들에 대해 현재의 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다. 예측 프로세싱 유닛 (41) 내의 모션 및 디스패리티 추정 유닛 (42) 및 모션 및 디스패리티 보상 유닛 (44) 은 시간 또는 뷰 압축을 제공하기 위해 하나 이상의 참조 픽처들 및/또는 참조 뷰들에서의 하나 이상의 예측 블록들에 대해 현재의 비디오 블록의 인터-예측 코딩 및/또는 인터뷰 코딩을 수행한다.
파티셔닝 및 모드 선택 유닛 (35) 은, 예측 프로세싱 유닛 (41) 과 함께, 비디오 시퀀스에 대한 미리 결정된 패턴에 따라 비디오 슬라이스에 대한 인터-예측 모드 및/또는 인터뷰 예측 모드를 결정하도록 구성될 수도 있다. 미리 결정된 패턴은 P 슬라이스들, 또는 B 슬라이스들로서 시퀀스에서의 비디오 슬라이스들을 지정할 수도 있다. 모션 및 디스패리티 추정 유닛 (42) 및 모션 및 디스패리티 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념상 목적으로 개별적으로 예시된다. 모션 및 디스패리티 추정 유닛 (42) 에 의해 수행된 모션 및 디스패리티 추정은, 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 예를 들어, 모션 벡터는 참조 픽처 내의 예측 블록에 대한 현재의 비디오 프레임 또는 픽처 내의 비디오 블록의 PU 의 변위를 표시할 수도 있다. 모션 및 디스패리티 추정 유닛 (42) 에 의해 수행된 디스패리티 추정은, 상이한 뷰에서의 블록들로부터 현재 코딩된 블록을 예측하는데 이용될 수도 있는 디스패리티 모션 벡터들을 생성하는 프로세스이다.
예측 블록은 픽셀 차이의 관점에서 코딩될 비디오 블록의 PU 에 밀접하게 매칭하는 것으로 확인되는 블록이며, 이는 SAD (sum of absolute difference), SSD (sum of square difference), 또는 다른 차이 메트릭들에 의해 결정될 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 참조 픽처 메모리 (64) 에 저장된 참조 픽처들의 서브-정수 픽셀 포지션들에 대한 값들을 계산할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 1/4 픽셀 포지션들, 1/8 픽셀 포지션들, 또는 참조 픽처의 다른 분수 픽셀 포지션들의 값들을 보간할 수도 있다. 따라서, 모션 및 디스패리티 추정 유닛 (42) 은 풀 픽셀 포지션들 및 분수 픽셀 포지션들에 대해 모션 검색을 수행하고 분수 픽셀 정밀도를 가진 모션 벡터를 출력할 수도 있다.
모션 및 디스패리티 추정 유닛 (42) 은 PU 의 포지션을 참조 픽처의 예측 블록의 포지션과 비교함으로써 인터-코딩된 또는 인터뷰 예측된 슬라이스에서의 비디오 블록의 PU 에 대한 모션 벡터 (모션 보상된 예측용) 및/또는 디스패리티 모션 벡터 (디스패리티 보상된 예측용) 를 계산한다. 참조 픽처는 각각이 참조 픽처 메모리 (64) 에 저장된 하나 이상의 참조 픽처들을 식별하는 제 1 참조 픽처 리스트 (RefPicList0) 또는 제 2 참조 픽처 리스트 (RefPicList1) 로부터 선택될 수도 있다. 모션 및 디스패리티 추정 유닛 (42) 은 계산된 모션 벡터 및/또는 디스패리티 벡터를 엔트로피 인코딩 유닛 (56) 및 모션 및 디스패리티 보상 유닛 (44) 으로 전송한다.
모션 및 디스패리티 보상 유닛 (44) 에 의해 수행된 모션 보상 및/또는 디스패리티 보상은, 모션 추정 및/또는 디스패리티 추정에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페치하는 것 또는 생성하는 것, 가능하게는 서브-픽셀 정밀도에 보간들을 수행하는 것을 수반할 수도 있다. 현재의 비디오 블록의 PU 에 대한 모션 벡터 및/또는 디스패리티를 수신 시에, 모션 및 디스패리티 보상 유닛 (44) 은, 참조 픽처 리스트들 중 하나에서 모션 벡터 및/또는 디스패리티 벡터가 가리키는 예측 블록을 위치결정할 수도 있다. 비디오 인코더 (20) 는 코딩되는 현재의 비디오 블록의 픽셀 값들에서 예측 블록의 픽셀 값들을 감산함으로써 잔차 비디오 블록을 형성하여, 픽셀 차이 값들을 형성한다. 픽셀 차이 값들은 블록에 대한 잔차 데이터를 형성하고, 루마 차이 컴포넌트와 크로마 차이 컴포넌트 양자를 포함할 수도 있다. 합산기 (50) 는 이 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 표현한다. 모션 및 디스패리티 보상 유닛 (44) 은 또한, 비디오 슬라이스의 비디오 블록들을 디코딩하는데 있어서 비디오 디코더 (30) 에 의한 이용을 위해 비디오 블록들 및 비디오 슬라이스와 연관된 신택스 엘리먼트들을 생성할 수도 있다.
일부 예들에서, 모션 및 디스패리티 보상 유닛 (42) 은 모션 벡터 예측 프로세스를 이용하여 모션 벡터들을 표시하는 신택스 엘리먼트들을 생성할 수도 있다. 모션 벡터 예측 프로세스들은 본 개시물에 설명한 바와 같이 AMVP 모드 및 병합 모드를 포함할 수도 있다. 예를 들어, 깊이 뷰 컴포넌트에서의 깊이 블록에 대해, 모션 및 디스패리티 보상 유닛 (42) 은 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록의 모션 정보에 기초하여 MPI 후보를 도출하고 병합 모드 동작 또는 AMVP 동작과 같은 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 MPI 후보를 추가할 수도 있다. 모션 및 디스패리티 보상 유닛 (42) 은 인코딩된 비트스트림에의 포함을 위해, 후보 리스트에서의 후보의 인덱스를 생성함으로써 비디오 블록을 인코딩하는데 이용된 모션 벡터를 시그널링할 수도 있다. 깊이 블록이 병합 모드에서 코딩되는지 AMVP 모드에서 코딩되는지 여부에 의존하여, 인덱스는 깊이 블록을 디코딩하기 위해 이용될 모든 모션 정보를 식별할 수도 있고, 또는 다른 시그널링된 정보와 함께 깊이 블록을 디코딩하기 위해 이용될 모션 벡터를 식별하는 모션 벡터 예측변수를 식별할 수도 있다.
인트라-예측 프로세싱 유닛 (46) 은 상기 설명한 바와 같이, 모션 및 디스패리티 추정 유닛 (42) 및 모션 및 디스패리티 보상 유닛 (44) 에 의해 수행된 인터-예측에 대한 대안으로서, 현재의 블록을 인트라-예측할 수도 있다. 특히, 인트라-예측 프로세싱 유닛 (46) 은 현재의 블록을 인코딩하기 위해 이용할 인트라-예측 모드를 결정할 수도 있다. 일부 예들에서, 인트라-예측 프로세싱 유닛 (46) 은 예를 들어, 개별의 인코딩 패스들 동안, 다양한 인트라-예측 모드들을 이용하여 현재의 블록을 인코딩할 수도 있고, 인트라-예측 프로세싱 유닛 (46) (또는 일부 예들에서는 모드 선택 유닛 (40)) 은 테스트된 모드들로부터 이용할 적절한 인트라-예측 모드를 선택할 수도 있다. 예를 들어, 인트라-예측 프로세싱 유닛 (46) 은 다양한 테스트된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 이용하여 레이트-왜곡 값들을 계산하고, 테스트된 모드들 중에서 최상의 레이트-왜곡 특성들을 갖는 인트라-예측 모드를 선택할 수도 있다. 레이트-왜곡 분석은 일반적으로 인코딩된 블록과 인코딩된 블록을 생성하기 위해 인코딩되었던 원래의 미인코딩된 블록 간의 왜곡 (또는 오차) 의 양은 물론, 인코딩된 블록을 생성하는데 이용된 비트 레이트 (즉, 비트들의 수) 를 결정한다. 인트라-예측 프로세싱 유닛 (46) 은 어느 인트라-예측 모드가 블록에 대한 최상의 레이트-왜곡 값을 보이는지를 결정하기 위해 다양한 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터 비율들을 계산할 수도 있다.
어느 경우나, 블록에 대한 인트라-예측 모드를 선택한 후에, 인트라-예측 프로세싱 유닛 (46) 은 블록에 대한 선택된 인트라-예측 모드를 표시하는 정보를 엔트로피 코딩 유닛 (56) 에 제공할 수도 있다. 엔트로피 코딩 유닛 (56) 은 본 개시물의 기법들에 따라 선택된 인트라-예측 모드를 표시하는 정보를 인코딩할 수도 있다. 비디오 인코더 (20) 는 복수의 인트라-예측 모드 인덱스 테이블들 및 복수의 변형된 인트라-예측 모드 인덱스 테이블들 (코드워드 맵핑 테이블들로도 지칭) 을 포함할 수도 있는 송신된 비트스트림 구성 데이터에, 다양한 블록들에 대한 인코딩 콘텍스트들의 정의들, 및 콘텍스들 각각에 대해 이용할 가장 가능성있는 인트라-예측 모드, 인트라-예측 모드 인덱스 테이블, 및 변형된 인트라-예측 모드 인덱스 테이블의 표시들을 포함할 수도 있다.
예측 프로세싱 유닛 (41) 이 인터-예측 또는 인트라-예측 중 어느 하나를 통해 현재의 비디오 블록에 대한 예측 블록을 생성한 후, 비디오 인코더 (20) 는 현재의 비디오 블록에서 예측 블록을 감산함으로써 잔차 비디오 블록을 형성한다. 잔차 블록에서의 잔차 비디오 데이터는 하나 이상의 TU들에 포함되고 변환 프로세싱 유닛 (52) 에 적용될 수도 있다. 변환 프로세싱 유닛 (52) 은 변환, 이를 테면 이산 코사인 변환 (DCT) 또는 개념상 유사한 변환을 이용하여 잔차 비디오 데이터를 잔차 변환 계수들로 변환한다. 변환 프로세싱 유닛 (52) 은 잔차 비디오 데이터를 픽셀 도메인으로부터 변환 도메인, 이를 테면 주파수 도메인으로 컨버팅할 수도 있다.
변환 프로세싱 유닛 (52) 은 결과의 변환 계수들을 양자화 유닛 (54) 으로 전송할 수도 있다. 양자화 유닛 (54) 은 비트 레이트를 더욱 감소시키기 위해 변환 계수들을 양자화한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 변형될 수도 있다. 일부 예들에서, 양자화 유닛 (54) 은 그 후 양자화된 변환 계수들을 포함하는 매트릭스의 스캔을 수행할 수도 있다. 대안으로, 엔트로피 인코딩 유닛 (56) 이 그 스캔을 수행할 수도 있다.
양자화에 이어, 엔트로피 인코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 인코딩한다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 콘텍스트 적응적 가변 길이 코딩 (CAVLC), 콘텍스트 적응적 이진 산술 코딩 (CABAC), 신택스 기반 콘텍스트 적응적 이진 산술 코딩 (SBAC), PIPE (probability interval partitioning entropy) 코딩 또는 다른 엔트로피 인코딩 방법론 또는 기법을 수행할 수도 있다. 엔트로피 인코딩 유닛 (56) 에 의한 엔트로피 인코딩에 이어, 인코딩된 비트스트림은 비디오 디코더 (30) 에 송신되거나, 또는 비디오 디코더 (30) 에 의한 추후 송신 또는 취출을 위해 아카이브될 수도 있다. 엔트로피 인코딩 유닛 (56) 은 또한 코딩되는 현재의 비디오 슬라이스에 대한 모션 벡터들 및 다른 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
역 양자화 유닛 (58) 및 역 변환 프로세싱 유닛 (60) 은 참조 픽처의 참조 블록으로서의 추후 이용을 위해 픽셀 도메인에서의 잔차 블록을 복원하기 위해 각각 역 양자화 및 역 변환을 적용한다. 모션 및 디스패리티 보상 유닛 (44) 은 잔차 블록을 참조 픽처 리스트들 중 하나의 참조 픽처 리스트 내의 참조 픽처들 중 하나의 참조 픽처의 예측 블록에 추가함으로써 참조 블록을 계산할 수도 있다. 모션 및 디스패리티 보상 유닛 (44) 은 또한 모션 추정에서의 이용을 위해 서브-정수 픽셀 값들을 계산하기 위해 복원된 잔차 블록에 하나 이상의 보간 필터들을 적용할 수도 있다. 합산기 (62) 는 참조 픽처 메모리 (64) 에의 저장을 위한 참조 블록을 생성하기 위해 모션 및 디스패리티 보상 유닛 (44) 에 의해 생성된 모션 보상된 예측 블록에 복원된 잔차 블록을 추가한다. 참조 블록은 후속 비디오 프레임 또는 픽처에서의 블록을 인터-예측하기 위한 참조 블록으로서 모션 및 디스패리티 추정 유닛 (42) 및 모션 및 디스패리티 보상 유닛 (44) 에 의해 이용될 수도 있다.
도 4 는 상기 설명된 인터-뷰 예측 기법들을 포함하는, 본 개시물에 설명된 기법들을 구현할 수도 있는 일 예의 비디오 디코더 (30) 를 예시하는 블록도이다. 도 4 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (80), 예측 프로세싱 유닛 (81), 역 양자화 유닛 (86), 역 변환 프로세싱 유닛 (88), 합산기 (90), 필터 유닛 (91), 및 참조 픽처 메모리 (92) 를 포함한다. 예측 프로세싱 유닛 (81) 은 모션 및 디스패리티 보상 유닛 (82) 및 인트라 예측 프로세싱 유닛 (84) 을 포함한다. 비디오 디코더 (30) 는 일부 예들에서, 도 3 으로부터의 비디오 인코더 (20) 에 대하여 설명된 인코딩 패스와 일반적으로 상호적인 디코딩 패스를 수행할 수도 있다.
디코딩 프로세스 동안, 비디오 디코더 (30) 는 비디오 인코더 (20) 로부터, 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관된 신택스 엘리먼트들을 표현하는 인코딩된 비디오 비트스트림을 수신한다. 비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (80) 은 양자화된 계수들, 모션 벡터들, 및 다른 신택스 엘리먼트들을 생성하기 위해 비트스트림을 엔트로피 디코딩한다. 엔트로피 디코딩 유닛 (80) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 예측 프로세싱 유닛 (81) 으로 포워딩한다. 비디오 디코더 (30) 는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 엘리먼트들을 수신할 수도 있다.
비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩될 때, 예측 프로세싱 유닛 (81) 의 인트라 예측 프로세싱 유닛 (84) 은 현재의 프레임 또는 픽처의 이전에 디코딩된 블록들로부터의 시그널링된 인트라 예측 모드 및 데이터에 기초하여 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 비디오 프레임이 인터-코딩된 (즉, B, P 또는 GPB) 슬라이로서 코딩될 때, 예측 프로세싱 유닛 (81) 의 모션 및 디스패리티 보상 유닛 (82) 은 엔트로피 디코딩 유닛 (80) 으로부터 수신된 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성한다. 예측 블록들은 참조 픽처 리스트들 중 하나의 참조 픽처 리스트 내의 참조 픽처들 중 하나의 참조 픽처로부터 생성될 수도 있다. 비디오 디코더 (30) 는 참조 픽처 메모리 (92) 에 저장된 참조 픽처들에 기초한 디폴트 구성 기법들을 이용하여, 참조 프레임 리스트들, 리스트 0 및 리스트 1 을 구성할 수도 있다.
모션 및 디스패리티 보상 유닛 (82) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱함으로써 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 그 예측 정보를 이용하여 디코딩되는 현재의 비디오 블록에 대한 예측 블록들을 생성한다. 예를 들어, 모션 및 디스패리티 보상 유닛 (82) 은 비디오 슬라이스의 비디오 블록들을 코딩하는데 이용된 예측 모드 (예를 들어, 인트라- 또는 인터-예측), 인터-예측 또는 인터-뷰 예측 슬라이스 타입 (예를 들어, B 슬라이스 또는 P 슬라이스), 슬라이스에 대한 참조 픽처 리스트들 중 하나 이상에 대한 구성 정보, 슬라이스의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터들 및/또는 디스패리티 벡터들, 슬라이스의 각각의 인터-코딩된 비디오 블록에 대한 인터-예측 상태, 및 현재의 비디오 슬라이스에서의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정하기 위해 수신된 신택스 엘리먼트들 중 일부를 이용한다.
일부 예들에서, 모션 및 디스패리티 보상 유닛 (82) 은 모션 벡터 예측 프로세스를 이용하여 모션 벡터들을 표시하는 시그널링된 신택스 엘리먼트들을 결정할 수도 있다. 모션 벡터 예측 프로세스들은 본 개시물에 설명한 바와 같이 AMVP 모드 및 병합 모드를 포함할 수도 있다. 예를 들어, 깊이 뷰 컴포넌트에서의 깊이 블록에 대해, 모션 및 디스패리티 보상 유닛 (82) 은 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록의 모션 정보에 기초하여 MPI 후보를 도출하고, 병합 모드 동작 또는 AMVP 동작과 같은 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 MPI 후보를 추가할 수도 있다.
모션 및 디스패리티 보상 유닛 (82) 은 또한 보간 필터들에 기초하여 보간을 수행할 수도 있다. 모션 및 디스패리티 보상 유닛 (82) 은 참조 블록들의 서브-정수 픽셀들에 대한 보간된 값들을 계산하기 위해 비디오 블록들의 인코딩 동안 비디오 인코더 (20) 에 의해 이용되는 바와 같은 보간 필터들을 이용할 수도 있다. 이 경우에, 모션 및 디스패리티 보상 유닛 (82) 은 수신된 신택스 엘리먼트들로부터 비디오 인코더 (20) 에 의해 이용된 보간 필터들을 결정하고, 그 보간 필터들을 이용하여 예측 블록들을 생성할 수도 있다.
역 양자화 유닛 (86) 은 비트스트림으로 제공되고 엔트로피 디코딩 유닛 (80) 에 의해 디코딩된 양자화된 변환 계수들을 역 양자화, 즉, 양자화해제 (de-quantize) 한다. 역 양자화 프로세스는 양자화의 정도 및 마찬가지로 적용되어야 하는 역 양자화의 정도를 결정하기 위해 비디오 슬라이스에서의 각각의 비디오 블록에 대해 비디오 인코더 (20) 에 의해 계산된 양자화 파라미터의 이용을 포함할 수도 있다. 역 변환 프로세싱 유닛 (88) 은 픽셀 도메인에서의 잔차 블록들을 생성하기 위하여 변환 계수들에, 역 변환, 예를 들어 역 DCT, 역 정수 변환, 또는 개념상 유사한 역 변환 프로세스를 적용한다.
모션 및 디스패리티 보상 유닛 (82) 이 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재의 비디오 블록에 대한 예측 블록을 생성한 후, 비디오 디코더 (30) 는 역 변환 프로세싱 유닛 (88) 으로부터의 잔차 블록들을 모션 및 디스패리티 보상 유닛 (82) 에 의해 생성된 대응하는 예측 블록들과 합산함으로써 디코딩된 비디오 블록을 형성한다. 합산기 (90) 는 이 합산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 표현한다. 원한다면, (코딩 루프 내의 또는 코딩 루프 다음의) 루프 필터들이 또한 픽셀 천이 (transition) 들을 평활화하거나, 다르게는 비디오 품질을 개선하는데 이용될 수도 있다. 필터 유닛 (91) 은 디블록킹 필터, 적응적 루프 필터 (ALF), 및 샘플 적응적 오프셋 (SAO) 필터와 같은 하나 이상의 루프 필터들을 표현하는 것으로 의도된다. 필터 유닛 (91) 이 인 루프 필터인 것으로 도 4 에 도시되지만, 다른 구성들에서, 필터 유닛 (91) 은 포스트 루프 필터로서 구현될 수도 있다. 그 후, 주어진 프레임 또는 픽처에서의 디코딩된 비디오 블록들은, 후속 모션 보상을 위해 이용된 참조 픽처들을 저장하는 참조 픽처 메모리 (92) 에 저장된다. 참조 픽처 메모리 (92) 는 또한 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상의 추후 프리젠테이션을 위해 디코딩된 비디오를 저장한다.
도 5 는 본 개시물의 기법들에 따른 일 예의 인코딩 프로세스를 도시하는 플로우차트이다. 도 5 의 기법들은 비디오 인코더 (20) 에 대하여 설명될 것이지만 다른 타입들의 비디오 인코더들에 의해 수행될 수도 있다. 깊이 뷰 컴포넌트에서의 비디오 블록에 대해, 비디오 인코더 (20) 는 텍스처 뷰 컴포넌트에서의 대응하는 블록의 모션 정보에 기초하여 모션 정보 후보를 도출한다 (150). 대응하는 블록은 예를 들어 텍스처 뷰 컴포넌트에서, 공간 해상도의 잠재적인 차이들을 고려하는, 공동배치된 블록일 수도 있다. 비디오 인코더 (20) 는 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 모션 정보 후보를 추가한다 (152). 후보 리스트에서의 각각의 후보는 연관된 인덱스를 가질 수도 있다. 모션 벡터 예측 동작은, 예를 들어 AMVP 모드 동작, 병합 모드 동작, 또는 일부 다른 이러한 모션 벡터 예측 동작일 수도 있다. 모션 벡터 예측 동작이 AMVP 동작일 때, 비디오 인코더 (20) 는 모션 정보 후보를 모션 벡터 예측변수로서 이용하고 모션 벡터 차이 정보를 인코딩하여, 모션 정보 후보 및 모션 벡터 차이 정보가 깊이 블록을 코딩하는데 이용된 모션 벡터에 대응하도록 할 수도 있다. 병합 모드 또는 AMVP 모드 중 어느 하나를 위해 후보 리스트에 모션 정보 후보를 추가할 때, 비디오 인코더는 0 보다 더 큰 인덱스들을 포함하는 임의의 인덱스에 모션 정보 후보를 할당할 수도 있다.
비디오 인코더 (20) 는 모션 정보 후보에 대응하는 인덱스 값을 인코딩하고 (154) 모션 정보 후보로부터 결정된 모션 정보에 기초하여 현재의 블록을 인코딩할 수도 있다 (156). 일부 예들에서, 비디오 인코더 (20) 는 인코딩된 비트스트림에의 포함을 위해, 모션 정보 후보가 인에이블되는 것을 표시하는 제 1 신택스 엘리먼트를 생성한다. 본 개시물에 이용된 바와 같이, 후보 리스트에 모션 정보 후보를 추가하는 것은 일반적으로 현재의 블록을 코딩하는데 이용된 후보 리스트에 동일한 뷰의 상이한 뷰 컴포넌트에서의 공동배치된 비디오 블록의 모션 정보를 추가하는 것을 지칭한다. 일부 예들에서, 공동배치된 비디오 블록과 연관된, 파티션 정보와 같은 코딩 구조 정보는 후보 리스트에 포함되지 않을 수도 있다. 따라서, 그 비디오 블록의 코딩 구조는 제 2 뷰에서의 공동배치된 블록의 코딩 구조와는 상이할 수도 있다.
도 6 은 본 개시물의 기법들에 따른 일 예의 디코딩 프로세스를 도시한 플로우차트이다. 도 6 의 기법들은 비디오 디코더 (30) 에 대하여 설명될 것이지만 다른 타입들의 비디오 디코더에 의해 수행될 수도 있다. 깊이 뷰 컴포넌트에서의 비디오 블록에 대해, 비디오 디코더 (30) 는 텍스처 뷰 컴포넌트에서의 대응하는 블록의 모션 정보에 기초하여 모션 정보 후보를 도출한다 (160). 대응하는 블록은 예를 들어, 텍스처 뷰 컴포넌트에서, 공간 해상도의 잠재적인 차이들을 고려하는, 공동배치된 블록일 수도 있다. 비디오 디코더 (30) 는 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 모션 정보 후보를 추가한다 (162). 후보 리스트에서의 각각의 후보는 연관된 인덱스를 갖는다. 모션 벡터 예측 동작은, 예를 들어 AMVP 모드 동작, 병합 모드 동작, 또는 일부 다른 이러한 모션 벡터 예측 동작일 수도 있다. 모션 벡터 예측 동작이 AMVP 동작일 때, 비디오 디코더는 모션 정보 후보를 모션 벡터 예측변수로서 이용하고, 모션 벡터 차이 정보를 수신하며, 모션 정보 후보 및 모션 벡터 차이 정보에 기초하여, 비디오 블록을 디코딩하기 위한 모션 벡터를 결정할 수도 있다. 병합 모드 또는 AMVP 모드 중 어느 하나를 위해 후보 리스트에 모션 정보 후보를 추가할 때, 비디오 디코더 (30) 는 0 보다 더 큰 인덱스들을 포함하는, 임의의 인덱스에 모션 정보 후보를 할당할 수도 있다.
비디오 디코더 (30) 는 모션 정보 후보에 대응하는 인덱스 값을 디코딩하고 (164), 모션 정보 후보로부터 결정된 모션 정보에 기초하여 현재의 블록을 디코딩할 수도 있다 (166). 일부 예들에서, 비디오 디코더 (30) 는 모션 정보 후보가 인에이블되는 것을 표시하는 제 1 신택스 엘리먼트를 수신하는 것에 응답하여 후보 리스트에 모션 정보 후보를 추가할 수도 있다. 본 개시물에 이용한 바와 같이, 후보 리스트에 모션 정보 후보를 추가하는 것은 일반적으로 현재의 블록을 코딩하는데 이용된 후보 리스트에 동일한 뷰의 상이한 뷰 컴포넌트에서의 공동배치된 비디오 블록의 모션 정보를 추가하는 것을 지칭한다. 일부 예들에서, 공동배치된 비디오 블록과 연관된 코딩 구조 정보는 후보 리스트에 포함되지 않을 수도 있다. 따라서, 그 비디오 블록의 코딩 구조는 제 2 뷰에서의 공동배치된 블록의 코딩 구조와는 상이할 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서, 컴퓨터 판독가능 매체 상에 저장 또는 송신되고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체들, 또는 예를 들어 통신 프로토콜에 따라 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이 방식으로, 컴퓨터 판독가능 매체들은 일반적으로 (1) 비일시적 (non-transitory) 인 유형의 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 캐리어파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시물에 설명된 기법들의 구현을 위해 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
제한이 아닌 일 예로, 이러한 컴퓨터 판독가능 저장 매체들은 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 스토리지 디바이스들, 플래시 메모리, 또는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 적절히 컴퓨터 판독가능 매체라 불리게 된다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신된다면, 매체의 정의에는, 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들이 포함된다. 그러나, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 접속들, 캐리어파들, 신호들, 또는 다른 트랜지언트 매체들을 포함하지 않고 그 대신 넌-트랜지언트의 유형의 저장 매체들에 관련된다는 것이 이해되어야 한다. 디스크 (disk) 및 디스크 (disc) 는 본 명세서에 사용한 바와 같이, 콤팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하며, 여기서 디스크 (disk) 들은 보통 데이터를 자기적으로 재생시키는 한편, 디스크 (disc) 들은 레이저로 데이터를 광학적으로 재생시킨다. 상기의 조합들이 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그램가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적 또는 별개의 로직 회로부와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 그에 따라, 용어 "프로세서" 는, 본 명세서에 사용한 바와 같이, 전술한 구조 또는 본 명세서에 설명된 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 또한, 일부 양태들에서, 본 명세서에 설명된 기능성은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있고, 또는 결합된 코덱에 통합될 수도 있다. 또한, 그 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
본 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예를 들어, 칩 세트) 를 포함하는, 매우 다양한 디바이스들 또는 장치들에 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시물에 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다. 오히려, 상기 설명한 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛에서 결합될 수도 있고 또는 적합한 소프트웨어 및/또는 하드웨어와 함께, 상기 설명한 바와 같은 하나 이상의 프로세서들을 포함하는, 상호운용적인 하드웨어 유닛들의 콜렉션에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (47)

  1. 3 차원 (3D) 비디오 데이터를 디코딩하는 방법으로서,
    텍스처 뷰 컴포넌트를 디코딩하는 단계로서, 상기 텍스처 뷰 컴포넌트를 디코딩하는 단계는 텍스처 블록을 위한 모션 정보를 이용하여 상기 텍스처 뷰 컴포넌트의 상기 텍스처 블록을 예측하는 단계를 포함하는, 상기 텍스처 뷰 컴포넌트를 디코딩하는 단계;
    깊이 뷰 컴포넌트에서의 깊이 블록에 대해, 모션 정보 후보를 도출하는 단계로서, 상기 깊이 블록은 상기 텍스처 블록에 대응하고, 상기 모션 정보 후보는 상기 디코딩된 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록을 예측하는데 이용되는 상기 모션 정보를 포함하는, 상기 모션 정보 후보를 도출하는 단계;
    상기 깊이 블록에서의 정보를 예측하기 위한 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 상기 모션 정보 후보를 추가하는 단계로서, 상기 후보 리스트에 상기 모션 정보 후보를 추가하는 단계는 상기 모션 벡터 예측 동작이 병합 모드 동작이면 상기 모션 정보 후보를 0 보다 더 큰 인덱스에 할당하는 단계를 포함하는, 상기 모션 정보 후보를 추가하는 단계;
    상기 후보 리스트에서의 상기 모션 정보 후보와 관련 있는 인덱스 값을 디코딩하는 단계로서, 상기 후보 리스트는 상기 모션 정보 후보를 포함하는, 상기 인덱스 값을 디코딩하는 단계;
    상기 인덱스 값에 기초하는 상기 모션 정보 후보를 이용하여 상기 깊이 블록의 상기 모션 정보를 디코딩하는 단계; 및
    상기 디코딩된 모션 정보를 이용하여 상기 깊이 블록을 디코딩하는 단계로서, 상기 깊이 블록을 디코딩하는 단계는 상기 디코딩된 모션 정보에 의해 식별된 참조 깊이 뷰 컴포넌트의 샘플들을 이용하여 상기 깊이 블록을 예측하는 단계를 포함하는, 상기 깊이 블록을 디코딩하는 단계를 포함하는, 3D 비디오 데이터를 디코딩하는 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 모션 정보 후보는 모션 정보를 포함하는, 3D 비디오 데이터를 디코딩하는 방법.
  4. 제 1 항에 있어서,
    상기 깊이 블록의 파티셔닝은 상기 대응하는 텍스처 블록의 파티셔닝과는 상이한, 3D 비디오 데이터를 디코딩하는 방법.
  5. 제 1 항에 있어서,
    상기 후보 리스트에 공간 후보, 시간 후보, 및 가상 후보 중 적어도 하나를 추가하는 단계를 더 포함하는, 3D 비디오 데이터를 디코딩하는 방법.
  6. 제 1 항에 있어서,
    상기 대응하는 텍스처 블록은 상기 텍스처 뷰 컴포넌트에서의 공동배치된 (co-located) 블록을 포함하는, 3D 비디오 데이터를 디코딩하는 방법.
  7. 제 1 항에 있어서,
    상기 모션 정보 후보가 인에이블되는 것을 표시하는 신택스 엘리먼트를 디코딩하는 단계; 및
    상기 신택스 엘리먼트에 응답하여 상기 후보 리스트에 상기 모션 정보 후보를 추가하는 단계를 더 포함하는, 3D 비디오 데이터를 디코딩하는 방법.
  8. 제 1 항에 있어서,
    상기 모션 벡터 예측 동작은 AMVP (advanced motion vector prediction) 모드 동작을 포함하는, 3D 비디오 데이터를 디코딩하는 방법.
  9. 제 1 항에 있어서,
    상기 모션 정보 후보는 모션 벡터를 포함하며, 상기 방법은 :
    상기 모션 정보 후보를 모션 벡터 예측변수로서 이용하는 단계;
    모션 벡터 차이 정보를 디코딩하는 단계; 및
    상기 모션 정보 후보 및 상기 모션 벡터 차이 정보에 기초하여, 상기 깊이 블록을 디코딩하기 위한 모션 벡터를 결정하는 단계를 더 포함하는, 3D 비디오 데이터를 디코딩하는 방법.
  10. 삭제
  11. 3 차원 (3D) 비디오 데이터를 인코딩하는 방법으로서,
    텍스처 뷰 컴포넌트를 인코딩하는 단계로서, 상기 텍스처 뷰 컴포넌트를 인코딩하는 단계는 텍스처 블록을 위한 모션 정보를 이용하여 상기 텍스처 뷰 컴포넌트의 상기 텍스처 블록을 예측하는 단계를 포함하는, 상기 텍스처 뷰 컴포넌트를 인코딩하는 단계;
    깊이 뷰 컴포넌트에서의 깊이 블록에 대해, 모션 정보 후보를 도출하는 단계로서, 상기 깊이 블록은 상기 텍스처 블록에 대응하고, 상기 모션 정보 후보는 디코딩된 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록을 예측하는데 이용되는 상기 모션 정보를 포함하는, 상기 모션 정보 후보를 도출하는 단계;
    상기 깊이 블록에서의 정보를 예측하기 위한 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 상기 모션 정보 후보를 추가하는 단계로서, 상기 후보 리스트에 상기 모션 정보 후보를 추가하는 단계는 상기 모션 벡터 예측 동작이 병합 모드 동작이면 상기 모션 정보 후보를 0 보다 더 큰 인덱스에 할당하는 단계를 포함하는, 상기 모션 정보 후보를 추가하는 단계;
    상기 후보 리스트에서의 상기 모션 정보 후보와 관련 있는 인덱스 값을 인코딩하는 단계로서, 상기 후보 리스트는 상기 모션 정보 후보를 포함하는, 상기 인덱스 값을 인코딩하는 단계;
    상기 인덱스 값에 기초하는 상기 모션 정보 후보를 이용하여 상기 깊이 블록의 상기 모션 정보를 인코딩하는 단계; 및
    상기 인코딩된 모션 정보를 이용하여 상기 깊이 블록을 인코딩하는 단계로서, 상기 깊이 블록을 인코딩하는 단계는 상기 인코딩된 모션 정보에 의해 식별된 참조 깊이 뷰 컴포넌트의 샘플들을 이용하여 상기 깊이 블록을 예측하는 단계를 포함하는, 상기 깊이 블록을 인코딩하는 단계를 포함하는, 3D 비디오 데이터를 인코딩하는 방법.
  12. 제 11 항에 있어서,
    상기 후보 리스트에 공간 후보, 시간 후보, 및 가상 후보 중 적어도 하나를 추가하는 단계를 더 포함하는, 3D 비디오 데이터를 인코딩하는 방법.
  13. 제 11 항에 있어서,
    상기 대응하는 텍스처 블록은 상기 텍스처 뷰 컴포넌트에서의 공동배치된 (co-located) 블록을 포함하는, 3D 비디오 데이터를 인코딩하는 방법.
  14. 제 11 항에 있어서,
    상기 모션 정보 후보가 인에이블되는 것을 표시하는 신택스 엘리먼트를 인코딩하는 단계를 더 포함하는, 3D 비디오 데이터를 인코딩하는 방법.
  15. 삭제
  16. 제 11 항에 있어서,
    상기 모션 정보 후보는 모션 정보를 포함하는, 3D 비디오 데이터를 인코딩하는 방법.
  17. 제 11 항에 있어서,
    상기 깊이 블록의 파티셔닝은 상기 대응하는 텍스처 블록의 파티셔닝과는 상이한, 3D 비디오 데이터를 인코딩하는 방법.
  18. 제 11 항에 있어서,
    상기 모션 벡터 예측 동작은 AMVP (advnaced motion vector prediciton) 모드 동작을 포함하는, 3D 비디오 데이터를 인코딩하는 방법.
  19. 제 11 항에 있어서,
    상기 모션 정보 후보는 모션 벡터를 포함하며, 상기 방법은 :
    상기 모션 정보 후보를 모션 벡터 예측변수로서 이용하는 단계;
    모션 벡터 차이 정보를 인코딩하는 단계; 및
    상기 모션 정보 후보 및 상기 모션 벡터 차이 정보에 기초하여, 상기 깊이 블록에 대한 모션 벡터를 인코딩하는 단계를 더 포함하는, 3D 비디오 데이터를 인코딩하는 방법.
  20. 삭제
  21. 3 차원 (3D) 비디오 데이터를 디코딩하는 디바이스로서,
    비디오 데이터를 저장하도록 구성된 메모리; 및
    텍스처 뷰 컴포넌트를 디코딩하는 것으로서, 상기 텍스처 뷰 컴포넌트를 디코딩하는 것은 텍스처 블록을 위한 모션 정보를 이용하여 상기 텍스처 뷰 컴포넌트의 상기 텍스처 블록을 예측하는 것을 포함하는, 상기 텍스처 뷰 컴포넌트를 디코딩하고; 깊이 뷰 컴포넌트에서의 깊이 블록에 대해, 모션 정보 후보를 도출하는 것으로서, 상기 깊이 블록은 상기 텍스처 블록에 대응하고, 상기 모션 정보 후보는 상기 디코딩된 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록을 예측하는데 이용되는 상기 모션 정보를 포함하는, 상기 모션 정보 후보를 도출하고; 상기 깊이 블록에서의 정보를 예측하기 위한 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 상기 모션 정보 후보를 추가하는 것으로서, 상기 후보 리스트에 상기 모션 정보 후보를 추가하는 것은 상기 모션 벡터 예측 동작이 병합 모드 동작이면 상기 모션 정보 후보를 0 보다 더 큰 인덱스에 할당하는 것을 포함하는, 상기 모션 정보 후보를 추가하고; 상기 후보 리스트에서의 상기 모션 정보 후보와 관련 있는 인덱스 값을 디코딩하는 것으로서, 상기 후보 리스트는 상기 모션 정보 후보를 포함하는, 상기 인덱스 값을 디코딩하며; 상기 인덱스 값에 기초하는 상기 모션 정보 후보를 이용하여 상기 깊이 블록의 상기 모션 정보를 디코딩하며; 상기 디코딩된 모션 정보를 이용하여 상기 깊이 블록을 디코딩하는 것으로서, 상기 깊이 블록을 디코딩하는 것은 상기 디코딩된 모션 정보에 의해 식별된 참조 깊이 뷰 컴포넌트의 샘플들을 이용하여 상기 깊이 블록을 예측하는 것을 포함하는, 상기 깊이 블록을 디코딩하도록 구성된 비디오 디코더를 포함하는, 3D 비디오 데이터를 디코딩하는 디바이스.
  22. 삭제
  23. 제 21 항에 있어서,
    상기 모션 정보 후보는 모션 정보를 포함하는, 3D 비디오 데이터를 디코딩하는 디바이스.
  24. 제 21 항에 있어서,
    상기 깊이 블록의 파티셔닝은 상기 대응하는 텍스처 블록의 파티셔닝과는 상이한, 3D 비디오 데이터를 디코딩하는 디바이스.
  25. 제 21 항에 있어서,
    상기 비디오 디코더는 또한, 상기 후보 리스트에 공간 후보, 시간 후보, 및 가상 후보 중 적어도 하나를 추가하도록 구성되는, 3D 비디오 데이터를 디코딩하는 디바이스.
  26. 제 21 항에 있어서,
    상기 대응하는 텍스처 블록은 상기 텍스처 뷰 컴포넌트에서의 공동배치된 (co-located) 블록을 포함하는, 3D 비디오 데이터를 디코딩하는 디바이스.
  27. 제 21 항에 있어서,
    상기 비디오 디코더는 또한, 상기 모션 정보 후보가 인에이블되는 것을 표시하는 신택스 엘리먼트를 수신하며; 상기 신택스 엘리먼트에 응답하여 상기 후보 리스트에 상기 모션 정보 후보를 추가하도록 구성되는, 3D 비디오 데이터를 디코딩하는 디바이스.
  28. 제 21 항에 있어서,
    상기 모션 벡터 예측 동작은 AMVP (advanced motion vector prediction) 모드 동작을 포함하는, 3D 비디오 데이터를 디코딩하는 디바이스.
  29. 제 21 항에 있어서,
    상기 모션 정보 후보는 모션 벡터를 포함하며, 상기 비디오 디코더는 또한, 상기 모션 정보 후보를 모션 벡터 예측변수로서 이용하고; 모션 벡터 차이 정보를 디코딩하며; 상기 모션 정보 후보 및 상기 모션 벡터 차이 정보에 기초하여, 상기 깊이 블록을 디코딩하기 위한 모션 벡터를 결정하도록 구성되는, 3D 비디오 데이터를 디코딩하는 디바이스.
  30. 삭제
  31. 제 21 항에 있어서,
    상기 디바이스는 :
    집적 회로;
    마이크로프로세서; 및
    상기 비디오 디코더를 포함하는 무선 통신 디바이스
    중 적어도 하나를 포함하는, 3D 비디오 데이터를 디코딩하는 디바이스.
  32. 3 차원 (3D) 비디오 데이터를 인코딩하는 디바이스로서,
    비디오 데이터를 저장하도록 구성된 메모리; 및
    텍스처 뷰 컴포넌트를 인코딩하는 것으로서, 상기 텍스처 뷰 컴포넌트를 인코딩하는 것은 텍스처 블록을 위한 모션 정보를 이용하여 상기 텍스처 뷰 컴포넌트의 상기 텍스처 블록을 예측하는 것을 포함하는, 상기 텍스처 뷰 컴포넌트를 인코딩하고; 깊이 뷰 컴포넌트에서의 깊이 블록에 대해, 모션 정보 후보를 도출하는 것으로서, 상기 깊이 블록은 상기 텍스처 블록에 대응하고, 상기 모션 정보 후보는 디코딩된 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록을 예측하는데 이용되는 상기 모션 정보를 포함하는, 상기 모션 정보 후보를 도출하고; 상기 깊이 블록에서의 정보를 예측하기 위한 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 상기 모션 정보 후보를 추가하는 것으로서, 상기 후보 리스트에 상기 모션 정보 후보를 추가하는 것은 상기 모션 벡터 예측 동작이 병합 모드 동작이면 상기 모션 정보 후보를 0 보다 더 큰 인덱스에 할당하는 것을 포함하는, 상기 모션 정보 후보를 추가하고; 상기 후보 리스트에서의 상기 모션 정보 후보와 관련 있는 인덱스 값을 인코딩하는 것으로서, 상기 후보 리스트는 상기 모션 정보 후보를 포함하는, 상기 인덱스 값을 인코딩하며; 상기 인덱스 값에 기초하는 상기 모션 정보 후보를 이용하여 상기 깊이 블록의 상기 모션 정보를 인코딩하며; 상기 인코딩된 모션 정보를 이용하여 상기 깊이 블록을 인코딩하는 것으로서, 상기 깊이 블록을 인코딩하는 것은 상기 인코딩된 모션 정보에 의해 식별된 참조 깊이 뷰 컴포넌트의 샘플들을 이용하여 상기 깊이 블록을 예측하는 것을 포함하는, 상기 깊이 블록을 인코딩하도록 구성된 비디오 인코더를 포함하는, 3D 비디오 데이터를 인코딩하는 디바이스.
  33. 제 32 항에 있어서,
    상기 비디오 인코더는 또한, 상기 후보 리스트에 공간 후보, 시간 후보, 및 가상 후보 중 적어도 하나를 추가하도록 구성되는, 3D 비디오 데이터를 인코딩하는 디바이스.
  34. 제 32 항에 있어서,
    상기 대응하는 텍스처 블록은 상기 텍스처 뷰 컴포넌트에서의 공동배치된 (co-located) 블록을 포함하는, 3D 비디오 데이터를 인코딩하는 디바이스.
  35. 제 32 항에 있어서,
    상기 비디오 인코더는 또한, 상기 모션 정보 후보가 인에이블되는 것을 표시하는 신택스 엘리먼트를 인코딩하도록 구성되는, 3D 비디오 데이터를 인코딩하는 디바이스.
  36. 삭제
  37. 제 32 항에 있어서,
    상기 모션 정보 후보는 모션 정보를 포함하는, 3D 비디오 데이터를 인코딩하는 디바이스.
  38. 제 32 항에 있어서,
    상기 깊이 블록의 파티셔닝은 상기 대응하는 텍스처 블록의 파티셔닝과는 상이한, 3D 비디오 데이터를 인코딩하는 디바이스.
  39. 제 32 항에 있어서,
    상기 모션 벡터 예측 동작은 AMVP (advnaced motion vector prediction) 모드 동작을 포함하는, 3D 비디오 데이터를 인코딩하는 디바이스.
  40. 제 32 항에 있어서,
    상기 모션 정보 후보는 모션 벡터를 포함하며, 상기 비디오 인코더는 또한, 상기 모션 정보 후보를 모션 벡터 예측변수로서 이용하고; 모션 벡터 차이 정보를 인코딩하며; 상기 모션 정보 후보 및 상기 모션 벡터 차이 정보에 기초하여, 상기 깊이 블록에 대한 모션 벡터를 인코딩하도록 구성되는, 3D 비디오 데이터를 인코딩하는 디바이스.
  41. 삭제
  42. 제 32 항에 있어서,
    상기 디바이스는 :
    집적 회로;
    마이크로프로세서; 및
    상기 비디오 인코더를 포함하는 무선 통신 디바이스
    중 적어도 하나를 포함하는, 3D 비디오 데이터를 인코딩하는 디바이스.
  43. 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금 :
    텍스처 뷰 컴포넌트를 디코딩하는 것으로서, 상기 텍스처 뷰 컴포넌트를 디코딩하는 것은 텍스처 블록을 위한 모션 정보를 이용하여 상기 텍스처 뷰 컴포넌트의 상기 텍스처 블록을 예측하는 것을 포함하는, 상기 텍스처 뷰 컴포넌트를 디코딩하게 하고;
    깊이 뷰 컴포넌트에서의 깊이 블록에 대해, 모션 정보 후보를 도출하는 것으로서, 상기 깊이 블록은 상기 텍스처 블록에 대응하고, 상기 모션 정보 후보는 상기 디코딩된 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록을 예측하는데 이용되는 상기 모션 정보를 포함하는, 상기 모션 정보 후보를 도출하게 하고;
    상기 깊이 블록에서의 정보를 예측하기 위한 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 상기 모션 정보 후보를 추가하는 것으로서, 상기 후보 리스트에 상기 모션 정보 후보를 추가하는 것은 상기 모션 벡터 예측 동작이 병합 모드 동작이면 상기 모션 정보 후보를 0 보다 더 큰 인덱스에 할당하는 것을 포함하는, 상기 모션 정보 후보를 추가하게 하고;
    상기 후보 리스트에서의 상기 모션 정보 후보와 관련 있는 인덱스 값을 디코딩하는 것으로서, 상기 후보 리스트는 상기 모션 정보 후보를 포함하는, 상기 인덱스 값을 디코딩하게 하며;
    상기 인덱스 값에 기초하는 상기 모션 정보 후보를 이용하여 상기 깊이 블록의 상기 모션 정보를 디코딩하게 하며;
    상기 디코딩된 모션 정보를 이용하여 상기 깊이 블록을 디코딩하는 것으로서, 상기 깊이 블록을 디코딩하는 것은 상기 디코딩된 모션 정보에 의해 식별된 참조 깊이 뷰 컴포넌트의 샘플들을 이용하여 상기 깊이 블록을 예측하는 것을 포함하는, 상기 깊이 블록을 디코딩하게 하는, 컴퓨터 판독가능 저장 매체.
  44. 삭제
  45. 제 43 항에 있어서,
    상기 깊이 블록의 파티셔닝은 상기 대응하는 텍스처 블록의 파티셔닝과는 상이한, 컴퓨터 판독가능 저장 매체.
  46. 삭제
  47. 3 차원 (3D) 비디오 데이터를 인코딩하는 장치로서,
    텍스처 뷰 컴포넌트를 인코딩하는 수단으로서, 상기 텍스처 뷰 컴포넌트를 인코딩하는 것은 텍스처 블록을 위한 모션 정보를 이용하여 상기 텍스처 뷰 컴포넌트의 상기 텍스처 블록을 예측하는 것을 포함하는, 상기 텍스처 뷰 컴포넌트를 인코딩하는 수단;
    깊이 뷰 컴포넌트에서의 깊이 블록에 대해 모션 정보 후보를 도출하는 수단으로서, 상기 깊이 블록은 상기 텍스처 블록에 대응하고, 상기 모션 정보 후보는 디코딩된 텍스처 뷰 컴포넌트에서의 대응하는 텍스처 블록을 예측하는데 이용되는 상기 모션 정보를 포함하는, 상기 모션 정보 후보를 도출하는 수단;
    상기 깊이 블록에서의 정보를 예측하기 위한 모션 벡터 예측 동작에서의 이용을 위해 후보 리스트에 상기 모션 정보 후보를 추가하는 수단으로서, 상기 후보 리스트에 상기 모션 정보 후보를 추가하는 것은 상기 모션 벡터 예측 동작이 병합 모드 동작이면 상기 모션 정보 후보를 0 보다 더 큰 인덱스에 할당하는 것을 포함하는, 상기 모션 정보 후보를 추가하는 수단;
    상기 후보 리스트에서의 상기 모션 정보 후보와 관련 있는 인덱스 값을 인코딩하는 수단으로서, 상기 후보 리스트는 상기 모션 정보 후보를 포함하는, 상기 인덱스 값을 인코딩하는 수단;
    상기 인덱스 값에 기초하는 상기 모션 정보 후보를 이용하여 상기 깊이 블록의 상기 모션 정보를 인코딩하는 수단; 및
    상기 인코딩된 모션 정보를 이용하여 상기 깊이 블록을 인코딩하는 수단으로서, 상기 깊이 블록을 인코딩하는 것은 상기 인코딩된 모션 정보에 의해 식별된 참조 깊이 뷰 컴포넌트의 샘플들을 이용하여 상기 깊이 블록을 예측하는 것을 포함하는, 상기 깊이 블록을 인코딩하는 수단을 포함하는, 3D 비디오 데이터를 인코딩하는 장치.
KR1020157008745A 2012-10-04 2013-10-04 3d 비디오에 대한 인터-뷰 예측된 모션 벡터 KR102187729B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261709912P 2012-10-04 2012-10-04
US61/709,912 2012-10-04
US14/045,705 US9699450B2 (en) 2012-10-04 2013-10-03 Inter-view predicted motion vector for 3D video
US14/045,705 2013-10-03
PCT/US2013/063398 WO2014055833A1 (en) 2012-10-04 2013-10-04 Inter-view predicted motion vector for 3d video

Publications (2)

Publication Number Publication Date
KR20150065706A KR20150065706A (ko) 2015-06-15
KR102187729B1 true KR102187729B1 (ko) 2020-12-07

Family

ID=50432657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157008745A KR102187729B1 (ko) 2012-10-04 2013-10-04 3d 비디오에 대한 인터-뷰 예측된 모션 벡터

Country Status (6)

Country Link
US (1) US9699450B2 (ko)
EP (1) EP2904791A1 (ko)
JP (1) JP2015536118A (ko)
KR (1) KR102187729B1 (ko)
CN (1) CN104685883B (ko)
WO (1) WO2014055833A1 (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013009104A2 (ko) * 2011-07-12 2013-01-17 한국전자통신연구원 인터 예측 방법 및 그 장치
WO2013176485A1 (ko) * 2012-05-22 2013-11-28 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
CN102883163B (zh) * 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
US10057594B2 (en) * 2013-04-02 2018-08-21 Vid Scale, Inc. Enhanced temporal motion vector prediction for scalable video coding
CN105308958A (zh) * 2013-04-05 2016-02-03 三星电子株式会社 用于使用视点合成预测的层间视频编码方法和设备以及用于使用视点合成预测的层间视频解码方法和设备
CA2921759C (en) * 2013-10-17 2018-05-15 Mediatek Inc. Method of motion information prediction and inheritance in multi-view and three-dimensional video coding
WO2015100731A1 (en) * 2014-01-03 2015-07-09 Mediatek Singapore Pte. Ltd. Methods for determining the prediction partitions
JP6574976B2 (ja) * 2014-03-18 2019-09-18 パナソニックIpマネジメント株式会社 動画像符号化装置および動画像符号化方法
CN110351567B (zh) * 2014-06-16 2023-07-14 高通股份有限公司 3d-hevc中的简化移位合并候选者及合并列表导出
WO2015192314A1 (en) * 2014-06-17 2015-12-23 Mediatek Singapore Pte. Ltd. A simplified method for depth based block partitioning
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
ES2886431T3 (es) * 2016-09-30 2021-12-20 Huawei Tech Co Ltd Método de codificación de vídeo, método de decodificación de video y terminal
CN116193109A (zh) * 2017-01-16 2023-05-30 世宗大学校产学协力团 影像编码/解码方法
SG11202012293RA (en) 2018-06-29 2021-01-28 Beijing Bytedance Network Technology Co Ltd Update of look up table: fifo, constrained fifo
WO2020003284A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
TWI719523B (zh) 2018-06-29 2021-02-21 大陸商北京字節跳動網絡技術有限公司 哪個查找表需要更新或不更新
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
CN110662053B (zh) 2018-06-29 2022-03-25 北京字节跳动网络技术有限公司 使用查找表的视频处理方法、装置和存储介质
EP3791585A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Partial/full pruning when adding a hmvp candidate to merge/amvp
JP7328330B2 (ja) 2018-06-29 2023-08-16 北京字節跳動網絡技術有限公司 Lutにおける動き候補のチェック順序
CN110677669B (zh) 2018-07-02 2021-12-07 北京字节跳动网络技术有限公司 具有lic的lut
KR20220048066A (ko) 2018-07-18 2022-04-19 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 히스토리-기반 모션 벡터 예측을 사용한 비디오 코딩 방법 및 장치
RU2757209C1 (ru) 2018-08-29 2021-10-12 Бейджинг Дацзя Интернет Информейшн Текнолоджи Ко., Лтд. Способы и устройства для кодирования видео с использованием вектора движения временного предсказания на основе субблоков
WO2020053800A1 (en) 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. How many hmvp candidates to be checked
CN112806010A (zh) * 2018-10-02 2021-05-14 交互数字Vc控股公司 使用预测子候选列表进行视频编码和解码的方法和装置
JP7193624B2 (ja) 2018-10-02 2022-12-20 エルジー エレクトロニクス インコーポレイティド Hmvpに基づいて予測候補を構成する方法及び装置
EP3847814A4 (en) * 2018-11-06 2021-07-14 Beijing Bytedance Network Technology Co. Ltd. POSITION DEPENDENT STORAGE, MOVEMENT INFORMATION
US10778977B2 (en) * 2018-12-05 2020-09-15 Qualcomm Incorporated Triangle motion information for video coding
CN117041595B (zh) * 2018-12-30 2024-05-17 北京达佳互联信息技术有限公司 用于对视频进行解码的方法、设备、存储介质和程序产品
KR102648159B1 (ko) 2019-01-10 2024-03-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut 업데이트의 호출
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
WO2020186117A1 (en) * 2019-03-12 2020-09-17 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of video coding for triangle prediction
CN113615193A (zh) 2019-03-22 2021-11-05 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
CN114097228B (zh) 2019-06-04 2023-12-15 北京字节跳动网络技术有限公司 具有几何分割模式编解码的运动候选列表
EP3963890A4 (en) 2019-06-04 2022-11-02 Beijing Bytedance Network Technology Co., Ltd. BUILDING A LIST OF MOVEMENT CANDIDATES USING NEIGHBOR BLOCK INFORMATION
CN113994699B (zh) 2019-06-06 2024-01-12 北京字节跳动网络技术有限公司 视频编解码的运动候选列表构建
CN112118447B (zh) * 2019-06-19 2023-06-20 华为技术有限公司 融合候选运动信息列表的构建方法、装置及编解码器
EP3984215A4 (en) 2019-07-14 2022-08-24 Beijing Bytedance Network Technology Co., Ltd. TRANSFORM BLOCK SIZE RESTRICTION IN VIDEO CODING
WO2021057996A1 (en) 2019-09-28 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Geometric partitioning mode in video coding
CN110992731B (zh) * 2019-12-12 2021-11-05 苏州智加科技有限公司 基于激光雷达的3d车辆检测方法、装置及存储介质
CN112435267B (zh) * 2020-11-17 2023-03-17 哈尔滨工程大学 一种高分辨率城市卫星立体图像的视差图计算方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102257818B (zh) * 2008-10-17 2014-10-29 诺基亚公司 3d视频编码中运动向量的共享
KR20110008653A (ko) 2009-07-20 2011-01-27 삼성전자주식회사 움직임 벡터 예측 방법과 이를 이용한 영상 부호화/복호화 장치 및 방법
BR122020007923B1 (pt) * 2010-04-13 2021-08-03 Ge Video Compression, Llc Predição interplano
US9510009B2 (en) 2010-05-20 2016-11-29 Thomson Licensing Methods and apparatus for adaptive motion vector candidate ordering for video encoding and decoding
EP2636218B1 (en) 2010-11-04 2021-06-30 GE Video Compression, LLC Picture coding supporting block merging and skip mode
US9049455B2 (en) 2010-12-28 2015-06-02 Panasonic Intellectual Property Corporation Of America Image coding method of coding a current picture with prediction using one or both of a first reference picture list including a first current reference picture for a current block and a second reference picture list including a second current reference picture for the current block
US8929450B2 (en) 2011-01-14 2015-01-06 Google Technology Holdings LLC Temporal block merge mode
US9485518B2 (en) * 2011-05-27 2016-11-01 Sun Patent Trust Decoding method and apparatus with candidate motion vectors
US9313494B2 (en) 2011-06-20 2016-04-12 Qualcomm Incorporated Parallelization friendly merge candidates for video coding
US20130229485A1 (en) * 2011-08-30 2013-09-05 Nokia Corporation Apparatus, a Method and a Computer Program for Video Coding and Decoding
US9998726B2 (en) * 2012-06-20 2018-06-12 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
CN104704837A (zh) * 2012-10-03 2015-06-10 联发科技股份有限公司 三维视频编码中的元素间运动预测的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Gerhard Tech, et al.,3D-HEVC Test Model 1,Joint Collaborative Team on 3D Video Coding Extension Development of ITU - T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 1st Meeting, no.JCT3V-A1005_d0: Stockhol*

Also Published As

Publication number Publication date
US20140098882A1 (en) 2014-04-10
US9699450B2 (en) 2017-07-04
CN104685883B (zh) 2018-06-01
KR20150065706A (ko) 2015-06-15
CN104685883A (zh) 2015-06-03
JP2015536118A (ja) 2015-12-17
WO2014055833A1 (en) 2014-04-10
EP2904791A1 (en) 2015-08-12

Similar Documents

Publication Publication Date Title
KR102187729B1 (ko) 3d 비디오에 대한 인터-뷰 예측된 모션 벡터
EP3183880B1 (en) Unify intra block copy and inter prediction
KR102033206B1 (ko) 3d 비디오에 대한 진보된 병합/스킵 모드 및 진보된 모션 벡터 예측 (amvp) 모드
KR101751145B1 (ko) 3d 비디오에 대한 인터-뷰 예측된 모션 벡터
KR102238567B1 (ko) 디스패리티 벡터 유도를 위한 화상들의 선택
CA2912451C (en) More accurate advanced residual prediction (arp) for texture coding
EP2984838B1 (en) Backward view synthesis prediction
EP3090555B1 (en) Disparity vector and/or advanced residual prediction for video coding
KR20160135306A (ko) 비디오 코딩을 위한 참조로서 현재 픽처의 이용
KR20170108010A (ko) 서브-예측 유닛 기반 어드밴스드 시간 모션 벡터 예측
US9438926B2 (en) Constraints on neighboring block based disparity vector (NBDV) techniques for 3D video
KR20160034922A (ko) 비디오 코딩에서 디스패리티 벡터를 이용한 블록 식별
KR20140140073A (ko) 고효율 비디오 코딩을 위한 하이-레벨 신택스 확장들
KR20150103122A (ko) 비디오 코딩 확장안들에 대한 시간 모션 벡터 예측
WO2015026952A1 (en) Sub-pu-level advanced residual prediction
OA18314A (en) Sub-prediction unit based advanced temporal motion vector prediction.

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