KR101726534B1 - 3d 비디오 코딩을 위한 조화된 인터-뷰 및 뷰 합성 예측 - Google Patents

3d 비디오 코딩을 위한 조화된 인터-뷰 및 뷰 합성 예측 Download PDF

Info

Publication number
KR101726534B1
KR101726534B1 KR1020157032246A KR20157032246A KR101726534B1 KR 101726534 B1 KR101726534 B1 KR 101726534B1 KR 1020157032246 A KR1020157032246 A KR 1020157032246A KR 20157032246 A KR20157032246 A KR 20157032246A KR 101726534 B1 KR101726534 B1 KR 101726534B1
Authority
KR
South Korea
Prior art keywords
prediction
view
picture
delete delete
reference picture
Prior art date
Application number
KR1020157032246A
Other languages
English (en)
Other versions
KR20150139970A (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 KR20150139970A publication Critical patent/KR20150139970A/ko
Application granted granted Critical
Publication of KR101726534B1 publication Critical patent/KR101726534B1/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • 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
    • 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

Landscapes

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

Abstract

비디오를 인코딩하기 위한 다양한 방법, 장치 및 컴퓨터 프로그램 제품이 개시된다. 참조 픽처 인덱스에 사용되는 예측의 유형은 비디오 비트스트림에서 시그널링될 수 있다. 비디오 비트스트림으로부터 특정한 이미지 요소에 대한 움직임 벡터의 생략이 시그널링될 수 있으며, 시그널링은 디코더에게 예측 시 사용되는 움직임 벡터가 디코더에서 구성될 것이라고 표시할 수 있다. 움직임 벡터의 구성은 참조로서 사용되는 픽처의 깊이 정보로부터 취득된 디스패리티 정보를 사용함으로써 이루어질 수 있다.

Description

3D 비디오 코딩을 위한 조화된 인터-뷰 및 뷰 합성 예측{HARMONIZED INTER-VIEW AND VIEW SYNTHESIS PREDICTION FOR 3D VIDEO CODING}
본 출원에서 설명되는 다양한 실시예는 깊이 강화된 비디오 코딩(depth-enhanced video coding) 및 깊이 강화된 비디오 코딩에서 뷰 합성 예측의 사용에 관한 것이다. 상이한 양태에서, 깊이 강화된 비디오 코딩을 위한 방법, 장치, 시스템 및 컴퓨터 프로그램 제품은 물론이고, 깊이 강화된 비디오 코딩을 위한 신호 또는 데이터 구조가 설명된다.
본 단원은 청구범위에서 인용되는 본 발명의 배경 또는 맥락을 제공하려는 것이다. 본 단원에 있는 설명은 추구될 수도 있겠지만, 반드시 이전에 마음속으로 상상하거나 추구되었던 것이 아닌 개념을 포함할 수 있다. 그러므로, 본 명세서에서 달리 지적하지 않는 한, 본 단원에서 설명된 것은 본 출원에 있는 설명과 청구범위에 대한 종래 기술이 아니며 또한 본 단원에 포함된다 하여 종래 기술인 것으로 인정되지 않는다.
현대의 비디오 코덱은 저장되어야 하거나 또는 인코더에서 디코더로 전송되어야 하는 중복 정보의 양을 줄이기 위해 다양한 예측 체계를 활용한다. 이전의 픽처가 참조 픽처로서 사용되도록 예측이 시간 전반에서 (시간적으로) 수행될 수 있다. 멀티 뷰 비디오 코딩(multi-view video coding)에 있어서, 예측은 또한 다른 뷰의 픽처를 참조 픽처로서 사용함으로써 또는 뷰 합성에 의해 형성된 합성된 픽처를 참조 픽처로서 사용함으로써 (공간적으로) 이루어질 수 있다. 일반적으로 예측은 참조 픽처 내 블록의 (픽셀 값과 같은) 픽처 정보가 현재 픽처 내 픽처 정보, 즉 예측된 블록을 예측하는데 사용되도록 이루어질 수 있다. 소위 움직임 벡터는 예측에서 이용될 수 있으며, 이러한 움직임 벡터는 예측되는 현재 블록에 대해 참조 픽처 내 픽처 정보의 소스를 표시할 수 있다. 사용되는 참조 픽처는 메모리 내에 보관되며, 참조 픽처 리스트는 참조 픽처의 사용을 관리하는데 사용된다.
다양한 여러 형태의 예측 체계는 기술적으로 인코더 및 디코더를 더 복잡하게 설계하도록 만들며, 이러한 예측 체계는 인코딩 및 디코딩의 속도에 껄끄러운 요인이 되거나 또는 간단한 구성보다 많은 메모리를 필요로 할 수 있다. 또한, 동시에, 여러 형태의 예측 체계는 3D 비디오 코딩 전송에 필요한 대역폭을 낮추는 것을 목표로 하고 있다. 그러므로, 3D 비디오에 필요한 신규의 비디오 코딩 구성을 개발할 필요가 있다.
일부 실시예는 비디오 정보를 인코딩 및 디코딩하기 위한 방법뿐만 아니라 대응하는 장치와 인코딩에 의해 생성되어 디코딩에 사용할 수 있는 신호를 제공한다. 인코딩 또는 인코더는 요소를 신호로 생성할 수 있으며 대응하는 디코딩 단계 또는 디코더 요소는 그 요소를 디코딩하는데 사용될 수 있다. 그러므로, 하나의 엔티티, 즉 인코더만을 위한 예가 주어질지라도, 대응하는 디코더 구조체, 및 신호 요소와 그의 목적이 그 예로부터 추정될 수 있다고 이해하여야 한다. 본 발명의 다양한 양태의 예는 상세한 설명에서 제공된다.
제 1 양태에 따르면, 청구항 제 1 항 내지 제 17 항에 따른 인코딩 방법이 제공된다. 제 2 양태에 따르면, 청구항 제 18 항 내지 제 34 항에 따른 디코딩 방법이 제공된다. 제 3 양태에 따르면, 청구항 제 35 항 내지 제 45 항에 따른 데이터 구조(신호)가 제공된다. 제 4 양태에 따르면, 청구항 제 46 항 내지 제 63 항에 따른 인코더가 제공된다. 제 4 양태에 따르면, 청구항 제 65 항 내지 제 83 항에 따른 디코더가 제공된다. 제 6 양태에 따르면, 청구항 제 64 항 내지 제 83 항에 따른 컴퓨터 프로그램 제품이 제공된다.
아래에서, 다양한 실시예 중 부호를 붙인 일부 예가 제공된다.
E1. 인코딩된 비디오 데이터를 제공하는 방법은,
상기 비디오 데이터의 인코딩시에 사용되는 참조 픽처를 관리하기 위한 참조 픽처 리스트를 형성하는 단계와,
다른 뷰의 적어도 하나의 픽처 - 상기 다른 뷰의 픽처는 상기 참조 픽처 리스트의 인덱스에 대응함 - 를 상기 인코딩 시 참조 픽처로서 사용하는 단계와,
상기 참조 픽처 리스트의 상기 인덱스마다, 사용되는 예측의 유형을 나타내는 표시를 제공하는 단계와,
예측의 유형의 상기 표시를 인코딩된 비디오 데이터 내에 인코딩하는 단계를 포함한다.
E2. 예 E1에 따른 방법에서, 상기 표시에 의해 표시되는 예측의 상기 유형은 인터-뷰 예측이다.
E3. 예 E1에 따른 방법에서, 상기 표시에 의해 표시되는 예측의 상기 유형은 뷰 합성 예측과 같은 디스패리티 보상에 기초하는 예측이다.
E4. 예 E1 내지 E3 중 어느 하나의 예에 따른 방법에서, 상기 표시는 상기 다른 뷰의 픽처로부터 디스패리티 보상을 이용한 예측이 사용되는지 여부를 표시하는 신택스 요소이다.
E5. 예 E4에 따른 방법에서, 신택스 요소는 상기 인코딩된 비디오 데이터 내로 이진 플래그로서 코딩되거나 상기 인코딩된 비디오 데이터 내로 산술적으로 코딩된다.
E6. 예 E1에 따른 방법은,
다른 뷰의 픽처로부터의 예측을 사용함으로써 - 상기 예측은 상기 예측을 위해 움직임 벡터를 사용하는 것을 포함함 - 비디오 블록의 인코딩된 비디오 데이터를 형성하는 단계와,
움직임 벡터 정보가 상기 비디오 블록에 대해 상기 인코딩된 비디오 데이터에 제공되지 않는다는 표시를 상기 인코딩된 비디오 데이터에 제공하는 단계와,
상기 비디오 블록에 대해 제공되는 깊이 정보를 이용함으로써 움직임 벡터 정보를 형성하는 단계를 포함한다.
E7. 예 E6에 따른 방법은,
다른 뷰의 픽처로부터의 예측을 사용함으로써 - 상기 예측은 상기 예측을 위해 상기 형성된 움직임 벡터 정보를 사용하는 것을 포함함 - 비디오 블록의 인코딩된 비디오 데이터를 형성하는 단계를 포함한다.
E8. 예 E6 또는 예 E7에 따른 방법에서, 상기 방법은,
상기 깊이 정보의 사용의 그래뉴러리티에 관한 표시를 제공하는 단계를 포함한다.
E9. 예 E6 또는 예 E7에 따른 방법에서, 상기 방법은,
비디오 블록에 대한 단일 예측 모드를 표시하는 단계와,
비디오 블록을 하나 이상의 블록 파티션으로 분할하는 단계와,
각각의 하나 이상의 블록 파티션마다 개별적으로 움직임 벡터 정보를 형성하는 단계를 포함한다.
E10. 예 E6 내지 예 E9 중 어느 예에 따른 방법은,
상기 인코딩된 비디오 데이터 내에 움직임 벡터 정보를 생략한다는 표시를 제공하는 단계를 포함하며, 움직임 벡터 정보를 생략한다는 상기 표시는 상기 비디오 블록보다 상위의 레벨에 제공된다.
E11. 예 E6 내지 예 E10중 어느 예에 따른 방법은,
상기 인코딩된 비디오 데이터 내에 움직임 벡터 정보를 생략한다는 표시를 제공하는 단계를 포함하며, 움직임 벡터 정보를 생략한다는 상기 표시는 슬라이스 헤더, 픽처 파라미터 세트, 및 시퀀스 파라미터 세트의 그룹 중 적어도 하나에 제공된다.
E12. 예 E6에 따른 방법에서, 상기 표시는 움직임 벡터 정보가 디코더에 의해 블록의 이웃의 움직임 벡터 정보를 이용함으로써 형성되어야 하는지를 표시하는 플래그이다.
E13. 인코딩된 비디오 데이터를 제공하는 방법은,
제 1 스케일러빌리티 계층 또는 제 1 뷰의 제 1 픽처의 비디오 블록의 인코딩된 비디오 데이터를 다른 스케일러빌리티 계층 또는 뷰의 제 2 픽처로부터의 예측을 사용함으로써 형성하는 단계와,
상기 인코딩된 비디오 데이터 내에 코딩 모드 - 상기 코딩 모드는 다른 스케일러빌리티 또는 뷰의 픽처로부터의 예측을 이용함 - 의 표시를 형성하는 단계와,
상기 인코딩된 비디오 데이터 내에 다른 스케일러빌리티 계층 또는 뷰의 복수개 픽처를 갖는 참조 픽처 중 제 1 픽처의 참조 식별자를 형성하는 단계를 포함한다.
E14. 인코딩된 비디오 데이터를 제공하는 방법은,
제 1 비디오 블록 - 상기 제 1 비디오 블록은 제 1 움직임 정보와 연관됨 - 의 인코딩된 비디오 데이터를 형성하는 단계와,
상기 제 1 비디오 블록에 대해 제공되는 깊이 정보를 이용함으로써 제 1 움직임 정보를 조정하여 조정된 제 1 움직임 정보를 취득하는 단계와,
조정된 제 1 움직임 정보를 사용함으로써 제 2 움직임 정보 - 상기 제 2 움직임 정보는 제 2 비디오 블록과 연관됨 - 를 예측하는 단계를 포함한다.
E15. 예 E14에 따른 방법에서, 제 1 비디오 블록의 상기 인코딩된 비디오 데이터는 참조 픽처를 식별하는 참조 인덱스 및 차분 움직임 벡터의 그룹 중 적어도 하나를 포함한다.
E16. 예 E14에 따른 방법에서,
조정된 제 1 움직임 정보는,
인터-뷰 예측에 대한 상기 제 1 비디오 블록의 예측 유형과,
인터-뷰 참조 픽처를 표시하는 참조 인덱스와,
깊이 정보로부터 도출되는 디스패리티와 동일한 움직임 벡터와,
상기 깊이 정보로부터 상기 디스패리티 도출의 그래뉴러리티에 따른 블록 분할의 그룹 중 적어도 하나의 파라미터를 포함하며, 방법은,
조정 시 상기 적어도 하나의 파라미터의 값을 설정하는 단계를 포함한다.
E17. 예 E14 내지 예 E16 중 어느 예에 따른 방법은,
제 2 움직임 정보와 연관된 상기 제 2 비디오 블록의 인코딩된 비디오 데이터를 형성하는 단계를 포함하며, 상기 제 1 비디오 블록은 제 1 픽처 내에 존재하며 상기 제 2 비디오 블록은 제 1 픽처와 상이한 제 2 픽처 내에 존재한다.
D1. 인코딩된 비디오 데이터를 디코딩하는 방법은,
상기 비디오 데이터의 디코딩 시에 사용되는 참조 픽처를 관리하기 위한 참조 픽처 리스트를 형성하는 단계와,
디코딩 시 다른 뷰의 적어도 하나의 픽처 -다른 뷰의 상기 픽처는 상기 참조 픽처 리스트의 인덱스에 대응함 - 를 참조 픽처로서 사용하는 단계와,
상기 참조 픽처 리스트의 상기 인덱스마다, 상기 인코딩된 비디오 데이터로부터 사용되는 예측의 유형을 나타내는 표시를 취득하는 단계를 포함한다.
D2. 예 D1에 따른 방법에서, 상기 표시에 의해 표시되는 예측의 상기 유형은 인터-뷰 예측이다.
D3. 예 D1에 따른 방법에서, 상기 표시에 의해 표시되는 예측의 상기 유형은 뷰 합성 예측과 같은 디스패리티 보상에 기초하는 예측이다.
D4. 예 D1 내지 예 D3 중 어느 예에 따른 방법에서, 상기 표시는 다른 뷰의 상기 픽처로부터 디스패리티 보상을 이용한 예측이 사용되는지 여부를 표시하는 신택스 요소이다.
D5. 예 D4에 따른 방법에서, 신택스 요소는 상기 인코딩된 비디오 데이터 내로 이진 플래그로서 코딩되거나 상기 인코딩된 비디오 데이터 내로 산술적으로 코딩된다.
D6. 인코딩된 비디오 데이터를 디코딩하는 방법은,
비디오 블록의 인코딩된 비디오 데이터를 다른 뷰의 픽처로부터의 예측을 사용함으로써 - 상기 예측은 상기 예측을 위해 움직임 벡터를 사용하는 것을 포함함 - 디코딩하는 단계와,
상기 인코딩된 비디오 데이터로부터 움직임 벡터 정보가 상기 비디오 블록에 대해 상기 인코딩된 비디오 데이터에 제공되지 않는다는 표시를 취득하는 단계와,
상기 비디오 블록에 대해 제공되는 깊이 정보를 이용함으로써 움직임 벡터 정보를 형성하는 단계를 포함한다.
D7. 예 D6에 따른 방법은,
비디오 블록의 인코딩된 비디오 데이터를 다른 뷰의 픽처로부터의 예측을 사용함으로써 디코딩하는 단계를 포함하며, 상기 예측은 상기 예측을 위해 상기 형성된 움직임 벡터 정보를 사용하는 것을 포함한다.
D8. 예 D6 또는 예 D7에 따른 방법에서, 상기 방법은,
상기 깊이 정보의 사용의 그래뉴러리티에 관한 표시를 제공하는 단계를 포함한다.
D9. 예 D6 또는 예 D7에 따른 방법에서, 상기 방법은,
상기 인코딩된 비디오 데이터로부터 비디오 블록에 대한 단일 예측 모드의 표시를 취득하는 단계와,
비디오 블록을 하나 이상의 블록 파티션으로 분할하는 단계와,
각각의 하나 이상의 블록 파티션마다 개별적으로 움직임 벡터 정보를 형성하는 단계를 포함한다.
D10. 예 D6 내지 예 D9 중 어느 예에 따른 방법에서,
상기 인코딩된 비디오 데이터로부터 움직임 벡터 정보를 생략한다는 표시를 취득하는 단계를 포함하며, 움직임 벡터 정보를 생략한다는 상기 표시는 상기 비디오 블록보다 상위의 레벨에 표시된다.
D11. 예 D6 또는 예 D10 중 어느 예에 따른 방법은,
상기 인코딩된 비디오 데이터로부터 움직임 벡터 정보를 생략한다는 표시를 취득하는 단계를 포함하며, 움직임 벡터 정보를 생략한다는 상기 표시는 슬라이스 헤더, 픽처 파라미터 세트, 및 시퀀스 파라미터 세트의 그룹 중 적어도 하나로부터 취득된다.
D12. 예 D6에 따른 방법에서, 상기 표시는 움직임 벡터 정보가 디코더에 의해 블록의 이웃의 움직임 벡터 정보를 이용함으로써 형성되어야 하는지를 표시하는 플래그이다.
D13. 인코딩된 비디오 데이터를 디코딩하는 방법은,
제 1 스케일러빌리티 계층 또는 제 1 뷰의 제 1 픽처의 비디오 블록의 인코딩된 비디오 데이터를 다른 스케일러빌리티 계층 또는 뷰의 제 2 픽처로부터의 예측을 사용함으로써 디코딩하는 단계와,
상기 인코딩된 비디오 데이터로부터 코딩 모드 - 상기 코딩 모드는 다른 스케일러빌리티 또는 뷰의 픽처로부터의 예측을 이용함 - 의 표시를 디코딩하는 단계와,
상기 인코딩된 비디오 데이터로부터 디코딩 시에 사용하기 위해 다른 스케일러빌리티 계층 또는 뷰의 복수개 픽처를 갖는 참조 리스트 중에서 제 1 픽처의 참조 식별자를 디코딩하는 단계를 포함한다.
D14. 인코딩된 비디오 데이터를 디코딩하는 방법은,
제 1 비디오 블록 - 상기 제 1 비디오 블록은 제 1 움직임 정보와 연관됨 - 의 인코딩된 비디오 데이터를 디코딩하는 단계와,
상기 제 1 비디오 블록에 대해 제공되는 깊이 정보를 이용함으로써 제 1 움직임 정보를 조정하여 조정된 제 1 움직임 정보를 취득하는 단계와,
조정된 제 1 움직임 정보를 사용함으로써 제 2 움직임 정보 - 상기 제 2 움직임 정보는 제 2 비디오 블록과 연관됨 - 를 예측하는 단계를 포함한다.
D15. 예 D14에 따른 방법에서, 제 1 비디오 블록의 상기 인코딩된 비디오 데이터는 참조 픽처를 식별하는 참조 인덱스 및 차분 움직임 벡터의 그룹 중 적어도 하나를 포함한다.
D16. 예 D14에 따른 방법에서,
조정된 제 1 움직임 정보는,
인터-뷰 예측에 대한 제 1 비디오 블록의 예측 유형과,
인터-뷰 참조 픽처를 표시하는 참조 인덱스와,
깊이 정보로부터 도출되는 디스패리티와 동일한 움직임 벡터와,
상기 깊이 정보로부터 상기 디스패리티 도출의 그래뉴러리티에 따른 블록 분할의 그룹 중 적어도 하나의 파라미터를 포함하며, 상기 방법은,
조정 시 상기 적어도 하나의 파라미터의 값을 설정하는 단계를 포함한다.
D17. 예 D14 내지 예 D16 중 어느 예에 따른 방법은,
제 2 움직임 정보와 연관된 상기 제 2 비디오 블록의 인코딩된 비디오 데이터를 디코딩하는 단계를 포함하며, 상기 제 1 비디오 블록은 제 1 픽처 내에 존재하며 상기 제 2 비디오 블록은 제 1 픽처와 상이한 제 2 픽처 내에 존재한다.
S1. 데이터 구조는 비일시적 컴퓨터 판독가능한 매체 상에서 구현되며, 상기 데이터 구조는 인코딩된 비디오 데이터의 디코딩을 컴퓨터에서 제어하기 위한 명령어 요소를 포함하고, 상기 데이터 구조는 픽처 요소를 디코딩할 때 사용되는 예측의 유형을 선택하기 위한 제 1 명령어 요소를 포함하고, 상기 예측은 다른 뷰의 적어도 하나의 픽처를 상기 디코딩 시 참조 픽처로서 사용하고, 다른 뷰의 상기 픽처는 참조 픽처 리스트의 인덱스에 대응하고, 상기 참조 픽처 리스트는 상기 인코딩된 비디오 데이터의 디코딩 시에 사용되는 참조 픽처를 관리하기 위한 것이다.
S2. 예 S1에 따른 데이터 구조에서, 상기 제 1 명령어 요소에 의해 표시되는 예측의 상기 유형은 인터-뷰 예측이다.
S3. 예 S1에 따른 데이터 구조에서, 상기 제 1 명령어 요소에 의해 표시되는 예측의 상기 유형은 뷰 합성 예측과 같은 디스패리티 보상에 기초하는 예측이다.
S4. 예 S1 내지 예 S3 중 어느 예 따른 데이터 구조에서, 상기 제 1 명령어 요소는 다른 뷰의 상기 픽처로부터 디스패리티 보상을 이용한 예측이 사용되는지 여부를 표시하는 신택스 요소이다.
S5. 예 S4에 따른 데이터 구조에서, 신택스 요소는 상기 인코딩된 비디오 데이터 내로 이진 플래그로서 코딩되거나 상기 인코딩된 비디오 데이터 내로 산술적으로 코딩된다.
S6. 데이터 구조는 비일시적 컴퓨터 판독가능한 매체 상에서 구현되며, 상기 데이터 구조는 인코딩된 비디오 데이터의 디코딩을 컴퓨터에서 제어하기 위한 명령어 요소를 포함하고, 상기 데이터 구조는 움직임 벡터 정보가 디코딩되는 비디오 블록에 대해 상기 인코딩된 비디오 데이터에 제공되지 않는다고 표시하고 움직임 벡터 정보가 상기 비디오 블록에 대해 제공되는 깊이 정보를 이용함으로써 형성되어야 한다고 표시하는 제 2 명령어 요소를 포함한다.
S7. 예 S6에 따른 데이터 구조는, 상기 깊이 정보의 사용의 그래뉴러리티에 관한 표시를 포함한다.
S8. 예 S6 또는 예 S7에 따른 데이터 구조에서, 상기 데이터 구조는 움직임 벡터 정보를 생략한다는 상기 표시를 제공하는 명령어 요소를 포함하며, 움직임 벡터 정보를 생략한다는 상기 표시는 상기 비디오 블록보다 상위의 레벨에 제공된다.
S9. 예 S8에 따른 데이터 구조에서, 움직임 벡터 정보를 생략한다는 상기 표시는 슬라이스 헤더, 픽처 파라미터 세트, 및 시퀀스 파라미터 세트의 그룹 중 적어도 하나에 제공된다.
S10. 예 S8에 따른 데이터 구조에서, 상기 표시는 움직임 벡터 정보가 디코더에 의해 블록의 이웃의 움직임 벡터 정보를 이용함으로써 형성되어야 하는지를 표시하는 플래그이다.
S11. 데이터 구조는 비일시적 컴퓨터 판독가능한 매체 상에서 구현되며, 상기 데이터 구조는 코딩 모드의 표시를 포함하고, 상기 코딩 모드는 다른 스케일러빌리티 계층 또는 뷰의 픽처로부터의 예측, 및 다른 스케일러빌리티 계층 또는 뷰의 복수개 픽처를 갖는 참조 리스트 중 픽처의 참조 식별자를 이용한다.
ED1. 장치는 적어도 하나의 프로세서, 메모리, 및 상기 메모리 내 컴퓨터 프로그램 코드를 포함하며, 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서 상에서 실행될 때, 장치로 하여금,
상기 비디오 데이터의 인코딩시에 사용되는 참조 픽처를 관리하기 위한 참조 픽처 리스트를 형성하게 하고,
다른 뷰의 적어도 하나의 픽처 - 다른 뷰의 상기 픽처는 상기 참조 픽처 리스트의 인덱스에 대응함 - 를 상기 인코딩 시 참조 픽처로서 사용하게 하고,
상기 참조 픽처 리스트의 상기 인덱스마다, 사용되는 예측의 유형을 나타내는 표시를 제공하게 하고,
예측의 유형의 상기 표시를 인코딩된 비디오 데이터 내에 인코딩하게 하도록 구성된다.
ED2. 예 ED1에 따른 장치에서, 상기 표시에 의해 표시되는 예측의 상기 유형은 인터-뷰 예측이다.
ED3. 예 ED1에 따른 장치에서, 상기 표시에 의해 표시되는 예측의 상기 유형은 뷰 합성 예측과 같은 디스패리티 보상에 기초하는 예측이다.
ED4. 예 ED1 내지 예 ED3 중 어느 예에 따른 장치에서, 상기 표시는 다른 뷰의 상기 픽처로부터 디스패리티 보상을 이용한 예측이 사용되는지 여부를 표시하는 신택스 요소이다.
ED5. 예 ED4에 따른 장치에서, 신택스 요소는 상기 인코딩된 비디오 데이터 내로 이진 플래그로서 코딩되거나 상기 인코딩된 비디오 데이터 내로 산술적으로 코딩된다.
ED6. 장치는 적어도 하나의 프로세서, 메모리, 및 상기 메모리 내 컴퓨터 프로그램 코드를 포함하며, 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서 상에서 실행될 때, 장치로 하여금,
비디오 블록의 인코딩된 비디오 데이터를 다른 뷰의 픽처로부터의 예측을 사용함으로써 - 상기 예측은 상기 예측을 위해 움직임 벡터를 사용하는 것을 포함함 - 형성하게 하고,
움직임 벡터 정보가 상기 비디오 블록에 대해 상기 인코딩된 비디오 데이터에 제공되지 않는다는 표시를 상기 인코딩된 비디오 데이터에 제공하게 하고,
상기 비디오 블록에 대해 제공되는 깊이 정보를 이용함으로써 움직임 벡터 정보를 형성하게 하도록 구성된다.
ED7. 예 ED6에 따른 장치는, 장치로 하여금,
비디오 블록의 인코딩된 비디오 데이터를 다른 뷰의 픽처로부터의 예측을 사용함으로써 형성하게 하도록 구성되는 컴퓨터 프로그램 코드를 포함하며, 상기 예측은 상기 예측을 위해 상기 형성된 움직임 벡터 정보를 사용하는 것을 포함한다.
ED8. 예 ED6 또는 예 ED7에 따른 장치는, 장치로 하여금,
상기 깊이 정보의 사용의 그래뉴러리티에 관한 표시를 제공하게 하도록 구성되는 컴퓨터 프로그램 코드를 포함한다.
ED9. 예 ED6 또는 예 ED7에 따른 장치에서,
상기 장치로 하여금,
비디오 블록에 대한 단일 예측 모드의 표시를 표시하게 하고,
비디오 블록을 하나 이상의 블록 파티션으로 분할하게 하고,
각각의 하나 이상의 블록 파티션마다 개별적으로 움직임 벡터 정보를 형성하게 하도록 구성되는 컴퓨터 프로그램 코드를 포함한다.
ED10. 예 ED6 내지 예 ED9 중 어느 예에 따른 장치는, 장치로 하여금,
상기 인코딩된 비디오 데이터 내에 움직임 벡터 정보를 생략한다는 표시를 제공하게 하도록 구성되는 컴퓨터 프로그램 코드를 포함하며, 움직임 벡터 정보를 생략한다는 상기 표시는 상기 비디오 블록보다 상위의 레벨에 제공된다.
ED11. 예 ED6 내지 예 ED10 중 어느 예에 따른 장치는, 장치로 하여금,
상기 인코딩된 비디오 데이터 내에 움직임 벡터 정보를 생략한다는 표시를 제공하게 하도록 구성되는 컴퓨터 프로그램 코드를 포함하며, 움직임 벡터 정보를 생략한다는 상기 표시는 슬라이스 헤더, 픽처 파라미터 세트, 및 시퀀스 파라미터 세트의 그룹 중 적어도 하나에 제공된다.
ED12. 예 ED6에 따른 장치에서, 상기 표시는 움직임 벡터 정보가 디코더에 의해 블록의 이웃의 움직임 벡터 정보를 이용함으로써 형성되어야 하는지를 표시하는 플래그이다.
ED13. 장치는 적어도 하나의 프로세서, 메모리, 및 상기 메모리 내 컴퓨터 프로그램 코드를 포함하며, 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서 상에서 실행될 때, 장치로 하여금,
제 1 스케일러빌리티 계층 또는 제 1 뷰의 제 1 픽처의 비디오 블록의 인코딩된 비디오 데이터를 다른 스케일러빌리티 계층 또는 뷰의 제 2 픽처로부터의 예측을 사용함으로써 형성하게 하고,
상기 인코딩된 비디오 데이터 내에 코딩 모드 - 상기 코딩 모드는 다른 스케일러빌리티 또는 뷰의 픽처로부터의 예측을 이용함 - 의 표시를 형성하게 하고,
상기 인코딩된 비디오 데이터 내에 다른 스케일러빌리티 계층 또는 뷰의 복수개 픽처를 갖는 참조 리스트 중 제 1 픽처의 참조 식별자를 형성하게 하도록 구성된다.
ED14. 장치는 적어도 하나의 프로세서, 메모리, 및 상기 메모리 내 컴퓨터 프로그램 코드를 포함하며, 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서 상에서 실행될 때, 장치로 하여금,
제 1 비디오 블록 - 상기 제 1 비디오 블록은 제 1 움직임 정보와 연관됨 - 의 인코딩된 비디오 데이터를 형성하게 하고,
상기 제 1 비디오 블록에 대해 제공되는 깊이 정보를 이용함으로써 제 1 움직임 정보를 조정하여 조정된 제 1 움직임 정보를 취득하게 하고,
조정된 제 1 움직임 정보를 사용함으로써 제 2 움직임 정보 - 상기 제 2 움직임 정보는 제 2 비디오 블록과 연관됨 - 를 예측하게 하도록 구성된다.
ED15. 예 ED14에 따른 장치에서, 제 1 비디오 블록의 상기 인코딩된 비디오 데이터는 참조 픽처를 식별하는 참조 인덱스 및 차분 움직임 벡터의 그룹 중 적어도 하나를 포함한다.
ED16. 예 ED14에 따른 장치에서,
조정된 제 1 움직임 정보는,
인터-뷰 예측에 대한 제 1 비디오 블록의 예측 유형과,
인터-뷰 참조 픽처를 표시하는 참조 인덱스와,
상기 깊이 정보로부터 도출되는 디스패리티와 동일한 움직임 벡터와,
상기 깊이 정보로부터 상기 디스패리티 도출의 그래뉴러리티에 따른 블록 분할의 그룹 중 적어도 하나의 파라미터를 포함하며, 상기 장치는 장치로 하여금,
조정 시 상기 적어도 하나의 파라미터의 값을 설정하게 하는 컴퓨터 프로그램 코드를 포함한다.
ED17. 예 ED14 내지 예 ED16 중 어느 예에 따른 장치는, 장치로 하여금,
제 2 움직임 정보와 연관된 상기 제 2 비디오 블록의 인코딩된 비디오 데이터를 형성하게 하도록 구성되는 컴퓨터 프로그램 코드를 포함하며, 상기 제 1 비디오 블록은 제 1 픽처 내에 존재하며 상기 제 2 비디오 블록은 제 1 픽처와 상이한 제 2 픽처 내에 존재한다.
ED18. 장치는 예 E1 내지 예 E17 중 어느 예에 따른 방법을 실행하기 위한 수단을 포함한다.
EC1. 비디오 데이터를 인코딩하기 위한 컴퓨터 프로그램 제품은 비일시적 컴퓨터 판독가능한 매체 상에서 구현되며, 상기 컴퓨터 프로그램 제품은 상기 컴퓨터 프로그램 코드가 프로세스에서 실행될 때, 장치로 하여금 예 E1 내지 E17 중 어느 예에 따른 방법을 실행하게 하도록 구성된 컴퓨터 프로그램 코드를 포함한다.
DD1. 장치는 적어도 하나의 프로세서, 메모리, 및 상기 메모리 내 컴퓨터 프로그램 코드를 포함하며, 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서 상에서 실행될 때, 장치로 하여금,
상기 비디오 데이터를 디코딩하는데 사용되는 참조 픽처를 관리하기 위한 참조 픽처 리스트를 형성하게 하고,
다른 뷰의 적어도 하나의 픽처 - 다른 뷰의 상기 픽처는 상기 참조 픽처 리스트의 인덱스에 대응함 - 를 상기 디코딩 시 참조 픽처로서 사용하게 하고,
상기 참조 픽처 리스트의 상기 인덱스마다, 사용되는 예측의 유형을 나타내는 표시를 취득하게 하도록 구성된다.
DD2. 예 DD1에 따른 장치에서, 상기 표시에 의해 표시되는 예측의 상기 유형은 인터-뷰 예측이다.
DD3. 예 DD1에 따른 장치에서, 상기 표시에 의해 표시되는 예측의 상기 유형은 뷰 합성 예측과 같은 디스패리티 보상에 기초하는 예측이다.
DD4. 예 DD1 내지 예 DD3 중 어느 예에 따른 장치에서, 상기 표시는 상기 다른 뷰의 픽처로부터 디스패리티 보상을 이용한 예측이 사용되는지 여부를 표시하는 신택스 요소이다.
DD5. 예 DD4에 따른 장치에서, 신택스 요소는 상기 인코딩된 비디오 데이터 내로 이진 플래그로서 코딩되거나 상기 인코딩된 비디오 데이터 내로 산술적으로 코딩된다.
DD6. 장치는 적어도 하나의 프로세서, 메모리, 및 상기 메모리 내 컴퓨터 프로그램 코드를 포함하며, 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서 상에서 실행될 때, 장치로 하여금,
비디오 블록의 인코딩된 비디오 데이터를 다른 뷰의 픽처로부터의 예측을 사용함으로써 - 상기 예측은 상기 예측을 위해 움직임 벡터를 사용하는 것을 포함함 - 디코딩하게 하고,
움직임 벡터 정보가 상기 비디오 블록에 대해 상기 인코딩된 비디오 데이터에 제공되지 않는다는 표시를 상기 인코딩된 비디오 데이터로부터 취득하게 하고,
상기 비디오 블록에 대해 제공되는 깊이 정보를 이용함으로써 움직임 벡터 정보를 형성하게 하도록 구성된다.
DD7. 예 DD6에 따른 장치는, 장치로 하여금,
비디오 블록의 인코딩된 비디오 데이터를 다른 뷰의 픽처로부터의 예측을 사용함으로써 디코딩하게 하도록 구성되는 컴퓨터 프로그램 코드를 포함하며, 상기 예측은 상기 예측을 위해 상기 형성된 움직임 벡터 정보를 사용하는 것을 포함한다.
DD8. 예 DD6 또는 예 DD7에 따른 장치는, 상기 장치로 하여금,
상기 깊이 정보의 사용의 그래뉴러리티에 관한 표시를 제공하게 하도록 구성되는 컴퓨터 프로그램 코드를 포함한다.
DD9. 예 DD6 또는 예 DD7에 따른 장치는, 장치로 하여금,
상기 인코딩된 비디오 데이터로부터 비디오 블록에 대한 단일 예측 모드의 표시를 취득하게 하고,
비디오 블록을 하나 이상의 블록 파티션으로 분할하게 하고,
각각의 하나 이상의 블록 파티션마다 개별적으로 움직임 벡터 정보를 형성하게 하도록 구성되는 컴퓨터 프로그램 코드를 포함한다.
DD10. 예 DD6 내지 예 DD9 중 어느 예에 따른 장치는,
상기 인코딩된 비디오 데이터로부터 움직임 벡터 정보를 생략한다는 표시를 취득하게 하는 것을 포함하며, 움직임 벡터 정보를 생략한다는 상기 표시는 상기 비디오 블록보다 상위의 레벨에 있다.
DD11. 예 DD6 내지 예 DD10 중 어느 예에 따른 장치는, 장치로 하여금,
상기 인코딩된 비디오 데이터로부터 움직임 벡터 정보를 생략한다는 표시를 취득하게 하도록 구성되는 컴퓨터 프로그램 코드를 포함하며, 움직임 벡터 정보를 생략한다는 상기 표시는 슬라이스 헤더, 픽처 파라미터 세트, 및 시퀀스 파라미터 세트의 그룹 중 적어도 하나로부터 취득된다.
DD12. 예 DD6에 따른 장치에서, 상기 표시는 움직임 벡터 정보가 디코더에 의해 블록의 이웃의 움직임 벡터 정보를 이용함으로써 하는지를 표시하는 플래그이다.
DD13. 장치는 적어도 하나의 프로세서, 메모리, 및 상기 메모리 내 컴퓨터 프로그램 코드를 포함하며, 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서 상에서 실행될 때, 장치로 하여금,
제 1 스케일러빌리티 계층 또는 제 1 뷰의 제 1 픽처의 비디오 블록의 인코딩된 비디오 데이터를 다른 스케일러빌리티 계층 또는 뷰의 제 2 픽처로부터의 예측을 사용함으로써 디코딩하게 하고,
상기 인코딩된 비디오 데이터로부터 코딩 모드 - 상기 코딩 모드는 다른 스케일러빌리티 또는 뷰의 픽처로부터의 예측을 이용함 - 의 표시를 디코딩하게 하고,
상기 인코딩된 비디오 데이터로부터 다른 스케일러빌리티 계층 또는 뷰의 복수개 픽처를 갖는 참조 리스트 중 제 1 픽처의 참조 식별자를 디코딩하게 하도록 구성된다.
DD14. 장치는 적어도 하나의 프로세서, 메모리, 및 상기 메모리 내 컴퓨터 프로그램 코드를 포함하며, 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서 상에서 실행될 때, 장치로 하여금,
제 1 비디오 블록 - 상기 제 1 비디오 블록은 제 1 움직임 정보와 연관됨 - 의 인코딩된 비디오 데이터를 디코딩하게 하고,
상기 제 1 비디오 블록에 대해 제공되는 깊이 정보를 이용함으로써 제 1 움직임 정보를 조정하여 조정된 제 1 움직임 정보를 취득하게 하고,
조정된 제 1 움직임 정보를 사용함으로써 제 2 움직임 정보 - 상기 제 2 움직임 정보는 제 2 비디오 블록과 연관됨 - 를 예측하게 하도록 구성된다.
DD15. 예 DD14에 따른 장치에서, 제 1 비디오 블록의 상기 인코딩된 비디오 데이터는 참조 픽처를 식별하는 참조 인덱스 및 차분 움직임 벡터의 그룹 중 적어도 하나를 포함한다.
DD16. 예 DD14에 따른 장치에서,
조정된 제 1 움직임 정보는,
인터-뷰 예측에 대한 제 1 비디오 블록의 예측 유형과,
인터-뷰 참조 픽처를 표시하는 참조 인덱스와,
상기 깊이 정보로부터 도출되는 디스패리티와 동일한 움직임 벡터와,
상기 깊이 정보로부터 상기 디스패리티 도출의 그래뉴러리티에 따른 블록 분할의 그룹 중 적어도 하나의 파라미터를 포함하며, 장치는 장치로 하여금,
조정 시 상기 적어도 하나의 파라미터의 값을 설정하게 하도록 구성된 컴퓨터 프로그램 코드를 포함한다.
DD17. 예 DD14 내지 예 DD16 중 어느 예에 따른 장치는, 장치로 하여금,
제 2 움직임 정보와 연관된 상기 제 2 비디오 블록의 인코딩된 비디오 데이터를 디코딩하게 하도록 구성되는 컴퓨터 프로그램 코드를 포함하며, 상기 제 1 비디오 블록은 제 1 픽처 내에 존재하며 상기 제 2 비디오 블록은 제 1 픽처와 상이한 제 2 픽처 내에 존재한다.
DD18. 장치는 예 D1 내지 예 D17 중 어느 예에 따른 방법을 실행하기 위한 수단을 포함한다.
DC1. 비디오 데이터를 디코딩하기 위한 컴퓨터 프로그램 제품은 비일시적 컴퓨터 판독가능한 매체 상에서 구현되며, 상기 컴퓨터 프로그램 제품은 컴퓨터 프로그램 코드가 프로세스에서 실행될 때, 장치로 하여금 예 D1 내지 D17 중 어느 예에 따른 방법을 실행하게 하도록 구성된 상기 컴퓨터 프로그램 코드를 포함한다.
SS1. 비디오 전송을 위한 시스템은 예 ED1 내지 예 ED18 중 어느 예에 따른 하나 이상의 장치 및 예 DD1 내지 예 DD18 중 어느 예에 따른 하나 이상의 장치를 포함한다.
전술한 예는 상이한 예시적인 실시예의 특징들이 조합될 수 있도록 한정하지 않는 것으로 이해하여야 한다. 예를 들면, 사용될 예측의 방식을 표시하고 움직임 벡터 정보를 시그널링하기를 생략하는 것이 함께 적용될 수 있다. 다른 예로서, 예측 방식을 표시하고 예측을 위한 움직임 정보를 조정하는 것이 함께 적용될 수 있다. 개개의 특징의 임의의 조합은 기술적으로 실행 가능한 본 설명의 범위 내에서 이루어질 수 있다. 예를 들면, 예측 방식을 표시하는 것은 일부 또는 다른 모든 실행 가능한 실시예의 조합에서 이용될 수 있거나, 단독으로 실행될 수 있다. 또 다른 예로서, 움직임 벡터를 시그널링하기를 생략하는 것은 일부 또는 다른 모든 실행 가능한 실시예의 조합에서 이용될 수 있거나, 단독으로 실행될 수 있다. 또 다른 예로서, 디스패리티 보상에 기초하여 예측을 표시하는 것은 단독으로 또는 예측을 위한 움직임 정보를 조정하기 위해 깊이 정보를 이용하는 것과 함께 사용될 수 있거나, 단독으로 사용될 수 있다. 유사한 방식으로, 숙련된 자는 임의의 특징을 함께 사용하지 않는 특정한 기술적인 아무런 근거도 존재하지 않는 경우, 그러한 특징이 함께 사용될 수 있다고 이해할 것이다.
본 발명의 예시적인 실시예의 더 완전한 이해를 위하여, 이제 첨부 도면과 관련하여 설명되는 다음과 같은 설명이 참조될 것이다.
도 1a 및 도 1b는 실시예에 따라서 현재 코딩되는 매크로블록(coded macroblock)(cb)의 움직임 벡터 예측을 위해 공간(a) 및 시간(b) 이웃이 사용되는 것을 예시한다.
도 1c는 실시예에 따라서 특별한 사례의 8x16 및 16x8 매크로블록 파티션에서 움직임 벡터 예측을 예시한다.
도 2a는 움직임 벡터 예측이 수행되는, 현재 블록(Cb)의 공간 이웃의 일 예를 예시한다.
도 2b는 움직임 벡터 예측이 수행되는, 현재 블록(Cb)의 시간 이웃의 일 예를 예시한다.
도 3a는 실시예에 따라서 스테레오스코픽 카메라 구성의 2D 모델을 도시한다.
도 3b는 실시예에 따라서 멀티뷰 카메라 구성의 간략화된 2D 모델을 도시한다.
도 4는 실시예에 따라서 멀티뷰 자동 스테레오스코픽 디스플레이(Auto-Steroscopic Display, ASD)의 간략화된 모델을 도시한다.
도 5a는 실시예에 따라서 이웃 블록 기반 디스패리티 도출 시 활용되는 명명 규칙(naming convention)을 예시한다.
도 5b 및 도 5c는 실시예에 따라서 스킵(Skip)/디렉트(Direct) 움직임 벡터 예측을 위한 디스패리티 벡터 도출 절차를 도시한다.
도 6은 멀티뷰 애플리케이션의 DIBR 기반 3DV 해법의 일 예를 도시한다.
도 7은 실시예에 따라서 VSP 가능 멀티뷰 비디오 인코더의 플로우차트를 도시한다.
도 8a는 실시예에 따라서 VSP 기반 인코딩을 위한 ME/MCP 체인의 플로우차트를 도시한다.
도 8b는 실시예에 따라서 VSP 기반 디코딩을 위한 ME/MCP 체인의 플로우차트를 도시한다.
도 9는 실시예에 따라서 깊이 데이터를 비디오 데이터와 함께 사용하는 것을 예시한다.
도 10a, 도 10b, 도 10c, 및 도 10d는 하나 이상의 실시예에 따라서 비디오를 코딩하는 플로우차트를 도시한다.
도 12a 및 도 12b는 예시적인 실시예에 따라서 비디오 코딩을 실행하기 위한 시스템 및 장치를 도시한다.
본 단원에서 최신 비디오 코딩(Advanced Video Coding) 표준(H.264/AVC) 및 고효율 비디오 코딩(High Efficiency Video Coding) 표준(H.265/AVC)의 몇 가지 정의, 비트스트림과 코딩 구조체, 및 개념이 비디오 인코더, 디코더, 인코딩 방법, 디코딩 방법, 및 비트스트림 구조체의 예로서 설명된다. 본 발명은 H.264/AVC 또는 H.265/AVC으로 한정되지 않고, 그 대신 본 발명이 부분적으로 또는 전체적으로 실현될 수 있는 것 이외에 한 가지 가능한 근거에 대하여 설명된다. 다음의 설명에서, 몇 가지 예가 제공될 것이다. 예는 청구범위의 범위를 한정하는 것으로 이해하지 않아야 하며, 그 보다는 본 발명을 만들고 사용하기 위한 설명을 제공하는 것이다. 여러 예의 특징들이 조합될 수 있거나, 개개의 예의 특징이 단독으로 사용될 수 있다.
H.264/AVC 및 HEVC을 설명할 때는 물론이고 예시적인 실시예에서, 예를 들면 H.264/AVC 또는 HEVC에서 명시된 바와 같은 산술 연산자, 논리 연산자, 관계형 연산자, 비트 연산자(bit-wise operator), 할당 연산자, 및 범위 표기에 공통적인 표기법이 사용될 수 있다. 뿐만 아니라, 예를 들면 H.264/AVC 또는 HEVC에서 명시된 바와 같은 공통적인 수학적 함수가 사용될 수 있으며, 예를 들면, H.264/AVC 또는 HEVC에서 명시된 바와 같은 연산자들의 우선순서 및 실행 순서(좌에서 우로 또는 우에서 좌로)의 일반적인 순서가 사용될 수 있다.
H.264/AVC 및 HEVC을 설명할 때 뿐만 아니라 예시적인 실시예에서, 다음과 같은 서술자(descriptor)는 각 신택스 요소의 분석 프로세스(parsing process)를 명시하는데 사용될 수 있다.
- b(8): 임의 패턴의 비트 스트링을 갖는 바이트(8비트).
- se(v): 좌측 첫 번째 비트로서, 부호 붙임 정수형(signed integer) Exp-Golomb-coded 신택스 요소.
- u(n): n 비트를 사용한 무부호 정수(unsigned integer). 신택스 테이블에서 n이 "v"일 때, 비트의 개수는 다른 신택스 요소의 값에 의존하는 방식으로 변한다. 이러한 서술자의 파싱 프로세스는 첫 번째로 쓰여진 최상위 비트로서, 무부호 정수의 이진 표현으로서 해석되는 비트스트림으로부터 n개 다음 비트로 명시된다.
- ue(v): 좌측 첫 번째 비트로서, 무부호 정수형 Exp-Golomb-coded 신택스 요소.
- ae(v): 컨텍스트-적응적 산술 엔트로피-코딩된 신택스 요소.
- te(v): 왼쪽 첫 번째 비트로서, 절단된(truncated) Exp-Golomb-coded 신택스 요소.
Exp-Golomb 비트 스트링은 예를 들면 하기 테이블을 이용하여 코드 번호(codeNum)로 변환될 수 있다.
Figure 112015109641360-pct00001
Exp-Golomb 비트 스트링에 대응하는 코드 번호는 예를 들면 하기 테이블을 이용하여 se(v)로 변환될 수 있다.
Figure 112015109641360-pct00002
H.264/AVC 및 HEVC을 설명할 때뿐만 아니라 예시적인 실시예에서, 신택스 구조, 신택스 요소의 시맨틱, 및 디코딩 프로세스는 다음과 같이 명시될 수 있다. 비트스트림에서 신택스 요소는 볼드체로 표시된다. 각각의 신택스 요소는 그의 명칭(모두 밑줄표시 문자를 가진 소문자), 옵션으로 하나 또는 두 개의 그의 신택스 카테고리, 및 그의 코딩된 표현 방법에 대한 하나 또는 두 개의 서술자로 기술된다. 디코딩 프로세스는 신택스 요소의 값 및 이전에 디코딩된 신택스 요소의 값에 따라서 수행된다. 신택스 요소의 값이 신택스 테이블이나 텍스트에서 사용될 때, 이 값은 정규적인 (즉, 볼드체 아닌) 형태로 나타난다. 일부 사례에서, 신택스 테이블은 신택스 요소 값으로부터 도출되는 다른 변수의 값을 사용할 수 있다. 그러한 변수는 소문자와 대문자의 혼합이라고 명명되고 어떠한 밑줄표시 문자도 없는 신택스 테이블이나 텍스트에서 출현한다. 대문자로 시작하는 변수는 현재 신택스 구조 및 종속하는 모든 신택스 구조를 디코딩하기 위해 도출된다. 대문자로 시작하는 변수는 변수의 원래 신택스 구조를 언급하지 않고 나중의 신택스 구조를 위한 디코딩 프로세스에서 사용될 수 있다. 소문자로 시작하는 변수는 그 변수가 도출된 컨텍스트 내에서만 사용될 뿐이다. 일부 사례에서, 신택스 요소 값 또는 변수 값에 대한 "연상 기호" 이름은 이들의 수치 값과 같은 의미로 사용된다. 때때로 "연상 기호" 이름은 임의의 수치 값과 연관되지 않고 사용된다. 값과 이름의 연관 관계는 텍스트에서 명시된다. 이름은 밑줄표시 문자에 의해 분리된 하나 이상의 문자 그룹으로부터 구성된다. 각 그룹은 대문자로 시작하며 더 많은 대문자를 포함할 수 있다.
H.264/AVC 및 HEVC을 설명할 때뿐만 아니라 예시적인 실시예에서, 신택스 구조는 다음과 같은 것을 이용하여 명시될 수 있다. 중괄호로 둘러싸인 스테이트먼트 그룹은 복합 스테이트먼트(compound statement)이며 기능적으로 단일의 스테이트먼트로 취급된다. "while" 구조는 조건이 참(true)인지 여부의 테스트를 명시하며, 만일 참이면, 그 조건이 더 이상 참이 아닐 때까지 스테이트먼트(또는 복합 스테이트먼트)의 평가를 반복적으로 명시한다. "do ... while" 구조는 스테이트먼트를 한번 평가한 뒤에, 조건이 참인지 여부의 테스트를 명시하며, 만일 참이면, 그 조건이 더 이상 참이 아닐 때까지 스테이트먼트의 반복된 평가를 명시한다. "if ... else" 구조는 조건이 참인지 여부의 테스트를 명시하며, 만일 조건이 참이면, 초기 스테이트먼트의 평가를 명시하고, 그렇지 않으면 대안의 스테이트먼트의 평가를 명시한다. 만일 어떠한 대안의 스테이트먼트 평가도 필요하지 않으면 그 구조의 "else" 부분 및 연관된 대안의 스테이트먼트는 생략된다. "for" 구조는 초기 스테이트먼트의 평가를 명시하고 뒤이어, 조건의 테스트를 명시하며, 만일 조건이 참이면, 그 조건이 더 이상 참이 아닐 때까지 초기 스테이트먼트와 뒤이어 후속 스테이트먼트의 반복된 평가를 명시한다.
약어 및 머리글자의 리스트
아래에서, 본 설명에서 사용되는 몇 가지 약어 및 머리글자가 설명된다.
H.264/AVC - 최신 비디오 코딩(Advanced Video Coding), 비디오 코딩 표준
MVC - 멀티뷰 비디오 코딩(Multiview Video Coding), 코딩 표준
HEVC - 고 효율 비디오 코딩(High Efficiency Video Coding), JCT-VC 그룹에 의해 개발 중인 비디오 코딩 기술
3DV - 3차원 비디오(Three-Dimensional Video)
DIBR - 깊이-이미지-기반 렌더링(depth-image-based rendering)
MCP - 움직임 보상 예측(motion compensated prediction)
MVP - 움직임 벡터 예측(motion vector prediction) 또는 움직임 벡터 예측기(motion vector predictor)
VSP - 뷰 합성 예측(view synthesis prediction)(뷰 합성은 루프에서 실시됨)
MVD - 멀티뷰 비디오+깊이(multiview video + depth)
MVC-VSP - 코딩 루프에서 뷰 합성 예측을 수행하는 MVC
3DV-ATM - AVC 호환 3D 비디오 표준 개발을 위한 참조 소프트웨어 및/또는 코덱 설명
비디오 코딩 개념
비디오 코덱은 입력 데이터를 저장/전송에 적절한 표현으로 압축하는 인코딩 개체(인코더) 및 역 동작을 수행하는 디코딩 개체(디코더)를 포함할 수 있다. 아래의 설명에서, 코덱은 인코더 또는 디코더 아니면 이들 둘 다 내지 인코더 및 디코더를 지칭할 수 있다.
데이터 압축은 비디오와 같은 다차원 데이터에서 승계된 공간, 시간 및 통계적 중복을 이용함으로써 성취될 수 있다. 전형적으로, 최신 기술 코덱의 상당한 압축 효율은 비디오 표현의 충실도를 비트레이트로 절충시킨 손실 코딩에 의해 성취된다.
대부분의 최신 기술 코딩 표준, 이를 테면, ITU-T H.261, H.263, H.264 및 H.265는 동일한 하이브리드 비디오 코딩 개념에서 구축되며 다음과 같은 요소를 활용한다:
1) 픽처 -레벨 처리
2D 비디오는 명백히 명시되고 반복적인 절차를 통해 픽처 시퀀스로서 코딩된다. 2D 픽처는 인트라 코딩과 같은 여러 코딩 모드로 코딩될 수 있으며/있거나 초기에 코딩된 픽처(들)로부터 예측될 수 있다.
2) 블록 처리
각각의 2D 픽처는 비디오 샘플의 비중첩 블록(non-overlapped block)의 시퀀스로서 코딩된다. 처리 블록의 크기는 전형적으로 인코더에 의해 선택될 수 있으며/있거나 더 효율적인 코딩 및 구현을 도모하기 위해 코딩 표준에 의해 제약될 수 있는데, 예를 들어, 4x4 블록은 H.264/AVC의 움직임 파티션에서 사용되며, 예를 들어, 64x64 블록은 H.265 디자인에서 코딩 유닛(Coding Unit, CU)으로서 활용될 수 있다. 코덱이 비디오 데이터의 상이한 블록으로부터 승계된 중복을 활용할지라도, 각각의 블록은 대부분 독립적으로 처리된다. 그러한 중복을 활용하는 툴의 비제한적인 예는 움직임 보상 예측(Motion Compensated Prediction, MCP) 및 움직임 벡터 예측(Motion vector prediction, MVP)이다.
일부 비디오 코덱에서, 픽처는 단색 포맷(monochrome format)이 사용 중일 때는 루마 샘플의 어레이를 포함할 수 있거나, 또는 루마 샘플의 어레이 및 크로마 샘플의 대응하는 두 어레이를 포함할 수 있다. 픽처가 세 개의 샘플 어레이를 포함하는 사례에서, 픽처는 일부 사례에서 개별 컬러 평면으로서 코딩될 수 있으며, 이때 각각의 샘플 어레이는 마찬가지로 단색 픽처로 코딩될 수 있다.
일부 비디오 코덱에서, 코딩 트리 유닛(coding tree unit, CTU)은 세 개의 샘플 어레이를 갖는 픽처의 루마 샘플의 코딩 트리 블록 및 크로마 샘플의 대응하는 두 코딩 트리 블록을 포함한다. CTU는 단색 픽처 또는 세 개의 개별 컬러 평면을 사용하여 코딩되는 픽처의 샘플의 코딩 트리 블록 및 그 샘플을 코딩하는데 사용되는 신택스 구조를 포함한다. 코딩 트리 블록(coding tree block, CTB)은 하나의 컴포넌트를 코딩 트리 블록으로 나누는 것이 분할(partitioning)이도록 어떤 N의 값에 대해 NxN 샘플 블록이다. 분할은 하나의 세트를 서브세트로 나누어서 그 세트의 각각의 요소가 서브세트의 정확히 하나에 속하는 것이라고 정의될 수 있다.
일부 비디오 코덱에서, 코딩 유닛은 세 개의 샘플 어레이를 갖는 픽처의 루마 샘플의 코딩 블록 및 크로마 샘플의 대응하는 두 코딩 블록이거나, 또는 단색 픽처 또는 세 개의 별개 컬러 평면을 사용하여 코딩된 픽처의 샘플의 코딩 블록이다. 코딩 블록은 하나의 코딩 트리 블록을 코딩 블록들로 나누는 것이 분할하는 것이도록 어떤 N 값에 대해 NxN 샘플 블록이다.
일부 비디오 코덱에서, 예측 유닛은 세 개의 샘플 어레이를 갖는 픽처의 루마 샘플의 예측 블록 및 크로마 샘플의 대응하는 두 예측 블록이거나, 아니면 단색 픽처 또는 세 개의 별개 컬러 평면을 사용하여 코딩된 픽처의 샘플의 예측 블록이다. 예측 블록은 동일한 예측이 적용되는 장방형의(rectangular) MxM 샘플 블록이다.
일부 비디오 코덱에서, 변환 유닛은 세 개의 샘플 어레이를 갖는 픽처의 루마 샘플의 하나 이상의 예측 블록 및 크로마 샘플의 대응하는 변환 블록이거나, 또는 단색 픽처 또는 세 개의 별개 컬러 평면을 사용하여 코딩된 픽처의 루마 샘플의 하나 이상의 변환 블록이다. 변환 유닛에 대하여 루마 샘플 블록의 가용 블록 크기 및 개수는 예를 들면 코딩 표준에 의해 제약될 수 있다. 예를 들면, H.265에서, 변환 유닛은 8x8, 16x16, 또는 32x32 크기를 가진 루마 샘플의 한 변환 블록 또는 4x4 크기를 가진 루마 샘플의 네 개의 변환 블록이거나, 세 개의 샘플 어레이를 갖는 픽처의 크로마 샘플의 대응하는 두 개의 변환 블록이거나, 또는 단색 픽처 또는 세 개의 별개 컬러 평면을 사용하여 코딩된 픽처의 8x8, 16x16, 또는 32x32 크기를 가진 루마 샘플의 한 변환 블록 또는 4x4 크기를 가진 루마 샘플의 네 개의 변환 블록이다.
일부 비디오 코덱에서, 픽처는 픽처의 영역을 다루는 코딩 유닛(coding unit, CU)으로 나누어진다고 간주될 수 있다. CU는 CU 내 샘플들의 예측 프로세스를 정의하는 하나 이상의 예측 유닛(prediction unit, PU) 및 상기 CU 내 샘플들의 예측 오류 코딩 프로세스를 정의하는 하나 이상의 변환 유닛(transform unit, TU)으로 구성된다. 전형적으로, CU는 미리 정의된 한 세트의 가능한 CU 크기로부터 선택가능한 크기를 가진 정방형(square) 샘플 블록으로 이루어진다. 최대로 허용된 크기를 가진 CU는 전형적으로 CTU(coding tree unit)라고 명명되며 픽처는 중첩하지 않는 CTU들로 나누어진다. CTU는 예를 들어, CTU와 그 결과의 CU를 반복적으로 나눔으로써 더 작은 CU들의 조합으로 더 나누어질 수 있다. 각각의 결과적인 CU는 전형적으로 적어도 하나의 PU 및 그와 연관된 적어도 하나의 TU를 갖는다. CU는 각기 예측 및 예측 오차 코딩 프로세스의 더 세분화된 그래뉴러리티를 얻기 위해 하나 이상의 PU 및 TU로 분할될 수 있다. 각각의 PU는 그와 연관되어 무슨 종류의 예측이 그 PU 내 픽셀에 적용될 것인지를 정의하는 예측 정보(예를 들면, 인터 예측된 PU에 대한 움직임 벡터 정보 및 인트라 예측된 PU에 대한 인트라 예측 방향성 정보(intra prediction directionality information))를 갖는다. 유사하게, 각 TU는 상기 TU 내 샘플들에 대한 예측 오차 디코딩 프로세스를 서술하는 정보(예를 들면, DCT 계수 정보를 포함함)와 연관될 수 있다. 전형적으로 CU 레벨에서는 각 CU마다 예측 오차 코딩이 적용되는지가 시그널링된다. CU와 연관된 아무런 예측 오차 잔차(prediction error residual)도 없는 경우, 이것은 CU에 대해 아무런 TU도 없다고 간주될 수 있다. 픽처를 CU로 나누고, CU를 PU 및 TU로 나누는 것은 전형적으로 비트스트림에서 시그널링되어 디코더가 이러한 유닛들의 의도한 구조를 재생하게 한다.
일부 비디오 코덱에서, 매크로블록은 세 개의 샘플 어레이를 갖는 픽처의 16x16 루마 샘플 블록 및 대응하는 두 개의 크로마 샘플 블록으로서 정의되거나, 또는 단색 픽처 또는 세 개의 별개 컬러 평면을 사용하여 코딩된 픽처의 16x16 샘플 블록으로서 정의될 수 있다. 픽처는 픽처 영역을 다루는 매크로블록으로 분할되는 것으로 간주될 수 있다.
일부 비디오 코덱에서, 매크로블록 파티션은 세 개의 샘플 어레이를 갖는 픽처의 인터 예측을 위해 매크로블록을 분할하여 생성된 루마 샘플 블록 및 대응하는 두 개의 크로마 샘플 블록으로서 정의되거나, 또는 단색 픽처 또는 세 개의 별개 컬러 평면을 사용하여 코딩된 픽처의 인터 예측을 위해 매크로블록을 분할하여 생성된 루마 샘플 블록으로서 정의될 수 있다.
일부 비디오 코덱에서, 서브-매크로블록은 매크로블록의 샘플의 1/4, 즉 그의 하나의 코너가 세 개의 샘플 어레이를 갖는 픽처의 매크로블록의 코너에 위치하는 하나의 8x8 루마 블록 및 대응하는 두 개의 크로마 블록으로서 정의될 수 있거나, 또는 그의 하나의 코너가 단색 픽처 또는 세 개의 별개 컬러 평면을 사용하여 코딩된 픽처의 매크로블록의 코너에 위치하는 8x8 루마 블록으로서 정의될 수 있다.
일부 비디오 코덱에서, 서브-매크로블록 파티션은 세 개의 샘플 어레이를 갖는 픽처의 인터 예측을 위해 서브-매크로블록을 분할하여 생성된 하나의 루마 샘플 블록 및 대응하는 두 개의 크로마 샘플 블록으로서 정의될 수 있거나, 또는 단색 픽처 또는 세 개의 별개 컬러 평면을 사용하여 코딩된 픽처의 인터 예측을 위해 서브-매크로블록을 분할하여 생성되는 루마 샘플 블록으로서 정의될 수 있다.
3) 데이터 예측
이 개념은 비디오 데이터에 존재하는 공간, 시간 또는 인터-뷰/인터-계층 중복으로부터 이득을 얻기 위해 활용된다.
비디오 샘플 블록은 예를 들어 특정한 인트라 코딩 모드에서 개별적으로 코딩될 수 있을 뿐만 아니라, 예측될 수 있다. 다음과 같은 여러 유형의 예측이 적용될 수 있다:
샘플 예측
샘플 예측은 참조 블록(Rb)의 샘플 값으로부터 현재 블록(Cb)의 샘플 값의 예측을 가능하게 한다.
샘플 예측은 참조 블록의 위치를 결정하기 위해 움직임 정보가 적용되는 움직임 보상 예측을 포함할 수 있다. 전형적으로 움직임 정보는 각각의 움직임 보상 블록(Cb)과 연관된 움직임 벡터로 표시된다. 각각의 이러한 움직임 벡터는 (인코더 측에서) 코딩될 또는 (디코더 측에서) 디코딩될 픽처 내 블록(Cb)과 이전에 코딩된, 디코딩된, 또는 합성된 픽처 중 한 픽처 내 참조 블록(Rb)의 변위 또는 위치 차를 나타낸다.
그러한 예측의 상이한 버전은 Cb 및 Rb가 상이한 픽처에 위치할 때는 인터 예측을 포함하며, Cb 및 Rb의 샘플이 동일한 픽처에 위치할 때는 인트라 픽처를 포함한다.
인터 예측은 이전에 코딩된/디코딩된 픽처가 참조로서 사용될 때의 인터-뷰 예측(inter-view prediction)과, 픽처가 다른 코딩된 뷰에 존재하되 시간적으로 현재 픽처와 일치하지 않는(예를 들면, 현재 픽처와 동일한 촬영 시간 또는 출력 시간을 갖지 않는) 픽처가 참조로서 활용될 때의 직교 인터-뷰 예측(diagonal inter-view prediction)과, 합성된(렌더링된) 픽처가 참조로서 활용될 때의 뷰 합성 예측(view synthesis prediction), 및 코딩된 다른 계층에 존재하는 픽처가 참조로서 활용되는 경우의 인터-계층 예측(inter-layer prediction)으로 더 분류될 수 있다.
움직임 파라미터 예측
움직임 파라미터 예측 - Cb에 적용 가능한 움직임 모델의 파라미터가 Rb를 코딩하기 위해 활용되는 움직임 모델로부터 예측될 때. 그러한 예측의 예는 MVP 또는 움직임 벡터 승계(motion vector inheritance, MVI)를 포함한다.
전형적인 비디오 코덱에서, 예측된 움직임 벡터는 미리 정의된 방법으로, 예를 들면, 인접한 블록의 인코딩된 또는 디코딩된 움직임 벡터의 중간값(median)을 계산함으로써 생성된다. 움직임 벡터 예측을 생성하는 또 다른 방법은 시간 참조 픽처 내에서 인접한 블록 및/또는 동일위치에 있는 블록(co-located block)으로부터 후보 예측의 리스트를 만들고 선택된 후보를 움직임 벡터 예측기로서 시그널링하는 것이다. 움직임 벡터를 효과적으로 표현하기 위하여, 통상적으로 움직임 벡터는 블록별로 예측된 움직임 벡터에 대해 차분코딩된다. 움직임 벡터 값을 예측하는 것 이외에도, 이전에 코딩된/디코딩된 픽처를 시사하거나 참조하는 참조 인덱스가 예측될 수 있다. 참조 인덱스는 통상적으로 참조 픽처 내 인접 블록 및/또는 동일-위치에 있는 블록으로부터 예측된다. 더욱이, 비디오 코덱은 종종 머징(merging)/머지(merge) 모드라고 호칭하는 부가적인 움직임 정보 코딩/디코딩 메커니즘을 이용할 수 있는데, 이 메커니즘에서 (코딩 모드에 의해 결정된 것으로서) 각각의 사용 가능한 또는 사용된 참조 픽처 리스트마다 하나의 움직임 벡터 및 대응하는 참조 픽처 인덱스를 포함하는 모든 움직임 필드 정보가 어떠한 수정/교정 없이 예측되고 사용된다. 유사하게, 움직임 필드 정보를 예측하는 것은 참조 픽처 내 인접 블록 및/또는 동일-위치에 있는 블록의 움직임 필드 정보를 사용하여 실행되며 사용된 움직임 필드 정보는 사용 가능한 인접/동일-위치 블록의 움직임 필드 정보로 채워진 움직임 필드 후보 리스트 중 한 리스트에서 시그널링된다.
멀티-컴포넌트 형태의 데이터, 예를 들면 멀티뷰 비디오 플러스 깊이 데이터를 코딩하는 사례에서, 인터-컴포넌트 예측이 활용될 수 있다. 예를 들면, 비디오 데이터 모델을 서술하는 움직임 정보는 깊이 데이터를 서술하는 움직임 정보를 예측하기 위해 활용될 수 있다.
변환 코딩
이 개념은 통상적으로 비디오 데이터에 존재하는 공간 중복으로부터 이득을 얻기 위해 활용된다.
(원(original) 또는 예측된) 비디오 샘플 블록은 통상적으로 1D, 2D 또는 3D 변환 처리되어 더 압축한 주파수 기반 표현으로 생성된다. 이러한 목적을 위해 활용된 변환 형태는 특정 형태의 신호에다 높은 코딩 이득을 제공하고 입력 샘플 블록을 최소량의 논-제로의 변환 계수로 표현하는 그런 목적으로서 선택된다. 그러한 변환의 예는 2D 분리 가능한 이산 코사인 변환(Discreet Cosine Transform, DCT), 사인 변환(Sine Transform) 또는 이들의 변형 방식이다.
엔트로피 코딩
일단 비디오 데이터의 샘플이 예측 및 변환 계수 및/또는 변수로 모델링되면, 이 모델의 파라미터는 여전히 통계적 중복을 보존하고 있을 수 있다. 이러한 정보를 더 압축한 방식으로 표현하기 위해 각종 엔트로피 코딩 방법이 활용된다. 그러한 방법의 비제한적인 예는 가변 길이 코딩(Variable Length Coding, VLC) 또는 컨텍스트 적응적 이진 산술 코딩(Context Adaptive Binary Arithmetic Coding, CABAC)을 포함한다.
비디오 코딩 시 움직임 보상 예측( MCP )
MCP에서, 현재 블록(Cb)의 샘플은 참조 블록(Rb)의 샘플로부터 예측된다. MCP의 파라미터는 움직임 정보를 포함할 수 있으며, 이 움직임 정보는 소스(참조 픽처), 블록 크기(파티션 또는 예측 유닛(PU)) 및 하나 이상의 움직임 벡터를 식별하는 하나 이상의 참조 인덱스를 포함할 수 있다. 각각의 이러한 움직임 벡터는 (인코더 측에서) 코딩될 또는 (디코더 측에서) 디코딩될 픽처 내 블록과 이전의 재구성된 픽처 또는 디코딩된 픽처 중 하나의 픽처 내 예측 소스 블록과의 변위를 나타낼 수 있다. 인터 예측을 사용하는 예측 유닛의 경우, 참조 픽처들 중 하나의 참조 픽처 내에서 유사 블록이 표시될 수 있으며, 만일 양방향 예측이 사용된다면, 참조 픽처들 중 하나의 참조 픽처 내에서 제 2의 유사 블록이 또한 표시될 수 있다. 예측 블록(들)의 위치는 코딩되는 블록과 비교되는 예측 블록(들)의 위치(들)를 표시하는 움직임 벡터(들)로서 코딩된다.
움직임 벡터를 효과적으로 표현하기 위하여, 움직임 벡터는 블록별 예측된 움직임 벡터에 대해 차분 코딩될 수 있다. 많은 비디오 코덱에서, 예측된 움직임 벡터는 미리 정의된 방법으로, 예를 들면, 인접 블록의 인코딩된 또는 디코딩된 움직임 벡터의 중간값을 계산함으로써 생성된다. 때로는 최신 움직임 벡터 예측(advanced motion vector prediction, AMVP)이라고 지칭되는 움직임 벡터 예측을 생성하는 다른 방법은 참조 픽처 내에서 인접한 블록 및/또는 동일위치의 블록으로부터 후보 예측의 리스트를 생성하고 선택된 후보를 움직임 벡터 예측기로서 시그널링하는 것이다.
많은 코딩 표준은 인터 예측을 위해 복수의 참조 픽처를 사용할 수 있게 한다. H.264/AVC 및 HEVC과 같은 많은 코딩 표준은 하나보다 많은 참조 픽처가 사용될 때 디코더가 인터 예측에서 사용될 하나 이상의 참조 픽처 리스트를 생성할 수 있게 하는 신택스 구조를 비트스트림에 포함시킨다. 참조 픽처 리스트에 대한 참조 픽처 인덱스는 복수의 참조 픽처 중 어느 픽처가 특정 블록에 대한 인터 예측을 위해 사용되는지를 표시하기 위해 사용될 수 있다. 그러므로 참조 픽처를 식별하는 참조 픽처 인덱스 또는 임의의 다른 유사 정보는 움직임 벡터와 연관되거나 움직임 벡터의 일부로 간주될 수 있다. 참조 픽처 인덱스는 몇몇 인터 코딩 모드에서 인코더에 의해 비트스트림으로 코딩될 수 있거나 또는 예를 들면 몇몇 다른 인터 코딩 모드에서 이웃 블록을 이용하여 (인코더 및 디코더에 의해) 도출될 수 있다. H.264/AVC 및 HEVC의 많은 코딩 모드에서, 인터 예측을 위한 참조 픽처는 참조 픽처 리스트에 대한 인덱스로 표시된다. 인덱스는 통상적으로 인덱스가 작을수록 대응하는 신택스 요소가 더 짧은 값을 갖게 하는 가변 길이 코딩으로 코딩될 수 있다. H.264/AVC 및 HEVC에서, 두 참조 픽처 리스트(참조 픽처 리스트 0 및 참조 픽처 리스트 1)는 각각의 양방향-예측 또는 양방향-예측된 (B) 슬라이스마다 생성되며 하나의 참조 픽처 리스트(참조 픽처 리스트 0)는 각각의 인터-코딩된 또는 단방향-예측된 (P) 슬라이스마다 형성된다. 또한, 초안 HEVC 표준에서 B 슬라이스에 대해, 최종 참조 픽처 리스트(List 0 및 List 1)가 구성된 이후에 결합된 리스트(List C)가 구성될 수 있다. 결합된 리스트는 B 슬라이스 내에서 단방향-예측(단일-방향 예측이라고도 알려짐)을 위해 사용될 수 있다.
예를 들면 상이한 후보 자리 세트 및 후보 자리 세트를 가진 후보 위치에 따라서 AMVP의 다른 유사한 실현이 또한 가능하겠지만, AMVP는 예를 들면 다음과 같이 동작할 수 있다. 두 개의 공간 움직임 벡터 예측기(spatial motion vector predictor, MVP)가 도출될 수 있으며 시간 움직임 벡터 예측기(temporal motion vector predictor, TMVP)가 도출될 수 있다. 이들 예측기는 도 2a에 도시된 자리 중, 즉 현재 예측 블록 위에 위치하는 세개의 공간 MVP 후보(B0, B1, B2) 및 좌측편의 두개의 공간 MVP 후보(A0, A1) 중에서 선택된다. 각각의 후보 자리 세트(B0, B1, B2) 또는 (A0, A1)의 미리 정의된 순서대로 사용 가능한(예를 들면, 동일한 슬라이스 내에 존재하는, 인터-코딩된, 등등) 제 1 움직임 벡터 예측기는 움직임 벡터 경쟁에서 그 예측 방향(위 또는 왼쪽)을 표현하도록 선택될 수 있다. TMVP의 참조 인덱스는 인코더에 의해 슬라이스 헤더 내에서 (예를 들면, collocated_ref_idx 신택스 요소로서) 표시될 수 있다. 동일위치의 픽처로부터 취득되는 움직임 벡터는 TMVP의 참조 픽처, 동일위치의 픽처, 및 현재 픽처의 픽처 순서 카운트 차의 비율에 따라서 스케일링될 수 있다. 더욱이, 후보들 사이에서 중복 검사(redundancy check)가 수행되어 동일한 후보를 제거할 수 있는데, 이로써 후보 리스트에 MV가 하나도 포함되지 않도록 할 수 있다. 움직임 벡터 예측기는 예를 들면 공간 MVP의 방향(위 또는 왼쪽) 또는 TMVP 후보의 선택을 표시함으로써 비트스트림 내에 표시될 수 있다.
움직임 벡터 값을 예측하는 것 이외에, 이전에 코딩된/디코딩된 픽처의 참조 인덱스가 예측될 수 있다. 참조 인덱스는 시간 참조 픽처 내 인접한 블록으로부터 및/또는 동일위치의 블록으로부터 예측될 수 있다.
더욱이, 많은 고효율 비디오 코덱은 종종 머징/머지 모드라고 호칭하는 부가적인 움직임 정보 코딩/디코딩 메커니즘을 이용하는데, 이 메커니즘에서 각각의 사용 가능한 참조 픽처 리스트마다 움직임 벡터 및 대응하는 참조 픽처 인덱스를 포함하는 모든 움직임 필드 정보가 예측되고 임의의 수정/교정 없이 사용된다. 유사하게, 움직임 필드 정보를 예측하는 것은 시간 참조 픽처 내 인접 블록 및/또는 동일위치에 있는 블록의 움직임 필드 정보를 이용하여 실행되며 사용된 움직임 필드 정보는 사용 가능한 인접 블록/동일위치의 블록의 움직임 필드 정보로 채워진 움직임 필드 후보 리스트 중 한 리스트에서 시그널링된다.
머지 모드에서, 블록/PU의 모든 움직임 정보가 예측되고 임의의 수정/교정 없이 사용될 수 있다. PU의 전술한 움직임 정보는,
1. 'PU가 오직 참조 픽처 리스트 0만을 사용하여 단방향-예측되는지' 또는 'PU가 오직 참조 픽처 리스트 1만을 사용하여 단방향-예측되는지' 또는 'PU가 두 참조 픽처 리스트 0 및 리스트 1을 사용하여 양방향-예측되는지'에 관한 정보
2. 참조 픽처 리스트 0에 대응하는 움직임 벡터 값
3. 참조 픽처 리스트 0 내 참조 픽처 인덱스
4. 참조 픽처 리스트 1에 대응하는 움직임 벡터 값
5. 참조 픽처 리스트 1 내 참조 픽처 인덱스의 정보
를 포함할 수 있다.
유사하게, 움직임 정보를 예측하는 것은 시간 참조 픽처 내 인접 블록 및/또는 동일위치에 있는 블록의 움직임 정보를 사용하여 수행된다. 전형적으로, 종종 머지 리스트라고 호칭하는 리스트는 사용 가능한 인접 블록/동일위치의 블록과 연관된 움직임 예측 후보를 포함함으로써 구성되며 리스트 내에서 선택된 움직임 예측 후보의 인덱스는 시그널링된다. 그리고 나서 선택된 후보의 움직임 정보는 현재 PU의 움직임 정보에 복사된다. 머지 메커니즘이 CU 전체에서 이용되고 CU에 대한 예측 신호가 재구성 신호로서 사용될 때, 즉, 예측 잔차가 처리되지 않을 때, 이러한 방식으로 CU를 코딩/디코딩하는 것은 통상적으로 스킵 모드(skip mode) 또는 머지 기반 스킵 모드라고 말한다. 스킵 모드 이외에도, 머지 메커니즘은 또한 개개의 PU마다 이용되며(스킵 모드처럼 반드시 CU 전체에 대해서는 아님) 이 경우, 예측 잔차가 예측 품질을 개선하기 위해 활용될 수 있다. 이러한 방식의 예측 모드는 통상적으로 인터-머지 모드(inter-merge mode)라고 명명된다.
머지 리스트 내 후보들 중 하나의 후보는 TMVP 후보일 수 있는데, 이 후보는 예를 들면 collocated_ref_idx 신택스 요소 등을 사용하여 예를 들면 슬라이스 헤더에서 표시된 참조 픽처와 같이, 표시된 또는 추론된 참조 픽처 내 동일위치 블록으로부터 도출될 수 있다.
HEVC에서, 머지 리스트 내 시간 움직임 벡터 예측을 위한 소위 타겟 참조 인덱스는 움직임 코딩 모드가 머지 모드일 때 0으로 설정된다. 시간 움직임 벡터 예측을 활용하는 HEVC에서 움직임 코딩 모드가 최신 움직임 벡터 예측 모드일 때, 타겟 참조 인덱스 값은 (예를 들면, 각 PU마다) 명시적으로 표시된다.
타겟 참조 인덱스 값이 결정되었을 때, 시간 움직임 벡터 예측의 움직임 벡터 값은 다음과 같이 도출될 수 있다: 현재 예측 유닛의 우측 하단의 이웃과 동일위치에 있는 블록에서 움직임 벡터가 계산된다. 동일위치의 블록이 존재하는 픽처는 앞에서 설명한 것처럼 예를 들면 슬라이스 헤더 내에서 시그널링된 참조 인덱스(collocated_ref_idx)에 따라서 결정될 수 있다. 동일위치의 블록에서 결정된 움직임 벡터는 제 1 픽처 순서 카운트 차와 제 2 픽처 순서 카운트 차의 비율에 대해 스케일링된다. 제 1 픽처 순서 카운트 차는 동일위치 블록을 포함하는 픽처와 동일위치 블록의 움직임 벡터의 참조 픽처 사이에서 도출된다. 제 2 픽처 순서 카운트 차는 현재 픽처와 타겟 참조 픽처 사이에서 도출된다. 만일 타겟 참조 픽처와 동일위치 블록의 움직임 벡터의 참조 픽처의 둘 다가 아닌 하나의 픽처가 장기간 참조 픽처(long-term reference picture)이면 (반면 다른 픽처는 단기간 참조 픽처(a short-term reference picture)임)이면, TMVP 후보는 사용 가능하지 않은 것으로 간주될 수 있다. 만일 타겟 참조 픽처와 동일위치 블록의 움직임 벡터의 참조 픽처의 둘 다 장기간 참조 픽처이면, 아무런 POC 기반 움직임 벡터의 스케일링도 적용되지 않을 수 있다.
스케일러블 비디오 코딩
스케일러블 비디오 코딩은 하나의 비트스트림이 콘텐츠의 복수개의 표현을 상이한 비트율, 해상도 또는 프레임 레이트로 갖고 있을 수 있는 코딩 구조를 말한다. 이러한 사례에서, 수신기는 그의 특성(예를 들면, 디스플레이 디바이스와 가장 잘 어울리는 해상도)에 따라서 원하는 표현을 추출할 수 있다. 대안으로, 서버 또는 네트워크 요소는 예를 들면, 네트워크 특성 또는 수신기의 처리 능력에 따라 수신기로 전송될 비트스트림의 일부분을 추출할 수 있다. 전형적으로 스케일러블 비트스트림은 사용 가능한 최저 품질의 비디오를 제공하는 베이스 계층(base layer) 및 하위계층과 함께 수신되어 디코딩될 때 비디오 품질을 강화시키는 하나 이상의 강화 계층(enhancement layer)으로 이루어질 수 있다. 강화 계층의 코딩 효율 개선하기 위하여, 그 계층의 코딩된 표현은 하위 계층에 달려 있을 수 있다. 예를 들면, 강화 계층의 움직임 또는 모드 정보는 하위 계층으로부터 예측될 수 있다. 유사하게, 하위 계층의 픽셀 데이터는 강화 계층의 예측을 생성하는데 사용될 수 있다.
품질 스케일러빌리티(신호-대-잡음 비 또는 SNR로도 알려짐) 및/또는 공간 스케일러빌리티를 위한 스케일러블 비디오 코덱은 다음과 같이 구현될 수 있다. 즉, 베이스 계층에 대하여, 통상의 논-스케일러블 비디오 인코더 및 디코더가 사용될 수 있다. 베이스 계층의 재구성된/디코딩된 픽처는 인핸스먼트 계층에 대한 참조 픽처 버퍼에 포함된다. 인터 예측을 위해 참조 픽처 리스트(들)를 사용하는 H.264/AVC, HEVC, 및 유사 코덱에서, 베이스 계층 디코딩된 픽처는 강화 계층의 디코딩된 참조 픽처와 유사하게 강화 계층 픽처의 코딩/디코딩을 위해 참조 픽처 리스트(들)에 삽입될 수 있다. 따라서, 인코더는 베이스 계층 참조 픽처를 인터 예측 참조로서 선택할 수 있고 이것의 사용을 통상 코딩된 비트스트림에서 참조 픽처 인덱스로 표시할 수 있다. 디코더는 비트스트림으로부터, 예를 들면 베이스 계층 픽처가 강화 계층에 대한 인터 예측 참조로서 사용된다는 것을 참조 픽처 인덱스로부터 디코딩한다. 디코딩된 베이스 계층 픽처가 강화 계층에 대한 예측 참조로서 사용될 때, 인터-계층 참조 픽처라고 지칭된다.
다른 형태의 스케일러빌리티는 표준 스케일러빌리티이다. 이러한 형태에서, 베이스 계층 및 강화 계층은 상이한 비디오 코딩 표준에 속한다. 예시적인 사례는 베이스 계층이 H.264/AVC으로 코딩되는 반면 강화 계층이 HEVC으로 코딩되는 것이다. 이러한 스케일러빌리티 방식 이면의 동기는 이러한 방법으로, 동일한 비트스트림이 두 레거시 H.264/AVC 기반 시스템뿐만 아니라 신규의 HEVC 기반 시스템에 의해서도 디코딩될 수 있다는 것이다.
스케일러블 비디오 코딩 및/또는 디코딩 체계는 다음과 같이 특징지을 수 있는 멀티-루프 코딩 및/또는 디코딩을 사용할 수 있다. 인코딩/디코딩에서, 베이스 계층 픽처는 코딩/디코딩 순서에서, 동일 계층 내 후속 픽처에 대한 움직임-보상 참조 픽처로서 또는 인터-계층 (또는 인터-뷰 또는 인터-컴포넌트) 예측을 위한 참조로서 사용되도록 재구성/디코딩될 수 있다. 재구성된/디코딩된 베이스 계층 픽처는 DPB에 저장될 수 있다. 마찬가지로 강화 계층 픽처는 코딩/디코딩 순서에서, 동일 계층 내에서 후속 픽처에 대한 움직임-보상 참조 픽처로서 또는 만일 있다면, 상위의 강화 계층에 대한 인터-계층 (또는 인터-뷰 또는 인터-컴포넌트) 예측을 위한 참조로서 사용되도록 재구성/디코딩될 수 있다. 재구성된/디코딩된 샘플 값 이외에도, 베이스/참조 계층의 신택스 요소 값 또는 베이스/참조 계층의 신택스 요소 값으로부터 도출되는 변수는 인터-계층/인터-컴포넌트/인터-뷰 예측에서 사용될 수 있다.
강화 계층 및 베이스 계층이라는 두 스케일러빌리티 계층을 가진 스케일러블 비디오 코덱이 앞에서 설명되었지만, 이 설명은 둘 이상의 계층을 가진 스케일러빌리티 계층구조의 어느 두 계층에 대해서도 일반화될 수 있다고 이해하여야 한다. 이러한 사례에서, 제 2 강화 계층은 코딩 및/또는 디코딩 프로세스에서 제 1 강화 계층에 종속할 수 있으며, 그래서 제 1 강화 계층은 제 2 강화 계층의 인코딩 및/또는 디코딩을 위한 베이스 계층이라고 간주될 수 있다. 뿐만 아니라, 강화 계층의 참조 픽처 버퍼 또는 참조 픽처 리스트 내 하나 보다 많은 계층으로부터 인터-계층 참조 픽처가 발생할 수 있다고 이해하여야 하며, 각각의 이러한 인터-계층 참조 픽처는 인코딩되는 및/또는 디코딩되는 강화 계층에 대한 베이스 계층 또는 참조 계층에 존재한다고 간주될 수 있다.
스케일러블 멀티뷰 코딩에서, 동일한 비트스트림은 복수개 뷰의 코딩된 뷰 컴포넌트를 포함할 수 있으며 적어도 몇 개의 코딩된 뷰 컴포넌트는 품질 및/또는 공간 스케일러빌리티를 사용하여 코딩될 수 있다.
HEVC 표준에다 스케일러블 및 멀티뷰 확장을 명시하려는 작업이 진행 중이다. MV-HEVC이라고 지칭되는 HEVC의 멀티뷰 확장은 H.264/AVC의 MVC 확장과 유사하다. MVC와 유사하게, MV-HEVC에서, 인터-뷰 참조 픽처는 코딩되는 또는 디코딩되는 현재 픽처의 참조 픽처 리스트(들)에 포함될 수 있다. SHVC이라고 지칭되는 HEVC의 스케일러블 확장은 이 확장이 (H.264/AVC의 SVC 확장과 달리) 멀티-루프 디코딩 동작을 사용하도록 명시될 예정이다. 현재, SHVC에 대해 스케일러빌리티를 실현하는 두 가지 디자인이 연구되고 있다. 하나는 참조 인덱스 기반으로, 인터-계층 참조 픽처가 (전술한 바와 같이) 코딩되는 또는 디코딩되는 현재 픽처의 하나 이상의 참조 픽처 리스트에 포함될 수 있다. 다른 하나는 IntraBL 또는 TextureRL이라고 지칭될 수 있는 것으로, 예를 들면 CU 레벨에서 특정한 코딩 모드가 강화 계층 픽처에서 예측을 위하여 참조 계층 픽처의 디코딩된/재구성된 샘플 값을 사용하기 위해 사용된다. SHVC 개발은 공간 및 코스 그레인 품질 스케일러빌리티(coarse grain quality scalability)의 개발에 집중되었다.
MV-HEVC 및 참조 인덱스 기반 SHVC을 위해 동일한 신택스 구조, 시맨틱, 및 디코딩 프로세스 중 많은 것을 사용하는 것이 가능하다. 뿐만 아니라, 깊이 코딩에 대해서도 동일한 신택스 구조, 시맨틱, 및 디코딩 프로세스를 사용하는 것이 가능하다. 이하에서, HEVC의 스케일러블 멀티뷰 확장(scalable multiview extension)(SMV-HEVC)이라는 용어는 스케일러빌리티 방식에 무관하게 대체로 동일한 (디) 코딩 툴이 사용되고 슬라이스 헤더 아래에서 신택스, 시맨틱 또는 디코딩 프로세스의 변경 없이 참조 인덱스 기반 접근 방법이 사용되는 코딩 프로세스, 디코딩 프로세스, 신택스, 및 시맨틱을 지칭하는데 사용된다. SMV-HEVC은 멀티뷰, 공간, 및 코스-그레인 품질 스케일러빌리티로 한정되지 않고 깊이-강화된 비디오와 같은 다른 형태의 스케일러빌리티를 지원할 수도 있다.
강화 계층 코딩에 대하여, HEVC의 동일한 개념 및 코딩 툴이 SHVC, MV-HEVC, 및/또는 SMV-HEVC에서 사용될 수 있다. 그러나, 강화 계층을 효과적으로 코딩하기 위해 (움직임 정보라고 알려진 재구성된 픽처 샘플 및 움직임 파라미터를 비롯한) 참조 계층에서 이미 코딩된 데이터를 이용하는 부가적인 인터-계층 예측 툴이 SHVC, MV-HEVC, 및/또는 SMV-HEVC 코덱에 통합될 수 있다.
MV-HEVC, SMV-HEVC, 및 참조 인덱스 기반 SHVC 해법에서, 블록 레벨의 신택스 및 디코딩 프로세스는 인터-계층 텍스처 예측을 지원하기 위해 변경되지 않는다. 동일한 액세스 유닛의 참조 계층으로부터 (필요하다면 업샘플링된) 재구성된 픽처가 현재의 강화 계층 픽처를 코딩하기 위한 참조 픽처로서 사용될 수 있도록 상위 레벨의 신택스만이 수정되었다. 인터-계층 참조 픽처 뿐만 아니라 시간 참조 픽처는 참조 픽처 리스트에 포함된다. 시그널링된 참조 픽처 인덱스는 현재의 예측 유닛(Prediction Unit, PU)이 시간 참조 픽처 또는 인터-계층 참조 픽처로부터의 예측되는지를 표시하는데 사용된다. 이러한 특징의 사용은 인코더에 의해 제어될 수 있으며 비트스트림에서, 예를 들면 비디오 파라미터 세트, 시퀀스 파라미터 세트, 픽처 파라미터, 및/또는 슬라이스 헤더에서 표시된다. 표시(들)는 예를 들어, 강화 계층, 참조 계층, 강화 계층과 참조 계층의 쌍, 특정한 TemporalId 값, 특정한 픽처 유형(예를 들면, RAP 픽처), 특정한 슬라이스 유형(예를 들면, I 슬라이스를 제외한 P 및 B 슬라이스), 특정한 POC 값의 픽처, 및/또는 특정한 액세스 유닛에 특정할 수 있다. 표시(들)의 범위 및/또는 지속성은 표시(들) 자체와 함께 표시될 수 있으며/있거나 추론될 수 있다.
MV-HEVC, SMV-HEVC, 및 참조 인덱스 기반 SHVC 해법에서 참조 리스트(들)는 만일 있다면, 인터-계층 참조 픽처(들)가 초기의 참조 픽처 리스트(들)에 포함될 수 있는 특정한 프로세스를 사용하여 초기화될 수 있으며 다음과 같이 구성될 수 있다. 예를 들면, HEVC에서 참조 리스트 구성과 동일한 방식으로 먼저 시간 참조가 참조 리스트(L0, L1)에 추가될 수 있다. 이후, 인터-계층 참조가 시간 참조 뒤에 추가될 수 있다. 인터-계층 참조 픽처는 예를 들면 전술한 바와 같이 VPS 확장으로부터 도출되는 RefLayerId[i] 변수와 같은 계층 종속 정보에 의거하여 결정될 수 있다. 인터-계층 참조 픽처는 현재의 강화 계층 슬라이스가 P-슬라이스이면 초기의 참조 픽처 리스트(L0)에 추가될 수 있고 현재의 강화 계층 슬라이스가 B-슬라이스이면 두 개의 초기 참조 픽처 리스트(L0 및 L1)에 추가될 수 있다. 인터-계층 참조 픽처는 특정한 순서로 참조 픽처 리스트에 추가될 수 있는데, 특정한 순서는 두 참조 픽처 리스트에 대해 동일할 수 있지만 동일할 필요는 없다. 예를 들면, 초기 참조 픽처 리스트0와 비교하여, 인터-계층 참조 픽처를 초기 참조 픽처 리스트1에 추가하는 것의 반대 순서가 사용될 수 있다. 예를 들면, 인터-계층 참조 픽처는 nuh_layer_id의 내림차 순으로 초기 참조 픽처0에 삽입될 수 있는데 반해, 반대 순서는 초기 참조 픽처 리스트1을 초기화하는데 사용될 수 있다.
코딩 및/또는 디코딩 프로세스에서, 인터-계층 참조 픽처는 장기간 참조 픽처로서 취급될 수 있다.
SMV-HEVC 및 참조 인덱스 기반 SHVC 해법에서, 인터-계층 참조 픽처를 TMVP 도출을 위한 동일위치 참조 픽처로서 설정함으로써 인터-계층 움직임 파라미터 예측이 수행될 수 있다. 두 계층 간의 움직임 필드 맵핑 프로세스는 예를 들면 TMVP 도출 시 블록 레벨의 디코딩 프로세스를 회피하기 위해 수행될 수 있다. 움직임 필드 맵핑은 또한 멀티뷰 코딩을 위해 수행될 수 있지만, MV-HEVC의 현재 초안은 그러한 프로세스를 포함하고 있지 않다. 움직임 필드 맵핑 특징을 사용하는 것은 컨트롤러에 의해 제어될 수 있으며 비트스트림에서, 예를 들면 비디오 파라미터 세트, 시퀀스 파라미터 세트, 픽처 파라미터, 및/또는 슬라이스 헤더에서 표시될 수 있다. 표시(들)는 예를 들어, 강화 계층, 참조 계층, 강화 계층과 참조 계층의 쌍, 특정한 TemporalId 값, 특정한 픽처 유형(예를 들면, RAP 픽처), 특정한 슬라이스 유형(예를 들면, I 슬라이스를 제외한 P 및 B 슬라이스), 특정한 POC 값의 픽처, 및/또는 특정한 액세스 유닛에 특정할 수 있다. 표시(들)의 범위 및/또는 지속성은 표시(들) 자체와 함께 표시될 수 있으며/있거나 추론될 수 있다.
공간 스케일러빌리티를 위한 움직임 필드 맵핑 프로세스에서, 업샘플링된 인터-계층 참조 픽처의 움직임 필드는 각각의 참조 계층 픽처의 움직임 필드에 기초하여 달성된다. 업샘플링된 인터-계층 참조 픽처의 각 블록마다 (예를 들면 수평 및/또는 수직 움직임 벡터 값 및 참조 인덱스를 포함할 수 있는) 움직임 파라미터 및/또는 예측 모드는 참조 계층 픽처 내 동일위치 블록의 대응하는 움직임 파라미터 및/또는 예측 모드로부터 도출될 수 있다. 업샘플링된 인터-계층 참조 픽처에서 움직임 파라미터 및/또는 예측 모드의 도출을 위해 사용된 블록 크기는 예를 들면, 16x16일 수 있다. 16x16 블록 크기는 참조 픽처의 압축된 움직임 필드가 사용되는 HEVC TMVP 도출 프로세스에서 사용되는 블록 크기와 동일하다.
HEVC의 TMVP 프로세스는 머지 모드에서 슬라이스 당 하나의 타겟 픽처 및 (슬라이스 당) 하나의 동일위치 픽처로 한정된다. 참조 인덱스 기반 스케일러빌리티를 HEVC 이외에 적용할 때, HEVC의 TMVP 프로세스는 머지 모드의 사례로 아래에서 설명되는 바와 같이 적응성이 제한된다. 예로, (참조 픽처 리스트에서 인덱스가 0인) 타겟 참조 픽처는 단기간 참조 픽처이다. 동일위치 PU에서 움직임 벡터는 단기간(short-term, ST) 참조 픽처를 참조하면 현재 PU(PUO)의 머지 후보를 형성하기 위해 스케일링되는데, 여기서 MV0는 머지 모드 프로세스 동안 MV0'로 스케일링된다. 그러나, 만일 동일위치 PU가 장기간이라고 표시된 인터-뷰 참조 픽처를 참조하는 움직임 벡터(MV1)를 가지면, 움직임 벡터는 현재 PU(PU1)을 예측하는데 사용되지 않는다.
(0과 같은) 타겟 참조 인덱스가 단기간 참조 픽처를 표시하지만 인터-뷰 참조 픽처를 참조하는 움직임 벡터를 포함하는 (동일위치 픽처 내) 동일위치 PU가 상당량 존재할 수 있다. 그러므로, 이러한 움직임 벡터로부터 예측을 하지 못하면 머지 모드의 효율이 떨어진다. 이러한 문제를 극복하는 제안이 있으며, 그 중 일부는 다음 단락에서 설명된다.
부가적인 타겟 참조 인덱스는 인코더에 의해 비트스트림 내에 표시되고 디코더에 의해 비트스트림으로부터 디코딩되고 그리고/또는 인코더 및/또는 디코더에 의해 추론될 수 있다. PU1의 동일위치 블록의 MV1은 디스패리티 움직임 벡터 머징 후보를 형성하는데 사용될 수 있다. 일반적으로, 0과 같은 참조 인덱스가 단기간 참조 픽처를 표현할 때, 부가적인 타겟 참조 인덱스는 장기간 참조 픽처를 표현하는데 사용된다. 0이라는 참조 인덱스가 장기간 참조 픽처를 표현할 때, 부가적인 타겟 참조 인덱스는 단기간 참조 픽처를 표현하는데 사용된다.
부가적인 참조 인덱스를 표시 또는 추론하는 방법은 다음과 같은 방법을 포함하지만 이것으로 한정되지 않는다:
- 부가적인 타겟 참조 인덱스를 비트스트림에서, 예를 들면, 슬라이스 세그먼트 헤더 신택스 구조 내에 표시하는 방법.
- 변경된 타겟 참조 인덱스를 (단기간 또는 장기간 참조로서 사용되는 것으로서) 참조 인덱스 0라는 표시와 상이한 표시를 갖는 가장 작은 참조 인덱스와 동일하도록 도출하는 방법.
- 동일위치 PU가 참조 인덱스 0의 계층 식별자와 상이한 계층 식별자(계층A와 동일함)를 갖는 참조 픽처를 시사하는 경우, 변경된 타겟 참조 인덱스를 계층A와 동일한 계층 식별자를 갖는 가장 작은 참조 인덱스와 동일하도록 도출하는 방법.
머지 모드 프로세스에서, (참조 인덱스가 0인) 디폴트 타겟 픽처는 단기간 또는 장기간 참조 픽처로서 그의 표시가 동일위치 블록의 참조 픽처의 표시와 동일할 때 사용된다. 그렇지 않으면(즉, 단기간 또는 장기간 참조 픽처로서 부가적인 참조 인덱스에 대응하는 참조 픽처의 표시가 동일위치 블록의 참조 픽처의 표시와 동일할 때), 부가적인 참조 인덱스에 의해 식별되는 타겟 픽처가 사용된다.
액세스 유닛 및 코딩된 픽처는 예를 들면 다양한 HEVC 확장에서 다음과 같은 방법 중 하나의 방법으로 정의될 수 있다.
- 코딩된 픽처는 nuh_layer_id라는 특정한 값을 가진 VCL NAL 유닛을 포함하고 그리고 픽처의 모든 코딩 트리 유닛을 갖고 있는 픽처의 코딩된 표현이라고 정의될 수 있다. 액세스 유닛은 명시된 분류 규칙에 따라서 서로 연관되고, 디코딩 순서에서 연속하며, 틀림없이 하나의 코딩된 픽처를 갖고 있는 NAL 유닛들의 세트라고 정의될 수 있다.
- 코딩된 픽처는 nuh_layer_id라는 특정한 값을 가진 VCL NAL 유닛을 포함하고 그리고 픽처의 모든 코딩 트리 유닛을 갖고 있는 픽처의 코딩된 표현이라고 정의될 수 있다. 액세스 유닛은 0과 같은 nuh_layer_id를 가진 코딩된 픽처 및 0이 아닌 nuh_layer_id를 가진 0개 이상의 코딩된 픽처를 포함하는 것으로 정의될 수 있다.
- 코딩된 픽처는 (오직) 0과 같은 nuh_layer_id의 VCL NAL 유닛을 포함하는 코딩된 픽처라고 정의될 수 있고, 계층 픽처는 특정한 0이 아닌 nuh_layer_id의 VCL NAL 유닛을 포함하는 것으로 정의될 수 있다. 액세스 유닛은 코딩된 픽처 및 0개 이상의 계층 픽처를 포함하는 것으로 정의될 수 있다.
시간 인스턴트(temporal instant) 또는 타임 인스턴트(time instant) 또는 타임 인스턴스(time instance) 또는 타임 엔티티(time entity)라는 용어는 동일한 촬영 시간 또는 출력 시간 또는 출력 순서를 표현하는 것으로 정의될 수 있다. 예를 들면, 만일 제 1 뷰의 제 1 뷰 컴포넌트가 제 2 뷰 내 제 2 뷰 컴포넌트와 동일한 시간에 촬영되면, 이러한 두 개의 뷰 컴포넌트는 동일한 타임 인스턴트를 갖는 것으로 간주될 수 있다. 액세스 유닛은 동일한 타임 인스턴트의 픽처(또는 뷰 컴포넌트)를 포함하는 것으로 정의될 수 있으며, 그래서 이러한 사례에서 액세스 유닛에 존재하는 픽처는 동일한 타임 인스턴스를 갖는 것으로 간주될 수 있다. 동일한 타임 인스턴트의 픽처는 (예를 들면, 인코더에 의해) 복수의 수단을 사용하여 표시될 수 있으며 (예를 들면, 디코딩에 의해) 픽처 순서 카운트(picture order count, POC) 값 또는 타임스탬프(예를 들면, 출력 타임스탬프)와 같은 복수의 수단을 사용하여 식별될 수 있다.
H.264/ AVC의 멀티-뷰 확장
H.264/AVC 표준은 국제 전기통신 연합(Telecommunications Standardisation Sector of International Telecommunication Union, ITU-T)의 전기통신 표준화 부분의 비디오 코딩 전문가 그룹(Video Coding Experts Group, VCEG)과 국제 표준화 기구(International Standardisation Organisation, ISO)/국제 전기 기술위원회(International Electrotechnical Commission, IEC))의 동화상 전문가 그룹(Moving Picture Experts Group, MPEG)의 조인트 비디오 팀(Joint Video Team, JVT)에 의해 개발되었다. H.264/AVC 표준은 두 개의 부모 표준화 기구에 의해 공표되며, 이 표준은 ITU-T 권고안 H.264 및 ISO/IEC 국제 표준 14496-10이라고 지칭되며, 또한 MPEG-4 파트 10 최신 비디오 코딩(Advanced Video Coding, AVC)이라고도 알려져 있다. H.264/AVC 표준에는 복수개 버전이 있는데, 각각의 버전은 규격의 새로운 확장 또는 특징을 통합하고 있다. 이러한 확장은 스케일러블 비디오 코딩(Scalable Video Coding, SVC) 및 멀티뷰 비디오 코딩(Multiview Video Coding, MVC)을 포함한다.
초기의 비디오 코딩 표준과 유사하게, 비트스트림 신택스 및 시맨틱뿐만 아니라 오류 없는 비트스트림을 위한 디코딩 프로세스가 H.264/AVC에서 명시되어 있다. 인코딩 프로세스는 명시되어 있지 않지만, 인코더는 규칙을 준수하는 비트스트림을 발생하여야 한다. 비트스트림 및 디코더 순응성은 H.264/AVC의 부록 C에서 명시된 가상 참조 디코더(Hypothetical Reference Decoder, HRD)를 사용하여 검증될 수 있다. 표준은 전송 오류 및 손실에 대처하는데 도움이 되는 코딩 툴을 포함하고 있지만, 인코딩 시에 툴의 사용은 옵션이며 오류가 발생한 비트스트림에 대한 아무런 디코딩 프로세스도 명시되어 있지 않다.
H.264/AVC 인코더로의 입력 및 H.264/AVC 디코더의 출력의 단위 유닛(elementary unit)은 픽처이다. 픽처는 프레임이거나 필드일 수 있다. 프레임은 전형적으로 루마 샘플(luma sample) 및 대응하는 크로마 샘플(chroma sample)의 매트릭스를 포함한다. 소스 신호가 인터레이스될 때, 필드는 프레임의 일련의 교번 샘플 로우(alternate sample row)이며 인코더 입력으로서 사용될 수 있다. 매크로블록은 16x16 루마 샘플 블록 및 대응하는 크로마 샘플 블록이다. 픽처는 하나 이상의 슬라이스 그룹으로 분할되고, 슬라이스 그룹은 하나 이상의 슬라이스를 포함한다. 슬라이스는 특정한 슬라이스 그룹 내에서 래스터 스캔에서 연속하는 순서로 정렬된 정수개의 매크로블록으로 이루어진다.
H.264/AVC 인코더의 출력 및 H.264/AVC 디코더의 입력의 단위 유닛은 네트워크 추상 계층(Network Abstraction Layer, NAL) 유닛이다. 부분적으로 유실되거나 손상된 NAL 유닛을 디코딩하기는 통상 어렵다. 패킷 중심의 네트워크를 통해 전송하거나 또는 구조화된 파일로 저장하기 위해, NAL 유닛은 일반적으로 패킷 또는 유사한 구조로 캡슐화된다. 프레이밍 구조를 제공하지 않는 전송 또는 저장 환경을 위해 H.264/AVC에서 바이트스트림 포맷이 명시되었다. 바이트스트림 포맷은 각 NAL 유닛의 앞 단에다 시작 코드를 붙임으로써 NAL 유닛을 서로 구분한다. NAL 유닛 경계의 오검출을 방지하기 위해, 인코더는 바이트 지향 시작 코드 에뮬레이션 방지 알고리즘(byte-oriented start code emulation prevention algorithm)을 구동하는데, 이는 알고리즘을 구동하지 않았을 경우에 시작 코드가 발생하였으면 에뮬레이션 방지 바이트를 NAL 유닛 패이로드에 첨가하는 알고리즘이다. 패킷 지향 시스템과 스트림 지향 시스템 간에 계속적인 게이트웨이 동작이 가능할 수 있도록 하기 위하여, 바이트스트림 포맷이 사용 중이든 그렇지 않든 간에 시작 코드 에뮬레이션 방지가 항시 수행된다.
슬라이스 및 슬라이스 그룹
다른 많은 비디오 코딩 표준처럼, H.264/AVC은 코딩된 픽처를 슬라이스로 분할할 수 있게 한다. 픽처-내 예측(In-picture prediction)은 슬라이스 경계 전체에서 사용 불가능 하게된다. 따라서, 슬라이스는 코딩된 픽처를 독립적으로 디코딩 가능한 조각으로 나누는 방식으로 간주될 수 있으며, 그러므로 슬라이스는 전송을 위한 단위 유닛이다.
H.264/AVC의 몇몇 프로파일은 코딩된 픽처 당 여덟 슬라이스 그룹까지 사용할 수 있다. 하나보다 많은 슬라이스 그룹이 사용되고 있을 때, 픽처는 슬라이스 그룹 맵 유닛으로 분할되며, 이 슬라이스 그룹 맵 유닛은 매크로블록-적응적 프레임-필드(macroblock-adaptive frame-field, MBAFF) 코딩이 사용되고 있을 때는 수직으로 연속하는 두 개의 매크로블록과 동일하며 그렇지 않으면 하나의 매크로블록과 동일하다. 픽처 파라미터 세트는 픽처의 각 슬라이스 그룹 맵 유닛이 특정한 슬라이스 그룹과 연관되어 있다는 것을 기초로 하여 데이터를 갖고 있다. 슬라이스 그룹은 인접하지 않은 맵 유닛을 비롯한 임의의 슬라이스 그룹 맵 유닛을 가질 수 있다. 픽처에 대해 하나 보다 많은 슬라이스 그룹이 명시될 때, 표준의 플렉서블 매크로블록 오더링(flexible macroblock ordering, FMO) 특징이 사용된다.
H.264/AVC에서, 슬라이스는 래스터 스캔 순서의 특정 슬라이스 그룹 내에서 하나 이상의 연속하는 매크로블록(또는 MBAFF가 사용되고 있을 때는 매크로블록 쌍)으로 구성된다. 만일 단 하나의 슬라이스 그룹이 사용되고 있으면, H.264/AVC 슬라이스는 래스터 스캔 순서대로 연속하는 매크로블록을 포함하며 그래서 이전의 많은 코딩 표준의 슬라이스와 유사하다. H.264/AVC의 일부 프로파일에서, 코딩된 픽처의 슬라이스는 서로에 대해 비트스트림에서 임의의 순서로 출현할 수 있는데, 이것은 임의적 슬라이스 정렬(arbitrary slice ordering) 특징이라고 지칭된다. 그렇지 않으면, 슬라이스는 비트스트림에서 래스터 스캔 순서대로 출현하여야 한다.
HEVC에서, 픽처는 장방형이면서 정수개의 CTU를 포함하는 타일로 분할될 수 있다. 타일로 분할하면 규칙적인 그리드를 형성할 수 있으며, 그리드에서 타일의 높이와 폭은 최대한 하나의 LCU 만큼 서로 다르다. CTU의 디코딩 순서(및 비트스트림 순서)는 타일의 CTU가 디코딩 순서(및 비트스트림 순서)에서 인접하도록 되어 있다. 타일 내에서, CTU의 디코딩 순서(및 비트스트림 순서)는 소위 래스터 스캔 순서이다. 그러나, HEVC은 타일 내 CTU 로우를 병렬 디코딩할 수 있게 하는 소위 웨이브프론트 코딩 툴(wavefront coding tool)을 포함하는 것이 주목된다. 타일의 디폴트 디코딩 순서(및 또한 타일 스캔 순서라고도 지칭하는 비트스트림 순서)도 또한 래스터 스캔 순서이다. 그러나, 타일은 타일 경계 전체에서 잠재적인 필터링(그 사용은 인코더에 의해 제어되고 비트스트림에서 표시될 수 있다)을 제외하고는 서로 독립적으로 디코딩될 수 있다.
HEVC에서, 슬라이스는 동일한 액세스 유닛 내에서 하나의 독립 슬라이스 세그먼트 및 (만일 있다면) 다음 독립 슬라이스 세그먼트에 선행하는 (만일 있다면) 후속하는 모든 종속 슬라이스 세그먼트에 포함된 정수개의 코딩 트리 유닛이라고 정의될 수 있다. HEVC에서, 슬라이스 세그먼트는 타일 스캔에서 연속하는 순서로 정렬되고 단일의 NAL 유닛에 포함된 정수개의 코딩 트리 유닛이라고 정의될 수 있다. 각각의 픽처를 슬라이스 세그먼트로 나누는 것이 분할이다. HEVC에서, 독립 슬라이스 세그먼트는 슬라이스 세그먼트 헤더의 신택스 요소의 값이 선행하는 슬라이스 세그먼트의 값으로부터 추론되지 않는 슬라이스 세그먼트인 것으로 정의될 수 있으며, 종속 슬라이스 세그먼트는 슬라이스 세그먼트 헤더의 일부 신택스 요소의 값이 디코딩 순서에서 선행하는 독립 슬라이스 세그먼트의 값으로부터 추론되는 슬라이스 세그먼트인 것으로 정의될 수 있다. HEVC에서, 슬라이스 헤더는 현재 슬라이스 세그먼트인 또는 현재의 종속 슬라이스 세그먼트에 선행하는 독립 슬라이스 세그먼트인 독립 슬라이스 세그먼트의 슬라이스 세그먼트 헤더인 것으로 정의될 수 있으며, 슬라이스 세그먼트 헤더는 슬라이스 세그먼트에서 표현되는 제 1 또는 모든 코딩 트리 유닛에 관련하는 데이터 요소를 포함하는 코딩된 슬라이스 세그먼트의 일부분인 것으로 정의될 수 있다.
네트워크 추상 계층( NAL ) 유닛
H.264/AVC 및 그의 확장의 NAL 유닛은 헤더 및 패이로드를 포함한다. H.264/AVC 및 그의 확장에서, NAL 유닛 헤더는 NAL 유닛 헤더는 NAL 유닛의 유형을 표시하고 NAL 유닛에 포함된 코딩된 슬라이스가 참조 픽처(reference picture) 또는 비-참조 픽처(non-reference picture)의 일부인지를 표시한다. SVC 및 MVC NAL 유닛의 헤더는 스케일러빌리티 및 멀티뷰 계층구조에 관련된 각종 표시를 부가적으로 포함할 수 있다.
H.264/AVC 및 그의 확장에서, NAL 유닛은 비디오 코딩 계층(Video Coding Layer, VCL) NAL 유닛 및 논-VCL NAL 유닛으로 분류될 수 있다. VCL NAL 유닛은 코딩된 슬라이스 NAL 유닛, 코딩된 슬라이스 데이터 파티션 NAL 유닛, 또는 VCL 프리픽스 NAL 유닛(VCL prefix NAL unit) 중 어느 것이다. 코딩된 슬라이스 NAL 유닛은 하나 이상의 코딩된 매크로블록을 표현하는 신택스 요소를 포함하며, 각각의 코딩된 매크로블록은 압축되지 않은 픽처 내 샘플 블록에 대응한다. 코딩된 슬라이스 NAL 유닛은 네 가지 유형: 순간 디코딩 리플레시(Instantaneous Decoding Refresh, IDR) 픽처 내 코딩된 슬라이스, 논-IDR 픽처 내 코딩된 슬라이스, (알파 평면과 같은) 보조 코딩된 픽처의 코딩된 슬라이스, 및 (베이스 뷰에 존재하지 않는 SVC 슬라이스 또는 베이스 뷰에 존재하지 않는 MVC 슬라이스의 경우) 코딩된 슬라이스 확장이 있다. 한 세트 세 개의 코딩된 슬라이스 데이터 파티션 NAL 유닛은 코딩된 슬라이스와 동일한 신택스 요소를 포함한다. 코딩된 슬라이스 데이터 파티션 A는 슬라이스의 매크로블록 헤더 및 움직임 벡터를 포함하는데 반해, 코딩된 슬라이스 데이터 파티션 B 및 C는 각기 인트라 매크로블록 및 인터 매크로블록에 대해 코딩된 잔차 데이터를 포함한다. 슬라이스 데이터 파티션에 대한 지원은 H.264/AVC의 일부 프로파일에 포함되어 있을 뿐이라는 것을 주목하자. VCL 프리픽스 NAL 유닛은 SVC 및 MVC 비트스트림에서 베이스 계층의 코딩된 슬라이스에 선행하며 연관된 코딩된 슬라이스의 스케일러빌리티 계층구조의 표시를 갖고 있다.
논-VCL NAL 유닛은 다음과 같은 유형: 시퀀스 파라미터 세트, 픽처 파라미터 세트, 보충 강화 정보(supplemental enhancement information, SEI) NAL 유닛, 액세스 유닛 구분자(access unit delimiter), 시퀀스 NAL 유닛의 끝, 스트림 NAL 유닛의 끝, 또는 필러 데이터(filler data) NAL 유닛 중 하나를 가질 수 있다. 파라미터 세트는 디코딩된 픽처의 재구성을 위해 필요할 수 있으며, 반면 다른 논-VCL NAL 유닛은 디코딩된 샘플 값의 재구성에 필요하지 않으며 아래에서 제시되는 다른 목적에 사용된다.
코딩된 비디오 시퀀스를 통해 변동 없이 남아 있는 파라미터는 시퀀스 파라미터 세트에 포함된다. 디코딩 프로세스에 의해 필수적인 파라미터 이외에, 시퀀스 파라미터 세트는 옵션으로 비디오 유용성 정보(video usability information, VUI)를 포함할 수 있는데, 이 정보는 버퍼링, 픽처 출력 타이밍, 렌더링, 및 자원 예약에 중요한 파라미터를 포함한다. 픽처 파라미터 세트는 여러 코딩된 픽처에서 변동되지 않을 것 같은 그러한 파라미터를 갖고 있다. H.264/AVC 비트스트림에는 어떠한 픽처 헤드도 존재하지 않으며 자주 변동하는 픽처 레벨의 데이터는 각각의 슬라이스 헤더에서 반복되며 픽처 파라미터 세트는 변동 없이 남은 픽처 레벨의 파라미터를 운반한다. H.264/AVC 신택스는 시퀀스 및 픽처 파라미터 세트의 많은 인스턴스를 허용하며, 각각의 인스턴스는 고유의 식별자로 식별된다. 각각의 슬라이스 헤더는 슬라이스를 포함하는 픽처의 디코딩을 위해 활성화되는 픽처 파라미터 세트의 식별자를 포함하며, 각각의 픽처 파라미터 세트는 활성 시퀀스 파라미터 세트의 식별자를 포함한다. 따라서, 픽처 및 시퀀스 파라미터 세트의 전송은 슬라이스의 전송과 정확하게 동기화되지 않는다. 그 대신, 활성 시퀀스 및 픽처 파라미터 세트는 이들이 참조되기 전 어느 때라도 수신되는 것이면 그것으로 충분하며, 이로써 슬라이스 데이터에 대해 사용된 프로토콜과 비교하여 더욱 신뢰할 수 있는 전송 메커니즘을 사용하여 파라미터 세트의 전송이 가능해진다. 예를 들면, 파라미터 세트는 파라미터로서 H.264/AVC RTP 세션에 대한 세션 서술(session description) 내에 포함될 수 있다. 파라미터 세트가 대역 내(in-band) 전송되면, 파라미터 세트는 오류 강인성(error robustness)을 개선하기 위해 반복 전송될 수 있다.
SEI NAL 유닛은 하나 이상의 SEI 메시지를 포함하는데, 이 SEI 메시지는 출력 픽처를 디코딩하는데 필요하지 않고, 픽처 출력 타이밍, 렌더링, 오류 검출, 오류 은닉, 및 자원 예약과 같은 관련된 프로세스를 보조할 수 있다. H.264/AVC에는 여러 SEI 메시지가 명시되어 있으며, 사용자 데이터 SEI 메시지는 조직 및 회사가 자체적인 사용을 위해 SEI 메시지를 명시할 수 있게 한다. H.264/AVC은 명시된 SEI 메시지에 대한 신택스 및 시맨틱을 갖고 있지만, 수신 측에서 이 메시지를 다루기 위한 프로세스는 정의되어 있지 않다. 따라서, 인코더는 SEI 메시지를 생성할 때 H.264/AVC 표준을 따르는 것이 필요하며, H.264/AVC 표준을 순응하는 디코더는 출력 순서 순응성에 맞추어 SEI 메시지를 처리하는 것이 요구되지 않다. SEI 메시지의 신택스 및 시맨틱을 H.264/AVC에 포함시키는 이유 중 하나는 여러 시스템 사양들이 보충 정보를 동일하게 해석할 수 있게 하고 그래서 상호 작동할 수 있게 해주기 위함이다. 이것은 시스템 사양이 인코딩 측 및 디코딩 측에서 모두 특정 SEI 메시지의 사용을 필요로 할 수 있고, 부가적으로는 특정 SEI 메시지를 수신 측에서 다루기 위한 프로세스가 명시될 수 있도록 하기 위함이다.
H.264/AVC 및 그의 확장에서, 코딩된 픽처는 픽처를 디코딩하는데 필요한 VCL NAL 유닛으로 구성된다. 코딩된 픽처는 기본 코딩된 픽처(primary coded picture) 또는 중복 코딩된 픽처(redundant coded picture)일 수 있다. 기본 코딩된 픽처는 유효 비트스트림의 디코딩 프로세스에서 사용되는 반면, 중복 코딩된 픽처는 기본 코딩된 픽처가 성공적으로 디코딩될 수 없을 때 디코딩만이라도 되어야 하는 중복 표현이다.
H.264/AVC 및 그의 확장에서, 액세스 유닛은 기본 코딩된 픽처 및 이와 연관된 NAL 유닛을 포함한다. 액세스 유닛 내에서 NAL 유닛의 출현 순서는 다음과 같이 제한된다. 옵션의 액세스 유닛 구분자 NAL 유닛은 액세스 유닛의 시작을 표시할 수 있다. 그 다음에는 0개 이상의 SEI NAL 유닛이 이어진다. 기본 코딩된 픽처의 코딩된 슬라이스 또는 슬라이스 데이터 파티션은 다음에 나오고, 그 뒤를 이어 0개 이상의 중복 코딩된 픽처의 코딩된 슬라이스가 이어진다.
H.264/AVC 및 그의 확장에서, 코딩된 비디오 시퀀스는 IDR 액세스 유닛을 포함하여 이 유닛부터 다음 IDR 액세스 유닛을 제외하여 이 유닛까지, 또는 비트스트림의 끝까지, 어느 것이든 먼저 나오는, 디코딩 순서에서 연속하는 액세스 유닛들의 시퀀스인 것으로 정의된다.
픽처 그룹(group of pictures, GOP) 및 그의 특성은 다음과 같이 정의될 수 있다. GOP는 이전에 어느 픽처가 디코딩되었는지와 무관하게 디코딩될 수 있다. 오픈 GOP(open GOP)는 오픈 GOP의 초기 인트라 픽처로부터 디코딩이 시작할 때 출력 순서에서 초기 인트라 픽처에 선행하는 픽처가 정확하게 디코딩되지 않을 수도 있는 그런 픽처 그룹이다. 다시 말해서, 오픈 GOP의 픽처는 (인터 예측에서) 이전의 GOP에 속하는 픽처를 참조할 수 있다. H.264/AVC 디코더는 H.264/AVC 비트스트림에서 회복 지점(recovery point) SEI 메시지로부터 오픈 GOP를 시작하는 인트라 픽처를 인식할 수 있다. 클로즈드 GOP(closed GOP)는 클로즈드 GOP의 초기 인트라 픽처로부터 디코딩이 시작할 때 모든 픽처가 정확하게 디코딩될 수 있는 그런 픽처 그룹이다. 다시 말해서, 클로즈드 GOP 내 어떤 픽처도 이전 GOP 내 어느 픽처도 참조하지 않는다. H.264/AVC에서, 클로즈드 GOP는 IDR 액세스 유닛으로부터 시작한다. 그 결과, 클로즈드 GOP 구조는 오픈 GOP 구조와 비교하여 더 많은 잠재적인 오류 내성을 갖지만, 그 대가로 아마도 압축 효율이 낮아진다. 오픈 GOP 코딩 구조는 참조 픽처의 선택 시 융통성이 더 많으므로 압축 시 잠재적으로 더 효율적이다.
참조 픽처 버퍼 구성
H.264/AVC에서, 참조 픽처 리스트는 P, B, 또는 SP 슬라이스의 인터 예측에 사용되는 한 세트의 참조 픽처를 저장하는데 활용된다. P 또는 SP 슬라이스에 대해, list0라고 표시된 하나의 참조 픽처 리스트가 있다. B 슬라이스에 대해, list0 및 list1으로 표시된 두 개의 참조 픽처 리스트가 있다. 재생 순서에서 현재 픽처보다 이른 참조 픽처는 감소하는 순서에 따라서 list0에 넣어지며, 현재 픽처보다 늦은 참조 픽처는 증가하는 순서에 따라 list1에 넣어진다. 참조 픽처는 참조 픽처와 현재 픽처 사이의 거리에 따라서 분류된다.
멀티뷰 비디오는 인터-뷰 중복성을 활용하는 코덱 실현성을 제공하기 때문에, 디코딩된 인터-뷰 프레임은 참조 픽처 버퍼에도 포함된다.
H.264/MVC 확장에 따르면, 시간 참조 픽처는 먼저 참조 픽처 리스트에 넣어진 다음, 만일 인터-뷰 예측이 사용 가능하면 인터-뷰 참조 픽처가 그 리스트의 끝에 첨부된다. 또한, MVC는 참조 픽처 리스트 재배열(reference picture list reordering, RPLR) 메커니즘을 제공하는데, 이 메커니즘은 예를 들면, 인코더 및 디코더가 참조 픽처 리스트에서 인터-뷰 참조 픽처를 시간 참조 픽처의 앞에 이동(스위치)하게 해준다.
움직임 벡터
H.264/AVC 및 HEVC을 비롯한, 많은 비디오 코덱에서, 움직임 정보는 각각의 움직임 보상된 이미지 블록과 연관된 움직임 벡터로 표시된다. 각각의 이러한 움직임 벡터는 (인코더에서) 코딩될 또는 (디코더에서) 디코딩될 픽처 내 이미지 블록과 이전에 코딩된 또는 디코딩된 이미지(또는 픽처) 중 한 이미지 내 예측 소스 블록의 변위를 나타낸다. H.264/AVC 및 HEVC은 다른 많은 비디오 압축 표준처럼, 픽처를 사각형의 메시로 나누는데, 각 사각형마다 참조 픽처들 중 한 픽처 내 유사 블록이 인터 예측을 위해 표시된다. 예측 블록의 위치는 코딩되는 블록에 대한 예측 블록의 위치를 표시하는 움직임 벡터로서 코딩된다.
인터 예측 프로세스는 다음과 같은 인자들 중 하나 이상을 사용하는 것을 특징으로 할 수 있다.
움직임 벡터 표현의 정확성.
예를 들면, 움직임 벡터는 쿼터 픽셀 정확도(quarter-pixel accuracy), 하프 픽셀 정확도(half-pixel accuracy) 또는 풀 픽셀 정확도(full-pixel accuracy)를 가질 수 있고, 부분 픽셀 위치(fractional-pixel positions)에 있는 샘플 값은 유한 임펄스 응답(finite impulse response, FIR) 필터를 사용하여 구할 수 있다. 상이한 필터 및/또는 상이한 필터 탭 값이 정수 샘플 위치에 대비한 분수 샘플 위치에 따라서 사용될 수 있으며/있거나 필터가 케스캐이드 연결될 수 있다. 예를 들면, 하프 픽셀 위치에서 샘플 값을 구하기 위해서는 6-탭 필터가 사용될 수 있는데 반해, 정수 위치 및 하프 픽셀 위치에서 샘플 값으로부터 쿼터 픽셀 위치에서 샘플 값을 구하기 위해서는 이중 선형 필터(bi-linear filter)가 사용될 수 있다. 상이한 컬러 컴포넌트에 대해 상이한 필터 및/또는 필터 탭 값이 사용될 수 있다. 예를 들면, 이중 선형 필터는 크로마 컴포넌트 용도로 사용될 수 있는데 반해, 다수의 탭을 가진 필터는 루머 컴포넌트 용도로 사용될 수 있다.
인터 예측을 위한 블록 분할.
H.264/AVC 및 HEVC을 비롯한 많은 코딩 표준은 인코더에서 움직임 벡터가 움직임 보상 예측에 적용되는 블록의 크기 및 형상을 선택할 수 있게 하며 디코더가 인코더에서 수행된 움직임 보상 예측을 재생할 수 있도록 선택된 크기 및 형상을 비트스트림 내에 표시할 수 있게 한다.
인터 예측을 위한 참조 픽처의 개수.
인터 예측의 소스는 이전에 디코딩된 픽처이다. H.264/AVC 및 HEVC을 비롯한 많은 코딩 표준은 인터 예측을 위해 복수의 참조 픽처를 저장하고 블록 단위로 사용된 참조 픽처를 선택할 수 있게 한다. 예를 들면, 참조 픽처는 H.264/AVC에서는 매크로블록 또는 매크로블록 파티션 단위로 그리고 HEVC에서는 PU 또는 CU 단위로 선택될 수 있다. H.264/AVC 및 HEVC과 같은 많은 코딩 표준은 디코더가 하나 이상의 참조 픽처 리스트를 생성할 수 있게 하는 신택스 구조를 비트스트림 내에 포함시킨다. 참조 픽처 리스트에 대한 참조 픽처 인덱스는 복수의 참조 픽처 중 어느 참조 픽처가 특정 블록의 인터 예측을 위해 사용되는지를 표시하는데 사용될 수 있다. 참조 픽처 인덱스는 일부 인터 코딩 모드에서 인코더에 의해 비트스트림으로 코딩될 수 있고 또는 일부 다른 인터 코딩 모드에서 (인코더 및 디코더에 의해) 예를 들면 이웃 블록을 사용하여 도출될 수 있다.
복수의 참조 픽처를 사용하는 기능성은 복수의 참조 픽처가 예를 들면, 신택스 요소 및 프로세스에 의해 참조될 수 있도록 픽처를 식별할 수 있게 하거나 픽처에 표시를 붙이게 할 수 있다. 예를 들면, 픽처 또는 프레임 번호 또는 픽처 순서 카운트(picture order count, POC)는 다른 것들 중에서 픽처를 식별하거나 픽처에 표시를 붙이는데 사용될 수 있다. 이러한 개념은 간략하게 다음 단원에서 설명된다.
H.264/AVC과 같은 일부 비디오 코딩 포맷은 복수의 참조 픽처와 관련된 각종 디코딩 프로세스에 사용되는 frame_num 신택스 요소를 포함한다. H.264/AV에서, IDR 픽처의 frame_num의 값은 0이다. 논-IDR 픽처의 frame_num의 값은 1씩 증분되는 디코딩 순서에서 이전 참조 픽처의 frame_num와 동일하다(즉, 모듈로 산술에서, frame_num의 값은 frame_num이 최대 값이 된 다음에 0으로 된다).
H.264/AVC 및 HEVC은 픽처 순서 카운트(POC)의 개념을 포함한다. POC의 값은 각 픽처마다 도출되며 출력 순서에서 픽처 위치의 증가에 따라 감소하지 않는다. 그러므로, POC는 픽처의 출력 순서를 표시한다. POC는 예를 들면, 양방향 예측 슬라이스의 시간 다이렉트 모드(temporal direct mode)에서 움직임 벡터의 묵시적 스케일링을 위한, 가중된 예측에서 묵시적으로 도출된 가중치를 위한, 그리고 참조 픽처 리스트 초기화를 위한 디코딩 프로세스에서 사용될 수 있다. 뿐만 아니라, POC는 출력 순서 순응성의 검증에도 사용될 수 있다. H.264/AVC에서, POC는 이전의 IDR 픽처 또는 모든 픽처를 "참조용으로 사용되지 않음"으로 표시하는 메모리 관리 제어 동작을 담고 있는 픽처에 대해 명시된다.
움직임 벡터 예측.
비트스트림에서 움직임 벡터를 효과적으로 표현하기 위하여, 움직임 벡터는 블록 별로 예측된 움직임 벡터에 대하여 상이하게 코딩될 수 있다. 많은 비디오 코덱에서, 예측된 움직임 벡터는 미리 정의된 방법으로, 예를 들면, 인접 블록의 인코딩된 또는 디코딩된 움직임 벡터의 중간값을 계산함으로써 생성된다. 때로는 최신 움직임 벡터 예측(advanced motion vector prediction, AMVP)이라고 지칭되는 움직임 벡터 예측을 생성하는 다른 방법은 시간 참조 픽처 내 인접 블록 및/또는 동일위치 블록으로부터 후보 예측 리스트를 만들고 선택된 후보를 움직임 벡터 예측기로서 시그널링하는 것이다. 움직임 벡터 값을 예측하는 것 이외에, 이전에 코딩된/디코딩된 픽처의 참조 인덱스가 예측될 수 있다. 참조 인덱스는 통상적으로 시간 참조 픽처 내 인접 블록 및/또는 동일위치 블록으로부터 예측된다. 움직임 벡터의 차분 코딩은 전형적으로 슬라이스 경계의 전체에서 사용 불가능하게 된다.
다중 가설 움직임 보상 예측(multi-hypothesis motion-compensated prediction).
H.264/AVC 및 HEVC는 P 슬라이스(본 출원에서 단방향 예측 슬라이스(uni-predictive slice)라 지칭함) 내 단일 예측 블록을 사용할 수 있게 하거나 또는 B 슬라이스라 지칭되기도 하는 양방향 예측 슬라이스(bi-predictive slice)에 대해 두 개의 움직임 보상 예측 블록의 선형적 결합을 가능하게 한다. B 슬라이스 내 개개의 블록은 양방향 예측, 단방향 예측 또는 인트라 예측될 수 있으며, P 슬라이스 내 개개의 블록은 단방향 예측 또는 인트라 예측될 수 있으며, P 슬라이스 내 개개의 블록은 단방향-예측 또는 인트라-예측될 수 있다. 양방향 예측 픽처에 대한 참조 픽처는 출력 순서에서 후속 픽처 및 이전의 픽처로 한정되지 않고, 그 대신 어떤 참조 픽처라도 사용될 수 있다. H.264/AVC 및 HEVC과 같은 많은 코딩 표준에서, 참조 픽처 리스트 0이라고 지칭되는 하나의 참조 픽처 리스트는 P 슬라이스 용도로 구성되며, 리스트 0 및 리스트 1이라는 두 참조 픽처 리스트는 B 슬라이스 용도로 구성되며, 두 개의 참조 픽처 리스트인, 리스트 0 및 리스트 1은 B 슬라이스 용도로 구성된다. B 슬라이스에 대하여, 예측을 위한 참조 픽처가 서로 또는 현재 픽처와 임의의 디코딩 순서 관계 또는 출력 순서 관계를 가질 수 있을지라도, 포워드 예측은 참조 픽처 리스트 0 내 참조 픽처로부터의 예측하는 것을 말할 수 있으며, 백워드 예측은 참조 픽처 리스트 1 내 참조 픽처로부터의 예측하는 것을 말할 수 있다.
가중 예측(Weighted prediction).
많은 코딩 표준은 인터 픽처(P)의 예측 블록에 대해 1이라는 예측 가중치를 사용하고 (결과적으로 평균화되는) B 픽처의 각 예측 블록에 대해서는 0.5라는 예측 가중치를 사용한다. H.264/AVC은 P 및 B의 두 슬라이스에 대해 가중 예측을 허용한다. 묵시적 가중 예측(implicit weighted prediction)에서, 가중치는 픽처 순서 카운트에 비례하는데 반해 명시적 가중 예측(explicit weighted prediction)에서 예측 가중치는 명시적으로 표시된다. 명시적 가중 예측의 가중치는 예를 들면, 다음과 같은 신택스 구조: 슬라이스 헤더, 픽처 헤더, 픽처 파라미터 세트, 적응 파라미터 세트 또는 임의의 유사한 신택스 구조 중 하나 이상에서 표시될 수 있다.
많은 비디오 코덱에서, 움직임 보상 이후 예측 잔차(prediction residual)가 일차로 (DCT와 같은) 변환 커널로 변환된 다음 코딩된다. 그 이유는 종종 잔차 중에서 약간의 상관이 여전히 존재한다는 것이며 많은 사례에서 변환은 이러한 상관을 줄이는데 도움이 될 수 있고 더욱 효과적인 코딩을 제공할 수 있기 때문이다.
초안 HEVC에서, 각각의 PU는 그와 연관되고 그 PU 내 픽셀에 무슨 종류의 예측이 적용될 것인지를 정의하는 예측 정보(예를 들면, 인터 예측된 PU에 대한 움직임 벡터 정보 및 인트라 예측된 PU에 대한 인트라 예측 방향성 정보)를 갖고 있다. 유사하게, 각각의 TU는 (예를 들면, DCT 계수 정보를 비롯하여) 그 TU 내 샘플에 대한 예측 오차 디코딩 프로세스를 서술하는 정보와 연관되어 있다. 예측 오차 코딩이 각각의 CU마다 적용되는지 또는 적용되지 않는지는 CU 레벨에서 시그널링될 수 있다. CU와 연관된 아무런 예측 오차 잔차가 없는 경우, 이것은 CU에 대해 아무런 TU도 없다고 간주될 수 있다.
일부 코딩 포맷 및 코덱에서, 소위 단기간 참조 픽처와 장기간 참조 픽처가 구별된다. 이러한 구별은 시간 다이렉트 모드 등 또는 묵시적 가중 예측에서 움직임 벡터 스케일링과 같은 일부 디코딩 프로세스에 영향을 줄 수 있다. 만일 시간 다이렉트 모드 등에 사용된 참조 픽처가 모두 단기간 참조 픽처이면, 예측에서 사용된 움직임 벡터는 현재 픽처와 각각의 참조 픽처 간의 픽처 순서 카운트(POC) 차에 따라 스케일링될 수 있다. 그러나, 일부 코딩 시스템에서, 만일 시간 다이렉트 모드 등에서 사용된 적어도 하나의 참조 픽처가 장기간 참조 픽처이면, 움직임 벡터의 디폴트 스케일링이 사용될 수 있는데, 예를 들면, 움직임을 절반으로 조절하는 스케일링이 사용되거나 아니면 움직임 벡터가 스케일링되지 않을 수 있다. 유사하게, 단기간 참조 픽처가 묵시적 가중 예측에 사용되면, 예측 가중치는 현재 픽처의 POC와 참조 픽처의 POC 간의 POC 차에 따라서 스케일링될 수 있다. 그러나, 만일 장기간 참조 픽처가 묵시적 가중 예측에 사용되면, 묵시적 가중 예측에서 양방향 예측 블록에 대해 0.5라는 디폴트 예측 가중치가 사용될 수 있다.
움직임 파라미터 형태 또는 움직임 정보는 한정되지 않는 예시로서 다음과 같은 형태 중 하나 이상을 포함한다.
1) 예측 유형의 표시 (예를 들면, 인트라 예측, 단방향 예측, 양방향 예측) 및/또는 참조 픽처의 개수;
2) 인터 예측(시간 예측이라고 알려져 있음), 인터 계층 예측, 인터 뷰 예측, 뷰 합성 예측(view synthesis prediction, VSP), 및 인터 컴포넌트와 같은 예측 방향의 표시(이는 참조 픽처 별로 및/또는 예측 유형 별로 표시될 수 있음. 그리고 일부 실시예에서 인터 뷰 및 뷰 합성 예측은 연대하여 일 예측 방향이라고 간주될 수 있음); 및/또는
3) 단기간 참조 픽처 및/또는 장기간 참조 픽처 및/또는 인터 계층 참조 픽처와 같은 참조 픽처 유형의 표시(이는 예를 들어 참조 픽처 별로 표시될 수 있음);
4) 참조 픽처의 참조 픽처 리스트 및/또는 임의의 다른 식별자에 대한 참조 인덱스(이는 예를 들어 참조 픽처 별로 표시 - 그 형태는 예측 방향 및/또는 참조 픽처 유형에 달려 있음 - 될 수 있으며 참조 인덱스가 적용하는 참조 픽처 리스트 등과 같은 다른 관련된 정보 부분이 동반될 수 있음);
5) 수평 움직임 벡터 컴포넌트(이는 예를 들어 예측 블록 별로 또는 참조 인덱스 등 별로 표시될 수 있음);
6) 수직 움직임 벡터 컴포넌트(이는 예를 들어 예측 블록 별로 또는 참조 인덱스 등 별로 표시될 수 있음);
7) 픽처 순서 카운트 차 및/또는 움직임 파라미터를 담고 있는 또는 움직임 파라미터와 연관된 픽처와 그의 참조 픽처 간의 상대적인 카메라 분리와 같은 하나 이상의 파라미터, 이는 하나 이상의 움직임 벡터 예측 프로세스에서 수평 움직임 벡터 컴포넌트 및/또는 수직 움직임 벡터 컴포넌트의 스케일링에 사용될 수 있음(여기서 상기 하나 이상의 파라미터는 각 참조 픽처 별로 또는 각각의 참조 인덱스 등 별로 표시될 수 있음);
8) 움직임 파라미터 및/또는 움직임 정보가 적용하는 블록의 좌표, 예를 들면 루마 샘플 유닛 내 블록의 상단 좌측 샘플의 좌표;
9) 움직임 파라미터 및/또는 움직임 정보가 적용하는 블록의 범위(예를 들면 폭과 높이).
픽처와 연관된 움직임 필드는 예측 유닛과 같은 픽처의 코딩된 블록 마다 생성되는 한 세트의 움직임 정보를 포함하는 것으로 간주될 수 있다. 움직임 필드는 예를 들어 블록의 좌표에 의해 액세스될 수 있다. 움직임 필드는 시간 움직임 벡터 예측(temporal motion vector prediction, TMVP) 또는 현재의 (디)코딩된 픽처와 다른 예측을 위한 소스 또는 참조가 사용되는 임의의 다른 움직임 예측 메커니즘에서 사용될 수 있다.
상이한 공간 그래뉴러리티 또는 유닛은 움직임 필드를 표현 및/또는 저장하는데 적용될 수 있다. 예를 들면, 규칙적인 그리드의 공간 유닛이 사용될 수 있다. 예를 들면, 픽처는 특정 크기의 장방형 블록(우측 에지 및 하단 에지 상에 있는 것과 같은 픽처의 에지에서는 어쩌면 예외 블록이 있음) 블록으로 나누어질 수 있다. 예를 들면, 공간 유닛의 크기는 인코더에 의해 분명한 움직임이 비트스트림에서 표시될 수 있는 가장 작은 크기, 이를 테면, 루마 샘플 유닛 내 4x4 블록과 같을 수 있다. 예를 들면, 소위 압축된 움직임 필드가 사용될 수 있는데, 이 경우 공간 유닛은 루마 샘플 유닛 내 16x16 블록과 같은 미리 정해진 또는 표시된 크기 - 이 크기는 분명한 움직임을 표시하기 위한 가장 작은 크기보다 클 수 있음 - 와 같을 수 있다. 예를 들면, HEVC 인코더 및/또는 디코더는 (픽처들 간에 임의의 예측을 위한 움직임 필드를 사용하기 전에) 각각의 디코딩된 움직임 필드마다 움직임 데이터 저장소 감축(motion data storage reduction, MDSR)이 수행되는 방식으로 구현될 수 있다. HEVC 구현에서, MDSR은 압축된 움직임 필드에서 16x16 블록의 상단 좌측 샘플에 적용 가능한 움직임을 유지함으로써 움직임 데이터의 그래뉴러리티를 루마 샘플 유닛 내 16x16 블록으로 줄일 수 있다. 인코더는 압축된 움직임 필드의 공간 유닛에 관련된 표시(들)를 예를 들어 비디오 파라미터 세트 또는 시퀀스 파라미터 세트와 같은, 시퀀스 레벨의 신택스 구조에서 하나 이상의 신택스 요소 및/또는 신택스 요소 값으로서 인코딩할 수 있다. 일부(디)코딩 방법 및/또는 디바이스에서, 움직임 필드는 움직임 예측의 블록 분할에 따라서 (예를 들면, HEVC 표준의 예측 유닛에 따라서) 표현될 수 있으며/있거나 저장될 수 있다. 일부 (디)코딩 방법 및/또는 디바이스에서, 규칙적인 그리드와 블록 분할의 조합이 적용될 수 있어서, 미리 정의된 또는 표시된 공간 유닛 크기보다 큰 파티션과 연관된 움직임은 그러한 파티션과 연관되어 표현되며/되거나 저장되는데 반해, 미리 정의된 또는 표시된 공간 유닛 크기 또는 그리드보다 작은 또는 그에 속하지 않은 파티션과 연관된 움직임은 미리 정의된 또는 표시된 유닛을 위해 표현되며/되거나 저장된다.
H.264/ AVC 및 확장에서 움직임 벡터(MV) 예측
H.264/AVC/MVC에서 명시된 움직임 벡터(MV) 예측은 동일 이미지의 이웃 블록에 존재하는 상관(공간 상관) 또는 이전에 코딩된 이미지에 존재하는 상관(시간 상관)을 활용한다.
도 1은 H.264/AVC에서 MVP을 위한 후보로 사용하는 현재 코딩된 블록(cb)의 공간-시간 이웃을 도시한다. 도 1a는 현재 블록(cb)의 공간적으로 이웃하는 블록을 도시하는데, A는 바로 좌측의 블록이고, B는 위쪽의 블록이고, C는 현재 블록(cb)의 대각방향으로 위쪽의 블록이다. 도 1b는 시간 이웃을 예시하며, 현재 블록에 시간적으로 이웃하는 블록은 픽처에 대해 현재 블록과 동일한 장소에서 동일위치에 있지만 상이한 시간 인스턴스에서 존재한다. 움직임 벡터(MV)는 대응하는 블록이 (참조) 픽처 내에 존재하는 위치를 표시한다고 간주될 수 있다. 많은 코딩 체계에서, 움직임 벡터는 참조 픽처의 표시를 포함하는 것으로 간주될 수 있거나 참조 픽처의 표시와 연관되는 것으로 간주될 수 있다. 단방향 예측의 사례에서는 하나의 움직임 벡터가 예측 유닛 등과 연관될 수 있다. 양방향 예측의 사례에서는 두 개의 움직임 벡터가 예측 유닛 등과 연관될 수 있다.
cb의 MV는 인코더에서 움직임 추정 및 움직임 보상 프로세스를 통해 추정될 수 있고 차분 펄스 코드 변조(differential pulse code modulation, DPCM)를 사용하여 코딩될 수 있으며 움직임 벡터 예측(motion vector prediction, MVp)과 실제 MV 간의 잔차의 형태로 MVd(x, y) = MV(x, y) -MVp(x, y)로서 비트스트림에 포함될 수 있다.
H.264/ AVC에서 포괄적 MVP
H.264/AVC 및 MVC의 MVP에서, 현재 파티션 또는 서브-파티션의 바로 위(블록 B), 대각방향으로 오른쪽 위(블록 C), 및 바로 왼쪽(블록 A)의 매크로블록 파티션 또는 서브-매크로블록 파티션의 움직임 벡터의 중간 값이 계산될 수 있다.
보다 상세하게, H.264/AVC에서 MVp 추정의 포괄적인 프로세스는 다음과 같이 설명될 수 있다:
1. 공간 이웃 블록(A, B, C) 중 단지 하나의 블록만이 현재 블록(cb)와 동일한 참조 인덱스를 가질 때:
Figure 112015109641360-pct00003
2. 하나 보다 많은 이웃 블록(A, B, C)이 cb와 동일한 참조 인덱스를 가질 때:
Figure 112015109641360-pct00004
여기서 mvLXA, mvLXB, mvLXC는 공간적으로 이웃하는 블록의 (참조 프레임 id 없는) 수평 또는 수직 움직임 벡터 컴포넌트 중 어느 하나이다.
3. 16x8 및 8x16 매크로블록 파티션의 특수한 사례가 도 1c에 도시되며, 이 도면에서 화살표는 현재 매크로블록 파티션의 움직임 벡터를 예측하기 위해 사용되는 매크로블록 파티션을 표시한다.
이것 이외에도, H.264/AVC은 몇 가지 특수한 사례를 명시하고 있으며, 이 사례는 다음과 같이 설명될 수 있다.
P_SKIP 모드
1) cb의 참조 프레임 인덱스는 항시 0이며 활용되는 리스트는 0이다(refIdxL0 = 0).
2) MV는 수식(2)에서 명시된 프로세스를 사용하여 추정되며 다만 블록(A 및 B)만으로 한정된다.
3) 만일 어떠한 A 및 B 이웃도 사용할 수 없으면 제로 값 MVp가 사용된다.
4) 어떠한 dMV도 비트스트림에 포함되지 않는다. cb의 MV는 MVp와 같다.
B_ 스킵 (B_ 다이렉트 _ 16xl6 , 및 B_ 다이렉트 8x8)
1) 다음과 같은 두 가지 MVP 추정 프로세스 중 하나의 프로세스가 사용될 수 있다:
a) 공간 다이렉트 모드: 공간 이웃 블록으로부터 계산된 MVP
b) 시간 다이렉트 모드: 시간 이웃 블록으로부터 계산된 MVP
2) MVP 프로세스는 다음과 같은 값의 추정을 포함한다:
a) 참조 인덱스 refldxL0, refldxL1
b) 참조 픽처 mvL0 및 mvL1
3) 공간 다이렉트 모드는 다음과 같이 추정된다:
a) 참조 인덱스 예측 및 움직임 벡터 예측의 프로세스는 참조 픽처 리스트 0 및 참조 리스트 1에 대해 독립적으로 실행된다.
b) 최소량의 포지티브 참조 인덱스(minimal positive reference index)가 각각의 리스트에서 선택된다.
c) 수식(2) 및 (3)에서 설명된 포괄적인 MVP 프로세스가 각각의 참조 픽처 리스트마다 적용되어 mvpL0 및 mvpL1를 생성한다. 움직임 벡터 예측의 각 컴포넌트(mvpLX)는 움직임 벡터의 대응하는 벡터 컴포넌트(mvLXA, mvLXB, 및 mvLXC)의 중간값으로 주어진다:
mvpLX[ 0 ] = Median(mvLXA[ 0 ], mvLXB[ 0 ], mvLXC[ 0 ] )
mvpLX[ 1 ] = Median(mvLXA[ 1 ], mvLXB[ 1 ], mvLXC[ 1 ] )
4) 시간 다이렉트 모드는 다음과 같이 추정된다:
a) list 0 및 list 1에 대한 현재 블록의 MV는 (시간 방향으로) 이웃하는 블록으로부터 MV의 시간 보간을 통해 계산된다.
b) 도 1b를 참조하면, 현재 프레임으로부터 참조된 프레임까지의 POC 거리는 보간의 인수로서 활용된다:
Figure 112015109641360-pct00005
여기서
TDB는 현재 프레임과 list0 내 참조 프레임 간의 POC 거리이다.
TDD는 list0와 list1 내에서 참조된 프레임들 간의 POC 거리이다.
MV는 참조 픽처 list1로부터 동일위치 블록의 움직임 벡터이다.
HEVC 및 확장에서 움직임 벡터 예측(MVP)
HEVC은 두 가지의 움직임 벡터 예측 모드를 명시한다: AMVP 및 MERGE.
HEVC에서 AMVP
HEVC에서 현재 블록(cb)의 움직임은 Cb의 공간-시간 이웃에 위치하는 예측된 유닛(PU 블록)으로부터 예측된다고 명시되어 있다. 블록 레이아웃 및 활용된 명명 규칙은 도 2a에 도시되며, 이 도면에서 현재 코딩된 블록(Cb)의 움직임 정보(벡터)는 Cb에 공간적으로 근접하게 위치하는 PU(A0...B2)의 움직임 정보로부터 예측된다. 도 2b는 AMVP 시 활용되는 시간 동일위치 블록의 블록 레이아웃 및 명명 규칙을 도시한다. 이러한 명명 규칙은 아래와 같이 사용되며, 여기서 심볼은 도 2a 및 도 2b와 관련된다.
공간 이웃으로부터 MVP 도출
공간 이웃의 공간 이웃 움직임 정보로부터 MVP를 도출하는 것은 다음과 같이 활용된다:
현재 블록(Cb)이 참조 인덱스(refIdx(Cb)) 및 움직임 벡터(MV(Cb))를 사용하여 예측된다고 고려해본다. 이러한 표기법에서, refIdx(*) 및 MV(*)는 현재 블록에 대해 활용된 참조 인덱스 및 움직임 벡터의 실제 값을 반환하는 함수이다. AMVP는 블록(A0...B2)를 분석하고 움직임 벡터 예측을 위한 두 개의 후보(MVP0 및 MVP1)를 생성한다. 이들 후보는 다음과 같은 로직을 사용하여 결정된다:
Figure 112015109641360-pct00006
여기서 fun은 Cb 및 블록(Ax 및 Bx)에 대해 참조 인덱스 매치를 수행하는 함수이며 이러한 참조 인덱스 매치가 다음과 같으면 블록의 움직임 벡터(Ax(Bx))를 반환한다:
Figure 112015109641360-pct00007
일단 MVP0 및 MVP1가 도출되면, 인코더는 이를 비트스트림에 표시하는데 사용될 (예를 들면, MVP0 또는 MVP1 중 어느 하나를 참조하는 인덱스와 같은) 예측기를 선택한다. 예를 들면, 인코더는 레이트 왜곡 비용(rate-distortion cost)과 같이 이러한 예측기 및 디코더 측에 신호 최적한 예측기의 비용을 계산할 수 있다. 비트스트림으로부터 MVP 인덱스 등을 수신하면, 디코더는 수식 (1) 또는 (2) 중 어느 하나를 실행함으로써 움직임 벡터 예측기를 도출할 수 있다.
일부 사례에서, 예를 들어, 블록{A0,...B2} 중 어떤 블록도 Cb와 동일한 refIdx를 공유하지 않으면, 수식 (1) 또는 (2)는 결과적으로 움직임 벡터 예측을 결정하지 못할 수 있다. 이러한 사례에서, 사용할 수 없는 MVP 후보에 대한 움직임 벡터 결정은 다음과 같이 수행될 수 있다:
Figure 112015109641360-pct00008
여기서 함수(fun2)는 다음과 같이 결정된다:
Figure 112015109641360-pct00009
여기서 scaleMV는 이웃 블록의 움직임 정보를 반환하는 함수이며, refIdx(Cb)에 의해 다루어진 POC 거리에 맞추기 위해 스케일링된다.
Figure 112015109641360-pct00010
여기서 dPOC(x)는 블록(x)을 호스팅하는 픽처와 refIdx 기간 내내 현재 블록(x)에 대해 활용된 움직임 예측에 의해 참조된 픽처 간의 POC 거리를 반환하는 함수이다.
Figure 112015109641360-pct00011
그러므로, 만일 현재 블록(Cb)의 POC가 C이고 Cb에 활용된 참조 인덱스의 POC가 R이면:
Figure 112015109641360-pct00012
본 단원의 설명을 결론 짓자면, 범위 내의 블록이 인터-코딩되고, refIdx!=-1이면, 수식(1-2) 및 (4-5)에 의해 명시된 처리의 결과로 움직임 벡터가 생성된다고 거론된다.
시간 이웃으로부터 MVP 도출
HEVC에 의해 명시된 AMVP는 두 개의 MVP 후보가 도출될 것을 요구한다. 일부 사례에서 만일 하나 또는 두 공간 MVP 후보가 사용 가능하지 않으면, 시간적으로 동일위치 블록으로부터 생성된 움직임 정보가 MVP로서 활용된다.
HEVC에서, 시간 MVP(TMVP)을 위해 선택된 동일위치 픽처는 collocated_from_I0_flag 및 collocated_ref_idx 신택스 요소를 사용하여 표시될 수 있으며, 이들 두 신택스 요소는 슬라이스 세그먼트 헤더 신택스 구조에 포함된다.
현재 블록(Cb)의 상단 좌측 코너가 공간 좌표(x,y)에 위치한다고 가정하면, 동일위치 블록의 위치(ColocB)는 다음과 같은 절차를 사용하여 도출된다:
Figure 112015109641360-pct00013
움직임 정보(MV(ColocB))를 움직임 정보(mv(Cb))로 조정하기 위하여, 움직임 벡터 스케일링이 수행되는데, 스케일링 인수는 두 POC 차의 비율로서, 첫 번째 1 POC 차는 동일위치 움직임 벡터의 POC 차(즉, 동일위치 픽처와 동일위치 움직임 벡터에 의해 시사된 참조 픽처의 POC 차)이고 두 번째 2 POC 차는 현재 픽처와 현재 블록의 참조 인덱스에 의해 식별된 픽처(즉, 소위 타겟 픽처) 간의 POC 차이다. 결과적인 시간 MVP는 MVP1/MVP2가 사용 불가능하면 이들 중 어느 것을 교체한다. 시간 MVP가 사용 불가능하면, 또는 하나의 MVP가 여전히 사용 가능하지 않는 경우, 예측자로서 0개의 움직임 벡터가 활용된다.
깊이-강화된 비디오
스테레오 디스플레이에서 스테레오스코픽 비디오 콘텐츠를 보고자 한다고 가정해본다. 스테레오스코픽 비디오 콘텐츠는 시청자의 왼쪽과 오른쪽 눈에 개별적으로 보여지는 이미지 쌍으로 구성되는 것으로 간주될 수 있다. 이러한 이미지 쌍은 카메라들 간의 특정한 스테레오 베이스라인 거리를 갖는 특정한 스테레오스코픽 카메라 구성을 사용하여 촬영된다.
도 3은 그러한 스테레오스코픽 카메라 구성의 간략화된 2D 모델을 도시한다. 용어 C1, C2는 카메라의 중심 위치를 나타내며, b는 두 카메라의 중심 사이의 거리(즉, 스테레오 베이스라인)이고, f는 카메라의 초점 길이이며, X는 촬영되는 실제 3D 장면 내의 물체이다. 실 세계 물체(X)는 카메라(C1 및 C2)에 의해 촬영된 이미지 내 상이한 위치에 투사되는데, 이들 위치는 각기 x1 및 x2로 표시된다. 이미지의 절대 좌표에서 x1과 x2 사이의 수평 거리는 디스패리티(disparity)라고 호칭한다.
카메라 구성에 의해 촬영된 이미지는 스테레오스코픽 이미지라고 호칭한다. 이러한 이미지 내에 나타나는 디스패리티는 깊이의 환영 또는 인상(impression)을 만들거나 강화시킬 것이다.
그러나, 현재 사용 가능한 스테레오스코픽 디스플레이는 시청 거리 및 디스패리티 시프트와 같은 특성에서 서로 상당히 상이하다. 그 결과, 디스플레이된 스테레오 비디오에서 깊이 또는 디스패리티 범위는 시청 디바이스에서 풍부한 깊이 범위와 일치하지 않을 수 있다. 이러한 파라미터의 불일치는 스테레오 경험을 반감시킬 수 있으며 심지어 시청자 눈의 피로 또는 싫은 느낌을 가져다 줄 수 있다. 이러한 바람직하지 않은 영향을 회피하기 위하여, 스테레오 디스플레이 및/또는 스테레오 디스플레이와 연결되는 비디오 플레이어 디바이스 등은 자동으로 스테레오스코픽 콘텐츠에서 디스패리티를 적응할 수 있어야 하거나 또는 요구가 있을 때 이 기능을 시청자에게 제공함으로써 스테레오스코픽 콘텐츠에서 디스패리티를 적응할 수 있어야 한다.
그러나, 디스패리티 적응은 간단한 프로세스가 아니다. 이것은 베이스라인 거리가 상이한(즉, b가 가변적인) 추가적인 카메라 뷰를 갖거나 또는 카메라 구성에 의해 촬영되지 않을 수 있는 및/또는 코딩된 비디오 비트스트림에 의해 표현되지 않을 수 있는 가상 카메라 뷰를 렌더링하는 것 중 어느 하나를 필요로 한다. 도 4는 이러한 해법에 어울리는 그러한 멀티뷰 카메라 구성의 간략화된 모델을 도시한다. 이러한 구성은 스테레오스코픽 베이스라인에 대하여 여러 이산적인 값으로 촬영된 스테레오스코픽 비디오 콘텐츠를 제공하는 것이 가능하며 그래서 스테레오스코픽 디스플레이가 시청 조건에 맞는 한 쌍의 카메라를 선택하는 것이 가능해진다.
3D 비전의 더욱 진보된 접근방법은 시청 안경을 필요로 하지 않는 멀티뷰 자동 스테레오스코픽 디스플레이(multiview autostereoscopic display, ASD)를 갖는 것이다. ASD는 한번에 하나보다 많은 뷰를 방사하지만, 도 4에 도시된 바와 같이, 방사되는 뷰는 시청자가 특정한 뷰포인트로부터 스테레오 쌍만을 보는 방식으로 공간 내에 국한된다. 더욱이, 시청자는 상이한 뷰포인트로부터 다른 스테레오 쌍을 볼 수 있으며, 그러므로 연속하는 뷰가 스테레오 쌍이고 적절하게 배열된다면 운동 시차 보기(motion parallax viewing)가 지원된다.
ASD 기술은 예를 들면 52개 이상의 상이한 이미지를 동시에 보여줄 수 있으며, 그 중 스테레오 쌍만이 특정한 뷰포인트에서 눈에 보일 수 있다. 이것은 예를 들면 거실 환경에서 시청 안경 없이 멀티유저 3D 비전을 지원한다.
전술한 스테레오스코픽 및 ASD 애플리케이션 및/또는 유사한 것은 디스플레이에서 멀티뷰 비디오가 사용되게 하는 것이 필요할 수도 있다.
멀티뷰 비디오 코딩(Multiview Video Coding, MVC)이라고 알려진 H.264/AVC 비디오 코딩 표준의 멀티뷰 확장은 H.264/AVC의 첨부물로서 표준화되었다. MVC 비트스트림의 베이스 뷰는 스테레오스코픽 및 멀티뷰 콘텐츠를 기존 서비스에 용이하게 도입시켜주는 임의의 H.264/AVC 디코더에 의해 디코딩될 수 있다. MVC은 인접한 뷰가 어떻게 상관되는지에 따라서, 모든 뷰들의 독립적인 코딩과 비교하여 상당한 비트레이트를 절감하는 결과를 가져올 수 있는 인터-뷰 예측을 가능하게 한다. MVC에는 신규의 저급 코딩 툴이 도입되지 않았으므로, H.264/AVC의 기존 하드웨어 구현이 통상적으로 MVC에 이와 같이 적용될 수 있다.
3D 비디오( 3DV ) 코딩
그러나, H.264/MVC은 전술한 문제에 대해 제한적인 해법을 제안하였다. H.264/MVC이 H.264/AVC 동시방송(simulcast)보다 효과적이라는 사실에도 불구하고, MVC 코딩된 비디오의 레이트는 뷰의 개수에 비례한다. ASD가 입력으로서 예를 들어 52개 뷰를 필요로 할 수 있다는 것을 고려하면, 그러한 개수의 뷰의 총 비트레이트는 많은 사례에서 전송 채널 대역폭에 관한 제약을 극복할 것이다. 또한, 다수의 뷰가 동시에 촬영되고, 인코딩되고 전송되어야 할 때, 콘텐츠 제작 시 가능한 문제를 언급할 가치가 있다.
동화상 전문가 그룹(Moving Picture Experts Group, MPEG)의 3차원 비디오(three-dimensional video, 3DV) 애드-혹 그룹 및 이후 3D 비디오 코딩 확장 개발에 관한 공동 협력 팀(Joint Collaborative Team on 3D Video Coding Extension Development, JCT-3V)은 멀티뷰 애플리케이션에 대한 해법을 탐구하였다. 그러한 멀티뷰 애플리케이션에 더욱 실행가능한 해법은 입력 뷰의 개수를 한정하는 것, 예를 들어 모노 또는 스테레오 플러스 보충 데이터의 개수를 한정하는 것과, 디코딩 측에서, 예를 들어 디스플레이에서 국부적으로 필요한 모든 뷰를 렌더링(합성)하는 것이다. 뷰 렌더링을 위한 여러 기술이 사용 가능하며, 깊이 이미지 기반 렌더링(depth-image-based rendering, DIBR)이 경쟁력 있고 잘 구축된 대안이 될 것으로 생각될 수 있다. DIBR의 전형적인 구현은 스테레오스코픽 베이스라인(b0)을 가진 스테레오스코픽 비디오 및 대응하는 깊이 정보를 입력 받고 베이스라인을 가진 두 입력 뷰(bi < b0) 사이에서 원하는 개수의 가상 뷰를 합성한다. 그러나, DIBR 기반 멀티뷰 렌더링을 가능하게 하기 위해, 디코더 측에서 텍스처 데이터가 대응하는 깊이 데이터와 함께 사용 가능하여야 한다. 그러한 DIBR 기반 3DV 시스템의 간략화된 모델이 도 6에 도시된다.
그러한 3DV 시스템에서, 통상적으로 깊이 정보는 인코더 측에서 각 비디오 프레임 마다 (깊이 맵으로도 알려진) 깊이 픽처의 형태로 생성된다. 깊이 맵은 픽셀 별 깊이 정보 또는 범위 정보를 가진 이미지이다. 깊이 맵 내 각 샘플은 카메라가 놓인 평면으로부터 각각의 텍스처 샘플의 거리를 나타낸다. 다시 말해서, 만일 z 축이 카메라의 촬영 축을 따라서 있으면(그래서 카메라가 놓인 평면에 직교하면), 깊이 맵 내 샘플은 z축 상의 값을 나타낸다. 특정 뷰의 범위 정보는 카메라 센서로부터 생성된 텍스처 샘플의 거리 정보, 텍스처 샘플과 다른 뷰 내 각각의 텍스처 샘플 간의 디스패리티 또는 시차 정보, 또는 유사한 정보를 나타낸다.
깊이-강화된 비디오는 하나 이상의 깊이 뷰를 가진 깊이 비디오와 연관된 하나 이상의 뷰를 갖는 텍스처 비디오를 말한다. 비디오 플러스 깊이(video plus depth, V+D), 멀티뷰 비디오 플러스 깊이(multiview video plus depth, MVD), 및 계층적 깊이 비디오(layered depth video, LDV)를 비롯하여, 깊이-강화된 비디오를 표현하는 다수의 접근방법이 사용될 수 있다. 비디오 플러스 깊이(V+D) 표현에서, 단일의 텍스처 뷰 및 각각의 깊이 뷰는 각기 텍스처 픽처의 시퀀스 및 깊이 픽처의 시퀀스로서 표현된다. MVD 표현은 복수개의 텍스처 뷰 및 각각의 깊이 뷰를 포함한다. LDV 표현에서, 중앙 뷰의 텍스처 및 깊이는 관례적으로 표현되는데 반해, 다른 뷰의 텍스처 및 깊이는 부분적으로 표현되며 중간 뷰의 정확한 뷰 합성에 필요한 폐색되지 않은 영역(dis-occluded area)만을 다룬다.
쌍을 이루지 않는 멀티뷰 비디오-플러스-깊이(unpaired multiview video-plus-depth, MVD)라고 지칭되는 체계에서, 텍스처 및 깊이 뷰의 개수는 같지 않을 수 있고, 그리고/또는 텍스처 뷰 중 일부가 동일-위치의 깊이 뷰를 갖지 않을 수 있거나, 깊이 뷰 중 일부가 동일위치의 텍스처 뷰를 갖지 않을 수 있거나, 깊이 뷰 컴포넌트 중 일부가 시간적으로 텍스처 뷰 컴포넌트와 일치하지 않을 수 있거나, 그 반대로도 가능할 수 있고, 동일위치의 텍스처 뷰 및 깊이 뷰가 상이한 공간 영역을 다룰 수 있고, 그리고/또는 하나 보다 많은 유형의 깊이 뷰 컴포넌트가 있을 수 있다. 쌍을 이루지 않는 MVD 신호의 인코딩, 디코딩, 및/또는 처리는 깊이-강화된 비디오 코딩, 디코딩, 및/또는 처리 체계에 의해 진전될 수 있다.
동일-위치, 동일위치 및 오버랩핑이라는 용어는 텍스처 뷰 컴포넌트 내 특정 샘플 또는 영역이 깊이 뷰 컴포넌트 내 특정한 동일-위치/동일위치/오버랩핑 샘플 또는 영역과 동일한 3D 장면의 물리적인 물체 또는 부분을 표현하는 것을 표시하는 것으로 같은 의미로 사용될 수 있다. 일부 실시예에서, 텍스처 뷰 컴포넌트의 샘플링 그리드는 깊이 뷰 컴포넌트의 샘플링 그리드와 동일할 수 있는데, 즉 루마 이미지와 같은, 텍스처 뷰 컴포넌트의 컴포넌트 이미지의 하나의 샘플은 깊이 뷰 컴포넌트의 하나의 샘플에 대응하며, 즉 샘플의 물리적인 치수는 루마 이미지와 같은, 텍스처 뷰 컴포넌트의 컴포넌트 이미지와 대응하는 깊이 뷰 컴포넌트의 컴포넌트 이미지 사이에서 일치한다. 일부 실시예에서, 루마 이미지와 같은, 텍스처 뷰 컴포넌트의 컴포넌트 이미지의 샘플링 그리드의 샘플 치수(twidth x theight)는 깊이 뷰 컴포넌트의 샘플링 그리드의 샘플 치수(dwidth x dheight)의 정수 곱, 즉 twidth = m x dwidth 및 theight = n x dheight일 수 있으며, 여기서 m 및 n은 양의 정수이다. 일부 실시예에서, dwidth = m x twidth 및 dheight = n x theight 이고, 여기서 m 및 n은 양의 정수이다. 일부 실시예에서, twidth = m x dwidth 및 theight = n x dheight 또는 대안으로 dwidth = m x twidth 및 dheight = n x theight이고, 여기서 m 및 n은 양의 값으로 정수가 아닐 수 있다. 이러한 실시예에서, 인코더 및 디코더에서 그리고 뷰 합성 프로세스 및 다른 프로세스에서 텍스처 및 깊이 간의 동일-위치 샘플 값을 도출하기 위해 보간 체계가 사용될 수 있다. 일부 실시예에서, 루마 이미지와 같은, 텍스처 뷰 컴포넌트의 컴포넌트 이미지의 샘플링 그리드의 물리적 위치는 대응하는 깊이 뷰의 물리적 위치와 일치할 수 있으며, 루마 이미지와 같은, 텍스처 뷰 컴포넌트의 컴포넌트 이미지의 샘플 치수는 깊이 뷰 컴포넌트의 샘플링 그리드의 샘플 치수(dwidth x dheight)의 정수 곱일 수 있고(또는 그 반대로도 가능할 수 있음), 그러면 텍스처 뷰 컴포넌트 및 깊이 뷰 컴포넌트는 동일-위치에 있는 것으로 간주될 수 있으며 동일한 뷰포인트를 표현할 수 있다. 일부 실시예에서, 루마 이미지와 같은, 텍스처 뷰 컴포넌트의 컴포넌트 이미지의 샘플링 그리드의 위치는 깊이 뷰 컴포넌트의 샘플링 그리드 위치에 대해 정수-샘플 옵셋(integer-sample offset)을 가질 수 있거나, 그 반대로도 가능할 수 있다. 다시 말해서, 루마 이미지와 같은, 텍스처 뷰 컴포넌트의 컴포넌트 이미지의 샘플링 그리드의 상단 좌측 샘플은 깊이 뷰 컴포넌트의 샘플링 그리드에서 위치(x,y)에 있는 샘플에 대응할 수 있거나, 그 반대로도 가능할 수 있고, 여기서 x 및 y는 음이 아닌 값만을 갖고 원점이 상단 좌측 코너에 있는 이차원 데카르트 좌표계에서 음이 아닌 정수이다. 일부 실시예에서, x 및/또는 y의 값은 정수가 아닐 수 있으며 그 결과 인코더 및 디코더에서 그리고 뷰 합성 프로세스 및 다른 프로세스에서 텍스처와 깊이 간의 동일-위치 샘플 값을 도출하기 위해 보간 방식이 사용될 수 있다. 일부 실시예에서, 루마 이미지와 같은, 텍스처 뷰 컴포넌트의 컴포넌트 이미지의 샘플링 그리드는 깊이 뷰 컴포넌트의 샘플링 그리드의 범위와 비교하여 같지 않은 범위를 가질 수 있다. 다시 말해서, 루마 이미지와 같은, 텍스처 뷰 컴포넌트의 컴포넌트 이미지의 샘플링 그리드에서 수평 및/또는 수직 방향에 있는 샘플 개수는 깊이 뷰 컴포넌트의 샘플링 그리드에서 각각의 수평 및/또는 수직 방향에 있는 샘플 개수와 상이할 수 있고, 그리고/또는 루마 이미지와 같은, 텍스처 뷰 컴포넌트의 컴포넌트 이미지의 샘플링 그리드의 물리적인 폭 및/또는 높이는 깊이 뷰 컴포넌트의 샘플링 그리드의 각각의 물리적인 폭 및/또는 높이와 상이할 수 있다. 일부 실시예에서, 균일하지 않고/않거나 일치하지 않는 샘플 그리드는 텍스처 및/또는 깊이 컴포넌트에 활용될 수 있다. 루마 이미지와 같은, 텍스처 뷰 컴포넌트의 컴포넌트 이미지의 샘플링 그리드가 깊이 뷰 컴포넌트의 샘플링 그리드의 샘플 치수(dwidth x dheight)의 정수 곱이 아닐 때, 또는 루마 이미지와 같은, 텍스처 뷰 컴포넌트의 컴포넌트 이미지의 샘플링 그리드 위치가 깊이 뷰 컴포넌트의 샘플링 그리드 위치와 비교하여 비정수 옵셋을 가질 때, 또는 깊이 뷰 컴포넌트 및 텍스처 뷰 컴포넌트의 샘플링 그리드가 정렬/조정되지 않을 때 깊이 뷰 컴포넌트의 샘플 그리드는 텍스처 뷰 컴포넌트의 샘플 그리드와 일치하지 않는다. 이것은 예를 들면 컴포넌트들 중 한 컴포넌트 내 데이터의 중복성을 줄이려는 목적으로 또는 깊이 센서와 컬러 이미지 센서 사이의 캘리브레이션/조정 프로세스의 부정확함으로 인하여 발생할 수 있다.
실 세계 3D 장면의 범위 정보는 콘텐츠에 달려 있으며 예를 들면 0부터 무한대까지 변할 수 있다. 그러한 범위 정보의 상이한 형태의 표현이 활용될 수 있다. 아래에는 그러한 표현의 몇 가지 한정하지 않는 예가 제시된다.
깊이 값. 실 세계 3D 장면의 범위 정보는 부동 소수점 또는 고정 소수점 산술 표현에서 깊이 값(Z)으로 직접 표현될 수 있다. 이러한 표현(형태 및 정확성)은 콘텐츠 및 애플리케이션에 특정될 수 있다. Z 값은 아래에서 도시되는 것처럼 깊이 맵 및 디스패리티로 변환될 수 있다.
깊이 맵 값. 실 세계 깊이 값을 유한개의 비트, 예를 들면 8비트로 표현하기 위하여, 깊이 값(Z)은 비선형적으로 양자화되어 아래에 도시된 것처럼 깊이 맵 값(d)으로 생성되며 표현된 Z의 동적 범위는 깊이 범위 파라미터 Znear/Zfar로 한정된다.
Figure 112015109641360-pct00014
이러한 표현에서, N은 현재 깊이 맵의 양자화 레벨을 나타내는 비트 개수이고, 가장 가까운 그리고 가장 먼 실세계 깊이 값(Znear 및 Zfar)은 깊이 맵에서 각기 깊이 값 (2N-1) 및 0에 대응한다. 상기 수식은 2N을 양자화 레벨의 임의의 숫자로 대체함으로써 양자화 레벨의 임의의 숫자에 맞추어질 수 있다. 깊이 및 깊이 맵 간의 포워드 변환 및 백워드 변환을 수행하기 위하여, 깊이 맵 파라미터(Znear/Zfar, 양자화 레벨을 나타내는 비트 N의 개수)가 추가될 수 있다.
디스패리티 맵 값. 범위 데이터의 모든 샘플은 두 개의 주어진 스테레오 이미지들 사이에서 현재 이미지 샘플 위치의 디스패리티 값 또는 벡터(차)로서 표현될 수 있다. 깊이에서 디스패리티로 변환을 위해, 특정한 카메라 구성 파라미터(즉 초점 길이(f) 및 두 카메라 간의 변환 거리(l))가 필요할 수 있다:
Figure 112015109641360-pct00015
디스패리티(D)는 다음과 같은 수식에 따라 깊이 맵 값(v)로부터 계산될 수 있다:
Figure 112015109641360-pct00016
디스패리티(D)는 다음과 같은 수식에 따라 깊이 맵 값으로부터 계산될 수 있다:
Figure 112015109641360-pct00017
수식에서 w는 스케일링 인수이고, o는 옵셋 값이며, n은 디스패리티 벡터의 요구된 정확도에 종속하는 시프트 파라미터이다. 이러한 변환에 필요한 독립적인 세트의 파라미터(w, o 및 n)는 모든 뷰 쌍마다 필요할 수 있다.
실 세계 3D 장면을 고려하는 다른 형태의 범위 정보 표현이 사용될 수 있다.
깊이 뷰는 카메라 센서로부터 텍스처 샘플의 거리 정보, 텍스처 샘플과 다른 뷰 내 각각의 텍스처 샘플 간의 디스패리티 또는 수차 정보, 또는 유사한 정보를 표현하는 뷰를 말한다. 깊이 뷰는 텍스처 뷰의 루마 컴포넌트와 유사한 하나의 컴포넌트를 가진 (깊이 맵이라고 알려진) 깊이 픽처를 포함할 수 있다. 깊이 맵은 픽셀 별 깊이 정보 또는 유사 정보를 가진 이미지이다. 예를 들면, 깊이 맵 내 각각의 샘플은 각각의 텍스처 샘플 또는 카메라가 놓여진 평면으로부터 샘플의 거리를 나타낼 수 있다. 다시 말해서, 만일 z 축이 카메라의 촬영 축을 따라 놓여 있으면(그래서 카메라가 놓여 있는 평면에 직교하면), 깊이 맵 내 샘플은 z 축 상의 값을 나타낼 수 있다. 깊이 맵 값의 시맨틱은 예를 들면 다음과 같은 것을 포함할 수 있다:
- 코딩된 깊이 뷰 컴포넌트에서 각 루마 샘플 값은, 루마 샘플의 동적 범위에서 정규화된, 즉 8-비트 루마 표현의 경우, 0부터 255까지를 포함하는 범위로 정규화된, 실세계 거리(Z) 값의 역, 즉, 1/Z을 나타낸다. 정규화는 양자화 1/Z가 디스패리티의 면에서 균일하다는 식으로 수행될 수 있다.
- 코딩된 깊이 뷰 컴포넌트에서 각 루마 샘플 값은, 구분적 선형 매핑(piece-wise linear mapping)과 같은 매핑 함수 f(1/Z) 또는 테이블을 사용하여, 루마 샘플의 동적 범위에 매핑된, 즉 8-비트 루마 표현의 경우, 0부터 255까지를 포함하는 범위에 매핑된, 실세계 거리(Z) 값의 역, 즉, 1/Z를 나타낸다. 다시 말해서, 깊이 맵 값은 함수 f(1/Z)을 적용한 결과로 생긴다.
- 코딩된 깊이 맵 뷰 컴포넌트에서 각 루마 샘플 값은 루마 샘플의 동적 범위에서, 8-비트 루마 표현의 경우, 0부터 255까지를 포함하는 범위로 정규화된 실세계 거리(Z) 값을 나타낸다.
- 코딩된 깊이 뷰 컴포넌트에서 각 루마 샘플 값은 현재 깊이 뷰로부터 다른 표시된 또는 도출된 깊이 뷰 또는 뷰 위치까지의 디스패리티 또는 시차 값을 나타낸다.
깊이 맵 값의 시맨틱은 비트스트림 내에 예를 들면 비디오 파라미터 세트 신택스 구조, 시퀀스 파라미터 세트 신택스 구조, 비디오 가용성 정보 신택스 구조, 픽처 파라미터 세트 신택스 구조, 카메라/깊이/적응 파라미터 세트 신택스 구조, 보충 강화 정보 메시지, 또는 모든 유사한 것 내에서 표시될 수 있다.
깊이 뷰, 깊이 뷰 컴포넌트, 깊이 픽처 및 깊이 맵과 같은 문구가 다양한 실시예를 설명하기 위해 사용되지만, 깊이 맵 값의 모든 시맨틱은 앞에서 설명된 실시예를 포함하되 그 실시예로 한정하지 않고 다양한 실시예에서 사용될 수 있다. 예를 들면, 본 발명의 실시예는 샘플 값이 디스패리티 값을 표시하는 깊이 픽처에 적용될 수 있다.
코딩된 깊이 맵을 포함하는 비트스트림을 생성하거나 수정하는 인코딩 시스템 또는 임의의 다른 엔티티는 깊이 샘플의 시맨틱에 관한 정보 및 깊이 샘플을 비트스트림으로 양자화하는 체계에 관한 정보를 생성하고 포함할 수 있다. 그러한 깊이 샘플의 시맨틱에 관한 정보 및 깊이 샘플의 양자화 체계에 관한 정보는 예를 들면, 비디오 파라미터 세트 구조, 시퀀스 파라미터 세트 구조, 또는 SEI 메시지에 포함될 수 있다.
텍스처 뷰 컴포넌트는 단일의 액세스 유닛에서 하나의 뷰의 텍스처의 코딩된 표현으로서 정의될 수 있다. 깊이-강화된 비디오 비트스트림에서 텍스처 뷰 컴포넌트는 단일-뷰 텍스처 비트스트림 또는 멀티-뷰 텍스처 비트스트림과 호환 가능하도록 하여 단일-뷰 디코더 또는 멀티-뷰 디코더가 깊이 뷰를 디코딩하는 능력이 없을지라도 텍스처 뷰를 디코딩할 수 있도록 하는 방식으로 코딩될 수 있도록 한다. 예를 들면, H.264/AVC 디코더는 깊이-강화된 H.264/AVC 비트스트림으로부터 단일의 텍스처 뷰를 디코딩할 수 있다. 텍스처 뷰 컴포넌트는 H.264/AVC 디코더 또는 MVC 디코더처럼 단일-뷰 또는 멀티-뷰 텍스처를 디코딩할 수 있는 디코더가 예를 들어 깊이-기반 코딩 툴을 사용하기 때문에 텍스처 뷰 컴포넌트를 디코딩할 수 없다는 식으로 양자택일하여 코딩될 수 있다. 깊이 뷰 컴포넌트는 단일의 액세스 유닛에서 하나의 뷰의 깊이의 코딩된 표현으로서 정의될 수 있다. 뷰 컴포넌트 쌍은 동일한 액세스 유닛 내 동일한 뷰의 텍스처 뷰 컴포넌트 및 깊이 뷰 컴포넌트로서 정의될 수 있다.
깊이-강화된 비디오는 텍스처 및 깊이가 서로 독립적으로 코딩되는 방식으로 코딩될 수 있다. 예를 들면, 텍스처 뷰는 하나의 MVC 비트스트림으로서 코딩될 수 있으며 깊이 뷰는 다른 하나의 MVC 비트스트림으로서 코딩될 수 있다. 깊이-강화된 비디오는 또한 텍스처 및 깊이가 함께 코딩되는 방식으로도 코딩될 수 있다. 텍스처 및 깊이 뷰의 합동 코딩의 형태에서, 텍스처 픽처를 디코딩하기 위한 텍스처 픽처의 일부 디코딩된 샘플 또는 데이터 요소는 깊이 픽처의 디코딩 프로세스에서 취득된 깊이 픽처의 일부 디코딩된 샘플 또는 데이터 요소로부터 예측되거나 도출된다. 대안으로 또는 그 외에, 깊이 픽처를 디코딩하기 위한 깊이 픽처의 일부 디코딩된 샘플 또는 데이터 요소는 텍스처 픽처의 디코딩 프로세스에서 취득된 텍스처 픽처의 일부 디코딩된 샘플 또는 데이터 요소로부터 예측되거나 도출된다. 다른 옵션으로, 텍스처의 코딩된 비디오 데이터 및 깊이의 코딩된 비디오 데이터는 서로로부터 예측되지 않거나, 또는 하나가 다른 하나를 기초로 하여 코딩되거나/디코딩되지 않지만, 코딩된 텍스처 및 깊이 뷰는 인코딩 시 동일한 비트스트림으로 멀티플렉싱되고 디코딩 시 비트스트림으로부터 디멀티플렉싱될 수 있다. 또 다른 옵션으로, 텍스처의 코딩된 비디오 데이터가 예를 들면, 하위 슬라이스 계층에서 깊이의 코딩된 비디오 데이터로부터 예측되지 않지만, 텍스처 뷰 및 깊이 뷰의 상위 레벨 코딩 구조의 일부는 공유되거나 서로로부터 예측될 수 있다. 예를 들면, 코딩된 깊이 슬라이스의 슬라이스 헤더는 코딩된 텍스처 슬라이스의 슬라이스 헤더로부터 예측될 수 있다. 더욱이, 파라미터 세트 중 일부는 코딩된 텍스처 뷰 및 코딩된 깊이 뷰 양쪽에서 사용될 수 있다.
텍스처 뷰 및 깊이 뷰는 텍스처 뷰 중 일부가 H.264/AVC 및/또는 MVC와 같은 하나 이상의 비디오 표준과 호환될 수 있을 경우에 단일의 비트스트림으로 부호화될 수 있다. 다시 말해서, 디코더는 그러한 비트스트림의 일부 텍스처 뷰를 디코딩할 수 있으며 나머지 텍스처 뷰 및 깊이 뷰를 생략할 수 있다.
깊이 맵을 코딩하기 위한 H.264/AVC의 개정안이 명시되었다. 개정안은 깊이 맵을 포함시키기 위한 MVC 확장이라 호칭되며 MVC+D라고 지칭될 수 있다. MVC+D 개정안은 텍스처 뷰가 H.264/AVC 및 MVC와 호환을 유지하게 하여 MVC 디코더가 MVC+D 비트스트림의 모든 텍스처 뷰를 디코딩할 수 있게 하고 H.264/AVC 디코더가 MVC+D 비트스트림의 베이스 텍스처 뷰를 디코딩할 수 있게 하는 방식으로 텍스처 뷰 및 깊이 뷰를 동일한 비트스트림으로 캡슐화하는 것을 명시하고 있다. 뿐만 아니라, 깊이 뷰의 VCL NAL 유닛은 NAL 유닛 헤더 아래의 텍스처 뷰의 신택스, 시맨틱, 및 디코딩 프로세스와 동일한 신택스, 시맨틱, 및 디코딩 프로세스를 사용한다.
H.264/AVC의 다른 개정안의 개발은 본 특허 출원을 작성하는 시점에서 진행하고 있다. 3D AVC라고 지칭되는 이 개정안은 적어도 하나의 텍스처 뷰가 H.264/AVC과 호환 가능할 것을 요구하는데 반해 다른 텍스처 뷰는 MVC와 호환 가능할 수 있다(호환 가능하지만 반드시 그럴 필요는 없다).
하나 이상의 텍스처 뷰 및 깊이 뷰를 단일의 H.264/AVC 및/또는 MVC 호환 가능한 스트림으로 인코딩하는 인코더는 3DV-ATM 인코더라고 호칭될 수 있다. 그러한 인코더에 의해 생성된 비트스트림은 3DV-ATM 비트스트림이라고 지칭될 수 있으며 MVC+D 비트스트림 또는 3D-AVC 비트스트림 중 어느 하나일 수 있다. 3DV-ATM 비트스트림의 텍스처 뷰는 (베이스 뷰에 대해) H.264/AVC과 호환 가능하며 (MVC+D 비트스트림의 사례에서는 항상 그리고 인코더에 의해 3D-AVC 비트스트림에서 선택될 때는) MVC와 호환 가능할 수 있다. 3DV-ATM 비트스트림의 깊이 뷰는 (MVC+D 비트스트림의 사례에서는 항상 그리고 인코더에 의해 3D-AVC 비트스트림에서 선택될 때는) MVC+D와 호환 가능할 수 있다. 3D-AVC 비트스트림은 선택된 개수의 AVC/MVC 호환 가능한 텍스처 뷰를 포함할 수 있다. 뿐만 아니라, 3D-AVC 비트스트림은 AVC/MVC 표준의 코딩 툴만을 사용하여 코딩되는 선택된 개수의 깊이 뷰를 포함할 수 있다. 3D-AVC 비트스트림의 (강화된 텍스처 뷰라고 알려진) 다른 텍스처 뷰는 텍스처 뷰 및 깊이 뷰로부터 함께 예측될 수 있으며 그리고/또는 3D-AVC 비트스트림의 다른 깊이 뷰는 AVC/MVC/MVC+D 표준에 현재 포함되어 있지 않은 깊이 코딩 방법을 사용할 수 있다. 3DV-ATM 비트스트림으로부터의 모든 뷰를 디코딩할 수 있는 디코더는 3DV-ATM 디코더라고 호칭될 수 있다.
멀티뷰-비디오-플러스-깊이(multiview-video-plus-depth, MVD) 용도의 코덱은 텍스처에 필요한 깊이 기반 코딩 툴 및/또는 깊이에 필요한 텍스처 기반 코딩 툴을 포함할 수 있다. 예를 들면, 아래에서 설명되는 뷰 합성 예측이 적용될 수 있다.
인터-컴포넌트 예측(inter-component prediction)은 하나의 유형의 컴포넌트 픽처를 다른 유형의 컴포넌트 픽처로 디코딩하는 프로세스 또는 유사한 모든 프로세스에서 사용되는 신택스 요소 값, 샘플 값, 변수 값의 예측을 포함하는 것으로 정의될 수 있다. 멀티뷰-비디오-플러스-깊이(MVD) 용도의 코덱은 텍스처로부터 깊이로 그 사이에서 예측하는 또는 그 반대로 예측하는 인터-컴포넌트 예측을 활용할 수 있다. 예를 들면, 인터-컴포넌트 예측은 깊이 뷰 컴포넌트로부터 텍스처 뷰의 예측 또는 그 반대로의 예측을 포함할 수 있다.
3DV 코딩 시 포워드 뷰 합성
뷰 합성은 코덱의 루프에서 활용될 수 있으며, 그래서 뷰 합성 예측(view synthesis prediction, VSP)을 제공할 수 있다. (합성 참조 컴포넌트(synthetic reference component)라고도 지칭될 수 있는) 뷰 합성 픽처는 코딩된 텍스처 뷰 및 깊이 뷰로부터 합성되며 도 7에 도시된 바와 같이 VSP을 위해 사용될 수 있는 샘플을 가지고 있다.
인-루프(in-loop) 뷰 합성 예측(VSP)은 비록 이 예측이 개념적으로 깊이 코딩 툴로서도 사용될 수 있을지라도 강화된 텍스처 코딩을 위한 3DV-ATM에서 지원된다. VSP가 현재 뷰를 코딩할 수 있게 하기 위하여, 동일한 액세스 유닛 또는 동일한 타임 인스턴스의 이전에 코딩된 텍스처 및 깊이 뷰 컴포넌트가 뷰 합성을 위해 사용될 수 있다. 동일한 액세스 유닛 또는 동일한 타임 인스턴스의 이전에 코딩된 텍스처 및 깊이 뷰 컴포넌트를 사용하는 그러한 뷰 합성은 포워드 뷰 합성(forward view synthesis) 또는 포워드-프로젝티드 뷰 합성(forward-projected view synthesis)이라고 지칭될 수 있으며, 마찬가지로 그러한 뷰 합성을 사용하는 VSP는 포워드 VSP 또는 포워드-프로젝티드 VSP라고 지칭될 수 있다.
VSP의 뷰 합성 알고리즘은 합성된 타겟 이미지 t(x+ D,y ) 내 새로운 픽셀 위치에 있는 소스 픽처 s( x,y )의 다음과 같은 맵핑 픽셀을 사용하여 깊이 맵(d)을 디스패리티(D)로 변환하는데 사용할 수 있다.
Figure 112015109641360-pct00018
텍스처 픽처를 프로젝션하는 사례에서, s( x,y )는 텍스처 이미지의 샘플이고, d(s(x,y))s( x,y )와 연관된 깊이 맵 값이다. 만일 합성을 위해 사용된 참조 프레임이 4:2:0 샘플링을 사용하면(즉, 크로마 컴포넌트 픽처가 양쪽의 좌표 축을 따라서 루마 컴포넌트 픽처의 공간 해상도의 절반의 공간 해상도를 가지면), 크로마 컴포넌트는 샘플 값을 반복함으로써 4:4:4로 업샘플링될 수 있다:
Figure 112015109641360-pct00019
여기서
Figure 112015109641360-pct00020
는 전 해상도(full resolution)에서 크로마 샘플 값이고,
Figure 112015109641360-pct00021
는 반 해상도(half resolution)에서 크로마 샘플 값이다.
깊이 값을 프로젝션하는 사례에서, s( x,y )= d(x,y)이며 이 샘플은 그 자체의 값을 사용하여 프로젝트된다, 즉 d(s( x,y ))= d( x,y ).
VSP는 서브-픽셀 정확도로 워핑(warping)하는 것을 포함할 수 있으며, 이를 위해 참조 프레임에 대한 업샘플링이 왜곡 이전에 수행될 수 있으며 합성된 프레임은 원 해상도로 다시 다운샘플링될 수 있다.
뷰 합성 프로세스는 두 가지 개념적 단계, 포워드 워핑(forward warping) 및 홀 필링(hole filling)을 포함할 수 있다. 포워드 워핑에서, 참조 이미지의 각 픽셀은 예를 들어 앞의 수식을 사용하여 합성된 이미지에 매핑된다. 참조 프레임으로부터 복수개 픽셀이 합성된 뷰 내 동일한 샘플 위치에 매핑될 때, (카메라에 더 가까운) 더 큰 깊이 값과 연관된 픽셀이 선택되어 그 샘플 위치를 나타낼 수 있다. 모든 픽셀을 워핑한 다음, 참조 프레임으로부터 매핑된 어떠한 샘플 값도 갖지 않고 남은 몇 개의 홀 픽셀이 있을 수 있고, 이러한 홀 픽셀은 예를 들어, "홀"이 두 개의 논-홀 픽셀(non-hole pixel)들 사이의 수평 라인에 있는 연이은 홀 픽셀로서 정의되는 라인-기반 방향성 홀 필링(line-based directional hole filling)을 사용하여 채워질 수 있다. 홀 내 홀 픽셀은 (카메라에서 더 멀리 떨어진) 더 작은 깊이 샘플 값을 가진 두 개의 인접한 논-홀 픽셀 중 하나에 의해 채워질 수 있다.
워핑 및 홀 필링은 예를 들어 다음과 같이 단일의 처리 루프에서 수행될 수 있다. 입력 참조 이미지의 각 필셀 로우는 좌측에서 우측으로 진행하며, 입력 참조 이미지의 각 픽셀은 다음과 같이 처리된다:
1. 현재 픽셀은 상기 깊이-대-디스패리티 맵핑/워핑 수식에 따라서 타겟 합성 이미지에 맵핑된다. 깊이 경계 주변의 픽셀은 하나의 픽셀이 두 개의 이웃 위치에 맵핑되는 스플래팅(splatting)을 사용될 수 있다. 경계 검출은 참조 이미지의 각 라인의 매 N 픽셀마다 수행될 수 있다. 동일 라인에서 픽셀의 깊이 샘플 값과 (그 픽셀의 우측으로 N-픽셀인) 이웃 픽셀의 깊이 샘플 값 간의 차가 (합성 이미지에 대한 정수 워핑 정밀도에서 M개 픽셀의 디스패리티 차에 대응하는) 문턱치를 초과하면 픽셀은 깊이-경계 픽셀이라고 간주될 수 있다. 깊이-경계 픽셀 및 그 깊이-경계 픽셀의 우측의 K개 이웃 픽셀은 스플래팅을 사용할 수 있다. 더 구체적으로 말하자면, N=4xUpRefs, M=4, K=16xUpRefs-1 이고, 여기서 Uprefs는 워핑하기 전 참조 이미지의 업샘플링 비율이다.
2. 현재 픽셀이 z-버퍼링을 적용 받으면, 즉, 현재 픽셀이 이전에 워핑된 픽셀이 없는 위치에 워핑될 때 또는 더 작은 깊이 샘플 값을 가진 이전에 워핑된 픽셀의 위치에 워핑될 때, 반복하는 것이 유효하다고 정의되고 후속 단계가 수행될 수 있다. 그렇지 않으면, 반복은 유효하지 않으며 입력 참조 프레임의 다음 픽셀로 처리가 이어진다.
Figure 112015109641360-pct00022
만일 이러한 반복과 이전의 유효한 반복의 맵핑된 위치들 사이에 갭이 존재하면, 홀이 식별될 수 있다.
Figure 112015109641360-pct00023
만일 홀이 식별되었으며 현재 맵핑된 위치가 이전 위치의 우측에 있으면, 홀이 채워질 수 있다.
Figure 112015109641360-pct00024
만일 홀이 식별되었으며 현재 반복이 픽셀을 이전의 유효한 반복의 맵핑된 위치의 좌측에 맵핑하였으면, 이렇게 맵핑된 위치의 바로 좌측에 연속하는 픽셀이 홀이면, 이 픽셀은 업데이트될 수 있다.
좌측의 참조 뷰로부터 뷰 합성된 픽처를 생성하기 위하여, 참조 이미지는 먼저 플립(flip)된 다음 상기 워핑 및 홀 필링 프로세스가 사용되어 중간 합성된 픽처를 생성한다. 마지막으로, 중간 합성된 픽처는 플립되어 합성된 픽처로 취득된다. 대안으로, 전술한 프로세스는 기본적으로 수평 방향 및 순서에 대해 반대로 가정하여 뷰 합성 예측을 하기 위한 깊이-대-디스패리티 맵핑, 경계-인식 스플래팅, 및 기타 프로세스를 수행하는 것으로 변경될 수도 있다.
뷰 합성 예측 프로세스의 다른 설명은 다음과 같이 제공된다.
이 프로세스의 입력은 텍스처 뷰 컴포넌트의 루마 컴포넌트(srcPicY), srcPicY의 해상도로 업샘플링된 두 크로마 컴포넌트(srcPicCb및 srcPicCr), 및 깊이 픽처(DisPic)로 디코딩된다.
이 프로세스의 출력은 디스패리티 기반 워핑을 통해 생성되는 합성 참조 컴포넌트(vspPic)의 샘플 어레이이다:
Figure 112015109641360-pct00025
여기서 함수 "Disparity()"는 공간 위치(i,j)의 깊이 맵 값을 디스패리티 값(dX)으로 변환한다.
디스패리티는 두 개의 뷰들 사이에서 평행이동(b), 카메라의 초점 길이(f) 및 깊이 맵 표현의 파라미터(Znear, Zfar)와 같은 카메라 설정치를 고려하여 아래에 보이는 것과 같이 계산된다:
Figure 112015109641360-pct00026
전술한 프로세스로부터 발생한 vspPic 픽처는 통상적으로 홀 및/또는 오클루젼(occlusion)과 같은 각종 워핑 인공물의 특징이며, 이러한 인공물을 억제하기 위해, 다양한 후처리 동작이 적용될 수 있다.
그러나, 이러한 동작은 계산 복잡도를 줄이기 위해 회피될 수 있는데, 이것은 뷰 합성 픽처(vspPic)가 예측을 위해 참조 픽처에 활용되고 결코 디스플레이로는 출력되지 않기 때문이다.
합성된 픽처, 예를 들어, {outputPicY, outputPicCb, outputPicCr}는 예를 들어, 시간 및 인터-뷰 참조 프레임에 뒤이은 List0 및 List1과 같은 초기의 참조 픽처 리스트에 포함될 수 있다. 대안으로 또는 그 외에, List0 및 List1과 같은 참조 픽처 리스트에서 특정 위치에 있는 VSP 참조 픽처를 정렬시키기 위해 참조 픽처 리스트 수정 신택스(reference picture list modification syntax)(즉, RPLR 커맨드)가 사용될 수 있고, 그래서 인코더는 참조 픽처 리스트의 임의의 순서를 선택할 수 있다.
유사하게, VSP 시 움직임 정보 도출의 프로세스 및 이러한 애플리케이션은 H.264/AVC, H.8.3 조항의 인터 예측 및 인터-뷰 예측을 위해 명시된 프로세스와 유사하거나 동일하게 남아 있을 수 있다. VSP 참조 픽처는 움직임 보상 예측을 위한 프로세스에서 장기간 참조 픽처로서 취급될 수 있다.
그러므로, 3DV-ATM에서 VSP를 도입하는 것은 움직임 정보의 시그널링 및 디코딩과 같은 낮은 수준의 동작에 영향을 미치지 않을 수 있고, 그래서 기존의 H.264/AVC 코딩 표준과의 낮은 수준의 호환성을 유지할 수 있다.
대안으로 또는 그 외에, 인코더에 의해 비트스트림에서 VSP을 위한 특정한 코딩 모드가 명시되어 시그널링될 수 있다. 예를 들면, VSP 스킵/다이렉트 모드에서, 움직임 벡터 차 (디)코딩 및 예를 들어 변환-기반 코딩을 사용하는 잔차 예측 오차의 (디)코딩이 또한 생략될 수 있다. 예를 들면, 만일 MB이 스킵/다이렉트 모드를 사용하여 코딩될 것이라고 비트스트림에서 표시될 수 있으면, 비트스트림 내에는 VSP 프레임이 참조로서 사용되는지 여부가 추가로 표시될 수 있다.
포워드 VSP는 프레임 레벨에서 구현될 수 있는데, 즉 예를 들어 앞에서 설명된 VSP 프로세스 중 하나의 프로세스를 사용하여 참조 픽처로서 사용될 완전한 프레임을 합성할 수 있다. 그러나, 프레임 기반의 VSP 구현은 계산의 복잡성, 저장 요건, 및 메모리 액세스 대역폭의 면에서 상당하게 부담이 될 수 있다. 포워드 VSP를 예를 들면, 현재 슬라이스를 관장하는 매크로블록의 라인 또는 모든 매크로블록 라인을 일시에 다루는 픽셀 라인의 세트에 대해 구현하는 것이 가능하다. 또한 쌍방 프로젝션(two-way projection) 접근방법을 사용하여 블록 기반의 포워드 VSP(block-based forward VSP)(BB-FVSP)를 사용하는 것이 가능하다:
a. 뷰(#1)에서 범위 정보(d(Cb))가 디스패리티 값(D(Cb))으로 변환된다.
b. D(Cb)의 디스패리티 샘플이 분석되고 그에 따라서 D(Cb) 블록 내에서 최소 및 최대 디스패리티 값(nin_D 및 max_D)을 구한다.
c. 디스패리티 값(nin_D 및 max_D)은 텍스처 이미지(VSP_T) 및 깊이 이미지(VSP_D)에서 MxN의 VSP 소스 영역 크기를 명시하여, 뷰(#0)의 VSP_D=d(VSP_T)이도록 하며, 여기서 M은 수직 방향VSP 소스 구역의 크기(라인의 개수)이고 N=(max_D-min_D+l)은 수평 방향에서 소스 구역의 크기이다.
d. 나뉨수(dividend)가 (N+K1)이고 나눗수(divisor)가 n인 산술 모듈로 연산이 제로를 발생하도록 값(K1)이 추산된다. 나뉨수가 (N+K2)이고 나눗수가 m인 산술 모듈로 연산에 의해 제로가 발생되도록 값(K1)이 추산된다.
e. (M+K2) x (N+Kl)의 VSP 소스 구역 크기를 형성하기 위해, VSP 소스 블록{VSP_T 및 VSP_D}이 수평 방향으로 K1만큼 그리고 수직 방향으로 K2만큼 양쪽으로 또는 어느 한쪽으로 확장된다.
f. 뷰(#0)에서 VSP 구역(VSP_T 및 VSP_D)이 고정 크기(m x n)의 정수 개의 비중첩 블록(프로젝션 블록 유닛(Projection Block Unit, PBU)으로 나누어지며 각 PBU의 VS 프로세스가 개별적으로 수행된다.
g. 앞에서 설명한 것처럼 VS 프로세스는 고정 크기의 PBU에서 처리되는 뷰(#0)의 VSP 소스 정보(VSP_T 및 VSP_D)를 활용하여 뷰(#1)의 코딩된 프레임과 연관된 VSP 프레임에서 참조된 영역(R(Cb))을 생성한다.
3DV 코딩 시 백워드 뷰 합성 예측
이전의 VSP 방법으로서, 뷰(#N)의 텍스처/비디오 내 블록(Cb)의 코딩/디코딩은 VSP 소스로서 작용하고 뷰 합성 프로세스에 필요한 이미지 샘플을 제공하는, Ti라고도 지칭되는, 뷰(#i)(여기서 i≠N)의 참조 텍스처/비디오 데이터를 사용하여 수행된다.
아래에서, B-VSP의 일부 특징적인 양상이 요약된다:
1. 인코딩/디코딩 시 각각의 텍스처 블록( Cb )에 앞서 깊이/ 디스패리티 정보(d(Cb))의 가용성. 텍스처/비디오 뷰(#N) 내 블록 Cb의 코딩/디코딩은 깊이/깊이 맵/디스패리티 또는 이러한 텍스처 정보 Cb 및 범위 정보와 연관되어 있고 텍스처 블록의 코딩/디코딩에 앞서 사용 가능한 임의의 다른 범위 정보 d( Cb )를 사용하여 수행된다. 예를 들면, 깊이 뷰 컴포넌트(DN)는 (디)코딩 및/또는 비트스트림 순서에서 동일한 뷰(#N)의 텍스처 뷰 컴포넌트(TN)에 선행할 수 있다.
2. VSP을 위한 참조 영역 R( Cb ). 텍스처 블록 Cb에 대한 VSP는 참조 이미지(Ti) 내 참조 영역 R( Cb )의 픽셀/샘플 값을 생성/계산하게 된다. 참조 영역 R(Cb)은 Cb의 예측 블록일 수 있거나, 또는 참조 영역 R(Cb)은 예를 들어 R(Cb) 내에서 움직임-보상 예측 및/또는 서브-픽셀 값 보간을 통해 Cb의 예측 블록을 도출하는데 사용될 수 있다.
3. 백워드 프로젝션. VSP는 백워드 프로젝션 접근방법을 사용하여 수행되며 다음과 같은 단계 중 적어도 일부의 단계를 활용할 수 있다:
a. 뷰(#N) 내 코딩된 블록(Cb)와 연관된 범위 정보(dN(Cb))가 현재 뷰(#n)와 참조 뷰(#i)의 샘플들 간의 공간 좌표 옵셋을 명시하는 디스패리티 정보(Di(Cb))로 변환된다. 디스패리티로 변환하는 작업은 픽셀 단위로 수행될 수 있다. 현재 뷰(#N)의 코딩/디코딩 시점에서 사용 가능한 매 참조 뷰(#i)마다, 개별 Di(Cb)가 계산/추산된다. 대안으로, 디스패리티로의 변환은 예를 들어 dN(Cb)의 값을 평균하거나, 미디언 필터를 dN(Cb)의 값에 적용하거나, 임의의 다른 함수나 필터를 dN(Cb) 내 모든 샘플에 적용함으로써 dN(Cb')의 값이 도출되도록 블록 단위로 수행될 수 있다. 그런 다음, dN(Cb')는 통상의 깊이-대-디스패리티 맵핑을 사용하여 각각의 디스패리티 값(Di(Cb'))으로 변환될 수 있다. 대안으로, 디스패리티로의 변환은 예를 들어 Di(Cb)의 값을 평균하거나, 미디언 필터를 Di(Cb)의 값에 적용하거나, 임의의 다른 함수나 필터를 Di(Cb) 내 모든 샘플에 적용함으로써 디스패리티 정보(Di(Cb'))가 처리되어 값(Di(Cb''))을 생성하도록 블록 단위로 수행될 수 있다.
b. Di(Cb) (또는 각기 Di(Cb') 또는 Di(Cb")라는 디스패리티 정보는 참조 뷰(#i)의 텍스처 내 샘플 값을 찾기 위해 활용되며 범위 정보(di(Cb)), 예를 들어 텍스처 샘플과 연관된, 참조 뷰(#i) 내 깊이 맵 이미지의 샘플을 찾기 위해 활용될 수도 있다. 만일 Di(Cb)가 디스패리티 값의 블록이면, 텍스처 참조 뷰(#i)의 샘플 값은 픽셀 별로 찾아질 수 있다. 만일 Di(Cb)가 픽셀 블록에 대한 단일의 디스패리티 값을 나타내면, 텍스처 참조 뷰(#i)의 샘플 값은 블록 별로 찾아질 수 있다. 찾은 샘플은 R(Cb)에 복사된다. 찾기 및/또는 복사하기는 또한 프로젝팅, 맵핑, 또는 워핑하는 것이라고 지칭될 수 있다.
c. R(Cb)을 생성하는 작업은 참조 뷰(#i)(즉, Ti)의 픽셀의 각종 처리, 예를 들어 공간 또는 시간 필터링, 가중된 예측 파라미터를 사용하여 루미넌스 변동을 보상하는 필터링, 또는 오클루젼이나 홀을 처리하는 비선형 처리 등을 포함할 수 있다. 그러한 처리는 픽셀을 R(Cb)로 프로젝팅하기 전 또는 프로젝팅 한 후에 수행될 수 있다.
VSP에서 백워드 프로젝션의 결과는 임의적인 R(Cb)의 도출 순서가 지원된다는 것이다. 다시 말해서, R(Cb)의 픽셀 값은 각 Cb마다 독립적으로 생성될 수 있으며, 처리된 블록의 순서에 관해 아무런 종속 관계도 추정되지 않는다. 그러므로, R(Cb)라는 동일한 픽셀 값은 단일의 Cb에 대한 뷰 합성 프로세스에 의해 또는 프레임 레벨 전반의 뷰 합성 프로세스에 의해 생성된다. 이러한 특성은 제시된 백워드 VSP가 H.264/AVC과 같은 기존의 코딩 방법과 비교하여 블록 레벨의 코딩/디코딩 시 변경을 필요로 하지 않는 프레임 레벨 또는 슬라이스 레벨로서 구현될 수 있게 한다. 그러나, 이러한 특성은 또한 소량의 메모리를 소비할 수 있는 블록 레벨 구현도 가능하게 해준다.
아래에서, B-VSP의 특징의 일부 보충적인 양상이 요약된다. 이러한 양상 중 0개 이상은 부가적으로 아래에 열거되는 양상과 함께 사용될 수 있다.
1. 하나보다 많은 VSP 참조 프레임으로부터 블록 기반의 다중 가설 예측. 본 발명은 양방향 또는 임의의 다른 유형의 다중 가설 예측이 둘 이상의 VSP 참조 프레임을 참조로서 사용할 수 있다는 것을 명시한다. 양방향은 예를 들어 뷰들 간의 조명 차를 보상하기 위해 가중될 수 있다.
2. 복수의 VSP 소스 이미지로부터 샘플 기반 R( Cb ) 도출. 만일 복수의 VSP 소스 이미지가 R(Cb) 샘플 값을 계산하는데 사용 가능하면, 다양한 처리가 R(Cb)의 실제 텍스처 샘플을 생성하는데 적용될 수 있다. 이러한 처리는 이것으로 한정되지 않지만 조건적 선택(예를 들어, 깊이 값이 더 가까운 텍스처 샘플이 선택되거나, 깊이 값이 더 작은 텍스처 샘플이 선택됨) 또는 복수의 후보를 샘플에다 집합시키는 것을 포함할 수 있다.
3. 깊이/ 디스패리티 기반 R( Cb ) 도출. di(Cb) 및 dN(Cb)라는 대응하는 샘플 값은 절대차의 합(Sum of Absolute Difference, SAD)과 같은 차이 유사성 또는 차이 메트릭을 사용하여 비교될 수 있다. 차이 메트릭은 블록(di(Cb)) 또는 di(Cb)의 개개 샘플마다 도출될 수 있다. 만일 차이가 특정 범위에 속하면, 디스패리티(Di(Cb))로 명시되는 참조 뷰(#i)의 텍스처 샘플이 참조 영역(R(Cb))의 샘플 값을 생성하는데 활용된다.
3D-ATM에서 움직임 벡터 예측 및 멀티뷰 코딩
3D-ATM에서 MVP의 현재 디자인은 다음과 같은 특정 모드를 포함하는 것으로 생각될 수 있다:
1) 시간 예측(Temporal prediction, TP)
2) 인터-뷰 예측(Inter- view prediction, IVP)
a) 포괄 모드
b) 인터-뷰 디렉트/스킵
3) 뷰 합성 예측(View Synthesis prediction, VSP)
a) 포괄 모드
b) VSP 다이렉트/VSP 스킵 모드
일부 실시예에서, IVP.a 및 VSP.a (포괄 모드)는 개념적으로 단일의 예측 모드로 병합된다.
포괄 모드에서 인터 -뷰 예측(Inter-view prediction, IVP ), IVP .a
인코더는 인터-뷰 참조 프레임에서 움직임 탐색을 수행할 수 있으며 참조 인덱스 및 차분 움직임 벡터{refIdx, dMVx 및 dMVy}를 비트스트림에다 포함시킬 수 있고 그리고/또는 디코더로 시그널링할 수 있다. dMVx 및 dMVy 컴포넌트는 MVP 프로세스로부터 예측된다. 많은 사례에서, MVP는 디스패리티 (Cb) 값을 나타낸다.
인터 -뷰 디렉트 / 스킵 모드 , IVP .b
인터-뷰 디렉트/스킵 모드는 예측 프로세스에서 연루되는 참조 픽처 중 하나 이상의 참조 픽처가 인터-뷰 참조 픽처일 수 있다는 예외를 둔 단일-뷰 H.264/AVC의 디렉트/스킵 모드와 유사하게 동작하는 것으로 간주될 수 있다. (동일 액세스 유닛 내 픽처가 동일한 POC를 갖는다는 사실에 기인하여) 동일 사례에서 움직임 벡터의 POC 기반 스케일링이 제로로 나눈 결과일 수 있으므로, 시간 다이렉트 모드가 사용 불가일 수 있다.
포괄 모드에서 뷰-합성 예측(View-synthesis prediction, VSP), VSP.a
VSP.a 코딩 모드는 IVP.a와 같이 움직임 벡터를 묵시적으로 시그널링하는 특수한 사례의 인터-뷰 예측이라고 간주될 수 있다.
(VSP 픽처 또는 합성 참조 픽처 또는 VSP 참조 픽처라고도 알려질 수 있는) VSP 프레임은 예를 들어 전술한 바와 같이, 코딩 표준에서 미리 정의될 수 있는 또는 인코더에 의해 결정되어 비트스트림에 표시될 수 있고 디코더에 의해 비트스트림으로부터 디코딩될 수 있는, 특정한 블록 크기에서, 백워드 뷰 합성 프로세스를 사용하여 인코더 및/또는 디코더에 의해 (현재 뷰가 종속하는 것으로 표시된 모든 또는 일부 텍스처 뷰마다) 생성될 수 있다.
VSP.a 모드를 사용할 때, 인코더는 인코더 측에서 전체 프레임으로서 생성될 수 있는 VSP 프레임에서 움직임 탐색을 수행할 수 있다. VSP 프레임에서 움직임 탐색은 단일의 움직임 벡터(0,0)로 한정될 수 있으며 파티션 선택(4x4, 8x8 등)의 결과만을 가져올 수 있다. 파티션의 선택에 뒤이어, VSP 프레임을 표시하는 참조 인덱스(refIdx)가 비트스트림에 포함될 수 있으며/있거나 디코더로 시그널링될 수 있으며 dMVx 및 dMVy는 비트스트림에 포함되지 않을 수 있거나 시그널링되지 않을 수 있다.
디코더는 비트스트림으로부터 및/또는 시그널링으로부터 참조 인덱스(refIdx)를 디코딩하여 이 참조 인덱스가 VSP 프레임을 표시한다고 판단 내릴 수 있다. 따라서, 디코더는 비트스트림이 dMVx 및 dMVy를 포함하고 있지 않거나 dMVx 및 dMVy의 디코딩을 스킵할 수 있다고 판단 내릴 수 있다. 뿐만 아니라, 디코더는 현재 블록의 움직임 벡터를 {0,0}일 것이라고 추론할 수 있다. 그러한 움직임 정보 {refIdx, 0,0}로 코딩된 블록은 특정 블록 또는 움직임 파티션 크기에 대한 뷰 합성 프로세스에 입력될 수 있다.
그 결과로, 뷰 합성(view synthesis, VS)은 움직임 분할로부터 독립적인 블록 기반 프로세스로서 구현될 수 있다. VS는 (예를 들면 코딩 표준에서) 특정한 블록 크기를 사용한다고 미리 정의될 수 있고, 또는 인코더는 VS의 블록 크기를 선택할 수 있고 이를 비트스트림에서, 예를 들면 시퀀스 파라미터 세트에서 또는 픽처 파라미터 세트에서 표시할 수 있다. VS 프로세스를 위한 모든 기본 블록은 개개의 디스패리티 벡터를 특징으로 한다. VS 블록의 디스패리티 벡터는 예를 들면 앞에서 제시된 것처럼 B-VSP을 위해 계산될 수 있다. 모든 움직임 파티션마다, VS 블록 크기를 가진 비중첩 블록으로 공간적인 나눔 또는 분할은 인코더 및/또는 디코더에서 VSP의 일부분으로서 수행될 수 있다. 그러면, 각각의 VS 블록마다 독립적인 움직임 벡터 또는 디스패리티 벡터는 예를 들면 대응하는 디스패리티 블록(d(Cb))에 기초하여, 예를 들면 디스패리티 블록(d(Cb))의 네 개의 코너 샘플로부터 구한 최대 디스패리티 값을 사용하여 계산될 수 있다.
디스패리티 도출
3D-AVC는 연관된 깊이 맵 샘플의 도움을 받아 독립 뷰의 텍스처 샘플을 코딩하기 위해 적용되는 DMVP 및 VSP 코딩 툴을 명시하고 있다. 이러한 목적을 위해, 선택된 깊이 맵 샘플은 디스패리티 벡터로 변환되며 DMVP 및 VSP에 의해 활용된다.
디스패리티 값(D)은 깊이 맵 값과 선형 관계를 가지며 이는 수식 (1)에 도시된다:
Figure 112015109641360-pct00027
깊이-디스패리티 변환은 수식(1)에서와 같이 수행될 수 있으며 Znear, Zfar, 초점 길이(f) 및 뷰들 사이에서 평행이동(l)과 같은 카메라 파라미터를 필요로 한다. 이러한 방법은 정보의 부동 소수점 표시를 보존하며 그래서 높은 정확도를 제공한다. 그러나, 이러한 표시의 높은 정확도는 부동 소수점 표시를 필요로 하므로 불필요하게 복잡해질 것이라고 생각될 수 있다.
디스패리티의 간략화된 계산은 깊이 맵 값(d)과 디스패리티(D) 간의 대응관계를 설정하는 선형 모델을 활용하며, 이는 수식(2)에 도시된다:
Figure 112015109641360-pct00028
여기서 d는 섹션 2.1에서 도시된 NDR 룩업 테이블에 의해 도출되는 깊이 샘플 값이다.
DisparityScale은 스케일 인수이고, DisparityOffset은 옵셋 값이고, BitDepth는 8과 같으며 log2Div는 디스패리티 벡터의 요구된 정확도에 종속하는 시프트 파라미터이다. 변환 파라미터(DisparityScale 및 DisparityOffset)는 통상의 가변 길이 코딩을 사용하여 비트스트림 내에서 전송된다. 합동 코딩에서 활용된 매 쌍의 뷰(소스 뷰 및 타겟 뷰)마다, 독립 세트의 파라미터(DisparityScale 및 DisparityOffset)가 전송된다.
깊이-디스패리티 도출 (수식 2)를 수행하기 위하여, 예를 들면 다음과 같은 두 가지 대안을 통해 텍스처 샘플의 블록과 깊이 샘플의 블록 간의 연관 관계가 설정될 수 있다:
네 개의 코너 중 최대치
현재 코딩된 텍스처 블록(Cb)의 벡터의 디스패리티는 현재 코딩된 텍스처 블록(Cb)과 연관된 깊이 맵 데이터의 블록(d(Cb))으로부터 도출될 수 있다. d(Cb)의 네 개의 코너(상단 좌측, 상단 우측, 하단 좌측, 하단 우측)의 공간 좌표에 위치한 깊이 맵 샘플은 서로 대비하여 비교될 수 있으며 그 중 최대 깊이 맵 값이 수식(2)에서 명시된 바와 같이 디스패리티 값으로 변환될 수 있다. (각각의 텍스처 이미지의 해상도와 비교하여) 깊이 맵의 해상도가 줄어든 경우, 텍스처 블록 코너의 공간 좌표는 깊이 맵 해상도에 맞추기 위해 다운스케일링될 수 있다.
이웃 블록에 기반한 도출
디스패리티 벡터를 도출하는 다른 접근방법은 예를 들면 디스패리티 기반의 스킵 및 다이렉트 모드에서 활용될 수 있다. 디스패리티 벡터는 현재 Cb 블록에 이웃하는 블록의 움직임 정보로부터 및 깊이 데이터의 연관된 블록(d(Cb))로부터 도출될 수 있다. 본 단원에서 활용되는 블록 명명 규칙은 도 5a 및 도 5b에 도시된다. 도출 절차의 플로우차트는 도 5c에서 제공된다.
구체적으로, 디스패리티 벡터는 이웃 블록(A, B, 및 C(D))으로부터 도출될 수 있다. 만일 이웃 블록 중 하나의 블록만이 인터-뷰 예측으로 코딩되었으면, 그 블록의 움직임 벡터는 현재 Cb의 디스패리티 벡터라고 간주될 수 있다. 만일 복수의 인터-뷰 예측 벡터가 블록(A, B, C(D))에서 사용 가능하면, 디스패리티 벡터는 사용 가능한 대안의 벡터의 중간값으로서 도출될 수 있다. 만일 이웃 블록(A, B, C(D)) 중 어느 블록도 인터-뷰 예측으로 코딩되지 않았으면, 앞에서 설명된 네 개의 코너 중에서 최대의 것과 같은 다른 디스패리티 도출 절차가 사용되어 깊이 맵으로부터 디스패리티를 도출할 수 있다.
VSP 다이렉트 / VSP 스킵 모드 , VSP .b
VSP 스킵 및 다이렉트 모드는 앞에서 언급한 바와 다르지 않으면 일반 모드(VSP.a)와 동일하다고 간주될 수 있지만, 코딩 모드의 표시 및 VSP 참조 픽처의 선택은 신택스에서 다르게 실현될 수 있다.
매크로블록이 정규의 스킵 모드 또는 VSP 스킵 모드를 사용하는지에 관해 슬라이스 데이터 신택스에서 표시될 수 있다. 컨텍스트 적응적 VLC가 사용 중일 때, 스킵 모드로 코딩된 각 매크로블록마다 (mb_skip_type_flag라고 호칭될 수 있는) 1-비트 플래그를 가진 표시가 표시될 수 있다. CABAC가 사용 중이고 위쪽과 좌측편의 매크로블록이 VSP 스킵 모드로 코딩되었을 때, 신택스는 (mb_vsskip_flag라고 호칭될 수 있는) CABAC 코딩된 플래그를 포함할 수 있는데, 이것은 플래그가 1과 같을 때, 매크로블록의 코딩 모드가 VSP 스킵이라고 표시하는 것이다. 만일 플래그가 0과 같으면, 통상의 스킵 모드가 사용 중인지 아닌지를 표시하는 (mb_skip_flag라고 호칭될 수 있는) CABAC 코딩된 플래그가 뒤이어 나올 수 있다. CABAC가 사용 중이지만 위쪽과 좌측편의 매크로블록 중 어느 하나 또는 모두 VSP 스킵 모드로 코딩되었을 때, 플래그는 비트스트림에서 반대 순서로 배치될 수 있는데, 즉 mb_skip_flag가 0인 경우 mb_skip_flag가 제일 먼저 나오고, mb_vskip_flag가 그 다음으로 나올 수 있다.
매크로블록이 (예를 들어 mb_type 신택스 요소를 가진) 다이렉트 모드를 적용하는 것으로 표시될 때, (mb_direct_type_flag라고 호칭될 수 있는) 추가 신택스 요소가 매크로블록 계층 신택스에 포함될 수 있다. 신택스 요소는 어느 엔트로피 코딩 모드가 사용 중인가에 따라서 컨텍스트-적응적 VLC 또는 CABAC로 코딩될 수 있다. 0과 같을 때, 플래그는 통상의 다이렉트 모드가 사용 중이라고 표시할 수 있다. 1과 같을 때, 플래그는 VSP 다이렉트 모드가 사용 중이라고 표시할 수 있다.
VSP 스킵 및 다이렉트 모드에 대한 참조 인덱스 및 움직임 벡터는 다음과 같이 설정될 수 있다. VSP 스킵드/다이렉트 매크로블록에 대한 참조 인덱스(refIdxLX)는 참조 픽처 리스트(X) - X는 0 또는 1로 대체됨 - 에서 처음 나오는 합성 참조 컴포넌트로서 도출될 수 있다. VSP 다이렉트/스킵 모드에 적용되는 움직임 벡터는 0,0와 같다.
예제
본 실시예의 맥락에서, 현재 3D 비디오 코딩의 개발의 각종 과제가 결정되었다. 이러한 과제를 결정하는 일은 나중에 깨닫지 않고서는 본 기술에서 통상의 지식을 가진 자에게 자명하지 않음은 물론이며, 그래서 과제를 인지하는 것은 본 발명의 일부분이라고 생각될 수 있다.
현재, JCT-3V 및 MPEG 3DV에 의해 최신의 깊이 강화된 3D 비디오 코딩을 타겟으로 하는 두 가지 표준화 개발이 진행 중이다. 첫 번째는 H.264/AVC 코딩 기술에 기초하는 3D-AVC이고 두 번째는 HEVC을 기본 기술로서 활용하는 3D-HEVC이다. 이러한 개발은 모두 VSP를 MVD 데이터에 존재하는 인터-뷰 중복을 개선하기 위한 핵심 컴포넌트라고 생각한다. 그러나, 현재 VSP를 MCP 프로세스에 조화시키는 일이 충분하지 않은 것으로 예상된다. 발명자들은 3D-AVC 디자인의 과제에 관해 간략한 설명을 제공하지만, 동일한 과제가 3D-HEVC 개발에도 유효하다.
VSP.a는 refIdx, MVx 및 MVy와 관련된 다음과 같은 동작을 포함한다.
VSP 참조 픽처는 하나 이상의 참조 픽처 리스트에 포함된다. VSP 참조 픽처는 인터-뷰 참조 픽처의 것과 상이한 참조 픽처 인덱스를 사용한다(심지어 이러한 두 픽처의 샘플 어레이가 동일할지라도 그러하다).
상이한 참조 인덱스가 각각의 VSP 및 인터-뷰 참조 픽처마다 사용되므로, 다수개의 참조 픽처가 하나 이상의 참조 픽처 리스트에 존재하며 그래서 특정 블록에 대해 어느 참조 픽처가 사용 중인지를 표시하는 코드워드가 대체로 길어질 수 있다.
각각의 VSP 및 인터-뷰 참조 픽처는 논리적으로 상이한 참조 픽처이므로, VSP 참조 픽처를 사용하는 블록의 움직임 정보는 인터-뷰 참조 픽처를 사용하는 블록의 (공간 및/또는 시간 이웃으로서의) 움직임 벡터 예측에 또는 그 반대로 사용되지 않는다.
현재 3D-AVC 초안 표준은 refIdx가 VSP 픽처라고 밝혀지는 경우에는 MVx 및 MVy를 {0,0}로 설정한다.
refIdx가 VSP 픽처를 시사하는 경우에 움직임 벡터{0,0}를 사용한다는 것은 완전한 VSP 프레임이 생성된다는 가정에 기초한 것이고, 그러므로 VSP 예측은 현재 Cb와 동일한 좌표를 가진 동일위치 블록을 사용하여야 한다고 간주될 수 있다. 그러나, BVSP에 따라 생성된 예측 블록은 MVx 및 MVy를 사용하지 않고 구성된다. 이 블록은 미리 정의된 크기(예를 들면, 2x2 또는 4x4)의 비중첩 블록으로 나누어지며 이러한 각각의 블록마다 움직임 파티션과 무관하게 디스패리티 값이 도출된다. 그러므로, MVx 및 MVy를 제로로 설정하는 일은 중복이라고 간주될 수 있다.
앞에서 노출된 과제는 3D-AVC의 코딩 성능을 불리하게 할 수 있다.
다양한 실시예는 뷰 합성 예측(view synthesis prediction, VSP) 및 인터-뷰 예측(inter-view prediction, IVP)의 코딩을 조화하여 준다. 다양한 실시예에 따라서, VSP 및 IVP는 움직임 벡터 정보를 도출할 때 유일한 차이를 보이는 동일한 프로세스의 일부분일 것으로 생각될 수 있다.
임의의 움직임 파티션(motion partition, MP) 또는 예측된 유닛(Predicted Unit, PU)에 대하여, 일부 실시예는 IVP의 사례에서는 움직임 정보의 명시적인 시그널링을 사용할 것을 명시하고 VSP의 사례에서는 움직임 정보의 (디코더에서 도출되는) 묵시적인 시그널링을 사용할 것을 명시하고 있다.
다양한 실시예는 현재 MP/PU에 대하여 비트스트림에 실려 시그널링되는 움직임 벡터 또는 움직임 벡터 차의 존재를 관리할 수 있는, VSP와 IVP 모드 간의 예측 방향 또는 예측 모드 선택(ivp_vsp_opt)의 움직임 파티션/PU 레벨의 시그널링을 제공한다.
다양한 실시예는 또한 매크로블록 레벨(또는 유사한 레벨) 및/또는 그 이하 레벨에서 조화된 VSP/IVP 시그널링을 위한 모드를 상위 레벨(슬라이스/타일/픽처/시퀀스)에서 시그널링하는 것을 제공한다. 예를 들면, 일부 환경에서, 인코더는 조화된 시그널링을 사용 불가능하도록 선택할 수 있다.
도 8a 및 도 8b는 제안된 VSP를 사용하여 텍스처 코딩의 ME/MCP 체인의 블록도를 도시한다. VSP는 반드시 완전한 VSP 픽처를 발생하지는 않고, 다만 ME/MCP 체인으로부터의 요청에 의거하여 참조 영역(R(Cb))만을 발생할 뿐이라는 것을 주목하자.
도 8a는 실시예의 방법에 따른 인코딩 프로세스의 예를 도시한다. 코딩 루프에서 변환(T), 양자화(Q), 그리고 이것들의 역동작, 프레임 버퍼, 움직임 보상 예측(motion compensated prediction, MCP), 움직임 추정(motion estimation, ME) 및 비트스트림 인코딩(bitstream encoding, ENC)와 같은 통상적인 요소가 도시된다. 부가적으로, IVP 또는 VSP 사이의 판단 동작을 수행하는 스위치가 도입되어, 움직임 벡터가 비트스트림으로 인코딩되는지 여부를 제어하고 그에 상응하여 움직임 벡터가 깊이 정보를 사용하여 구성되는지 여부를 제어한다. 또한, 본 출원에서 ivp_vsp_opt라고 호칭되는 시그널링 요소는 비트스트림으로 인코딩된다.
도 8b는 실시예의 방법에 따른 디코딩 프로세스의 예를 도시한다. 통상의 디자인에 도입되거나 수정되는 것 중 하나인 디코더의 처리 모듈은 적색 표시의 블록으로 표시된다. 그러므로, 비트스트림으로부터 ivp_vsp_flag를 읽고 IVP 또는 VSP을 결정하는 것뿐 아니라 비트스트림으로부터 MV를 읽거나 깊이 맵으로부터 MV를 도출하는 조건적 애플리케이션이 도입된다.
도 9는 비디오 플러스 깊이 데이터의 구조를 도시하며 및 다음과 같이 용어를 설명한다. Cb는 현재 코딩된 텍스처 블록이며 d(Cb)는 블록(S, T, U)에 모두 마찬가지로, 이러한 텍스처 범위 정보, 예를 들면, 깊이 맵과 연관된다.
코딩된 MVD 데이터가 병렬 카메라 구성을 사용하여 통상적으로 촬영된 복수의 비디오를 표현하는 텍스처 및 깊이 맵으로 이루어져 있고 이렇게 촬영된 뷰가 수정된다고 가정한다.
용어 Ti 및 di는 각기 뷰(#1)의 텍스처 및 깊이 맵 컴포넌트를 나타낸다. MVD 데이터의 텍스처 및 깊이 컴포넌트는 상이한 코딩 순서, 예를 들면 T0d0Tldl 또는 d0dl T0T1의 순서로 코딩될 수 있다. 본 발명에서 설명된 방법은 깊이 맵 컴포넌트가 텍스처 컴포넌트(Ti)에 앞서 사용 가능하며(디코딩되며) di는 Ti를 코딩/디코딩할 때 활용된다.
코딩 MVD(multiview video plus depth)를 목적으로 하는 일부 실시예에서, 제안된 본 발명은 다음과 같이 하나 이상을 포함할 수 있다.
조화된 참조 픽처 표시
IVP.a 및 VSP.a는 MV의 시그널링(명시적/묵시적)에서 차이가 있는, (예를 들면, ref_idx_IVP라고 지칭되는) 동일한 참조 픽처 인덱스와 같은 동일한 참조 픽처 표시를 사용될 수 있다. 즉, 참조 픽처 리스트의 인덱스마다, 사용되는 예측의 유형을 나타내는 표시가 제공되며, 예측 유형의 이러한 표시는 인코딩된 비디오 데이터 내에 인코딩된다.
실시예에서, ref_idx_IVP라고 표시된 매 refIdx마다, 예를 들어 vsp_flag라고 호칭될 수 있는 (블록 레벨에서) 추가 플래그가 refIdx 다음에 시그널링된다. vsp_flag는 예를 들어 상단과 좌측에 있는 인접한 이웃의 vsp_flag 값을 그의 컨텍스트로서 사용하여 CABAC 코딩될 수 있다. 즉, 표시는 디스패리티를 보상한 다른 뷰의 상기 픽처로부터의 예측이 사용되는지 여부를 표시하는 신택스 요소로서 제공된다. vsp_flag의 시맨틱은 예를 들어 다음과 같이 또는 임의의 유사한 방식으로 명시될 수 있다.
a) Vsp_flag == 0이면, 현재의 파티션은 IVP.a로서 코딩되고 움직임 벡터 컴포넌트는 비트스트림에서 시그널링된다.
b) Vsp flag == 1이면, 현재의 파티션은 VSP.a로서 코딩되고 움직임 벡터 컴포넌트는 비트스트림에서 시그널링되지 않는다. 사례 b)에서, 인코딩된 비디오 데이터에서 표시는 움직임 벡터 정보가 비디오 블록에 대해 인코딩된 비디오 데이터에서는 제공되지 않는다고 제공되며, 움직임 벡터 정보는 비디오 블록에 대해 제공되는 깊이 정보를 사용하여 형성될 수 있다.
실시예에서, 인코더 및/또는 디코더는 통상의 참조 픽처 리스트(예를 들어, H.264/AVC의 참조 픽처 리스트 0 및/또는 1)에서 VSP 또는 뷰 합성 참조 픽처를 포함시키지 않는다. 조합된 VSP-IVP 예측 모드는 예를 들어 H.264/AVC의 sub_mb_type[ mbPartIdx ] 신택스 요소라는 새로운 값으로서 명시될 수 있다. 조합된 VSP-IVP 예측 모드가 사용 중일 때, 신택스는 (단방향 예측의 경우에는) 하나의 인덱스 또는 (양방향 예측의 경우에는) 두 개의 인덱스를 단지 인터-뷰 참조 픽처만을 포함할 수 있는 (그리고 시간 참조 픽처를 제외할 수 있는) 인터-뷰 참조 픽처 리스트에 포함시킬 수 있다. 각각의 인덱스는 앞에서 설명한 것처럼 vsp_flag의 뒤에 따라 나올 수 있다. 인터-뷰 참조 픽처 리스트는 개념적일 수 있으며 예를 들어 통상의 참조 픽처 리스트(예를 들면 참조 픽처 리스트 0 및 1)를 차례차례 진행하고 통상의 참조 픽처 리스트 내에서 인터-뷰 참조 픽처의 카운트 또는 인덱스를 유지함으로써 도출될 수 있다.
실시예에서, 예를 들어 sub_mb_type[ mbPartldx ]의 신규 값으로서 명시된 새로운 예측 유형은 VSP 또는 IVP 중 어느 하나의 사용을 표시할 수 있다. VSP 또는 IVP 중 어느 하나가 예측 모드로서 표시될 때, 신택스는 단지 인터-뷰 참조 픽처만을 포함할 수 있는 (그리고 시간 참조 픽처를 제외할 수 있는) 인터-뷰 참조 픽처 리스트에다 인덱스를 포함시킬 수 있다.
인터-뷰 참조 픽처 리스트는 MVC의 anchor_ref_l0, anchor_ref_11, non_anchor_ref_10 및 non_anchor_ref_11 신택스 요소로 표시된 것과 같은 표시된 인터-뷰 디펜던시를 사용하여 인코더 및/또는 디코더에 의해 도출될 수 있다.
이러한 체계에 따르면, IVP에서 양방향 예측이 지원되기 때문에 다중방향 VSP가 성취될 수 있다.
일부 실시예에서, 인코더 및/또는 디코더는 IVP.a 및 VSP.a를 인코딩/디코딩하기 위한 동일한 프로세스 또는 방법을 사용할 수 있다.
일부 실시예에서, 움직임 예측 유닛 계층(예를 들어, 매크로블록 파티션) 상위에서 하나 이상의 표시는 전술한 프로세스 중 하나 이상이 인코더에서 사용되었고 그리고/또는 디코더에서 사용될 것인지를 표시하는데 사용될 수 있다. 하나 이상의 표시는 예를 들어 슬라이스 헤더, 픽처 파라미터 세트, 및/또는 시퀀스 파라미터 세트 내에 존재할 수 있다.
일부 실시예에서, 다음 중 하나 이상이 예를 들면 슬라이스 헤더, 픽처 파라미터 세트, 및/또는 시퀀스 파라미터 세트 내에 표시될 수 있다:
- VSP 및 IVP 둘 다 사용될 수 있음
- VSP가 사용될 수 있지만 IVP는 사용되지 않음
- IVP가 사용될 수 있지만 VSP는 사용되지 않음
- VSP나 IVP 어떤 것도 사용되지 않음
(코딩 구조에서) 하위 계층의 신택스 및/또는 허용된 신택스 요소 또는 변수 값은 표시에 따라서 수정될 수 있다. 예를 들면, 만일 VSP가 사용될 수 있지만 IVP가 사용되지 않음이라고 슬라이스 헤더에서 표시되면, (인터-뷰/VSP 참조 픽처가 표시되더라도) vsp_flag가 존재하지 않을 수 있으며 그 값은 VSP의 사용을 표시하는 것이라고 추론될 수 있다.
3D-AVC에 기초하여 하나 이상의 실시예의 몇 가지 양태를 실현하는데 사용될 수 있는 신택스, 시맨틱 및 디코딩 프로세스의 예가 다음 단락에서 제공된다. 제시된 신택스에서, 현재 초안의 3D-AVC과 관련하여 추가된 부분은 이탤리체로 표시되고(예를 들어 추가) 제거되는 부분은 삭제선 및 이탤리체로 표시된다(예를 들어
Figure 112015109641360-pct00029
).
3D-AVC에서, 인터-뷰 참조 컴포넌트는 디코딩 순서에서 후속하는 픽처의 인터 예측을 위해 그리고 디코딩 순서에서 후속하는 뷰 컴포넌트의 인터-뷰 예측을 위해 사용될 수 있는 샘플을 포함하고 있는 참조 픽처라고 정의될 수 있다.
슬라이스 헤더는 VSP 또는 인터-뷰 예측을 사용한다는 블록-레벨의 표시를 관리하는 신택스 요소(예를 들어, 아래의 신택스의 예에서 제공되는 바와 같이 slice_vsp_flag)를 포함하도록 첨부될 수 있다. slice_vsp_flag 등은 상위 계층에서 VSP의 사용이 가능해지는 경우에만 존재할 수 있다. 예를 들어, 활성상태의 시퀀스 파라미터 세트에서 VSP의 사용이 허용되면, 즉 활성상태의 시퀀스 파라미터 세트에서 seq_view_synthesis_flag가 1이면, slice_vsp_flag가 존재한다. 예를 들어, slice_vsp_flag의 시맨틱은 다음과 같이 정의될 수 있다: slice_vsp_flag가 0이면, 인터-뷰 참조 픽처가 참조로서 사용될 때 인터 예측 샘플에 대한 디코딩 프로세스 또는 뷰 합성 예측 샘플에 대한 예측 프로세스 중 어느 하나의 프로세스가 사용될 수 있다는 것을 명시한다. slice_vsp_flag가 1이면, 인터-뷰 참조 픽처가 참조로서 사용될 때 뷰 합성 예측 샘플에 대한 예측 프로세스가 사용될 수 있다는 것을 명시한다.
Figure 112015109641360-pct00030
매크로블록 파티션(mbPartIdx)의 참조 인덱스(ref_idx_lX)가 참조 픽처 리스트(X) 내 인터-뷰 참조 컴포넌트를 시사하면 변수 VspRefLXFlag[mbPartIdx] (참조 픽처 리스트 0 또는 1에 대해 X는 각기 0 또는 1과 같음)는 0이라고 명시될 수 있으며 그렇지 않으면 0이라고 명시될 수 있다.
아래의 매크로블록 예측 신택스 구조에서 보는 바와 같이, 매크로블록 예측 신택스는 대응하는 참조 인덱스가 인터-뷰 참조 컴포넌트를 시사하는지에 따라서 조건부로 vsp_flag_lX[mbPartIdx] (참조 픽처 리스트 0 또는 1에 대해 X는 각기 0 또는 1과 같음)를 포함하도록 첨부될 수 있다. vsp_flag_lX[mbPartIdx]의 시맨틱은 다음과 같이 정의될 수 있다. vsp_flag_lX[mbPartIdx] (X는 각기 0 또는 1과 같음)가 0이면 인터 예측 샘플에 대한 디코딩 프로세스가 매크로블록 파티션(mbPartIdx)의 참조 픽처 리스트(X)로부터 예측하기 위해 사용된다는 것을 명시한다. vsp_flag_lX[mbPartIdx]가 1이면 뷰 합성 샘플에 대한 디코딩 프로세스가 매크로블록 파티션(mbPartIdx)의 참조 픽처 리스트(X)로부터 예측하기 위해 사용된다는 것을 명시한다. vsp_flag_lX[mbPartIdx]가 존재하지 않고 VspRefLXFlag[mbPartIdx]가 0일 때, vsp_flag_lX[mbPartIdx]는 0이라고 추론될 수 있다. vsp_flag_lX[mbPartIdx]가 존재하지 않고 VspRefLXFlag[mbPartIdx]가 1일 때, vsp_flag_lX[mbPartIdx]는 1이라고 추론될 수 있다.
뿐만 아니라, 아래의 신택스에서 보는 바와 같이, VSP가 사용 중일 때는 차분 움직임 벡터(mvd_lX) (참조 픽처 리스트 0 또는 1에 대해 X는 각기 0 또는 1과 같음)가 존재하지 않는다(즉, 차분 움직임 벡터는 참조 인덱스(ref_idx_lX)가 인터 참조 컴포넌트를 시사하는 경우에만 존재하거나 또는 참조 인덱스(ref_idx_lX)가 인터-뷰 참조 컴포넌트를 시사하지만 VSP가 사용 중이 아니고 그 대신 통상의 인터-뷰 예측이 사용되는 경우에만 존재한다).
Figure 112015109641360-pct00031
서브-매크로블록 예측 신택스 구조는 매크로블록 예측 신택스 구조에 대해 앞에서 도시된 것과 유사하게 첨부될 수 있다는 것이 주목된다.
VSP가 사용 중일 때(예를 들어, VspRefLXFlag[ mbPartIdx ]가 1이고 vsp_flag_lX[ mbPartIdx ]가 1일 때), 움직임 벡터는 {0,0}로 설정된다고 명시될 수 있다. 그렇지 않으면, 통상의 움직임 벡터 예측 프로세스가 사용될 수 있다.
VSP가 사용 중일 때(예를 들어, 사용된 참조 인덱스가 인터-뷰 참조 컴포넌트를 표시하고 vsp_flag_lX[ mbPartIdx ]가 1일 때), 뷰 합성 샘플에 대한 디코딩 프로세스는 매크로블록 파티션(mbPartIdx)의 참조 픽처 리스트(X)로부터 예측하기 위해 사용된다고 명시될 수 있다. 그렇지 않으면, 인터 샘플에 대한 디코딩 프로세스는 매크로블록 파티션(mbPartIdx)의 참조 픽처 리스트(X)로부터 예측하기 위해 사용된다
뷰 합성 스킵 다이렉트 모드 등을 위한 선택가능한 참조 픽처
앞에서 설명한 것처럼, VSP 스킵 및 다이렉트 모드는 참조 픽처 리스트 내 제 1 VSP 참조 픽처와 같은 특정한 VSP 참조 픽처를 사용하기 위해 명시되었다. 뿐만 아니라, 현재의 VSP 스킵 및 다이렉트 모드에 따르면, VSP 참조 픽처를 예를 들어 매크로블록 단위로 사용되도록 선택하는 것이 가능하지 않다.
일부 실시예에서, 스킵 및 다이렉트 모드의 표시는 통상의 스킵/다이렉트 모드와 VSP 스킵/다이렉트 모드 사이에서 선택하는 것을 추가하여 표시하는 것일 수 있으며 참조로서 사용되는 VSP 및/또는 인터-뷰 참조 픽처의 표시를 포함하거나 그 표시가 뒤이어 나올 수 있다. 표시는 예를 들어 (예를 들면, 참조 픽처 리스트 0 및/또는 1에 대한) 참조 인덱스 또는 인터-뷰 참조 픽처 리스트에 대한 인덱스를 표시할 수 있다. 인터-뷰 참조 픽처 리스트는 예를 들어 앞에서 설명한 바와 같이 도출될 수 있거나 또는 참조 픽처 리스트 0 및/또는 1로부터의 인터-뷰 참조 픽처로 이루어질 수 있다. 일부 실시예에서, 인코더는 인터-뷰 참조 픽처 리스트를 형성하기 위해 사용되는 하나 이상의 소스 참조 픽처 리스트(예를 들면, 참조 픽처 리스트 0 및/또는 1)를 비트스트림 내에 표시할 수 있다(그리고 디코더는 비트스트림으로부터 하나 이상의 소스 참조 픽처 리스트의 표시를 디코딩할 수 있다). 일부 실시예에서, 인코더는 방법 또는 알고리즘 및/또는 그의 파라미터를 비트스트림 내에 표시할 수 있다(그리고 디코더는 비트스트림으로부터 방법 또는 알고리즘 및/또는 그의 파라미터를 디코딩할 수 있다). 예를 들면, 인코더는 베이스 뷰만이 VSP 스킵/다이렉트 모드의 참조로서 사용 가능할 수 있다고 표시할 수 있고, 또는 디코더는 인터-뷰 참조 픽처 리스트가 참조 픽처 리스트 0 및 1에서 사용 가능한 모든 인터-뷰 참조 픽처로부터 도출된다고 표시할 수 있다.
실시예에서, mb_skip_type_flag 또는 유사한 것은 mb_skip_src_idc로 개명될 수 있으며 u(v)의 형태일 수 있다. mb_skip_src_idc의 시맨틱은 예를 들어 다음과 같이 명시될 수 있다. mb_skip_src_idc가 0이면, 통상의 스킵 모드가 사용 중이다. 그렇지 않으면(mb_skip_src_idc가 0보다 크면), 변수(MbSkipRefIdx)는 mb_skip_src_idc - 1과 같으며 이는 VSP 스킵 모드의 참조로서 사용되는 인터-뷰 또는 VSP 참조 픽처를 표시한다. 신택스 요소의 길이는 인터-뷰 참조 픽처 리스트 내 픽처의 개수와 같이, MbSkipRefIdx가 시사할 수 있는 픽처의 개수를 기초로 하여 선택될 수 있다.
실시예에서, CABAC가 사용 중이고 위쪽과 좌측편의 매크로블록이 VSP 스킵 모드로 코딩되었을 때, 신택스는 (mb_vsskip_idc라고 호칭될 수 있는) CABAC 코딩된 신택스 요소를 포함할 수 있는데, 이것은 0보다 클 때, 매크로블록의 코딩 모드가 VSP 스킵이라는 것을 표시하는 것이다. 앞과 유사하게, MbSkipRefIdx는 mb_vsskip_idc - 1로 설정될 수 있으며 이는 VSP 스킵 모드의 참조로서 사용되는 인터-뷰 또는 VSP 참조 픽처를 표시할 수 있다. 만일 mb_vsskip_idc가 0이면, 통상의 스킵 모드가 사용 중인지 아닌지를 표시하는 (mb_skip_flag라고 호칭될 수 있는) CABAC 코딩된 플래그가 그 뒤에 나올 수 있다. CABAC이 사용 중이지만 위쪽과 좌측편의 매크로블록 중 어느 하나 또는 둘 다 VSP 스킵 모드로 코딩되지 않았을 때, 신택스 요소는 비트스트림에서 반대 순서로 되어 있을 수 있는데, 즉 mb_skip_flag가 0인 경우 mb_skip_flag가 가장 먼저 나오고, 그 다음으로 mb_vsskip_idc가 나올 수 있다.
매크로블록이 (예를 들어 mb_type 신택스 요소를 가진) 다이렉트 모드를 적용하는 것으로 표시될 때, (mb_direct_type_idc라고 지칭될 수 있는) 신택스 요소는 매크로블록 계층 신택스에 포함될 수 있다. 신택스 요소는 엔트로피 코딩 모드가 사용 중임에 따라서, 컨텍스트-적용적 VLC 또는 CABAC을 사용하여 코딩될 수 있다. 0일 때, 플래그는 통상의 다이렉트 모드가 사용 중이라고 표시할 수 있다. 0보다 클 때, 플래그는 VSP 다이렉트 모드가 사용 중이라고 표시할 수 있다. 앞과 유사하게, MbDirectRefIdx는 mb_direct_type_idc - 1과 같이 설정될 수 있으며 이는 VSP 다이렉트 모드의 참조로서 인터-뷰 또는 VSP 참조 픽처가 사용된다고 표시할 수 있다.
일부 실시예에서, 만일 슬라이스 헤더에서 또는 그 상위에서(예를 들면, 픽처 파라미터 세트 또는 시퀀스 파라미터 세트에서) 예를 들어 특정 픽처 또는 텍스처 뷰 컴포넌트, 특정 텍스처 뷰, 및/또는 코딩된 비디오 시퀀스에 대해 어떠한 VSP도 사용 중이 아니라고 표시되면, mb_skip_src_idc 및/또는 mb_direct_type_idc 및/또는 매크로블록 계층 하위의 잠재적 유사 신택스 요소와 같은 슬라이스 데이터 및/또는 매크로블록 계층 신택스 요소는 존재하지 않을 수 있다.
일부 실시예에서, 만일 슬라이스 헤더에서 또는 그 상위에서(예를 들면, 픽처 파라미터 세트 또는 시퀀스 파라미터 세트에서) 예를 들어 특정 슬라이스, 특정 픽처 또는 텍스처 뷰 컴포넌트, 특정 텍스처 뷰, 및/또는 코딩된 비디오 시퀀스에 대해 어떠한 통상의 IVP 스킵/다이렉트 모드도 사용 중이 아니라고 표시되면, mb_skip_src_idc 및/또는 mb_direct_type_idc 및/또는 매크로블록 계층 하위의 잠재적 유사 신택스 요소와 같은 슬라이스 데이터 및/또는 매크로블록 계층 신택스 요소의 시맨틱은 통상의 스킵/다이렉트 모드 또는 VSP 스킵/다이렉트 모드가 사용 중인지 여부의 표시를 제외하도록 수정될 수 있다. 그러한 사례에서, mb_skip_src_idc 및/또는 mb_direct_type_idc 및/또는 매크로블록 계층 하위의 잠재적 유사 신택스 요소와 같은 슬라이스 데이터 및/또는 매크로블록 계층 신택스 요소는 VSP 스킵/다이렉트 모드에 사용된 인터-뷰 또는 VSP 참조 픽처를 표시할 뿐일 수 있다. 대안으로, 신택스는 슬라이스 데이터 및/또는 매크로블록 및/또는 매크로블록 계층 하위에 두 세트의 신택스 요소를 포함하도록 수정될 수 있는데, 한 세트의 신택스 요소는 통상의 스킵/다이렉트 모드 및 VSP 다이렉트/모드의 선택이 그 계층에서 또는 하위 계층에서 표시될 때의 사례에 해당하고, 다른 세트의 신택스 요소는 스킵/다이렉트 모드가 표시될 때마다 VSP 다이렉트/모드가 사용되도록 표시되는 사례에 해당한다.
일부 실시예에서, 스킵 및/또는 다이렉트 모드에 필요한 인터-뷰 또는 VSP 참조 픽처는 인코더에 의해 슬라이스 헤더에서 및/또는 (픽처 파라미터 세트 또는 시퀀스 파라미터 세트와 같은) 상위 신택스 계층에서 표시될 수 있다. 이러한 표시는 예를 들어 전술한 방법들 중 하나를 사용하여 도출될 수 있는 인터-뷰 참조 픽처 리스트에 대한 인덱스일 수 있다. 대안으로, 표시는 예를 들어 스킵 및/또는 다이렉트 모드에 필요한 인터-뷰 또는 VSP 참조 픽처에 사용되는 텍스처 뷰를 표시하는 뷰 순서 인덱스 또는 뷰 식별자(view_id) 값일 수 있다. 표시는 스킵 및 다이렉트 모드 별로 구분될 수 있다. 양방향 예측의 경우(예를 들면, B 슬라이스가 사용 중일 때), 스킵 및/또는 다이렉트 모드에 필요한 두 인터-뷰 또는 VSP 참조 픽처 별로 별개의 표시가 존재할 수 있다.
재구성된/디코딩된 블록의 모드 및 움직임 정보 조정
일부 실시예에서, VSP 코딩된 블록은 인터-뷰 예측을 사용하는 블록의 움직임 정보를 예측하기 위한 유효한 참조라고 간주될 수 있다. VSP로 코딩된 블록을 (예를 들어, 인코더에 의해) 재구성 또는 디코딩한 다음, 이 블록의 움직임 정보는 다음과 같은 방법 중 하나 이상의 방법으로 조정될 수 있다:
- 블록의 예측 유형은 인터-뷰 예측으로 변경될 수 있다.
- 블록의 예측 유형은 하나 또는 두 참조 픽처가 VSP을 위해 사용되었는지에 따라서 단방향 예측 또는 양방향 예측으로 변경될 수 있다.
- 블록의 참조 인덱스(들)는 인터-뷰 예측이 사용 중이었던 것처럼 설정될 수 있다. 예를 들면, 만일 특정 VSP 스킵/다이렉트 신택스가 VSP에서 사용되는 참조 픽처를 표시하도록 사용되었으면, 참조 인덱스(들)는 VSP에서 사용된 것과 동일하지만 참조 픽처 리스트 0 및/또는 1에서 사용 가능한 참조 픽처(들)을 시사하는 것으로 설정될 수 있다.
- 움직임 벡터는 VSP 프로세스의 일부분으로서 도출되는 디스패리티로 설정될 수 있다.
- 블록 분할은 (예를 들어, VSP의 사용이 표시되었던 코딩 유닛 또는 예측 유닛 대신) 뷰 합성 블록 크기 또는 그래뉴러리티에 맞게 변경될 수 있다.
일부 실시예에서, 조정된 움직임 정보는 인터-뷰 예측을 사용하는 블록의 움직임 정보를 예측하기 위한 소스로서 사용될 수 있다. 예를 들면, 조정된 움직임 정보는 인터-뷰 예측을 사용하는 블록의 공간 이웃의 블록에 속하거나 그 블록과 연관될 수 있다. 다른 예에서, 조정된 움직임 정보는 인터-뷰 예측을 사용하는 블록의 TMVP 등의 동일위치 픽처로서 사용되는 픽처에 속할 수 있다.
일부 실시예에서, 만일 인터-뷰 예측이 (디)코딩되는 현재 블록에 적용되며 그리고 움직임 정보 예측을 위한 후보 블록(예를 들면, 도 2a에서 A0, A1, B0, B1 및 B2 중 하나)이 예를 들면 인트라 코딩이 후보 블록에 적용되지 않았거나 시간/인터 예측 참조 픽처를 사용하였기 때문에 움직임 정보 예측에 사용할 수 없다고 간주되면, 다음과 같이 수행될 수 있다. 인터-뷰 참조 픽처가 선택될 수 있는데, 예를 들면 현재 블록에 의해 참조되는 것과 동일한 인터-뷰 참조 픽처가 선택될 수 있다. 뷰 합성 예측 프로세스에 따라서 디스패리티 벡터는 선택된 인터-뷰 참조 픽처를 참조하여 후보 블록에 대해 수행될 수 있다. 후보 블록에 대한 움직임 정보의 0개 이상의 다른 부분이 앞에서 설명한 것처럼 조정되거나 생성될 수 있다. 그런 다음 후보 블록에 대하여 조정된/생성된 움직임 정보는 마치 그 후보 블록이 움직임 정보 예측에 사용 가능하였던 것처럼 움직임 정보 예측 프로세스에서 사용될 수 있다.
일부 실시예에서, 픽처의 움직임 필드는 예를 들어 앞에서 설명한 것처럼 한 가지 이상의 방법으로 VSP를 사용하여 조정되거나 도출될 수 있다. 움직임 필드 조정은 예를 들어 대응하는 픽처로 표현되는 뷰 또는 계층이 인터-계층 또는 인터-뷰 참조로서 사용될 수 있을 때 수행될 수 있거나, 또는 예를 들어 대응하는 픽처가 TMVP 등의 동일위치 픽처 등으로서 사용될 때 수행될 수 있다. 예를 들면, (디)코딩되는 현재 픽처는 논-베이스 뷰의 텍스처 뷰 컴포넌트를 나타낼 수 있으며 인코더는 동일한 논-베이스 뷰 (및 현재 픽처와 상이한 타임 인스턴스)의 텍스처 뷰 컴포넌트가 되는 동일위치 픽처를 선택할 수 있다. 뿐만 아니라, 인코더는 베이스 뷰 (및 현재 픽처와 동일한 타임 인스턴스)의 텍스처 뷰 컴포넌트가 되는 TMVP 등의 타겟 픽처를 선택할 수 있다.
일부 실시예에서, 움직임 필드 조정은 조건 없이 수행되는데 반해, 일부 실시예에서 인코더는 비트스트림에서 표시할 수 있으며, 디코더는 조정이 사용 중일 때 비트스트림 조건으로부터 디코딩할 수 있는데 반해, 일부 실시예에서 조정이 사용 중일 때의 조건은 예를 들면 코딩 표준에서 미리 정의된다. 예를 들면, 동일위치 픽처 내 블록이 예측을 위한 참조로서 TMVP의 타겟 픽처(등)의 뷰와 상이한 뷰를 사용할 때마다 조정이 사용 중이라는 것이 인코더에 의해 비트스트림에서 명시될 수 있다. 일부 실시예에서, 움직임 필드 조정이 수행된 것은 인코더에 의해 슬라이스 헤더 또는 슬라이스 세그먼트 헤더 등에 표시될 수 있으며 디코더에 의해 헤더 또는 슬라이스 세그먼트 헤더로부터 디코딩될 수 있다. 또한, 움직임 필드 조정의 형태는 표시일 수 있다. 예를 들면, VSP의 디스패리티 도출과 유사한 조정이 수행되는 것 또는 인터-뷰 움직임 벡터의 스케일링이 예를 들어 상대적인 뷰 거리에 따라서 수행되는 것이 표시될 수 있다.
일부 실시예에서, 픽처의 디코딩된/재구성된 움직임 필드는 예를 들어, 동일한 뷰의 후속 픽처의 움직임 정보를 예측하는데 사용되도록 유지되며 조정된 움직임 필드는 디코딩된/재구성된 움직임 필드와 별도로 생성된다. 일부 실시예에서, 조정된 움직임 필드는 디코딩된/재구성된 움직임 필드를 대신하여 생성될 수 있으며, 조정된 움직임 필드는 동일한 뷰의 후속 픽처의 움직임 정보를 예측하는데 사용되도록 하기 위해 다시 조정될 수 있다.
동일위치 픽처 등의 움직임 필드는 예를 들어 다음과 같이 조정될 수 있다:
- 예측 유형은 인터-뷰 예측으로 설정될 수 있다.
- 예측 유형은 하나 또는 두 참조 픽처가 VSP을 위해 사용되었는지에 따라서 단방향 예측 또는 양방향 예측으로 변경될 수 있다.
- 참조 인덱스(들) 등은 인터-뷰 예측이 사용 중이었던 것처럼 설정될 수 있다.
- 조정된 움직임 정보에 의해 표시되는 VSP 참조 픽처는 "장기간 참조를 위해 사용됨"이라고 표시되었던 것으로 간주될 수 있다. 그래서, 동일위치 움직임 벡터에 의해 시사된 픽처와 타겟 픽처가 둘 다 "장기간 참조를 위해 사용됨"이라고 표시될 때 TMVP 등에서 움직임 벡터 스케일링은 생략될 수 있다.
- 움직임 벡터는 VSP 프로세스의 일부분으로서 도출되는 디스패리티로 설정될 수 있다. 만일 타겟 픽처가 현재 픽처와 상이한 뷰를 표현하면, 디스패리티는 스케일링될 수 있거나, 또는 취득한 디스패리티가 현재 픽처와 타겟 픽처 사이에서 적용 가능한 방식으로 뷰 합성 프로세스가 적용될 수 있다.
- 블록 분할은 (예를 들어, VSP의 사용이 표시되었던 코딩 유닛 또는 예측 유닛 대신) 뷰 합성 블록 크기 또는 그래뉴러리티에 맞게 변경될 수 있다.
따라서, 시간 움직임 벡터 후보에 대응하는 예측 블록은 VSP의 예측 블록과 유사하다고 간주될 수 있다. 인코더는 (예를 들어, 하나 이상의 공간 후보를 대신하여) 시간 후보의 사용을 예를 들어 AMVP 및/또는 머지 모드 등을 사용하여 표시할 수 있다.
일부 실시예에서, 동일위치 픽처의 움직임 필드는 동일위치 블록의 참조 픽처가 현재 픽처에 비교하여 타겟 픽처와 상이한 예측 방향을 갖고 있는 그러한 블록에 대해서만 조정된다. 다시 말해서, 만일 동일위치 블록이 (뷰 내에서) 시간 예측을 사용하면 그리고 타겟 픽처가 현재 픽처와 동일한 뷰에 있으면, 동일위치 블록의 움직임 정보는 조정되지 않는다. 만일 동일위치 블록이 (뷰 내에서) 시간 예측을 사용하고 타겟 픽처가 현재 픽처의 뷰와 상이한 뷰를 갖고 있으면, 동일위치 블록의 움직임 정보는 조정되며 동일위치 블록에 대한 깊이 정보로부터 도출된다. 그 외에 또는 대안으로, 일부 실시예에서, 동일위치 픽처의 움직임 필드는 동일위치 블록의 참조 픽처가 타겟 픽처와 상이한 그러한 블록에 대해 조정될 수 있다. 예를 들면, 만일 동일위치 블록의 참조 픽처가 뷰 1을 나타내고 타겟 픽처가 뷰 0를 나타내면, 동일위치 픽처의 움직임 필드는 조정되며 동일위치 블록에 대한 깊이 정보로부터 도출될 수 있으며, 이 때 깊이 정보는 현재 픽처와 타겟 픽처 간의 디스패리티를 표현하도록 변환 및/또는 스케일링될 수 있다.
일부 실시예에서, 블록에 대한 시간 후보의 사용이 표시되고 이 표시가 디코더에 의해 디코딩될 때, 디코더는 움직임 필드를 조정하는 동작을 수행할 수 있다. 단지 동일위치 픽처(또는 유사한 것)의 일부분의 움직임 필드가 조정될 수 있다. 예를 들면, 앞에서 설명한 것처럼 움직임 필드 조정이 수행된 것이 슬라이스 헤더 또는 슬라이스 세그먼트 헤더에서 표시되면, 대응하는 슬라이스와 중첩하는 움직임 정보만이 조정될 수 있다. 다른 실시예에서, 시간 후보가 선택되는 블록에 대한 움직임 정보만이 조정된다.
일부 실시예에서, 제 1 뷰를 나타내는 현재 픽처 또는 블록과 제 2 뷰를 나타내는 동일위치 픽처(또는 유사한 것) 간의 디스패리티는 동일위치 픽처(또는 유사한 것) 내 동일위치 블록(또는 유사한 것)을 결정할 때 참작될 수 있다. 예를 들면, 인코더에 의해 비트스트림에서 표시되는 것과 같은 그리고/또는 디코더에 의해 비트스트림으로부터 디코딩되는 것과 같은 또는 현재 블록의 깊이 정보로부터 결정되는 것과 같은 수평 옵셋 또는 디스패리티는 동일위치 블록의 수평 위치를 구하기 위해 현재 블록의 수평 위치에 추가될 수 있다. 마찬가지로, 현재 픽처 및 동일위치 픽처의 공간 해상도, 현재 픽처 및 동일위치 픽처의 샘플 크기, 및/또는 현재 픽처 및 동일위치 픽처의 상대적인 샘플링 그리드 위치는 동일위치 블록의 위치를 결정할 때 참작될 수 있다.
일부 실시예에서, (동일위치 픽처라고 알려진) 소스 픽처의 움직임 필드는 예를 들면 움직임 정보의 어레이 자체라기 보다는 실행 가능한 컴퓨터 소프트웨어의 기능을 통해 평가될 수 있다. 예를 들면, 논-베이스 뷰를 디코딩하기 위해 움직임 필드가 평가될 때, 현재 픽처의 뷰와 상이한 뷰로부터 소스 픽처를 사용하여 TMVP 또는 다른 움직임 예측을 도출하는 시점에 디스패리티가 현재 블록의 좌표에 추가될 수 있다. 동일한 뷰의 픽처의 움직임 예측을 위해 동일한 움직임 필드가 평가될 때, TMVP 등의 동일위치 블록은 현재 블록의 좌표와 동일한 좌표를 가질 수 있는데, 즉 예를 들어 HEVC에서 TMVP의 동작과 비교하여 아무런 변경이 없을 수 있다.
일부 실시예에서, 소스 픽처 또는 (전술한 바와 같이 도출되는) 조정된 움직임 필드는 현재 픽처의 움직임 예측을 사용하기 위한 하나 이상의 디스패리티 값에 기초하여 워핑될 수 있거나 시프트될 수 있다. 일부 실시예에서, 하나 이상의 디스패리티 값에 따라 움직임 정보를 맵핑 또는 시프트하는 것은 조정된 움직임 필드를 도출하는 프로세스 또는 방법의 일부분일 수 있다. 0개 이상의 후속 움직임 필드 디스패리티 조정은 소스 픽처 및/또는 움직임 필드가 이미 디스패리티-조정되었던 픽처에 의해 표현된 뷰와 다른 계층에 대한 예측을 위한 움직임 필드를 사용하기 전에 이루어질 수 있다. 만일 원(original) 움직임 필드가 수정되었다면, 이 움직임 필드는 소스 픽처의 것과 동일한 계층 또는 뷰에서 픽처를 예측하기 위해 이 움직임 필드를 사용하기 전에 다시 조정될 수 있다. 예를 들면, 만일 움직임 정보 위치가 움직임 필드 디스패리티 조정 시 옵셋(delta_x, delta_y)만큼 시프트되었으면, 움직임 정보 위치는 움직임 정보 위치를 (-delta_x, -delta_y)만큼 시프트시킴으로써 다시 조정될 수 있다. 만일 원 움직임 필드가 움직임 필드 디스패리티 조정 시 유지되었다면, 움직임 필드는 소스 픽처와 동일한 계층 또는 뷰에서 픽처(들)의 움직임 예측을 위해 소스 픽처를 사용하는 시점에 소스 픽처와 연관될 수 있다.
일부 실시예에서, 인코더는 TMVP 등의 동일위치 픽처로서 인터-뷰 픽처를 예를 들어 슬라이스 단위로 선택할 수 있다. 인코더는 이러한 선택을 위해 예를 들어 레이트-왜곡 최적화(rate-distortion optimization)를 사용할 수 있다. 인코더는 예를 들어 HEVC의 collocated_ref_idx 신택스 요소를 사용하여 인터-뷰 참조 픽처가 TMVP 등의 동일위치 픽처로서 사용된다고 표시할 수 있다.
참조 인덱스를 사용하여 TMVP 등의 동일위치 픽처를 표시하는 것 이외에 또는 그 대신에, TMVP 등의 동일위치 블록을 표시하는 다른 수단이 있을 수 있다. 일부 실시예에서, 인코더는 TMVP 등의 동일위치 픽처가 참조 픽처 리스트에 대한 참조 인덱스 또는 하나 이상의 다른 수단을 통해 표시되는지를 비트스트림에서 표시할 수 있으며 디코더는 비트스트림으로부터 그 여부를 디코딩할 수 있다. 동일위치 픽처가 다른 수단에 의해 표시되는 사례에서, 인코더는 동일위치 픽처가 존재하는 계층을 비트스트림에서 표시할 수 있으며 디코더는 그 비트스트림으로부터 동일위치 픽처가 존재하는 계층을 디코딩할 수 있다. 인코더는 POC 값 또는 장기간 참조 인덱스와 같은 계층 내 픽처의 식별자를 표시할 수 있으며 디코더는 비트스트림으로부터 그 식별자를 디코딩할 수 있거나, 또는 인코더 및/또는 디코더는 예를 들어, (디)코딩되는 현재 픽처와 동일한 POC 값을 갖는다는 것에 근거하여 표시된 계층 내 픽처가 동일위치 픽처로서 사용된다고 추론할 수 있다.
HEVC 또는 그의 확장에 관해 이전의 단락에서 설명된 바와 같이 인터-계층의 동일위치 픽처를 실현하기 위해 사용될 수 있는 신택스의 예가 이제 설명된다. 슬라이스 세그먼트 헤더의 예시적인 신택스는 아래에서 이탤리체로 표시되는 초안 HEVC 사양서와 비교하여 변경된 부분 또는 새로운 부분을 갖고 있다. 인코더가 참조 인덱스와 다른 수단에 의해 동일위치 픽처를 표시할 때, 인코더는 픽처 파라미터 세트(picture parameter set, PPS) 내 num_extra_slice_header_bits를 0보다 큰 값(예를 들면 1)으로 설정한다. 신택스 요소 alt_collocated_indication_flag가 슬라이스 세그먼트 헤더 신택스에 추가되었다. 0일 때는 (초안 HEVC 표준에서와 같이) 동일위치 픽처가 참조 인덱스를 통해 표시된다는 것을 표시한다. 1일때는 동일위치 픽처가 다른 수단을 통해 표시된다는 것을 표시하며 인코더는 slice_segment_header_extension_length라는 신택스 요소를 0보다 큰 값으로 설정한다. 이 예에서 slice_segment_header_extension_length는 동일위치 픽처의 계층을 표시하는 collocated_nuh_layer_id 신택스 요소를 포함한다. 이 예에서, 동일위치 픽처는 collocated_nuh_layer_id와 동일한 nuh_layer_id 및 현재 (디)코딩된 픽처와 동일한 픽처 순서 카운트를 갖는 픽처이다. 동일위치 픽처의 계층은 현재 계층의 열거된 참조 계층에 대한 인덱스와 같은 다른 수단에 의해서도 표시될 수도 있다는 것을 주목하자. 이 예에서, collocated_offset_x 및 collocated_offset_y는 각기 수평 및 수직 옵셋을 압축된 움직임 필드의 단위(즉, 16 루마 샘플)로 제공한다. collocated_offset_x 및 collocated_offset_y는 일부 실시예에서 존재하지 않을 수도 있다. 특히 멀티뷰 코딩 시 병렬 카메라 구성의 사례에서, collocated_offset_y는 항시 0과 같을 수 있으며 그래서 제시된 신택스에서도 또한 삭제될 수 있다. 인코더 및/또는 디코더는 앞에서 설명한 것처럼 움직임 필드 디스패리티 조정 시 옵셋을 사용할 수 있다. collocated_vsp_flag의 시맨틱은 다음과 같이 명시될 수 있다: 0일 때, collocated_vsp_flag는 통상의 움직임 필드 도출 또는 업샘플링이 사용된다(그리고 만일 collocated_offset_x 또는 collocated_offset_y가 제로가 아니면 움직임 필드는 디스패리티 조정될 수 있다)는 것을 명시하며; 1일 때, collocated_vsp_flag는 움직임 필드가 예를 들어 뷰 합성 시 깊이 정보를 통해 조정될 수 있다는 것을 명시한다. 함수 moreSliceSegmentHeaderExtensionBytes( )는 슬라이스 세그먼트 헤더 확장에 더 이상의 추가 바이트가 없을 때 0으로 되돌아간다고 명시될 수 있으며, 슬라이스 세그먼트 헤더 확장에 추가 바이트가 있을 때 1로 되돌아 간다고 명시될 수 있다.
Figure 112015109641360-pct00032
Figure 112015109641360-pct00033
뷰 합성 프로세스의 그래뉴러리티
인코더에서, 예를 들어 VSP.a에서 움직임 추정 및/또는 레이트-왜곡 최적화(RDO) 프로세스로 인해 초래되는 움직임 파티션 선택은 VS 프로세스의 그래뉴러리티를 선택하는데 사용될 수 있다. 인코더 및/또는 디코더에서, 표시된 움직임 파티션은 디스패리티 벡터를 도출하는데 사용될 수 있다. 예를 들면, 만일 움직임 파티션이 4x4이면, 각각의 디스패리티 벡터는 4x4 블록으로부터 도출될 수 있다. 마찬가지로, 만일 움직임 파티션이 8x8 이면, 디스패리티 벡터는 8x8 블록으로부터 도출될 수 있다.
일부 실시예에서, 인코더는 비트스트림에서 예를 들어 하나 이상의 신택스 요소 및/또는 신택스 요소 값으로 표시할 수 있고 디코더는 VS 프로세스의 그래뉴러리티가 움직임 파티션의 그래뉴러리트와 동일하면 비트스트림으로부터 디코딩할 수 있다. 즉, 깊이 정보의 사용의 그래뉴러리티에 관한 표시는 비트스트림에서 제공될 수 있다.
일부 실시예에서, VS 프로세스의 그래뉴러리티는 움직임 분할로 한정되지만 더 세분화된 그래뉴러리티가 인코더에 의해 비트스트림에tj 표시될 수 있으며/있거나 디코더에 의해 비트스트림으로부터 디코딩될 수 있다. 예를 들면, 엔트로피 코딩된 VS 그래뉴러리티 신택스 요소는 매크로블록 파티션 신택스와 같은 움직임 파티션 신택스에 포함될 수 있다. VS 그래뉴러리티 신택스 요소는 CABAC 코딩될 수 있으며/있거나 엔트로피 (디)코딩은 움직임 분할에 의한 제약을 활용할 수 있다. 예를 들면, 만일 움직임 파티션의 블록 크기가 8x8이면, 일부 실시예에서 VS 그래뉴러리티는 8x8 또는 4x4으로 표시될 수 있다.
일부 실시예에서, VS 프로세스의 그래뉴러리티는 예를 들어 코딩 표준에서 미리 정의될 수 있거나 인코더에 의해 비트스트림에서 표시될 수 있으며/있거나 디코더에 의해 비트스트림으로부터 디코딩될 수 있다. 예를 들면, 시퀀스 파라미터 세트와 같은 시퀀스-레벨 신택스 구조에서는 8x8 블록이 VSP 프로세스에서 사용된다고 표시될 수 있다. 일부 실시예에서, 인코더가 VSP 예측된 파티션을 위해 선택할 수 있는 움직임 분할은 미리 정의된 또는 표시된 VSP 그래뉴러리티에 의해 한정될 수 있다. 일부 실시예에서, 움직임 분할의 엔트로피 코딩은 VSP가 표시될 때마다 엔트로피 코딩 움직임 분할이 예를 들어 코드 테이블 내 VSP 그래뉴러리티보다 작은 파티션 크기를 사용하지 않도록 수정될 수 있다.
일부 실시예에서, VS 프로세스의 그래뉴러리티는 VSP 일반 모드(및/또는 유사한 모드) 및 VSP 스킵/다이렉트 모드(및/또는 유사한 모드)에서 동일할 수 있다. 일부 실시예에서, VS 프로세스의 그래뉴러리티는 별도로 VSP 일반 모드(및/또는 유사한 모드) 및 VSP 스킵/다이렉트 모드(및/또는 유사한 모드)에서 인코더에 의해 표시될 수 있고 디코더에 의해 디코딩될 수 있다.
VSP 또는 IVP의 선택
일부 실시예에서, 인코더는 다음과 같은 의사코드 알고리즘에서와 같이 구현될 수 있다:
만일 인코더가 예를 들어 VSP 또는 IVP의 사용이 블록-레벨에서 시그널링된다고 결정하고 시그널링하면, 다음과 같이 수행한다:
Figure 112015109641360-pct00034
그렇지 않으면(인코더가 예를 들어 VSP가 사용되지 않고 통상의 IVP가 사용된다고 결정하고 슬라이스 헤더에서 시그널링하면), IVP에 대한 정규의 MVC 시그널링을 수행한다.
VSP / IVP 모드의 블록 레벨 시그널링보다 상위의 시그널링
일부 실시예에서, 디코더는 다음과 같은 의사코드 알고리즘에서와 같이 구현될 수 있다:
비트스트림으로부터, 예를 들면, 슬라이스 헤더로부터, VSP 또는 IVP의 사용이 블록 레벨에서 시그널링되는지를 디코딩한다. 예를 들면, SlicelVPredIdc라는 변수를 다음과 같이,
- VSP 및 IVP 모두 블록 레벨에서 사용될 수 있을 때는 3으로 놓고
- VSP가 블록 레벨에서 사용될 수 있지만 IVP가 블록 레벨에서 사용되지 않을 때는 2로 놓고
- IVP가 블록 레벨에서 사용될 수 있지만 VSP가 블록 레벨에서 사용되지 않을 때는 1로 놓고
- VSP나 IVP 어떤 것도 블록 레벨에서 사용되지 않을 때는 0으로 놓는다.
만일 VSP 및 IVP의 어떤 것도 또는 둘 다 블록 레벨에서 사용될 수 있으면(예를 들면, SlicelVPredIdc가 0보다 크면), 참조 인덱스를 디코딩하고 참조 인덱스가 인터-뷰 참조 픽처인지 결정 내릴 수 있다.
만일 (인터-뷰 참조 픽처가 참조되고 VSP 및 IVP 모두 블록 레벨에서 사용될 수 있으면), vsp_flag 등을 읽고,
만일 (인터-뷰 참조 픽처가 참조되고 SlicelVPredldc가 2이거나 vsp_flag가 1이면), VSP 그래뉴러리티를 사용하여 디스패리티를 도출한다. 그런 다음, 수직 움직임 벡터를 0으로 설정하고, 수평 움직임 벡터를 도출된 디스패리티와 같게 설정한다.
만일 (인터-뷰 참조 픽처가 참조되고 SlicelVPredIdc가 1이거나 vsp_flag가 0이면), 움직임 벡터를 분석하기 위한 정규의 IVP 프로세스를 수행한다.
앞에서 설명한 것처럼 움직임 벡터를 사용하여 MCP를 수행한다.
일 예에서, 움직임 벡터 정보를 생략한 것의 표시가 인코딩된 비디오 데이터에 제공되는데, 여기서 움직임 벡터 정보를 생략한 것의 표시는 비디오 블록보다 상위의 레벨에서, 예를 들면, 슬라이스 헤더, 픽처 파라미터 세트, 또는 시퀀스 파라미터 세트에서 제공된다.
깊이 정보의 도출
전술한 일부 실시예는 예를 들어 비디오 블록마다 제공된 깊이 정보를 참조하거나 유사한 표현을 사용하여 깊이 정보가 텍스처 뷰 컴포넌트 내 블록에 대응하거나 그 블록과 연관되어 있다고 표시한다. 이것으로 한정되지 않지만 다음 중 하나 이상의 방법을 비롯하여, 인코딩 및/또는 디코딩 시 그러한 깊이 정보를 구하는 다양한 방법이 있을 수 있다:
- 깊이 뷰 컴포넌트는 (디)코딩 순서에서, 동일한 뷰 및 동일한 타임 인스턴스의 텍스처 뷰 컴포넌트에 선행할 수 있다. 그러므로, 디코딩된/재구성된 깊이 뷰 컴포넌트는 각각의 텍스처 뷰 컴포넌트를 (디)코딩할 때 사용 가능하다.
- 깊이 뷰 컴포넌트는 예를 들어 DIBR 알고리즘을 사용하여, 다른 뷰포인트를 표현하는 재구성된/디코딩된 깊이 뷰 컴포넌트로부터 합성될 수 있다.
- 블록의 깊이 정보는 예를 들어 인접한 깊이 블록의 움직임 벡터로부터 추정 또는 도출되어 현재의 깊이 블록의 움직임 벡터를 도출하고 그 도출된 움직임 벡터에 대응하는 예측 블록으로부터 깊이 정보를 도출할 수 있다.
도 10a, 도 10b, 도 10c 및 도 10d는 실시예에 따라서 비디오 데이터를 인코딩하기 위한 방법을 도시한다. 대응하는 디코딩 방법은 인코딩을 반사하는 방식으로 동작하리라는 것이 분명하다. 도 10a는 적어도 부호가 붙은 예 E1에 대응한다. 도 10b는 적어도 부호를 붙인 예 E6에 대응한다. 도 10c는 적어도 부호를 붙인 예 E13에 대응한다. 도 10d는 적어도 부호를 붙인 예 E14에 대응한다.
도 11은 다양한 실시예가 조합될 수 있는 것을 예시한다. 예를 들면, 비디오 스트림의 상이한 부분은 상이한 실시예를 통해 코딩될 수 있다. 또한, 코딩된 비디오 스트림의 동일한 부분은 여러 실시예를 이용할 수 있다.
도 12a 및 도 12b는 실시예에 따라서 비디오 코딩을 위한 시스템 및 디바이스를 도시한다. 도 12a에서, 여러 디바이스는 인터넷 또는 근거리 네트워크와 같은 고정 네트워크(1210), 또는 글로벌 모바일 통신 시스템(Global System for Mobile communications, GSM) 네트워크, 3 세대(3rd Generation, 3G) 네트워크, 3.5 세대(3.5th Generation, 3.5G) 네트워크, 4 세대(4th Generation, 4G) 네트워크, 무선 근거리 네트워크(Wireless Local Area Network, WLAN), 블루투스(Bluetooth®) 또는 당대 및 미래 네트워크와 같은 모바일 통신 네트워크(1220)를 통해 연결될 수 있다. 여러 네트워크는 통신 인터페이스(1280)에 의해 서로 연결된다. 네트워크는 데이터(도시되지 않음)를 다루는 라우터 및 스위치와 같은 네트워크 요소, 및 여러 디바이스가 네트워크에 액세스하게 해주는 기지국(1230 및 1231)과 같은 통신 인터페이스를 포함하며, 기지국(1230, 1231)은 고정 연결(1276) 또는 무선 연결(1277)을 통해 자체적으로 모바일 네트워크(1220)에 연결된다.
다수의 서버가 네트워크에 연결될 수 있으며, 도 12a의 예에서는 비디오 스트리밍을 위한 네트워크 서비스를 제공하기 위해 고정 네트워크(1210)에 연결된 서버(1240), 앞에서 제시된 바와 같이 비디오 데이터 구조를 저장하기 위해 고정 네트워크(1210)에 연결된 서버(1241), 및 비디오 스트리밍 서비스를 제공하기 위해 모바일 네트워크(1220)에 연결된 서버(1242)가 도시된다. 전술한 디바이스 중 일부, 예를 들면 컴퓨터(1240, 1241, 1242)는 고정 네트워크(1210)에 상주하는 통신 요소와 함께 인터넷을 구성하는 디바이스일 수 있다. 통신 요소 중 일부는 예를 들어 입력되는 비디오 스트림을 수신하고, 아마도 비디오 스트림을 코드변환하고 이를 단말에 적절한 포맷으로 제공할 수 있는 게이트웨이로서 작용함으로써 비디오 능력을 제공할 수 있다. 예를 들면, 네트워크 요소는 전술한 실시예에 따라서 코딩된 깊이 강화된 비디오 스트림을 디코딩하고 스테레오 비디오 스트림을 클라이언트 디바이스에 제공할 수 있다.
또한 모바일 폰 및 스마트 폰(1251), 인터넷 액세스 디바이스(인터넷 태블릿)(1250), 다양한 크기와 포맷의 퍼스널 컴퓨터(1260), 텔레비전 및 다른 시청 디바이스(1261), 비디오 디코더 및 플레이어(1262)뿐만 아니라 비디오 카메라(1263) 및 기타 인코더와 같은 복수의 최종 사용자 디바이스가 있다. 이들 디바이스(1250, 1251, 1260, 1261, 1262 및 1263)는 또한 복수의 부품으로 제조될 수 있다. 각종 디바이스는 인터넷과의 고정 연결(1270, 1271, 1272 및 1280), 인터넷(1210)과의 유선 연결(1273), 모바일 네트워크(1220)와의 고정 연결(1275), 및 모바일 네트워크(1220)와의 무선 연결(1278, 1279 및 1282)과 같은 통신 연결을 통해 네트워크(1210 및 1220)에 연결될 수 있다. 연결(1271-1282)은 통신 연결의 각각의 단부에서 통신 인터페이스에 의해 구현된다.
비디오 데이터 구조(비디오 비트스트림 및/또는 비디오 파일)는 임의의 사용자 디바이스 또는 임의의 서버에 저장될 수 있으며, 그 곳으로부터 통신 연결을 통해 또는 디바이스에서 내부적으로 액세스될 수 있다.
도 12b는 실시예에 따른 비디오 코딩을 위한 디바이스를 도시한다. 도 12b에 도시된 바와 같이, 서버(1240)는 메모리(1245), 하나 이상의 프로세서(1246, 1247), 및 예를 들어 비디오를 처리하기 위한 비디오 인코더 및/또는 비디오 디코더 기능성 또는 기타 기능성을 구현하기 위해 메모리(1245)에 상주하는 컴퓨터 프로그램 코드(1248)를 포함한다. 여러 서버(1241, 1242)는 각 서버와 관련된 기능성을 이용하기 위해 적어도 이러한 동일한 요소를 포함할 수 있다. 유사하게, 최종 사용자 디바이스(1251)는 메모리(1252), 적어도 하나의 프로세서(1253 및 1256), 및 예를 들어 비디오 인코더 또는 비디오 디코더를 구현하기 위해 메모리(1252)에 상주하는 컴퓨터 프로그램 코드(1254)를 포함한다. 최종 사용자 디바이스는 또한 이미지 데이터, 예를 들어 비디오를 촬영하기 위한 하나 이상의 카메라(1255 및 1259)를 갖고 있을 수 있다. 최종 사용자 디바이스는 또한 소리를 포착하기 위한 하나, 둘 또는 그 이상의 마이크로폰(1257 및 1258)을 갖고 있을 수 있다. 여러 최종 사용자 디바이스(1250, 1260)는 각 디바이스와 관련된 기능성을 이용하기 위하여 적어도 이러한 동일한 요소를 갖고 있을 수 있다. 최종 사용자 디바이스는 또한 그래픽 사용자 인터페이스를 보여주기 위한 스크린을 포함할 수 있으며, 앞에서 제시된 것처럼 3D 비디오를 시청하기 위한 스크린을 포함할 수 있다. 최종 사용자 디바이스 및 서버는 또한 하나의 모듈에서 다른 디바이스와 통신하고 디바이스들 사이에서 비디오 데이터를 전달하기 위해 구현되는 각종 통신 모듈 또는 통신 기능성을 포함할 수 있다.
다양한 최종 사용자 디바이스 및 서버는 통신 디바이스 또는 통신 능력을 갖는 다른 디바이스의 형태를 취할 수 있다. 예를 들면, 디바이스는 서로 통신할 수 있고 그래서 그의 발견물이 실행될 수 있는 장난감, 주방 기계와 같은 가전 기기, 엔터테인먼트 디바이스(TV, 음악/미디어 디바이스), 또는 심지어 빌딩, 의복, 차량, 또는 임의의 다른 디바이스의 부분품일 수 있다.
여러 실시예는 여러 부분이 여러 요소에서 실행될 수 있게 해준다는 것을 이해하여야 한다. 예를 들면, 비디오 데이터를 촬영하고 인코딩하는 것은 전체적으로 하나의 사용자 디바이스 등(250, 251 또는 260)에서, 또는 하나의 서버 디바이스(240, 241, 또는 242)에서 전체적으로 실행될 수 있거나, 아니면 복수의 사용자 디바이스(250, 251, 260) 또는 복수의 네트워크 디바이스(240, 241, 242), 또는 두 사용자 디바이스(250, 251, 260) 및 네트워크 디바이스(240, 241, 242)의 전반에 걸쳐 실행될 수 있다. 예를 들면, 비디오 데이터의 촬영은 하나 이상의 사용자 디바이스에서 이루어질 수 있고, 비디오 데이터를 멀티뷰 비디오 포맷으로 처리하는 것은 다른 사용자 디바이스 또는 서버 디바이스에서 이루어질 수 있으며, 비디오 데이터를 소비용도로 제공하는 것은 제 3 디바이스(예를 들어 서버)에서 실행될 수 있다. 기능성을 실행하기 위한 관련 소프트웨어는 앞에서 언급한 것처럼 하나의 디바이스에 상주할 수 있거나 또는 예를 들어 디바이스들이 소위 클라우드를 형성하는 여러 디바이스에 걸쳐 분산되어 있을 수 있다.
여러 실시예는 모바일 디바이스에서 그리고 옵션으로 서버에서 구동하는 소프트웨어로서 구현될 수 있다. 모바일 폰은 적어도 메모리, 프로세서, 디스플레이, 키패드, 움직임 검출 하드웨어, 및 2G, 3G, WLAN 등과 같은 통신 수단을 장비하고 있을 수 있다. 여러 디바이스는 터치 스크린(싱글 터치 또는 멀티 터치)과 같은 하드웨어 및 네트워크 위치탐지 또는 위성 항법 시스템(global positioning system, GPS) 모듈과 같은 위치 파악 수단을 갖고 있을 수 있다. 디바이스에는 사무소 및/또는 개인 용도의 캘린더 애플리케이션, 연락처 애플리케이션, 지도 애플리케이션, 메시징 애플리케이션, 브라우저 애플리케이션, 갤러리 애플리케이션, 비디오 플레이어 애플리케이션 및 다양한 다른 애플리케이션이 존재할 수 있다. 디바이스는 다른 디바이스와 통신하고 비디오를 송신 및 수신하기 위한 다양한 통신 모듈을 가질 수 있다.
앞에서 제시된 여러 예는 다양한 실시예를 실행하기 위한 예시적인 기술적 옵션을 예시하고자 한다. 실시예에서, 여러 예로부터의 특징은 조합될 수 있다. 예를 들면, H.264/AVC을 참조하여 설명된 특징은 H.264/HEVC을 참조하여 설명된 특징과 조합될 수 있으며, 또한 임의의 기술 사양서를 참조하지 않고 설명된 특징과도 조합될 수 있다.
제시된 실시예는 장점을 제공할 수 있다. 예를 들면, 조화된 IVP/VSP 해법의 압축 효율이 개선될 수 있고, VSP의 평균 계산 복잡도가 고정 크기(예를 들어 2x2또는 4x4)의 파티션을 사용하는 대신, H.264/AVC 또는 H.264/HEVC의 MCP와의 정렬로 인하여 줄어들 수 있고, 그리고/또는 VSP의 구현 복잡도가 고정 크기(예를 들어 2x2또는 4x4)의 파티션을 사용하는 대신, H.264/AVC 또는 H.264/HEVC의 MCP와의 정렬로 인하여 줄어들 수 있다.
앞에서, 일부 실시예는 예를 들어 픽처 내 블록 또는 코딩 모드에 관한 특정한 용어를 참조하여 설명되었다. 실시예는 유사한 시맨틱을 가진 다른 용어를 참조하여 실현될 수도 있다는 것을 이해하여야 한다.
앞에서, 일부 실시예는 특정한 예측 프로세스를 참조하여 설명되었다. 실시예는 임의의 유사한 예측 프로세스를 이용하여 실현될 수도 있다는 것을 이해하여야 한다. 예를 들면, 앞에서, 일부 실시예는 HEVC의 TMVP 프로세스에 관련하여 설명되었다. 그러나, 실시예는 임의의 유사한 움직임 벡터 예측 프로세스를 이용하여 실현될 수도 있다는 것을 이해하여야 한다.
앞에서, 일부 실시예는 특정한 신택스 구조 및/또는 신택스 요소를 참조하여 설명되었다. 그러나, 실시예는 대안으로 또는 그 외에 다른 신택스 구조 및/또는 신택스 요소로 실현될 수도 있다는 것을 이해하여야 한다.
앞에서, 일부 실시예는 CABAC와 같은 특정한 엔트로피 코딩 및/또는 디코딩 방법을 참조하여 설명되었다. 그러나 실시예는 대안으로 또는 그 외에 다른 엔트로피 코딩 및/또는 디코딩 방법으로 실현될 수도 있다는 것을 이해하여야 한다.
앞에서, 일부 실시예는 표시, 신택스 요소, 및/또는 신택스 구조를 비트스트림으로 인코딩하거나 코딩된 비디오 시퀀스로 인코딩하는 것 및/또는 비트스트림으로부터 또는 코딩된 비디오 시퀀스로부터 표시, 신택스 요소, 및/또는 신택스 구조를 디코딩하는 것과 관련하여 설명되었다. 그러나, 실시예는 표시, 신택스 요소, 및/또는 신택스 구조를 코딩된 슬라이스와 같은 비디오 코딩 계층 데이터를 포함하는 비트스트림 또는 코딩된 비디오 시퀀스와 동떨어진 신택스 구조나 데이터 유닛으로 인코딩할 때, 및/또는 코딩된 슬라이스와 같은 비디오 코딩 계층 데이터를 포함하는 비트스트림 또는 코딩된 비디오 시퀀스와 동떨어진 신택스 구조 또는 데이터 유닛으로부터 표시, 신택스 요소, 및/또는 신택스 구조를 디코딩할 때 실현될 수도 있다는 것을 이해하여야 한다. 예를 들면, 일부 실시예에서, 전술한 임의의 실시예에 따른 표시는, 예를 들면 SDP와 같은 제어 프로토콜을 사용하여 코딩된 비디오 시퀀스로부터 외부에서 전달되는 비디오 파라미터 세트 또는 시퀀스 파라미터 세트로 코딩될 수 있다. 동일한 예를 계속하여 설명하면, 수신기는, 예를 들면 제어 프로토콜을 사용하여, 비디오 파라미터 세트 또는 시퀀스 파라미터 세트를 획득하고, 비디오 파라미터 세트 또는 시퀀스 파라미터 세트를 디코딩하기 위해 제공할 수 있다.
앞에서, 일부 실시예는 텍스처 뷰에 적용되는 인터-뷰 예측 및 뷰 합성 예측을 조화하기 위해 설명되었다. 실시예는 그 외에 또는 대안으로 다른 유형의 뷰 및/또는 픽처에 적용될 수 있다는 것을 이해하여야 한다. 예를 들면, 실시예는 깊이 뷰에 대한 인터-뷰 예측 및 뷰 합성 예측을 조화하기 위해 적용될 수 있다.
앞에서, 예시적인 실시예 중 일부는 비트스트림의 신택스의 도움을 받아 설명되었다. 그러나, 대응하는 구조 및/또는 컴퓨터 프로그램은 그 비트스트림을 생성하기 위해 인코더에서 그리고/또는 그 비트스트림을 디코딩하기 위해 디코더에서 상주할 수 있다는 것을 이해하여야 한다. 마찬가지로, 예시적인 실시예가 인코더를 참조로 하여 설명된 경우, 결과적인 비트스트림 및 디코더는 자체 내에 대응하는 요소를 갖고 있다고 이해하여야 한다. 마찬가지로, 예시적인 실시예가 디코더를 참조로 하여 설명된 경우, 인코더는 디코더에 의해 디코딩될 비트스트림을 생성하기 위한 구조 및/또는 컴퓨터 프로그램을 갖고 있다고 이해하여야 한다.
전술한 본 발명의 실시예 중 일부는 연루된 프로세스의 이해를 돕기 위하여 별개의 인코더와 디코더 장치의 관점에서 설명되었다. 그러나, 장치, 구조 및 동작은 단일의 인코더-디코더 장치/구조/동작으로서 구현될 수 있다는 것이 인식될 것이다. 뿐만 아니라, 본 발명의 일부 실시예에서, 코더 및 디코더는 일부 또는 모든 공통 요소를 공유할 수 있다.
본 발명의 여러 실시예는 메모리에 상주하면서 관련 장치로 하여금 본 발명을 실행하게 하는 컴퓨터 프로그램 코드의 도움을 받아 구현될 수 있다. 예를 들면, 디바이스는 데이터, 메모리 내 컴퓨터 프로그램 코드 및 그 컴퓨터 프로그램 코드를 구동할 때 단말 디바이스로 하여금 실시예의 특징을 수행하게 하는 프로세서를 처리하고, 수신하고 전송하기 위한 회로 및 전자장치를 포함할 수 있다. 또한, 서버와 같은 네트워크 디바이스는 데이터, 메모리 내 컴퓨터 프로그램 코드, 및 그 컴퓨터 프로그램 코드를 구동할 때 네트워크 디바이스로 하여금 실시예의 특징을 실행하게 하는 프로세서를 처리하고, 수신하고 전송하기 위한 회로 및 전자장치를 포함할 수 있다.
비록 전술한 예가 전자 디바이스 내부의 코덱 내부에서 동작하는 본 발명의 실시예를 설명할지라도, 아래에 설명되는 바와 같은 본 발명은 임의의 비디오 코덱의 일부로서 구현될 수 있다고 인식될 것이다. 그러므로, 예를 들어, 본 발명의 실시예는 고정 또는 유선 통신 경로를 통해 비디오 코딩을 실시할 수 있는 비디오 코덱에서 구현될 수 있다.
그러므로, 사용자 장비는 전술한 본 발명의 실시예에서 설명된 바와 같은 비디오 코덱을 포함할 수 있다. 사용자 장비라는 용어는 모바일 텔레폰, 휴대용 데이터 처리 디바이스 또는 휴대용 웹 브라우저와 같은 임의의 적합한 형태의 무선 사용자 장비를 망라하고자 하는 것이 인식될 것이다.
뿐만 아니라 공중 육상 모바일 네트워크(public land mobile network, PLMN)의 요소 또한 전술한 바와 같은 비디오 코덱을 포함할 수 있다.
일반적으로, 본 발명의 다양한 실시예는 하드웨어 또는 특수 목적 회로, 소프트웨어, 로직 또는 이들의 임의의 조합으로 구현될 수 있다. 예를 들면, 비록 본 발명이 이것으로 한정되지 않지만, 일부 양태는 하드웨어로 구현될 수 있는 한편, 다른 양태는 컨트롤러, 마이크로프로세서 또는 다른 컴퓨팅 디바이스에 의해 실행될 수 있는 펌웨어 또는 소프트웨어로 구현될 수 있다. 본 발명의 다양한 양태가 블록도, 플로우 차트로서 또는 일부 다른 회화적 표현을 이용하여 묘사되고 기술될 수 있지만, 본 출원에서 설명된 이러한 블록, 장치, 시스템, 기술 또는 방법은, 비한정적인 예시로서, 하드웨어, 소프트웨어, 펌웨어, 특수 목적 회로나 로직, 범용 하드웨어나 컨트롤러나 다른 컴퓨팅 디바이스, 또는 이들의 일부 조합으로 구현될 수 있다는 것 또한 물론이다.
본 발명의 실시예는 프로세서 엔티티에서와 같은 모바일 디바이스의 데이터 프로세서에 의해 실행가능한 컴퓨터소프트웨어에 의해, 또는 하드웨어에 의해, 또는 소프트웨어와 하드웨어의 조합에 의해 구현될 수 있다. 또한, 이 점에서, 도면에서처럼 로직 흐름의 임의의 블록은 프로그램 단계, 또는 상호연결된 로직 회로, 블록 및 기능, 또는 프로그램 단계와 로직 회로, 블록 및 기능과의 조합을 표현할 수 있다는 것을 주목하여야 한다. 소프트웨어는 메모리 칩, 또는 프로세서 내부에서 구현된 메모리 블록과 같은 물리적 매체, 하드 디스크나 플로피 디스크와 같은 자기 매체, 그리고 예를 들면, DVD 및 그의 데이터 변형방식인 CD와 같은 광학 매체 상에 저장될 수 있다.
본 발명의 여러 실시예는 메모리에 상주하면서 관련 장치로 하여금 본 발명을 실행하게 하는 컴퓨터 프로그램 코드의 도움을 받아 구현될 수 있다. 예를 들면, 단말 디바이스는 데이터, 메모리 내 컴퓨터 프로그램 코드, 및 그 컴퓨터 프로그램 코드를 구동할 때 단말 디바이스로 하여금 실시예의 특징을 실행하게 하는 프로세서를 처리하고, 수신하고 전송하기 위한 회로 및 전자장치를 포함할 수 있다. 또한, 네트워크 디바이스는 데이터, 메모리 내 컴퓨터 프로그램 코드, 및 그 컴퓨터 프로그램 코드를 구동할 때 네트워크 디바이스로 하여금 실시예의 특징을 실행하게 하는 프로세서를 처리하고, 수신하고 전송하기 위한 회로 및 전자장치를 포함할 수 있다.
메모리는 지엽적인 기술 환경에 적합한 임의의 형태를 가질 수 있으며 반도체-기반 메모리 디바이스, 자기 메모리 디바이스 및 시스템, 광학 메모리 디바이스 및 시스템, 고정 메모리 및 제거가능한 메모리와 같은 임의의 적합한 데이터 저장 기술을 사용하여 구현될 수 있다. 데이터 프로세서는 지엽적인 기술 환경에 적합한 임의의 형태를 가질 수 있으며, 비한정적인 예시로서 범용 컴퓨터, 특수 목적 컴퓨터, 마이크로프로세서, 디지털 신호 프로세서(digital signal processor, DSP) 및 멀티-코어 프로세서 아키텍처에 기반한 프로세서 중 하나 이상을 포함할 수 있다.
본 발명의 실시예는 집적 회로 모듈과 같은 다양한 컴포넌트에서 실시될 수 있다. 집적 회로의 디자인은 대체로 고도로 자동화된 프로세스이다. 복잡하고 강력한 소프트웨어 툴은 로직 레벨 디자인을 반도체 기판 상에서 에칭되어 형성되게 준비된 반도체 회로 디자인으로 변환하는데 이용할 수 있다.
캘리포니아, 마운틴 뷰 소재의 시놉시스(Synopsys Inc.)와 캘리포니아 산호세 소재의 카덴스 디자인(Cadence Design)에 의해 제공된 것과 같은 프로그램은 자동적으로 전도체를 경로설정하고 잘 설정된 디자인 룰 및 미리 저장된 디자인 모듈의 라이브러리를 이용하여 반도체 칩상에 컴포넌트를 배치한다. 일단 반도체 회로의 디자인이 완성되면, 표준화된 전자 포맷(예를 들면, Opus 또는 GDSII 등)으로 만들어진 결과적인 디자인은 반도체 제조 설비 또는 제조용 "팹(fab)"으로 전달될 수 있다.
전술한 설명은 본 발명의 예시적인 실시예의 풍부하고 유익한 설명을 예시적이고 비한정적인 예시로서 제공하였다. 그러나, 첨부 도면 및 첨부의 청구범위와 함께 읽어볼 때 전술한 설명의 관점에서 보아 관련 기술에서 통상의 지식을 가진 자에게는 다양한 수정과 적응이 자명해질 수 있다. 그러나, 본 발명의 가르침의 그러한 모든 변형 및 유사한 변형은 그럼에도 본 발명의 범주 내에 속할 것이다.

Claims (84)

  1. 인코딩된 비디오 데이터를 제공하는 방법으로서,
    상기 인코딩된 비디오 데이터의 인코딩 시에 사용되는 참조 픽처(reference picture)를 관리하기 위한 참조 픽처 리스트를 형성하는 단계와,
    상기 인코딩된 비디오 데이터 내에 상기 참조 픽처 리스트의 인덱스를 제공하는 단계 - 상기 인덱스는 블록을 디코딩하는데 사용되는 참조 픽처를 나타냄 - 와,
    다른 뷰의 적어도 하나의 픽처를 상기 인코딩 시 참조 픽처로서 사용하는 단계 - 상기 다른 뷰의 상기 픽처는 상기 참조 픽처 리스트의 상기 인덱스에 대응함 - 와,
    상기 다른 뷰의 픽처에 대응하는 상기 참조 픽처 리스트의 상기 인덱스에 따라, 상기 블록을 디코딩하는데 사용되는 예측의 유형을 나타내는 표시를 제공하는 단계와,
    상기 예측의 유형을 나타내는 표시를 상기 인코딩된 비디오 데이터 내에 인코딩하는 단계를 포함하되,
    상기 표시에 의해 표시되는 상기 예측의 유형은,
    인터-뷰 예측(inter-view prediction)과,
    디스패리티 보상(disparity compensation)에 기초하는 예측 - 상기 디스패리티 보상(disparity compensation)에 기초하는 상기 예측은 뷰-합성 예측(view synthesis prediction)을 포함함 - 을 포함하고,
    만일,
    a) 상기 표시의 적어도 일부(Vsp_flag)가 제1값으로 설정되어 있는 경우, 상기 블록의 현재 파티션은 포괄 모드에서 인터-뷰 예측(IVP.a)으로서 코딩되고, 상기 현재 파티션에 대응하는 하나 이상의 움직임 벡터 컴포넌트는 비트스트림에 시그널링되고,
    b) 상기 표시의 상기 적어도 일부(Vsp_flag)가 제2값으로 설정되어 있는 경우, 상기 현재 파티션은 포괄 모드에서 뷰-합성 예측(VSP.a)으로서 코딩되고, 상기 움직임 벡터 컴포넌트는 비트스트림에서 시그널링되지 않는
    인코딩된 비디오 데이터 제공 방법.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 표시는 상기 다른 뷰의 상기 픽처로부터 디스패리티 보상을 이용한 예측이 사용되는지 여부를 표시하는 신택스 요소인
    인코딩된 비디오 데이터 제공 방법.
  5. 제 4 항에 있어서,
    상기 신택스 요소는 상기 인코딩된 비디오 데이터 내로 이진 플래그로서 코딩되거나 상기 인코딩된 비디오 데이터 내로 산술적으로 코딩되는
    인코딩된 비디오 데이터 제공 방법.
  6. 인코딩된 비디오 데이터를 디코딩하는 방법으로서,
    상기 인코딩된 비디오 데이터의 디코딩시에 사용되는 참조 픽처를 관리하기 위한 참조 픽처 리스트를 형성하는 단계와,
    상기 인코딩된 비디오 데이터로부터 상기 참조 픽처 리스트의 인덱스를 디코딩하는 단계 - 상기 인덱스는 블록을 디코딩하는데 사용되는 참조 픽처를 나타냄 - 와,
    상기 디코딩 시 다른 뷰의 적어도 하나의 픽처를 참조 픽처로서 사용하는 단계 - 상기 다른 뷰의 상기 픽처는 상기 참조 픽처 리스트의 상기 인덱스에 대응함 - 와,
    상기 다른 뷰의 픽처에 대응하는 상기 참조 픽처 리스트의 상기 인덱스에 따라, 상기 블록을 디코딩하는데 사용되는 예측의 유형을 나타내는 표시를 상기 인코딩된 비디오 데이터로부터 취득하는 단계를 포함하되,
    상기 표시에 의해 표시되는 상기 예측의 유형은,
    인터-뷰 예측(inter-view prediction)과,
    디스패리티 보상(disparity compensation)에 기초하는 예측 - 상기 디스패리티 보상(disparity compensation)에 기초하는 상기 예측은 뷰-합성 예측(view synthesis prediction)을 포함함 - 을 포함하고,
    만일,
    a) 상기 표시의 적어도 일부(Vsp_flag)가 제1값으로 설정되어 있는 경우, 상기 블록의 현재 파티션은 포괄 모드에서 인터-뷰 예측(IVP.a)으로서 코딩되고, 상기 현재 파티션에 대응하는 하나 이상의 움직임 벡터 컴포넌트는 비트스트림에 시그널링되고,
    b) 상기 표시의 상기 적어도 일부(Vsp_flag)가 제2값으로 설정되어 있는 경우, 상기 현재 파티션은 포괄 모드에서 뷰-합성 예측(VSP.a)으로서 코딩되고, 상기 움직임 벡터 컴포넌트는 비트스트림에서 시그널링되지 않는
    인코딩된 비디오 데이터 디코딩 방법.
  7. 삭제
  8. 삭제
  9. 제 6 항에 있어서,
    상기 표시는 상기 다른 뷰의 상기 픽처로부터 디스패리티 보상을 이용한 예측이 사용되는지 여부를 표시하는 신택스 요소인
    인코딩된 비디오 데이터 디코딩 방법.
  10. 제 9 항에 있어서,
    상기 신택스 요소는 상기 인코딩된 비디오 데이터 내로 이진 플래그로서 코딩되거나 상기 인코딩된 비디오 데이터 내로 산술적으로 코딩되는
    인코딩된 비디오 데이터 디코딩 방법.
  11. 적어도 하나의 프로세서, 메모리, 및 상기 메모리 내의 컴퓨터 프로그램 코드를 포함하는 장치로서,
    상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서에서 실행될 때, 상기 장치로 하여금,
    비디오 데이터를 인코딩하는데 사용되는 참조 픽처를 관리하기 위한 참조 픽처 리스트를 형성하게 하고,
    상기 인코딩된 비디오 데이터 내에 상기 참조 픽처 리스트의 인덱스를 제공하게 하며 - 상기 인덱스는 블록을 디코딩하는데 사용되는 참조 픽처를 나타냄 - ,
    다른 뷰의 적어도 하나의 픽처를 상기 인코딩 시 참조 픽처로서 사용 - 상기 다른 뷰의 상기 픽처는 상기 참조 픽처 리스트의 상기 인덱스에 대응함 - 하게 하고,
    상기 다른 뷰의 픽처에 대응하는 상기 참조 픽처 리스트의 상기 인덱스에 따라, 상기 블록을 디코딩하는데 사용되는 예측의 유형을 나타내는 표시를 제공하게 하고,
    상기 예측의 유형을 나타내는 표시를 상기 인코딩된 비디오 데이터 내에 인코딩하게 하도록 구성되고,
    상기 표시에 의해 표시되는 상기 예측의 유형은,
    인터-뷰 예측(inter-view prediction)과,
    디스패리티 보상(disparity compensation)에 기초하는 예측 - 상기 디스패리티 보상(disparity compensation)에 기초하는 상기 예측은 뷰-합성 예측(view synthesis prediction)을 포함함 - 을 포함하고,
    만일,
    a) 상기 표시의 적어도 일부(Vsp_flag)가 제1값으로 설정되어 있는 경우, 상기 블록의 현재 파티션은 포괄 모드에서 인터-뷰 예측(IVP.a)으로서 코딩되고, 상기 현재 파티션에 대응하는 하나 이상의 움직임 벡터 컴포넌트는 비트스트림에 시그널링되고,
    b) 상기 표시의 상기 적어도 일부(Vsp_flag)가 제2값으로 설정되어 있는 경우, 상기 현재 파티션은 포괄 모드에서 뷰-합성 예측(VSP.a)으로서 코딩되고, 상기 움직임 벡터 컴포넌트는 비트스트림에서 시그널링되지 않는
    장치.
  12. 삭제
  13. 삭제
  14. 제 11 항에 있어서,
    상기 표시는 상기 다른 뷰의 상기 픽처로부터 디스패리티 보상을 이용한 예측이 사용되는지 여부를 표시하는 신택스 요소인
    장치.
  15. 비디오 데이터를 인코딩하기 위한 컴퓨터 프로그램이 저장된 컴퓨터 판독가능한 저장 매체로서,
    상기 컴퓨터 프로그램은 컴퓨터 프로그램 코드를 포함하고,
    상기 컴퓨터 프로그램 코드는 프로세서 상에서 실행될 때, 장치로 하여금
    비디오 데이터를 인코딩하는데 사용되는 참조 픽처를 관리하기 위한 참조 픽처 리스트를 형성하게 하고,
    상기 인코딩된 비디오 데이터 내에 상기 참조 픽처 리스트의 인덱스를 제공하게 하며 - 상기 인덱스는 블록을 디코딩하는데 사용되는 참조 픽처를 나타냄 - 와,
    다른 뷰의 적어도 하나의 픽처를 상기 인코딩 시 참조 픽처로서 사용 - 상기 다른 뷰의 상기 픽처는 상기 참조 픽처 리스트의 상기 인덱스에 대응함 - 하게 하고,
    상기 다른 뷰의 픽처에 대응하는 상기 참조 픽처 리스트의 상기 인덱스에 따라, 상기 블록을 디코딩하는데 사용되는 예측의 유형을 나타내는 표시를 제공하게 하고,
    상기 예측의 유형을 나타내는 표시를 상기 인코딩된 비디오 데이터 내에 인코딩하게 하도록 구성되고,
    상기 표시에 의해 표시되는 상기 예측의 유형은,
    인터-뷰 예측(inter-view prediction)과,
    디스패리티 보상(disparity compensation)에 기초하는 예측 - 상기 디스패리티 보상(disparity compensation)에 기초하는 상기 예측은 뷰-합성 예측(view synthesis prediction)을 포함함 - 을 포함하고,
    만일,
    a) 상기 표시의 적어도 일부(Vsp_flag)가 제1값으로 설정되어 있는 경우, 상기 블록의 현재 파티션은 포괄 모드에서 인터-뷰 예측(IVP.a)으로서 코딩되고, 상기 현재 파티션에 대응하는 하나 이상의 움직임 벡터 컴포넌트는 비트스트림에 시그널링되고,
    b) 상기 표시의 상기 적어도 일부(Vsp_flag)가 제2값으로 설정되어 있는 경우, 상기 현재 파티션은 포괄 모드에서 뷰-합성 예측(VSP.a)으로서 코딩되고, 상기 움직임 벡터 컴포넌트는 비트스트림에서 시그널링되지 않는
    컴퓨터 판독가능한 저장 매체.
  16. 장치로서,
    적어도 하나의 프로세서, 메모리, 및 상기 메모리 내의 컴퓨터 프로그램 코드를 포함하되,
    상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서 상에서 실행될 때, 상기 장치로 하여금,
    비디오 데이터를 디코딩하는데 사용되는 참조 픽처를 관리하기 위한 참조 픽처 리스트를 형성하게 하고,
    인코딩된 비디오 데이터로부터 상기 참조 픽처 리스트의 인덱스를 디코딩하게 하고 - 상기 인덱스는 블록을 디코딩하는데 사용되는 참조 픽처를 나타냄 - ,
    다른 뷰의 적어도 하나의 픽처를 상기 디코딩 시 참조 픽처로서 사용 - 상기 다른 뷰의 상기 픽처는 상기 참조 픽처 리스트의 상기 인덱스에 대응함 - 하게 하고,
    상기 다른 뷰의 픽처에 대응하는 상기 참조 픽처 리스트의 상기 인덱스에 따라, 상기 블록을 디코딩하는데 사용되는 예측의 유형을 나타내는 표시를 인코딩된 비디오 데이터로부터 취득하게 하도록 구성되고,
    상기 표시에 의해 표시되는 상기 예측의 유형은,
    인터-뷰 예측(inter-view prediction)과,
    디스패리티 보상(disparity compensation)에 기초하는 예측 - 상기 디스패리티 보상(disparity compensation)에 기초하는 상기 예측은 뷰-합성 예측(view synthesis prediction)을 포함함 - 을 포함하고,
    만일,
    a) 상기 표시의 적어도 일부(Vsp_flag)가 제1값으로 설정되어 있는 경우, 상기 블록의 현재 파티션은 포괄 모드에서 인터-뷰 예측(IVP.a)으로서 코딩되고, 상기 현재 파티션에 대응하는 하나 이상의 움직임 벡터 컴포넌트는 비트스트림에 시그널링되고,
    b) 상기 표시의 상기 적어도 일부(Vsp_flag)가 제2값으로 설정되어 있는 경우, 상기 현재 파티션은 포괄 모드에서 뷰-합성 예측(VSP.a)으로서 코딩되고, 상기 움직임 벡터 컴포넌트는 비트스트림에서 시그널링되지 않는
    장치.
  17. 삭제
  18. 삭제
  19. 제 16 항에 있어서,
    상기 표시는 상기 다른 뷰의 픽처로부터 디스패리티 보상을 이용한 예측이 사용되는지 여부를 표시하는 신택스 요소인
    장치.
  20. 비디오 데이터를 디코딩하기 위한 컴퓨터 프로그램이 저장된 컴퓨터 판독가능한 저장 매체로서,
    상기 컴퓨터 프로그램은 컴퓨터 프로그램 코드를 포함하고,
    상기 컴퓨터 프로그램 코드는 프로세서 상에서 실행될 때, 장치로 하여금
    상기 비디오 데이터를 디코딩하는데 사용되는 참조 픽처를 관리하기 위한 참조 픽처 리스트를 형성하게 하고,
    인코딩된 비디오 데이터로부터 상기 참조 픽처 리스트의 인덱스를 디코딩하게 하며 - 상기 인덱스는 블록을 디코딩하는데 사용되는 참조 픽처를 나타냄 - ,
    다른 뷰의 적어도 하나의 픽처를 상기 디코딩 시 참조 픽처로서 사용 - 상기 다른 뷰의 상기 픽처는 상기 참조 픽처 리스트의 상기 인덱스에 대응함 - 하게 하고,
    상기 다른 뷰의 픽처에 대응하는 상기 참조 픽처 리스트의 상기 인덱스에 따라, 상기 블록을 디코딩하는데 사용되는 예측의 유형을 나타내는 표시를 인코딩된 비디오 데이터로부터 취득하게 하도록 구성되고,
    상기 표시에 의해 표시되는 상기 예측의 유형은,
    인터-뷰 예측(inter-view prediction)과,
    디스패리티 보상(disparity compensation)에 기초하는 예측 - 상기 디스패리티 보상(disparity compensation)에 기초하는 상기 예측은 뷰-합성 예측(view synthesis prediction)을 포함함 - 을 포함하고,
    만일,
    a) 상기 표시의 적어도 일부(Vsp_flag)가 제1값으로 설정되어 있는 경우, 상기 블록의 현재 파티션은 포괄 모드에서 인터-뷰 예측(IVP.a)으로서 코딩되고, 상기 현재 파티션에 대응하는 하나 이상의 움직임 벡터 컴포넌트는 비트스트림에 시그널링되고,
    b) 상기 표시의 상기 적어도 일부(Vsp_flag)가 제2값으로 설정되어 있는 경우, 상기 현재 파티션은 포괄 모드에서 뷰-합성 예측(VSP.a)으로서 코딩되고, 상기 움직임 벡터 컴포넌트는 비트스트림에서 시그널링되지 않는
    컴퓨터 판독가능한 저장 매체.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
KR1020157032246A 2013-04-12 2014-04-08 3d 비디오 코딩을 위한 조화된 인터-뷰 및 뷰 합성 예측 KR101726534B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361811240P 2013-04-12 2013-04-12
US61/811,240 2013-04-12
PCT/FI2014/050249 WO2014167179A1 (en) 2013-04-12 2014-04-08 Harmonized inter-view and view synthesis prediction for 3d video coding

Publications (2)

Publication Number Publication Date
KR20150139970A KR20150139970A (ko) 2015-12-14
KR101726534B1 true KR101726534B1 (ko) 2017-04-26

Family

ID=51688995

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157032246A KR101726534B1 (ko) 2013-04-12 2014-04-08 3d 비디오 코딩을 위한 조화된 인터-뷰 및 뷰 합성 예측

Country Status (6)

Country Link
US (1) US9930363B2 (ko)
EP (1) EP2984834B1 (ko)
KR (1) KR101726534B1 (ko)
CN (1) CN105308965B (ko)
CA (1) CA2909309C (ko)
WO (1) WO2014167179A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020091404A1 (ko) * 2018-10-30 2020-05-07 엘지전자 주식회사 비디오 송신 방법, 비디오 전송 장치, 비디오 수신 방법 및 비디오 수신 장치

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9118929B2 (en) * 2010-04-14 2015-08-25 Mediatek Inc. Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
CN104685881B (zh) * 2012-09-28 2018-05-15 夏普株式会社 图像解码装置、图像编码装置以及图像解码方法
US9237345B2 (en) * 2013-02-26 2016-01-12 Qualcomm Incorporated Neighbor block-based disparity vector derivation in 3D-AVC
US9635357B2 (en) 2013-02-26 2017-04-25 Qualcomm Incorporated Neighboring block disparity vector derivation in 3D video coding
US9596448B2 (en) 2013-03-18 2017-03-14 Qualcomm Incorporated Simplifications on disparity vector derivation and motion vector prediction in 3D video coding
US10123039B2 (en) * 2013-04-12 2018-11-06 Telefonaktiebolaget Lm Ericsson (Publ) Constructing inter-layer reference picture lists
US9288507B2 (en) * 2013-06-21 2016-03-15 Qualcomm Incorporated More accurate advanced residual prediction (ARP) for texture coding
US10075735B2 (en) * 2013-07-14 2018-09-11 Sharp Kabushiki Kaisha Video parameter set signaling
US9860529B2 (en) * 2013-07-16 2018-01-02 Qualcomm Incorporated Processing illumination compensation for video coding
US9338464B2 (en) * 2014-02-04 2016-05-10 Cable Television Laboratories, Inc. Adaptive field and frame identification
KR102329126B1 (ko) * 2014-03-14 2021-11-19 삼성전자주식회사 인터 레이어 비디오의 복호화 및 부호화를 위한 머지 후보 리스트 구성 방법 및 장치
US10110916B2 (en) * 2014-04-22 2018-10-23 Sony Corporation Encoding device and encoding method
WO2016056754A1 (ko) * 2014-10-08 2016-04-14 엘지전자 주식회사 3d 비디오 부호화/복호화 방법 및 장치
CN106471807B (zh) * 2014-10-09 2019-08-23 寰发股份有限公司 包括视角合成预测的三维或多视角视频的编码方法
EP3247114A4 (en) * 2015-01-21 2018-01-17 Samsung Electronics Co., Ltd. Method and apparatus for decoding inter-layer video, and method and apparatus for encoding inter-layer video
KR102533555B1 (ko) 2015-02-17 2023-05-18 네버마인드 캐피탈 엘엘씨 감축된 해상도 이미지들을 생성 및 이용하고 및/또는 재생 또는 컨텐트 분배 디바이스에 이러한 이미지들을 통신하기 위한 방법들 및 장치
US10362290B2 (en) 2015-02-17 2019-07-23 Nextvr Inc. Methods and apparatus for processing content based on viewing information and/or communicating content
WO2017034089A1 (ko) * 2015-08-23 2017-03-02 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10390071B2 (en) * 2016-04-16 2019-08-20 Ittiam Systems (P) Ltd. Content delivery edge storage optimized media delivery to adaptive bitrate (ABR) streaming clients
US10249019B2 (en) * 2016-05-06 2019-04-02 Mediatek Inc. Method and apparatus for mapping omnidirectional image to a layout output format
EP3456017B1 (en) * 2016-05-10 2022-06-01 Nokia Technologies Oy Antenna co-location and receiver assumptions
US10366536B2 (en) * 2016-06-28 2019-07-30 Microsoft Technology Licensing, Llc Infinite far-field depth perception for near-field objects in virtual environments
KR102383105B1 (ko) 2016-07-05 2022-04-06 주식회사 케이티 비디오 신호 처리 방법 및 장치
JP6683307B2 (ja) * 2016-10-06 2020-04-15 カイ インコーポレイテッド 多数のカメラを用いた最適の球形映像獲得方法
CN116527886A (zh) * 2016-12-05 2023-08-01 Lg电子株式会社 解码设备、编码设备以及数据发送设备
US10554957B2 (en) * 2017-06-04 2020-02-04 Google Llc Learning-based matching for active stereo systems
EP3457695A1 (en) * 2017-09-18 2019-03-20 Thomson Licensing Method and apparatus for motion vector predictor adaptation for omnidirectional video
JP7237007B2 (ja) * 2017-10-19 2023-03-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2019185769A1 (en) * 2018-03-29 2019-10-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Dependent quantization
EP3780608A4 (en) 2018-04-02 2021-12-01 SZ DJI Technology Co., Ltd. IMAGE PROCESSING PROCESS AND IMAGE PROCESSING DEVICE
DE102019109757A1 (de) * 2018-04-12 2019-10-17 Nvidia Corporation Hinzufügen von mehr realismus zu einem von einem computergenerierten bild durch glätten von gezackten kanten
US20190318455A1 (en) * 2018-04-12 2019-10-17 Nvidia Corporation Adding greater realism to a computer-generated image by smoothing jagged edges within the image in an efficient manner
FR3080968A1 (fr) * 2018-05-03 2019-11-08 Orange Procede et dispositif de decodage d'une video multi-vue, et procede et dispositif de traitement d'images.
CN108900847B (zh) * 2018-06-11 2020-06-30 阿依瓦(北京)技术有限公司 一种基于块匹配的大范围预测方法
US10798394B2 (en) * 2018-06-27 2020-10-06 Avago Technologies International Sales Pte. Limited Low complexity affine merge mode for versatile video coding
CN112771873A (zh) * 2018-09-20 2021-05-07 夏普株式会社 用于发信号通知视频编码中的参数的系统和方法
WO2020071738A1 (en) * 2018-10-02 2020-04-09 Lg Electronics Inc. Method for transmitting video, apparatus for transmitting video, method for receiving video, and apparatus for receiving video
US11064180B2 (en) 2018-10-15 2021-07-13 City University Of Hong Kong Convolutional neural network based synthesized view quality enhancement for video coding
KR20240049623A (ko) * 2018-12-30 2024-04-16 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 삼각형 예측을 위한 비디오 코딩 방법 및 장치
US11393113B2 (en) 2019-02-28 2022-07-19 Dolby Laboratories Licensing Corporation Hole filling for depth image based rendering
US11670039B2 (en) * 2019-03-04 2023-06-06 Dolby Laboratories Licensing Corporation Temporal hole filling for depth image based video rendering
CN110139105B (zh) * 2019-04-10 2021-08-13 首都师范大学 多立体图像加密方法、解密方法、加密装置及解密装置
CN114450951A (zh) * 2019-06-25 2022-05-06 交互数字Vc控股法国有限公司 视频编码和解码中的运动向量预测
WO2021125703A1 (ko) * 2019-12-20 2021-06-24 엘지전자 주식회사 영상/비디오 코딩 방법 및 장치
CN113141494A (zh) * 2020-01-20 2021-07-20 北京芯海视界三维科技有限公司 3d图像处理方法、装置和3d显示终端
FR3107383A1 (fr) * 2020-02-14 2021-08-20 Orange Procédé et dispositif de traitement de données de vidéo multi-vues
CN111432092B (zh) * 2020-03-30 2022-08-23 Tcl华星光电技术有限公司 视频传输方法及其装置
CN113613004A (zh) * 2021-09-14 2021-11-05 百果园技术(新加坡)有限公司 图像编码方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013030458A1 (en) 2011-08-31 2013-03-07 Nokia Corporation Multiview video coding and decoding

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7817865B2 (en) * 2006-01-12 2010-10-19 Lg Electronics Inc. Processing multiview video
WO2007114612A1 (en) * 2006-03-30 2007-10-11 Lg Electronics Inc. A method and apparatus for decoding/encoding a video signal
CN101455082B (zh) * 2006-03-30 2013-02-13 Lg电子株式会社 用于解码/编码视频信号的方法和装置
US20100091845A1 (en) * 2006-03-30 2010-04-15 Byeong Moon Jeon Method and apparatus for decoding/encoding a video signal
WO2008023968A1 (en) * 2006-08-25 2008-02-28 Lg Electronics Inc A method and apparatus for decoding/encoding a video signal
KR100801968B1 (ko) * 2007-02-06 2008-02-12 광주과학기술원 변위를 측정하는 방법, 중간화면 합성방법과 이를 이용한다시점 비디오 인코딩 방법, 디코딩 방법, 및 인코더와디코더
US8494046B2 (en) 2007-03-23 2013-07-23 Lg Electronics Inc. Method and an apparatus for decoding/encoding a video signal by performing illumination compensation
US9485517B2 (en) 2011-04-20 2016-11-01 Qualcomm Incorporated Motion vector prediction with motion vectors from multiple views in multi-view video coding
MX2013013029A (es) * 2011-06-30 2013-12-02 Panasonic Corp Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, dispositivo de decodificacion de imagenes, dispositivo de codificacion de imagenes y dispositivo de codificacion/decodifi cacion de imagenes.
WO2013028116A1 (en) * 2011-08-19 2013-02-28 Telefonaktiebolaget L M Ericsson (Publ) Motion vector processing
KR101626683B1 (ko) 2011-08-30 2016-06-01 인텔 코포레이션 멀티뷰 비디오 코딩 방안
KR20170005464A (ko) 2011-08-30 2017-01-13 노키아 테크놀로지스 오와이 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
CN103907346B (zh) * 2011-10-11 2017-05-24 联发科技股份有限公司 运动矢量预测子及视差矢量导出方法及其装置
WO2013111596A1 (ja) * 2012-01-26 2013-08-01 パナソニック株式会社 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置、および画像符号化復号装置
US9503702B2 (en) * 2012-04-13 2016-11-22 Qualcomm Incorporated View synthesis mode for three-dimensional video coding
WO2013159330A1 (en) 2012-04-27 2013-10-31 Nokia Corporation An apparatus, a method and a computer program for video coding and decoding
US9516332B2 (en) * 2012-12-21 2016-12-06 Qualcomm Incorporated Disparity vector derivation in three-dimensional video coding
US10136119B2 (en) * 2013-01-10 2018-11-20 Qualcomm Incoporated View synthesis in 3D video

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013030458A1 (en) 2011-08-31 2013-03-07 Nokia Corporation Multiview video coding and decoding

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020091404A1 (ko) * 2018-10-30 2020-05-07 엘지전자 주식회사 비디오 송신 방법, 비디오 전송 장치, 비디오 수신 방법 및 비디오 수신 장치
US11394946B2 (en) 2018-10-30 2022-07-19 Lg Electronics Inc. Video transmitting method, video transmitting apparatus, video receiving method, and video receiving apparatus

Also Published As

Publication number Publication date
CA2909309A1 (en) 2014-10-16
CA2909309C (en) 2019-05-21
CN105308965B (zh) 2018-12-04
EP2984834B1 (en) 2020-11-25
CN105308965A (zh) 2016-02-03
WO2014167179A1 (en) 2014-10-16
EP2984834A4 (en) 2016-10-12
US20140314147A1 (en) 2014-10-23
US9930363B2 (en) 2018-03-27
KR20150139970A (ko) 2015-12-14
EP2984834A1 (en) 2016-02-17

Similar Documents

Publication Publication Date Title
KR101726534B1 (ko) 3d 비디오 코딩을 위한 조화된 인터-뷰 및 뷰 합성 예측
CN110383839B (zh) 仿射运动信息导出
KR101662963B1 (ko) 3d 비디오 코딩을 위한 장치, 방법 및 컴퓨터 프로그램
KR101682999B1 (ko) 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
TWI538482B (zh) 於可擴展及多視角視訊寫碼之進階殘差預測
KR101669524B1 (ko) 비디오 코딩을 위한 방법 및 장치
JP6359549B2 (ja) 3次元ビデオコーディングにおける適応ルミナンス補償
JP6096217B2 (ja) 3dビデオコーディングにおけるビュー合成予測サポートのシグナリング
JP6312705B2 (ja) 3dビデオにおけるビュー合成
KR20140120900A (ko) 심도를 갖는 3d 비디오 코딩에서의 멀티-가설 디스패리티 벡터 구성
JP2015515228A (ja) マルチビューコード化及び3dコード化におけるビュー依存性
WO2013159330A1 (en) An apparatus, a method and a computer program for video coding and decoding
CN112118452B (zh) 视频解码的方法和装置、计算机设备

Legal Events

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