KR101658324B1 - 비디오 코딩을 위한 방법 및 장치 - Google Patents

비디오 코딩을 위한 방법 및 장치 Download PDF

Info

Publication number
KR101658324B1
KR101658324B1 KR1020157001821A KR20157001821A KR101658324B1 KR 101658324 B1 KR101658324 B1 KR 101658324B1 KR 1020157001821 A KR1020157001821 A KR 1020157001821A KR 20157001821 A KR20157001821 A KR 20157001821A KR 101658324 B1 KR101658324 B1 KR 101658324B1
Authority
KR
South Korea
Prior art keywords
prediction
picture
motion vector
slice
candidate
Prior art date
Application number
KR1020157001821A
Other languages
English (en)
Other versions
KR20150024906A (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 KR20150024906A publication Critical patent/KR20150024906A/ko
Application granted granted Critical
Publication of KR101658324B1 publication Critical patent/KR101658324B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria

Landscapes

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

Abstract

방법, 장치 및 컴퓨터 프로그램 제품이 제공된다. 일부 실시예에서 비 압축된 픽처는 슬라이스(slice)를 포함하는 코딩된 픽처(coded picture)로 인코딩되는데, 이 실시예는 하나 이상의 시간적 레퍼런스 픽처(temporal reference picture)에서 슬라이스를 위해 예측 레퍼런스 후보 리스트(a list of prediction reference candidates)를 결정하는 단계와; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스(reference index)와 연관시키는 단계와; 제1 레퍼런스 인덱스와 연관된 예측 레퍼런스 후보가 상기 슬라이스를 위한 시간적 움직임 벡터 예측에 유효한지를 검사하는 단계를 포함한다. 만약에 제1 레퍼런스 인덱스를 갖는 예측 레퍼런스 후보가 슬라이스를 위한 시간적 움직임 벡터 예측에 유효하지 않다면, 상기 리스트가 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함하는지 검사하는 단계를 포함한다. 만약에 상기 리스트가 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함한다면, 상기 다른 예측 레퍼런스 후보와 연관된 상기 레퍼런스 인덱스를 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소(syntax element)에 제공하는 단계를 포함한다. 이 방법은 특히 HEVC(High Efficiency Video Coding) 또는 AVC(Advanced video Coding)의 상황에서 비디오 인코딩 또는 디코딩과 관련 있다.

Description

비디오 코딩을 위한 방법 및 장치{METHOD AND APPARATUS FOR VIDEO CODING}
본 발명은 전반적으로 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램에 관한 것이다.
이 설명은 청구범위에 언급된 발명의 배경기술 또는 맥락을 제공하기 위한 것이다. 본원의 설명은 논의 가능한 개념들을 포함할 수도 있지만 이것이 반드시 이전에 구상되거나 논의되었던 개념인 것은 아니다. 그러므로 본원에서 달리 지적하지 않는 한, 이 부분에 설명된 내용은 본 출원에서 설명과 청구범위에 대해 종래 기술이 아니며, 이 부분에 설명되었다고 해서 종래 기술로 인정되는 것도 아니다.
비디오 코딩 시스템은 입력 비디오를 저장/전송에 적합한 압축된 표시로 변환하는 인코더와, 압축된 비디오 표시를 다시 시청 가능한 형태로 압축해제할 수 있는 디코더를 포함할 수 있다. 인코더는 비디오를 더 간결한 형태로 나타내기 위해 원본 비디오 시퀀스에서 일부 정보를 폐기할 수 있는데, 예를 들면, 요구될 수 있는 것보다 저속인 비트율로 비디오 정보의 저장/전송을 가능하게 하기 위해 일부 정보를 폐기할 수도 있다.
3D 비디오 콘텐츠를 제공하는 다양한 기술들이 현재 연구되고 개발되고 있다. 특히, 강도 높은 연구들이 다양한 다시점 애플리케이션(multiview applications)에 집중되고 있는데, 이러한 다시점 애플리케이션에서는 시청자가 특정 시점으로부터 한 쌍의 스테레오 비디오를 볼 수 있고, 다른 시점으로부터는 다른 쌍의 스테레오 비디오를 볼 수 있다. 이러한 다시점 애플리케이션을 위한 가장 실현 가능한 접근법 중 하나로 지목되고 있는 것은 예를 들면 모노 또는 스테레오 비디오와 몇몇 보충 데이터가 더해진 제한된 수의 입력 시점(input view)이 디코더 측에 제공되고, 이후에 모든 요구되는 시점은 디코더에 의해 국소적으로 렌더링(즉, 합성) 되어 디스플레이상에 표시되도록 하는 방식이다.
일부 비디오 코딩 표준은 슬라이스 계층(slice layer)과 그 하부 계층에 헤더(header)를 도입하고 슬라이스 계층의 상부 계층에는 파라미터 집합의 개념을 도입한다. 파라미터 집합의 인스턴스(instance)는 모든 픽처(pictures), 픽처 그룹(GOP;group of pictures) 및 시퀀스 레벨 데이터를 포함할 수 있는데, 예를 들면 픽처 사이즈, 디스플레이 윈도우, 채용된 옵션으로서의 코딩 모드, 매크로블록 할당 맵 등을 포함할 수 있다. 각각의 파라미터 집합 인스턴스는 고유한 식별자(identifier)를 포함할 수도 있다. 각각의 슬라이스 헤더는 파라미터 집합 식별자에 대한 레퍼런스(reference)를 포함할 수 있으며, 참조된 파라미터 집합의 파라미터 값은 슬라이스를 디코딩할 때 이용될 수 있다. 파라미터 집합은 간헐적으로 변하는 픽처, GOP 및 시퀀스 레벨 데이터(즉, 시퀀스 경계, GOP 경계 및 픽처 경계로부터의 시퀀스 레벨 데이터)의 전송 및 디코딩 순서를 분리한다. 파라미터 집합은 이들이 참조되기 전에 디코딩되기만 한다면 신뢰성 있는 전송 프로토콜을 이용하여 대역외(out-of-band) 방식으로 전송될 수 있다. 만약 파라미터 집합이 대역내 방식으로 전송된다면, 이것은 종래의 비디오 코딩 방식과 비교해서 오류 복원성(error resilience)을 개선하기 위해서 여러 번 반복될 수 있다. 파라미터 집합은 세션 설정 시간(session set-up time)에 전송될 수 있을 것이다. 그러나 일부 시스템에서는(주로 방송 시스템에서는) 파라미터 집합의 신뢰성 있는 대역외 전송이 실현될 수 없을 수도 있으며, 오히려 파라미터 집합이 Parameter Set NAL 유닛으로 대역내 운반된다.
본 발명의 일부 예시적인 실시예에 따르면, 병합 모드(merge mode)에서 시간적 움직임 벡터 예측기(temporal motion vector predictor)의 레퍼런스 인덱스(reference index)를 제공하는 방법, 장치 및 컴퓨터 프로그램 제품이 제공된다. 레퍼런스 인덱스는 예를 들면 슬라이스 헤더에서 명시적으로 신호될 것이다. 이런 식으로, 0인 레퍼런스 인덱스에서의 픽처가 시간적 움직임 벡터 예측의 도출을 막는 경우에도 시간적 움직임 벡터 예측을 활용하는 것이 가능하다.
본 발명의 예시들의 다양한 양상들이 청구범위에 정리된다.
본 발명의 제1 양상에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트(a list of prediction reference candidates)를 결정하는 단계와; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 단계와; 움직임 벡터 예측을 위해 예측 레퍼런스 후보를 선택하는 단계와; 상기 선택된 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스를 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소(syntax element)에 제공하는 단계를 포함하는 방법이 제공된다.
본 발명의 제2 양상에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하는 단계와; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 단계와; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 인코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하는 단계를 포함하는 방법이 제공된다.
본 발명의 제3 양상에 따르면, 적어도 하나의 프로세서와, 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되는데, 상기 적어도 하나의 메모리와 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하게 하도록 구성되고; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키게 하도록 구성되며; 움직임 벡터 예측을 위해 레퍼런스 인덱스와 연관된 예측 레퍼런스 후보를 선택하게 하도록 구성되고; 상기 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스를 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소에 제공하게 하도록 구성된다.
본 발명의 제4 양상에 따르면, 적어도 하나의 프로세서와, 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되는데, 상기 적어도 하나의 메모리와 상기 컴퓨터 프로그램 코드는 적어도 하나의 프로세서와 함께 상기 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하게 하도록 구성되고; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키게 하도록 구성되며; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 인코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하게 하도록 구성된다.
본 발명의 제5 양상에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때 적어도 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하는 단계를 수행하게 하고; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 단계를 수행하게 하며; 움직임 벡터 예측을 위해 레퍼런스 인덱스와 연관된 예측 레퍼런스 후보를 선택하는 단계를 수행하게 하고; 상기 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스를 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소에 제공하는 단계를 수행하게 한다.
본 발명의 제6 양상에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때 적어도 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하는 단계를 수행하게 하고; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 단계를 수행하게 하며; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 인코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하는 단계를 수행하게 한다.
본 발명의 제7 양상에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하는 수단과; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 수단과; 움직임 벡터 예측을 위해 예측 레퍼런스 후보를 선택하는 수단과; 상기 선택된 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스를 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소에 제공하는 수단을 포함하는 장치가 제공된다.
본 발명의 제8 양상에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하는 수단과; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 수단과; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 인코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하는 수단을 포함하는 장치가 제공된다.
본 발명의 제9 양상에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하는 단계와; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 단계와; 인코딩에 있어서 움직임 벡터 예측을 위해 이용되는 예측 레퍼런스 후보를 나타내는 레퍼런스 인덱스를 포함하는 신택스 요소를 수신하는 단계와; 상기 슬라이스를 디코딩함에 있어서 상기 예측 레퍼런스를 선택하기 위해 상기 레퍼런스 인덱스를 이용하는 단계를 포함하는 방법이 제공된다.
본 발명의 제10 양상에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하는 단계와; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 단계와; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 디코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하는 단계를 포함하는 방법이 제공된다.
본 발명의 제11 양상에 따르면, 적어도 하나의 프로세서와, 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되는데, 상기 적어도 하나의 메모리와 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하게 하도록 구성되고; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키게 하도록 구성되며; 인코딩에 있어서 움직임 벡터 예측을 위해 이용되는 예측 레퍼런스 후보를 나타내는 레퍼런스 인덱스를 포함하는 신택스 요소를 수신하게 하도록 구성되고; 상기 슬라이스를 디코딩하기 위한 상기 예측 레퍼런스를 선택하기 위해 상기 레퍼런스 인덱스를 이용하게 하도록 구성된다.
본 발명의 제12 양상에 따르면, 적어도 하나의 프로세서와, 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되는데, 상기 적어도 하나의 메모리와 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하게 하도록 구성되고; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키게 하도록 구성되며; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 디코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하게 하도록 구성된다.
본 발명의 제13 양상에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때 적어도 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하는 단계를 수행하게 하고; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 단계를 수행하게 하며; 인코딩에서 움직임 벡터 예측을 위해 이용되는 예측 레퍼런스 후보를 나타내는 레퍼런스 인덱스를 포함하는 신택스 요소를 수신하는 단계를 수행하게 하며; 상기 슬라이스를 디코딩하기 위한 상기 예측 레퍼런스를 선택하기 위해 상기 레퍼런스 인덱스를 이용하는 단계를 수행하게 한다.
본 발명의 제14 양상에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때 적어도 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하는 단계를 수행하게 하고; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 단계를 수행하게 하며; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 디코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하는 단계를 수행하게 한다.
본 발명의 제15 양상에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하는 수단과; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 수단과; 디코딩함에 있어서 움직임 벡터 예측을 위해 이용되는 예측 레퍼런스 후보를 나타내는 레퍼런스 인덱스를 포함하는 신택스 요소를 수신하는 수단과; 상기 슬라이스를 디코딩하기 위한 상기 예측 레퍼런스를 선택하기 위해 상기 레퍼런스 인덱스를 이용하는 수단을 포함하는 장치가 제공된다.
본 발명의 제16 양상에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처의 슬라이스를 위해 예측 레퍼런스 후보 리스트를 결정하는 수단과; 상기 리스트 내의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 수단과; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 디코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하는 수단을 포함하는 장치가 제공된다.
본 발명의 예시적인 실시예를 보다 완벽하게 이해하기 위해서, 이제 첨부 도면과 연계하여 기술된 이후의 설명을 참조하기 바란다.
도 1은 예시적인 실시예에 따른 비디오 코딩 시스템의 블록도를 도시한다.
도 2는 예시적인 실시예에 따른 비디오 코딩을 위한 장치를 도시한다.
도 3은 예시적인 실시예에 따라서 복수의 장치, 네트워크 및 네트워크 요소들을 포함하는 비디오 코딩을 위한 구성을 도시한다.
도 4a는 인코더 내부에 포함되어 있는 본 발명의 일 실시예를 개략적으로 도시한다.
도 4b는 본 발명의 몇몇 실시예에 따른 예측 레퍼런스 리스트 발생 및 수정의 실시예를 개략적으로 도시한다.
도 5a는 병합 모드에서 레퍼런스 인덱스를 선택하는 일 실시예의 방법의 고수준 흐름도를 도시한다.
도 5b는 병합 모드에서 선택된 레퍼런스 인덱스를 인코딩하는 일 실시예의 방법의 고수준 흐름도를 도시한다.
도 6a는 예측 유닛의 시공간적 예측의 일 예를 예시한다.
도 6b는 예측 유닛의 시공간적 예측의 다른 예를 예시한다.
도 7은 디코더 내부에 포함되어 있는 본 발명의 일 실시예를 개략적으로 도시한다.
도 8은 코딩 유닛과 이 코딩 유닛의 몇몇 주변 블록의 일 예를 예시한다.
도 9는 병합 모드에서 디코더에 의해 레퍼런스 인덱스를 수신하는 일 실시예의 방법의 고수준 흐름도를 도시한다.
이하에서 본 발명의 몇몇 실시예는 어떤 비디오 코딩 구성과 관련하여 설명될 것이다. 그러나 본 발명이 이러한 특별한 구성에 한정되는 것이 아님을 유의해야 한다. 사실상, 다른 실시예들은 레퍼런스 픽처 처리의 개선이 요구되는 모든 환경에서 광범위하게 적용된다. 예를 들어, 본 발명은 스트리밍 시스템, DVD 플레이어, 디지털 TV 수신기, 개인용 녹화기(personal video recorders), 개인용 컴퓨터상의 시스템과 컴퓨터 프로그램, 휴대용 컴퓨터 및 통신 장치 같은 비디오 코딩 시스템에 적용 가능하며, 더불어 트랜스코더(transcoders)와 비디오 데이터가 처리되는 클라우드 컴퓨팅 장치같은 네트워크 요소에도 적용 가능하다.
H.264/AVC 표준은 ITU-T(International Telecommunications Union Telecommunication) 산하의 전기 통신 표준화 부분(Telecommunications Standardization Sector)의 비디오 코딩 전문가 그룹(VCEG;Video Coding Experts Group)과 ISO(International Organization for Standardization)/IEC(International Electrotechnical Commission) 산하의 동화상 전문가 그룹(MPEG;Moving Picture Experts Group)으로 이루어진 공동 작업반(JVT;Joint video Team)에 의해 개발되었다. H.264/AVC 표준은 상기 두 개의 모체 표준화 기구에 의해 발행되었고, ITU-T 권고 H.264 및 ISO/IEC 국제 표준 14496-10으로 명명되었으며, 이것은 또한 MPEG-4 부문-10 AVC(Advanced Video Coding)으로도 알려졌다. H.264/AVC 표준의 여러 버전이 존재하는데, 각각의 버전은 새로운 확장안이나 특징들을 설명서에 통합시킨 것이다. 이 확장안들은 SVC(Scalable Video Coding) 및 MVC(Multiview Video Coding)을 포함한다.
품질 확장성(quality scalability)(이것은 신호 대 잡음 비(SNR)로도 알려짐) 및/또는 공간 확장성(spatial scalability)을 위한 스케일러블 비디오 코덱(Scalable Video Codec)은 다음과 같이 구현될 수 있다. 기저 계층(base layer)의 경우, 종래의 논-스케일러블 비디오 인코더와 디코더가 이용된다. 기저 계층의 재구성된/디코딩된 픽처는 향상 계층(enhancement layer)을 위한 레퍼런스 픽처 버퍼에 포함된다. H.264/AVC, HEVC, 그리고 인터 예측(inter prediction)을 위해 레퍼런스 픽처 리스트를 이용하는 유사한 코덱에서, 기저 계층의 디코딩된 픽처는 향상 계층의 디코딩된 레퍼런스 픽처와 마찬가지로 향상 계층 픽처의 코딩/디코딩을 위해 레퍼런스 리스트에 삽입될 수 있다. 결과적으로, 인코더는 기저-계층 레퍼런스 픽처를 인터 예측 레퍼런스로서 선택할 것이고, 선택한 것을 예컨대 코딩된 비트 스트림 내의 레퍼런스 픽처 인덱스와 함께 이용하라고 지시할 것이다. 디코더는 기저-계층 픽처가 향상 계층을 위해 인터 예측 레퍼런스로서 이용됨을 비트 스트림으로부터, 예를 들면 레퍼런스 픽처 인덱스로부터 디코드한다. 디코딩된 기저-계층 픽처가 향상 계층을 위한 예측 레퍼런스로서 이용될 때, 이것을 계층간 레퍼런스 픽처(inter-layer reference picture)라고 부른다.
3D 비디오 콘텐츠를 제공하는 MVC 및 여러 가지 다른 기술들은 현재 조사 및 개발되고 있다. 특히, 강도 높은 연구들이 다양한 다시점 애플리케이션에 집중되고 있는데, 이러한 다시점 애플리케이션에서는 시청자가 특정 시점으로부터 한 쌍의 스테레오 비디오를 볼 수 있고, 다른 시점으로부터는 다른 쌍의 스테레오 비디오를 볼 수 있다. 이러한 다시점 애플리케이션을 위한 가장 실현 가능한 접근법 중 하나로 지목되고 있는 것은 예를 들면 모노 또는 스테레오 비디오와 몇몇 보충 데이터가 더해진 제한된 수의 입력 시점이 디코더 측에 제공되고, 이후에 모든 요구되는 시점은 디코더에 의해 국소적으로 렌더링(즉, 합성)되어 디스플레이상에 표시되도록 하는 방식이다.
일부 주요 정의, 비트 스트림 및 코딩 구조와, H.264/AVC 및 HEVC의 개념들은 본 식별항목의 내용에서 비디오 인코더, 디코더, 인코딩 방법, 디코딩 방법 및 비트 스트림 구조의 예로서 설명되며, 이런 예시의 관점에서 실시예들이 구현될 것이다. 주요 정의, 비트 스트림 및 코딩 구조의 일부와, H.264/AVC의 개념들은 현재 작업중인 HEVC의 초안과 동일한 것이고, 그러므로 이들은 아래에서 함께 설명된다. 본 발명의 양상들은 H.264/AVC나 HEVC에 한정되지 않으며, 오히려 그 설명은 본 발명이 부분적으로 또는 전체적으로 실현될 수 있는 하나의 가능한 근거로서 제시된다.
많은 초기의 비디오 코딩 표준들과 마찬가지로, 비트 스트림 신택스 및 시맨틱(semantics)과 함께 오류 정정 비트 스트림을 위한 디코딩 프로세스는 H.264/AVC 및 HEVC에 명시되어 있다. 인코딩 프로세스는 명시되지 않지만 인코더는 마땅히 그에 부합하는 비트 스트림을 발생해야 한다. 비트 스트림과 디코더의 일치는 HRD(Hypothetical Reference Decoder)로 입증될 수 있다. 표준들은 전송 오류와 손실에 대처하는 것을 돕는 코딩 툴(coding tool)을 포함하지만, 인코딩에서 이러한 툴의 이용은 선택 사양이며, 디코딩 프로세스는 오류성 비트 스트림에 대해 명시되지 않았다.
H.264/AVC 또는 HEVC 인코더의 입력과 H.264/AVC 또는 HEVC 디코더의 출력을 위한 기본 단위는 픽처이다. H.264/AVC에서, 픽처는 프레임이거나 필더일 것이다. 현재 작업중인 HEVC의 초안에서 픽처는 프레임이다. 프레임은 루마 샘플(luma sample)과 그에 대응하는 크로마 샘플(chroma sample)로 이루어진 매트릭스를 포함한다. 필드는 프레임의 교번하는 샘플 열의 집합(a set of alternate sample rows)이며, 이것은 소스 신호가 인터레이스될 때 인코더 입력으로서 이용될 수 있다. 크로마 픽처는 루마 픽처와 비교될 때 서브 샘플링될 수 있다. 예를 들어, 4:2:0 샘플링 패턴에서, 크로마 픽처의 공간 해상도는 양 좌표축을 따라 루마 픽처의 공간 해상도의 절반 수준이다.
H.264/AVC에서, 매크로블록은 16x16 블록의 루마 샘플과, 그에 대응하는 블록의 크로마 샘플이다. 예를 들어, 4:2:0 샘플링 패턴에서, 하나의 매크로블록은 각각의 크로마 콤포넌트(chroma component)당 8x8 블록의 크로마 샘플을 포함한다. H.264/AVC에서, 하나의 픽처는 하나 이상의 슬라이스 그룹으로 파티셔닝되고(partitioned), 하나의 슬라이스 그룹은 하나 이상의 슬라이스를 포함한다. H.264/AVC에서, 슬라이스는 정수 개의 매크로블록들로 이루어지는데, 이 매크로블록들은 특정 슬라이스 그룹 내부를 래스터 주사(raster scan)시에 연속하는 순서이다.
HEVC 표준 초안에서, 비디오 픽처는 픽처 영역을 덮고 있는 코딩 유닛(CU;coding unit)으로 나뉜다. CU는 CU 내부의 샘플을 위한 예측 프로세서를 정의하는 하나 이상의 예측 유닛(PU;prediction unit)과, CU 내의 샘플을 위한 예측 오류 코딩 프로세스를 정의하는 하나 이상의 변환 유닛(TU;transform unit)으로 이루어진다. 전형적으로, CU는 사전에 정의된 가능한 CU 사이즈 집합으로부터 선택 가능한 사이즈를 갖는 정사각형의 샘플 블록으로 이루어진다. 최대 허용 사이즈를 갖는 CU는 전형적으로 CTU(coding tree unit)이라는 이름으로 불리고, 비디오 픽처는 비중첩(non-overlapping) CTU로 나뉜다. CTU는 예를 들면 CTU와 그 결과로 생긴 CU들을 순환적으로 나눔으로써 더 작은 CU의 조합으로 더 쪼개질 수 있다. 결과적으로 만들어진 각각의 CU는 전형적으로 적어도 하나의 PU와 이와 연관된 적어도 하나의 TU를 갖는다. 예측의 예측 오류 코딩 프로세스의 입도(granularity)를 증가시키기 위해서 각각의 PU와 TU는 더 작은 PU와 TU로 각기 더욱 분할될 수 있다. PU 분할은 CU를 4개의 동일 사이즈의 정사각형 PU로 나누거나 또는 대칭 방식 또는 비대칭 방식으로 수직 또는 수평으로 CU를 2개의 직사각형으로 나눔으로써 실현될 수 있다. 이미지를 CU로 나누는 것과, CU를 PU와 TU로 나누는 것은 전형적으로 비트 스트림내에 신호되어, 디코더로 하여금 의도된 구조의 이 유닛들을 재생하게 한다.
HEVC 표준 초안에서, 픽처는 타일(tile)로 파티셔닝될 수 있는데, 타일들은 직사각형이며, 정수 개수의 CTU를 포함한다. 현재 작업중인 HEVC 표준 초안에서, 이것은 타일로의 파티셔닝은 직사각형 그리드를 형성하고, 여기서 타일의 높이와 폭은 최대 하나의 CTU만큼 상이하다. HEVC 초안에서, 슬라이스는 정수 개수의 CU로 이루어진다. CU는 래스터 주사시에 타일 내부 또는 타일이 이용되지 않을 때는 픽처 내부의 CTU의 순서로 주사된다. CTU 내부에서, CU는 특정의 주사 순서를 갖는다.
HEVC의 작업 초안(WD) 5에서, 일부 주요 정의와 픽처 파티셔닝을 위한 개념은 다음과 같이 정의된다. 파티셔닝은 집합을 부분집합으로 분할하는 것으로서 정의되므로, 집합의 각각의 요소는 정확히 부분집합 중 하나이다.
HEVC WD 5에서 기본 코딩 유닛은 트리블록(treeblock)이다. 트리블록은 3개의 샘플 어레이를 갖는 픽처의 NxN 블록의 루마 샘플과 두 개의 대응하는 블록의 크로마 샘플이거나 또는 3개의 분리된 컬러 평면을 이용하여 코딩된 픽처 또는 모노크롬 픽처의 NxN 블록의 샘플이다. 트리블록은 상이한 코딩 및 디코딩 프로세스를 위해 파티셔닝될 수 있을 것이다. 3개의 분리된 컬러 평면을 이용해 코딩된 픽처 또는 모노크롬 픽처를 위한 트리블록의 분할로 인해 트리블록 파티션(treeblock partition)은 하나의 루마 샘플 블록과 두 개의 대응하는 크로마 샘플이다. 각각의 트리블록은 인트라 또는 인터 예측 및 변환 코딩을 위한 블록 사이즈를 식별하도록 신호하는 파티션에 할당된다. 파티셔닝은 순환적인 쿼드트리 분할(recursive quadtree partitioning)이다. 쿼드트리의 루트(root)는 트리블록과 연관된다. 쿼드트리는 리프(leaf)에 도달될 때까지 나뉘는데, 이것은 코딩 노드라고 불린다. 코딩 노드는 두 개의 트리의 루트 노드, 파티션 트리 및 변환 트리의 루트 노드이다. 예측 트리는 예측 블록의 위치와 사이즈를 지정한다. 예측 트리 및 연관 예측 데이터를 예측 유닛이라고 한다. 변환 트리는 변환 블록의 위치와 사이즈를 지정한다. 변환 트리 및 연관 변환 데이터를 변환 유닛이라고 한다. 루마와 크로마를 위한 분할 정보는 예측 트리를 위해 일치하고, 변환 트리를 위해서는 일치할 수도 있고 일치하지 않을 수도 있다. 코딩 노드와 연관 예측 유닛 및 변환 유닛은 함께 코딩 유닛을 형성한다.
HEVC WD 5에서, 픽처는 슬라이스와 타일로 나뉜다. 슬라이스는 트리블록의 시퀀스일 수도 있지만, (미세 입자 슬라이스를 참조할 때) 이것은 변환 유닛과 예측 유닛이 일치하는 곳에서 트리블록의 내부에 그 경계를 가질 수도 있다. 슬라이스 내부의 트리블록은 래스터 주사 순서로 코드 및 디코딩된다. 기본적인 코딩된 픽처(PCP;primary coded picture)의 경우, 각각의 픽처를 슬라이스로 분할하는 것이 파티셔닝이다.
HEVC WD 5에서, 타일은 이 타일 내부를 래스터 주사시에 연속하는 순서로 하나의 행 및 하나의 열 내에서 함께 나타나는 정수 개수의 트리블록으로 정의된다. PCP의 경우, 각각의 픽처를 타일로 분할하는 것이 파티셔닝이다. 타일은 픽처 내부에서 래스터 주사시에 연속적인 순서를 이루고 있다. 비록 슬라이스가 타일 내부에서 래스터 주사시에 연속하는 트리블록을 포함하더라도, 이들 트리블록이 픽처 내부에서 래스터 주사시에 반드시 연속하는 것은 아니다. 슬라이스와 타일은 동일한 트리블록 시퀀스를 포함할 필요가 없다. 타일은 하나 이상의 슬라이스에 포함된 트리블록을 포함할 수도 있다. 마찬가지로, 슬라이스는 몇 개의 타일 내에 포함된 트리블록을 포함할 수도 있다.
H.264/AVC 및 HEVC에서, 인-픽처 예측(in-picture prediction)이 슬라이스 경계를 가로질러서는 불가능할 것이다. 그러므로 슬라이스는 하나의 코딩된 픽처를 독립적으로 디코딩 가능한 조각들로 나누는 방식으로 고려될 수 있고, 따라서 슬라이스는 종종 전송을 위한 기본 단위로 고려된다. 많은 경우, 인코더는 인-픽처 예측의 어떤 유형들이 슬라이스 경계를 가로질러 턴-오프되는지를 비트 스트림에 지시할 수 있고, 디코더 동작은 예를 들면 어떤 예측 소스가 유효한지 판단할 때 이 정보를 고려한다. 예를 들어, 이웃하는 매크로블록 또는 CU가 상이한 슬라이스에 상주한다면, 이웃하는 매크로블록 또는 CU의 샘플은 인트라 예측에 유효하지 않은 것으로 간주될 수도 있다.
신택스 요소는 비트 스트림에 표시된 데이터의 요소로서 정의될 수 있다. 신택스 구조는 특정 순서로 비트 스트림에 함께 제공된 0개 이상의 신택스 요소로서 정의될 수도 있다.
H.264/AVC 또는 HEVC 인코더의 출력과 H.264/AVC 또는 HEVC 디코더의 입력을 위한 기본 단위는 각각 NAL(Network Abstraction Layer) 유닛이다. 패킷 지향성 네트워크를 통한 운반 또는 구조화된 파일로의 저장을 위해, NAL 유닛은 패킷 또는 그와 유사한 구조로 캡슐화될 수도 있다. 바이트 스트림 포맷은 프레이밍 구조(framing structure)를 제공하지 않는 전송 또는 저장 환경을 위해 H.264/AVC 및 HEVC에 명시되어있다. 바이트 스트림 포맷은 각각의 NAL 유닛의 선두에 시작 코드(start code)를 부착함으로써 유닛을 서로 분리한다. NAL 유닛 경계의 잘못된 검출을 방지하기 위해서, 인코더는 바이트 지향성 시작 코드 에뮬레이션 방지 알고리즘(byte-oriented start code emulation prevention algorithm)을 실행할 수 있는데, 이것은 시작 코드가 발생할 NAL 유닛 페이로드에 에뮬레이션 방지 바이트를 추가한다. 패킷 지향성 시스템과 스트림 지향성 시스템 사이에 간결한 게이트 동작이 가능하도록 하기 위해, 바이트 스트림의 이용 여부와 무관하게 시작 코드 에뮬레이션 방지가 항상 수행될 수도 있다.
NAL 유닛은 헤더와 페이로드로 이루어진다. H.264/AVC 및 HEVC에서, NAL 유닛 헤더는 NAL 유닛의 유형을 나타내고, NAL 유닛에 포함된 코딩된 슬라이스가 레퍼런스 픽처의 일부인지 또는 논-레퍼런스 픽처의 일부인지를 나타낸다. H.264/AVC는 2-비트 nal_ref_idc 신택스 요소를 포함하는데, 이것이 0일 때는 NAL 유닛에 포함된 코딩된 슬라이스가 논-레퍼런스 픽처의 일부임을 나타내고, 0을 초과할 때에는 NAL 유닛에 포함된 코딩된 슬라이스가 레퍼런스 픽처의 일부임을 나타낸다. HEVC 초안은 nal_ref_flag로도 알려진 1-비트 nal_ref_idc 신택스 요소를 포함하는데, 이것이 0일 때는 NAL 유닛에 포함된 코딩된 슬라이스가 논-레퍼런스 픽처의 일부임을 나타내고, 1일 때는 NAL 유닛에 포함된 코딩된 슬라이스가 레퍼런스 픽처의 일부임을 나타낸다. SVC 및 MVC NAL 유닛을 위한 헤더는 스케일러빌리티 및 다시점 체계와 관련된 여러 가지 지시들을 추가로 포함할 수 있다. HEVC에서, NAL 유닛 헤더는 temporal_id 신택스 요소를 포함하는데, 이것은 NAL 유닛을 위한 시간적 식별자를 명시한다. 선택된 값 이상인 temporal_id를 갖는 모든 VCL NAL 유닛을 배제하고 모든 다른 VCL NAL 유닛을 포함함으로써 생성된 비트 스트림은 규칙에 순응한다. 결과적으로, TID와 동일한 temporal_id를 갖는 픽처는 TID보다 큰 temporal_id를 갖는 픽처를 인터 예측 레퍼런스로 이용하지 않는다. HEVC 초안에서, 레퍼런스 픽처 리스트 초기화는 오로지 "used for reference"로 표시되면서 현재 픽처의 temporal_id와 동일하거나 그보다 작은 temporal_id를 갖는 레퍼런스 픽처로 제한된다.
NAL 유닛은 VCL(Video Coding Layer) NAL 유닛과 non-VCL NAL 유닛으로 분류될 수 있다. VCL NAL 유닛은 전형적으로 코딩된 슬라이스 NAL 유닛이다. H.264/AVC에서, 코딩된 슬라이스 NAL 유닛은 하나 이상의 코딩된 매크로블록을 나타내는 신택스 요소를 포함하는데, 이 매크로블록의 각각은 비 압축 픽처 내의 샘플 블록에 대응한다. HEVC에서, 코딩된 슬라이스 NAL 유닛은 하나 이상의 CU를 나타내는 신택스 요소를 포함한다. H.264/AVC 및 HEVC에서, 코딩된 슬라이스 NAL 유닛은 IDR(Instantaneous Decoding Refresh) 픽처 내의 코딩된 슬라이스인 것으로 지시될 수도 있고, 또는 non-IDR 픽처 내의 코딩된 슬라이스인 것으로 지시될 수도 있다. HEVC에서, 코딩된 슬라이스 NAL 유닛은 CDR(Clean Decoding Refresh) 픽처(이것은 CRA(Clean Random Access) 픽처로도 불림) 내의 코딩된 슬라이스로 지시될 수도 있다.
non-VCL NAL 유닛은 예를 들면 다음 유형 중 하나일 수 있는데, 즉, 시퀀스 파라미터 집합(sequence parameter set), 픽처 파라미터 집합(picture parameter set), SEI(supplemental enhancement information) NAL 유닛, 액세스 유닛 구분자(access unit delimiter), 시퀀스 NAL 유닛의 엔드(end), 스트림 NAL 유닛의 엔드 또는 필러 데이터(filler data) NAL 유닛일 수 있다. 파라미터 집합은 디코딩된 픽처의 재구성을 위해 요구될 것이며, 반면에 다른 non-VCL NAL 유닛의 대부분은 디코딩된 샘플값의 재구성에 필수적이지 않다.
코딩된 비디오 시퀀스 전체에서 변하지 않고 유지되는 파라미터는 시퀀스 파라미터 집합(SPS)에 포함될 것이다. 디코딩 프로세스에 필수적인 파라미터와 함께, 시퀀스 파라미터 집합은 선택 사양으로서 VUI(video usability information)을 포함할 수 있는데, 이것은 버퍼링, 픽처 출력 타이밍, 렌더링 및 자원 예약(resource reservation)에 중요할 수 있는 파라미터이다. 시퀀스 파라미터 집합을 운반하기 위해 H.264/AVC에 명시된 3개의 NAL 유닛이 존재하는데, 즉, 시퀀스 내에 H.264/AVC VCL NAL 유닛을 위한 모든 데이터를 포함하는 시퀀스 파라미터 집합 NAL 유닛과, 보조의 코딩된 픽처(auxiliary coded picture)를 위한 데이터를 포함하는 시퀀스 파라미터 집합 확장 NAL 유닛과, MVC 및 SVC VCL NAL 유닛을 위한 부분 집합 시퀀스 파라미터 집합이 존재한다. 픽처 파라미터 집합(PPS)는 몇몇 코딩된 픽처 내에 변경되지 않을 가능성이 있는 이런 파라미터를 포함한다.
HEVC 초안에는, APS(Adaptation parameter Set)로 불리는 제3 유형의 파라미터 집합도 존재하는데, 이것은 몇몇 코딩된 슬라이스 내에 변경되지 않을 가능성이 있는 파라미터를 포함한다. HEVC 초안에서, APS 신택스 구조는 CAB AC(context-based adaptive binary arithmetic coding), 적응형 샘플 오프셋, 적응형 루프 필터링 및 디블로킹 필터링(deblocking filtering)과 관련된 파라미터 또는 신택스 요소를 포함한다. HEVC 초안에서, APS는 NAL 유닛이고, 임의의 다른 NAL 유닛으로부터 레퍼런스 또는 예측 없이 코딩된다. aps_id 신택스 요소로 불리는 식별자는 APS NAL 유닛에 포함되며, 특별한 APS를 참조하기 위해서 슬라이스 헤더에서 이용된다.
H.264/AVC 및 HEVC 신택스는 파라미터 집합의 많은 인스턴스를 허용하고, 각각의 인스턴스는 고유한 식별자로 식별된다. H.264/AVC에서, 각각의 슬라이스 헤더는 슬라이스를 포함하는 픽처의 디코딩을 위해 활성인 픽처 파라미터 집합의 식별자를 포함하고, 각각의 픽처 파라미터 집합은 활성 시퀀스 파라미터 집합의 식별자를 포함한다. 결과적으로, 픽처와 시퀀스 파라미터 집합의 전송은 슬라이스의 전송과 정확하게 동기화되지 않아도 된다. 대신에, 활성 시퀀스 및 픽처 파라미터 집합이 참조되기 전에 임의의 순간에 수신되는 것으로 충분하고, 이것은 슬라이스 데이터를 위해 이용되는 프로토콜과 비교해서 보다 신뢰성 있는 전송 메커니즘을 이용해 파라미터 집합의 대역외 전송을 허용한다. 예를 들어, 파라미터 집합은 RTP(Real-time transport Protocol) 세션을 위해 세션 기술(session description)에 파라미터로서 포함될 수 있다. 만약 파라미터 집합이 대역내로 전송된다면, 이들은 오류 강인성(error robustness)을 개선하기 위해 반복될 수 있다.
SEI NAL 유닛은 하나 이상의 SEI 메시지를 포함할 수 있는데, 이것은 출력 픽처의 디코딩을 위해서는 요구되지 않지만 예컨대 픽처 출력 타이밍, 렌더링, 오류 검출, 오류 은닉(error concealment) 및 자원 예약 같은 관련 프로세스에 도움이 된다. 일부 SEI 메시지는 H.264/AVC 및 HEVC에 명시되며, 사용자 데이터 SEI 메시지는 조직 및 계통이 그들 자신의 이용을 위한 SEI 메시지를 명시할 수 있게 한다. H.264/AVC 및 HEVC는 명시된 SEI 메시지를 위한 신택스 및 시맨틱을 포함하지만, 수령 측에서 메시지를 다루는 프로세스는 정의되지 않는다. 결과적으로, 인코더는 SEI 메시지를 생성할 때 H.264/AVC 표준이나 HEVC 표준을 따르는 것이 요구되고, H.264/AVC 표준이나 HEVC 표준에 부합하는 디코더들은 각각 출력 명령 일치를 위해 SEI 메시지를 처리할 필요가 없어진다. H.264/AVC 및 HEVC에서 SEI 메시지의 신택스 및 시맨틱을 포함하는 이유 중 하나는 상이한 시스템 사양들이 보충 정보를 동일하게 해석하고 상호 운용하게 하기 위해서이다. 시스템 사양은 특별한 SEI 메시지를 인코딩 엔드와 디코딩 엔드 모두에서 이용하는 것을 요구하고, 추가적으로 수령 측에서 특별한 SEI 메시지를 다루는 프로세스가 명시될 수 있다.
코딩된 픽처는 픽처의 코딩된 표시이다. H.264/AVC에서 코딩된 픽처는 픽처의 디코딩을 위해 요구되는 VCL NAL 유닛을 포함한다. H.264/AVC에서, 코딩된 픽처는 기본적인 코딩된 픽처(PCP;primary coded picture)이거나 또는 예비의 코딩된 픽처(redundant coded picture)일 수 있다. PCP는 유효 픽처의 디코딩 프로세스에서 이용되는 반면, 예비의 코딩된 픽처는 기본적인 코딩된 픽처가 성공적으로 디코딩될 수 없을 때 디코딩되어야 하는 예비적인 표시이다. HEVC 초안에는 예비의 코딩된 픽처가 명시되지 않는다.
H.264/AVC 및 HEVC에서, 액세스 유닛은 기본적인 코딩된 픽처와, 이 기본적인 코딩된 픽처와 연관되어 있는 NAL 유닛을 포함한다. H.264/AVC에서, 액세스 유닛 내부에서 NAL의 출현 순서는 다음과 같이 제한된다. 선택적 액세스 유닛 구분자 NAL 유닛은 액세스 유닛의 시작을 지시할 수 있다. 그 다음에는 0개 이상의 SEI NAL 유닛이 후속한다. PCP의 코딩된 슬라이스가 그 다음에 나타난다. H.264/AVC에서, PCP의 코딩된 슬라이스 다음에는 0개 이상의 예비의 코딩된 픽처를 위한 코딩된 슬라이스가 뒤따른다. 예비의 코딩된 픽처는 픽처 또는 픽처의 일부의 코딩된 표시이다. 만약에 PCP가 예컨대 전송 손실이나 물리적 저장 매체에서의 변질로 인해 디코더에 의해 수신되지 않는다면, 예비의 코딩된 픽처가 디코딩될 수 있다.
H.264/AVC에서, 액세스 유닛은 보조의 코딩된 픽처도 포함할 수 있는데, 이것은 PCP를 보충하는 픽처이며 예컨대 디스플레이 프로세스에서 이용될 수 있는 픽처이다. 보조의 코딩된 픽처는 예컨대 디코딩된 픽처에서 샘플의 투명성 정도(transparency level)를 명시하는 알파 채널 또는 알파 평면으로서 이용될 수 있다. 알파 채널 또는 평면은 층상 구성 또는 렌더링 시스템에서 이용될 수 있는데, 여기에서 출력 픽처는 서로의 최상부에서 적어도 부분적으로 투명한 픽처들을 중첩함으로써 형성된다. 보조의 코딩된 픽처는 모노크롬 예비 코딩된 픽처와 동일한 신택스 제한 및 시맨틱 제한을 갖는다. H.264/AVC에서, 보조의 코딩된 픽처는 PCP와 동일한 개수의 매크로블록을 포함한다.
코딩된 비디오 시퀀스는 IDR 액세스 유닛으로부터(이것은 반드시 포함됨) 다음의 IDR 액세스 유닛 또는 비트 스트림의 엔드로(이것은 상호 배타적인 것으로, 어느 것이든 먼저 출현하는 것이 포함됨) 디코딩 순서에서 연속적 액세스의 시퀀스인 것으로 정의된다.
픽처의 그롭(group of pictures: GOP) 및 이의 특성은 아래와 같이 정의될 수 있다. 개방 GOP는 픽처의 그룹으로서, 이 그룹 내에서는 개방 GOP의 초기 인트라 픽처로부터 디코딩을 시작할 때 출력 순서에서 초기 인트라 픽처에 선행하는 픽처가 정확하게 디코딩 가능하다. 다시 말해서, 개방 GOP의 픽처는 (인터 예측에서) 이전 GOP에 속한 픽처를 참조한다. H.264/AVC 디코더는 H.264/AVC 비트 스트림에서 복구 지점(recovery point) SEI 메시지로부터 개방 GOP를 시작하는 인트라 픽처를 인지할 수 있다. HEVC 디코더는 개방 GOP를 시작하는 인트라 픽처를 인지할 수 있는데, 그 이유는 특정 NAL 유닛 유형, CDR NAL 유닛 유형이 코딩측을 위해 이용되기 때문이다. 폐쇄 GOP는 픽처의 그룹으로서, 이 그룹 내에서는 폐쇄 GOP의 초기 인트라 픽처로부터 디코딩을 시작할 때 그 안의 모든 픽처가 정확하게 디코딩될 수 있다. 다시 말해서, 폐쇄 GOP 내의 픽처는 이전의 GOP에서 어떠한 픽처도 참조하지 않는다. H.264/AVC 및 HEVC에서, 폐쇄 GOP는 IDR 액세스 유닛으로부터 시작한다. 그 결과, 폐쇄 GOP 구조는 개방 GOP 구조와 비교할 때 잠재적으로 더 큰 오류 내성을 갖지만 압축 효율이 떨어질 가능성도 있다. 개방 GOP 코딩 구조는 레퍼런스 픽처의 선택시 더 큰 유연성으로 인해 압축에서 잠재적으로 더 효율적이다.
H.264/AVC 및 HEVC의 비트 스트림 신택스는 특정 픽처가 임의의 다른 픽처의 인터 예측을 위한 레퍼런스 픽처인지를 지시한다. 임의의 코딩 유형 (I, P, B)의 픽처는 H.264/AVC 및 HEVC에서 레퍼런스 픽처이거나 논-레퍼런스 픽처일 수 있다. NAL 유닛 헤더는 NAL 유닛의 유형을 지시하며, NAL 유닛에 포함된 코딩된 슬라이스가 레퍼런스 픽처의 일부인지 논-레퍼런스 픽처의 일부인지를 지시한다.
H.264/AVC 및 HEVC를 포함한 많은 하이브리드 비디오 코덱은 비디오 정보를 두 개의 딘계에서 인코딩한다. 제1 국면에서, 특정 픽처 영역 또는 "블록" 내의 화소값 또는 샘플값이 예측된다. 이 화소값 또는 샘플값은 예를 들면 움직임 보상 메커니즘에 의해 예측될 수 있는데, 이것은 코딩되는 블록에 근접하게 대응하는 이전에 코딩된 비디오 프레임 중 하나에서 영역을 찾아서 나타내는 것을 수반한다. 추가적으로, 화소값 또는 샘플값은 공간적 영역 관계를 찾아서 나타내는 공간적 메커니즘에 의해 예측될 수 있다.
이전의 코딩된 이미지로부터 이미지 정보를 이용하는 예측 기법은 인터 예측법으로도 불리는데, 이것은 시간적 예측 및 움직임 보상으로도 불릴 수 있다. 동일 이미지 내부의 이미지 정보를 이용하는 예측 기법들은 인트라 예측법으로 명명될 수 있다.
제2 단계는 화소 또는 샘플의 예측된 블록과 화소 또는 샘플의 원래 블록 사이의 오류를 코딩하는 것이다. 이것은 특정 변환을 이용하여 화소값 또는 샘플값에서 차이를 변환함으로써 수행될 수 있다. 이 변환은 예를 들면 DCT(Discrete Cosine Transform) 또는 그 변형안일 수 있다. 그 차이를 변환한 이후, 변환된 차이는 양자화되고, 엔트로피 인코딩된다(entropy encoded).
양자화 프로세스의 충실도(fidelity)를 가변함으로써, 인코더는 화소 또는 샘플 표시(즉, 픽처의 가시적 품질)과 최종 인코딩된 비디오 표시의 사이즈(즉, 파일 사이즈 또는 전송 비트율) 사이의 균형을 제어할 수 있다.
디코더는 (인코더에 의해 생성되며 이미지의 압축된 표시에 포함된 움직임 또는 공간적 정보를 이용하여) 화소 또는 샘플 블록의 예측된 표시를 형성하기 위해서 인코더에 의해 이용된 것과 같은 예측 메커니즘과 예측 오류 디코딩(공간 영역에서 양자화된 예측 오류 신호를 복구하기 위한 예측 오류 코딩의 역동작)을 적용함으로써 출력 비디오를 재구성한다.
화소 또는 샘플 예측 및 오류 디코딩 프로세스를 적용한 이후에, 디코더는 예측 및 예측 오류 신호(화소 또는 샘플값)을 조합하여, 출력 비디오 프레임을 형성한다.
디코더(및 인코더)는 또한 출력 비디오를 디스플레이를 위해 전달하고/하거나 비디오 시퀀스내에 장차의 픽처를 위한 예측 레퍼런스로서 저장하기 전에 출력 비디오의 품질을 개선하기 위해 필터링 프로세스를 적용할 수도 있다.
H.264/AVC 및 HEVC를 포함한 많은 비디오 코덱에서, 움직임 정보는 각각의 움직임 보상된 이미지 블록과 연계된 움직임 벡터에 의해 나타내어진다. 이러한 움직임 벡터의 각각은 (인코더에서) 코딩되거나 (디코더에서) 디코딩될 픽처 내에서의 이미지 블록과, 이전에 코딩되거나 디코딩된 이미지(또는 픽처) 중 하나에서의 예측 소스 블록의 변위를 나타낸다. 많은 다른 비디오 압축 표준처럼 H.264/AVC 및 HEVC는 픽처를 직사각형 메시(mesh)로 나누고, 그 각각을 위해 레퍼런스 픽처 중 하나 내에서 유사 블록이 인터 예측을 위해 지시된다. 예측 블록의 위치는 코딩되는 블록에 대해 예측 블록의 위치를 나타내는 움직임 벡터로서 코딩된다.
H.264/AVC 및 HEVC는 픽처 순서 카운트(POC;picture order count)의 개념을 포함한다. POC의 값은 각각의 픽처에 대해 유도되고, 출력 순서에서 픽처 위치를 증가시키면 감소되지 않는다. 그러므로 POC는 픽처의 출력 순서를 나타낸다. POC는 예를 들면, 양방향 예측 슬라이스(bi-predictive slices)의 시간적 직접 모드에서 움직임 벡터의 암시적 스케일링을 위해, 가중화된 예측에서 암시적으로 유도된 가중치를 위해, 그리고 레퍼런스 픽처 리스트 초기화를 위해 디코딩 프로세스에서 이용될 수 있을 것이다. 더 나아가, POC는 출력 순서 부합의 검증에 이용될 수도 있다. H264/AVC에서, POC는 이전의 IDR 픽처에 대해, 또는 모든 픽처를 "unused for reference"로 표시하는 메모리 관리 제어 동작을 포함하는 픽처에 대해 명시된다.
인터 예측 프로세스는 다음의 요인들 중 하나 이상을 이용하여 특징지어질 수 있다.
움직임 벡터 표시의 정확도
예를 들면, 움직임 벡터는 1/4 화소 정확도(quarter-pixel accuracy)를 가질 수 있고, 부화소 위치들(fractional-pixel positions)에서 샘플값은 FIR(finite impulse response) 필터를 이용하여 획득될 수 있을 것이다.
인터 예측을 위한 블록 파티셔닝
H.264/AVC 및 HEVC를 포함한 많은 코딩 표준들은 디코더가 인코더에서 행해진 움직임 보상 예측을 재생할 수 있도록 비트 스트림에 선택된 사이즈와 형상을 나타내면서 인코더에서 움직임 보상 예측을 위해 움직임 벡터가 적용되는 블록의 사이즈와 형상의 선택을 허용한다.
인터 예측을 위한 레퍼런스 픽처의 개수
인터 예측의 소스는 이전에 디코딩된 픽처이다. H.264/AVC 및 HEVC를 포함한 많은 코딩 표준들은 블록 기반으로 인터 예측을 위한 다중 레퍼런스 픽처의 저장과, 이용된 레퍼런스 픽처의 선택을 가능하게 한다. 예를 들어, 레퍼런스 픽처는 H.264/AVC에서는 매크로블록 또는 매크로블록 파티션 기반으로 선택될 수 있고, HEVC에서는 PU 또는 CU 기반으로 선택될 수 있다. H.264/AVC 및 HEVC같은 많은 코딩 표준들은 디코더로 하여금 하나 이상의 레퍼런스 픽처 리스트를 생성하게 하는 비트 스트림 내에 신택스 구조를 포함한다. 레퍼런스 픽처는 특정 블록을 위한 인터 예측을 위해 이용된다. 레퍼런스 픽처 인덱스는 일부 코딩 모드에서 인코더에 의해 코딩되거나, 또는 예를 들어 일부 다른 코딩 모드에서 이웃하는 블록을 이용하여 (인코더 및 디코더에 의해) 유도될 것이다.
움직임 벡터 예측
움직임 벡터를 비트 스트림에 효율적으로 표시하기 위해서, 움직임 벡터는 블록 특정 예측된 움직임 벡터에 대해 차분적으로 코딩될 것이다. 많은 비디오 코덱에서, 예측 움직임 벡터는 사전 정의된 방식으로 생성되는데, 예를 들어 인접 블록의 인코딩 또는 디코딩된 움직임 벡터의 중앙값(median)을 계산함으로써 생성된다. 움직임 벡터 예측을 생성하는 다른 방법은 AMVP(advanced motion vector prediction)이라고 불리는 것으로, 이것은 시간적 레퍼런스 픽처에서 인접 블록 및/또는 공동 배치된 블록으로부터 후보 예측 리스트를 발생하고, 선정된 후보를 움직임 벡터 예측기(motion vector predictor)로서 신호한다. 움직임 벡터값을 예측하는 것에 더하여, 이전에 코딩된/디코딩된 픽처의 레퍼런스 인덱스가 예측될 수 있다. 레퍼런스 인덱스는 예를 들면 시간적 레퍼런스 픽처에서 인접 블록 및/또는 공동 배치된 블록으로부터 예측될 것이다. 움직임 벡터의 차분적 코딩은 슬라이스 경계를 가로질러서는 사용될 수 없다.
다중 가설 움직임 보상 예측( multi - hypothesis motion - compensated prediction )
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에 비례하는 반면, 명시적 가중화된 예측에서는 예측 가중치가 명시적으로 지시된다.
많은 비디오 코덱에서, 움직임 보상 이후의 예측 잔여(prediction residual)는 먼저 (DCT같은) 변환 커널(transform kernel)로 변환된 다음에 코딩된다. 그 이유는 종종 잔여들 사이에 여전히 상관 관계가 존재하고, 많은 경우에 변환이 이러한 상관 관계를 줄이도록 도울 수 있어서 더 효율적인 코딩을 제공할 수 있기 때문이다.
HEVC 초안에서, 각각의 PU는 어떤 유형의 예측이 해당 PU 내부의 화소에 적용될 것인지를 정의하는 연관된 예측 정보를 갖는다(예를 들면, 인터 예측된 PU를 위한 움직임 벡터 정보와 인트라 예측된 PU를 위한 인트라 예측 방향성 정보). 마찬가지로, 각각의 TU는 TU 내부의 샘플을 위한 예측 오류 디코딩 프로세스를 기술하는 정보와 연관된다(예를 들면, DCT 계수 정보를 포함함). 예측 오류 코딩이 각각의 CU에 적용되는지 여부가 CU 레벨에서 신호된다. CU와 연관된 예측 오류 잔여가 존재하지 않는 경우, CU를 위한 TU는 존재하지 않는 것으로 간주될 수 있다.
일부 코딩 포맷과 코덱에서, 소위 말하는 단기 레퍼런스 픽처(short-term reference picture)와 장기 레퍼런스 픽처(long-term reference picture)는 차이가 있다. 이러한 차이는 시간적 직접 모드에서의 움직임 벡터 스케일링이나 암시적 가중화된 예측같은 일부 디코딩 프로세스에 영향을 미칠 수 있다. 만약 시간적 직접 모드를 위해 이용되는 레퍼런스 픽처의 양쪽 모두는 단기 레퍼런스 픽처이고, 예측에 이용되는 움직임 벡터는 현재 픽처와 각각의 레퍼런스 픽처 사이의 POC에 따라서 스케일링될 것이다. 그러나 만약에 시간적 직접 모드를 위한 적어도 하나의 레퍼런스 픽처가 장기 레퍼런스 픽처라면, 움직임 벡터의 디폴트 스케일링이 이용될 수 있는데, 예를 들면 움직임을 절반으로 스케일링하는 것이 이용될 수 있다. 마찬가지로, 만약에 단기 레퍼런스 픽처가 암시적 가중화된 예측에 이용된다면, 예측 가중치는 현재 픽처의 POC와 레퍼런스 픽처의 POC 사이의 POC 차이에 따라서 스케일링될 수 있다. 그러나 만약에 장기 레퍼런스 픽처가 암시적 가중화된 예측에 이용된다면, 디폴트 예측 가중치가 이용될 수 있는데, 예를 들면 양방향 예측된 블록에 대해 암시적 가중화된 예측에서는 0.5가 이용될 수 있을 것이다.
H.264/AVC처럼 일부 비디오 코딩 포맷은 frame_num 신택스 요소를 포함하는데, 이것은 다중 레퍼런스 픽처 관련된 다양한 디코딩 프로세스에 이용된다. H.264/AVC에서, IDR 픽처를 위한 frame_num의 값은 0이다. non-IDR 픽처를 위한 frame_num의 값은 1만큼 증가된 디코딩 순서에서 이전 레퍼런스 픽처의 frame_num와 동일하다(모듈로 산술에서, 예를 들어 frame_num의 최대값 이후에 0을 넘는 frame_num wrap의 값).
H.264/AVC는 디코더에서 메모리 소비를 제어하기 위해서 디코딩된 레퍼런스 픽처 표지(decoded reference picture marking)를 위한 프로세스를 명시한다. 인터 예측에 이용되는 레퍼런스 픽처의 최대 개수를 M으로 부르면, 이것은 시퀀스 파라미터 집합에서 결정된다. 레퍼런스 픽처가 디코드될 때, 이것은 "used for reference"로 표지한다. 만약에 "레퍼런스 픽처의 디코딩이 "used for reference"로 표지된 M개 이상의 픽처를 초래했다면, 적어도 하나의 픽처가 "unused for reference"로 표지된다. 디코딩된 레퍼런스 픽처 표지를 위한 두 가지 유형의 동작, 즉, 적응형 메모리 제어(adaptive memory control) 동작 및 슬라이딩 윈도우(sliding window) 동작이 존재한다. 디코딩된 레퍼런스 픽처 표지를 위한 동작 모드는 픽처 기반으로 선택된다. 적응형 메모리 제어는 어떤 픽처가 "unused for reference"로 표지되었는지 명시적 신호하는 것을 가능하게 하고, 단기 레퍼런스 픽처에 대해 장기 인덱스들을 할당할 수도 있다. 적응형 메모리 제어는 비트 스트림 내에 MMCO(memory management control operation) 파라미터가 있어야만 한다. MMCO 파라미터는 디코딩된 레퍼런스 픽처 표지 신택스 구조에 포함될 수 있다. 만약에 슬라이딩 윈도우 동작 모드가 사용중이고 "used for reference"로 표지된 M개의 픽처가 존재한다면, "used for reference"로 표지된 단기 레퍼런스 픽처 가운데 첫 번째 디코딩된 픽처였던 단기 레퍼런스 픽처가 "unused for reference"로 표지된다. 다시 말해서, 슬라이딩 윈도우 동작 모드는 단기 레퍼런스 픽처들 사이에 FIFO(first-in-first-out) 버퍼링 동작을 초래한다.
H.264/AVC에서 메모리 관리 제어 동작 중 하나는 현재의 픽처를 제외한 모든 레퍼펀스 픽처가 "unused for reference"로 표지되게 한다. IDR(instantaneous decoding refresh) 픽처는 오로지 인트라딩된 슬라이스만을 포함하고, 레퍼런스 픽처의 유사 "리셋(reset)"을 초래한다.
HEVC 초안에서, 레퍼런스 픽처 표지 신택스 구조와 관련 디코딩 프로세스는 RPS(reference picture set) 신택스 구조로 대체되고, 디코딩 프로세스는 유사한 목적을 위해 대신 사용된다. 픽처를 위해 유효 또는 활성인 레퍼런스 픽처 집합은 픽처를 위해 레퍼런스로 이용된 모든 레퍼런스 픽처와 임의의 후속 픽처를 위해 "used for reference"로 표지된 채로 유지된 모든 레퍼런스 픽처를 포함한다. 레퍼런스 픽처 집합에는 6개의 부분 집합이 존재하는데, 이것을 RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr 및 RefPicSetLtFoll이라고 한다. 6개의 부분 집합의 표기법은 다음과 같다. "Curr"은 현재 픽처의 레퍼런스 픽처 리스트에 포함된 것으로 현재 픽처를 위한 인터 예측 레퍼런스로서 이용될 수 있는 레퍼런스 픽처를 지칭한다. "Foll"은 현재 픽처의 레퍼런스 픽처 리스트에 포함되지는 않지만 디코딩 순서에서 후속 픽처에서 레퍼런스 픽처로 이용될 수도 있는 레퍼런스 픽처를 지칭한다. "St"는 단기 레퍼런스 픽처를 지칭하는데, 이것은 개괄적으로 POC 값의 특정 개수의 최하위 비트(LSB)를 통해 식별될 수 있다. "Lt"는 장기 레퍼런스 픽처를 지칭하는데, 이것은 구체적으로 식별되며, 일반적으로 전술한 특정 개수의 LSB에 의해 표시될 수 있는 것보다 현재 픽처에 대해 더 큰 차이의 POC 값을 갖는다. "0"은 현재 픽처의 POC 값보다 더 작은 값을 갖는 레퍼런스 픽처를 지칭한다. "1"은 현재 픽처의 POV 값보다 더 큰 POC 값을 갖는 레퍼런스 픽처를 지칭한다. RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0 및 RefPicSetStFoll1은 종합하여 레퍼런스 픽처 집합의 단기 부분 집합으로 지칭된다. RefPicSetLtCurr 및 RefPicSetLtFoll은 종합하여 레퍼런스 픽처 집합의 장기 부분 집합으로서 지칭된다.
HEVC에서, 레퍼런스 픽처 집합은 픽처 파라미터 집합에 명시될 수 있으며, 레퍼런스 픽처 집합에 대한 인덱스를 통해 슬라이스 헤더에서 이용될 수 있다. 레퍼런스 픽처 집합은 슬라이스 헤더에 명시될 수도 있다. 레퍼런스 픽처 집합의 장기 부분 집합은 일반적으로 슬라이스 헤더에만 명시되는 반면, 같은 레퍼런스 픽처의 단기 부분 집합은 픽처 파라미터 또는 슬라이스 헤더에 명시될 수 있다. 레퍼런스 픽처 집합은 독립적으로 코딩될 수도 있고, 또는 다른 레퍼런스 픽처 집합(인터-RPS 예측으로 알려짐)으로부터 예측될 수도 있다. 레퍼런스 픽처 집합이 독립적으로 코딩될 때, 신택스 구조는 상이한 유형의 레퍼런스 픽처, 즉, 현재 픽처보다 더 낮은 POC 값을 갖는 단기 레퍼런스 픽처, 현재 픽처보다 더 높은 POC 값을 갖는 단기 레퍼런스 픽처 및 장기 레퍼런스 픽처에 대해 반복하는 최대 3개의 루프를 포함한다. 각각의 루프 엔트리는 "used for reference"로 표지될 픽처를 명시한다. 일반적으로, 픽처는 차분적 POC 값으로 명시된다. 인터-RPS 예측은 현재 픽처의 레퍼런스 픽처 집합이 이전에 디코딩된 픽처의 레퍼런스 픽처 집합으로부터 예측될 수 있다는 사실을 활용한다. 이것은 현재 픽처의 모든 레퍼런스 픽처가 이전 픽처의 레퍼런스 픽처이거나 또는 이전에 디코딩된 픽처 자신이기 때문이다. 이들 픽처 중 어느 것이 레퍼런스 픽처이어야 하고 현재 픽처의 예측을 위해 이용되어야 하는지를 나타내는 것만은 필수이다. 두 가지 유형의 레퍼런스 픽처 집합 코딩, 즉, 플래그(used_by_curr_pic_X_flag)가 각각의 레퍼런스 픽처에 대해 추가적으로 전송되어, 레퍼런스 픽처가 현재 픽처에 의한 레퍼런스를 위해 이용되는지(*Curr 리스트에 포함됨) 혹은 이용되지 않는지(*Foll 리스트에 포함됨)를 나타낸다. 현재 슬라이스에 의해 이용되는 레퍼런스 픽처 집합에 포함되는 픽처는 "used for reference"로 표지되고, 현재 슬라이스에 의해 이용되는 레퍼런스 픽처 집합에 들어 있지 않은 픽처는 "unused for reference"로 표지된다. 만약 현재 피처가 IDR 픽처라면, RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr 및 RefPicSetLtFoll은 모두 빈 것으로 설정된다.
DPB(Decoded Picture Buffer)는 인코더 및/또는 디코더에서 이용될 수 있다. 디코딩된 픽처를 버퍼하는 두 가지 이유가 존재하는데, 즉, 인터 예측에서의 레퍼런스를 위한 것과, 디코딩된 픽처를 출력 순서로 재배열(reodering)하기 위해서이다. H.264/AVC 및 HEVC가 레퍼런스 픽처 표지와 출력 재배열 모두에 대해 큰 유연성을 제공하므로, 레퍼런스 픽처 버퍼링을 위한 버퍼와 출력 픽처 버퍼링을 위한 버퍼를 분리하는 것은 메모리 자원을 낭비하는 것일 수도 있다. 그러므로 DPB는 레퍼런스 픽처와 출력 재배열을 위해 통합형의 디코딩된 픽처 버퍼링 프로세스를 포함할 수 있다. 디코딩된 픽처가 더 이상 레퍼런스로 이용되지 않고 출력에도 필요하지 않을 때, 이 디코딩된 픽처는 DPB로부터 제거될 수도 있다.
H.264/AVC 및 HEVC의 많은 코딩 모드에서, 인터 예측을 위한 레퍼런스 픽처는 레퍼런스 픽처 리스트에 인덱스로 지시된다. 인덱스는 CABAC 또는 가변 길이 코딩으로 코딩될 수 있다. 일반적으로, 인덱스가 작을수록 그에 대응하는 신택스 요소도 짧아진다. H.264/AVC 및 HEVC에서, 두 개의 레퍼런스 픽처 리스트(레퍼런스 픽처 0 및 레퍼런스 픽처 1)가 각각의 양 방향 예측 (B) 슬라이스를 위해 발생되고, 하나의 레퍼런스 픽처 리스트(레퍼런스 픽처 0)는 각각의 인터-코딩된 (P) 슬라이스를 위해 형성된다. 또한, HEVC 표준 초안에서 B 슬라이스의 경우, 최종 레퍼런스 픽처 리스트(List 0 및 List 1)가 구성된 이후에 조합형 리스트(List C)가 구성된다. 조합형 리스트는 B 슬라이스 내부에서 단방향 예측에 이용될 수 있다.
레퍼런스 픽처 리스트 0 및 레퍼런스 픽처 리스트 1과 같은 레퍼런스 픽처 리스트는 다음과 같은 두 단계로 구성될 수 있는데, 즉, 첫 번째로, 초기 레퍼런스 픽처 리스트가 발생된다. 초기 레퍼런스 픽처 리스트는 예를 들면 frame_num, POC 또는 temporal_id를 기반으로 발생될 수도 있고 또는 GOP 구조와 같은 예측 계층에 대한 정보에 기반하여 발생될 수도 있으며, 또는 이들의 임의의 조합에 기반하여 발생될 수도 있다. 두 번째로, 초기 레퍼런스 픽처 리스트는 레퍼런스 픽처 리스트 수정 신택스 구조로도 불리는 RPLR(reference picture list reordering) 커맨드에 의해 재배열될 수 있는데, 이것은 슬라이스 헤더에 포함될 수 있다. RPLR 커맨드는 각각의 레퍼런스 픽처 리스트의 초반부(beginning)에 배열된 픽처를 나타낸다. 이 두 번째 단계는 레퍼런스 픽처 리스트 수정 프로세스로 부를 수 있으며, RPLR 커맨드는 레퍼런스 픽처 리스트 수정 신택스 구조에 포함될 수 있다. 만약에 레퍼런스 픽처 집합이 이용된다면, 레퍼런스 픽처 리스트 0은 먼저 RefPicSetStCurr0을 포함하고 그 다음에는 RefPicSetStCurr1을, 그 다음엔 RefPicSetStCurr을 포함하도록 초기화될 수 있다. 레퍼런스 픽처 리스트 1은 먼저 RefPicSetStCurr1을 포함하고 그 다음에는 RefPicSetStCurr0을 포함하도록 초기화될 수 있다. 초기 레퍼런스 픽처 리스트는 레퍼런스 픽처 리스크 수정 신택스 구조를 통해 수정될 수 있는데, 여기서 초기 레퍼런스 픽처 리스트 내의 픽처는 리스트에 대한 엔트리 인덱스를 통해 식별될 수 있다.
다시점 비디오는 시점간 리던던시(inter-view redundancy)를 활용할 가능성을 인코더 및 디코더에게 제공하므로, 디코딩된 시점간 프레임도 마찬가지로 레퍼런스 픽처 리스트에 포함될 수 있다.
HEVC에서 조합형 리스트는 다음과 같이 구성될 수 있다. 만약에 조합형 리스트를 위한 수정 플래그가 0이면, 조합형 리스트는 암시적 메커니즘에 의해 구성되고, 수정 플래그가 0이 아니라면, 조합형 리스트는 비트 스트림에 포함된 레퍼런스 픽처 조합 커맨드에 의해 구성된다. 암시적 메커니즘에서, List C 내의 레퍼런스 픽처들은 List 0의 제1 엔트리로부터 시작해서 그 다음에 List 1의 제1 엔트리로 진행하는 인터리브 방식으로 List 0 및 List 1로부터 레퍼런스 픽처에 사상된다. List C 에서 이미 사상된 임의의 레퍼런스 픽처는 다시 사상되지 않는다. 명시적 메커니즘에서는, List C 내의 엔트리의 개수가 신호되고, 그 다음에는 List 0 또는 List 1로부터 List C 의 각각의 엔트리로 사상하는 것이 뒤따른다. 또한, List 0 및 List 1이 동일할 때, List 1로부터 레퍼런스 픽처가 사상되지 않고 List C는 List 0과 등가라는 것을 나타내기 위해서 인코더는 ref_pic_list_combination_flag를 0으로 설정하는 선택 사항을 가진다.
예컨대 HEVC 코덱 초안처럼 많은 고효율 비디오 코덱은 병합/병합 모드/프로세스/메커니즘(merging/merge mode/process/mechanism)으로 불리는 추가적인 움직임 정보 코딩/디코딩 메커니즘을 활용하는데, 여기서 블록/PU의 모든 움직임 정보는 수정/정정 없이 예측 및 이용된다. 전술한 PU를 위한 움직임 정보는 1) PU가 오로지 레퍼런스 픽처 리스트 0을 이용하여 단방향 예측되는지 또는 PU가 오로지 레퍼런스 픽처 리스트 1을 이용하여 단방향 예측되는지 또는 PU가 레퍼런스 픽처 리스트 0 및 리스트 1 모두를 이용하여 양방향 예측되는지에 대한 정보; 2) 레퍼런스 픽처 리스트 0에 대응하는 움직임 벡터 값; 3) 레퍼런스 픽처 리스트 0 내의 레퍼런스 픽처 인덱스; 4) 레퍼런스 픽처 리스트 1에 대응하는 움직임 벡터 값; 5) 레퍼런스 픽처 리스트 1 내의 레퍼런스 픽처 인덱스를 포함할 수 있다. 마찬가지로, 움직임 정보를 예측하는 것은 시간적 레퍼런스 픽처에서 인접 블록 및/또는 공동 배치된 블록의 움직임 정보를 이용하여 수행된다. 병합 리스트(merging list)으로도 불리는 리스트가 유효 인접/공동 배치 블록과 연관된 움직임 예측 후보를 포함함으로써 구성될 수 있고, 리스트 내에서 선택된 움직임 예측 후보의 인덱스는 신호되고, 선택된 후보의 움직임 정보는 현재 PU의 움직임 정보로 복사된다. 병합 메커니즘이 전체 CU에 대해 활용되고 CU를 위한 예측 신호가 재구성 신호로서 이용될 때, 즉, 예측 잔여가 처리되지 않을 때, CU의 이런 유형의 코딩/디코딩은 전형적으로 생략 모드(skip mode) 또는 병합 기반 생략 모드(merge based skip mode)로 불린다. 생략 모드와 함께, 병합 메커니즘은 개별 PU(생략 모드에서 반드시 모든 CU를 대상으로 할 필요는 없다)에 대해 활용될 수도 있고, 이 경우에는 예측 잔여가 예측 품질을 개선하는데 활용될 수도 있다. 이런 유형의 예측 모드는 전형적으로 병합간 모드(inter-merge mode)로 불린다.
병합 리스트는 예를 들면 슬라이스 헤더 신택스에 포함된 레퍼런스 픽처 리스트 조합 신택스 구조를 이용하여 레퍼런스 픽처 리스트 0 및/또는 레퍼런스 픽처 리스트 1에 기반하여 발생될 수 있다. 인코더에 의해 비트 스트림으로 생성되고 디코더에 의해 비트 스트림으로부터 디코딩되는 레퍼런스 픽처 리스트 조합 신택스 구조가 존재할 수 있고, 이것은 병합 리스트의 콘텐츠를 나타낸다. 신택스 구조는 레퍼런스 픽처 리스트 0과 레퍼런스 픽처 리스트 1이 단방향 예측되는 예측 유닛을 위해 이용되는 추가적 레퍼런스 픽처 리스트 조합이 되도록 조합됨을 나타낸다. 신택스 구조는 플래그를 포함하는데, 이 플래그가 특정값일 때, 이것은 레퍼런스 픽처 리스트 0과 레퍼런스 픽처 리스트 1이 동일하고 결과적으로 레퍼런스 픽처 리스트 0이 레퍼런스 픽처 리스트 조합으로 이용됨을 나타낸다. 신택스 구조는 엔트리 리스트와, 명시된 리스트에 대한 레퍼런스 인덱스를 포함할 수 있는데, 엔트리 리스트의 각각은 레퍼런스 픽처 리스트(리스트 0 또는 리스트 1)를 명시하고, 엔트리는 병합 리스트에 포함될 레퍼런스 픽처를 명시한다.
(디코딩된) 레퍼런스 픽처 표지를 위한 신택스 구조가 비디오 코딩 시스템에 존재할 수도 있다. 예를 들어, 픽처의 디코딩이 완료될 때, 디코딩된 레퍼런스 픽처 표지 신택스 구조가 만약에 존재한다면 이 신택스 구조는 픽처를 "unused for reference" 또는 "used for long-term reference"로 적응적으로 표지하는데 이용될 수 있다. 만약에 디코딩된 레퍼런스 픽처 표지 신택스 구조가 존재하지 않고 "used for reference"로 표지된 픽처의 개수가 더 이상 증가할 수 없다면, 슬라이딩 윈도우 레퍼런스 픽처 표지가 이용될 수도 있는데, 이것은 기본적으로 초기에 디코딩된 레퍼런스 픽처를 레퍼런스를 위해 이용되지 않은 것으로서 표지한다.
스케일러블 비디오 코딩에서, 비디오 신호는 기본 계층과 하나 이상의 향상 계층으로 인코드될 수 있다. 향상 계층은 시간적 해상도(즉, 프레임율), 공간적 해상도 또는 다른 계층이나 다른 계층의 일부에 의해 표시되는 비디오 콘텐츠의 품질을 향상시킬 수 있다. 각각의 계층은 모든 종속적인 계층과 함께 특정 공간적 해상도, 시간적 해상도 및 품질 수준에서의 하나의 비디오 신호 표시이다. 본원에서, 우리는 스케일러블 계층과 그 모든 종속적인 계층을 함께 "스케일러블 계층 표시"라고 부른다. 스케일러블 계층 표시에 대응하는 스케일러블 비트 스트림의 위치는 추출 및 디코딩되어, 특정 충실도에서 원래 신호의 표시를 발생할 수 있다.
SVC는 계층간 예측 메커니즘을 이용하는데, 여기서 특정 정보는 현재 재구성된 계층이나 다음의 하위 계층이 아닌 계층으로부터 예측될 수 있다. 계층간 예측된 정보는 인트라 텍스처, 움직임 및 잔여 데이터를 포함한다. 계층간 움직임 예측은 블록 코딩 코드, 헤더 정보 등의 예측을 포함하는데, 하위 계층으로부터의 움직임이 상위 계층의 예측에 이용될 것이다. 인트라 코딩의 경우, 하위 계층의 주변 매크로블록으로부터의 예측이나 공동 배치된 매크로블록으로부터의 예측이 가능하다. 이러한 예측 기법은 초기 코딩된 액세스 유닛으로부터의 정보를 활용하지 않으므로 인트라 예측 기법으로 불린다. 더 나아가, 하위 계층으로부터의 잔여 데이터도 현재 계층의 예측에 활용될 수 있다.
처음에 지적했듯이, MVC는 H.264/AVC의 확장판이다. H.264/AVC의 정의, 개념, 신택스 구조, 시맨틱 및 디코딩 프로세스 중 많은 부분이 MVC에도 마찬가지로 적용되거나 특정한 일반화나 제약 조건과 함께 적용된다. MVC의 일부 정의, 개념, 신택스 구조, 시맨틱 및 디코딩 프로세스는 다음에 설명된다.
MVC에서 액세스 유닛은 디코딩 순서에 연속되면서 하나 이상의 시점 성분으로 이루어진 정확히 하나의 PCP를 포함하는 NAL의 집합인 것으로 정의된다. PCP와 함께, 액세스 유닛은 하나 이상의 잔여 코딩된 픽처 또는 하나의 보조 코딩된 픽처를 포함할 수도 있고 또는 코딩된 픽처의 슬라이스나 슬라이스 데이터 파티션을 포함하지 않는 다른 NAL 유닛을 포함할 수도 있다. 액세스 유닛의 디코딩은 하나의 디코딩된 픽처를 초래하고, 이 하나의 디코딩된 픽처는 하나 이상의 디코딩된 시점 성분을 포함하고, 디코딩 오류가 존재한다면 비트 스트림 오류 또는 디코딩이 일어나지 않게 하는 다른 오류도 포함할 수 있다. 다시 말해서, MVC에서 액세스 유닛은 하나의 출력 시간 인스턴스를 위한 시점의 시점 성분을 포함한다.
MVC에서 시점 성분은 단일 액세스 유닛에서 시점의 코딩된 표시로 불린다.
시점간 예측이 MVC에서 이용될 수도 있고, 동일 액세스 유닛의 상이한 시점 성분들의 디코딩된 샘플로부터의 시점 성분의 예측을 참조한다. MVC에서, 시점간 예측은 인터 예측과 유사하게 실현된다. 예를 들어, 시점간 레퍼런스 픽처는 인터 예측을 위한 레퍼런스 픽처와 동일한 레퍼런스 픽처 리스트에 위치되며, 레퍼런스 인덱스와 함께 움직임 벡터는 시점 사이 및 레퍼런스 픽처 사이처럼 코딩 또는 유추된다.
앵커 픽처(anchor picture)는 코딩된 픽처로서, 모든 슬라이스가 동일한 액세스 유닛 내부의 슬라이스만을 참조하는 것이며, 즉, 시점간 예측이 이용되지만 인터 예측은 이용되지 않으며, 출력 순서에서 모든 차후의 코딩된 픽처는 디코딩 순서에서 코딩된 픽처에 앞서는 픽처로부터 인터 예측을 이용하지 않는다. 시점간 예측은 기본 시점이 아닌 시점(즉, 비 기본 시점)의 일부인 IDR 시점 성분을 위해 이용될 수 있다. MVC에서 기본 시점은 코딩된 비디오 시퀀스에서 시점 순서 인덱스의 최소값을 갖는 시점이다. 기본 시점은 다른 시점과는 독립적으로 디코딩될 수 있고, 시점간 예측을 이용하지 않는다. 기본 시점은 예컨대 H.264/AVC의 Baseline Profile 또는 High Profile처럼 오로지 단일 시점 프로파일만을 지원하는 H.264/AVC 디코더에 의해 디코딩될 수 있다.
MVC 표준에서, MVC 디코딩 프로세스의 서브 프로세스 중 많은 부분이 H.264/AVC 표준의 서브 프로세스 설명서에서 "픽처", "프레임" 및 "필드"라는 용어를 "시점 성분", "프레임 성분" 및 "필드 성분"이라는 용어로 대체함으로써 H.264/AVC 표준의 개별적인 서브 프로세스를 이용한다. 마찬가지로, 다음에서 "픽처", "프레임" 및 "필드"라는 용어는 종종 "시점 성분", "프레임 성분" 및 "필드 성분"을 각각 의미하는 것으로 이용된다.
스케일러블 다시점 코딩에서, 동일한 비트 스트림은 다시점의 코딩된 시점 성분을 포함할 수 있고, 적어도 일부 코딩된 시점 성분은 품질 및/또는 공간적 스케일러빌리티를 이용하여 코딩된다
많은 비디오 인코더는 율-왜곡 최적 코딩 모드(rate-distortion optimal coding mode), 예를 들면 원하는 매크로블록 모드 및 연관 움직임 벡터를 찾기 위해 라그랑주 비용 함수(Lagrangian cost function)를 활용한다. 이런 유형의 비용 함수는 손실이 있는 코딩법으로 인한 정확하거나 추정된 이미지 왜곡과, 이미지 영역에서 화소/샘플을 나타내는데 필요한 정확하거나 추정된 정보량을 함께 결부시키기 위해서 가중치 또는 λ(lambda)를 이용한다. 라그랑주 비용 함수는 다음의 수학식으로 표시될 수 있다.
Figure 112015007017757-pct00001
여기서 C는 최소화될 라그랑주 비용이고, D는 현재 고려되는 모드와 움직임 벡터에서의 이미지 왜곡(원래 이미지 블록과 코딩된 이미지 블록에서 화소/샘플값들 사이의 평균제곱오차)이며, λ는 라그랑주 계수이며, R은 디코더에서 이미지 블록을 재구성하기 위해 요구되는 데이터를 나타내는데 필요한 비트 개수이다(후보 움직임 벡터를 나타내는 데이터량을 포함해서).
진보된 움직임 벡터 예측(AMVP)은 예를 들어 다음과 같이 동작하지만, 예를 들면 다른 후보 위치 집합과 후보 위치 집합을 갖는 후보 위치를 갖는 AMVP의 다른 유사한 실현도 가능하다. 두 개의 공간 움직임 벡터 예측기(MVP)가 유도되고, 시간적 움직임 벡터 예측기(TMVP)도 유도될 수 있다. 이들은 도 8에 도시된 위치들 중에서 선택될 수 있는데, 현재 예측 블록(B0, B1, B2) 위에 3개의 공간 움직임 벡터 예측기 후보 위치가 있고 나머지 (A0, A1)상에는 2개의 후보 위치가 있다. 각각의 후보 위치 집합, (B0, B1, B2) 또는 (A0, A1)의 사전 정의된 순서로 입수 가능한(예를 들면, 동일 슬라이스 내에 상주하거나 인터 코딩되는 등) 제1 움직임 벡터 예측기는 움직임 벡터 성분에서 예측 방향(위 또는 좌측)을 나타내기 위해 선택될 수 있다. 시간적 움직임 벡터 예측기를 위한 레퍼런스 인덱스는 슬라이스 헤더에서 인코더에 의해 지시될 수 있다(예를 들면, collocated_ref_idx 신택스 요소). 공동 배치된 픽처로부터 획득되는 움직임 벡터는 시간적 움직임 벡터 예측기의 레퍼런스 픽처, 공동 배치된 픽처 및 현재 픽처의 픽처 순서 카운트 차이들에 비례하여 스케일링될 것이다. 더 나아가, 동일 후보를 제거하기 위해 후보들 사이에 리던던시 검사가 수행될 것이고, 이것은 후보 리스트에서 제로 움직임 벡터의 포함으로 이어질 수 있다. 움직임 벡터 예측기는 예를 들어 공간적 움직임 벡터 예측기의 방향(위 또는 좌측) 또는 시간적 움직임 벡터 예측기 후보의 선택을 나타냄으로써 비트 스트림에 표시될 수 있다.
움직임 벡터값을 예측하는 것과 함께, 이전에 코딩/디코딩된 픽처의 레퍼런스 인덱스가 예측될 수 있다. 레퍼런스 인덱스는 시간적 레퍼런스 픽처에서 인접 블록 및/또는 공동 배치된 블록으로부터 예측될 수 있다.
일부 상황에서, 움직임 코딩 모드가 병합 모드일 때, 병합 리스트에서 시간적 움직임 벡터 예측을 위한 레퍼런스 인덱스는 HEVC에서 0으로 설정된다. 그러나 예컨대 HEVC의 구상중인 스케일러블 또는 다시점 확장안에서 계층간 또는 시점간 레퍼런스 픽처가 0의 레퍼런스 인덱스를 가질 때처럼 어떤 경우에는 레퍼런스 인덱스 0에서의 픽처가 무효의 시간적 움직임 벡터 예측기를 초래할 수도 있다. 이 경우, 시간적 움직임 벡터 예측기는 이용될 수 없으며, 코딩 효율에서의 손실이 발생할 수 있다.
시간적 움직임 벡터 예측을 활용하는 HEVC에서 움직임 코딩 모드가 AMVP 모드일 때, 레퍼런스 인덱스 값은 명시적으로 신호된다.
레퍼런스 인덱스 값이 설정될 때, 시간적 움직임 벡터예측의 움직임 벡터 값은 다음과 같이 유도될 수 있는데, 즉, 현재 예측 유닛의 하부-좌측 이웃과 함께 공동 배치된 블록에서의 움직임 벡터가 계산된다. 공동 배치된 블록이 상주하는 픽처는 슬라이스 헤더 내에 신호된 레퍼런스 인덱스에 따라 결정된다. 공동 배치된 블록에서 결정된 움직임 벡터는 공동 배치된 블록 내에서 움직임 벡터의 레퍼런스 픽처와 공동 배치된 블록의 픽처 사이의 픽처 순서 카운트 차이와, 시간적 움직임 벡터 예측 레퍼런스에서 픽처와 현재 픽처 사이의 픽처 순서 카운트 차이에 대해서 스케일링된다.
레퍼런스 픽처 리스트의 순서 정하기는 AMVP와 관련한 레퍼런스 픽처 인덱스를 위한 코드워드를 가능한 짧게 만들도록 수행될 것이다. 예를 들어, AMVP의 율-왜곡 성능의 관점에서 스케일러블 코딩을 위해 계층간 레퍼런스 픽처가 레퍼런스 인덱스 0을 차지할 수 있고, 다시점 코딩을 위해서 시점간 레퍼런스 픽처가 레퍼런스 인덱스 0을 차지할 수 있으며, 깊이-향상된 다시점 코딩을 위해서 시점 합성 레퍼런스 픽처가 레퍼런스 인덱스 0을 차지할 수 있음은 유리할 수 있다.
병합 모드에서, 만약에 레퍼런스 인덱스 0이 현재 픽처의 픽처 순서 카운트와 동일한 픽처 순서 카운트를 갖는 픽처(예를 들면, 계층간, 시점간 또는 시점 합성 레퍼런스 픽처)를 유발하거나 움직임 벡터 스케일링이 가능하지 않은 픽처를 유발한다면, 시간적 움직임 벡터 예측은 픽처 순서 카운트 차이에 따라 스케일링될 수 없다. 더 나아가, 만약에 레퍼런스 인덱스 0이 유효한 움직임 벡터 데이터를 갖지 않는 픽처를 유발한다면, 즉, 예를 들어 다른 코딩 표준이나 방식을 발생된 레퍼런스 픽처나 시점 합성 레퍼런스 픽처를 유발한다면, 레퍼런스 인덱스 0을 이용하는 시간적 움직임 벡터 예측은 유효하지 않다. 그러나 시간적 움직임 벡터 예측으로부터 0보다 큰 레퍼런스 인덱스와 연관된 하나 이상의 레퍼런스 픽처가 유도될 수 있다.
가능한 해결책은 AMVP 방법에서 시간적 움직임 벡터 예측이 상이한 레퍼런스 인덱스와 함께 이용될 수 있다는 것이다. 그러나 이 경우, 시간적 움직임 벡터 예측을 활용하는 모든 예측 유닛에 대해 레퍼런스 인덱스가 명시적으로 신호되어야 하고, 이것은 코딩 효율의 손실을 초래할 수도 있다. 더욱이, 모든 예측 유닛의 AMVP 리스트에 대해 시간적 움직임 벡터 예측이 존재하는 것이 보장되지 않을 수도 있다.
다른 가능한 해결책은 시간적 움직임 벡터 예측이 픽처 순서 카운트 차이에 따라 스케일링되지 않는 것이다. 그러나 이 해결책은 레퍼런스 인덱스 0이 다른 코딩 표준으로부터의 시점 합성 레퍼런스 픽처 또는 레퍼런스 픽처에 대해 이용될 경우에는 효과가 없을 수도 있다.
일부 실시예에서, 병합 모드에서 시간적 움직임 벡터 예측기의 레퍼런스 인덱스는 예컨대 슬라이스 헤더에 명시적으로 신호되어야 할 수도 있다. 이런 식으로, 항상 0으로 설정되는 것과 비교해서, 0인 레퍼런스 인덱스에서 픽처가 시간적 움직임 벡터 예측의 유도를 차단하는 경우에도 시간적 움직임 벡터 예측을 활용하는 것이 가능하다.
그러므로 병합 모드에서 시간적 움직임벡터 예측 레퍼런스 픽처의 유도는 레퍼런스 픽처 리스트의 순서와 결합되지 않는다.
일 구현예에서, 병합 모드에서의 시간적 움직임 벡터 예측에 대한 레퍼런스 인덱스는 슬라이스 헤더에 신호된다. 레퍼런스 인덱스가 Adaptation Parameter Set, Picture Parameter Set 및/또는 Sequence Parameter Set처럼 슬라이스 레벨보다 더 높은 레벨에서 신호되도록 구현하는 것도 가능할 것이다. 일부 실시예에서, 슬라이스 헤더 레벨 시그널링의 존재는 활성 파라미터 집합에 지시되는데, 이것은 Adaptation Parameter Set, Picture Parameter Set 및/또는 Sequence Parameter Set처럼 임의의 유형을 가질 수 있다.
일부 실시예에서, 슬라이스를 위한 레퍼런스 인덱스는 현재 레퍼런스 리스트와 이 리스트 내의 픽처의 특성에 기반하여 자동적으로 유도될 수 있다. 한 가지 가능한 것은, 동일한 계층/시점 내부에서 절대 픽처 순서 카운트 차이에 관하여 시간적 움직임 벡터 예측의 레퍼런스 인덱스(ref_idx)를 가장 근접한 픽처의 레퍼런스 인덱스(ref_idx)로 정하는 것이다. 다른 가능성은 첫 번째 유효 레퍼런스 인덱스를 인덱스 0 또는 그 이후에 선정하는 것이다. 유효 레퍼런스 인덱스는 예를 들면 다음의 조건 중 하나 이상이 참일 때 결정될 수 있을 것이다.
1) 레퍼런스 인덱스가 특정 유형의 레퍼런스 픽처 중에 하나의 픽처를 지정한다(예를 들면, 시간적 레퍼런스 픽처 중이나 시간적 계층간 및 시점간 레퍼런스 픽처 중에서, 그러나 예컨대 다른 디코더/비트 스트림으로부터의 시점 합성 레퍼런스 픽처 및/또는 계층간 레퍼런스 픽처는 제외함).
2) 레퍼런스 인덱스가 현재 픽처의 픽처 순서 카운트와 상이한 픽처 순서 카운트를 갖는 픽처와 연관된다.
3) 레퍼런스 인덱스와 연관된 픽처에서 시간적 움직임 예측 유도를 위한 공동 배치된 블록이 시간적 움직임 벡터 예측 유도를 가능하게 하는 코딩 모드(예컨대, 논-인트라 모드)를 갖는다.
일부 실시예에서, 시간적 움직임 벡터 예측기를 위한 레퍼런스 픽처의 유형 또는 "방향"이 인코더에 의해 예를 들면 슬라이스 헤더 내에 신호되고, 시간적 움직임 벡터 예측기를 위한 레퍼런스 픽처를 유도하기 위해 디코더에 의해 이용된다. 레퍼런스 픽처의 유형 또는 "방향"이 다음 내용, 즉, 예를 들어 시간적( 동일 계층 및 시점 내부의 픽처), 시점간(상이한 시점의 픽처), 계층간(상이한 계층으로부터의 픽처) 중 일부 또는 모두를 포함할 수 있지만 이것에만 한정되는 것은 아니다. 인코더는 예를 들어 율 왜곡 최적화를 이용하여 시간적 움직임 벡터 예측기를 위한 레퍼런스 픽처의 유형 또는 "방향"을 선정할 수 있는데, 율 왜곡 최적화에서는 검사된 유형이나 "방향" 중에서 가장 양호한 율-왜곡 성능을 초래하는 유형 또는 "방향"이 선정된다. 인코더 및 디코더는 지시된 유형 또는 "방향"을 이용하여 다음과 같이 시간적 움직임 벡터 예측기를 위한 레퍼런스 픽처를 선택할 것인데, 즉, LetRefPicList는 시간적 움직임 벡터 예측기를 위한 레퍼런스 픽처가 선정되는 레퍼런스 픽처 리스트일 것이고, i는 레퍼런스 픽처에 대한 인덱스로서 0에서부터 레퍼런스 픽처 리스트 내의 픽처 개수 미만의 범위이며, RefPiclist[i]는 레퍼런스 픽처 리스트에서 i번째 픽처이다. 인코더 및 디코더는 RefPiclist[i]가 지시된 유형 또는 "방향"을 갖는 i의 최소값을 선택할 것이다. 일부 실시예에서는, 유형 또는 "방향"의 집합이 인코더에 의해 지시되고, 디코더에 의해 이용될 수 있다. 예를 들어, 인코더는 시간적 및 계층간 레퍼런스 픽처 유형을 지시할 수 있고, 인코더 및 디코더는 레퍼런스 픽처 리스트 0처럼 특정 레퍼런스 픽처 리스트 내부의 시간적 및 계층간 레퍼런스 픽처들 사이에서 시간적 움직임 벡터 예측기를 위한 레퍼런스 픽처를 선택할 수도 있다.
일부 실시예에서, 인코더는 후보 픽처 사이의 레퍼런스 인덱스를 위한 하나 이상의 유도 프로세스를 선정할 수 있고, 인코더는 선정된 유도 프로세스를 예를 들면 슬라이스 헤더 내의 하나 이상의 신택스 요소를 이용하거나 예컨대 Adaptation Parameter Set, Picture Parameter Set 및/또는 Sequence Parameter Set처럼 슬라이스 레벨보다 높은 레벨에서 비트 스트림 내부에 지시할 수 있으며, 디코더는 레퍼런스 인덱스를 위한 유도 프로세스를 지시하는 하나 이상의 신택스 요소를 디코딩할 수 있고, 디코더는 디코딩 프로세스에서 지시된 유도 프로세스를 이용할 수 있다. 위에서 언급된 후보 픽처는 시간적 움직임 벡터 예측기의 레퍼런스 인덱스를 위한 지시가 없을 때 자동적으로 유도되는 것일 수도 있고, 또는 레퍼런스 픽처 리스트 0처럼 특정 레퍼런스 픽처 리스트 내부에서 시간적 움직임 벡터 예측기를 위해 지시된 유형 또는 "방향"을 갖는 것일 수도 있다. 레퍼런스 인덱스를 위한 유도 프로세서의 예들은 위에서 설명되었다. 예를 들어, 만약에 후보 픽처가 시간적 레퍼런스 픽처를 포함한다면, 레퍼런스 인덱스를 위한 유도 프로세스는 동일한 계층/시점 내부에서 예컨대 절대 픽처 순서 카운트 차이와 관련하여 가장 근접한 픽처를 선택할 수 있다. 다른 가능성은 인덱스 0에서 또는 그 이후에 첫 번째 유효 레퍼런스를 선택하는 것이다.
일부 실시예에서, 현재 예측 유닛을 위한 공동 배치된 블록의 위치의 유도는 시간적 움직임 벡터 예측기를 위한 레퍼런스 픽처의 유형 또는 "방향"에 따라 좌우될 것이다. 예를 들어, 계층간 레퍼런스 픽처가 시간적 움직임 벡터 예측기를 위한 소스로서 이용될 때, 공동 배치된 블록이 현재 예측 유닛으로서 동일한 공간적 위치에 있도록 선택될 수도 있고(품질 스케일러빌리티 또는 그와 유사한 것이 이용중일 때), 또는 레퍼런스 픽처와 현재 픽처 사이의 픽처 크기의 공간적 스케일링 비율을 고려하여 동일한 공간적 위치에 있도록 선택될 수도 있다(공간적 스케일러빌리티가 이용중일 때). 다른 예에서, 공동 배치된 블록은 변이값(disparity value)만큼 이동된 현재 예측 유닛의 위치에서 있도록 선택될 수도 있는데, 여기서 변이값이란, 예를 들어 현재 픽처와 레퍼런스 픽처 사이의 전역 변이일 수도 있고, 또는 인코더에 의해 지시될 수도 있으며, 또는 픽처(들)의 깊이 또는 변이로부터 유도될 수도 있다.
일부 실시예에서, 시간적 움직임벡터 예측기를 스케일링하는 것은 시간적 움직임 벡터 예측기를 위한 레퍼런스 픽처의 유형 또는 "방향"에 따라 좌우될 수 있다. 예를 들어, 만약에 시간적 움직임 벡터 예측기가 계층간 레퍼런스 픽처로부터 발원했다면, 현재 픽처와 레퍼런스 픽처 사이의 픽처 크기의 비율에 따라서 스케일링되지 않을 수도 있고(품질 스케일러빌리티 또는 그와 유사한 것이 이용중일 때), 또는 스케일링되지 않을 수도 있다(공간적 스케일러빌리티가 이용중일 때). 다른 예로, 만약에 시간적 움직임 벡터 예측기가 시간적 레퍼런스 픽처로부터 발원했다면, 픽처 순서 카운트 차이에 따른 스케일링은 예를 들어 도 6을 참조하여 예시되는 것처럼 수행될 수 있다.
일부 실시예에서, 시간적 움직임 벡터 예측기의 스케일링은 공동 배치된 블록 내의 움직임 벡터의 유형 또는 "방향"에 따라 좌우될 수도 있다. 예를 들어, 만약에 공동 배치된 블록 내의 움직임 벡터의 유형 또는 "방향"이 시점간이면, 움직임 벡터의 스케일링은 카메라 사이의 이동(translation)(예를 들면, 카메라 사이의 물리적 이격과 관련하여), 카메라 또는 시점 순서(예를 들면, 좌측에서 우측으로), 시점 식별자 차이 또는 시점 순서 인덱스 차이에 따라 수행될 수 있다. 다른 예로, 만약에 공동 배치된 블록 내의 움직임 벡터의 유형 또는 "방향"이 시간적이고 레퍼런스 픽처의 유형이 시점간 또는 계층간이면, 움직임 벡터는 스케일링되지 않을 수 있다. 또 다른 예로, 만약에 공동 배치된 블록 내의 움직임 벡터의 유형 또는 "방향"이 시간적이고 레퍼런스 픽처의 유형이 시간적이면, 픽처 순서 카운트 차이에 따른 스케일링이 예컨대 도 6과 함께 예시된 것처럼 수행될 수도 있다.
일부 실시예에서, 인코딩 및 디코딩 프로세스는 시간적 움직임 벡터 예측기를 위한 하나 이상의 병합 후보를 이용할 수 있으며, 다른 실시예들은 이런 병합 후보들 중 하나 이상에 대해 적용될 수도 있다. 예를 들어, 시간적 움직임 벡터 예측기를 이용하는 상이한 병합 후보들을 위한 하나 이상의 레퍼런스 인덱스가 슬라이스 헤더 내에 지시될 수도 있다.
도 4a 및 도 4b는 일 실시예에 따른 비디오 인코딩 및 디코딩을 위한 블록도를 도시한다.
도 4a는 화소 예측기(302), 예측 오류 인코더(303) 및 예측 오류 디코더(304)를 포함하는 인코더를 도시한다. 도 4a는 또한 인터-예측기(306), 인트라 예측기(308), 모드 선택기(310), 필터(316) 및 레퍼런스 프레임 메모리(318)를 포함하는 화소 예측기(302)의 일 실시예도 도시한다. 이 실시예에서, 모드 선택기(310)는 블록 프로세서(381) 및 비용평가기(382)를 포함한다. 인코더는 비트 스트림을 엔트로피 인코딩하기 위한 엔트로피 인코더(330)를 더 포함할 수도 있다.
도 4b는 인터 예측기(306)의 일 실시예를 도시한다. 인터 예측기(306)는 프레임 또는 프레임들을 선택하는 레퍼런스 프레임 선택기(360)와, 움직임 벡터 정의기(motion vector definer)(361)와, 예측 리스트 형성기(363)와 움직임 벡터 선택기(364)를 포함한다. 이 요소들이나 이 요소들의 일부는 예측 프로세서(362)의 일부일 수도 있고, 또는 다른 수단을 이용하여 구현될 수도 있다.
화소 예측기(302)는 인터-예측기(306)(이것은 이미지와 움직임 보상된 레퍼런스 프레임(318) 사이의 차이를 결정함)와 인트라-예측기(308)(이것은 현재 프레임 또는 픽처의 기처리된 부분에만 기반하는 이미지 블록에 대한 예측을 결정함)에서 인코딩될 이미지(300)를 수신한다. 인터-예측기와 인트라-예측기 모두의 출력은 모드 선택기(310)로 전달된다. 인터-예측기(306)와 인트라-예측기(308)는 모두 하나 이상의 인트라-예측 모드를 가질 수 있다. 그러므로 인터-예측과 인트라-예측이 각각의 모드와 관련해 수행될 수 있고, 예측된 신호는 모드 선택기(310)로 제공될 것이다. 모드 선택기(310)는 또한 이미지의 사본을 수신한다.
모드 선택기(300)는 현재 블록을 인코드하기 위해 사용될 인코딩 모드를 결정한다. 만약에 모드 선택기(310)가 인터-예측 모드를 이용하기로 결정하면, 이것은 인터-예측기(306)의 출력을 모드 선택기(310)의 출력에 전달할 것이다. 만약에 모드 선택기(310)가 인트라-예측을 이용하기로 결정한다면, 이것은 인트라 예측기 모드 중 하나의 출력을 모드 선택기(310)의 출력으로 전달할 것이다.
모드 선택기(301)는 비용 평가기 블록(382)에서 예를 들면 라그랑주 비용 함수를 이용하여, 코딩 모드와 그 파라미터 값 사이에서 전형적으로 블록 기반으로 예컨대 움직임 벡터, 레퍼런스 인덱스 및 인트라 예측 방향 같은 것들을 선택할 수 있다. 이런 종류의 비용 함수는 가중치 lambda를 이용하여, 손실성 코딩 방법으로 인한 (정확한 또는 추정된) 이미지 왜곡과 이미지 영역에서 화소값을 나타내는데 요구되는 (정확한 또는 추정된) 정보량을 함께 결부시키는데, 즉, C=D+lambda x R이고, 여기서 C는 최소화될 라그랑주 비용이고, D는 모드와 그 파라미터를 갖는 이미지 왜곡(예컨대, 평균제곱오차)이며, R은 디코더에서 이미지 블록을 재구성하기 위해 요구되는 데이터를 나타내는데 필요한 비트 수이다(예컨대, 후보 움직임 벡터를 나타내는 데이터량을 포함해서).
모드 선택기의 출력은 제1 합산 장치(321)로 전달된다. 제1 합산 장치는 이미지(300)로부터 화소 예측기(302)의 출력을 감산하여, 예측 오류 인코더(303)에 입력될 제1 예측 오류 신호(320)를 발생한다.
화소 예측기(302)는 또한 예비 재구성기(339)로부터 이미지 블록(312)의 예측 표시와 예측 오류 디코더(304)의 출력(338)이 조합된 신호를 수신한다. 예비 재구성된 이미지(314)는 인트라-예측기(308)와 필터(316)로 전달될 것이다. 예비 표현을 수신하는 필터(316)는 이 예비 표현을 필터링하여, 레퍼런스 프레임 메모리(318)에 저장될 최종 재구성된 이미지(340)를 출력한다. 레퍼런스 프레임 메모리(318)는 인터-예측 동작에서 장차의 이미지(300)와 비교될 레퍼런스 이미지로서 이용되는 인터-예측기(306)에 연결된다. 많은 실시예에서, 레퍼런스 프레임 메모리(318)는 하나 이상의 디코딩된 픽처를 저장할 수 있고, 이 하나 이상의 디코딩된 픽처 중 하나 이상이 인터-예측기(306)에 의해 인터 예측 동작에서 장차의 이미지(300)와 비교될 레퍼런스 픽처로서 이용될 것이다. 레퍼런스 프레임 메모리(318)는 어떤 경우에는 디코딩된 픽처 버퍼(Decoded Picture Buffer)로 불릴 수도 있다.
화소 예측기(302)의 동작은 종래 기술의 임의의 공지된 화소 예측 알고리즘을 수행하도록 구성될 것이다.
화소 예측기(302)는 또한 화소 예측기(302)로부터 예측 값을 출력하기 전에 예측 값을 필터링하는 필터(385)를 포함할 수 있다. 예측 오류 인코더(303)와 예측 오류 디코더(304)의 동작은 이후에 상세히 설명될 것이다. 다음 예에서, 인코더는 완전 이미지 또는 픽처를 형성하게 될 예컨대 16x16 화소 매크로블록처럼 예측 유닛과 관련해 이미지를 발생한다. 그러나 도 4a가 블록 사이즈를 16x16과 매크로블록으로 한정하는 것은 아니며, 임의의 블록 사이즈와 형상이 일반적으로 이용될 수 있으며, 마찬가지로 도 4a는 매크로블록으로의 픽처 파티셔닝을 한정하지 않고, 블록에 대한 임의의 다른 픽처 파티셔닝, 예컨대 코딩 유닛이 이용될 수도 있다. 그러므로 다음의 예와 관련하여, 화소 예측기(302)는 16x16 화소 사이즈의 일련의 예측된 매크로블록을 출력하고, 제1 합산 장치(321)는 예측된 매크로블록(화소 예측기(302)의 출력)과 이미지(300) 내의 제1 매크로블록 사이의 차이를 나타내는 일련의 16x16 화소 잔여 데이터 매크로블록을 출력한다.
예측 오류 인코더(303)는 변환 블록(342)과 양자화기(344)를 포함한다. 변환 블록(342)은 제1 예측 오류 신호(320)를 변환 영역으로 변환시킨다. 변환은 예를 들면 DCT 변환이거나 그 변형안이다. 양자화기(344)는 변환 영역 신호, 예컨대 DCT 계수를 양자화하여, 양자화된 계수를 형성한다.
예측 오류 디코더(304)는 예측 오류 인코더(303)로부터 출력을 수신하고, 디코딩된 예측 오류 신호(338)를 발생하는데, 이 디코딩된 이미지 블록(312)의 예측 오류 신호(338)는 제2 합산 장치(339)에서 예측 표시와 조합될 때 예비 재구성된 이미지(314)를 발생한다. 예측 오류 디코더는 변환 신호를 거의 재구성하기 위해서 양자화된 계수값, 예컨대 DCT 계수를 역 양자화하는 역 양자화기(34)와, 재구성된 변환 신호로의 역변환을 수행하는 역변환 블록(348)을 포함하는 것으로 고려되는데, 여기서 역 변환 블록(348)의 출력은 재구성된 블록을 포함한다. 예측 오류 디코더는 추가의 디코딩된 정보와 필터 파라미터에 따라 재구성된 매크로블록을 필터링할 수 있는 매크로블록 필터(도시하지 않음)를 포함할 수도 있다.
다음에는 인터 예측기(306)의 예시적인 실시예의 동작이 더 상세히 설명될 것이다. 인터 예측기(306)는 인터 예측을 위해 현재 블록을 수신한다. 현재 블록과 관련해 인코딩된 하나 이상의 이웃 블록이 이미 존재하고 이들을 위해 움직임 벡터가 정의되었다고 가정된다. 예를 들면, 현재 블록의 좌측에 있는 블록 및/또는 위에 있는 블록이 이런 블록일 것이다. 현재 블록을 위한 공간적 움직임 벡터 예측이 예를 들면 동일한 슬라이스 또는 프레임 내의 인코딩된 이웃 블록 및/또는 이웃이 아닌 블록의 움직임 벡터를 이용하거나, 공간적 움직임 벡터 예측의 선형 또는 비선형 함수를 이용하거나, 선형 또는 비선형 동작을 갖는 다양한 공간적 움직임 벡터의 조합을 이용하거나 또는 시간적 레퍼런스 정보의 이용을 수행하지 않는 다른 적절한 수단에 의해 형성될 수 있다. 하나 이상의 인코딩된 블록의 공간적 및 시간적 예측 정보 모두를 조합함으로써 움직임 벡터 예측기를 입수하는 것도 가능할 수 있다. 이런 종류의 움직임 벡터 예측기는 시공간 움직임 벡터 예측기로 불린다.
이웃 블록을 인코딩하는데 이용되는 레퍼런스 프레임은 레퍼런스 프레임 메모리(404)에 저장된다. 레퍼런스 프레임은 단기 레퍼런스 또는 장기 레퍼런스일 수 있으며, 각각의 레퍼런스 프레임은 레퍼런스 프레임 메모리 내에서 레퍼런스 프레임의 위치를 지시하는 고유 인덱스를 가질 수 있다. 레퍼런스 프레임이 레퍼런스 프레임으로서 더이상 이용되지 않을 때, 이것은 레퍼런스 프레임 메모리로부터 제거되거나, 또는 논-레퍼런스 프레임으로 표지될 수 있고, 여기서 해당 레퍼런스 프레임의 저장 위치는 신규 레퍼런스 프레임으로 채워질 수도 있다. 이웃 블록의 레퍼런스 프레임과 함께, 레퍼런스 프레임 선택기(360)는 하나 이상의 다른 프레임을 잠재적인 레퍼런스 프레임으로서 선택할 수 있고, 이들은 레퍼런스 프레임 메모리에 저장할 수도 있다.
인코딩된 블록의 움직임 벡터 정보도 메모리에 저장되어, 인터 예측기(306)가 현재 블록을 위해 움직임 벡터 후보를 처리할 때 움직임 벡터 정보를 도출할 수 있도록 한다.
일부 실시예에서는, 두 개 이상의 움직임 벡터 예측 프로시저가 존재하고, 각각의 프로시저는 자체의 후보 집합 생성 프로세스를 가질 수도 있다. 하나의 프로시저에서는 움직임 벡터값만이 이용된다. 이미 위에서 설명했듯이 병합/병합 모드/프로세스/메커니즘으로 불리는 다른 프로시저에서는, 각각의 후보 요소가 1) '블록이 리스트 0을 이용하여 단방향 예측되었는지' 또는 '블록이 리스트 1을 이용하여 단방향 예측되었는지' 또는 '블록이 리스트 0 및 리스트 1을 이용하여 양방향 예측되었는지'에 대한 정보; 2) 레퍼런스 픽처 리스트 0을 위한 움직임 벡터 값; 3) 레퍼런스 픽처 리스트 0 내의 레퍼런스 픽처 인덱스; 4) 레퍼런스 픽처 리스트 1을 위한 움직임 벡터 값; 5) 레퍼런스 픽처 리스트 1 내의 레퍼런스 픽처 인덱스를 포함할 수 있다. 그러므로 두 개의 예측 후보가 비교될 때마다 움직임 벡터값들만 비교되는 것이 아니라 위에 언급된 다섯 개의 값들도 비교되어, 이들이 서로 상응하는지의 여부가 결정된다. 한편, 만약에 이 비교에 의해 예측 후보들이 동일한 움직임 정보를 갖지 않는 것으로 판명되면, 더 이상의 비교는 요구되지 않는다.
움직임 벡터 정의기(361)는 동일 프레임에서 현재 블록의 하나 이상의 이웃 블록 및/또는 다른 블록, 그리고/또는 하나 이상의 다른 프레임에서 현재 블록의 공동 배치된 블록 및/또는 다른 블록의 하나 이상의 움직임 벡터를 이용함으로써 현재 프레임을 위한 후보 움직임 벡터를 정의한다. 이것은 도 5a에서 블록(500)으로 예시된다. 이러한 후보 움직임 벡터는 후보 예측기 집합 또는 예측기 집합으로 불릴 수 있다. 그러므로 각각의 후보 예측기는 하나 이상의 기존의 인코딩된 블록의 움직임 벡터를 나타낸다. 일부 실시예에서, 현재 블록과 이웃 블록이 해당 리스트와 관련해 동일한 레퍼런스 프레임을 참조하는 경우에는, 후보 예측기의 움직임 벡터는 동일 리스트와 관련한 이웃 블록의 움직임 벡터와 동일하게 설정된다. 또한 시간적 예측의 경우, 하나 이상의 이전에 인코딩된 프레임이 존재할 것이고, 여기서 이전에 인코딩된 프레임 내의 공동 배치된 블록 또는 다른 블록의 움직임 벡터는 현재 블록과 관련한 후보 예측기로서 선택될 수 있다. 시간적 움직임 벡터 예측기 후보는 현재 프레임이 아닌 프레임을 이용하는 임의의 수단에 의해 발생될 수 있다.
후보 움직임 벡터는 예컨대 현재 블록의 이웃 블록 및/또는 하나 이상의 다른 프레임 내에 공동 배치된 블록처럼 하나 이상의 다른 블록의 하나 이상의 움직임 벡터를 이용하여 획득될 수도 있다. 예로서, 현재 블록의 왼쪽에 있는 블록의 움직임 벡터, 현재 블록의 위에 있는 블록의 움직임 벡터, 그리고 현재 블록의 상부 오른쪽 모퉁이에 있는 블록(즉, 현재 블록의 위에 있는 블록의 오른쪽에 있는 블록)의 움직임 벡터를 조합한 것이 이용될 수도 있다. 이 조합은 움직임 벡터의 중앙값이거나 다른 공식을 이용하여 계산될 수 있다. 예를 들어, 이 조합에 이용될 하나 이상의 움직임 벡터는 스케일링 계수로 스케일링될 수도 있고, 오프셋이 더해질 수도 있고 및/또는 일정한 움직임 벡터가 더해질 수도 있다. 일부 실시예에서, 조합된 움직임 벡터는 시간적 움직임 벡터와 공간적 움직임 벡터 모두에 기반하는데, 예를 들면, 현재 블록의 하나 이상의 이웃 블록 또는 다른 블록의 움직임 벡터와, 또 다른 프레임 내의 공동 배치된 블록 또는 다른 블록의 움직임 벡터에 기반한다.
만약에 이웃 블록이 움직임 벡터 정보를 갖지 않는다면, 제로 움직임 벡터 같은 디폴트 움직임 벡터가 대신 이용될 수도 있다.
도 8은 코딩 유닛(800)과, 이 코딩 유닛의 일부 이웃 블록(801-805)의 일 예를 예시한다. 도 8에서 알 수 있듯이, 만약에 코딩 유닛(800)이 현재 블록을 표시한다면, A0, A1, B0, B1 및 B2로 명명된 이웃 블록(801-805)이 공간적 후보 움직임 벡터를 획득할 때 이용되는 그러한 이웃 블록일 수 있다.
이전에 추가된 예측기에 기반하여 추가의 또는 여분의 움직임 벡터 예측을 생성하는 것이 현재의 후보 개수가 제한되거나 불충분할 때 요구될 수 있다. 이런 종류의 추가 후보 생성은 이전의 두 개의 예측을 조합함으로써 수행될 수 있고/있거나 하나의 이전의 후보를 스케일링하거나 또는 오프셋을 추가하고/하거나 여러 레퍼런스 인덱스와 함께 제로 움직임 벡터를 추가함으로써 수행될 수 있다. 그러므로 움직임 벡터 정의기(361)는 얼마나 많은 움직임 벡터 후보가 정의될 수 있는지, 그리고 얼마나 많은 잠재적인 후보 움직임 벡터가 현재 블록과 관련해 존재하는지를 검사할 수 있다. 만약에 잠재적인 후보 움직임 벡터의 수가 임계치보다 작다면, 움직임 벡터 정의기(361)는 추가의 움직임 벡터 예측을 생성할 수도 있다.
현재 블록을 움직임 벡터가 후보 움직임 벡터로서 이용되는 인코딩된/디코딩된 블록과 구별하기 위해서, 본 출원에서는 인코딩된/디코딩된 블록을 레퍼런스 블록으로 부른다.
일부 실시예에서, 레퍼런스 블록의 움직임 벡터 정보만 (예컨대 복사에 의해서) 획득되는 것이 아니라 레퍼런스 픽처 리스트 내의 레퍼런스 블록의 레퍼런스 인덱스도 후보 리스트로 복사될 수 있다. 블록이 리스트 0을 이용해 단방향 예측되었는지 또는 블록이 리스트 0을 이용해 단방향 예측되었는지 또는 블록이 리스트 0과 리스트 1을 이용해 양방향 예측되었는지에 대한 정보도 복사될 것이다. 후보 리스트는 후보 집합 또는 움직임 벡터 예측 후보 집합으로 불릴 것이다.
도 6a는 예측 유닛의 공간적 및 시간적 예측의 일 예를 예시한다. 프레임(600) 내의 현재 블록(601)과 이미 인코드된 이웃 블록(602)이 도시된다. 움직임 벡터 정의기(361)는 이전 프레임(605)에서 블록(604)을 지시하는 이웃 블록(602)을 위한 움직임 벡터(603)를 정의한다. 이 움직임 벡터는 현재 블록을 위한 잠재적인 공간적 움직임 벡터 예측(610)으로서 이용될 수 있다. 도 6a는 이전 프레임(605)에서 공동 배치된 블록(606), 즉, 현재 블록이 아니지만 이전 프레임 안에서 동일 위치에 있는 블록이 다른 프레임(608) 내의 블록(609)을 가리키고 있는 움직임 벡터(607)를 가짐을 도시한다. 이 움직임 벡터(607)는 현재 프레임을 위한 잠재적인 시간적 움직임 벡터 예측(611)으로서 이용될 수 있다.
도 6b는 예측 유닛의 공간적 및 시간적 예측의 다른 예를 예시한다. 이 예에서, 이전 프레임(605)의 블록(606)에 선행하는 프레임의 블록(609)과 현재 프레임(600)에 후속하는 블록(612)에 기반하는 양방향 예측을 이용한다. 현재 블록(601)을 위한 시간적 움직임 벡터 예측은 움직임 벡터(607, 614) 또는 이 움직임 벡터 중 하나를 이용하여 형성될 수 있다.
다음 내용에서, 예시적인 실시예에 따른 움직임 정보 코딩을 위한 병합 프로세스가 상세히 설명될 것이다. 인코더는 움직임 예측 후보의 리스트를 생성하고, 이 리스트로부터 후보 중 하나가 현재 코딩유닛 또는 예측 유닛을 위한 움직임 정보로서 신호될 것이다. 이것은 도 5a에서 블록(502)에 예시된다. 움직임 예측 후보는 몇 개의 공간적 움직임 예측과, 0개 이상의 시간적 움직임 예측으로 이루어질 것이다. 공간적 후보는 예컨대 공간적 이웃 블록 A0, A1, B0, B2, B2의 움직임 정보로부터 획득될 수 있는데, 그 움직임 정보는 공간적 후보 움직임 예측으로서 이용된다. 시간적 움직임 예측 후보(들)는 현재 프레임이 아닌 프레임 내의 블록의 움직임을 처리함으로써 획득될 것이다.
이 예에서, 공간적 움직임 예측 후보는 공간적 이웃 블록 A0, A1, B0, B2, B2이다. 인코딩/디코딩 순서가 인코드/디코드될 프레임, 슬라이스 또는 다른 엔티티의 좌측에서 우측으로, 그리고 상부에서 하부로의 순서일 때, 공간적 움직임 벡터 예측 후보 A1는 예측 유닛의 좌측에 위치된다. 각기 공간적 움직임 벡터 예측 후보 B1은 예측 유닛 위에 위치되고; 공간적 움직임 벡터 예측 후보 B0은 공간적 움직임 벡터 예측 후보 B1의 우측에 위치되며; 공간적 움직임 벡터 예측 후보 A0는 공간적 움직임 벡터 예측 후보 A1의 아래에 있고; 공간적 움직임 벡터 예측 후보 B2는 공간적 움직임 벡터 예측 후보 A1이 아니지만 동일한 행과 공간적 움직임 벡터 예측 후보 B1이 아니지만 동일한 열에 위치된다. 다시 말해서, 공간적 움직임 벡터 예측 후보 B2는 도 8에서 알 수 있듯이 예측 유닛과 비스듬하게 이웃하고 있다.
이러한 공간적 움직임 벡터 예측 후보는 사전 결정된 순서, 예를 들면 A1, B1, B0, A0 및 B2 순서로 처리될 수 있다. 그러므로 추가 검사를 위해 선택될 첫 번째 공간적 움직임 벡터 예측 후보는 A1이다. 추가 검사가 선택된 공간적 움직임 벡터 예측 후보에 대해 수행되기 전에, 병합 리스트가 이미 최대 개수의 공간적 움직임 벡터 예측 후보를 포함하는지 여부가 결정될 것이다. 그러므로 예측 리스트 수정기(363)는 병합 리스트 내의 공간적 움직임 벡터 예측 후보의 개수와 최대 개수를 비교하고, 만약에 병합 리스트 내의 공간적 움직임 벡터 예측 후보의 개수가 최대 개수보다 작지 않다면, 선택된 공간적 움직임 벡터 예측 후보는 병합 리스트에 포함되지 않고, 병합 리스트를 구성하는 프로세스는 중지될 수 있다. 반대로, 만약에 병합 리스트 내의 공간적 움직임 벡터 예측 후보의 개수가 최대 개수보다 작다면, 선택된 공간적 움직임 벡터 예측 후보의 추가 분석이 수행되거나 또는 공간적 움직임 벡터 예측 후보가 추가 분석없이 병합 리스트에 추가될 수 있다.
움직임 예측 후보 중 일부는 동일한 움직임 정보를 가질 수 있고, 이것은 리던던시를 초래한다. 그러므로 최소 프로세싱 순서를 갖는 병합 후보를 제외한 병합 후보는 병합 리스트에 대해 폐기될 수도 있다. 이런 식으로, 리던던트 후보를 폐기한 이후에, 나머지 후보를 포함하는 리스트가 원래 병합 리스트로서 호출될 수 있다. 만약에 원래 병합 리스트의 후보 개수가 병합 후보의 최대 개수보다 작다면, 후보의 전체 개수를 최대 개수와 일치시키기 위해서 추가 움직임 예측 후보가 발생되어 병합 리스트에 포함될 수 있다. 요약하면, 최종 병합 리스트는 원래 병합 리스트의 후보와, 다양한 방식으로 얻어진 추가의 후보로 이루어진다. 추가 후보를 발생하는 한 가지 방식은 원래 리스트 내의 후보의 레퍼런스 픽처 리스트 0에 대응하는 움직임 정보를 원래 병합 리스트 내의 다른 후보의 레퍼런스 픽처 리스트 1에 대응하는 움직임 정보와 조합함으로써 신규 후보를 생성하는 것이다. 이런 식으로 발생된 후보를 조합된 후보라고 부를 수 있다.
두 개의 블록이 동일한 움직임을 갖는지 비교하는 것은 움직임 정보의 모든 요소, 즉, 1) '예측 유닛이 리스트 0을 이용하여 단방향 예측되는지' 또는 '예측 유닛이 리스트 1을 이용하여 단방향 예측되는지' 또는 '예측 유닛이 리스트 0 및 리스트 1을 이용하여 양방향 예측되는지'에 대한 정보; 2) 레퍼런스 픽처 리스트 0에 대응하는 움직임 벡터 값; 3) 레퍼런스 픽처 리스트 0 내의 레퍼런스 픽처 인덱스; 4) 레퍼런스 픽처 리스트 1에 대응하는 움직임 벡터 값; 5) 레퍼런스 픽처 리스트 1 내의 레퍼런스 픽처 인덱스를 비교함으로써 수행될 수 있다.
병합 리스트 후보의 최대 개수는 0이 아닌 임의의 값일 수 있다. 위의 예에서, 병합 리스트 후보는 공간적 이웃 블록 A0, A1, B0, B1, B2와 시간적 움직임 예측 후보였지만, 하나 이상의 시간적 움직임 예측 후보가 존재할 수 있고, 또한 공간적 이웃 블록이 아닌 다른 공간적 움직임 예측 후보가 존재할 수도 있다. 일부 실시예에서, 블록 A0, A1, B0, B1, B2이 아닌 다른 공간적 이웃 블록이 존재할 수도 있다.
리스트에 포함된 공간적 움직임 예측 후보의 최대 개수는 4가 아닌 다른 것일 수 있다.
일부 실시예에서, 병합 리스트 후보의 최대 개수와, 리스트에 포함된 공간적 움직임 예측 후보의 최대 개수는 시간적 움직임 벡터 후보가 리스트에 포함되는지의 여부에 따라 좌우될 수 있다.
현재 프레임 내의 다양한 위치에 위치된 상이한 개수의 공간적 움직임 예측 후보가 처리될 수 있다. 이 위치들은 A1, B1, B0, A0 및 B2와 동일하거나 다를 수 있다.
후보들을 위한 판정은 A1, B1, B0, A0 및 B2의 임의의 순서로 취해질 수 있거나 또는 병렬로 독립적으로 취해질 수 있다.
현재 슬라이스 및/또는 이전의 슬라이스, 및/또는 현재 블록 및/또는 이웃 블록의 다양한 특성과 관련된 추가의 조건들은 리스트에 후보를 포함하는지 여부를 결정하는데 활용될 수 있다.
움직임 비교는 전체 움직임 정보의 부분 집합을 비교함으로써 실현될 수 있다. 예를 들어, 일부 또는 모든 레퍼런스 픽처에 대한 움직임 벡터값, 및/또는 일부 또는 모든 레퍼런스 픽처 리스트에 대한 레퍼런스 인덱스, 및/또는 움직임 정보를 표시하기 위해 각각의 블록에 할당된 식별자 값이 비교된다. 이 비교는 동일성 또는 등가성 검사일 수 있고, 또는 임계치나 임의의 다른 유사한 측정 기준에 대해 (절대적) 차이를 비교하는 것일 수 있다.
리던던시 후보를 제거하는 프로세스 동안에, 움직임 벡터 예측기 후보 사이의 비교는 움직임 벡터값이 아닌 다른 정보에 기반할 수 있다. 예를 들어, 이것은 움직임 벡터값의 선형 또는 비선형 함수, 움직임 정보를 얻기 위해 이용되는 블록의 코딩 또는 예측 유형, 블록 사이즈, 프레임/(가장 큰) 코딩 유닛/매크로블록 내의 공간적 위치, 블록들이 블록과 동일한 움직임을 공유하는지 여부에 대한 정보, 블록들이 동일 코딩/예측 유닛에 있는지 여부에 대한 정보 등에 기반할 수 있다.
일부 실시예에서, 병합 모드가 사용중일 때, 이 리스트에 포함된 시간적 움직임 벡터 후보는 0에서부터 상이한 값으로 설정될 수 있다. 예를 들어, 움직임 벡터 정의기(361)는 리스트 내의 어떤 레퍼런스 픽처가 현재 슬라이스/코딩 유닛의 픽처 순서 카운트와 상이한 픽처 순서 카운트를 갖는지를 찾을 것이고, 이 레퍼런스 픽처로부터 픽처 순서 카운트에서 가장 작은 차이를 갖는 픽처, 즉, 현재 슬라이스의 픽처에 가장 근접한 픽처를 선택한다. 다음, 선택된 픽처의 레퍼런스 인덱스가 시간적 움직임 벡터 예측의 레퍼런스 인덱스로서 제공될 것이다.
일부 다른 실시예에서, 움직임 벡터 정의기(361)는 예를 들면 인덱스 0에서 시작해서 레퍼런스 인덱스의 증가 순서대로 리스트에서 레퍼런스 픽처를 검사하고, 시간적 움직임 벡터 예측에 이용 가능한 첫 번째 레퍼런스 픽처를 선택할 것이다. 이용 가능성은 예를 들면 레퍼런스 픽처의 유형, 픽처 순서 카운트 및/또는 코딩 모드에 기반하여 결정될 수 있다. 예를 들어, 만약에 레퍼런스 인덱스가 시간적 레퍼런스 픽처 중 하나의 픽처 또는 시간적 계층간 또는 시점간 레퍼런스 픽처 중 하나의 픽처를 지정한다면, 이 레퍼런스 픽처가 선택될 것이다. 추가적으로 또는 선택적으로, 만약에 현재 코딩 유닛의 픽처 순서 카운트와 상이한 픽처 순서 카운트와 연관된 리스트 내에 픽처가 존재한다면, 이것이 시간적 움직임 벡터 예측으로서 선택될 것이다. 추가적으로 또는 선택적으로, 리스트 내 픽처가, 예를 들어, 논-인트라 코딩 모드를 갖는다면, 이것이 시간적 움직임 벡터 예측으로서 선택될 것이다. 이 단계들은 도 5a에서 블록(504-512)에 예시된다.
움직임 벡터 정의기(361)가 시간적 움직임 벡터 예측을 위한 레퍼런스 인덱스를 선택할 때, 움직임 벡터 정의기(361)는 예컨대 블록 프로세서(381)로 레퍼런스 인덱스를 통지하고, 여기서 블록 프로세서(381) 또는 인코더의 다른 요소는 이 선택된 레퍼런스 픽처를 현재 블록을 위한 예측 레퍼런스로서 이용한다(514).
일부 실시예에서, 레퍼런스 인덱스가 디코더로 신호되므로 디코더가 레퍼런스 인덱스를 결정할 필요는 없지만, 신호된 레퍼런스 인덱스를 이용하여 디코더는 인코더가 예측 레퍼런스로 이용하도록 선택한 레퍼런스 픽처를 찾을 수 있다. 이러한 시그널링은 예를 들어 다음과 같이 수행될 수 있다. 움직임 벡터 정의기(361)가 시간적 움직임 벡터 예측을 위해 레퍼런스 인덱스를 선택할 때, 움직임 벡터 정의기(361)는 예를 들어 블록 프로세서(381)로 레퍼런스 인덱스를 통지하고, 여기서 블록 프로세서(381) 또는 다른 인코더의 다른 요소는 레퍼런스 인덱스를 슬라이스 헤더나 또는 예컨대 Adaptation Parameter Set, Picture Parameter Set 및/또는 Sequence Parameter Set처럼 슬라이스 레벨보다 높은 다른 레벨의 신택스 요소에 추가한다(522). 또한, 일부 실시예에서, 슬라이스 헤더 레벨 시그널링의 존재는 활성 파라미터 집합에 지시되는데, 이것은 예컨대 Adaptation Parameter Set, Picture Parameter Set 및/또는 Sequence Parameter Set처럼 임의의 유형일 수 있다. 이 선택은 도 5a의 블록(500-512)에 예시된 것처럼 수행되거나 몇몇 다른 방식으로 수행될 것이다. 도 5b에는 병합 리스트 구성 및 예측 레퍼런스 선택 프로시저의 일반화가 블록(516, 518, 520)과 함께 예시된다.
일부 실시예에서, 시간적 움직임 벡터 예측기를 위한 레퍼런스 픽처의 유형 또는 "방향"은 디코더에 신호되므로, 디코더가 레퍼런스 인덱스를 결정할 필요는 없지만, 유도된 레퍼런스 인덱스를 이용하여 디코더는 인코더가 예측 레퍼런스로 이용하도록 선택한 레퍼런스 픽처를 찾을 수 있다. 이러한 시그널링은 예를 들어 다음과 같이 수행될 수 있다. 움직임 벡터 정의기(361)가 상이한 유형 또는 "방향"의 가능성 있는 후보들 사이에서 시간적 움직임 벡터 예측을 위한 레퍼런스 인덱스(예를 들어, 동일 유형의 픽처 사이에서 레퍼런스 픽처 리스트 내에서 가장 작은 레퍼런스 인덱스를 갖는 각각의 유형의 레퍼런스 픽처)를 선택할 때, 움직임 벡터 정의기(361)는 블록 프로세서(381)로 레퍼런스 인덱스를 통지하고, 여기서 블록 프로세서(381) 또는 인코더의 다른 요소는 레퍼런스 픽처의 유형 또는 "방향"을 슬라이스 헤더에 추가하거나 또는 예컨대 Adaptation Parameter Set, Picture Parameter Set 및/또는 Sequence Parameter Set처럼 슬라이스 레벨보다 높은 다른 레벨에서 신택스 요소에 추가할 것이다. 또한, 일부 실시예들에서, 슬라이스 헤더 레벨 시그널링의 존재가 Adaptation Parameter Set, Picture Parameter Set 및/또는 Sequence Parameter Set와 같은 임의의 유형일 수 있는 활성 파라미터 집합에 표기될 수 있다.
다음 설명에서, 디코더(600)의 예시적인 실시예의 동작이 도 7을 참조하여 상세히 설명된다.
디코더 측에서는 유사한 동작이 수행되어 이미지 블록을 재구성한다. 도 7은 본 발명의 실시예를 활용하기 적합한 비디오 디코더(700)의 블록도를 예시한다. 디코딩될 비트 스트림은 인코더, 네트워크 요소, 저장 매체 또는 다른 소스로부터 수신될 것이다. 디코더는 비트 스트림의 구조를 인지하므로, 엔트로피 코딩된 코드 워드의 의미를 결정할 수 있고, 수신 신호에 대해 엔트로피 디코딩을 수행하는 엔트로피 디코더(701)에 의해 비트 스트림을 디코딩할 수 있다. 그러므로 엔트로피 디코더는 전술한 인코더의 엔트로피 인코더(330)의 역 동작을 수행한다. 엔트로피 디코더(701)는 엔트로피 디코딩의 결과를 예측 오류 디코더(702)와 화소 예측기(704)로 출력한다.
일부 실시예에서, 엔트로피 코딩은 이용되지 않을 수도 있지만 다른 채널 인코딩이 이용될 수도 있고, 또는 인코딩된 비트 스트림이 채널 인코딩없이 디코더(700)로 제공될 수도 있다. 디코더(700)는 수신된 신호로부터 인코딩된 코드 워드를 획득하기 위해 대응하는 채널 디코더를 포함한다.
화소 예측기(704)는 엔트로피 디코더(701)의 출력을 수신한다. 엔트로피 디코더(701)의 출력은 현재 블록을 인코딩하는데 이용된 예측 모드에 대한 지시를 포함할 것이다. 화소 예측기(704) 내부의 예측기 선택기(714)는 인트라-예측 또는 인터-예측이 수행될 것인지 결정한다. 예측기 선택기(714)는 이미지 블록(716)의 예측된 표시를 제1 조합기(713)로 출력한다. 이미지 블록(716)의 예측된 표시는 재구성된 예측 오류 신호(712)와 함께 이용되어, 예비 재구성된 이미지(718)를 발생한다. 예비 재구성된 이미지(718)는 예측기(714)에서 이용되거나 또는 필터(720)로 전달된다. 필터(720)가 만약 이용된다면 필터(720)는 필터링을 적용하여 최종 재구성된 신호(722)를 출력한다. 최종 재구성된 신호(722)는 레퍼런스 프레임 메모리(724)에 저장되는데, 레퍼런스 프레임 메모리(724)는 예측 동작을 위해 예측기(714)에 연결되어 있다.
예측 오류 디코더(702)는 엔트로피 디코더(701)의 출력을 수신한다. 예측 오류 디코더(702)의 역 양자화기(792)는 엔트로피 디코더(701)의 출력을 역 양자화하고, 역 변환 블록(793)은 역 양자화기(792)에 의해 출력된 역 양자화 신호에 대해 역 변환 동작을 수행할 것이다. 엔트로피 디코더(701)의 출력은 예측 오류 신호가 인가되지 않음을 지시할 수도 있으며, 이 경우 예측 오류 디코더는 모든 0의 출력 신호를 산출한다.
디코더는 재구성하는 코딩 유닛을 선택한다. 이 코딩 유닛을 현재 블록이라고도 부른다.
디코더는 현재 블록의 인코딩에서 이용된 인코딩 모드에 대한 정보를 수신한다. 필요하다면 그 지시 내용이 디코딩되어 예측 선택기(714)의 재구성 프로세서(791)로 제공된다. 재구성 프로세서(791)는 그 지시 내용을 검사하고, 만약에 그 지시 내용이 블록이 인트라 예측을 이용해 인코딩되었다고 지시한다면, 인트라-예측 모드 중 하나를 선택하고, 또는 만약에 그 지시 내용이 블록이 인터-예측을 이용해 인코딩되었다고 지시한다면 인터-예측 모드를 선택한다. 인터 예측 모드는 또한 시점간 모드 및/또는 계층간 모드도 포함할 수 있다.
인터-예측 모드의 경우, 재구성 프로세서(791)는 예컨대 움직임 벡터 정의기, 예측 리스트 수정기 및/또는 움직임 벡터 선택기처럼 인코더의 예측 프로세서(362)에 대응하는 하나 이상의 요소를 포함할 것이다.
재구성 프로세서(791)는 움직임 벡터 후보 리스트를 구성할 때의 인코더와 유사한 원리를 이용하여 수신 및 디코딩된 정보에 기반하여 움직임 벡터 예측 후보 리스트를 재구성한다(도 9에서 블록(900, 902)으로 예시됨).
병합 리스트가 구성될 때, 디코더는 인코더로부터 수신(904)된 움직임 벡터의 지시를 이용(828)하여 현재 블록을 디코딩하기 위한 움직임 벡터를 선택(906)한다. 그 지시 내용은 예를 들면 병합 리스트에 대한 인덱스일 수 있다.
병합 모드에서, 일부 실시예로 재구성 프로세서(791)는 슬라이스 헤더로부터 또는 상위 레벨의 신택스 요소로부터 선택된 시간적 움직임 벡터 예측의 레퍼런스 인덱스를 수신한다. 일부 다른 실시예로, 디코더는 레퍼런스 인덱스를 수신하지 않고, 인코더가 현재 블록을 위해 레퍼런스로서 선택했던 시간적 움직임 벡터 예측 픽처의 레퍼런스 인덱스를 결정하기 위해서 인코더와 유사하거나 동일한 분석 또는 유도를 수행할 수도 있다. 이런 분석 또는 유도의 예시적인 실시예가 위에 설명되었다.
일부 실시예에서, 디코더는 선택된 시간적 움직임 벡터 예측의 레퍼런스 인덱스가 비트 스트림 내에(예컨대, 도 5b의 블록(514)에 예시된 것처럼 신택스 요소 내에) 신호되는지, 또는 디코더가 선택된 시간적 움직임 벡터 예측의 레퍼런스 인덱스를 결정해야 하는지를 지시하는 파라미터를 비트 스트림으로부터 갖거나 디코딩할 수 있다. 일부 다른 실시예에서, 선택된 시간적 움직임 벡터 예측의 레퍼런스 인덱스가 비트 스트림 내에 신호되는지의 여부를 지시하는 파라미터가 예컨대 일부 신택스 요소 내에서 디코더로 신호될 수도 있다.
일부 실시예에서, 재구성 프로세서(791)는 병합 모드의 맥락에서 시간적 움직임 벡터 예측을 위한 선택된 레퍼런스 픽처의 레퍼런스 픽처의 유형 또는 "방향"을 슬라이스 헤더 또는 상위 레벨의 신택스 요소로부터 수신할 수 있다. 이후, 디코더는 인코더가 레퍼런스 인덱스를 유도한 방식과 유사하거나 동일한 방식으로 지시된 유형 또는 "방향"으로부터 레퍼런스 인덱스를 유도할 수 있다. 유형 또는 "방향"으로부터 레퍼런스 인덱스를 유도하는 예시적인 실시예는 위에서 설명되었다.
기본적으로, 재구성 프로세서(791)가 원래 병합 리스트와, 조합된 후보를 포함하는 병합 리스트를 구성한 이후에, 만약 재구성 프로세서(791)가 인코더가 가졌던 유효한 동일한 정보를 갖는다면, 이 리스트들은 원래 병합 리스트와, 인코더에 의해 구성된 조합된 후보를 포함하는 병합 리스트에 대응한다. 만약 일부 정보가 인코더로부터 디코더로 전송되는 동안 손실되었다면, 이것은 디코더(700)에서의 병합 리스트 발생에 영향을 줄 수 있다.
위의 예들은 병합 모드에서의 동작을 주로 설명하지만 인코더와 디코더는 다른 모드로 동작할 수도 있다.
예시적인 실시예에서, 신택스 구조, 신택스 요소의 시맨틱 및 디코딩 프로세스는 다음과 같이 명시될 수 있다. 비트 스트림에서 신택스 요소는 굵은 활자로 표시된다. 각각의 신택스 요소는 그 이름('_' 표시와 함께 모두 소문자)과, 선택적으로 하나 또는 두 개의 신택스 카테고리와, 코딩 표시법과 관련한 하나 또는 두 개의 디스크립터(descriptor)로 설명된다. 디코딩 프로세스는 신택스 요소의 값이나 또는 이전에 디코딩된 신택스 요소의 값에 따라서 작용한다. 신택스 요소의 값이 신택스 테이블 또는 텍스트에서 이용될 때, 이것은 정규 활자, 즉, 굵지 않은 활자)로 나타난다. 일부 경우, 신택스 표는 신택스 요소로부터 유도된 다른 변수의 값을 이용할 수도 있다. 이러한 변수는 신택스 표 또는 텍스트에 나타나며, '_' 표시 없이 대문자와 소문자가 혼합되어 명명되어 있다. 대문자로 시작하는 변수는 현재 신택스 구조와 모든 의존성 신택스 구조의 디코딩을 위해 유도된다. 대문자로 시작하는 변수는 변수의 원래 신택스 구조를 언급함이 없이 나중의 신택스 구조와 관련해 디코딩 프로세스에서 이용될 수 있다. 소문자로 시작하는 변수는 오로지 그 변수가 유도되는 콘텍스트 내부에서 이용된다. 일부 경우, "신택스 요소값이나 변수값과 관련한 "연상기호(mnemonic)" 이름은 그들 수치값과 호환적으로 이용된다. 때때로 "연상기호" 이름은 연관된 수치값이 없이도 이용된다. 값과 이름의 연관성은 텍스트에 명시된다. 이름은 '-' 표시에 의해 분리된 하나 이상의 문자 그룹으로부터 구성된다. 각각의 그룹은 하나의 대문자로 시작하고, 더 많은 대문자를 포함할 수도 있다.
예시적인 실시예에서, 예를 들어 H.264/AVC 또는 HEVC 초안에 명시되어 있듯이, 산술 연산자, 논리 연산자, 관계 연산자, 비트별 연산자, 할당 연산자 및 범위 연산자를 위한 일반적인 기호법이 이용될 수 있다. 더 나아가, 예를 들어 H.264/AVC 또는 HEVC 초안에 명시되어 있듯이, 일반적인 수학적 함수가 이용될 수 있고, 예를 들어 H.264/AVC 또는 HEVC 초안에 명시되어 있듯이, 연산자의 우선순위 및 실행 순서의 일반적인 순서(좌에서 우로 또는 우에서 좌로)도 이용될 수 있다.
예시적인 실시예에서, 다음의 디스크립터가 각각의 신택스 요소의 파싱 프로세스(parsing process)를 명시하기 위해 이용될 수 있다. 즉,
-b(8):임의의 패턴의 비트 스트링을 갖는 바이트(8비트)이고
-se(v):먼저 왼쪽 비트가 먼저인 부호를 갖는 정수 Exp-Golomb-coded 신택스 요소이며
-u(n):n비트를 이용하는 부호가 없는 정수이다. n이 신택스 표에서 "v"일 때, 비트의 개수는 다른 신택스 요소의 값에 따르는 방식으로 변한다. 이런 디스크립터와 관련한 파싱 프로세스는 MSB가 먼저 기입되는 부호가 없는 정수의 이진 표시로서 해석되는 비트 스트림으로부터 n개의 다음 비트로 명시된다.
-ue(v):왼쪽 비트가 먼저인 부호가 없는 정수 Exp-Golomb-coded 신택스 요소이다.
Exp-Golomb 비트 스트링은 예를 들어 다음의 표를 이용하여 코드 번호(codeNum)로 변환될 것이다.
Figure 112015007017757-pct00002
Exp-Golomb 비트 스트링에 대응하는 코드 번호는 예를 들어 다음 표를 이용하여 se(v)로 변환될 수 있다.
Figure 112015007017757-pct00003
예시적인 실시예에서, 신택스 구조는 다음을 이용하여 명시될 수 있다. 괄호안에 명령문 그룹(a group of statements)은 복합 명령문이며, 기능적으로 단일 명령문처럼 취급된다. "while" 구조는 조건이 참인지에 대한 검사를 명시하고, 만약 참이라면, 조건이 더이상 참이 아닐 때까지 반복적으로 명령문(또는 복합 명령문)의 평가를 명시한다. "do...while" 구조는 명령문의 평가를 한번 명시하고 다음에 조건이 참인지에 대한 검사가 뒤따르며, 만약 참이라면, 조건이 더이상 참이 아닐 때까지 명령문의 반복된 평가를 명시한다. "if...else" 구조는 조건이 참인지에 대한 검사를 명시하고, 만약 조건이 참이라면, 주요 명령문의 평가를 명시하고, 그렇지 않다면 대체 명령문의 평가를 명시한다. 이 구조 및 그 연관된 대체 명령문의 의 "else" 부분은 대체 명령문 평가가 요구되지 않는 경우라면 생략된다. "for" 구조는 초기 명령문의 평가와, 그 다음에 후속되는 조건의 검사를 명시하는데, 만약에 조건이 참이라면, 조건이 참이 아닐 때까지 주요 명령문과 그에 후속하는 명령문의 반복된 평가를 명시한다.
일부 실시예에서는 전술한 바와 같이 시간적 움직임 벡터 예측기를 위한 레퍼런스 인덱스가 디코더로 신호되므로 디코더가 레퍼런스 인덱스를 결정할 필요는 없지만, 디코더는 신호된 레퍼런스 인덱스를 이용하여 인코더가 예측 레퍼런스로 이용하기 위해 선택했던 레퍼런스 픽처를 찾아야 한다. 이런 시그널링은 예를 들어 슬라이스 헤더 신택스 구조에서 인코더에 의해 수행될 수 있다. 예를 들어, merge_tmvp_ref_idx 신택스 요소가 슬라이스 헤더 신택스 구조에 다음처럼 추가될 수 있다.
Figure 112015007017757-pct00004
merge_tmvp_ref_idx는 예컨대 레퍼런스 픽처 리스트 0 같은 레퍼런스 픽처 리스트 내의 레퍼런스 픽처의 인덱스를 지시하고, 이로부터 시간적 움직임 벡터 예측기가 유도된다. 예를 들어, 시간적 병합 후보, 예컨대 시간적 움직임 벡터 예측을 이용하는 병합 후보의 레퍼런스 인덱스는 인코딩 및/또는 디코딩 프로세스에서 merge_tmvp_ref_idx와 동일하게 설정될 수 있다.
일부 실시예에서, 전술한 것처럼, 시간적 움직임 벡터 예측기를 위한 레퍼런스 픽처의 유형 또는 "방향"이 예를 들면 슬라이스 헤더에서 인코더에 의해 신호된다. 예를 들어, merge_tmvp_ref_type 신택스 요소가 다음처럼 슬라이스 헤더 신택스 구조에 추가될 수 있다.
Figure 112015007017757-pct00005
merge_tmvp_ref_type은 예컨대 레퍼런스 픽처 리스트 0 같은 레퍼런스 픽처 리스트 내의 레퍼런스 픽처의 유형 또는 "방향"을 지시할 수 있고, 이로부터 시간적 움직임 벡터 예측기가 유도된다. 0인 merge_tmvp_ref_type은 시간적 레퍼런스 픽처, 즉, 현재 픽처와 동일한 계층 및 시점의 레퍼런스 픽처를 지시할 수 있다. 1인 merge_tmvp_ref_type은 시점간 레퍼런스 픽처, 즉, 현재 픽처와 다른 시점에서의 레퍼런스 픽처를 지시할 수 있다. 2인 merge_tmvp_ref_type은 계층간 레퍼런스 픽처, 즉, 현재 픽처와 다른 계층의 레퍼런스 픽처를 지시할 수 있다. 예를 들어, 시간적 병합 후보를 위한 레퍼런스 인덱스, 즉, 시간적 움직임 벡터 예측을 이용하는 병합 후보는 인코딩 및/또는 디코딩 프로세스에서 레퍼런스 픽처 리스트 0 내에서 지시된 유형을 갖는 레퍼런스 픽처의 가장 작은 인덱스와 동일하게 설정될 수 있다.
일부 실시예에서, 전술한 것처럼, 시간적 움직임 벡터 예측기를 위한 레퍼런스 인덱스와 관련한 유도 프로세스는 인코더에 의해 예를 들면 Adaptation Parameter Set, Picture Parameter Set 및/또는 Sequence Parameter Set처럼 슬라이스 헤더 내에 또는 슬라이스 레벨보다 높은 레벨에서 신호될 수 있다. 예를 들어, merge_tmvp_derivation_type 신택스 요소는 다음처럼 픽처 파라미터 집합 신택스 구조에 추가될 수 있다.
Figure 112015007017757-pct00006
merge_tmvp_derivation_type은 예컨대 레퍼런스 픽처 리스트 0 같은 레퍼런스 픽처 리스트 내의 레퍼런스 픽처의 레퍼런스 인덱스를 유도하는 유도 프로세스를 지시할 수 있는데, 이로부터 시간적 움직임 벡터 예측기가 유도된다. 0인 merge_tmvp_derivation_type은 시간적 움직임 벡터 예측기를 유도하는데 적합하거나 유효한 것으로 추론되거나 지시된 유형 또는 "방향"을 갖는 예컨대 레퍼런스 픽처 리스트 0 같은 레퍼런스 픽처 리스트 내의 가장 작은 인덱스가 이용된다. 만약 유형 또는 "방향"이 추론되면, 이것은 예를 들어 시간적 레퍼런스 픽처만을 포함할 수도 있다. 만약 유형 또는 "방향"이 지시된다면, 이 지시는 예를 들면 전술한 것과 같은 merge_tmvp_ref_type을 위한 신택스를 이용하여 수행될 수 있다. 1인 merge_tmvp_derivation_type은 동일한 계층/시점 내에서의 예컨대 절대 픽처 순서 카운트 차이와 관련하여 가장 근접한 레퍼런스 픽처가 시간적 움직임 벡터 예측을 유도하기 위해 이용됨을 지시할 것이다. 만약에 현재 픽처와 비교해 동일한 절대 픽처 순서 카운트 차이를 갖는 두 개의 픽처가 존재한다면, 유한 조건이 이 두 개의 픽처 사이에서의 선택에 이용되어, 예컨대 현재 픽처에 대해 항상 양의 부호를 갖는 픽처를 선택한다.
일부 실시예에서, 전술한 것처럼, 슬라이스 헤더 레벨 시그널링(예를 들면, 위에 있는 것 같은 merge_tmvp_ref_idx 신택스 요소)의 존재는 활성 파라미터 집합에 지시될 수 있는데, 이것은 Adaptation Parameter Set, Picture Parameter Set 및/또는 Sequence Parameter Set처럼 임의의 유형을 가질 수 있다. 예를 들어, Picture Parameter Set 신택스 구조 또는 그와 유사한 구조는 다음이 첨부될 수 있다.
Figure 112015007017757-pct00007
0인 merge_tmvp_ref_idx_present_flag는 예컨대 merge_tmvp_ref_idx 같은 관련 슬라이스 헤더 레벨 신택스 요소가 존재하지 않음을 지시할 수 있다. 1인 merge_tmvp_ref_idx_present_flag는 관련 슬라이스 헤더 레벨 신택스가 존재함을 지시할 수 있다. merge_tmvp_ref_idx_present_flag 또는 그와 유사한 것을 파라미터 집합 신택스 구조에 추가하여 슬라이스 헤더 신택스는 예를 들어 다음과 같이 변경될 수 있다.
Figure 112015007017757-pct00008
도 1은 예시적인 실시예에 따른 비디오 코딩 시스템의 블록도를 예시적인 장치 또는 전자 디바이스(50)의 개략적인 블록도로서 도시하는데, 이 장치는 본 발명의 일 실시예에 따라 코덱에 포함될 수 있다. 도 2는 예시적인 실시예에 따른 장치의 레이아웃을 도시한다. 도 1 및 도 2의 요소들은 다음에 설명될 것이다.
전자 디바이스(50)는 예를 들어 무선 통신 시스템의 모바일 단말기 또는 사용자 장비일 수 있다. 그러나 본 발명의 실시예는 비디오 이미지를 인코딩 및 디코딩하는 것을 필요로 하거나 또는 비디오 이미지를 인코딩 또는 디코딩하는 것을 필요로 하는 모든 전자 디바이스 또는 장치 내부에 구현될 수 있음을 인지해야 한다.
장치(50)는 디바이스를 포함 및 보호하는 하우징(30)을 포함할 수 있다. 장치(50)는 LCD 형태로 디스플레이(32)를 포함할 수도 있다. 본 발명의 다른 실시예에서, 디스플레이는 이미지 또는 비디오를 표시하기에 적합한 임의의 적정한 디스플레이 기술일 것이다. 장치(50)는 키패드(34)를 더 포함할 수도 있다. 본 발명의 다른 실시예에서, 임의의 적합한 데이터 또는 사용자 인터페이스 메커니즘이 채용될 수도 있다. 예를 들어, 사용자 인터페이스는 터치 감응성 디스플레이의 일부로서 가상 키보드 또는 데이터 엔트리 시스템으로서 구현될 수도 있다. 장치는 디지털 또는 아날로그 신호 입력일 수 있는 마이크로폰(36)이나 임의의 적절한 오디오 입력을 포함할 수도 있다. 장치(50)는 오디오 출력 디바이스도 포함할 수 있는데, 본 발명의 일 실시예에서 이것은 이어피스(38), 스피커 또는 아날로그 오디오 또는 디지털 오디오 출력 연결부 중 하나일 수 있다. 장치(50)는 배터리(40)를 포함할 수도 있다(또는 본 발명의 다른 실시예에서는 디바이스가 예컨대 태양 전지, 연료 전지 또는 태엽 발전기 같은 임의의 적합한 모바일 에너지 디바이스일 수도 있다). 장치는 다른 장치에 대한 단거리 가시거리 내 통신을 위해 적외선 포트(42)를 더 포함할 수도 있다. 다른 실시예로, 장치(50)는 예를 들어 블루투스 무선 연결이나 USB/파이어와이어(firewire) 접속 연결 같은 임의의 적절한 단거리 통신 솔루션을 더 포함할 수도 있다.
장치(50)는 장치(50)를 제어하는 컨트롤러(56) 또는 프로세서를 포함할 수 있다. 컨트롤러(56)는 메모리(58)에 연결될 수 있는데, 메모리는 본 발명의 실시예에서 데이터를 이미지와 오디오 데이터의 형태로 데이터를 저장할 수 있고/있거나 컨트롤러(56)에 대한 구현을 위한 명령어를 저장할 수도 있다. 제어기(56)는 오디오 및/또는 비디오 데이터의 코딩 및 디코딩을 지원하기 적합하거나 컨트롤러(56)에 의해 수행된 코딩 및 디코딩을 지원하기 적합한 코덱 회로(54)에 연결될 수 있다.
장치(50)는 카드 판독기(48)와 스마트 카드(46)를 더 포함할 수 있는데, 예를 들면 사용자 정보를 제공하고 네트워크에서 사용자의 인증 및 승인을 위한 인증 정보를 제공하기 적합한 UICC 및 UICC 판독기를 포함할 수 있다.
장치(50)는 컨트롤러에 연결되어 예컨대 셀룰러 통신 네트워크, 무선 통신 시스템 또는 무선 LAN과의 통신을 위해 무선 통신 신호를 발생하기 적합한 무선 인터페이스 회로(52)를 포함할 수도 있다. 장치(50)는 무선 인터페이스 회로(52)에서 발생된 무선 주파수 신호를 다른 장치로 전송하고 다른 장치(들)로부터 무선 주파수 신호를 수신하기 위해 무선 인터페이스 회로(52)에 연결된 안테나(44)를 더 포함할 수도 있다.
본 발명의 일부 실시예에서, 장치(50)는 처리를 위해 코덱(54) 또는 컨트롤러로 전달되는 개별 프레임을 기록 또는 검출할 수 있는 카메라를 더 포함할 수도 있다. 본 발명의 일부 실시예에서, 장치는 전송 및/또는 저장 이전에 다른 장치로부터 처리를 위해 비디오 이미지 데이터를 수신할 수도 있다. 본 발명의 일부 실시예에서, 장치(50)는 코딩/디코딩을 위한 이미지를 무선 또는 연결로 수신할 수도 있다.
도 3은 일 실시예에 따라 복수의 장치, 네트워크 및 네트워크 요소를 포함하는 비디오 코딩을 위한 구성을 도시한다. 도 3과 관련하여, 본 발명의 실시예들이 활용될 수 있는 시스템의 일 예가 도시된다. 시스템(10)은 하나 이상의 네트워크를 통해 통신 가능한 다중 통신 장치를 포함할 수 있다. 시스템(10)은, 한정하려는 것은 아니지만, 무선 셀룰러 전화망(예컨대, GSM, UMTS, CDMA 네트워크 등), 예컨대 IEEE 802.x 표준 중 어떤 것에 정의된 무선 LAN(WLAN), 블루투스 개인 통신망(PAN), 이더넷 LAN, 토큰 링 LAN, 광역 통신망 및 인터넷을 포함하는 유선 또는 무선 네트워크의 임의의 조합을 포함할 수도 있다.
시스템(10)은 본 발명의 실시예를 구현하기 적합한 유선 및 무선 통신 디바이스 또는 장치(50) 모두를 포함할 수도 있다. 예를 들어, 도 3에 도시된 시스템은 모바일 전화망(11)과 인터넷(28)의 표시를 보여준다. 인터넷(28)에 대한 연결성은, 한정하려는 것은 아니지만, 장거리 무선 연결 및 단거리 무선 연결을 포함할 수 있으며, 예컨대 전화선, 케이블, 전력선 및 그와 유사한 통신 패스웨이를 포함하는 다양한 유선 연결도 포함할 수 있다.
시스템(10)에 도시된 예시의 통신 디바이스는, 한정하려는 것은 아니지만, 전자 디바이스 또는 장치(500, PDA와 모바일 전화기(14)의 조합, PDA(16), IMD(18), 데스크탑 컴퓨터(20), 노트북 컴퓨터(22)를 포함할 수도 있다. 장치(50)는 고정형일 수도 있고 또는 이동중인 개인에 의해 운반될 때에는 이동형일 수도 있다. 장치(50)는 운송수단 모드에 위치될 수도 있는데, 한정하려는 것은 아니지만, 운송수단으로는 자동차, 트럭, 택시, 버스, 기차, 보트, 비행기, 자전거, 모터사이클, 또는 운송수단 모드에 적합한 임의의 유사 수단 등을 포함할 수 있다.
일부 또는 추가 장치가 호(call)와 메시지를 전송 및 수신하고, 기지국(24)에 대한 무선 연결(25)을 통해 서비스 공급자와 통신할 수도 있다. 기지국(24)은 모바일 전화 네트워크(11)와 인터넷(28) 사이에 통신을 허용하는 네트워크 서버(26)에 연결될 수 있다. 시스템은 추가의 통신 디바이스와 여러 유형의 통신 디바이스를 포함할 수도 있다.
통신 디바이스는 다양한 전송 기법을 이용해 통신할 수 있는데, 한정하려는 것은 아니지만, 이러한 통신 기법으로는 CDMA, GSM, UMTS, TDMA, FDMA, TCP-IP, SMS, MMS, 이메일, IMS, 블루투스, IEEE 802.11 및 임의의 유사한 무선 통신 기법 등이 있다. 본 발명의 다양한 실시예를 구현하는데 관련된 통신 디바이스는 다양한 매체들을 이용하여 통신하는데, 한정하려는 것은 아니지만, 이러한 매체로는 무선, 적외선, 레이저, 케이블 연결 및 임의의 적합한 연결 등이 있다.
전술한 내용에서, 예시적인 실시예는 인코더를 참조하여 설명되었고, 이것은 최종 비트 스트림과 디코더가 대응하는 요소를 포함한다는 사실을 이해하는 것을 필요로 한다. 이와 마찬가지로, 예시의 실시예들은 디코더를 참조하여 설명되었고, 인코더는 디코더에 의해 디코딩될 비트 스트림을 생성하기 위한 컴퓨터 프로그램 및/또는 구조를 갖는다는 것이 이해되어야 한다.
비록 전술한 예들이 전자 디바이스 내부의 코덱 내부에서 동작하는 본 발명의 실시예를 설명하더라도, 아래에 설명된 것처럼 본 발명은 모든 비디오 코덱의 일부로서 구현될 수 있음을 인지할 것이다. 그러므로 본 발명의 실시예는 고정형 또는 유선 통신 경로를 통한 비디오 코딩을 구현할 수 있는 비디오 코덱에 구현될 수도 있다.
따라서 사용자 장비는 본 발명의 실시예에 설명된 것과 같은 비디오 코덱을 포함할 수 있다. 사용자 장비라는 용어는 예컨대 모바일 전화기, 휴대용 데이터 처리 디바이스 또는 휴대용 웹 브라우저 같은 임의의 적합한 유형의 무선 사용자 장비를 포함하도록 의도되었음을 인지할 것이다.
더 나아가, PLMN((Public Land Mobile Network)의 요소들이 전술한 것과 같은 비디오 코덱을 포함할 수도 있다.
일반적으로, 본 발명의 다양한 실시예들은 하드웨어 또는 전용 회로, 소프트웨어, 로직 또는 이들의 임의의 조합으로 구현될 수도 있다. 예를 들어, 일부 양상들은 하드웨어로 구현되고, 반면에 다른 양상들은 컨트롤러, 마이크로프로세서 또는 다른 컴퓨팅 장치에 의해 실행되는 펌웨어나 소프트웨어로 구현될 수도 있는데, 본 발명이 이것에만 한정되는 것은 아니다. 본 발명의 다양한 양상이 블록도, 흐름도 또는 일부 다른 도식적 표시로서 예시 및 설명되었지만, 본원에 설명된 이러한 블록, 장치, 시스템, 기술 또는 방법은 비 제한적인 예로서 하드웨어, 소프트웨어, 펌웨어, 전용 회로나 로직, 범용 하드웨어나 컨트롤러 또는 다른 컴퓨팅 디바이스, 또는 이들의 일부 조합으로 구현될 수도 있다.
본 발명의 실시예는 모바일 장치의 데이터 프로세서에 의해 실행 가능한 컴퓨터 소프트웨어로 구현될 수도 있는데, 예를 들면 프로세서 엔티티에서 하드웨어에 의해, 또는 소프트웨어와 하드웨어의 조합에 의해 구현될 수도 있다. 또한, 이와 관련하여 도면에서처럼 임의의 논리 흐름 블록은 프로그램 단계를 나타내거나, 상호 연결된 로직 회로, 블록 및 기능들을 나타내거나 또는 프로그램 단계와 로직 회로, 블록 및 기능들의 조합을 나타낼 수도 있다. 소프트웨어는 메모리 칩이나 프로세서 내부에 구현된 메모리 블록 같은 물리적 매체, 하드 디스크나 플로피 디스크 같은 자기적 매체, 또는 DVD와 그 데이터 변형, CD 같은 광학적 매체에 저장될 수 있다.
본 발명의 다양한 실시예들은 메모리에 상주하는 컴퓨터 프로그램 코드의 도움으로 구현될 수도 있는데, 이 컴퓨터 프로그램 코드는 관련 장치로 하여금 본 발명을 수행하게 한다. 예를 들어, 단말기 디바이스는 데이터를 취급, 수신 및 전송하는 회로와 전자장치, 메모리 내의 컴퓨터 프로그램 코드 및 프로세서를 포함할 수 있고, 이 프로세서는 컴퓨터 프로그램 코드를 실행할 때, 단말기 디바이스로 하여금 본 발명의 특징을 수행하게 한다. 또한, 네트워크 다바이스는 데이터를 취급, 수신 및 전송하는 회로와 전자장치, 메모리 내의 컴퓨터 프로그램 코드 및 프로세서를 포함하는데, 이 프로세서는 컴퓨터 프로그램 코드를 실행할 때, 네트워크 디바이스로 하여금 실시예의 특징을 수행하게 한다.
메모리는 국소적 기술 환경에 적합한 임의의 형태일 수 있으며, 반도체 기반 메모리 장치, 자기 메모리 장치 및 시스템, 광학적 메모리 장치 및 시스템, 고정형 메모리 및 제거 가능 메모리처럼 임의의 적합한 데이터 저장 기술을 이용하여 구현될 수 있다. 데이터 프로세서는 국소적 기술 환경에 적합한 임의의 유형일 수 있는데, 비 제한적인 예로서, 범용 컴퓨터, 전용 컴퓨터, 마이크로프로세서, DSP 및 다중 코어 프로세서 아키텍처에 기반한 프로세서 중 하나 이상을 포함할 수 있다.
본 발명의 실시예는 집적회로 모듈처럼 다양한 성분들로 실시될 수 있다. 집적회로의 디자인은 고도로 자동화된 프로세스에 의해 이루어진다. 복합적이고 강력한 소프트웨어 툴이 로직 레벨 디자인을 반도체 회로 디자인으로 변환하는데 이용 가능하고, 이 반도체 회로 디자인은 반도체 기판 위에 에칭 및 형성되도록 준비된다.
예컨대 캘리포니아주의 마운틴 뷰에 위치한 Synopsys Inc.와 캘리포니아주 산 호세에 위치한 Cadende Design가 제공하는 프로그램은 사전 저장된 디자인 모듈의 라이브러리와 더불어 잘 설정된 디자인 규칙을 이용하여 자동으로 도전체의 경로를 정하고 반도체 칩 상에 성분들을 위치시킨다. 일단 반도체 회로를 위한 디자인이 완료되면, 최종 디자인은 표준화된 전자 포맷(예컨대, Opus, GDSII 또는 그와 유사한 것들)으로 반도체 제조 설비 또는 제조용 "팹(fab)"으로 전송될 것이다.
전술한 설명은 본 발명의 예시적인 실시예의 완전하고 유용한 설명을 예시와 비 제한적인 예로서 제공한다. 그러나 전술한 설명을 첨부 도면 및 청구 범위와 함께 읽을 때, 당업자에게는 전술한 설명의 관점에서 다양한 수정안과 변형안이 명확해질 것이다. 그러나 본 발명의 사상에 대한 이러한 유사 수정안들은 여전히 본 발명의 범주 내에 있을 것이다.
다음에 일부 예들이 설명될 것이다.
제1 예에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하는 단계와; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 단계와; 움직임 벡터 예측을 위해 예측 레퍼런스 후보를 선택하는 단계와; 상기 선택된 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스를 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소에 제공하는 단계를 포함하는 방법이 제공된다.
이 방법의 일부 실시예에서, 상기 예측 레퍼런스 후보 리스트는 하나 이상의 시간적 레퍼런스 픽처를 포함하고; 상기 움직임 벡터 예측은 시간적 움직임 벡터 예측이다.
일부 실시예에서, 이 방법은 병합 코딩 모드에서 이 방법을 이용하는 단계를 포함한다.
일부 실시예에서, 이 방법은 하나 이상의 슬라이스, 하나 이상의 코딩 유닛, 하나 이상의 프레임 또는 하나 이상의 픽처를 위해 상기 움직임 벡터 예측을 수행하는 단계를 포함한다.
이 방법의 일부 실시예에서, 상기 선택 단계는 제1 레퍼런스 인덱스와 연관된 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효한지를 검사하는 단계와; 상기 검사 단계가 상기 제1 레퍼런스 인덱스를 갖는 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효하지 않음을 지시하는 경우, 상기 리스트가 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함하는지를 추가로 검사하는 단계와; 상기 추가 검사 단계가 상기 리스트가 상기 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함함을 지시하는 경우, 상기 다른 예측 레퍼런스 후보와 연관된 상기 레퍼런스 인덱스를 상기 신택스 요소에 제공하는 단계를 포함한다.
일부 실시예에서, 이 방법은 픽처에 대해 픽처 순서 카운트를 제공하는 단계를 포함하는데, 이때 상기 검사 단계는 상기 픽처의 픽처 순서 카운트를 레퍼런스 픽처의 픽처 순서 카운트와 비교하는 단계를 포함하되, 상기 픽처의 픽처 순서 카운트가 상기 레퍼런스 픽처의 픽처 순서 카운트와 동일한 경우, 상기 레퍼런스 픽처가 상기 슬라이스를 위한 시간적 움직임 벡터 예측에 유효하지 않음을 결정하는 단계를 포함한다.
일부 실시예에서, 이 방법은 레퍼런스 인덱스의 증가 순서대로 상기 예측 레퍼런스 후보 리스트를 검사하는 단계와; 시간적 움직임 벡터 예측에 유효한 상기 제1 레퍼런스 픽처를 선택하는 단계를 포함한다.
일부 실시예에서, 이 방법은 상기 레퍼런스 픽처의 유형, 픽처 순서 카운트 및 코딩 모드 중 하나 이상에 근거하여 상기 유효성을 결정하는 단계를 포함한다.
이 방법의 일부 실시예에서, 상기 신택스 요소는 슬라이스 헤더에서 신호된다.
일부 실시예에서, 이 방법은 상기 슬라이스 헤더의 존재를 적응 파라미터 집합(aptation parameter set), 픽처 파라미터 집합(picture parameter set) 또는 시퀀스 파라미터 집합(sequence parameter set) 내에 시그널링하는 단계를 포함한다.
이 방법의 일부 실시예에서, 상기 신택스 요소는 적응 파라미터 집합, 픽처 파라미터 집합 및 시퀀스 파라미터 집합 중 하나에서 신호된다.
일부 실시예에서, 이 방법은 비 압축된 픽처를 상기 슬라이스를 포함하는 코딩된 픽처로 인코딩하는 단계를 포함한다.
제2 실시예에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하는 단계와; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 단계와; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 인코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하는 단계를 포함하는 방법이 제공된다.
이 방법의 일부 실시예에서, 상기 예측 레퍼런스 후보 리스트는 하나 이상의 시간적 레퍼런스 픽처를 포함하고; 상기 움직임 벡터 예측은 시간적 움직임 벡터 예측이다.
이 방법의 일부 실시예에서, 상기 선택 단계는 제1 레퍼런스 인덱스와 연관된 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효한지를 검사하는 단계와; 상기 검사 단계가 상기 제1 레퍼런스 인덱스를 갖는 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효하지 않음을 지시하는 경우, 상기 리스트가 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함하는지를 추가로 검사하는 단계와; 상기 추가 검사 단계가 상기 리스트가 상기 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함함을 지시하는 경우, 상기 픽처를 인코딩시에 상기 예측 레퍼런스 후보를 예측 레퍼런스로서 선택하는 단계를 포함한다.
일부 실시예에서, 이 방법은 상기 픽처에 대해 픽처 순서 카운트를 제공하는 단계를 포함하는데, 이때 상기 검사 단계는 상기 픽처의 픽처 순서 카운트를 레퍼런스 픽처의 픽처 순서 카운트와 비교하는 단계를 포함하되, 상기 픽처의 픽처 순서 카운트가 상기 레퍼런스 픽처의 픽처 순서 카운트와 동일한 경우, 상기 레퍼런스 픽처가 상기 슬라이스를 위한 시간적 움직임 벡터 예측에 유효하지 않음을 결정하는 단계를 포함한다.
일부 실시예에서, 이 방법은 각각의 레퍼런스 픽처가 장기 레퍼런스 픽처인지, 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 검사하는 단계를 포함한다.
이 방법의 일부 실시예에서, 상기 검사 단계는 각각의 레퍼런스 픽처가 현재 픽처와 동일한 계층에 속하는지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지를 검사하는 단계를 포함한다.
이 방법의 일부 실시예에서, 상기 검사 단계는 각각의 레퍼런스 픽처가 상기 현재 픽처와 동일한 시점에 속하는지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 확인하는 단계를 포함한다.
제3 실시예에 따르면, 적어도 하나의 프로세서와, 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되는데, 상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하게 하도록 구성되고; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키게 하도록 구성되며; 움직임 벡터 예측을 위해 레퍼런스 인덱스와 연관된 예측 레퍼런스 후보를 선택하게 하도록 구성되고; 상기 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스를 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소에 제공하게 하도록 구성된다.
이 장치의 일부 실시예에서, 상기 예측 레퍼런스 후보 리스트는 하나 이상의 시간적 레퍼런스 픽처를 포함하고; 상기 움직임 벡터 예측은 시간적 움직임 벡터 예측이다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 장치로 하여금 상기 방법을 병합 코딩 모드에서 이용하게 한다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 하나 이상의 슬라이스, 하나 이상의 코딩 유닛, 하나 이상의 프레임 또는 하나 이상의 픽처를 위해 상기 움직임 벡터 예측을 수행하게 한다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 제1 레퍼런스 인덱스와 연관된 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효한지 검사하게 하고; 상기 검사가 상기 제1 레퍼런스 인덱스를 갖는 예측 후보 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효하지 않음을 지시하는 경우, 상기 리스트가 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함하는지를 추가로 검사하게 하고; 상기 추가 검사가 상기 리스트가 상기 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함함을 지시하는 경우, 상기 다른 예측 레퍼런스 후보와 연관된 상기 레퍼런스 인덱스를 상기 신택스 요소에 제공하게 한다.
이 장치의 일부 실시예에서, 픽처에 대해 픽처 순서 카운트를 제공되는데, 이때 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 상기 픽처의 픽처 순서 카운트를 레퍼런스 픽처의 픽처 순서 카운트와 비교하게 하되, 상기 비교가 상기 픽처의 픽처 순서 카운트가 상기 레퍼런스 픽처의 픽처 순서 카운트와 동일함을 지시하는 경우, 상기 레퍼런스 픽처가 상기 슬라이스를 위한 시간적 움직임 벡터 예측에 유효하지 않음을 결정하게 한다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 레퍼런스 인덱스의 증가 순서대로 상기 예측 레퍼런스 후보 리스트를 검사하게 하고; 시간적 움직임 벡터 예측에 유효한 상기 제1 레퍼런스 픽처를 선택하게 한다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 상기 레퍼런스 픽처의 유형, 픽처 순서 카운트 및 코딩 모드 중 하나 이상에 근거하여 상기 유효성을 결정하게 한다.
이 장치의 일부 실시예에서, 상기 신택스 요소는 슬라이스 헤더에서 신호된다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 상기 슬라이스 헤더의 존재를 적응 파라미터 집합, 픽처 파라미터 집합 또는 시퀀스 파라미터 집합 내에 신호하게 한다.
이 장치의 일부 실시예에서, 상기 신택스 요소는 적응 파라미터 집합, 픽처 파라미터 집합 및 시퀀스 파라미터 집합 중 하나에서 신호된다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 비 압축된 픽처를 상기 슬라이스를 포함하는 코딩된 픽처로 인코딩하게 한다.
제4 실시예에 따르면, 적어도 하나의 프로세서와, 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되는데, 상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하게 하도록 구성되고; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키게 하도록 구성되며; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 인코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하게 하도록 구성된다.
이 장치의 일부 실시예에서, 상기 예측 레퍼런스 후보 리스트는 하나 이상의 시간적 레퍼런스 픽처를 포함하고; 상기 움직임 벡터 예측은 시간적 움직임 벡터 예측이다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 제1 레퍼런스 인덱스와 연관된 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효한지 검사하게 하고; 상기 검사가 상기 제1 레퍼런스 인덱스를 갖는 예측 후보 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효하지 않음을 지시하는 경우, 상기 리스트가 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함하는지를 추가로 검사하게 하고; 상기 추가 검사가 상기 리스트가 상기 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함함을 지시하는 경우, 상기 픽처를 인코딩시 상기 예측 레퍼런스 후보를 예측 레퍼런스로서 선택하게 한다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 픽처에 대해 픽처 순서 카운트를 제공하게 하는데, 상기 검사는 상기 픽처의 픽처 순서 카운트를 레퍼런스 픽처의 픽처 순서 카운트와 비교하는 것을 포함하고, 상기 비교가 상기 픽처의 픽처 순서 카운트가 상기 레퍼런스 픽처의 픽처 순서 카운트와 동일함을 지시하는 경우, 상기 레퍼런스 픽처가 상기 슬라이스를 위한 시간적 움직임 벡터 예측에 유효하지 않음을 결정하게 한다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 각각의 레퍼런스 픽처가 장기 레퍼런스 픽처인지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 검사하게 한다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 각각의 레퍼런스 픽처가 상기 현재 픽처와 동일한 계층에 속하는지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 검사하게 한다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 각각의 레퍼런스 픽처가 상기 현재 픽처와 동일한 시점에 속하는지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 검사하게 한다.
제5 실시예에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 적어도 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하게 하고; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키게 하며; 움직임 벡터 예측을 위해 레퍼런스 인덱스와 연관된 예측 레퍼런스 후보를 선택하게 하고; 상기 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스를 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소에 제공하게 한다.
이 컴퓨터 프로그램 제품의 일부 실시예에서, 상기 예측 레퍼런스 후보 리스트는 하나 이상의 시간적 레퍼런스 픽처를 포함하고; 상기 움직임 벡터 예측은 시간적 움직임 벡터 예측이다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 병합 코딩 모드에서 이 방법을 이용하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 하나 이상의 슬라이스, 하나 이상의 코딩 유닛, 하나 이상의 프레임 또는 하나 이상의 픽처를 위해 상기 움직임 벡터 예측을 수행하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 제1 레퍼런스 인덱스와 연관된 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효한지를 검사하게 하고; 상기 검사가 상기 제1 레퍼런스 인덱스를 갖는 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효하지 않음을 지시하는 경우, 상기 리스트가 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함하는지를 추가로 검사하게 하고, 상기 추가 검사가 상기 리스트가 상기 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함함을 지시하는 경우, 상기 다른 예측 레퍼런스 후보와 연관된 상기 레퍼런스 인덱스를 상기 신택스 요소에 제공하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 상기 픽처의 픽처 순서 카운트를 레퍼런스 픽처의 픽처 순서 카운트와 비교하게 하되, 상기 비교가 상기 픽처의 픽처 순서 카운트가 상기 레퍼런스 픽처의 픽처 순서 카운트와 동일함을 지시하는 경우, 상기 레퍼런스 픽처가 상기 슬라이스를 위한 시간적 움직임 벡터 예측에 유효하지 않음을 결정하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 레퍼런스 인덱스의 증가 순서대로 상기 예측 레퍼런스 후보 리스트를 검사하게 하고, 시간적 움직임 벡터 예측에 유효한 상기 제1 레퍼런스 픽처를 선택하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 상기 레퍼런스 픽처의 유형, 픽처 순서 카운트 및 코딩 모드 중 하나 이상에 근거하여 상기 유효성을 결정하게 한다.
이 컴퓨터 프로그램 제품의 일부 실시예에서, 상기 신택스 요소는 슬라이스 헤더에서 신호된다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 상기 슬라이스 헤더의 존재를 적응 파라미터 집합, 픽처 파라미터 집합 또는 시퀀스 파라미터 집합 내에 신호하게 한다.
이 컴퓨터 프로그램 제품의 일부 실시예에서, 상기 신택스 요소는 적응 파라미터 집합, 픽처 파라미터 집합 및 시퀀스 파라미터 집합 중 하나에서 신호된다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 비 압축된 픽처를 상기 슬라이스를 포함하는 코딩된 픽처로 인코딩하게 한다.
제6 실시예에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 적어도 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하게 하고; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키게 하며; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 인코딩함에 있어서 상기 예측 레퍼런스 후보를 예측 레퍼런스로서 선택하게 한다.
이 컴퓨터 프로그램 제품의 일부 실시예에서, 상기 예측 레퍼런스 후보 리스트는 하나 이상의 시간적 레퍼런스 픽처를 포함하고; 상기 움직임 벡터 예측은 시간적 움직임 벡터 예측이다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 제1 레퍼런스 인덱스와 연관된 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효한지를 검사하게 하고; 상기 검사가 상기 제1 레퍼런스 인덱스를 갖는 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효하지 않음을 지시하는 경우, 상기 리스트가 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함하는지를 추가로 검사하게 하고; 상기 추가 검사가 상기 리스트가 상기 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함함을 지시하는 경우, 상기 픽처를 인코딩함에 있어서 상기 예측 레퍼런스 후보를 예측 레퍼런스로서 선택하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 상기 픽처를 위한 픽처 순서 카운트를 제공하게 하고; 이때 상기 검사는 상기 픽처의 픽처 순서 카운트를 레퍼런스 픽처의 픽처 순서 카운트와 비교하고, 상기 비교가 상기 픽처의 픽처 순서 카운트가 상기 레퍼런스 픽처의 픽처 순서 카운트와 동일함을 지시하는 경우, 상기 레퍼런스 픽처가 상기 슬라이스를 위한 시간적 움직임 벡터 예측에 유효하지 않음을 결정하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 각각의 레퍼런스 픽처가 장기 레퍼런스 픽처인지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 검사하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 각각의 레퍼런스 픽처가 상기 현재 픽처와 동일한 계층에 속하는지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 검사하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 각각의 레퍼런스 픽처가 상기 현재 픽처와 동일한 시점에 속하는지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 검사하게 한다.
제7 실시예에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하는 수단과; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 수단과; 움직임 벡터 예측을 위해 예측 레퍼런스 후보를 선택하는 수단과; 상기 선택된 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스를 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소에 제공하는 수단을 포함하는 장치가 제공된다.
제8 실시예에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하는 수단과; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 수단과; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 인코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하는 수단을 포함하는 장치가 제공된다.
제9 실시예에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하는 단계와; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 단계와; 디코딩에서 움직임 벡터 예측에 이용되는 예측 레퍼런스 후보를 나타내는 레퍼런스 인덱스를 포함하는 신택스 요소를 수신하는 단계와; 상기 슬라이스를 디코딩하기 위한 상기 예측 레퍼런스를 선택하기 위해 상기 레퍼런스 인덱스를 이용하는 단계를 포함하는 방법이 제공된다.
이 방법의 일부 실시예에서, 상기 예측 레퍼런스 후보 리스트는 하나 이상의 시간적 레퍼런스 픽처를 포함하고; 상기 움직임 벡터 예측은 시간적 움직임 벡터 예측이다.
일부 실시예에서, 이 방법은 병합 코딩 모드에서 이용된다.
일부 실시예에서, 이 방법은 하나 이상의 슬라이스, 하나 이상의 코딩 유닛, 하나 이상의 프레임 또는 하나 이상의 픽처를 위해 상기 움직임 벡터 예측을 수행하는 단계를 포함한다.
이 방법의 일부 실시예에서, 상기 신택스 요소는 슬라이스 헤더에서 신호된다.
일부 실시예에서, 이 방법은 상기 슬라이스 헤더의 존재의 지시를 적응 파라미터 집합, 픽처 파라미터 집합 또는 시퀀스 파라미터 집합에서 수신하는 단계를 포함한다.
이 방법의 일부 실시예에서, 상기 신택스 요소는 적응 파라미터 집합, 픽처 파라미터 집합 및 시퀀스 파라미터 집합 중 하나에서 신호된다.
제10 실시예에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하는 단계와; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 단계와; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 디코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하는 단계를 포함하는 방법이 제공된다.
이 방법의 일부 실시예에서, 상기 예측 레퍼런스 후보 리스트는 하나 이상의 시간적 레퍼런스 픽처를 포함하고; 상기 움직임 벡터 예측은 시간적 움직임 벡터 예측이다.
이 방법의 일부 실시예에서, 상기 검사 단계는 제1 레퍼런스 인덱스와 연관된 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효한지를 검사하는 단계와; 상기 검사 단계가 상기 제1 레퍼런스 인덱스를 갖는 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효하지 않음을 지시하는 경우, 상기 리스트가 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함하는지를 추가로 검사하는 단계와; 상기 추가 검사 단계가 상기 리스트가 상기 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함함을 지시하는 경우, 상기 픽처를 디코딩시에 상기 예측 레퍼런스 후보를 예측 레퍼런스로서 선택하는 단계를 포함한다.
일부 실시예에서, 이 방법은 상기 픽처에 대해 픽처 순서 카운트를 제공하는 단계를 포함하는데, 이때 상기 검사 단계는 상기 픽처의 픽처 순서 카운트를 레퍼런스 픽처의 픽처 순서 카운트와 비교하는 단계를 포함하되, 상기 픽처의 픽처 순서 카운트가 상기 레퍼런스 픽처의 픽처 순서 카운트와 동일한 경우, 상기 레퍼런스 픽처가 상기 슬라이스를 위한 시간적 움직임 벡터 예측에 유효하지 않음을 결정하는 단계를 포함한다.
이 방법의 일부 실시예에서, 상기 검사 단계는 각각의 레퍼런스 픽처가 장기 레퍼런스 픽처인지, 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 검사하는 단계를 포함한다.
일부 실시예에서, 이 방법은 각각의 레퍼런스 픽처가 상기 현재 픽처와 동일한 계층에 속하는지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 검사하는 단계를 포함한다.
이 방법의 일부 실시예에서, 상기 검사 단계는 각각의 레퍼런스 픽처가 상기 현재 픽처와 동일한 시점에 속하는지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 확인하는 단계를 포함한다.
제11 실시예에 따르면, 적어도 하나의 프로세서와, 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되는데, 상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하게 하도록 구성되고; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키게 하도록 구성되며; 디코딩시에 움직임 벡터 예측에 이용되는 예측 레퍼런스 후보를 나타내는 레퍼런스 인덱스를 포함하는 신택스 요소를 수신하게 하도록 구성되고; 상기 슬라이스를 디코딩하기 위한 상기 예측 레퍼런스를 선택하기 위해 상기 레퍼런스 인덱스를 이용하게 하도록 구성된다.
이 장치의 일부 실시예에서, 상기 예측 레퍼런스 후보 리스트는 하나 이상의 시간적 레퍼런스 픽처를 포함하고; 상기 움직임 벡터 예측은 시간적 움직임 벡터 예측이다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 병합 코딩 모드에서 이 방법을 이용하게 한다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 하나 이상의 슬라이스, 하나 이상의 코딩 유닛, 하나 이상의 프레임 또는 하나 이상의 픽처를 위해 상기 움직임 벡터 예측을 수행하게 한다.
이 장치의 일부 실시예에서, 상기 신택스 요소는 슬라이스 헤더에서 신호된다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 상기 슬라이스 헤더의 존재의 지시를 적응 파라미터 집합, 픽처 파라미터 집합 또는 시퀀스 파라미터 집합에서 수신하게 한다.
이 장치의 일부 실시예에서, 상기 신택스 요소는 적응 파라미터 집합, 픽처 파라미터 집합 및 시퀀스 파라미터 집합 중 하나에서 신호된다.
제12 실시예에 따르면, 적어도 하나의 프로세서와, 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되는데, 상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 적어도 상기 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하게 하도록 구성되고; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키게 하도록 구성되며; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 디코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하게 하도록 구성된다.
이 장치의 일부 실시예에서, 상기 예측 레퍼런스 후보 리스트는 하나 이상의 시간적 레퍼런스 픽처를 포함하고; 상기 움직임 벡터 예측은 시간적 움직임 벡터 예측이다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 제1 레퍼런스 인덱스와 연관된 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효한지 검사하게 하고; 상기 검사가 상기 제1 레퍼런스 인덱스를 갖는 예측 후보 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효하지 않음을 지시하는 경우, 상기 리스트가 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함하는지를 추가로 검사하게 하고; 상기 추가 검사가 상기 리스트가 상기 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함함을 지시하는 경우, 상기 픽처를 디코딩함에 있어서 상기 예측 레퍼런스 후보를 예측 레퍼런스로서 선택하게 한다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 픽처에 대해 픽처 순서 카운트를 제공하게 하는데, 이때 상기 검사는 상기 픽처의 픽처 순서 카운트를 레퍼런스 픽처의 픽처 순서 카운트와 비교하고, 상기 비교가 상기 픽처의 픽처 순서 카운트가 상기 레퍼런스 픽처의 픽처 순서 카운트와 동일함을 지시하는 경우, 상기 레퍼런스 픽처가 상기 슬라이스를 위한 시간적 움직임 벡터 예측에 유효하지 않음을 결정하게 한다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 각각의 레퍼런스 픽처가 장기 레퍼런스 픽처인지, 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 검사하게 한다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 각각의 레퍼런스 픽처가 상기 현재 픽처와 동일한 계층에 속하는지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 확인하게 한다.
이 장치의 일부 실시예에서, 코드가 저장된 상기 적어도 하나의 메모리는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치로 하여금 각각의 레퍼런스 픽처가 상기 현재 픽처와 동일한 시점에 속하는지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 확인하게 한다.
제13 실시예에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 적어도 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하게 하고; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키게 하며; 디코딩시에 움직임 벡터 예측에 이용된 예측 레퍼런스 후보를 나타내는 레퍼런스 인덱스를 포함하는 신택스를 수신하게 하고; 상기 슬라이스를 디코딩하기 위한 상기 예측 레퍼런스를 선택하기 위해 상기 레퍼런스 인덱스를 이용하게 한다.
이 컴퓨터 프로그램 제품의 일부 실시예에서, 상기 예측 레퍼런스 후보 리스트는 하나 이상의 시간적 레퍼런스 픽처를 포함하고; 상기 움직임 벡터 예측은 시간적 움직임 벡터 예측이다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 병합 코딩 모드에서 이 방법을 이용하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 하나 이상의 슬라이스, 하나 이상의 코딩 유닛, 하나 이상의 프레임 또는 하나 이상의 픽처를 위해 상기 움직임 벡터 예측을 수행하게 한다.
이 컴퓨터 프로그램 제품의 일부 실시예에서, 상기 신택스 요소는 슬라이스 헤더에서 신호된다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 상기 슬라이스 헤더의 존재의 지시를 적응 파라미터 집합, 픽처 파라미터 집합 또는 시퀀스 파라미터 집합에서 수신하게 한다.
이 컴퓨터 프로그램 제품의 일부 실시예에서, 상기 신택스 요소는 적응 파라미터 집합, 픽처 파라미터 집합 및 시퀀스 파라미터 집합 중 하나에서 신호된다.
제14 실시예에 따르면, 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 프로그램 제품이 제공되는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 적어도 장치로 하여금 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하게 하고; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키게 하며; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 디코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하게 한다.
이 컴퓨터 프로그램 제품의 일부 실시예에서, 상기 예측 레퍼런스 후보 리스트는 하나 이상의 시간적 레퍼런스 픽처를 포함하고; 상기 움직임 벡터 예측은 시간적 움직임 벡터 예측이다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 제1 레퍼런스 인덱스와 연관된 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효한지를 검사하게 하고; 상기 검사가 상기 제1 레퍼런스 인덱스를 갖는 상기 예측 레퍼런스 후보가 상기 슬라이스를 위한 움직임 벡터 예측에 유효하지 않음을 지시하는 경우, 상기 리스트가 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함하는지를 추가로 검사하게 하고; 상기 추가 검사가 상기 리스트가 상기 다른 레퍼런스 인덱스와 연관된 다른 예측 레퍼런스 후보를 포함함을 지시하는 경우, 상기 픽처를 디코딩시에 상기 예측 레퍼런스 후보를 예측 레퍼런스로서 선택하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 상기 픽처를 위한 픽처 순서 카운트를 제공하게 하고, 여기서 상기 검사는 상기 픽처의 픽처 순서 카운트를 레퍼런스 픽처의 픽처 순서 카운트와 비교하고, 상기 비교가 상기 픽처의 픽처 순서 카운트가 상기 레퍼런스 픽처의 픽처 순서 카운트와 동일함을 지시하는 경우, 상기 레퍼런스 픽처가 상기 슬라이스를 위한 시간적 움직임 벡터 예측에 유효하지 않음을 결정하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 각각의 레퍼런스 픽처가 장기 레퍼런스 픽처인지, 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 검사하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 각각의 레퍼런스 픽처가 상기 현재 픽처와 동일한 계층에 속하는지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 검사하게 한다.
일부 실시예에서, 이 컴퓨터 프로그램 제품은 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는데, 상기 하나 이상의 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 장치로 하여금 각각의 레퍼런스 픽처가 상기 현재 픽처와 동일한 시점에 속하는지 또는 움직임 벡터 예측을 위한 예측 레퍼런스 후보의 유효성을 결정하는 것이 아닌지 확인하게 한다.
제15 실시예에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하는 수단과; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 수단과; 디코딩시에 움직임 벡터 예측을 위해 예측 레퍼런스 후보를 선택하는 수단과; 상기 선택된 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스를 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소에 제공하는 수단을 포함하는 장치가 제공된다.
제16 실시예에 따르면, 하나 이상의 레퍼런스 픽처에서 픽처 슬라이스를 위한 예측 레퍼런스 후보 리스트를 결정하는 수단과; 상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키는 수단과; 상기 예측 레퍼런스 후보를 검사함으로써 상기 픽처를 인코딩함에 있어서 상기 예측 레퍼런스 후보 중 하나를 예측 레퍼런스로서 선택하는 수단을 포함하는 장치가 제공된다.

Claims (28)

  1. 비디오 코딩을 위한 방법에 있어서,
    픽처의 슬라이스(a slice of a pictures)를 위한 예측 레퍼런스 후보(prediction reference candidates)인 레퍼런스 픽처 리스트를 결정하는 단계와,
    상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스(reference index)와 연관시키는 단계와,
    슬라이스 레벨 또는 그 상위 레벨에서, 움직임 벡터 예측을 위해 선택된 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스를 획득하는 단계와,
    상기 슬라이스에 대해, 다른 예측 레퍼런스 후보와 연관된 다른 레퍼런스 인덱스를 상기 리스트와 상기 리스트 내의 상기 예측 레퍼런스 후보의 특성에 기반하여 결정하는 단계와,
    상기 레퍼런스 인덱스에 기반하여 움직임 벡터 예측기를 획득하는 단계와,
    제1 레퍼런스 인덱스를 갖는 상기 예측 레퍼런스 후보가 상기 움직임 벡터 예측기를 이용한 움직임 벡터 예측에 유효한지를 결정하는 제1 검사를 수행하는 단계와,
    상기 제1 검사가 상기 제1 레퍼런스 인덱스를 갖는 상기 예측 레퍼런스 후보가 상기 움직임 벡터 예측기를 이용한 움직임 벡터 예측에 유효하지 않음을 지시하는 경우에, 상기 다른 레퍼런스 인덱스와 연관된 상기 다른 예측 레퍼런스 후보가 상기 움직임 벡터 예측기를 이용한 움직임 벡터 예측에 유효한지를 결정하는 제2 검사를 수행하는 단계와,
    상기 결정이 상기 다른 레퍼런스 인덱스와 연관된 상기 다른 예측 레퍼런스 후보가 유효함을 지시하는 경우에, 상기 다른 예측 레퍼런스 후보와 연관된 상기 다른 레퍼런스 인덱스를 상기 선택된 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스로서 이용하는 단계를 포함하는
    비디오 코딩 방법.
  2. 제1항에 있어서,
    상기 방법을 병합 코딩 모드(a merge coding mode)에서 이용하는
    비디오 코딩 방법.
  3. 제1항에 있어서,
    상기 예측 레퍼런스 후보가 장기 레퍼런스 픽처인지 여부, 상기 예측 레퍼런스 후보가 상기 슬라이스와 동일한 계층(layer)에 속하는지 여부, 상기 예측 레퍼런스 후보가 상기 슬라이스와 동일한 시점(view)에 속하는지 여부, 상기 예측 레퍼런스 후보의 유형, 픽처 순서 카운트(picture order count) 및 코딩 모드 중 적어도 하나에 기초하여,
    상기 예측 레퍼런스 후보가 움직임 벡터 예측에 유효한지 결정하는 단계를 포함하는
    비디오 코딩 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 슬라이스에 대해 픽처 순서 카운트를 획득하는 단계와,
    상기 슬라이스의 상기 픽처 순서 카운트를 레퍼런스 픽처의 픽처 순서 카운트와 비교하는 단계와,
    상기 비교가 상기 슬라이스의 상기 픽처 순서 카운트가 상기 레퍼런스 픽처의 픽처 순서 카운트와 동일함을 지시하는 경우에, 상기 레퍼런스 픽처가 상기 슬라이스를 위한 움직임 벡터 예측에 유효하지 않음을 결정하는 단계를 포함하는
    비디오 코딩 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 레퍼런스 인덱스를 상기 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소(syntax element)에 제공하는 단계를 포함하는
    비디오 코딩 방법.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소로부터 상기 레퍼런스 인덱스를 획득하는 단계를 포함하는
    비디오 코딩 방법.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서,
    비 압축된 픽처(uncompressed picture)를 상기 슬라이스를 포함하는 코딩된 픽처(coded picture)로 인코딩하는 단계를 포함하는
    비디오 코딩 방법.
  8. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 슬라이스를 포함하는 코딩된 픽처를 디코딩된 픽처로 디코딩하는 단계를 포함하는
    비디오 코딩 방법.
  9. 비디오 코딩을 위한 장치로서,
    상기 장치는 다음의 방법을 수행하도록 구성되는, 즉,
    픽처의 슬라이스를 위한 예측 레퍼런스 후보인 레퍼런스 픽처 리스트를 결정하고,
    상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스(reference index)와 연관시키고,
    슬라이스 레벨 또는 그 상위 레벨에서, 움직임 벡터 예측을 위해, 선택된 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스를 획득하고,
    상기 슬라이스에 대해, 다른 예측 레퍼런스 후보와 연관된 다른 레퍼런스 인덱스를 상기 리스트와 상기 리스트 내의 상기 예측 레퍼런스 후보의 특성에 기반하여 결정하고,
    상기 레퍼런스 인덱스에 기반하여 움직임 벡터 예측기를 획득하고,
    제1 레퍼런스 인덱스를 갖는 상기 예측 레퍼런스 후보가 상기 움직임 벡터 예측기를 이용한 움직임 벡터 예측에 유효한지를 결정하는 제1 검사를 수행하고,
    상기 제1 검사가 상기 제1 레퍼런스 인덱스를 갖는 상기 예측 레퍼런스 후보가 상기 움직임 벡터 예측기를 이용한 움직임 벡터 예측에 유효하지 않음을 지시하는 경우에, 상기 다른 레퍼런스 인덱스와 연관된 상기 다른 예측 레퍼런스 후보가 상기 움직임 벡터 예측기를 이용한 움직임 벡터 예측에 유효한지를 결정하는 제2 검사를 수행하고,
    상기 결정이 상기 다른 레퍼런스 인덱스와 연관된 상기 다른 예측 레퍼런스 후보가 유효함을 지시하는 경우에, 상기 다른 예측 레퍼런스 후보와 연관된 상기 다른 레퍼런스 인덱스를 상기 선택된 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스로서 이용하도록 구성되는
    비디오 코딩 장치.
  10. 제9항에 있어서,
    상기 방법을 병합 코딩 모드에서 이용하도록 더 구성되는
    비디오 코딩 장치.
  11. 제9항에 있어서,
    상기 예측 레퍼런스 후보가 장기 레퍼런스 픽처인지 여부, 상기 예측 레퍼런스 후보가 상기 슬라이스와 동일한 계층(layer)에 속하는지 여부, 상기 예측 레퍼런스 후보가 상기 슬라이스와 동일한 시점(view)에 속하는지 여부, 상기 예측 레퍼런스 후보의 유형, 픽처 순서 카운트(picture order count) 및 코딩 모드 중 적어도 하나에 기초하여,
    상기 예측 레퍼런스 후보가 움직임 벡터 예측에 유효한지 결정하도록 더 구성되는
    비디오 코딩 장치.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 슬라이스에 대해 픽처 순서 카운트를 획득하고,
    상기 슬라이스의 상기 픽처 순서 카운트를 레퍼런스 픽처의 픽처 순서 카운트와 비교하고,
    상기 비교가 상기 슬라이스의 상기 픽처 순서 카운트가 상기 레퍼런스 픽처의 픽처 순서 카운트와 동일함을 지시하는 경우에, 상기 레퍼런스 픽처가 상기 슬라이스를 위한 움직임 벡터 예측에 유효하지 않음을 결정하도록 더 구성되는
    비디오 코딩 장치.
  13. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 레퍼런스 인덱스를 상기 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소에 제공하도록 더 구성되는
    비디오 코딩 장치.
  14. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소로부터 상기 레퍼런스 인덱스를 획득하도록 더 구성되는
    비디오 코딩 장치.
  15. 제9항 내지 제11항 중 어느 한 항에 있어서,
    비 압축된 픽처를 상기 슬라이스를 포함하는 코딩된 픽처로 인코딩하도록 더 구성되는
    비디오 코딩 장치.
  16. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 슬라이스를 포함하는 코딩된 픽처를 디코딩된 픽처로 디코딩하도록 더 구성되는
    비디오 코딩 장치.
  17. 비디오 코딩을 위해 사용되는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는 컴퓨터 판독가능 저장 매체로서,
    상기 하나 이상의 명령어의 하나 이상의 시퀀스는, 하나 이상의 프로세서에 의해 실행될 때 장치로 하여금, 다음의 방법을 행하게 하는, 즉,
    픽처의 슬라이스를 위한 예측 레퍼런스 후보인 레퍼런스 픽처 리스트를 결정하게 하고,
    상기 리스트의 각각의 예측 레퍼런스 후보를 레퍼런스 인덱스와 연관시키게 하고,
    슬라이스 레벨 또는 그 상위 레벨에서, 움직임 벡터 예측을 위해, 선택된 예측 레퍼런스 후보와 연관된 레퍼런스 인덱스를 획득하게 하고,
    상기 슬라이스에 대해, 다른 예측 레퍼런스 후보와 연관된 다른 레퍼런스 인덱스를 상기 리스트와 상기 리스트 내의 상기 예측 레퍼런스 후보의 특성에 기반하여 결정하게 하고,
    상기 레퍼런스 인덱스에 기반하여 움직임 벡터 예측기를 획득하게 하고,
    제1 레퍼런스 인덱스를 갖는 상기 예측 레퍼런스 후보가 상기 움직임 벡터 예측기를 이용한 움직임 벡터 예측에 유효한지를 결정하는 제1 검사를 수행하게 하고,
    상기 제1 검사가 상기 제1 레퍼런스 인덱스를 갖는 상기 예측 레퍼런스 후보가 상기 움직임 벡터 예측기를 이용한 상기 움직임 벡터 예측에 유효하지 않음을 지시하는 경우에, 상기 다른 레퍼런스 인덱스와 연관된 상기 다른 예측 레퍼런스 후보가 상기 움직임 벡터 예측기를 이용한 움직임 벡터 예측에 유효한지를 결정하는 제2 검사를 수행하게 하는
    컴퓨터 판독가능 저장 매체.
  18. 제17항에 있어서,
    하나 이상의 프로세서에 의해 실행될 때 상기 장치로 하여금 상기 방법을 병합 코딩 모드에서 이용하게 하는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는
    컴퓨터 판독가능 저장 매체.
  19. 제17항에 있어서,
    하나 이상의 프로세서에 의해 실행될 때 상기 장치로 하여금,
    상기 예측 레퍼런스 후보가 장기 레퍼런스 픽처인지 여부, 상기 예측 레퍼런스 후보가 상기 슬라이스와 동일한 계층(layer)에 속하는지 여부, 상기 예측 레퍼런스 후보가 상기 슬라이스와 동일한 시점(view)에 속하는지 여부, 상기 예측 레퍼런스 후보의 유형, 픽처 순서 카운트(picture order count) 및 코딩 모드 중 적어도 하나에 기초하여,
    상기 예측 레퍼런스 후보가 움직임 벡터 예측에 유효한지 결정하게 하는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는
    컴퓨터 판독가능 저장 매체.
  20. 제17항 내지 제19항 중 어느 한 항에 있어서,
    하나 이상의 프로세서에 의해 실행될 때 상기 장치로 하여금,
    상기 슬라이스에 대해 픽처 순서 카운트를 획득하게 하고,
    상기 슬라이스의 상기 픽처 순서 카운트를 레퍼런스 픽처의 픽처 순서 카운트와 비교하게 하며,
    상기 비교가 상기 슬라이스의 상기 픽처 순서 카운트가 상기 레퍼런스 픽처의 픽처 순서 카운트와 동일함을 지시하는 경우에, 상기 레퍼런스 픽처가 상기 슬라이스를 위한 움직임 벡터 예측에 유효하지 않음을 결정하게 하는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는
    컴퓨터 판독가능 저장 매체.
  21. 제17항 내지 제19항 중 어느 한 항에 있어서,
    하나 이상의 프로세서에 의해 실행될 때 상기 장치로 하여금 상기 레퍼런스 인덱스를 상기 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소에 제공하게 하는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는
    컴퓨터 판독가능 저장 매체.
  22. 제17항 내지 제19항 중 어느 한 항에 있어서,
    하나 이상의 프로세서에 의해 실행될 때 상기 장치로 하여금 상기 슬라이스 레벨 또는 그 상위 레벨에서 신택스 요소로부터 상기 레퍼런스 인덱스를 획득하게 하는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는
    컴퓨터 판독가능 저장 매체.
  23. 제17항 내지 제19항 중 어느 한 항에 있어서,
    하나 이상의 프로세서에 의해 실행될 때 상기 장치로 하여금 비 압축된 픽처를 상기 슬라이스를 포함하는 코딩된 픽처로 인코딩하게 하는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는
    컴퓨터 판독가능 저장 매체.
  24. 제17항 내지 제19항 중 어느 한 항에 있어서,
    하나 이상의 프로세서에 의해 실행될 때 상기 장치로 하여금 상기 슬라이스를 포함하는 코딩된 픽처를 디코딩된 픽처로 디코딩하게 하는 하나 이상의 명령어의 하나 이상의 시퀀스를 포함하는
    컴퓨터 판독가능 저장 매체.
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
KR1020157001821A 2012-06-22 2013-06-18 비디오 코딩을 위한 방법 및 장치 KR101658324B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261663193P 2012-06-22 2012-06-22
US61/663,193 2012-06-22
PCT/FI2013/050668 WO2014009600A1 (en) 2012-06-22 2013-06-18 Method and apparatus for video coding

Publications (2)

Publication Number Publication Date
KR20150024906A KR20150024906A (ko) 2015-03-09
KR101658324B1 true KR101658324B1 (ko) 2016-09-20

Family

ID=49774439

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157001821A KR101658324B1 (ko) 2012-06-22 2013-06-18 비디오 코딩을 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US20130343459A1 (ko)
EP (1) EP2865178A4 (ko)
KR (1) KR101658324B1 (ko)
CN (1) CN104584549B (ko)
WO (1) WO2014009600A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021241963A1 (ko) * 2020-05-27 2021-12-02 엘지전자 주식회사 비디오 또는 영상 코딩 시스템에서의 poc 정보 및 비-참조 픽처 플래그에 기반한 영상 코딩 방법

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112013030935B1 (pt) 2011-05-31 2022-05-03 JVC Kenwood Corporation Dispositivo de decodificação de imagem móvel e método de decodificação de imagem móvel
CN110830797B (zh) * 2012-01-18 2023-09-15 韩国电子通信研究院 视频解码装置、视频编码装置和传输比特流的方法
US9325990B2 (en) * 2012-07-09 2016-04-26 Qualcomm Incorporated Temporal motion vector prediction in video coding extensions
US9479778B2 (en) * 2012-08-13 2016-10-25 Qualcomm Incorporated Device and method for coding video information using base layer motion vector candidate
KR102062506B1 (ko) 2012-08-29 2020-01-03 브이아이디 스케일, 인크. 스케일러블 비디오 코딩을 위한 모션 벡터 예측 방법 및 장치
US20140086328A1 (en) * 2012-09-25 2014-03-27 Qualcomm Incorporated Scalable video coding in hevc
WO2014050675A1 (ja) * 2012-09-28 2014-04-03 ソニー株式会社 画像処理装置および方法
US9392268B2 (en) * 2012-09-28 2016-07-12 Qualcomm Incorporated Using base layer motion information
EP2905961A4 (en) * 2012-10-05 2016-07-06 Lg Electronics Inc METHOD AND DEVICE FOR PROCESSING A VIDEO SIGNAL
WO2015006984A1 (en) * 2013-07-19 2015-01-22 Mediatek Singapore Pte. Ltd. Reference view selection for 3d video coding
KR102060857B1 (ko) * 2013-07-24 2019-12-30 퀄컴 인코포레이티드 3d-hevc 를 위한 단순화된 진보된 모션 예측
CN106105212A (zh) 2014-03-07 2016-11-09 高通股份有限公司 简化的子预测单元(sub‑pu)运动参数继承(mpi)
WO2016119048A1 (en) * 2015-01-29 2016-08-04 École De Technologie Supérieure Method and apparatus for video intermodal transcoding
EP4013051A1 (en) * 2015-06-05 2022-06-15 Dolby Laboratories Licensing Corporation Methods for encoding and decoding intra-frame prediction
CN115086653A (zh) * 2015-06-05 2022-09-20 杜比实验室特许公司 图像编码和解码方法和图像解码设备
JP6078138B1 (ja) * 2015-10-30 2017-02-08 Nttエレクトロニクス株式会社 動画像符号化装置及び動画像符号化方法
CN108432252A (zh) * 2015-12-22 2018-08-21 真实网络公司 视频编码中的运动矢量选择及预测***和方法
GB2598255B (en) * 2016-02-17 2022-07-27 V Nova Int Ltd Physical adapter, signal processing equipment, methods and computer programs
US10701391B2 (en) * 2017-03-23 2020-06-30 Qualcomm Incorporated Motion vector difference (MVD) prediction
CN107194961B (zh) * 2017-05-19 2020-09-22 西安电子科技大学 群体图像编码中多参考图像的确定方法
CN109040758A (zh) * 2017-06-09 2018-12-18 晨星半导体股份有限公司 视频压缩方法及视频压缩装置
CN109089119B (zh) * 2017-06-13 2021-08-13 浙江大学 一种运动矢量预测的方法及设备
US10602180B2 (en) 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
KR20230127363A (ko) 2018-03-27 2023-08-31 (주)휴맥스 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치
KR20240007299A (ko) 2018-06-29 2024-01-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 룩업 테이블의 업데이트: fifo, 제약된 fifo
KR20210025537A (ko) 2018-06-29 2021-03-09 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 하나 또는 다수의 룩업 테이블들을 사용하여 이전에 코딩된 모션 정보를 순서대로 저장하고 이를 사용하여 후속 블록들을 코딩하는 개념
CN110662064B (zh) 2018-06-29 2022-06-14 北京字节跳动网络技术有限公司 Lut中的运动候选的检查顺序
KR102660666B1 (ko) 2018-06-29 2024-04-26 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut들을 업데이트하기 위한 조건들
KR102641872B1 (ko) 2018-06-29 2024-02-29 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut와 amvp 사이의 상호작용
JP7100200B2 (ja) 2018-06-29 2022-07-12 北京字節跳動網絡技術有限公司 マージ/amvpにhmvp候補を追加する際の一部/全部プルーニング
TWI744661B (zh) * 2018-06-29 2021-11-01 大陸商北京字節跳動網絡技術有限公司 要根據模式檢查的查找表中的運動候選的數量
WO2020003265A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Conditions of usage of luts
TWI723446B (zh) 2018-07-02 2021-04-01 大陸商北京字節跳動網絡技術有限公司 具有lic的lut
US10645380B2 (en) * 2018-07-09 2020-05-05 Tencent America LLC Method and apparatus for video coding
US10827195B2 (en) * 2018-08-03 2020-11-03 Tencent America LLC Method and apparatus for unifying adjacent merge candidates and non-adjacent merge candidates
MX2021002201A (es) 2018-08-29 2021-05-14 Beijing Dajia Internet Information Tech Co Ltd Metodos y aparato de codificacion de video mediante la prediccion de vector de movimiento temporal basada en subbloques.
CN111064961B (zh) 2018-09-12 2023-06-09 北京字节跳动网络技术有限公司 视频处理方法和装置
US10958932B2 (en) * 2018-09-12 2021-03-23 Qualcomm Incorporated Inter-prediction coding of video data using generated motion vector predictor list including non-adjacent blocks
WO2020098713A1 (en) * 2018-11-13 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Motion candidate list construction for prediction
WO2020103933A1 (en) 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Configuration method for default motion candidate
KR20210094056A (ko) * 2018-11-29 2021-07-28 후아웨이 테크놀러지 컴퍼니 리미티드 다중 가설 예측이 있는 블록에 대한 가장 가능성 있는 모드 목록 구성의 인코더, 디코더 및 대응 방법
CN113261290B (zh) * 2018-12-28 2024-03-12 北京字节跳动网络技术有限公司 基于修改历史的运动预测
CN113273186A (zh) 2019-01-10 2021-08-17 北京字节跳动网络技术有限公司 Lut更新的调用
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
CN113424539A (zh) * 2019-02-20 2021-09-21 北京达佳互联信息技术有限公司 视频编解码中针对长期参考图片的受约束运动矢量导出
CN113615193B (zh) 2019-03-22 2024-06-25 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
CN112532908B (zh) * 2019-09-19 2022-07-19 华为技术有限公司 视频图像的传输方法、发送设备、视频通话方法和设备
CN113630603A (zh) * 2019-09-23 2021-11-09 杭州海康威视数字技术股份有限公司 编解码方法、装置及设备
CN114982230A (zh) * 2019-12-31 2022-08-30 北京达佳互联信息技术有限公司 用于使用三角形分区的视频编解码的方法和装置
CN117812273B (zh) * 2024-02-29 2024-05-28 浙江华创视讯科技有限公司 视频传输中的图像恢复方法、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023763A2 (ko) 2010-08-17 2012-02-23 Oh Soo Mi 인터 예측 부호화 방법
WO2012030193A2 (ko) 2010-09-02 2012-03-08 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4240283B2 (ja) * 2002-10-10 2009-03-18 ソニー株式会社 復号装置及び復号方法
TWI268715B (en) * 2004-08-16 2006-12-11 Nippon Telegraph & Telephone Picture encoding method, picture decoding method, picture encoding apparatus, and picture decoding apparatus
US8532178B2 (en) * 2006-08-25 2013-09-10 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal with inter-view reference picture list construction
CN101272494B (zh) * 2008-01-25 2011-06-08 浙江大学 利用合成参考帧的视频编解码方法及装置
JP5401071B2 (ja) * 2008-10-09 2014-01-29 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法
WO2011128259A1 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. A video decoder and a video encoder using motion-compensated prediction
US9124898B2 (en) * 2010-07-12 2015-09-01 Mediatek Inc. Method and apparatus of temporal motion vector prediction
CN106101723B (zh) * 2011-01-07 2019-06-14 Lg电子株式会社 编码和解码图像信息的方法和使用该方法的装置
SG189843A1 (en) * 2011-01-19 2013-06-28 Mediatek Inc Method and apparatus for parsing error robustness of temporal motion vector prediction
US9532050B2 (en) * 2011-01-25 2016-12-27 Sun Patent Trust Moving picture coding method and moving picture decoding method
JP5808427B2 (ja) * 2011-03-14 2015-11-10 メディアテック インコーポレイテッド 動きベクトル候補及び動きベクトル予測候補の導出のための方法及び装置
US9485518B2 (en) * 2011-05-27 2016-11-01 Sun Patent Trust Decoding method and apparatus with candidate motion vectors
US9900615B2 (en) * 2011-12-28 2018-02-20 Microsoft Technology Licensing, Llc Representative motion information for temporal motion prediction in video encoding and decoding
US20130177084A1 (en) * 2012-01-10 2013-07-11 Qualcomm Incorporated Motion vector scaling in video coding
US9426463B2 (en) * 2012-02-08 2016-08-23 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US9420286B2 (en) * 2012-06-15 2016-08-16 Qualcomm Incorporated Temporal motion vector prediction in HEVC and its extensions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023763A2 (ko) 2010-08-17 2012-02-23 Oh Soo Mi 인터 예측 부호화 방법
WO2012030193A2 (ko) 2010-09-02 2012-03-08 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021241963A1 (ko) * 2020-05-27 2021-12-02 엘지전자 주식회사 비디오 또는 영상 코딩 시스템에서의 poc 정보 및 비-참조 픽처 플래그에 기반한 영상 코딩 방법

Also Published As

Publication number Publication date
EP2865178A4 (en) 2016-08-10
KR20150024906A (ko) 2015-03-09
WO2014009600A1 (en) 2014-01-16
EP2865178A1 (en) 2015-04-29
US20130343459A1 (en) 2013-12-26
CN104584549A (zh) 2015-04-29
CN104584549B (zh) 2018-06-22

Similar Documents

Publication Publication Date Title
KR101658324B1 (ko) 비디오 코딩을 위한 방법 및 장치
US11184634B2 (en) Method and apparatus for video coding
KR101630564B1 (ko) 비디오 코딩을 위한 방법 및 장치
CN112956190B (zh) 仿射运动预测
JP6057395B2 (ja) ビデオ符号化方法および装置
US10397610B2 (en) Method and apparatus for video coding
CN108293136B (zh) 编码360度全景视频的方法、装置和计算机可读存储介质
KR101851479B1 (ko) 파라미터 세트 코딩
KR102077900B1 (ko) 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
CN105027569B (zh) 用于视频编码和解码的装置和方法
US20140085415A1 (en) Method and apparatus for video coding
US20140092978A1 (en) Method and apparatus for video coding
US10375405B2 (en) Motion field upsampling for scalable coding based on high efficiency video coding
WO2024003441A1 (en) An apparatus, a method and a computer program for video coding and decoding

Legal Events

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