KR101682999B1 - 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램 - Google Patents

비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR101682999B1
KR101682999B1 KR1020147031996A KR20147031996A KR101682999B1 KR 101682999 B1 KR101682999 B1 KR 101682999B1 KR 1020147031996 A KR1020147031996 A KR 1020147031996A KR 20147031996 A KR20147031996 A KR 20147031996A KR 101682999 B1 KR101682999 B1 KR 101682999B1
Authority
KR
South Korea
Prior art keywords
motion vector
picture
current block
block
inter
Prior art date
Application number
KR1020147031996A
Other languages
English (en)
Other versions
KR20150010736A (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 KR20150010736A publication Critical patent/KR20150010736A/ko
Application granted granted Critical
Publication of KR101682999B1 publication Critical patent/KR101682999B1/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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
    • 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/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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

인코딩 및 디코딩하기 위한 일련의 유효한 움직임 벡터 값이 사용된 참조 픽처에 종속할 수 있는 방법, 장치 및 컴퓨터 프로그램 제품이 개시된다. 프레임의 현재 블록이 인코딩을 위해 선택되고, 현재 블록에 대한 참조 블록이 선택된다. 선택된 참조 블록에 기초하여, 참조 타입이 결정된다. 참조 타입 및 참조 블록에 기초하여, 현재 블록에 대한 움직임 벡터가 결정된다. 결정된 움직임 벡터에 기초하여 움직임 벡터 정보가 인코딩되고 디코딩된다.

Description

비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램{AN APPARATUS, A METHOD AND A COMPUTER PROGRAM FOR VIDEO CODING AND DECODING}
본 발명은 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램에 관한 것이다.
본 단원은 청구범위에서 인용되는 본 발명의 배경 또는 맥락을 제공하려는 것이다. 본 단원에 있는 설명은 실행될 수도 있겠으나, 반드시 이전에 상상되거나 실행되었던 것이 아닌 개념을 포함할 수 있다. 그러므로, 본 명세서에서 달리 지적하지 않는 한, 본 단원에서 기술된 설명은 본 출원에 있는 설명과 청구범위에 대한 종래 기술이 아니며 또한 본 단원에 포함된다 하여 종래 기술인 것으로 인정되지 않는다.
비디오 코딩 시스템은 입력 비디오를 저장/전송에 맞게 압축된 표현으로 변환하는 인코더 및 압축된 비디오 표현을 다시 시청가능한 타입로 압축해제하는 디코더를 포함할 수 있다. 인코더는 비디오를 좀더 밀집한 타입로 표현하기 위하여, 예를 들면, 그렇지 않았다면 필요하였을지로 모를 비트레이트보다 더 낮은 비트 레이트로 비디오 정보를 저장/전송하기 위하여 원 비디오 시퀀스에서 일부 정보를 없앴을 수 있다.
스케일러블 비디오 코딩은 하나의 비트스트림이 콘텐츠의 여러 가지 표현을 상이한 비트 레이트, 해상도, 프레임 레이트 및/또는 스케일러빌리티의 다른 타입로 갖고 있을 수 있는 코딩 구조를 말한다. 스케일러블 비트스트림은 이용할 수 있는 최하위 품질 비디오를 제공하는 베이스 계층 및 하위 계층과 함께 수신되어 디코딩될 때 비디오 품질을 강화시키는 하나 이상의 강화 계층(enhancement layers)으로 이루어질 수 있다. 강화 계층의 코딩 효율 개선하기 위하여, 그 계층의 부호화된 표현은 하위 계층에 달려 있을 수 있다. 그의 종속한 모든 계층과 함께 각각의 계층은 어떤 공간 해상도, 시간 해상도, 품질 레벨, 및/또는 다른 타입의 스케일러빌리티의 동작 점에서 비디오 신호의 한가지 표현이다.
3차원(3D) 비디오 콘텐츠를 제공하기 위한 다양한 기술이 현재 연구되고 개발되고 있다. 특히, 시청자가 특정한 뷰포인트(viewpoint)에서 단지 한 쌍의 스테레오 비디오만을 볼 수 있고 또한 다른 뷰포인트에서는 다른 한 쌍의 스테레오 비디오를 볼 수 있는 다시점 애플리케이션(multiview applications)에 대해 열성적인 연구가 집중되고 있다. 그러한 다시점 애플리케이션에 대한 가장 실행 가능한 접근법들 중 하나는 단지 제한된 개수의 입력 뷰(input views), 예를 들면, 모노 또는 스테레오 비디오에 더하여 몇 가지 보충 데이터가 디코더 측으로 제공되고 그러면 필요한 모든 뷰들이 그 디코더에 의해 디스플레이 상에서 국부적으로 디스플레이(즉, 합성)되게 하는 그런 것으로 밝혀졌다.
3D 비디오 콘텐츠의 인코딩에 있어서, 어드밴스드 비디오 코딩(Advanced Video Coding) 표준 H.264/AVC 또는 H.264/AVC의 멀티뷰 비디오 코딩(Multiview Video Coding) MVC 확장과 같은 비디오 압축 시스템이 사용될 수 있다.
일부 실시예는 인코딩 및 디코딩하기 위한 한 일련의 유효한 움직임 벡터 값이 사용된 참조 픽처에 종속할 수 있다는 고려 사항을 이용한다. (예를 들면, 특정 타입의 참조 픽처에 대한) 몇몇의 경우, 일련의 유효한 움직임 벡터 컴포넌트 값은 비어(empty)있을 수 있는데, 그 경우 움직임 벡터 컴포넌트와 관련된 신택스 요소(들)의 인코딩이 생략될 수 있으며 움직임 벡터 성분의 값은 디코딩에서 유도될 수 있다. 몇몇 경우에서, 일련의 유효한 움직임 벡터 컴포넌트 값은 인터 예측을 위한 일련의 정상적인 움직임 벡터 값보다 작을 수 있는데, 이 경우 움직임 벡터 차에 대한 엔트로피 코딩은 예를 들면, 다른 인터 예측 움직임 벡터에 대한 컨텍스트보다 이러한 움직임 벡터 차에 대한 상이한 컨텍스트-적응 이진 산술 코딩(context-adaptive binary arithmetic coding (CABAC)) 컨텍스트를 이용함으로써 변경될 수 있다. 몇몇의 경우, 움직임 벡터 값들의 우도(likelihood)는 이웃 움직임 벡터에 (예를 들면 공간적으로 또는 시간적으로) 종속한다기 보다는 기준 화상에 더 크게 종속할 수 있으며, 그래서 엔트로피 코딩은 다른 움직임 벡터에 대하여 사용된 것과 상이할 수 있는데, 예를 들면, 상이한 초기 CABAC 컨텍스트가 사용될 수 있거나 또는 상이한 컨텍스트가, 예를 들면 참조 픽처의 타입에 기초하여, 유지되거나 또는 적응될 수 있다.
일부 실시예는 움직임 벡터 정보가 참조 픽처 인덱스(reference picture index)의 표시와 결합될 때를 표시하는 메커니즘을 제공한다. 이러한 사례에서, 디코더는 예측 유닛과 연관된 참조 인덱스에 관한 표시를 먼저 디코딩할 수 있다. 만일 그 참조 인텍스가 표시된 공간 움직임 벡터 필드를 가진 픽처를 가리키면, 움직임 벡터 예측 및 차분 움직임 벡터 디코딩 프로세스는 전체적으로 또는 부분적으로 바이패스되며/바이패스되거나 컨텍스트-기반 엔트로피 프로세스는 다른 움직임 벡터의 프로세스와 달라질 수 있다. 뿐만 아니라, 만일 차분 움직임 벡터 코딩이 전체적으로 또는 부분적으로 바이패스되면, 움직임 벡터는 예측 유닛의 특별한 프로세스를 이용하여 유도될 수 있다.
일부 실시예에서, 뷰 합성 기반 예측(view synthesis based prediction), 뷰-간 예측(inter-view prediction), 및 계층-간 예측(inter-layer prediction)을 위해 이용된 움직임 벡터 컴포넌트들은 일련의 신택스 요소 및 일련의 디코딩 동작을 정의하는 이들의 적용가능성 범위에서 제한될 수 있다.
본 발명의 제 1 양태에 따르면, 방법이 제공되며, 이 방법은,
인코딩하기 위한 프레임의 현재 블록을 선택하는 단계와,
현재 블록에 대한 참조 블록을 선택하는 단계와,
선택된 참조 블록에 기초하여 참조 타입을 결정하는 단계와,
참조 타입 및 참조 블록에 기초하여 현재 블록에 대한 움직임 벡터를 결정하는 단계와,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 단계를 포함한다.
본 발명의 제 2 양태에 따르면, 방법이 제공되며, 이 방법은,
인코딩하기 위한 프레임의 현재 블록을 선택하는 단계와,
현재 블록에 대한 참조 블록을 선택하는 단계와,
참조 블록이 속한 픽처를 식별하는 참조 픽처 인덱스를 결정하는 단계와,
참조 픽처 인덱스에 기초하여 현재 블록에 대한 움직임 벡터를 결정하는 단계와,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 단계를 포함한다.
본 발명의 제 3 양태에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되며, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 적어도 하나의 프로세서가 장치로 하여금,
인코딩하기 위한 프레임의 현재 블록을 선택하게 하고,
현재 블록에 대한 참조 블록을 선택하게 하고,
선택된 참조 블록에 기초하여 참조 타입을 결정하게 하고,
참조 타입 및 참조 블록에 기초하여 현재 블록에 대한 움직임 벡터를 결정하게 하고,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하게 하도록 구성된다.
본 발명의 제 4 양태에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되며, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 적어도 하나의 프로세서가 장치로 하여금,
인코딩하기 위한 프레임의 현재 블록을 선택하게 하고,
현재 블록에 대한 참조 블록을 선택하게 하고,
참조 블록이 속하는 픽처를 식별하는 참조 픽처 인덱스를 결정하게 하고,
참조 픽처 인덱스에 기초하여 현재 블록에 대한 움직임 벡터를 결정하게 하고,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하게 하도록 구성된다.
본 발명의 제 5 양태에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금,
인코딩하기 위한 프레임의 현재 블록을 선택하고,
현재 블록에 대한 참조 블록을 선택하고,
선택된 참조 블록에 기초하여 참조 타입을 결정하고,
참조 타입 및 참조 블록에 기초하여 현재 블록에 대한 움직임 벡터를 결정하고,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 동작을 적어도 수행하게 한다.
본 발명의 제 6 양태에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금,
인코딩하기 위한 프레임의 현재 블록을 선택하고,
현재 블록에 대한 참조 블록을 선택하고,
참조 블록이 속하는 픽처를 식별하는 참조 픽처 인덱스를 결정하고,
참조 픽처 인덱스에 기초하여 현재 블록에 대한 움직임 벡터를 결정하고,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 동작을 적어도 수행하게 한다.
본 발명의 제 7 양태에 따르면, 장치가 제공되며, 이 장치는,
인코딩하기 위한 프레임의 현재 블록을 선택하는 수단과,
현재 블록에 대한 참조 블록을 선택하는 수단과,
선택된 참조 블록에 기초하여 참조 타입을 결정하는 수단과,
참조 타입 및 참조 블록에 기초하여 현재 블록에 대한 움직임 벡터를 결정하는 수단과,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 수단을 포함한다.
본 발명의 제 8 양태에 따르면, 장치가 제공되며, 이 장치는,
인코딩하기 위한 프레임의 현재 블록을 선택하는 수단과,
현재 블록에 대한 참조 블록을 선택하는 수단과,
참조 블록이 속하는 픽처를 식별하는 참조 픽처 인덱스를 결정하는 수단과,
참조 픽처 인덱스에 기초하여 현재 블록에 대한 움직임 벡터를 결정하는 수단과,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 수단을 포함한다.
본 발명의 제 9 양태에 따르면, 방법이 제공되며, 이 방법은,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하는 단계와,
인코딩된 정보를 디코딩하는 단계와,
수신된 정보를 검사하여 디코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있는지 여부를 결정하는 단계와,
만일 그러하다면, 참조 타입을 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하는 단계와,
움직임 벡터 정보를 획득하는 단계를 포함한다.
본 발명의 제 10 양태에 따르면, 방법이 제공되며, 이 방법은,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하는 단계와,
인코딩된 정보를 디코딩하는 단계와,
수신된 정보를 검사하여 디코딩된 정보가 참조 블록이 속한 픽처를 식별하는 참조 픽처 인덱스의 표시를 갖고 있는지 여부를 결정하는 단계와,
만일 그러하다면, 참조 픽처 인덱스를 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하는 단계와,
움직임 벡터 정보를 획득하는 단계를 포함한다.
본 발명의 제 11 양태에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되며, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 적어도 하나의 프로세서가 장치로 하여금,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하게 하고,
인코딩된 정보를 디코딩하게 하고,
수신된 정보를 검사하여 디코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있는지 여부를 결정하게 하고,
만일 그러하다면, 참조 타입을 이용하여 현재 블록에 대한 움직임 벡터 정보를 획득하는 방식을 결정하게 하고,
움직임 벡터 정보를 획득하게 하도록 구성된다.
본 발명의 제 12 양태에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되며, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 적어도 하나의 프로세서가 장치로 하여금,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하게 하고,
인코딩된 정보를 디코딩하게 하고,
수신된 정보를 검사하여 디코딩된 정보가 참조 블록이 속한 픽처를 식별하는 참조 픽처 인덱스의 표시를 갖고 있는지 여부를 결정하게 하고,
만일 그러하다면, 참조 픽처 인덱스를 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하게 하고,
움직임 벡터 정보를 획득하게 하도록 구성된다.
본 발명의 제 13 양태에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하고,
인코딩된 정보를 디코딩하고,
수신된 정보를 검사하여 디코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있는지 여부를 결정하고,
그러하다면, 참조 타입을 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하고,
움직임 벡터 정보를 획득하는 동작을 적어도 수행하게 한다.
본 발명의 제 14 양태에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하고,
인코딩된 정보를 디코딩하고,
수신된 정보를 검사하여 디코딩된 정보가 참조 블록이 속한 픽처를 식별하는 참조 픽처 인덱스의 표시를 갖고 있는지 여부를 결정하고,
그러하다면, 참조 픽처 인덱스를 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하고,
움직임 벡터 정보를 획득하는 동작을 적어도 수행하게 한다.
본 발명의 제 15 양태에 따르면, 장치가 제공되며, 이 장치는,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하는 수단과,
인코딩된 정보를 디코딩하는 수단과,
수신된 정보를 검사하여 디코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있는지 여부를 결정하는 수단과,
인코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있으면, 참조 타입을 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하는 수단과,
움직임 벡터 정보를 획득하는 수단을 포함한다.
본 발명의 제 16 양태에 따르면, 장치가 제공되며, 이 장치는,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하는 수단과,
인코딩된 정보를 디코딩하는 수단과,
수신된 정보를 검사하여 디코딩된 정보가 참조 블록이 속하는 픽처를 식별하는 참조 픽처 인덱스의 표시를 갖고 있는지 여부를 결정하는 수단과,
인코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있으면, 참조 표시 인덱스를 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하는 수단과,
움직임 벡터 정보를 획득하는 수단을 포함한다.
본 발명의 제 17 양태에 따르면, 비디오 부호화기가 제공되며, 이 부호화기는,
인코딩하기 위한 픽처의 현재 블록을 선택하고,
현재 블록에 대한 참조 블록을 선택하고,
선택된 참조 블록에 기초하여 참조 타입을 결정하고,
참조 타입 및 참조 블록에 기초하여 현재 블록에 대한 움직임 벡터를 결정하고,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하기 위해 구성된다.
본 발명의 제 18 양태에 따르면, 비디오 부호화기가 제공되며, 이 부호화기는,
인코딩하기 위한 픽처의 현재 블록을 선택하고,
현재 블록에 대한 참조 블록을 선택하고,
참조 블록이 속하는 픽처를 식별하는 참조 픽처 인덱스를 결정하고,
참조 픽처 인덱스에 기초하여 현재 블록에 대한 움직임 벡터를 결정하고,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하기 위해 구성된다.
본 발명의 제 19 양태에 따르면, 비디오 디코더가 제공되며, 이 디코더는,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하고,
인코딩된 정보를 디코딩하고,
수신된 정보를 검사하여 디코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있는지 여부를 결정하고,
그러하다면, 참조 타입을 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하고,
움직임 벡터 정보를 획득하기 위해 구성된다.
본 발명의 제 20 양태에 따르면, 비디오 디코더가 제공되며, 이 디코더는,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하고,
인코딩된 정보를 디코딩하고,
수신된 정보를 검사하여 디코딩된 정보가 참조 블록이 속한 픽처를 식별하는 참조 픽처 인덱스의 표시를 갖고 있는지 여부를 결정하고,
그러하다면, 참조 픽처 인덱스를 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하고,
움직임 벡터 정보를 획득하기 위해 구성된다.
본 발명의 보다 나은 이해를 위하여, 이제 예로서 첨부 도면이 참조될 것이다.
도 1은 스테레오스코픽 카메라 구성의 간략화된 2D 모델을 도시한다.
도 2는 멀티뷰 카메라 구성의 간략화된 모델을 도시한다.
도 3은 멀티뷰 오토스테레오스코픽 디스플레이(multiview autostereoscopic display (ASD))의 간략화된 모델을 도시한다.
도 4는 DIBR-기반 3DV 시스템의 간략화된 모델을 도시한다.
도 5 및 도 6은 비행시간-기반 깊이 추정 시스템(time-of-flight-based depth estimation system)의 일예를 도시한다.
도 7(a)는 인트라 예측을 위한 후보로서 사용되는 현재 부호화된 블록의 공간 이웃을 도시한다.
도 7(b)는 인터 예측을 위한 후보로서 사용되는 현재 부호화된 블록의 시간 이웃을 도시한다.
도 8은 뷰 합성 가능(view synthesis enabled) 멀티-뷰 비디오 인코더의 일예를 간략화된 블록도로서 도시한다.
도 9는 뷰 합성 가능 멀티-뷰 비디오 디코더의 일예를 간략화된 블록도로서 도시한다.
도 10은 본 발명의 일부 실시예를 이용하기에 적합한 전자 장치를 개략적으로 도시한다.
도 11은 본 발명의 일부 실시예를 이용하기에 적합한 사용자 장비를 개략적으로 도시한다.
도 12는 무선 및 유선 네트워크 접속을 이용하여 연결된 본 발명의 실시예를 이용하는 전자 장치를 개략적으로 추가 도시한다.
도 13은 예시적인 실시예에 따른 인코딩 방법을 흐름도로서 도시한다.
도 14는 예시적인 실시예에 따른 디코딩 방법을 흐름도로서 도시한다.
본 발명 및 본 발명과 관련한 실시예의 여러 양태를 이해하기 위하여, 아래에서는 비디오 코딩의 몇 가지 밀접하게 관련된 양태를 간략히 설명한다.
이 단원에서 몇 가지 주요 정의, 비트스트림 및 코딩 구조, 및 H.264/AVC의 개념이 비디오 인코더, 디코더, 인코딩 방법, 디코딩 방법, 및 비트스트림 구조의 예로서 설명되며, 이 단원에서 일부 실시예가 구현될 수 있다. 본 발명의 양태는 H.264/AVC으로 제한되지 않지만, 오히려 본 발명이 부분적으로 또는 전체적으로 실현될 수 있는 것 이외에 한가지 가능한 근거에 대하여 설명이 제공된다.
H.264/AVC 표준은 국제 전기통신 연합(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 및 ISOIEC 국제 표준 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 samples) 및 대응하는 크로마 샘플(chroma samples)의 매트릭스를 포함한다. 소스 신호가 인터레이스될 때, 필드는 프레임의 일련의 교번 샘플 로우(alternate sample rows)이며 인코더 입력으로서 사용될 수 있다. 매크로블록(MB)은 루마 샘플의 16x16 블록 및 크로마 샘플의 대응 블록이다. 블록은 경계 샘플들을 가지며, 경계 샘플들은 샘플 중 최상위 및 최하위 로우 그리고 샘플 중 최좌측 및 최우측 컬럼에 있는 샘플들로 이루어진다. 부호화 또는 디코딩되는 다른 블록에 인접한 경계 샘플들은 예를 들면 인트라 예측에서 사용될 수 있다. 크로마 픽처는 루마 픽처와 비교할 때 서브샘플될 수 있다. 예를 들면, 4:2:0 샘플링 패턴에서, 크로마 픽처의 공간 해상도는 두 좌표 축을 따라서 놓인 루마 픽처의 공간 해상도의 절반이며, 그 결과 매크로블록은 각 크로마 컴포넌트 당 크로마 샘플들의 하나의 8x8 블록을 포함한다. 픽처는 하나 이상의 슬라이스 그룹으로 분할되고, 슬라이스 그룹은 하나 이상의 슬라이스를 포함하고 있다. 슬라이스는 특정한 슬라이스 그룹 내에서 래스터 스캔 순서로 연속하는 정수개의 매크로블록으로 이루어진다.
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) 특징이라고 지칭된다. 그렇지 않으면, 슬라이스는 비트스트림에서 래스터 스캔 순서대로 되어 있어야 한다.
NAL 유닛은 헤더와 패이로드로 구성된다. NAL 유닛 헤더는 NAL 유닛의 타입을 표시하며 또한 NAL 유닛에 포함된 부호화된 슬라이스가 참조 픽처 또는 비-참조 픽처(non-reference picture)의 일 부분인지의 여부를 표시한다. SVC 및 MVC NAL 유닛의 헤더는 스케일러빌리티 및 다시점 계층구조(multiview hierarchy)에 관련된 각종 표시를 부가적으로 포함할 수 있다.
H.264/AVC의 NAL 유닛은 비디오 코딩 계층(Video Coding Layer (VCL)) NAL 유닛 및 논(non)-VCL NAL 유닛으로 분류될 수 있다. VCL NAL 유닛은 부호화된 슬라이스 NAL 유닛, 부호화된 슬라이스 데이터 파티션 NAL 유닛 또는 VCL 프리픽스 NAL 유닛이다. 부호화된 슬라이스 NAL 유닛은 하나 이상의 부호화된 매크로블록들을 나타내는 신택스 요소를 포함하며, 각각의 매크로블록은 압축되지 않은 픽처 내 샘플들의 블록에 대응한다. 부호화된 슬라이스 NAL 유닛은 네 가지 타입, 즉, 순간 디코딩 리플레시(Instantaneous Decoding Refresh (IDR)) 픽처에서의 부호화된 슬라이스, 논(non)-IDR 픽처에서의 부호화된 슬라이스, (알파 평면과 같은) 예비 부호화된 픽처의 부호화된 슬라이스, 그리고 (베이스 계층에서 존재하지 않는 SVC 슬라이스 또는 베이스 뷰에서 존재하지 않는 MVC 슬라이스의 경우) 부호화된 슬라이스 확장이 있다. 세 개의 부호화된 슬라이스 데이터 파티션 NAL 유닛의 셋은 동일한 신택스 요소를 부호화된 슬라이스로서 갖고 있다. 부호화된 슬라이스 데이터 파티션 A는 매크로블록 헤더 및 슬라이스의 움직임 벡터를 포함하며, 반면 부호화된 슬라이스 데이터 파티션 B 및 C는 각기 인트라 매크로블록 및 인터 매크로블록에 대해 부호화된 잔차 데이터(residual data)를 포함한다. 슬라이스 데이터 파티션을 지원하는 것은 H.264/AVC의 일부 프로파일에서만 포함된다는 것을 주목하자. VCL 프리픽스 NAL 유닛은 SVC 및 MVC 비트스트림에서 베이스 계층의 부호화된 슬라이스의 앞에 나오며 연관된 부호화된 슬라이스의 스케일러빌리티 계층구조의 표시를 갖고 있다.
H.264/AVC의 논-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 실시간 전송 프로토콜(Real-time Transport Protocol (RTP)) 세션에 대한 세션 디스크립션에서 파라미터로서 포함될 수 있다. 파라미터 세트가 대역 내(in-band) 전송되는 경우, 파라미터 세트는 오류 강인성(error robustness)을 개선하기 위해 반복전송될 수 있다.
H.264/AVC의 SEI NAL 유닛은 하나 이상의 SEI 메시지를 포함하는데, 이 메시지는 출력 픽처의 디코딩에 필요하지 않고, 픽처 출력 타이밍, 렌더링, 오류 검출, 오류 은닉, 및 자원 예약과 같은 관련된 프로세스에서 보조된다. H.264/AVC에는 여러 SEI 메시지가 명시되어 있으며, 사용자 데이터 SEI 메시지는 조직 및 회사가 자체적인 사용을 위해 SEI 메시지를 명시할 수 있게 한다. H.264/AVC은 명시된 SEI 메시지의 신택스 및 시맨틱을 포함하지만, 수신 측에서 그 메시지를 다루기 위한 어느 프로세스도 정의되어 있지 않다. 따라서, 인코더는 SEI 메시지를 생성할 때 H.264/AVC 표준을 따르는 것이 필요하며, H.264/AVC 표준에 순응하는 디코더는 출력 순서 순응성에 맞추어 SEI 메시지를 처리하는 것이 필요하지 않다. SEI 메시지의 신택스 및 시맨틱을 H.264/AVC에 포함시키는 이유 중 하나는 다양한 시스템 사양들이 보충 정보를 동일하게 해석할 수 있게 하고 그래서 상호 정보교환(interoperate)할 수 있게 해주기 위함이다. 이것은 시스템 사양이 인코딩 측에서 및 디코딩 측에서 모두 특정 SEI 메시지의 사용을 필요로 할 수 있고, 부가적으로는 특정 SEI 메시지를 수신 측에서 다루기 위한 프로세스가 명시될 수 있도록 하기 위함이다.
H.264/AVC에서 부호화된 픽처는 픽처의 디코딩에 필요한 VCL NAL 유닛으로 구성된다. 부호화된 픽처는 일차 부호화된 픽처(primary coded picture) 또는 리던던트 부호화된 픽처(redundant coded picture)일 수 있다. 일차 부호화된 픽처는 유효 비트스트림의 디코딩 프로세스에서 사용되는 반면, 리던던트 부호화된 픽처는 일차 부호화된 픽처가 성공적으로 디코딩될 수 없을 때 디코딩만이라도 되어야 하는 리던던트 표현이다. 초안 HEVC에서, 아무런 리던던트 부호화된 픽처도 명시되어 있지 않다.
H.264/AVC에서, 액세스 유닛은 일차 부호화된 픽처 및 이와 연관된 NAL 유닛을 포함한다. 액세스 유닛 내에서 NAL 유닛의 출현 순서는 다음과 같이 제한된다. 선택사양의 액세스 유닛 구분자 NAL 유닛은 액세스 유닛의 시작을 표시할 수 있다. 이것 다음에는 0개 이상의 SEI NAL 유닛이 이어진다. 일차 부호화된 픽처의 부호화된 슬라이스 또는 슬라이스 데이터 파티션들은 다음에 나오고, 그 다음에는 0개 이상의 리던던트 부호화된 픽처의 부호화된 슬라이스들이 나온다.
앞에서 주목한 바와 같이, 스케일러블 비디오 코딩에서, 비디오 신호는 베이스 계층과 하나 이상의 구성된 강화 계층으로 인코딩될 수 있다. 강화 계층은 예를 들면 시간 해상도(즉, 프레임 레이트), 공간 해상도, 또는 간략히 또 다른 계층 또는 그의 일부에 의해 표현된 비디오 콘텐츠의 품질을 강화시킬 수 있다. 각각의 계층과 함께 그의 모든 종속 계층은 예를 들면 소정의 공간 해상도, 시간 해상도 및 품질 레벨에서 비디오 신호의 한가지 표현이다. 본 명세서에서, 발명자들은 스케일러블 계층과 함께 그의 모든 종속 계층들을 "스케일러블 계층 표현(scalable layer representation)"이라고 지칭한다. 스케일러블 계층 표현에 대응하는 스케일러블 비트스트림의 부분이 추출되고 디코딩되어 원래 신호의 표현을 특정 충실도로 생성할 수 있다.
몇몇의 경우, 강화 계층의 데이터는, 특정 위치 다음에, 또는 심지어 임의의 위치에서도 절단될 수 있는데, 각각의 절단 위치에는 더욱 강화된 시각 품질을 나타내는 부가 데이터가 포함될 수 있다. 그러한 스케일러빌리티는 화인-그레인드 (크래뉴러리티) 스케일러빌리티 (fine-grained (granularity) scalability (FGS))라고 지칭된다. FGS는 SVC 표준의 일부 초안 버전에 포함되었으나, 결국 최종 SVC 표준에서 제외되었다. FGS는 나중에 SVC 표준의 몇몇 초안 버전의 맥락에서 논의된다. 절단될 수 없는 그러한 강화 계층에 의해 제공된 스케일러빌리티는 코스-그레인드(그래뉴러리티) 스케일러빌리티(coarse-grained (granularity) scalability (CGS))라고 지칭된다. 이것은 총체적으로 전통적인 품질 (SNR) 스케일러빌리티 및 공간 스케일러빌리티를 포함한다. SVC 표준은 소위 미디엄-그레인드 스케일러빌리티(medium-grained scalability (MGS))를 지원하는데, 여기서 품질 강화 픽처는 0보다 큰 quality_id 신택스 요소를 가짐으로써, SNR 스케일러블 계층 픽처와 유사하게 부호화되지만 FGS 계층 픽처와 유사하게 하이-레벨 신택스 요소에 의해 표시된다.
SVC는 계층-간 예측 메커니즘(inter-layer prediction mechanism)을 사용하는데, 이 메커니즘에서 소정 정보는 현재 재구성된 계층 또는 다음 번 하위 계층과 다른 계층으로부터 예측될 수 있다. 계층-간 예측될 수 있는 정보는 인트라 텍스처, 움직임 및 잔차 데이터를 포함한다. 계층-간 움직임 예측은 블록 코딩 모드, 헤더 정보 등의 예측을 포함하는데, 여기서 하위 계층으로부터의 움직임은 상위 계층의 예측을 위해 사용될 수 있다. 인트라 코딩의 경우, 하위 계층의 주변 매크로블록으로부터 또는 동일-위치에 있는(co-located) 매크로블록으로부터 예측이 가능하다. 이러한 예측 기술은 초기에 부호화된 액세스 유닛으로부터 생성된 정보를 이용하지 않으며, 그래서 인트라 예측 기술이라고 지칭된다. 뿐만 아니라, 하위 계층으로부터 발생한 잔차 데이터는 현재 계층을 예측할 때도 이용될 수 있다.
SVC는 싱글-루프 디코딩(single-loop decoding)이라고 알려진 개념을 명시하고 있다. 이것은 제한된 인트라 텍스처 예측 모드를 이용함으로써 가능할 수 있으며, 이에 따라서 계층-간 인트라 텍스처 예측은 베이스 계층의 대응 블록이 인트라-MB 내에 위치되어 있는 매크로블록(MB)에 적용될 수 있다. 동시에, 베이스 계층에 속한 이러한 인트라-MB은 (예를 들면, 1이라는 신택스 요소 "constrained_intra_pred_flag"를 갖는) 제한된 인트라-예측을 사용한다. 싱글-루프 디코딩에서, 디코더는 재생을 희망하는 스케일러블 계층("희망 계층" 또는 "타겟 계층"이라 함)에 대해서만 움직임 보상 및 전체적인 픽처 재구성을 수행하며, 그럼으로써 디코딩 복잡성을 크게 줄일 수 있다. 희망 계층과 다른 모든 계층은 전체적으로 디코딩될 필요가 없는데, 이것은 계층-간 예측(계층-간 인트라 텍스처 예측, 계층-간 움직임 예측 또는 계층-간 잔차 예측임)에 사용되지 않은 MB의 모든 데이터 또는 일부 데이터가 희망 계층의 재구성에 필요하지 않기 때문이다.
단일 디코딩 루프는 대부분의 픽처의 디코딩에 필요하며, 반면 제 2의 디코딩 루프는 베이스 표현(base representation)을 재구성하는데 선택적으로 적용되는데, 이 베이스 표현은 예측 참조로서 필요하지만 출력 또는 디스플레이를 위한 것이 아니며, 그리고 소위 키 픽처(key picture)에 대해서만 재구성된다(이 경우 "store_ref_base_pic_flag"는 1이 됨).
SVC 초안에서 스케일러빌리티 구조는 세 가지의 신택스 요소, 즉 "temporal_id", "dependency_id" 및 "quality_id"를 특징으로 한다. 신택스 요소 "temporal_id"는 시간 스케일러빌리티 계층구조 또는 간접적으로는 프레임 레이트를 표시하는데 사용된다. 더 작은 최대 "temporal_id" 값의 픽처를 포함하는 스케일러블 계층 표현은 더 큰 최대 "temporal_id"의 픽처를 포함하는 스케일러블 계층 표현보다 작은 프레임 레이트를 갖는다. 특정 시간 계층은 전형적으로 하위의 시간 계층(즉, "temporal_id" 값이 더 작은 시간 계층)에 종속하지만 임의의 상위 시간 계층에는 종속하지 않는다. 신택스 요소 "dependency_id"는 (앞에서도 언급한 바와 같이, SNR 및 공간 스케일러빌리티 둘 다를 포함하는) CGS 계층-간 코딩 디펜던시 계층구조(CGS inter-layer coding dependency hierarchy)를 표시하는데 사용된다. 임의의 시간 레벨 위치에서, "dependency_id" 값이 더 작은 픽처는 "dependency_id" 값이 더 큰 픽처를 부호화하기 위해 계층-간 예측에 사용될 수 있다. 신택스 요소 "quality_id"는 MGS 계층의 품질 레벨 계층구조를 표시하는데 사용된다. 임의의 시간 위치에서, 그리고 "dependency_id" 값이 동일한 경우, QL과 같은 "quality_id"를 갖는 픽처는 계층-간 예측을 위해 QL-1과 동일한 "quality_id"를 가진 픽처를 사용한다.
간략화를 위해, "dependency_id"의 값이 동일한 하나의 액세스 유닛의 모든 데이터 유닛(예를 들면, SVC 컨텍스트에서 네트워크 추상 계층(Network Abstraction Layer) 유닛 또는 NAL 유닛)은 디펜던시 유닛(dependency unit) 또는 디펜던시 표현(dependency representation)이라고 지칭된다. 하나의 디펜던시 유닛 내에서, "quality_id"의 값이 동일한 모든 데이터 유닛은 품질 유닛(quality unit) 또는 계층 표현이라고 지칭된다.
디코딩된 베이스 픽처(decoded base picture)라고도 알려진 베이스 표현(base representation)은 "quality_id"가 0을 갖는 그리고 "store_ref_base_pic_flag"가 1인 디펜던시 유닛의 비디오 코딩 계층(VCL) NAL 유닛을 디코딩함으로써 생성된 디코딩된 픽처이다. 디코딩된 픽처라고도 지칭되는 강화 표현(enhancement representation)은 최고의 디펜던시 표현을 위해 존재하는 모든 계층 표현이 디코딩되는 정규 디코딩 프로세스로 인해 생긴다.
각각의 H.264/AVC VCL NAL 유닛(NAL 유닛 타입은 1 내지 5의 범위에 있음)은 SVC 비트스트림에서 프리픽스 NAL 유닛을 앞에 둔다. 순응적 H.264/AVC 디코더 구현예는 프리픽스 NAL 유닛을 무시한다. 프리픽스 NAL 유닛은 "temporal_id" 값을 포함하며 따라서 베이스 계층을 디코딩하는 SVC 디코더는 프리픽스 NAL 유닛으로부터 시간 스케일러빌리티 계층구조를 학습할 수 있다. 뿐만 아니라, 프리픽스 NAL 유닛은 베이스 표현을 위한 참조 픽처 마킹 명령을 포함한다.
SVC은 H.264/AVC과 동일한 메커니즘을 사용하여 시간 스케일러빌리티를 제공한다. 시간 스케일러빌리티는 프레임 레이트를 조절하는 융통성을 부여함으로써, 시간 도메인에서 비디오 품질의 정제를 제공한다. H.264/AVC, SVC 및 MVC에서, 시간 스케일러빌리티는 비-참조 픽처 및/또는 계층적 참조 픽처 예측 구조를 이용함으로써 성취될 수 있다. 비-참조 픽처만을 이용하면 비-참조 픽처를 없애버림으로써 MPEG-1/2/4에서 전통적인 B 픽처를 이용하는 것과 유사한 시간 스케일러빌리티를 성취하는 것이 가능하다. 계층적 코딩 구조는 더욱 융통성 있는 시간 스케일러빌리티를 성취할 수 있다.
H.264/AVC에서, 시간 레벨은 서브시퀀스 정보의 보충 강화 정보(SEI) 메시지에서 서브-시퀀스 계층 번호로 표시될 수 있다. SVC에서, 시간 레벨은 네트워크 추상 계층(NAL) 유닛 헤더에서 신택스 요소 "temporal_id"로 표시될 수 있다. 각 시간 레벨의 비트레이트 및 프레임 레이트 정보는 스케일러빌리티 정보 SEI 메시지에서 표시될 수 있다.
앞에서 언급한 바와 같이, CGS는 공간 스케일러빌리티 및 SNR 스케일러빌리티를 둘 다 포함한다. 공간 스케일러빌리티는 해상도가 상이한 비디오의 표현을 지원하기 위해 초기에 설계된 것이다. 시간 인스턴스 마다, VCL NAL 유닛은 동일한 액세스 유닛으로 부호화되며 이들 VCL NAL 유닛은 상이한 해상도에 대응할 수 있다. 디코딩 동안, 저해상도 VCL NAL 유닛은 고 해상도 픽처의 최종 디코딩 및 재구성에 의해 선택사양으로 승계될 수 있는 움직임 필드 및 잔차를 제공한다. 구(old) 비디오 압축 표준과 비교할 때, SVC의 공간 스케일러빌리티는 베이스 계층이 강화 계층의 버전을 일부 삭제하고 확대할 수 있도록 일반화되었다.
FGS 강화 계층의 기본 형태에서는 계층-간 예측만이 사용된다. 그러므로, FGS 강화 계층은 디코딩된 시퀀스에서 어떠한 오류 전파도 일으키지 않고 자유로이 절단될 수 있다. 그러나, FGS의 기본 형태는 압축 효율이 낮다. 이러한 문제는 저품질 픽처만이 인터 예측 참조를 위해서 사용되기 때문에 발생한다. 그러므로 FGS-강화된 픽처를 인터 예측 참조로서 사용하는 것이 제안되었다. 그러나, 이것은 일부 FGS 데이터가 폐기될 때 드리프트(drift)라고도 불리우는 인코딩-디코딩 미스매치를 일으킬 수 있다.
SVC 표준의 한 가지 특징은 FGS NAL 유닛이 자유로이 삭제 또는 절단될 수 있다는 것이며, MGS NAL 유닛은 비트스트림의 순응성에 영향을 주지 않고 자유로이 삭제(그러나 절단될 수 없음)될 수 있다. 앞에서 논의한 바와 같이, 이러한 FGS 또는 MGS 데이터가 인코딩 동안 인터 예측 참조를 위해 사용되었을 때, 데이터의 삭제 또는 절단은 디코더 측과 인코더 측에서 디코딩된 픽처들 사이에서 부조화의 결과를 초래할 것이다. 이러한 부조화는 드리프트(drift)라고도 말한다.
FGS 또는 MGS 데이터의 삭제 또는 절단으로 인한 드리프트를 조절하기 위하여, SVC는 다음과 같은 해결책을 적용하였다. 즉, 특정 디펜던시 유닛에서, ("quality_id"가 0인 CGS 픽처 및 모든 종속하는 하위 계층 데이터만을 디코딩함으로써) 베이스 표현이 디코딩된 픽처 버퍼에 저장된다. "dependency_id"라는 동일한 값을 가진 후속하는 디펜던시 유닛을 인코딩할 때, FGS 또는 MGS NAL 유닛을 비롯한 모든 NAL 유닛은 인터 예측 참조를 위해 베이스 표현을 사용한다. 결과적으로, 초기의 액세스 유닛에서 FGS 또는 MGS NAL 유닛의 삭제 또는 절단으로 인한 모든 드리프트가 이러한 액세스 유닛에서 멎는다. "dependency_id"라는 동일한 값을 가진 다른 디펜던시 유닛의 경우, 코딩 효율을 높이기 위해 모든 NAL 유닛은 인터 예측 참조를 위해 디코딩된 픽처를 사용한다. 각각의 NAL 유닛은 NAL 유닛 헤더에서 신택스 요소 "use_ref_base_pic_flag"를 포함한다. 이 요소의 값이 1일 때, NAL 유닛의 디코딩은 인터 예측 프로세스 동안 참조 픽처의 베이스 표현을 사용한다. 신택스 요소 "store_ref_base_pic_flag"는 인터 예측에 사용하는 미래 픽처를 위해 현재 픽처의 기본 표현을 저장할지(1일 때) 또는 저장하지 말지(0일 때)의 여부를 명시한다.
"quality_id"가 0보다 큰 NAL 유닛은 참조 픽처 리스트 구성 및 가중된 예측(weighted prediction)과 관련한 신택스 요소를 갖고 있지 않다. 즉, 신택스 요소 "num_ref_active_lx_minus1"(x"0 또는 1), 참조 픽처 리스트 재배열 신택스 테이블, 및 가중된 예측 신택스 테이블이 존재하지 않는다. 따라서, MGS 또는 FGS 계층은 이러한 신택스 요소를, 필요할 때, 동일한 디펜던시 유닛의 0의 "quality_id"를 갖는 NAL 유닛으로부터 이어받아야 한다.
리키 예측(leaky prediction) 기술은 베이스 표현과 디코딩된 픽처의 가중된 조합을 이용하여 FGS 데이터를 예측함으로써, 베이스 표현 및 (최고의 디코딩된 "quality_id"에 대응하는) 디코딩된 픽처 두 가지를 다 이용한다. 가중 인자는 강화 계층 픽처에서 잠재적인 드리프트의 감쇄를 제어하기 위해 사용될 수 있다. 리키 예측이 사용될 때, SVC의 FGS 특징은 종종 적응적 참조 FGS(Adaptive Reference FGS (AR-FGS))라고도 지칭된다. AR-FGS는 코딩 효율과 드리프트 제어 사이에서 균형을 유지해주는 툴이다. AR-FGS는 슬라이스 레벨 시그널링 및 가중 인수의 MB 레벨 적응에 의해 리키 예측을 가능하게 한다.
MVC에서 액세스 유닛은 디코딩 순서대로 연속하면서 하나 이상의 뷰 컴포넌트로 이루어진 정확히 하나의 일차 부호화된 픽처를 포함하는 한 셋의 NAL 유닛으로 정의된다. 일차 부호화된 픽처 이외에도, 액세스 유닛은 또한 하나 이상의 리던던트 부호화된 픽처, 하나의 보조적으로 부호화된 픽처, 또는 부호화된 픽처의 슬라이스 또는 슬라이스 데이터 부분을 포함하지 않는 다른 NAL 유닛을 포함할 수 있다. 액세스 유닛을 디코딩하면 하나 이상의 디코딩된 뷰 컴포넌트로 이루어진 하나의 디코딩된 픽처가 생긴다. 다시 말해서, MVC 에서 액세스 유닛은 하나의 출력 시간 인스턴스에 대한 뷰의 뷰 컴포넌트를 갖는다.
MVC에서 뷰 컴포넌트는 단일 액세스 유닛에서 뷰의 부호화된 표현이라고 지칭되다.
뷰-간 예측(inter-view prediction)은 MVC에서 사용될 수 있으며 동일 액세스 유닛의 상이한 뷰 컴포넌트의 디코딩된 샘플로부터 뷰 컴포넌트의 예측을 말한다. MVC에서, 뷰-간 예측은 인터 예측과 유사하게 실현된다. 예를 들면, 뷰-간 참조 픽처는 인터 예측을 위한 참조 픽처와 동일한 참조 픽처 리스트(들)에 배치되며, 참조 인덱스뿐만 아니라 움직임 벡터는 뷰-간 및 인터 참조 픽처에 대해 유사하게 부호화되거나 추론된다.
MVC에서 앵커 픽처(anchor picture)는 모든 슬라이스들이 동일한 액세스 유닛 내 슬라이스들만을 참조할 수 있는, 즉, 뷰-간 예측이 사용되지만 어떠한 인터 예측도 사용되지 않으며, 출력 순서에서 다음에 오는 모든 부호화된 픽처들이 디코딩 순서로 부호화된 픽처에 앞선 임의의 픽처로부터 인터 예측을 사용하지 않는, 부호화된 픽처이다. 뷰-간 예측은 논-베이스 뷰(non-base view)의 일부인 IDR 뷰 컴포넌트에 사용될 수 있다. MVC에서 베이스 뷰는 부호화된 비디오 시퀀스에서 뷰 순서 인덱스의 최대 값을 갖는 뷰이다. 베이스 뷰는 다른 뷰와 무관하게 디코딩될 수 있으며 뷰-간 예측을 사용하지 않는다. 베이스 뷰는 H.264/AVC의 베이스라인 프로파일(Baseline Profile) 또는 하이 프로파일(High Profile)과 같이, 단일-뷰 프로파일만을 지원하는 H.264/AVC 디코더에 의해 디코딩될 수 있다.
MVC 표준에서, MVC 디코딩 프로세스의 많은 서브-프로세스들은 H.264/AVC 표준의 서브-프로세스 사양에서의 용어 "픽처", "프레임", 및 "필드"를 "뷰 컴포넌트", "프레임 뷰 컴포넌트", 및 "필드 뷰 컴포넌트"로 각기 대체함으로써 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의 비트스트림 신택스는 특정 픽처가 임의의 다른 픽처의 인터 예측을 위한 참조 픽처인지의 여부를 표시한다. 임의의 코딩 타입(I, P, B)의 픽처는 H.264/AVC에서 참조 픽처 또는 비-참조 픽처일 수 있다. NAL 유닛 헤더는 NAL 유닛의 타입을 표시하며 NAL 유닛에 포함된 부호화된 슬라이스가 참조 픽처 또는 비-참조 픽처의 일부분인지의 여부를 표시한다.
고 효율 비디오 코딩(High Efficiency Video Coding (HEVC)) 표준을 명시하기 위해 진행중인 비디오 코딩 표준화 프로젝트가 있다. HEVC의 주요 정의, 비트스트림 및 코딩 구조, 그리고 개념은 H.264/AVC의 것과 동일하거나 유사하다. HEVC의 일부 주요 정의, 비트스트림 및 코딩 구조, 그리고 개념은 이 단원에서 비디오 인코더, 디코더, 인코딩 방법, 디코딩 방법, 및 비트스트림 구조의 예로서 설명되며, 여기서 일부 실시예가 구현될 수 있다. 본 발명의 양태는 HEVC으로 제한되지 않고, 오히려 본 발명이 부분적으로 또는 전체적으로 실현될 수 있는 것 이외에 한 가지 가능한 근거에 대해 설명된다.
H.264/AVC과 유사하게, HEVC 비트스트림은 다수의 액세스 유닛으로 구성되며, 각각의 액세스 유닛은 픽처와 연관된 부호화된 데이터를 포함한다. 각각의 액세스 유닛은 NAL 유닛으로 나뉘어지며, NAL 유닛은 하나 이상의 VCL NAL 유닛(즉, 부호화된 NAL 유닛) 및 0개 이상의 논-VCL NAL 유닛, 예를 들면, 파라미터 세트 NAL 유닛 또는 보충 강화 정보(SEI) NAL 유닛을 포함한다. 각각의 NAL 유닛은 NAL 유닛 헤더와 NAL 유닛 패이로드를 포함한다. 초안 HEVC 표준에서, 2-바이트 NAL 유닛 헤더는 모든 명시된 NAL 유닛 타입에 대해 사용된다. NAL 유닛 헤더의 첫 바이트는 하나의 예약된 비트와, 이 액세스 유닛에 실린 픽처가 참조 픽처 또는 비-참조 픽처인지 여부를 기본적으로 표시하는 1-비트의 표시 nal_ref_idc, 및 6-비트의 NAL 유닛 타입 표시를 포함한다. NAL 유닛 헤더의 두 번째 바이트는 시간 레벨에 대한 3-비트의 temporal_id 표시 및 초안 HEVC 표준에서 1이라는 값을 갖도록 요구된 5-비트의 예약된 필드(reserved_one_5bits라고 칭함)를 포함한다. 5-비트 예약된 필드는 미래의 스케일러블 및 3D 비디오 확장과 같은 확장에 의해 사용될 것으로 예상된다. 이러한 다섯 비트는 quality_id 또는 유사한 것, dependency_id 또는 유사한 것, 임의의 다른 타입의 계층 식별자, 뷰 순서 인덱스 또는 유사한 것, 뷰 식별자, 만일 특정 식별자 값보다 큰 모든 NAL 유닛이 비트스트림으로부터 제거된 경우이면 유효 서브-비트스트림 추출을 표시하는 SVC의 priority_id와 유사한 식별자와 같은 스케일러빌리티 계층구조에 관한 정보를 전달할 것이라고 예상된다. 보편성을 잃지 않고, 일부 예의 실시예에서, 가변 Layerld는 예를 들면 다음과 같이 reserved_one_5bits의 값으로부터 유도된다. 즉, Layerld = reserved_one_5bits - 1.
초안 HEVC 표준에서, 픽처 분할(picture partitioning)에 관한 몇몇 주요 정의 및 개념은 아래와 같이 정의된다. 분할은 하나의 셋을 나누어서 그 셋의 각 요소가 정확히 서브셋 중 하나에 속하는 것으로서 정의된다.
비디오 픽처는 픽처의 영역을 망라하는 코딩 유닛(coding units (CU))으로 나뉘어질 수 있다. 코딩 유닛은 코딩 유닛 내 샘플들에 대한 예측 프로세스를 정의하는 하나 이상의 예측 유닛(prediction units (PU)) 및 코딩 유닛 내 샘플들에 대한 예측 오류 코딩 프로세스를 정의하는 하나 이상의 변환 유닛(transform units (TU))으로 구성된다. 코딩 유닛은 가능한 코딩 유닛 크기들의 사전정의된 셋으로부터 크기를 선택할 수 있는 사각 블록의 샘플들로 구성될 수 있다. 최대로 허용된 크기를 갖는 코딩 유닛은 최대 코딩 유닛(largest coding unit (LCU))이라고 명명될 수 있으며 비디오 픽처는 중첩하지 않는 최대 코딩 유닛들로 나뉘어질 수 있다. 최대 코딩 유닛은 예를 들면, 최대 코딩 유닛을 나누고 그 결과적인 코딩 유닛을 반복적으로 나눔으로써 더 작은 코딩 유닛들의 조합으로 더 나뉘어질 수 있다. 각각의 결과적인 코딩 유닛은 적어도 하나의 예측 유닛 및 그와 연관된 적어도 하나의 변환 유닛을 가질 수 있다. 각각의 예측 유닛 및 변환 유닛은 예측 및 예측 오류 코딩 프로세스의 그래뉴러리티를 높이기 위해 각기 더 작은 예측 유닛 및 변환 유닛으로 더 나뉘어질 수 있다. 각각의 예측 유닛은 그와 연관되어 그 예측 유닛 내 픽셀에 대하여 무슨 종류의 예측이 적용될 것인지를 정의하는 예측 정보(예를 들면, 인터 예측된 예측 유닛에 대한 움직임 벡터 정보 및 인트라 예측된 예측 유닛에 대한 인트라 예측 방향성 정보)를 갖는다. 유사하게, 각각의 변환 유닛은 그 변환 유닛 내 샘플들에 대한 예측 오류 디코딩 프로세스를 기술하는 (예를 들면, DCT 계수 정보를 비롯한) 정보와 연관된다. 예측 오류 코딩이 각 코딩 유닛 마다 적용할지 적용하지 않을지의 여부가 코딩 유닛 레벨에서 표시될 수 있다. 코딩 유닛과 연관된 어떤 예측 오류 잔차도 없는 경우, 그 코딩 유닛에 대한 변환 유닛이 없다고 간주될 수 있다. 이미지를 코딩 유닛으로 나누는 것 그리고 코딩 유닛을 예측 유닛 및 변환 유닛으로 나누는 것은 비트스트림에서 표시되어 디코더로 하여금 이들 유닛의 의도된 구조를 재생하게 할 수 있다.
H.264/AVC 및 HEVC을 포함하는, 많은 하이브리드 비디오 코덱은 비디오 정보를 두 가지 국면에서 인코딩한다. 첫 번째 국면에서, 특정 픽처 영역 또는 "블록" 내 픽셀 또는 샘플 값이 예측된다. 이들 픽셀 또는 샘플 값은 예를 들면, 부호화되는 블록에 밀접하게 대응하는 이전에 인코딩된 비디오 프레임 중 한 프레임 내에서 영역을 찾아 표시하는 과정을 포함하는 움직임 보상 메커니즘에 의해 예측될 수 있다. 부가적으로, 픽셀 또는 샘플 값은 공간 영역 관계를 찾고 표시하는 과정을 포함하는 공간 메커니즘에 의해 예측될 수 있다.
이전에 부호화된 이미지로부터의 이미지 정보를 이용하는 예측 접근 방법은 시간 예측 및 움직임 보상이라고도 지칭될 수 있는 인터 예측 방법이라고도 부른다. 동일한 이미지 내의 이미지 정보를 이용하는 예측 접근 방법은 인트라 예측 방법이라고도 부른다.
두 번째 국면은 픽셀 또는 샘플의 예측된 블록과 원 픽셀 또는 샘플의 블록 간의 오차를 부호화하는 국면이다. 이것은 명시된 변환을 이용하여 픽셀 또는 샘플 값의 차를 변환함으로써 성취될 수 있다. 이러한 변환은 이산 코사인 변환(DCT) 또는 그의 변형본일 수 있다. 오차를 변환한 후, 변환된 오차는 양자화되고 엔트로피 인코딩된다.
양자화 프로세스의 충실도를 변화시킴으로써, 인코더는 픽셀 또는 샘플 표현의 정확도(즉, 픽처의 시각 품질)와 결과적으로 인코딩된 비디오 표현의 크기(즉, 파일 크기 또는 전송 비트 레이트) 간의 균형을 제어할 수 있다.
디코더는 (인코더에 의해 생성되어 이미지의 압축된 표현으로 저장된 움직임 또는 공간 정보를 이용하여) 픽셀 또는 샘플 블록의 예측된 표현을 형성하기 위하여 인코더에 의해 사용된 것과 유사한 예측 메커니즘 및 예측 오류 디코딩(공간 도메인에서 양자화된 예측 오차 신호를 복획득하는 예측 오류 코딩의 역 동작)을 적용함으로써 출력 비디오를 재구성한다.
픽셀 또는 샘플 예측 및 오차 디코딩 프로세스를 적용한 후, 디코더는 예측 및 예측 오차 신호(픽셀 또는 샘플 값)를 결합하여 출력 비디오 프레임을 형성한다.
디코더(및 인코더)는 또한 출력 비디오의 품질을 개선하기 위하여 부가적인 필터링 프로세스를 적용한 다음 이를 디스플레이하기 위해 전달하며/전달하거나 비디오 시퀀스에서 다음에 오는 픽처를 위한 예측 참조로서 저장할 수 있다.
H.264/AVC 및 HEVC을 비롯한, 많은 비디오 코덱에서, 움직임 정보는 각각의 움직임 보상된 이미지 블록과 연관된 움직임 벡터로 표시된다. 이러한 움직임 벡터는 각기 (인코더 측에서) 부호화될 또는 (디코더 측에서) 복호화될 픽처 내 이미지 블록과 이전에 부호화된 또는 복호화된 픽처 중 한 픽처 내 예측 소스 블록의 변위를 나타낸다. H.264/AVC 및 HEVC은 다른 많은 비디오 압축 표준처럼, 픽처를 사각형들의 메시로 분리하는데, 각 사각형 마다 참조 픽처들 중 한 픽처 내 유사 블록이 인터 예측을 위해 표시된다. 예측 블록의 위치는 부호화되는 블록에 비교된 예측 블록의 위치를 표시하는 움직임 벡터로서 부호화된다. 움직임 벡터를 효과적으로 표현하기 위하여, 움직임 벡터는 블록-별 예측된 움직임 벡터에 대하여 상이하게 부호화될 수 있다. 많은 비디오 코덱에서, 예측된 움직임 벡터는 사전에 정의된 방식으로, 예를 들면 인접한 블록들의 인코딩된 또는 디코딩된 움직임 벡터의 중간 값(median)을 계산함으로써 생성된다. 움직임 벡터 예측을 생성하는 다른 방식은 시간 참조 픽처 내 인접 블록 및/또는 동일-위치에 있는 블록으로부터 후보 예측들의 리스트를 만들고 선택한 후보를 움직임 벡터 예측기(motion vector predictor)로서 전달하는 것이다. 움직임 벡터 값을 예측하는 것 이외에도, 이전에 부호화된/복호화된 픽처의 참조 인덱스가 예측될 수 있다. 참조 인덱스는 시간 참조 픽처 내 인접 블록 및/또는 동일-위치에 있는 블록으로부터 예측될 수 있다. 더욱이, 많은 고 효율 비디오 코덱은 종종 합치는/합병 모드라고 부르는 부가적인 움직임 정보 코딩/디코딩 메커니즘을 이용하는데, 이 머커니즘에서 각각의 이용 가능한 참조 픽처 리스트 마다 움직임 벡터 및 대응하는 참조 픽처 인덱스를 포함하는 모든 움직임 필드 정보가 임의의 수정/정정 없이 예측되고 사용된다. 유사하게, 움직임 필드 정보를 예측하는 것은 시간 참조 픽처 내 인접 블록 및/또는 동일-위치에 있는 블록이 움직임 필드 정보를 이용하여 실행되며 사용된 움직임 필드 정보는 이용 가능한 인접 블록/동일-위치에 있는 블록의 움직임 필드 정보로 채워진 움직임 필드 후보 리스트의 리스트 중에서 표시된다.
인터 예측 프로세스는 다음과 같은 인자들 중 하나 이상을 이용하는 것을 특징으로 할 수 있다.
움직임 벡터 표현의 정확성. 예를 들면, 움직임 벡터는 쿼터-픽셀 정확도(quarter-pixel accuracy)를 가질 수 있으며, 부분-픽셀 위치(fractional-pixel positions)에 있는 샘플 값은 유한 임펄스 응답(FIR) 필터를 이용하여 구할 수 있다.
인터 예측을 위한 블록 분할. H.264/AVC 및 HEVC을 비롯한, 많은 코딩 표준은 움직임 벡터가 인코더에서 움직임-보상된 예측에 적용되는 블록의 크기 및 형상을 선택할 수 있게 하며, 디코더가 인코더에서 수행된 움직임-보상된 예측을 재생할 수 있도록 비트스트림에서 선택된 크기 및 형상을 표시할 수 있게 해준다.
인터 예측을 위한 참조 픽처의 개수. 인터 예측의 원천은 이전에 디코딩된 픽처이다. H.264/AVC 및 HEVC을 비롯한, 많은 코딩 표준은 블록 단위로 사용된 참조 픽처의 인터 예측 및 선택을 위해 복수개의 참조 픽처를 저장할 수 있다. 예를 들면, 참조 픽처는 H.264/AVC에서는 매크로블록 또는 매크로블록 분할 단위로 그리고 HEVC에서는 PU 또는 CU 단위로 선택될 수 있다. H.264/AVC 및 HEVC과 같은 많은 코딩 표준은 디코더가 하나 이상의 참조 픽처 리스트를 생성할 수 있게 하는 비트스트림 내 신택스 구조를 포함한다. 참조 픽처 리스트에 대한 참조 픽처 인덱스는 복수개 참조 픽처들 중 하나가 특정 블록의 인터 예측을 위해 사용되는지를 표시하는데 사용될 수 있다. 참조 픽처 인덱스는 몇몇 인터 코딩 모드에서 인코더에 의해 비트스트림으로 부호화될 수 있거나 또는 몇몇 다른 인터 코딩 모드에서 예를 들면 이웃 블록을 이용하여 (인코더 및 디코더에 의해) 유도될 수 있다.
움직임 벡터 예측. 비트스트림에서 움직임 벡터를 효과적으로 표현하기 위하여, 움직임 벡터는 블록-별 예측된 움직임 벡터에 대하여 상이하게 부호화될 수 있다. 많은 비디오 코덱에서, 예측된 움직임 벡터는 사전에 정의된 방식으로, 예를 들면, 인접 블록들의 인코딩된 또는 디코딩된 움직임 벡터의 중간 값을 계산함으로써 생성된다. 움직임 벡터 예측을 생성하는 다른 방식은 시간 참조 픽처 내 인접 블록 및/또는 동일-위치에 있는 블록으로부터 후보 예측들의 리스트를 만들고 선택한 후보를 움직임 벡터 예측기로서 표시하는 것이다. 움직임 벡터 값을 예측하는 것 이외에도, 이전에 부호화된/복호화된 픽처의 기준 인덱스가 예측될 수 있다. 기준 인덱스는 통상 시간 참조 픽처 내 인접 블록 및/또는 동일-위치에 있는 블록으로부터 예측된다. 움직임 벡터의 차분 코딩은 전형적으로 슬라이스 경계에서 전체에 걸쳐 디스에이블된다.
다중-가설 움직임-보상된 예측( Multi - hypothesis motion - compensated prediction). H.264/AVC 및 HEVC는 P 슬라이스(본 명세서에서 단방향-예측 슬라이스(uni-predictive slices)이라 지칭함) 내 단일 예측 블록의 사용을 가능하게 하거나 또는 B 슬라이스라 지칭되기도 하는 양방향-예측 슬라이스(bi-predictive slices)에 대해 두 개의 움직임-보상된 예측 블록의 선형적 결합을 가능하게 한다. B 슬라이스 내 개개의 블록은 양방향-예측, 단방향-예측 또는 인트라-예측될 수 있으며, P 슬라이스 내 개개의 블록은 단방향-예측 또는 인트라-예측될 수 있다. 양방향-예측 픽처에 대한 참조 픽처는 출력 순서에서 후속 픽처 및 이전 픽처가 되는 것으로 제한되지 않을 수 있고, 오히려 어느 참조 픽처라도 사용될 수 있다. H.264/AVC 및 HEVC과 같은 많은 코딩 표준에서, 참조 픽처 리스트 0라고 지칭되는 하나의 참조 픽처 리스트가 P 슬라이스에 대해 구성되며, 리스트 0 및 리스트 1이라는 두 참조 픽처 리스트가 B 슬라이스에 대해 구성된다. B 슬라이스에 대하여, 예측을 위한 참조 픽처들이 서로와 또는 현재 픽처와 임의의 디코딩 순서 관계 또는 출력 순서 관계를 가질 수 있을지라도, 순방향으로 예측할 때는 참조 픽처 리스트 0 내의 참조 픽처로부터 예측하는 것을 말할 수 있으며, 역방향으로의 예측할 때는 참조 픽처 리스트 1 내의 참조 픽처로부터 예측하는 것을 말할 수 있다.
가중 예측( Weighted prediction ). 많은 코딩 표준은 인터(P) 픽처의 예측 블록에 대해 1이라는 예측 가중치를 그리고 (결과적으로 평균화하는) B 픽처의 각 예측 블록에 대해서는 0.5라는 예측 가중치를 사용한다. H.264/AVC은 P 및 B 슬라이스 둘 다에 대해 가중된 예측을 허용한다. 묵시적 가중 예측(implicit weighted prediction)에서, 가중치는 픽처 순서 계수(picture order count)에 비례하는 반면, 명시적 가중 예측(explicit weighted prediction)에서는 예측 가중치는 명시적으로 표시된다.
많은 비디오 코덱에서, 움직임 보상 이후 예측 잔차(prediction residual)가 일차로 (DCT와 같은) 변환 커널로 변환된 다음 부호화된다. 그 이유는 종종 잔차 중에서 약간의 상관이 여전히 존재한다는 것이며 많은 경우에서 변환은 이러한 상관을 줄이는데 도움이 될 수 있고 더욱 효과적인 코딩을 제공할 수 있다.
초안 HEVC에서, 각각의 PU는 그와 연관되고 그 PU 내 픽셀들에 무슨 종류의 예측이 적용될 것인지를 정의하는 예측 정보(예를 들면, 인터 예측된 PU에 대한 움직임 벡터 정보 및 인트라 예측된 PU에 대한 인트라 예측 방향성 정보)를 갖고 있다. 유사하게, 각각의 TU는 상기 TU 내 샘플에 대한 예측 오차 디코딩 프로세스를 기술하는 (예를 들면, DCT 계수 정보를 포함한) 정보와 연관된다. 예측 오차 코딩이 CU마다 적용되는지 또는 적용되지 않는지의 여부는 일반적으로 CU 레벨에서 표시될 수 있다. CU와 연관된 예측 오차 잔차가 없는 경우, 이것은 상기 CU에 대해 TU가 없다고 간주될 수 있다.
H.264/AVC 및 HEVC과 같은 비디오 코딩 표준에서 많은 신택스 요소는 인코더에서 엔트로피-부호화되며 디코더에서 엔트로피-복호화된다. 엔트로피 코딩은 예를 들면 컨텍스트 적응 이진 산술 코딩(context adaptive binary arithmetic coding (CABAC)), 컨텍스트-기반 가변 길이 코딩(context-based variable length coding), 허프만 코딩(Huffman coding), 또는 임의의 유사한 엔트로피 코딩을 이용하여 수행될 수 있다.
많은 비디오 인코더는 라그랑지안 비용 함수(Lagrangian cost function)를 활용하여 레이트-왜곡 최적 코딩 모드(rate-distortion optimal coding modes), 예를 들면, 희망 매크로블록 모드 및 연관된 움직임 벡터를 찾는다. 이러한 유형의 비용 함수는 가중 인수 또는 λ를 이용하여 손실 코딩 방법(lossy coding methods)으로 인한 정확한 또는 추정한 이미지 왜곡 및 이미지 영역 내 픽셀/샘플 값을 표현하는데 필요한 정보의 정확한 또는 추정한 양을 함께 결합한다. 라그랑지안 비용 함수는 하기 수학식으로 표현될 수 있다.
Figure 112014109802379-pct00001
여기서 C는 최소화될 라그랑지안 비용이고, D는 현재 고려된 모드 및 움직임 벡터를 가진 이미지 왜곡(예를 들면, 원 이미지 블록 내 픽셀/샘플 값과 부호화된 이미지 블록 내 픽셀/샘플 값 사이의 평균 제곱 오차)이고, λ는 라그랑지안 계수이며, R은 (후보 움직임 벡터를 표현하는 데이터의 양을 포함하여) 디코더에서 이미지 블록을 재구성하는데 필요한 데이터를 표현하는데 필요한 비트 수이다.
몇몇 코딩 포맷 및 코덱에서는 소위 단기간 참조 픽처(short-term reference picture)와 장기간 참조 픽처(long-term reference pictures)를 구별한다. 이러한 구별은 시간 직접 모드(temporal direct mode) 또는 묵시적 가중 예측에서 움직임 벡터 스케일링과 같은 일부 디코딩 프로세스에 영향을 줄 수 있다. 만일 시간 직접 모드에서 사용된 참조 픽처들이 둘 다 단기간 참조 픽처이면, 예측 시 사용된 움직임 벡터는 현재 픽처와 각각의 기준 픽처 간의 POC 차에 따라 조절될 수 있다. 그러나, 만일 시간 직접 모드에서 사용된 적어도 하나의 참조 픽처가 장기간 참조 픽처이면, 움직임 벡터의 디폴트 조절 작업이 사용되는데, 예를 들면, 움직임을 절반으로 조절하는 작업이 사용된다. 유사하게, 만일 단기간 참조 픽처가 묵시적 가중 예측에 사용되면, 예측 가중치는 현재 픽처의 POC와 참조 픽처의 POC 간의 POC 차에 따라서 조절될 수 있다. 그러나, 만일 장기간 참조 픽처가 묵시적 가중된 예측에 사용되면, 묵시적 가중된 예측에서 양방향-예측된 블록에 대해 0.5라는 디폴트 예측 가중치가 사용될 수 있다.
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은 픽처 순서 카운트(picture order count (POC))의 개념을 포함한다. POC의 값은 각 픽처마다 유도되며 출력 순서에서 픽처 위치의 증가에 따라 줄어들지 않는다. 그러므로, POC는 픽처들의 출력 순서를 표시한다. POC는 디코딩 프로세스에서, 예를 들면, 양방향-예측 슬라이스의 시간 직접 모드에서 움직임 벡터의 묵시적 조절을 위해, 가중된 예측에서 묵시적으로 유도된 가중치를 위해, 그리고 참조 픽처 리스트 초기화를 위해 사용될 수 있다. 뿐만아니라, POC는 출력 순서 순응성의 검증에서 사용될 수 있다. H.264/AVC에서, POC는 이전 IDR 픽처 또는 모든 픽처를 "참조용으로 사용되지 않음"으로 표기하는 메모리 관리 제어 동작을 갖고 있는 픽처에 대해 명시된다.
H.264/AVC은 디코더에서 메모리 소비량을 제어하기 위하여 디코딩된 참조 픽처를 표기하는 프로세스를 명시하고 있다. 인터 예측에 사용된, M이라 불리는, 참조 픽처의 최대 수(maximum number)는 시퀀스 파라미터 세트에서 정해진다. 참조 픽처가 디코딩될 때, 참조 픽처는 "참조용으로 사용됨"이라고 표기된다. 만일 참조 픽처가 "참조용으로 사용됨"이라 표기된 M개 픽처보다 많이 디코딩되었다면, 적어도 하나의 픽처는 "참조용으로 사용되지 않음"이라고 표기된다. 디코딩된 참조 픽처를 표기하는 동작은 적응적 메모리 제어(adaptive memory control) 및 슬라이딩 윈도우(sliding window)라는 두 가지 방식이 있다. 디코딩된 참조 픽처를 표기하는 동작 모드는 픽처 단위로 선택된다. 적응적 메모리 제어는 픽처를 "참조용으로 사용되지 않음"이라고 표기하는 명시적인 표시를 가능하게 하며 또한 장기간 인덱스를 단기간 참조 픽처에 할당할 수 있다. 적응적 메모리 제어는 비트스트림에서 메모리 관리 제어 동작(memory management control operation (MMCO)) 파라미터의 존재를 필요로 한다. 만일 슬라이딩 윈도우 동작 모드가 사용 중에 있고 M 픽처가 "참조용으로 사용됨"이라고 표기되어 있으면, "참조용으로 사용됨"이라 표기된 단기간 참조 픽처들 중 처음 디코딩된 픽처이었던 단기간 참조 픽처는 "참조용으로 사용되지 않음"이라고 표기된다. 다시 말해서, 슬라이딩 윈도우 동작 모드는 결과적으로 단기간 참조 픽처들 사이에서 선입선출 버퍼링 동작을 수행하게 만든다.
H.264/AVC에서 메모리 관리 제어 동작 중 한 가지는 현재 픽처를 제외한 모든 참조 픽처를 "참조용으로 사용되지 않음"이라고 표기되게 한다. 순간 디코딩 리프레시(instantaneous decoding refresh (IDR)) 픽처는 인트라-부호화된 슬라이스만을 가지고 있으며 참조 픽처의 유사한 "리셋"을 일으킨다.
초안 HEVC에서, 참조 픽처 표기 신택스 구조 및 관련한 디코딩 프로세스는 사용되지 않고, 대신 유사한 목적을 위해 참조 픽처 셋(reference picture set (RPS)) 신택스 구조 및 디코딩 디코딩 프로세스가 사용된다. 픽처에 대해 유효한 또는 활성의(active) 참조 픽처 셋은 픽처에 대해 참조로서 사용된 모든 참조 픽처 및 디코딩 순서에서 임의의 후속 픽처에 대해 "참조용으로 사용됨"이라고 표기된 채로 유지되는 모든 참조 픽처를 포함한다. 참조 픽처 셋에는 RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, 및 RefPicSetLtFoll 라고 지칭되는 여섯 서브셋이 있다. 여섯 서브셋의 주석은 다음과 같다. "Curr"은 현재 픽처의 참조 픽처 리스트에 포함되어 있는 참조 픽처를 말하며 그래서 현재 픽처의 인터 예측 참조로서 사용될 수 있다. "Foll"은 현재 픽처의 참조 픽처 리스트에는 포함되어 있지 않지만 디코딩 순서에서 후속 픽처에서 참조 픽처로서 사용될 수 있는 참조 픽처를 말한다. "St"는 단기간 참조 픽처를 말하는 것으로, 이 픽처는 일반적으로 이들의 POC 값의 최하위 비트들의 특정 개수를 통해 식별될 수 있다. "Lt"는 장기간 참조 픽처를 말하는 것으로, 이 픽처는 특별하게 식별되며 일반적으로는 최하위 비트들의 언급된 특정 개수로 표현될 수 있는 것보다 더 큰 차의 현재 픽셀에 대한 POC 값을 갖는다. "0"는 현재 픽처의 POC 값보다 작은 POC 값을 갖는 참조 픽처를 말한다. "1"은 현재 픽처의 POC 값보다 큰 POC 값을 갖는 참조 픽처를 말한다. RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, 및 RefPicSetStFoll1는 일괄하여 참조 픽처 셋의 단기간 서브셋이라고 지칭된다. RefPicSetLtCurr 및 RefPicSetLtFoll는 일괄하여 참조 픽처 셋의 장기간 서브셋이라고 지칭된다.
HEVC에서, 참조 픽처 셋은 시퀀스 파라미터 세트에서 명시될 수 있으며 참조 픽처 셋에 붙은 인덱스를 통해 슬라이스 헤더에서 사용하게 될 수 있다. 참조 픽처 셋은 또한 슬라이스 헤더에서도 명시될 수 있다. 참조 픽처 셋의 장기간 서브셋은 일반적으로 슬라이스 헤더에서만 명시되며, 반면 동일한 참조 픽처 셋의 단기간 서브셋은 픽처 파라미터 세트 또는 슬라이스 헤더에서 명시될 수 있다. 참조 픽처 셋은 독립적으로 부호화될 수 있거나 다른 참조 픽처 셋으로부터 예측될 수 있다(인터-RPS 예측이라고 알려져 있음). 참조 픽처 셋이 독립적으로 부호화될 때, 신택스 구조는 상이한 타입의 참조 픽처들, 즉 현재 픽처보다 낮은 POC 값을 가진 단기간 참조 픽처, 현재 픽처보다 높은 POC 값을 가진 단기간 참조 픽처, 및 장기간 참조 픽처의 전체를 세번 반복하는 루프까지 포함한다. 각각의 루프 엔트리는 "참조용도로 사용됨"이라고 표기되는 픽처를 명시한다. 일반적으로, 픽처는 차이가 나는 POC 값으로 명시된다. 인터-RPS 예측은 현재 픽처의 참조 픽처가 이전에 디코딩된 픽처의 참조 픽처 셋으로부터 예측될 수 있다는 사실을 이용한다. 이것은 현재 픽처의 모든 참조 픽처가 이전 픽처의 참조 픽처거나 이전에 디코딩된 픽처 그 자체이기 때문이다. 이들 픽처 중 어느 픽처가 참조 픽처가 되어야 하는지 그리고 현재 픽처의 예측에 사용되어야 하는지를 표시하는 것이 필요할 뿐이다. 참조 픽처 셋 코딩의 두 가지 타입에서, 플래그(used_by_curr_pic_X_flag)는 참조 픽처가 (*Curr 리스트에 포함된) 현재 픽처에 의해 참조용으로 사용되는지 또는 (*Foll 리스트에 포함된) 현재 픽처에 의해 참조용으로 사용되는지를 표시하는 각 참조 픽처 마다 부가적으로 송신된다. 현재 슬라이스에 의해 사용된 참조 픽처 셋에 포함된 픽처는 "참조용으로 사용됨"이라고 표기되며, 현재 슬라이스에 의해 사용된 참조 픽처 셋에 포함되지 않은 픽처는 "참조용으로 사용되지 않음"이라고 표기된다. 만일 현재 픽처가 IDR 픽처이면, RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, 및 RefPicSetLtFoll은 모두 비어있음(empty)로 설정된다.
디코딩된 픽처 버퍼(Decoded Picture Buffer (DPB))는 인코더에서 및/또는 디코더에서 사용될 수 있다. 디코딩된 픽처를 버퍼하는 두 가지 이유는 인터 예측에서 참조하기 위한 것과 디코딩된 픽처를 출력 순서로 재배열하기 위함이다. H.264/AVC 및 HEVC은 참조 픽처 표기하는 것 및 출력 재배열하는 것의 둘 다에 대해 상당한 융통성을 제공하고 있으므로, 참조 픽처 버퍼링 및 출력 픽처 버퍼링을 위한 별개의 버퍼는 메모리 자원을 낭비할 수 있다. 그래서, DPB는 참조 픽처 및 출력 재배열을 위한 통일화된 디코딩된 픽처 버퍼링 프로세스를 포함할 수 있다. 디코딩된 픽처는 이 픽처가 더 이상 참조로서 사용되지 않고 출력할 필요 없을 때 DPB로부터 제거될 수 있다.
H.264/AVC 및 HEVC의 많은 코딩 모드에서, 인터 예측을 위한 참조 픽처는 참조 픽처 리스트에 붙은 인덱스로 표시된다. 인덱스는 통상적으로 인덱스가 작을 수록 대응하는 신택스 요소가 더 짧은 값을 갖는 가변 길이 코딩으로 부호화된다. H.264/AVC 및 HEVC에서, 두 참조 픽처 리스트(참조 픽처 리스트 0 및 참조 픽처 리스트 1)는 각각의 양방향-예측 (B) 슬라이스 마다 생성되며, 하나의 참조 픽처 리스트(참조 픽처 리스트 0)는 각각의 인터-부호화된 (P) 슬라이스 마다 형성된다. 게다가, HEVC에서 B 슬라이스의 경우, 병합 리스트라고도 지칭되는 결합된 리스트(리스트 C)는 최종 참조 픽처 리스트(리스트 0 및 리스트 1)가 구성된 이후에 구성된다. 결합된 리스트는 B 슬라이스 내에서 단방향 예측(단일-방향 예측이라고도 알려짐)에 사용될 수 있다.
참조 픽처 리스트 0 및 참조 픽처 리스트 1과 같은 참조 픽처 리스트는 전형적으로 두 단계로 구성된다. 첫 번째로, 초기의 참조 픽처 리스트가 생성된다. 초기의 참조 픽처 리스트는 예를 들면 frame_num, POC, temporal_id, 또는 GOP 구조 또는 이들의 임의의 조합과 같은 예측 계층구조에 관한 정보에 기초하여 생성될 수 있다. 두 번째로, 초기의 참조 픽처 리스트는 참조 픽처 리스트 수정 신택스 구조(reference picture list modification syntax structure)라고도 알려진, 슬라이스 헤더에 포함될 수 있는, 참조 픽처 리스트 재배열(reference picture list reordering (RPLR)) 명령어에 의해 재배열될 수 있다. RPLR 명령어는 각각의 참조 픽처 리스트의 시작 부분에 배열되는 픽처를 표시한다. 이러한 두 번째 단계는 또한 참조 픽처 리스트 수정 프로세스라고도 지칭될 수 있으며, RPLR 명령어는 참조 픽처 리스트 수정 신택스 구조에 포함될 수 있다. 만일 참조 픽처 셋이 사용되면, 참조 픽처 리스트 0은 처음에 RefPicSetStCurr0을, 뒤이어 RefPicSetStCurr1을, 뒤이어 RefPicSetLtCurr을 포함하도록 초기화될 수 있다. 참조 픽처 리스트 1은 먼저 RefPicSetStCurr1을, 뒤이어 RefPicSetStCurr0을 포함하도록 초기화될 수 있다. 초기의 참조 픽처 리스트는 참조 픽처 리스트 수정 신택스 구조를 통해 변경될 수 있는데, 이 구조에서 초기의 참조 픽처 리스트 내 픽처는 리스트의 엔트리 인덱스를 통해 식별될 수 있다.
멀티뷰 비디오는 인코더 및 디코더를 제공하기 때문에, 뷰-간 리던던시, 디코딩된 뷰-간 프레임을 이용할 가능성은 마찬가지로 참조 픽처 리스트(들)에도 포함될 수 있다.
HEVC에서 결합된 리스트는 다음과 같이 구성될 수 있다. 만일 결합 리스트에 대한 수정 플래그가 제로이면, 결합 리스트는 묵시적 메커니즘에 의해 구성되며, 그렇지 않으면 비트스트림에 포함된 참조 픽처 결합 명령어에 의해 구성된다. 묵시적 메커니즘에서, 리스트 C 내 참조 픽처는 리스트 0의 첫 엔트리로부터 시작하여, 그 다음에는 리스트 1의 첫 엔트리가 나오는 식으로 인터리브된 방식으로 리스트 0 및 리스트 1로부터의 참조 픽처에 맵핑된다. 이미 리스트 C에서 맵핑된 임의의 참조 픽처는 다시 맵핑되지 않는다. 명시적 메커니즘에서, 리스트 C 내 엔트리들의 개수가 표시되며, 뒤이어 리스트 0 또는 리스트 1 내 엔트리로부터 리스트 C의 각 엔트리까지의 맵핑이 이어진다. 부가적으로, 리스트 0 및 리스트 1이 같으면, 인코더는 ref_pic_list_combination_flag를 0으로 설정하여 리스트 1로부터의 어느 참조 픽처도 맵핑되지 않는 다는 것과 리스트 C가 리스트 0와 같다는 것을 표시하는 옵션을 갖는다.
초안 HEVC 코덱과 같은 통상의 고 효율 비디오 코덱은 블록/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)라고 명명된다.
참조 픽처 표기를 위한 신택스 구조는 비디오 코딩 시스템에서 존재할 수 있다. 예를 들면, 픽처의 디코딩이 완료되었을 때, 디코딩된 참조 픽처 표기 신택스 구조는, 만일 존재한다면, 픽처를 "참조용으로 사용되지 않음" 또는 "장기간 참조용으로 사용됨"이라고 적응적으로 표기하는데 사용될 수 있다. 만일 부호화된 참조 픽처 표기 신택스 구조가 존재하지 않으면 그리고 "참조용으로 사용됨"이라고 표기된 픽처의 개수가 더 이상 증가할 수 없으면, 기본적으로 (디코딩 순서에서) 가장 최초로 디코딩된 참조 픽처를 참조용으로 사용되지 않음이라고 표기하는 슬라이딩 윈도우 참조 픽처 표기(sliding window reference picture marking)가 사용될 수 있다.
H.264/AVC 및 그의 MVC 확장에서 명시된 움직임 벡터(MV) 예측은 동일 이미지의 이웃 블록에 존재(공간 상관)할 수 있거나 또는 이전에 부호화된 이미지에 존재(시간 상관)할 수 있는 상관을 이용한다. 도 7(a)는 현재 부호화된 블록(cb)의 공간 이웃을 도시하며 도 7(b)는 H.264/AVC에서 움직임 벡터 예측을 위한 후보로서 사용되는 현재 부호화된 블록의 시간 이웃을 도시한다.
현재 블록(cb)의 움직임 벡터는 움직임 추정 및 움직임 보상 프로세스를 통해 추정될 수 있으며 차분 펄스 부호 변조(differential pulse code modulation (DPCM))로 부호화되어 MVd(x,y)= MV(x,y)-MVp(x,y) 처럼 움직임 벡터 예측(MVp)과 실제 움직임 벡터 MV 간의 잔차의 형태로 전송된다.
현재 파티션 또는 서브-파티션의 바로 위(블록 B), 대각방향으로 오른쪽 위(블록 C), 및 바로 왼쪽(블록 A)의 매크로블록 파티션 또는 서브파티션의 움직임 벡터의 중간값이 계산될 수 있다.
일부 실시예에서, 움직임 벡터 예측 MVp 추정은 다음과 같이 명시될 수 있다. 즉,
공간 이웃 블록(A, B, C) 중 오직 한 블록이 현재 블록과 동일한 참조 인덱스를 갖고 있을 때,
Figure 112014109802379-pct00002
하나 또는 어느 이웃 블록(A, B, C)도 현재 블록과 동일한 참조 인덱스를 갖지 않을 때,
Figure 112014109802379-pct00003
여기서, mvLXA, mvLXB, mvLXC는 공간적으로 이웃하는 블록들의 (reference_frame_id 없는) 움직임 벡터이다.
몇몇 상황에서, P_SKIP 모드 또는 B_SKIP 모드가 이용될 수 있다. P_SKIP 모드에서, 현재 블록의 참조 프레임 인덱스는 항시 0이며 이용된 리스트는 제 1 리스트 0(refldxLO = 0)이다. 움직임 벡터는 현재 블록의 바로 왼쪽 블록(블록 A) 및 바로 위쪽 블록(블록 B)만을 이용함으로써 추정된다. 만일 바로 왼쪽 블록과 바로 위쪽 블록이 존재하지 않으면, 제로 값의 움직임 벡터 예측 MVp가 선택된다. P_SKIP 모드에서 MV=MVp이 아니기 때문에, 어느 움직임 벡터 차 dMV도 전송되지 않는다.
B_SKIP 모드에서, 두 가지 움직임 벡터 예측 추정 프로세스, 즉 움직임 벡터 예측이 도 7(a)에 도시된 것처럼 공간 이웃 블록으로부터 계산되는 공간 직접 모드 또는 움직임 벡터 예측이 8b에 도시된 것처럼 시간 이웃 블록으로부터 계산되는 시간 직접 모드가 이용될 수 있다.
움직임 벡터 예측 프로세스는 다음과 같은 값의 추정을 포함한다.
a. 참조 인덱스들 refldxLO, refldxL1
b. 움직임 벡터들 mvLO and mvL1.
공간 직접 모드에서, 참조 인덱스 예측 및 움직임 벡터 예측의 프로세스는 두 참조 픽처 리스트(참조 픽처 리스트 0, 참조 픽처 리스트 1)에 대해 독립적으로 실행된다. 최소의 양(positive)의 참조 인덱스가 각 리스트에서 선택되며 움직임 벡터 예측 프로세스는 각 참조 픽처 리스트 마다 적용되어 mvpL0 및 mvpL1를 생성한다.
움직임 벡터 예측 mvpLX의 각 컴포넌트는 움직임 벡터 mvLXA, mvLXB, 및 mvLXC의 대응하는 벡터 컴포넌트의 중간값으로 주어진다.
mvpLX[0] = Median(mvLXA[0], mvLXB[0], mvLXC[0])
mvpLX[1] = Median(mvLXA[1], mvLXB[1], mvLXC[1]).
시간 직접 모드에서, 리스트 0 및 리스트 1에 대한 현재 블록의 움직임 벡터는 (시간 방향에서) 이웃하는 블록으로부터 움직임 벡터의 시간 보간을 통해 계산될 수 있다. 현재 프레임으로부터 참조된 프레임까지의 픽처 순서 계수(POC) 거리는 보간의 인수로서 이용될 수 있다.
MV0 = MVc*(TDb/TDd)
MV1 = MVc*(TDb-TDD)/TDd,
여기서 TDb는 현재 프레임과 리스트0 내 참조 프레임 간의 픽처 순서 계수 거리이고, TDd는 리스트0 및 리스트1 내 참조 프레임들 간의 픽처 순서 계수 거리이며, MVc는 참조 픽처 리스트0로부터 동일-위치에 있는 블록의 움직임 벡터이다.
그 다음, 본 발명의 실시예의 더 나은 이해를 위하여, 삼차원(3D) 멀티뷰 애플리케이션 및 그와 밀접하게 관련된 깊이 및 디스패리티 정보의 개념이 간략히 설명된다.
스테레오스코픽 비디오 콘텐츠는 시청자의 왼쪽 및 오른쪽 눈에 개별적으로 보이는 옵셋 이미지들 쌍으로 이루어진다. 이들 옵셋 이미지는 특정 스테레오스코픽 카메라 구성을 이용하여 촬영되며 카메라들 사이에는 특별한 스테레오 베이스라인 거리(stereo baseline distance)가 있다고 가정한다.
도 1은 그러한 스테레오스코픽 카메라 구성의 간략화된 2D 모델을 도시한다. 도 1에서 C1 및 C2는 스테레오스코픽 카메라 구성의 카메라, 특히 카메라의 중심 위치를 나타내며, b는 두 카메라의 중심선(즉, 스테레오 베이스라인) 사이의 거리이고, f는 카메라의 초점 길이이며 X는 촬영되는 실제 3D 장면 내의 물체이다. 실 세계 물체(X)는 카메라(C1 및 C2)에 의해 촬영된 이미지 내 상이한 위치에 투사되는데, 이 위치는 각기 x1 및 x2로 표시된다. 이미지의 절대 좌표에서 x1과 x2 사이의 수평 거리는 디스패리티(disparity)라고 부른다. 카메라 구성에 의해 촬영된 이미지는 스테레오스코픽 이미지라고 부르며, 이러한 이미지 내에 존재하는 디스패리티는 깊이의 환영(illusion of depth)을 만들거나 강화시킨다. 이미지가 시청자의 왼쪽과 오른쪽 눈에 개별적으로 보일 수 있게 하기 위해, 시청자에 의해 특정한 3D 안경이 사용될 필요가 있을 수 있다. 디스패리티를 적응시키는 것은 스테레오스코픽 비디오 콘텐츠를 다양한 디스플레이 상에서 편안히 보일 수 있게 조절하는 주요한 특징이다.
그러나, 디스패리티 적응은 간단한 프로세스는 아니다. 이것은 베이스라인 거리가 상이한(즉, b가 가변적임) 추가적인 카메라 뷰를 갖는 것 또는 실 세계에서 이용할 수 없는 가상 카메라 뷰의 렌더링을 필요로 한다. 도 2는 이러한 해결책에 어울리는 그러한 멀티뷰 카메라 구성의 간략화된 모델을 도시한다. 이러한 구성은 스테레오스코픽 베이스라인에 대하여 여러 이산적인 값으로 캡처된 스테레오스코픽 비디오 콘텐츠를 제공하는 것이 가능하고 따라서 스테레오스코픽 디스플레이가 시청 조건에 맞는 카메라 쌍을 선택할 수 있게 한다.
3D 비전의 더욱 진보된 접근방법은 안경을 필요로 하지 않는 멀티뷰 오토스테레오스코픽 디스플레이(autostereoscopic display (ASD))(300)를 갖는 것이다. ASD는 한번에 하나보다 많은 뷰를 방사하지만, 가장 오른쪽 뷰포인트에서 보았을 때 뷰의 가운데에서 집이 보이는 도 3에 도시된 바와 같이, 이러한 방사는 시청자가 특정한 뷰포인트로부터 스테레오 쌍만을 보는 방식으로 공간 내에 국한된다. 더욱이, 시청자는 예를 들면, 가장 왼쪽 뷰포인트에서 보았을 때 뷰의 오른쪽 경계에서 집이 보이는 도 3에서, 상이한 뷰포인트로부터 다른 하나의 스테레오 쌍을 보는 것이 가능하다. 그러므로, 연속 뷰가 스테레오 쌍이고 이들 뷰가 적절하게 배열되는 경우 운동 시차 보기(motion parallax viewing)가 지원된다. ASD 기술은 예를 들면 52 이상의 상이한 영상을 동시에 보여줄 수 있으며, 그 중 오직 스테레오 쌍만이 특정 뷰포인트로부터 눈에 보일 수 있다. 이것은 예를 들면 거실 환경에서 안경 없이 다중 사용자 3D 비전을 지원한다.
앞에서 기술된 스테레오스코픽 및 ASD 애플리케이션은 디스플레이에서 멀티뷰 비디오를 이용할 수 있는 것을 필요로 한다. H.264/AVC 비디오 코딩 표준의 MVC 확장은 디코더 측에서 멀티뷰 기능을 가능하게 한다. MVC 비트스트림의 베이스 뷰는 스테레오스코픽 및 멀티뷰 콘텐츠를 기존 서비스에 용이하게 도입시켜주는 임의의 H.264/AVC 디코더에 의해 디코딩될 수 있다. MVC은 인접한 뷰가 어떻게 상관되는지에 따라서, 모든 뷰들의 독립적인 코딩과 비교하여 상당한 비트레이트를 절감하는 결과를 가져올 수 있는 뷰-간 예측을 가능하게 한다. 그러나, MVC 부호화된 비디오의 비트레이트는 통상 뷰의 개수에 비례한다. ASD가 예를 들면, 입력으로서 52 뷰를 필요로 할 수 있다는 것을 고려한다면, 그러한 뷰의 개수에 맞는 총 비트레이트는 이용 가능한 대역폭의 제한을 요구할 것이다.
결과적으로, 그러한 멀티뷰 애플리케이션에 더욱 실현 가능한 해결책은 입력 뷰의 개수를 제한하는 것, 예를 들면, 모노 또는 스테레오 뷰에다 몇 가지 보충 데이터를 더 한 것으로 제한하고, 필요한 모든 뷰를 디코더 측에서 국부적으로 렌더링(즉, 합성)하는 것임을 알게 되었다. 뷰 렌더링을 위한 여러 이용 가능한 기술 중에서, 깊이 이미지-기반 렌더링(depth image-based rendering (DIBR))이 경쟁력 있는 대안인 것으로 보인다.
DIBR-기반 3DV 시스템의 간략화된 모델이 도 4에 도시된다. 3D 비디오 코덱의 입력은 스테레오스코픽 베이스라인 b0를 가진 스테레오스코픽 비디오 및 대응하는 깊이 정보를 포함한다. 3D 비디오 코덱은 베이스라인(bi < b0)을 가진 두 입력 뷰 사이의 다수의 가상 뷰를 합성한다. DIBR 알고리즘은 두 입력 뷰의 밖에 있고 이들 사이에 있지 않은 뷰의 외삽(extrapolation)을 가능하게 해줄 수 있다. 유사하게, DIBR 알고리즘은 텍스처의 단일 뷰 및 각각의 깊이 뷰로부터 뷰 합성을 가능하게 해줄 수 있다. 그러나, DIBR-기반 멀티뷰 렌더링을 가능하게 하기 위하여, 텍스처 데이터가 디코더 측에서 대응하는 깊이 데이터와 함께 이용할 수 있어야 한다.
그러한 3DV 시스템에서, 깊이 정보는 인코더 측에서 각 비디오 프레임 마다 깊이 픽처(깊이 맵으로도 알려짐)의 형태로 생성된다. 깊이 맵은 픽셀-당(per-pixel) 깊이 정보를 가진 이미지이다. 깊이 맵 내 각 샘플은 카메라가 놓인 평면으로부터 각 텍스처 샘플의 거리를 나타낸다. 다시 말해서, 만일 z 축이 카메라의 촬영 축을 따라 놓여 있으면(그래서 카메라가 놓인 평면에 직교하면), 깊이 맵 내 샘플은 z축 상의 값을 나타낸다.
깊이 정보는 다양한 수단에 의해 구할 수 있다. 예를 들면, 3D 장면의 깊이는 촬영 카메라에 의해 기록된 디스패리티로부터 계산될 수 있다. 깊이 추정 알고리즘은 스테레오스코픽 뷰를 입력으로서 취하고 그 뷰의 두 옵셋 이미지 사이의 로컬 디스패리티를 계산한다. 각각의 이미지는 중첩 블록에서 픽셀 단위로 처리되며, 각 픽셀 블록 마다 옵셋 이미지 내 매칭 블록에 대하여 수평방향으로 국한된 검색이 수행된다. 일단 픽셀-별(pixel-wise) 디스패리티가 계산되면, 대응하는 깊이 값(z)은 수학식 3에 의해 계산된다.
Figure 112014109802379-pct00004
수학식에서 도 1에 도시된 것처럼 f는 카메라의 초점 길이이며 b는 카메라 사이의 베이스라인 거리이다. 또한, d는 두 카메라 사이에서 관측된 디스패리티를 말하며, 카메라 옵셋(△d)은 두 카메라의 광학 중심의 가능한 수평 오배치(misplacement)를 반영한다.
앞에서 설명한 스테레오 뷰 깊이 추정에 대안으로 또는 부가적으로, 깊이 값은 비행시간(time-of-flight (TOF)) 원리를 이용하여 구할 수 있다. 도 5 및 도 6은 TOF-기반 깊이 추정 시스템의 예를 도시한다. 카메라는 광원, 예를 들면, 장면을 조명하기 위한 적외선 방사체를 갖추고 있다. 그러한 조명기는 예를 들면, 10-1000 MHz 사이의 주파수에 필요한 강도 변조 전자파 방사(intensity modulated electromagnetic emission)를 발생하도록 구성될 수 있는데, 이것은 LED 또는 레이저 다이오드를 사용하는 것을 필요로 할 수 있다. 적외선 광은 일반적으로 조명이 드러나지 않게 하는데 사용된다. 장면 내 물체로부터 반사된 광은 이미지 센서에 의해 검출되고, 동시에 조명기와 동일한 주파수로 변조된다. 이미지 센서는 광학 장치, 즉 반사된 광을 모으는 렌즈 및 조명기와 동일한 파장을 가진 광만을 통과시켜서 배경 광을 억압하는데 조력하는 광 대역통과 필터를 갖고 있다. 이미지 센서는 각 픽셀 마다 광이 조명기로부터 물체 및 뒷면까지 이동하는데 걸린 시간을 측정한다. 물체까지의 거리는 조명 변조에서 위상 시프트로서 표현되는데, 이것은 장면 내 각 픽셀 마다 동시에 샘플된 데이터로부터 결정될 수 있다.
깊이-강화된 멀티뷰 코딩의 경우, 뷰 합성은 인코더의 인코딩 루프 및 디코더의 디코딩 루프에서 이용될 수 있으며, 그래서 뷰 합성 예측(view synthesis prediction (VSP))을 제공할 수 있다. 뷰 합성 픽처(참조 컴포넌트)는 합성 참조 컴포넌트라고도 지칭될 수 있는데, 이는 뷰 합성 예측을 위해 사용될 수 있는 샘플을 포함하고 있는 것으로 정의될 수 있다. 합성 참조 컴포넌트는 뷰 합성 예측을 위한 참조 픽처로서 사용될 수 있지만, 통상 출력되거나 디스플레이되지 않는다. 뷰 합성 픽처는 부호화 또는 복호화되고 있는 픽처에 대해 카메라 위치가 동일하여 카메라 파라미터가 동일하다는 가정하는 경우에 통상적으로 생성된다. 인코딩 루프의 예는 도 8에 도시된다.
뷰 합성 픽처를 유도하기 위한 예시적인 프로세스의 입력은 텍스처 뷰 컴포넌트의 디코딩된 루마 컴포넌트(srcPicY)와, srcPicY 의 해상도로 업-샘플된 두 크로마 컴포넌트(srcPicCb 및 srcPicCr), 및 깊이 픽처(DisPic)이다.
뷰 합성 픽처를 유도하기 위한 예시적인 프로세스의 출력은 디스패리티-기반 와핑(disparity-based warping)을 통해 생성된 합성 참조 컴포넌트(vspPic)의 샘플 어레이이며, 이것은 다음과 같은 의사 코드로 예시될 수 있다.
Figure 112014109802379-pct00005
여기서 함수 "Disparity()"는 공간 위치(i,j)에서 깊이 맵 값을 디스패리티 값(dX)로 변환하며, PicHeigh는 픽처의 높이이고, PicWidth는 픽처의 폭이고, srcTexturePicY는 소스 텍스처 픽처이고, outputPicY 는 출력 픽처의 Y 컴포넌트이고, outputPicCb는 출력 픽처의 Cb 컴포넌트이며, outputPicCr는 출력 픽처의 Cr 컴포넌트이다.
디스패리티는 두 뷰(b) 사이의 평행이동, 카메라의 초점 길이(f) 및 깊이 맵 표현의 파라미터(Znear, Zfar)와 같은 카메라 설정치를 고려하여 아래에 도시된 바와 같이 계산된다.
Figure 112014109802379-pct00006
앞에서 기술된 프로세스로부터 발생하는 vspPic 픽처는 구멍(holes) 및/또는 폐색(occlusions)과 같은 각종 와핑 인공물을 포함할 수 있으며, 이러한 인공물을 억제하기 위하여, 구멍 채우기와 같은 다양한 후처리 작업이 적용될 수 있다.
그러나, 이러한 작업은 계산 복잡도를 줄이기 위해서 회피될 수 있는데, 이것은 뷰 합성 픽처(vspPic)가 예측을 위한 참조 픽처에 이용되며 디스플레이하기 위해 출력되지 않을 수 있기 때문이다.
합성된 픽처{outputPicY, outputPicCb, outputPicCr}는 뷰-간 참조 픽처에 대하여 수행된 것과 유사한 방식으로 참조 픽처 리스트 내에 포함될 수 있다. 뷰 합성 예측의 경우에 참조 픽처 리스트를 이용한 시그널링 및 동작은 H.264/AVC 또는 HEVC에서 명시된 것과 여전히 동일하거나 유사하다.
유사하게, 뷰 합성 예측에서 움직임 정보를 유도하는 프로세스 및 이것의 애플리케이션은 H.264/AVC 또는 HEVC의 인터 및 뷰-간 예측에 대해 명시된 프로세스와 여전히 동일하거나 유사하다.
뷰 합성 예측을 3D 비디오 인코딩/디코딩 프로세스에 도입하는 것은 움직임 정보 시그널링 및 디코딩과 같은 그러한 저급 동작에는 영향을 미치지 않을 수 있고, 그래서 기존 H.264/AVC 또는 HEVC 코딩 표준과의 낮은 수준의 호환성을 보전할 수 있다.
스케일러블 비디오 코딩(scalable video coding)은 비트스트림이 복수개의 콘텐츠 표현을 상이한 비트레이트, 해상도 및/또는 프레임 레이트로 가지고 있을 수 있는 코딩 구조를 말한다. 이러한 경우, 수신기는 그의 특성(예를 들면, 장치의 디스플레이의 해상도에 가장 맞는 해상도)에 따라서 원하는 표현을 추출할 수 있다. 대안으로, 서버 또는 네트워크 요소는 예를 들면, 수신기의 네트워크 특성 또는 처리 역량에 따라서 수신기에 전송될 비트스트림의 부분을 추출할 수 있다. 스케일러블 비트스트림은 이용 가능한 최저 품질의 비디오를 제공하는 베이스 계층 및 수신되어 하위 계층과 함께 디코딩될 때 비디오 품질을 강화시키는 하나 이상의 강화 계층으로 구성될 수 있다. 강화 계층의 코딩 효율을 개선하기 위하여, 그 계층의 부호화된 표현은 하위 계층에 좌우될 수 있다. 예를 들면, 강화 계층의 움직임 및 모드 정보는 하위 계층으로부터 예측될 수 있다. 유사하게, 하위 계층의 픽셀 데이터는 강화 계층(들)에 필요한 예측을 생성하는데 사용될 수 있다.
품질 스케일러빌리티(신호-대-잡음 비 또는 SNR로도 알려짐) 및/또는 공간 스케일러빌리티를 위한 스케일러블 비디오 인코더는 다음과 같이 구현될 수 있다. 베이스 계층에 대하여, 통상의 논-스케일러블 비디오 인코더 및 디코더가 사용될 수 있다. 베이스 계층의 재구성된/디코딩된 픽처는 강화 계층에 대한 참조 픽처 버퍼 및/또는 참조 픽처 리스트에 포함된다. 공간 스케일러빌리티의 경우, 재구성된/디코딩된 베이스-계층 픽처는 업샘플된 다음 강화-계층 픽처의 참조 픽처 리스트에 삽입될 수 있다. 베이스 계층 디코딩된 픽처는 강화 계층의 디코딩된 참조 픽처와 유사하게 강화 계층 픽처의 코딩/디코딩을 위해 참조 픽처 리스트(들)에 삽입될 수 있다. 따라서, 인코더는 베이스-계층 참조 픽처를 인터 예측 참조로서 선택할 수 있고 부호화된 비트스트림에서 이것의 사용을 참조 픽처 인덱스로 표시할 수 있다. 디코더는 그 비트스트림으로부터, 예를 들면 베이스-계층 픽처가 강화 계층에 대한 인터 예측 참조로서 사용되는 참조 픽처 인덱스로부터 디코딩한다. 디코딩된 베이스-계층 픽처가 강화 계층에 대한 예측 참조로서 사용될 때, 이것은 계층-간 참조 픽처라고 지칭된다.
예시적인 실시예가 강화 계층 및 베이스 계층으로 된 두 개의 스케일러빌리티 계층에 대하여 기술되지만, 실시예는 둘 보다 많은 계층을 가진 스케일러빌리티 계층구조에서 임의의 두 계층으로 일반화될 수 있다는 것을 이해하여야 한다. 이 경우, 인코딩 및/또는 디코딩 프로세스에서 제 2 강화 계층은 제 1 강화 계층에 종속할 수 있으며, 그러므로 제 1 강화 계층은 제 2 강화 계층을 인코딩 및/또는 디코딩하는 경우 베이스 계층으로 간주될 수 있다. 뿐만 아니라, 강화 계층의 참조 픽처 버퍼 또는 참조 픽처 리스트에서 하나보다 많은 계층으로부터 계층-간 참조 픽처가 존재할 수 있으며, 각각의 이러한 계층-간 참조 픽처는 인코딩되는 및/또는 디코딩되는 강화 계층에 대하여 베이스 계층 또는 참조 계층에 상주하는 것으로 간주될 수 있다는 것을 이해하여야 한다.
움직임 보상에 사용된 움직임 벡터는 주변 예측 유닛의 움직임 정보를 이용하여 상이하게 부호화될 수 있다. 이러한 종류의 유도 프로세스는 특정한 예측 구조의 맥락에서 움직임 벡터의 통계적 특성을 고려하지 않는다. 예를 들면, 만일 스케일러블 비디오 코딩이 베이스 계층 픽처를 강화 계층의 예측 후보로서 이용하면, 움직임 벡터 필드는 상이한 시간의 순간에서 픽처를 가리키는 전통적인 움직임 벡터 필드와 아주 상이할 수 있다. 3D 비디오 코딩과 관련된 다른 예에서, 소스 비디오는 병렬 카메라 구성을 이용하여 생성될 수 있으며 입력 멀티뷰 비디오 데이터는 카메라 기하구조 및 컬러의 오정렬을 방지하기 위해 수정된다. 이러한 환경 하에서, 양방향 시간 예측에 잘 맞는 x축 및 y축을 따른 변위 +/- N의 균일한 확률 모델은 뷰-간 참조 컴포넌트에서 변위를 기술하기에는 최적이 아닐 수 있다. 깊이-강화된 3D 비디오 코딩에서, 뷰 합성 예측 참조 컴포넌트는 통상 부호화/디코딩되는 픽처에 맞추어 조정되며 그래서 상이한 시간의 순간에서 참조 픽처를 가리키는 공간적으로 이웃하는 움직임 벡터는 뷰 합성 예측 참조 컴포넌트를 가리키는 움직임 벡터를 양호하게 예측하지 못할 개연성이 있다.
예를 들면, H.264/AVC은 수직 움직임 벡터 컴포넌트 범위가 [-512, 511.75]에 이를 수 있고, 반면에 수평 움직임 벡터 컴포넌트는 다른 범위[-2048 내지 2047.75]에 속할 수 있다고 명시하고 있다. 이러한 사양은 디코딩은 물론이고 메모리 액세스를 수행하는 컴퓨터 플랫폼에서 특정 요건을 부과한다. 이러한 요건의 완화가 바람직하다.
뷰-간 예측 및 수정된 입력 비디오의 경우, 카메라가 기하학적으로 수정되며 동일한 물체가 이용 가능한 모든 뷰에서 동일한 수직 y-좌표에 존재하는 것으로 예상될 때, 변위 성분(mv_y)은 0에 가까울 개연성이 있다. 수평 방향(x-축)에서 변위는 약간의 서브-픽셀 옵셋이 있는 디스패리티 값(+/- n)에 가까울 개연성이 있다. 따라서, H.264/AVC과 같은 통상의 비디오 코딩 시스템에서 이용된 움직임 벡터에 관한 통계적 가정은 H.264/AVC의 뷰-간 예측에서 관측된 실제 움직임 벡터 통계를 반영하지 않는다.
뷰 합성 예측의 경우 그리고 고품질 깊이 맵의 가정 하에서, 움직임 벡터 컴포넌트(mv_y 및 mv_x)의 변위는 0에 가까울 것으로 예상 - 0은 약간의 서브-픽셀 옵셋(+/- n)을 가짐 - 되는데, 이것은 깊이 맵 또는 뷰 합성 예측 프로세싱의 부정확성에 의해 발생될 수 있다. 그러므로, H.264/AVC과 같은 통상의 비디오 코딩 시스템에서 이용된 움직임 벡터에 관한 통계적 가정은 3D 비디오 코딩이 뷰 합성 예측에서 관측된 움직임 벡터 통계를 반영하지 않는다.
계층-간 참조 픽처가 강화 계층 블록을 디코딩(코딩)하는데 사용될 때, 두 움직임 벡터 컴포넌트는 0일 것으로 예상된다. 이것은 강화 계층 블록이 베이스 계층 및 어쩌면 일부 다른 하위 계층에서 동일-위치에 있는 블록에 기초하여 예측될 수 있다는 가정을 기반으로 한다. 그래서, 움직임 벡터는 상이한 계층에서 동일한 위치를 가리키는 것으로 간주될 수 있다. 공간 스케일러빌리티가 사용되는 경우, 베이스 계층 참조 픽처는 베이스 계층 참조 픽처를 강화 계층의 참조 픽처 리스트에 삽입하기 전에 먼저 강화 계층의 해상도로 업샘플되는 것으로 가정된다.
움직임 인코딩의 결과로 발생하는 움직임 벡터 컴포넌트는 예측된 움직임 벡터(predicted motion vector (MVP))를 이용하여 차별되게 부호화될 수 있다. 일부 인코더에서, 이러한 차별된 값은 CABAC를 이용하여 부호화되고 CABAC 컨텍스트 자체를 갱신한다.
그러나, H.264/AVC에서, CABAC 초기화는 움직임 벡터에 대해 x축 및 y축을 따른 변위(+/- N)의 균일한 확률을 가정하여 설계되는데, 이것은 뷰-간 예측, 뷰 합성 예측, 및 계층-간 예측에는 최적하지 않을 수 있다.
디코더는 명시된 일련의 작업을 통해 디코딩된 비트스트림으로부터 움직임 벡터 컴포넌트를 추출할 수 있다. 이러한 작업은 CABAC 비트 디코딩, 움직임 벡터의 차분 디코딩, 결과의 움직임 벡터를 고정시켜서 그 결과의 움직임 벡터가 특정 범위(예를 들면, 부호화된 프레임 제한치 내)에 속하는 것을 확인하기를 포함할 수 있다. 이러한 작업 이외에, 디코더는 결과의 움직임 벡터가 참조 프레임 내 서브-픽셀 위치를 가리키는 경우 참조 프레임 보간을 수행할 수 있다.
뷰 합성 기반 예측 및 계층-간 예측의 경우 수평 및 수직 움직임 벡터 컴포넌트(mv_x 및 mv_y)와, 뷰-간 예측의 경우 수직 움직임 벡터 컴포넌트(mv_y)는 둘 다 제로일 개연성이 가장 높다. 그러나, 디코더는 최악의 복잡도, 즉, 앞에서 설명한 작업을 요하는 서브-픽셀 움직임 벡터에 대비하여야 한다. 부호화된 비트스트림이 그러한 움직임 벡터를 생성하지 않을지라도, 명시된 표준의 요구된 수준과 가상적 참조 디코더에 순응하기 위하여, 디코더는 디코딩 동작 및 요구된 보간을 실시간으로 수행할 수 있어야 한다는 것을 주목하여야 한다.
일부 인코더에서, 움직임 벡터는 이웃 블록의 움직임 벡터에 대하여 예측(공간 예측) 또는 다른 픽처 내 동일-위치의 블록의 움직임 벡터에 대하여 예측(시간 예측)된다. 사용될 실제 움직임 벡터는 비트스트림에서 표시된 차분 움직임 벡터(MVd)를 예측된 움직임 벡터에 합함으로써 생성된다. 차분 움직임 벡터의 디코딩을 생략하고 예측된 움직임 벡터를 예측 유닛의 최종 움직임 벡터로서 사용하는 특별한 모드(이를 테면, "스킵 모드")가 있을 수 있다.
본 발명의 일부 예시적인 실시예에 따른 인코더는 다음과 같은 동작 중 하나 이상을 포함할 수 있다. 본 출원에서 디코딩을 위한 디코더 측에도 유사한 원리가 적용가능하다는 것을 주목하여야 한다.
인코더(800)의 예는 도 8에서 간략화된 블록도로서 도시되며 예시적인 실시예에 따른 인코더의 동작은 도 13의 흐름도로서 도시된다. 인코더(800)는 인코딩을 위한 텍스처 뷰의 현재 프레임의 블록을 수신(802)한다. 이 블록은 현재 블록이라고도 부른다. 현재 블록은 감산 요소와 같은 제 1 결합기(804)에 제공되고, 움직임 예측기(806)에도 제공된다. 움직임 예측기(806)는 이전에 인코딩된 프레임(들)을 저장하는 프레임 버퍼(812)에 액세스하거나 또는 움직임 예측기(806)는 다른 수단을 통해 하나 이상의 이전에 인코딩된 프레임의 하나 이상의 블록을 제공받을 수 있다. 움직임 예측기(806)는 하나 이상의 이전에 부호화된 블록 중 어느 블록이 이 블록을 현재 블록에 대한 예측 참조로서 사용하기에 양호한 기준을 제공할지 검사한다. 만일 적절한 예측 참조가 발견되면, 움직임 예측기(806)는 선택된 블록이 현재 프레임 내 현재 블록의 위치에 대해 참조 프레임 내 어디에 위치하는지를 표시하는 움직임 벡터를 계산한다. 움직임 벡터 정보는 제 1 엔트로피 인코더(814)에 의해 인코딩될 수 있다. 예측 참조의 정보는 예측된 블록을 계산하는 움직임 추정기(810)에 또한 제공된다.
제 1 결합기(804)는 현재 블록과 예측된 블록(808) 간의 차를 결정한다. 이 차는 예를 들면, 현재 블록의 픽셀 값과 예측된 블록의 대응하는 픽셀 값 간의 차를 계산함으로써 결정될 수 있다. 이 차는 예측 오차(prediction error)라고 부른다. 예측 오차는 변환 요소(816)에 의해 변환 도메인으로 변환될 수 있다. 이러한 변환은 예를 들면, 이산 코사인 변환(discrete cosine transform (DCT))일 수 있다. 변환된 값은 양자화기(818)에 의해 양자화된다. 양자화된 값은 제 2 엔트로피 인코더(820)에 의해 인코딩될 수 있다. 양자화된 값은 또한 변환된 값을 재구성하는 역 양자화기(822)에 제공될 수 있다. 그런 다음 재구성된 변환된 값은 역 변환 요소(824)에 의해 역변환되어 재구성된 예측 오차 값을 구한다. 재구성된 예측 오차 값은 제 2 결합기(826)에 의해 예측된 블록과 결합되어 현재 블록의 재구성된 블록 값을 구한다. 재구성된 블록 값은 배열 요소(828)에 의해 올바른 순서대로 배열되고 프레임 버퍼(812)에 저장된다.
일부 실시예에서, 인코더(800)는 또한 하나 이상의 다른 뷰(832) 및 깊이 정보(834)(예를 들면, 깊이 맵)의 텍스처 뷰 프레임을 이용하여, 예를 들면, 두 대의 상이한 카메라에 의해 촬영된 두 개의 상이한 뷰에 기초하여 다른 뷰(836)를 합성하는 뷰 합성 예측기(830)를 포함한다. 다른 텍스처 뷰 프레임(832) 및/또는 합성된 뷰(836)는 움직임 예측기(806)가 다른 뷰를 사용할 수 있도록 및/또는 현재 블록에 대한 예측 참조를 선택할 시에는 합성된 뷰를 사용할 수 있도록 프레임 버퍼(812)에 저장될 수 있다. 몇몇의 경우(예를 들면, 특별한 타입의 참조 픽처의 경우), 인코더는 일련의 유효한 움직임 벡터 컴포넌트 값을 비어 있는 것(empty)으로 정의할 수 있는데, 이 경우 이 움직임 벡터 컴포넌트와 관련된 신택스 요소(들)의 인코딩은 생략될 수 있으며 이 움직임 벡터 컴포넌트의 값은 디코딩 시에 유도될 수 있다. 몇몇의 경우, 인코더는 일련의 유효한 움직임 벡터 컴포넌트 값을 인터 예측을 위한 일련의 정상적인 움직임 벡터 값보다 작게 정의할 수 있는데, 이 경우 움직임 벡터 차에 대한 엔크로피 코딩은 예를 들면, 통상의 인터 예측 움직임 벡터에 대한 컨텍스트와 상이한 이들 움직임 벡터 차에 대한 CABAC 컨텍스트를 이용함으로써 변경될 수 있다. 상이한 CABAC 컨텍스트는 움직임 벡터 정보를 인코딩할 때 제 1 엔트로피 인코더(814)에 의해 사용될 수 있다. 몇몇의 경우에서, 움직임 벡터 값의 우도(likelihood)는 (예를 들면, 공간적으로 또는 시간적으로) 이웃하는 움직임 벡터에 종속하기 보다는 아주 더 많이 참조 픽처에 종속할 수 있으며 그래서 엔트로피 코딩은 다른 움직임 벡터에 대해 사용된 것과 상이할 수 있는데, 예를 들면, 상이한 초기 CABAC 컨텍스트가 사용될 수 있으며, 및/또는 상이한 CABAC 이진화 방식이 사용될 수 있으며, 및/또는 상이한 컨텍스트가 유지되고 적응될 수 있거나 또는 신택스 요소의 비-컨텍스트-적응적 코딩이, 예를 들면 참조 픽처의 타입(예를 들면, 뷰 합성 픽처, 뷰-간 참조 픽처, 계층-간 참조 픽처, 인터/시간 참조 픽처), 및/또는 현재 픽처 및 참조 픽처의 스케일러빌리티 계층 및/또는 현재 픽처 및 참조 픽처의 뷰 및/또는 사용된 참조 픽처 및 잠재적으로 현재 픽처의 임의의 다른 특성에 따라서 사용될 수 있다.
일부 실시예에서, 움직임 벡터 정보가 참조 픽처 인덱스의 표시와 결합될 때를 표시하는 메커니즘이 제공된다. 예를 들면, 참조 픽처의 타입은 각 참조 픽처 리스트 내 각 참조 픽처와 연관될 수 있다. 참조 픽처의 타입은, 예를 들면, 시간(인터) 참조 픽처, 뷰-간 참조, 뷰 합성 참조 픽처, 또는 계층-간 참조 픽처일 수 있다. 인코더 및 디코더는 참조 픽처의 타입을 추론할 수 있으며 이 타입은 인코더에 의해 비트스트림에서 명시적으로 표시될 수 있다. 그러면 움직임 벡터의 존재, 엔트로피 코딩 방법, 및/또는 디코딩 프로세스가 예측 유닛에 사용되는 참조 픽처의 타입 또는 임의의 다른 속성으로부터 추론될 수 있다.
인코더는 참조 픽처 또는 픽처들이 그와 연관된 고정된 움직임 벡터를 가지고 있음을 정의하는 표시를 인코딩할 수 있으며 디코더는 이를 디코딩할 수 있다. 이 표시는 예를 들면, 픽처 또는 슬라이스 레벨에 있을 수 있다. 이 표시는 참조 픽처(예를 들면, VSP, 뷰-간, 및 계층-간 참조 픽처)의 타입, 및/또는 현재 픽처 및 참조 픽처의 스케일러빌리티 및/또는 현재 픽처 및 참조 픽처의 뷰 및/또는 사용된 참조 픽처 및 잠재적으로 현재 픽처의 임의의 다른 속성으로부터 추론될 수 있다.
디코더는 먼저 예측 유닛과 연관된 참조 인덱스에 관한 표시를 디코딩할 수 있다. 만일 그 참조 인덱스가 표시된 특별한 움직임 벡터 필드를 가진 픽처를 가리키면, 움직임 벡터 예측 및 차분 움직임 벡터 디코딩 프로세스는 전체적으로 또는 부분적으로 바이패스될 수 있으며 /있거나 컨텍스트-기반 엔트로피 디코딩 프로세스는 통상의 움직임 벡터의 디코딩 프로세스와 상이할 수 있다. 뿐만 아니라, 만일 차분 움직임 벡터 디코딩이 전체적으로 또는 부분적으로 바이패스된다면, 움직임 벡터는 예측 유닛에 대한 특별한 프로세스를 이용하여 유도될 수 있다.
뷰 합성 기반 예측, 뷰-간 예측, 및 계층-간 예측에 이용된 움직임 벡터 컴포넌트들은 일련의 신택스 요소들 및 일련의 디코딩 동작들을 정의하는 그들의 적용성 범위에서 제한받을 수 있다. 예를 들면, 움직임 벡터 컴포넌트 또는 예측 값에 대한 움직임 벡터 컴포넌트 차의 값 범위 및/또는 정도(precision)는 제한될 수 있다. 뿐만 아니라, 일부 실시예에서, 뷰 합성 기반 예측, 뷰-간 예측, 및/또는 계층-간 예측에 이용된 차분 움직임 벡터 컴포넌트는 인터 또는 시간 움직임-보상된 예측에 이용된 차분 움직임 벡터 컴포넌트와 비교하여 상이한 초기 컨텍스트를 가질 수 있다. 뿐만 아니라, 일부 실시예에서, 뷰 합성 기반 예측, 뷰-간 예측, 및/또는 계층-간 예측에 이용된 차분 움직임 벡터 컴포넌트는 인터 또는 시간 움직임-보상된 예측의 차분 움직임 벡터 컴포넌트의 이진화와 비교하여 컨텍스트-기반 산술 코딩 및 디코딩에 대해 상이하게 이진화될 수 있다.
인코더가 프레임 또는 픽처의 블록을 인코딩할 때, 인코더는 어느 참조 블록이 적절한 코딩 효율을 제공할지를 결정할 수 있다. 인코딩될 블록은 도 13에서 블록(100)으로 도시된 인코더로 입력될 수 있다. 참조 블록은 동일한 픽처에 속할 수 있는데, 즉, 예측은 예컨대 인터 예측을 나타내는 현재 블록의 프레임보다 이전의 또는 후속하는 프레임과의 인트라 예측일 것이고, 예측은 예컨대 뷰 합성 예측을 나타내는 합성된 뷰와의 인트라 예측일 것이고, 예측은 예컨대 뷰-간 예측을 나타내는 상이한 뷰의 프레임과의 인트라 예측일 것이고, 또는 예측은 계층-간 예측을 나타내는 상이한 게층의 프레임과의 인트라 예측일 것이다. 본 발명의 범위를 제한함이 없이, 본 출원에서 인트라 예측 및 인터 예측은 각기 통상의 인트라 예측 및 통상의 인터 예측으로 불릴 수도 있다.
인코더가 현재 블록에 대한 참조 블록을 선택(102)(즉, 예측 참조)하고 참조 블록의 타입을 결정하면(104), 인코더는 참조 블록(프레임)의 표시를 비트스트림에 삽입한다(122). 이 표시는 참조 인덱스일 수 있거나 참조 인덱스를 포함할 수 있으며 이 표시는 예측 타입을 나타내는 것으로 해석될 수 있다.
이후 인코더의 동작은 예측의 타입에 의존할 수 있다. 만일 예측의 타입이 통상의 인터 예측이면, 인코더는 예측 참조에 기초하여 움직임 벡터(들)를 결정할 수 있고 실제 움직임 벡터와 예측 참조의 움직임 벡터 간의 차를 결정할 수 있다. 이 차는 차분 움직임 벡터(MVd)라고도 부른다. 그런 다음 인코더는 움직임 벡터 차를 비트스트림으로 인코딩한다(120).
만일 예측의 타입이 뷰 합성 예측(106)이거나 또는 계층-간 예측(114)이면, 인코더는 움직임 벡터의 수평 및 수직 컴포넌트(mv_x, mv_y)를 범위 [-a,a] 내로 제한할 수 있다(108, 116). 이 범위는 사전에 정해질 수 있는데, 예를 들면, a의 값은 0이도록 요구될 수 있거나 또는 예를 들면 시퀀스-별 기준으로 예를 들어, 시퀀스 파라미터 세트 신택스 구조에서 표시될 수 있다. 일반적인 경우, 이 범위는 비대칭[a,b]일 수 있다(여기서 a<b 이고 a는 b일 필요는 없음). 더욱이, 일반적인 경우, 수평 움직임 벡터 컴포넌트의 범위는 각 수직 움직임 벡터 컴포넌트의 범위와 상이할 수 있다. 이 경우, 움직임 벡터의 수평 컴포넌트(mv_x, mv-y)의 한계는 제 1 범위[a12, b1]로서 표현될 수 있으며, 움직임 벡터의 수직 컴포넌트(mv_x, mv_y)의 한계는 제 2 범위[a2,b2]로서 표현될 수 있다.
만일 예측의 타입이 뷰-간 예측(110)이면, 인코더는 움직임 벡터의 수직 컴포넌트(mv_y)를 범위[-a,a] 내로 제한한다(112). 이 범위는 사전에 정해질 수 있는데, 예를 들면, a의 값은 0이되도록 요구될 수 있거나 또는 예를 들면, 시퀀스-별 기준으로, 예컨대 시퀀스 파라미터 세트 신택스 구조에서 표시될 수 있다. 일반적인 경우, 이 범위는 비대칭적[a,b]일 수 있다(여기서 a<b이며 a가 b일 필요는 없음).
일부 실시예에서, 움직임 벡터에 적용가능한 범위 제한(a,b)은 대형 시험 세트를 통해 추정될 수 있다. 한가지 가능한 예는 제로 제한(zero restriction)이다. 즉, a는 계층-간 예측 및 뷰 합성 예측의 두 수평 및 수직 움직임 벡터 컴포넌트 및 뷰-간 예측의 수직 움직임 벡터 컴포넌트에 대해 0이다. 그러므로, 실제 움직임 벡터 범위는 H.264/AVC 및 HEVC 기반 코딩 시스템에서 [-0.75, 0.75]일 수 있다. 만일 정확도가 0.25인 경우, 본 예에서 움직임 벡터 범위는 다음을 포함할 것이다. 즉, [-0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75].
일부 실시예에서, 움직임 벡터의 정도 및 특정 타입의 예측 또는 참조 픽처(예를 들면, 뷰 합성 픽처, 뷰-간 참조 픽처, 및/또는 계층-간 참조 픽처)의 움직임 벡터 차는 인터 또는 시간 참조 픽처의 그것과 상이할 수 있다. 예를 들면, 쿼터-픽셀(quarter-pixel)(0.25)의 정도는 인터 또는 시간 참조 픽처에서 사용될 수 있지만, 정수-픽셀 정도는 뷰 합성 참조 픽처에서 사용될 수 있다.
비디오 스트림을 전송하는 장치의 엔트로피 인코더에 의해 및/또는 비디오 스트림을 수신하는 장치의 엔트로피 디코더에 의해 사용되는 뷰 합성, 계층-간 및 뷰-간 예측된 움직임 벡터에 대하여 컨텍스트 초기화 테이블이 정의된다(118). 움직임 벡터에 대한 CABAC 컨텍스트의 컨텍스트 및/또는 초기화 값은 예를 들면, 움직임 벡터의 통계치가 예를 들면, 인코딩을 통해 계산될 수 있는 테스트 시퀀스의 대형 세트를 이용하여 유도될 수 있다.
아래에서, 디코더(900)의 예시적인 실시예의 동작이 도 9및 도 14의 흐름도를 참조하여 설명될 것이다. 디코더(900)는 인코딩된 비디오 정보를 포함하는 비트스트림 또는 비트스트림의 일부(902)를 수신한다(200). 인코딩된 비디오 정보는 예측 오차 값, 움직임 벡터, 참조 인덱스 등을 포함할 수 있다. 본 출원에서 이러한 모든 정보가 동일한 비트스트림에 포함될 필요는 없고, 이 정보의 일부는 상이한 종류의 신택스 요소를 이용하여 상이한 비트스트림에서 전송될 수 있다는 것을 주목하여야 한다.
아래에서, 움직임 벡터 처리와 관련하는 디코딩에 관해 주로 설명되며 블록의 재구성과 같은 다른 디코딩 동작(904)의 설명은 본 명세서에서 대부분 생략될 것이다.
디코더(900)는 수신되고 엔트로피 인코딩된 정보를 디코딩하는 엔트로피 디코더(906)를 포함할 수 있다. 디코딩된 정보는 움직임 벡터 디코더(908)에 제공될 수 있다. 움직임 벡터 디코더(908)는 디코딩된 정보를 검사하여 수신된 비트스트림에 참조 인덱스 또는 현재 블록에 대한 참조 타입의 다른 종류의 참조 표시가 포함되었는지 여부를 결정하는 참조 타입 검사 요소(910)를 포함할 수 있다. 만일 참조 표시가 수신되었다면, 참조 타입 검사 요소(910)는 참조 표시에 기초하여 참조 타입을 결정할 수 있다(202). 만일 참조 표시가 수신되지 않았으면, 참조 타입 검사 요소(910)는 다른 데이터를 사용하여 참조 타입을 결정할 수 있다.
움직임 벡터 디코더(908)는 현재 블록에 대한 움직임 벡터 컴포넌트를 재구성할 수 있는 움직임 벡터 재구성 요소(912)를 더 포함할 수 있다.
만일 참조 표시가 현재 블록이 통상의 인트라 예측을 이용하여 예측되었다고 나타내면, 현재 블록은 수신된 예측 오차 정보 및 동일 프레임 내에서 현재 프레임보다 이전에 디코딩된 블록의 정보를 이용하여 재구성될 수 있다(220). 만일 표시가 현재 블록이 통상의 인터 예측을 이용하여 예측되었다고 나타내면, 움직임 벡터 정보 및 예측 오차 정보는 예측 참조, 즉 인코더(800)가 현재 프레임에 대해 예측 참조를 재구성(220)할 때 사용하였던 이전에 디코딩된 다른 프레임의 블록과 함께 디코딩되어 사용된다.
만일 참조 표시가 현재 블록이 뷰 합성 예측을 이용하여 예측된 것이라고 나타내면(204), 일부 실시예에서 디코더(900)에 의해 다음과 같은 동작이 수행될 수 있다. 디코더(900)는 수평 및 수직 움직임 벡터 컴포넌트가 제한되는(206) 범위[-a,b]의 정보를 포함할 수 있거나 이 정보를 인코더(800)로부터 수신할 수 있다. 다시 말해서, 디코더는 수평 및 수직 움직임 벡터 컴포넌트가 범위[-a,b]를 벗어난 값을 갖지 않아야 한다는 것을 알고 있다. 일부 실시예에서, a는 b와 같지만 일반적인 경우로서 a가 b와 같을 필요는 없다. 일부 실시예에서, a=b=0이다. 디코더는 또한 수평 및 수직 움직임 벡터 컴포넌트(mv_x, mv_y)를 각기 기술하는 신택스 요소를 판독하며, 디코더는 현재 블록을 획득하는데(218) 사용될 수평 및 수직 움직임 벡터 컴포넌트를 디코딩한다(216). 그러나, 만일 a(및 b)의 값이 0와 같고 인코더가 차분 움직임 벡터 컴포넌트를 비트스트림으로 부호화하지 않았다면, 디코더(900)는 수평 및 수직 움직임 벡터 컴포넌트를 기술하는 신택스 요소를 판독하지 않는다. 더욱이, 디코더는 움직임 벡터 컴포넌트의 디코딩 작업을 생략할 수 있다. 그 대신에, 디코더는 수평 및 수직 움직임 벡터 컴포넌트의 값이 둘 다 제로, 즉 mv_x=mv_y=0이라고 결정할 수 있다. 또한 a=b=0일 때 참조 픽처를 보간할 필요는 없다.
만일 참조 표시가 현재 블록이 뷰-간 예측을 이용하여 예측되었다고 나타내면(208), 일부 실시예에서 디코더(900)에 의해 다음과 같은 동작이 수행될 수 있다. 디코더(900)는 수직 움직임 벡터 컴포넌트가 제한되는(210) 범위[-a,b]의 정보를 포함할 수 있거나 이 정보를 인코더(800)로부터 수신할 수 있다. 다시 말해서, 디코더는 수직 움직임 벡터 컴포넌트가 범위[-a,b]를 벗어난 값을 갖지 않아야 한다는 것을 알고 있다. 일부 실시예에서, a는 b와 같지만 일반적인 경우로서 a가 b와 같을 필요는 없다. 일부 실시예에서, a=b=0이다. 디코더는 또한 수평 및 수직 움직임 벡터 컴포넌트(mv_x, mv_y)를 각기 기술하는 신택스 요소를 판독하며, 디코더는 현재 블록을 획득(218)하는데 사용될 수평 및 수직 움직임 벡터 컴포넌트를 디코딩한다(216). 그러나, 만일 a(및 b)의 값이 0와 같고 인코더가 차분 수직 움직임 벡터 컴포넌트를 비트스트림으로 부호화하지 않았다면, 디코더(900)는 수직 움직임 벡터 컴포넌트를 기술하는 신택스 요소를 판독하지 않고 수평 움직임 벡터 컴포넌트를 기술하는 신택스 요소만을 판독하며 현재 블록을 획득하는데 사용될 수평 움직임 벡터 컴포넌트를 디코딩한다. 또한 a=b=0일 때 참조 픽처를 수직 방향에서 보간할 필요는 없다.
만일 참조 표시가 현재 블록이 계층-간 예측을 이용하여 예측되었다고 나타내면(212), 일부 실시예에서 디코더(900)에 의해 다음과 같은 동작이 수행될 수 있다. 디코더(900)는 수평 및 수직 움직임 벡터 컴포넌트가 제한되는(214) 범위[-a,b]의 정보를 포함할 수 있거나 이 정보를 인코더(800)로부터 수신할 수 있다. 다시 말해서, 디코더는 수평 및 수직 움직임 벡터 컴포넌트가 범위[-a,b]를 벗어난 값을 갖지 않아야 한다는 것을 알고 있다. 일부 실시예에서, a는 b와 같지만 일반적인 경우로서 a가 b와 같을 필요는 없다. 일부 실시예에서, a=b=0이다. 디코더는 또한 수평 및 수직 움직임 벡터 컴포넌트(mv_x, mv_y)를 각기 기술하는 신택스 요소를 판독하며, 디코더는 현재 블록을 획득(218)하는데 사용될 수평 및 수직 움직임 벡터 컴포넌트를 디코딩한다(216). 그러나, 만일 a(및 b)의 값이 0와 같고 인코더가 차분 움직임 벡터 컴포넌트를 비트스트림으로 부호화하지 않았다면, 디코더(900)는 수평 및 수직 움직임 벡터 컴포넌트를 기술하는 신택스 요소를 판독하지 않는다. 더욱이, 디코더는 움직임 벡터 컴포넌트의 디코딩을 생략할 수 있다. 그 대신에, 디코더는 수평 및 수직 움직임 벡터 컴포넌트의 값이 둘 다 제로, 즉 mv_x=mv_y=0라고 결정할 수 있다. 또한 a=b=0일 때 참조 픽처를 보간할 필요는 없다.
움직임 벡터 컴포넌트가 비트스트림으로 부호화되지 않는 경우, 디코더는 움직임 벡터 컴포넌트와 관련된 신택스 요소(들)의 판독을 건너뛴다. 어느 신택스 요소도 비트스트림에 존재하지 않는 움직임 벡터 컴포넌트는 예를 들면, 사전에 정의된 디폴트 값을 이용하여 추론된다.
상이한 CABAC 컨텍스트가 특정한 참조 픽처 타입에 사용되는 경우, 디코더는 먼저 예를 들면, 참조 인덱스에 기초하여 참조 픽처 타입을 결정짓고, 예측 유닛에 사용한 참조 픽처에 따라서 CABAC 컨텍스트를 선택하며, 마지막으로 선택된 CABAC 컨텍스트를 이용하여 비트스트림으로부터 차분 움직임 벡터 컴포넌트(들)를 판독하고 디코딩한다.
디코더는 움직임 벡터 예측을 대신하여 사용될 고정된 움직임 벡터 및 통상의 인터 예측을 위해 차분 부호화된 움직임 벡터를 결정하는 신택스 요소를 인코딩할 수 있으며 디코더는 이를 디코딩할 수 있다. 고정된 움직임 벡터 신택스 요소는 예를 들면, 픽처 또는 슬라이스 레벨에 있을 수 있으며 예를 들면, 픽처 파라미터 세트, 적응 파라미터 세트, 픽처 헤더, 또는 슬라이스 헤더에서 부호화되고 그로부터 디코딩될 수 있다. 고정된 움직임 벡터 신택스 요소는 픽처, 슬라이스, 타이틀, 예를 들면 고정된 움직임 벡터 신택스 요소를 포함하는 신택스 구조에 기초하여 결정된 다수의 예측 유닛, 또는 고정된 움직임 벡터 신택스 요소가 시행되고 있는 다수의 예측 유닛과 같은 명시적인 신택스 요소와 관련될 수 있다. 인코더는 고정된 움직임 벡터를, 예를 들면 스크린 레벨의 정면 또는 뒷면 대신에 스크린 레벨에서 인식되도록 의도된 그러한 픽셀에 대한 디스패리티일 수 있는, 멀티뷰 코딩을 위한 글로벌 디스패리티에 기초하여 결정할 수 있다.
인코더는 예측 유닛과 연관된 참조 픽처 인덱스의 예측 유닛 레벨 표시를 인코딩할 수 있으며 디코더는 이를 디코딩할 수 있다. 이 표시는 참조 인텍스를 표시하는 신택스 요소일 수 있거나 또는 이것은 참조 인텍스가 유도될 수 있는 코딩 모드와 같은 신택스 요소일 수 있다.
디코더는 선택된 참조 픽처 인덱스가 그와 연관된 고정된 움직임 벡터를 가진 참조 픽처 중 하나의 사용을 표시하는지를 식별하는 비교 기능을 포함할 수 있다. 참조 픽처와 연관된 고정된 움직임 벡터가 있는 경우, 디코더는 그 움직임 벡터를 선택하여 예측 유닛에 대해 움직임 보상된 예측을 수행할 수 있다. 참조 픽처와 연관된 고정된 움직임 벡터가 없는 경우, 디코더는 예를 들면, 이웃 예측 유닛의 움직임 벡터를 이용하여 움직임 벡터 정보 및 차분 움직임 벡터 정보를 생성할 수 있다.
인코더 및 디코더는 선택된 움직임 벡터를 이용하여 예측 유닛에 대한 움직임 보상된 예측을 수행할 수 있다.
예시적인 실시예에서, 예를 들면 H.264/AVC 또는 초안 HEVC에서 명시된 바와 같은 산술 연산자, 논리 연산자, 관계형 연산자, 비트 연산자(bit-wise operators), 할당 연산자, 및 범위 표시에 공통적인 표시가 사용될 수 있다. 뿐만 아니라, H.264/AVC 또는 초안 HEVC에서 명시된 바와 같은 공통적인 수학적 함수가 사용될 수 있으며, 예를 들면, H.264/AVC 또는 초안 HEVC에서 명시된 바와 같이 연산자들의 우선 순서 및 실행 순서(좌에서 우로 또는 우에서 좌로)의 일반적인 순서가 사용될 수 있다.
예시적인 실시예에서, 다음과 같은 기술자(descriptors)가 각 신택스 요소의 분석 프로세스를 명시하는데 사용될 수 있다.
- ae(v): 컨텍스트-적응 산술(context-adaptive arithmetic (CABAC)) 엔트로피-부호화된 신택스 요소.
- b(8): 임의의 패턴의 비트 스트링을 갖는 바이트(8비트).
- se(v): 좌측 비트 먼저 나오는 부호붙임 정수형 Exp-Golomb-부호화된 신택스 요소.
- u(n): n 비트를 이용한 무부호 정수. n이 신택스 테이블에서 "v"일 때, 비트의 개수는 다른 신택스 요소의 값에 종속하는 방식으로 변동된다. 이러한 기술자의 분석 프로세스는 최상위 비트가 먼저 기록된 무부호 정수의 이진 표현으로서 해석된 비트스트림에서 n개의 다음 비트에 의해 명시된다.
- ue(v): 좌측 비트 먼저 나오는 부호붙임 정수형 Exp-Golomb-부호화된 신택스 요소.
Exp-Golomb 비트 스트링은 예를 들면 하기 테이블을 이용하여 코드 번호(codeNum)로 변환될 수 있다.
Figure 112014109802379-pct00007
Exp-Golomb 비트 스트링에 대응하는 코드 번호는 예를 들면 하기 테이블을 이용하여 se(v)로 변환될 수 있다.
Figure 112014109802379-pct00008
예시적인 실시예에서, 신택스 구조, 신택스 요소의 시맨틱, 및 디코딩 프로세스는 다음과 같이 명시될 수 있다. 비트스트림에서 신택스 요소는 볼드체로 표시된다. 각각의 신택스 요소는 그의 명칭(모두 밑줄표시 문자를 가진 소문자), 옵션으로 하나 또는 두 개의 그의 신택스 카테고리, 및 그의 부호화된 표현의 방법에 대한 하나 또는 두 개의 기술자로 기술된다. 디코딩 프로세스는 신택스 요소의 값 및 이전에 디코딩된 신택스 요소의 값에 따라서 동작한다. 신택스 요소의 값이 신택스 테이블에서 또는 텍스트에서 나타날 때, 이 값은 일반(즉, 볼드체 아님) 형태로 나타난다. 몇몇의 경우, 신택스 테이블은 신택스 요소 값으로부터 유도된 다른 변수의 값을 이용할 수 있다. 그러한 변수는 소문자와 대문자가 혼합되어 명명된 그리고 임의의 밑줄표시 문자가 없는 신택스 테이블에서 또는 텍스트에서 나타난다. 대문자로 시작하는 변수는 현재 신택스 구조 및 모든 종속하는 신택스 구조를 디코딩하는 동안 유도된다. 대문자로 시작하는 변수는 그 변수의 원래 신택스 구조를 언급하지 않고 나중의 신택스 구조에 필요한 디코딩 프로세스에서 사용될 수 있다. 소문자로 시작하는 변수 스트링은 그 변수가 유도된 컨텍스트 내에서만 사용될 뿐이다. 몇몇의 경우, 신택스 요소 값 또는 변수 값에 대하여 "연상 기호" 명칭은 이것의 수치 값과 같은 의미로 사용된다. 때때로 "연상 기호" 명칭은 임의의 수치 값과 연관되지 않고 사용된다. 값 및 명칭의 연관 관계는 텍스트에서 명시된다. 명칭은 밑줄표시 문자에 의해 분리된 하나 이상의 문자 그룹으로 구성된다. 각 그룹은 대문자로 시작하며 더 많은 대문자를 포함할 수 있다.
예시적인 실시예에서, 신택스 구조는 다음과 같은 것을 이용하여 명시될 수 있다. 중괄호로 둘러싸인 스테이트먼트 그룹은 복합 스테이트먼트(compound statement)이며 기능적으로 단일 스테이트먼트로 취급된다. "while" 구조는 조건이 참(true)인지 여부의 테스트를 명시하며, 만일 참이면, 그 조건이 더 이상 참이 아닐 때까지 반복적으로 스테이트먼트(또는 복합 스테이트먼트)의 평가를 명시한다. "do·while" 구조는 한번의 스테이트먼트의 평가에 뒤이어, 조건이 참인지 여부의 테스트를 명시하며, 만일 참이면, 그 조건이 더 이상 참이 아닐 때까지 스테이트먼트의 반복된 평가를 명시한다. "if·else" 구조는 조건이 참인지 여부의 테스트를 명시하며, 만일 조건이 참이면, 일차 스테이트먼트의 평가를 명시하고, 그렇지 않으면 대안의 스테이트먼트의 평가를 명시한다. 만일 어느 대안의 스테이트먼트 평가도 필요하지 않으면 그 구조 및 연관된 대안의 스테이트먼트의 "else" 부분은 생략된다. "for" 구조는 초기 스테이트먼트의 평가에 뒤이어, 조건의 테스트를 명시하며, 만일 조건이 참이면, 일차 스테이트먼트와, 뒤이어 그 조건이 더 이상 참이 아닐 때까지 후속 스테이트먼트의 반복된 평가를 명시한다.
예시적인 실시예에서, 초안 HEVC 표준의 예측 유닛 신택스는 인터 모드에 대한 움직임 벡터 차의 존재가 사용된 참조 픽처의 타입 및/또는 스케일러빌리티 계층 및/또는 뷰 및/또는 임의의 다른 속성에 종속하도록 수정된다. 전형적으로, 사용된 참조 픽처는 비트스트림내 참조 픽처 인덱스에 의해 식별된다. 베이스 뷰에서 및 베이스 계층에서 참조 픽처의 경우, 움직임 벡터 차는 보통 인터 모드에서 존재하도록 정의된다. 그러나, 이것은 스케일러블 확장에서 예를 들면 예측 유닛 신택스에서 아무런 변경 없이 어느 움직임 벡터 차도 특정 참조 픽처에서 존재하지 않는다고 명시될 수 있다. 예측 유닛 신택스 구조의 예는 아래와 같으며, 추가한 부분은 밑줄로 표시되어 있다.
Figure 112014109802379-pct00009
Figure 112014109802379-pct00010
앞의 신택스 구조로부터 알 수 있는 것처럼, MvdPresent(refldx, LX) 함수의 리턴 값은 mvd_coding() 신택스 구조가 참조 픽처 리스트(LX)로부터 인덱스(refldx)를 가진 참조 픽처를 위해 존재하는지 여부를 결정하는데 사용된다. 함수(MvdPresent(refldx, LX))는 다음과 같이 명시될 수 있다. (디코딩되는 현재 픽처가 베이스 계층 및 베이스 뷰에 있을 때(예를 들면, LayerId가 0일 때) 그리고 참조 픽처 리스트(LX) 내 인덱스(refIdx)가 베이스 계층 및 베이스 뷰 내 픽처를 식별할 때(예를 들면, LayerId가 0일 때), 함수(MvdPresent)는 1로 돌아간다. 참조 픽처 리스트(LX) 내 인덱스(refIdx)가 뷰 합성 픽처를 식별할 때, 함수(MvdPresent)는 0으로 돌아간다. (디코딩되는) 현재 픽처가 강화 계층 및 베이스 뷰에 있을 때(예를 들면, LayerId가 0보다 큰 CurrLayerId와 같을 때) 그리고 참조 픽처 리스트(LX) 내 인덱스(refIdx)가 베이스 계층과 같은 하위 계층 내 픽처를 식별할 때(예를 들면, LayerId가 참조된 픽처이고 CurrLayerId보다 작을 때), 함수(MvdPresent)는 0으로 돌아간다.
본 발명의 실시예가 특정 코딩 표준 및 그의 확장을 중점적으로 이용하여 기술되었지만, 본 발명은 다른 코덱, 비트스트림 포맷, 및 코딩 구조에도 적용될 수 있다.
아래에서 기술되는 바와 같이 하나의 해결책으로 조합될 수 있는 다음과 같은 요소가 제공되거나, 또는 이들 요소가 개별적으로 활용될 수 있다. 앞에서 설명한 바와 같이, 비디오 인코더 및 비디오 디코더는 둘 다 전형적으로 예측 메커니즘에 적용되며, 그래서 다음과 같은 요소가 유사하게 비디오 인코더 및 비디오 디코더에 적용될 수 있다.
앞에서 제시된 다양한 실시예에서, 부호화/디코딩되는 현재 블록(cb)에 이웃하는 블록이 선택된다. 이웃 블록을 선택하는 예는 (예를 들면, 도 7(a)에 도시된 것처럼) 공간 이웃을 포함한다. 다른 예는 (예를 들면, 도 7(b)에 도시된 것처럼) 동일 뷰의 이전 및/또는 나중 프레임 내의 시간 이웃, 인접한 뷰 내의 공간 이웃, 상이한 계층 내의 공간 이웃, 및 합성된 뷰 내의 공간 이웃을 포함한다. 본 발명의 양태는 이웃 블록을 선택하는 전술한 방ㅂ버으로 제한되지 않고, 오히려 본 발명의 다른 실시예가 부분적으로 또는 전체적으로 실현될 수 있는 것 이외에 한가지 가능한 기준에 대하여 설명이 제공된다.
많은 실시예가 루마(luma)의 예측에 관하여 설명되었지만, 많은 코딩 장치에서 크로마(chroma) 예측 정보는 사전에 결정된 관계를 이용하여 루마 예측 정보로부터 유도될 수 있다는 것이 이해되어야 한다. 예를 들면, 루마에 대해서 말하자면 동일한 참조 샘플이 크로마 컴포넌트에 사용된다고 추정될 수 있다.
다음은 본 발명의 실시예를 구현하는데 적합한 장치 및 가능한 메커니즘을 더 상세히 기술한다. 이것과 관련하여, 먼저 본 발명의 실시예에 따른 코덱을 구현할 수 있는 예시적인 장치 또는 전자 장치(50)의 개략적인 블록도를 도시하는 도 10이 참조된다.
전자 장치(50)는 예를 들면, 무선 통신 시스템의 이동 단말 또는 사용자 장비일 수 있다. 그러나, 본 발명의 실시예는 비디오 이미지를 인코딩하고 디코딩하는 또는 인코딩하거나 디코딩하는데 필요할 수 있는 모든 전자 기기 또는 장치 내에서 실행될 수 있다는 것이 인식될 것이다.
장치(50)는 이 장치를 내장하고 보호하는 하우징(30)을 포함할 수 있다. 장치(50)는 또한 액정 디스플레이 형태의 디스플레이(32)를 포함할 수 있다. 본 발명의 다른 실시예에서, 디스플레이는 이미지 또는 비디오를 디스플레이하는데 적합한 임의의 적절한 디스플레이 기술일 수 있다. 장치(50)는 키패드(34)를 더 포함할 수 있다. 본 발명의 다른 실시예에서, 임의의 적절한 데이터 또는 사용자 인터페이스 메커니즘이 이용될 수 있다. 예를 들면, 사용자 인터페이스는 가상 디스플레이 또는 터치-감응 디스플레이의 일부로서의 데이터 입력 시스템으로 구현될 수 있다. 장치는 마이크로폰(36) 또는 디지털 또는 아날로그 신호 입력일 수 있는 임의의 적절한 오디오 입력을 포함할 수 있다. 장치(50)는 또한 본 발명의 실시예에서 수화기(38), 스피커, 또는 아날로그 오디오 또는 디지털 오디오 입력 접속 중 임의의 하나일 수 있는 오디오 출력 장치를 포함할 수 있다. 장치(50)는 배터리(40)를 더 포함할 수 있다(또는 본 발명의 다른 실시예에서 장치는 태양 전지, 연료 전지 또는 태엽작동 발전기와 같은 임의의 적절한 이동 에너지 장치로 동력을 공급받을 수 있다). 장치는 다른 장치와의 단거리 시선 통신을 위한 적외선 포트(42)를 더 포함할 수 있다. 다른 실시예에서, 장치(50)는 예를 들면 블루투스 무선 접속 또는 USB/파이어와이어 유선 접속과 같은 임의이 적절한 단거리 통신 솔루션을 더 포함할 수 있다.
장치(50)는 장치(50)를 제어하기 위한 컨트롤러(56) 또는 프로세서를 포함할 수 있다. 컨트롤러(56)는 본 발명의 실시예에서 이미지 및 오디오 데이터 형태의 두 가지 데이터를 저장할 수 있는 그리고/또는 컨트롤러(56)에서 실행을 위한 명령어를 또한 저장할 수 있는 메모리(58)에 연결될 수 있다. 컨트롤러(56)는 오디오 및/또는 비디오 데이터의 코딩 및 디코딩을 실행하기에 적절한 또는 컨트롤러(56)에 의해 실행된 코딩 및 디코딩 시에 보조하는데 적절한 코덱 회로(54)에 또한 연결될 수 있다.
장치(50)는 카드 리더(48) 및 스마트 카드(46), 예를 들면, 사용자 정보를 제공하고 네트워크에서 사용자의 인증 및 권한에 필요한 인증 정보를 제공하는데 적합한 UICC 및 UICC 리더를 더 포함할 수 있다.
장치(50)는 컨트롤러에 연결되며 그리고, 예를 들면, 셀룰러 통신 네트워크, 무선 통신 시스템 또는 무선 근거리 네트워크와 통신을 위한 무선 통신 신호를 발생하기에 적합한 무선 인터페이스 회로(52)를 포함할 수 있다. 장치(50)는 무선 인터페이스 회로(52)에 연결되어 무선 인터페이스 회로(52)에서 발생된 무선 주파수 신호를 다른 장치(들)에 전송하고 다른 장치(들)로부터 무선 주파수 신호를 수신하기 위한 안테나(44)를 더 포함할 수 있다.
본 발명의 일부 실시예에서, 장치(50)는 개개의 프레임을 기록 또는 검출한 다음 처리를 위해 코덱(54) 또는 컨트롤러에 전달할 수 있는 카메라를 포함할 수 있다. 본 발명의 다른 실시예에서, 장치는 다른 기기로부터 처리를 위한 비디오 이미지 데이터를 수신한 다음 전송 및/또는 저장할 수 있다. 본 발명의 다른 실시예에서, 장치(50)는 코딩/디코딩을 위한 이미지를 무선 또는 유선 연결을 통해 수신할 수 있다.
도 12에 대해, 본 발명의 실시예가 활용될 수 있는 시스템의 일예가 도시된다. 시스템(10)은 하나 이상의 네트워크를 통해 통신할 수 있는 복수의 통신 기기를 포함한다. 시스템(10)은 이것으로 제한되지 않지만 (GSM, UMTS, CDMA 네트워크 등과 같은) 무선 셀룰러 텔레폰 네트워크, IEEE 802.x 표준 중 임의의 표준에 의해 정의된 바와 같은 무선 근거리 네트워크(WLAN), 블루투스 개인 영역 네트워크, 이더넷 근거리 네트워크, 토큰 링 근거리 네트워크, 광역 네트워크, 및 인터넷을 포함하는 유선 또는 무선 네트워크의 임의의 조합을 포함할 수 있다.
시스템(10)은 본 발명의 실시예를 구현하기에 적합한 유선 및 무선 통신 기기 또는 장치(50)를 둘 다 포함할 수 있다.
예를 들면, 도 12에 도시된 시스템은 모바일 텔레폰 네트워크(11) 및 인터넷(28)의 표현을 보여준다. 인터넷(28)과의 연결은 이것으로 제한되지 않지만 장거리 무선 연결, 근거리 무선 연결 및 이것으로 제한되지 않지만 전화선, 케이블선, 전력선, 및 유사 통신 경로를 비롯한 각종 유선 연결을 포함할 수 있다.
시스템(10)에서 도시된 예시적인 통신 기기는 이것으로 제한되지 않지만, 전자 기기 또는 장치(50), 개인 휴대정보 단말(PDA)과 모바일 텔레폰(14)의 겸용, PDA(16), 통합 메시징 기기(integrated messaging device (IMD))(18), 데스크톱 컴퓨터(20), 노트북 컴퓨터(22)를 포함할 수 있다. 장치(50)는 고정형일 수 있거나 아니면 이동하는 개인이 휴대할 때는 이동형일 수 있다. 장치(50)는 또한 이것으로 제한되지 않지만 차, 트럭, 택시, 버스, 열차, 보트, 비행기, 자전거, 모터사이클 또는 임의의 유사하고 적절한 이송 방식을 포함하는 이송 방식으로 배치될 수 있다.
일부 또는 또 다른 장치는 기지국(24)과의 무선 연결(25)을 통하여 서비스 공급자와 호 및 메시지를 송수신하고 통신할 수 있다. 기지국(24)은 모바일 텔레폰 네트워크(11)와 인터넷(28) 간의 통신을 가능하게 해주는 네트워크 서버(26)에 연결될 수 있다. 시스템은 추가적인 통신 기기 및 각종의 통신 기기를 포함할 수 있다.
통신 기기는 이것으로 제한되지 않지만, 코드 분할 다중 액세스(code division multiple access (CDMA)), 전지구 이동 통신 시스템(global systems for mobile communications (GSM)), 범용 이동 통신 시스템(universal mobile telecommunications system (UMTS)), 시분할 다중 액세스(time divisional multiple access (TDMA)), 주파수 분할 다중 액세스(frequency division multiple access (FDMA)), 전송 제어 프로토콜-인터넷 프로토콜(transmission control protocol-internet protocol (TCP-IP)), 단문 메시징 서비스(short messaging service (SMS)), 멀티미디어 메시징 서비스(multimedia messaging service (MMS)), 이메일, 인스턴스 메시징 서비스(instant messaging service (IMS)), 블루투스, IEEE 802.11 및 임의의 유사한 무선 통신 기술을 포함하는 각종 전송 기술을 이용하여 통신할 수 있다. 본 발명의 여러 실시예를 구현하는데 연루된 통신 기기는 이것으로 제한되지 않지만 무선, 적외선, 레이저, 케이블 연결, 및 임의의 적합한 연결을 포함하는 각종 미디어를 이용하여 통신할 수 있다.
비록 전술한 예가 전자 장치 내 코덱 내부에서 동작하는 본 발명의 실시예를 기술할지라도, 아래에 기술된 바와 같은 본 발명은 임의의 비디오 코덱의 일부로서 구현될 수 있다는 것이 인식될 것이다. 그러므로, 예를 들면, 본 발명의 실시예는 고정된 또는 유선의 통신 경로를 통해 비디오 코딩을 구현할 수 있는 비디오 코덱에서 구현될 수 있다.
그러므로, 사용자 장비는 전술한 본 발명의 실시예에서 기술된 것과 같은 비디오 코덱을 포함할 수 있다. 사용자 장비라는 용어는 모바일 텔레폰, 휴대용 데이터 처리 장치 또는 휴대용 웹 브라우저와 같은 임의의 적절한 형태의 무선 사용자 장비를 포함하는 것으로 의도하는 것이 인식될 것이다.
뿐만 아니라 공중 육상 모바일 네트워크(public land mobile network (PLMN))의 요소는 또한 전술한 바와 같은 비디오 코덱을 포함할 수 있다.
일반적으로, 본 발명의 여러 실시예는 하드웨어 또는 특수 목적 회로, 소프트웨어, 로직 또는 이들의 조합으로 구현될 수 있다. 예를 들면, 비록 본 발명이 이것으로 제한되지 않지만, 일부 양태는 하드웨어로 구현될 수 있는 반면, 다른 양태는 컨트롤러, 마이크로프로세서 또는 다른 컴퓨팅 장치에 의해 실행될 수 있는 펌웨어 또는 소프트웨어로 구현될 수 있다. 본 발명의 다양한 양태가 블록도, 플로우 차트로서 또는 일부 다른 회화적 표현을 이용하여 묘사되고 기술될 수 있지만, 본 출원에 기술된 이러한 블록, 장치, 시스템, 기술 또는 방법은, 비제한적인 예로서, 하드웨어, 소프트웨어, 펌웨어, 특수 목적 회로 또는 로직, 범용 하드웨어 또는 컨트롤러 또는 다른 컴퓨팅 기기, 또는 이들의 몇몇 조합으로 구현될 수 있다는 것이 이해될 것이다.
본 발명의 실시예는 프로세서 엔티티에서와 같은 모바일 기기의 데이터 프로세서에 의해 실행가능한 컴퓨터 소프트웨어에 의해, 또는 하드웨어에 의해, 또는 소프트웨어와 하드웨어의 조합에 의해 구현될 수 있다. 또한, 이것과 관련하여, 도면에서처럼 로직 흐름의 임의의 블록들은 프로그램 단계, 또는 상호연결된 로직 회로, 블록 및 기능, 또는 프로그램 단계 및 로직 회로, 블록 및 기능의 조합을 표현할 수 있다는 것을 주목하여야 한다. 소프트웨어는 메모리 칩, 또는 프로세서 내부에 구현된 메모리 블록과 같은 그러한 물리적 매체, 하드 디스크나 플로피 디스크와 같은 자기 매체, 예를 들면, DVD 및 그의 데이터 이형체인 CD와 같은 광학 매체 상에 저장될 수 있다.
메모리는 국부적 기술 환경에 적합한 임의 형태의 것일 수 있으며 반도체-기반 메모리 장치, 자기 메모리 장치 및 시스템, 광학 메모리 장치 및 시스템, 고정 메모리 및 제거가능 메모리와 같은 임의의 적합한 데이터 저장 기술을 이용하여 구현될 수 있다. 데이터 프로세서는 국부적 기술 환경에 적합한 모든 형태의 것일 수 있으며, 비제한적인 예로서 범용 컴퓨터, 특수 목적 컴퓨터, 마이크로프로세서, 디지털 신호 프로세서(DSPS) 및 멀티-코어 프로세서 아키텍처에 기반한 프로세서 중 하나 이상을 포함할 수 있다.
본 발명의 실시예는 집적 회로 모듈과 같은 각종 컴포넌트에서 실시될 수 있다. 집적 회로의 디자인은 전반적으로 고도로 자동화된 프로세스이다. 복잡하고 강력한 소프트웨어 툴은 로직 레벨 디자인을 반도체 기판 상에서 에칭되고 형성되게 준비된 반도체 회로 디자인으로 변환하는데 이용가능하다.
캘리포니아, 마운틴 뷰 소재의 Synopsys Inc.와 캘리포니아 산호세 소재의 Cadence Design에 의해 제공된 것과 같은 프로그램은 자동적으로 전도체를 안내하고 잘 설정된 디자인 룰 및 사전-저장된 디자인 모듈의 라이브러리를 이용하여 반도체 칩상에 컴포넌트를 배치한다. 일단 반도체 회로의 디자인이 완성되면, 표준화된 전자 포맷(예를 들면, Opus 또는 GDSII 등)으로 된 결과적인 디자인은 반도체 제조 설비 또는 제조용 "팹(fab)"으로 전달될 수 있다.
전술한 설명은 본 발명의 예시적인 실시예의 풍부하고 유익한 설명을 예시적이고 비제한적인 예로서 제공하였다. 그러나, 첨부 도면 및 첨부의 청구범위와 함께 읽어볼 때 전술한 설명의 관점에서 보아 관련 기술에서 통상의 지식을 가진 자들에게는 여러 가지 수정과 적응이 자명해질 수 있다. 그러나, 본 발명의 가르침의 그러한 모든 변형 및 유사한 변형은 그럼에도 본 발명의 범주 내에 속할 것이다.
다음과 같이 몇 가지 예가 제공될 것이다.
제 1 예에 따르면, 방법이 제공되며, 이 방법은,
인코딩하기 위한 프레임의 현재 블록을 선택하는 단계와,
현재 블록에 대한 참조 블록을 선택하는 단계와,
선택된 참조 블록에 기초하여 참조 타입을 결정하는 단계와,
참조 타입 및 참조 블록에 기초하여 현재 블록에 대한 움직임 벡터를 결정하는 단계와,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 단계를 포함한다.
제 2 예에 따르면, 방법이 제공되며, 이 방법은,
인코딩하기 위한 프레임의 현재 블록을 선택하는 단계와,
현재 블록에 대한 참조 블록을 선택하는 단계와,
참조 블록이 속한 픽처를 식별하는 참조 픽처 인덱스를 결정하는 단계와,
참조 픽처 인덱스에 기초하여 현재 블록에 대한 움직임 벡터를 결정하는 단계와,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 단계를 포함한다.
일부 실시예에서, 방법은 참조 블록의 선택을 위해 하나 이상의 참조 프레임을 제공하는 단계를 포함한다.
일부 실시예에서, 방법은 하나 이상의 참조 프레임이 다음과 같은,
- 뷰 합성된 프레임,
- 뷰-간 프레임,
- 계층-간 프레임, 또는
- 인터-예측된 프레임
중 적어도 하나를 포함하는 것을 포함한다.
일부 실시예에서, 방법은 움직임 벡터를 결정하는 단계가 움직임 벡터의 수평 움직임 벡터 컴포넌트 및 수직 움직임 벡터 컴포넌트를 결정하는 단계를 포함하는 것을 포함한다.
일부 실시예에서, 방법은,
선택된 참조 블록이 뷰 합성된 프레임으로부터 선택된 것이면, 수직 움직임 벡터 컴포넌트를 제 1 범위[al,bl] 내에서 제한하는 단계와, 선택된 참조 블록이 뷰 합성된 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수평 움직임 벡터 컴포넌트를 제 2 범위[a2,b2] 내에서 제한하는 단계를 포함한다.
일부 실시예에서, a1는 b1과 같고 a2는 b2와 같다.
일부 실시예에서, a1은 0이고 a2는 0이다.
일부 실시예에서, 방법은 참조 타입의 표시를 제공하는 단계를 포함한다.
일부 실시예에서, 방법은 참조 블록이 선택될 수 있는 참조 픽처로서 사용된 픽처를 나타내는 적어도 제 1 참조 픽처 리스트를 제공하는 단계를 포함한다.
일부 실시예에서, 방법은 참조 블록이 선택되었던 참조 픽처와 연관된 상기 제 1 참조 픽처 리스트에서 참조 타입을 제공하는 단계를 포함한다.
일부 실시예에서, 방법은 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 참조 블록에 대한 고정된 움직임 벡터를 정의하는 단계를 포함한다.
일부 실시예에서, 방법은 고정된 움직임 벡터에 대한 움직임 벡터 신택스 요소를 제공하는 단계와, 픽처 레벨에서 또는 슬라이스 레벨에서 움직임 벡터 신택스 요소를 제공하는 단계를 포함한다.
일부 실시예에서, 방법은 픽처 파라미터 세트에서, 적응 파라미터 세트에서, 픽처 헤더에서, 또는 슬라이스 헤더에서 움직임 벡터 신택스 요소를 인코딩하는 단계를 포함한다.
일부 실시예에서, 방법은 멀티뷰 코딩을 위하여 글로벌 디스패리티(global disparity)에 기초하여 고정된 움직임 벡터를 결정하는 단계를 포함한다.
일부 실시예에서, 방법은 스크린 레벨에서 인식되리라 예정된 픽셀들의 디스패리티를 글로벌 디스패리티로서 이용하는 단계를 포함한다.
일부 실시예에서, 방법은,
제 1 엔트로피 코딩 컨텍스트 및 제 2 엔트로피 코딩 컨텍스트를 결정하는 단계와,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택될 때, 제 2 엔트로피 코딩 컨텍스트를 움직임 벡터를 인코딩하는데 이용하는 단계와,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택되지 않을 때, 제 1 엔트로피 코딩 컨텍스트를 움직임 벡터를 인코딩하는데 이용하는 단계를 포함한다.
일부 실시예에서, 방법은 모바일 통신 장치에서 비디오 정보를 인코딩하기 위해 사용된다.
일부 실시예에서, 방법은 비디오 정보는 멀티뷰 비디오 정보이다.
제 3 예에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되며, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 적어도 하나의 프로세서가 장치로 하여금,
인코딩하기 위한 프레임의 현재 블록을 선택하게 하고,
현재 블록에 대한 참조 블록을 선택하게 하고,
선택된 참조 블록에 기초하여 참조 타입을 결정하게 하고,
참조 타입 및 참조 블록에 기초하여 현재 블록에 대한 움직임 벡터를 결정하게 하고,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하게 하도록 구성된다.
제 4 예에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되며, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 적어도 하나의 프로세서가 장치로 하여금,
인코딩하기 위한 프레임의 현재 블록을 선택하게 하고,
현재 블록에 대한 참조 블록을 선택하게 하고,
참조 블록이 속하는 픽처를 식별하는 참조 픽처 인덱스를 결정하게 하고,
참조 픽처 인덱스에 기초하여 현재 블록에 대한 움직임 벡터를 결정하게 하고,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하게 하도록 구성된다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는, 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금, 추가로 참조 블록의 선택을 위해 하나 이상의 참조 프레임을 제공하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 하나 이상의 참조 프레임은 다음과 같은,
- 뷰 합성된 프레임,
- 뷰-간 프레임,
- 계층-간 프레임, 또는
- 인터-예측된 프레임
중 적어도 하나를 포함한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금, 추가로 움직임 벡터의 수평 움직임 벡터 컴포넌트 및 수직 움직임 벡터 컴포넌트를 결정하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금 추가로,
선택된 참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수직 움직임 벡터 컴포넌트를 제 1 범위[al,bl] 내에서 제한하게 하고,
선택된 참조 블록이 뷰 합성된 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수평 움직임 벡터 컴포넌트를 제 2 범위[a2,b2] 내에서 제한하게 하는 코드를 저장한다.
장치의 일부 실시예에서, a1는 b1과 같고 a2는 b2와 같다.
장치의 일부 실시예에서, a1은 0이고 a2는 0이다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금, 추가로 참조 타입의 표시를 제공하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금 추가로 참조 블록이 선택될 수 있는 참조 픽처로서 사용된 픽처를 나타내는 적어도 제 1 참조 픽처 리스트를 제공하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금 추가로 참조 블록이 선택되었던 참조 픽처와 연관된 제 1 참조 픽처 리스트에서 참조 타입을 제공하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금 추가로 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 참조 블록에 대한 고정된 움직임 벡터를 정의하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금 추가로, 고정된 움직임 벡터에 대한 움직임 벡터 신택스 요소를 제공하게 하고, 픽처 레벨에서 또는 슬라이스 레벨에서 움직임 벡터 신택스 요소를 제공하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금 추가로, 픽처 파라미터 세트에서, 적응 파라미터 세트에서, 픽처 헤더에서, 또는 슬라이스 헤더에서 움직임 벡터 신택스 요소를 인코딩하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금 추가로 멀티뷰 코딩을 위하여 글로벌 디스패리티에 기초하여 고정된 움직임 벡터를 결정하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금 추가로 스크린 레벨에서 인식되리라 예정된 픽셀들의 디스패리티를 글로벌 디스패리티로서 이용하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금 추가로,
제 1 엔트로피 코딩 컨텍스트 및 제 2 엔트로피 코딩 컨텍스트를 결정하게 하고,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택될 때, 제 2 엔트로피 코딩 컨텍스트를 움직임 벡터를 인코딩하는데 이용하게 하고,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택되지 않을 때, 제 1 엔트로피 코딩 컨텍스트를 움직임 벡터를 인코딩하는데 이용하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 장치로 하여금 추가로 비디오 정보를 인코딩하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 비디오 정보는 멀티뷰 비디오 정보이다.
일부 실시예에서, 장치는 이동 국(mobile station)의 컴포넌트이다.
제 5 예에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 다음과 같이,
인코딩하기 위한 프레임의 현재 블록을 선택하고,
현재 블록에 대한 참조 블록을 선택하고,
선택된 참조 블록에 기초하여 참조 타입을 결정하고,
참조 타입 및 참조 블록에 기초하여 현재 블록에 대한 움직임 벡터를 결정하고,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 동작을 적어도 수행하게 한다.
제 6 예에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 다음과 같이,
인코딩하기 위한 프레임의 현재 블록을 선택하고,
현재 블록에 대한 참조 블록을 선택하고,
참조 블록이 속하는 픽처를 식별하는 참조 픽처 인덱스를 결정하고,
참조 픽처 인덱스에 기초하여 현재 블록에 대한 움직임 벡터를 결정하고,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 동작을 적어도 수행하게 한다.
일부 실시예에서, 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하고, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금, 참조 블록의 선택을 위하여 하나 이상의 참조 프레임을 적어도 제공하게 한다.
컴퓨터 프로그램 제품의 일부 실시예에서, 하나 이상의 참조 프레임은 다음과 같은,
- 뷰 합성된 프레임,
- 뷰-간 프레임,
- 계층-간 프레임, 또는
- 인터-예측된 프레임
중 적어도 하나를 포함한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하고, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 움직임 벡터의 수평 움직임 벡터 컴포넌트 및 수직 움직임 벡터 컴포넌트를 적어도 결정하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하고, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 다음과 같이,
선택된 참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수직 움직임 벡터 컴포넌트를 제 1 범위[al,bl] 내에서 제한하고,
선택된 참조 블록이 뷰 합성된 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수평 움직임 벡터 컴포넌트를 제 2 범위[a2,b2] 내에서 제한하는 동작을 적어도 수행하게 한다.
컴퓨터 프로그램 제품의 일부 실시예에서, a1는 b1과 같고 a2는 b2와 같다.
컴퓨터 프로그램 제품의 일부 실시예에서, a1은 0이고 a2는 0이다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하고, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 참조 타입의 표시를 적어도 제공하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하고, 이 명령어는 참조 블록이 선택될 수 있는 참조 픽처로서 사용된 픽처를 나타내는 적어도 제 1 참조 픽처 리스트를 적어도 제공하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하고, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 참조 블록이 선택되었던 참조 픽처와 연관된 제 1 참조 픽처 리스트에서 참조 타입을 적어도 제공하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하고, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 참조 블록에 대한 고정된 움직임 벡터를 적어도 정의하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하고, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 고정된 움직임 벡터에 대한 움직임 벡터 신택스 요소를 제공하게 하고, 픽처 레벨에서 또는 슬라이스 레벨에서 움직임 벡터 신택스 요소를 제공하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하고, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 픽처 파라미터 세트에서, 적응 파라미터 세트에서, 픽처 헤더에서, 또는 슬라이스 헤더에서 움직임 벡터 신택스 요소를 적어도 인코딩하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하고, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 멀티뷰 코딩을 위하여 글로벌 디스패리티에 기초하여 고정된 움직임 벡터를 적어도 결정하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하고, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 스크린 레벨에서 인식되리라 예정된 픽셀들의 디스패리티를 글로벌 디스패리티로서 적어도 이용하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하고, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 다음과 같이,
제 1 엔트로피 코딩 컨텍스트 및 제 2 엔트로피 코딩 컨텍스트를 결정하고,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택될 때, 제 2 엔트로피 코딩 컨텍스트를 움직임 벡터를 인코딩하는데 이용하고,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택되지 않을 때, 제 1 엔트로피 코딩 컨텍스트를 움직임 벡터를 인코딩하는데 이용하는 동작을 적어도 수행하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하고, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 비디오 정보를 적어도 인코딩하게 한다.
컴퓨터 프로그램 제품의 일부 실시예에서, 비디오 정보는 멀티뷰 비디오 정보이다.
제 7 예에 따르면, 장치가 제공되며, 이 장치는,
인코딩하기 위한 프레임의 현재 블록을 선택하는 수단과,
현재 블록에 대한 참조 블록을 선택하는 수단과,
선택된 참조 블록에 기초하여 참조 타입을 결정하는 수단과,
참조 타입 및 참조 블록에 기초하여 현재 블록에 대한 움직임 벡터를 결정하는 수단과,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 수단을 포함한다.
제 8 예에 따르면, 장치가 제공되며, 이 장치는,
인코딩하기 위한 프레임의 현재 블록을 선택하는 수단과,
현재 블록에 대한 참조 블록을 선택하는 수단과,
참조 블록이 속하는 픽처를 식별하는 참조 픽처 인덱스를 결정하는 수단과,
참조 픽처 인덱스에 기초하여 현재 블록에 대한 움직임 벡터를 결정하는 수단과,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 수단을 포함한다.
일부 실시예에서, 장치는 참조 블록의 선택을 위하여 하나 이상의 참조 프레임을 제공하는 수단을 포함한다.
장치의 일부 실시예에서, 하나 이상의 참조 프레임은 다음과 같은,
- 뷰 합성된 프레임,
- 뷰-간 프레임,
- 계층-간 프레임, 또는
- 인터-예측된 프레임
중 적어도 하나를 포함한다.
일부 실시예에서, 장치는 움직임 벡터의 수평 움직임 벡터 컴포넌트 및 수직 움직임 벡터 컴포넌트를 결정하는 수단을 포함한다.
일부 실시예에서, 장치는,
선택된 참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수직 움직임 벡터 컴포넌트를 제 1 범위[al,bl] 내에서 제한하는 수단과,
선택된 참조 블록이 뷰 합성된 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수평 움직임 벡터 컴포넌트를 제 2 범위[a2,b2] 내에서 제한하는 수단을 포함한다.
장치의 일부 실시예에서, a1는 b1과 같고 a2는 b2와 같다.
장치의 일부 실시예에서, a1은 0이고 a2는 0이다.
일부 실시예에서, 장치는 참조 타입의 표시를 제공하는 수단을 포함한다.
일부 실시예에서, 장치는 참조 블록이 선택될 수 있는 참조 픽처로서 사용된 픽처를 나타내는 적어도 제 1 참조 픽처 리스트를 제공하는 수단을 포함한다.
일부 실시예에서, 장치는 참조 블록이 선택되었던 참조 픽처와 연관된 제 1 참조 픽처 리스트에서 참조 타입을 제공하는 수단을 포함한다.
일부 실시예에서, 장치는 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 참조 블록에 대한 고정된 움직임 벡터를 정의하는 수단을 포함한다.
일부 실시예에서, 장치는 고정된 움직임 벡터에 대한 움직임 벡터 신택스 요소를 제공하는 수단과, 픽처 레벨에서 또는 슬라이스 레벨에서 움직임 벡터 신택스 요소를 제공하는 수단을 포함한다.
일부 실시예에서, 장치는 픽처 파라미터 세트에서, 적응 파라미터 세트에서, 픽처 헤더에서, 또는 슬라이스 헤더에서 움직임 벡터 신택스 요소를 인코딩하는 수단을 포함한다.
일부 실시예에서, 장치는 멀티뷰 코딩을 위하여 글로벌 디스패리티에 기초하여 고정된 움직임 벡터를 결정하는 수단을 포함한다.
일부 실시예에서, 장치는 스크린 레벨에서 인식되리라 예정된 픽셀들의 디스패리티를 글로벌 디스패리티로서 이용하는 수단을 포함한다.
일부 실시예에서, 장치는,
제 1 엔트로피 코딩 컨텍스트 및 제 2 엔트로피 코딩 컨텍스트를 결정하는 수단과,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택될 때, 제 2 엔트로피 코딩 컨텍스트를 움직임 벡터를 인코딩하는데 이용하는 수단과,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택되지 않을 때, 제 1 엔트로피 코딩 컨텍스트를 움직임 벡터를 인코딩하는데 이용하는 수단을 포함한다.
일부 실시예에서, 장치는 비디오 정보를 적어도 인코딩하는 수단을 포함하는 모바일 통신 장치의 컴포넌트이다.
장치의 일부 실시예에서, 비디오 정보는 멀티뷰 비디오 정보이다.
제 9 예에 따르면 방법이 제공되며, 이 방법은.
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하는 단계와,
인코딩된 정보를 디코딩하는 단계와,
수신된 정보를 검사하여 디코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있는지 여부를 결정하는 단계와,
만일 그러하다면, 참조 타입을 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하는 단계와,
움직임 벡터 정보를 획득하는 단계를 포함한다.
제 10 예에 따르면 방법이 제공되며, 이 방법은,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하는 단계와,
인코딩된 정보를 디코딩하는 단계와,
수신된 정보를 검사하여 디코딩된 정보가 참조 블록이 속한 픽처를 식별하는 참조 픽처 인덱스의 표시를 갖고 있는지 여부를 결정하는 단계와,
만일 그러하다면, 참조 픽처 인덱스를 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하는 단계와,
움직임 벡터 정보를 획득하는 단계를 포함한다.
일부 실시예에서, 방법은 참조 블록의 선택을 위하여 하나 이상의 참조 프레임을 제공하는 단계를 포함한다.
방법의 일부 실시예에서, 하나 이상의 참조 프레임은 다음과 같은,
- 뷰 합성된 프레임,
- 뷰-간 프레임,
- 계층-간 프레임, 또는
- 인터-예측된 프레임
중 적어도 하나를 포함한다.
방법의 일부 실시예에서, 움직임 벡터의 수평 움직임 벡터 컴포넌트 및 수직 움직임 벡터 컴포넌트를 결정하는 단계를 포함한다.
일부 실시예에서, 방법은,
선택된 참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수직 움직임 벡터 컴포넌트를 제 1 범위[al,bl] 내에서 제한하는 단계와,
선택된 참조 블록이 뷰 합성된 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수평 움직임 벡터 컴포넌트를 제 2 범위[a2,b2] 내에서 제한하는 단계를 포함한다.
방법의 일부 실시예에서, a1는 b1과 같고 a2는 b2와 같다.
방법의 일부 실시예에서, a1은 0이고 a2는 0이다.
일부 실시예에서, 방법은 참조 타입의 표시를 수신하는 단계를 포함한다.
일부 실시예에서, 방법은 참조 블록이 선택될 수 있는 참조 픽처로서 사용된 픽처를 나타내는 적어도 제 1 참조 픽처 리스트를 제공하는 단계를 포함한다.
일부 실시예에서, 방법은 참조 블록이 선택되었던 참조 픽처와 연관된 제 1 참조 픽처 리스트에서 참조 타입을 제공하는 단계를 포함한다.
일부 실시예에서, 방법은 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 참조 블록에 대한 고정된 움직임 벡터를 정의하는 단계를 포함한다.
일부 실시예에서, 방법은 고정된 움직임 벡터에 대한 움직임 벡터 신택스 요소를 제공하는 단계와, 픽처 레벨에서 또는 슬라이스 레벨에서 움직임 벡터 신택스 요소를 수신하는 단계를 포함한다.
일부 실시예에서, 방법은 픽처 파라미터 세트에서, 적응 파라미터 세트에서, 픽처 헤더에서, 또는 슬라이스 헤더에서 움직임 벡터 신택스 요소를 디코딩하는 단계를 포함한다.
일부 실시예에서, 방법은 멀티뷰 코딩을 위하여 글로벌 디스패리티에 기초하여 고정된 움직임 벡터를 결정하는 단계를 포함한다.
일부 실시예에서, 방법은 스크린 레벨에서 인식되리라 예정된 픽셀들의 디스패리티를 글로벌 디스패리티로서 이용하는 단계를 포함한다.
일부 실시예에서, 방법은,
제 1 엔트로피 코딩 컨텍스트 및 제 2 엔트로피 코딩 컨텍스트를 결정하는 단계와,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택될 때, 제 2 엔트로피 코딩 컨텍스트를 움직임 벡터를 디코딩하는데 이용하는 단계와,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택되지 않을 때, 제 1 엔트로피 코딩 컨텍스트를 움직임 벡터를 디코딩하는데 이용하는 단계를 포함한다.
일부 실시예에서, 방법은 모바일 장치에서 비디오 정보를 디코딩하는데 사용된다.
방법의 일부 실시예에서, 비디오 정보는 멀티뷰 비디오 정보이다.
제 11 예에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되며, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 적어도 하나의 프로세서가 장치로 하여금,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하게 하고,
인코딩된 정보를 디코딩하게 하고,
수신된 정보를 검사하여 디코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있는지 여부를 결정하게 하고,
만일 그러하다면, 참조 타입을 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하게 하고,
움직임 벡터 정보를 획득하게 하도록 구성된다.
제 12 예에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되며, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 적어도 하나의 프로세서가 장치로 하여금,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하게 하고,
인코딩된 정보를 디코딩하게 하고,
수신된 정보를 검사하여 디코딩된 정보가 참조 블록이 속한 픽처를 식별하는 참조 픽처 인덱스의 표시를 갖고 있는지 여부를 결정하게 하고,
만일 그러하다면, 참조 픽처 인덱스를 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하게 하고,
움직임 벡터 정보를 획득하게 하도록 구성된다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 참조 블록의 선택을 위하여 하나 이상의 참조 프레임을 제공하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 하나 이상의 참조 프레임은 다음과 같은,
- 뷰 합성된 프레임,
- 뷰-간 프레임,
- 계층-간 프레임, 또는
- 인터-예측된 프레임
중 적어도 하나를 포함한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 움직임 벡터의 수평 움직임 벡터 컴포넌트 및 수직 움직임 벡터 컴포넌트를 결정하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 추가로,
선택된 참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수직 움직임 벡터 컴포넌트를 제 1 범위[al,bl] 내에서 제한하게 하고,
선택된 참조 블록이 뷰 합성된 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수평 움직임 벡터 컴포넌트를 제 2 범위[a2,b2] 내에서 제한하게 하는 코드를 저장한다.
장치의 일부 실시예에서, a1는 b1과 같고 a2는 b2와 같다.
장치의 일부 실시예에서, a1은 0이고 a2는 0이다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 추가로 참조 타입의 표시를 수신하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 추가로 참조 블록이 선택되었던 참조 픽처로서 사용된 픽처를 나타내는 적어도 제 1 참조 픽처 리스트를 제공하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 추가로 참조 블록이 선택되었던 참조 픽처와 연관된 제 1 참조 픽처 리스트에서 참조 타입을 제공하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 추가로, 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 참조 블록에 대한 고정된 움직임 벡터를 정의하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 추가로, 고정된 움직임 벡터에 대한 움직임 벡터 신택스 요소를 제공하게 하고, 픽처 레벨에서 또는 슬라이스 레벨에서 움직임 벡터 신택스 요소를 수신하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 픽처 파라미터 세트에서, 적응 파라미터 세트에서, 픽처 헤더에서, 또는 슬라이스 헤더에서 움직임 벡터 신택스 요소를 디코딩하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 추가로, 멀티뷰 코딩을 위하여 글로벌 디스패리티에 기초하여 고정된 움직임 벡터를 결정하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 추가로 스크린 레벨에서 인식되리라 예정된 픽셀들의 디스패리티를 글로벌 디스패리티로서 이용하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 추가로, 제 1 엔트로피 코딩 컨텍스트 및 제 2 엔트로피 코딩 컨텍스트를 결정하게 하고,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택될 때, 제 2 엔트로피 코딩 컨텍스트를 움직임 벡터를 디코딩하는데 이용하게 하고,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택되지 않을 때, 제 1 엔트로피 코딩 컨텍스트를 움직임 벡터를 디코딩하는데 이용하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 상기 적어도 하나의 메모리는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 추가로 비디오 정보를 디코딩하게 하는 코드를 저장한다.
장치의 일부 실시예에서, 비디오 정보는 멀티뷰 비디오 정보이다.
일부 실시예에서, 장치는 이동국의 컴포넌트이다.
제 13 예에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 다음과 같이,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하고,
인코딩된 정보를 디코딩하고,
수신된 정보를 검사하여 디코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있는지 여부를 결정하고,
그러하다면, 참조 타입을 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하고,
움직임 벡터 정보를 획득하는 동작을 적어도 수행하게 한다.
제 14 예에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 다음과 같이,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하고,
인코딩된 정보를 디코딩하고,
수신된 정보를 검사하여 디코딩된 정보가 참조 블록이 속한 픽처를 식별하는 참조 픽처 인덱스의 표시를 갖고 있는지 여부를 결정하고,
그러하다면, 참조 픽처 인덱스를 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하고,
움직임 벡터 정보를 획득하는 동작을 적어도 수행하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 참조 블록의 선택을 위하여 하나 이상의 참조 프레임을 적어도 제공하게 한다.
컴퓨터 프로그램 제품의 일부 실시예에서, 하나 이상의 참조 프레임은 다음과 같은,
- 뷰 합성된 프레임,
- 뷰-간 프레임,
- 계층-간 프레임, 또는
- 인터-예측된 프레임
중 적어도 하나를 포함한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 움직임 벡터의 수평 움직임 벡터 컴포넌트 및 수직 움직임 벡터 컴포넌트를 적어도 결정하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금,
선택된 참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수직 움직임 벡터 컴포넌트를 제 1 범위[al,bl] 내에서 제한하고,
선택된 참조 블록이 뷰 합성된 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수평 움직임 벡터 컴포넌트를 제 2 범위[a2,b2] 내에서 제한하는 동작을 적어도 수행하게 한다.
컴퓨터 프로그램 제품의 일부 실시예에서, a1는 b1과 같고 a2는 b2와 같다.
컴퓨터 프로그램 제품의 일부 실시예에서, a1은 0이고 a2는 0이다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 참조 타입의 표시를 적어도 수신하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 참조 블록이 선택될 수 있는 참조 픽처로서 사용된 픽처를 나타내는 적어도 제 1 참조 픽처 리스트를 적어도 제공하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 참조 블록이 선택되었던 참조 픽처와 연관된 제 1 참조 픽처 리스트에서 참조 타입을 적어도 제공하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 참조 블록에 대한 고정된 움직임 벡터를 적어도 정의하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 고정된 움직임 벡터에 대한 움직임 벡터 신택스 요소를 적어도 제공하게 하고, 픽처 레벨에서 또는 슬라이스 레벨에서 움직임 벡터 신택스 요소를 적어도 수신하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 픽처 파라미터 세트에서, 적응 파라미터 세트에서, 픽처 헤더에서, 또는 슬라이스 헤더에서 움직임 벡터 신택스 요소를 적어도 디코딩하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 멀티뷰 코딩을 위하여 글로벌 디스패리티에 기초하여 고정된 움직임 벡터를 적어도 결정하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 스크린 레벨에서 인식되리라 예정된 픽셀들의 디스패리티를 글로벌 디스패리티로서 적어도 이용하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 다음과 같이,
제 1 엔트로피 코딩 컨텍스트 및 제 2 엔트로피 코딩 컨텍스트를 결정하고,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택될 때, 제 2 엔트로피 코딩 컨텍스트를 움직임 벡터를 디코딩하는데 이용하고,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택되지 않을 때, 제 1 엔트로피 코딩 컨텍스트를 움직임 벡터를 디코딩하는데 이용하는 동작을 적어도 수행하게 한다.
일부 실시예에서 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하며, 이 명령어는 하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 비디오 정보를 적어도 디코딩하게 한다.
컴퓨터 프로그램 제품의 일부 실시예에서, 비디오 정보는 멀티뷰 비디오 정보이다.
제 15 예에 따르면, 장치가 제공되며, 이 장치는,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하는 수단과,
인코딩된 정보를 디코딩하는 수단과,
수신된 정보를 검사하여 디코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있는지 여부를 결정하는 수단과,
인코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있으면, 참조 타입을 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하는 수단과,
움직임 벡터 정보를 획득하는 수단을 포함한다.
제 16 예에 따르면, 장치가 제공되며, 이 장치는,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하는 수단과,
인코딩된 정보를 디코딩하는 수단과,
수신된 정보를 검사하여 디코딩된 정보가 참조 블록이 속하는 픽처를 식별하는 참조 픽처 인덱스의 표시를 갖고 있는지 여부를 결정하는 수단과,
인코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있으면, 참조 표시 인덱스를 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하는 수단과,
움직임 벡터 정보를 획득하는 수단을 포함한다.
일부 실시예에서, 장치는 참조 블록의 선택을 위하여 하나 이상의 참조 프레임을 제공하는 수단을 포함한다.
장치의 일부 실시예에서, 하나 이상의 참조 프레임은 다음과 같은,
- 뷰 합성된 프레임,
- 뷰-간 프레임,
- 계층-간 프레임, 또는
- 인터-예측된 프레임
중 적어도 하나를 포함한다.
일부 실시예에서, 장치는 움직임 벡터의 수평 움직임 벡터 컴포넌트 및 수직 움직임 벡터 컴포넌트를 결정하는 수단을 포함한다.
일부 실시예에서, 장치는,
선택된 참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수직 움직임 벡터 컴포넌트를 제 1 범위[al,bl] 내에서 제한하는 수단과,
선택된 참조 블록이 뷰 합성된 프레임 또는 계층-간 프레임으로부터 선택된 것이면, 수평 움직임 벡터 컴포넌트를 제 2 범위[a2,b2] 내에서 제한하는 수단을 포함한다.
장치의 일부 실시예에서, a1는 b1과 같고 a2는 b2와 같다.
장치의 일부 실시예에서, a1은 0이고 a2는 0이다.
일부 실시예에서, 장치는 참조 타입의 표시를 수신하는 수단을 포함한다.
일부 실시예에서, 장치는 참조 블록이 선택될 수 있는 참조 픽처로서 사용된 픽처를 나타내는 적어도 제 1 참조 픽처 리스트를 제공하는 수단을 포함한다.
일부 실시예에서, 장치는 참조 블록이 선택되었던 참조 픽처와 연관된 제 1 참조 픽처 리스트에서 참조 타입을 제공하는 수단을 포함한다.
일부 실시예에서, 장치는 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택된 참조 블록에 대한 고정된 움직임 벡터를 정의하는 수단을 포함한다.
일부 실시예에서, 장치는 고정된 움직임 벡터에 대한 움직임 벡터 신택스 요소를 제공하는 수단과, 픽처 레벨에서 또는 슬라이스 레벨에서 움직임 벡터 신택스 요소를 수신하는 수단을 포함한다.
일부 실시예에서, 장치는 픽처 파라미터 세트에서, 적응 파라미터 세트에서, 픽처 헤더에서, 또는 슬라이스 헤더에서 움직임 벡터 신택스 요소를 디코딩하는 수단을 포함한다.
일부 실시예에서, 장치는 멀티뷰 코딩을 위하여 글로벌 디스패리티에 기초하여 고정된 움직임 벡터를 결정하는 수단을 포함한다.
일부 실시예에서, 장치는 스크린 레벨에서 인식되리라 예정된 픽셀들의 디스패리티를 글로벌 디스패리티로서 이용하는 수단을 포함한다.
일부 실시예에서, 장치는 제 1 엔트로피 코딩 컨텍스트 및 제 2 엔트로피 코딩 컨텍스트를 결정하는 수단과,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택될 때, 제 2 엔트로피 코딩 컨텍스트를 움직임 벡터를 디코딩하는데 이용하는 수단과,
참조 블록이 뷰 합성된 프레임, 뷰-간 프레임 또는 계층-간 프레임으로부터 선택되지 않을 때, 제 1 엔트로피 코딩 컨텍스트를 움직임 벡터를 디코딩하는데 이용하는 수단을 포함한다.
일부 실시예에서, 장치는 비디오 정보를 디코딩하는 수단을 포함하는 모바일 통신 장치의 컴포넌트이다.
장치의 일부 실시예에서, 비디오 정보는 멀티뷰 비디오 정보이다.
제 17 예에 따르면, 비디오 부호화기가 제공되며, 이 부호화기는,
인코딩하기 위한 픽처의 현재 블록을 선택하고,
현재 블록에 대한 참조 블록을 선택하고,
선택된 참조 블록에 기초하여 참조 타입을 결정하고,
참조 타입 및 참조 블록에 기초하여 현재 블록에 대한 움직임 벡터를 결정하고,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하기 위해 구성된다.
제 18 예에 따르면, 비디오 부호화기가 제공되며, 이 부호화기는,
인코딩하기 위한 픽처의 현재 블록을 선택하고,
현재 블록에 대한 참조 블록을 선택하고,
참조 블록이 속하는 픽처를 식별하는 참조 픽처 인덱스를 결정하고,
참조 픽처 인덱스에 기초하여 현재 블록에 대한 움직임 벡터를 결정하고,
결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하기 위해 구성된다.
제 19 예에 따르면, 비디오 디코더가 제공되며, 이 디코더는,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하고,
인코딩된 정보를 디코딩하고,
수신된 정보를 검사하여 디코딩된 정보가 현재 블록에 대한 참조 타입의 표시를 갖고 있는지 여부를 결정하고,
그러하다면, 참조 타입을 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하고,
움직임 벡터 정보를 획득하기 위해 구성된다.
제 20 예에 따르면, 비디오 디코더가 제공되며, 이 디코더는,
프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하고,
인코딩된 정보를 디코딩하고,
수신된 정보를 검사하여 디코딩된 정보가 참조 블록이 속한 픽처를 식별하는 참조 픽처 인덱스의 표시를 갖고 있는지 여부를 결정하고,
그러하다면, 참조 픽처 인덱스를 이용하여 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하고,
움직임 벡터 정보를 획득하기 위해 구성된다.

Claims (44)

  1. 인코딩하기 위한 픽처의 현재 블록을 선택하는 단계와,
    상기 현재 블록에 대한 참조 블록을 선택하는 단계와,
    상기 선택된 참조 블록에 기초하여 참조 타입을 결정하는 단계와,
    상기 참조 타입에 기초하여 상기 현재 블록에 대한 움직임 벡터를 결정하는 단계와,
    상기 참조 타입이 계층-간 예측(inter-layer prediction)과 동일하면, 상기 현재 블록에 대한 움직임 벡터를 제로로 설정하는 단계와,
    상기 결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 단계를 포함하는
    방법.
  2. 인코딩하기 위한 픽처의 현재 블록을 선택하는 단계와,
    상기 현재 블록에 대한 참조 블록을 선택하는 단계와,
    상기 선택된 참조 블록에 기초하여 참조 타입을 결정하는 단계와,
    상기 참조 타입에 기초하여 상기 현재 블록에 대한 움직임 벡터를 결정하는 단계와,
    상기 참조 타입이 뷰-간 예측(inter-view prediction)과 동일하면, 상기 현재 블록에 대한 움직임 벡터의 수직 움직임 벡터 컴포넌트를 범위[a1,b1] 내로 제한하는 단계와,
    상기 결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 단계를 포함하는
    방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 참조 블록이 속하는 픽처를 식별하는 참조 픽처 인덱스에 기초하여 상기 참조 타입을 결정하는 단계를 더 포함하는
    방법.
  4. 삭제
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 참조 블록의 선택을 위해 하나 이상의 참조 픽처를 제공하는 단계를 더 포함하며,
    상기 하나 이상의 참조 픽처는,
    뷰 합성된 픽처(view synthesized picture),
    뷰-간 픽처(inter-view picture),
    계층-간 픽처(inter-layer picture), 또는
    인터-예측된 픽처(inter-predicted picture)
    중 적어도 하나를 포함하는
    방법.
  6. 제 5 항에 있어서,
    상기 선택된 참조 블록이 상기 뷰 합성된 픽처, 상기 뷰-간 픽처 또는 상기 계층-간 픽처로부터 선택된 것이면, 수직 움직임 벡터 컴포넌트를 제 1 범위[al,bl] 내로 제한하는 단계와,
    상기 선택된 참조 블록이 상기 뷰 합성된 픽처 또는 상기 계층-간 픽처로부터 선택된 것이면, 수평 움직임 벡터 컴포넌트를 제 2 범위[a2,b2] 내로 제한하는 단계를 더 포함하는
    방법.
  7. 픽처를 인코딩하기 위한 장치로서,
    인코딩하기 위한 픽처의 현재 블록을 선택하는 수단과,
    상기 현재 블록에 대한 참조 블록을 선택하는 수단과,
    상기 선택된 참조 블록에 기초하여 참조 타입을 결정하는 수단과,
    상기 참조 타입에 기초하여 상기 현재 블록에 대한 움직임 벡터를 결정하는 수단과,
    상기 참조 타입이 계층-간 예측(inter-layer prediction)과 동일하면, 상기 현재 블록에 대한 움직임 벡터를 제로로 설정하는 수단과,
    상기 결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 수단을 포함하는
    장치.
  8. 픽처를 인코딩하기 위한 장치로서,
    인코딩하기 위한 픽처의 현재 블록을 선택하는 수단과,
    상기 현재 블록에 대한 참조 블록을 선택하는 수단과,
    상기 선택된 참조 블록에 기초하여 참조 타입을 결정하는 수단과,
    상기 참조 타입에 기초하여 상기 현재 블록에 대한 움직임 벡터를 결정하는 수단과,
    상기 참조 타입이 뷰-간 예측(inter-view prediction)과 동일하면, 상기 현재 블록에 대한 움직임 벡터의 수직 움직임 벡터 컴포넌트를 범위[a1,b1] 내로 제한하는 수단과,
    상기 결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하는 수단을 포함하는
    장치.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 참조 블록이 속하는 픽처를 식별하는 참조 픽처 인덱스에 기초하여 상기 참조 타입을 결정하는 수단을 더 포함하는
    장치.
  10. 삭제
  11. 제 7 항 또는 제 8 항에 있어서,
    상기 참조 블록의 선택을 위해 하나 이상의 참조 픽처를 제공하는 수단을 더 포함하며,
    상기 하나 이상의 참조 픽처는,
    뷰 합성된 픽처(view synthesized picture),
    뷰-간 픽처(inter-view picture),
    계층-간 픽처(inter-layer picture), 또는
    인터-예측된 픽처(inter-predicted picture)
    중 적어도 하나를 포함하는
    장치.
  12. 제 11 항에 있어서,
    상기 선택된 참조 블록이 상기 뷰 합성된 픽처, 상기 뷰-간 픽처 또는 상기 계층-간 픽처로부터 선택된 것이면, 수직 움직임 벡터 컴포넌트를 제 1 범위[al,bl] 내로 제한하는 수단과,
    상기 선택된 참조 블록이 상기 뷰 합성된 픽처 또는 상기 계층-간 픽처로부터 선택된 것이면, 수평 움직임 벡터 컴포넌트를 제 2 범위[a2,b2] 내로 제한하는 수단을 더 포함하는
    장치.
  13. 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 저장 매체로서,
    하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 적어도,
    인코딩하기 위한 픽처의 현재 블록을 선택하게 하고,
    상기 현재 블록에 대한 참조 블록을 선택하게 하고,
    상기 선택된 참조 블록에 기초하여 참조 타입을 결정하게 하고,
    상기 참조 타입에 기초하여 상기 현재 블록에 대한 움직임 벡터를 결정하게 하고,
    상기 참조 타입이 계층-간 예측(inter-layer prediction)과 동일하면, 상기 현재 블록에 대한 움직임 벡터를 제로로 설정하게 하고,
    상기 결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하게 하도록 상기 명령어가 구성되는
    컴퓨터 판독가능 저장 매체.
  14. 픽처의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하는 단계와,
    상기 인코딩된 정보로부터 상기 현재 블록에 대한 참조 타입을 결정하는 단계와,
    상기 참조 타입에 기초하여 상기 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하는 단계와,
    상기 참조 타입이 계층-간 예측(inter-layer prediction)과 동일하면, 상기 현재 블록에 대한 움직임 벡터를 제로로 설정하는 단계와,
    상기 움직임 벡터 정보 및 참조 불록에 기초하여 상기 현재 블록을 디코딩하는 단계를 포함하는
    방법.
  15. 픽처의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하는 단계와,
    상기 인코딩된 정보로부터 상기 현재 블록에 대한 참조 타입을 결정하는 단계와,
    상기 참조 타입에 기초하여 상기 현재 블록에 관한 움직임 벡터 정보를 획득하는 방식을 결정하는 단계와,
    상기 참조 타입이 뷰-간 예측(inter-view prediction)과 동일하면, 상기 현재 블록에 대한 움직임 벡터의 수직 움직임 벡터 컴포넌트를 범위[a1,b1] 내로 제한하는 단계와,
    상기 움직임 벡터 정보 및 참조 불록에 기초하여 상기 현재 블록을 디코딩하는 단계를 포함하는
    방법.
  16. 제 14 항 또는 제 15 항에 있어서,
    상기 현재 블록에 대한 상기 참조 타입을 디코딩하는 단계는,
    상기 비트스트림으로부터 상기 움직임 벡터 정보와 연관되고 상기 참조 블록이 속한 픽처를 식별하는 참조 인덱스를 디코딩하는 단계와,
    상기 참조 픽처 인덱스에 기초하여 상기 참조 타입을 결정하는 단계를 포함하는
    방법.
  17. 삭제
  18. 제 14 항 또는 제 15 항에 있어서,
    상기 참조 타입은,
    뷰 합성 예측(view synthesis prediction),
    뷰-간 예측(inter-view prediction), 또는
    계층-간 예측(inter-layer prediction),
    중 적어도 하나인
    방법.
  19. 제 18 항에 있어서,
    상기 참조 블록이 뷰 합성된 픽처, 뷰-간 픽처 또는 계층-간 픽처로부터 선택된 것이면, 수직 움직임 벡터 컴포넌트를 제 1 범위[a1,b1] 내로 제한하는 단계와,
    상기 참조 블록이 상기 뷰 합성된 픽처 또는 상기 계층-간 픽처로부터 선택된 것이면, 수평 움직임 벡터 컴포넌트를 제 2 범위[a2,b2] 내로 제한하는 단계를 더 포함하는
    방법.
  20. 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치로서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
    프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하게 하고,
    상기 인코딩된 정보로부터 상기 현재 블록에 대한 참조 타입을 결정하게 하고,
    참조 형태에 기초하여 상기 현재 블록에 관한 움직임 벡터 정보를 결정하게 하고,
    상기 참조 타입이 계층-간 예측(inter-layer prediction)과 동일하면, 상기 현재 블록에 대한 움직임 벡터를 제로로 설정하게 하고,
    상기 움직임 벡터 정보 및 참조 블록에 기초하여 상기 현재 블록을 디코딩하게 하도록 구성된
    장치.
  21. 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치로서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
    프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하게 하고,
    상기 인코딩된 정보로부터 상기 현재 블록에 대한 참조 타입을 결정하게 하고,
    참조 형태에 기초하여 상기 현재 블록에 관한 움직임 벡터 정보를 결정하게 하고,
    상기 참조 타입이 뷰-간 예측(inter-view prediction)과 동일하면, 상기 현재 블록에 대한 움직임 벡터의 수직 움직임 벡터 컴포넌트를 범위[a1,b1] 내로 제한하게 하고,
    상기 움직임 벡터 정보 및 참조 블록에 기초하여 상기 현재 블록을 디코딩하게 하도록 구성된
    장치.
  22. 제 20 항 또는 제 21 항에 있어서,
    상기 비트스트림으로부터 상기 움직임 벡터 정보와 연관되고 상기 참조 블록이 속한 픽처를 식별하는 참조 인덱스를 디코딩하는 수단과,
    상기 참조 픽처 인덱스에 기초하여 상기 참조 타입을 결정하는 수단을 더 포함하는
    장치.
  23. 삭제
  24. 제 20 항 또는 제 21 항에 있어서,
    상기 참조 블록의 선택을 위해 하나 이상의 참조 픽처를 제공하는 수단을 더 포함하며,
    상기 하나 이상의 참조 픽처는,
    뷰 합성 예측(view synthesis prediction),
    뷰-간 예측(inter-view prediction), 또는
    계층-간 예측(inter-layer prediction)
    중 적어도 하나를 포함하는
    장치.
  25. 제 24 항에 있어서,
    상기 참조 블록이 뷰 합성된 픽처, 뷰-간 픽처 또는 계층-간 픽처로부터 선택된 것이면, 수직 움직임 벡터 컴포넌트를 제 1 범위[a1,b1] 내로 제한하는 수단과,
    상기 참조 블록이 상기 뷰 합성된 픽처 또는 상기 계층-간 픽처로부터 선택된 것이면, 수평 움직임 벡터 컴포넌트를 제 2 범위[a2,b2] 내로 제한하는 수단을 더 포함하는
    장치.
  26. 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 저장 매체로서,
    하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 적어도,
    프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하게 하고,
    상기 인코딩된 정보로부터 상기 현재 블록에 대한 참조 타입을 결정하게 하고,
    상기 참조 타입에 기초하여 상기 현재 블록에 관한 움직임 벡터 정보를 결정하게 하고,
    상기 참조 타입이 계층-간 예측(inter-layer prediction)과 동일하면, 상기 현재 블록에 대한 움직임 벡터를 제로로 설정하게 하고,
    상기 움직임 벡터 정보 및 참조 블록에 기초하여 상기 현재 블록을 디코딩하게 하도록 상기 명령어가 구성되는
    컴퓨터 판독가능 저장 매체.
  27. 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 저장 매체로서,
    하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 적어도,
    인코딩하기 위한 픽처의 현재 블록을 선택하게 하고,
    상기 현재 블록에 대한 참조 블록을 선택하게 하고,
    상기 선택된 참조 블록에 기초하여 참조 타입을 결정하게 하고,
    상기 참조 타입에 기초하여 상기 현재 블록에 대한 움직임 벡터를 결정하게 하고,
    상기 참조 타입이 뷰-간 예측(inter-view prediction)과 동일하면, 상기 현재 블록에 대한 움직임 벡터의 수직 움직임 벡터 컴포넌트를 범위[a1,b1] 내로 제한하게 하고,
    상기 결정된 움직임 벡터에 기초하여 움직임 벡터 정보를 인코딩하게 하도록 상기 명령어가 구성되는
    컴퓨터 판독가능 저장 매체.
  28. 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 저장 매체로서,
    하나 이상의 프로세서에 의해 실행될 때, 장치로 하여금 적어도,
    프레임의 현재 블록에 관한 인코딩된 정보를 포함하는 비트스트림을 수신하게 하고,
    상기 인코딩된 정보로부터 상기 현재 블록에 대한 참조 타입을 결정하게 하고,
    상기 참조 타입에 기초하여 상기 현재 블록에 관한 움직임 벡터 정보를 결정하게 하고,
    상기 참조 타입이 뷰-간 예측(inter-view prediction)과 동일하면, 상기 현재 블록에 대한 움직임 벡터의 수직 움직임 벡터 컴포넌트를 범위[a1,b1] 내로 제한하게 하고,
    상기 움직임 벡터 정보 및 참조 블록에 기초하여 상기 현재 블록을 디코딩하게 하도록 상기 명령어가 구성되는
    컴퓨터 판독가능 저장 매체.
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
KR1020147031996A 2012-04-16 2013-04-16 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램 KR101682999B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261624902P 2012-04-16 2012-04-16
US61/624,902 2012-04-16
PCT/FI2013/050418 WO2013156678A1 (en) 2012-04-16 2013-04-16 An apparatus, a method and a computer program for video coding and decoding

Publications (2)

Publication Number Publication Date
KR20150010736A KR20150010736A (ko) 2015-01-28
KR101682999B1 true KR101682999B1 (ko) 2016-12-20

Family

ID=49382981

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147031996A KR101682999B1 (ko) 2012-04-16 2013-04-16 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램

Country Status (5)

Country Link
US (1) US10863170B2 (ko)
EP (1) EP2839660B1 (ko)
KR (1) KR101682999B1 (ko)
CN (1) CN104396244B (ko)
WO (1) WO2013156678A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7983835B2 (en) 2004-11-03 2011-07-19 Lagassey Paul J Modular intelligent transportation system
US9253487B2 (en) * 2012-05-31 2016-02-02 Qualcomm Incorporated Reference index for enhancement layer in scalable video coding
EP2670146A1 (en) * 2012-06-01 2013-12-04 Alcatel Lucent Method and apparatus for encoding and decoding a multiview video stream
WO2014011595A1 (en) * 2012-07-09 2014-01-16 Vid Scale, Inc. Codec architecture for multiple layer video coding
US20150201215A1 (en) * 2012-07-27 2015-07-16 Mediatek Inc. Method of constrain disparity vector derivation in 3d video coding
SG10201601307SA (en) * 2012-09-28 2016-03-30 Sony Corp Image processing device and method
CN102883163B (zh) 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
GB2499694B8 (en) * 2012-11-09 2017-06-07 Sony Computer Entertainment Europe Ltd System and method of image reconstruction
US10021388B2 (en) * 2012-12-26 2018-07-10 Electronics And Telecommunications Research Institute Video encoding and decoding method and apparatus using the same
CN105409215B (zh) 2013-01-11 2018-10-09 华为技术有限公司 深度预测模式选择方法及装置
FR3002716A1 (fr) 2013-02-26 2014-08-29 France Telecom Derivation de vecteur de mouvement de disparite, codage et decodage video 3d utilisant une telle derivation
US11438609B2 (en) 2013-04-08 2022-09-06 Qualcomm Incorporated Inter-layer picture signaling and related processes
US20140354771A1 (en) * 2013-05-29 2014-12-04 Ati Technologies Ulc Efficient motion estimation for 3d stereo video encoding
US9497439B2 (en) * 2013-07-15 2016-11-15 Ati Technologies Ulc Apparatus and method for fast multiview video coding
KR20150029593A (ko) * 2013-09-10 2015-03-18 주식회사 케이티 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치
KR101869882B1 (ko) * 2013-10-11 2018-06-25 브이아이디 스케일, 인크. Hevc 확장을 위한 하이 레벨 구문
MX364032B (es) * 2013-10-22 2019-04-11 Kt Corp Metodo y dispositivo para codificar/descodificar una señal de video de multicapa.
KR20150046742A (ko) * 2013-10-22 2015-04-30 주식회사 케이티 멀티 레이어 비디오 신호 인코딩/디코딩 방법 및 장치
WO2015064990A1 (ko) * 2013-10-29 2015-05-07 주식회사 케이티 멀티 레이어 비디오 신호 인코딩/디코딩 방법 및 장치
WO2015103747A1 (en) * 2014-01-08 2015-07-16 Mediatek Singapore Pte. Ltd. Motion parameter hole filling
US10178397B2 (en) * 2014-03-24 2019-01-08 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs
US9584817B2 (en) * 2014-03-31 2017-02-28 Sony Corporation Video transmission system with color prediction and method of operation thereof
CN112511837A (zh) * 2014-08-20 2021-03-16 弗劳恩霍夫应用研究促进协会 视频合成系统、视频合成方法及计算机可读存储介质
WO2016119104A1 (en) * 2015-01-26 2016-08-04 Mediatek Inc. Motion vector regularization
US9359686B1 (en) 2015-01-09 2016-06-07 Apple Inc. Processes to reduce interfacial enrichment of alloying elements under anodic oxide films and improve anodized appearance of heat treatable alloys
CN106254878B (zh) * 2015-06-14 2020-06-12 同济大学 一种图像编码及解码方法、图像处理设备
CN108293131B (zh) * 2015-11-20 2021-08-31 联发科技股份有限公司 基于优先级运动矢量预测子推导的方法及装置
US10652569B2 (en) * 2015-12-22 2020-05-12 Realnetworks, Inc. Motion vector selection and prediction in video coding systems and methods
WO2018033661A1 (en) * 2016-08-15 2018-02-22 Nokia Technologies Oy Video encoding and decoding
US10812791B2 (en) * 2016-09-16 2020-10-20 Qualcomm Incorporated Offset vector identification of temporal motion vector predictor
CN117119179A (zh) * 2016-11-18 2023-11-24 株式会社Kt 视频解码方法、视频编码方法和压缩视频数据发送设备
WO2018169571A1 (en) * 2017-03-15 2018-09-20 Google Llc Segmentation-based parameterized motion models
FR3068558A1 (fr) * 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
KR102471076B1 (ko) 2017-09-19 2022-11-25 삼성전자주식회사 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치
US10681374B2 (en) * 2017-11-16 2020-06-09 Google Llc Diversified motion using multiple global motion models
CN107834560B (zh) * 2017-11-16 2020-09-29 河海大学常州校区 基于整数阶高阶滑模模糊控制的有源电力滤波器控制方法
KR20240013897A (ko) 2018-08-29 2024-01-30 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 서브블록 기반 시간적 모션 벡터 예측을 사용한 비디오 코딩의 방법 및 장치
KR102043186B1 (ko) 2019-05-15 2019-11-12 한국화학연구원 무기산 제거용 비드 및 이의 제조방법
US20230206509A1 (en) * 2021-12-27 2023-06-29 Advanced Micro Devices, Inc. Systems and method for generating morton code

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090110080A1 (en) 2003-03-03 2009-04-30 Yoon Seong Soh Method of processing a current field macroblock
US20100290527A1 (en) 2009-05-12 2010-11-18 Lg Electronics Inc. Method and apparatus of processing a video signal
US20110170602A1 (en) 2010-01-14 2011-07-14 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding motion vector

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09261653A (ja) * 1996-03-18 1997-10-03 Sharp Corp 多視点画像符号化装置
US20020118743A1 (en) * 2001-02-28 2002-08-29 Hong Jiang Method, apparatus and system for multiple-layer scalable video coding
JP2004007563A (ja) * 2002-04-19 2004-01-08 Matsushita Electric Ind Co Ltd 動画像符号化方法および動画像復号化方法
JP4120301B2 (ja) * 2002-04-25 2008-07-16 ソニー株式会社 画像処理装置およびその方法
KR100491530B1 (ko) * 2002-05-03 2005-05-27 엘지전자 주식회사 모션 벡터 결정 방법
US8582659B2 (en) * 2003-09-07 2013-11-12 Microsoft Corporation Determining a decoding time stamp from buffer fullness
US7577200B2 (en) 2003-09-07 2009-08-18 Microsoft Corporation Extended range variable length coding/decoding of differential motion vector information
US8385427B2 (en) * 2005-04-15 2013-02-26 Apple Inc. Reduced resolution video decode
AU2006277007B2 (en) * 2005-07-21 2011-10-27 Interdigital Vc Holdings, Inc. Method and apparatus for weighted prediction for scalable video coding
MY159176A (en) * 2005-10-19 2016-12-30 Thomson Licensing Multi-view video coding using scalable video coding
WO2007077116A1 (en) * 2006-01-05 2007-07-12 Thomson Licensing Inter-layer motion prediction method
JP2008011197A (ja) * 2006-06-29 2008-01-17 Toshiba Corp 動きベクトル検出装置、動きベクトル検出方法および補間フレーム作成装置
US8179969B2 (en) * 2006-08-18 2012-05-15 Gwangju Institute Of Science And Technology Method and apparatus for encoding or decoding frames of different views in multiview video using global disparity
US8532178B2 (en) * 2006-08-25 2013-09-10 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal with inter-view reference picture list construction
JP5170786B2 (ja) 2006-10-25 2013-03-27 韓國電子通信研究院 マルチビュービデオのスケーラブルコーディングおよびデコーディング方法、ならびにコーディングおよびデコーディング装置
CN101702963A (zh) * 2007-03-15 2010-05-05 诺基亚公司 用于为视频编码中的空间可伸缩性提供改进的残差预测的系统和方法
EP2132941B1 (en) 2007-04-09 2017-05-17 Nokia Technologies Oy High accuracy motion vectors for video coding with low encoder and decoder complexity
US8861598B2 (en) * 2008-03-19 2014-10-14 Cisco Technology, Inc. Video compression using search techniques of long-term reference memory
EP2192780A1 (en) * 2008-11-28 2010-06-02 Thomson Licensing Method for video decoding supported by Graphics Processing Unit
WO2010126613A2 (en) * 2009-05-01 2010-11-04 Thomson Licensing Inter-layer dependency information for 3dv
US9237355B2 (en) * 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
US8855205B2 (en) 2010-05-26 2014-10-07 Newratek Inc. Method of predicting motion vectors in video codec in which multiple references are allowed, and motion vector encoding/decoding apparatus using the same
US20120075436A1 (en) * 2010-09-24 2012-03-29 Qualcomm Incorporated Coding stereo video data
EP2661881A4 (en) * 2010-12-29 2016-10-12 Nokia Technologies Oy CODING OF DISPARITY CARD
TW201246943A (en) * 2011-01-26 2012-11-16 Panasonic Corp Video image encoding method, video image encoding device, video image decoding method, video image decoding device, and video image encoding and decoding device
KR20120118781A (ko) * 2011-04-19 2012-10-29 삼성전자주식회사 다시점 비디오를 위한 단일화된 스케일러블 비디오 부호화 방법 및 그 장치, 다시점 비디오를 위한 단일화된 스케일러블 비디오 복호화 방법 및 그 장치
WO2013032512A1 (en) * 2011-08-30 2013-03-07 Intel Corporation Multiview video coding schemes
US20140286433A1 (en) * 2011-10-21 2014-09-25 Dolby Laboratories Licensing Corporation Hierarchical motion estimation for video compression and motion analysis
US9762904B2 (en) * 2011-12-22 2017-09-12 Qualcomm Incorporated Performing motion vector prediction for video coding
US9288506B2 (en) * 2012-01-05 2016-03-15 Qualcomm Incorporated Signaling view synthesis prediction support in 3D video coding
WO2013106190A1 (en) * 2012-01-09 2013-07-18 Dolby Laboratories Licensing Corporation Hybrid reference picture reconstruction method for single and multiple layered video coding systems
DK2822276T3 (en) * 2012-02-29 2019-02-04 Lg Electronics Inc Method for interlayer prediction and device using it
US9325990B2 (en) * 2012-07-09 2016-04-26 Qualcomm Incorporated Temporal motion vector prediction in video coding extensions
US9900609B2 (en) * 2013-01-04 2018-02-20 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
WO2015006281A2 (en) * 2013-07-09 2015-01-15 Sony Corporation High level syntax improvement on inter-layer prediction for shvc/mv-hevc

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090110080A1 (en) 2003-03-03 2009-04-30 Yoon Seong Soh Method of processing a current field macroblock
US20100290527A1 (en) 2009-05-12 2010-11-18 Lg Electronics Inc. Method and apparatus of processing a video signal
US20110170602A1 (en) 2010-01-14 2011-07-14 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding motion vector

Also Published As

Publication number Publication date
US10863170B2 (en) 2020-12-08
CN104396244A (zh) 2015-03-04
EP2839660B1 (en) 2020-10-07
US20140133567A1 (en) 2014-05-15
KR20150010736A (ko) 2015-01-28
CN104396244B (zh) 2019-08-09
WO2013156678A1 (en) 2013-10-24
EP2839660A1 (en) 2015-02-25
EP2839660A4 (en) 2016-09-28

Similar Documents

Publication Publication Date Title
KR101682999B1 (ko) 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
KR101662963B1 (ko) 3d 비디오 코딩을 위한 장치, 방법 및 컴퓨터 프로그램
EP2984834B1 (en) Harmonized inter-view and view synthesis prediction for 3d video coding
KR101630564B1 (ko) 비디오 코딩을 위한 방법 및 장치
KR101715784B1 (ko) 비디오 코딩 방법 및 장치
KR101669524B1 (ko) 비디오 코딩을 위한 방법 및 장치
KR101664758B1 (ko) 비디오 코딩 방법 및 장치
US9191646B2 (en) Apparatus, a method and a computer program for video coding and decoding
TWI538482B (zh) 於可擴展及多視角視訊寫碼之進階殘差預測
US20140218473A1 (en) Method and apparatus for video coding and decoding
US20150245063A1 (en) Method and apparatus for video coding
US20140085415A1 (en) Method and apparatus for video coding
KR20140057373A (ko) 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
JP2018524897A (ja) ビデオの符号化・復号装置、方法、およびコンピュータプログラム
US20140003505A1 (en) Method and apparatus for video coding
WO2013159330A1 (en) An apparatus, a method and a computer program for video coding and decoding
WO2013159300A1 (en) An apparatus, a method and a computer program for video coding and decoding

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right