KR101967398B1 - 모션 정보를 시그널링하기 위한 구문을 수반하는 비디오 코딩을 위한 방법 및 장치 - Google Patents

모션 정보를 시그널링하기 위한 구문을 수반하는 비디오 코딩을 위한 방법 및 장치 Download PDF

Info

Publication number
KR101967398B1
KR101967398B1 KR1020167003400A KR20167003400A KR101967398B1 KR 101967398 B1 KR101967398 B1 KR 101967398B1 KR 1020167003400 A KR1020167003400 A KR 1020167003400A KR 20167003400 A KR20167003400 A KR 20167003400A KR 101967398 B1 KR101967398 B1 KR 101967398B1
Authority
KR
South Korea
Prior art keywords
picture
prediction
motion
bitstream
layer
Prior art date
Application number
KR1020167003400A
Other languages
English (en)
Other versions
KR20160030560A (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 KR20160030560A publication Critical patent/KR20160030560A/ko
Application granted granted Critical
Publication of KR101967398B1 publication Critical patent/KR101967398B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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

모션 정보를 시그널링하기 위한 구문을 수반하는 비디오 코딩을 위한 방법 및 장치{METHOD AND APPARATUS FOR VIDEO CODING INVOLVING SYNTAX FOR SIGNALLING MOTION INFORMATION}
본 출원은 전반적으로 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램에 관한 것이다.
이 섹션은 청구범위에 언급되어 있는 발명의 배경 또는 맥락(context)을 제공하도록 의도된 것이다. 본 명세서에서의 설명은 추구될 수 있지만, 반드시 이전에 고려되었거나 추구되었던 것들은 아닌 개념을 포함할 수 있다. 따라서, 본 명세서에서 달리 지시되지 않으면, 이 섹션에 설명된 것은 본 출원의 상세한 설명 및 청구범위에 대한 종래 기술은 아니고, 이 섹션에서 포함에 의해 종래 기술로 용인되는 것은 아니다.
비디오 코딩 시스템은 입력 비디오를 저장/전송을 위해 적합한 압축된 표현으로 변환하는 인코더 및 압축된 비디오 표현을 재차 뷰잉가능한 형태로 압축해제할 수 있는 디코더를 포함할 수 있다. 인코더는 예를 들어 그렇지 않으면 요구될 수도 있는 더 낮은 비트레이트에서 비디오 정보의 저장/전송을 가능하게 하기 위해, 더 콤팩트한 형태로 비디오를 표현하기 위해 원래 비디오 시퀀스에서 몇몇 정보를 폐기할 수 있다.
3차원(3D) 비디오 콘텐트를 제공하기 위한 다양한 기술이 현재 연구 개발되고 있다. 특히, 뷰어가 특정 관점으로부터 단지 한 쌍의 입체 비디오를 그리고 다른 관점으로부터 다른 쌍의 입체 비디오를 보는 것이 가능한 다양한 멀티뷰 용례에 강렬한 연구가 집중되고 있다. 이러한 멀티뷰 용례를 위한 가장 실행가능한 접근법들 중 하나는 단지 제한된 수의 입력 뷰, 예를 들어 모노 또는 입체 비디오에 더하여 몇몇 보충 데이터가 디코더측에 제공되고, 모든 요구된 뷰가 이어서 디스플레이 상에 표시될 디코더에 의해 로컬하게 렌더링되는(즉, 합성됨) 것으로 판명되었다.
몇몇 비디오 코딩 표준은 슬라이스 계층 및 아래에 헤더를, 그리고 슬라이스 계층 위의 계층에 파라미터 세트의 개념을 도입한다. 파라미터 세트의 인스턴스는 모든 픽처(picture), 픽처의 그룹(group of pictures: GOP), 및 픽처 크기, 디스플레이 윈도우, 이용된 선택적 코딩 모드, 매크로블록 할당맵 등과 같은 시퀀스 레벨 데이터를 포함할 수 있다. 각각의 파라미터 세트 인스턴스는 고유 식별자를 포함할 수 있다. 각각의 슬라이스 헤더는 파라미터 세트 식별자로의 참조를 포함할 수 있고, 참조된 파라미터의 파라미터값은 슬라이스를 디코딩할 때 사용될 수 있다. 파라미터 세트는 시퀀스, GOP 및 픽처 경계로부터 픽처, GOP 및 시퀀스 레벨 데이터를 드물게 변경하는 전송 및 디코딩 순서를 디커플링한다. 파라미터 세트는 이들이 참조되기 전에 디코딩되는 한 신뢰적인 전송 프로토콜을 사용하여 대역외 전송될 수 있다. 파라미터 세트가 대역내 전송되면, 이들은 종래의 비디오 코딩 방안에 비교되어 에러 신뢰성을 향상하기 위해 다수회 반복될 수 있다. 파라미터 세트는 세션 셋업 시간에 전송될 수도 있다. 그러나, 몇몇 시스템, 주로 브로드캐스트 시스템에서, 파라미터 세트의 신뢰적인 대역외 전송은 실행 가능하지 않을 수도 있고, 오히려 파라미터 세트는 파라미터 세트 NAL 유닛에서 대역내 전달된다.
몇몇 실시예는 비디오 정보를 인코딩 및 디코딩하기 위한 방법을 제공한다. 본 발명의 몇몇 실시예에서, 비디오 코딩을 위한 방법, 장치 및 컴퓨터 프로그램 제품이 제공된다.
본 발명의 예의 다양한 양태는 상세한 설명에 제공되어 있다.
제 1 양태에 따르면, 계층의 모션 필드가 저장되는지 여부를 지시하는 지시를 비트스트림 내로 인코딩하는 단계를 적어도 포함하고, 모션 필드는 단지 계층간 모션 예측을 위한 것인 방법이 제공된다.
제 2 양태에 따르면,
a) 단지 계층간 모션 예측을 위한 것인, 모션 필드가 저장되는지의 지시를 비트스트림 내로 인코딩하는 단계;
b) 모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림 내로 인코딩하는 단계;
c) 예측을 위한 모션 필드를 사용하는지 여부의 지시를 비트스트림 내로 인코딩하는 단계;
d) 모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림 내로 인코딩하는 단계 중 적어도 하나를 포함하는 방법이 제공된다.
제 3 양태에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하고, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서에 의해, 장치가 적어도 계층의 모션 필드가 저장되는지 여부를 지시하는 지시를 비트스트림 내로 인코딩하는 것을 수행하게 하도록 구성되고, 모션 필드는 단지 계층간 모션 예측을 위한 것인 장치가 제공된다.
제 4 양태에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하고, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서에 의해, 장치가 적어도
a) 단지 계층간 모션 예측을 위한 것인, 모션 필드가 저장되는지의 지시를 비트스트림 내로 인코딩하는 것;
b) 모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림 내로 인코딩하는 것;
c) 예측을 위한 모션 필드를 사용하는지 여부의 지시를 비트스트림 내로 인코딩하는 것;
d) 모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림 내로 인코딩하는 것 중 적어도 하나를 수행하게 하도록 구성되는 장치가 제공된다.
제 5 양태에 따르면, 적어도 프로세싱을 위한 수단 및 메모리 수단을 포함하는 장치가 제공되고, 장치는 적어도 모션 필드가 저장되는지 여부를 지시하는 지시를 비트스트림 내로 인코딩하도록 구성되는 인코딩을 위한 수단을 추가로 포함하고, 모션 필드는 단지 계층간 모션 예측을 위한 것이다.
제 6 양태에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하고, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 적어도 하나의 프로세서에 의해, 인코더가 적어도 모션 필드가 저장되는지 여부를 지시하는 지시를 비트스트림 내로 인코딩하는 것을 수행하게 하도록 구성되고, 모션 필드는 단지 계층간 모션 예측을 위한 것인 인코더가 제공된다.
제 7 양태에 따르면, 하나 이상의 프로세서에 의해 실행될 때, 장치가 적어도 모션 필드가 저장되는지 여부를 지시하는 지시를 비트스트림 내로 인코딩하는 것을 수행하게 하고, 모션 필드는 단지 계층간 모션 예측을 위한 것인 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공된다.
제 8 양태에 따르면, 하나 이상의 프로세서에 의해 실행될 때, 장치가
a) 단지 계층간 모션 예측을 위한 것인, 모션 필드가 저장되는지의 지시를 비트스트림 내로 인코딩하는 것;
b) 모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림 내로 인코딩하는 것;
c) 예측을 위한 모션 필드를 사용하는지 여부의 지시를 비트스트림 내로 인코딩하는 것;
d) 모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림 내로 인코딩하는 것 중 적어도 하나를 수행하게 하는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공된다.
제 9 양태에 따르면, 모션 필드가 저장되는지 여부를 지시하는 지시를 비트스트림으로부터 디코딩하는 단계를 적어도 포함하고, 모션 필드는 단지 계층간 모션 예측을 위한 것인 방법이 제공된다.
제 10 양태에 따르면,
a) 단지 계층간 모션 예측을 위한 것인, 모션 필드가 저장되는지의 지시를 비트스트림으로부터 디코딩하는 단계;
b) 모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림으로부터 디코딩하는 단계;
c) 예측을 위한 모션 필드를 사용하는지 여부의 지시를 비트스트림으로부터 디코딩하는 단계;
d) 모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림으로부터 디코딩하는 단계 중 적어도 하나를 포함하는 방법이 제공된다.
제 11 양태에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하고, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서에 의해, 장치가 적어도 모션 필드가 저장되는지 여부를 지시하는 지시를 비트스트림으로부터 디코딩하는 것을 수행하게 하도록 구성되고, 모션 필드는 단지 계층간 모션 예측을 위한 것인 장치가 제공된다.
제 12 양태에 따르면, 적어도 프로세싱을 위한 수단 및 메모리 수단을 포함하는 장치가 제공되고, 장치는 적어도 모션 필드가 저장되는지 여부를 지시하는 지시를 비트스트림으로부터 디코딩하도록 구성되는 디코딩을 위한 수단을 추가로 포함하고, 모션 필드는 단지 계층간 모션 예측을 위한 것이다.
제 13 양태에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하고, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서에 의해, 장치가 적어도
a) 단지 계층간 모션 예측을 위한 것인, 모션 필드가 저장되는지의 지시를 비트스트림으로부터 디코딩하는 것;
b) 모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림으로부터 디코딩하는 것;
c) 예측을 위한 모션 필드를 사용하는지 여부의 지시를 비트스트림으로부터 디코딩하는 것;
d) 모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림으로부터 디코딩하는 것 중 적어도 하나를 수행하게 하도록 구성되는 장치가 제공된다.
제 14 양태에 따르면, 하나 이상의 프로세서에 의해 실행될 때, 장치가 적어도 모션 필드가 저장되는지 여부를 지시하는 지시를 비트스트림으로부터 디코딩하는 것을 수행하게 하고, 모션 필드는 단지 계층간 모션 예측을 위한 것인 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공된다.
제 15 양태에 따르면, 하나 이상의 프로세서에 의해 실행될 때, 장치가
a) 단지 계층간 모션 예측을 위한 것인, 모션 필드가 저장되는지의 지시를 비트스트림으로부터 디코딩하는 것;
b) 모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림으로부터 디코딩하는 것;
c) 예측을 위한 모션 필드를 사용하는지 여부의 지시를 비트스트림으로부터 디코딩하는 것;
d) 모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림으로부터 디코딩하는 것 중 적어도 하나를 수행하게 하는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공된다.
실시예에 따르면, 단계 a)는
i. 모션 필드가 시간적 모션 벡터 예측을 위한 계층 내에서 사용되는지 여부의 지시를 비트스트림 내로/으로부터 인코딩/디코딩하는 단계;
ii. 계층간 모션 예측이 사용되도록 허용되는지 여부의 지시를 비트스트림 내로/으로부터 인코딩/디코딩하는 단계;
iii. 대각 모션 예측이 사용되도록 허용되는지 여부의 지시를 비트스트림 내로/으로부터 인코딩/디코딩하는 단계
중 2개 이상을 포함한다.
실시예에 따르면, 지시는 시퀀스 파라미터 세트에서 지정된다.
실시예에 따르면, 모션 필드는 특정 계층에서 현재 픽처를 인코딩하는 부분으로서 저장된다.
실시예에 따르면, 단계 b)에서, 제한된 범주는 특정 시간적 서브 계층 또는 픽처 유형 또는 양자 모두를 규정한다.
실시예에 따르면, 단계 c)는 예측을 위해 사용될 모션 필드를 추론하기 위한 특정 알고리즘을 사용하는 것을 포함한다.
실시예에 따르면, 단계 c)는 모션 필드 마킹을 제어하기 위한 명령 또는 구문 요소를 비트스트림 내로/으로부터 인코딩/디코딩하는 것을 포함한다.
실시예에 따르면, 단계 d)는 모션 정보를 저장하는 공간 분해능 또는 정확도를 지시하는 것을 포함한다.
실시예에 따르면, 단계 d)는 모션 정보의 어느 파라미터가 모션 예측에 요구되는지를 지시하는 것을 포함한다.
실시예에 따르면, 단계 d)는 모션 필드를 위한 저장 공간을 감소시키는 모션 정보의 파라미터에 대한 제약을 지시하는 것을 포함한다.
실시예에 따르면, 장치는 모바일 디바이스이다.
본 발명의 예시적인 실시예의 더 완전한 이해를 위해, 이제 첨부 도면과 함께 취한 이하의 상세한 설명을 참조한다.
도 1은 실시예에 따른 비디오 코딩 시스템의 블록도를 도시하고 있다.
도 2는 실시예에 따른 비디오 코딩용 장치를 도시하고 있다.
도 3은 복수의 장치를 포함하는 비디오 코딩용 구성을 도시하고 있다.
도 4는 실시예에 따른 방법의 고레벨 흐름도를 도시하고 있다.
도 5는 후보 모션 벡터 예측기의 소스를 도시하고 있다.
이하, 본 발명의 다수의 실시예가 일 비디오 코딩 구성의 맥락에서 설명될 것이다. 그러나, 본 발명은 이 특정 구성에 한정되는 것은 아니라는 것이 주목되어야 한다. 실제로, 상이한 실시예는 비-스케일러블(non-scalable), 스케일러블(scalable) 및/또는 멀티뷰(multiview) 비디오 코딩의 향상이 요구되는 임의의 환경에서 광범위한 용례를 갖는다. 예를 들어, 본 발명은 스트리밍 시스템, DVD 플레이어, 디지털 텔레비전 수신기, 퍼스널 비디오 레코더, 퍼스널 컴퓨터 상의 시스템 및 컴퓨터 프로그램, 휴대형 컴퓨터 및 통신 디바이스, 뿐만 아니라 비디오 데이터가 핸들링되는 트랜스코더 및 클라우드 컴퓨팅 구성과 같은 네트워크 요소와 같은 비디오 코딩 시스템에 적용가능할 수 있다.
H.264/AVC 표준은 국제 전기 통신 연합의 전기 통신 표준화 부문(Telecommunications Standardization Sector of International Telecommunication Union: ITU-T)의 영상 코딩 전문가 그룹(Video Coding Experts Group: VCEG)의 연합 비디오팀(Joint Video Team: JVT) 및 국제 표준화 기구(International Organisation for Standardization: ISO)/국제 전자 기술 위원회(International Electrotechnical Commission: IEC)의 동영상 전문가 그룹(Moving Picture Experts Group: MPEG)에 의해 개발되었다. H.264/AVC 표준은 양 상위 표준화 기구에 의해 공표되었고, ITU-T 권고(Recommendation) H.264 및 MPEG-4 Part 10 Advanced Video Coding(AVC)이라 또한 알려진 ISO/IEC 국제 표준 14496-10이라 칭한다. 사양에 새로운 확장 또는 특징을 통합하는 H.264/AVC 표준의 다수의 버전이 존재해왔다. 이들 확장은 스케일러블 비디오 코딩(Scalable Video Coding: SVC) 및 멀티뷰 비디오 코딩(Multiview Video Coding: MVC)을 포함한다.
H.265/HEVC 표준은 VCEG 및 MPEG의 비디오 코딩의 공동 연합팀(Joint Collaborative Team on Video Coding: JCT-VC)에 의해 개발되었다. H.265/HEVC 표준은 양 상위 표준 기관에 의해 공표될 것이고, ITU-T 권고 H.265 및 MPEG-H Part 2 고효율 비디오 코딩(High Efficiency Video Coding: HEVC)이라 또한 알려진 ISO/IEC 국제 표준 23008-2라 칭한다. 스케일러블, 멀티뷰, 3차원 및 충실도 범위 확장을 포함하여, H.265/HEVC에 대한 확장을 개발하기 위한 현재 진행중인 표준화 프로젝트가 존재한다.
품질 스케일러빌러티(scalability)(또한 신호-대-노이즈 또는 SNR이라 알려져 있음) 및/또는 공간 스케일러빌러티를 위한 스케일러블 비디오 코덱은 이하와 같이 구현될 수 있다. 베이스 계층을 위해, 종래의 비-스케일러블 비디오 인코더 및 디코더가 사용된다. 베이스 계층의 재구성된/디코딩된 픽처는 향상 계층을 위한 참조 픽처 버퍼 내에 포함된다. 인터 예측(inter prediction)을 위한 참조 픽처 리스트(들)를 사용하는 H.264/AVC, HEVD 및 유사한 코덱에서, 베이스 계층 디코딩된 픽처는 향상 계층의 디코딩된 참조 픽처에 유사하게 향상 계층 픽처의 코딩/디코딩을 위한 참조 픽처 리스트(들) 내에 삽입될 수 있다. 따라서, 인코더는 인터 예측 참조로서 베이스 계층 참조 픽처를 선택할 수 있고, 예를 들어, 코딩된 비트스트림 내의 참조 픽처 인덱스에 의해 그 사용을 지시할 수 있다. 디코더는 비트스트림으로부터, 예를 들어 베이스 계층 픽처가 향상 계층을 위한 인터 예측 참조로서 사용되는 참조 픽처 인덱스로부터 디코딩한다. 디코딩된 베이스 계층 픽처가 향상 계층을 위한 예측 참조로서 사용될 때, 이는 계층간 참조 픽처라 칭한다.
3차원(3D) 비디오 콘텐트를 제공하기 위한 다양한 기술이 현재 연구되고 개발되고 있다. 특히, 뷰어가 특정 관점으로부터 단지 한 쌍의 입체 비디오를 그리고 다른 관점으로부터 다른 쌍의 입체 비디오를 보는 것이 가능한 다양한 멀티뷰 용례에 강렬한 연구가 집중되고 있다. 이러한 멀티뷰 용례를 위한 가장 실행가능한 접근법들 중 하나는 단지 제한된 수의 뷰, 예를 들어 모노 또는 입체 비디오에 더하여 몇몇 보충 데이터가 디코더측에 제공되고, 모든 요구된 뷰가 이어서 디스플레이 상에 표시될 디코더에 의해 로컬하게 렌더링되는(즉, 합성됨) 것으로 판명되었다.
H.264/AVC 및 HEVC의 몇몇 주요 선명도(definition), 비트스트림 및 코딩 구조, 및 개념이 이 섹션에서 실시예들이 구현될 수 있는 비디오 인코더, 디코더, 인코딩 방법, 디코딩 방법, 및 비트스트림 구조의 예로서 설명된다. H.264/AVC의 주요 선명도, 비트스트림 및 코딩 구조, 및 개념은 HEVC와 동일하고 - 따라서 이들은 이하에 함께 설명된다. 본 발명의 양태는 H.264/AVC 또는 HEVC에 한정되는 것은 아니고, 오히려 설명은 그 위에서 본 발명이 부분적으로 또는 완전히 실현될 수 있는 일 가능한 기초에 대해 제공된다.
H.264/AVC 및 HEVC를 설명할 때 뿐만 아니라 예시적인 실시예에서, 산술 연산자, 논리 연산자, 관련 연산자, 비트단위 연산자, 대입 연산자 및 예를 들어 H.264/AVC 또는 드래프트 HEVC에 지정된 바와 같은 범위 표기법에 대한 통상의 표기법이 사용될 수 있다. 더욱이, 예를 들어 H.264/AVC 또는 드래프트 HEVC에 지정된 바와 같은 통상의 수학적 함수가 사용될 수 있고, 예를 들어, H.264/AVC 또는 드래프트 HEVC에 지정된 바와 같은 연산자의 통상의 순서 또는 우선순위 및 실행 순서(좌로부터 우로 또는 우로부터 좌로)가 사용될 수 있다.
H.264/AVC 및 HEVC를 설명할 때 뿐만 아니라 예시적인 실시예에서, 이하의 설명이 각각의 구문 요소(syntax element)의 파싱 프로세스(parsing process)를 지정하는데 사용될 수 있다.
- b(8): 임의의 패턴의 비트열을 갖는 바이트(8 비트).
- se(v): 좌측 비트 우선의 부호가 있는 정수 Exp-Golomb-코딩된 구문 요소.
- u(n): n개의 비트를 사용하는 부호가 없는 정수. n이 구문 테이블에서 "v"일 때, 비트의 수는 다른 구문 요소의 값에 의존하는 방식으로 변한다. 이 기술자(descriptor)를 위한 파싱 프로세스는 최상위 비트가 우선 기록된 부호가 없는 정수의 2진 표현으로서 해석된 비트스트림으로부터 n개의 다음의 비트에 의해 지정된다.
- ue(v): 좌측 비트 우선의 부호가 없는 정수 Exp-Golomb-코딩된 구문 요소.
Exp-Golomb 비트열은 예를 들어 이하의 표를 사용하여 코드 번호(codeNum)로 변환될 수 있다.
Figure 112016012771762-pct00001
Exp-Golomb 비트열에 대응하는 코드 번호는 예를 들어, 이하의 표를 사용하여 se(v)로 변환될 수 있다.
Figure 112016012771762-pct00002
H.264/AVC 및 HEVC를 설명할 때 뿐만 아니라 예시적인 실시예에서, 구문 구조, 구문 요소의 의미체계(semantics), 및 디코딩 프로세스는 이하와 같이 지정될 수 있다. 비트열 내의 구문 요소는 굵은 형태로 표현된다. 각각의 구문 요소는 그 명칭(밑줄 문자를 갖는 모든 소문자), 선택적으로 그 하나 또는 2개의 구문 카테고리, 및 코딩된 표현의 그 방법을 위한 하나 또는 2개의 기술자에 의해 기술된다. 디코딩 프로세스는 구문 요소의 값에 따라 그리고 이전에 디코딩된 구문 요소의 값에 따라 거동한다. 구문 요소의 값이 구문 테이블 또는 텍스트에 사용될 때, 소문자와 대문자의 혼합물에 의해 임의의 밑줄 문자 없이 명명된다. 대문자로 시작하는 변수는 현재 구문 구조 및 모든 종속 구문 구조의 디코딩을 위해 유도된다. 대문자로 시작하는 변수는 변수의 원래 구문 구조를 언급하지 않고 이후의 구문 구조를 위해 디코딩 프로세스에 사용될 수 있다. 소문자로 시작하는 변수는 단지 이들이 유도되는 맥락 내에서만 사용된다. 몇몇 경우에, 구문 요소값 또는 변수값을 위한 "니모닉(mnemonic)" 명칭은 이들의 수치값과 상호교환 가능하게 사용된다. 때때로 "니모닉" 명칭은 임의의 연계된 수치값 없이 사용된다. 값 및 명칭의 연계가 텍스트에서 지정된다. 명칭은 밑줄 문자에 의해 분리된 문자의 하나 이상의 그룹으로부터 구성된다. 각각의 그룹은 대문자로 시작하고, 더 많은 대문자를 포함할 수 있다.
H.264/AVC 및 HEVC를 설명할 때 뿐만 아니라, 예시적인 실시예에서, 구문 구조는 이하를 사용하여 지정될 수 있다. 중괄호에 포함된 선언의 그룹은 합성 선언이고, 단일 선언으로서 기능적으로 처리된다. "while" 구조는 조건이 참인지 여부의 테스트를 지정하고, 만일 참이면, 조건이 더 이상 참이 아닐 때까지 선언(또는 합성 선언)의 평가를 반복적으로 지정한다. "do...while" 구조는 선언의 평가를 1회 지정하고, 이어서 조건이 참인지 여부의 테스트로 이어지고, 만일 참이면 조건이 더 이상 참이 아닐 때까지 선언의 반복된 평가를 지정한다. "if...else" 구조는 조건이 참인지 여부의 테스트를 지정하고, 조건이 참이면, 1차 선언의 평가를 지정하고, 그렇지 않으면 대안적인 선언의 평가를 지정한다. 구조 및 연계된 대안적인 선언의 "else"부는 어떠한 대안적인 선언 평가가 요구되지 않으면 생략된다. "for" 구조는 초기 선언의 평가, 이어서 조건의 테스트를 지정하고, 조건이 참이면, 조건이 더 이상 참이 아닐 때까지 후속의 선언으로 이어지는 1차 선언의 반복되는 평가를 지정한다.
다수의 이전의 비디오 코딩 표준에 유사하게, 비트스트림 구문 및 의미체계 뿐만 아니라 무에러 비트스트림을 위한 디코딩 프로세스는 H.264/AVC 및 HEVC에서 지정된다. 인코딩 프로세스는 지정되지 않지만, 인코더는 합치하는 비트스트림을 발생해야 한다. 비트스트림 및 디코딩된 합치성은 가설 기준 디코더 손실로 검증될 수 있지만, 인코딩에서 도구의 사용은 선택적이고, 어떠한 디코딩 프로세스도 에러가 있는 비트스트림에 대해 지정되어 있지 않다.
H.264/AVC 또는 HEVC 인코더로의 입력 및 H.264/AVC 또는 HEVC 디코더의 출력을 위한 최소 유닛은 각각 픽처이다. 픽처는 프레임 또는 필드일 수 있다. 프레임은 루마(luma) 샘플 및 대응하는 크로마(chroma) 샘플의 매트릭스이다. 필드는 프레임의 교번적인 샘플 로우의 세트이고, 소스 신호가 인터레이싱될 때, 인코더 입력으로서 사용될 수 있다. 크로마 픽처는 루마 픽처에 비교될 때 서브샘플링될 수 있다. 예를 들어, 4:2:0 샘플링 패턴에서, 크로마 픽처의 공간 분해능은 양 좌표축을 따른 루마 픽처의 것의 절반이다.
H.264/AVC에서, 매크로블록은 루마 샘플의 16×16 블록 및 크로마 샘플의 대응 블록이다. 예를 들어, 4:2:0 샘플링 패턴에서, 매크로블록은 각각의 크로마 성분마다 크로마 샘플의 하나의 8×8 블록을 포함한다. H.264/AVC에서, 픽처는 하나 이상의 슬라이스 그룹으로 파티셔닝(partitioning)되고, 슬라이스 그룹은 하나 이상의 슬라이스를 포함한다. H.264/AVC에서, 슬라이스는 특정 슬라이스 그룹 내의 래스터 스캔 내에서 연속적으로 순서화된 정수개의 매크로블록으로 이루어진다.
드래프트 HEVC 표준에서, 비디오 픽처는 픽처의 영역을 커버하는 코딩 유닛(CU)으로 분할된다. CU는 CU 내의 샘플을 위한 예측 프로세스를 규정하는 하나 이상의 예측 유닛(prediction units: PU) 및 CU 내의 샘플을 위한 예측 에러 코딩 프로세스를 규정하는 하나 이상의 변환 유닛(transform units: TU)으로 이루어진다. 통상적으로, CU는 가능한 CU 크기의 사전 규정된 세트로부터 선택가능한 크기를 갖는 샘플의 정사각형 블록으로 이루어진다. 최대 허용된 크기를 갖는 CU는 통상적으로 CTU(코딩 트리 유닛)으로서 명명되고, 비디오 픽처는 비중첩 CTU로 분할된다. CTU는 또한 예를 들어 CTU 및 최종적인 CU를 재귀적으로 분할함으로써, 더 소형의 CU의 조합으로 분할될 수 있다. 각각의 최종적인 CU는 통상적으로 적어도 하나의 PU 및 그와 연계된 적어도 하나의 TU를 갖는다. 각각의 PU 및 TU는 또한 예측 및 예측 에러 코딩 프로세스 각각의 입도(granularity)를 증가시키기 위해 더 소형의 PU 및 TU로 분할될 수 있다. PU 분할은 CU를 4개의 동일한 크기의 정사각형 PU로 분할함으로써 또는 CU를 대칭 또는 비대칭 방식으로 2개의 직사각형 PU로 수직으로 또는 수평으로 분할함으로써 실현될 수 있다. CU로의 이미지의 분할, 및 PU 및 TU로의 CU의 분할은 통상적으로 비트스트림 내에서 시그널링되어 디코더가 이들 유닛의 의도된 구조를 재현하게 한다.
드래프트 HEVC 표준에서, 픽처는 직사각형이고 정수개의 CTU를 포함하는 타일로 파티셔닝될 수 있다. HEVC의 현재 작업 드래프트에서, 타일로의 파티셔닝은 규칙적인 그리드를 형성하고, 여기서 타일의 높이 및 폭은 최대 하나의 CTU만큼 서로 상이하다. 드래프트 HEVC에서, 슬라이스는 정수개의 CU로 이루어진다. CU는 타일이 사용중이 아니면, 타일 내에 또는 픽처 내에 CTU의 래스터 스캔 순서로 스캐닝된다. CTU 내에서, CU는 특정 스캔 순서를 갖는다.
HEVC의 작업 드래프트(Working Draft: WD) 5에서, 픽처 파티셔닝을 위한 몇몇 주요 정의 및 개념이 이하와 같이 정의된다. 파티셔닝은 세트의 각각의 요소가 서브세트 중 정확하게 하나 내에 있도록 서브세트로의 세트의 분할로서 정의된다.
HEVC WD5 내의 기본 코딩 유닛은 트리블록(treeblock)이다. 트리블록은 루마 샘플의 N×N 블록 및 3개의 샘플 어레이를 갖는 픽처의 크로마 샘플의 2개의 대응하는 블록, 또는 단색 픽처 또는 3개의 개별 컬러 평면을 사용하여 코딩된 픽처의 샘플의 N×N 블록이다. 트리블록은 상이한 코딩 및 디코딩 프로세스를 위해 파티셔닝될 수 있다. 트리블록 파티션은 루마 샘플의 블록 및 3개의 샘플 어레이를 갖는 픽처를 위한 트리블록의 파티셔닝으로부터 발생하는 크로마 샘플의 2개의 대응하는 블록 또는 단색 픽처 또는 3개의 개별 컬러 평면을 사용하여 코딩된 픽처를 위한 트리블록의 파티셔닝으로부터 발생하는 루마 샘플의 블록이다. 각각의 트리블록은 인트라 또는 인터 예측을 위한 또는 변환 코딩을 위한 블록 크기를 식별하기 위해 파티션 시그널링이 할당된다. 파티셔닝은 재귀적 쿼드트리 파티셔닝이다. 쿼드트리의 루트는 트리블록과 연계된다. 쿼드트리는 코딩 노드라 칭하는 리프가 도달될 때까지 분할된다. 코딩 노드는 2개의 트리, 즉 예측 트리 및 변환 트리의 루트 노드이다. 예측 트리는 예측 블록의 위치 및 크기를 지정한다. 예측 트리 및 연계된 예측 데이터는 예측 유닛이라 칭한다. 변환 트리는 변환 블록의 위치 및 크기를 지정한다. 변환 트리 및 연계된 변환 데이터는 변환 유닛이라 칭한다. 루마 및 크로마를 위한 분할 정보는 예측 트리에 대해 동일하고, 변환 트리에 대해 동일할 수도 있고 또는 동일하지 않을 수도 있다. 코딩 노드 및 연계된 예측 및 변환 유닛은 함께 코딩 유닛을 형성한다.
HEVC WD5에서, 픽처는 슬라이스 및 타일로 분할된다. 슬라이스는 트리블록의 시퀀스일 수 있지만 (소위 미세 입상 슬라이스를 참조할 때) 또한 변환 유닛 및 예측 유닛이 일치하는 로케이션에서 트리블록 내에 그 경계를 가질 수 있다. 슬라이스 내의 트리블록은 래스터 스캔 순서로 코딩되고 디코딩된다. 1차 코딩된 픽처에서, 슬라이스로의 각각의 픽처의 분할은 파티셔닝이다.
HEVC WD5에서, 타일은 타일 내의 래스터 스캔 내에 연속적으로 순서화된 하나의 컬럼 및 하나의 로우로 동시 발생하는 정수개의 트리블록으로서 정의된다. 1차 코딩된 픽처에 대해, 타일로의 각각의 픽처의 분할은 파티셔닝이다. 타일은 픽처 내에서 래스터 스캔에서 연속적으로 순서화된다. 슬라이스는 타일 내의 래스터 스캔에서 연속적인 트리블록을 포함하지만, 이들 트리블록은 픽처 내의 래스터 스캔 내에서 반드시 연속적이진 않다. 슬라이스 및 타일은 트리블록의 동일한 시퀀스를 포함할 필요가 없다. 타일은 하나 초과의 슬라이스 내에 포함된 트리블록을 포함할 수 있다. 유사하게, 슬라이스는 다수의 타일 내에 포함된 트리블록을 포함할 수 있다.
H.264/AVC 및 HEVC에서, 인-픽처 예측(in-picture prediction)은 슬라이스 경계를 가로질러 불능화될 수 있다. 따라서, 슬라이스는 코딩된 픽처를 독립적으로 디코딩가능한 단편으로 분할하기 위한 방식으로서 간주될 수 있고, 따라서 슬라이스는 전송을 위한 최소 유닛으로서 간주된다. 다수의 경우에, 인코더는 어느 유형의 인-픽처 예측이 슬라이스 경계를 가로질러 턴오프되는지를 비트스트림 내에서 지시할 수 있고, 디코더 동작은 예를 들어 어느 예측 소스가 가용한지를 결론지을 때 이 정보를 고려한다. 예를 들어, 이웃하는 매크로블록 또는 CU로부터의 샘플은 이웃하는 매크로블록 또는 CU가 상이한 슬라이스 내에 상주하면, 인트라 예측을 위해 가용하지 않은 것으로서 간주될 수 있다.
구문 요소는 비트스트림 내에 표현된 데이터의 요소로서 정의될 수 있다. 구문 구조는 지정된 순서로 비트스트림 내에서 함께 존재하는 제로 또는 그 이상의 구문 요소로서 정의될 수 있다.
H.264/AVC 또는 HEVC 인코더의 출력 및 H.264/AVC 또는 HEVC 디코더의 입력의 각각을 위한 최소 유닛은 네트워크 추상화 계층(Network Abstraction Layer: NAL) 유닛이다. 패킷-배향된 네트워크를 통한 전송 또는 구조화된 파일 내로의 저장을 위해, NAL 유닛은 패킷 또는 유사한 구조로 캡슐화될 수 있다. 바이트스트림 포맷은 프레이밍 구조를 제공하지 않는 전송 또는 저장 환경을 위해 H.264/AVC 및 HEVC에 지정되어 있다. 바이트스트림 포맷은 각각의 NAL 유닛의 전방에 시작 코드를 부착함으로써 NAL 유닛을 서로로부터 분리한다. NAL 유닛 경계의 오검출을 회피하기 위해, 인코더는 시작 코드가 다른 방식으로 발생되면 NAL 유닛 페이로드에 에뮬레이션 방지 바이트를 추가하는 바이트-배향 시작 코드 에뮬레이션 방지 알고리즘을 실행할 수 있다. 패킷- 및 시스템-배향 시스템 사이의 간단한 게이트웨이 동작을 가능하게 하기 위해, 시작 코드 에뮬레이션 방지가 바이트스트림 포맷이 사용되는지 여부에 무관하게 항상 수행될 수 있다.
NAL 유닛은 헤더 및 페이로드로 이루어진다. H.264/AVC에서, NAL 유닛 헤더는 NAL 유닛의 유형, 및 NAL 유닛 내에 포함된 코딩된 슬라이스가 기준 픽처 또는 비-기준 픽처의 부분인지를 지시한다. H.264/AVC는 0일 때 NAL 유닛 내에 포함된 코딩된 슬라이스가 비-기준 픽처의 부분인 것을 지시하고 0을 초과할 때 NAL 유닛 내에 포함된 코딩된 슬라이스가 기준 픽처의 부분인 것을 지시하는 2-비트 nal_ref_idc 구문 요소를 포함한다. SVC 및 MVC NAL 유닛을 위한 헤더는 부가적으로 스케일러빌러티 및 멀티뷰 계층구조에 관련된 다양한 지시를 포함할 수 있다.
HEVC에서, 2-바이트 NAL 유닛 헤더는 모든 지정된 NAL 유닛 유형을 위해 사용된다. NAL 유닛 헤더는 하나의 예약된 비트, 6-비트 NAL 유닛 유형 지시, 6-비트 예약된 필드(nuh_layer_id라 칭함) 및 시간적 레벨에 대한 3-비트 temporal_id_plus1 지시를 포함한다. temporal_id_plus1 구문 요소는 NAL 유닛을 위한 시간적 식별자로서 간주될 수 있고, 제로 기반 TemporalId 변수는 이하와 같이 유도될 수도 있다: TemporalId = temporal_id_plus1 - 1. 0인 TemporalId는 최하위 시간적 레벨에 대응한다. temporal_id_plus1의 값은 2개의 NAL 유닛 헤더 바이트를 수반하는 시작 코드 에뮬레이션을 회피하기 위해 비-제로인 것으로 요구된다. 선택된 값보다 크거나 같은 TemporalId를 갖는 모든 VCL NAL 유닛을 배제하고 모든 다른 VCL NAL 유닛을 포함함으로써 생성된 비트스트림이 합치하여 유지된다. 따라서, TID에 동일한 TemporalId를 갖는 픽처는 인터 예측 기준으로서 TID보다 큰 TemporalId를 갖는 임의의 픽처를 사용하지 않는다. 서브 계층 또는 시간적 서브 계층은 TemporalId 변수 및 연계된 비-VCL NAL 유닛의 특정값을 갖는 VCL NAL 유닛으로 이루어진 시간적 스케일러블 비트스트림의 시간적 스케일러블 계층으로 규정될 수 있다. 일반성의 손실 없이, 몇몇 예시적인 실시예에서, 변수 LayerId는 예를 들어, 이하와 같이: LayerId = nuh_layer_id로 nuh_layer_id의 값으로부터 유도된다. 이하, LayerId, nuh_layer_id 및 layer_id는 달리 지시되지 않으면 상호교환 가능하게 사용된다.
NAL 유닛 헤더 내의 nuh_layer_id 및/또는 유사한 구문 요소가 스케일러빌러티 계층구조 상에 정보를 전달할 것이라는 것이 예측된다. 예를 들어, LayerId 값은 quality_id 등, dependency_id 등, 임의의 다른 유형의 계층 식별자, 뷰 순서 인덱스 등, 뷰 식별자, NAL 유닛이 깊이 또는 텍스처에 관한 것인지에 대한 지시, 즉 depth_flag 등, 또는 특정 식별자 값보다 큰 모든 NAL 유닛이 비트스트림으로부터 제거되면 유효 서브 비트스트림 추출을 지시하는 SVC의 priority_id에 유사한 식별자와 같은, 상이한 스케일러빌러티 치수를 기술하는 변수 또는 구문 요소의 값으로 맵핑될 수 있다. nuh_layer_id 및/또는 유사한 구문 요소는 스케일러빌러티 특성을 지시하는 하나 이상의 구문 요소로 파티셔닝될 수 있다. 예를 들어, nuh_layer_id 및/또는 유사한 구문 요소 중의 특정 수의 비트가 dependency_id 등을 위해 사용될 수 있고, 반면에 nuh_layer_id 및/또는 유사한 구문 요소 중의 다른 특정 수의 비트가 quality_id 등을 위해 사용될 수 있다. 대안적으로, 상이한 스케일러빌러티 치수를 기술하는 변수 또는 구문 요소의 값으로의 LayerId 값 등의 맵핑은 예를 들어, 비디오 파라미터 세트, 시퀀스 파라미터 세트 또는 다른 구문 구조에 제공될 수 있다.
NAL 유닛은 비디오 코딩 계층(Video Coding Layer: VCL) NAL 및 비-VCL NAL 유닛으로 분류될 수 있다. VCL NAL은 통상적으로 코딩된 슬라이스 NAL 유닛이다. H.264/AVC에서, 코딩된 슬라이스 NAL 유닛은 그 각각이 비압축된 픽처 내의 샘플의 블록에 대응하는, 하나 이상의 코딩된 매크로블록을 표현하는 구문 요소를 포함한다. HEVC에서, 코딩된 슬라이스 NAL 유닛은 하나 이상의 CU를 표현하는 구문 요소를 포함한다.
H.264/AVC에서, 코딩된 슬라이스 NAL 유닛은 순시적 디코딩 리프레시(Instantaneous Decoding Refresh: IDR) 픽처 내의 코딩된 슬라이스 또는 비-IDR 픽처 내의 코딩된 슬라이스인 것으로 지시될 수 있다.
드래프트 HEVC 표준에서, 코딩된 슬라이스 NAL 유닛은 이하의 유형들 중 하나인 것으로 지시될 수 있다.
Figure 112016012771762-pct00003
드래프트 HEVC 표준에서, 픽처 유형에 대한 약어는 이하와 같이 정의될 수 있다: 후행(TRAIL) 픽처, 시간적 서브 계층 액세스(Temporal Sub-layer Access: TSA), 스텝 단위 시간적 서브 계층 액세스(Step-wise Temporal Sub-layer Access: STSA), 랜덤 액세스 디코딩가능한 선행(Random Access Decodable Leading: RADL) 픽처, 랜덤 액세스 스킵된 선행(Random Access Skipped Leading: RASL) 픽처, 브로큰 링크 액세스(Broken Link Access: BLA) 픽처, 순시적 디코딩 리프레시(Instantaneous Decoding Refresh: IDR) 픽처, 클린 랜덤 액세스(Clean Random Access: CRA) 픽처.
인트라 랜덤 액세스 포인트(intra random access point: IRAP) 픽처라 또한 또는 대안적으로 칭할 수도 있는 랜덤 액세스 포인트(Random Access Point: RAP) 픽처는 각각의 슬라이스 또는 슬라이스 세그먼트가 16 내지 23(포함)의 범위에서 nal_unit_type을 갖는 픽처이다. RAP 픽처는 단지 인트라 코딩된 슬라이스를 포함하고, BLA 픽처, CRA 픽처 또는 IDR 픽처일 수 있다. 비트스트림 내의 제 1 픽처는 RAP 픽처이다. 필요한 파라미터 세트가 이들이 활성화될 필요가 있을 때 이용 가능하면, RAP 픽처 및 디코딩 순서로 모든 후속의 비-RASL 픽처는 디코딩 순서로 RAP 픽처에 선행하는 임의의 픽처의 디코딩 프로세스를 수행하지 않고 정확하게 디코딩될 수 있다. RAP 픽처가 아닌 단지 인트라 코딩된 슬라이스를 포함하는 픽처가 비트스트림 내에 존재할 수도 있다.
HEVC에서, CRA 픽처는 디코딩 순서로 비트스트림 내의 제 1 픽처일 수 있고, 또는 비트스트림 내에서 이후에 나타날 수 있다. HEVC 내의 CRA 픽처는 디코딩 순서로 CRA 픽처를 따르지만 출력 순서로 이에 선행하는 소위 선행 픽처를 허용한다. 소위 RASL 픽처와 같은 선행 픽처의 일부는 기준으로서 CRA 픽처 이전에 디코딩된 픽처를 사용할 수 있다. 디코딩 및 출력 순서의 모두에서 CRA 픽처를 따르는 픽처는 랜덤 액세스가 CRA 픽처에서 수행되면 디코딩가능하고, 따라서 클린 랜덤 액세스가 IDR 픽처의 클린 랜덤 액세스 기능성에 유사하게 성취된다.
CRA 픽처는 연계된 RADL 또는 RASL 픽처를 가질 수 있다. CRA 픽처가 디코딩 순서로 비트스트림 내의 제 1 픽처일 때, CRA 픽처는 디코딩 순서로 코딩된 비디오 시퀀스의 제 1 픽처이고, 임의의 연계된 RASL 픽처는 디코더에 의해 출력되지 않고, 이들이 비트스트림 내에 존재하지 않는 픽처로의 기준을 포함할 수 있기 때문에, 디코딩가능하지 않을 수도 있다.
선행 픽처는 출력 순서로 연계된 RAP 픽처를 선행하는 픽처이다. 연계된 RAP 픽처는 디코딩 순서로(존재하면) 이전의 RAP 픽처이다. 선행 픽처는 RADL 픽처 또는 RASL 픽처일 수 있다.
모든 RASL 픽처는 연계된 BLA 또는 CRA 픽처의 선행 픽처이다. 연계된 RAP 픽처가 BLA 픽처이거나 또는 비트스트림 내의 제 1 코딩된 픽처일 때, RASL 픽처는 출력되지 않고, RASL 픽처가 비트스트림 내에 존재하지 않는 픽처로의 기준을 포함할 수 있기 때문에, 정확하게 디코딩가능하지 않을 수도 있다. 그러나, RASL 픽처는 디코딩이 RASL 픽처의 연계된 RAP 픽처 이전에 RAP 픽처로부터 시작되면 정확하게 디코딩될 수 있다. RASL 픽처는 비-RASL 픽처의 디코딩 프로세스를 위한 기준 픽처로서 사용되지 않는다. 존재할 때, 모든 RASL 픽처는 디코딩 순서로, 동일한 연계된 RAP 픽처의 모든 후행 픽처를 선행한다. HEVC 표준의 몇몇 더 이전의 드래프트에서, RASL 픽처는 폐기를 위해 태그된(Tagged for Discard: TFD) 픽처라 칭하였다.
모든 RADL 픽처는 선행 픽처이다. RADL 픽처는 동일한 연계된 RAP 픽처의 후행 픽처의 디코딩 프로세스에 대해 기준 픽처로서 사용되지 않는다. 존재할 때, 모든 RADL 픽처는 디코딩 순서로, 동일한 연계된 RAP 픽처의 모든 후행 픽처를 선행한다. RADL 픽처는 디코딩 순서로 연계된 RAP 픽처에 선행하는 임의의 픽처를 참조하지 않고, 따라서 디코딩이 연계된 RAP 픽처로부터 시작할 때 정확하게 디코딩될 수 있다. HEVC 표준의 몇몇 더 이전의 드래프트에서, RADL 픽처는 디코딩가능한 선행 픽처(Decodable Leading Picture: DLP)라 칭하였다.
디코딩가능한 선행 픽처는 디코딩이 CRA 픽처로부터 시작될 때 정확하게 디코딩될 수 있도록 이루어질 수 있다. 달리 말하면, 비-디코딩 가능한 선행 픽처는 단지 인터 예측에서 기준으로서 디코딩 순서로 초기 CRA 픽처 또는 후속의 픽처를 사용한다. 비-디코딩 가능한 선행 픽처는 디코딩이 초기 CRA 픽처로부터 시작될 때 정확하게 디코딩될 수 없도록 이루어진다. 달리 말하면, 비-디코딩 가능한 선행 픽처는 디코딩 순서로, 인터 예측에서 기준으로서 초기 CRA 픽처보다 앞서 픽처를 사용한다.
CRA 픽처로부터 시작하는 비트스트림의 부분이 다른 비트스트림 내에 포함될 때, CRA 픽처와 연계된 RASL 픽처는, 이들의 기준 픽처의 일부가 조합된 비트스트림 내에 존재하지 않을 수도 있기 때문에, 정확하게 디코딩가능하지 않을 수도 있다. 이러한 스플라이싱 동작을 간단하게 하기 위해, CRA 픽처의 NAL 유닛 유형은 이것이 BLA 픽처인 것을 지시하도록 변화될 수 있다. BLA 픽처와 연계된 RASL 픽처는 정확하게 디코딩가능하지 않을 수도 있고, 따라서 출력/표시되지 않는다. 더욱이, BLA 픽처와 연계된 RASL 픽처는 디코딩으로부터 생략될 수 있다.
BLA 픽처는 디코딩 순서로 비트스트림 내의 제 1 픽처일 수 있고, 또는 비트스트림 내에서 이후에 나타날 수도 있다. 각각의 BLA 픽처는 새로운 코딩된 비디오 시퀀스를 시작하고, IDR 픽처로서 디코딩 프로세스에 유사한 효과를 갖는다. 그러나, BLA 픽처는 비어 있지 않은 기준 픽처 세트를 지정하는 구문 요소를 포함한다. BLA 픽처가 BLA_W_LP에 동일한 nal_unit_type을 가질 때, 이는 이들이 비트스트림 내에 존재하지 않는 픽처의 기준을 포함할 수 있기 때문에, 디코더에 의해 출력되지 않고 디코딩가능하지 않을 수도 있는 연계된 RASL 픽처를 가질 수도 있다. BLA 픽처가 BLA_W_LP에 동일한 nal_unit_type을 가질 때, 이는 또한 디코딩되도록 지정되는 연계된 RADL 픽처를 또한 가질 수 있다. BLA 픽처가 BLA_W_DLP에 동일한 nal_unit_type을 가질 때, 이는 연계된 RASL 픽처를 갖지 않지만 디코딩되도록 지정되는 연계된 RADL 픽처를 가질 수도 있다. BLA_W_DLP는 또한 BLA_W_RADL라 칭할 수 있다. BLA 픽처가 BLA_N_LP에 동일한 nal_unit_type을 가질 때, 이는 임의의 연계된 선행 픽처를 갖지 않는다.
IDR_N_LP에 동일한 nal_unit_type을 갖는 IDR 픽처는 비트스트림 내에 존재하는 연계된 선행 픽처를 갖지 않는다. IDR_W_DLP인 nal_unit_type을 갖는 IDR 픽처는 비트스트림 내에 존재하는 연계된 RASL 픽처를 갖지 않지만, 비트스트림 내의 연계된 RADL 픽처를 가질 수도 있다. IDR_W_DLP는 또한 IDR_W_RADL이라 칭할 수도 있다.
nal_unit_type이 TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12, 또는 RSV_VCL_N14에 동일할 때, 디코딩된 픽처는 동일한 시간적 서브 계층의 임의의 다른 픽처를 위한 기준으로서 사용되지 않는다. 즉, 드래프트 HEVC 표준에서, nal_unit_type이 TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12, 또는 RSV_VCL_N14에 동일할 때, 디코딩된 픽처는 TemporalId의 동일한 값을 갖는 임의의 픽처의 RefPicSetStCurrBefore, RefPicSetStCurrAfter 및 RefPicSetLtCurr 중 임의의 하나에 포함되지 않는다. TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12, 또는 RSV_VCL_N14에 동일한 nal_unit_type을 갖는 코딩된 픽처는 TemporalId의 동일한 값을 갖는 다른 픽처의 디코딩성에 영향을 미치지 않고 폐기될 수 있다.
후행 픽처는 출력 순서로 연계된 RAP 픽처를 따르는 픽처로서 정의될 수 있다. 후행 픽처인 임의의 픽처는 RADL_N, RADL_R, RASL_N 또는 RASL_R에 동일한 nal_unit_type을 갖지 않는다. 선행 픽처인 임의의 픽처인 디코딩 순서로, 동일한 RAP 픽처와 연계된 모든 후행 픽처에 선행하도록 제약될 수 있다. 어떠한 RASL 픽처도 BLA_W_DLP 또는 BLA_N_LP를 갖는 BLA 픽처와 연계된 비트스트림 내에 존재하지 않는다. 어떠한 RADL 픽처도 BLA_N_LP에 동일한 nal_unit_type를 갖는 BLA 픽처와 연계되거나 또는 IDR_N_LP에 동일한 nal_unit_type을 갖는 IDR 픽처와 연계된 비트스트림 내에 존재한다. CRA 또는 BLA 픽처와 연계된 임의의 RASL 픽처는 출력 순서로 CRA 또는 BLA 픽처와 연계된 임의의 RADL 픽처에 선행하도록 제약될 수도 있다. CRA 픽처와 연계된 임의의 RASL 픽처는 출력 순서로, 디코딩 순서로 CRA 픽처에 선행하는 임의의 다른 RAP 픽처를 따르도록 제약될 수 있다.
HEVC에서, 시간적 서브 계층 스위칭점을 지시하는데 사용될 수 있는 2개의 픽처 유형, 즉 TSA 및 STSA 픽처 유형이 존재한다. N까지의 TemporalId를 갖는 시간적 서브 계층이 TSA 또는 STSA 픽처(배제) 및 TSA 또는 STA 픽처가 N+1인 TemporalId를 가질 때까지 디코딩되어 있으면, TSA 또는 STSA 픽처는 N+1인 TemporalId를 갖는 모든 후속의 픽처(디코딩 순서로)의 디코딩을 가능하게 한다. TSA 픽처 유형은 디코딩 순서로 TSA 픽처를 따르는 동일한 서브 계층 내의 TSA 픽처 자체 및 모든 픽처에 제약을 부여할 수 있다. 이들 픽처의 어느 것도 디코딩 순서로 TSA 픽처에 선행하는 동일한 서브 계층 내의 임의의 픽처로부터 인터 예측을 사용하도록 허용되지 않는다. TSA 규정은 또한 디코딩 순서로 TSA 픽처를 따르는 더 상위의 서브 계층 내의 픽처에 제약을 부여할 수 있다. 이들 픽처의 어느 것도 그 픽처가 TSA 픽처와 동일한 또는 더 상위의 서브 계층에 속하면 디코딩 순서로 TSA 픽처에 선행하는 픽처를 참조하도록 허용되지 않는다. TSA 픽처는 0보다 큰 TemporalId를 갖는다. STSA는 TSA 픽처에 유사하지만, 디코딩 순서로 STSA 픽처를 따르고 따라서 STSA 픽처가 상주하는 서브 계층 상에만 업스위칭을 가능하게 하는 더 상위의 서브 계층 내의 픽처에 대한 제약을 부여하지 않는다.
비-VCL NAL 유닛은 예를 들어, 이하의 유형: 시퀀스 파라미터 세트, 픽처 파라미터 세트, 보충 향상 정보(supplemental enhancement information: SEI) NAL 유닛, 액세스 유닛 구분문자(delimiter), 시퀀스 NAL 유닛의 종단, 스트림 NAL 유닛의 종단, 또는 필러 데이터 NAL 유닛 중 하나일 수 있다. 파라미터 세트는 디코딩된 픽처의 재구성을 위해 요구될 수 있고, 반면에 다수의 다른 비-VCL NAL 유닛은 디코딩된 샘플값의 재구성을 위해 필요하지 않다.
코딩된 비디오 시퀀스를 통해 불변 유지되는 파라미터는 시퀀스 파라미터 세트(sequence parameter set: SPS) 내에 포함될 수 있다. 디코딩 프로세스에 필수적일 수 있는 파라미터에 추가하여, 시퀀스 파라미터 세트는 선택적으로 버퍼링, 픽처 출력 타이밍, 렌더링 및 리소스 예약을 위해 중요할 수 있는 파라미터를 포함하는 비디오 사용성 정보(video usability information: VUI)를 포함할 수 있다. 시퀀스 파라미터 세트를 전달하기 위해 H.264/AVC에 지정된 3개의 NAL 유닛: 시퀀스 내의 H.264/AVC VCL NAL에 대한 모든 데이터를 포함하는 시퀀스 파라미터 세트 NAL 유닛, 보조 코딩된 픽처를 위한 데이터를 포함하는 시퀀스 파라미터 세트 확장 NAL, 및 MVC 및 SVC VCL NAL 유닛에 대한 서브세트 시퀀스 파라미터 세트가 존재한다. 픽처 파라미터 세트(picture parameter set: PPS)는 다수의 코딩된 픽처 내에서 불변될 가능성이 있는 이러한 파라미터를 포함한다.
파라미터 세트 구문 구조는 예를 들어, 코딩 표준의 확장에 특정한 파라미터를 포함하는데 사용될 수 있는 확장 메커니즘을 가질 수 있다. 확장 메커니즘의 예시적인 구문은 SPS에 대해 이하에 제공된다:
Figure 112016012771762-pct00004
코딩 표준 또는 코딩 방안의 특정 버전(들)의 디코더는 sps_extension_data_flag를 무시할 수 있고, 반면에 코딩 표준 또는 코딩 방안의 다른 버전에서, 확장 구문 구조가 지정될 수 있고 sps_extension_data_flag 비트 내에서 나타날 수 있다. 유사한 확장 메커니즘이 또한 다른 유형의 파라미터 세트에 대해 지정될 수도 있다.
드래프트 HEVC에서, 다수의 코딩된 슬라이스 내에서 불변될 가능성이 있는 파라미터를 포함하는, 여기서 적응 파라미터 세트(Adaptation Parameter Set: APS)라 칭하는 제 3 유형의 파라미터 세트가 또한 존재한다. 드래프트 HEVC에서, APS 구문 구조는 맥락 기반 적응성 2진 산술 코딩(context-based adaptive binary arithmetic coding: CABAC), 적응성 샘플 오프셋, 적응성 루프 필터링, 및 디블록킹 필터링에 관련된 파라미터 또는 구문 요소를 포함한다. 드래프트 HEVC에서, APS는 NAL 유닛이고 임의의 다른 NAL 유닛으로부터 기준 또는 예측 없이 코딩된다. aps_id 구문 요소라 칭하는 식별자는 APS NAL 유닛 내에 포함되고, 특정 APS를 참조하기 위해 슬라이스 헤더 내에 포함되어 사용된다. 그러나, APS는 최종 H.265/HEVC 표준에 포함되지 않았다.
H.265/HEVC는 비디오 파라미터 세트(video parameter set: VPS)라 칭하는 다른 유형의 파라미터 세트를 또한 포함한다. 비디오 파라미터 세트 RBSP는 하나 이상의 시퀀스 파라미터 세트 RBSP에 의해 참조될 수 있는 파라미터를 포함할 수 있다.
VPS, SPS 및 PPS 사이의 관계 및 계층구조는 이하와 같이 설명될 수 있다. VPS는 파라미터 세트 계층구조 내의 그리고 스케일러빌러티 및/또는 3DV의 맥락에서 SPS 위에 하나의 레벨을 상주한다. VPS는 전체 코딩된 비디오 시퀀스 내의 모든(스케일러빌러티 또는 뷰) 계층을 가로지르는 모든 슬라이스에 대해 공통인 파라미터를 포함할 수 있다. SPS는 전체 코딩된 비디오 시퀀스 내의 특정(스케일러빌러티 또는 뷰) 계층 내의 모든 슬라이스에 공통이고 다중(스케일러빌러티 또는 뷰) 계층에 의해 공유될 수 있는 파라미터를 포함한다. PPS는 특정 계층 표현(하나의 액세스 유닛 내의 하나의 스케일러빌러티 또는 뷰 계층의 표현) 내의 모든 슬라이스에 대해 공통이고 다중 계층 표현 내의 모든 슬라이스에 의해 공유될 가능성이 있는 파라미터를 포함한다.
VPS는 비트스트림 내의 계층의 종속성 관계에 대한 정보, 뿐만 아니라 전체 코딩된 비디오 시퀀스에서 모든(스케일러빌러티 또는 뷰) 계층을 가로질러 모든 다수의 다른 정보를 제공할 수 있다. HEVC의 스케일러블 확장에서, VPS는 예를 들어, 하나 이상의 스케일러빌러티 치수값에 NAL 유닛 헤드로부터 유도된 LayerId 값의 맵핑을 포함할 수 있는데, 예를 들어 SVC 및 MVC에 유사하게 규정된 계층에 대한 dependency_id, quality_id, view_id, 및 depth_flag에 대응한다. VPS는 하나 이상의 계층을 위한 프로파일 및 레벨 정보 뿐만 아니라 계층 표현의 하나 이상의 시간적 서브 계층(특정 TemporalId 값 이하의 VCL NAL 유닛으로 이루어짐)을 위한 프로파일 및/또는 레벨을 포함할 수 있다. VPS는 또한 비트스트림 내에 존재하는 계층의 최대 수를 제공할 수 있다. 예를 들어, 구문 요소 vps_max_layers_minus1은 구문 내에 포함될 수 있고, vps_max_layer_minusl +1은 비트스트림 내에 존재하는 층의 최소 수를 지시할 수 있다. 비트스트림 내의 계층의 실제 수는 vps_max_layer_minusl + 1보다 작거나 같을 수도 있다.
VPS의 부분인 것으로 의도된 VPS 확장의 예시적인 구문이 이하에 제공된다. 제시된 VPS 확장은 다른 것들 중에서도 종속성 관계를 제공한다. VPS 확장 구문은 예로서 제공된 것이고, 다른 유사한 및/또는 확장된 구문 구조가 상이한 실시예에서 등가적으로 적용될 수 있다는 것이 이해되어야 한다.
Figure 112016012771762-pct00005
제시된 VPS 확장의 의미체계는 이하의 단락에서 설명된 바와 같이 지정될 수 있다.
vps_extension_byte_alignment_reserved_one_bit는 1이고, 바이트 경계로의 다음의 구문 요소의 정렬을 성취하는데 사용된다.
1인 scalability_mask[ i ]는 i번째 스케일러빌러티 치수에 대응하는 dimension_id 구문 요소가 존재하는 것을 지시한다. 0인 scalability_mask[ i ]는 i번째 스케일러빌러티 치수에 대응하는 치수설정된 구문 요소가 존재하지 않는 것을 지시한다. scalability_mask[ i ]에서 i의 각각의 값에 대응하는 스케일러빌러티 치수는 예를 들어, 스케일러빌러티 치수와 함께 이하 또는 이들의 임의의 서브세트를 포함하도록 지정될 수 있다.
Figure 112016012771762-pct00006
dimension_id_len_minus1[ j ] plus 1은 dimension_id[ i ][ j ] 구문 요소의 길이를 비트 단위로 지정한다. vps_nuh_layer_id_present_flag는 layer_id_in_nuh[ i ] 구문이 존재하는지 여부를 지정한다. layer_id_in_nuh[ i ]는 i번째 계층의 VCL NAL 유닛의 nuh_layer_id 구문 요소의 값을 지정한다. 존재하지 않을 때, layer_id_in_nuh[ i ]의 값은 i인 것으로 추론된다. layer_id_in_nuh[ i ]는 layer_id_in_nuh[ i - 1 ]보다 크다. 변수 LayerIdxInVps[ layer_id_in_nuh[ i ] ]는 i와 동일하게 설정된다. dimension_id[ i ][ j ]는 i번째 계층의 j번째 스케일러빌러티 치수 유형의 식별자를 지정한다. 존재하지 않을 때, dimension_id[ i ][ j ]의 값은 0인 것으로 추론된다. dimension_id[ i ][ j ]의 표현을 위해 사용된 비트의 수는 dimension_id_len_minusl[ j ] + 1 비트이다.
0인 direct_dependency_flag[ i ][ j ]는 인덱스 j를 갖는 계층이 인덱스 i를 갖는 계층을 위한 다이렉트 기준 계층은 아닌 것을 지정한다. 1인 direct_dependency_flag[ i ][ j ]는 인덱스 j를 갖는 계층이 인덱스 i를 갖는 계층을 위한 다이렉트 기준 계층일 수 있다는 것을 지정한다. direct_dependency_flag[ i ][ j ]가 0 내지 vps_max_num_layers_minus1의 범위에서 i 및 j에 대해 존재하지 않을 때, 이는 0인 것으로 추론된다.
변수 NumDirectRefLayers[ i ] 및 RefLayerId[ i ][ j ]는 이하와 같이 유도될 수 있다.
Figure 112016012771762-pct00007
direct_dep_type_len_minus2 plus 2는 direct_dependency_type[ i ][ j ] 구문 요소의 비트의 수를 지정한다. 0인 direct_dependency_type[ i ][ j ]는 샘플 예측이 사용될 수 있고 모션 예측이 j에 의해 식별된 계층으로부터 i에 의해 식별된 계층을 위해 사용되지 않는다는 것을 지시한다. 1인 direct_dependency_type[ i ][ j ]는 모션 예측이 사용될 수 있고 샘플 예측이 j에 의해 식별된 계층으로부터 i에 의해 식별된 계층을 위해 사용되지 않는다는 것을 지시한다. 2인 direct_dependency_type[ i ][ j ]는 양 샘플 및 모션 예측이 j에 의해 식별된 계층으로부터 i에 의해 식별된 계층을 위해 사용될 수 있다는 것을 지시한다.
변수 NumSamplePredRefLayers[ i ], NumMotionPredRefLayers[ i ], SamplePredEnabledFlag[ i ][ j ], MotionPredEnabledFlag[ i ][ j ], NumDirectRefLayers[ i ], RefLayerId[ i ][ j ], MotionPredRefLayerId[ i ][ j ], and SamplePredRefLayerIdf i ][ j ]는 이하와 같이 유도될 수 있다.
Figure 112016012771762-pct00008
H.264/AVC 및 HEVC 구문은 파라미터 세트의 다수의 인스턴스를 허용하고, 각각의 인스턴스는 고유 식별자로 식별된다. H.264/AVC에서, 각각의 슬라이스 헤더는 슬라이스를 포함하는 픽처의 디코딩을 위해 활성인 픽처 파라미터 세트의 식별자를 포함하고, 각각의 픽처 파라미터 세트는 활성 시퀀스 파라미터 세트의 식별자를 포함한다. 따라서, 픽처 및 시퀀스 파라미터 세트의 전송은 슬라이스의 전송과 정확하게 동기화될 필요는 없다. 대신에, 활성 시퀀스 및 픽처 파라미터 세트가 이들이 참조되기 이전의 임의의 순간에 수신되는 것으로 충분하며, 이는 슬라이스 데이터를 위해 사용되는 프로토콜에 비해 더욱 신뢰성있는 전송 메커니즘을 사용하여 파라미터 세트를 "대역외"를 전송할 수 있게 한다. 예로서, 파라미터 세트는 실시간 전송 프로토콜(RTP) 세션을 위한 세션 설명에 파라미터로서 포함될 수 있다. 파라미터 세트가 대역내 전송되는 경우, 이들은 에러 강인성 개선을 위해 반복될 수 있다.
SEI NAL 유닛은 하나 이상의 SEI 메시지를 포함할 수 있으며, 이들은 출력 픽처의 디코딩을 위해서는 요구되지 않으며 픽처 출력 타이밍, 렌더링, 에러 검출, 에러 은닉 및 자원 보전 같은 관련 프로세스를 보조한다. 몇몇 SEI가 H.264/AVC 및 HEVC에서 특정되며, 사용자 데이터 SEI 메시지는 조직 및 회사가 그 자체의 사용을 위해 SEI 메시지를 특정할 수 있게 한다. H.264/AVC 및 HEVC는 특정 SEI 메시지를 위한 구문 및 의미체계를 포함하지만, 수신처가 이 메시지를 취급하기 위한 어떠한 프로세스도 규정되어 있지 않다. 결과적으로, 인코더는 SEI 메시지를 생성할 때 HEVC 표준 또는 H.264/AVC 표준을 추종할 것이 필요하고, 각각 HEVC 표준 또는 H.264/AVC 표준에 부합되는 디코더는 출력 순서 순응을 위해 SEI 메시지를 처리할 필요가 없다. H.264/AVC 및 HEVC의 SEI 메시지에 구문 및 의미체계를 포함시키는 이유 중 하나는 다양한 시스템 사양들이 보조 정보를 식별가능하게 해석하고 따라서 상호운용할 수 있게 하는 것이다. 시스템 사양은 인코딩 종단 및 디코딩 종단 양자 모두에서 특정 SEI 메시지의 사용을 필요로 할 수 있으며, 추가적으로, 수신처에서 특정 SEI 메시지를 취급하기 위한 추가적인 프로세스가 측정될 수 있는 것이 의도된다.
코딩된 픽처는 픽처의 코딩된 표현이다. H.264/AVC에서 코딩된 픽처는 픽처의 디코딩을 위해 요구되는 VCL NAL 유닛을 포함한다. H.264/AVC에서, 코딩된 픽처는 1차 코딩된 픽처이거나 중복 코딩된 픽처일 수 있다. 1차 코딩된 픽처는 유효 스트림의 디코딩 프로세스에 사용되는 반면, 중복 코팅된 픽처는 중복적 표현이며, 이는 1차 코딩된 픽처가 성공적으로 디코딩될 수 없을 때에만 디코딩되어야만 한다. 드래프트 HEVC에서, 어떠한 중복 코딩된 픽처도 특정되어 있지 않다.
H.264/AVC 및 HEVC에서, 액세스 유닛은 1차 코딩된 픽처와 그와 연계된 NAL 유닛을 포함한다. HEVC에서, 액세스 유닛은 특정 분류 규칙에 따라 서로 연계되어 있으며, 디코딩 순서가 연속적이고, 정확히 하나의 코딩된 픽처를 포함하는 NAL 유닛의 세트로서 규정된다. H.264/AVC에서, 액세스 유닛 내의 NAL 유닛의 외관적 순서는 다음과 같이 제약된다. 선택적 액세스 유닛 구분문자 NAL 유닛은 액세스 유닛의 시작을 나타낸다. 제로 또는 더 많은 SEI NAL 유닛이 후속된다. 1차 코딩된 픽처의 코딩된 슬라이스는 다음에 나타난다. H.264/AVC에서, 1차 코딩된 픽처의 코딩된 슬라이스에는 제로 또는 더 많은 중복 코딩된 픽처를 위한 코딩된 슬라이스가 후속될 수 있다. 중복 코딩된 픽처는 픽처의 코딩된 표현 또는 픽처의 일부이다. 1차 코딩된 픽처가 예로서 물리적 저장 매체의 훼손 또는 전송의 소실에 기인하여 디코더에 수신되지 못하는 경우 중복 코딩된 픽처가 디코딩될 수 있다.
H.264/AVC에서, 액세스 유닛은 또한 보조 코딩된 픽처를 포함할 수 있으며, 이는 1차 코딩된 픽처를 보조하고 예로서 디스플레이 프로세스에서 사용될 수 있다. 보조 코딩된 픽처는 예로서 디코딩된 픽처의 샘플의 투과도 레벨을 명시하는 알파 채널 또는 알파 평면으로서 사용될 수 있다. 알파 채널 또는 평면은 계층적 조성 또는 렌더링 시스템에서 사용될 수 있으며, 여기서, 출력 픽처는 서로 상에서 적어도 부분적으로 투과적인 중첩 픽처에 의해 형성된다. 보조 코딩된 픽처는 모노크롬 중복 코딩 픽처와 동일한 구문적 및 의미체계적 제약을 갖는다. H.264/AVC에서, 보조 코딩된 픽처는 1차 코딩된 픽처와 동일한 수의 매크로블록을 포함한다.
HEVC에서, 액세스 유닛은 NAL 유닛의 세트로서 규정될 수 있으며, 이들은 특정된 분류 규칙에 따라 서로 연계되며, 디코딩 순서가 연속적이고, 정확히 하나의 코딩된 픽처를 포함한다. 코딩된 픽처의 VCL NAL 유닛을 포함하는 것에 추가로, 액세스 유닛은 또한 비-VCL-NAL 유닛을 포함할 수 있다. HEVC에서, 액세스 유닛의 디코딩은 디코딩된 픽처를 초래한다.
H.264/AVC에서, 코딩된 비디오 시퀀스는 IDR 액세스 유닛(포함)으로부터 어느쪽이 먼저 나타나든 다음 IDR 액세스 유닛(배제)까지 또는 비트스트림의 종단까지 디코딩 순서로 연속적 액세스 유닛의 시퀀스가 되도록 규정된다. HEVC에서, 코딩된 비디오 시퀀스는 액세스 유닛의 시퀀스가 되도록 규정되며, 액세스 유닛은 디코딩 순서로, 비트스트림 내의 제 1 액세스 유닛인 CRA(Clean Random Access; 클린 랜덤 액세스) 액세스 유닛과, IDR 액세스 유닛 또는 BLA(Broken Link Access; 브로큰 링크 접근) 액세스 유닛으로 구성되고, 후속하여, 제로 또는 더 많은 비-IDR 및 비-BLA 액세스 유닛이 후속되고, 이들은 모두 임의의 후속 IDR 또는 BLA 액세스 유닛까지의, 그러나, 그들을 포함하지 않는 모든 후속 액세스 유닛을 포함한다.
픽처 그룹(GOP) 및 그 특성은 다음과 같이 규정될 수 있다. GOP는 임의의 이전 픽처가 디코딩되었는지 여부에 무관하게 디코딩될 수 있다. 개방형 GOP는 디코딩이 개방형 GOP의 초기 인트라 픽처로부터 시작할 때 출력 순서로 초기 인트라 픽처에 선행하는 픽처가 정확하게 디코딩될 수 없는 픽처의 그룹이다. 달리 말하면, 개방형 GOP의 픽처는 이전 GOP에 속하는 픽처를 참조할 수 있다(인터 예측에서). H.264/AVC 디코더는 H.264/AVC 비트스트림의 회수 지점 SEI 메시지로부터 개방형 GOP를 시작하는 인트라 픽처를 인식할 수 있다. HEVC 디코더는 개방형 GOP를 시작하는 인트라 픽처를 인식할 수 있으며, 그 이유는 특정 NAL 유닛 유형인 CDR NAL 유닛 유형이 그 코딩된 슬라이스를 위해 사용되기 때문이다. 폐쇄형 GOP는 디코딩이 폐쇄형 GOP의 초기 인트라 픽처로부터 시작할 때 정확하게 디코딩될 수 있는 픽처의 그룹이다. 달리 말하면, 폐쇄형 GOP 내의 어떠한 픽처도 이전 GOP의 임의의 픽처를 참조하지 않는다. H.264/AVC 및 HEVC에서, 폐쇄형 GOP는 IDR 액세스 유닛으로부터 시작한다. HEVC에서, 폐쇄형 GOP는 또한 BLA W DLP 또는 a BLA N LP 픽처로부터 시작할 수 있다. 결과적으로, 폐쇄형 GOP 구조는 개방형 GOP 구조에 비해 더 많은 에러 복원적 가능성을 갖지만, 가능한 압축 효율의 감소를 대가로 한다. 개방형 코딩 구조가 잠재적으로 기준 픽처의 선택의 더 큰 유연성에 기인하여 압축에서 더 효율적일 수 있다.
H.264/AVC 및 HEVC의 비트스트림 구문은 특정 픽처가 임의의 다른 픽처의 인터 예측을 위한 기준 픽처인지 여부를 나타낸다. 임의의 코딩 유형(I, P, B)의 픽처는 H.264/AVC 및 HEVC의 기준 픽처 또는 비기준 픽처일 수 있다. NAL 유닛 헤더는 NAL 유닛의 유형과 NAL 유닛에 포함된 코딩된 슬라이스가 기준 픽처 또는 비기준 픽처의 일부인지 여부를 나타낸다.
H.264/AVC 및 HEVC를 포함하는 다수의 하이브리드 비디오 코덱은 비디오 정보를 두 개의 페이즈로 인코딩한다. 제 1 페이즈에서, 예측 코딩이 예로서 소위 샘플 예측 및/또는 소위 구문 예측으로서 적용된다.
샘플 예측에서, 특정 픽처 영역 또는 "블록"의 화소 또는 샘플 값이 예측된다. 이들 화소 또는 샘플 값은 예로서, 이하의 방식 중 하나 이상을 사용하여 예측될 수 있다:
- 코딩되는 블록에 긴밀하게 대응하는 이전에 인코딩된 비디오 프레임 중 하나의 영역을 찾고 나타내는 것을 수반하는 모션 보상 메커니즘(또한, 이는 시간적 예측 또는 모션 보상 시간적 예측 또는 모션 보상 예측 또는 MCP라 지칭될 수 있음).
- 코딩되는 블록에 긴밀하게 대응하는 이전에 인코딩된 뷰 성분 중 하나의 영역을 찾고 나타내는 것을 수반하는 뷰간 예측.
- 재구성된/디코딩된 범위 정보에 기초하여 예측 블록이 유도되는 예측 블록 또는 이미지 영역을 합성하는 것을 수반하는 뷰 합성 예측.
- SVC의 소위 IntraBL(베이스 계층) 모드 같은 재구성된/디코딩된 샘플을 사용하는 층간 예측.
- 예로서, 재구성된/디코딩된 기준 계층 픽처와 대응하는 재구성된/디코딩된 개선 계층 픽처 사이의 차이로부터 유도된 잔류치 또는 기준 계층의 코딩된 잔류치가 현재 개선 계층 블록의 잔류 블록을 예측하기 위해 사용될 수 있는 층간 잔류치 예측. 잔류 블록은 예로서 현재 개선 계층 블록을 위한 최종 예측 블록을 획득하기 위해 모션 보상된 예측 블록에 추가될 수 있다.
- 공간적 영역 관계를 찾고 나타내는 것을 수반하는 공간적 메커니즘에 의해 화소 또는 샘플 값이 예측될 수 있는 인트라 예측.
파라미터 예측이라고도 지칭될 수 있는 구문 예측에서, 구문 요소 및/또는 구문 요소 값 및/또는 구문 요소로부터 유도된 변수가 이전에 (디)코딩된 구문 요소 및/또는 이전에 유도된 변수로부터 예측된다. 구문 예측의 비제한적인 예가 아래에 제공되어 있다.
- 모션 벡터 예측에서, 예를 들어, 인터 및/또는 인트라-뷰 예측을 위한 모션 벡터는 블록 특정 예측된 모션 벡터에 관하여 다르게 코딩될 수 있다. 다수의 비디오 코덱에서, 예측된 모션 벡터가 예로서 인접 블록의 인코딩된 또는 디코딩된 모션 벡터의 중간값을 계산함으로써 사전규정된 방식으로 생성된다. 때때로 어드밴스드 모션 벡터 예측(AMVP)이라 지칭되는 모션 벡터 예측을 생성하기 위한 다른 방식은 시간적 기준 픽처의 인접 블록 및/또는 동위배치(colocated) 블록으로부터 후보 예측의 리스트를 생성하고 선택된 후보를 모션 벡터 예측자로서 시그널링하는 것이다. 모션 벡터 값 예측에 추가로, 이전에 코딩된/디코딩된 픽처의 기준 인덱스가 예측될 수 있다. 기준 인덱스는 통상적으로 인접 블록 및/또는 동위배치 블록으로부터 시간적 기준 픽처 내에서 예측된다. 모션 벡터의 차분 코딩은 통상적으로 슬라이스 경계를 가로질러 불능화된다.
- 예를 들어, CTU로부터 CU까지, 그리고, 아래로 PU까지의 블록 파티셔닝이 예측될 수 있다.
- 필터 파라미터 예측에서, 예를 들어, 필터링 파라미터, 예로서 적응 오프셋이 예측될 수 있다.
이전에 코딩된 이미지로부터의 이미지 정보를 사용하는 예측 접근법은 또한 인터 예측 방법이라 지칭될 수도 있으며, 이는 또한 시간적 예측 및 모션 보상이라 지칭될 수도 있다. 동일 이미지 내의 이미지 정보를 사용하는 예측 접근법은 또한 인트라 예측 방법이라 지칭될 수 있다.
제 2 페이즈는 화소 또는 샘플의 원래 블록과 화소 또는 샘플의 예측된 블록 사이의 에러를 코딩하는 것이다. 이는 지정된 변환을 사용하여 화소 또는 샘플 값의 차이를 변환하는 것에 의해 달성된다. 이러한 변환은 예를 들어 이산 코사인 변환(DCT) 또는 그 변형일 수 있다. 차이의 변환 이후, 변환된 차이가 정량화되고 엔트로피 코딩된다.
정량화 프로세스의 충실도를 변화시킴으로써, 인코더는 화소 또는 샘플 표현의 정확도(즉, 픽처의 시각적 품질)와 결과적인 인코딩된 비디오 표현의 크기(즉, 파일 크기 또는 전송 비트 레이트) 사이의 균형을 제어할 수 있다.
디코더는 화소 또는 샘플 블록의 예측된 표현을 형성(인코더에 의해 생성되고 이미지의 압축된 표현에 포함된 모션 또는 공간적 정보를 사용)하기 위해 인코더에 의해 사용되는 것과 유사한 예측 메커니즘과 예측 에러 디코딩(공간적 도메인에서 정량화된 예측 에러 신호를 복구하기 위한 예측 에러 코딩의 역동작)을 적용함으로써 출력 비디오를 재구성한다.
화소 또는 샘플 예측 및 에러 디코딩 프로세스를 적용한 이후, 디코더는 예측과 예측 에러 신호(화소 또는 샘플 값)를 조합하여 출력 비디오 프레임을 형성한다.
디코더(및 인코더)는 또한 비디오 시퀀스 내의 다가오는 픽처를 위한 예측 기준으로서 표시 및/또는 저장하기 위해 이를 전달하기 이전에 출력 비디오의 품질을 향상시키기 위해 추가적인 필터링 프로세스를 적용할 수도 있다.
H.264/AVC 및 HEVC를 포함하는 다수의 비디오 코덱에서, 모션 정보는 각 모션 보상된 이미지 블록과 연계된 모션 벡터에 의해 표시된다. 이들 모션 벡터 각각은 코딩될(인코더에서) 또는 디코딩될(디코더에서) 픽처의 이미지 블록과 이전에 코딩된 또는 디코딩된 이미지(또는 픽처) 중 하나의 예측 소스 블록의 변위를 나타낸다. 다수의 다른 비디오 압축 표준과 같이, H.264/AVC 및 HEVC는 픽처를 직사각형의 메시로 분할하고, 그 각각에 대하여, 기준 픽처 중 하나 내의 유사한 블록이 인터 예측을 위해 표시된다. 예측 블록의 위치는 코딩되는 블록에 대한 예측 블록의 위치를 나타내는 모션 벡터로서 코딩된다.
H.264/AVC 및 HEVC는 픽처 순서 계수치(POC)의 개념을 포함한다. POC의 값은 각 픽처를 위해 유도되며, 출력 순서로 증가하는 픽처 위치와 함께 감소하지 않는다. 따라서, POC는 픽처의 출력 순서를 나타낸다. POC는 예로서 양예측 슬라이스의 시간적 다이렉트 모드에서의 모션 벡터의 암시적 스케일링을 위해, 가중된 예측에서의 암시적으로 유도된 가중치를 위해, 그리고, 기준 픽처 리스트 초기화를 위해 디코딩 프로세스에서 사용될 수 있다. 또한, POC는 출력 순서 순응성의 확인에 사용될 수 있다. H.264/AVC에서, POC는 이전 IDR 픽처 또는 "기준을 위해 사용됨" 으로서 모든 픽처를 마킹하는 메모리 관리 제어 동작을 포함하는 픽처에 대하여 특정된다.
인터 예측 프로세스는 이하의 인자 중 하나 이상을 사용하여 특징지어질 수 있다.
모션 벡터 표현의 정확도. 예로서, 모션 벡터는 쿼터-화소 정확도로 이루어질 수 있고, 부분적 화소 위치에서의 샘플 값은 유한 임펄스 응답(FIR) 필터를 사용하여 얻어질 수 있다.
인터 예측을 위한 블록 파티셔닝 . H.264/AVC 및 HEVC를 포함하는 다수의 코딩 표준은 모션 벡터가 인코더에서의 모션 보상 예측을 위해 적용되는 블록의 크기 및 형상의 선택을 허용하고, 디코더가 인코더에서 이루어진 모션 보상 예측을 재현할 수 있도록 비트스트림 내에 선택된 크기와 형상을 나타내는 것을 가능하게 한다.
인터 예측을 위한 기준 픽처의 수. 인터 예측의 소스는 이전에 디코딩된 픽처이다. H.264/AVC 및 HEVC를 포함하는 다수의 코딩 표준은 블록 기반으로 사용된 기준 픽처의 인터 예측 및 선택을 위한 다수의 기준 픽처의 저장을 가능하게 한다. 예로서, 기준 픽처는 HEVC에서 PU 또는 CU 기반으로, 그리고, H.264/AVC에서 매크로블록 또는 매크로블록 파티션 기반으로 선택될 수 있다. H.264/AVC 및 HEVC 같은 다수의 코딩 표준은 디코더가 하나 이상의 기준 픽처 리스트를 생성할 수 있게 하는 구문 구조를 비트스트림 내에 포함한다. 기준 픽처 리스트에 대한 기준 픽처 인덱스는 다수의 기준 픽처 중 어떤 것이 특정 블록을 위한 인터 예측을 위해 사용되는지를 나타내기 위해 사용될 수 있다. 기준 픽처 인덱스는 일부 인터 코딩 모드에서 인코더에 의해 비트스트림 내로 코딩될 수 있거나 예로서 일부 다른 인터 코딩 모드에서 이웃하는 블록을 사용하여 유도될 수 있다(인코더 및 디코더에 의해).
모션 벡터 예측. 비트스트림에서 효율적으로 모션 벡터를 나타내기 위해, 모션 벡터는 블록-특정 예측된 모션 벡터에 관하여 다르게 코딩될 수 있다. 다수의 비디오 코덱에서, 예측된 모션 벡터는 예로서, 인접 블록의 인코딩된 또는 디코딩된 모션 벡터의 중앙값을 계산함으로써 사전규정된 방식으로 생성된다. 때때로 어드밴스드 모션 벡터 예측(AMVP)이라 지칭되는 모션 벡터 예측을 생성하기 위한 다른 방식은 시간적 기준 픽처의 인접 블록 및/또는 동위배치 블록으로부터 후보 예측의 리스트를 생성하고 모션 벡터 예측자로서 선택된 후보를 시그널링하는 것이다. 모션 벡터 값을 예측하는 것에 추가로, 이전에 코딩된/디코딩된 픽처의 기준 인덱스가 예측될 수 있다. 기준 인덱스는 예를 들어 시간적 기준 픽처의 인접 블록 및/또는 동위배치 블록으로부터 예측될 수 있다. 모션 벡터의 차분 코딩은 슬라이스 경계에 걸쳐 불능화될 수 있다.
멀티-가설 모션 보상 예측. H.264/AVC 및 HEVC는 P 슬라이스(여기서는 단예측 슬라이스라 지칭됨)의 단일 예측 블록 또는 B 슬라이스라고도 지칭되는 양예측 슬라이스를 위한 두 개의 모션 보상 예측의 선형 조합의 사용을 가능하게 한다. B 슬라이스의 개별 블록은 양예측, 단예측 또는 인트라예측일 수 있으며, P 슬라이스의 개별 블록은 단예측 또는 인트라예측일 수 있다. 양예측 픽처를 위한 기준 픽처는 출력 순서의 후속 픽처 및 이전 픽처가 되도록 한정되지 않을 수 있으며, 대신, 임의의 기준 픽처가 사용될 수 있다. H.264/AVC 및 HEVC 같은 다수의 코딩 표준에서, 기준 픽처 리스트 0이라 지칭되는 하나의 기준 픽처 리스트가 P 슬라이스를 위해 구성되고, 두 개의 기준 픽처 리스트인 리스트 0 및 리스트 1이 B 슬라이스를 위해 구성된다. 예측을 위한 기준 픽처가 현재 픽처에 대하여 또는 서로에 대하여 임의의 디코딩 또는 출력 순서 관계를 가질 수 있지만, B 슬라이스를 위해, 순방향의 예측은 기준 픽처 리스트 0의 기준 픽처로부터의 예측을 지칭할 수 있고, 역방향의 예측은 기준 픽처 리스트 1의 기준 픽처로부터의 예측을 지칭할 수 있다.
가중 예측. 다수의 코딩 표준은 인트라 (P) 픽처의 예측 블록에 대하여 1의 예측 가중치를 사용하고, B 픽처의 각 예측 블록을 위해 0.5의 예측 가중치(평균화를 초래)를 사용한다. H.264/AVC는 P 및 B 슬라이스 양자 모두를 위해 가중 예측을 가능하게 한다. 암시적 가중 예측에서, 가중치는 픽처 순서 계수치(POC)에 비례하지만, 명시적 가중 예측에서, 예측 가중치는 명시적으로 표시된다.
다수의 비디오 코덱에서, 모션 보상 이후 예측 잔류치는 변환 커넬로 먼저 변환되고(DCT와 유사) 그후 코딩된다. 그 이유는 종종 잔류치 사이에 약간의 상관성이 존재하고, 변환은 다수의 경우에 이러한 상관성을 감소시키고 보다 효율적인 코딩을 제공하는 것을 도울 수 있다는 것이다.
드래프트 HEVC에서, 각 PU는 해당 PU 내의 화소에 어떠한 종류의 예측이 적용되었는지를 규정하는 그와 연계된 예측 정보를 갖는다(예를 들어, 인트라 예측 PU를 위한 모션 벡터 정보 및 인트라 예측 PU를 위한 인트라 예측 방향성 정보). 유사하게, 각 TU는 TU 내의 샘플을 위한 예측 에러 디코딩 프로세스를 설명하는 정보(예를 들어, DCT 계수 정보 포함)와 연계된다. 각 CU를 위해 예측 에러 코딩이 적용되었는지 그렇지 않은지 여부가 CU에서 시그널링될 수 있다. CU와 연계된 어떠한 예측 에러 잔류치도 존재하지 않는 경우, CU를 위해 어떠한 TU도 존재하지 않는 것으로 고려될 수 있다.
일부 코딩 포맷 및 코덱에서, 소위 단기 및 장기 기준 픽처 사이에 구별이 이루어진다. 이러한 구별은 암시적 가중 예측 또는 시간적 다이렉트 모드에서의 모션 벡터 스케일링 같은 일부 디코딩 프로세스에 영향을 줄 수 있다. 시간적 다이렉트 모드를 위해 사용되는 기준 픽처 양자 모두가 단기 기준 픽처인 경우, 예측에 사용되는 모션 벡터는 기준 픽처 각각과 현재 픽처 사이의 픽처 순서 계수치 차이에 따라 스케일링될 수 있다. 그러나, 시간적 다이렉트 모드를 위한 적어도 하나의 기준 픽처가 장기 기준 픽처인 경우, 모션 벡터의 디폴트 스케일링이 사용될 수 있으며, 예로서, 절반으로의 모션의 스케일링이 사용될 수 있다. 유사하게, 단기 기준 픽처가 암시적 가중 예측을 위해 사용되는 경우, 예측 가중치는 기준 픽처의 POC와 현재 픽처의 POC 사이의 POC 차이에 따라 스케일링될 수 있다. 그러나, 암시적 가중 예측을 위해 장기 기준 픽처가 사용되는 경우, 양예측 블록을 위한 암시적 가중 예측에 0.5 같은 디폴트 예측 가중치가 사용될 수 있다.
H.264/AVC 같은 일부 비디오 코딩 포맷은 frame_num 구문 요소를 포함하고, 이는 다수의 기준 픽처에 관련된 다양한 디코딩 프로세스를 위해 사용된다. H.264/AVC에서, IDR 픽처를 위한 frame_num의 값은 0이다. 비-IDR 픽처를 위한 frame_num의 값은 1만큼 증분된 디코딩 순서의 이전 기준 픽처의 frame_num과 같다(모듈로 연산에서, 즉, frame_num의 값은 frame_num의 최대값 이후 0까지에 걸쳐 중첩됨).
(디코딩된) 기준 픽처 마킹을 위한 구문 구조가 비디오 코딩 시스템에 존재할 수 있다. 예로서, 픽처의 디코딩이 완료되었을 때, 존재한다면 디코딩된 기준 픽처 마킹 구문 구조가 픽처를 "기준을 위해 사용되지 않음" 또는 "장기 기준을 위해 사용됨"으로서 적응적으로 마킹하기 위해 사용될 수 있다. 디코딩된 기준 픽처 마킹 구문 구조가 존재하지 않고 "기준을 위해 사용됨"으로서 마킹된 픽처의 수가 더 이상 증가할 수 없을 경우에, 슬라이딩 윈도우 기준 픽처 마킹이 사용될 수 있으며, 이는 기본적으로 가장 이른(디코딩 순서) 디코딩된 기준 픽처를 기준을 위해 사용되지 않는 것으로서 마킹한다.
H.264/AVC는 디코더에서의 메모리 소비를 제어하기 위해 디코딩된 기준 픽처 마킹을 위한 프로세스를 특정한다. M이라 지칭되는 인트라 예측을 위해 사용되는 기준 픽처의 최대 수는 시퀀스 파라미터 세트에서 결정된다. 기준 픽처가 디코딩될 때, 이는 "기준을 위해 사용됨"으로서 마킹된다. 기준 픽처의 디코딩이 M보다 많은 픽처가 "기준을 위해 사용됨"으로서 마킹되게 하는 경우, 적어도 하나의 픽처가 "기준을 위해 사용되지 않음"으로서 마킹된다. 디코딩된 기준 픽처 마킹을 위한 두 가지 유형의 동작이 존재한다: 적응형 메모리 제어 및 슬라이딩 윈도우. 디코딩된 기준 픽처 마킹을 위한 동작 모드가 픽처 기반으로 선택된다. 적응형 메모리 제어는 어느 픽처가 "기준을 위해 사용되지 않음"으로 마킹되었는지를 명시적으로 시그널링할 수 있게 하고, 또한, 단기 기준 픽처에 장기 인덱스를 할당할 수 있다. 적응형 메모리 제어는 비트스트림의 메모리 관리 제어 동작(MMCO) 파라미터의 존재를 필요로 할 수 있다. MMCO 파라미터는 디코딩된 기준 픽처 마킹 구문 구조에 포함될 수 있다. 슬라이딩 윈도우 동작 모드가 사용되고 M 픽처가 "기준을 위해 사용됨"으로서 마킹되어 있는 경우, "기준을 위해 사용됨"으로서 마킹된 이들 단기 기준 픽처 중 최초 디코딩된 픽처인 단기 기준 픽처는 "기준을 위해 사용되지 않음"으로서 마킹된다. 달리 말하면, 슬라이딩 윈도우 동작 모드는 단기 기준 픽처 사이의 선입선출 버퍼링 동작을 초래한다.
H.264/AVC의 메모리 관리 제어 동작 중 하나는 현재 픽처를 제외한 모든 기준 픽처가 "기준을 위해 사용되지 않음"으로서 마킹되게 한다. 순시 디코딩 리프레시(IDR) 픽처는 단지 인트라-코딩된 슬라이스만을 포함하고, 기준 픽처의 유사한 "리셋"을 유발한다.
드래프트 HEVC에서, 기준 픽처 마킹 구문 구조 및 관련 디코딩 프로세스는 유사한 목적을 위해 대신 사용되는 기준 픽처 세트(RPS) 구문 구조 및 디코딩 프로세스로 대체되어 있다. 픽처를 위해 유효하거나 활성 기준 픽처 세트는 디코딩 순서에서 임의의 후속 픽처를 위해 "기준을 위해 사용됨"으로서 마킹되어 유지되는 모든 기준 픽처와 픽처를 위한 기준으로서 사용되는 모든 기준 픽처를 포함한다. 기준 픽처 세트의 6개 부분집합이 존재하며, 이들은 RefPicSetStCurrO, RefPicSetStCurrl, RefPicSetStFollO, RefPicSetStFolll, RefPicSetLtCurr 및 RefPicSetLtFoll이라 지칭된다. 6개 부분집합의 표기법은 다음과 같다. "Curr"은 현재 픽처의 기준 픽처 리스트에 포함되어 있고, 따라서, 현재 픽처를 위한 인트라 예측 기준으로서 사용될 수 있는 기준 픽처를 지칭한다. "Foil"은 현재 픽처의 기준 픽처 리스트에 포함되어 있지 않지만 기준 픽처로서 디코딩 순서의 후속 픽처에 사용될 수 있는 기준 픽처를 지칭한다. "St"는 그 POC 값의 특정수의 최하위 비트를 통해 일반적으로 식별될 수 있는 단기 기준 픽처를 지칭한다. "Lt"는 장기 기준 픽처를 지칭하며, 이는 특정하게 식별될 수 있고, 일반적으로, 언급된 특정 수의 최하위 비트에 의해 표현될 수 있는 것보다 큰 현재 픽처에 대한 POC 값의 차이를 가진다. "0"은 현재 픽처의 것보다 작은 POC 값을 갖는 기준 픽처를 지칭한다. "1"은 현재 픽처의 것보다 더 큰 POC 값을 갖는 기준 픽처를 지칭한다. RefPicSetStCurrO, RefPicSetStCurrl, RefPicSetStFollO 및 RefPicSetStFolll는 총칭하여 기준 픽처 세트의 단기 부분집합이라 지칭된다. RefPicSetLtCurr 및 RefPicSetLtFoll은 총칭하여 기준 픽처 세트의 장기 부분집합이라 지칭된다.
HEVC에서, 기준 픽처 세트는 기준 파라미터 세트에서 특정될 수 있고, 기준 픽처 세트로의 인덱스를 통해 슬라이스 헤더에서 사용될 수 있다. 또한, 기준 픽처 세트는 슬라이스 헤더 내에서 특정될 수 있다. 기준 픽처 세트의 장기 부분집합은 일반적으로 슬라이스 헤더 내에서만 특정되는 반면, 동일 기준 픽처 세트의 단기 부분집합은 픽처 파라미터 세트 또는 슬라이스 헤더에서 특정될 수 있다. 기준 픽처 세트는 독립적으로 코딩될 수 있거나, 다른 기준 픽처 세트로부터 예측될 수 있다(인트라-RPS 예측이라 알려짐). 기준 픽처 세트가 독립적으로 코딩될 때, 구문 구조는 다양한 유형의 기준 픽처에 걸쳐 반복하는 세 개까지의 루프를 포함한다: 현재 픽처보다 낮은 POC 값을 갖는 단기 기준 픽처, 현재 픽처보다 높은 POC 값을 갖는 단기 기준 픽처 및 장기 기준 픽처. 각 루프 엔트리는 "기준으로서 사용됨"으로서 마킹될 픽처를 특정한다. 일반적으로, 픽처는 차분 POC 값으로 특정되어 있다. 인트라-RPS 예측은 현재 픽처의 기준 픽처가 이전에 디코딩된 픽처의 기준 픽처 세트로부터 예측될 수 있다는 사실을 활용한다. 이는 현재 픽처의 모든 기준 픽처가 이전 픽처의 기준 픽처 또는 이전에 디코딩된 픽처 자체 중 어느 하나이기 때문이다. 이들 픽처 중 어느 픽처가 기준 픽처이어야 하며 현재 픽처의 예측을 위해 사용되어야 하는지를 나타내는 것만이 필요하다. 양 유형의 기준 픽처 세트 코딩에서, 플래그(used_by_curr_pic_X_flag)가 각 기준 픽처를 위해 추가적으로 전송되어 기준 픽처가 현재 픽처에 의해 기준을 위해 사용되어야 하는지(*Curr 리스트에 포함됨) 또는 아닌지(*Foll 리스트에 포함됨) 여부를 나타낸다. 현재 슬라이스에 의해 사용되는 기준 픽처 세트에 포함되는 픽처는 "기준을 위해 사용됨"으로서 마킹되고, 현재 슬라이스에 의해 사용되는 기준 픽처 세트에 있지 않은 픽처는 "기준을 위해 사용되지 않음"으로 마킹된다. 현재 픽처가 IDR 픽처인 경우, RefPicSetStCurrO, RefPicSetStCurrl, RefPicSetStFollO, RefPicSetStFolll, RefPicSetLtCurr 및 RefPicSetLtFoll이 모두 비어 있는 상태로 설정된다.
디코딩된 픽처 버퍼(DPB)는 인코더 및/또는 디코더에 사용될 수 있다. 디코딩 픽처를 버퍼링하는 두 가지 이유가 존재하며, 이는 인트라 예측시 기준을 위해서 및 디코딩된 픽처를 출력 순서로 재순서설정하기 위해서이다. H.264/AVC 및 HEVC는 출력 재순서설정 및 기준 픽처 마킹 양자 모두를 위해 큰 수준의 유연성을 제공하며, 출력 픽처 버퍼링 및 기준 픽처 버퍼링을 위한 분리된 버퍼는 메모리 자원을 낭비할 수 있다. 따라서, DPB는 기준 픽처 및 출력 재순서설정을 위한 단일화된 디코딩된 픽처 버퍼링 프로세스를 포함할 수 있다. 디코딩된 픽처는 기준으로서 더 이상 사용되지 않고 출력을 위해 필요하지 않을 때 DPB로부터 제거될 수 있다.
H.264/AVC 및 HEVC의 다수의 코딩 모드에서, 내부 예측을 위한 기준 픽처는 기준 픽처 리스트에 대한 인덱스와 함께 표시된다. 인덱스는 CAB AC 또는 가변 길이 코딩으로 코딩될 수 있다. 일반적으로, 인덱스가 더 작을수록 대응 구문 요소가 더 짧아질 수 있다. H.264/AVC 및 HEVC에서, 두 개의 기준 픽처 리스트(기준 픽처 리스트 0 및 기준 픽처 리스트 1)는 각 양예측(B) 슬라이스를 위해 생성되고, 하나의 기준 픽처 리스트(기준 픽처 리스트 0)는 각 인터 코딩된(P) 슬라이스를 위해 형성된다. 추가적으로, 드래프트 HEVC 표준의 B 슬라이스를 위해, 최종 기준 픽처 리스트(리스트 0 및 리스트 1)가 구성된 이후 조합된 리스트(리스트 C)가 구성될 수 있다. 조합된 리스트는 B 슬라이스 내의 단예측(단방향성 예측이라고도 알려짐)을 위해 사용될 수 있다. 그러나, 최종 H.265/HEVC 표준에서, 어떠한 조합된 리스트도 구성되지 않는다.
기준 픽처 리스트 0 및 기준 픽처 리스트 1 같은 기준 픽처 리스트는 두 개의 단계에서 구성될 수 있다: 먼저, 초기 기준 픽처 리스트가 생성된다. 초기 기준 픽처 리스트는 예로서, frame_num, POC, temporal_id 또는 GOP 구조 같은 예측 계층에 대한 정보나 그 임의의 조합에 기초하여 생성될 수 있다. 두 번째로, 초기 기준 픽처 리스트는 슬라이스 헤더에 포함될 수 있는, 기준 픽처 리스트 변경 구문 구조라고도 알려진 기준 픽처 리스트 재순서설정(RPLR) 명령에 의해 재순서설정될 수 있다. RPLR 명령은 각각의 기준 픽처 리스트의 시작에 대해 순서설정된 픽처를 나타낸다. 또한, 이 두 번째 단계는 기준 픽처 리스트 변경 프로세스라 지칭될 수 있으며, RPLR 명령은 기준 픽처 리스트 변경 구문 구조 내에 포함될 수 있다. 기준 픽처 세트가 사용되는 경우, 기준 픽처 리스트 0은 먼저 RefPicSetStCurrO, 후속하여 RefPicSetStCurrl, 후속하여 RefPicSetLtCurr를 포함하도록 초기화될 수 있다. 기준 픽처 리스트 1은 먼저 RefPicSetStCurrl, 후속하여 RefPicSetStCurrO를 포함하도록 초기화될 수 있다. 초기 기준 픽처 리스트는 기준 픽처 리스트 변경 구문 구조를 통해 변경될 수 있으며, 여기서, 초기 기준 픽처 리스트 내의 픽처는 리스트에 대한 엔트리 인덱스를 통해 식별될 수 있다.
멀티뷰 비디오가 인코더 및 디코더를 제공하기 때문에, 뷰간 중복 인코딩된 뷰간 프레임을 사용할 가능성이 마찬가지로 기준 픽처 리스트(들)에 포함될 수 있다.
모션 벡터 예측 체계 및 관련 코딩 모드의 예가 다음 문단에 제공된다.
차분 모션 벡터가 코딩되는 모션 보상 매크로블록 모드에 추가로, P 매크로블록은 또한 H.264/AVC의 소위 P_Skip 유형으로 코딩될 수 있다. 이러한 코딩 유형에 대해, 어떠한 차분 모션 벡터, 기준 인덱스 또는 정량화된 예측 에러 신호도 비트스트림 내로 코딩되지 않는다. P_Skip 유형으로 코딩된 매크로블록의 기준 픽처는 기준 픽처 리스트 0에 인덱스 0을 갖는다. P_Skip 매크로블록을 재구성하기 위해 사용되는 모션 벡터는 어떠한 차분 모션 벡터도 추가되지 않고 매크로블록을 위한 중간값 모션 벡터 예측을 사용하여 얻어진다. P_Skip은 특히 모션 필드가 매끄러운 영역에서 압축 효율을 위해 유익할 수 있다.
H.264/AVC의 B 슬라이스에서, 네 가지 서로 다른 유형의 인터 예측이 지원된다: 기준 픽처 리스트 0으로부터의 단예측, 기준 픽처 리스트 1로부터의 단방향, 양예측, 다이렉트 예측 및 B_skip. 인터 예측의 유형은 각 매크로블록 파티션을 위하여 별개로 선택될 수 있다. B 슬라이스는 P 슬라이스로서 유사한 매크로블록 파티셔닝을 사용한다. 양예측 매크로블록 파티션에 대하여, 예측 신호는 모션 보상된 리스트 0 및 리스트 1 예측 신호의 가중 평균에 의해 형성된다. 기준 인덱스, 모션 벡터 편차 및 정량화된 예측 에러 신호가 단예측 및 양예측 B 매크로블록 파티션을 위해 코딩될 수 있다.
두 개의 다이렉트 모드가 H.264/AVC에 포함되며, 이는 시간적 다이렉트 및 공간적 다이렉트 모드이고, 이들 중 하나는 슬라이스 헤더를 위해 사용되도록 선택될 수 있지만, 그 사용은 예로서 프로파일 등에서 추가로 제약될 수 있다. 시간적 다이렉트 모드에서, 기준 픽처 리스트 1을 위한 기준 인덱스는 0으로 설정되고, 기준 픽처 리스트 0을 위한 기준 인덱스는, 기준 픽처가 가용한 경우 기준 픽처 리스트 1에서 인덱스 0을 갖는 기준 픽처의 동위배치 블록(현재 블록(cb)에 비교해)에 사용되는 기준 픽처로 지향하도록 설정되거나 기준 픽처가 가용하지 않은 경우 0으로 설정된다. cb를 위한 모션 벡터 예측자는 본질적으로 기준 픽처 리스트 1의 인덱스 0을 갖는 기준 픽처의 동위배치 블록 내에서 모션 정보를 고려함으로써 유도된다. 시간적 다이렉트 블록을 위한 모션 벡터 예측자는 동위배치 블록으로부터 모션 벡터를 스케일링함으로써 유도된다. 스케일링은 사용하고 있는 기준 픽처 리스트에 따라 모션 벡터 예측자를 위한 부호를 선택함으로써, 그리고, 리스트 0과 리스트 1의 유추된 기준 인덱스와 연계된 기준 픽처와 현재 픽처 사이의 픽처 순서 계수치 차이에 비례한다.
H.264/AVC의 공간적 다이렉트 모드에서, 공간적으로 인접한 블록의 모션 정보가 활용된다. 공간적 다이렉트 모드에서의 모션 벡터 예측은 세 개의 단계로 나누어질 수 있다: 기준 인덱스 결정, 단 또는 양예측의 결정 및 모션 벡터 예측. 제 1 단계에서, 최소 비-음의 기준 인덱스를 갖는 기준 픽처(즉, 비-인트라 블록)는 이웃하는 블록 A, B 및 C의 기준 픽처 리스트 1 및 기준 픽처 리스트 0 각각으로부터 선택된다(여기서, A는 현재 블록의 좌측의 인접한 블록이고, B는 현재 블록 위의 인접한 블록이고, C는 현재 블록의 상단-우측 측부의 인접한 블록이다. 어떠한 비-음의 기준 인덱스도 이웃하는 블록 A, B 및 C의 기준 픽처 리스트 0에 존재하지 않고, 유사하게, 어떠한 비-음의 기준 인덱스도 이웃하는 블록 A, B 및 C의 기준 픽처 리스트 1에 존재하는 경우, 기준 인덱스 0이 양 기준 픽처 리스트를 위해 선택된다.
H.264/AVC 공간적 다이렉트 모드를 위한 단 또는 양예측의 사용은 다음과 같이 결정된다: 양 기준 픽처 리스트를 위한 최소 비-음의 기준 인덱스가 기준 인덱스 결정 단계에서 발견되는 경우, 양예측이 사용된다. 기준 픽처 리스트 0 또는 기준 픽처 리스트 1 중 어느 하나를 위한 최소 비-음의 기준 인덱스가 기준 인덱스 결정 단계에서 발견되지만 양자 모두가 발견되지는 않는 경우, 어느 하나의 기준 픽처 리스트 0 또는 기준 픽처 리스트 1로부터의 단예측 각각이 사용된다.
H.264/AVC 공간적 다이렉트 모드를 위한 모션 벡터 예측에서, 음의 기준 인덱스가 제 1 단계에서 결론지어졌는지 여부 같은 특정 조건이 점검되고, 충족되었으면, 제로 모션 벡터가 결정된다. 그렇지 않으면, 모션 벡터 예측자가 공간적으로 인접한 블록 A, B 및 C의 모션 벡터를 사용하여 P 블록의 모션 벡터 예측자와 유사하게 유도된다.
어떠한 모션 벡터 차이도 기준 인덱스도 H.264/AVC의 다이렉트 모드 블록을 위한 비트스트림 내에 존재하지 않으며, 정량화된 예측 에러 신호가 코딩 및 존재할 수 있고, 따라서, 비트스트림 내에 존재할 수 있다. H.264/AVC의 B_skip 매크로블록 모드는 다이렉트 모드와 유사하지만, 어떠한 예측 에러 신호도 코딩되지 않고 비트스트림 내에 포함되지 않는다.
H.265/HEVC는 두 개의 모션 벡터 예측 체계, 즉, 어드밴스드 모션 벡터 예측(AMVP) 및 병합 모드를 포함한다. AMVP 또는 병합 모드에서, 모션 벡터 후보의 리스트는 PU를 위해 유도된다. 두 종류의 후보가 존재한다: 공간적 후보 및 시간적 후보, 여기서, 시간적 후보는 TMVP 후보로서 지칭될 수도 있다. 후보 모션 벡터 예측자의 소스가 도 5에 표시되어 있다. X는 현재 예측 유닛을 대표한다. 도 5(a)의 A0, A1, B0, B1, B2는 공간적 후보이며, 도 5(b)의 C0, C1은 시간적 후보이다.
후보 리스트 유도는 예로서 다음과 같이 수행될 수 있지만, 후보 리스트 유도를 위한 다른 가능성이 존재한다는 것을 이해하여야 한다. 후보 리스트의 점유가 최대치가 아닌 경우, 먼저 이들이 가용하고 후보 리스트 내에 이미 존재하지 않는 경우 공간적 후보가 후보 리스트에 포함된다. 그후, 후보 리스트의 점유도가 아직 최대치가 아닌 경우, 시간적 후보가 후보 리스트에 포함된다. 후보의 수가 여전히 최대 허용 수치에 도달하지 않는 경우, 조합된 양예측 후보(B 슬라이스를 위한) 및 제로 모션 벡터가 추가된다. 후보 리스트가 구성된 이후, 인코더는 예로서 레이트 왜곡 최적화(RDO) 판정에 기초한 후보로부터의 최종 모션 정보를 판정하고, 비트스트림의 선택된 후보의 인덱스를 인코딩한다. 유사하게, 디코더는 비트스트림으로부터 선택된 후보의 인덱스를 디코딩하고, 후보 리스트를 구성하고, 디코딩된 인덱스를 사용하여 후보 리스트로부터 모션 벡터 예측자를 선택한다.
H.265/HEVC에서, AMVP 및 병합 모드는 다음과 같이 특징화될 수 있다. AMVP에서, 인코더는 단예측 또는 양예측이 사용되는지 여부 및 어느 기준 픽처가 사용되고 모션 벡터 차이를 인코딩하는지를 나타낸다. 병합 모드에서, 후보 리스트로부터의 선택된 후보만이 비트스트림내로 인코딩되어 현재 예측 유닛이 표시된 예측자의 것과 동일한 모션 정보를 갖는다는 것을 나타낸다. 따라서, 병합 모드는 각 영역을 위해 단 한번만 시그널링되는 동일한 모션 정보를 공유하는 이웃하는 예측 블록들로 구성된 영역을 생성한다. H.265/HEVC의 병합 모드와 AMVP 사이의 다른 차이는 AMVP의 후보의 최대 수가 2이고 병합 모드의 것이 5라는 것이다.
어드밴스드 모션 벡터 예측은 예로서 다음과 같이 동작할 수 있으며, 어드밴스드 모션 벡터 예측의 다른 유사한 실현도 예로서 다른 후보 위치 세트 및 후보 위치 세트를 갖는 후보 장소와 함께 가능하다. 두 개의 공간적 모션 벡터(MVP)가 유도될 수 있고, 시간적 모션 벡터 예측자(TMVP)가 유도될 수 있다. 이들은 위치들 중에서 선택될 수 있다: 현재 예측 블록(B0, B1, B2) 위에 위치된 세 개의 공간적 모션 벡터 예측자 후보 및 (A0, A1) 상의 두 개. 각 후보 위치 세트 (B0, B1, B2) 또는 (A0, A1)의 사전규정된 순서로 가용한(예를 들어, 동일 슬라이스 내에 존재하고, 인터코딩되는 등) 제 1 모션 벡터 예측자가 모션 벡터 경쟁의 해당 예측 방향(상측 또는 좌측)을 나타내도록 선택될 수 있다. 시간적 모션 벡터 예측자를 위한 기준 인덱스는 슬라이스 헤더의 인코더에 의해 표시될 수 있다(예를 들어, collocated_ref_idx 구문 요소로서). 동위배치 픽처로부터 얻어진 모션 벡터는 시간적 모션 벡터 예측자의 기준 픽처, 동위배치 픽처 및 현재 픽처의 픽처 순서 계수치 차이의 비율에 따라 스케일링될 수 있다. 또한, 동일한 후보를 제거하기 위해 후보들 사이에서 중복성 검사가 수행될 수 있으며, 이는 후보 리스트에 제로 모션 벡터의 포함을 초래할 수 있다. 모션 벡터 예측자는 예로서, 공간적 모션 벡터 예측자의 방향(상측 또는 좌측)이나 시간적 모션 벡터 예측자 후보의 선택을 나타냄으로써 비트스트림에 표시될 수 있다.
병합/병합 모드/프로세스/메커니즘은 예로서, 다음과 같이 동작할 수 있지만, 예로서, 다른 후보 위치 세트 및 후보 위치 세트를 갖는 후보 장소에 의해 병합 모드의 다른 유사한 실현도 가능하다.
병합/병합 모드/프로세스/메커니즘에서, 블록/PU의 모든 모션 정보는 임의의 변경/교정 없이 예측 및 사용된다. PU를 위한 상술한 모션 정보는 다음 중 하나 이상을 포함할 수 있다: 1) 'PU가 단지 기준 픽처 리스트 0을 사용하여 단예측됨' 또는 'PU가 단지 기준 픽처 리스트 1을 사용하여 단예측됨' 또는 'PU가 기준 픽처 리스트 0 및 1 모두를 사용하여 단예측됨'; 2) 수평 및 수직 모션 벡터 성분을 포함할 수 있는 기준 픽처 리스트 0에 대응하는 모션 벡터 값; 3) 기준 픽처 리스트 0에 대응하는 모션 벡터에 의해 지향된 기준 픽처의 식별자 및/또는 기준 픽처 리스트 0 내의 기준 픽처 인덱스, 여기서, 기준 픽처의 식별자는 예로서, 픽처 순서 계수치 값, 계층 식별자 값(층간 예측을 위해) 또는 픽처 순서 계수치 값과 계층 식별자 값의 쌍일 수 있음; 4) 기준 픽처의 기준 픽처 마킹의 정보, 예를 들어, 기준 픽처가 "단기 기준을 위해 사용됨" 또는 "장기 기준을 위해 사용됨" 중 어느 쪽으로 마킹되는지 여부에 대한 정보; 5) - 7) 각각 2)-4)와 동일하지만 기준 픽처 리스트 1에 대한 것.
유사하게, 시간적 기준 픽처의 인접 블록 및/또는 동위배치 블록의 모션 정보를 사용하여 모션 정보 예측이 수행된다. 종종 병합 리스트라 지칭되는 리스트가 가용한 인접/동위배치 블록과 연계한 모션 예측 후보를 포함함으로써 구성될 수 있고, 이 리스트 내의 선택된 모션 예측 후보의 인덱스가 시그널링되며, 선택된 후보의 모션 정보가 현재 PU의 모션 정보에 복사된다. 병합 메커니즘이 전체 CU를 위해 사용되고, CU를 위한 예측 신호가 재구성 신호로서 사용될 때, 즉, 예측 잔류치가 처리되지 않을 때, 이러한 유형의 CU의 코딩/디코딩은 통상적으로 스킵 모드 또는 병합 기반 스킵 모드라 명명된다. 스킵 모드에 추가로, 병합 메커니즘이 또한 개별 PU를 위해 사용될 수 있고(반드시 스킵 모드에서와 같이 전체 CU일 필요는 없음), 이 경우에, 예측 잔류치는 예측 품질 개선을 위해 사용될 수 있다. 이 유형의 예측 모드는 통상적으로 인터-병합 모드라 명명된다.
병합 리스트 및/또는 AMVP를 위한 후보 리스트나 임의의 유사한 모션 벡터 후보 리스트의 후보 중 하나는 TMVP 후보 또는 유사한 것일 수 있으며, 이들은 예로서 슬라이스 헤더를 위해 표시된 기준 픽처 같은 표시된 또는 유추된 기준 픽처 내의 동위배치 블록으로부터 유도될 수 있다. HEVC에서, 동위배치 파티션을 획득하기 위해 사용되는 기준 픽처 리스트가 슬라이스 헤더 내의 collocated_from_10_flag 구문 요소에 따라 선택된다. 플래그가 1과 같을 때, 이는 동위배치 파티션을 포함하는 픽처가 리스트 0으로부터 유도되었다는 것을 명시하고, 다른 경우에, 픽처는 리스트 1로부터 유도된다. collocated_from_10_flag가 존재하지 않는 경우, 이는 1과 같은 것으로 유추된다. 슬라이스 헤더 내의 collocated_ref_idx는 동위배치 파티션을 포함하는 픽처의 기준 인덱스를 명시한다. 현재 슬라이스가 P 슬라이스일 때, collocated_ref_idx는 리스트 0 내의 픽처를 지칭한다. 현재 슬라이스가 B 슬라이스일 때, collocated_ref_idx는 collocated_from_10이 1인 경우 리스트 0 내의 픽처를 지칭하고, 그 이외의 경우 이는 리스트 1 내의 픽처를 지칭한다. collocated_ref_idx는 항상 유효 리스트 엔트리를 지칭하며, 결과적 픽처는 코딩된 픽처의 모든 슬라이스에 대하여 동일하다. collocated_ref_idx가 존재하지 않을 때, 이는 0과 같은 것으로 유추된다.
HEVC에서, 병합 리스트 내의 시간적 모션 벡터 예측을 위한 소위 타겟 기준 인덱스는 모션 코딩 모드가 병합 모드일 때 0으로 설정된다. 시간적 모션 벡터 예측을 사용하는 HEVC의 모션 코딩 모드가 어드밴스드 모션 벡터 예측 모드일 때, 타겟 기준 인덱스 값은 명시적으로 표시된다(예를 들어, 각 PU 마다).
HEVC에서, 후보 예측된 모션 벡터(PMV)의 가용성은 다음과 같이 결정될 수 있다(공간적 및 시간적 후보 양자 모두에 대하여)(SRTP = 단기 기준 픽처, LRTP = 장기 기준 픽처):
Figure 112016012771762-pct00009
HEVC에서, 타겟 기준 인덱스 값이 결정되었을 때, 시간적 모션 벡터 예측의 모션 벡터 값은 다음과 같이 유도될 수 있다: 현재 예측 유닛의 하부우측 이웃(도 6b의 위치 C0)과 동위배치된 블록에서의 모션 벡터 PMV가 얻어진다. 동위배치 블록이 존재하는 픽처는 예를 들어 상술한 바와 같이 슬라이스 헤더에서 시그널링된 기준 인덱스에 따라 결정될 수 있다. 위치(C0)에서의 PMV가 가용하지 않은 경우, 동위배치 픽처의 위치(C1)에서의 모션 벡터 PMV(도 5(b) 참조)가 얻어진다. 동위배치 블록에서의 이 결정된 가용 모션 벡터 PMV는 제 1 픽처 순서 계수치 차이와 제 2 픽처 순서 계수치 차이의 비율에 관하여 스케일링된다. 제 1 픽처 순서 계수치 차이는 동위배치 블록을 포함하는 픽처와 동위배치 블록의 모션 벡터의 기준 픽처 사이에서 유도된다. 제 2 픽처 순서 계수치 차이는 현재 픽처와 타겟 기준 픽처 사이에서 유도된다. 동위배치 블록의 모션 벡터의 기준 픽처와 타겟 기준 픽처 중 하나가 장기 기준 픽처이지만 양자 모두가 그렇지는 않은 경우(나머지는 단기 기준 픽처임), TMVP 후보는 가용하지 않은 것으로 고려될 수 있다. 동위배치 블록의 모션 벡터의 기준 픽처와 타겟 기준 픽처 양자 모두가 장기 기준 픽처인 경우, 어떠한 POC 기반 모션 벡터 스케일링도 적용되지 않을 수 있다.
모션 파라미터 유형 또는 모션 정보는 이하의 유형 중 하나 이상을 포함하지만 이들에 한정되지는 않는다:
- 예측 유형(예를 들어, 인트라 예측, 단예측, 양예측) 및/또는 기준 픽처의 수의 지표;
- 인터(일명, 시간적) 예측, 층간 예측, 뷰간 예측, 뷰 합성 예측(VSP) 및 인터-성분 예측 같은 예측 방향의 지표(예측 유형마다 및/또는 기준 픽처마다 표시될 수 있으며, 일부 실시예에서, 뷰간 및 뷰-합성 예측은 하나의 예측 방향으로서 함께 고려될 수 있음) 및/또는 단기 기준 픽처 및/또는 장기 기준 픽처 및/또는 층간 기준 픽처 같은 기준 픽처 유형의 지표(이는 예를 들어 기준 프레임마다 표시될 수 있음);
- 기준 픽처 리스트 및/또는 기준 픽처의 임의의 다른 식별자에 대한 기준 인덱스(이는 예를 들어, 기준 픽처마다 표시될 수 있으며, 그 유형은 예측 방향 및/또는 기준 픽처 유형에 의존할 수 있고, 기준 픽처 리스트 또는 기준 인덱스가 적용되는 유사물 같은 정보의 다른 관련 단편이 동반될 수 있음);
- 수평 모션 벡터 성분(이는 예를 들어 예측 블록마다 또는 기준 인덱스나 유사물마다 표시될 수 있음);
- 수직 모션 벡터 성분(이는 예를 들어, 예측 블록마다 또는 기준 인덱스 또는 유사물마다 표시될 수 있음);
- 모션 파라미터를 포함하거나 그와 연계된 픽처와 그 기준 픽처 사이의 상대적 카메라 분리 및/또는 픽처 순서 계수치 차이 같은 하나 이상의 파라미터, 이는 하나 이상의 모션 벡터 예측 프로세스에서 수직 모션 벡터 성분 및/또는 수평 모션 벡터 성분의 스케일링을 위해 사용될 수 있음(여기서, 상기 하나 이상의 파라미터는 예를 들어, 각 기준 픽처, 각 기준 인덱스 또는 유사물마다 표시될 수 있음);
- 모션 파라미터 및/또는 모션 정보가 예를 들어, 루마 샘플 유닛으로 블록의 상단-좌측 샘플의 좌표를 그에 적용하는 블록의 좌표;
- 모션 파라미터 및/또는 모션 정보가 적용되는 블록의 범위(예를 들어, 폭 및 높이).
일반적으로, 예로서 상술한 모션 벡터 예측 메커니즘 같은 모션 벡터 예측 메커니즘은 특정 사전규정된 또는 표시된 모션 파라미터의 계승 또는 예측을 포함할 수 있다.
픽처와 연계된 모션 필드는 픽처의 모든 코딩된 블록을 위해 생성된 모션 정보의 세트를 포함하는 것으로 고려될 수 있다. 모션 필드는 예로서 블록의 좌표에 의해 액세스될 수 있다. 모션 필드는 예로서 TMVP에서 또는 현재 (디)코딩된 픽처 이외의 예측을 위한 소스나 기준이 사용되는 다른 모션 예측 메커니즘에서 사용될 수 있다.
다른 공간적 입도 또는 유닛은 모션 필드를 표시 및/또는 저장하기 위해 적용될 수 있다. 예로서, 공간적 유닛의 규칙적 그리드가 사용될 수 있다. 예로서, 픽처는 특정 크기의 직사각형 블록(직각 가장자리 및 저부 가장자리 같은 픽처의 가장자리에서 가능한 블록의 제외와 함께)으로 분할될 수 있다. 예로서, 공간적 유닛의 크기는 그 구별되는 모션이 루마 샘플 유닛에서 4x4 블록 같은 비트스트림에서 인코더에 의해 표시될 수 있는 가장 작은 크기와 같을 수 있다. 예로서, 소위 압축된 모션 필드가 사용되고, 여기서, 공간적 유닛은 루마 샘플 유닛 내에서 16×16 블록 같은 사전규정된 또는 표시된 크기와 같을 수 있으며, 그 크기는 구별되는 모션을 나타내기 위한 최소 크기보다 더 클 수 있다. 예로서, HEVC 인코더 및/또는 디코더는 모션 데이터 저장 감소(MDSR) 또는 모션 필드 압축이 각 디코딩된 모션 필드를 위해 수행되는 방식으로 구현될 수 있다(픽처 사이의 임의의 예측을 위해 모션 필드를 사용하기 이전에). HEVC 구현예에서, MDSR은 압축된 모션 필드의 16×16 블록의 상단-좌측 샘플에 적용가능한 모션을 유지함으로써 루마 샘플 유닛에서 16×16 블록으로 모션 데이터의 입도를 유지할 수 있다. 인코더는 예로서, 비디오 파라미터 세트 또는 시퀀스 파라미터 세트 같은 시퀀스-레벨 구문 구조에서 하나 이상의 구문 요소 및/또는 구문 요소 값으로서 압축된 모션 필드의 공간적 유닛에 관련된 지표(들)를 인코딩할 수 있다. 일부 (디)코딩 방법 및/또는 장치에서, 모션 필드는 모션 예측의 블록 파티셔닝에 따라(예를 들어, HEVC 표준의 예측 유닛에 따라) 표현 및/또는 저장될 수 있다. 일부 (디)코딩 방법 및/또는 장치에서, 규칙적 그리드 또는 블록 파티셔닝의 조합이 적용되어 사전규정된 또는 표시된 공간적 유닛 크기보다 큰 파티션과 연계된 모션이 이들 파티션과 연계되어 표현 및/또는 저장되는 반면, 그보다 작은 또는 사전규정된 또는 표시된 공간적 유닛 크기 또는 그리드와 정렬되지 않은 모션은 사전규정되거나 표시된 유닛을 위해 표현 및/또는 저장된다.
다수의 비디오 코딩 표준은 비트스트림을 위한 버퍼링 모델 및 버퍼링 파라미터를 명시한다. 이런 버퍼링 모델은 가상 기준 디코더(HRD) 또는 비디오 버퍼 확인자(VBV)라 지칭될 수 있다. 표준 순응성 비트스트림은 대응 표준에 명시된 버퍼링 파라미터의 세트를 갖는 버퍼링 모델을 준수한다. 비트스트림을 위한 이런 버퍼링 파라미터는 명시적으로 또는 암시적으로 시그널링될 수 있다. '암시적으로 시그널링된'은 예로서, 프로파일 및 레벨에 따른 디폴트 버퍼링 파라미터 값이 적용된다는 것을 의미한다. HRD/VBV 파라미터는 특히 순응성 비트스트림의 비트 레이트 변화에 제약을 부여하기 위해 사용된다.
HRD 순응성 검사는 예로서, 이하의 두 가지 유형의 비트스트림을 고려할 수 있다.
유형 I 비트스트림이라 지칭되는 비트스트림의 첫번째 이러한 유형은 비트스트림의 모든 액세스 유닛을 위해 필러 데이터 NAL 유닛 및 VCL NAL 유닛만을 포함하는 NAL 유닛 스트림이다. 유형 II 비트스트림이라 지칭되는 비트스트림의 두번째 유형은 비트스트림의 모든 액세스 유닛을 위해 VCL NAL 유닛 및 필러 데이터 NAL 유닛에 추가로 필러 데이터 NAL 유닛이 아닌 추가적 비-VCL NAL 유닛 및/또는 NAL 유닛 스트림으로부터 바이트 스트림을 형성하는 leading_zero_8bits, zero_byte, start_code_prefix_one_3bytes 및 trailing_zero_8bits 같은 구문 요소를 포함할 수 있다.
두 유형의 HRD 파라미터(NAL HRD 파라미터 및 VCL HRD 파라미터)가 사용될 수 있다. HRD 파라미터는 시퀀스 파라미터 세트 구문 구조에 포함된 비디오 가용성 정보를 통해 표시될 수 있다.
버퍼링 및 픽처 타이밍 파라미터(예를 들어, 버퍼링 주기 및 픽처 타이밍 SEI 메시지 내의 그리고 VCL NAL 유닛 내에서 참조되는 시퀀스 파라미터 세트 및 픽처 파라미터 세트에 포함됨)는 비트스트림 내에서(비-VCL NAL 유닛에 의해) 또는 비트스트림으로부터 외부적으로 대역외 수단에 의해, 예를 들어, 세션 설명 프로토콜(SDP)에 따라 포맷형성된 세션 설명의 매체 라인에 포함된 매체 파라미터 같은 시그널링 메커니즘을 예로서 사용하여 시기적절한 방식으로 HRD로 전송될 수 있다. HRD의 비트를 계수하기 위해, 비트스트림 내에 실제로 존재하는 적절한 비트만이 계수될 수 있다. 비-VCL NAL 유닛의 내용이 비트스트림 내에 존재하는 것 이외의 소정의 수단에 의해 애플리케이션을 위해 전달될 때, 비-VCL NAL 유닛의 내용의 표현은 비-VCL NAL 유닛이 비트스트림 내에 있는 경우 사용되는 것과 동일한 구문을 사용하거나 그렇지 않을 수 있다.
HRD는 코딩된 픽처 버퍼(CPB), 순시 디코딩 프로세스, 디코딩된 픽처 버퍼(DPB) 및 출력 크롭핑(cropping)을 포함할 수 있다.
CPB는 디코딩 유닛 기반으로 동작할 수 있다. 디코딩 유닛은 액세스 유닛일 수 있거나, 이는 NAL 유닛의 정수 같은 액세스 유닛의 부분집합일 수 있다. 디코딩 유닛의 선택은 비트스트림 내에 인코더에 의해 표시될 수 있다.
HRD는 이하와 같이 동작할 수도 있다. 지정된 도착 스케쥴에 따라 CPB 내로 흐르는 디코딩 유닛과 연계된 데이터는 가설 스트림 스케쥴러(Hypothetical Stream Scheduler: HSS)에 의해 전달될 수 있다. 도착 스케쥴은 인코더에 의해 결정될 수 있고, 예를 들어 픽처 타이밍 SEI 메시지를 통해 지시될 수 있고, 그리고/또는 도착 스케쥴은 예를 들어 비디오 사용성 정보(시퀀스 파라미터 세트 내에 포함될 수 있음) 내의 HRD 파라미터의 부분으로서 지시될 수 있는 비트레이트에 기초하여 유도될 수 있다. 비디오 사용성 정보 내의 HRD 파라미터는 상이한 비트레이트 또는 전달 스케쥴에 대해 각각, 다수의 파라미터의 세트를 포함할 수 있다. 각각의 디코딩 유닛과 연계된 데이터는 CPB 제거 시간에 순시적인 디코딩 프로세스에 의해 순시적으로 제거되어 디코딩될 수 있다. CPB 제거 시간은 예를 들어, 인코더에 의해 결정되고 예를 들어 버퍼링 기간 SEI 메시지를 통해 지시될 수 있는 초기 CPB 버퍼링 지연, 및 예를 들어 픽처 타이밍 SEI 메시지를 통해 각각의 픽처에 대해 지시된 차동 제거 지연을 사용하여 결정될 수 있다. 각각의 디코딩된 픽처가 DPB 내에 배치된다. 디코딩된 픽처는 DPB 출력 시간 또는 예측간 간섭을 위해 요구되는 것보다 길지 않게 되는 시간의 이후에 DPB로부터 제거될 수도 있다. 따라서, HRD의 CPB의 동작은 비트스트림의 도착의 타이밍, 디코딩 유닛 제거의 타이밍 및 디코딩 유닛의 디코딩을 포함할 수 있고, 반면에 HRD의 DPB의 동작은 DPB로부터 픽처의 제거, 픽처 출력 및 현재 디코딩된 픽처 마킹 및 저장을 포함할 수 있다.
HRD는 비트스트림 및 디코더의 성능을 점검하는데 사용될 수 있다.
HRD의 비트스트림 성능 요구는 예를 들어 이하 등을 포함할 수 있다. CPB는 오버플로우(예를 들어 비디오 사용성 정보의 HRD 파라미터 내에 지시될 수 있는 크기에 대해) 또는 언더플로우(즉, 그 디코딩 유닛의 최종 비트의 도착 시간보다 작을 수 없는 디코딩 유닛의 제거 시간)하지 않도록 요구된다. DPB 내의 픽처의 수는 예를 들어 시퀀스 파라미터 세트에서 지시될 수 있는 특정의 최대 수보다 작거나 같도록 요구될 수 있다. 예측 기준으로서 사용되는 모든 픽처는 DPB 내에 제시되도록 요구될 수 있다. DPB로부터 연속적인 픽처를 출력하기 위한 간격은 특정 최소값보다 작지 않은 것이 요구될 수 있다.
HRD의 디코더 성능 요구는 예를 들어 이하 등을 포함할 수 있다. 특정 프로파일 및 레벨에 대한 순응성을 청구하는 디코더는 모든 시퀀스 파라미터 세트 및 픽처 파라미터 세트가 VCL NAL 유닛을 참조하면 디코더 성능을 위해 지정된 모든 순응성 비트스트림을 성공적으로 디코딩하도록 요구될 수 있고, 적절한 버퍼링 기간 및 픽처 타이밍 SEI 메시지가 비트스트림에서(비-VCL NAL 유닛에 의해) 또는 외부 수단에 의해 시기적절한 방식으로 디코더에 전달된다. 디코더에 의해 청구될 수 있는 2개의 유형의 순응성: 출력 타이밍 순응성 및 출력 순서 순응성이 존재할 수 있다.
디코더의 성능을 점검하기 위해, 청구된 프로파일 및 레벨에 순응하는 테스트 비트스트림이 HRD 및 테스트 중인 디코더(DUT)의 모두에 가설 스트림 스케쥴러(HSS)에 의해 전달될 수 있다. HRD에 의해 출력된 모든 픽처는 또한 DUT에 의해 출력되도록 요구될 수 있고, HRD에 의해 출력된 각각의 픽처에 대해, 대응 픽처에 대해 DUT에 의해 출력된 모든 샘플의 값이 또한 HRD에 의해 출력된 샘플의 값에 동일하도록 요구될 수 있다.
출력 타이밍 디코더 순응성을 위해, HSS는 예를 들어 비디오 사용성 정보의 HRD 파라미터 내에 지시된 것들로부터 선택된 전달 스케쥴로, 또는 "보간된" 전단 스케쥴로 동작할 수 있다. 동일한 전달 스케쥴이 HRD 및 DUT의 모두에 대해 사용될 수 있다. 출력 타이밍 디코더 순응성을 위해, 픽처 출력의 타이밍(제 1 비트의 전달 시간에 대한)은 고정 지연까지 HRD 및 DUT의 모두에 대해 동일하도록 요구될 수도 있다.
출력 순서 디코더 순응성을 위해, HSS는 DUT로부터 "요구에 의해" DUT에 비트스트림을 전달할 수 있는데, 즉 HSS는 단지 DUT가 그 프로세싱으로 처리될 더 많은 비트를 요구할 때에만 비트를 전달하는 것(디코딩 순서로)을 의미한다. HSS는 비트레이트 및 CPB 크기가 제한되도록 비트스트림 내에 지정된 스케쥴들 중 하나에 의해 HRD에 비트스트림을 전달할 수 있다. 픽처 출력의 순서는 HRD 및 DUT의 모두에 대해 동일하도록 요구될 수 있다.
스케일러블 비디오 코딩에서, 비디오 신호는 베이스 계층 및 하나 이상의 향상 계층으로 인코딩될 수 있다. 향상 계층은 시간 분해능(즉, 프레임 레이트), 공간 분해능, 또는 간단히 다른 계층 또는 이들의 부분에 의해 표현된 비디오 콘텐트의 품질을 향상시킬 수 있다. 각각의 계층은 모든 그 종속 계층과 함께 특정 공간 분해능, 시간 분해능 및 품질 레벨에서 비디오 신호의 일 표현이다. 본 명세서에서, 본 출원인은 스케일러블 계층을 모든 그 종속 계층과 함께 "스케일러블 계층 표현"이라 칭한다. 스케일러블 계층 표현에 대응하는 스케일러블 비트스트림의 부분은 특정 충실도에서 원래 신호의 표현을 생성하도록 추출되고 디코딩될 수 있다.
SVC는 계층간 예측 메커니즘을 사용하고, 여기서 특정 정보가 현재 재구성된 계층 또는 다음의 하위 계층 이외의 계층으로부터 예측될 수 있다. 계층간 예측될 수 있는 정보는 인트라 텍스처, 모션 및 잔류 데이터를 포함한다. 계층간 모션 예측은 블록 코딩 모드, 헤더 정보 등의 예측을 포함하고, 하위 계층으로부터의 모션은 더 상위 계층의 예측을 위해 사용될 수 있다. 인트라 코딩의 경우에, 주위 매크로블록으로부터 또는 하위 계층의 동위배치된 매크로블록으로부터의 예측이 가능하다. 이들 예측 기술은 더 조기에 코딩된 액세스 유닛으로부터 정보를 이용하지 않고, 따라서 인트라 예측 기술이라 칭한다. 더욱이, 하위 계층으로부터의 잔류 데이터는 또한 현재 계층의 예측을 위해 이용될 수 있다.
전술된 바와 같이, MVC는 H.264/AVC의 확장이다. H.264/AVC의 정의, 개념, 구문 구조, 의미체계 및 디코딩 프로세스의 다수는 또한 이와 같이 또는 특정 일반화 또는 제약을 갖고 MVC에 적용된다. MVC의 몇몇 정의, 개념, 구문 구조, 의미체계 및 디코딩 프로세스가 이하에 설명된다.
MVC 내의 액세스 유닛은 디코딩 순서에서 연속적이고 하나 이상의 뷰 콤포넌트로 이루어진 정확하게 하나의 1차 코딩된 픽처를 포함하는 NAL 유닛의 세트인 것으로 규정된다. 1차 코딩된 픽처에 추가하여, 액세스 유닛은 하나 이상의 중복 코딩된 픽처, 하나의 보조 코딩된 픽처, 또는 코딩된 픽처의 슬라이스 또는 슬라이스 데이터 파티션을 포함하지 않는 다른 NAL 유닛을 또한 포함할 수 있다. 액세스 유닛의 디코딩은 디코딩 에러, 비트스트림 에러 또는 디코딩에 영향을 미칠 수 있는 다른 에러가 발생하지 않을 때, 하나 이상의 디코딩된 뷰 콤포넌트로 이루어진 하나의 디코딩된 픽처를 생성한다. 달리 말하면, MVC 내의 액세스 유닛은 하나의 출력 시간 인스턴스를 위한 뷰의 뷰 콤포넌트를 포함한다.
MVC 내의 뷰 콤포넌트는 단일의 액세스 유닛 내의 뷰의 코딩된 표현이라 칭한다.
뷰간 예측이 MVC에서 사용될 수 있고, 동일한 액세스 유닛의 상이한 뷰 콤포넌트의 디코딩된 샘플로부터 뷰 콤포넌트의 예측을 칭한다. MVC에서, 뷰간 예측은 인터 예측에 유사하게 실현된다. 예를 들어, 뷰간 기준 픽처가 인터 예측을 위한 기준 픽처와 동일한 기준 픽처 리스트(들) 내에 배치되고, 기준 인덱스 뿐만 아니라 모션 벡터가 뷰간 및 기준간 픽처에 대해 유사하게 코딩되거나 추론된다.
앵커 픽처는 모든 슬라이스가 단지 동일한 액세스 유닛 내의 슬라이스를 참조할 수 있는, 즉 뷰간 예측이 사용될 수 있지만 인터 예측은 사용되지 않는 코딩된 픽처이고, 출력 순서에서 모든 후속의 코딩된 픽처는 디코딩 순서에서 코딩된 픽처에 앞서 임의의 픽처로부터 인터 예측을 사용하지 않는다. 뷰간 예측은 비-베이스 뷰의 부분인 IDR 뷰 콤포넌트를 위해 사용될 수 있다. MVC 내의 베이스 뷰는 코딩된 비디오 시퀀스에서 뷰 순서 인덱스의 최소값을 갖는 뷰이다. 베이스 뷰는 다른 뷰에 독립적으로 디코딩될 수 있고, 뷰간 예측을 사용하지 않는다. 베이스 뷰는 H.264/AVC의 베이스라인 프로파일 또는 하이 프로파일과 같은, 단지 단일 뷰 프로파일만을 지원하는 H.264/AVC 디코더에 의해 디코딩될 수 있다.
MVC 표준에서, MVC 디코딩 프로세스의 다수의 서브 프로세스는 H.264/AVC 표준의 서브 프로세스 사양에서 용어 "픽처", "프레임", 및 "필드"를 "뷰 콤포넌트", "프레임 뷰 콤포넌트", 및 "필드 뷰 콤포넌트"로 각각 대체함으로써 H.264/AVC 표준의 각각의 서브 프로세스를 사용한다. 마찬가지로, 용어 "픽처", "프레임", 및 "필드"는 종종 "뷰 콤포넌트", "프레임 뷰 콤포넌트", 및 "필드 뷰 콤포넌트"를 각각 의미하도록 이하에 사용된다.
스케일러블 멀티뷰 코딩에서, 동일한 비트스트림은 다수의 뷰의 코딩된 뷰 콤포넌트를 포함할 수 있고, 적어도 일부 뷰 콤포넌트는 품질 및/또는 공간 스케일러빌러티를 사용하여 코딩될 수 있다.
다수의 비디오 인코더가 레이트-왜곡 최적 코딩 모드, 예를 들어 원하는 매크로블록 모드 및 연계된 모션 벡터를 발견하기 위해 라그랑지안 비용 함수(Lagrangian cost function)를 이용한다. 이 유형의 비용 함수는 손실 코딩 방법에 기인하는 정확한 또는 추정된 이미지 왜곡 및 이미지 영역 내의 화소/샘플값을 표현하도록 요구된 정확한 또는 추정된 정보의 양을 함께 결합하기 위해 가중 팩터 또는 λ(람다)를 사용한다. 라그랑지안 비용 함수가 이하의 식에 의해 표현될 수 있다.
C=D+λR
여기서 C는 최소화될 라그랑지안 비용이고, D는 현재 고려되는 모드 및 모션 벡터를 갖는 이미지 왜곡(예를 들어, 원래 이미지 블록 내의 그리고 코딩된 이미지 블록 내의 화소/샘플값들 사이의 제곱 평균 에러)이고, λ는 라그랑지안 계수이고, R은 디코더 내의 이미지 블록을 재구성하기 위해 요구된 데이터를 표현하는데 요구되는 비트의 수(후보 모션 벡터를 표현하기 위한 데이터의 양을 포함함)이다.
이하, 용어 계층은 뷰 스케일러빌러티 및 깊이 향상을 포함하는, 임의의 유형의 스케일러빌러티의 맥락에서 사용된다. 향상 계층은 SNR, 공간적, 멀티뷰, 깊이, 비트-깊이, 크로마 포맷, 및/또는 컬러 재현율 향상과 같은 임의의 유형의 향상을 칭한다. 베이스 계층은 또한 베이스 뷰, SNR/공간적 스케일러빌러티를 위한 베이스 계층, 또는 깊이-향상된 비디오 코딩을 위한 텍스처 베이스 뷰와 같은 임의의 유형의 베이스 동작점이라 칭한다.
스케일러블 비디오 (디)코딩은 단일 루프 디코딩으로서 알려진 개념을 갖고 실현될 수 있는데, 여기서 디코딩된 기준 픽처는 단지 디코딩되는 최상위 계층을 위해서만 재구성되고 반면에 더 하위의 계층에서의 픽처는 완전히 디코딩되지 않을 수도 있고 또는 계층간 예측을 위해 이들을 사용한 후에 폐기될 수도 있다. 단일 루프 디코딩에서, 디코더는 재생을 위해 요구되는 스케일러블 계층("원하는 계층" 또는 "타겟 계층"이라 칭함)을 위해서만 모션 보상 및 전체 픽처 재구성을 수행하여, 이에 의해 멀티루프 디코딩에 비교할 때 디코딩 복잡성을 감소시킨다. 원하는 계층 이외의 모든 계층은 코딩된 픽처 데이터의 모두 또는 일부가 원하는 계층의 재구성을 위해 요구되지 않기 때문에 완전히 디코딩될 필요는 없다. 그러나, 하위 계층(타겟 계층보다)이 계층간 모션 예측과 같은, 계층간 구문 또는 파라미터 예측을 위해 사용될 수 있다. 부가적으로 또는 대안적으로, 하위 계층은 층간 인트라 예측을 위해 사용될 수 있고, 따라서 하위 계층의 인트라 코딩된 블록은 디코딩되어야 할 수도 있다. 부가적으로 또는 대안적으로, 계층간 잔류 예측이 적용될 수 있고, 여기서 하위 계층의 잔류 정보는 타겟 계층의 디코딩을 위해 사용될 수 있고 잔류 정보는 디코딩되거나 재구성될 필요가 있을 수 있다. 몇몇 코딩 구성에서, 단일의 디코딩 루프가 대부분의 픽처의 디코딩을 위해 요구되고, 반면에 제 2 디코딩 루프가 예측 기준으로서 요구될 수 있지만 출력 또는 표시를 위해서는 아닌 소위 베이스 표현(즉, 디코딩된 베이스 계층 픽처)을 재구성하도록 선택적으로 적용될 수 있다.
HEVC의 멀티뷰 확장(MV-HEVC라 칭할 수 있음), HEVC의 깊이-향상된 멀티뷰 확장(3D-HEVC라 칭할 수 있음), 및 HEVC의 스케일러블 확장(SHVC라 칭할 수 있음)을 지정하기 위한 진행중인 표준화 액티비티가 존재한다. 멀티루프 디코딩 동작은 모든 이들 사양에 사용되는 것으로 고려되어 왔다.
멀티루프 (디)코딩을 이용하는 스케일러블 비디오 코딩 방안에서, 각각의 (디)코딩된 계층을 위한 디코딩된 기준 픽처는 디코딩된 픽처 버퍼(decoded picture buffer: DPB) 내에 유지될 수 있다. 따라서, DPB를 위한 메모리 소비는 단일 루프 (디)코딩 동작을 갖는 스케일러블 비디오 코딩 방안을 위한 것보다 상당히 더 높을 수 있다. 그러나, 멀티루프 (디)코딩은 단일 계층 코딩에 비교하여 비교적 적은 수의 부가의 부분과 같은 다른 장점을 가질 수도 있다.
멀티루프 디코딩을 갖는 스케일러블 비디오 코딩에서, 향상된 계층은 베이스(기준) 계층 내에 미리 디코딩되어 있는 픽처로부터 예측될 수 있다. 이러한 픽처는 베이스 계층의 DPB 내에 저장될 수 있고, 기준으로서 사용된 것으로서 마킹될 수 있다. 특정 상황에서, 기준을 위해 사용된 바와 같이 마킹된 픽처는 그 샘플로의 고속 랜덤 액세스를 제공하기 위해, 고속 메모리 내에 저장될 수 있고, 픽처가 예측을 위한 기준으로서 사용되기 위해 표시되도록 고려된 후에 저장되어 유지될 수 있다. 이는 메모리 편성에 대한 요구를 부여한다. 이러한 메모리 요구를 완화시키기 위해, 멀티루프 다층 비디오 코딩 방안(MVC와 같은)에서의 종래의 디자인은 계층간 예측의 제한된 이용을 취한다. 향상된 뷰를 위한 계층간/뷰간 예측은 동일한 액세스 유닛에 로케이팅된, 달리 말하면 동일한 시간 엔티티에서 장면을 표현하는 베이스 뷰의 디코딩된 픽처로부터 허용된다. 이러한 디자인에서, 향상된 뷰를 예측하기 위해 가용 기준 픽처의 수는 각각의 기준 뷰에 대해 1만큼 증가된다.
멀티루프 (디)코딩 동작을 갖는 스케일러블 비디오 코딩에서, 기준을 위해 사용된 바와 같이 마킹된 픽처는 모든 계층에서 동일한 액세스 유닛으로부터 발생할 필요는 없다는 것이 제안되어 왔다. 예를 들어, 더 적은 수의 기준 픽처가 베이스 계층에 비교하여 향상 계층 내에 유지될 수 있다. 몇몇 실시예에서, 대각 계층간 예측 또는 대각 예측이라 또한 칭할 수 있는 시간적 계층간 예측은 이러한 코딩 시나리오에서 압축 효율을 향상시키는데 사용될 수 있다. 일반적으로, 대각 예측은 예측이 하나 초과의 스케일러빌러티 도메인 또는 스케일러빌러티 유형을 교차하는 임의의 예측일 칭할 수 있다. 예를 들어, 대각 예측은 상이한 콤포넌트 유형(예를 들어, 깊이로부터 텍스처로)으로부터 그리고 상이한 시간 순간으로부터(예를 들어, 현재 액세스 유닛 내의 픽처에 (디)코딩 순서로 이전의 액세스 유닛의 픽처로부터) 발생하는 예측을 칭할 수 있다.
디코딩 프로세스는 nuh_layer_id 값과 같은 계층 식별자값의 리스트를 지정하는 계층 식별자 리스트(TargetDecLayerIdList)를 참조하여 지정될 수 있다. 계층 식별자값은 디코딩될 NAL 유닛의 증가하는 순서로 TargetDecLayerIdList 내에 있을 수 있다. TargetDecLayerIdList는 디코더에 의해 출력되도록 의도된 계층 뿐만 아니라 출력 계층이 디코딩 프로세스에 의존하는 모든 층을 위한 계층 식별자를 포함할 수 있다.
HEVC 표준에 대한 스케일러블 및 멀티뷰 확장을 지정하기 위한 작업이 진행중이다. MV-HEVC라 칭하는 HEVC의 멀티뷰 확장은 H.264/AVC의 MVC 확장에 유사하다. MVC에 유사하게, MV-HEVC에서, 뷰간 기준 픽처는 코딩 또는 디코딩되는 현재 픽처의 기준 픽처 리스트(들) 내에 포함될 수 있다. SHVC라 칭하는 HEVC의 스케일러블 확장이 멀티루프 디코딩 동작(H.264/AVC의 SVC 확장과는 달리)을 사용하도록 지정되도록 계획된다. 현재, 스케일러빌러티를 실현하기 위한 2개의 디자인이 SHVC를 위해 연구되고 있다. 하나는 기준 인덱스 기반인데, 여기서 계층간 기준 픽처가 코딩 또는 디코딩되고 있는 현재 픽처의 하나 이상의 기준 픽처 리스트 내에 포함될 수 있다(전술된 바와 같이). 다른 것은 IntraBL 또는 TextureRL이라 칭할 수도 있는데, 여기서 예를 들어 CU 레벨 내의 특정 코딩 모드가 향상 계층 픽처 내의 예측을 위한 기준 계층 픽처의 디코딩된/재구성된 샘플값을 사용하여 사용된다. SHVC 전개는 공간적 거친 그레인(coarse grain) 품질 스케일러빌러티의 전개에 집중된다.
MV-HEVC 및 기준-인덱스 기반 SHVC를 위해 다수의 동일한 구문 구조, 의미체계, 및 디코딩 프로세스를 사용하는 것이 가능하다. 더욱이, 깊이 코딩에도 역시 동일한 구문 구조, 의미체계 및 디코딩 프로세스를 사용하는 것이 가능하다. 그 후에, 용어 HEVC(SMV-HEVC)의 스케일러블 멀티뷰 확장이 거의 동일한 (디)코딩 도구가 스케일러빌러티 유형에 무관하게 사용되는 그리고 슬라이스 헤더 아래에 구문, 의미체계 또는 디코딩 프로세스의 변화 없이 기준 인덱스 기반 접근법이 사용되는 코딩 프로세스, 디코딩 프로세스, 구문 및 의미체계를 칭하는데 사용된다. SMV-HEVC는 멀티뷰, 공간적 및 거친 그레인 품질 스케일러빌러티에 한정되지 않을 수도 있지만, 또한 깊이-향상된 비디오와 같은 다른 유형의 스케일러빌러티를 지원할 수 있다.
향상 계층 코딩을 위해, HEVC의 동일한 개념 및 코딩 도구가 SHVC, MV-HEVC, 및/또는 SMV-HEVC 코덱에 사용될 수도 있다. 그러나, 향상 계층을 효율적으로 코딩하기 위한 기준 계층 내에 코딩된 데이터(재구성된 픽처 샘플 및 모션 파라미터, 즉 모션 정보)를 이용하는 부가의 계층간 예측 도구는 SHVC, MV-HEVC, 및/또는 SMV-HEVC 코덱에 통합될 수 있다.
MV-HEVC, SMV-HEVC 및 기준 인덱스 기반 SHVC 해결책에서, 블록 레벨 구문 및 디코딩 프로세스는 계층간 텍스처 예측을 지원하기 위해 변경되지 않는다. 단지 상위 레벨 구문만이 수정되어(HEVC의 것에 비교하여), 동일한 액세스 유닛의 기준 계층으로부터의 재구성된 픽처(필요하다면 업샘플링됨)가 현재 향상 계층 픽처를 코딩하기 위한 기준 픽처로서 사용될 수 있게 된다. 계층간 기준 픽처 뿐만 아니라 시간적 기준 픽처는 기준 픽처 리스트 내에 포함된다. 시그널링된 기준 픽처 인덱스는 현재 예측 유닛(Prediction Unit: PU)이 시간적 기준 픽처 또는 계층간 기준 픽처로부터 예측되는지 여부를 지시하는데 사용된다. 이 특징의 사용은 인코더에 의해 제어될 수 있고, 비트스트림 내에, 예를 들어 비디오 파라미터 세트, 시퀀스 파라미터 세트, 픽처 파라미터 및/또는 슬라이스 헤더 내에 지시될 수 있다. 지시(들)는 예를 들어, 향상 계층, 기준 계층, 한 쌍의 향상 계층 및 기준 계층, 특정 TemporalId 값, 특정 픽처 유형(예를 들어, IRAP 픽처), 특정 슬라이스 유형(예를 들어, P 및 B 슬라이스, 그러나 I 슬라이스는 아님), 특정 POC 값의 픽처 및/또는 특정 액세스 유닛에 특정할 수 있다. 지시(들)의 범주 및/또는 지속성은 지시(들) 자체와 함께 지시될 수 있고 그리고/또는 추론될 수 있다.
MV-HEVC, SMV-HEVC 내의 기준 리스트(들), 및 기준 인덱스 기반 SHVC 해결책은 존재한다면, 계층간 기준 픽처(들)가 이하와 같이 구성되는 초기 기준 픽처 리스트(들) 내에 포함될 수 있는 특정 프로세스를 사용하여 초기화될 수 있다. 예를 들어, 시간적 기준은 먼저 HEVC 내의 기준 리스트 구성과 동일한 방식으로 기준 리스트(L0, L1) 내에 추가될 수 있다. 그 후에, 계층간 기준은 시간적 기준 후에 추가될 수 있다. 계층간 기준 픽처는 예를 들어 전술된 바와 같이 VPS 확장으로부터 유도된 RefLayerId[ i ] 변수와 같은 계층 종속성 정보로부터 결론지을 수 있다. 계층간 기준 픽처는 현재 향상 계층 슬라이스가 P-슬라이스이면 초기 기준 픽처 리스트 L0에 추가될 수 있고, 현재 향상 계층 슬라이스가 B-슬라이스이면 양 초기 기준 픽처 리스트 L0 및 L1에 추가될 수 있다. 계층간 기준 픽처는 양 기준 픽처 리스트에 대해 동일할 수 있지만 동일할 필요는 없는 특정 순서로 기준 픽처 리스트에 추가될 수 있다. 예를 들어, 초기 기준 픽처 리스트 1 내로 계층간 기준 픽처를 추가하는 반대 순서가 초기 기준 픽처 리스트 0의 것에 비교하여 사용될 수 있다. 예를 들어, 계층간 기준 픽처는 nuh_layer_id의 오름차순으로 초기 기준 픽처 0 내에 삽입될 수 있고, 반면에 반대 순서가 초기 기준 픽처 리스트 1을 초기화하는데 사용될 수 있다.
코딩 및/또는 디코딩 프로세스에서, 계층간 기준 픽처는 장기 기준 픽처로서 처리될 수 있다.
SMV-HEVC 및 기준 인덱스 기반 SHVC 해결책에서, 계층간 모션 파라미터 예측은 TMVP 유도를 위한 동위배치된 픽처로서 계층간 기준 픽처를 설정함으로써 수행될 수 있다. 2개의 계층 사이의 모션 필드 맵핑 프로세스는 예를 들어, TMVP 유도에서 블록 레벨 디코딩 프로세스 수정을 회피하도록 수행될 수 있다. 모션 필드 맵핑은 또한 멀티뷰 코딩을 위해 수행될 수 있지만, MV-HEVC의 현재 드래프트는 이러한 프로세스를 포함하지 않는다. 모션 필드 맵핑 특징의 사용은 인코더에 의해 제어되고 예를 들어, 비디오 파라미터 세트, 시퀀스 파라미터 세트, 픽처 파라미터 및/또는 슬라이스 헤더 내의 비트스트림 내에 지시될 수 있다. 지시(들)는 예를 들어, 향상 계층, 기준 계층, 한 쌍의 향상 계층 및 기준 계층, 특정 TemporalId 값, 특정 픽처 유형(예를 들어, RAP 픽처), 특정 슬라이스 유형(예를 들어, P 및 B 슬라이스, 그러나 I 슬라이스는 아님), 특정 POC 값의 픽처 및/또는 특정 액세스 유닛에 특정할 수 있다. 지시(들)의 범주 및/또는 지속성은 지시(들) 자체와 함께 지시될 수 있고 그리고/또는 추론될 수 있다.
공간적 스케일러빌러티를 위한 모션 필드 맵핑 프로세스에서, 업샘플링된 계층간 기준 픽처의 모션 필드는 각각의 기준 계층 픽처의 모션 필드에 기초하여 얻어진다. 업샘플링된 계층간 기준 픽처의 각각의 블록에 대한 모션 파라미터(예를 들어, 수평 및/또는 수직 모션 벡터값 및 기준 인덱스를 포함할 수 있음) 및/또는 예측 모드는 기준 계층 픽처 내의 동위배치된 블록의 대응 모션 파라미터 및/또는 예측 모드로부터 유도될 수 있다. 업샘플링된 계층간 기준 픽처에서 모션 파라미터 및/또는 예측 모드의 유도를 위해 사용된 블록 크기는 예를 들어, 16×16일 수 있다. 16×16 블록 크기는 기준 픽처의 압축된 모션 필드가 사용되는 HEVC TMVP 유도 프로세스에서와 동일하다.
textureRL 기반 SHVC 해결책에서, 계층간 텍스처 예측은 textureRL 모드라 명명되는 새로운 예측 모드가 도입되는 CU 레벨에서 수행될 수 있다. 동위배치된 업샘플링된 베이스 계층 블록은 textureRL 모드에서 CU 코딩된 향상된 계층에 대한 예측으로서 사용된다. 향상 계층 인코더의 입력 CU에 대해, CU 모드는 예를 들어, 인트라, 인터 및 textureRL 모드 중에 결정될 수 있다. textureRL 특징의 사용은 인코더에 의해 제어되고, 비트스트림 내에, 예를 들어 비디오 파라미터 세트, 시퀀스 파라미터 세트, 픽처 파라미터 및/또는 슬라이스 헤더 내에 지시될 수 있다. 지시(들)는 예를 들어, 향상 계층, 기준 계층, 한 쌍의 향상 계층 및 기준 계층, 특정 TemporalId 값, 특정 픽처 유형(예를 들어, RAP 픽처), 특정 슬라이스 유형(예를 들어, P 및 B 슬라이스, 그러나 I 슬라이스는 아님), 특정 POC 값의 픽처 및/또는 특정 액세스 유닛에 특정할 수 있다. 지시(들)의 범주 및/또는 지속성은 지시(들) 자체와 함께 지시될 수 있고 그리고/또는 추론될 수 있다. 더욱이, textureRL은 CU 레벨에서 인코더에 의해 선택될 수 있고, 예를 들어, 맥락 적응성 산술 코딩(예를 들어, CABAC)을 사용하여 엔트로피 코딩될 수 있는 CU 레벨 플래그(texture_rl_flag)를 사용하여 각각의 CU마다 비트스트림 내에서 지시될 수 있다.
textureRL-예측된 CU의 잔류치는 이하와 같이 코딩될 수 있다. textureRL-예측된 CU의 변환 프로세스는 인트라 예측된 CU에 대한 것과 동일할 수 있고, 여기서 이산 사인 변환(discrete sine transform: DST)이 4×4 크기를 갖는 루마 콤포넌트의 TU에 적용되고, 이산 코사인 변환(discrete cosine transform (DCT)이 다른 유형의 TU에 적용된다. textureRL-예측된 CU의 변환 계수 코딩은 인터 예측된 CU의 것과 동일할 수 있고, 여기서 no_residue_flag는 전체 CU의 계수가 스킵되는지 여부를 지시하는데 사용될 수 있다.
textureRL 기반 SHVC 해결책에서, 공간적 및 시간적으로 이웃하는 PU에 추가하여, 동위배치된 기준 계층 블록의 모션 파라미터가 또한 병합 후보 리스트를 형성하는데 사용될 수 있다. 베이스 계층 병합 후보는 현재 PU의 중앙 위치에 동위배치된 로케이션에서 유도될 수 있고, 병합 리스트 내의 제 1 후보와 같은, 병합 리스트의 특정 로케이션에 삽입될 수 있다. 공간적 스케일러빌러티의 경우에, 기준 계층 모션 벡터는 2개의 계층들 사이에 공간적 분해능비에 따라 스케일링될 수 있다. 프루닝(pruning)(복제된 후보 점검)은 동위배치된 베이스 계층 후보를 갖는 각각의 공간적으로 이웃하는 후보에 대해 수행될 수 있다. 동위배치된 베이스 계층 병합 후보 및 공간 병합 후보 유도에 대해, 특정의 최대 수의 병합 후보가 사용될 수 있는데; 예를 들어 4개의 병합 후보는 6개의 상이한 위치에 로케이팅된 후보들 중에서 선택될 수 있다. 시간적 병합 후보는 HEVC 병합 리스트에 대해 행해진 것과 동일한 방식으로 유도될 수 있다. 후보의 수가 최대 수의 병합 후보(인코더에 의해 결정될 수 있고, 비트스트림 내에 지시될 수 있고, 변수 MaxNumMergeCand에 할당될 수 있음)에 도달하지 않을 때, 조합된 양예측 후보 및 제로 병합 후보를 포함하는 부가의 후보가 발생되어 HEVC 병합 리스트 구성에 유사하게 또는 동일하게 병합 리스트의 종단에 추가될 수 있다.
몇몇 코딩 및/또는 디코딩 구성에서, textureRL 기반 접근법과 같은, 기준 인덱스 기반 스케일러빌러티 및 블록-레벨 스케일러빌러티 접근법이 조합될 수 있다. 예를 들어, 멀티뷰-비디오-플러스-깊이 코딩 및/또는 디코딩은 이하와 같이 수행될 수 있다. textureRL 접근법은 동일한 뷰의 콤포넌트들 사이에 사용될 수 있다. 예를 들어, 깊이 뷰 콤포넌트는 동일한 뷰의 텍스처 뷰 콤포넌트로부터 textureRL 접근법을 사용하여 계층간 예측될 수 있다. 기준 인덱스 기반 접근법은 뷰간 예측을 위해 사용될 수 있고, 몇몇 실시예에서 뷰간 예측은 동일한 콤포넌트 유형의 뷰 콤포넌트들 사이에서만 적용될 수 있다.
텍스처 뷰 및 깊이 뷰가 텍스처 뷰의 일부가 HEVC와 호환성이 있을 수도 있는 단일의 비트스트림으로 코딩될 수 있는 3D-HEVC라 칭할 수도 있는 HEVC 표준으로 깊이-향상된 비디오 코딩 확장을 지정하기 위한 작업이 또한 진행중이다. 달리 말하면, HEVC 디코더가 이러한 비트스트림의 텍스처 뷰의 일부를 디코딩하는 것이 가능할 수 있고, 잔류 텍스처 뷰 및 깊이 뷰를 생략할 수 있다.
다른 유형의 스케일러빌러티 및 스케일러블 비디오 코딩은, 베이스 계층 픽처가 향상 계층 픽처(예를 들어, 10 또는 12 비트)보다 루마 및/또는 크로마 샘플마다 더 낮은 비트 깊이(예를 들어, 8 비트)로 코딩되는 비트-깊이 스케일러빌러티, 향상 계층 픽처가 베이스 계층 픽처(예를 들어, 4:2:0 포맷)보다 크로마(예를 들어, 4:4:4 크로마 포맷으로 코딩됨)에서 더 높은 충실도 및/또는 더 높은 공간 분해능을 제공하는 크로마 포맷 스케일러빌러티, 및 향상 계층 픽처가 베이스 계층 픽처의 것보다 더 풍부한/넓은 컬러 표현 범위를 갖는 컬러 재현율 스케일러빌러티 - 예를 들어, 향상 계층은 UHDTV(ITU-R BT.2020) 컬러 재현율을 가질 수 있고 베이스 계층은 ITU-R BT.709 컬러 재현율을 가질 수 있다. 임의의 수의 이러한 다른 유형의 스케일러빌러티가 예를 들어 전술된 바와 같이, 기준 인덱스 기반 접근법 또는 블록 기반 접근법으로 실현될 수 있다.
상이한 유형의 예측을 분류하는 방식은 도메인 또는 스케일러빌러티 유형이 이를 가로질러 예측이 교차하는 것으로 고려하는 것이다. 이 분류화는 때때로 예측 방향이라 칭할 수도 있는 이하의 유형의 예측 중 하나 이상을 유도할 수 있다.
- 예를 들어, 동일한 스케일러빌러티 계층, 뷰 및 콤포넌트 유형(텍스처 또는 깊이)의 더 조기의 픽처로부터 예를 들어 샘플값 또는 모션 벡터의 시간적 예측.
- 일반적으로 동일한 시간 순간 또는 액세스 유닛 및 동일한 콤포넌트 유형의 뷰 콤포넌트들 사이에 발생하는 예측을 칭하는 뷰간 예측(또한 크로스뷰 예측이라 칭할 수도 있음).
- 일반적으로 동일한 시간 순간의, 동일한 콤포넌트 유형의, 그리고 동일한 뷰의 계층들 사이에서 발생하는 예측을 칭하는 계층간 예측.
- 콤포넌트간 예측은 일 유형의 콤포넌트 픽처로부터 다른 유형의 콤포넌트 픽처로 디코딩 프로세스 또는 유사한 임의의 것에 사용되는 구문 요소값, 샘플값, 변수값의 예측을 포함하도록 규정될 수 있다. 예를 들어, 콤포넌트간 예측은 깊이 뷰 콤포넌트로부터 텍스처 뷰 콤포넌트의 예측 또는 그 반대를 포함할 수 있다.
이전에 코딩된 이미지로부터 이미지 정보를 사용하는 예측 접근법은 또한 인터 예측 방법이라 칭할 수 있다. 인터 예측은 때때로 단지 모션 보상된 시간적 예측만을 포함하는 것으로 고려될 수 있지만, 이는 때때로 샘플의 재구성된/디코딩된 블록이 예측 소스로서 사용되는 모든 유형의 예측을 포함하는 것으로, 따라서 예를 들어 종래의 뷰간 예측을 포함하는 것으로 고려될 수도 있다. 인터 예측은 단지 샘플 예측만을 포함하는 것으로 고려될 수 있지만, 대안적으로 샘플 및 구문 예측의 모두를 포함하는 것으로 고려될 수도 있다. 구문 및 샘플 예측의 결과로서, 샘플의 화소의 예측된 블록이 얻어질 수 있다.
예측된 변수값 및/또는 예측 블록과 같은 예측이 임의의 형태의 예측 에러 또는 잔류 코딩을 사용하여 인코딩함으로써 세밀화되지 않으면, 예측은 상속이라 칭할 수도 있다. 예를 들어, HEVC의 병합 모드에서, 예측 모션 정보는 예를 들어 모션 벡터 차이를 (디)코딩함으로써 세밀화되지 않고, 따라서 병합 모드는 모션 정보 상속의 예로서 고려될 수 있다.
본 발명의 다수의 실시예는 공간, 품질, 멀티뷰 및/또는 깊이 스케일러빌러티를 포함하는 스케일러블 비디오 코딩에 관한 것이다. 비디오 코딩 방안은 픽처들 사이의 예측 방안을 이용할 수 있다. 설명된 바와 같이, 예측은 예를 들어 현재 픽처 내의 현재 코딩된 블록(coded block: Cb)과 기준으로서 선택되는 픽처 내의 기준 블록(reference block: Rb) 사이의 블록 파티셔닝 및 블록 정합의 프로세스를 통해 인코더 내에서 수행될 수 있다. 따라서, 이러한 예측의 파라미터는 예를 들어 이하의 것: Cb의 공간 좌표(예를 들어, Cb의 좌상부 화소의 좌표); 기준 픽처로서 선택된 기준 픽처 리스트 내의 픽처를 지정하는 기준 인덱스(refIdx) 등; 기준 픽처 내의 Cb 및 Rb의 공간 좌표 사이의 변위를 지정하는 모션 벡터(motion vector: MV); 및 모션 파티션의 크기 및 형상(정합 블록의 크기 및 형상) 중 하나 이상을 포함하는 모션 정보(motion information: MI)로서 정의될 수 있다.
픽처와 연계된 모션 필드는 픽처의 모든 코딩된 블록에 대해 생성된 모션 정보의 세트를 포함하는 것으로 고려될 수도 있다. 모션 필드가 예를 들어, 블록의 좌표에 의해 액세스가능할 수 있다. 모션 필드는 예를 들어, 현재 디코딩된/코딩된 픽처 이외의 예측을 위한 소스 또는 기준이 사용되는 시간적 모션 벡터 예측 또는 임의의 다른 모션 예측 메커니즘에 사용될 수 있다.
비디오 코딩 방안은 H.264/HEVC에서 시간적 다이렉트 모드 또는 H.265/HEVC의 병합 및 AVMP 모드에서 시간적 모션 벡터 예측자(temporal motion vector predictor: TMVP) 후보와 같은 시간적 모션 벡터 예측 방안을 이용할 수 있다. 시간적 모션 벡터 예측 방안에서, 적어도 다른 픽처의 모션 정보의 서브세트는 현재 픽처를 위한 모션 정보 또는 모션 정보 예측자(들)를 유도하는데 사용된다. 따라서, 시간적 모션 벡터 예측은 기준 픽처의 모션 정보의 저장을 요구한다.
H.265/HEVC에서, 시퀀스 파라미터 세트는 슬라이스 헤더가 slice_temporal_mvp_enabled flag를 포함하는지를 지시하는 slice_temporal_mvp_enabled flag 구문 요소를 포함한다. sps_temporal_mvp_enabled_flag가 0이면, 어떠한 시간적 모션 벡터 예측자도 코딩된 비디오 시퀀스에 사용되지 않는다. slice_temporal_mvp_enabled_flag는 시간적 모션 벡터 예측자가 인터 예측에 사용될 수 있는지 여부를 지정한다. slice_temporal_mvp_enabled_flag가 1일 때, 시간적 모션 벡터 예측자를 유도하는데 사용된 동위배치된 픽처를 식별하는 슬라이스 헤더 내에 구문 요소가 존재한다.
시간적 모션 벡터 예측은 층간 기준 픽처의 모션 필드가 현재 픽처의 모션 정보를 예측하거나 유도하는데 사용될 때 스케일러블 비디오 코딩에서 또한 사용될 수 있다.
모션 필드 맵핑은 예를 들어 계층간 기준 픽처가 현재 픽처와는 상이한 공간 분해능을 가질 때 사용될 수 있다. 공간 스케일러빌러티를 위한 모션 필드 맵핑 프로세스에서, 업샘플링된 계층간 기준 픽처의 모션 필드는 각각의 기준 계층 픽처의 모션 필드에 기초하여 얻어진다. 모션 파라미터(예를 들어, 수평 및/또는 수직 모션 벡터값 및 기준 인덱스를 포함할 수 있음) 및/또는 업샘플링된 계층간 기준 픽처의 각각의 블록을 위한 예측 모드는 대응 모션 파라미터 및/또는 기준 계층 픽처 내의 동위배치된 블록의 예측 모드로부터 유도될 수 있다.
모션 정보의 저장은 예를 들어, H.264/AVC의 경우에 4×4(루마 샘플의)와 같은 예를 들어 모션 파티션의 최소 크기에 기초하여 수행될 수 있다. 다른 예에서, 모션 정보의 공간 입도는 예를 들어 코딩 표준에서 사전 규정될 수 있고, 코딩된 모션 정보는 그 공간적 입도로 재샘플링되거나 변환될 수 있다. 예를 들어, 모션 정보는 H.265/HEVC의 16×16 블록(루마 샘플의)에 대해 저장될 수 있다.
동위배치된 픽처가 비-베이스 계층 코딩을 위해 시간적 기준 픽처보다는 계층간 기준 픽처가 되도록, 동위배치된 픽처에 대한 제약을 지시하기 위해 SPS 확장에서 플래그를 추가하는 것이 알려져 있다. 그 결과, 현재 향상 계층 내의 시간적 기준 픽처의 모션 정보는 저장될 필요가 없다. 플래그의 의미체계는 이하가 되도록 제안되었다: 1인 collocated_picture_constraint_flag는 계층간 예측을 위해 사용된 동위배치된 픽처가 CVS 내에서 제약되는 것을 지정한다. collocated_picture_constraint_flag가 1일 때, 계층간 예측을 위해 사용된 동위배치된 픽처는 현재 픽처의 것에 동일하지 않은 nuh_layer_id를 갖는 기준 픽처일 것이다. collocated_picture_constraint_flag가 0일 때, 계층간 예측을 위해 사용된 동위배치된 픽처를 위한 어떠한 제약도 이 플래그에 의해 시그널링되지 않는다. 존재하지 않을 때, collocated_picture_constraint_flag는 0인 것으로 추론된다.
코덱 구현예는 모션 정보의 저장을 위한 상이한 접근법을 가질 수 있다. 모션 정보가 규칙적인 블록의 그리드에 대해 저장되는 것으로 가정하면, 일 예시적인 접근법은 이하에서 그리드 내의 각각의 블록에 대해 저장될 수 있다.
1. 모션 보상된 예측 블록의 수의 지시(2 비트)0은 예측 블록이 존재하지 않는 것을 지시하고(예를 들어, 인트라 코딩이 사용되었을 때), 1은 단예측을 지시하고, 2는 양예측을 지시한다.
2. 기준 픽처 리스트 0 및 리스트 1에 대한 기준 픽처 리스트 인덱스. H.265/HEVC에서, 인덱스는 예를 들어 0 내지 15(포함)에 대해 제한될 수 있고, 따라서 8개의 비트가 기준 인덱스 저장 장치를 위해 요구된다. 부가적으로, 기준 픽처 리스트는 픽처의 각각의 슬라이스를 위해 저장될 필요가 있다.
3. 모션 벡터(단예측) 또는 2개의 모션 벡터(양방향)를 위한 수평 및 수직 모션 벡터 성분. 모션 벡터 성분을 저장하도록 요구되는 비트의 수는 예를 들어, 비트스트림 내에 구체적으로 지시된 코딩 프로파일에 의해 추론될 수 있는 예를 들어 레벨 제한, 픽처 범위 및/또는 특정 제약에 의존할 수 있다. 일반적으로, 예를 들어, 모션 벡터 성분당 2개의 바이트가 요구될 수 있다.
상기 1번이 저장을 위해 최대 2개의 바이트를 요구하지 않는 모션 벡터 성분에 의해 방치되어 스페어 비트 내에 저장될 수 있는 것으로 가정하면, 이는 예를 들어, 단일의 블록을 위해 모션 정보를 저장하기 위해 9개의 바이트를 취할 수 있다. 16×16 모션 블록 크기(루마 샘플의)에서, 모션 정보를 위한 블록당 9 바이트를 사용하는 모션 필드는 4:2:0 크로마 포맷의 기준 픽처의 샘플값을 저장하는데 요구된 저장 공간의 약 2.3%이다.
예를 들어, H.264/AVC에서, 기준 픽처 리스트 0(존재하면)으로 또는 그렇지 않으면 기준 픽처 리스트 1로 단지 기준 인덱스를 그리고 단지 한 쌍의 수평 및 수직 모션 벡터 성분을 저장하는데 충분할 수도 있다. 따라서, 이는 모션 필드 내의 블록당 모션 정보를 저장하기 위해 5 바이트를 취할 수 있다. 4×4 모션 블록 크기(루마 샘플의)에서, 모션 정보를 위한 블록당 5 바이트를 사용하는 모션 필드는 4:2:0 크로마 포맷의 기준 픽처의 샘플값을 저장하는데 요구된 저장 공간의 약 20.8%이다.
저장 공간 사용량에 대해 이들 예로부터 이해될 수 있는 바와 같이, 모션 필드 저장을 위해 사용된 메모리의 양은 상당할 수 있고, 따라서 디코더 내의 최적화된 메모리 사용량을 허용하기 위해, H.265/HEVC의 TMVP 메커니즘 등과 같은, 시간적 모션 벡터 예측 메커니즘 등을 위해 어느 모션 필드가 실제로 요구되는지를 지시하는 것이 유리할 것이다.
H.265/HEVC에서, sps_temporal_mvp_enabled_flag는 HEVC 베이스 계층/뷰(nuh_layer_id가 0인 상태)TMVP 메커니즘이 사용중일 수 있는지(플래그가 1일 때) 또는 사용중이 아닌지(플래그가 0일 때)를 지시한다. sps_temporal_mvp_enabled_flag가 1일 때, slice_temporal_mvp_enabled_flag는 슬라이스 헤더 내에 존재하고, TMVP 메커니즘이 현재 픽처를 위해 사용중인지를 지시한다.
HEVC의 스케일러블 확장의 "블랙 박스" 구현예가 존재할 수 있는데, 여기서 베이스 계층 디코딩/코딩이 변화 없이 현존하는 HEVC v1 구현예로 구현된다. 베이스 계층 디코딩/코딩의 이러한 구현예는 sps_temporal_mvp_enabled_flag가 1인 경우에만 모션 필드를 저장할 것이다.
베이스 계층 모션 필드는 이하의 2개의 목적: 베이스 계층의 픽처들 사이의 시간적 모션 벡터 예측 및 계층간 모션 예측 중 하나 또는 모두를 위해 사용될 수 있다. 베이스 계층 모션 필드가 단지 계층간 모션 예측을 위해서만 사용되면, 베이스 계층 모션 필드를 위해 사용된 메모리는 액세스 유닛의 디코딩이 완료된(또는 더 정확하게는, 모션 예측 기준으로서 베이스 계층을 사용할 수 있는 액세스 유닛 내의 모든 계층의 디코딩이 완료되어 있음) 후에 다른 목적으로 재할당되거나 사용될 수 있다. 그러나, sps_temporal_mvp_enabled_flag가 베이스 계층 모션 필드의 저장을 제어하는데 사용될 때, 이는 베이스 계층 모션 필드가 베이스 계층 내의 시간적 모션 벡터 예측을 위해서가 아니라 단지 계층간 모션 예측을 위해서만 사용되는 것을 지시하는데 사용될 수 없다.
collocated_picture_constraint_flag(전술된 바와 같은)가 1로 설정되는 제 1 향상 계층이 제 2 향상 계층을 위한 계층간 예측을 위한 기준으로서 사용되면, 제 1 향상 계층 내의 픽처의 모션 필드의 저장이 계층간 모션 예측을 위해 요구될 수 있다. 달리 말하면, 설명된 collocated_picture_constraint_flag는 향상 계층 픽처의 모션 필드가 저장될 필요가 있는지를 결정하기에 충분하지 않다.
공지의 접근법은 시퀀스 내의 전체 계층에 대한 모션 필드 메모리 사용량을 제어하는 것을 목표로 하지만, 계층 내의 더 미세한 입도가 요구될 수 있고 그리고/또는 모션 필드의 요구된 저장 공간을 감소시키기 위한 지시가 요구될 수 있다. 모션 필드 저장을 위한 총 메모리 사용은 이어서 제어될 수 있고, 그 각각에 대해 모션 필드가 저장되는 기준 픽처의 최대량을 가정하여 메모리 사용보다 작을 수 있다.
본 실시예는 인코더가 이하의 방식들 중 하나 이상으로 디코더를 위한 모션 필드 저장을 지시하거나 제어하게 할 수 있다:
a) 베이스 계층의 모션 필드가 저장되지만 단지 계층간 모션 예측을 위해 요구될 수 있다(그리고, 베이스 계층 내의 임의의 다른 픽처를 위한 모션 예측을 위해 요구되지 않음). 섹션 "A"에서 더 상세히 설명된다.
b) 모션 필드 저장 및/또는 사용에 관련된 지시는 시퀀스-레벨 구문 구조에 상주하지만, 단지 계층 내의 일부 픽처에 적용되도록 제한될 수 있다. 섹션 "B"에서 더 상세히 설명된다.
c) 픽처의 모션 필드의 저장 또는 마킹은 예를 들어 기준 모션 필드 세트 구문을 사용하여 이후의 픽처에 의해 제어될 수 있다. 모션 필드의 저장 또는 마킹은 대응 기준 픽처의 저장 또는 대응 마킹과는 상이할 수 있다. 섹션 "C"에서 상세히 설명된다.
d) 모션 필드에 의해 요구된 저장 공간은 다양한 지시된 제약을 갖고 인코더에 의해 제어될 수 있다. 섹션 "D"에서 더 상세히 설명된다.
섹션 A) 모션 필드 저장을 위한 시퀀스 -레벨 지시
몇몇 실시예에서, 이하의 것들 중 2개 이상이 비트스트림 내에서 인코더에 의해 지시되고 그리고/또는 비트스트림으로부터 디코더에 의해 디코딩되는데; 1) 모션 필드가 시간적 모션 벡터 예측을 위한 계층 내에 사용될 수 있는지 또는 시간적 모션 벡터 예측을 위한 계층 내에 사용되지 않는지를 지시하는 것이 가능한 지시. 이 지시는 계층 단위일 수 있는데; 2) 계층간 모션 예측이 사용될 수 있는지 또는 계층간 모션 예측이 사용되지 않는지를 지시하는 것이 가능한 지시. 이 지시는 한 쌍의 계층에 특정할 수 있는데; 3) 대각 모션 예측이 사용될 수 있는지 또는 대각 모션 예측이 사용되지 않는지를 지시하는 것이 가능한 지시. 이 지시는 계층의 쌍에 특정할 수 있다.
예를 들어, H.265/HEVC 및/또는 그 확장의 맥락에서, 모션 필드가 시간적 모션 벡터 예측을 위한 계층 내에 사용될 수 있는지 또는 시간적 모션 벡터 예측을 위한 계층 내에 사용되지 않는지를 지시하는 것이 가능한 지시는 예를 들어 SPS 확장에 지정될 수 있다. 예를 들어, 이하의 구문이 사용될 수 있다.
Figure 112016012771762-pct00010
collocated_picture_constraint_flag의 의미체계는 예를 들어 이하와 같이 또는 임의의 유사한 방식으로 지정될 수 있다. 1인 collocated_picture_constraint_flag는 이하를 지시한다:
- 0인 nuh_layer_id를 갖는 코딩된 슬라이스 세그먼트 NAL 유닛에 대해, 1인 collocated_picture_constraint_flag는 slice_temporal_mvp_enabled_flag가 존재하지 않거나 0인 것을 지시한다.
- 0 초과인 nuh_layer_id를 갖는 코딩된 슬라이스 세그먼트 NAL 유닛에 대해, 1인 collocated_picture_constraint_flag는 동위배치된 픽처가 존재하면, 계층간 기준 픽처인 것을 지시한다.
1인 collocated_picture_constraint_flag의 의미체계는 이하를 지시하고, 다른 프레이징과 동등하게 지정될 수 있다는 것이 이해되어야 한다. 예를 들어, 이하의 프레이징이 사용될 수 있는데: 1인 collocated_picture_constraint_flag는 이하를 지시한다:
- 이 SPS가 활성 SPS인 0에 동일한 nuh_layer_id를 갖는 코딩된 슬라이스 세그먼트 NAL 유닛에서, slice_temporal_mvp_enabled_flag는 존재하지 않거나 0이다.
- 이 SPS가 활성층 SPS인 0 초과의 nuh_layer_id nuhLayerIdA를 갖는 코딩된 슬라이스 세그먼트 NAL 유닛에서, 동위배치된 픽처는 존재하면, nuhLayerIdA에 동일하지 않은 nuh_layer_id nuhLayerIdB를 갖는다.
collocated_picture_constraint_flag가 0일 때, 동위배치된 픽처의 어떠한 제약도 지시되지 않는다. 존재하지 않으면, the collocated_picture_constraint_flag는 0인 것으로 추론된다.
collocated_picture_constraint_flag 등은 예를 들어, 계층간 모션 예측이 사용될 수 있는지 또는 사용되지 않는지를 지시하는 것이 가능한 지시와 함께, 모션 필드의 저장이 요구되는지를 결정하기 위해 사용될 수 있다. 예를 들어, H.265/HEVC 및/또는 그 확장의 맥락에서, 계층간 모션 예측이 사용되는지 또는 계층간 모션 예측이 사용되지 않는지를 지시하는 것이 가능한 지시가 VPS 확장의 direct_dependency_type[i][j] 구문 요소를 통해 수행될 수 있다.
몇몇 실시예에서, 디코더는 상기 지시 1 내지 3 중 임의의 하나가 모션 예측이 사용될 수 있는 것을 지시할 때 픽처를 디코딩하는 부분으로서 모션 필드를 저장할 수 있다.
몇몇 실시예에서, 인코더 및/또는 디코더는 이하의 것들 중 적어도 하나가 사실일 때 특정 계층(예를 들어, 계층 A)에서 현재 픽처의 디코딩/코딩의 부분으로서 모션 필드를 저장할 수 있다.
- 시간적 모션 벡터 예측이 계층 내에서 사용될 수 있는 것이 비트스트림 내에서 지시된다.
- 계층간 및/또는 대각 예측이 사용될 수 있고 모션 예측을 위한 기준으로서 현재 픽처를 사용할 수 있는 픽처가 비트스트림이거나 비트스트림 내에 존재할 수 있고 디코딩되도록 의도되는 것이 비트스트림 내에서 지시된다.
예를 들어, 픽처의 모션 필드가 계층 A에서 임의의 다른 픽처에 대한 모션 예측을 위해 사용되지 않는 것으로 지시되면, 그리고 계층 A가 다른 계층에 대한 계층간 및/또는 대각 모션 예측을 위한 기준으로서 사용될 수 있지만, 이들 다른 계층의 어느 것도 비트스트림 내에 존재하지 않거나 또는 디코딩되도록 의도되지 않으면, 픽처의 모션 필드(계층 A에서)는 저장될 필요가 없고 디코더는 픽처의 모션 필드(계층 A)를 저장하지 않도록 결정할 수 있다. 그렇지 않으면, 픽처의 모션 필드(계층 A에서)는 다른 계층을 위한 계층간 및/또는 대각 모션 예측을 위해 요구될 수 있고, 따라서 디코더는 모션 필드를 저장한다.
인코더 및/또는 디코더는 현재 픽처의 모션 필드 또는 모션 벡터가 이들이 동일한 계층 내의 다른 픽처의 시간적 모션 벡터 예측을 위해 사용될 수 있을 때 또는 이들의 계층간 모션 예측을 위해 사용될 수 있을 때 저장되어야 한다고 결론지을 수 있다. HEVC 및/또는 HEVC 확장이 사용될 때, 인코더 및/또는 디코더는 현재 픽처의 모션 필드 또는 모션 벡터가 이하의 것들 중 적어도 하나가 사실일 때 저장되어야 하는 것으로 결론지을 수 있다.
- sps_temporal_mvp_enabled_flag는 1이고, collocated_picture_constraint_ flag는 0이다.
- collocated_picture_constraint_flag는 1이고, 0 내지 NumMotion PredRefLayers[ nuhLayerldA ] - 1(포함)의 범위에서 임의의 mIdx에 대한 MotionPredRefLayerId[ nuhLayerldA ][ mIdx ]가 현재 픽처의 nuh_layer_id 값과 동일하고 nuhLayerIdA가 TargetDecLayerIdList 중에 있도록 nuh_layer_id 값 nuhLayerIdA가 존재한다.
인코더 및/또는 디코더는 픽처가 "기준을 위해 미사용됨"으로서 마킹될 때 또는 픽처가 동일한 계층 내의 다른 픽처의 시간적 모션 벡터 예측을 위해 사용되지 않을 때 픽처의 모션 필드 또는 모션 벡터가 더 이상 저장되도록 요구되지 않고 계층간 모션 예측을 위한 기준으로서 픽처를 사용할 수 있는 동일한 액세스 유닛 내의 모든 픽처가 디코딩되어 있는 것으로 결론지을 수 있다. HEVC 및/또는 HEVC 확장이 사용될 때, 인코더 및/또는 디코더는 이하의 것 중 적어도 하나가 사실일 때 픽처의 모션 필드 또는 모션 벡터가 더 이상 저장되지 않는 것으로 결론지을 수 있다.
- 픽처는 "기준을 위해 미사용됨"으로서 마킹된다.
- collocated_picture_constraint_flag는 픽처에 대해 1이고, 픽처를 포함하는 액세스 유닛은 디코딩되어 있다.
- collocated_picture_constraint_flag는 픽처에 대해 1이고, 0 내지 NumMotionPredRefLayers[ nuhLayerldA ] - 1(포함)의 범위에서 임의의 mIdx에 대한 MotionPredRefLayerId[ nuhLayerldA ][ mIdx ]가 픽처의 nuh_layer_id 값과 동일하도록 픽처를 포함하는 액세스 유닛으로부터 디코딩되도록 남아 있는 TargetDecLayerIdList의 이들 값 중에 nuh_layer_id 값 nuhLayerIdA가 존재하지 않는다.
섹션 B) 모션 필드 저장 장치를 위한 시퀀스 -레벨 서브 계층 단위 지시
몇몇 실시예에서, 지시는 시퀀스-레벨 구문 구조에 상주하는 모션 필드 저장 장치 및/또는 사용에 관한 것이지만, 단지 계층 내의 몇몇 픽처에만 적용에 제한될 수도 있다. 제한된 범주는 인코더에 의해 비트스트림 내에서 결정되고 지시되고 디코더에 의해 비트스트림으로부터 디코딩될 수 있다. 예를 들어, 지시는 단지 특정 시간적 서브 계층 및/또는 픽처 유형(IRAP와 같은)에 적용될 수 있다. 상이한 범주가 상이한 계층 또는 계층의 쌍에 대해 상이한 지시 또는 상이한 유형의 지시에 대해 선택될 수 있다.
섹션 C) 어느 모션 필드가 저장되는지의 플렉시블 콘트롤
몇몇 실시예에서, 인코더 및/또는 디코더는 저장 버퍼 내의 모션 필드가 시간적, 계층간 또는 대각 모션 예측을 위해 더 이상 요구되지 않을 때, 모션 필드 저장 버프를 할당해제하고 또는 다른 모션 필드를 저장하기 위해 모션 필드 저장 버퍼를 사용할 수 있다. 몇몇 실시예에서, 인코더 및/또는 디코더는 저장 버퍼 내의 모션 필드가 더 이상 시간적, 계층간 또는 대각 모션 예측을 위해 요구되지 않을 때, 예를 들어 "예측을 위해 요구되지 않는 모션 필드" 또는 유사한 임의의 것으로서 모션 필드 또는 대응 기준 픽처를 마킹할 수 있다. 마찬가지로, 모션 필드가 디코딩되고 저장될 때, 모션 필드 또는 대응 기준 픽처는 "예측을 위해 요구된 모션 필드" 또는 유사한 임의의 것으로서 인코더 및/또는 디코더에 의해 마킹될 수 있다.
최대 수의 모션 필드가 저장되고 그리고/또는 "예측을 위해 요구된 모션 필드"로서 마킹된 것이 제한될 수 있다. 이 수는 예를 들어 코딩 표준에서 사전 규정될 수 있고 그리고/또는 인코더에 의해 결정되고 비트스트림 내에서 지시될 수 있다. 최대 수는 디코더에 의해 비트스트림으로부터 디코딩될 수 있다. 최대 수는 시간적 서브 계층에 특정할 수 있고, 비트스트림 내에서 하나 이상의 시간적 서브 계층을 위해 인코더에 의해 개별적으로 지시될 수 있다. 최대 수는 최대 수의 기준 픽처보다 낮을 수 있다.
저장되고 그리고/또는 "예측을 위해 요구된 모션 필드"로서 마킹된 모션 필드는 특정 알고리즘을 사용하여 인코더 및/또는 디코더에 의해 추론될 수 있고 그리고/또는 인코더에 의해 결정되고 비트스트림 내에서 인코더에 의해 지시되고 비트스트림으로부터 디코더에 의해 디코딩될 수 있다.
상기 특정 알고리즘은 예를 들어 코딩 표준에서 사전 규정될 수 있다. 몇몇 실시예에서, 다수의 알고리즘은 예를 들어 코딩 표준에서 지정될 수 있고 그리고/또는 알고리즘을 제어하는 다수의 파라미터값이 사용될 수 있다. 인코더는 상기 다수의 알고리즘 중 어느 것이 사용중인지 그리고 알고리즘을 제어하는 어느 파라미터값이 사용되고 비트스트림 내의 것들을 지시하는지를 결정할 수 있다. 마찬가지로, 디코더는 상기 다수의 알고리즘 중 어느 것이 사용중인지 그리고 알고리즘을 제어하는 어느 파라미터값이 비트스트림으로부터 사용되는지를 디코딩할 수 있다. 예를 들어, 알고리즘은 모션 필드의 선입선출(first-in-first-out: FIFO) 버퍼링을 실현할 수 있다. 상기 알고리즘에 따른 동작은 예를 들어, 점유된 모션 필드 저장 버퍼의 수가 도달하거나 최대 수를 초과하려고 할 때 트리거링될 수 있다. 예를 들어, 동작은 FIFO 버퍼링에 따라 선택된 모션 필드가 할당해제되거나 또는 "예측을 위해 요구되지 않은 모션 필드"로서 마킹되는 것일 수 있다.
몇몇 실시예에서, 인코더는 비트스트림 내에서 인코딩할 수 있고 그리고/또는 디코더는 모션 필드 마킹을 제어하기 위해 H.264/AVC의 MMCO와 유사한 비트스트림 명령으로부터 디코딩할 수 있다.
몇몇 실시예에서, 인코더는 비트스트림 내에서 인코딩할 수 있고 그리고/또는 H.265/HEVC에서 기준 픽처 세트(reference picture set: RPS)에 유사하게 기준 모션 필드 세트(reference motion field set: RMFS)를 비트스트림으로부터 디코딩할 수 있다. RFMS 구문 구조는 RFMS 내에 포함된 모션 필드의 식별자가 결론짓는 구문 요소를 포함할 수 있다. 식별자는 예를 들어, 픽처 순서 카운트 또는 이들의 부분(예를 들어, 특정 수의 POC 값의 최하위 비트), 픽처 순서 카운트 차이(예를 들어, 현재 픽처의 픽처 순서 카운트에 비교하여) 및/또는 frame_num 값 또는 유사한 것과 같은 픽처 식별자일 수 있다. RFMS 구문 구조는 예를 들어, RPS 구문 구조와 동일한 구문을 가질 수 있지만, RFMS 구문 구조는 디코딩된 샘플 어레이(RPS 구문 구조가 적용될 수 있는) 이외의 모션을 적용할 수 있다. 인코더 및/또는 디코더는 RFMS 내에 포함된 그리고/또는 "예측을 위해 요구된 모션 필드"(들)로서 마킹된 이들 모션 필드를 메모리 내에(예를 들어, 디코딩된 모션 필드 버퍼 내에) 유지할 수 있다. 인코더 및/또는 디코더는 메모리로부터(예를 들어, 디코딩된 모션 필드 버퍼로부터) RFMS 내에 포함되지 않은 이들 모션 필드를 제거하고 그리고/또는 "예측을 위해 요구되지 않는 모션 필드"(등)로서 이들을 마킹할 수 있다.
몇몇 실시예에서, RPS의 구문은 모션 필드가 RPS 내에 포함된 디코딩된 픽처와 함께 저장되는지 여부를 지시하도록 첨부된다. 예를 들어, 플래그가, RPS 내의 각각의 픽처에 대해 포함될 수도 있는데, 이는 플래그가 1일 때, 모션 필드의 저장 또는 존재를, 플래그가 0일 때 모션 필드의 결여를 지정한다. 인코더 및/또는 디코더는 존재하는 것으로서 지시된 이들 모션 필드를 저장하고 그리고/또는 "예측을 위해 요구된 모션 필드"(등)로서 이들을 마킹할 수 있다. 인코더 및/또는 디코더는 결여되어 있는 것으로 지시된 이들 모션 필드를 제거하고 그리고/또는 "예측을 위해 요구되지 않는 모션 필드"(등)로서 이들 마킹할 수 있다.
인코더는 최대 수의 모션 필드보다 높지 않은 RFMS 또는 RPS에 따라 "예측을 위해 요구되지 않는 모션 필드"(등)로서 마킹된 모션 필드의 수를 유지하도록 요구될 수 있다.
몇몇 실시예에서, 인코더는 비트스트림 내에 인코딩할 수 있고 그리고/또는 디코더는 예를 들어 픽처가 동일한 계층 내의 임의의 후속의 픽처에 대한 TMVP 등을 위한 동위배치된 픽처로서 사용될 수 있건간에, 슬라이스 헤더 내에 상주하는 제 1 픽처 단위 지시를 비트스트림으로부터 디코딩할 수 있다. 대안적으로 또는 부가로, 몇몇 실시예에서, 인코더는 비트스트림 내에서 인코딩할 수 있고 그리고/또는 디코더는 픽처가 동일한 계층 또는 다른 계층 내의 임의의 후속의 픽처에 대해 TMVP 등을 위한 동위배치된 픽처로서 사용될 수도 있건간에, 슬라이스 헤드 내에 상주하는 제 2 픽처 단위 지시를 비트스트림으로부터 디코딩할 수 있다. 몇몇 실시예에서, 제 1 및/또는 제 2 픽처 단위 지시는 모션 필드 또는 대응 픽처의 저장 및/또는 마킹을 제어하는데 사용될 수 있다. 예를 들어, 제 2 지시가 거짓이면(즉, 픽처가 임의의 후속의 픽처에 대해 TMVP 등을 위한 동위배치된 픽처로서 사용되지 않음), 모션 필드 또는 대응 픽처는 "예측을 위해 요구되지 않는 모션 필드"로서 마킹될 수 있다. 다른 예에서, 제 1 예측이 거짓이면(즉, 픽처가 동일한 계층 내의 임의의 후속 픽처에 대해 TMVP 등에 대해 동위배치된 것으로서 사용되지 않음), 모션 필드 또는 대응 픽처는 동위배치된 픽처로서 픽처를 사용할 수 있는 모든 픽처가 디코딩될 때까지 "예측을 위해 요구되는 모션 필드"로서 마킹될 수 있고, 그 후에 모션 필드 또는 대응 픽처는 "예측을 위해 요구되지 않는 모션 필드"로서 마킹될 수도 있다. 예를 들어, 제 1 지시가 거짓인 픽처는 픽처가 존재하는 액세스 유닛이 디코딩된 후에 "예측을 위해 요구되지 않는 모션 필드"로서 마킹될 수 있다(어떠한 대각 예측도 사용되지 않는 것으로 가정함).
몇몇 실시예에서, 전술된 바와 같은 제 1 픽처 단위 지시 및/또는 제 2 픽처 단위 지시가 특정 시간적 서브 계층에 특정할 수 있다. 예를 들어, 제 1 또는 제 2 픽처 단위 지시가 tIdA에 동일한 TemporalID를 갖는 픽처에 대해 사실이면, 픽처는 tIdA보다 크거나 같은 TemporalId를 갖는 동일한 계층 내의 이들 후속의 픽처에 대해 TMVP 등에 대한 동위배치된 픽처로서 사용될 수 있다.
몇몇 실시예에서, 모션 필드는 디코딩된 픽처 버퍼에 유사하게 동작할 수 있는 디코딩된 모션 필드 버퍼(decoded motion field buffer: DMFB) 등에 저장되는 것으로 고려될 수 있다. 인코더는 비트스트림 내에서 인코딩할 수 있고, 디코더는 DMFB의 동작에 관한 비트스트림 구문 요소 및/또는 구문 요소값으로부터 디코딩할 수 있다. 제약은 예를 들어 DMFB 내의 최대 수의 모션 필드 버퍼 및/또는 DMFB의 최대 메모리 사용이 될 때, 예를 들어 DMFB를 위한 코딩 표준에서 지정될 수 있다.
섹션 D) 어느 모션 정보가 저장되는지의 플렉시블 콘트롤
몇몇 실시예에서, 인코더는 비트스트림 내에서 지시할 수 있고, 디코더는 모션 정보를 저장하기 위한 공간 관련성 또는 정확도를 비트스트림으로부터 디코딩할 수 있다. 예를 들어, 디코딩된/코딩된 모션 정보가 재샘플링되는 루마 샘플의 블록 크기가 지시될 수 있다. 예를 들어, 모션 정보는 32×32 블록의 루마 샘플에 대해 저장될 수 있다. 몇몇 실시예에서, 블록 크기는 공간적으로 다양할 수 있다. 몇몇 실시예에서, 블록 크기는 대응 픽처의 예측 유닛에 따라 선택될 수 있다.
몇몇 실시예에서, 인코더는 비트스트림 내에서 지시할 수 있고, 디코더는 모션 정보의 어느 파라미터가 모션 예측에서 요구되는지 또는 요구될 수 있는지를 비트스트림으로부터 디코딩할 수 있다. 예를 들어, 이하의 지시들 중 하나 이상이 인코더에 의해 인코딩되고 그리고/또는 디코더에 의해 디코딩될 수 있다.
- 단지 계층간 기준 픽처가 특정 향상 계층을 위해 사용되고, 따라서 모션 벡터값은 예를 들어 공간 및/또는 SNR 스케일러빌러티의 경우에 (0, 0)으로 그리고 병렬 카메라 셋업을 갖는 멀티뷰 코딩에 대해 (x, 0)으로 제한될 수 있다. 따라서, 그 향상 계층을 위한 모션 필드 저장 장치는 단지 모션 벡터 성분의 서브세트를 저장하도록 조정될 수 있다.
- 단지 계층간 기준 픽처가 사용되고(샘플 예측을 위해), 단지 특정 기준 계층이 특정 향상 계층(예를 들어, direct_dependency_type[i][j]에 의해 지시된 바와 같이)을 위한 샘플 예측을 위한 소스로서 사용될 수 있다. 따라서, 그 특정 향상 계층을 위한 모션 필드 저장 장치는 어느 기준 픽처가 샘플 예측을 위해 사용되는지를 지시하는 기준 인덱스 저장 장치 또는 임의의 다른 저장 장치로 조정될 수 있다.
- 단지 단예측(uni-prediction)이 사용된다.
몇몇 실시예에서, 인코더는 비트스트림 내에서 추론하거나 지시할 수 있고, 디코더는 모션 정보의 파라미터 상의 비트스트림 제약으로부터 추론하거나 디코딩할 수 있는데 이는 모션 필드를 위한 저장 공간을 감소시키는 것을 도울 수 있다. 예를 들어, 이하의 것들 중 하나 이상이 인코더에 의해 추론되거나 인코딩될 수 있고 그리고/또는 디코더에 의해 추론되거나 디코딩될 수 있다.
- 모션 벡터 정확도. 예를 들어, 깊이 픽처 또는 계층과 같은 특정 유형의 픽처 또는 계층은 정수 루마 샘플 정확도의 모션 벡터를 갖는 것으로 추론될 수 있고, 따라서 깊이 픽처를 위한 모션 필드는 정수-샘플 정확도로 저장되어야 할 필요가 있다. 다른 예에서, 인코더는 비트스트림 내에서 인코딩될 수 있고, 디코더는 비트스트림 및 모션 벡터 정확도의 지시로부터 디코딩될 수 있다. 다른 예에서, 예를 들어 텍스처 뷰를 표현하는 제 1 계층은 예를 들어 깊이 뷰를 표현하는 다른 계층을 위한 모션 예측 기준으로서 사용될 수 있지만, 제 1 계층 내의 어떠한 모션 예측도 발생하지 않는다. 이 경우에, 제 1 계층의 모션 필드는 비트스트림 내의 인코더에 의한 상이한 유형 또는 지시인 계층에 기초하여 전체 픽처 샘플 정확도로 정량화될 수 있다.
- 최대(절대) 수평 및/또는 수직 모션 벡터 길이.
- 최대 기준 인덱스.
- 모션 필드가 대응하는 픽처와 모션 필드 내의 임의의 사용된 기준 픽처 사이의 최대 POC 차이.
몇몇 실시예에서, 예를 들어 전술된 또는 임의의 다른 모션 필드 관련 파라미터 또는 파라미터값 또는 파라미터 제약의 하나 이상이 어떻게 모션 필드를 위한 메모리 사용에 영향을 미치는지가 코딩 표준에 지정될 수 있다. 이러한 메모리 사용은 예를 들어 코딩 표준에서 레벨에 대해 지정된 제약에서 고려될 수 있고 그리고/또는 최대 수 또는 모션 필드 저장 버퍼에 영향을 미칠 수 있다. 이러한 메모리 사용은 공칭일 수도 있고, 인코더 및/또는 디코더 구현예는 실제로 상이한 파라미터를 위한 메모리의 다른 할당을 사용할 수도 있다. 예를 들어, 단일 모션 벡터 성분에 대한 메모리 사용은 비트 단위로 log2(2*최대 절대 모션 벡터 길이/모션 벡터 정확도)로 지정될 수 있고, 여기서 모션 벡터 정확도는 예를 들어 1/4-화소 모션 벡터 정확도에 대해 1/4, 절반-화소 벡터 정확도에 대해 1/2 등이다. 예를 들어, 최대 절대 모션 벡터 길이가 511이고 모션 벡터 정확도가 1/4이면, 12 비트가 모션 벡터 성분을 저장하도록 요구된다. 단일 블록을 위한 모션 정보를 위한 메모리 사용은 예를 들어 더 용이한 메모리 액세스를 제공하기 위해 최대 바이트로 어림될 수도 있다.
도 1은 본 발명의 실시예에 따른 코덱을 구비할 수 있는, 예시적인 장치 또는 전자 디바이스(50)의 개략 블록도로서 예시적인 실시예에 따른 비디오 코딩 시스템의 블록도를 도시하고 있다. 도 2는 예시적인 실시예에 따른 장치의 레이아웃을 도시하고 있다. 도 1 및 도 2의 요소가 다음에 설명될 것이다.
전자 디바이스(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)는 코딩/디코딩을 위해 이미지를 무선으로 또는 유선 접속에 의해 수신할 수 있다.
도 3은 예시적인 실시예에 따른 복수의 장치, 네트워크 및 네트워크 요소를 포함하는 비디오 코딩을 위한 구성을 도시하고 있다. 도 3과 관련하여, 본 발명의 실시예가 이용될 수 있는 시스템의 예가 도시되어 있다. 시스템(10)은 하나 이상의 네트워크를 통해 통신할 수 있는 다수의 통신 디바이스를 포함한다. 시스템(10)은 이들에 한정되는 것은 아니지만, 무선 휴대폰 네트워크(GSM, UMTS, CDMA 네트워크 등), IEEE 802.x 표준 중 임의의 하나에 의해 규정된 바와 같은 무선 근거리 통신망(WLAN), 블루투스 개인 영역 네트워크, 이더넷 근거리 통신망, 토큰 링 근거리 통신망, 광역 통신망 및 인터넷을 포함하는 유선 또는 무선 네트워크의 임의의 조합을 포함할 수 있다.
시스템(10)은 본 발명의 실시예를 구현하기 위해 적합한 유선 및 무선 통신 디바이스 또는 장치(50)를 포함할 수 있다. 예를 들어, 도 3에 도시된 시스템은 이동 전화 네트워크(11) 및 인터넷(28)의 표현을 도시하고 있다. 인터넷(28)으로의 접속성은 장거리 무선 접속, 단거리 무선 접속, 및 이들에 한정되는 것은 아니지만 전화 라인, 케이블 라인, 전력 라인, 및 유사한 통신 경로를 포함하는 다양한 유선 접속을 포함할 수도 있지만, 이들에 한정되는 것은 아니다.
시스템(10)에 도시되어 있는 예시적인 통신 디바이스는 전자 디바이스 또는 장치(50), 개인 휴대 정보 단말(personal digital assistant: PDA)과 이동 전화(14)의 조합, PDA(16), 통합 메시징 디바이스(integrated messaging device: IMD)(18), 데스크탑 컴퓨터(20), 넷북 컴퓨터(22)를 포함할 수 있지만, 이들에 한정되는 것은 아니다. 장치(50)는 고정식이거나 또는 이동하고 있는 개인에 의해 휴대될 때 이동식일 수도 있다. 장치(50)는 또한 이들에 한정되는 것은 아니지만, 자동차, 트럭, 택시, 버스, 기차, 선박, 항공기, 자전거, 모터사이클 또는 임의의 유사한 적합한 수송 모드를 포함하는 수송 모드에 위치될 수도 있다.
몇몇 또는 추가의 장치가 호 및 메시지를 송수신할 수 있고, 무선 접속(25)을 통해 기지국(24)으로 서비스 공급자와 통신할 수 있다. 기지국(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 및 임의의 유사한 무선 통신 기술을 포함하는 다양한 전송 기술을 사용하여 통신할 수 있다. 본 발명의 다양한 실시예를 구현하는데 수반되는 통신 디바이스는 이들에 한정되는 것은 아니지만, 라디오, 적외선, 레이저, 케이블 접속, 및 임의의 적합한 접속을 포함하는 다양한 매체를 사용하여 통신할 수도 있다.
상기에는, 예시적인 실시예가 인코더를 참조하여 설명되었고, 최종적인 비트스트림 및 디코더는 이들 내에 대응하는 요소를 갖는다는 것이 이해되어야 한다. 마찬가지로, 예시적인 실시예가 디코더를 참조하여 설명되는 경우에, 인코더는 디코더에 의해 디코딩될 비트스트림을 발생하기 위한 구조 및/또는 컴퓨터 프로그램을 갖는다는 것이 이해되어야 한다.
상기에는, 예시적인 실시예는 비트스트림의 구문의 도움으로 설명되었다. 그러나, 대응 구조 및/또는 컴퓨터 프로그램은 비트스트림을 발생하기 위한 인코더에서 그리고/또는 비트스트림을 디코딩하기 위한 디코더에서 상주할 수 있다는 것이 이해되어야 한다.
상기에는, 몇몇 실시예는 특정 유형의 파라미터 세트에 관련하여 설명되었다. 그러나, 실시예는 비트스트림 내의 임의의 유형의 파라미터 세트 또는 다른 구문 구조를 갖고 실현될 수 있다는 것이 이해되어야 한다.
상기에는, 몇몇 실시예는 비트스트림으로 또는 코딩된 비디오 시퀀스로 지시, 구문 요소, 및/또는 구문 구조를 인코딩하는 것 및/또는 비트스트림으로부터 또는 코딩된 비디오 시퀀스로부터 지시, 구문 요소 및/또는 구문 구조를 디코딩하는 것에 관련하여 설명되었다. 그러나, 실시예는 지시, 구문 요소 및/또는 구문 구조를 코딩된 슬라이스와 같은 비디오 코딩 계층 데이터를 포함하는 코딩된 비디오 시퀀스 또는 비트스트림으로부터 외부에 있는 구문 구조 또는 데이터 유닛으로 인코딩할 때 그리고/또는 코딩된 슬라이스와 같은 비디오 코딩 계층 데이터를 포함하는 코딩된 비디오 시퀀스 또는 비트스트림으로부터 외부에 있는 구문 구조 또는 데이터 유닛으로부터 지시, 구문 요소 및/또는 구문 구조를 디코딩할 때 실현될 수 있다는 것이 이해되어야 한다. 예를 들어, 몇몇 실시예에서, 상기 임의의 실시예에 따른 지시는 예를 들어, SDP와 같은 제어 프로토콜을 사용하여 코딩된 비디오 시퀀스로부터 외부에서 전달되는 비디오 파라미터 세트 또는 시퀀스 파라미터 세트로 코딩될 수 있다. 동일한 예를 계속하면, 수신기는 예를 들어, 사용자 프로토콜을 사용하여 비디오 파라미터 세트 또는 시퀀스 파라미터 세트를 얻고, 디코딩을 위해 비디오 파라미터 세트 또는 시퀀스 파라미터 세트를 제공할 수 있다.
상기 예는 전자 디바이스 내의 코덱 내에서 동작하는 본 발명의 실시예를 설명하고 있지만, 본 발명은 후술되는 바와 같이 임의의 비디오 코덱의 부분으로서 구현될 수 있다는 것이 이해될 수 있을 것이다. 따라서, 예를 들어, 본 발명의 실시예는 고정 또는 무선 통신 경로를 통해 비디오 코딩을 구현할 수 있는 비디오 코덱에서 구현될 수 있다.
따라서, 사용자 장비는 상기 본 발명의 실시예에서 설명된 것들과 같은 비디오 코덱을 포함할 수 있다. 용어 사용자 장비는 이동 전화, 휴대형 데이터 프로세싱 디바이스 또는 휴대형 웹브라우저와 같은, 임의의 적합한 유형의 무선 사용자 장비를 커버하도록 의도된다는 것이 이해되어야 한다.
더욱이, 공중 육상 모바일 네트워크(public land mobile network: PLMN)의 요소는 전술된 바와 같은 비디오 코덱을 또한 포함할 수 있다.
일반적으로, 본 발명의 다양한 실시예는 하드웨어 또는 특정 용도 회로, 소프트웨어, 논리 또는 이들의 임의의 조합으로 구현될 수 있다. 예를 들어, 몇몇 양태는 하드웨어로 구현될 수 있고, 다른 양태는 콘트롤러, 마이크로프로세서 또는 다른 컴퓨팅 디바이스에 의해 실행될 수 있는 펌웨어 또는 소프트웨어로 구현될 수 있지만, 본 발명은 이들에 한정되는 것은 아니다. 본 발명의 다양한 양태가 블록도, 흐름도로서 또는 소정의 다른 도면 표현을 사용하여 도시되고 설명될 수 있지만, 본 명세서에 설명된 이들 블록, 장치, 시스템, 기술 또는 방법은 비한정적인 예로서, 하드웨어, 소프트웨어, 펌웨어, 특정 용도 회로 또는 논리, 범용 하드웨어 또는 콘트롤러 또는 다른 컴퓨팅 디바이스, 또는 이들의 소정의 조합으로 구현될 수 있다는 것이 이해될 수 있을 것이다.
본 발명의 실시예는 프로세서 엔티티 내에서와 같은 모바일 디바이스의 데이터 프로세서에 의해, 또는 하드웨어에 의해, 또는 소프트웨어와 하드웨어의 조합에 의해 구현될 수 있다. 또한, 이완 관련하여, 도면에서와 같은 논리 흐름의 임의의 블록은 프로그램 단계, 또는 상호접속된 논리 회로, 블록 및 기능, 또는 프로그램 단계와 논리 회로, 블록 및 기능의 조합을 표현할 수 있다는 것이 주목되어야 한다. 소프트웨어는 프로세스 내에 구현된 메모리칩 또는 메모리 블록과 같은 이러한 물리적 매체, 하드디스크 또는 플로피 디스크와 같은 자기 매체, 및 예를 들어 DVD 및 그 데이터 변형예(CD)와 같은 광학 매체 상에 저장될 수 있다.
본 발명의 다양한 실시예는 메모리 내에 상주하여 관련 장치가 본 발명을 수행하게 하는 컴퓨터 프로그램 코드의 도움으로 구현될 수 있다. 예를 들어, 단말 디바이스는 데이터를 핸들링하고, 수신하고, 전송하기 위한 회로 및 전자 기기, 메모리 내의 컴퓨터 프로그램 코드, 및 컴퓨터 프로그램 코드를 실행할 때, 단말 디바이스가 실시예의 특징을 수행하게 하는 프로세서를 포함할 수 있다. 또한, 네트워크 디바이스는 데이터를 핸들링하고, 수신하고, 전송하기 위한 회로 및 전자 기기, 메모리 내의 컴퓨터 프로그램 코드, 및 컴퓨터 프로그램 코드를 실행할 때, 네트워크 디바이스가 실시예의 특징을 수행하게 하는 프로세서를 포함할 수 있다.
메모리는 로컬 기술 환경에 적합한 임의의 유형일 수 있고, 반도체 기반 메모리 디바이스, 자기 메모리 디바이스 및 시스템, 광학 메모리 디바이스 및 시스템, 고정 메모리 및 이동식 메모리와 같은 임의의 적합한 데이터 저장 기술을 사용하여 구현될 수 있다. 데이터 프로세서는 로컬 기술 환경에 적합한 임의의 유형일 수 있고, 비한정적인 예로서, 범용 컴퓨터, 특정 용도 컴퓨터, 마이크로프로세서, 디지털 신호 프로세서(DSP) 및 멀티코어 프로세서 아키텍처에 기초하는 프로세서를 포함할 수 있다.
본 발명의 실시예는 집적 회로 모듈과 같은 다양한 구성요소에서 실시될 수 있다. 집적 회로의 디자인은 거의 고도로 자동화된 프로세스이다. 복잡한 강력한 소프트웨어 도구가 반도체 기판 상에 에칭되고 형성될 준비가 된 반도체 회로 디자인으로 논리 레벨 디자인을 변환하기 위해 이용 가능하다.
미국 캘리포니아주 마운틴 뷰 소재의 시놉시스 인크(Synopsys Inc.) 및 미국 캘리포니아주 산호세 소재의 카덴스 디자인(Cadence Design)에 의해 제공된 것들과 같은 프로그램은 도전체를 자동으로 라우팅하고 양호하게 수립된 디자인의 규칙 뿐만 아니라 사전 저장된 디자인 모듈을 사용하여 반도체칩 상에 구성요소를 로케이팅한다. 일단, 반도체 회로를 위한 디자인이 완료되면, 표준화된 전자 포맷(예를 들어, Opus, GDSII 등)의 최종적인 디자인은 반도체 제조 설비 또는 제조용 "팹"에 전송될 수 있다.
도 4는 실시예에 따른 인코딩 방법의 흐름도를 도시한다. 실시예는 단지 계층간 모션 예측을 위해서만, 모션 필드가 저장된 것의 지시를 비트스트림 내에 인코딩하는 단계(1016); 모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림 내로 인코딩하는 단계(1018); 예측을 위한 모션 필드를 사용해야 하는지 여부의 지시를 비트스트림 내로 인코딩하는 단계(1020); 모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림 내에 인코딩하는 단계(1022)를 포함한다. 이전의 단계들 중 하나 이상이 수행될 수 있다.
상기 설명은 본 발명의 예시적인 실시예의 완전한 정보적인 설명을 예시적인 비한정적인 예로서 제공하였다. 그러나, 다양한 수정 및 적응이 첨부 도면 및 첨부된 청구범위와 함께 숙독할 때 상기 설명의 견지에서 관련 분야의 숙련자들에게 명백해질 수 있다. 그러나, 본 발명의 교시의 모든 이러한 및 유사한 수정 및 r시는 여전히 본 발명의 범주 내에 있을 것이다.
예에 따르면,
a) 단지 계층간 모션 예측을 위한 것인, 모션 필드가 저장되는지의 지시를 비트스트림 내로 인코딩하는 단계;
b) 모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림 내로 인코딩하는 단계;
c) 예측을 위한 모션 필드를 사용하는지 여부의 지시를 비트스트림 내로 인코딩하는 단계;
d) 모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림 내로 인코딩하는 단계 중 적어도 하나를 포함하는 방법이 제공된다.
제 1 실시예에 따르면, 단계 a)는
i. 모션 필드가 시간적 모션 벡터 예측을 위한 계층 내에서 사용되는지 여부의 지시를 비트스트림 내로 인코딩하는 단계;
ii. 계층간 모션 예측이 사용되도록 허용되는지 여부의 지시를 비트스트림 내로 인코딩하는 단계;
iii. 대각 모션 예측이 사용되도록 허용되는지 여부의 지시를 비트스트림 내로 인코딩하는 단계
중 2개 이상을 포함한다.
제 2 실시예에 따르면, 단계 b)에서, 제한된 범주는 특정 시간적 서브 계층 또는 픽처 유형 또는 양자 모두를 규정한다.
제 3 실시예에 따르면, 단계 c)는 예측을 위해 사용될 모션 필드를 추론하기 위한 특정 알고리즘을 사용하는 것을 포함한다.
제 4 실시예에 따르면, 단계 c)는 모션 필드 마킹을 제어하기 위한 명령 또는 구문 요소를 비트스트림 내로 인코딩하는 것을 포함한다.
제 5 실시예에 따르면, 단계 d)는 모션 정보를 저장하는 공간 분해능 또는 정확도를 지시하는 것을 포함한다.
제 6 실시예에 따르면, 단계 d)는 모션 정보의 어느 파라미터가 모션 예측에 요구되는지를 지시하는 것을 포함한다.
제 7 실시예에 따르면, 단계 d)는 모션 필드를 위한 저장 공간을 감소시키는 모션 정보의 파라미터에 대한 제약을 지시하는 것을 포함한다.
제 2 예에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하고, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서에 의해, 장치가 적어도
a) 단지 계층간 모션 예측을 위한 것인, 모션 필드가 저장되는지의 지시를 비트스트림 내로 인코딩하는 것;
b) 모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림 내로 인코딩하는 것;
c) 예측을 위한 모션 필드를 사용하는지 여부의 지시를 비트스트림 내로 인코딩하는 것;
d) 모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림 내로 인코딩하는 것 중 적어도 하나를 수행하게 하도록 구성되는 장치가 제공된다.
제 3 예에 따르면, 하나 이상의 프로세서에 의해 실행될 때, 장치가 적어도
a) 단지 계층간 모션 예측을 위한 것인, 모션 필드가 저장되는지의 지시를 비트스트림 내로 인코딩하는 것;
b) 모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림 내로 인코딩하는 것;
c) 예측을 위한 모션 필드를 사용하는지 여부의 지시를 비트스트림 내로 인코딩하는 것;
d) 모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림 내로 인코딩하는 것 중 적어도 하나를 수행하게 하는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공된다.
제 4 예에 따르면,
a) 단지 계층간 모션 예측을 위한 것인, 모션 필드가 저장되는지의 지시를 비트스트림으로부터 디코딩하는 단계;
b) 모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림으로부터 디코딩하는 단계;
c) 예측을 위한 모션 필드를 사용하는지 여부의 지시를 비트스트림으로부터 디코딩하는 단계;
d) 모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림으로부터 디코딩하는 단계 중 적어도 하나를 포함하는 방법이 제공된다.
제 5 예에 따르면, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하고, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서에 의해, 장치가
a) 단지 계층간 모션 예측을 위한 것인, 모션 필드가 저장되는지의 지시를 비트스트림으로부터 디코딩하는 것;
b) 모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림으로부터 디코딩하는 것;
c) 예측을 위한 모션 필드를 사용하는지 여부의 지시를 비트스트림으로부터 디코딩하는 것;
d) 모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림으로부터 디코딩하는 것 중 적어도 하나를 수행하게 하도록 구성되는 장치가 제공된다.
제 6 예에 따르면, 하나 이상의 프로세서에 의해 실행될 때, 장치가
a) 단지 계층간 모션 예측을 위한 것인, 모션 필드가 저장되는지의 지시를 비트스트림으로부터 디코딩하는 것;
b) 모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림으로부터 디코딩하는 것;
c) 예측을 위한 모션 필드를 사용하는지 여부의 지시를 비트스트림으로부터 디코딩하는 것;
d) 모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림으로부터 디코딩하는 것 중 적어도 하나를 수행하게 하는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공된다.

Claims (16)

  1. 비디오 정보를 비트스트림 내로 스케일러블(scalable) 비디오 인코딩하기 위한 방법으로서, 적어도,
    베이스 계층(base layer)의 모션 필드(motion fields)가 저장되는지 여부를 가리키는 표시(indication)를 비트스트림 내로 인코딩하는 단계 - 상기 인코딩하는 단계는,
    모션 필드가 다른 픽처의 시간적 모션 벡터 예측(temporal motion vector prediction)을 위해 상기 베이스 계층 내에서 사용되는지 여부를 가리키는 표시를 비트스트림 내로 인코딩하는 단계와,
    계층간 모션 예측(inter-layer motion prediction)이 사용되도록 허용되는지 여부를 가리키는 표시를 상기 비트스트림 내로 인코딩하는 단계를 포함하고,
    상기 비트스트림 내로 인코딩되는 표시들은, 상기 베이스 계층의 모션 필드가 단지 계층간 모션 예측을 위한 것이고 다른 픽처의 시간적 모션 벡터 예측을 위한 것이 아님을 가리킴 - 와,
    시간적 모션 벡터 예측이 다른 픽처의 시간적 모션 벡터 예측을 위해 상기 베이스 계층 내에서 사용되지 않는 경우에 있어서, 상기 모션 필드가 다른 계층에 대한 계층간 모션 예측에 사용되는 경우에는, 상기 다른 계층이 상기 비트스트림에 존재하지 않는다거나 상기 다른 계층이 디코딩되도록 의도되지 않는 상황이 아니라면 - 상기 상황에서는 상기 모션 필드가 저장되지 않음 - 상기 모션 필드를 저장하는 단계를 포함하는
    방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 표시는 시퀀스 파라미터 세트(sequence parameter set)에서 지정되는
    방법.
  4. 제 1 항에 있어서,
    상기 모션 필드를 저장하는 단계는, 특정 계층에서 현재 픽처를 인코딩하는 것의 일부로서 모션 필드를 저장하는 단계를 포함하는
    방법.
  5. 비디오 정보를 비트스트림 내로 스케일러블 비디오 인코딩하기 위한 장치로서,
    적어도 하나의 프로세서와,
    컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 적어도 포함하되,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 적어도,
    베이스 계층(base layer)의 모션 필드(motion fields)가 저장되는지 여부를 가리키는 표시(indication)를 비트스트림 내로 인코딩하기 위한 수단 - 상기 인코딩하기 위한 수단은,
    모션 필드가 다른 픽처의 시간적 모션 벡터 예측을 위해 상기 베이스 계층 내에서 사용되는지 여부를 가리키는 표시를 비트스트림 내로 인코딩하는 수단과,
    계층간 모션 예측이 사용되도록 허용되는지 여부를 가리키는 표시를 상기 비트스트림 내로 인코딩하는 수단을 포함하고,
    상기 비트스트림 내로 인코딩되는 표시들은, 상기 베이스 계층의 모션 필드가 단지 계층간 모션 예측을 위한 것이고 다른 픽처의 시간적 모션 벡터 예측을 위한 것이 아님을 가리킴 - 과,
    시간적 모션 벡터 예측이 다른 픽처의 시간적 모션 벡터 예측을 위해 상기 베이스 계층 내에서 사용되지 않는 경우에 있어서, 상기 모션 필드가 다른 계층에 대한 계층간 모션 예측에 사용되는 경우에는, 상기 다른 계층이 상기 비트스트림에 존재하지 않는다거나 상기 다른 계층이 디코딩되도록 의도되지 않는 상황이 아니라면 - 상기 상황에서는 상기 모션 필드가 저장되지 않음 - 상기 모션 필드를 저장하는 수단을 포함하는 수단들을 구현하도록 구성되는
    장치.
  6. 삭제
  7. 제 5 항에 있어서,
    상기 수단들은 시퀀스 파라미터 세트 내에 지시를 지정하기 위한 수단을 더 포함하는
    장치.
  8. 제 5 항에 있어서,
    상기 수단들은 특정 계층에서 현재 픽처를 인코딩하는 것의 일부로서 모션 필드를 저장하기 위한 수단을 더 포함하는
    장치.
  9. 컴퓨터에 의해 실행될 때, 장치로 하여금 제 1 항 또는 제 4 항에 따른 방법을 수행하게 하는 명령어로 인코딩되는
    컴퓨터 판독가능 매체.
  10. 비디오 정보를 비트스트림으로부터 디코딩하기 위한 방법으로서, 적어도,
    베이스 계층의 모션 필드가 저장되는지 여부를 가리키는 표시를 비트스트림으로부터 디코딩하는 단계 - 상기 디코딩하는 단계는,
    모션 필드가 다른 픽처의 시간적 모션 벡터 예측을 위해 상기 베이스 계층 내에서 사용되는지 여부를 가리키는 표시를 비트스트림으로부터 디코딩하는 단계와,
    계층간 모션 예측이 사용되도록 허용되는지 여부를 가리키는 표시를 상기 비트스트림으로부터 디코딩하는 단계를 포함함- 와,
    상기 비트스트림으로부터 디코딩되는 표시들이, 상기 베이스 계층의 모션 필드가 단지 계층간 모션 예측을 위한 것이고 다른 픽처의 시간적 모션 벡터 예측을 위한 것이 아님을 가리키는 경우에 있어서, 모든 계층간 모션 예측이 완료되면 상기 모션 필드를 저장하는 데에 사용된 메모리를 할당해제하는(deallocate) 단계를 포함하는
    방법.
  11. 제 10 항에 있어서,
    상기 디코딩하는 단계는
    모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림으로부터 디코딩하는 단계와,
    예측을 위한 상기 모션 필드를 사용하는지 여부의 지시를 비트스트림으로부터 디코딩하는 단계와,
    모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림으로부터 디코딩하는 단계 중 적어도 하나를 포함하는
    방법.
  12. 비디오 정보를 비트스트림으로부터 디코딩하기 위한 장치로서,
    적어도 하나의 프로세서와,
    컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 적어도 포함하되,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 적어도,
    베이스 계층의 모션 필드가 저장되는지 여부를 가리키는 표시를 비트스트림으로부터 디코딩하는 수단 - 상기 디코딩하는 수단은,
    모션 필드가 다른 픽처의 시간적 모션 벡터 예측을 위해 상기 베이스 계층 내에서 사용되는지 여부를 가리키는 표시를 비트스트림으로부터 디코딩하는 수단과,
    계층간 모션 예측이 사용되도록 허용되는지 여부를 가리키는 표시를 상기 비트스트림으로부터 디코딩하는 수단을 포함함- 와,
    상기 비트스트림으로부터 디코딩되는 표시들이, 상기 베이스 계층의 모션 필드가 단지 계층간 모션 예측을 위한 것이고 다른 픽처의 시간적 모션 벡터 예측을 위한 것이 아님을 가리키는 경우에 있어서, 모든 계층간 모션 예측이 완료되면 상기 모션 필드를 저장하는 데에 사용된 메모리를 할당해제하는 수단을 포함하는 수단들을 구현하도록 구성되는
    장치.
  13. 제 12 항에 있어서,
    상기 수단들은,
    모션 필드 사용량의 제한된 범주에 대한 지시를 비트스트림으로부터 디코딩하기 위한 수단과,
    예측을 위한 모션 필드를 사용하는지 여부의 지시를 비트스트림으로부터 디코딩하기 위한 수단과,
    모션 정보를 저장하기 위한 저장 파라미터의 지시를 비트스트림으로부터 디코딩하기 위한 수단 중 적어도 하나를 더 포함하는
    장치.
  14. 컴퓨터에 의해 실행될 때, 장치로 하여금 제 10 항 또는 제 11 항에 따른 방법을 수행하게 하는 명령어로 인코딩되는
    컴퓨터 판독가능 매체.
  15. 삭제
  16. 삭제
KR1020167003400A 2013-07-09 2014-07-08 모션 정보를 시그널링하기 위한 구문을 수반하는 비디오 코딩을 위한 방법 및 장치 KR101967398B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361843996P 2013-07-09 2013-07-09
US61/843,996 2013-07-09
PCT/IB2014/062953 WO2015004606A1 (en) 2013-07-09 2014-07-08 Method and apparatus for video coding involving syntax for signalling motion information

Publications (2)

Publication Number Publication Date
KR20160030560A KR20160030560A (ko) 2016-03-18
KR101967398B1 true KR101967398B1 (ko) 2019-04-09

Family

ID=52277085

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167003400A KR101967398B1 (ko) 2013-07-09 2014-07-08 모션 정보를 시그널링하기 위한 구문을 수반하는 비디오 코딩을 위한 방법 및 장치

Country Status (6)

Country Link
US (4) US10609407B2 (ko)
EP (1) EP3020186B1 (ko)
KR (1) KR101967398B1 (ko)
CN (1) CN105531999B (ko)
TW (1) TWI573444B (ko)
WO (1) WO2015004606A1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HUE048403T2 (hu) 2011-03-21 2020-07-28 Lg Electronics Inc Eljárás mozgásvektor-prediktor kiválasztására, és ezt használó berendezés
US9979960B2 (en) 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
IL287526B (en) * 2013-04-07 2022-07-01 Dolby Int Ab Signal change in systems layer output
US9591321B2 (en) 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
US10085034B2 (en) * 2013-07-12 2018-09-25 Sony Corporation Image coding apparatus and method
JP2015216632A (ja) * 2014-04-22 2015-12-03 ソニー株式会社 符号化装置および符号化方法
US9854201B2 (en) * 2015-01-16 2017-12-26 Microsoft Technology Licensing, Llc Dynamically updating quality to higher chroma sampling rate
CN106254878B (zh) * 2015-06-14 2020-06-12 同济大学 一种图像编码及解码方法、图像处理设备
US10834419B2 (en) * 2016-04-13 2020-11-10 Qualcomm Incorporated Conformance constraint for collocated reference index in video coding
JP6768145B2 (ja) * 2016-08-15 2020-10-14 ノキア テクノロジーズ オーユー ビデオの符号化および復号
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
KR20180057789A (ko) * 2016-11-22 2018-05-31 광운대학교 산학협력단 전방향 카메라에서 효과적인 차분 움직임 백터 전송방법을 이용한 비디오 코딩 방법 및 방법 및 장치
WO2018198487A1 (en) * 2017-04-25 2018-11-01 Sharp Kabushiki Kaisha Systems and methods for signaling quality information for regions in virtual reality applications
MX2020000449A (es) 2017-07-20 2020-07-13 Sony Corp Dispositivo de transmision, metodo de transmision, dispositivo de recepcion y metodo de recepcion.
CN109587501B (zh) * 2017-09-28 2022-07-12 腾讯科技(深圳)有限公司 进行运动估计的方法、装置及存储介质
CN109922340B (zh) 2017-12-13 2021-10-15 华为技术有限公司 图像编解码方法、装置、系统及存储介质
JP7248013B2 (ja) * 2018-03-30 2023-03-29 株式会社ソシオネクスト 復号方法、復号装置、符号化装置及びプログラム
US10567757B2 (en) * 2018-05-31 2020-02-18 Agora Lab, Inc. Dynamic reference picture reconstruction
CN113242432B (zh) * 2018-08-29 2022-01-25 北京达佳互联信息技术有限公司 视频解码的方法、计算设备和存储介质
US11665365B2 (en) * 2018-09-14 2023-05-30 Google Llc Motion prediction coding with coframe motion vectors
EP3857890A4 (en) 2018-11-06 2021-09-22 Beijing Bytedance Network Technology Co. Ltd. SIGNALING PAGE INFORMATION FOR INTERPREDICTION WITH GEOMETRIC PARTITIONING
CN113170183B (zh) * 2018-11-22 2024-04-02 北京字节跳动网络技术有限公司 用于具有几何分割的帧间预测的修剪方法
CN113508599A (zh) * 2018-12-21 2021-10-15 交互数字Vc控股公司 用于视频编码中运动信息信令通知的语法
WO2020135465A1 (en) 2018-12-28 2020-07-02 Beijing Bytedance Network Technology Co., Ltd. Modified history based motion prediction
CN113170166B (zh) 2018-12-30 2023-06-09 北京字节跳动网络技术有限公司 具有几何分割的帧间预测在视频处理中有条件的应用
CN113597768A (zh) * 2019-01-28 2021-11-02 Op方案有限责任公司 扩展长期参考图片保留的在线和离线选择
WO2020157287A1 (en) * 2019-02-01 2020-08-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Video codec allowing sub-picture or region wise random access and concept for video composition using the same
PL3910952T3 (pl) 2019-04-23 2023-10-30 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Sposób dekodowania obrazu, dekoder i nośnik danych
EP3954119A4 (en) * 2019-05-21 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. SYNTAX SIGNALING IN A SUBBLOCK MERGE MODE
CN113596455A (zh) * 2019-09-23 2021-11-02 杭州海康威视数字技术股份有限公司 编解码方法、装置及设备
CN114631317B (zh) 2019-10-18 2024-03-15 北京字节跳动网络技术有限公司 子图片的参数集信令中的语法约束
WO2021160176A1 (en) * 2020-02-14 2021-08-19 Beijing Bytedance Network Technology Co., Ltd. Use of general constraint flags in video bitstreams
EP4115605A4 (en) 2020-03-30 2023-11-15 ByteDance Inc. CONSTRAINTS ON COLLOCATED IMAGES IN VIDEO CODING
US11330296B2 (en) * 2020-09-14 2022-05-10 Apple Inc. Systems and methods for encoding image data
US20220286666A1 (en) * 2021-02-26 2022-09-08 Lemon Inc. Methods of coding images/videos with alpha channels
WO2022206988A1 (en) * 2021-04-02 2022-10-06 Beijing Bytedance Network Technology Co., Ltd. Scalability dimension information in video coding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012116212A1 (en) * 2011-02-24 2012-08-30 Qualcomm Incorporated Hierarchy of motion prediction video blocks
US20130208792A1 (en) 2012-01-31 2013-08-15 Vid Scale, Inc. Reference picture set (rps) signaling for scalable high efficiency video coding (hevc)
WO2014036259A1 (en) 2012-08-29 2014-03-06 Vid Scale, Inc. Method and apparatus of motion vector prediction for scalable video coding
WO2014055140A1 (en) 2012-10-04 2014-04-10 Intel Corporation Prediction parameter inheritance for 3d video coding

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100998618B1 (ko) * 2007-06-29 2010-12-07 (주)넥센나노텍 탄소 나노 섬유를 혼성화시킨 실리콘계 리튬 이차전지용음극 활물질
KR20110008653A (ko) * 2009-07-20 2011-01-27 삼성전자주식회사 움직임 벡터 예측 방법과 이를 이용한 영상 부호화/복호화 장치 및 방법
KR101237563B1 (ko) * 2009-08-13 2013-02-26 서울대학교산학협력단 비정질상 음극활물질 및 이를 이용한 전극의 제조방법 및 이를 포함하는 리튬이차전지
JP5752268B2 (ja) * 2011-01-14 2015-07-22 ヴィディオ・インコーポレーテッド 時間スケーラビリティのための高いレイヤのシンタックス
US9762903B2 (en) * 2012-06-01 2017-09-12 Qualcomm Incorporated External pictures in video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012116212A1 (en) * 2011-02-24 2012-08-30 Qualcomm Incorporated Hierarchy of motion prediction video blocks
US20130208792A1 (en) 2012-01-31 2013-08-15 Vid Scale, Inc. Reference picture set (rps) signaling for scalable high efficiency video coding (hevc)
WO2014036259A1 (en) 2012-08-29 2014-03-06 Vid Scale, Inc. Method and apparatus of motion vector prediction for scalable video coding
WO2014055140A1 (en) 2012-10-04 2014-04-10 Intel Corporation Prediction parameter inheritance for 3d video coding

Also Published As

Publication number Publication date
US20200228827A1 (en) 2020-07-16
US10609407B2 (en) 2020-03-31
EP3020186A4 (en) 2017-03-29
US11818385B2 (en) 2023-11-14
US11184634B2 (en) 2021-11-23
CN105531999B (zh) 2019-08-09
EP3020186B1 (en) 2022-12-07
TWI573444B (zh) 2017-03-01
US20150016531A1 (en) 2015-01-15
CN105531999A (zh) 2016-04-27
WO2015004606A1 (en) 2015-01-15
EP3020186A1 (en) 2016-05-18
US20240080473A1 (en) 2024-03-07
US20220086480A1 (en) 2022-03-17
TW201511531A (zh) 2015-03-16
KR20160030560A (ko) 2016-03-18

Similar Documents

Publication Publication Date Title
US11818385B2 (en) Method and apparatus for video coding
US10904543B2 (en) Method and apparatus for video coding and decoding
US10397610B2 (en) Method and apparatus for video coding
KR101630564B1 (ko) 비디오 코딩을 위한 방법 및 장치
KR101851479B1 (ko) 파라미터 세트 코딩
KR101658324B1 (ko) 비디오 코딩을 위한 방법 및 장치
CN106416250B (zh) 视频编码和解码
KR101767331B1 (ko) 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
CN105027569B (zh) 用于视频编码和解码的装置和方法
US20140092978A1 (en) Method and apparatus for video coding
US20140254681A1 (en) Apparatus, a method and a computer program for video coding and decoding
US20140085415A1 (en) Method and apparatus for video coding
KR20150024942A (ko) 비디오 코딩을 위한 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant