KR102060857B1 - 3d-hevc 를 위한 단순화된 진보된 모션 예측 - Google Patents

3d-hevc 를 위한 단순화된 진보된 모션 예측 Download PDF

Info

Publication number
KR102060857B1
KR102060857B1 KR1020167003102A KR20167003102A KR102060857B1 KR 102060857 B1 KR102060857 B1 KR 102060857B1 KR 1020167003102 A KR1020167003102 A KR 1020167003102A KR 20167003102 A KR20167003102 A KR 20167003102A KR 102060857 B1 KR102060857 B1 KR 102060857B1
Authority
KR
South Korea
Prior art keywords
sub
current
pus
motion
motion parameters
Prior art date
Application number
KR1020167003102A
Other languages
English (en)
Other versions
KR20160034938A (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 KR20160034938A publication Critical patent/KR20160034938A/ko
Application granted granted Critical
Publication of KR102060857B1 publication Critical patent/KR102060857B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

비디오 코더는 현재의 예측 유닛 (PU) 에 대한 후보 리스트에의 포함을 위한 후보를 결정한다. 후보는 현재의 PU 의 복수의 서브-PU들의 모션 파라미터들에 기초한다. 서브-PU 에 대응하는 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 비디오 코더는 서브-PU 의 모션 파라미터들을 디폴트 모션 파라미터들로 설정한다. 복수의 서브-PU들로부터의 각 개개의 서브-PU 에 대해, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들은 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않는다.

Description

3D-HEVC 를 위한 단순화된 진보된 모션 예측{SIMPLIFIED ADVANCED MOTION PREDICTION FOR 3D-HEVC}
본 출원은 2013년 8월 30일자에 출원된 미국 가출원 번호 제 61/872,540호, 및 2013년 12월 6일자에 출원된 미국 가출원 번호 제 61/913,031호의 이익을 주장하며, 이의 각각의 전체 내용이 본원에 참조로 포함된다.
기술 분야
본 개시물은 비디오 인코딩 및 디코딩에 관한 것이다.
디지털 비디오 능력들은, 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 휴대정보 단말기들 (PDA들), 랩탑 또는 데스크탑 컴퓨터들, 태블릿 컴퓨터들, e-북 리더들, 디지털 카메라들, 디지털 리코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 소위 "스마트폰들", 원격 화상회의 디바이스들, 비디오 스트리밍 디바이스들 등을 포함한, 광범위한 디바이스들에 포함될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, AVC (Advanced Video Coding) 에 의해 정의된 표준들, 현재 개발중인 HEVC (High Efficiency Video Coding) 표준, 및 이런 표준들의 확장판들에서 설명되는 것들과 같은 비디오 압축 기법들을 구현한다. 비디오 디바이스들은 이런 비디오 압축 기법들을 구현함으로써, 디지털 비디오 정보를 좀더 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 압축 기법들은 비디오 시퀀스들에 내재하는 리던던시를 감소시키거나 또는 제거하기 위해 공간 (인트라-픽처) 예측 및/또는 시간 (인터-픽처) 예측을 수행한다. 블록-기반 비디오 코딩에 있어, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 일부) 는 비디오 블록들로 파티셔닝될 수도 있다. 픽처의 인트라-코딩된 (I) 슬라이스에서의 비디오 블록들은 동일한 픽처의 이웃하는 블록들에서의 참조 샘플들에 대한 공간 예측을 이용하여 인코딩된다. 픽처의 인터-코딩된 (P 또는 B) 슬라이스에서의 비디오 블록들은 동일한 픽처의 이웃하는 블록들에서의 참조 샘플들에 대한 공간 예측, 또는 다른 참조 픽처들에서의 참조 샘플들에 대한 시간 예측을 이용할 수도 있다. 픽처들은 프레임들로 지칭될 수 있으며, 참조 픽처들은 참조 프레임들로 지칭될 수도 있다.
공간 또는 시간 예측은 코딩될 블록에 대한 예측 블록을 초래한다. 잔차 데이터는 코딩될 원래 블록과 예측 블록 사이의 픽셀 차이들을 나타낸다. 인터-코딩된 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터에 따라서 인코딩되며, 잔차 데이터는 코딩된 블록과 예측 블록 사이의 차이를 나타낸다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라서 인코딩된다. 추가적인 압축을 위해, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어, 후에 양자화될 수도 있는 잔차 계수들을 초래할 수도 있다. 처음에 2차원 어레이로 배열된, 양자화된 계수들은 계수들의 1차원 벡터를 생성하기 위해 스캐닝될 수도 있으며, 엔트로피 코딩이 더욱 더 많은 압축을 달성하기 위해 적용될 수도 있다.
멀티-뷰 코딩 비트스트림은 뷰들을, 예컨대, 다수의 관점들로부터 인코딩함으로써 생성될 수도 있다. 멀티-뷰 코딩 양태들을 이용하는 일부 3차원 (3D) 비디오 표준들이 개발되었다. 예를 들어, 상이한 뷰들은 3D 비디오를 지원하기 위해 좌안 및 우안 뷰들을 송신할 수도 있다. 이의 대안으로, 일부 3D 비디오 코딩 프로세스들은 소위 멀티-뷰 플러스 심도 코딩을 적용할 수도 있다. 멀티-뷰 플러스 심도 코딩에서, 3D 비디오 비트스트림은 텍스쳐 뷰 성분들 뿐만 아니라, 심도 뷰 성분들도 포함할 수도 있다. 예를 들어, 각각의 뷰는 하나의 텍스쳐 뷰 성분 및 하나의 심도 뷰 성분을 포함할 수도 있다.
일반적으로, 본 개시물은 심도 코딩 기법들을 포함한, 진보된 코덱들에 기초한 3차원 (3D) 비디오 코딩에 관한 것이다. 예를 들어, 본 개시물의 기법들 중 일부는 3차원 고효율 비디오 코딩 (3D-HEVC) 을 위한 진보된 모션 예측에 관한 것이다. 일부 예들에서, 비디오 코더는 현재의 예측 유닛 (PU) 에 대한 후보 리스트에의 포함을 위한 후보를 결정한다. 후보는 현재의 PU 의 복수의 서브-PU들의 모션 파라미터들에 기초한다. 후보를 생성할 때, 비디오 코더는 서브-PU들을 특정의 순서, 예컨대 래스터 스캔 순서로 프로세싱할 수도 있다. 서브-PU 에 대응하는 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 비디오 코더는 서브-PU 의 모션 파라미터들을 디폴트 모션 파라미터들로 설정한다. 복수의 서브-PU들로부터의 각 개개의 서브-PU 에 대해, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들은 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않는다.
일 예에서, 본 개시물은 멀티-뷰 비디오 데이터를 디코딩하는 방법을 기술하며, 본 방법은: 현재의 예측 유닛 (PU) 을 복수의 서브-PU들로 분할하는 단계로서, 현재의 PU 는 현재의 픽처에 있는, 상기 분할하는 단계; 디폴트 모션 파라미터들을 결정하는 단계; 특정의 순서로 복수의 서브-PU들로부터의 서브-PU들을 프로세싱하는 단계로서, 복수의 서브-PU들로부터의 각 개개의 서브-PU 에 대해, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들은 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않으며, 서브-PU들 중 적어도 하나에 대한 참조 블록은 모션 보상된 예측을 이용하여 코딩되지 않는, 상기 서브-PU들을 프로세싱하는 단계; 현재의 PU 의 후보 리스트에 후보를 포함시키는 단계로서, 그 후보는 복수의 서브-PU들의 모션 파라미터들에 기초하는, 상기 후보를 포함시키는 단계; 비트스트림으로부터, 후보 리스트에서의 선택된 후보를 표시하는 신택스 엘리먼트를 획득하는 단계; 및 현재의 PU 에 대한 예측 블록을 복원하기 위해 선택된 후보의 모션 파라미터들을 이용하는 단계를 포함하며, 상기 서브-PU들을 프로세싱하는 단계는, 복수의 서브-PU들로부터의 각 개개의 서브-PU 에 대해: 개개의 서브-PU 에 대한 참조 블록을 결정하는 단계로서, 참조 픽처는 개개의 서브-PU 에 대한 참조 블록을 포함하는, 상기 개개의 서브-PU 에 대한 참조 블록을 결정하는 단계; 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되면, 개개의 서브-PU 에 대한 참조 블록의 모션 파라미터들에 기초하여 개개의 서브-PU 의 모션 파라미터들을 설정하는 단계; 및 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들을 디폴트 모션 파라미터들로 설정하는 단계를 포함한다.
다른 예에서, 본 개시물은 비디오 데이터를 인코딩하는 방법을 기술하며, 본 방법은: 현재의 예측 유닛 (PU) 을 복수의 서브-PU들로 분할하는 단계로서, 현재의 PU 는 현재의 픽처에 있는, 상기 분할하는 단계; 디폴트 모션 파라미터들을 결정하는 단계; 특정의 순서로 복수의 서브-PU들로부터의 서브-PU들을 프로세싱하는 단계로서, 복수의 서브-PU들로부터의 각 개개의 서브-PU 에 대해, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들은 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않으며, 서브-PU들 중 적어도 하나에 대한 참조 블록은 모션 보상된 예측을 이용하여 코딩되지 않는, 상기 서브-PU들을 프로세싱하는 단계; 현재의 PU 의 후보 리스트에 후보를 포함시키는 단계로서, 그 후보는 복수의 서브-PU들의 모션 파라미터들에 기초하는, 상기 후보를 포함시키는 단계; 및 비트스트림으로, 후보 리스트에서의 선택된 후보를 표시하는 신택스 엘리먼트를 시그널링하는 단계를 포함하며, 상기 서브-PU들을 프로세싱하는 단계는, 복수의 서브-PU들로부터의 각 개개의 서브-PU 에 대해: 개개의 서브-PU 에 대한 참조 블록을 결정하는 단계로서, 참조 픽처는 개개의 서브-PU 에 대한 참조 블록을 포함하는, 상기 개개의 서브-PU 에 대한 참조 블록을 결정하는 단계; 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되면, 개개의 서브-PU 에 대한 참조 블록의 모션 파라미터들에 기초하여 개개의 서브-PU 의 모션 파라미터들을 설정하는 단계; 및 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들을 디폴트 모션 파라미터들로 설정하는 단계를 포함한다.
다른 예에서, 본 개시물은 비디오 데이터를 코딩하는 디바이스를 기술하며, 상기 디바이스는: 디코딩된 픽처들을 저장하는 메모리; 및 하나 이상의 프로세서들을 포함하며, 상기 하나 이상의 프로세서들은: 현재의 예측 유닛 (PU) 을 복수의 서브-PU들로 분할하는 것으로서, 현재의 PU 는 현재의 픽처에 있는, 상기 분할하고; 디폴트 모션 파라미터들을 결정하고; 특정의 순서로 복수의 서브-PU들로부터의 서브-PU들을 프로세싱하는 것으로서, 복수의 서브-PU들로부터의 각 개개의 서브-PU 에 대해, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들은 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않으며, 서브-PU들 중 적어도 하나에 대한 참조 블록은 모션 보상된 예측을 이용하여 코딩되지 않는, 상기 서브-PU들을 프로세싱하고; 그리고 현재의 PU 의 후보 리스트에 후보를 포함시키는 것으로서, 그 후보는 복수의 서브-PU들의 모션 파라미터들에 기초하는, 상기 후보를 포함시키도록 구성되며, 상기 서브-PU들을 프로세싱하는 것은, 복수의 서브-PU들로부터의 각 개개의 서브-PU 에 대해: 개개의 서브-PU 에 대한 참조 블록을 결정하는 것으로서, 참조 픽처는 개개의 서브-PU 에 대한 참조 블록을 포함하는, 상기 개개의 서브-PU 에 대한 참조 블록을 결정하는 것; 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되면, 개개의 서브-PU 에 대한 참조 블록의 모션 파라미터들에 기초하여 개개의 서브-PU 의 모션 파라미터들을 설정하는 것; 및 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들을 디폴트 모션 파라미터들로 설정하는 것을 포함한다.
다른 예에서, 본 개시물은 비디오 데이터를 코딩하는 디바이스를 기술하며, 상기 디바이스는: 현재의 예측 유닛 (PU) 을 복수의 서브-PU들로 분할하는 수단으로서, 현재의 PU 는 현재의 픽처에 있는, 상기 분할하는 수단; 디폴트 모션 파라미터들을 결정하는 수단; 특정의 순서로 복수의 서브-PU들로부터의 서브-PU들을 프로세싱하는 수단으로서, 복수의 서브-PU들로부터의 각 개개의 서브-PU 에 대해, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들은 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않으며, 서브-PU들 중 적어도 하나에 대한 참조 블록은 모션 보상된 예측을 이용하여 코딩되지 않는, 상기 서브-PU들을 프로세싱하는 수단; 및 현재의 PU 의 후보 리스트에 후보를 포함시키는 수단으로서, 그 후보는 복수의 서브-PU들의 모션 파라미터들에 기초하는, 상기 후보를 포함시키는 수단을 포함하며, 상기 서브-PU들을 프로세싱하는 수단은, 복수의 서브-PU들로부터의 각 개개의 서브-PU 에 대해: 개개의 서브-PU 에 대한 참조 블록을 결정하는 수단으로서, 참조 픽처는 개개의 서브-PU 에 대한 참조 블록을 포함하는, 상기 개개의 서브-PU 에 대한 참조 블록을 결정하는 수단; 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되면, 개개의 서브-PU 에 대한 참조 블록의 모션 파라미터들에 기초하여 개개의 서브-PU 의 모션 파라미터들을 설정하는 수단; 및 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들을 디폴트 모션 파라미터들로 설정하는 수단을 포함한다.
다른 예에서, 본 개시물은 명령들을 저장하고 있는 비일시적 컴퓨터 판독가능 데이터 저장 매체를 기술하며, 상기 명령들은, 실행될 때, 디바이스로 하여금: 현재의 예측 유닛 (PU) 을 복수의 서브-PU들로 분할하게 하는 것으로서, 현재의 PU 는 현재의 픽처에 있는, 상기 분할하게 하고; 디폴트 모션 파라미터들을 결정하게 하고; 특정의 순서로 복수의 서브-PU들로부터의 서브-PU들을 프로세싱하게 하는 것으로서, 복수의 서브-PU들로부터의 각 개개의 서브-PU 에 대해, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들은 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않으며, 서브-PU들 중 적어도 하나에 대한 참조 블록은 모션 보상된 예측을 이용하여 코딩되지 않는, 상기 서브-PU들을 프로세싱하게 하며; 그리고 현재의 PU 의 후보 리스트에 후보를 포함시키게 하는 것으로서, 그 후보는 복수의 서브-PU들의 모션 파라미터들에 기초하는, 상기 후보를 포함시키게 하며, 상기 서브-PU들을 프로세싱하는 것은, 복수의 서브-PU들로부터의 각 개개의 서브-PU 에 대해: 개개의 서브-PU 에 대한 참조 블록을 결정하는 것으로서, 참조 픽처는 개개의 서브-PU 에 대한 참조 블록을 포함하는, 상기 개개의 서브-PU 에 대한 참조 블록을 결정하는 것; 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되면, 개개의 서브-PU 에 대한 참조 블록의 모션 파라미터들에 기초하여 개개의 서브-PU 의 모션 파라미터들을 설정하는 것; 및 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들을 디폴트 모션 파라미터들로 설정하는 것을 포함한다.
본 개시물의 하나 이상의 예들의 세부 사항들은 첨부도면들 및 아래의 설명에서 기재된다. 다른 특징들, 목적들, 및 이점들은 상세한 설명, 도면들, 및 청구항들로부터 명백할 것이다.
도 1 은 본 개시물에서 설명된 기법들을 활용할 수도 있는 예시적인 비디오 코딩 시스템을 예시하는 블록도이다.
도 2 는 HEVC (High Efficiency Video Coding) 에서의 예시적인 인트라 예측 모드들을 예시하는 개념도이다.
도 3 은 현재의 블록에 대한, 예시적인 공간적으로-이웃하는 블록들을 예시하는 개념도이다.
도 4 는 예시적인 멀티-뷰 디코딩 순서를 예시하는 개념도이다.
도 5 는 멀티-뷰 코딩을 위한 예시적인 예측 구조를 예시하는 개념도이다.
도 6 은 이웃하는 블록들 기반 디스패리티 벡터 (NBDV) 유도에서의 예시적인 시간 이웃하는 블록들을 예시하는 개념도이다.
도 7 은 역방향 뷰 합성 예측 (BVSP) 을 수행하기 위해 참조 뷰로부터의 심도 블록 유도를 예시하는 개념도이다.
도 8 은 병합/스킵 모드에 대한 뷰간 예측된 모션 벡터 후보의 예시적인 유도를 예시하는 개념도이다.
도 9 는 3D-HEVC 에서 l0CandIdx 및 l1CandIdx 의 예시적인 사양을 나타내는 테이블이다.
도 10 은 심도 코딩을 위한 모션 벡터 승계 후보의 예시적인 유도를 예시하는 개념도이다.
도 11 은 멀티-뷰 비디오 코딩에서의 진보된 잔차 예측 (ARP) 의 예시적인 예측 구조를 예시한다.
도 12 는 현재의 블록, 참조 블록, 및 모션 보상된 블록들 사이의 예시적인 관계를 예시하는 개념도이다.
도 13 은 서브-예측 유닛 (PU) 뷰간 모션 예측을 예시하는 개념도이다.
도 14 는 본 개시물에서 설명된 기법들을 구현할 수도 있는 예시적인 비디오 인코더를 예시하는 블록도이다.
도 15 는 본 개시물에서 설명된 기법들을 구현할 수도 있는 예시적인 비디오 디코더를 예시하는 블록도이다.
도 16a 는 본 개시물의 예에 따른, 인터 예측을 이용하여 코딩 유닛 (CU) 을 인코딩하는 비디오 인코더의 예시적인 동작을 예시하는 플로우차트이다.
도 16b 는 본 개시물의 예에 따른, 인터 예측을 이용하여 CU 를 디코딩하는 비디오 디코더의 예시적인 동작을 예시하는 플로우차트이다.
도 17 은 본 개시물의 예에 따른, 현재의 뷰 성분에서의 현재의 PU 에 대한 병합 후보 리스트를 구성하는 비디오 코더의 예시적인 동작을 예시하는 플로우차트이다.
도 18 은 본 개시물의 예에 따른, 도 17 의 참조 픽처 리스트 구성 동작의 연속부분을 예시하는 플로우차트이다.
도 19 는 본 개시물의 예에 따른, 뷰간 예측 모션 벡터 후보 또는 텍스쳐 병합 후보를 결정하는 비디오 코더의 동작을 예시하는 플로우차트이다.
고효율 비디오 코딩 (HEVC) 은 새로-개발된 비디오 코딩 표준이다. 3D-HEVC 는 3D 비디오 데이터에 대한 HEVC 의 확장판이다. 3D-HEVC 는 상이한 뷰포인트들로부터의 동일한 장면의 다수의 뷰들을 제공한다. 3D-HEVC 에 대한 표준화 노력들의 일부는 HEVC 에 기초하는 멀티-뷰 비디오 코덱의 표준화를 포함한다. 3D-HEVC 에서, 상이한 뷰들로부터의 복원된 뷰 성분들에 기초한 뷰간 예측이 인에이블된다.
3D-HEVC 에서, 뷰간 모션 예측은 표준 HEVC 에서 사용되는 모션 보상과 유사하며, 동일한 또는 유사한 신택스 엘리먼트들을 이용할 수도 있다. 병합 모드, 스킵 모드, 및 진보된 모션 벡터 예측 (AMVP) 모드는 모션 예측의 예시적인 유형들이다. 비디오 코더가 예측 유닛 (PU) 에 관해 뷰간 모션 예측을 수행할 때, 비디오 코더는 모션 정보의 소스로서, PU 와 동일한 액세스 유닛에 있지만 상이한 뷰에 있는 픽처를 이용할 수도 있다. 이에 반해, 모션 보상에 대한 다른 접근법들은 단지 상이한 액세스 유닛들에서의 픽처들을 참조 픽처들로서 이용할 수도 있다. 따라서, 3D-HEVC 에서, 의존적인 뷰에서의 블록의 모션 파라미터들은 동일한 액세스 유닛의 다른 뷰들에서의 이미-코딩된 모션 파라미터들에 기초하여 예측되거나 또는 추론될 수도 있다.
비디오 코더가 모션 예측을 수행할 때, 비디오 코더는 현재의 PU 의 모션 정보가 병합 모드, 스킵 모드, 또는 AMVP 모드를 이용하여 시그널링될 때 후보 리스트 (예컨대, 병합 후보 리스트 또는 AMVP 후보 리스트) 를 생성할 수도 있다. 3D-HEVC 에서의 뷰간 모션 예측을 구현하기 위해, 비디오 코더는 뷰간 예측된 모션 벡터 후보들 (IPMVC들) 을 병합 후보 리스트들 및 AMVP 후보 리스트들에 포함시킬 수도 있다. 비디오 코더는 IPMVC 를 후보 리스트에서의 다른 후보들과 동일한 방법으로 이용할 수도 있다. IPMVC 는 뷰간 참조 픽처에서의 PU (즉, 참조 PU) 의 모션 정보를 규정할 수도 있다. 뷰간 참조 픽처는 현재의 PU 와 동일한 액세스 유닛에 있지만, 현재의 PU 와는 상이한 뷰에 있을 수도 있다.
일부 예들에서, IPMVC 는 현재의 PU 의 복수의 서브-PU들의 모션 파라미터들 (예컨대, 모션 벡터들, 참조 인덱스들 등) 을 규정할 수도 있다. 일반적으로, PU 의 각각의 서브-PU 는 PU 의 예측 블록의 상이한 동일-사이즈의 서브-블록과 연관될 수도 있다. 예를 들어, PU 의 루마 예측 블록이 32x32 이고 서브-PU 사이즈가 4x4 이면, 비디오 코더는 PU 를 PU 의 루마 예측 블록의 상이한 4x4 서브-블록들과 연관된 64 개의 서브-PU들로 파티셔닝할 수도 있다. 이 예에서, 서브-PU들은 또한 PU 의 크로마 예측 블록들의 대응하는 서브-블록들과 연관될 수도 있다. 따라서, IPMVC 는 모션 파라미터들의 다수의 세트들을 규정할 수도 있다. 이러한 예들에서, IPMVC 가 후보 리스트에서의 선택된 후보이면, 비디오 코더는 IPMVC 에 의해 규정된 모션 파라미터들의 다수의 세트들에 기초하여 현재의 PU 에 대한 예측 블록을 결정할 수도 있다.
현재의 PU 의 서브-PU들의 모션 파라미터들을 규정하는 IPMVC 를 결정하기 위해, 비디오 코더는 래스터 스캔 순서에 따라서 서브-PU들의 각각을 프로세싱할 수도 있다. 비디오 코더가 서브-PU (즉, 현재의 서브-PU) 를 프로세싱할 때, 비디오 코더는 현재의 PU 에 대한 디스패리티 벡터에 기초하여, 서브-PU 에 대응하는 참조 블록을 결정할 수도 있다. 참조 블록은 현재의 픽처와 동일한 시간 인스턴스에 있지만, 현재의 픽처와는 상이한 뷰에 있을 수도 있다. 현재의 서브-PU 에 대응하는 참조 블록이 모션 보상된 예측을 이용하여 코딩되면 (예컨대, 참조 블록은 하나 이상의 모션 벡터들, 참조 인덱스들 등을 갖는다), 비디오 코더는 현재의 서브-PU 의 모션 파라미터들을 서브-PU 에 대응하는 참조 블록의 모션 파라미터들로 설정할 수도 있다. 그렇지 않고, 현재의 서브-PU 에 대응하는 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면 (예컨대, 참조 블록은 인트라 예측을 이용하여 코딩된다), 비디오 코더는 대응하는 참조 블록이 모션 보상된 예측을 이용하여 코딩되는, 래스터 스캔 순서에서, 가장 가까운 서브-PU 를 식별할 수도 있다. 비디오 코더는 그후 현재의 서브-PU 의 모션 파라미터들을 식별된 서브-PU 에 대응하는 참조 블록의 모션 파라미터들로 설정할 수도 있다.
일부의 경우, 식별된 서브-PU 는 서브-PU들의 래스터 스캔 순서에서 현재의 서브-PU 보다 나중에 발생한다. 따라서, 현재의 서브-PU 에 대한 모션 파라미터들을 결정할 때, 비디오 코더는 대응하는 참조 블록이 모션 보상된 예측을 이용하여 코딩되는 서브-PU 를 발견하기 위해 순방향으로 스캐닝할 수도 있다. 대안적으로, 비디오 코더는 비디오 코더가 서브-PU들의 프로세싱 동안, 대응하는 참조 블록이 모션 보상된 예측을 이용하여 코딩되는 PU 를 조우할 때까지, 현재의 서브-PU 의 모션 파라미터들을 결정하는 것을 지연시킬 수도 있다. 이들 경우들 중 어느 경우든, 추가적인 복잡성 및 코딩 지연이 추가된다.
본 개시물의 하나 이상의 기법들에 따르면, 비디오 코더는 현재의 PU 를 복수의 서브-PU들로 파티셔닝할 수도 있다. 더욱이, 비디오 코더는 디폴트 모션 파라미터들을 결정할 수도 있다. 게다가, 비디오 코더는 복수의 서브-PU들로부터의 서브-PU들을 특정의 순서로 프로세싱할 수도 있다. 일부의 경우, 비디오 코더는 서브-PU들 중 임의의 서브-PU 를 프로세싱하기 전에 디폴트 모션 파라미터들을 결정할 수도 있다. 현재의 PU 의 각 개개의 PU 에 대해, 비디오 코더는 개개의 서브-PU 에 대한 참조 블록을 결정할 수도 있다. 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되면, 비디오 코더는 개개의 서브-PU 에 대한 참조 블록의 모션 파라미터들에 기초하여 개개의 서브-PU 의 모션 파라미터들을 설정할 수도 있다. 그러나, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 비디오 코더는 개개의 서브-PU 의 모션 파라미터들을 디폴트 모션 파라미터들로 설정할 수도 있다.
본 개시물의 하나 이상의 기법들에 따르면, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들은 특정의 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않는다. 따라서, 비디오 코더가 서브-PU들을 프로세싱하고 있을 때, 비디오 코더는 대응하는 참조 블록이 모션 보상된 예측을 이용하여 코딩되는 서브-PU 를 발견하기 위해 순방향으로 스캐닝하거나 또는 비디오 코더가 서브-PU들의 프로세싱 동안, 대응하는 참조 블록이 모션 보상된 예측을 이용하여 코딩되는 PU 를 조우할 때까지 개개의 서브-PU 의 모션 파라미터들을 결정하는 것을 지연시킬 필요가 없을 수도 있다. 유리하게는, 이것은 복잡성 및 코딩 지연을 감소시킬 수도 있다.
도 1 은 본 개시물의 기법들을 이용할 수도 있는 예시적인 비디오 코딩 시스템 (10) 을 예시하는 블록도이다. 본원에서 사용한 바와 같이, 용어 "비디오 코더" 는 일반적으로 비디오 인코더들 및 비디오 디코더들 양자를 지칭한다. 본 개시물에서, 용어들 "비디오 코딩" 또는 "코딩" 은 일반적으로 비디오 인코딩 또는 비디오 디코딩을 지칭할 수도 있다.
도 1 에 나타낸 바와 같이, 비디오 코딩 시스템 (10) 은 소스 디바이스 (12) 및 목적지 디바이스 (14) 를 포함한다. 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 생성한다. 따라서, 소스 디바이스 (12) 는 비디오 인코딩 디바이스 또는 비디오 인코딩 장치로 지칭될 수도 있다. 목적지 디바이스 (14) 는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수도 있다. 따라서, 목적지 디바이스 (14) 는 비디오 디코딩 디바이스 또는 비디오 디코딩 장치로 지칭될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 비디오 코딩 디바이스들 또는 비디오 코딩 장치들의 예들일 수도 있다.
소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크탑 컴퓨터들, 모바일 컴퓨팅 디바이스들, 노트북 (예컨대, 랩탑) 컴퓨터들, 태블릿 컴퓨터들, 셋-탑 박스들, 소위 "스마트" 폰들과 같은 전화기 핸드셋들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 자동차용 컴퓨터들 등을 포함한, 광범위한 디바이스들을 포함할 수도 있다.
목적지 디바이스 (14) 는 소스 디바이스 (12) 로부터 채널 (16) 을 통해서 인코딩된 비디오 데이터를 수신할 수도 있다. 채널 (16) 은 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시키는 것이 가능한 하나 이상의 매체들 또는 디바이스들을 포함할 수도 있다. 일 예에서, 채널 (16) 은 소스 디바이스 (12) 로 하여금, 인코딩된 비디오 데이터를 직접 목적지 디바이스 (14) 로 실시간으로 송신가능하게 하는 하나 이상의 통신 매체들을 포함할 수도 있다. 이 예에서, 소스 디바이스 (12) 는 무선 통신 프로토콜과 같은 통신 표준에 따라서, 인코딩된 비디오 데이터를 변조할 수도 있으며, 변조된 비디오 데이터를 목적지 디바이스 (14) 로 송신할 수도 있다. 하나 이상의 통신 매체들은 무선 및/또는 유선 통신 매체들, 예컨대 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적인 송신 라인들을 포함할 수도 있다. 하나 이상의 통신 매체들은 근거리 네트워크, 광역 네트워크, 또는 글로벌 네트워크 (예컨대, 인터넷) 와 같은, 패킷-기반 네트워크의 일부를 형성할 수도 있다. 하나 이상의 통신 매체들은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는 다른 장비를 포함할 수도 있다.
또 다른 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 저장하는 저장 매체를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 저장 매체에, 예컨대, 디스크 액세스 또는 카드 액세스를 통해서, 액세스할 수도 있다. 저장 매체는 Blu-ray 디스크들, DVD들, CD-ROM들, 플래시 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 다른 적합한 디지털 저장 매체들과 같은 다양한 로컬-액세스되는 데이터 저장 매체들을 포함할 수도 있다.
추가 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 저장하는 파일 서버 또는 다른 중간 저장 디바이스를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해서 파일 서버 또는 다른 중간 저장 디바이스에 저장된 인코딩된 비디오 데이터에 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 송신가능한 서버의 유형일 수도 있다. 예시적인 파일 서버들은 (예컨대, 웹사이트용) 웹 서버들, 파일 전송 프로토콜 (FTP) 서버들, NAS (network attached storage) 디바이스들, 및 로컬 디스크 드라이브들을 포함한다.
목적지 디바이스 (14) 는 인코딩된 비디오 데이터에 인터넷 접속과 같은 표준 데이터 접속을 통해서 액세스할 수도 있다. 데이터 접속들의 예시적인 유형들은 무선 채널들 (예컨대, Wi-Fi 접속들), 유선 접속들 (예컨대, 디지털 가입자 회선 (DSL), 케이블 모뎀 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하는데 적합한 양자의 조합들을 포함할 수도 있다. 파일 서버로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이 양자의 조합일 수도 있다.
본 개시물의 기법들은 무선 애플리케이션들 또는 설정들에 한정되지 않는다. 이 기법들은 오버-디-에어 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예컨대, 인터넷을 통한 스트리밍 비디오 송신들, 데이터 저장 매체 상의 저장을 위한 비디오 데이터의 인코딩, 데이터 저장 매체 상에 저장된 비디오 데이터의 디코딩, 또는 다른 애플리케이션들과 같은, 다양한 멀티미디어 애플리케이션들의 지원 하에서, 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 비디오 코딩 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 전화 통신과 같은, 애플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 은 단지 일 예이며, 본 개시물의 기법들은 인코딩 디바이스와 디코딩 디바이스 사이의 임의의 데이터 통신을 반드시 포함하지는 않는 비디오 코딩 설정들 (예컨대, 비디오 인코딩 또는 비디오 디코딩) 에 적용할 수도 있다. 다른 예들에서, 데이터는 로컬 메모리로부터 취출되어, 네트워크 등을 통해서 스트리밍된다. 비디오 인코딩 디바이스는 데이터를 인코딩하여 메모리에 저장할 수도 있고/있거나 비디오 디코딩 디바이스는 메모리로부터 데이터를 취출하여 디코딩할 수도 있다. 많은 예들에서, 인코딩 및 디코딩은 서로 통신하지 않고 단순히 데이터를 메모리로 인코딩하고/하거나 메모리로부터 데이터를 취출하여 디코딩하는 디바이스들에 의해 수행된다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 일부 예들에서, 출력 인터페이스 (22) 는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수도 있다. 비디오 소스 (18) 는 비디오 캡쳐 디바이스, 예컨대, 비디오 카메라, 이전에-캡쳐된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하는 비디오 공급 인터페이스, 및/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽스 시스템, 또는 이런 비디오 데이터의 소스들의 조합을 포함할 수도 있다.
비디오 인코더 (20) 는 비디오 소스 (18) 로부터의 비디오 데이터를 인코딩할 수도 있다. 일부 예들에서, 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 출력 인터페이스 (22) 를 통해서 목적지 디바이스 (14) 로 직접 송신한다. 다른 예들에서, 인코딩된 비디오 데이터는 또한 디코딩 및/또는 플레이백을 위해 목적지 디바이스 (14) 에 의한 추후 액세스를 위해 저장 매체 또는 파일 서버 상으로 저장될 수도 있다.
도 1 의 예에서, 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 일부 예들에서, 입력 인터페이스 (28) 는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스 (28) 는 인코딩된 비디오 데이터를 채널 (16) 을 통해서 수신할 수도 있다. 비디오 디코더 (30) 는 인코딩된 비디오 데이터를 디코딩할 수도 있다. 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 디스플레이할 수도 있다. 디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합될 수도 있거나 또는 그 외부에 있을 수도 있다. 디스플레이 디바이스 (32) 는 다양한 디스플레이 디바이스들, 예컨대 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 또 다른 유형의 디스플레이 디바이스를 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적 회로들 (ASIC들), 필드-프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 하드웨어, 또는 이들의 임의의 조합들과 같은, 다양한 적합한 회로 중 임의의 회로로서 구현될 수도 있다. 기법들이 소프트웨어로 부분적으로 구현되면, 디바이스는 소프트웨어용 명령들을 적합한 비일시적 컴퓨터 판독가능 저장 매체에 저장할 수도 있으며, 본 개시물의 기법들을 수행하기 위해 그 명령들을 하드웨어에서 하나 이상의 프로세서들을 이용하여 실행할 수도 있다. (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함한) 전술한 것 중 임의의 것이 하나 이상의 프로세서들인 것으로 간주될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 쪽이든 각각의 디바이스에서 결합된 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있다.
본 개시물은 일반적으로 비디오 인코더 (20) 가 소정의 정보를 비디오 디코더 (30) 와 같은 또 다른 디바이스로 "시그널링하는 것" 과 관련될 수도 있다. 용어 "시그널링하는 것" 은 일반적으로, 압축된 비디오 데이터를 디코딩하는데 사용되는 신택스 엘리먼트들 및/또는 다른 데이터의 통신을 지칭할 수도 있다. 이런 통신은 실시간 또는 거의-실시간으로 일어날 수도 있다. 대안적으로, 이런 통신은 어떤 기간에 걸쳐서 일어날 수도 있으며, 예컨대 인코딩 시에 신택스 엘리먼트들을 컴퓨터 판독가능 저장 매체에 인코딩된 비트스트림으로 저장할 때에 일어날지도 모르며, 이 신택스 엘리먼트들은 그후 이 매체에 저장되어진 후 언제라도 디코딩 디바이스에 의해 취출될 수도 있다.
일부 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 ISO/IEC MPEG-4 Visual 및 ITU-T H.264 (또한, ISO/IEC MPEG-4 AVC 로서 알려짐) 와 같은, 그의 스케일러블 비디오 코딩 (SVC) 확장판, 멀티뷰 비디오 코딩 (MVC) 확장판, 및 MVC-기반 3DV 확장판을 포함한, 비디오 압축 표준에 따라서 동작한다. 일부의 경우, H.264/AVC 의 MVC-기반 3DV 확장판을 따르는 임의의 비트스트림은 H.264/AVC 의 MVC 확장판을 따르는 서브-비트스트림을 항상 포함한다. 더욱이, H.264/AVC 에 대한 3차원 비디오 (3DV) 코딩 확장판, 즉 AVC-기반 3DV 를 생성하려는 노력이 진행 중에 있다. 다른 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 또는 ISO/IEC MPEG-2 Visual, 및 ITU-T H.264, ISO/IEC Visual 에 따라서 동작할 수도 있다.
다른 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 ITU-T 비디오 코딩 전문가 그룹 (VCEG) 및 ISO/IEC 동영상 전문가 그룹 (MPEG) 의 비디오 코딩에 관한 합동 작업팀 (JCT-VC) 에 의해 개발된 HEVC (High Efficiency Video Coding) 표준에 따라서 동작할 수도 있다. "HEVC 작업 초안 10" 으로 지칭되는, HEVC 표준의 초안은 스위스, 제네바에서 2013년 1월에 열린 ITU-T SG16 WP3 과 ISO/IEC JTC1/SC29/WG11 의 JCT-VC (Joint Collaborative Team on Video Coding), 12차 회의의 Bross 등, "High Efficiency Video Coding (HEVC) text specification draft 10 (for FDIS & Consent)" (이하, "HEVC 작업 초안 10" 또는 "HEVC 베이스 사양") 에 설명되어 있다. 더욱이, HEVC 에 대한 스케일러블 비디오 코딩 확장판을 생성하려는 노력들이 진행 중에 있다. HEVC 의 스케일러블 비디오 코딩 확장판은 SHEVC 또는 SHVC 로 지칭될 수도 있다.
더욱이, VCEG 및 MPEG 의 3D 비디오 코딩에 관한 합동 작업팀 (JCT-3V) 은 HEVC 의 멀티-뷰 코딩 확장판 (즉, MV-HEVC) 을 현재 개발 중에 있다. 대한민국, 인천에서 2013 년 4월에 열린 ITU-T SG 16 WP 3 과 ISO/IEC JTC 1/SC 29/WG 11 의 3D 비디오 코딩 확장판 개발에 관한 합동 작업팀, 4차 회의의 Tech 등, "MV-HEVC Draft Text 4" (이하, "MV-HEVC 테스트 모델 4") 는 MV-HEVC 의 초안이다. MV-HEVC 에서, HEVC 에서의 CU 또는 PU 레벨에서의 어떤 모듈도 재설계될 필요가 없도록, 단지 하이-레벨 신택스 (HLS) 변경들만 있을 수도 있다. 이것은 HEVC 용으로 구성된 모듈들이 MV-HEVC 에 재사용되는 것을 허용할 수도 있다. 다시 말해서, MV-HEVC 는 단지 하이-레벨 신택스 변경들만을 가능하게 하고 CU/PU 레벨에서의 변경들과 같은, 로우-레벨 신택스 변경들을 가능하게 하지 않는다.
또한, VCEG 및 MPEG 의 JCT-3V 가 HEVC 에 기초한 3DV 표준을 개발하고 있으며, 표준화 노력들의 부분은 HEVC 에 기초한 멀티-뷰 비디오 코덱 (MV-HEVC) 의 표준화 및 HEVC 에 기초한 3D 비디오 코딩 (3D-HEVC) 을 위한 또 다른 부분을 포함한다. 3D-HEVC 에 대해, 텍스쳐 및 심도 뷰들 양자에 대해, CU 및/또는 PU 유닛 레벨에서의 툴들을 포함한, 새로운 코딩 툴들이 포함되고 지원될 수도 있다. 2013년 12월 17일자로, 3D-HEVC 를 위한 소프트웨어 (즉, 3D-HTM) 는 다음 링크로부터 다운로드될 수 있다: [3D-HTM 버전 7.0]: https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HTM-7.0/.
참조 소프트웨어 설명 뿐만 아니라 3D-HEVC 의 작업 초안은 다음과 같이 입수가능하다: 대한민국, 인천에서 2013년 4월에 열린 ITU-T SG 16 WP 3 과 ISO/IEC JTC 1/SC 29/WG 11 의 3D 비디오 코딩 확장판 개발에 관한 합동 작업팀, 4차 회의의 Gerhard Tech 등, "3D-HEVC Test Model 4", JCT3V-D1005_spec_v1 (이하, "3D-HEVC 테스트 모델 4"), 이는 2013년 12월 17일자로, 다음 링크로부터 다운로드가능하다: http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/2_Shanghai/wg11/JCT3V-B1005-v1.zip. 스위스, 제네바에서 2013년 1월에 열린 ITU-T SG 16 WP 3 과 ISO/IEC JTC 1/SC 29/WG 11 의 3D 비디오 코딩 확장판 개발에 관한 합동 작업팀, 3차 회의의 Tech 등, "3D-HEVC Draft Text 3", 문서 번호 JCT3V-C1005 (이하, "3D-HEVC 테스트 모델 3") 는 2013년 12월 17일자로, http://phenix.it-sudparis.eu/jct2/doc_end_user/current_document.php?id=706 으로부터 입수가능하며, 이는 3D-HEVC 의 참조 소프트웨어 설명의 다른 버전이다. 3D-HEVC 는 또한 스위스, 제네바에서 2013년 10월 25일 ~ 11월 1일에 열린 ITU-T SG 16 WP 3 과 ISO/IEC JTC 1/SC 29/WG 11 의 3D 비디오 코딩 확장판 개발에 관한 합동 작업팀, 6차 회의의 Tech 등, "3D-HEVC Draft Text 2", 문서 번호 JCT3V-F1001-v2 (이하, "3D-HEVC 초안 텍스트 2") 에 설명되어 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 SHEVC, MV-HEVC, 및/또는 3D-HEVC 에 따라서 동작할 수도 있다.
HEVC 및 다른 비디오 코딩 사양들에서, 비디오 시퀀스는 통상 일련의 픽처들을 포함한다. 픽처들은 또한 "프레임들" 로 지칭될 수도 있다. 픽처는 SL, SCb, 및 SCr 로 표기되는, 3개의 샘플 어레이들을 포함할 수도 있다. SL 은 루마 샘플들의 2차원 어레이 (즉, 블록) 이다. SCb 는 Cb 색차 샘플들의 2차원 어레이이다. SCr 은 Cr 색차 샘플들의 2차원 어레이이다. 색차 샘플들은 또한 본원에서 "크로마" 샘플들로 지칭될 수도 있다. 다른 경우, 픽처는 단색일 수도 있으며 단지 루마 샘플들의 어레이를 포함할 수도 있다.
픽처의 인코딩된 표현을 생성하기 위해, 비디오 인코더 (20) 는 코딩 트리 유닛들 (CTU들) 의 세트를 생성할 수도 있다. CTU들의 각각은 루마 샘플들의 코딩 트리 블록, 크로마 샘플들의 2개의 대응하는 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3개의 별개의 컬러 평면들을 가지는 픽처들에서, CTU 는 단일 코딩 트리 블록 및 코딩 트리 블록의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 코딩 트리 블록은 샘플들의 NxN 블록일 수도 있다. CTU 는 또한 "트리 블록" 또는 "최대 코딩 유닛" (LCU) 으로 지칭될 수도 있다. HEVC 의 CTU들은 H.264/AVC 와 같은, 다른 표준들의 매크로블록들과 대략 유사할 수도 있다. 그러나, CTU 는 특정의 사이즈에 반드시 제한되지 않으며, 하나 이상의 코딩 유닛들 (CU들) 을 포함할 수도 있다. 슬라이스는 래스터 스캔 순서로 연속적으로 순서화된 정수 개의 CTU들을 포함할 수도 있다.
본 개시물은 하나 이상의 샘플 블록들 및 하나 이상의 샘플들 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들을 지칭하기 위해, 용어 "비디오 유닛" 또는 "비디오 블록" 또는 "블록" 을 사용할 수도 있다. 비디오 유닛들의 예시적인 유형들은 CTU들, CU들, PU들, 변환 유닛들 (TU들), 매크로블록들, 매크로블록 파티션들 등을 포함할 수도 있다. 일부 상황들에서, PU들의 설명은 매크로블록들 또는 매크로블록 파티션들의 설명과 상호교환될 수도 있다.
코딩된 CTU 를 생성하기 위해, 비디오 인코더 (20) 는 코딩 트리 블록들을 코딩 블록들, 따라서 이름 "코딩 트리 유닛들" 로 분할하기 위해 CTU 의 코딩 트리 블록들에 관해 쿼드-트리 파티셔닝을 회귀적으로 수행할 수도 있다. 코딩 블록은 샘플들의 NxN 블록이다. CU 는 루마 샘플 어레이, Cb 샘플 어레이, 및 Cr 샘플 어레이를 가지는 픽처의 루마 샘플들의 코딩 블록 및 크로마 샘플들의 2개의 대응하는 코딩 블록들, 및 코딩 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3개의 별개의 컬러 평면들을 가지는 픽처들에서, CU 는 단일 코딩 블록 및 코딩 블록의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록이다. CU 의 예측 유닛 (PU) 은 루마 샘플들의 예측 블록, 크로마 샘플들의 2개의 대응하는 예측 블록들, 및 예측 블록들을 예측하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3개의 별개의 컬러 평면들을 가지는 픽처들에서, PU 는 단일 예측 블록 및 예측 블록을 예측하는데 사용되는 신택스 구조들을 포함할 수도 있다. 비디오 인코더 (20) 는 CU 의 각각의 PU 의 루마, Cb, 및 Cr 예측 블록들에 대한 예측 루마, Cb, 및 Cr 블록들을 생성할 수도 있다.
비디오 인코더 (20) 는 인트라 예측 또는 인터 예측을 이용하여, PU 에 대한 예측 블록들을 생성할 수도 있다. 비디오 인코더 (20) 가 PU 의 예측 블록들을 생성하기 위해 인트라 예측을 이용하면, 비디오 인코더 (20) 는 PU 와 연관되는 픽처의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다. HEVC 의 일부 버전들에 있어, 각각의 PU 의 루마 성분에 대해, 인트라 예측 방법이 도 2 에 나타낸 바와 같이, (2 내지 34 로 인덱스된) 33 개의 각도 예측 모드들, (1 로 인덱스된) DC 모드 및 (0 으로 인덱스된) 평면 모드로 이용된다. 도 2 는 HEVC 에서의 예시적인 인트라 예측 모드들을 예시하는 개념도이다.
비디오 인코더 (20) 가 PU 의 예측 블록들을 생성하기 위해 인터 예측을 이용하면, 비디오 인코더 (20) 는 PU 와 연관되는 픽처 이외의 하나 이상의 픽처들의 디코딩된 샘플들에 기초하여, PU 의 예측 블록들을 생성할 수도 있다. 인터 예측은 단방향 인터 예측 (즉, 단-예측) 또는 양방향 인터 예측 (즉, 양-예측) 일 수도 있다. 인터 예측을 수행하기 위해, 비디오 인코더 (20) 는 현재의 슬라이스에 대한 제 1 참조 픽처 리스트 (RefPicList0) 를 생성할 수도 있으며, 일부 경우, 또한 현재의 슬라이스에 대한 제 2 참조 픽처 리스트 (RefPicList1) 를 생성할 수도 있다. 참조 픽처 리스트들의 각각은 하나 이상의 참조 픽처들을 포함할 수도 있다. 단-예측을 이용할 때, 비디오 인코더 (20) 는 참조 픽처 내 참조 로케이션을 결정하기 위해 RefPicList0 및 RefPicList1 중 어느 하나 또는 양자에서 참조 픽처들을 탐색할 수도 있다. 더욱이, 단-예측을 이용할 때, 비디오 인코더 (20) 는 참조 로케이션에 대응하는 샘플들에 적어도 부분적으로 기초하여, PU 에 대한 예측 샘플 블록들을 생성할 수도 있다. 더욱이, 단-예측을 이용할 때, 비디오 인코더 (20) 는 PU 의 예측 블록과 참조 로케이션 사이의 공간 변위를 나타내는 단일 모션 벡터를 생성할 수도 있다. PU 의 예측 블록과 참조 로케이션 사이의 공간 변위를 나타내기 위해, 모션 벡터는 PU 의 예측 블록과 참조 로케이션 사이의 수평 변위를 규정하는 수평 성분을 포함할 수도 있으며, PU 의 예측 블록과 참조 로케이션 사이의 수직 변위를 규정하는 수직 성분을 포함할 수도 있다.
PU 를 인코딩하기 위해 양-예측을 이용할 때, 비디오 인코더 (20) 는 RefPicList0 에서의 참조 픽처에서 제 1 참조 로케이션을, 그리고 RefPicList1 에서의 참조 픽처에서 제 2 참조 로케이션을 결정할 수도 있다. 비디오 인코더 (20) 는 그후 제 1 및 제 2 참조 로케이션들에 대응하는 샘플들에 적어도 부분적으로 기초하여, PU 에 대한 예측 블록들을 생성할 수도 있다. 더욱이, PU 를 인코딩하기 위해 양-예측을 이용할 때, 비디오 인코더 (20) 는 PU 의 샘플 블록과 제 1 참조 로케이션 사이의 공간 변위를 나타내는 제 1 모션 벡터, 및 PU 의 예측 블록과 제 2 참조 로케이션 사이의 공간 변위를 나타내는 제 2 모션 벡터를 생성할 수도 있다.
통상, B 픽처의 제 1 또는 제 2 참조 픽처 리스트 (예컨대, RefPicList0 또는 RefPicList1) 에 대한 참조 픽처 리스트 구성은 2개의 단계들: 참조 픽처 리스트 초기화 및 참조 픽처 리스트 재순서화 (reordering) (변경) 을 포함한다. 참조 픽처 리스트 초기화는 POC 의 순서 (픽처의 디스플레이 순서로 정렬된 픽처 순서 카운트) 값들에 기초하여 참조 픽처 메모리 (또한, 디코딩된 픽처 버퍼 (DPB) 로 알려져 있음) 에서의 참조 픽처들을 리스트에 넣는 명시적인 메커니즘이다. 참조 픽처 리스트 재순서화 메커니즘은 참조 픽처 리스트 초기화 동안 리스트에 넣어진 픽처의 위치를 임의의 새로운 위치로 변경하거나, 또는 설령 픽처가 그 초기화된 리스트에 속하지 않더라도, 임의의 참조 픽처를 참조 픽처 메모리에 있어서 임의의 위치에 넣을 수도 있다. 참조 픽처 리스트 재순서화 (변경) 이후의 일부 픽처들은 리스트에서 더 먼 위치에 넣어질 수도 있다. 그러나, 픽처의 위치가 리스트의 활성 참조 픽처들의 개수를 초과하면, 픽처는 최종 참조 픽처 리스트의 엔트리로서 간주되지 않는다. 각각의 리스트에 대한 활성 참조 픽처들의 개수는 슬라이스 헤더에서 시그널링될 수도 있다. 참조 픽처 리스트들이 구성된 후 (즉, 이용가능하면, RefPicList0 및 RefPicList1), 참조 픽처 리스트에 대한 참조 인덱스가 참조 픽처 리스트에 포함된 임의의 참조 픽처를 식별하는데 사용될 수 있다.
비디오 인코더 (20) 가 CU 의 하나 이상의 PU들에 대한 예측 블록들 (예컨대, 루마, Cb 및 Cr 블록들) 을 생성한 후, 비디오 인코더 (20) 는 CU 에 대한 하나 이상의 잔차 블록을 생성할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 CU 에 대한 루마 잔차 블록을 생성할 수도 있다. CU 의 루마 잔차 블록에서의 각각의 샘플은 CU 의 예측 루마 블록들 중 하나에서의 루마 샘플과 CU 의 원래 루마 코딩 블록에서의 대응하는 샘플 사이의 차이를 나타낸다. 게다가, 비디오 인코더 (20) 는 CU 에 대한 Cb 잔차 블록을 생성할 수도 있다. CU 의 Cb 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cb 블록들 중 하나에서의 Cb 샘플과 CU 의 원래 Cb 코딩 블록에서의 대응하는 샘플 사이의 차이를 나타낼 수도 있다. 비디오 인코더 (20) 는 또한 CU 에 대한 Cr 잔차 블록을 생성할 수도 있다. CU 의 Cr 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cr 블록들 중 하나에서의 Cr 샘플과 CU 의 원래 Cr 코딩 블록에서의 대응하는 샘플 사이의 차이를 나타낼 수도 있다.
게다가, 비디오 인코더 (20) 는 쿼드-트리 파티셔닝을 이용하여, CU 의 잔차 블록들 (예컨대, 루마, Cb, 및 Cr 잔차 블록들) 을 하나 이상의 변환 블록들 (예컨대, 루마, Cb, 및 Cr 변환 블록들) 로 분해할 수도 있다. 변환 블록은 동일한 변환이 적용되는 샘플들의 직사각형 (예컨대, 정사각형 또는 비-정사각형) 블록이다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2개의 대응하는 변환 블록들, 및 변환 블록 샘플들을 변환하는데 사용되는 신택스 구조들을 포함할 수도 있다. 따라서, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록과 연관될 수도 있다. TU 와 연관되는 루마 변환 블록은 CU 의 루마 잔차 블록의 서브-블록일 수도 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브-블록일 수도 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브-블록일 수도 있다. 단색 픽처들 또는 3개의 별개의 컬러 평면들을 가지는 픽처들에서, TU 는 단일 변환 블록 및 변환 블록의 샘플들을 변환하는데 사용되는 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 하나 이상의 변환들을 TU 의 변환 블록에 적용하여, TU 에 대한 계수 블록을 생성할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 하나 이상의 변환들을 TU 의 루마 변환 블록에 적용하여, TU 에 대한 루마 계수 블록을 생성할 수도 있다. 계수 블록은 변환 계수들의 2차원 어레이일 수도 있다. 변환 계수는 스칼라 양일 수도 있다. 비디오 인코더 (20) 는 하나 이상의 변환들을 TU 의 Cb 변환 블록에 적용하여, TU 에 대한 Cb 계수 블록을 생성할 수도 있다. 비디오 인코더 (20) 는 하나 이상의 변환들을 TU 의 Cr 변환 블록에 적용하여, TU 에 대한 Cr 계수 블록을 생성할 수도 있다.
계수 블록 (예컨대, 루마 계수 블록, Cb 계수 블록, 또는 Cr 계수 블록) 을 생성한 후, 비디오 인코더 (20) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로 변환 계수들이 변환 계수들을 나타내는데 사용되는 데이터의 양을 가능한 한 감소시키도록 양자화되어 추가적인 압축을 제공하는 프로세스를 지칭한다. 비디오 인코더 (20) 가 계수 블록을 양자화한 후, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들에 관해 컨텍스트-적응 2진 산술 코딩 (CABAC) 을 수행할 수도 있다.
비디오 인코더 (20) 는 코딩된 픽처들 및 연관된 데이터의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 출력할 수도 있다. 비트스트림은 네트워크 추상화 계층 (NAL) 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛은 NAL 유닛에서의 데이터의 유형, 및 그 데이터를 에뮬레이션 방지 비트들이 필요에 따라 산재된 미가공 바이트 시퀀스 페이로드 (RBSP) 의 형태로 포함하는 바이트들의 표시를 포함하는 신택스 구조이다. NAL 유닛들의 각각은 NAL 유닛 헤더를 포함하며 RBSP 를 캡슐화한다. NAL 유닛 헤더는 NAL 유닛 유형 코드를 나타내는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 규정된 NAL 유닛 유형 코드는 NAL 유닛의 유형을 나타낸다. RBSP 는 NAL 유닛 내에 캡슐화되는 정수 개의 바이트들을 포함하는 신택스 구조일 수도 있다. 일부의 경우, RBSP 는 제로 비트들을 포함한다.
상이한 유형들의 NAL 유닛들이 상이한 유형들의 RBSP들을 캡슐화할 수도 있다. 예를 들어, 상이한 유형들의 NAL 유닛은 비디오 파라미터 세트들 (VPS들), 시퀀스 파라미터 세트들 (SPS들), 픽처 파라미터 세트들 (PPS들), 코딩된 슬라이스들, 보충 강화 정보 (SEI) 등에 대해 상이한 RBSP들을 캡슐화할 수도 있다. (파라미터 세트들 및 SEI 메시지들에 대한 RBSP들과는 반대로) 비디오 코딩 데이터에 대한 RBSP들을 캡슐화하는 NAL 유닛들은 비디오 코딩 계층 (VCL) NAL 유닛들로 지칭될 수도 있다.
HEVC 에서, SPS들은 코딩된 비디오 시퀀스 (CVS) 의 모든 슬라이스들에 적용되는 정보를 포함할 수도 있다. CVS 는 픽처들의 시퀀스를 포함할 수도 있다. HEVC 에서, CVS 는 IDR (instantaneous decoding refresh) 픽처, 또는 BLA (broken link access) 픽처, 또는 IDR 또는 BLA 픽처가 아닌 모든 후속 픽처들을 포함하여, 비트스트림에서 제 1 픽처인 CRA (clean random access) 픽처로부터 시작할 수도 있다. 즉, HEVC 에서, CVS 는 디코딩 순서에서, 비트스트림에서 제 1 액세스 유닛인 CRA 액세스 유닛, IDR 액세스 유닛 또는 BLA 액세스 유닛, 뒤이어서, 임의의 후속 IDR 또는 BLA 액세스 유닛까지이지만 이들을 포함하지는 않는 모든 후속 액세스 유닛들을 포함하는 0개 이상의 비-IDR 및 비-BLA 액세스 유닛들로 이루어질 수도 있는 액세스 유닛들의 시퀀스를 포함할 수도 있다. HEVC 에서, 액세스 유닛은 디코딩 순서에서 연속하고 정확히 하나의 코딩된 픽처를 포함하는 NAL 유닛들의 세트일 수도 있다. 코딩된 픽처의 코딩된 슬라이스 NAL 유닛들에 더해서, 액세스 유닛은 또한 코딩된 픽처의 슬라이스들을 포함하지 않는 다른 NAL 유닛들을 포함할 수도 있다. 일부 예들에서, 액세스 유닛의 디코딩은 항상 디코딩된 픽처를 초래한다.
VPS 는 0개 이상의 전체 CVS들에 적용하는 신택스 엘리먼트들을 포함하는 신택스 구조이다. SPS 는 또한 0개 이상의 전체 CVS들에 적용하는 신택스 엘리먼트들을 포함하는 신택스 구조이다. SPS 는 SPS 가 활성일 때 활성인 VPS 를 식별하는 신택스 엘리먼트를 포함할 수도 있다. 따라서, VPS 의 신택스 엘리먼트들은 SPS 의 신택스 엘리먼트들보다 일반적으로 더 많이 적용가능할 수도 있다. PPS 는 0개 이상의 코딩된 픽처들에 적용하는 신택스 엘리먼트들을 포함하는 신택스 구조이다. PPS 는 PPS 가 활성일 때 활성인 SPS 를 식별하는 신택스 엘리먼트를 포함할 수도 있다. 슬라이스의 슬라이스 헤더는 슬라이스가 코딩되고 있을 때 활성인 PPS 를 나타내는 신택스 엘리먼트를 포함할 수도 있다.
비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 생성된 비트스트림을 수신할 수도 있다. 게다가, 비디오 디코더 (30) 는 비트스트림을 파싱하여, 비트스트림으로부터 신택스 엘리먼트들을 획득할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 획득된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 복원할 수도 있다. 비디오 데이터를 복원하는 프로세스는 일반적으로 비디오 인코더 (20) 에 의해 수행되는 프로세스와 반대일 수도 있다. 예를 들어, 비디오 디코더 (30) 는 현재의 CU 의 PU들에 대한 예측 블록들을 결정하기 위해 PU들의 모션 벡터들을 이용할 수도 있다. 게다가, 비디오 디코더 (30) 는 현재의 CU 의 TU들과 연관되는 계수 블록들을 역양자화할 수도 있다. 비디오 디코더 (30) 는 계수 블록들에 관해 역변환들을 수행하여, 현재의 CU 의 TU들과 연관되는 변환 블록들을 복원할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 PU들에 대한 예측 블록들의 샘플들을 현재의 CU 의 TU들의 변환 블록들의 대응하는 샘플들에 가산함으로써, 현재의 CU 의 코딩 블록들을 복원할 수도 있다. 픽처의 각각의 CU 에 대해 코딩 블록들을 복원함으로써, 비디오 디코더 (30) 는 그 픽처를 복원할 수도 있다.
일부 예들에서, 비디오 인코더 (20) 는 병합 모드 또는 진보된 모션 벡터 예측 (AMVP) 모드를 이용하여 PU 의 모션 정보를 시그널링할 수도 있다. 예를 들어, HEVC 에서, 모션 파라미터들의 예측을 위한 2개의 모드들이 존재하며, 하나는 병합 모드이고 다른 하나는 AMVP 이다. 모션 예측은 하나 이상의 다른 블록들의 모션 정보에 기초한 블록 (예컨대, PU) 의 모션 정보의 결정을 포함할 수도 있다. PU 의 모션 정보 (또한, 본원에서 모션 파라미터들로 지칭됨) 는 PU 의 모션 벡터(들), 및 PU 의 참조 인덱스(들) 를 포함할 수도 있다.
비디오 인코더 (20) 가 병합 모드를 이용하여 현재의 PU 의 모션 정보를 시그널링할 때, 비디오 인코더 (20) 는 병합 후보 리스트를 생성한다. 다시 말해서, 비디오 인코더 (20) 는 모션 벡터 예측자 리스트 구성 프로세스를 수행할 수도 있다. 병합 후보 리스트는 현재의 PU 에 공간적으로 또는 시간적으로 이웃하는 PU들의 모션 정보를 나타내는 병합 후보들의 세트를 포함한다. 즉, 병합 모드에서, 모션 파라미터들 (예컨대, 참조 인덱스들, 모션 벡터들 등) 의 후보 리스트는, 후보가 공간 및 시간 이웃하는 블록들로부터 유래할 수 있는 경우에 구성된다.
더욱이, 병합 모드에서, 비디오 인코더 (20) 는 병합 후보 리스트로부터 병합 후보를 선택할 수도 있으며 선택된 병합 후보에 의해 나타낸 모션 정보를 현재의 PU 의 모션 정보로서 이용할 수도 있다. 비디오 인코더 (20) 는 선택된 병합 후보의 병합 후보 리스트에서의 위치를 시그널링할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 인덱스를 후보 리스트로 송신함으로써, 선택된 모션 벡터 파라미터들을 시그널링할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터, 후보 리스트에 대한 인덱스 (즉, 후보 리스트 인덱스) 를 획득할 수도 있다. 게다가, 비디오 디코더 (30) 는 동일한 병합 후보 리스트를 생성할 수도 있으며, 선택된 병합 후보의 위치의 표시에 기초하여, 선택된 병합 후보를 결정할 수도 있다. 비디오 디코더 (30) 는 그후 그 선택된 병합 후보의 모션 정보를 이용하여, 현재의 PU 에 대한 예측 블록들을 생성할 수도 있다. 즉, 비디오 디코더 (30) 는 후보 리스트 인덱스에 적어도 부분적으로 기초하여, 후보 리스트에서의 선택된 후보를 결정할 수도 있으며, 여기서, 선택된 후보는 현재의 PU 에 대한 모션 벡터를 규정한다. 이러한 방법으로, 디코더 측에서, 일단 인덱스가 디코딩되면, 인덱스가 가리키는 대응하는 블록의 모든 모션 파라미터들은 현재의 PU 에 의해 승계될 수도 있다.
스킵 모드는 병합 모드와 유사하다. 스킵 모드에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 병합 후보 리스트를, 비디오 인코더 (20) 및 비디오 디코더 (30) 가 병합 모드에서 병합 후보 리스트를 이용하는 것과 동일한 방법으로 생성 및 이용한다. 그러나, 비디오 인코더 (20) 가 스킵 모드를 이용하여 현재의 PU 의 모션 정보를 시그널링할 때, 비디오 인코더 (20) 는 현재의 PU 에 대한 임의의 잔차 데이터를 시그널링하지 않는다. 따라서, 비디오 디코더 (30) 는 병합 후보 리스트에서의 선택된 후보의 모션 정보에 의해 나타낸 참조 블록에 기초하여, 잔차 데이터의 사용 없이, PU 에 대한 예측 블록을 결정할 수도 있다.
AMVP 모드는 비디오 인코더 (20) 가 후보 리스트를 생성할 수도 있으며 후보 리스트로부터 후보를 선택할 수도 있다는 점에서, 병합 모드와 유사하다. 그러나, 비디오 인코더 (20) 가 AMVP 모드를 이용하여 현재의 PU 의 RefPicListX 모션 정보를 시그널링할 때, 비디오 인코더 (20) 는 현재의 PU 에 대한 RefPicListX MVP 플래그를 시그널링하는 것에 더해서, 현재의 PU 에 대한 RefPicListX 모션 벡터 차이 (MVD) 및 현재의 PU 에 대한 RefPicListX 참조 인덱스를 시그널링할 수도 있다. 현재의 PU 에 대한 RefPicListX MVP 플래그는 AMVP 후보 리스트에서의 선택된 AMVP 후보의 위치를 나타낼 수도 있다. 현재의 PU 에 대한 RefPicListX MVD 는 현재의 PU 의 RefPicListX 모션 벡터와 선택된 AMVP 후보의 모션 벡터 사이의 차이를 나타낼 수도 있다. 이러한 방법으로, 비디오 인코더 (20) 는 RefPicListX 모션 벡터 예측자 (MVP) 플래그, RefPicListX 참조 인덱스 값, 및 RefPicListX MVD 를 시그널링함으로써, 현재의 PU 의 RefPicListX 모션 정보를 시그널링할 수도 있다. 다시 말해서, 현재의 PU 에 대한 모션 벡터를 나타내는 비트스트림에서의 데이터는 참조 인덱스, 후보 리스트에 대한 인덱스, 및 MVD 를 나타내는 데이터를 포함할 수도 있다.
더욱이, 현재의 PU 의 모션 정보가 AMVP 모드를 이용하여 시그널링될 때, 비디오 디코더 (30) 는 비트스트림으로부터, 현재의 PU 에 대한 MVD 및 MVP 플래그를 획득할 수도 있다. 비디오 디코더 (30) 는 동일한 AMVP 후보 리스트를 생성할 수도 있으며, MVP 플래그에 기초하여, 선택된 AMVP 후보를 결정할 수도 있다. 비디오 디코더 (30) 는 MVD 를 선택된 AMVP 후보에 의해 나타낸 모션 벡터에 가산함으로써, 현재의 PU 의 모션 벡터를 복구할 수도 있다. 즉, 비디오 디코더 (30) 는 그 선택된 AMVP 후보에 의해 나타낸 모션 벡터 및 MVD 에 기초하여, 현재의 PU 의 모션 벡터를 결정할 수도 있다. 비디오 디코더 (30) 는 그후 현재의 PU 의 모션 벡터들 또는 복구된 모션 벡터를 이용하여, 현재의 PU 에 대한 예측 블록들을 생성할 수도 있다.
비디오 디코더 (30) 가 현재의 PU 에 대한 AMVP 후보 리스트를 생성할 때, 비디오 디코더 (30) 는 현재의 PU 에 공간적으로 이웃하는 로케이션들을 커버하는 PU들 (즉, 공간적으로-이웃하는 PU들) 의 모션 정보에 기초하여 하나 이상의 AMVP 후보들을 유도할 수도 있다. 도 3 은 현재의 블록 (40) 에 대한, 예시적인 공간적으로-이웃하는 PU들을 예시하는 개념도이다. 도 3 의 예에서, 공간적으로-이웃하는 PU들은 A0, A1, B0, B1, 및 B2 로서 나타낸 로케이션들을 커버하는 PU들일 수도 있다. PU 는 PU 의 예측 블록이 로케이션을 포함할 때 로케이션을 커버할 수도 있다.
현재의 PU (즉, 현재의 PU 와는 상이한 시간 인스턴스에 있는 PU) 와 시간적으로 이웃하는 PU 의 모션 정보에 기초하는 병합 후보 리스트 또는 AMVP 후보 리스트에서의 후보는 시간 모션 벡터 예측자로 지칭될 수도 있다. 시간 모션 벡터 예측의 사용은 시간 모션 벡터 예측 (TMVP) 으로 지칭될 수도 있다. TMVP 는 HEVC 의 코딩 효율을 향상시키는데 이용될 수도 있으며, 다른 코딩 툴들과는 달리, TMVP 는 디코딩 픽처 버퍼에서의, 더 구체적으로는 참조 픽처 리스트들에서의, 프레임의 모션 벡터에 액세스할 필요가 있을 수도 있다.
TMVP 는 CVS 단위 기반으로, 슬라이스 단위 기반으로, 또는 다른 기반으로 인에이블되거나 또는 디스에이블될 수도 있다. SPS 에서의 신택스 엘리먼트 (예컨대, sps_temporal_mvp_enable_flag) 는 TMVP들의 사용이 CVS 에 대해 인에이블되는지 여부를 나타낼 수도 있다. 더욱이, TMVP 가 CVS 에 대해 인에이블될 때, TMVP 는 CVS 내 특정의 슬라이스들에 대해 인에이블되거나 또는 디스에이블될 수도 있다. 예를 들어, 슬라이스 헤더에서의 신택스 엘리먼트 (예컨대, slice_temporal_mvp_enable_flag) 는 TMVP 가 슬라이스에 대해 인에이블되는지 여부를 나타낼 수도 있다. 따라서, 인터 예측된 슬라이스에서, TMVP 가 전체 CVS 에 대해 인에이블될 때 (예컨대, SPS 에서의 sps_temporal_mvp_enable_flag 가 1 로 설정된다), slice_temporal_mvp_enable_flag 는 TMVP 가 현재의 슬라이스에 대해 인에이블되는지 여부를 나타내기 위해 슬라이스 헤더에서 시그널링된다.
시간 모션 벡터 예측자를 결정하기 위해, 비디오 코더는 먼저 현재의 PU 와 동일 위치에 배치되는 PU 를 포함하는 참조 픽처를 식별할 수도 있다. 다시 말해서, 비디오 코더는 소위 "동일 위치에 배치된 픽처" 를 식별할 수도 있다. 현재의 픽처의 현재의 슬라이스가 B 슬라이스 (즉, 양방향으로 인터 예측된 PU들을 포함하도록 허용되는 슬라이스) 이면, 비디오 인코더 (20) 는 슬라이스 헤더에서, 동일 위치에 배치된 픽처가 RefPicList0 또는 RefPicList1 로부터 유래하는지 여부를 나타내는 신택스 엘리먼트 (예컨대, collocated_from_l0_flag) 를 시그널링할 수도 있다. 다시 말해서, TMVP 가 현재의 슬라이스에 대해 인에이블되고 현재의 슬라이스가 B 슬라이스 (예컨대, 양방향으로 인터 예측된 PU들을 포함하도록 허용되는 슬라이스) 일 때, 비디오 인코더 (20) 는 동일 위치에 배치된 픽처가 RefPicList0 또는 RefPicList1 에 있는지 여부를 나타내기 위해, 슬라이스 헤더에서 신택스 엘리먼트 (예컨대, collocated_from_l0_flag) 를 시그널링할 수도 있다.
슬라이스 헤더에서의 신택스 엘리먼트 (예컨대, collocated_ref_idx) 는 그 식별된 참조 픽처 리스트에서 동일 위치에 배치된 픽처를 나타낼 수도 있다. 따라서, 비디오 디코더 (30) 가 동일 위치에 배치된 픽처를 포함하는 참조 픽처 리스트를 식별한 후, 비디오 디코더 (30) 는 슬라이스 헤더에서 시그널링될 수도 있는, collocated_ref_idx 를 이용하여, 그 식별된 참조 픽처 리스트에서 동일 위치에 배치된 픽처를 식별할 수도 있다. 비디오 코더는 동일 위치에 배치된 픽처를 체킹함으로써 동일 위치에 배치된 PU 를 식별할 수도 있다. 시간 모션 벡터 예측자는 동일 위치에 배치된 PU 의 우하단 PU 의 모션 정보, 또는 동일 위치에 배치된 PU 의 중심 PU 의 모션 정보 중 어느 하나를 나타낼 수도 있다.
상기 프로세스에 의해 식별된 모션 벡터들 (즉, 시간 모션 벡터 예측자의 모션 벡터들) 이 병합 모드 또는 AMVP 모드에 대한 모션 후보를 생성하는데 사용될 때, 비디오 코더는 (POC 값에 의해 반영된) 시간 로케이션에 기초하여 모션 벡터들을 스케일링할 수도 있다. 예를 들어, 비디오 코더는 현재의 픽처와 참조 픽처의 POC 값들 사이의 차이가 더 적을 때보다 현재의 픽처와 참조 픽처의 POC 값들 사이의 차이가 더 클 때 더 큰 양들 만큼 모션 벡터의 크기를 증가시킬 수도 있다.
시간 모션 벡터 예측자로부터 유도된 시간 병합 후보에 대한 모든 가능한 참조 픽처 리스트들의 목표 참조 인덱스는 0 으로 항상 설정될 수도 있다. 그러나, AMVP 에 대해, 모든 가능한 참조 픽처들의 목표 참조 인덱스는 디코딩된 참조 인덱스와 동일하게 설정될 수도 있다. 다시 말해서, TMVP 로부터 유도된 시간 병합 후보에 대한 모든 가능한 참조 픽처 리스트들의 목표 참조 인덱스가 0 으로 항상 설정되는 한편, AMVP 에 대해, 시간 병합 후보는 디코딩된 참조 인덱스와 동일하게 설정될 수도 있다. HEVC 에서, SPS 는 플래그 (예컨대, sps_temporal_mvp_enable_flag) 를 포함할 수도 있으며, 슬라이스 헤더는 sps_temporal_mvp_enable_flag 가 1 과 동일할 때 플래그 (예컨대, pic_temporal_mvp_enable_flag) 를 포함할 수도 있다. pic_temporal_mvp_enable_flag 및 temporal_id 양자가 특정의 픽처에 대해 0 과 동일할 때, 디코딩 순서에서 그 특정의 픽처 이전 픽처들로부터의 어떤 모션 벡터도 특정의 픽처 또는 디코딩 순서에서 그 특정의 픽처 이후의 픽처의 디코딩에서의 시간 모션 벡터 예측자로서 사용되지 않는다.
본 개시물의 기법들은 MV-HEVC 및 3D-HEVC 를 포함한, 멀티-뷰 코딩 및/또는 3DV 표준들 및 사양들에 잠재적으로 적용가능하다. MV-HEVC 및 3D-HEVC 에서 정의된 것과 같은, 멀티-뷰 코딩에서, 상이한 뷰포인트들로부터의 동일한 장면의 다수의 뷰들이 존재할 수도 있다. 멀티-뷰 코딩의 상황에서, 용어 "액세스 유닛" 은 동일한 시간 인스턴스에 대응하는 픽처들의 세트를 지칭하기 위해 사용될 수도 있다. 일부의 경우, 멀티-뷰 코딩의 상황에서, 액세스 유닛은 규정된 분류 규칙에 따라서 서로 연관되고 디코딩 순서로 연속되며 그리고 동일한 출력 시간과 연관된 모든 코딩된 픽처들의 VCL NAL 유닛들 및 그들의 연관된 비-VCL NAL 유닛들을 포함하는 NAL 유닛들의 세트일 수도 있다. 따라서, 비디오 데이터는 시간 경과에 따라 발생하는 액세스 유닛들의 시리즈로서 개념화될 수도 있다.
3D-HEVC 에서 정의된 바와 같은, 3DV 코딩에서, "뷰 성분" 은 단일 액세스 유닛에서의 뷰의 코딩된 표현일 수도 있다. 뷰 성분은 심도 뷰 성분 및 텍스쳐 뷰 성분을 포함할 수도 있다. 심도 뷰 성분은 단일 액세스 유닛에서의 뷰의 심도의 코딩된 표현일 수도 있다. 텍스쳐 뷰 성분은 단일 액세스 유닛에서의 뷰의 텍스쳐의 코딩된 표현일 수도 있다. 본 개시물에서, "뷰" 는 동일한 뷰 식별자와 연관되는 뷰 성분들의 시퀀스를 지칭할 수도 있다.
뷰의 픽처들의 세트 내 텍스쳐 뷰 성분 및 심도 뷰 성분은 서로에 대응하는 것으로 간주될 수도 있다. 예를 들어, 뷰의 픽처들의 세트 내 텍스쳐 뷰 성분은 뷰의 픽처들의 세트 내 심도 뷰 성분에 대응하는 것으로 간주되며, 반대로도 마찬가지이다 (즉, 심도 뷰 성분은 그 세트에서의 그의 텍스쳐 뷰 성분에 대응하며, 반대로도 마찬가지이다). 본 개시물에서 사용한 바와 같이, 심도 뷰 성분에 대응하는 텍스쳐 뷰 성분은 단일 액세스 유닛의 동일한 뷰의 부분인, 텍스쳐 뷰 성분 및 심도 뷰 성분으로서 간주될 수도 있다.
텍스쳐 뷰 성분은 디스플레이되는 실제 이미지 콘텐츠를 포함한다. 예를 들어, 텍스쳐 뷰 성분은 루마 (Y) 및 크로마 (Cb 및 Cr) 성분들을 포함할 수도 있다. 심도 뷰 성분은 그의 대응하는 텍스쳐 뷰 성분에서의 픽셀들의 상대적인 심도들을 나타낼 수도 있다. 일 예로서, 심도 뷰 성분은 오직 루마 값들을 포함하는 그레이 스케일 이미지이다. 즉, 심도 뷰 성분은 임의의 이미지 콘텐츠를 전달하지 않고, 오히려 텍스쳐 뷰 성분에서의 픽셀들의 상대적인 심도들의 측정치를 제공할 수도 있다.
예를 들어, 심도 뷰 성분에서의 순수 화이트 픽셀은 대응하는 텍스쳐 뷰 성분에서의 그의 대응하는 픽셀 또는 픽셀들이 뷰어의 관점으로부터 더 가깝다는 것을 나타내며, 심도 뷰 성분에서의 순수 블랙 픽셀은 대응하는 텍스쳐 뷰 성분에서의 그의 대응하는 픽셀 또는 픽셀들이 뷰어의 관점으로부터 더 멀리 있다는 것을 나타낸다. 블랙과 화이트 사이에서의 그레이의 여러 음영들은 상이한 심도 레벨들을 나타낸다. 예를 들어, 심도 뷰 성분에서의 순수 (very) 그레이 픽셀은 텍스쳐 뷰 성분에서의 그의 대응하는 픽셀이 심도 뷰 성분에서의 약한 (slightly) 그레이 픽셀보다 더 멀리 있다는 것을 나타낸다. 오직 그레이 스케일이 픽셀들의 심도를 식별하는데 요구되기 때문에, 심도 뷰 성분은, 심도 뷰 성분에 대한 컬러 값들이 임의의 목적에 적합하지 않을 수도 있어, 크로마 성분들을 포함할 필요가 없다.
심도를 식별하는데 오직 루마 값들 (예컨대, 강도 값들) 을 이용하는 심도 뷰 성분은 예시 목적들을 위해 제공되며, 한정하는 것으로 간주되어서는 안된다. 다른 예들에서, 임의의 기법이 텍스쳐 뷰 성분에서의 픽셀들의 상대적인 심도들을 나타내는데 이용될 수도 있다.
멀티-뷰 코딩에서, 뷰는 비디오 디코더 (예컨대, 비디오 디코더 (30)) 가 임의의 다른 뷰에서의 픽처들에 대한 참조 없이 뷰에서의 픽처들을 디코딩할 수 있으면, "베이스 뷰" 로 지칭될 수도 있다. 비-베이스 뷰들 중 하나에서의 픽처를 코딩할 때, (비디오 인코더 (20) 또는 비디오 디코더 (30) 와 같은) 비디오 코더는 그 픽처가 상이한 뷰에 있지만 비디오 코더가 현재 코딩하고 있는 픽처와 동일한 시간 인스턴스 (즉, 액세스 유닛) 내에 있으면, 픽처를 참조 픽처 리스트 (예컨대, RefPicList0 또는 RefPicList1) 에 추가할 수도 있다. 다른 인터 예측 참조 픽처들과 유사하게, 비디오 코더는 뷰간 예측 참조 픽처를 참조 픽처 리스트의 임의의 위치에 삽입할 수도 있다.
멀티-뷰 코딩은 뷰간 예측을 지원한다. 뷰간 예측은 H.264/AVC, HEVC, 또는 다른 비디오 코딩 사양들에 사용되는 인터 예측과 유사하며, 동일한 신택스 엘리먼트들을 이용할 수도 있다. 그러나, 비디오 코더가 (매크로블록, CU, 또는 PU 와 같은) 현재의 블록에 관해 뷰간 예측을 수행할 때, 비디오 인코더 (20) 는 참조 픽처로서, 현재의 블록과 동일한 액세스 유닛에 있지만 상이한 뷰에 있는 픽처를 이용할 수도 있다. 다시 말해서, 멀티-뷰 코딩에서, 뷰간 예측은 뷰들 사이의 상관을 제거하기 위해서 동일한 액세스 유닛의 (즉, 동일한 시간 인스턴스 내의) 상이한 뷰들에서 캡쳐되는 픽처들 사이에 수행된다. 이에 반해, 종래의 인터 예측은 단지 상이한 액세스 유닛들에서의 픽처들을 참조 픽처들로서 이용한다.
도 4 는 예시적인 멀티-뷰 디코딩 순서를 예시하는 개념도이다. 멀티-뷰 디코딩 순서는 비트스트림 순서일 수도 있다. 도 4 의 예에서, 각각의 정사각형은 뷰 성분에 대응한다. 정사각형들의 컬럼 (column) 들은 액세스 유닛들에 대응한다. 각각의 액세스 유닛은 시간 인스턴스의 모든 뷰들의 코딩된 픽처들을 포함하도록 정의될 수도 있다. 정사각형들의 로우 (row) 들은 뷰들에 대응한다. 도 4 의 예에서, 액세스 유닛들은 T0...T8 로 라벨링되며, 뷰들은 S0...S7 로 라벨링된다. 액세스 유닛의 각각의 뷰 성분이 다음 액세스 유닛의 임의의 뷰 성분 이전에 디코딩되기 때문에, 도 4 의 디코딩 순서는 시간-우선 코딩으로 지칭될 수도 있다. 액세스 유닛들의 디코딩 순서는 뷰들의 출력 또는 디스플레이 순서와 동일하지 않을 수도 있다.
도 5 는 멀티-뷰 코딩을 위한 예시적인 예측 구조를 예시하는 개념도이다. 도 5 의 멀티-뷰 예측 구조는 시간 및 뷰간 예측을 포함한다. 도 5 의 예에서, 각각의 정사각형은 뷰 성분에 대응한다. 도 5 의 예에서, 액세스 유닛들은 T0...T11 로 라벨링되며, 뷰들은 S0...S7 로 라벨링된다. "I" 로 라벨링된 정사각형들은 인트라 예측된 뷰 성분들이다. "P" 로 라벨링된 정사각형들은 단방향으로 인터 예측된 뷰 성분들이다. "B" 및 "b" 로 라벨링된 정사각형들은 양방향으로 인터 예측된 뷰 성분들이다. "b" 로 라벨링된 정사각형들은 "B" 로 라벨링된 정사각형들을 참조 픽처들로서 이용할 수도 있다. 제 1 정사각형으로부터 제 2 정사각형으로 가리키는 화살표는 제 1 정사각형이 제 2 정사각형에 대한 참조 픽처로서 인터 예측에서 이용가능하다는 것을 나타낸다. 도 5 에서 수직 화살표들로 나타낸 바와 같이, 동일한 액세스 유닛의 상이한 뷰들에서의 뷰 성분들은 참조 픽처들로서 이용가능할 수도 있다. 동일한 액세스 유닛의 또 다른 뷰 성분에 대한 참조 픽처로서의 액세스 유닛의 하나의 뷰 성분의 사용은 뷰간 예측으로 지칭될 수도 있다.
H.264/AVC 의 MVC 확장판과 같은, 멀티-뷰 코딩에서, 뷰간 예측은, H.264/AVC 모션 보상의 신택스를 이용하지만 상이한 뷰에서의 픽처가 참조 픽처로서 사용되도록 허용하는 디스패리티 모션 보상에 의해 지원된다. 2개의 뷰들의 코딩은 또한 H.264/AVC 의 MVC 확장판에 의해 지원될 수도 있다. H.264/AVC 의 MVC 확장판의 이점들 중 하나는, MVC 인코더가 2개보다 많은 뷰들을 3D 비디오 입력으로서 취할 수도 있으며 MVC 디코더가 이러한 멀티-뷰 표현을 디코딩할 수도 있다는 점이다. 그 결과, MVC 디코더를 가진 임의의 렌더러는 2개보다 많은 뷰들을 가진 3D 비디오 콘텐츠를 기대할 수도 있다.
MV-HEVC 및 3D-HEVC 에서 정의된 것과 같은, 멀티-뷰 비디오 코딩의 상황에서, 2종류의 모션 벡터들이 존재한다. 모션 벡터의 한 종류는 시간 참조 픽처를 가리키는 법선 (normal) 모션 벡터이다. 법선, 시간 모션 벡터에 대응하는 인터 예측의 유형은 "모션-보상된 예측" 또는 "MCP" 로 지칭될 수도 있다. 뷰간 예측 참조 픽처가 모션 보상을 위해 사용될 때, 대응하는 모션 벡터는 "디스패리티 모션 벡터" 로 지칭된다. 다시 말해서, 디스패리티 모션 벡터는 상이한 뷰에서의 픽처 (즉, 뷰간 참조 픽처) 를 가리킨다. 디스패리티 모션 벡터에 대응하는 인터 예측의 유형은 "디스패리티-보상된 예측" 또는 "DCP" 로 지칭될 수도 있다.
3D-HEVC 는 뷰간 모션 예측 및 뷰간 잔차 예측을 이용하여 코딩 효율을 향상시킬 수도 있다. 다시 말해, 코딩 효율을 더욱 향상시키기 위해, 2개의 새로운 기술들, 즉, "뷰간 모션 예측" 및 "뷰간 잔차 예측" 이 참조 소프트웨어에서 채택되었다. 뷰간 모션 예측에서, 비디오 코더는 현재의 PU 와는 상이한 뷰에서의 PU 의 모션 정보에 기초하여 현재의 PU 의 모션 정보를 결정 (즉, 예측) 할 수도 있다. 뷰간 잔차 예측에서, 비디오 코더는 현재의 CU 와는 상이한 뷰에서의 잔차 데이터에 기초하여 현재의 CU 의 잔차 블록들을 결정할 수도 있다.
뷰간 모션 예측 및 뷰간 잔차 예측을 이용가능하게 하기 위해, 비디오 코더는 블록들 (예컨대, PU들, CU들 등) 에 대한 디스패리티 벡터들을 결정할 수도 있다. 다시 말해, 이들 2개의 코딩 툴들을 이용가능하게 하기 위해, 제 1 단계는 디스패리티 벡터를 유도하는 것이다. 일반적으로, 디스패리티 벡터는 2개의 뷰들 사이의 변위의 추정자로서 사용된다. 비디오 코더는 뷰간 모션 또는 잔차 예측을 위해 블록에 대한 디스패리티 벡터를 이용하여 참조 블록을 또 다른 뷰에 로케이트할 수도 있거나, 또는 비디오 코더는 뷰간 모션 예측을 위해 디스패리티 벡터를 디스패리티 모션 벡터로 변환할 수도 있다. 즉, 디스패리티 벡터는 뷰간 모션/잔차 예측을 위해 다른 뷰에 대응하는 블록을 로케이트하는데 사용될 수도 있거나 또는 뷰간 모션 예측에 대한 디스패리티 모션 벡터로 변환될 수도 있다.
일부 예들에서, 비디오 코더는 이웃하는 블록들 기반 디스패리티 벡터 (NBDV) 유도의 방법을 이용하여 PU (즉, 현재의 PU) 에 대한 디스패리티 벡터를 유도할 수도 있다. 예를 들어, 현재의 PU 에 대한 디스패리티 벡터를 유도하기 위해, NBDV 유도라 불리는 프로세스가 3D-HEVC 에 대한 테스트 모델 (즉, 3D-HTM) 에 사용될 수도 있다.
NBDV 유도 프로세스는 공간 및 시간 이웃하는 블록들로부터의 디스패리티 모션 벡터들을 이용하여, 현재의 블록에 대한 디스패리티 벡터를 유도한다. 이웃하는 블록들 (예컨대, 현재의 블록에 공간적으로 또는 시간적으로 이웃하는 블록들) 이 비디오 코딩에서 거의 동일한 모션 및 디스패리티 정보를 공유할 가능성이 있기 때문에, 현재의 블록은 이웃하는 블록들에서의 모션 벡터 정보를 현재의 블록의 디스패리티 벡터의 예측자로서 이용할 수 있다. 따라서, NBDV 유도 프로세스는 상이한 뷰들에서의 디스패리티 벡터를 추정하기 위해 이웃하는 디스패리티 정보를 이용한다.
NBDV 유도 프로세스에서, 비디오 코더는 고정된 체킹 순서로, 공간적으로-이웃하는 및 시간적으로-이웃하는 PU들의 모션 벡터들을 체킹할 수도 있다. 비디오 코더가 공간적으로-이웃하는 또는 시간적으로-이웃하는 PU 의 모션 벡터(들)를 체킹할 때, 비디오 코더는 모션 벡터(들)가 디스패리티 모션 벡터들인지 여부를 결정할 수도 있다. 픽처의 PU 의 디스패리티 모션 벡터는 픽처의 뷰간 참조 픽처 내 로케이션을 가리키는 모션 벡터이다. 픽처의 뷰간 참조 픽처는 그 픽처와 동일한 액세스 유닛에 있지만 상이한 뷰에 있는 픽처일 수도 있다. 비디오 코더가 디스패리티 모션 벡터 또는 암시적인 디스패리티 벡터 (IDV) 를 식별할 때, 비디오 코더는 체킹 프로세스를 종료할 수도 있다. IDV 는 뷰간 예측을 이용하여 코딩되는 공간적으로- 또는 시간적으로-이웃하는 PU 의 디스패리티 벡터일 수도 있다. IDV 는, PU 가 뷰간 모션 벡터 예측, 즉, AMVP 에 대한 후보를 채용하거나 또는 병합 모드들이 디스패리티 벡터의 도움으로 다른 뷰에서의 참조 블록으로부터 유도될 때, 생성될 수도 있다. IDV 는 디스패리티 벡터 유도의 목적을 위해 PU 에 저장될 수도 있다. 더욱이, 비디오 코더가 디스패리티 모션 벡터 또는 IDV 를 식별할 때, 비디오 코더는 식별된 디스패리티 모션 벡터 또는 IDV 를 반환할 수도 있다.
IDV들에는 Sung 등, "3D-CE5.h: Simplification of disparity vector derivation for HEVC-based 3D video coding, document JCTV3-A0126" 에서의 NBDV 유도 프로세스의 단순화된 버전이 포함되었다. NBDV 유도 프로세스에서의 IDV들의 사용이 Kang 등, "3D-CE5.h related: Improvements for disparity vector derivation", 문서 JCT3V-B0047 에서는, 디코딩된 픽처 버퍼에 저장된 IDV들을 제거하고 또한 랜덤 액세스 포인트 (RAP) 픽처 선택과 함께 향상된 코딩 이득을 제공함으로써, 더욱 단순화되었다. 비디오 코더는 그 반환된 디스패리티 모션 벡터 또는 IDV 를 디스패리티 벡터로 변환할 수도 있으며 디스패리티 벡터를 뷰간 모션 예측 및 뷰간 잔차 예측에 이용할 수도 있다.
3D-HEVC 의 일부 설계에서, 비디오 코더가 NBDV 유도 프로세스를 수행할 때, 비디오 코더는 시간 이웃하는 블록들에서 디스패리티 모션 벡터들을, 공간 이웃하는 블록들에서 디스패리티 모션 벡터들을, 그후 IDV들을 순서대로 체킹한다. 일단 비디오 코더가 현재의 블록에 대한 디스패리티 벡터를 발견하면, 비디오 코더는 NBDV 유도 프로세스를 종료할 수도 있다. 따라서, 일단 디스패리티 모션 벡터 또는 IDV 가 식별되면, 체킹 프로세스가 종료되며 식별된 디스패리티 모션 벡터가 반환되고 뷰간 모션 예측 및 뷰간 잔차 예측에서 사용될 디스패리티 벡터로 변환된다. 비디오 코더가 NBDV 유도 프로세스를 수행함으로써 현재의 블록에 대한 디스패리티 벡터를 결정하는 것이 불가능할 때 (즉, NBDV 유도 프로세스 동안 발견된 어떤 디스패리티 모션 벡터 또는 IDV 도 존재하지 않을 때), 비디오 코더는 NBDV 를 이용불가능한 것으로 마킹할 수도 있다.
일부 예들에서, 비디오 코더가 NBDV 유도 프로세스를 수행함으로써 현재의 PU 에 대한 디스패리티 벡터를 유도하는 것이 불가능하면 (즉, 어떤 디스패리티 벡터도 발견되지 않으면), 비디오 코더는 제로 디스패리티 벡터를 현재의 PU 에 대한 디스패리티 벡터로서 이용할 수도 있다. 제로 디스패리티 벡터는 0 과 동일한 수평 및 수직 성분들 양자를 갖는 디스패리티 벡터이다. 따라서, 설령 NBDV 유도 프로세스가 이용불가능한 결과를 반환하더라도, 디스패리티 벡터를 필요로 하는 비디오 코더의 다른 코딩 프로세스들은 현재의 블록에 대해 제로 디스패리티 벡터를 이용할 수도 있다.
일부 예들에서, 비디오 코더가 NBDV 유도 프로세스를 수행함으로써 현재의 PU 에 대한 디스패리티 벡터를 유도하는 것이 불가능하면, 비디오 코더는 현재의 PU 에 대한 뷰간 잔차 예측을 디스에이블할 수도 있다. 그러나, 비디오 코더가 NBDV 유도 프로세스를 수행함으로써 현재의 PU 에 대한 디스패리티 벡터를 유도하는 것이 가능한지 여부에 관계없이, 비디오 코더는 현재의 PU 에 대한 뷰간 모션 예측을 이용할 수도 있다. 즉, 어떤 디스패리티 벡터도 모든 사전-정의된 이웃하는 블록들을 체킹한 후에 발견되지 않으면, 제로 디스패리티 벡터가 뷰간 모션 예측에 사용될 수도 있는 한편 뷰간 잔차 예측은 대응하는 PU 에 대해 사용불능될 수도 있다.
위에서 언급한 바와 같이, 비디오 코더는 공간적으로-이웃하는 PU들을, 현재의 PU 에 대한 디스패리티 벡터를 결정하는 프로세스의 일부로서 체킹할 수도 있다. 일부 예들에서, 비디오 코더는 다음의 공간적으로-이웃하는 블록들: 좌측 하부 공간적으로-이웃하는 블록, 좌측 공간적으로-이웃하는 블록, 우측 상부 공간적으로-이웃하는 블록, 상부 공간적으로-이웃하는 블록, 및 좌측 상부 공간적으로-이웃하는 블록을 체킹한다. 예를 들어, NBDV 유도 프로세스의 일부 버전들에서, 5개의 공간 이웃하는 블록들이 디스패리티 벡터 유도에 사용된다. 5개의 공간적으로-이웃하는 블록들은 도 3 에 나타낸 바와 같이, 로케이션들 A0, A1, B0, B1, 및 B2 를 각각 커버할 수도 있다. 비디오 코더는 5개의 공간적으로 이웃하는 블록들을 A1, B1, B0, A0 및 B2 의 순서로 체킹할 수도 있다. 동일한 5개의 공간적으로-이웃하는 블록들은 HEVC 에 대한 병합 모드들에서 사용될 수도 있다. 따라서, 일부 예들에서, 어떤 추가적인 메모리 액세스도 요구되지 않는다. 공간적으로-이웃하는 블록들 중 하나가 디스패리티 모션 벡터를 가지면, 비디오 코더는 체킹 프로세스를 종료할 수도 있으며 비디오 코더는 디스패리티 모션 벡터를 현재의 PU 에 대한 최종 디스패리티 벡터로서 이용할 수도 있다. 다시 말해서, 그들 중 하나가 디스패리티 모션 벡터를 이용하면, 체킹 프로세스가 종료되며 대응하는 디스패리티 모션 벡터가 최종 디스패리티 벡터로서 이용될 것이다.
게다가, 위에서 언급한 바와 같이, 비디오 코더는 시간적으로-이웃하는 PU들을, 현재의 PU 에 대한 디스패리티 벡터를 결정하는 프로세스의 일부로서 체킹할 수도 있다. 시간 이웃하는 블록들 (예컨대, PU들) 을 체킹하기 위해, 후보 픽처 리스트의 구성 프로세스가 먼저 수행될 수도 있다. 일부 예들에서, 비디오 코더는 디스패리티 모션 벡터들에 대한 현재의 뷰로부터 최고 2개의 참조 픽처들을 체킹할 수도 있다. 제 1 참조 픽처는 동일 위치에 배치된 픽처일 수도 있다. 따라서, 동일 위치에 배치된 픽처 (즉, 동일 위치에 배치된 참조 픽처) 가 후보 픽처 리스트에 먼저 삽입될 수도 있다. 제 2 참조 픽처는 가장 작은 POC 값 차이 및 가장 작은 시간 식별자를 가진 랜덤 액세스 픽처 또는 참조 픽처일 수도 있다. 다시 말해, 현재의 뷰로부터의 최고 2개의 참조 픽처들, 동일 위치에 배치된 픽처, 및 가장 작은 POC 차이 및 가장 작은 시간 ID 를 갖는 랜덤 액세스 픽처 또는 참조 픽처가 시간 블록 체크들을 위해 고려된다. 비디오 코더는 랜덤 액세스 픽처를 먼저 체킹하고, 뒤이어서 동일 위치에 배치된 픽처를 체킹할 수도 있다.
각각의 후보 픽처 (즉, 랜덤 액세스 픽처 및 동일 위치에 배치된 픽처) 에 대해, 비디오 코더는 2개의 블록들을 체킹할 수도 있다. 특히, 비디오 코더는 중심 블록 (CR) 및 우측 하부 블록 (BR) 을 체킹할 수도 있다. 도 6 은 NBDV 유도 프로세스에서의 예시적인 시간 이웃하는 블록들을 예시하는 개념도이다. 중심 블록은 현재의 PU 의 동일 위치에 배치된 영역의 중심 4x4 블록일 수도 있다. 우측 하부 블록은 현재의 PU 의 동일 위치에 배치된 영역의 우측 하부 4x4 블록일 수도 있다. 따라서, 각각의 후보 픽처에 대해, 2개의 블록들이 제 1 비-베이스 뷰에 대해 CR 및 BR, 또는 제 2 비-베이스 뷰에 대해 BR, CR 순서로 체킹된다. CR 또는 BR 을 커버하는 PU들 중 하나가 디스패리티 모션 벡터를 가지면, 비디오 코더는 체킹 프로세스를 종료할 수도 있으며 디스패리티 모션 벡터를 현재의 PU 에 대한 최종 디스패리티 벡터로서 이용할 수도 있다. 이 예에서, 제 1 비-베이스 뷰와 연관되는 픽처들의 디코딩은 베이스 뷰와 연관되는 픽처들의 디코딩에 의존할 수도 있으나, 다른 뷰들과 연관되는 픽처들에 의존하지 않을 수도 있다. 더욱이, 이 예에서, 제 2 비-베이스 뷰와 연관되는 픽처들의 디코딩은 베이스 뷰와 연관되는 픽처들의 디코딩에 의존할 수도 있으나, 일부 경우, 제 1 비-베이스 뷰에서, 존재한다면, 다른 뷰들과 연관되는 픽처들에 의존하지 않을 수도 있다.
도 6 의 예에서, 블록 (42) 은 현재의 PU 에 대한 동일 위치에 배치된 영역을 나타낸다. 더욱이, 도 6 의 예에서, "Pos. A" 로 라벨링된 블록은 중심 블록에 대응한다. "Pos. B" 로 라벨링된 블록은 우측 하부 블록에 대응한다. 도 6 의 예에 나타낸 바와 같이, 중심 블록은 동일 위치에 배치된 영역의 중심 지점의 중심의 바로 아래에 그리고 우측에 로케이트될 수도 있다.
비디오 코더가 이웃하는 PU (공간적으로- 또는 시간적으로-이웃하는 PU) 를 체킹할 때, 비디오 코더는 이웃하는 PU 가 디스패리티 모션 벡터를 가지는지 여부를 먼저 체킹할 수도 있다. 이웃하는 PU들 중 어느 것도 디스패리티 모션 벡터를 갖지 않으면, 비디오 코더는 공간적으로-이웃하는 PU들 중 임의의 PU 가 IDV 를 가지는지 여부를 결정할 수도 있다. 다시 말해서, 디스패리티 모션 벡터들이 사용되는지 여부가 모든 공간/시간 이웃하는 블록들에 대해 먼저 체킹되고, 뒤이어서 IDV들이 체킹된다. 공간 이웃하는 블록들은 먼저 체킹되고, 뒤이어서 시간 이웃하는 블록들이 체킹된다. IDV들에 대한 이웃하는 블록들을 체킹할 때, 비디오 코더는 공간적으로-이웃하는 PU들을 A0, A1, B0, B1, 및 B2 의 순서로 체킹할 수도 있다. 공간적으로-이웃하는 PU들 중 하나가 IDV 를 가지고 IDV 가 병합/스킵 모드로서 코딩되면, 비디오 코더는 체킹 프로세스를 종료할 수도 있으며 IDV 를 현재의 PU 에 대한 최종 디스패리티 벡터로서 이용할 수도 있다. 다시 말해서, 5개의 공간 이웃하는 블록들은 A0, A1, B0, B1 및 B2 의 순서로 체킹된다. 그들 중 하나가 IDV 를 이용하고 그것이 스킵/병합 모드로서 코딩될 수도 있으면, 체킹 프로세스가 종료되며, 대응하는 IDV 는 최종 디스패리티 벡터로서 사용될 수도 있다.
위에서 나타낸 바와 같이, 현재의 블록에 대한 디스패리티 벡터는 참조 뷰의 참조 픽처 (즉, 참조 뷰 성분) 에서의 로케이션을 나타낼 수도 있다. 일부 3D-HEVC 설계들에서, 비디오 코더는 참조 뷰에 대한 심도 정보에 액세스하도록 허용된다. 일부 이러한 3D-HEVC 설계들에서, 비디오 코더가 NBDV 유도 프로세스를 이용하여 현재의 블록에 대한 디스패리티 벡터를 유도할 때, 비디오 코더는 개선 (refinement) 프로세스를 적용하여 현재의 블록에 대한 디스패리티 벡터를 추가로 개선할 수도 있다. 비디오 코더는 참조 픽처의 심도 맵에 기초하여 현재의 블록에 대한 디스패리티 벡터를 개선할 수도 있다. 다시 말해서, NBDV 방식으로부터 생성된 디스패리티 벡터는 코딩된 심도 맵에서의 정보를 이용하여 추가로 개선될 수 있다. 즉, 디스패리티 벡터의 정확도가 베이스 뷰 심도 맵으로 코딩된 정보의 이점을 취함으로써 강화될 수 있다. 이 개선 프로세스는 본원에서 NBDV 개선 ("NBDV-R"), NBDV 개선 프로세스, 또는 심도-지향 NBDV (Do-NBDV) 로 지칭될 수도 있다.
NBDV 유도 프로세스가 가용 디스패리티 벡터를 반환할 때 (예컨대, NBDV 유도 프로세스가 이웃하는 블록의 디스패리티 모션 벡터 또는 IDV 에 기초하여 현재의 블록에 대한 디스패리티 벡터를 유도하는 것이 가능하였다는 것을 나타내는 변수를 NBDV 유도 프로세스가 반환할 때), 비디오 코더는 참조 뷰의 심도 맵으로부터 심도 데이터를 취출함으로써 디스패리티 벡터를 추가로 개선할 수도 있다. 일부 예들에서, 개선 프로세스는 다음 단계들을 포함한다:
1. 참조 뷰의 심도 맵에 블록을 로케이트하기 위해 현재의 블록의 디스패리티 벡터를 이용한다. 다시 말해서, 대응하는 심도 블록을 베이스 뷰와 같은, 이전에-코딩된 참조 심도 뷰에서의 유도된 디스패리티 벡터에 의해 로케이트시킨다. 이 예에서, 심도에서의 대응하는 블록의 사이즈는 현재의 PU 의 사이즈 (즉, 현재의 PU 의 예측 블록의 사이즈) 와 동일할 수도 있다.
2. 디스패리티 벡터는 4개의 모서리 심도 값들의 최대 값으로부터, 동일 위치에 배치된 심도 블록으로부터 계산된다. 이것은 디스패리티 벡터의 수평 성분과 동일하게 설정되는 한편, 디스패리티 벡터의 수직 성분은 0 으로 설정된다.
일부 예들에서, NBDV 유도 프로세스가 가용 디스패리티 벡터를 반환하지 않을 때 (예컨대, NBDV 유도 프로세스가 이웃하는 블록의 디스패리티 모션 벡터 또는 IDV 에 기초하여 현재의 블록에 대한 디스패리티 벡터를 유도하는 것이 불가능하였다는 것을 나타내는 변수를 NBDV 유도 프로세스가 반환할 때), 비디오 코더는 NBDV 개선 프로세스를 수행하지 않고, 비디오 코더는 현재의 블록에 대한 디스패리티 벡터로서, 제로 디스패리티 벡터를 이용할 수도 있다. 다시 말해서, NBDV 유도 프로세스가 가용 디스패리티 벡터를 제공하지 않고 따라서 NBDV 유도 프로세스의 결과가 이용불가능할 때, 상기 NBDV-R 프로세스가 스킵되고 제로 디스패리티 벡터가 직접 반환된다.
3D-HEVC 에 대한 일부 제안들에서, 비디오 코더는 뷰간 모션 예측에 현재의 블록에 대한 개선된 디스패리티 벡터를 이용하는 한편, 비디오 코더는 뷰간 잔차 예측에 현재의 블록에 대한 미개선된 디스패리티 벡터를 이용한다. 예를 들어, 비디오 코더는 NBDV 유도 프로세스를 이용하여 현재의 블록에 대한 미개선된 디스패리티 벡터를 유도할 수도 있다. 비디오 코더는 그후 NBDV 개선 프로세스를 적용하여 현재의 블록에 대한 개선된 디스패리티 벡터를 유도할 수도 있다. 비디오 코더는 현재의 블록의 모션 정보를 결정하기 위해 현재의 블록에 대한 개선된 디스패리티 벡터를 이용할 수도 있다. 더욱이, 비디오 코더는 현재의 블록의 잔차 블록을 결정하기 위해 현재의 블록에 대한 미개선된 디스패리티 벡터를 이용할 수도 있다.
이렇게 하여, 이 새로운 디스패리티 벡터는 "심도 지향 이웃하는 블록 기반 디스패리티 벡터 (DoNBDV)" 로러 불린다. NBDV 방식으로부터의 디스패리티 벡터는 그후 AMVP 및 병합 모드들에 대한 뷰간 후보 유도를 위해 DoNBDV 방식으로부터의 이 새로 유도된 디스패리티 벡터에 의해 대체된다. 비디오 코더는 뷰간 잔차 예측에 미개선된 디스패리티 벡터를 이용할 수도 있다.
비디오 코더는 유사한 개선 프로세스를 이용하여 역방향 뷰 합성 예측 (BVSP) 을 위한 디스패리티 모션 벡터를 개선할 수도 있다. 이러한 방법으로, 심도는 BVSP 에 사용될 디스패리티 벡터 또는 디스패리티 모션 벡터를 개선하는데 사용될 수도 있다. 개선된 디스패리티 벡터가 BVSP 모드로 코딩되면, 개선된 디스패리티 벡터는 하나의 PU 의 모션 벡터로서 저장될 수도 있다.
비디오 코더는 BVSP 를 수행하여 뷰 성분을 합성할 수도 있다. BVSP 접근법이 Tian 등, "CE1.h: Backward View Synthesis Prediction Using Neighboring Blocks", 문서 JCT3V-C0152 (이하, "JCT3V-C0152") 에서 제안되었으며, 3차 JCT-3V 회의에서 채택되었다. BVSP 는 3D-AVC 에서의 블록-기반 VSP 와 개념적으로 유사하다. 즉, 역방향-와핑 VSP 의 기본적인 아이디어는 3D-AVC 에서의 블록-기반 VSP 와 동일하다. 3D-AVC 에서 BVSP 및 블록-기반 VSP 양자는 역방향 와핑 및 블록-기반 VSP 를 이용하여 모션 벡터 차이들을 송신하는 것을 회피하며 더 정확한 모션 벡터들을 사용한다. 그러나, 구현 세부 사항들은 상이한 플랫폼들로 인해, 상이할 수도 있다.
3D-HEVC 의 일부 버전들에서, 텍스쳐 우선 코딩이 적용된다. 텍스쳐 우선 코딩에서, 비디오 코더는 대응하는 심도 뷰 성분 (즉, 텍스쳐 뷰 성분과 동일한 POC 값 및 뷰 식별자를 가진 심도 뷰 성분) 을 코딩하기 전에 텍스쳐 뷰 성분을 코딩한다 (예컨대, 인코딩하거나 또는 디코딩한다). 따라서, 비-베이스 뷰 심도 뷰 성분이 대응하는 비-베이스 뷰 텍스쳐 뷰 성분을 코딩할 때에 사용을 위해 이용불가능하다. 다시 말해서, 비디오 코더가 비-베이스 텍스쳐 뷰 성분을 코딩할 때, 대응하는 비-베이스 심도 뷰 성분이 이용불가능하다. 따라서, 심도 정보가 BVSP 를 수행하기 위해 추정 및 사용될 수도 있다.
블록에 대한 심도 정보를 추정하기 위해, 이웃하는 블록들로부터 디스패리티 벡터를 먼저 유도하고, 그후 유도된 디스패리티 벡터를 이용하여 참조 뷰로부터 심도 블록을 획득하는 것이 제안된다. 3D-HEVC 테스트 모델 5.1 (즉, HTM 5.1 테스트 모델) 에서는, NBDV 유도 프로세스로서 알려져 있는, 디스패리티 벡터 예측자를 유도하는 프로세스가 존재한다. (dvx, dvy) 가 NBDV 유도 프로세스로부터 식별된 디스패리티 벡터를 표시한다고 하고, 현재의 블록 위치는 (blockx, blocky) 이라고 하자. 비디오 코더는 참조 뷰의 심도 이미지에서 (blockx+dvx, blocky+dvy) 에서의 심도 블록을 페치할 수도 있다. 페치된 심도 블록은 현재의 PU 와 동일한 사이즈를 가질 수도 있다. 비디오 코더는 그후 페치된 심도 블록을 이용하여 현재의 PU 에 대한 역방향 와핑 (warping) 을 행할 수도 있다. 도 7 은 BVSP 를 수행하기 위해 참조 뷰로부터의 심도 블록 유도를 예시하는 개념도이다. 도 7 은 참조 뷰로부터의 심도 블록이 로케이트되고 그후 BVSP 예측에 사용되는 방법의 3개의 단계들을 예시한다.
BVSP 가 시퀀스에서 인에이블되면, 뷰간 모션 예측을 위한 NBDV 유도 프로세스가 변경될 수도 있으며 차이들은 다음 패러그라프들에서 볼드체로 나타낸다:
Figure 112016011699399-pct00001
시간 이웃하는 블록들의 각각에 대해, 시간 이웃하는 블록이 디스패리티 모션 벡터를 이용하면, 디스패리티 모션 벡터가 디스패리티 벡터로서 반환되며 그것은 본 개시물의 다른 어딘가에 설명된 방법으로 추가로 개선된다.
Figure 112016011699399-pct00002
공간 이웃하는 블록들의 각각에 대해, 다음이 적용된다:
o 각각의 참조 픽처 리스트 0 또는 참조 픽처 리스트 1 에 대해, 다음이 적용된다:
Figure 112016011699399-pct00003
공간 이웃하는 블록이 디스패리티 모션 벡터를 이용하면, 디스패리티 모션 벡터가 디스패리티 벡터로서 반환되며, 그것은 본 개시물의 다른 어딘가에 설명된 방법으로 추가로 개선된다.
Figure 112016011699399-pct00004
그렇지 않고, 공간 이웃하는 블록이 BVSP 모드를 이용하면, 연관된 모션 벡터는 디스패리티 벡터로서 반환될 수도 있다. 디스패리티 벡터는 본 개시물의 다른 어딘가에 설명된 방법과 유사한 방법으로 추가로 개선될 수도 있다. 그러나, 최대 심도 값은 4개의 모서리 픽셀들보다는, 대응하는 심도 블록의 모든 픽셀들로부터 선택될 수도 있다.
공간 이웃하는 블록들의 각각에 대해, 공간 이웃하는 블록이 IDV 를 이용하면, IDV 가 디스패리티 벡터로서 반환된다. 비디오 코더는 본 개시물의 다른 어딘가에 설명된 방법들 중 하나 이상을 이용하여 디스패리티 벡터를 추가로 개선할 수도 있다.
비디오 코더는 위에서 설명된 BVSP 모드를 특수 인터-코딩된 모드로서 취급할 수도 있으며 비디오 코더는 각각의 PU 에 대한 BVSP 모드의 사용을 나타내는 플래그를 유지할 수도 있다. 플래그를 비트스트림으로 시그널링하는 대신, 비디오 코더는 새로운 병합 후보 (BVSP 병합 후보) 를 병합 후보 리스트에 추가할 수도 있으며, 플래그는 디코딩된 병합 후보 인덱스가 BVSP 병합 후보에 대응하는지 여부에 의존한다. 일부 예들에서, BVSP 병합 후보는 다음과 같이 정의된다:
Figure 112016011699399-pct00005
각각의 참조 픽처 리스트에 대한 참조 픽처 인덱스: -1
Figure 112016011699399-pct00006
각각의 참조 픽처 리스트에 대한 모션 벡터: 개선된 디스패리티 벡터
일부 예들에서, BVSP 병합 후보의 삽입 위치는 공간 이웃하는 블록들에 의존한다. 예를 들어, 5개의 공간 이웃하는 블록들 (A0, A1, B0, B1, 또는 B2) 중 임의의 블록이 BVSP 모드로 코딩되면, 즉, 이웃하는 블록의 유지된 플래그가 1 과 동일하면, 비디오 코더는 BVSP 병합 후보를 대응하는 공간 병합 후보로서 취급할 수도 있으며 BVSP 병합 후보를 병합 후보 리스트에 삽입할 수도 있다. 비디오 코더는 단지 BVSP 병합 후보를 병합 후보 리스트에 한번 삽입할 수도 있다. 그렇지 않으면, 이 예에서, (예컨대, 5개의 공간 이웃하는 블록들 중 어느 것도 BVSP 모드로 코딩되지 않을 때), 비디오 코더는 BVSP 병합 후보를 병합 후보 리스트에 임의의 시간 병합 후보들 바로 앞에 삽입할 수도 있다. 결합된 양-예측 병합 후보 유도 프로세스 동안, 비디오 코더는 BVSP 병합 후보를 포함하는 것을 회피하기 위해 추가적인 조건들을 체킹할 수도 있다.
각각의 BVSP-코딩된 PU 에 대해, 비디오 코더는 BVSP 를 KxK (여기서, K 는 4 또는 2 일 수도 있다) 와 동일한 사이즈를 가진 여러 서브-영역들로 추가로 파티셔닝할 수도 있다. BVSP-코딩된 PU 의 사이즈는 NxM 으로 표시될 수도 있다. 각각의 서브-영역에 대해, 비디오 코더는 별개의 디스패리티 모션 벡터를 유도할 수도 있다. 더욱이, 비디오 코더는 뷰간 참조 픽처에서의 유도된 디스패리티 모션 벡터에 의해 로케이트된 하나의 블록으로부터 각각의 서브-영역을 예측할 수도 있다. 다시 말해서, BVSP 코딩된 PU들에 대한 모션-보상 유닛의 사이즈는 KxK 로 설정된다. 일부 테스트 조건들에서, K 는 4 로 설정된다.
BVSP 과 관련하여, 비디오 코더는 다음 디스패리티 모션 벡터 유도 프로세스를 수행할 수도 있다. BVSP 모드로 코딩된 하나의 PU 내 각각의 서브-영역 (4x4 블록) 에 대해, 비디오 코더는 위에서 언급된 개선된 디스패리티 벡터를 가진 참조 심도 뷰에 대응하는 4x4 심도 블록을 먼저 로케이트시킬 수도 있다. 둘째로, 비디오 코더는 그후 대응하는 심도 블록에서 16개의 심도 픽셀들의 최대 값을 선택할 수도 있다. 세번째로, 비디오 코더는 최대 값을 디스패리티 모션 벡터의 수평 성분으로 변환할 수도 있다. 비디오 코더는 디스패리티 모션 벡터의 수직 성분을 0 으로 설정할 수도 있다.
DoNBDV 기법들로부터 유도된 디스패리티 벡터에 기초하여, 비디오 코더는 새로운 모션 벡터 후보 (즉, 뷰간 예측된 모션 벡터 후보 (IPMVC)) 를, 이용가능하면, AMVP 및 스킵/병합 모드들에 추가할 수도 있다. IPMVC 는, 이용가능하면, 시간 모션 벡터이다. 스킵 모드가 병합 모드와 동일한 모션 벡터 유도 프로세스를 가지기 때문에, 이 문서에서 설명되는 기법들은 병합 및 스킵 모드들 양자에 적용할 수도 있다.
병합/스킵 모드에 대해, IPMVC 는 다음 단계들에 의해 유도될 수도 있다. 첫째, 비디오 코더는 디스패리티 벡터를 이용하여, 현재의 블록 (예컨대, PU, CU 등) 의 대응하는 블록을 동일한 액세스 유닛의 참조 뷰에 로케이트시킬 수도 있다. 둘째, 대응하는 블록이 인트라-코딩되지 않고 뷰간 예측되지 않고 대응하는 블록의 참조 픽처가 현재의 블록의 동일한 참조 픽처 리스트에서의 하나의 엔트리의 POC 값과 동일한 POC 값을 가지면, 비디오 코더는 POC 값들에 기초하여 대응하는 블록의 참조 인덱스를 변환할 수도 있다. 더욱이, 비디오 코더는 대응하는 블록의 예측 방향, 대응하는 블록의 모션 벡터들, 및 변환된 참조 인덱스들을 규정하기 위해 IPMVC 를 유도할 수도 있다.
3D-HEVC 테스트 모델 4 의 섹션 H.8.5.2.1.10 은 시간 뷰간 모션 벡터 후보에 대한 유도 프로세스를 기술한다. IPMVC 는 그것이 시간 참조 픽처에서의 로케이션을 나타내기 때문에, 시간 뷰간 모션 벡터 후보로 지칭될 수도 있다. 3D-HEVC 테스트 모델 4 의 섹션 H.8.5.2.1.10 에 설명된 바와 같이, 참조 계층 루마 로케이션 ( xRef, yRef ) 은 다음과 같이 유도된다:
Figure 112016011699399-pct00007

상기 방정식들 H-124 및 H-125 에서, ( xP, yP ) 는 현재의 픽처의 좌측 상부 루마 샘플에 대한, 현재의 PU 의 좌측 상부 루마 샘플의 좌표들을 표시하며, nPSW 및 nPSH 는 현재의 예측 유닛의 폭 및 높이를 각각 표시하며, refViewIdx 는 참조 뷰 순서 인덱스를 표시하며, mvDisp 는 디스패리티 벡터를 표시한다. 대응하는 블록은 refViewIdx 와 동일한 ViewIdx 를 가진 뷰 성분에서의 루마 로케이션 ( xRef, yRef ) 을 커버하는 PU 로 설정된다. 상기 방정식들 H-124 및 H-125, 및 본 개시물에서의 다른 방정식들에서, Clip3 함수는 다음과 같이 정의될 수도 있다:
Figure 112016011699399-pct00008
도 8 은 병합/스킵 모드에 대한 IPMVC 의 예시적인 유도를 예시하는 개념도이다. 다시 말해서, 도 8 은 뷰간 예측된 모션 벡터 후보의 유도 프로세스의 일 예를 나타낸다. 도 8 의 예에서, 현재의 PU (50) 는 뷰 V1 에서 시간 인스턴스 T1 에서 발생한다. 현재의 PU (50) 에 대한 참조 PU (52) 는 현재의 PU (50) 와는 상이한 뷰 (즉, 뷰 V0) 및 현재의 PU 와 동일한 시간 인스턴스 (즉, 시간 인스턴스 T1) 에서 발생한다. 도 8 의 예에서, 참조 PU (52) 는 양방향으로 인터 예측된다. 그러므로, 참조 PU (52) 는 제 1 모션 벡터 (54) 및 제 2 모션 벡터 (56) 를 갖는다. 모션 벡터 (54) 는 참조 픽처 (58) 에서의 위치를 나타낸다. 참조 픽처 (58) 는 뷰 V0 에서, 그리고 시간 인스턴스 T0 에서 발생한다. 모션 벡터 (56) 는 참조 픽처 (60) 에서의 위치를 나타낸다. 참조 픽처 (60) 는 뷰 V0 에서 그리고 시간 인스턴스 T3 에서 발생한다.
비디오 코더는 참조 PU (52) 의 모션 정보에 기초하여, 현재의 PU (50) 의 병합 후보 리스트에의 포함을 위해 IPMVC 를 생성할 수도 있다. IPMVC 는 제 1 모션 벡터 (62) 및 제 2 모션 벡터 (64) 를 가질 수도 있다. 모션 벡터 (62) 는 모션 벡터 (54) 와 매칭하며 모션 벡터 (64) 는 모션 벡터 (56) 와 매칭한다. 비디오 코더는 IPMVC 의 제 1 참조 인덱스가 참조 픽처 (58) 와 동일한 시간 인스턴스 (즉, 시간 인스턴스 T0) 에서 발생하는 참조 픽처 (즉, 참조 픽처 (66)) 의 현재의 PU (50) 에 대한 RefPicList0 에서의 위치를 나타내도록, IPMVC 를 생성한다. 도 8 의 예에서, 참조 픽처 (66) 는 현재의 PU (50) 에 대해 RefPicList0 에서의 제 1 위치 (즉, Ref0) 에서 발생한다. 더욱이, 비디오 코더는 IPMVC 의 제 2 참조 인덱스가 참조 픽처 (60) 와 동일한 시간 인스턴스에서 발생하는 참조 픽처 (즉, 참조 픽처 (68)) 의 현재의 PU (50) 에 대한 RefPicList1 에서의 위치를 나타내도록, IPMVC 를 생성한다. 따라서, 도 8 의 예에서, IPMVC 의 RefPicList0 참조 인덱스는 0 과 동일할 수도 있다. 도 8 의 예에서, 참조 픽처 (70) 는 현재의 PU (50) 에 대한 RefPicList1 에서의 제 1 위치 (즉, Ref0) 에서 발생하며 참조 픽처 (68) 는 현재의 PU (50) 에 대한 RefPicList1 에서의 제 2 위치 (즉, Ref1) 에서 발생한다. 따라서, IPMVC 의 RefPicList1 참조 인덱스는 1 과 동일할 수도 있다.
IPMVC 를 생성하고 IPMVC 를 병합 후보 리스트에 포함시키는 것에 더해서, 비디오 코더는 현재의 PU 에 대한 디스패리티 벡터를 뷰간 디스패리티 모션 벡터 (IDMVC) 로 변환할 수도 있으며 IDMVC 를 현재의 PU 에 대한 병합 후보 리스트에 포함시킬 수도 있다. 다시 말해서, 디스패리티 벡터가 IDMVC 로 변환될 수도 있으며, 그 IDMVC 는 IDMVC 가 이용가능할 때 병합 후보 리스트에 IPMVC 와는 상이한 위치에 추가되거나, 또는 AMVP 후보 리스트에 IPMVC 와 동일한 위치에 추가된다. IPMVC 또는 IDMVC 중 어느 하나는 이 컨텍스트에서 '뷰간 후보' 로 불린다. 다시 말해서, 용어 "뷰간 후보" 는 IPMVC 또는 IDMVC 어느 하나를 지칭하기 위해 사용될 수도 있다. 일부 예들에서, 병합/스킵 모드에서, 비디오 코더는 항상 이용가능하면, IPMVC를, 병합 후보 리스트에, 모든 공간 및 시간 병합 후보들 앞에 삽입한다. 더욱이, 비디오 코더는 IDMVC 를 A0 으로부터 유도된 공간 병합 후보 앞에 삽입할 수도 있다.
위에서 나타낸 바와 같이, 비디오 코더는 디스패리티 벡터를 DoNBDV 의 방법으로 유도할 수도 있다. 디스패리티 벡터에 의해, 3D-HEVC 에서의 병합 후보 리스트 구성 프로세스는 다음과 같이 정의될 수 있다:
1. IPMVC 삽입
IPMVC 는 위에서 설명된 프로시저에 의해 유도된다. IPMVC 가 이용가능하면, IPMVC 가 병합 리스트에 삽입된다.
2. 3D- HEVC 에서의 공간 병합 후보들에 대한 유도 프로세스 및 IDMVC 삽입
공간 이웃하는 PU들의 모션 정보를 다음 순서로 체크한다: A1, B1, B0, A0, 또는 B2. 속박된 프루닝은 다음 프로시저들에 의해 수행된다:
- A1 및 IPMVC 가 동일한 모션 벡터들 및 동일한 참조 인덱스들을 가지면, A1 은 후보 리스트에 삽입되지 않으며; 그렇지 않으면 A1 은 리스트에 삽입된다.
- B1 및 A1/IPMVC 가 동일한 모션 벡터들 및 동일한 참조 인덱스들을 가지면, B1 은 후보 리스트에 삽입되지 않으며; 그렇지 않으면 B1 이 리스트에 삽입된다.
- B0 이 이용가능하면, B0 이 후보 리스트에 추가된다. IDMVC 는 위에서 설명된 프로시저에 의해 유도된다. IDMVC 가 이용가능하고 IDMVC 가 A1 및 B1 로부터 유도된 후보들과 상이하면, IDMVC 가 후보 리스트에 삽입된다.
- BVSP 가 전체 픽처에 대해 또는 현재의 슬라이스에 대해 인에이블되면, BVSP 병합 후보가 병합 후보 리스트에 삽입된다.
- A0 이 이용가능하면, A0 은 후보 리스트에 추가된다.
- B2 가 이용가능하면, B2 는 후보 리스트에 추가된다.
3. 시간 병합 후보에 대한 유도 프로세스
동일 위치에 배치된 PU 의 모션 정보가 이용되는 HEVC 에서의 시간 병합 후보 유도 프로세스와 유사하게, 그러나, 시간 병합 후보의 목표 참조 픽처 인덱스는 0 으로 고정되는 대신, 변경될 수도 있다. 0 과 동일한 목표 참조 인덱스가 (동일한 뷰에서의) 시간 참조 픽처에 대응하는 한편 동일 위치에 배치된 PU 의 모션 벡터가 뷰간 참조 픽처를 가리킬 때, 목표 참조 인덱스는 참조 픽처 리스트에서의 뷰간 참조 픽처의 제 1 엔트리에 대응하는 또 다른 인덱스로 변경될 수도 있다. 반대로, 0 과 동일한 목표 참조 인덱스가 뷰간 참조 픽처에 대응하는 한편 동일 위치에 배치된 PU 의 모션 벡터가 시간 참조 픽처를 가리킬 때, 목표 참조 인덱스는 참조 픽처 리스트에서의 시간 참조 픽처의 제 1 엔트리에 대응하는 또 다른 인덱스로 변경될 수도 있다.
4. 3D- HEVC 에서의 결합된 양-예측 병합 후보들에 대한 유도 프로세스
상기 2개의 단계들로부터 유도된 후보들의 총 개수가 후보들의 최대 개수 미만이면, HEVC 에서 정의된 것과 동일한 프로세스가 l0CandIdx 및 l1CandIdx 의 사양을 제외하고 수행된다. 도 9 는 3D-HEVC 에서 l0CandIdx 및 l1CandIdx 의 예시적인 사양을 나타내는 테이블이다. combIdx, l0CandIdx 및 l1CandIdx 사이의 관계는 도 9 의 테이블에 정의된다. HEVC 작업 초안 10 의 섹션 8.5.3.2.3 은 결합된 양-예측 병합 후보들을 유도할 때에 l0CandIdx 및 l1CandIdx 의 예시적인 사용을 정의한다.
5. 제로 모션 벡터 병합 후보들에 대한 유도 프로세스
- HEVC 에서 정의된 것과 동일한 프로시저가 수행된다.
3D-HEVC 에 대한 참조 소프트웨어의 일부 버전에서, 병합 (예컨대, MRG) 리스트에서의 후보들의 총 개수는 최고 6 이며, five_minus_max_num_merge_cand 가 슬라이스 헤더에서 6 에서 감산된 병합 후보들의 최대 개수를 규정하기 위해 시그널링된다. five_minus_max_num_merge_cand 는 0 내지 5 의 범위 내이다. five_minus_max_num_merge_cand 신택스 엘리먼트는 5 로부터 감산된 슬라이스에서 지원된 병합 MVP 후보들의 최대 개수를 규정할 수도 있다. 병합 모션 벡터 예측 (MVP) 후보들의 최대 개수, MaxNumMergeCand 는 MaxNumMergeCand = 5 - five_minus_max_num_merge_cand + iv_mv_pred_flag[ nuh_layer_id ] 로서 계산될 수도 있다. five_minus_max_num_merge_cand 의 값은, MaxNumMergeCand 가 0 내지 (5 + iv_mv_pred_flag[ nuh_layer_id ]) 의 범위 내가 되도록 제한될 수도 있다.
위에서 나타낸 바와 같이, HEVC 작업 초안 10 의 섹션 8.5.3.2.3 은 결합된 양-예측 병합 후보들을 유도할 때에 l0CandIdx 및 l1CandIdx 의 예시적인 사용을 정의한다. HEVC 작업 초안 10 의 섹션 8.5.3.2.3 이 아래에 재현된다.
결합된 양-예측 병합 후보들에 대한 유도 프로세스
이 프로세스에의 입력들은 다음과 같다:
- 병합 후보 리스트 mergeCandList,
- mergeCandList 에서의 모든 후보 N 의 참조 인덱스들 refIdxL0N 및 refIdxL1N,
- mergeCandList 에서의 모든 후보 N 의 예측 리스트 이용 플래그들 predFlagL0N 및 predFlagL1N,
- mergeCandList 에서의 모든 후보 N 의 모션 벡터들 mvL0N 및 mvL1N,
- mergeCandList 내 엘리먼트들 numCurrMergeCand 의 개수,
- 공간 및 시간 병합 후보 유도 프로세스 이후의 mergeCandList 내 엘리먼트들 numOrigMergeCand 의 개수.
이 프로세스의 출력들은 다음과 같다:
- 병합 후보 리스트 mergeCandList,
- mergeCandList 내 엘리먼트들 numCurrMergeCand 의 개수,
- 이 프로세스의 호출 동안 mergeCandList 에 추가된 모든 새로운 후보 combCandk 의 참조 인덱스들 refIdxL0combCandk 및 refIdxL1combCandk,
- 이 프로세스의 호출 동안 mergeCandList 에 추가된 모든 새로운 후보 combCandk 의 예측 리스트 이용 플래그들 predFlagL0combCandk 및 predFlagL1combCandk,
- 이 프로세스의 호출 동안 mergeCandList 에 추가된 모든 새로운 후보 combCandk 의 모션 벡터들 mvL0combCandk 및 mvL1combCandk.
numOrigMergeCand 가 1 보다고 크고 MaxNumMergeCand 미만일 때, 변수 numInputMergeCand 는 numCurrMergeCand 와 동일하게 설정되며, 변수 combIdx 는 0 과 동일하게 설정되며, 변수 combStop 은 거짓 (FALSE) 과 동일하게 설정되며, 그리고 combStop 이 참 (TRUE) 과 동일할 때까지 다음 단계들이 반복된다:
1. 변수들 l0CandIdx 및 l1CandIdx 는 테이블 8-6 에 규정된 바와 같이 combIdx 를 이용하여 유도된다.
2. 다음 할당들이 이루어지며, 여기서 병합 후보 리스트 mergeCandList 에 있어서, l0Cand 는 위치 l0CandIdx 에서의 후보이고 l1Cand 는 위치 l1CandIdx 에서의 후보이다:
Figure 112016011699399-pct00009
3. 다음 조건들 모두가 참일 때:
Figure 112016011699399-pct00010
( numCurrMergeCand - numInputMergeCand ) 와 동일한 k 를 가진 후보 combCandk 가 mergeCandList 의 끝에 추가되며, 즉 mergeCandList[ numCurrMergeCand ] 가 combCandk 와 동일하게 설정되며, 그리고 combCandk 의 참조 인덱스들, 예측 리스트 이용 플래그들, 및 모션 벡터들이 다음과 같이 유도되며 numCurrMergeCand 가 1 만큼 증분된다:
Figure 112016011699399-pct00011
Figure 112016011699399-pct00012
4. 변수 combIdx 는 1 만큼 증분된다.
5. combIdx 가 ( numOrigMergeCand * ( numOrigMergeCand - 1 ) ) 과 동일하거나 또는 numCurrMergeCand 가 MaxNumMergeCand 와 동일할 때, combStop 은 참과 동일하게 설정된다.
모션 벡터 승계 (MVI) 는 텍스쳐 이미지들과, 그의 연관된 심도 이미지들 사이의 모션 특성들의 유사성을 이용한다. 특히, 비디오 코더는 MVI 후보를 병합 후보 리스트에 포함시킬 수도 있다. 심도 이미지에서의 주어진 PU 에 대해, MVI 후보는 이용가능하면, 이미 코딩된 대응하는 텍스쳐 블록의 모션 벡터들 및 참조 인덱스들을 이용하여 재사용한다. 도 10 은 심도 코딩을 위한 모션 벡터 승계 후보의 예시적인 유도를 예시하는 개념도이다. 도 10 은 대응하는 텍스쳐 블록이 현재의 PU 의 중심의 우측 저부에 로케이트된 4x4 블록으로서 선택되는 MVI 후보의 유도 프로세스의 일 예를 나타낸다.
일부 예들에서, 정수 정밀도를 갖는 모션 벡터들이 심도 코딩에 사용되고, 동시에 모션 벡터들의 1/4 정밀도가 텍스쳐 코딩에 이용된다. 따라서, 대응하는 텍스쳐 블록의 모션 벡터는 MVI 후보로서 사용하기 전에 스케일링될 수도 있다.
MVI 후보 생성에 의해, 심도 뷰들에 대한 병합 후보 리스트는 다음과 같이 구성될 수도 있다:
1. MVI 삽입
MVI 는 위에서 설명된 프로시저에 의해 유도된다. MVI 가 이용가능하면, 비디오 코더는 MVI 를 병합 리스트에 삽입할 수도 있다.
2. 3D- HEVC 에서의 공간 병합 후보들에 대한 유도 프로세스 및 IDMVC 삽입
공간 이웃하는 PU들의 모션 정보를 다음 순서로 체크한다: A1, B1, B0, A0, 또는 B2. 비디오 코더는 다음 프로시저들에 의해 속박된 프루닝을 수행할 수도 있다:
- A1 및 MVI 가 동일한 모션 벡터들 및 동일한 참조 인덱스들을 가지면, 비디오 코더는 A1 을 후보 리스트에 삽입하지 않는다.
- B1 및 A1/MVI 가 동일한 모션 벡터들 및 동일한 참조 인덱스들을 가지면, 비디오 코더는 B1 을 후보 리스트에 삽입하지 않는다.
- B0 이 이용가능하면, 비디오 코더는 B0 을 후보 리스트에 추가한다.
- A0 이 이용가능하면, 비디오 코더는 A0 을 후보 리스트에 추가한다.
- B2 가 이용가능하면, 비디오 코더는 B2 를 후보 리스트에 추가한다.
3. 시간 병합 후보에 대한 유도 프로세스
동일 위치에 배치된 PU 의 모션 정보가 이용되는 HEVC 에서의 시간 병합 후보 유도 프로세스와 유사하게, 그러나, 시간 병합 후보의 목표 참조 픽처 인덱스는 목표 참조 픽처 인덱스를 0 으로 고정하는 대신, 3D-HEVC 에서의 텍스쳐 코딩을 위한 병합 후보 리스트 구성에 대해 본 개시물의 다른 어딘가에 설명된 바와 같이 변경될 수도 있다.
4. 3D- HEVC 에서의 결합된 양-예측 병합 후보들에 대한 유도 프로세스
상기 2개의 단계들로부터 유도된 후보들의 총 개수가 후보들의 최대 개수 미만이면, 비디오 코더는 l0CandIdx 및 l1CandIdx 의 사양을 제외하고, HEVC 에 정의된 것과 동일한 프로세스를 수행할 수도 있다. combIdx, l0CandIdx 및 l1CandIdx 사이의 관계는 도 9 의 테이블에 정의된다.
6. 제로 모션 벡터 병합 후보들에 대한 유도 프로세스
- HEVC 에서 정의된 것과 동일한 프로시저가 수행된다.
위에서 나타낸 바와 같이, 3D-HEVC 는 뷰간 잔차 예측을 위해 제공한다. 진보된 잔차 예측 (ARP) 은 뷰간 잔차 예측의 하나의 형태이다. Part_2Nx2N 과 동일한 파티션 모드로 ARP 를 CU들에 적용하는 것은 대한민국, 인천에서 2013년 4월 20일~26일에 열린 ITU-T SG 16 WP 3 과 ISO/IEC JTC 1/SC 29/WG 11 의 3D 비디오 코딩 확장판들에 관한 합동 작업팀, 4차 회의의 Zhang 등, "CE4: Advanced Residual Prediction for Multiview Coding", 문서 JCT3V-D0177 에서 제안된 바와 같이, 4차 JCT3V 회의에서 채택되었으며, 이 문서는 2013년 12월 17일자로, http://phenix.it-sudparis.eu/jct3v/doc_end_user/documents/4_Incheon/wg11/JCT3V-D0177-v2.zip (이하, JCT3V-D0177) 에서 입수가능하다.
도 11 은 멀티-뷰 비디오 코딩에서의 ARP 의 예시적인 예측 구조를 예시한다. 도 11 에 나타낸 바와 같이, 비디오 코더는 현재의 블록의 예측에서 다음 블록들을 호출할 수도 있다.
1. 현재의 블록: Curr
2. 디스패리티 벡터 (DV) 에 의해 유도된 참조/베이스 뷰에서의 참조 블록: Base.
3. 현재의 블록의 (시간) 모션 벡터 (TMV 로서 표시됨) 에 의해 유도된 블록 Curr 과 동일한 뷰에서의 블록: CurrTRef.
4. 현재의 블록의 시간 모션 벡터 (TMV) 에 의해 유도된 블록 베이스와 동일한 뷰에서의 블록: BaseTRef. 이 블록은 현재의 블록과 비교하여 TMV+DV 의 벡터로 식별된다.
잔차 예측자는 BaseTRef-Base 로서 표시되며, 여기서, 감산 동작이 표시된 픽셀 어레이들의 각각의 픽셀에 적용된다. 비디오 코더는 가중 인자 w 를 잔차 예측자에 곱할 수도 있다. 따라서, 현재의 블록의 최종 예측자는 다음과 같이 표시될 수도 있다: CurrTRef+ w*(BaseTRef-Base).
상기 설명 및 도 11 은 양자가 단방향 예측이 적용된다는 가정에 기초한다. 양-예측의 경우로 확장할 때, 상기 단계들이 각각의 참조 픽처 리스트에 대해 적용된다. 현재의 블록이 하나의 참조 픽처 리스트에 대한 (상이한 뷰에서의) 뷰간 참조 픽처를 이용할 때, 잔차 예측 프로세스가 디스에이블된다.
디코더 측에서의 제안된 ARP 의 메인 프로시저들은 다음과 같이 설명될 수 있다. 첫째, 비디오 코더는 목표 참조 뷰를 가리키는, 3D-HEVC 작업 초안 4 에 규정된 바와 같은 디스패리티 벡터를 획득할 수도 있다. 그 후, 현재의 픽처와 동일한 액세스 유닛 내 참조 뷰의 픽처에서, 비디오 코더는 디스패리티 벡터를 이용하여, 대응하는 블록을 로케이트시킬 수도 있다. 다음으로, 비디오 코더는 현재의 블록의 모션 정보를 재사용하여, 참조 블록에 대한 모션 정보를 유도할 수도 있다. 비디오 코더는 그후 현재의 블록의 동일한 모션 벡터, 그리고 참조 블록에 대한 참조 뷰에서의 유도된 참조 픽처에 기초하여 대응하는 블록에 대해 모션 보상을 적용하여, 잔차 블록을 유도할 수도 있다. 도 12 는 현재의 블록, 대응하는 블록 및 모션 보상된 블록 사이의 관계를 나타낸다. 다시 말해서, 도 12 는 현재의 블록, 참조 블록, 및 모션 보상된 블록들 사이의 예시적인 관계를 예시하는 개념도이다. 현재의 뷰 (Vm) 의 참조 픽처와 동일한 POC (picture order count) 값을 가지는 참조 뷰 (V0) 에서의 참조 픽처가 대응하는 블록의 참조 픽처로서 선택된다. 다음으로, 비디오 코더는 가중 인자를 잔차 블록에 적용하여, 가중된 잔차 블록을 결정할 수도 있다. 비디오 코더는 가중된 잔차 블록의 값들을 예측된 샘플들에 가산할 수도 있다.
3개의 가중 인자들, 즉, 0, 0.5 및 1 이 ARP 에 사용된다. 비디오 인코더 (20) 는 현재의 CU 에 대해 최소의 레이트-왜곡 비용을 초래하는 가중 인자를 최종 가중 인자로서 선택할 수도 있다. 비디오 인코더 (20) 는 대응하는 가중 인자 인덱스 (가중 인자 0, 1, 및 0.5 에 각각 대응하는 0, 1 및 2) 를 비트스트림으로 CU 레벨에서 시그널링할 수도 있다. CU 에서의 모든 PU 예측들은 동일한 가중 인자를 공유할 수도 있다. 가중 인자가 0 과 동일할 때, 비디오 코더는 현재의 CU 에 대한 ARP 를 이용하지 않는다.
2013년 8월 30일자로, http://phenix.int-evry.fr/jct3v/doc_end_user/documents/3_Geneva/wg11/JCT3V-C0049-v2.zip (이하, JCT3V-C0049) 으로부터 입수가능한, 스위스, 제네바에서 2013년 1월 17일~23일에 열린 ITU-T SG 16 WP 3 과 ISO/IEC JTC 1/SC 29/WG 11 의 3D 비디오 코딩 확장판 개발에 관한 합동 작업팀, 3차 회의의 Zhang 등, "3D-CE4: Advanced Residual Prediction for Multiview Coding", 문서 JCT3V-C0049 에서는, 비-제로 가중 인자들로 코딩된 PU들의 참조 픽처들은 블록들 마다 상이할 수도 있다. 따라서, 비디오 코더는 대응하는 블록의 모션-보상된 블록 (즉, 도 11 의 예에서 BaseTRef) 을 생성하기 위해 참조 뷰와는 상이한 픽처들을 액세스할 필요가 있을 수도 있다. 비디오 코더는 가중 인자가 0 과 동일하지 않을 때, 잔차 생성 프로세스에 대한 모션 보상을 수행하기 전에, 현재의 PU 의 디코딩된 모션 벡터들을 고정된 픽처를 향하여 스케일링할 수도 있다. JCT3V-D0177 에서, 고정된 픽처는 그것이 동일한 뷰로부터 기인하면, 각각의 참조 픽처 리스트의 제 1 참조 픽처로서 정의된다. 디코딩된 모션 벡터가 고정된 픽처를 가리키지 않을 때, 비디오 코더는 디코딩된 모션 벡터를 먼저 스케일링하고 그후 스케일링된 모션 벡터를 이용하여 CurrTRefBaseTRef 를 식별할 수도 있다. ARP 에 사용되는 이러한 참조 픽처는 목표 ARP 참조 픽처로 지칭될 수도 있다.
JCT3V-C0049 에서, 비디오 코더는 대응하는 블록 및 대응하는 블록의 예측 블록의 내삽 프로세스 동안 양-선형 필터를 적용할 수도 있다. 한편, 비-베이스 뷰들에서의 현재의 PU 의 예측 블록에 대해, 비디오 코더는 종래의 8/4-탭 필터를 적용할 수도 있다. JCT3V-D0177 은 ARP 가 적용될 때 블록이 베이스 뷰 또는 비-베이스 뷰에 있는지 여부에 관계없이 양-선형을 항상 채용하는 것을 제안한다.
ARP 에서, 비디오 코더는 NBDV 유도 프로세스로부터 반환된 뷰 순서 인덱스에 의해 참조 뷰를 식별할 수도 있다. ARP 의 일부 설계들에서, 하나의 참조 픽처 리스트에서의 하나의 PU 의 참조 픽처가 현재의 뷰의 상이한 뷰에서 유래할 때, ARP 는 이 참조 픽처 리스트에 대해 디스에이블된다.
각각의 전체 내용이 참조로 포함된, 2013년 6월 28일자에 출원된 미국 가특허 출원 제 61/840,400호 및 2013년 7월 18일자에 출원된 미국 가특허 출원 제 61/847,942호에서는, 심도 픽처를 코딩할 때, 디스패리티 벡터는 현재의 블록의 이웃하는 샘플들로부터 추정된 심도 값에 의해 변환된다. 더욱이, 더 많은 병합 후보들은 예컨대, 디스패리티 벡터에 의해 식별된 베이스 뷰의 참조 블록에 액세스함으로써, 유도될 수 있다.
3D-HEVC 에서, 비디오 코더는 참조 4x4 블록을 2개의 단계들로 식별할 수도 있다. 제 1 단계는 디스패리티 모션 벡터로 픽셀을 식별하는 것이다. 제 2 단계는 4x4 블록을 (RefPicList0 또는 RefPicList1 에 각각 대응하는 모션 정보의 고유한 세트로) 획득하고 그 모션 정보를 이용하여 병합 후보를 생성하는 것이다.
참조 뷰에서의 픽셀 (xRef, yRef) 은 다음과 같이 식별될 수도 있으며:
Figure 112016011699399-pct00013

여기서, (xP, yP) 는 현재의 PU 의 좌측 상부 샘플의 좌표이고, mvDisp 는 디스패리티 벡터이고 그리고 nPSWxnPSH 는 현재의 PU 의 사이즈이고 PicWidthInSamplesL 및 PicHeightInSamplesL 은 (현재의 뷰와 동일한) 참조 뷰에서의 픽처의 해상도를 정의한다.
2013년 12월 17일자로, http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V-E0184-v2.zip 으로부터 입수가능한, 오스트리아, 비엔나에서 2013년 7월 27일~8월 2일에 열린 ITU-T SG 16 WP 3 과 ISO/IEC JTC 1/SC 29/WG 11 의 3D 비디오 코딩 확장판들에 관한 합동 작업팀, 5차 회의의 An 등, "3D-CE3.h related: Sub-PU level inter-view motion prediction", 문서 JCT3V-E0184 (이하, "JCT3V-E0184") 는, 시간 뷰간 병합 후보 (즉, 참조 뷰에서의 참조 블록으로부터 유도된 후보) 에 대한 서브-PU 레벨 뷰간 모션 예측 방법을 제안한다. 뷰간 모션 예측의 기본적인 컨셉은 본 개시물의 다른 어딘가에서 설명된다. 뷰간 모션 예측의 기본적인 컨셉에서, 단지 참조 블록의 모션 정보만이 의존적인 뷰에서의 현재의 PU 에 사용된다. 그러나, 현재의 PU 는 참조 뷰에서의 (현재의 PU 의 디스패리티 벡터에 의해 식별된 현재의 PU 와 동일한 사이즈를 가진) 참조 영역에 대응할 수도 있으며, 참조 영역은 풍부한 모션 정보를 가질 수도 있다. 따라서, 서브-PU 레벨 뷰간 모션 예측 (SPIVMP) 방법은 도 13 에 나타낸 바와 같이 제안된다. 다시 말해서, 도 13 은 서브-PU 뷰간 모션 예측의 예를 예시하는 개념도이다.
시간 뷰간 병합 후보는 다음과 같이 유도될 수도 있다. 시간 뷰간 병합 후보에 대한 유도 프로세스에서, 할당된 서브-PU 사이즈는 NxN 으로서 표시될 수도 있다. 상이한 서브-PU 블록 사이즈들, 예를 들어, 4x4, 8x8, 및 16x16 이 적용될 수도 있다.
시간 뷰간 병합 후보에 대한 유도 프로세스에서, 비디오 코더는 현재의 PU 를, 현재의 PU 보다 더 작은 사이즈를 각각 갖는 다수의 서브-PU들로 먼저 분할할 수도 있다. 현재의 PU 의 사이즈는 nPSW x nPSH 로 표시될 수도 있다. 서브-PU들의 사이즈들은 nPSWsub x nPSHSub 로 표시될 수도 있다. nPSWsub 및 nPSHsub 는 다음 방정식들에 나타낸 바와 같이 nPSW 및 nSPH 에 관련될 수도 있다.
Figure 112016011699399-pct00014

게다가, 비디오 코더는 디폴트 모션 벡터 tmvLX 를 (0, 0) 으로 설정할 수도 있으며, 참조 인덱스 refLX 를 각각의 참조 픽처 리스트에 대해 -1 로 설정할 수도 있다 (여기서, X 는 0 또는 1 이다).
더욱이, 시간 뷰간 병합 후보를 결정할 때, 비디오 코더는 각각의 서브-PU 에 대한 다음 액션들을 래스터 스캔 순서로 적용할 수도 있다. 첫째, 비디오 코더는 디스패리티 벡터를 (좌측 상부 샘플 로케이션이 (xPSub, yPSub) 인) 현재의 서브-PU 의 중간의 위치에 가산하여, 참조 샘플 로케이션 (xRefSub, yRefSub) 를 획득할 수도 있다. 비디오 코더는 (xRefSub, yRefSub) 를 다음 방정식들을 이용하여 결정할 수도 있다:
Figure 112016011699399-pct00015

비디오 코더는 (xRefSub, yRefSub) 를 커버하는 참조 뷰에서의 블록을 현재의 서브-PU 에 대한 참조 블록으로서 이용할 수도 있다.
식별된 참조 블록이 시간 모션 벡터들을 이용하여 코딩되면 그리고 refL0 및 refL1 양자가 -1 과 동일하고 현재의 서브-PU 가 래스터 스캔 순서에서 첫번째가 아니면, 참조 블록의 모션 정보가 모든 이전 서브-PU들에 의해 승계된다. 더욱이, 식별된 참조 블록이 시간 모션 벡터들을 이용하여 코딩되면, 연관된 모션 파라미터들은 현재의 서브-PU 에 대한 모션 파라미터들로서 이용될 수 있다. 게다가, 식별된 참조 블록이 시간 모션 벡터들을 이용하여 코딩되면, 비디오 코더는 tmvLX 및 refLX 를 현재의 서브-PU 의 모션 정보로 업데이트할 수도 있다. 그렇지 않으면, 참조 블록이 인트라 코딩되면, 비디오 코더는 현재의 서브-PU 의 모션 정보를 tmvLX 및 refLX 로 설정할 수도 있다.
JCT3V-E0184 에서 제안된 바와 같은 서브-PU 모션 예측 방법은 하나 이상의 문제들을 가진다. 예를 들어, 참조 뷰에서의 하나의 서브-PU 의 대응하는 블록이 인트라 코딩될 때 (즉, 그의 모션 정보가 이용불가능할 때), 래스터 스캔 순서에서 가장 가까운 서브-PU 의 모션 정보가 현재의 서브-PU 에 복사된다. 따라서, 래스터 스캔 순서에서 제 1 의 N 개의 서브-PU들의 대응하는 블록들이 인트라 코딩되고 (N+1)-번째 서브-PU 의 대응하는 블록이 인터 코딩되면, (N+1)-번째 서브-PU 로 설정된 관련 모션 정보가 추가적인 복잡성 및 코딩 지연을 초래하는 제 1 의 N 개의 서브-PU들에 복사될 것이다.
본 개시물의 하나 이상의 예들은 뷰간 모션 예측에 관한 것이다. 예를 들어, 본 개시물의 하나 이상의 예는 병합 인덱스가 뷰간 모션 예측을 나타낼 때 그 상황에 적용가능하다.
예를 들어, 일 예에서, 비디오 코더가 뷰간 모션 예측을 서브-PU 방식으로 이용할 때, 현재의 서브-PU 에 대한 모션 정보가 이용불가능하면, 비디오 코더는 디폴트 모션 벡터들 및 참조 인덱스들로부터 모션 정보를 복사할 수도 있다. 예를 들어, 현재의 서브-PU 에 대한 모션 정보가 이용불가능하면, 비디오 코더는 디폴트 모션 벡터들 및 디폴트 참조 인덱스들로부터 현재의 서브-PU 에 대한 모션 정보를 복사할 수도 있다. 이 예에서, 디폴트 모션 파라미터들은 후속하여 모션 보상된 예측을 이용하여 코딩되는 참조 블록들을 가지는 서브-PU들이 존재하는지 여부에 관계없이, 복수의 서브-PU들에서의 각각의 서브-PU 에 대해, 동일하다.
일부 예들에서, 비디오 코더 (예컨대, 비디오 인코더 (20) 또는 비디오 디코더 (30)) 는 현재의 PU 를 복수의 서브-PU들로 분할할 수도 있다. 현재의 PU 는 현재의 픽처에 있다. 게다가, 비디오 코더는 디폴트 모션 파라미터들을 결정할 수도 있다. 디폴트 모션 파라미터들은 하나 이상의 디폴트 모션 벡터들 및 하나 이상의 디폴트 참조 인덱스들을 포함할 수도 있다. 게다가, 비디오 코더는 복수의 서브-PU들로부터의 서브-PU들을 특정의 순서로 프로세싱할 수도 있다. 복수의 서브-PU들로부터의 각 개개의 서브-PU 에 대해, 비디오 코더는 개개의 서브-PU 에 대한 참조 블록을 결정할 수도 있다.
일부 예들에서, 참조 픽처는 현재의 픽처와는 상이한 뷰에 있을 수도 있으며, 비디오 코더는 현재의 PU 의 디스패리티 벡터에 기초하여, 참조 픽처에서의 참조 샘플 로케이션을 결정할 수도 있다. 이러한 예들에서, 개개의 서브-PU 에 대한 참조 블록은 참조 샘플 로케이션을 커버할 수도 있다. 다른 예들에서, 현재의 픽처는 심도 뷰 성분이고 참조 픽처는 현재의 픽처와 동일한 뷰 및 액세스 유닛에 있는 텍스쳐 뷰 성분이다. 이러한 예들에서, 비디오 코더는 개개의 서브-PU 에 대한 참조 블록이 개개의 서브-PU 와 동일 위치에 배치된 참조 픽처의 PU 라고 결정할 수도 있다.
더욱이, 복수의 서브-PU들로부터의 각 개개의 서브-PU (또는, 복수의 서브-PU들의 서브세트) 에 대해, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되면, 비디오 코더는 개개의 서브-PU 에 대한 참조 블록의 모션 파라미터들에 기초하여 개개의 서브-PU 의 모션 파라미터들을 설정할 수도 있다. 한편, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 비디오 코더는 개개의 서브-PU 의 모션 파라미터들을 디폴트 모션 파라미터들로 설정할 수도 있다.
본 개시물의 하나 이상의 예들에 따르면, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 개개의 서브-PU 의 모션 파라미터들은 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않는다. 따라서, 서브-PU들 중 적어도 하나에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않는 상황에서, 비디오 코더는 대응하는 참조 블록이 모션 보상된 예측을 이용하여 코딩되는 서브-PU 를 발견하기 위해 순방향으로 스캐닝할 필요가 없을 수도 있다. 이와 유사하게, 비디오 코더는 비디오 코더가 서브-PU들의 프로세싱 동안, 대응하는 참조 블록이 모션 보상된 예측을 이용하여 코딩되는 PU 를 조우할 때까지, 개개의 서브-PU 의 모션 파라미터들을 결정하는 것을 지연시킬 필요가 없을 수도 있다. 유리하게는, 이것은 복잡성 및 코딩 지연을 감소시킬 수도 있다.
비디오 코더는 현재의 PU 의 후보 리스트에 후보를 포함시킬 수도 있으며, 그 후보는 복수의 서브-PU들의 모션 파라미터들에 기초한다. 일부 예들에서, 후보 리스트는 병합 후보 리스트이다. 더욱이, 비디오 코더가 비디오 인코더 (예컨대, 비디오 인코더 (20)) 이면, 비디오 인코더는 비트스트림으로, 후보 리스트에서의 선택된 후보를 나타내는 신택스 엘리먼트 (예컨대, merge_idx) 를 시그널링할 수도 있다. 비디오 코더가 비디오 디코더 (예컨대, 비디오 디코더 (30)) 이면, 비디오 디코더는 비트스트림으로부터, 후보 리스트에서의 선택된 후보를 나타내는 신택스 엘리먼트 (예컨대, merge_idx) 를 획득할 수도 있다. 비디오 디코더는 선택된 후보의 모션 파라미터들을 이용하여, 현재의 PU 에 대한 예측 블록을 복원할 수도 있다.
본 개시물에서 설명하는 기법들 중 적어도 일부는 별개로 또는 서로 함께 구현될 수도 있다.
도 14 는 본 개시물의 기법들을 구현할 수도 있는 예시적인 비디오 인코더 (20) 를 예시하는 블록도이다. 도 14 는 설명의 목적들을 위해 제공되며, 본 개시물에서 넓게 예시되고 설명된 바와 같은 기법들의 제한인 것으로 간주되지 않아야 한다. 설명의 목적을 위해, 본 개시물은 HEVC 코딩의 상황에서 비디오 인코더 (20) 를 기술한다. 그러나, 본 개시물의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 14 의 예에서, 비디오 인코더 (20) 는 예측 프로세싱 유닛 (100), 잔차 생성 유닛 (102), 변환 프로세싱 유닛 (104), 양자화 유닛 (106), 역양자화 유닛 (108), 역변환 프로세싱 유닛 (110), 복원 유닛 (112), 필터 유닛 (114), 디코딩된 픽처 버퍼 (116), 및 엔트로피 인코딩 유닛 (118) 을 포함한다. 예측 프로세싱 유닛 (100) 은 인터-예측 프로세싱 유닛 (120) 및 인트라-예측 프로세싱 유닛 (126) 을 포함한다. 인터-예측 프로세싱 유닛 (120) 은 모션 추정 유닛 (122) 및 모션 보상 유닛 (124) 을 포함한다. 다른 예들에서, 비디오 인코더 (20) 는 더 많거나, 더 적거나, 또는 상이한 기능적 컴포넌트들을 포함할 수도 있다.
비디오 인코더 (20) 는 비디오 데이터를 수신할 수도 있다. 비디오 인코더 (20) 는 비디오 데이터의 픽처의 슬라이스에서의 각각의 CTU 를 인코딩할 수도 있다. CTU들의 각각은 픽처의 동일-사이즈의 루마 코딩 트리 블록들 (CTB들) 및 대응하는 CTB들과 연관될 수도 있다. CTU 를 인코딩하는 것의 일부로서, 예측 프로세싱 유닛 (100) 은 쿼드-트리 파티셔닝을 수행하여, CTU 의 CTB들을 계속해서-더 작은 블록들로 분할할 수도 있다. 더 작은 블록들은 CU들의 코딩 블록들일 수도 있다. 예를 들어, 예측 프로세싱 유닛 (100) 은 CTU 와 연관되는 CTB 를 4개의 동일-사이즈의 서브-블록들로 파티셔닝하고, 서브-블록들 중 하나 이상을 4개의 동일-사이즈의 서브-서브-블록들로 파티셔닝하며 등등일 수도 있다.
비디오 인코더 (20) 는 CU들의 인코딩된 표현들 (즉, 코딩된 CU들) 을 생성하기 위해 CTU 의 CU들을 인코딩할 수도 있다. CU 를 인코딩하는 것의 일부로서, 예측 프로세싱 유닛 (100) 은 CU 의 하나 이상의 PU들 중에서 CU 와 연관되는 코딩 블록들을 파티셔닝할 수도 있다. 따라서, 각각의 PU 는 루마 예측 블록 및 대응하는 크로마 예측 블록들과 연관될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 여러 사이즈들을 가지는 PU들을 지원할 수도 있다. 위에서 나타낸 바와 같이, CU 의 사이즈는 CU 의 루마 코딩 블록의 사이즈를 지칭할 수도 있으며, PU 의 사이즈는 PU 의 루마 예측 블록의 사이즈를 지칭할 수도 있다. 특정의 CU 의 사이즈가 2Nx2N 이라고 가정하면, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 인트라 예측에 대해서는 2Nx2N 또는 NxN 의 PU 사이즈들을, 그리고 인터 예측에 대해서는 2Nx2N, 2NxN, Nx2N, NxN, 또는 유사한 것의 대칭 PU 사이즈들을 지원할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 또한 인터 예측에 대해서 2NxnU, 2NxnD, nLx2N, 및 nRx2N 의 PU 사이즈들에 대한 비대칭적인 파티셔닝을 지원할 수도 있다.
인터-예측 프로세싱 유닛 (120) 은 CU 의 각각의 PU 에 대해 인터 예측을 수행함으로써, PU 에 대한 예측 데이터를 생성할 수도 있다. PU 에 대한 예측 데이터는 PU 의 예측 블록들 및 PU 에 대한 모션 정보를 포함할 수도 있다. 인터-예측 프로세싱 유닛 (120) 은 PU 가 I 슬라이스, P 슬라이스, 또는 B 슬라이스에 있는지 여부에 의존하여, CU 의 PU 에 대해 상이한 동작들을 수행할 수도 있다. I 슬라이스에서, 모든 PU들은 인트라 예측된다. 그러므로, PU 가 I 슬라이스에 있으면, 인터-예측 프로세싱 유닛 (120) 은 PU 에 관해 인터 예측을 수행하지 않는다.
PU 가 P 슬라이스에 있을 때, 모션 추정 유닛 (122) 은 참조 픽처들의 리스트 (예컨대, "RefPicList0") 에서의 참조 픽처들을 PU 에 대한 참조 영역에 대해 탐색할 수도 있다. PU 에 대한 참조 영역은 참조 픽처 내에서, PU 의 예측 블록들에 가장 가깝게 대응하는 샘플들을 포함하는 영역일 수도 있다. 모션 추정 유닛 (122) 은 PU 에 대한 참조 영역을 포함하는 참조 픽처의 RefPicList0 에서의 위치를 나타내는 참조 인덱스를 생성할 수도 있다. 게다가, 모션 추정 유닛 (122) 은 PU 의 코딩 블록과, 참조 영역과 연관되는 참조 로케이션 사이의 공간 변위를 나타내는 모션 벡터를 생성할 수도 있다. 예를 들어, 모션 벡터는 현재의 픽처에서의 좌표들로부터 참조 픽처에서의 좌표들까지 오프셋을 제공하는 2차원 벡터일 수도 있다. 모션 추정 유닛 (122) 은 참조 인덱스 및 모션 벡터를 PU 의 모션 정보로서 출력할 수도 있다. 모션 보상 유닛 (124) 은 PU 의 모션 벡터에 의해 나타낸 참조 로케이션에서의 실제 또는 내삽된 샘플들에 기초하여, PU 의 예측 블록들을 생성할 수도 있다.
PU 가 B 슬라이스에 있을 때, 모션 추정 유닛 (122) 은 PU 에 대해 단-예측 또는 양-예측을 수행할 수도 있다. PU 에 대한 단-예측을 수행하기 위해, 모션 추정 유닛 (122) 은 RefPicList0 또는 제 2 참조 픽처 리스트 ("RefPicList1") 의 참조 픽처들을 PU 에 대한 참조 영역에 대해 탐색할 수도 있다. 모션 추정 유닛 (122) 은 PU 의 모션 정보로서, 참조 영역을 포함하는 참조 픽처의 RefPicList0 또는 RefPicList1 에서의 위치를 나타내는 참조 인덱스, PU 의 예측 블록과 참조 영역과 연관되는 참조 로케이션 사이의 공간 변위를 나타내는 모션 벡터, 및 참조 픽처가 RefPicList0 또는 RefPicList1 에 있는지 여부를 나타내는 하나 이상의 예측 방향 표시자들을 출력할 수도 있다. 모션 보상 유닛 (124) 은 PU 의 모션 벡터에 의해 나타낸 참조 로케이션에서의 실제 또는 내삽된 샘플들에 적어도 부분적으로 기초하여, PU 의 예측 블록들을 생성할 수도 있다.
PU 에 대한 양-방향 인터 예측을 수행하기 위해, 모션 추정 유닛 (122) 은 RefPicList0 에서의 참조 픽처들을 PU 에 대한 참조 영역에 대해 탐색할 수도 있으며, 또한 RefPicList1 에서의 참조 픽처들을 PU 에 대한 또 다른 참조 영역에 대해 탐색할 수도 있다. 모션 추정 유닛 (122) 은 참조 영역들을 포함하는 참조 픽처들의 RefPicList0 및 RefPicList1 에서의 위치들을 나타내는 참조 인덱스들을 생성할 수도 있다. 게다가, 모션 추정 유닛 (122) 은 참조 영역들과 연관되는 참조 로케이션들과 PU 의 예측 블록 사이의 공간 변위들을 나타내는 모션 벡터들을 생성할 수도 있다. PU 의 모션 정보는 PU 의 참조 인덱스들 및 모션 벡터들을 포함할 수도 있다. 모션 보상 유닛 (124) 은 PU 의 모션 벡터들에 의해 나타낸 참조 로케이션들에서의 실제 또는 내삽된 샘플들에 적어도 부분적으로 기초하여, PU 의 예측 블록들을 생성할 수도 있다.
일부 예들에서, 모션 추정 유닛 (122) 은 PU 에 대한 병합 후보 리스트를 생성할 수도 있다. 병합 후보 리스트를 생성하는 것의 일부로서, 모션 추정 유닛 (122) 은 IPMVC 및/또는 텍스쳐 병합 후보를 결정할 수도 있다. IPMVC 및/또는 텍스쳐 병합 후보를 결정할 때, 모션 추정 유닛 (122) 은 PU 를 서브-PU들로 파티셔닝하고 서브-PU들을 특정의 순서에 따라서 프로세싱하여, 서브-PU들에 대한 모션 파라미터들을 결정할 수도 있다. 본 개시물의 하나 이상의 기법들에 따르면, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 모션 추정 유닛 (122) 은 특정의 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 개개의 서브-PU 의 모션 파라미터들을 설정하지 않는다. 대신, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 모션 추정 유닛 (122) 은 개개의 서브-PU 의 모션 파라미터들을 디폴트 모션 파라미터들로 설정할 수도 있다. IPMVC 또는 텍스쳐 병합 후보가 병합 후보 리스트에서의 선택된 병합 후보이면, 모션 보상 유닛 (124) 은 IPMVC 에 의해 규정된 모션 파라미터들 또는 텍스쳐 병합 후보에 기초하여 개개의 PU 에 대한 예측 블록을 결정할 수도 있다.
인트라-예측 프로세싱 유닛 (126) 은 PU 에 대해 인트라 예측을 수행함으로써, PU 에 대한 예측 데이터를 생성할 수도 있다. PU 에 대한 예측 데이터는 PU 에 대한 예측 블록들 및 여러 신택스 엘리먼트들을 포함할 수도 있다. 인트라-예측 프로세싱 유닛 (126) 은 I 슬라이스들, P 슬라이스들, 및 B 슬라이스들에서의 PU들에 대해 인트라 예측을 수행할 수도 있다.
PU 에 대해 인트라 예측을 수행하기 위해, 인트라-예측 프로세싱 유닛 (126) 은 다수의 인트라 예측 모드들을 이용하여 PU 에 대한 예측 블록들의 다수의 세트들을 생성할 수도 있다. 특정의 인트라 예측 모드를 이용하여 인트라 예측을 수행할 때, 인트라-예측 프로세싱 유닛 (126) 은 이웃하는 블록들로부터의 샘플들의 특정의 세트를 이용하여, PU 에 대한 예측 블록들을 생성할 수도 있다. 이웃하는 블록들은 PU들, CU들, 및 CTU들에 대해 좌에서 우로, 위에서 아래로의 인코딩 순서를 가정하면, 상부, 상부 및 우측, 상부 및 좌측, 또는 좌측의 PU 의 예측 블록들일 수도 있다. 인트라-예측 프로세싱 유닛 (126) 은 다수의 인트라 예측 모드들, 예컨대, 33개의 방향 인트라 예측 모드들을 이용할 수도 있다. 일부 예들에서, 인트라 예측 모드들의 개수는 PU 의 예측 블록들의 사이즈에 의존할 수도 있다.
예측 프로세싱 유닛 (100) 은 PU들에 대해 인터-예측 프로세싱 유닛 (120) 에 의해 생성된 예측 데이터, 또는 PU들에 대해 인트라-예측 프로세싱 유닛 (126) 에 의해 생성된 예측 데이터 중에서, CU 의 PU들에 대한 예측 데이터를 선택할 수도 있다. 일부 예들에서, 예측 프로세싱 유닛 (100) 은 예측 데이터의 세트들의 레이트/왜곡 메트릭들에 기초하여, CU 의 PU들에 대한 예측 데이터를 선택한다. 선택된 예측 데이터의 예측 블록들은 본원에서 선택된 예측 블록들로 지칭될 수도 있다.
잔차 생성 유닛 (102) 은 CU 의 루마, Cb 및 Cr 코딩 블록 및 CU 의 PU들의 선택된 예측 루마, Cb 및 Cr 블록들에 기초하여, CU 의 루마, Cb 및 Cr 잔차 블록들을 생성할 수도 있다. 예를 들어, 잔차 생성 유닛 (102) 은 잔차 블록들에서의 각각의 샘플이 CU 의 코딩 블록에서의 샘플과 CU 의 PU 의 대응하는 선택된 예측 블록에서의 대응하는 샘플 사이의 차이와 동일한 값을 갖도록, CU 의 잔차 블록들을 생성할 수도 있다.
변환 프로세싱 유닛 (104) 은 쿼드-트리 파티셔닝을 수행하여, CU 의 잔차 블록들을 CU 의 TU들과 연관되는 변환 블록들로 파티셔닝할 수도 있다. 따라서, TU 는 루마 변환 블록 및 2개의 대응하는 크로마 변환 블록들과 연관될 수도 있다. CU 의 TU들의 루마 및 크로마 변환 블록들의 사이즈들 및 위치들은 CU 의 PU들의 예측 블록들의 사이즈들 및 위치들에 기초하거나 또는 기초하지 않을 수도 있다.
변환 프로세싱 유닛 (104) 은 하나 이상의 변환들을 TU 의 변환 블록들에 적용함으로써, CU 의 각각의 TU 에 대한 변환 계수 블록들을 생성할 수도 있다. 변환 프로세싱 유닛 (104) 은 여러 변환들을 TU 와 연관되는 변환 블록에 적용할 수도 있다. 예를 들어, 변환 프로세싱 유닛 (104) 은 이산 코사인 변환 (DCT), 방향성 변환, 또는 개념적으로-유사한 변환을 변환 블록에 적용할 수도 있다. 일부 예들에서, 변환 프로세싱 유닛 (104) 은 변환들을 변환 블록에 적용하지 않는다. 이러한 예들에서, 변환 블록은 변환 계수 블록으로서 취급될 수도 있다.
양자화 유닛 (106) 은 계수 블록에서의 변환 계수들을 양자화할 수도 있다. 양자화 프로세스는 그 변환 계수들의 일부 또는 모두와 연관되는 비트 심도를 감소시킬 수도 있다. 예를 들어, n-비트 변환 계수는 양자화 동안 m-비트 변환 계수로 절사될 수도 있으며, 여기서, nm 보다 더 크다. 양자화 유닛 (106) 은 CU 와 연관되는 양자화 파라미터 (QP) 값에 기초하여, CU 의 TU 와 연관되는 계수 블록을 양자화할 수도 있다. 비디오 인코더 (20) 는 CU 와 연관되는 QP 값을 조정함으로써 CU 와 연관되는 계수 블록들에 적용되는 양자화의 정도를 조정할 수도 있다. 양자화는 정보의 손실을 도입할 수도 있으며, 따라서 양자화된 변환 계수들은 원래 정밀도들보다 낮은 정밀도를 가질 수도 있다.
역양자화 유닛 (108) 및 역변환 프로세싱 유닛 (110) 은 역양자화 및 역변환들을 계수 블록에 각각 적용하여, 계수 블록으로부터 잔차 블록을 복원할 수도 있다. 복원 유닛 (112) 은 그 복원된 잔차 블록을 예측 프로세싱 유닛 (100) 에 의해 생성되는 하나 이상의 예측 블록들로부터의 대응하는 샘플들에 가산하여, TU 와 연관되는 복원된 변환 블록을 생성할 수도 있다. 이 방법으로 CU 의 각각의 TU 에 대한 변환 블록들을 복원함으로써, 비디오 인코더 (20) 는 CU 의 코딩 블록들을 복원할 수도 있다.
필터 유닛 (114) 은 CU 와 연관되는 코딩 블록들에서 블록킹 아티팩트들을 감소시키기 위해, 하나 이상의 디블록킹 동작들을 수행할 수도 있다. 디코딩된 픽처 버퍼 (116) 는 필터 유닛 (114) 이 복원된 코딩 블록들에 관해 하나 이상의 디블록킹 동작들을 수행한 후 그 복원된 코딩 블록들을 저장할 수도 있다. 인터-예측 프로세싱 유닛 (120) 은 그 복원된 코딩 블록들을 포함하는 참조 픽처를 이용하여, 다른 픽처들의 PU들에 관해 인터 예측을 수행할 수도 있다. 게다가, 인트라-예측 프로세싱 유닛 (126) 은 디코딩된 픽처 버퍼 (116) 에서의 복원된 코딩 블록들을 이용하여, CU 와 동일한 픽처에서의 다른 PU들에 관해 인트라 예측을 수행할 수도 있다.
엔트로피 인코딩 유닛 (118) 은 비디오 인코더 (20) 의 다른 기능적 컴포넌트들로부터 데이터를 수신할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은 양자화 유닛 (106) 으로부터 계수 블록들을 수신할 수도 있으며 예측 프로세싱 유닛 (100) 으로부터 신택스 엘리먼트들을 수신할 수도 있다. 엔트로피 인코딩 유닛 (118) 은 데이터에 대해 하나 이상의 엔트로피 인코딩 동작들을 수행하여, 엔트로피-인코딩된 데이터를 생성할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은 컨텍스트-적응 가변 길이 코딩 (CAVLC) 동작, CABAC 동작, V2V (variable-to-variable) 길이 코딩 동작, 신택스-기반 컨텍스트-적응 2진 산술 코딩 (SBAC) 동작, 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 동작, 지수-골롬 (Golomb) 인코딩 동작, 또는 또다른 유형의 엔트로피 인코딩 동작을 데이터에 대해 수행할 수도 있다. 비디오 인코더 (20) 는 엔트로피 인코딩 유닛 (118) 에 의해 생성된 엔트로피-인코딩된 데이터를 포함하는 비트스트림을 출력할 수도 있다.
도 15 는 본 개시물의 기법들을 구현할 수도 있는 예시적인 비디오 디코더 (30) 를 예시하는 블록도이다. 도 15 는 설명의 목적들을 위해 제공되며 본 개시물에 넓게 예시되고 설명된 것과 같은 기법들에 한정하는 것이 아니다. 설명의 목적을 위해, 본 개시물은 HEVC 코딩의 상황에서의 비디오 디코더 (30) 를 기술한다. 그러나, 본 개시물의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 15 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (150), 예측 프로세싱 유닛 (152), 역양자화 유닛 (154), 역변환 프로세싱 유닛 (156), 복원 유닛 (158), 필터 유닛 (160), 및 디코딩된 픽처 버퍼 (162) 를 포함한다. 예측 프로세싱 유닛 (152) 은 모션 보상 유닛 (164) 및 인트라-예측 프로세싱 유닛 (166) 을 포함한다. 다른 예들에서, 비디오 디코더 (30) 는 더 많거나, 더 적거나, 또는 상이한 기능적 컴포넌트들을 포함할 수도 있다.
코딩된 픽처 버퍼 (CPB) (151) 는 비트스트림의 인코딩된 비디오 데이터 (예컨대, NAL 유닛들) 을 수신 및 저장할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 CPB (151) 로부터 NAL 유닛들을 수신하고, NAL 유닛들을 파싱하여 비트스트림으로부터 신택스 엘리먼트들을 획득할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 NAL 유닛들에서의 엔트로피-인코딩된 신택스 엘리먼트들을 엔트로피 디코딩할 수도 있다. 예측 프로세싱 유닛 (152), 역양자화 유닛 (154), 역변환 프로세싱 유닛 (156), 복원 유닛 (158), 및 필터 유닛 (160) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여, 디코딩된 비디오 데이터를 생성할 수도 있다.
비트스트림의 NAL 유닛들은 코딩된 슬라이스 NAL 유닛들을 포함할 수도 있다. 비트스트림을 디코딩하는 것의 일부로서, 엔트로피 디코딩 유닛 (150) 은 코딩된 슬라이스 NAL 유닛들로부터 신택스 엘리먼트들을 추출 및 엔트로피 디코딩할 수도 있다. 코딩된 슬라이스들 각각은 슬라이스 헤더 및 슬라이스 데이터를 포함할 수도 있다. 슬라이스 헤더는 슬라이스에 관련된 신택스 엘리먼트들을 포함할 수도 있다.
비트스트림으로부터 신택스 엘리먼트들을 획득하는 것에 더해서, 비디오 디코더 (30) 는 CU 에 관해 디코딩 동작을 수행할 수도 있다. CU 에 관해 디코딩 동작을 수행함으로써, 비디오 디코더 (30) 는 CU 의 코딩 블록들을 복원할 수도 있다.
CU 에 관해 디코딩 동작을 수행하는 것의 일부로서, 역양자화 유닛 (154) 은 CU 의 TU들과 연관되는 계수 블록들을 역양자화, 즉 양자화해제할 수도 있다. 역양자화 유닛 (154) 은 TU 의 CU 와 연관되는 QP 값을 이용하여, 양자화의 정도 및 이와 유사하게, 적용할 역양자화 유닛 (154) 에 대한 역양자화의 정도를 결정할 수도 있다. 즉, 압축 비, 즉, 원래 시퀀스 및 압축된 시퀀스를 표현하는데 사용되는 비트수의 비는, 변환 계수들을 양자화할 때 사용되는 QP 의 값을 조정함으로써 제어될 수도 있다. 압축 비는 또한 채용되는 엔트로피 코딩의 방법에 의존할 수도 있다.
역양자화 유닛 (154) 이 계수 블록을 역양자화한 후, 역변환 프로세싱 유닛 (156) 은 TU 와 연관되는 잔차 블록을 생성하기 위해, 하나 이상의 역변환들을 계수 블록에 적용할 수도 있다. 예를 들어, 역변환 프로세싱 유닛 (156) 은 역 DCT, 역 정수 변환, 역 Karhunen-Loeve 변환 (KLT), 역 회전 변환, 역 방향 변환, 또는 또 다른 역변환을 계수 블록에 적용할 수도 있다.
PU 가 인트라 예측을 이용하여 인코딩되면, 인트라-예측 프로세싱 유닛 (166) 은 인트라 예측을 수행하여, PU 에 대한 예측 블록들을 생성할 수도 있다. 인트라-예측 프로세싱 유닛 (166) 은 공간적으로-이웃하는 PU들의 예측 블록들에 기초하여, PU 에 대한 예측 루마, Cb, 및 Cr 블록들을 생성하기 위해, 인트라 예측 모드를 이용할 수도 있다. 인트라-예측 프로세싱 유닛 (166) 은 비트스트림으로부터 디코딩된 하나 이상의 신택스 엘리먼트들에 기초하여, PU 에 대한 인트라 예측 모드를 결정할 수도 있다.
예측 프로세싱 유닛 (152) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여, 제 1 참조 픽처 리스트 (RefPicList0) 및 제 2 참조 픽처 리스트 (RefPicList1) 를 구성할 수도 있다. 더욱이, PU 가 인터 예측을 이용하여 인코딩되면, 엔트로피 디코딩 유닛 (150) 은 PU 에 대한 모션 정보를 획득할 수도 있다. 모션 보상 유닛 (164) 은 PU 의 모션 정보에 기초하여, PU 에 대한 하나 이상의 참조 영역들을 결정할 수도 있다. 모션 보상 유닛 (164) 은 PU 에 대한 하나 이상의 참조 블록들에서의 샘플들에 기초하여, PU 에 대한 예측 루마, Cb, 및 Cr 블록들을 생성할 수도 있다.
일부 예들에서, 모션 보상 유닛 (164) 은 PU 에 대한 병합 후보 리스트를 생성할 수도 있다. 병합 후보 리스트를 생성하는 것의 일부로서, 모션 보상 유닛 (164) 은 IPMVC 및/또는 텍스쳐 병합 후보를 결정할 수도 있다. IPMVC 및/또는 텍스쳐 병합 후보를 결정할 때, 모션 보상 유닛 (164) 은 PU 를 서브-PU들로 파티셔닝하고 서브-PU들을 특정의 순서에 따라서 프로세싱하여 서브-PU들의 각각에 대한 모션 파라미터들을 결정할 수도 있다. 본 개시물의 하나 이상의 기법들에 따르면, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 모션 보상 유닛 (164) 은 특정의 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 개개의 서브-PU 의 모션 파라미터들을 설정하지 않는다. 대신, 개개의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않으면, 모션 보상 유닛 (164) 은 개개의 서브-PU 의 모션 파라미터들을 디폴트 모션 파라미터들로 설정할 수도 있다. IPMVC 또는 텍스쳐 병합 후보가 병합 후보 리스트에서의 선택된 병합 후보이면, 모션 보상 유닛 (164) 은 IPMVC 에 의해 규정된 모션 파라미터들 또는 텍스쳐 병합 후보에 기초하여 개개의 PU 에 대한 예측 블록을 결정할 수도 있다.
복원 유닛 (158) 은 CU 의 루마, Cb, 및 Cr 코딩 블록들을 복원하기 위해, 적용가능한 경우, CU 의 TU들과 연관되는 루마, Cb, 및 Cr 변환 블록들 및 CU 의 PU들의 예측 루마, Cb, 및 Cr 블록들로부터의 잔차 값들, 즉, 인트라-예측 데이터 또는 인터-예측 데이터 중 어느 하나를 이용할 수도 있다. 예를 들어, 복원 유닛 (158) 은 루마, Cb, 및 Cr 변환 블록들의 샘플들을 예측 루마, Cb, 및 Cr 블록들의 대응하는 샘플들에 가산하여, CU 의 루마, Cb, 및 Cr 코딩 블록들을 복원할 수도 있다.
필터 유닛 (160) 은 CU 의 루마, Cb, 및 Cr 코딩 블록들과 연관되는 블록킹 아티팩트들을 감소시키기 위해 디블록킹 동작을 수행할 수도 있다. 비디오 디코더 (30) 는 CU 의 루마, Cb, 및 Cr 코딩 블록들을 디코딩된 픽처 버퍼 (162) 에 저장할 수도 있다. 디코딩된 픽처 버퍼 (162) 는 후속 모션 보상, 인트라 예측, 및 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상에의 프리젠테이션을 위해, 참조 픽처들을 제공할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 디코딩된 픽처 버퍼 (162) 에서의 루마, Cb, 및 Cr 블록들에 기초하여, 다른 CU들의 PU들에 관해 인트라 예측 또는 인터 예측 동작들을 수행할 수도 있다. 이러한 방법으로, 비디오 디코더 (30) 는 비트스트림으로부터, 유효 루마 계수 블록의 변환 계수 레벨들을 추출하고, 변환 계수 레벨들을 역양자화하고, 변환을 변환 계수 레벨들에 적용하여 변환 블록을 생성하고, 그 변환 블록에 적어도 부분적으로 기초하여, 코딩 블록을 생성하고, 그리고 디스플레이를 위해 코딩 블록을 출력할 수도 있다.
다음 섹션은 (공공연하게 이용가능한) 3D-HEVC 에 대한 예시적인 디코딩 프로세스 변화들을 제공한다. 서브-PU 시간 뷰간 모션 벡터 후보에 대한 유도 프로세스에서, 비디오 코더는 PU-레벨 뷰간 예측된 모션 벡터 후보를 먼저 생성할 수도 있다. 중심 참조 서브-PU (즉, 뷰간 참조 블록에서의 중심 서브-PU) 가 인터 예측 모드로 코딩되고 참조 픽처 리스트 X 에서의 중심 참조 서브-PU 의 참조 픽처가 X = 0 또는 1 에 대해 현재의 슬라이스의 참조 픽처 리스트 X 에서의 하나의 엔트리의 POC 값과 동일한 POC 값을 가지면, 그의 모션 벡터 및 참조 픽처가 PU-레벨 예측된 모션 벡터 후보로서 이용된다. 그렇지 않으면, 비디오 코더는 (현재의 슬라이스가 B 슬라이스이면) 참조 픽처 리스트 0 및 참조 픽처 리스트 1 에 대해 0과 동일한 참조 픽처 인덱스를 가진 제로 모션을, PU-레벨 예측된 모션 벡터 후보로서 이용할 수도 있다. 비디오 코더는 그후 PU-레벨 예측된 모션 벡터 후보를, 대응하는 참조 블록이 인트라 예측 모드로 코딩되거나 또는 인터 예측 모드로 코딩되지만 그의 참조 픽처가 현재의 슬라이스의 참조 픽처 리스트에 포함되지 않는 서브-PU 의 모션로서 이용할 수도 있다.
본 개시물의 예들은 3D-HEVC 초안 텍스트 2 (즉, 문서 JCT3V-F1001v2) 에서 정의된 서브-PU 레벨 뷰간 모션 예측 프로세스 (또는, 서브 예측 블록 시간 뷰간 모션 벡터 후보에 대한 유도 프로세스) 를 변경할 수도 있다. 본 개시물의 하나 이상의 예들에 따르면, 3D-HEVC 초안 텍스트 2 에 추가된 텍스트는 밑줄로 표시되며 3D-HEVC 초안 텍스트 2 로부터 삭제된 텍스트는 이탤릭체로 표시되며 이중 꺽쇠 괄호들로 둘러싸진다.
디코딩 프로세스
서브 예측 블록 시간 뷰간 모션 벡터 후보에 대한 H.8.5.3.2.16 유도 프로세스
이 프로세스는 iv_mv_pred_flag[ nuh_layer_id ] 가 0 과 동일할 때 호출되지 않는다.
이 프로세스에의 입력들은 다음과 같다:
- 현재의 픽처의 좌측 상부 루마 샘플에 대한, 현재의 예측 유닛의 좌측 상부 루마 샘플의 루마 로케이션 ( xPb, yPb ),
- 현재의 예측 유닛의 폭 및 높이를 각각 규정하는 변수들 nPbW 및 nPbH,
- 참조 뷰 인덱스 refViewIdx,
- 디스패리티 벡터 mvDisp.
이 프로세스의 출력들은 다음과 같다:
- 시간 뷰간 모션 벡터 후보가 이용가능한지 여부를 규정하는, 플래그들 availableFlagLXInterView, 여기서, X 는 0 내지 1 의 범위,
- 시간 뷰간 모션 벡터 후보 mvLXInterView, 여기서, X 는 0 내지 1 의 범위,
- 참조 픽처 리스트 RefPicListLX 에서의 참조 픽처를 규정하는 참조 인덱스 refIdxLXInterView, 여기서, X 는 0 내지 1 의 범위.
0 내지 1 의 범위인 X 에 대해, 다음이 적용된다:
- 플래그 availableFlagLXInterView 는 0 과 동일하게 설정된다.
- 모션 벡터 mvLXInterView 는 ( 0, 0 ) 과 동일하게 설정된다.
- 참조 인덱스 refIdxLXInterView 는 -1 과 동일하게 설정된다.
변수들 nSbW 및 nSbH 는 다음과 같이 유도된다:
Figure 112016011699399-pct00016
변수 ivRefPic는 현재의 액세스 유닛에서의 refViewIdx 와 동일한 ViewIdx 를 가진 픽처와 동일하게 설정된다
Figure 112016011699399-pct00017
다음이 변수 플래그 centerPredFlagLX , 모션 벡터 centerMvLX 및 참조 인덱스 centerRefIdxLX 를 유도하기 위해 적용된다.,
- 변수 centerAvailableFlag 는 0 과 동일하게 설정된다.
- 0 내지 1 의 범위인 X 에 대해, 다음이 적용된다:
- 플래그 centerPredFlagLX 는 0 과 동일하게 설정된다.
- 모션 벡터 centerMvLX 는 ( 0, 0 ) 과 동일하게 설정된다.
- 참조 인덱스 centerRefIdxLX 는 -1 과 동일하게 설정된다.
- 참조 계층 루마 로케이션 ( xRef , yRef ) 이 다음에 의해 유도된다
Figure 112016011699399-pct00018
- 변수 ivRefPb ivRefPic 에 의해 규정된 뷰간 참조 픽처 내부에 있는 ( xRef, yRef ) 에 의해 주어진 로케이션을 커버하는 루마 예측 블록을 규정한다.
- 루마 로케이션 ( xIvRefPb , yIvRefPb ) 는 ivRefPic 에 의해 규정된 뷰간 참조 픽처의 좌측 상부 루마 샘플에 대한, ivRefPb 에 의해 규정된 뷰간 참조 루마 예측 블록의 좌측 상부 샘플과 동일하게 설정된다.
- ivRefPb 인트라 예측 모드에서 코딩되지 않을 때, 다음이 0 내지 1 의 범위인 X 에 대해 적용된다:
- X 가 0 과 동일하거나 또는 현재의 슬라이스가 B 슬라이스일 때, 다음이 X 내지 (1 - X) 의 범위인 Y 에 대해 적용된다:
- 변수들 refPicListLYIvRef , predFlagLYIvRef , mvLYIvRef , 및 refIdxLYIvRef는 픽처 ivRefPic 의 RefPicListLY , PredFlagLY , MvLY , 및 RefIdxLY 와 각각 동일하게 설정된다.
- PredFlagLYIvRef [ xIvRefPb ][ yIvRefPb ] 가 1 과 동일할 때, 다음이 0 내지 num _ref_ idx _ lX _active_ minus1 인 각각의 i 에 대해, 적용된다:
- PicOrderCnt( refPicListLYIvRef[ refIdxLYIvRef[ xIvRefPb ][ yIvRefPb ] ] ) 가 PicOrderCnt( RefPicListLX [ i ] ) 와 동일하고 centerPredFlagLX 가 0 과 동일할 때, 다음이 적용된다.
Figure 112016011699399-pct00019
- centerAvailableFlag 가 0 과 동일하고 ivRefPic 이 I 슬라이스가 아니면, 다음이 0 내지 1 의 범위인 X 에 대해 적용된다:
Figure 112016011699399-pct00020
0 내지 1 의 범위인 X 에 대해, 다음이 적용된다:
- 플래그 availableFlagLXInterView centerPredFlagLX 와 동일하게 설정된다.
- 모션 벡터 mvLXInterView centerMvLX 와 동일하게 설정된다.
- 참조 인덱스 refIdxLXInterView centerRefIdxLX 와 동일하게 설정된다.
0 내지 ( nPbH / nSbH - 1 ) 의 범위인 yBlk 에 대해, 그리고 0 내지 ( nPbW / nSbW - 1 ) 의 범위인 xBlk 에 대해, 다음이 적용된다:
- 변수 curAvailableFlag 는 0 과 동일하게 설정된다.
- 0 내지 1 의 범위인 X 에 대해, 다음이 적용된다:
- 플래그 spPredFlagL1[ xBlk ][ yBlk ] 는 0 과 동일하게 설정된다.
- 모션 벡터 spMvLX 는 ( 0, 0 ) 과 동일하게 설정된다.
- 참조 인덱스 spRefIdxLX[ xBlk ][ yBlk ] 는 -1 과 동일하게 설정된다.
- 참조 계층 루마 로케이션 ( xRef, yRef ) 는 다음에 의해 유도된다
Figure 112016011699399-pct00021
- 변수 ivRefPb 는 ivRefPic 에 의해 규정된 뷰간 참조 픽처 내부에 있는 ( xRef, yRef ) 에 의해 주어진 로케이션을 커버하는 루마 예측 블록을 규정한다.
- 루마 로케이션 ( xIvRefPb, yIvRefPb ) 는 ivRefPic 에 의해 규정된 뷰간 참조 픽처의 좌측 상부 루마 샘플에 대한, ivRefPb 에 의해 규정된 뷰간 참조 루마 예측 블록의 좌측 상부 샘플과 동일하게 설정된다.
- ivRefPb가 인트라 예측 모드에서 코딩되지 않을 때, 다음이 0 내지 1 의 범위인 X 에 대해 적용된다:
- X 가 0 과 동일하거나 또는 현재의 슬라이스가 B 슬라이스일 때, 다음이 X 내지 (1 - X) 의 범위인 Y 에 대해 적용된다:
- 변수들 refPicListLYIvRef, predFlagLYIvRef[ x ][ y ], mvLYIvRef[ x ][ y ], 및 refIdxLYIvRef[ x ][ y ] 는 픽처 ivRefPic 의 RefPicListLY, PredFlagLY[ x ][ y ], MvLY[ x ][ y ], 및 RefIdxLY[ x ][ y ] 와 각각 동일하게 설정된다.
- PredFlagLYIvRef[ xIvRefPb ][ yIvRefPb ] 가 1 과 동일할 때, 다음이 0 내지 num_ref_idx_lX_active_minus1 인 각각의 i 에 대해, 적용된다:
- PicOrderCnt( refPicListLYIvRef[ refIdxLYIvRef[ xIvRefPb ][ yIvRefPb ] ] ) 가 PicOrderCnt( RefPicListLX[ i ] ) 와 동일하고 spPredFlagLX[ xBlk ][ yBlk ] 가 0 과 동일할 때, 다음이 적용된다.
Figure 112016011699399-pct00022
- [[ curAvailableFlag 에 의존하여, 다음이 적용된다:
- curAvailableFlag 가 1 과 동일하면, 다음 순서로 된 단계들이 적용된다:
1. lastAvailableFlag 가 0 과 동일할 때, 다음이 적용된다:
- 0 내지 1 의 범위인 X 에 대해, 다음이 적용된다:
Figure 112016011699399-pct00023
- CurSubBlockIdx 가 0 보다 클 때, 다음이 0 내지 ( curSubBlockIdx - 1 ) 의 범위인 k 에 대해, 적용된다:
- 변수들 i 및 k 는 다음에 규정된 바와 같이 유도된다:
i = k % ( nPSW / nSbW ) (H-184)
j = k / ( nPSW / nSbW ) (H-185)
- 0 내지 1 의 범위인 X 에 대해, 다음이 적용된다:
Figure 112016011699399-pct00024
2. 변수 lastAvailableFlag 는 1 과 동일하게 설정된다.
3. 변수들 xLastAvail yLastAvail xBlk yBlk 과 각각 동일하게 설정된다. ]]
- [[그렇지 않고 (]] curAvailableFlag 가 0 과 동일하면[[), lastAvailable 플래그가 1 과 동일할 때,]] 다음이 0 내지 1 의 범위인 X 에 대해 적용된다:
Figure 112016011699399-pct00025
- [[변수 curSubBlockIdx curSubBlockIdx + 1 과 동일하게 설정된다.]]
디코딩 프로세스에서 추후 호출되는 변수들의 유도 프로세스들에 사용을 위해, 다음 할당들이 x = 0.. nPbW - 1 및 y = 0.. nPbH - 1 에 대해 이루어진다:
- 0 내지 1 의 범위인 X 에 대해, 다음이 적용된다:
- 변수들 SubPbPredFlagLX, SubPbMvLX 및 SubPbRefIdxLX 는 다음에 규정된 바와 같이 유도된다:
Figure 112016011699399-pct00026
- 하위 조항 8.5.3.2.9 에서의 크로마 모션 벡터들에 대한 유도 프로세스는 입력으로서 SubPbMvLX[ xPb + x ][ yPb + y ] 로 호출되며, 출력은 SubPbMvCLX[ xPb + x ][ yPb + y ] 이다.
도 16a 는 본 개시물의 예에 따른, 인터 예측을 이용하여 CU 를 인코딩하는 비디오 인코더 (20) 의 예시적인 동작을 예시하는 플로우차트이다. 도 16a 의 예에서, 비디오 인코더 (20) 는 현재의 CU 의 현재의 PU 에 대한 병합 후보 리스트를 생성할 수도 있다 (200). 본 개시물의 하나 이상의 예들에 따르면, 비디오 인코더 (20) 는 병합 후보 리스트가 현재의 PU 의 서브-PU들에 대한 모션 정보에 기초하여 시간 뷰간 병합 후보를 포함하도록 병합 후보 리스트를 생성할 수도 있다. 일부 예들에서, 현재의 PU 는 심도 PU 일 수도 있으며 비디오 인코더 (20) 는 병합 후보 리스트가 현재의 심도 PU 의 서브-PU들에 대한 모션 정보에 기초하여 텍스쳐 병합 후보를 포함하도록 병합 후보 리스트를 생성할 수도 있다. 더욱이, 일부 예들에서, 비디오 인코더 (20) 는 도 17 의 동작을 수행하여, 현재의 PU 에 대한 병합 후보 리스트를 생성할 수도 있다.
현재의 PU 에 대한 병합 후보 리스트를 생성한 후, 비디오 인코더 (20) 는 병합 후보 리스트로부터 병합 후보를 선택할 수도 있다 (202). 일부 예들에서, 비디오 인코더 (20) 는 레이트/왜곡 분석에 기초하여 병합 후보를 선택할 수도 있다. 더욱이, 비디오 인코더 (20) 는 선택된 병합 후보의 모션 정보 (예컨대, 모션 벡터들 및 참조 인덱스들) 을 이용하여, 현재의 PU 에 대한 예측 블록들을 결정할 수도 있다 (204). 비디오 인코더 (20) 는 선택된 병합 후보의 병합 후보 리스트 내 위치를 나타내는 병합 후보 인덱스를 시그널링할 수도 있다 (206).
선택된 병합 후보가 본 개시물의 예들에서 설명된 바와 같은 서브-PU들을 이용하여 구성된 IPMVC 또는 MVI 후보 (즉, 텍스쳐 병합 후보) 이면, IPMVC 또는 MVI 후보는 현재의 PU 의 각각의 서브-PU 에 대해 모션 파라미터들의 별개의 세트 (예컨대, 하나 이상의 모션 벡터들의 세트 및 하나 이상의 참조 인덱스들의 세트) 를 규정할 수도 있다. 비디오 인코더 (20) 가 현재의 PU 에 대한 예측 블록을 결정하고 있을 때, 비디오 인코더 (20) 는 현재의 PU 의 서브-PU들의 모션 파라미터들을 이용하여, 서브-PU들에 대한 예측 블록들을 결정할 수도 있다. 비디오 인코더 (20) 는 현재의 PU 의 서브-PU들에 대한 예측 블록들을 조립함으로써 현재의 PU 에 대한 예측 블록들을 결정할 수도 있다.
비디오 인코더 (20) 는 현재의 CU 에 임의의 남아있는 PU들이 존재하는지 여부를 결정할 수도 있다 (208). 현재의 CU 에서 하나 이상의 남아있는 PU들이 존재하면 (208 의 "예"), 비디오 인코더 (20) 는 현재의 CU 의 다른 PU 를 현재의 PU 로 하여 액션들 (200 내지 208) 을 반복할 수도 있다. 이러한 방법으로, 비디오 인코더 (20) 는 현재의 CU 의 각각의 PU 에 대해 액션들 (200 내지 208) 을 반복할 수도 있다.
현재의 CU 의 남아있는 PU들이 없을 때 (208 의 "아니오"), 비디오 인코더 (20) 는 현재의 CU 에 대한 잔차 데이터를 결정할 수도 있다 (210). 일부 예들에서, 잔차 데이터의 각각의 샘플은 현재의 CU 의 코딩 블록에서의 샘플과, 현재의 CU 의 PU 의 예측 블록에서의 대응하는 샘플 사이의 차이를 나타낼 수도 있다. 다른 예들에서, 비디오 인코더 (20) 는 ARP 를 이용하여 현재의 CU 에 대한 잔차 데이터를 결정할 수도 있다. 비디오 인코더 (20) 는 잔차 데이터를 비트스트림으로 시그널링할 수도 있다 (212). 예를 들어, 비디오 인코더 (20) 는 하나 이상의 변환들을 잔차 데이터에 적용하여 계수 블록들을 생성하고, 계수들을 양자화하고, 양자화된 계수들을 나타내는 신택스 엘리먼트들을 엔트로피 인코딩하고, 그리고 엔트로피 인코딩된 신택스 엘리먼트들을 비트스트림에 포함시킴으로써, 잔차 데이터를 비트스트림으로 시그널링할 수도 있다.
도 16b 는 본 개시물의 예에 따른, 인터 예측을 이용하여 CU 를 디코딩하는 비디오 디코더 (30) 의 예시적인 동작을 예시하는 플로우차트이다. 도 16b 의 예에서, 비디오 디코더 (30) 는 현재의 CU 의 현재의 PU 에 대한 병합 후보 리스트를 생성할 수도 있다 (220). 본 개시물의 하나 이상의 예들에 따르면, 비디오 디코더 (30) 는 병합 후보 리스트가 현재의 PU 의 서브-PU들에 대한 모션 정보에 기초하여 시간 뷰간 병합 후보를 포함하도록 병합 후보 리스트를 생성할 수도 있다. 일부 예들에서, 현재의 PU 는 심도 PU 일 수도 있으며 비디오 디코더 (30) 는 병합 후보 리스트가 현재의 심도 PU 의 서브-PU들에 대한 모션 정보에 기초하여 텍스쳐 병합 후보를 포함하도록 병합 후보 리스트를 생성할 수도 있다. 더욱이, 일부 예들에서, 비디오 디코더 (30) 는 도 17 의 동작을 수행하여, 현재의 PU 에 대한 병합 후보 리스트를 생성할 수도 있다.
현재의 PU 에 대한 병합 후보 리스트를 생성한 후, 비디오 디코더 (30) 는 병합 후보 리스트로부터 선택된 병합 후보를 결정할 수도 있다 (222). 일부 예들에서, 비디오 디코더 (30) 는 비트스트림으로 시그널링된 병합 후보 인덱스에 기초하여, 선택된 병합 후보를 결정할 수도 있다. 더욱이, 비디오 디코더 (30) 는 선택된 병합 후보의 모션 파라미터들 (예컨대, 모션 벡터들 및 참조 인덱스들) 을 이용하여, 현재의 PU 에 대한 예측 블록들을 결정할 수도 있다 (224). 예를 들어, 비디오 디코더 (30) 는 선택된 병합 후보의 모션 파라미터들을 이용하여, 현재의 PU 에 대한, 루마 예측 블록, Cb 예측 블록, 및 Cr 예측 블록을 결정할 수도 있다.
선택된 병합 후보가 본 개시물의 예들에서 설명된 바와 같은 서브-PU들을 이용하여 구성된 IPMVC 또는 MVI 후보이면, IPMVC 또는 MVI 후보는 현재의 PU 의 각각의 서브-PU 에 대해 모션 파라미터들의 별개의 세트 (예컨대, 하나 이상의 모션 벡터들의 세트 및 하나 이상의 참조 인덱스들의 세트) 를 규정할 수도 있다. 비디오 디코더 (30) 가 현재의 PU 에 대한 예측 블록을 결정하고 있을 때, 비디오 디코더 (30) 는 현재의 PU 의 서브-PU들의 모션 파라미터들을 이용하여, 서브-PU들에 대한 예측 블록들을 결정할 수도 있다. 비디오 디코더 (30) 는 현재의 PU 의 서브-PU들에 대한 예측 블록들을 조립함으로써 현재의 PU 에 대한 예측 블록들을 결정할 수도 있다.
비디오 디코더 (30) 는 그후 현재의 CU 에 임의의 남아있는 PU들이 존재하는지 여부를 결정할 수도 있다 (226). 현재의 CU 에 하나 이상의 남아있는 PU들이 존재하면 (226 의 "예"), 비디오 디코더 (30) 는 현재의 CU 의 다른 PU 를 현재의 PU 로 하여 액션들 (220 내지 226) 을 반복할 수도 있다. 이러한 방법으로, 비디오 디코더 (30) 는 현재의 CU 의 각각의 PU 에 대해 액션들 (220 내지 226) 을 반복할 수도 있다.
현재의 CU 의 남아있는 PU들이 없을 때 (226 의 "아니오"), 비디오 디코더 (30) 는 현재의 CU 에 대한 잔차 데이터를 결정할 수도 있다 (228). 일부 예들에서, 비디오 디코더 (30) 는 현재 CU 의 PU들의 모션 파라미터들을 결정하는 것과 병렬로 잔차 데이터를 결정할 수도 있다. 일부 예들에서, 비디오 디코더 (30) 는 ARP 를 이용하여 현재의 CU 에 대한 잔차 데이터를 결정할 수도 있다. 게다가, 비디오 디코더 (30) 는 현재 CU 의 PU들에 대한 예측 블록들 및 현재의 CU 에 대한 잔차 데이터에 기초하여 현재의 CU 의 코딩 블록들을 복원할 수도 있다 (230).
도 17 은 본 개시물의 예에 따른, 현재의 뷰 성분에서의 현재의 PU 에 대한 병합 후보 리스트를 구성하는 비디오 코더의 예시적인 동작을 예시하는 플로우차트이다. 도 17 의 예에서, 비디오 코더 (예컨대, 비디오 인코더 (20) 또는 비디오 디코더 (30)) 는 공간 병합 후보들을 결정할 수도 있다 (250). 공간 병합 후보들은 도 3 에서 로케이션들 A0, A1, B0, B1, 및 B2 를 커버하는 PU들의 모션 파라미터들을 규정하는 병합 후보들을 포함할 수도 있다. 일부 예들에서, 비디오 코더는 MV-HEVC 테스트 모델 4 의 하위 조항 G.8.5.2.1.2 에 설명된 동작을 수행함으로써 공간 병합 후보들을 결정할 수도 있다. 더욱이, 도 17 의 예에서, 비디오 코더는 시간 병합 후보를 결정할 수도 있다 (252). 시간 병합 후보는 현재의 뷰 성분과는 상이한 시간 인스턴스에 있는 참조 뷰 성분의 PU 의 모션 파라미터들을 규정할 수도 있다. 일부 예들에서, 비디오 코더는 3D-HEVC 테스트 모델 4 의 하위 조항 H.8.5.2.1.7 에 설명된 동작을 수행함으로써 시간 병합 후보를 결정할 수도 있다.
게다가, 비디오 코더는 IPMVC 및 IDMVC 를 결정할 수도 있다 (254). 본 개시물의 예들에 따르면, 비디오 코더는 서브-PU 레벨 뷰간 모션 예측 기법을 이용하여 IPMVC 를 생성할 수도 있다. 그러므로, IPMVC 는 현재의 PU 의 각각의 서브-PU 의 모션 파라미터들을 규정할 수도 있다. 일부 예들에서, 비디오 코더는 도 19 의 동작을 이용하여, IPMVC 를 결정할 수도 있다. IDMVC 는 현재의 PU 에 대한 디스패리티 벡터를 규정할 수도 있다. 일부 예들에서, 비디오 코더는 뷰간 모션 예측이 현재의 계층에 인에이블되어 있다고 현재의 계층에 대한 뷰간 모션 예측 플래그 (예컨대, iv_mv_pred_flag) 가 나타낼 때 단지 IPMVC 및 IDMVC 만을 결정한다. 현재의 계층은 현재의 뷰 성분이 속하는 계층일 수도 있다.
더욱이, 도 17 의 예에서, 비디오 코더는 VSP 병합 후보를 결정할 수도 있다 (256). 일부 예들에서, 비디오 코더는 3D-HEVC 테스트 모델 4 의 하위 조항 H.8.5.2.1.12 에 설명된 동작을 수행함으로써 VSP 병합 후보를 결정할 수도 있다. 일부 예들에서, 비디오 코더는 뷰 합성 예측이 현재의 계층에 대해 인에이블되어 있다고 현재의 계층에 대한 뷰 합성 예측 플래그가 나타낼 때 단지 VSP 병합 후보만을 결정한다.
게다가, 비디오 코더는 현재의 뷰 성분이 심도 뷰 성분인지 여부를 결정할 수도 있다 (258). 현재의 뷰 성분이 심도 뷰 성분이라고 결정하는 것에 응답하여 (258 의 "예"), 비디오 코더는 텍스쳐 병합 후보를 결정할 수도 있다 (260). 텍스쳐 병합 후보는 현재의 (심도) 뷰 성분에 대응하는 텍스쳐 뷰 성분에서의 하나 이상의 PU들의 모션 정보를 규정할 수도 있다. 본 개시물의 하나 이상의 예들에 따르면, 비디오 코더는 서브-PU 레벨 모션 예측 기법을 이용하여 텍스쳐 병합 후보를 생성할 수도 있다. 그러므로, 텍스쳐 병합 후보는 현재의 PU 의 각각의 서브-PU 의 모션 파라미터들을 규정할 수도 있다. 일부 예들에서, 비디오 코더는 도 19 의 동작을 수행하여 텍스쳐 병합 후보를 결정할 수도 있다. 비디오 코더는 그후 텍스쳐 병합 성분이 이용가능한지 여부를 결정할 수도 있다 (262). 텍스쳐 병합 성분이 이용가능하다고 결정하는 것에 응답하여 (262 의 "예"), 비디오 코더는 텍스쳐 병합 후보를 병합 후보 리스트에 삽입할 수도 있다 (264).
현재의 픽처가 심도 픽처가 아니라고 결정하는 것에 응답하여 (258 의 "아니오"), 텍스쳐 병합 후보가 이용가능하지 않다고 결정하는 것에 응답하여 (262 의 "아니오"), 또는 텍스쳐 병합 후보를 병합 후보 리스트에 삽입한 후, 비디오 코더는 IPMVC 가 이용가능한지 여부를 결정할 수도 있다 (266). IPMVC 는, 비디오 코더가 IPMVC 를 결정하는 것이 불가능하였을 때, 예컨대, 현재의 PU 가 베이스 뷰에 있을 때, 이용불가능할 수도 있다. IPMVC 가 이용가능하다고 결정하는 것에 응답하여 (268 의 "예"), 비디오 코더는 IPMVC 를 병합 후보 리스트에 삽입할 수도 있다 (268).
IPMVC 가 이용불가능하다고 결정하는 것에 응답하여 (266 의 "아니오") 또는 IPMVC 를 병합 후보 리스트에 삽입한 후, 비디오 코더는 로케이션 A1 에 대한 공간 병합 후보 (즉, A1 공간 병합 후보) 가 이용가능한지 여부를 결정할 수도 있다 (270). A1 공간 병합 후보와 같은, 공간 병합 후보는 공간 병합 후보와 연관된 로케이션 (예컨대, 로케이션 A0, A1, B0, B1, 또는 B2) 을 커버하는 PU 가 인트라 예측을 이용하여 코딩되거나 또는 현재의 슬라이스 또는 픽처 경계 밖에 있을 때 이용불가능할 수도 있다. A1 공간 병합 후보가 이용가능하다고 결정하는 것에 응답하여 (270 의 "예"), 비디오 코더는 A1 공간 병합 후보의 모션 벡터들 및 참조 인덱스들이 IPMVC 의 대표 모션 벡터들 및 대표 참조 인덱스들에 매칭하는지 여부를 결정할 수도 있다 (270). A1 공간 병합 후보의 모션 벡터들 및 참조 인덱스들이 IPMVC 의 대표 모션 벡터들 및 대표 참조 인덱스들에 매칭하지 않는다고 결정하는 것에 응답하여 (272 의 "아니오"), 비디오 코더는 A1 공간 병합 후보를 병합 후보 리스트에 삽입할 수도 있다 (274).
위에서 나타낸 바와 같이, 비디오 코더는 서브-PU 레벨 모션 예측 기법을 이용하여 IPMVC 및/또는 텍스쳐 병합 후보를 생성할 수도 있다. 그러므로, IPMVC 및/또는 텍스쳐 병합 후보는 다수의 모션 벡터들 및 다수의 참조 인덱스들을 규정할 수도 있다. 따라서, 비디오 코더는 A1 공간 병합 후보의 모션 벡터들이 IPMVC 및/또는 텍스쳐 병합 후보의 대표 모션 벡터들과 매칭하는지 여부 및 A1 공간 병합 후보의 참조 인덱스들이 IPMVC 및/또는 텍스쳐 병합 후보의 대표 참조 인덱스들과 매칭하는지 여부를 결정할 수도 있다. IPMVC 의 대표 모션 벡터들 및 대표 참조 인덱스들은 본원에서 "PU-레벨 IPMVC" 로 지칭될 수도 있다. 텍스쳐 병합 후보의 대표 모션 벡터들 및 대표 참조 인덱스들은 본원에서 "PU-레벨 모션 파라미터 승계 (MPI) 후보" 로 지칭될 수도 있다. 비디오 코더는 PU-레벨 IPMVC 및 PU-레벨 MPI 후보를 여러 방법들로 결정할 수도 있다. 비디오 코더가 PU-레벨 IPMVC 및 PU-레벨 MPI 후보를 결정할 수도 있는 방법의 예들은 본 개시물의 다른 어딘가에 설명된다.
A1 공간 병합 후보가 이용가능하지 않다고 결정하는 것에 응답하여 (270 의 "아니오"), A1 공간 병합 후보의 모션 벡터들 및 참조 인덱스들이 IPMVC 의 대표 모션 벡터들 및 대표 참조 인덱스들과 매칭한다고 결정하는 것에 응답하여 (272 의 "예"), 또는 A1 공간 병합 후보를 병합 후보 리스트에 삽입한 후, 비디오 코더는 로케이션 B1 에 대한 공간 병합 후보 (즉, B1 공간 병합 후보) 가 이용가능한지 여부를 결정할 수도 있다 (276). B1 공간 병합 후보가 이용가능하다고 결정하는 것에 응답하여 (276 의 "예"), 비디오 코더는 B1 공간 병합 후보의 모션 벡터들 및 참조 인덱스들이 IPMVC 의 대표 모션 벡터들 및 대표 참조 인덱스들과 매칭하는지 여부를 결정할 수도 있다 (278). B1 공간 병합 후보의 모션 벡터들 및 참조 인덱스들이 IPMVC 의 대표 모션 벡터들 및 대표 참조 인덱스들과 매칭하지 않는다고 결정하는 것에 응답하여 (278 의 "아니오"), 비디오 코더는 B1 공간 병합 후보를 병합 후보 리스트에 포함시킬 수도 있다 (280).
B1 공간 모션 벡터가 이용가능하지 않다고 결정하는 것에 응답하여 (276 의 "아니오"), B1 공간 모션 벡터의 모션 벡터들 및 참조 인덱스들이 IPMVC 의 대표 모션 벡터들 및 대표 참조 인덱스들과 매칭한다고 결정하는 것에 응답하여 (278 의 "예"), 또는 B1 공간 병합 후보를 병합 후보 리스트에 삽입한 후, 비디오 코더는 로케이션 B0 에 대한 공간 병합 후보 (즉, B0 공간 병합 후보) 가 이용가능한지 여부를 결정할 수도 있다 (282). B0 공간 병합 후보가 이용가능하다고 결정하는 것에 응답하여 (282 의 "예"), 비디오 코더는 B0 공간 병합 후보를 병합 후보 리스트에 삽입할 수도 있다 (284).
위에서 나타낸 바와 같이, 비디오 코더는 IPMVC 의 대표 모션 벡터들 및 대표 참조 인덱스들을 여러 방법들로 결정할 수도 있다. 일 예에서, 비디오 코더는 현재의 PU 의 서브-PU들 중에서, 중심 서브-PU 를 결정할 수도 있다. 이 예에서, 중심 서브-PU 는 현재의 PU 의 루마 예측 블록의 중심 픽셀에 가장 가까운 서브-PU 이다. 예측 블록의 높이 및/또는 폭이 짝수 개수의 샘플들일 수도 있기 때문에, 예측 블록의 "중심" 픽셀은 예측 블록의 진짜 중심에 인접한 픽셀일 수도 있다. 더욱이, 이 예에서, 비디오 코더는 그후 현재의 PU 에 대한 디스패리티 벡터를 중심 서브-PU 의 루마 예측 블록의 중심의 좌표들에 가산함으로써 중심 서브-PU 에 대한 뷰간 참조 블록을 결정할 수도 있다. 중심 서브-PU 에 대한 뷰간 참조 블록이 모션 보상된 예측을 이용하여 코딩되면 (즉, 중심 서브-PU 에 대한 뷰간 참조 블록은 하나 이상의 모션 벡터들 및 참조 인덱스들을 갖는다), 비디오 코더는 PU-레벨 IPMVC 의 모션 정보를 중심 서브-PU 에 대한 뷰간 참조 블록의 모션 정보로 설정할 수도 있다. 따라서, 중심 서브-PU 에 의해 제공된 바와 같은, PU-레벨 IPMVC 는 이 서브-PU 후보를 공간 이웃하는 후보 A1 및 B1 과 같은, 다른 후보들로 프루닝하는데 사용될 수도 있다. 예를 들어, 종래의 후보 (예컨대, A1 공간 병합 후보 또는 B1 공간 병합 후보들) 이 중심 서브-PU 에 의해 생성된 후보와 동일하면, 다른 종래의 후보가 병합 후보 리스트에 추가되지 않는다.
B0 공간 병합 후보가 이용가능하지 않다고 결정하는 것에 응답하여 (282 의 "아니오") 또는 B0 공간 병합 후보를 병합 후보 리스트에 삽입한 후, 비디오 코더는 IDMVC 가 이용가능하고 IDMVC 의 모션 벡터 및 참조 인덱스가 A1 공간 병합 후보 및 B1 공간 병합 후보의 모션 벡터들 및 참조 인덱스들과 상이한지 여부를 결정할 수도 있다 (286). IDMVC 가 이용가능하고 IDMVC 의 모션 벡터 및 참조 인덱스가 A1 공간 병합 후보 및 B1 공간 병합 후보의 모션 벡터들 및 참조 인덱스들과 상이하다고 결정하는 것에 응답하여 (286 의 "예"), 비디오 코더는 IDMVC 를 병합 후보 리스트에 삽입할 수도 있다 (288).
IDMVC 가 이용가능하지 않다고 또는 IDMVC 의 모션 벡터 및 참조 인덱스가 A1 공간 병합 후보 또는 B1 공간 병합 후보의 모션 벡터들 및 참조 인덱스들과 상이하지 않다고 결정하는 것에 응답하여 (286 의 "아니오") 또는 IDMVC 를 병합 후보 리스트에 삽입한 후, 비디오 코더는 (도 17 에 "A" 로서 표시된) 도 18 에 나타낸 참조 픽처 리스트 구성 동작의 부분을 수행할 수도 있다.
도 18 은 본 개시물의 예에 따른, 도 17 의 참조 픽처 리스트 구성 동작의 연속부분을 예시하는 플로우차트이다. 도 18 의 예에서, 비디오 코더는 VSP 병합 후보가 이용가능한지 여부를 결정할 수도 있다 (300). VSP 병합 후보가 이용가능하다고 결정하는 것에 응답하여 (300 의 "예"), 비디오 코더는 VSP 병합 후보를 병합 후보 리스트에 삽입할 수도 있다 (302).
VSP 병합 후보가 이용가능하지 않다고 결정하는 것에 응답하여 (300 의 "아니오") 또는 VSP 병합 후보를 병합 후보 리스트에 삽입한 후, 비디오 코더는 로케이션 A0 에 대한 공간 병합 후보 (즉, A0 공간 병합 후보) 가 이용가능한지 여부를 결정할 수도 있다 (304). A0 공간 병합 후보가 이용가능하다고 결정하는 것에 응답하여 (304 의 "예"), 비디오 코더는 A0 공간 병합 후보를 병합 후보 리스트에 삽입할 수도 있다 (306).
더욱이, A0 공간 병합 후보가 이용가능하지 않다고 결정하는 것에 응답하여 (306 의 "아니오"), 또는 A0 공간 병합 후보를 병합 후보 리스트에 삽입한 후, 비디오 코더는 로케이션 B2 에 대한 공간 병합 후보 (즉, B2 공간 병합 후보) 가 이용가능한지 여부를 결정할 수도 있다 (308). B2 공간 병합 후보가 이용가능하다고 결정하는 것에 응답하여 (308 의 "예"), 비디오 코더는 B2 공간 병합 후보를 병합 후보 리스트에 삽입할 수도 있다 (310).
B2 공간 병합 후보가 이용가능하지 않다고 결정하는 것에 응답하여 (308 의 "아니오") 또는 B2 공간 병합 후보를 병합 후보 리스트에 삽입한 후, 비디오 코더는 시간 병합 후보가 이용가능한지 여부를 결정할 수도 있다 (312). 시간 병합 후보가 이용가능하다고 결정하는 것에 응답하여 (312 의 "예"), 비디오 코더는 시간 병합 후보를 병합 후보 리스트에 삽입할 수도 있다 (314).
더욱이, 시간 병합 후보가 이용가능하지 않다고 결정하는 것에 응답하여 (312 의 "아니오") 또는 시간 병합 후보를 병합 후보 리스트에 삽입한 후, 비디오 코더는 현재의 슬라이스가 B 슬라이스인지 여부를 결정할 수도 있다 (316). 현재의 슬라이스가 B 슬라이스라고 결정하는 것에 응답하여 (316 의 "예"), 비디오 코더는 결합된 양-예측 병합 후보들을 유도할 수도 있다 (318). 일부 예들에서, 비디오 코더는 3D-HEVC 테스트 모델 4 의 하위 조항 H.8.5.2.1.3 에 설명된 동작을 수행함으로써 결합된 양-예측 병합 후보들을 유도할 수도 있다.
현재의 슬라이스가 B 슬라이스가 아니고 결정하는 것에 응답하여 (316 의 "아니오") 또는 결합된 양-예측 병합 후보들을 유도한 후, 비디오 코더는 제로 모션 벡터 병합 후보들을 유도할 수도 있다 (320). 제로 모션 벡터 병합 후보들은 0 과 동일한 수평 및 수직 성분들을 갖는 모션 벡터들을 규정할 수도 있다. 일부 예들에서, 비디오 코더는 3D-HEVC 테스트 모델 4 의 하위 조항 8.5.2.1.4 에 설명된 동작을 수행함으로써 제로 모션 벡터 후보들을 유도할 수도 있다.
도 19 는 본 개시물의 예에 따른, IPMVC 또는 텍스쳐 병합 후보를 결정하는 비디오 코더의 동작을 예시하는 플로우차트이다. 도 19 의 예에서, 비디오 코더 (예컨대, 비디오 인코더 (20) 또는 비디오 디코더 (30)) 는 현재의 PU 를 복수의 서브-PU들로 분할할 수도 있다 (348). 상이한 예들에서, 서브-PU들의 각각의 블록 사이즈는 4x4, 8x8, 16x16, 또는 다른 사이즈일 수도 있다.
더욱이, 도 19 의 예에서, 비디오 코더는 디폴트 모션 벡터 및 디폴트 참조 인덱스를 설정할 수도 있다 (350). 상이한 예들에서, 비디오 코더는 디폴트 모션 벡터 및 디폴트 참조 인덱스를 여러 방법들로 설정할 수도 있다. 일부 예들에서, 디폴트 모션 파라미터들 (즉, 디폴트 모션 벡터들 및 디폴트 참조 인덱스들) 은 PU-레벨 모션 벡터 후보와 동일하다. 더욱이, 일부 예들에서, 비디오 코더는 비디오 코더가 IPMVC 또는 텍스쳐 병합 후보를 결정하고 있는지 여부에 따라서 디폴트 모션 정보를 상이하게 결정할 수도 있다.
비디오 코더가 IPMVC 를 결정하고 있는 일부 예들에서, 비디오 코더는 3D-HEVC 테스트 모델 4 에서 정의된 바와 같이, 현재의 PU 의 대응하는 영역의 중심 위치로부터 PU-레벨 IPMVC 를 유도할 수도 있다. 더욱이, 이 예에서, 비디오 코더는 디폴트 모션 벡터들 및 참조 인덱스들을 PU-레벨 IPMVC 와 동일하게 설정할 수도 있다. 예를 들어, 비디오 코더는 디폴트 모션 벡터들 및 디폴트 참조 인덱스들을 PU-레벨 IPMVC 로 설정할 수도 있다. 이 경우, 비디오 코더는 현재의 PU 에 대한 대응하는 영역의 중심 위치로부터 PU-레벨 IPMVC 를 유도할 수도 있다.
비디오 코더가 IPMVC 를 결정하고 있는 다른 예에서, 비디오 코더는 디폴트 모션 파라미터들을, 참조 뷰에서의 참조 픽처의 좌표들 (xRef, yRef) 에서의 픽셀을 커버하는 뷰간 참조 블록에 의해 포함된 모션 파라미터들로 설정할 수도 있다. 비디오 코더는 다음과 같이 좌표들 (xRef, yRef) 을 결정할 수도 있다:
Figure 112016011699399-pct00027

Figure 112016011699399-pct00028

상기 방정식들에서, (xP, yP) 는 현재의 PU 의 좌측 상부 샘플의 좌표들을 나타내고, mvDisp는 디스패리티 벡터이고, nPSWxnPSH 는 현재의 PU 의 사이즈이고, PicWidthInSamplesL 및 PicHeightInSamplesL 은 (현재의 뷰와 동일한) 참조 뷰에서의 픽처의 해상도를 정의한다. 상기 방정식들에서, 이중 꺽쇠 괄호들에서의 이탤릭체 텍스트는 3D-HEVC 테스트 모델 4 의 섹션 H.8.5.2.1.10 에서의 방정식들 H-124 및 H-125 에서 삭제된 텍스트를 나타낸다.
위에서 논의한 바와 같이, 3D-HEVC 테스트 모델 4 의 섹션 H.8.5.2.1.10 은 시간 뷰간 모션 벡터 후보에 대한 유도 프로세스를 기술한다. 더욱이, 위에서 논의한 바와 같이, 방정식들 H-124 및 H-125 가 참조 픽처에서의 참조 블록의 루마 로케이션을 결정하기 위해 3D-HEVC 테스트 모델 4 의 섹션 H.8.5.2.1.10 에서 사용된다. 3D-HEVC 테스트 모델 4 에서의 방정식들 H-124 및 H-125 와는 대조적으로, 이 예의 방정식들은 nPSW 및 nPSH 로부터 1 을 감산하지 않는다. 그 결과, xRef 및 yRef 는 현재의 PU 의 예측 블록의 진짜 중심 바로 아래 및 우측에 있는 픽셀의 좌표들을 나타낸다. 샘플 값들에서의 현재의 PU 의 예측 블록의 폭 및 높이가 짝수 개수들일 수도 있기 때문에, 현재의 PU 의 예측 블록의 진짜 중심에서의 샘플 값이 존재하지 않을 수도 있다. xRef 및 yRef 가 현재의 PU 의 예측 블록의 진짜 중심의 바로 위 그리고 좌측에 있는 픽셀의 좌표들을 나타낼 때보다, xRef 및 yRef 가 현재의 PU 의 예측 블록의 진짜 중심의 바로 아래 및 우측에 있는 픽셀의 좌표들을 나타낼 때, 코딩 이득이 발생할 수도 있다. 다른 예들에서, 비디오 코더는 상이한 픽셀들 (xRef, yRef) 을 커버하는 다른 블록들을 이용하여, 디폴트 모션 벡터들 및 참조 인덱스들을 유도할 수도 있다.
비디오 코더가 IPMVC 를 결정하고 있을 때 비디오 코더가 디폴트 모션 파라미터들을 설정할 수도 있는 다른 예에서, 현재의 PU 의 서브-PU들의 모션 파라미터들을 설정하기 전에, 비디오 코더는 현재의 PU 의 모든 서브-PU들 중에서, 현재의 PU 의 루마 예측 블록의 중심 픽셀에 가장 가까운 서브-PU 를 선택할 수도 있다. 비디오 코더는 그후 선택된 서브-PU 에 대해, 참조 뷰 성분에서의 참조 블록을 결정할 수도 있다. 다시 말해서, 비디오 코더는 선택된 서브-PU 에 대한 뷰간 참조 블록을 결정할 수도 있다. 선택된 서브-PU 에 대한 뷰간 참조 블록이 모션 보상된 예측을 이용하여 코딩될 때, 비디오 코더는 선택된 서브-PU 에 대한 뷰간 참조 블록을 이용하여, 디폴트 모션 벡터들 및 참조 인덱스들을 유도할 수도 있다. 다시 말해서, 비디오 코더는 디폴트 모션 파라미터들을, 현재의 PU 의 루마 예측 블록의 중심 픽셀에 가장 가까운 참조 블록의 서브-PU 의 모션 파라미터들로 설정할 수도 있다.
이러한 방법으로, 비디오 코더는 참조 픽처에서의 참조 블록을 결정할 수도 있으며, 참조 블록은 현재의 PU 의 예측 블록과 동일한 사이즈를 갖는다. 게다가, 비디오 코더는 참조 블록의 서브-PU들 중에서, 참조 블록의 중심 픽셀에 가장 가까운 서브-PU 를 결정할 수도 있다. 비디오 코더는 참조 블록의 결정된 서브-PU 의 모션 파라미터들로부터 디폴트 모션 파라미터들을 유도할 수도 있다.
비디오 코더는 참조 블록의 중심 픽셀에 가장 가까운 서브-PU 를 여러 방법들로 결정할 수도 있다. 예를 들어, 서브-PU 사이즈가 2Ux2U 라고 가정하면, 비디오 코더는 현재의 PU 의 루마 예측 블록의 좌측 상부 샘플에 대해 다음 좌표들을 갖는 서브-PU 를 선택할 수도 있다: (((nPSW>>(u+1))-1)<<u, (((nPSH>>(u+1))-1)<<u). 달리 말하면, 참조 블록의 중심 픽셀에 가장 가까운 서브-PU 는 참조 블록의 좌측 상부 샘플에 대해 다음 좌표들을 갖는 픽셀을 포함한다: (((nPSW>>(u+1))-1)<<u, (((nPSH>>(u+1))-1)<<u). 대안적으로, 비디오 코더는 다음 좌표들, 즉 현재의 PU 의 루마 예측 블록의 좌측 상부 샘플에 대한 상대적인 좌표들을 갖는 서브-PU 를 선택할 수도 있다: ((nPSW>>(u+1))<<u, (nPSH>>(u+1))<<u). 달리 말하면, 참조 블록의 중심 픽셀에 가장 가까운 서브-PU 는 참조 블록의 좌측 상부 샘플에 대해 다음 좌표들을 갖는 픽셀을 포함한다: ((nPSW>>(u+1))<<u, (nPSH>>(u+1))<<u). 이들 방정식들에서, nPSW 및 nPSH 는 각각 현재의 PU 의 루마 예측 블록의 폭 및 높이이다. 따라서, 일 예에서, 비디오 코더는 현재의 PU 의 복수의 서브-PU들 중에서, 현재의 PU 의 루마 예측 블록의 중심 픽셀에 가장 가까운 서브-PU 를 결정할 수도 있다. 이 예에서, 비디오 코더는 결정된 서브-PU 에 대한 뷰간 참조 블록으로부터 디폴트 모션 파라미터들을 유도할 수도 있다.
비디오 코더가 IPMVC 를 결정하고 있는 다른 예들에서, 디폴트 모션 벡터는 제로 모션 벡터이다. 더욱이, 일부 예들에서, 디폴트 참조 인덱스는 현재의 참조 픽처 리스트에서의 제 1 가용 시간 참조 픽처 (즉, 현재의 픽처와는 상이한 시간 인스턴스에서의 참조 픽처) 와 동일하거나 또는 디폴트 참조 인덱스는 0 과 동일할 수도 있다. 다시 말해서, 디폴트 모션 파라미터들은 디폴트 모션 벡터 및 디폴트 참조 인덱스를 포함할 수도 있다. 비디오 코더는 디폴트 모션 벡터를 제로 모션 벡터로 설정할 수도 있으며 디폴트 참조 인덱스를 0 또는 현재의 참조 픽처 리스트에서의 제 1 가용 시간 참조 픽처로 설정할 수도 있다.
예를 들어, 현재의 슬라이스가 P 슬라이스이면, 디폴트 참조 인덱스는 현재의 픽처의 RefPicList0 에서의 제 1 가용 시간 참조 픽처 (즉, 최저 참조 인덱스를 가지는 현재의 픽처의 RefPicList0 에서의 시간 참조 픽처) 를 나타낼 수도 있다. 더욱이, 현재의 슬라이스가 B 슬라이스이고 RefPicList0 으로부터의 인터 예측이 인에이블되지만, 현재의 픽처의 RefPicList1 로부터의 인터 예측이 인에이블되지 않으면, 디폴트 참조 인덱스는 현재의 픽처의 RefPicList0 에서의 제 1 가용 시간 참조 픽처를 나타낼 수도 있다. 현재의 슬라이스가 B 슬라이스이고 현재의 픽처의 RefPicList1 로부터의 인터 예측이 인에이블되지만, 현재의 픽처의 RefPicList0 으로부터의 인터 예측이 인에이블되지 않으면, 디폴트 참조 인덱스는 현재의 픽처의 RefPicList1 에서의 제 1 가용 시간 참조 픽처 (즉, 최저 참조 인덱스를 가지는 현재의 픽처의 RefPicList1 에서의 시간 참조 픽처) 를 나타낼 수도 있다. 현재의 슬라이스가 B 슬라이스이고 현재의 픽처의 RefPicList0 및 현재의 픽처의 RefPicList1 로부터의 인터 예측이 인에이블되면, 디폴트 RefPicList0 참조 인덱스는 현재의 픽처의 RefPicList0 에서의 제 1 가용 시간 참조 픽처를 나타낼 수도 있으며, 디폴트 RefPicList1 참조 인덱스는 현재의 픽처의 RefPicList1 에서의 제 1 가용 시간 참조 픽처를 나타낼 수도 있다.
더욱이, 비디오 코더가 IPMVC를 결정하고 있을 때 디폴트 모션 파라미터들을 결정하기 위해 위에서 제공된 일부 예들에서, 비디오 코더는 디폴트 모션 파라미터들을, 현재의 PU 의 루마 예측 블록의 중심 픽셀에 가장 가까운 서브-PU 의 모션 파라미터들로 설정할 수도 있다. 그러나, 이들 및 다른 예들에서, 디폴트 모션 파라미터들은 이용불가능하게 유지할 수도 있다. 예를 들어, 현재의 PU 의 루마 예측 블록의 중심 픽셀에 가장 가까운 서브-PU 에 대응하는 뷰간 참조 블록이 인트라 예측되면, 디폴트 모션 파라미터들은 이용불가능하게 유지할 수도 있다. 그러므로, 일부 예들에서, 디폴트 모션 파라미터들이 이용불가능하고 제 1 서브-PU 에 대한 뷰간 참조 블록이 모션 보상된 예측을 이용하여 코딩될 때 (즉, 제 1 서브-PU 에 대한 뷰간 참조 블록은 가용 모션 정보를 갖는다), 비디오 코더는 디폴트 모션 파라미터들을 제 1 서브-PU 의 모션 파라미터들로 설정할 수도 있다. 이 예에서, 제 1 서브-PU 는 현재의 PU 의 서브-PU들의 래스터 스캔 순서에서 현재의 PU 의 제 1 서브-PU 일 수도 있다. 따라서, 디폴트 모션 파라미터들을 결정할 때, 비디오 코더는 복수의 서브-PU들의 래스터 스캔 순서에서 제 1 서브-PU 가 가용 모션 파라미터들을 갖는다고 결정하는 것에 응답하여, 디폴트 모션 파라미터들을 복수의 서브-PU들의 래스터 스캔 순서에서 제 1 서브-PU 의 가용 모션 파라미터들로 설정할 수도 있다.
그렇지 않고, 디폴트 모션 정보가 이용불가능할 때 (예컨대, 제 1 서브-PU 에 대한 뷰간 참조 블록의 모션 파라미터들이 이용불가능할 때), 현재의 서브-PU 로우의 제 1 서브-PU 가 가용 모션 파라미터들을 가지면, 비디오 코더는 디폴트 모션 정보를 현재의 서브-PU 로우의 제 1 서브-PU 의 모션 파라미터들로 설정할 수도 있다. 디폴트 모션 파라미터들이 여전히 이용불가능할 때 (예컨대, 현재의 서브-PU 로우의 제 1 서브-PU 에 대한 뷰간 참조 블록이 이용불가능할 때), 비디오 코더는 디폴트 모션 벡터를 제로 모션 벡터로 설정할 수도 있으며 디폴트 참조 인덱스를 현재의 참조 픽처 리스트에서의 제 1 가용 시간 참조 픽처와 동일하게 설정할 수도 있다. 이러한 방법으로, 비디오 코더가 디폴트 모션 파라미터들을 결정하고 있을 때, 비디오 코더는 개개의 서브-PU 를 포함하는 서브-PU들의 로우의 제 1 서브-PU 가 가용 모션 파라미터들을 갖는다고 결정하는 것에 응답하여, 디폴트 모션 파라미터들을, 개개의 서브-PU 를 포함하는 서브-PU들의 로우의 제 1 서브-PU 의 가용 모션 파라미터들로 설정할 수도 있다.
더욱이, 도 17 의 예에 대해 위에서 설명한 바와 같이, 비디오 코더는 서브-PU 레벨 모션 예측 기법을 이용하여 텍스쳐 병합 후보를 결정할 수도 있다. 이러한 예들에서, 현재의 PU 는 본원에서 "현재의 심도 PU" 로 지칭될 수도 있다. 비디오 코더는 도 19 의 동작을 수행하여 텍스쳐 병합 후보를 결정할 수도 있다. 그러므로, 비디오 코더가 텍스쳐 병합 후보를 결정하고 있을 때, 비디오 코더는 현재의 심도 PU 를 여러 서브-PU들로 분할할 수도 있으며 각각의 서브-PU 는 모션 보상에 대한 동일 위치에 배치된 텍스쳐 블록의 모션 정보를 이용한다. 더욱이, 비디오 코더가 텍스쳐 병합 후보를 결정하고 있을 때, 서브-PU 의 대응하는 텍스쳐 블록이 인트라 코딩되거나 또는 대응하는 텍스쳐 블록의 참조 픽처와 동일한 액세스 유닛에서의 픽처가 현재의 심도 PU 의 참조 픽처 리스트에 포함되어 있지 않으면, 비디오 코더는 디폴트 모션 벡터들 및 참조 인덱스들을 서브-PU 에 할당할 수도 있다. 따라서, 일반적으로, 비디오 코더는, 동일 위치에 배치된 텍스쳐 블록이 인트라 코딩되지 않고 그리고 동일 위치에 배치된 텍스쳐 블록에 의해 사용되는 참조 픽처가 현재의 심도 픽처의 참조 픽처 리스트에 있을 때, 동일 위치에 배치된 텍스쳐 블록이 가용 모션 정보를 갖는다고 결정할 수도 있다. 반대로, 동일 위치에 배치된 텍스쳐 블록의 모션 파라미터들은, 동일 위치에 배치된 텍스쳐 블록이 인트라 코딩되거나 또는 동일 위치에 배치된 텍스쳐 블록이 현재의 심도 픽처의 참조 픽처 리스트에 있지 않은 참조 픽처를 이용할 때, 이용불가능할 수도 있다.
위에서 나타낸 바와 같이, 비디오 코더는 비디오 코더가 IPMVC 또는 텍스쳐 병합 후보를 결정하고 있는지 여부에 의존하여, 디폴트 모션 정보를 상이하게 결정할 수도 있다. 예를 들어, 비디오 코더가 텍스쳐 병합 후보를 결정하고 있을 때, 비디오 코더는 다음 예들 또는 다른 예들 중 하나에 따라서 디폴트 모션 벡터들 및 디폴트 참조 인덱스들을 결정할 수도 있다. 일 예에서, 동일 위치에 배치된 텍스쳐 블록은 현재의 심도 PU 와 동일 위치에 배치될 수도 있으며 현재의 심도 PU 와 동일한 사이즈를 가질 수도 있다. 이 예에서, 비디오 코더는 디폴트 모션 벡터들 및 디폴트 참조 인덱스들을 동일 위치에 배치된 텍스쳐 블록의 중심 픽셀을 커버하는 블록의 모션 정보로 설정한다.
따라서, 현재의 픽처가 심도 뷰 성분이고 그리고 참조 픽처가 현재의 픽처와 동일한 뷰 및 액세스 유닛에 있는 텍스쳐 뷰 성분인 일부 예들에서, 비디오 코더는 디폴트 모션 파라미터들을, 참조 픽처에 있고 현재의 PU 와 동일 위치에 배치되고 그리고 현재의 PU 와 동일한 사이즈를 갖는 참조 블록의 픽셀을 커버하는 블록과 연관된 모션 파라미터들로 설정할 수도 있다. 이러한 예들에서, 픽셀은 참조 블록의 중심 픽셀 또는 참조 블록의 다른 픽셀일 수도 있다.
비디오 코더가 텍스쳐 병합 후보를 결정하고 있는 다른 예에서, 동일 위치에 배치된 텍스쳐 블록은 현재의 심도 PU 와 동일한 사이즈를 가질 수도 있다. 이 예에서, 비디오 코더는 디폴트 모션 벡터들 및 디폴트 참조 인덱스들을, 동일 위치에 배치된 텍스쳐 블록 내 임의의 주어진 픽셀을 커버하는 블록 (예컨대, PU) 의 모션 정보로 설정할 수도 있다.
비디오 코더가 텍스쳐 병합 후보를 결정하고 있는 다른 예에서, 비디오 코더는 현재의 심도 PU 의 중심 서브-PU 를 먼저 선택할 수도 있다. 현재의 심도 PU 의 모든 서브-PU들 중에서, 중심 서브-PU 는 현재의 심도 PU 의 예측 블록의 중심 픽셀에 가장 가깝게 로케이트될 수도 있다 (또는, 그 픽셀을 포함할 수도 있다). 비디오 코더는 그후 중심 서브-PU 와 동일 위치에 배치된 텍스쳐 블록을 이용하여 디폴트 모션 벡터들 및 참조 인덱스들을 유도할 수도 있다. 서브-PU 사이즈가 2Ux2U 라고 가정하면, 비디오 코더는 중심 서브-PU 가 현재의 심도 PU 의 예측 블록의 좌측 상부 샘플 (따라서, 동일 위치에 배치된 텍스쳐 블록의 좌측 상부 샘플) 에 대해 다음 좌표들을 갖는 서브-PU 라고 결정할 수도 있다: (((nPSW>>(u+1))-1)<<u, (((nPSH>>(u+1))-1)<<u). 대안적으로, 비디오 코더는 중심 서브-PU 의 상대적인 좌표들이 다음과 같다고 결정할 수도 있다: ((nPSW>>(u+1))<<u, (nPSH>>(u+1))<<u). 이들 방정식들에서, nPSW 및 nPSH 는 각각 현재의 심도 PU 의 예측 블록의 폭 및 높이이다.
따라서, 일 예에서, 비디오 코더는 현재의 PU 의 복수의 서브-PU들 중에서, 현재의 PU 의 예측 블록의 중심에 가장 가까운 서브-PU 를 결정할 수도 있다. 이 예에서, 비디오 코더는 결정된 서브-PU 에 대한 동일 위치에 배치된 텍스쳐 블록으로부터 디폴트 모션 파라미터들을 유도할 수도 있다.
비디오 코더가 텍스쳐 병합 후보를 결정하고 있고 디폴트 모션 정보가 이용불가능한 일부 예들에서 (예컨대, 중심 서브-PU 에 대한 동일 위치에 배치된 텍스쳐 블록의 모션 파라미터들이 이용불가능할 때), 비디오 코더는 현재의 심도 PU 의 제 1 서브-PU 에 대한 동일 위치에 배치된 텍스쳐 블록이 가용 모션 정보를 갖는지 여부를 결정할 수도 있다. 현재의 심도 PU 의 제 1 서브-PU 는 현재의 심도 PU 의 서브-PU들의 래스터 스캔 순서에서 현재의 심도 PU 의 제 1 서브-PU 일 수도 있다. 현재의 심도 PU 의 제 1 서브-PU 에 대한 동일 위치에 배치된 텍스쳐 블록의 모션 파라미터들이 이용가능하면, 비디오 코더는 디폴트 모션 파라미터들을, 현재의 심도 PU 의 제 1 서브-PU 의 모션 파라미터들로 설정할 수도 있다.
더욱이, 비디오 코더가 텍스쳐 병합 후보를 결정하고 있는 일부 예들에서, 디폴트 모션 정보가 이용불가능할 때 (예컨대, 제 1 서브-PU 에 대한 동일 위치에 배치된 텍스쳐 블록의 모션 파라미터들이 이용불가능할 때), 현재의 서브-PU 로우의 제 1 서브-PU 가 가용 모션 정보를 가지면, 비디오 코더는 디폴트 모션 정보를 현재의 서브-PU 로우의 제 1 서브-PU 의 모션 정보로 설정한다. 더욱이, 디폴트 모션 정보가 이용불가능할 때 (예컨대, 현재의 서브-PU 로우의 제 1 서브-PU 의 모션 정보가 이용불가능할 때), 디폴트 모션 벡터는 제로 모션 벡터이고, 디폴트 참조 인덱스는 현재의 참조 픽처 리스트에서의 제 1 가용 시간 참조 픽처 또는 0 과 동일하다.
비디오 코더가 텍스쳐 병합 후보를 결정하고 있는 일부 예들에서, 디폴트 모션 벡터는 제로 모션 벡터이고, 디폴트 참조 인덱스는 현재의 참조 픽처 리스트에서의 제 1 가용 시간 참조 픽처 또는 0 과 동일하다.
비디오 코더가 IPMVC 또는 텍스쳐 병합 후보를 결정하고 있는지 여부에 관계없이, 비디오 코더는 전체 현재의 PU 에 대한 디폴트 모션 정보를 설정할 수도 있다. 따라서, 비디오 코더는 (이 PU 를 포함하는 픽처가 TMVP 동안 동일 위치에 배치된 픽처로서 사용될 때) 공간 이웃하는 블록들, 시간 이웃하는 블록들을 예측하거나, 또는 디블록킹하기 위해 현재의 PU 에서의 더 많은 모션 벡터들을 저장할 필요가 없다.
더욱이, 비디오 코더는 PU-레벨 모션 벡터 후보를 결정할 수도 있다 (352). 예를 들어, 비디오 코더는 비디오 코더가 IPMVC 또는 텍스쳐 병합 후보를 결정하고 있는지 여부에 의존하여, PU-레벨 IPMVC 또는 PU-레벨 모션 파라미터 승계 (MPI) 후보 (즉, PU-레벨 텍스쳐 병합 후보) 를 결정할 수도 있다. 비디오 코더는 PU-레벨 모션 벡터 후보에 기초하여, 하나 이상의 공간 병합 후보들을 후보 리스트에 포함시킬지 여부를 결정할 수도 있다. 일부 예들에서, PU-레벨 모션 벡터 후보는 디폴트 모션 파라미터들과 동일한 모션 파라미터들을 규정한다.
비디오 코더가 IPMVC 를 결정하고 있는 일부 예들에서, 비디오 코더는 3D-HEVC 테스트 모델 4 에 정의된 바와 같이, 현재의 PU 의 대응하는 영역의 중심 위치로부터 PU-레벨 IPMVC 를 유도할 수도 있다. 도 17 의 예에서 설명된 바와 같이, 비디오 코더는 IPMVC 의 대표 모션 벡터들 및 대표 참조 인덱스들 (즉, PU-레벨 IPMVC) 를 이용하여, A1 공간 병합 후보 및 B1 공간 병합 후보를 병합 후보 리스트에 포함시킬지 여부를 결정할 수도 있다.
비디오 코더가 IPMVC 를 결정하고 있는 다른 예에서, 비디오 코더는 현재의 PU 의 디스패리티 벡터에 기초하여, 뷰간 참조 픽처에서의 참조 블록을 결정할 수도 있다. 비디오 코더는 그후 참조 블록의 중심 픽셀을 커버하는 서브-PU (즉, 참조 블록의 중심 픽셀에 가장 가까운 서브-PU) 를 결정할 수도 있다. 이 예에서, 비디오 코더는 PU-레벨 IPMVC 가 참조 블록의 결정된 서브-PU 의 모션 파라미터들을 규정한다고 결정할 수도 있다. 본 개시물의 다른 어딘가에 나타낸 바와 같이, 비디오 코더는 참조 블록의 중심 픽셀에 가장 가까운 서브-PU 를 여러 방법들로 결정할 수도 있다. 예를 들어, 서브-PU 사이즈가 2Ux2U 라고 가정하면, 참조 블록의 중심 픽셀에 가장 가까운 서브-PU 는 참조 블록의 좌측 상부 샘플에 대해 다음 좌표들을 갖는 픽셀을 포함한다: (((nPSW>>(u+1))-1)<<u, (((nPSH>>(u+1))-1)<<u). 대안적으로, 참조 블록의 중심 픽셀에 가장 가까운 서브-PU 는 참조 블록의 좌측 상부 샘플에 대해 다음 좌표들을 갖는 픽셀을 포함한다: ((nPSW>>(u+1))<<u, (nPSH>>(u+1))<<u). 이들 방정식들에서, nPSW 및 nPSH 는 각각 현재의 PU 의 루마 예측 블록의 폭 및 높이이다. 이 예에서, 비디오 코더는 결정된 서브-PU 의 모션 파라미터들을 PU-레벨 IPMVC 로서 이용할 수도 있다. PU-레벨 IPMVC 는 IPMVC 의 대표 모션 벡터들 및 대표 참조 인덱스들을 규정할 수도 있다. 이러한 방법으로, 비디오 코더는 참조 블록의 중심 픽셀에 가장 가까운 서브-PU 의 모션 파라미터들을 이용하여 PU-레벨 IPMVC 를 결정할 수도 있다. 다시 말해서, 비디오 코더는 현재의 PU 의 대응하는 영역의 중심 위치로부터 PU-레벨 IPMVC 를 유도하고, PU-레벨 IPMVC 에 기초하여, 공간 병합 후보를 후보 리스트에 포함시킬지 여부를 결정할 수도 있다. 서브-PU 로부터 사용된 모션 파라미터들은 비디오 코더가 IPMVC 를 생성하는데 사용한 모션 파라미터들과 동일할 수도 있다.
비디오 코더가 텍스쳐 병합 후보를 결정하고 있는 일부 예들에서, 디폴트 모션 파라미터들에 대한 중심 서브-PU 로부터 사용된 모션 정보는 PU-레벨 모션 파라미터 승계 (MPI) 후보를 생성하는데 사용된 모션 정보와 동일할 수도 있다. 비디오 코더는 PU-레벨 MPI 후보에 기초하여, 특정의 공간 병합 후보들을 병합 후보 리스트에 포함시킬지 여부를 결정할 수도 있다. 예를 들어, A1 공간 병합 후보 및 PU-레벨 MPI 후보가 동일한 모션 벡터들 및 동일한 참조 인덱스들을 가지면, 비디오 코더는 A1 공간 병합 후보를 병합 후보 리스트에 삽입하지 않는다. 이와 유사하게, B1 공간 병합 후보 및 A1 공간 병합 후보 또는 PU-레벨 MPI 후보가 동일한 모션 벡터들 및 동일한 참조 인덱스들을 가지면, 비디오 코더는 B1 을 병합 후보 리스트에 삽입하지 않는다.
도 19 의 예에서, 비디오 코더는 현재의 PU 의 현재의 서브-PU 에 대해, 참조 픽처에서의 참조 샘플 로케이션을 결정할 수도 있다 (354). 참조 픽처는 현재의 PU 를 포함하는 픽처 (즉, 현재의 픽처) 와 상이한 뷰에 있을 수도 있다. 일부 예들에서, 비디오 코더는 현재의 PU 에 대한 디스패리티 벡터를 현재의 서브-PU 의 중심 픽셀의 좌표들에 가산함으로써 참조 로케이션을 결정할 수도 있다. 다른 예들에서, 예컨대 현재의 PU 가 심도 PU 일 때, 참조 샘플 로케이션은 현재의 심도 PU 의 예측 블록의 샘플과 동일 위치에 배치될 수도 있다.
게다가, 비디오 코더는 현재의 서브-PU 에 대한 참조 블록을 결정할 수도 있다 (356). 참조 블록은 참조 픽처의 PU 일 수도 있으며 결정된 참조 샘플 로케이션을 커버할 수도 있다. 다음으로, 비디오 코더는 참조 블록이 모션 보상된 예측을 이용하여 코딩되는지 여부를 결정할 수도 있다 (358). 예를 들어, 참조 블록이 인트라 예측을 이용하여 코딩되면, 비디오 코더는 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않는다고 결정할 수도 있다. 참조 블록이 모션 보상된 예측을 이용하여 코딩되면, 참조 블록은 하나 이상의 모션 벡터들을 갖는다.
참조 블록이 모션 보상된 예측을 이용하여 코딩된다고 결정하는 것에 응답하여 (358 의 "예"), 비디오 코더는 참조 블록의 모션 파라미터들에 기초하여 현재의 서브-PU 의 모션 파라미터들을 설정할 수도 있다 (360). 예를 들어, 비디오 코더는 현재의 서브-PU 의 RefPicList0 모션 벡터를 참조 블록의 RefPicList0 모션 벡터로 설정할 수도 있으며, 현재의 서브-PU 의 RefPicList0 참조 인덱스를 참조 블록의 RefPicList0 참조 인덱스로 설정할 수도 있으며, 현재의 서브-PU 의 RefPicList1 모션 벡터를 참조 블록의 RefPicList1 모션 벡터로 설정할 수도 있으며, 현재의 서브-PU 의 RefPicList1 참조 인덱스를 참조 블록의 RefPicList1 참조 인덱스로 설정할 수도 있다.
한편, 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않는다고 결정하는 것에 응답하여 (358 의 "아니오"), 비디오 코더는 현재의 서브-PU 의 모션 파라미터들을 디폴트 모션 파라미터들로 설정할 수도 있다 (362). 따라서, 도 19 의 예에서, 현재의 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않을 때, 비디오 코더는 현재의 서브-PU 의 모션 파라미터들을, 모션 보상된 예측을 이용하여 코딩되는 참조 블록을 갖는 가장 가까운 서브-PU 의 모션 파라미터들로 설정하지 않는다. 대신, 비디오 코더는 현재의 서브-PU 의 모션 파라미터들을 디폴트 모션 파라미터들로 바로 설정할 수도 있다. 이것은 코딩 프로세스의 프로세스를 단순화 및 가속화할 수도 있다.
현재의 서브-PU 의 모션 파라미터들을 설정한 후, 비디오 코더는 현재의 PU 가 임의의 추가적인 서브-PU들을 가지는지 여부를 결정할 수도 있다 (364). 현재의 PU 가 하나 이상의 추가적인 서브-PU들을 가진다고 결정하는 것에 응답하여 (364 의 "예"), 비디오 코더는 현재의 PU 의 서브-PU들의 다른 하나를 현재의 서브-PU 로 하여 액션들 (354 내지 364) 을 수행할 수도 있다. 이러한 방법으로, 비디오 코더는 현재의 PU 의 서브-PU들의 각각의 모션 파라미터들을 설정할 수도 있다. 한편, 현재의 PU 의 추가적인 서브-PU들이 없다고 결정하는 것에 응답하여 (366 의 "아니오"), 비디오 코더는 후보 (예컨대, IPMVC) 를 현재의 PU 에 대한 병합 후보 리스트에 포함시킬 수도 있다 (366). 후보는 현재의 PU 의 서브-PU들의 각각의 모션 파라미터들을 규정할 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 그 기능들은 하나 이상의 명령들 또는 코드로서, 컴퓨터 판독가능 매체 상에 저장되거나 또는 컴퓨터 판독가능 매체를 통해서 송신될 수도 있으며, 하드웨어-기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체들, 또는 예를 들어, 통신 프로토콜에 따라 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이런 방법으로, 컴퓨터 판독가능 매체들은 일반적으로 (1) 비일시적 유형의 컴퓨터 판독가능 저장 매체들, 또는 (2) 신호 또는 캐리어 파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시물에서 설명하는 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 가용 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
일 예로서, 이에 한정하지 않고, 이런 컴퓨터 판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광디스크 스토리지, 자기디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 지칭된다. 예를 들어, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 무선 기술들, 예컨대 적외선, 라디오, 및 마이크로파를 이용하여 명령들이 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되는 경우, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 무선 기술들, 예컨대 적외선, 라디오, 및 마이크로파가 그 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 접속부들, 반송파들, 신호들, 또는 다른 일시성 매체들을 포함하지 않고, 그 대신, 비-일시성 유형의 저장 매체들과 관련되는 것으로 이해되어야 한다. 디스크 (disk) 및 디스크 (disc) 는, 본원에서 사용한 바와 같이, 컴팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 Blu-ray 디스크를 포함하며, 디스크 (disk) 들은 데이터를 자기적으로 보통 재생하지만, 디스크 (disc) 들은 레이저로 데이터를 광학적으로 재생한다. 앞에서 언급한 것들의 결합들이 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적 또는 이산 로직 회로와 같은, 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 용어 "프로세서" 는, 본원에서 사용된 바와 같이, 전술한 구조 또는 본원에서 설명하는 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 게다가, 일부 양태들에서, 본원에서 설명하는 기능은 인코딩 및 디코딩을 위해 구성되는 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공되거나, 또는 결합된 코덱에 포함될 수도 있다. 또한, 이 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들로 전적으로 구현될 수 있다.
본 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예컨대, 칩 세트) 를 포함한, 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 개시한 기법들을 수행하도록 구성되는 디바이스들의 기능적 양태들을 강조하기 위해서 여러 컴포넌트들, 모듈들, 또는 유닛들이 본 개시물에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로 하지는 않는다. 대신, 위에서 설명한 바와 같이, 여러 유닛들이 코덱 하드웨어 유닛에 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명한 바와 같은 하나 이상의 프로세서들을 포함한, 상호작용하는 하드웨어 유닛들의 컬렉션으로 제공될 수도 있다.
여러 예들이 설명되었다. 이들 및 다른 예들은 다음 청구항들의 범위 이내이다.

Claims (43)

  1. 멀티-뷰 비디오 데이터를 디코딩하는 방법으로서,
    현재의 예측 유닛 (PU) 을 복수의 서브-PU들로 분할하는 단계로서, 상기 현재의 PU 는 현재의 픽처에 있는, 상기 복수의 서브-PU들로 분할하는 단계;
    디폴트 모션 파라미터들을 결정하는 단계로서, 상기 디폴트 모션 파라미터들은 디폴트 모션 벡터 및 디폴트 참조 인덱스를 포함하며, 상기 디폴트 모션 파라미터들을 결정하는 단계는:
    상기 디폴트 모션 벡터를 제로 모션 벡터로 설정하는 단계; 및
    상기 디폴트 참조 인덱스를 0 또는 현재의 참조 픽처 리스트에서의 제 1 가용 시간 참조 픽처로 설정하는 단계
    를 포함하는, 상기 디폴트 모션 파라미터들을 결정하는 단계;
    특정의 순서로 상기 복수의 서브-PU들로부터의 서브-PU들을 프로세싱하는 단계로서, 상기 서브-PU들을 프로세싱하는 단계는, 상기 복수의 서브-PU들로부터의 적어도 하나의 서브-PU 에 대하여:
    상기 서브-PU 에 대한 참조 블록을 결정하는 단계로서, 참조 픽처가 상기 서브-PU 에 대한 상기 참조 블록을 포함하는, 상기 참조 블록을 결정하는 단계; 및
    상기 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않는 것에 기초하여, 상기 서브-PU 의 모션 파라미터들을 상기 디폴트 모션 파라미터들로 설정하는 단계로서, 상기 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않는다면, 상기 서브-PU 의 상기 모션 파라미터들은 상기 특정의 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않으며, 상기 서브-PU들 중 적어도 하나에 대한 참조 블록은 모션 보상된 예측을 이용하여 코딩되지 않는, 상기 서브-PU 의 모션 파라미터들을 상기 디폴트 모션 파라미터들로 설정하는 단계
    를 포함하는, 상기 서브-PU들을 프로세싱하는 단계;
    상기 현재의 PU 의 후보 리스트에 후보를 포함시키는 단계로서, 상기 후보는 상기 복수의 서브-PU들의 모션 파라미터들에 기초하는, 상기 후보를 포함시키는 단계;
    비트스트림으로부터, 상기 후보 리스트에서의 선택된 후보를 나타내는 신택스 엘리먼트를 획득하는 단계; 및
    상기 현재의 PU 에 대한 예측 블록을 복원하기 위해 상기 선택된 후보의 모션 파라미터들을 이용하는 단계
    를 포함하는, 멀티-뷰 비디오 데이터를 디코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 참조 픽처는 상기 현재의 픽처와 상이한 뷰에 있으며;
    상기 서브-PU 에 대한 참조 블록을 결정하는 단계는, 상기 현재의 PU 의 디스패리티 벡터에 기초하여, 상기 참조 픽처에서의 참조 샘플 로케이션을 결정하는 단계를 포함하며, 상기 서브-PU 에 대한 상기 참조 블록은 상기 참조 샘플 로케이션을 커버하는, 멀티-뷰 비디오 데이터를 디코딩하는 방법.
  3. 제 1 항에 있어서,
    상기 현재의 픽처는 심도 뷰 성분이며, 상기 참조 픽처는 상기 현재의 픽처와 동일한 뷰 및 액세스 유닛에 있는 텍스쳐 뷰 성분이며;
    상기 서브-PU 에 대한 참조 블록을 결정하는 단계는, 상기 서브-PU 에 대한 상기 참조 블록이 상기 서브-PU 와 동일 위치에 배치되는 상기 참조 픽처의 PU 라고 결정하는 단계를 포함하는, 멀티-뷰 비디오 데이터를 디코딩하는 방법.
  4. 제 1 항에 있어서,
    PU-레벨 모션 벡터 후보에 기초하여, 공간 병합 후보를 상기 후보 리스트에 포함시킬지 여부를 결정하는 단계를 더 포함하며,
    상기 PU-레벨 모션 벡터 후보는 상기 디폴트 모션 파라미터들과 동일한 모션 파라미터들을 규정하는, 멀티-뷰 비디오 데이터를 디코딩하는 방법.
  5. 제 1 항에 있어서
    상기 디폴트 모션 파라미터들은 상기 복수의 서브-PU들에서의 각각의 서브-PU 에 대해 동일한, 멀티-뷰 비디오 데이터를 디코딩하는 방법.
  6. 멀티-뷰 비디오 데이터를 인코딩하는 방법으로서,
    현재의 예측 유닛 (PU) 을 복수의 서브-PU들로 분할하는 단계로서, 상기 현재의 PU 는 현재의 픽처에 있는, 상기 복수의 서브-PU들로 분할하는 단계;
    디폴트 모션 파라미터들을 결정하는 단계로서, 상기 디폴트 모션 파라미터들은 디폴트 모션 벡터 및 디폴트 참조 인덱스를 포함하며, 상기 디폴트 모션 파라미터들을 결정하는 단계는:
    상기 디폴트 모션 벡터를 제로 모션 벡터로 설정하는 단계; 및
    상기 디폴트 참조 인덱스를 0 또는 현재의 참조 픽처 리스트에서의 제 1 가용 시간 참조 픽처로 설정하는 단계
    를 포함하는, 상기 디폴트 모션 파라미터들을 결정하는 단계;
    특정의 순서로 상기 복수의 서브-PU들로부터의 서브-PU들을 프로세싱하는 단계로서, 상기 서브-PU들을 프로세싱하는 단계는 상기 복수의 서브-PU들로부터의 적어도 하나의 서브-PU 에 대해:
    상기 서브-PU 에 대한 참조 블록을 결정하는 단계로서, 참조 픽처는 상기 서브-PU 에 대한 상기 참조 블록을 포함하는, 상기 참조 블록을 결정하는 단계; 및
    상기 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않는 것에 기초하여, 상기 서브-PU 의 모션 파라미터들을 상기 디폴트 모션 파라미터들로 설정하는 단계로서, 상기 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않는다면, 상기 서브-PU 의 상기 모션 파라미터들은 상기 특정의 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않으며, 상기 서브-PU들 중 적어도 하나에 대한 참조 블록은 모션 보상된 예측을 이용하여 코딩되지 않는, 상기 서브-PU 의 모션 파라미터들을 상기 디폴트 모션 파라미터들로 설정하는 단계
    를 포함하는, 상기 서브-PU들을 프로세싱하는 단계;
    상기 현재의 PU 의 후보 리스트에 후보를 포함시키는 단계로서, 상기 후보는 상기 복수의 서브-PU들의 모션 파라미터들에 기초하는, 상기 후보를 포함시키는 단계; 및
    비트스트림으로, 상기 후보 리스트에서의 선택된 후보를 나타내는 신택스 엘리먼트를 시그널링하는 단계
    를 포함하는, 멀티-뷰 비디오 데이터를 인코딩하는 방법.
  7. 제 6 항에 있어서,
    상기 참조 픽처는 상기 현재의 픽처와 상이한 뷰에 있으며;
    상기 서브-PU 에 대한 참조 블록을 결정하는 단계는, 상기 현재의 PU 의 디스패리티 벡터에 기초하여, 상기 참조 픽처에서의 참조 샘플 로케이션을 결정하는 단계를 포함하며, 상기 서브-PU 에 대한 상기 참조 블록은 상기 참조 샘플 로케이션을 커버하는, 멀티-뷰 비디오 데이터를 인코딩하는 방법.
  8. 제 6 항에 있어서,
    상기 현재의 픽처는 심도 뷰 성분이며, 상기 참조 픽처는 상기 현재의 픽처와 동일한 뷰 및 액세스 유닛에 있는 텍스쳐 뷰 성분이며;
    상기 서브-PU 에 대한 참조 블록을 결정하는 단계는, 상기 서브-PU 에 대한 상기 참조 블록이 상기 서브-PU 와 동일 위치에 배치되는 상기 참조 픽처의 PU 라고 결정하는 단계를 포함하는, 멀티-뷰 비디오 데이터를 인코딩하는 방법.
  9. 제 6 항에 있어서,
    PU-레벨 모션 벡터 후보에 기초하여, 공간 병합 후보를 상기 후보 리스트에 포함시킬지 여부를 결정하는 단계를 더 포함하며,
    상기 PU-레벨 모션 벡터 후보는 상기 디폴트 모션 파라미터들과 동일한 모션 파라미터들을 규정하는, 멀티-뷰 비디오 데이터를 인코딩하는 방법.
  10. 제 6 항에 있어서,
    상기 디폴트 모션 파라미터들은 상기 복수의 서브-PU들에서의 각각의 서브-PU 에 대해 동일한, 멀티-뷰 비디오 데이터를 인코딩하는 방법.
  11. 멀티-뷰 비디오 데이터를 코딩하는 디바이스로서,
    코딩된 픽처들을 저장하는 메모리; 및
    하나 이상의 프로세서들을 포함하며,
    상기 하나 이상의 프로세서들은:
    현재의 예측 유닛 (PU) 을 복수의 서브-PU들로 분할하는 것으로서, 상기 현재의 PU 는 현재의 픽처에 있는, 상기 복수의 서브-PU들로 분할하고;
    디폴트 모션 파라미터들을 결정하는 것으로서, 상기 디폴트 모션 파라미터들은 디폴트 모션 벡터 및 디폴트 참조 인덱스를 포함하며, 상기 하나 이상의 프로세서들은 적어도 부분적으로:
    상기 디폴트 모션 벡터를 제로 모션 벡터로 설정하는 것; 및
    상기 디폴트 참조 인덱스를 0 또는 현재의 참조 픽처 리스트에서의 제 1 가용 시간 참조 픽처로 설정하는 것
    에 의해 상기 디폴트 모션 파라미터들을 결정하도록 구성되는, 상기 디폴트 모션 파라미터들을 결정하고;
    특정의 순서로 상기 복수의 서브-PU들로부터의 서브-PU들을 프로세싱하는 것으로서, 상기 하나 이상의 프로세서들은, 상기 서브-PU들을 프로세싱하는 것의 부분으로서, 상기 하나 이상의 프로세서들이 상기 복수의 서브-PU들로부터의 적어도 하나의 서브-PU 에 대하여:
    상기 서브-PU 에 대한 참조 블록을 결정하는 것으로서, 참조 픽처가 상기 서브-PU 에 대한 상기 참조 블록을 포함하는, 상기 참조 블록을 결정하고;
    상기 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되는 것에 기초하여, 상기 서브-PU 의 모션 파라미터들을 상기 서브-PU 에 대한 상기 참조 블록의 모션 파라미터들에 기초하여 설정하고; 그리고
    상기 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않는 것에 기초하여, 상기 서브-PU 의 상기 모션 파라미터들을 상기 디폴트 모션 파라미터들로 설정하는 것으로서, 상기 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않는다면, 상기 서브-PU 의 상기 모션 파라미터들은 상기 특정의 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않으며, 상기 서브-PU들 중 적어도 하나에 대한 참조 블록은 모션 보상된 예측을 이용하여 코딩되지 않는, 상기 서브-PU 의 상기 모션 파라미터들을 상기 디폴트 모션 파라미터들로 설정하도록
    구성되는, 상기 서브-PU들을 프로세싱하고; 그리고
    상기 현재의 PU 의 후보 리스트에 후보를 포함시키는 것으로서, 상기 후보는 상기 복수의 서브-PU들의 모션 파라미터들에 기초하는, 상기 후보를 포함시키도록
    구성되는, 멀티-뷰 비디오 데이터를 코딩하는 디바이스.
  12. 제 11 항에 있어서,
    상기 참조 픽처는 상기 현재의 픽처와 상이한 뷰에 있으며;
    상기 하나 이상의 프로세서들은 상기 현재의 PU 의 디스패리티 벡터에 기초하여, 상기 참조 픽처에서의 참조 샘플 로케이션을 결정하도록 구성되며, 상기 서브-PU 에 대한 상기 참조 블록은 상기 참조 샘플 로케이션을 커버하는, 멀티-뷰 비디오 데이터를 코딩하는 디바이스.
  13. 제 11 항에 있어서,
    상기 현재의 픽처는 심도 뷰 성분이며, 상기 참조 픽처는 상기 현재의 픽처와 동일한 뷰 및 액세스 유닛에 있는 텍스쳐 뷰 성분이며;
    상기 하나 이상의 프로세서들은 상기 서브-PU 에 대한 상기 참조 블록이 상기 서브-PU 와 동일 위치에 배치되는 상기 참조 픽처의 PU 라고 결정하도록 구성되는, 멀티-뷰 비디오 데이터를 코딩하는 디바이스.
  14. 제 11 항에 있어서,
    상기 하나 이상의 프로세서들은 PU-레벨 모션 벡터 후보에 기초하여, 공간 병합 후보를 상기 후보 리스트에 포함시킬지 여부를 결정하도록 구성되며,
    상기 PU-레벨 모션 벡터 후보는 상기 디폴트 모션 파라미터들과 동일한 모션 파라미터들을 규정하는, 멀티-뷰 비디오 데이터를 코딩하는 디바이스.
  15. 제 11 항에 있어서,
    상기 디폴트 모션 파라미터들은 상기 복수의 서브-PU들에서의 각각의 서브-PU 에 대해 동일한, 멀티-뷰 비디오 데이터를 코딩하는 디바이스.
  16. 제 11 항에 있어서,
    상기 하나 이상의 프로세서들은 또한:
    비트스트림으로부터, 상기 후보 리스트에서의 선택된 후보를 나타내는 신택스 엘리먼트를 획득하고; 그리고
    상기 현재의 PU 에 대한 예측 블록을 복원하기 위해 상기 선택된 후보의 모션 파라미터들을 이용하도록
    구성되는, 멀티-뷰 비디오 데이터를 코딩하는 디바이스.
  17. 제 11 항에 있어서,
    상기 하나 이상의 프로세서들은 비트스트림으로, 상기 후보 리스트에서의 선택된 후보를 나타내는 신택스 엘리먼트를 시그널링하도록 구성되는, 멀티-뷰 비디오 데이터를 코딩하는 디바이스.
  18. 멀티-뷰 비디오 데이터를 코딩하는 디바이스로서,
    현재의 예측 유닛 (PU) 을 복수의 서브-PU들로 분할하는 수단으로서, 상기 현재의 PU 는 현재의 픽처에 있는, 상기 복수의 서브-PU들로 분할하는 수단;
    디폴트 모션 파라미터들을 결정하는 수단으로서, 상기 디폴트 모션 파라미터들은 디폴트 모션 벡터 및 디폴트 참조 인덱스를 포함하며, 상기 디폴트 모션 파라미터들을 결정하는 수단은:
    상기 디폴트 모션 벡터를 제로 모션 벡터로 설정하는 수단; 및
    상기 디폴트 참조 인덱스를 0 또는 현재의 참조 픽처 리스트에서의 제 1 가용 시간 참조 픽처로 설정하는 수단
    을 포함하는, 상기 디폴트 모션 파라미터들을 결정하는 수단;
    특정의 순서로 상기 복수의 서브-PU들로부터의 서브-PU들을 프로세싱하는 수단으로서, 상기 서브-PU들을 프로세싱하는 수단은, 상기 복수의 서브-PU들로부터의 적어도 하나의 서브-PU 에 대하여:
    상기 서브-PU 에 대한 참조 블록을 결정하는 수단으로서, 참조 픽처가 상기 서브-PU 에 대한 상기 참조 블록을 포함하는, 상기 참조 블록을 결정하는 수단;
    상기 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되는 것에 기초하여, 상기 서브-PU 의 모션 파라미터들을 상기 서브-PU 에 대한 상기 참조 블록의 모션 파라미터들에 기초하여 설정하는 수단; 및
    상기 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않는 것에 기초하여, 상기 서브-PU 의 상기 모션 파라미터들을 상기 디폴트 모션 파라미터들로 설정하는 수단으로서, 상기 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않는다면, 상기 서브-PU 의 상기 모션 파라미터들은 상기 특정의 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않으며, 상기 서브-PU들 중 적어도 하나에 대한 참조 블록은 모션 보상된 예측을 이용하여 코딩되지 않는, 상기 서브-PU 의 상기 모션 파라미터들을 상기 디폴트 모션 파라미터들로 설정하는 수단
    을 포함하는, 상기 서브-PU들을 프로세싱하는 수단; 및
    상기 현재의 PU 의 후보 리스트에 후보를 포함시키는 수단으로서, 상기 후보는 상기 복수의 서브-PU들의 모션 파라미터들에 기초하는, 상기 후보를 포함시키는 수단을 포함하는, 멀티-뷰 비디오 데이터를 코딩하는 디바이스.
  19. 명령들을 저장하고 있는 비일시적 컴퓨터 판독가능 데이터 저장 매체로서,
    상기 명령들은, 실행될 때, 디바이스로 하여금:
    현재의 예측 유닛 (PU) 을 복수의 서브-PU들로 분할하게 하는 것으로서, 상기 현재의 PU 는 현재의 픽처에 있는, 상기 복수의 서브-PU들로 분할하게 하고;
    디폴트 모션 파라미터들을 결정하게 하는 것으로서, 상기 디폴트 모션 파라미터들은 디폴트 모션 벡터 및 디폴트 참조 인덱스를 포함하며, 상기 디바이스로 하여금, 상기 디폴트 모션 파라미터들을 결정하게 하는 명령들은, 실행될 경우, 상기 디바이스로 하여금,
    상기 디폴트 모션 벡터를 제로 모션 벡터로 설정하게 하고; 그리고
    상기 디폴트 참조 인덱스를 0 또는 현재의 참조 픽처 리스트에서의 제 1 가용 시간 참조 픽처로 설정하게 하는
    명령들을 포함하는, 상기 디폴트 모션 파라미터들을 결정하게 하고;
    특정의 순서로 상기 복수의 서브-PU들로부터의 서브-PU들을 프로세싱하게 하는 것으로서, 상기 서브-PU들을 프로세싱하는 것은, 상기 복수의 서브-PU들로부터의 각각의 서브-PU 에 대하여:
    상기 서브-PU 에 대한 참조 블록을 결정하는 것으로서, 참조 픽처가 상기 서브-PU 에 대한 상기 참조 블록을 포함하는, 상기 참조 블록을 결정하는 것;
    상기 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되는 것에 기초하여, 상기 서브-PU 의 모션 파라미터들을 상기 서브-PU 에 대한 상기 참조 블록의 모션 파라미터들에 기초하여 설정하는 것; 및
    상기 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않는 것에 기초하여, 상기 서브-PU 의 상기 모션 파라미터들을 상기 디폴트 모션 파라미터들로 설정하는 것으로서, 상기 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되지 않는다면, 상기 서브-PU 의 상기 모션 파라미터들은 상기 특정의 순서에서 임의의 나중 서브-PU 에 대한 참조 블록이 모션 보상된 예측을 이용하여 코딩된다는 후속 결정에 응답하여 설정되지 않으며, 상기 서브-PU들 중 적어도 하나에 대한 참조 블록은 모션 보상된 예측을 이용하여 코딩되지 않는, 상기 서브-PU 의 상기 모션 파라미터들을 상기 디폴트 모션 파라미터들로 설정하는 것
    을 포함하는, 상기 서브-PU들을 프로세싱하게 하고; 그리고
    상기 현재의 PU 의 후보 리스트에 후보를 포함시키게 하는 것으로서, 상기 후보는 상기 복수의 서브-PU들의 모션 파라미터들에 기초하는, 상기 후보를 포함시키게 하는, 비일시적 컴퓨터 판독가능 데이터 저장 매체.
  20. 제 1 항에 있어서,
    상기 서브-PU 는 상기 복수의 서브-PU들로부터의 제 1 서브-PU 이고,
    상기 서브 PU들을 프로세싱하는 단계는,
    상기 복수의 서브-PU들로부터의 제 2 서브-PU 에 대한 참조 블록을 결정하는 단계,
    상기 제 2 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되는 것에 기초하여, 상기 제 2 서브-PU 의 모션 파라미터들을 상기 제 2 서브-PU 에 대한 상기 참조 블록의 모션 파라미터들에 기초하여 설정하는 단계를 포함하는, 멀티-뷰 비디오 데이터를 디코딩하는 방법.
  21. 제 6 항에 있어서,
    상기 서브-PU 는 상기 복수의 서브-PU들로부터의 제 1 서브-PU 이고,
    상기 서브 PU들을 프로세싱하는 단계는,
    상기 복수의 서브-PU들로부터의 제 2 서브-PU 에 대한 참조 블록을 결정하는 단계,
    상기 제 2 서브-PU 에 대한 상기 참조 블록이 모션 보상된 예측을 이용하여 코딩되는 것에 기초하여, 상기 제 2 서브-PU 의 모션 파라미터들을 상기 제 2 서브-PU 에 대한 상기 참조 블록의 모션 파라미터들에 기초하여 설정하는 단계를 포함하는, 멀티-뷰 비디오 데이터를 인코딩하는 방법.
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
KR1020167003102A 2013-07-24 2013-12-24 3d-hevc 를 위한 단순화된 진보된 모션 예측 KR102060857B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361858089P 2013-07-24 2013-07-24
US61/858,089 2013-07-24
US201361872540P 2013-08-30 2013-08-30
US61/872,540 2013-08-30
US201361913031P 2013-12-06 2013-12-06
US61/913,031 2013-12-06
PCT/CN2013/001639 WO2015010226A1 (en) 2013-07-24 2013-12-24 Simplified advanced motion prediction for 3d-hevc

Publications (2)

Publication Number Publication Date
KR20160034938A KR20160034938A (ko) 2016-03-30
KR102060857B1 true KR102060857B1 (ko) 2019-12-30

Family

ID=52392552

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167003102A KR102060857B1 (ko) 2013-07-24 2013-12-24 3d-hevc 를 위한 단순화된 진보된 모션 예측

Country Status (9)

Country Link
US (1) US10158885B2 (ko)
EP (2) EP3028466B1 (ko)
JP (1) JP6434012B2 (ko)
KR (1) KR102060857B1 (ko)
CN (1) CN105393538B (ko)
ES (1) ES2906238T3 (ko)
HK (1) HK1216571A1 (ko)
SG (2) SG11201510554RA (ko)
WO (2) WO2015010226A1 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102883163B (zh) * 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
WO2015006984A1 (en) * 2013-07-19 2015-01-22 Mediatek Singapore Pte. Ltd. Reference view selection for 3d video coding
US9948915B2 (en) 2013-07-24 2018-04-17 Qualcomm Incorporated Sub-PU motion prediction for texture and depth coding
WO2015054811A1 (en) 2013-10-14 2015-04-23 Microsoft Corporation Features of intra block copy prediction mode for video and image coding and decoding
WO2015054813A1 (en) 2013-10-14 2015-04-23 Microsoft Technology Licensing, Llc Encoder-side options for intra block copy prediction mode for video and image coding
WO2015062002A1 (en) * 2013-10-31 2015-05-07 Mediatek Singapore Pte. Ltd. Methods for sub-pu level prediction
CN106063271B (zh) * 2013-12-26 2019-09-03 三星电子株式会社 用于执行基于子块的预测的层间视频解码方法及其设备以及用于执行基于子块的预测的层间视频编码方法及其设备
WO2015100731A1 (en) * 2014-01-03 2015-07-09 Mediatek Singapore Pte. Ltd. Methods for determining the prediction partitions
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
CN110381317B (zh) 2014-01-03 2022-12-02 庆熙大学校产学协力团 导出子预测单元的时间点之间的运动信息的方法和装置
BR112016015080A2 (pt) * 2014-01-03 2017-08-08 Microsoft Technology Licensing Llc Predição de vetor de bloco em codificação / decodificação de vídeo e imagem
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
MX361228B (es) 2014-03-04 2018-11-29 Microsoft Technology Licensing Llc Inversión de bloque y modo de omisión en predicción de intracopia de bloque.
US10567799B2 (en) 2014-03-07 2020-02-18 Qualcomm Incorporated Simplified sub-prediction unit (sub-PU) motion parameter inheritance (MPI)
EP3158734A1 (en) 2014-06-19 2017-04-26 Microsoft Technology Licensing, LLC Unified intra block copy and inter prediction modes
JP6569677B2 (ja) * 2014-08-28 2019-09-04 日本電気株式会社 ブロックサイズ決定方法及びプログラム
EP3917146A1 (en) 2014-09-30 2021-12-01 Microsoft Technology Licensing, LLC Rules for intra-picture prediction modes when wavefront parallel processing is enabled
CN116708782A (zh) * 2016-07-12 2023-09-05 韩国电子通信研究院 图像编码/解码方法以及用于该方法的记录介质
CN117221575A (zh) * 2016-10-04 2023-12-12 英迪股份有限公司 图像解码方法、图像编码方法以及发送比特流的方法
US20210136400A1 (en) * 2016-11-29 2021-05-06 Mediatek Inc. Method and apparatus of merge mode derivation for video coding
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
KR102646649B1 (ko) 2018-06-29 2024-03-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
CN114845108A (zh) 2018-06-29 2022-08-02 抖音视界(北京)有限公司 查找表的更新:fifo、约束的fifo
WO2020003284A1 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
WO2020003270A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Number of motion candidates in a look up table to be checked according to mode
CN110662059B (zh) 2018-06-29 2021-04-20 北京字节跳动网络技术有限公司 使用查找表存储先前编码的运动信息并用其编码后续块的方法和装置
CN115134599A (zh) 2018-06-29 2022-09-30 抖音视界有限公司 更新查找表(lut)的条件
WO2020125755A1 (en) * 2018-12-21 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Motion vector range based on motion vector precision
US20220086475A1 (en) * 2019-01-09 2022-03-17 Lg Electronics Inc. Method and device for signaling whether tmvp candidate is available
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147772A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Motion candidates derivation
US10904558B2 (en) * 2019-04-26 2021-01-26 Tencent America LLC Method and apparatus for motion compensation for 360 video coding
US11871143B2 (en) 2020-09-17 2024-01-09 Lemon Inc. Subpicture tracks in coded video

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3628810B2 (ja) * 1996-06-28 2005-03-16 三菱電機株式会社 画像符号化装置
EP1917814A4 (en) 2005-08-22 2011-04-13 Samsung Electronics Co Ltd METHOD AND DEVICE FOR CODING MULTI VIEW VIDEO
CN101222627A (zh) 2007-01-09 2008-07-16 华为技术有限公司 一种多视点视频编解码系统以及预测向量的方法和装置
KR20080066522A (ko) 2007-01-11 2008-07-16 삼성전자주식회사 다시점 영상의 부호화, 복호화 방법 및 장치
WO2009123248A1 (en) * 2008-04-01 2009-10-08 Canon Kabushiki Kaisha Moving image encoding apparatus and moving image encoding method
WO2010043773A1 (en) 2008-10-17 2010-04-22 Nokia Corporation Sharing of motion vector in 3d video coding
KR101158491B1 (ko) 2008-12-08 2012-06-20 한국전자통신연구원 다시점 영상 부호화, 복호화 방법 및 그 장치.
EP2392142B1 (fr) * 2009-01-28 2018-10-24 Orange Procedes de codage et de decodage d'une sequence d'image mettant en oeuvre une compensation en mouvement, dispositifs de codage et de decodage, signal et programmes d'ordinateur correspondants
EP2432226B1 (en) * 2009-05-11 2019-06-26 NTT DoCoMo, Inc. Moving image encoding device, method, and program, and moving image decoding device, method, and program
US9788019B2 (en) 2011-03-09 2017-10-10 Hfi Innovation Inc. Method and apparatus of transform unit partition with reduced complexity
KR20120118780A (ko) 2011-04-19 2012-10-29 삼성전자주식회사 다시점 비디오의 움직임 벡터 부호화 방법 및 장치, 그 복호화 방법 및 장치
JP5058362B1 (ja) * 2011-06-23 2012-10-24 株式会社東芝 動画像復号装置及び動画像復号方法
US20130188013A1 (en) * 2011-07-22 2013-07-25 Qualcomm Incorporated Mvc based 3dvc codec supporting inside view motion prediction (ivmp) mode
KR20130050406A (ko) 2011-11-07 2013-05-16 오수미 머지 모드에서의 움직임 정보 생성 방법
US20130114717A1 (en) 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
CN103096060B (zh) 2011-11-08 2017-03-29 乐金电子(中国)研究开发中心有限公司 帧内图像预测编解码的自适应环路滤波方法及装置
US20130343459A1 (en) * 2012-06-22 2013-12-26 Nokia Corporation Method and apparatus for video coding
US9544612B2 (en) 2012-10-04 2017-01-10 Intel Corporation Prediction parameter inheritance for 3D video coding
US9716899B2 (en) 2013-06-27 2017-07-25 Qualcomm Incorporated Depth oriented inter-view motion vector prediction
WO2015003383A1 (en) * 2013-07-12 2015-01-15 Mediatek Singapore Pte. Ltd. Methods for inter-view motion prediction
US9948915B2 (en) 2013-07-24 2018-04-17 Qualcomm Incorporated Sub-PU motion prediction for texture and depth coding
US10567799B2 (en) 2014-03-07 2020-02-18 Qualcomm Incorporated Simplified sub-prediction unit (sub-PU) motion parameter inheritance (MPI)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
J. An, et al. 3D-CE3.h related: Sub-PU level inter-view motion prediction. JCT-3V of ITU-T and ISO/IEC. JCT3V-E0184 Ver.1, Jul. 19, 2013, pp.1-4
Y. Yamamoto, et al. 3D-CE5.h: Decoupling inter-view candidate for AMVP. JCT-3V of ITU-T and ISO/IEC. JCT3V-B0111 Ver.5, Oct. 16, 2012, pp.1-3

Also Published As

Publication number Publication date
EP3028466B1 (en) 2022-01-26
US10158885B2 (en) 2018-12-18
JP6434012B2 (ja) 2018-12-05
CN105393538B (zh) 2018-12-04
ES2906238T3 (es) 2022-04-13
KR20160034938A (ko) 2016-03-30
SG11201510554RA (en) 2016-02-26
JP2016530784A (ja) 2016-09-29
US20160165263A1 (en) 2016-06-09
EP3028466A4 (en) 2017-03-15
EP3025500B1 (en) 2018-08-22
EP3028466A1 (en) 2016-06-08
HK1216571A1 (zh) 2016-11-18
WO2015010226A1 (en) 2015-01-29
SG10201800237QA (en) 2018-02-27
EP3025500A1 (en) 2016-06-01
CN105393538A (zh) 2016-03-09
WO2015013511A1 (en) 2015-01-29

Similar Documents

Publication Publication Date Title
KR102060857B1 (ko) 3d-hevc 를 위한 단순화된 진보된 모션 예측
KR102329912B1 (ko) 디스패리티 벡터 유도
US9948915B2 (en) Sub-PU motion prediction for texture and depth coding
US10567799B2 (en) Simplified sub-prediction unit (sub-PU) motion parameter inheritance (MPI)
EP3044961B1 (en) Video coding techniques using asymmetric motion partitioning
KR102331683B1 (ko) 3d 비디오 코딩을 위한 블록-기반 진보된 잔차 예측
KR101722890B1 (ko) 텍스처 코딩을 위한 더욱 정확한 어드밴스드 잔차 예측 (arp)
US9538180B2 (en) Motion vector prediction in video coding
EP3090555B1 (en) Disparity vector and/or advanced residual prediction for video coding
EP3080989B1 (en) Controlling sub prediction unit (sub-pu) motion parameter inheritance (mpi) in three dimensional (3d) hevc or other 3d coding
US10009621B2 (en) Advanced depth inter coding based on disparity of depth blocks
EP2965511A1 (en) Inter-view residual prediction in multi-view or 3-dimensional video coding

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