KR20140065013A - 동영상 인코딩 장치, 동영상 인코딩 방법, 동영상 인코딩 프로그램, 송신 장치, 송신 방법 및 송신 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법, 동영상 디코딩 프로그램, 수신 장치, 수신 방법 및 수신 프로그램 - Google Patents

동영상 인코딩 장치, 동영상 인코딩 방법, 동영상 인코딩 프로그램, 송신 장치, 송신 방법 및 송신 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법, 동영상 디코딩 프로그램, 수신 장치, 수신 방법 및 수신 프로그램 Download PDF

Info

Publication number
KR20140065013A
KR20140065013A KR1020147011156A KR20147011156A KR20140065013A KR 20140065013 A KR20140065013 A KR 20140065013A KR 1020147011156 A KR1020147011156 A KR 1020147011156A KR 20147011156 A KR20147011156 A KR 20147011156A KR 20140065013 A KR20140065013 A KR 20140065013A
Authority
KR
South Korea
Prior art keywords
motion vector
predicted motion
vector candidate
predicted
block
Prior art date
Application number
KR1020147011156A
Other languages
English (en)
Other versions
KR101617974B1 (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
Priority claimed from JP2012214684A external-priority patent/JP5884697B2/ja
Priority claimed from JP2012214685A external-priority patent/JP5488666B2/ja
Application filed by 가부시키가이샤 제이브이씨 켄우드 filed Critical 가부시키가이샤 제이브이씨 켄우드
Priority claimed from PCT/JP2012/006225 external-priority patent/WO2013046707A1/ja
Publication of KR20140065013A publication Critical patent/KR20140065013A/ko
Application granted granted Critical
Publication of KR101617974B1 publication Critical patent/KR101617974B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/184Methods 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 bits, e.g. of the compressed video stream

Abstract

예측 움직임 벡터 후보 생성부(121)는, 인코딩 대상 블록과 동일 픽처 내의 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 생성하고, 예측 움직임 벡터 후보 리스트에 등록한다. 예측 움직임 벡터 후보수 제한부(124)는, 예측 움직임 벡터 후보 리스트에 등록되는 예측 움직임 벡터의 후보수를 예측 블록의 사이즈에 상응한 최대 후보수로 제한한다. 예측 움직임 벡터 선택부(126)는, 예측 움직임 벡터 후보 리스트로부터 예측 움직임 벡터를 선택한다. 인코딩부(109)는, 예측 움직임 벡터 후보 리스트에 있어서의 선택된 예측 움직임 벡터의 인덱스를 나타내는 정보를 인코딩한다.

Description

동영상 인코딩 장치, 동영상 인코딩 방법, 동영상 인코딩 프로그램, 송신 장치, 송신 방법 및 송신 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법, 동영상 디코딩 프로그램, 수신 장치, 수신 방법 및 수신 프로그램{VIDEO ENCODING DEVICE, VIDEO ENCODING METHOD, VIDEO ENCODING PROGRAM, TRANSMITTING DEVICE, TRANSMITTING METHOD AND TRANSMITTING PROGRAM, AND VIDEO DECODING DEVICE, VIDEO DECODING METHOD, VIDEO DECODING PROGRAM, RECEIVING DEVICE, RECEIVING METHOD AND RECEIVING PROGRAM}
본 발명은, 동영상 인코딩 및 디코딩 기술에 관한 것으로서, 특히 움직임 보상 예측을 이용한 동영상 인코딩 및 디코딩 기술에 관한 것이다.
동영상의 압축 인코딩 방식의 대표적인 것으로서, MPEG-4 AVC/H.264의 규격이 있다. MPEG-4 AVC/H.264에서는, 픽처를 복수의 직사각형 블록으로 분할하고, 이미 인코딩·디코딩한 픽처를 참조 픽처로 하여, 참조 픽처로부터의 움직임을 예측하는 움직임 보상이 사용되고 있다. 이 움직임 보상에 의해 움직임을 예측하는 수법을 인터 예측이라 부른다. MPEG-4 AVC/H.264에서의 인터 예측에서는, 복수의 픽처를 참조 픽처로서 사용할 수 있고, 이들의 복수의 참조 픽처로부터 가장 적합한 참조 픽처를 블록마다 선택하여 움직임 보상을 한다. 여기서, 각각의 참조 픽처에는 참조 인덱스가 할당되고, 이 참조 인덱스에 의해 참조 픽처를 특정한다. 한편, B픽처에서는, 인코딩·디코딩 완료된 참조 픽처로부터 최대로 2장을 선택하여 인터 예측에 사용할 수 있다. 그 2장의 참조 픽처로부터의 예측을 각각, 주로 전방향의 예측으로서 사용되는 L0 예측(리스트0 예측), 주로 후방향의 예측으로서 사용되는 L1 예측(리스트1 예측)으로 구별하고 있다.
또한, L0 예측과 L1 예측의 2개의 인터 예측을 동시에 사용하는 쌍예측도 정의되어 있다. 쌍예측의 경우에는, 양방향 예측을 하여, L0 예측, L1 예측의 각각의 인터 예측된 신호에 가중 계수를 곱셈하고, 오프셋값을 가산하여 중첩하여, 최종적인 인터 예측 화상 신호를 생성한다. 가중 예측에 사용하는 가중 계수 및 오프셋값은 픽처 단위로 각 리스트의 참조 픽처마다 대표적인 값이 설정되어, 인코딩된다. 인터 예측에 관한 인코딩 정보에는, 블록마다, L0 예측과 L1 예측, 쌍예측을 구별하는 예측 모드, 블록마다의 참조 리스트마다, 참조 픽처를 특정하는 참조 인덱스, 블록의 이동 방향·이동량을 나타내는 움직임 벡터가 있고, 이들의 인코딩 정보를 인코딩·디코딩한다.
움직임 보상을 하는 동영상 인코딩 방식에서는, 각 블록에서 생성되는 움직임 벡터의 부호량을 삭감하기 위해, 움직임 벡터에 대해 예측 처리가 진행된다. MPEG-4 AVC/H.264에서는, 인코딩 대상의 움직임 벡터가 주위의 인접 블록의 움직임 벡터와 강한 상관이 있는 것을 이용하여, 주위의 인접 블록으로부터 예측을 하는 것에 의해 예측 움직임 벡터를 산출하고, 인코딩 대상의 움직임 벡터와 예측 움직임 벡터의 차분인 차분 움직임 벡터를 산출하여, 그 차분 움직임 벡터를 인코딩하는 것에 의해 부호량을 삭감하고 있다.
구체적으로는, 도 36(a)에 도시되는 바와 같이, 주위의 인접 블록 A, B, C의 움직임 벡터로부터 중앙값을 산출하여 예측 움직임 벡터로 하고, 움직임 벡터와 그 예측 움직임 벡터의 차분을 취하는 것에 의해 움직임 벡터의 부호량을 삭감하고 있다. 단, 도 36(b)와 같이 인코딩 대상 블록과 인접 블록의 크기나 형상이 상이한 경우에는, 왼쪽 옆에 복수의 인접 블록이 있을 때는 그 중의 맨위의 블록을, 위에 복수의 인접 블록이 있을 때는 그 중의 가장 왼쪽의 블록을 예측 블록으로 하고, 결정된 예측 블록의 움직임 벡터로부터 예측을 실시한다.
일본 특허공개공보 2011-147172호 공보
하지만, 종래의 방법에서는, 예측 벡터는 하나밖에 얻을 수 없기 때문에, 화상에 따라서는 예측 움직임 벡터의 예측 정밀도가 저하되고, 인코딩 효율이 양호하지 못한 경우도 있었다.
이와 같은 상황하에서, 본 발명자들은, 움직임 보상 예측을 사용하는 동영상 인코딩 방식에 있어서, 인코딩 정보를 더욱 압축하여, 전체의 부호량을 삭감할 필요성을 인식하기에 이르렀다.
본 발명은 이와 같은 상황에 비추어, 그 목적은, 예측 움직임 벡터의 후보를 산출하는 것에 의해, 차분 움직임 벡터의 부호량의 삭감을 꾀하여 인코딩 효율을 향상시키는 동영상 인코딩 기술을 제공하는 것에 있다. 또한, 다른 목적은, 인코딩 정보의 후보를 산출하는 것에 의해, 인코딩 정보의 부호량의 삭감을 꾀하여 인코딩 효율을 향상시키는 동영상 인코딩 기술을 제공하는 것에 있다.
상기 과제를 해결하기 위해, 본 발명의 일 형태에 따른 동영상 인코딩 장치는, 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상을 인코딩하는 동영상 인코딩 장치이고, 인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 인코딩 대상 블록과 상이한 인코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성부(121); 상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록부(122); 상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한부(124); 상기 예측 움직임 벡터 후보 리스트로부터, 상기 인코딩 대상 블록의 예측 움직임 벡터를 결정하는 예측 움직임 벡터 선택부(126); 및 상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 결정된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩부(109)를 구비한다.
본 발명의 다른 형태에 따른 동영상 인코딩 장치는, 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상을 인코딩하는 동영상 인코딩 장치이고, 인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 생성하고, 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성부(121, 122); 상기 예측 움직임 벡터 후보 리스트에 등록되는 상기 예측 움직임 벡터의 후보수를 예측 블록의 사이즈에 상응한 최대 후보수로 제한하는 예측 움직임 벡터 후보수 제한부(124); 상기 예측 움직임 벡터 후보 리스트로부터, 상기 인코딩 대상 블록의 예측 움직임 벡터를 결정하는 예측 움직임 벡터 선택부(126); 및 상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 결정된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩부(109)를 구비한다.
본 발명의 일 형태에 따른 동영상 인코딩 방법은, 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상을 인코딩하는 동영상 인코딩 방법이고, 인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 인코딩 대상 블록과 상이한 인코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝; 상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝; 상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝; 상기 예측 움직임 벡터 후보 리스트로부터, 상기 인코딩 대상 블록의 예측 움직임 벡터를 결정하는 예측 움직임 벡터 선택 스텝; 및 상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 결정된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩 스텝을 포함한다.
본 발명의 일 형태에 따른 송신 장치는, 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상을 인코딩하는 동영상 인코딩 방법에 의해 인코딩된 인코딩 비트열을 패킷화하여 인코딩 데이터를 얻는 패킷 처리부와, 패킷화된 상기 인코딩 데이터를 송신하는 송신부를 구비한다. 상기 동영상 인코딩 방법은, 인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 인코딩 대상 블록과 상이한 인코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝; 상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝; 상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝; 상기 예측 움직임 벡터 후보 리스트로부터, 상기 인코딩 대상 블록의 예측 움직임 벡터를 결정하는 예측 움직임 벡터 선택 스텝; 및 상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 결정된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩 스텝을 포함한다.
본 발명의 일 형태에 따른 송신 방법은, 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상을 인코딩하는 동영상 인코딩 방법에 의해 인코딩된 인코딩 비트열을 패킷화하여 인코딩 데이터를 얻는 패킷 처리 스텝과, 패킷화된 상기 인코딩 데이터를 송신하는 송신 스텝을 포함한다. 상기 동영상 인코딩 방법은, 인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 인코딩 대상 블록과 상이한 인코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝; 상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝; 상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝; 상기 예측 움직임 벡터 후보 리스트로부터, 상기 인코딩 대상 블록의 예측 움직임 벡터를 결정하는 예측 움직임 벡터 선택 스텝; 및 상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 결정된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩 스텝을 포함한다.
본 발명의 일 형태에 따른 동영상 디코딩 장치는, 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 장치이고, 예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩부(202); 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 디코딩 대상 블록과 상이한 디코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성부(221); 상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록부(222); 상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한부(224); 및 디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트로부터, 상기 디코딩 대상 블록의 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택부(225)를 구비한다.
본 발명의 다른 형태에 따른 동영상 디코딩 장치는, 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 장치이고, 예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩부(202); 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 생성하고, 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성부(221, 222); 상기 예측 움직임 벡터 후보 리스트에 등록되는 상기 예측 움직임 벡터의 후보수를 예측 블록의 사이즈에 상응한 최대 후보수로 제한하는 예측 움직임 벡터 후보수 제한부(224); 및 디코딩된 상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트로부터 상기 디코딩 대상 블록의 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택부(225)를 구비한다.
본 발명의 일 형태에 따른 동영상 디코딩 방법은, 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 방법이고, 예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩 스텝; 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 디코딩 대상 블록과 상이한 디코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝; 상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝; 상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝; 및 디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트로부터, 상기 디코딩 대상 블록의 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택 스텝을 포함한다.
본 발명의 일 형태에 따른 수신 장치는, 동영상이 인코딩된 인코딩 비트열을 수신하여 디코딩하는 수신 장치이고, 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상이 인코딩된 인코딩 비트열이 패킷화된 인코딩 데이터를 수신하는 수신부; 수신된 상기 인코딩 데이터를 패킷 처리하여 원래의 인코딩 비트열을 복원하는 복원부; 복원된 인코딩 비트열로부터, 예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩부(202); 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 디코딩 대상 블록과 상이한 디코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성부(221); 상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록부(222); 상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한부(224); 및 디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트로부터, 상기 디코딩 대상 블록의 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택부(225)를 구비한다.
본 발명의 일 형태에 따른 수신 방법은, 동영상이 인코딩된 인코딩 비트열을 수신하여 디코딩하는 수신 방법이고, 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상이 인코딩된 인코딩 비트열이 패킷화된 인코딩 데이터를 수신하는 수신 스텝; 수신된 상기 인코딩 데이터를 패킷 처리하여 원래의 인코딩 비트열을 복원하는 복원 스텝; 복원된 인코딩 비트열로부터, 예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩 스텝; 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 디코딩 대상 블록과 상이한 디코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝; 상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝; 상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝; 및 디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트로부터, 상기 디코딩 대상 블록의 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택 스텝을 포함한다.
한편, 이상의 구성 요소의 임의의 조합, 본 발명의 표현을 방법, 장치, 시스템, 기록 매체, 컴퓨터 프로그램 등의 사이에서 변환한 것도, 본 발명의 형태로서 유효하다.
본 발명에 의하면, 복수의 예측 움직임 벡터를 산출하고, 그 복수의 예측 움직임 벡터 중에서 최적의 예측 움직임 벡터를 선택하여, 차분 움직임 벡터의 발생 부호량을 삭감시켜, 인코딩 효율을 향상시킬 수 있다.
도 1은 실시형태에 따른 움직임 벡터의 예측 방법을 실행하는 동영상 인코딩 장치의 구성을 나타내는 블록도이다.
도 2는 실시형태에 따른 움직임 벡터의 예측 방법을 실행하는 동영상 디코딩 장치의 구성을 나타내는 블록도이다.
도 3은 트리 블록, 인코딩 블록을 설명하는 도면이다.
도 4는 예측 블록의 분할 모드를 설명하는 도면이다.
도 5는 예측 블록 그룹을 설명하는 도면이다.
도 6은 예측 블록 그룹을 설명하는 도면이다.
도 7은 예측 블록 그룹을 설명하는 도면이다.
도 8은 예측 블록 그룹을 설명하는 도면이다.
도 9는 예측 블록 그룹을 설명하는 도면이다.
도 10은 움직임 벡터의 예측 방법에 관한 슬라이스 레벨에서의 비트 스트림의 신택스를 설명하는 도면이다.
도 11은 움직임 벡터의 예측 방법에 관한 예측 블록 레벨에서의 비트 스트림의 신택스를 설명하는 도면이다.
도 12는 예측 움직임 벡터 인덱스의 신택스 요소의 엔트로피 부호의 일례를 설명하는 도면이다.
도 13은 도 1의 차분 움직임 벡터 산출부의 상세한 구성을 나타내는 블록도이다.
도 14는 도 2의 움직임 벡터 산출부의 상세한 구성을 나타내는 블록도이다.
도 15는 도 1의 차분 움직임 벡터 산출부의 차분 움직임 벡터 산출 처리 순서를 나타내는 플로차트이다.
도 16은 도 2의 움직임 벡터 산출부의 움직임 벡터 산출 처리 순서를 나타내는 플로차트이다.
도 17은 예측 움직임 벡터의 최종 후보수 설정 처리 순서를 나타내는 플로차트이다.
도 18은 예측 움직임 벡터의 후보 도출 및 예측 움직임 벡터 리스트 구축 처리 순서를 나타내는 플로차트이다.
도 19는 예측 움직임 벡터의 후보 도출 처리 순서를 나타내는 플로차트이다.
도 20은 예측 움직임 벡터의 후보 도출 처리 순서를 나타내는 플로차트이다.
도 21은 예측 움직임 벡터의 후보 도출 처리 순서를 나타내는 플로차트이다.
도 22는 움직임 벡터의 스케일링 연산 처리 순서를 나타내는 플로차트이다.
도 23은 정수 연산에 의한 움직임 벡터의 스케일링 연산 처리 순서를 나타내는 플로차트이다.
도 24는 예측 움직임 벡터의 후보 도출 처리 순서를 나타내는 플로차트이다.
도 25는 상이한 시간의 픽처의 도출 처리 순서를 나타내는 플로차트이다.
도 26은 상이한 시간의 픽처의 예측 블록의 후보 도출 처리 순서를 나타내는 플로차트이다.
도 27은 예측 움직임 벡터의 후보 도출 처리 순서를 나타내는 플로차트이다.
도 28은 예측 움직임 벡터의 후보 도출 처리 순서를 나타내는 플로차트이다.
도 29는 움직임 벡터의 스케일링 연산 처리 순서를 나타내는 플로차트이다.
도 30은 정수 연산에 의한 움직임 벡터의 스케일링 연산 처리 순서를 나타내는 플로차트이다.
도 31은 예측 움직임 벡터 후보 리스트로의 예측 움직임 벡터의 후보 등록 처리 순서를 나타내는 플로차트이다.
도 32는 예측 움직임 벡터 후보 리스트로부터 장황한 예측 움직임 벡터의 후보의 삭제 처리 순서를 나타내는 플로차트이다.
도 33은 예측 움직임 벡터의 후보수의 제한 처리 순서를 나타내는 플로차트이다.
도 34는 예측 움직임 벡터 후보 리스트로의 예측 움직임 벡터의 후보 등록 처리 순서를 나타내는 플로차트이다.
도 35는 예측 움직임 벡터 후보 리스트로의 예측 움직임 벡터의 후보 등록 처리 순서를 나타내는 플로차트이다.
도 36은 종래의 예측 움직임 벡터의 산출 방법을 설명하는 도면이다.
본 실시형태에서는, 동영상의 인코딩에 관하여, 특히 픽처를 임의의 사이즈, 형상의 직사각형 블록으로 분할하고, 픽처 사이에서 블록 단위로 움직임 보상을 하는 동영상 인코딩에 있어서의 인코딩 효율을 향상시키기 위해, 인코딩 완료된 주위의 블록의 움직임 벡터로부터 복수의 예측 움직임 벡터를 산출하고, 인코딩 대상의 블록의 움직임 벡터와 선택된 예측 움직임 벡터의 차분 벡터를 산출하여 인코딩하는 것에 의해 부호량을 삭감한다. 혹은, 인코딩 완료된 주위의 블록의 인코딩 정보를 이용하는 것에 의해, 인코딩 대상 블록의 인코딩 정보를 추정하는 것에 의해 부호량을 삭감한다. 또한, 동영상의 디코딩의 경우에는, 디코딩 완료된 주위의 블록의 움직임 벡터로부터 복수의 예측 움직임 벡터를 산출하고, 인코딩 스트림으로부터 디코딩된 차분 벡터와 선택된 예측 움직임 벡터로부터 디코딩 대상의 블록의 움직임 벡터를 산출하여 디코딩한다. 혹은, 디코딩 완료된 주위의 블록의 인코딩 정보를 이용하는 것에 의해, 디코딩 대상 블록의 인코딩 정보를 추정한다.
우선, 본 실시형태에서 사용하는 기술, 및 기술용어를 정의한다.
(트리 블록, 인코딩 블록에 대해)
실시형태에서는, 도 3에 도시되는 바와 같이, 픽처 내를 임의의 동일 사이즈의 정방 구형 단위로 균등 분할한다. 이 단위를 트리 블록으로 정의하고, 픽처 내에서의 인코딩 또는 디코딩 대상 블록(인코딩 처리에 있어서는 인코딩 대상 블록, 디코딩 처리에 있어서는 디코딩 대상 블록이다. 이하, 한정하지 않는 한, 이 의미로 사용한다.)을 특정하기 위한 어드레스 관리의 기본 단위로 한다. 모노크롬(monochrome)을 제외하고 트리 블록은 1개의 휘도 신호와 2개의 색차 신호로 구성된다. 트리 블록의 사이즈는 픽처 사이즈나 픽처 내의 텍스처(texture)에 상응하여, 2의 거듭 제곱의 사이즈로 자유로이 설정할 수 있다. 트리 블록은 픽처 내의 텍스처에 상응하여, 인코딩 처리를 최적으로 하기 위해, 필요에 따라 트리 블록 내의 휘도 신호, 및 색차 신호를 계층적으로 4분할(종횡으로 2분할씩)하여, 블록 사이즈가 작은 블록으로 할 수 있다. 이 블록을 각각 인코딩 블록으로 정의하고, 인코딩 및 디코딩을 할 때의 처리의 기본 단위로 한다. 모노크롬을 제외하고 인코딩 블록도 1개의 휘도 신호와 2개의 색차 신호로 구성된다. 인코딩 블록의 최대 사이즈는 트리 블록의 사이즈와 동일하다. 인코딩 블록의 최소의 사이즈가 되는 인코딩 블록을 최소 인코딩 블록이라 부르고, 2의 거듭 제곱의 사이즈로 자유로이 설정할 수 있다.
도 3에 있어서는, 인코딩 블록 A는, 트리 블록을 분할하지 않고, 1개의 인코딩 블록으로 한 것이다. 인코딩 블록 B는, 트리 블록을 4분할하여 생긴 인코딩 블록이다. 인코딩 블록 C는, 트리 블록을 4분할하여 생긴 블록을 더욱 4분할하여 생긴 인코딩 블록이다. 인코딩 블록 D는, 트리 블록을 4분할하여 생긴 블록을 더욱 계층적으로 2번 4분할하여 생긴 인코딩 블록이고, 최소 사이즈의 인코딩 블록이다.
(예측 모드에 대해)
인코딩 블록 단위로, 디코딩 완료된 주위의 화상 신호로부터 예측을 하는 인트라 예측(MODE_INTRA), 및 디코딩 완료된 픽처의 화상 신호로부터 예측을 하는 인터 예측(MODE_INTER)을 전환한다. 이 인트라 예측(MODE_INTRA)과 인터 예측(MODE_INTER)을 식별하는 모드를 예측 모드(PredMode)로 정의한다. 예측 모드(PredMode)는 인트라 예측(MODE_INTRA), 또는 인터 예측(MODE_INTER)을 값으로서 갖고, 선택하여 인코딩할 수 있다.
(분할 모드, 예측 블록, 예측 유닛에 대해)
픽처 내를 블록으로 분할하여 인트라 예측(MODE_INTRA) 및 인터 예측(MODE_INTER)을 하는 경우, 인트라 예측 및 인터 예측의 방법을 전환하는 단위를 보다 작게 하기 위해, 필요에 따라 인코딩 블록을 분할하여 예측을 한다. 이 인코딩 블록의 휘도 신호와 색차 신호의 분할 방법을 식별하는 모드를 분할 모드(PartMode)로 정의한다. 나아가, 이 분할된 블록을 예측 블록으로 정의한다. 도 4에 나타내는 바와 같이, 인코딩 블록의 휘도 신호의 분할 방법에 따라 4종류의 분할 모드(PartMode)를 정의한다. 인코딩 블록의 휘도 신호를 분할하지 않고 1개의 예측 블록으로 간주한 것(도 4(a))의 분할 모드(PartMode)를 2N×2N 분할(PART_2N×2N), 인코딩 블록의 휘도 신호를 수평 방향으로 2분할하여, 2개의 예측 블록으로 한 것(도 4(b))의 분할 모드(PartMode)를 2N×N 분할(PART_2N×N), 인코딩 블록의 휘도 신호를 수직 방향으로 분할하여, 인코딩 블록을 2개의 예측 블록으로 한 것(도 4(c))의 분할 모드(PartMode)를 N×2N 분할(PART_N×2N), 인코딩 블록의 휘도 신호를 수평과 수직의 균등 분할에 의해 4개의 예측 블록으로 한 것(도 4(d))의 분할 모드(PartMode)를 N×N 분할(PART_N×N)로 각각 정의한다. 한편, 인트라 예측(MODE_INTRA)의 N×N 분할(PART_N×N)을 제외하고, 각 분할 모드(PartMode)마다 휘도 신호의 종횡의 분할 비율과 동일하게 색차 신호도 분할한다.
인코딩 블록 내부에 있어서, 각 예측 블록을 특정하기 위해, 0으로부터 시작하는 번호를, 인코딩 순서로, 인코딩 블록 내부에 존재하는 예측 블록에 대해 할당한다. 이 번호를 분할 인덱스 PartIdx로 정의한다. 도 4의 인코딩 블록의 각 예측 블록 중에 기술된 숫자는, 그 예측 블록의 분할 인덱스 PartIdx를 나타낸다. 도 4(b)에 나타내는 2N×N 분할(PART_2N×N)에서는 위의 예측 블록의 분할 인덱스 PartIdx를 0으로 하고, 아래의 예측 블록의 분할 인덱스 PartIdx를 1로 한다. 도 4(c)에 나타내는 N×2N 분할(PART_N×2N)에서는 왼쪽의 예측 블록의 분할 인덱스 PartIdx를 0으로 하고, 오른쪽의 예측 블록의 분할 인덱스 PartIdx를 1로 한다. 도 4(d)에 나타내는 N×N 분할(PART_N×N)에서는, 왼쪽 위의 예측 블록의 분할 인덱스 PartIdx를 0으로 하고, 오른쪽 위의 예측 블록의 분할 인덱스 PartIdx를 1으로 하고, 왼쪽 아래의 예측 블록의 분할 인덱스 PartIdx를 2로 하고, 오른쪽 아래의 예측 블록의 분할 인덱스 PartIdx를 3으로 한다.
예측 모드(PredMode)가 인터 예측(MODE_INTER)에서는, 최소의 인코딩 블록인 인코딩 블록 D 이외에서는, 분할 모드(PartMode)는 2N×2N 분할(PART_2N×2N), 2N×N 분할(PART_2N×N), 및 N×2N 분할(PART_N×2N)을 정의하고, 최소의 인코딩 블록인 인코딩 블록 D만, 분할 모드(PartMode)는 2N×2N 분할(PART_2N×2N), 2N×N 분할(PART_2N×N), 및 N×2N 분할(PART_N×2N)에 더하여 N×N 분할(PART_N×N)을 정의한다. 한편, 최소의 인코딩 블록 이외에 N×N 분할(PART_N×N)을 정의하지 않을 이유는 최소의 인코딩 블록 이외에서는, 인코딩 블록을 4분할하여 작은 인코딩 블록을 표현할 수 있기 때문이다.
(트리 블록, 인코딩 블록, 예측 블록, 변환 블록의 위치)
본 실시형태의 트리 블록, 인코딩 블록, 예측 블록, 변환 블록을 비롯한 각 블록의 위치는, 휘도 신호의 화면 가장 왼쪽 위의 휘도 신호의 화소 위치를 원점(0, 0)이라 하고, 각각의 블록의 영역에 포함되는 가장 왼쪽 위의 휘도 신호의 화소 위치를 (x, y)의 2차원 좌표로 나타낸다. 좌표축의 방향은 수평 방향으로 오른쪽 방향, 수직 방향으로 아래 방향을 각각 정의 방향이라 하고, 단위는 휘도 신호의 1화소 단위이다. 휘도 신호와 색차 신호로 화상 사이즈(화소수)가 동일한 색차 포맷이 4:4:4인 경우에서는 물론, 휘도 신호와 색차 신호로 화상 사이즈(화소수)가 상이한 색차 포맷이 4:2:0, 4:2:2인 경우에도 색차 신호의 각 블록의 위치를 그 블록의 영역에 포함되는 휘도 신호의 화소 좌표로 나타내고, 단위는 휘도 신호의 1화소이다. 이와 같이 하는 것에 의해, 색차 신호의 각 블록의 위치를 특정할 수 있는 것은 물론, 좌표의 값을 비교하는 것만으로, 휘도 신호의 블록과 색차 신호의 블록의 위치 관계도 명확해진다.
(예측 블록 그룹에 대해)
복수의 예측 블록으로 구성되는 그룹을 예측 블록 그룹으로 정의한다. 도 5, 도 6, 도 7 및 도 8은 인코딩 또는 디코딩 대상의 예측 블록과 동일 픽처 내에서 그 인코딩 또는 디코딩 대상의 예측 블록에 인접하는 예측 블록 그룹을 설명하는 도면이다. 도 9는 인코딩 또는 디코딩 대상의 예측 블록과 시간적으로 상이한 디코딩 완료된 픽처에 있어서, 인코딩 또는 디코딩 대상의 예측 블록과 동일 위치 혹은 그 근방의 위치에 존재하는 이미 인코딩 또는 디코딩 완료된 예측 블록 그룹을 설명하는 도면이다. 도 5, 도 6, 도 7, 도 8 및 도 9를 사용하여 예측 블록 그룹에 대해 설명한다.
도 5에 나타내는 바와 같이, 인코딩 또는 디코딩 대상의 예측 블록과 동일 픽처 내에서 그 인코딩 또는 디코딩 대상의 예측 블록의 좌측의 변에 인접하는 예측 블록 A1, 및 인코딩 또는 디코딩 대상의 예측 블록의 왼쪽 아래의 정점에 인접하는 예측 블록 A0으로 구성되는 제1의 예측 블록 그룹을 좌측에 인접하는 예측 블록 그룹으로 정의한다.
한편, 도 6에 나타내는 바와 같이, 인코딩 또는 디코딩 대상의 예측 블록의 좌측에 인접하는 예측 블록의 사이즈가 인코딩 또는 디코딩 대상의 예측 블록보다 큰 경우에도, 상기 조건에 따라, 좌측에 인접하는 예측 블록 A가 그 인코딩 또는 디코딩 대상의 예측 블록의 좌측의 변에 인접하고 있으면 예측 블록 A1로 하고, 인코딩 또는 디코딩 대상의 예측 블록의 왼쪽 아래의 정점에 인접하고 있으면 예측 블록 A0으로 한다. 도 6의 예에서는, 예측 블록 A0과 예측 블록 A1은 동일한 예측 블록이 된다.
한편, 도 7에 나타내는 바와 같이, 인코딩 또는 디코딩 대상의 예측 블록의 좌측의 변에 인접하는 예측 블록의 사이즈가 인코딩 또는 디코딩 대상의 예측 블록보다 작고, 복수 존재하는 경우에는, 본 실시형태에 있어서는 좌측에 인접하는 예측 블록 중에서 가장 아래의 예측 블록 A10만을 좌측에 인접하는 예측 블록 A1로 한다.
인코딩 또는 디코딩 대상의 예측 블록과 동일 픽처 내에서 그 인코딩 또는 디코딩 대상의 예측 블록의 상측의 변에 인접하는 예측 블록 B1, 인코딩 또는 디코딩 대상의 예측 블록의 오른쪽 위의 정점에 인접하는 예측 블록 B0, 및 인코딩 또는 디코딩 대상의 예측 블록의 왼쪽 위의 정점에 인접하는 예측 블록 B2로 구성되는 제2의 예측 블록 그룹을 상측에 인접하는 예측 블록 그룹으로 정의한다.
한편, 도 8에 나타내는 바와 같이, 인코딩 또는 디코딩 대상의 예측 블록의 상측에 인접하는 예측 블록의 사이즈가 인코딩 또는 디코딩 대상의 예측 블록보다 큰 경우에도, 상기 조건에 따라, 상측에 인접하는 예측 블록 B가 그 인코딩 또는 디코딩 대상의 예측 블록의 상측의 변에 인접하고 있으면 예측 블록 B1로 하고, 인코딩 또는 디코딩 대상의 예측 블록의 오른쪽 위의 정점에 인접하고 있으면 예측 블록 B0으로 하고, 인코딩 또는 디코딩 대상의 예측 블록의 왼쪽 위의 정점에 인접하고 있으면 예측 블록 B2로 한다. 도 8의 예에서는, 예측 블록 B0과 예측 블록 B1과 예측 블록 B2는 동일한 예측 블록이 된다.
한편, 도 7에 나타내는 바와 같이, 인코딩 또는 디코딩 대상의 예측 블록의 상측의 변에 인접하는 예측 블록의 사이즈가 인코딩 또는 디코딩 대상의 예측 블록보다 작고, 복수 존재하는 경우에는, 실시형태에 있어서는 상측에 인접하는 예측 블록 중에서 가장 오른쪽의 예측 블록 B10만을 상측에 인접하는 예측 블록 B1로 한다.
도 9에 나타내는 바와 같이, 인코딩 또는 디코딩 대상의 예측 블록과 시간적으로 상이한 인코딩 또는 디코딩 완료된 픽처에 있어서, 인코딩 또는 디코딩 대상의 예측 블록과 동일 위치 혹은 그 근방의 위치에 존재하는 이미 인코딩 또는 디코딩 완료된 예측 블록 그룹 T0 및 T1로 구성되는 제3의 예측 블록 그룹을 상이한 시간의 예측 블록 그룹으로 정의한다.
(인터 예측 모드, 참조 리스트에 대해)
본 발명의 실시형태에 있어서는, 디코딩 완료된 픽처의 화상 신호로부터 예측을 하는 인터 예측에서는, 복수의 디코딩 완료된 픽처를 참조 픽처로서 사용할 수 있다. 복수의 참조 픽처로부터 선택된 참조 픽처를 특정하기 위해, 예측 블록마다 참조 인덱스를 기입한다. B 슬라이스에서는 예측 블록마다 임의의 2장의 참조 픽처를 선택하여 인터 예측을 할 수 있고, 인터 예측 모드로서 L0 예측(Pred_L0), L1 예측(Pred_L1), 쌍예측(Pred_BI)이 있다. 참조 픽처는 리스트 구조의 L0(참조 리스트0)과 L1(참조 리스트1)로 관리되고, L0 또는 L1의 참조 인덱스를 지정하는 것에 의해 참조 픽처를 특정할 수 있다. L0 예측(Pred_L0)은 L0로 관리되고 있는 참조 픽처를 참조하는 인터 예측이고, L1 예측(Pred_L1)은 L1로 관리되고 있는 참조 픽처를 참조하는 인터 예측이고, 쌍예측(Pred_BI)은 L0 예측과 L1 예측이 함께 진행되고, L0과 L1의 각각으로 관리되고 있는 1개씩의 참조 픽처를 참조하는 인터 예측이다. P 슬라이스의 인터 예측에서는 L0 예측만을 사용할 수 있고, B 슬라이스의 인터 예측에서는 L0 예측, L1 예측, L0 예측과 L1 예측을 평균 또는 가중 가산하는 쌍예측(Pred_BI)을 사용할 수 있다. 이후의 처리에 있어서 출력에 첨자 LX(X는 0 또는 1)이 붙어 있는 상수, 변수에 관해서는, L0, L1마다 처리가 진행되는 것을 전제로 한다.
(POC에 대해)
POC는 인코딩되는 픽처에 관련지어지는 변수로 하고, 픽처의 출력 순서로 1씩 증가하는 값이 설정된다. POC의 값에 의해, 동일한 픽처인지를 판별하거나, 출력 순서에서의 픽처 사이의 전후 관계를 판별하거나, 픽처 사이의 거리를 도출하거나 할 수 있다. 예를 들면, 2개의 픽처의 POC가 동일값을 갖는 경우, 동일한 픽처로 판단할 수 있다. 2개의 픽처의 POC가 상이한 값을 갖는 경우, POC의 값이 작은 픽처가, 시간적으로 먼저 출력되는 픽처로 판단할 수 있고, 2개의 픽처의 POC의 차이가 시간축 방향에서의 픽처간 거리를 나타낸다.
이하, 도면과 함께 본 발명의 실시형태를 설명한다. 도 1은 본 발명의 실시형태에 따른 동영상 인코딩 장치의 구성을 나타내는 블록도이다. 실시형태에 따른 동영상 인코딩 장치는, 화상 메모리(101), 움직임 벡터 검출부(102), 차분 움직임 벡터 산출부(103), 인터 예측 정보 추정부(104), 움직임 보상 예측부(105), 예측 방법 결정부(106), 잔차 신호 생성부(107), 직교 변환·양자화부(108), 제1의 인코딩 비트열 생성부(109), 제2의 인코딩 비트열 생성부(110), 다중화부(111), 역양자화·역직교 변환부(112), 디코딩 화상 신호 중첩부(113), 인코딩 정보 저장 메모리(114), 및 디코딩 화상 메모리(115)를 구비한다.
화상 메모리(101)는, 촬영/표시 시간순으로 공급된 인코딩 대상의 픽처의 화상 신호를 일시 저장한다. 화상 메모리(101)는, 저장된 인코딩 대상의 픽처의 화상 신호를, 소정의 화소 블록 단위로, 움직임 벡터 검출부(102), 예측 방법 결정부(106), 및 잔차 신호 생성부(107)에 공급한다. 그 때, 촬영/표시 시간순으로 저장된 픽처의 화상 신호는, 인코딩 순서로 재배열되어, 화소 블록 단위로, 화상 메모리(101)로부터 출력된다.
움직임 벡터 검출부(102)는, 화상 메모리(101)로부터 공급되는 화상 신호와 디코딩 화상 메모리(115)로부터 공급되는 참조 픽처 사이에서 블록 매칭 등에 의해 각 예측 블록 사이즈, 각 예측 모드의 각각의 움직임 벡터를 각 예측 블록 단위로 검출하고, 검출된 움직임 벡터를 움직임 보상 예측부(105), 차분 움직임 벡터 산출부(103), 및 예측 방법 결정부(106)에 공급한다.
차분 움직임 벡터 산출부(103)는, 인코딩 정보 저장 메모리(114)에 기억되어 있는 이미 인코딩된 화상 신호의 인코딩 정보를 사용하여, 복수의 예측 움직임 벡터의 후보를 산출하여 후술하는 예측 움직임 벡터 리스트에 등록하고, 예측 움직임 벡터 리스트에 등록된 복수의 예측 움직임 벡터의 후보 중에서 최적의 예측 움직임 벡터를 선택하여, 움직임 벡터 검출부(102)가 검출한 움직임 벡터와 예측 움직임 벡터로부터 차분 움직임 벡터를 산출하고, 산출된 차분 움직임 벡터를 예측 방법 결정부(106)에 공급한다. 나아가, 예측 움직임 벡터 리스트에 등록된 예측 움직임 벡터의 후보로부터 선택된 예측 움직임 벡터를 특정하는 예측 움직임 벡터 인덱스를 예측 방법 결정부(106)에 공급한다. 차분 움직임 벡터 산출부(103)의 상세한 구성과 동작은 후술한다.
인터 예측 정보 추정부(104)는, 머지 모드의 인터 예측 정보를 추정한다. 머지 모드란, 해당 예측 블록의 예측 모드, 참조 인덱스(참조 리스트에 등록되어 있는 복수의 참조 픽처로부터 움직임 보상 예측에 이용하는 참조 픽처를 특정하기 위한 정보), 움직임 벡터 등의 인터 예측 정보를 인코딩하는 것이 아니고, 인코딩 완료된 인접하는 인터 예측된 예측 블록, 혹은 상이한 픽처의 인터 예측된 예측 블록의 인터 예측 정보를 이용하는 모드이다. 인코딩 정보 저장 메모리(114)에 기억되어 있는 이미 인코딩된 예측 블록의 인코딩 정보를 사용하여, 복수의 머지 후보(인터 예측 정보의 후보)를 산출하여 머지 후보 리스트에 등록하고, 머지 후보 리스트에 등록된 복수의 머지 후보 중에서 최적의 머지 후보를 선택하여, 선택된 머지 후보의 예측 모드, 참조 인덱스, 움직임 벡터 등의 인터 예측 정보를 움직임 보상 예측부(105)에 공급하는 한편, 선택된 머지 후보를 특정하는 머지 인덱스를 예측 방법 결정부(106)에 공급한다.
움직임 보상 예측부(105)는, 움직임 벡터 검출부(102) 및 인터 예측 정보 추정부(104)에 의해 검출된 움직임 벡터를 사용하여 참조 픽처로부터 움직임 보상 예측에 의해 예측 화상 신호를 생성하고, 예측 화상 신호를 예측 방법 결정부(106)에 공급한다. 한편, L0 예측, 및 L1 예측에서는, 단방향 예측을 한다. 쌍예측(Pred_BI)인 경우에는, 양방향 예측을 하여, L0 예측, L1 예측의 각각의 인터 예측된 신호에 적응적으로 무게 계수를 곱셈하고, 오프셋값을 가산하여 중첩하여, 최종적인 예측 화상 신호를 생성한다.
예측 방법 결정부(106)는 차분 움직임 벡터의 부호량, 예측 화상 신호와 화상 신호 사이의 변형량 등을 평가하는 것에 의해, 복수의 예측 방법 중에서, 최적의 인코딩 블록 단위로 인터 예측(PRED_INTER)인지 인트라 예측(PRED_INTRA)인지를 판별하는 예측 모드 PredMode, 분할 모드 PartMode를 결정하고, 인터 예측(PRED_INTER)에서는 예측 블록 단위로 머지 모드인지 여부 등의 예측 방법을 결정하고, 머지 모드인 경우에는 머지 인덱스, 머지 모드가 아닌 경우에는 인터 예측 플래그, 예측 움직임 벡터 인덱스, L0, L1의 참조 인덱스, 차분 움직임 벡터 등을 결정하여, 결정에 따른 인코딩 정보를 제1의 인코딩 비트열 생성부(109)에 공급한다.
또한, 예측 방법 결정부(106)는, 결정된 예측 방법을 나타내는 정보, 및 결정된 예측 방법에 따른 움직임 벡터 등을 포함하는 인코딩 정보를 인코딩 정보 저장 메모리(114)에 저장한다. 여기서 저장하는 인코딩 정보는, 예측 모드 PredMode, 분할 모드 PartMode, L0 예측, 및 L1 예측을 이용할지 여부를 나타내는 플래그 predFlagL0, predFlagL1, L0, L1의 참조 인덱스 refIdxL0, refIdxL1, L0, L1의 움직임 벡터 mvL0, mvL1 등이다. 여기서, 예측 모드 PredMode가 인트라 예측(PRED_INTRA)인 경우, L0 예측을 이용할지 여부를 나타내는 플래그 predFlagL0, L1 예측을 이용할지 여부를 나타내는 플래그 predFlagL1은 모두 0이다. 한편, 예측 모드 PredMode가 인터 예측(MODE_INTER)이고, 인터 예측 모드가 L0 예측(Pred_L0)인 경우, L0 예측을 이용할지 여부를 나타내는 플래그 predFlagL0은 1, L1 예측을 이용할지 여부를 나타내는 플래그 predFlagL1은 0이다. 인터 예측 모드가 L1 예측(Pred_L1)인 경우, L0 예측을 이용할지 여부를 나타내는 플래그 predFlagL0은 0, L1 예측을 이용할지 여부를 나타내는 플래그 predFlagL1은 1이다. 인터 예측 모드가 쌍예측(Pred_BI)인 경우, L0 예측을 이용할지 여부를 나타내는 플래그 predFlagL0, L1 예측을 이용할지 여부를 나타내는 플래그 predFlagL1은 모두 1이다. 예측 방법 결정부(106)는, 결정된 예측 모드에 따른 예측 화상 신호를 잔차 신호 생성부(107)와 디코딩 화상 신호 중첩부(113)에 공급한다.
잔차 신호 생성부(107)는, 인코딩하는 화상 신호와 예측 화상 신호와의 감산을 하는 것에 의해 잔차 신호를 생성하고, 직교 변환·양자화부(108)에 공급한다.
직교 변환·양자화부(108)는, 잔차 신호에 대해 양자화 파라미터에 상응하여 직교 변환 및 양자화를 진행하여 직교 변환·양자화된 잔차 신호를 생성하고, 제2의 인코딩 비트열 생성부(110)와 역양자화·역직교 변환부(112)에 공급한다. 나아가, 직교 변환·양자화부(108)는, 양자화 파라미터를 인코딩 정보 저장 메모리(114)에 저장한다.
제1의 인코딩 비트열 생성부(109)는, 시퀀스, 픽처, 슬라이스, 인코딩 블록 단위의 정보에 더하여, 인코딩 블록 및 예측 블록마다 예측 방법 결정부(106)에 의해 결정된 예측 방법에 따른 인코딩 정보를 인코딩한다. 구체적으로는, 인코딩 블록마다의 예측 모드 PredMode가 인터 예측(PRED_INTER)인 경우, 머지 모드인지 여부를 판별하는 플래그, 머지 모드인 경우에는 머지 인덱스, 머지 모드가 아닌 경우에는 인터 예측 모드, 참조 인덱스, 예측 움직임 벡터 인덱스, 차분 움직임 벡터에 관한 정보 등의 인코딩 정보를 후술하는 규정의 신택스 규칙에 따라 인코딩하여 제1의 인코딩 비트열을 생성하고, 다중화부(111)에 공급한다. 한편, 예측 움직임 벡터 리스트에 등록되는 예측 움직임 벡터의 후보수가 1인 경우, 예측 움직임 벡터 인덱스 mvp_idx는 0으로 특정할 수 있기 때문에, 인코딩하지 않는다. 본 실시형태에 있어서는, 후술하는 바와 같이 인코딩 대상의 예측 블록의 사이즈에 상응하여, 예측 움직임 벡터의 후보수가 설정된다. 여기서, 제1의 인코딩 비트열 생성부(109)에서는, 인코딩 대상의 예측 블록의 사이즈에 상응하여, 예측 움직임 벡터의 후보수를 설정하고, 설정된 후보수가 1보다 큰 경우에 예측 움직임 벡터 인덱스를 인코딩한다.
제2의 인코딩 비트열 생성부(110)는, 직교 변환 및 양자화된 잔차 신호를 규정의 신택스 규칙에 따라 엔트로피 인코딩하여 제2의 인코딩 비트열을 생성하고, 다중화부(111)에 공급한다. 다중화부(111)에서, 제1의 인코딩 비트열과 제2의 인코딩 비트열을 규정의 신택스 규칙에 따라 다중화하고, 비트 스트림을 출력한다.
역양자화·역직교 변환부(112)는, 직교 변환·양자화부(108)로부터 공급된 직교 변환·양자화된 잔차 신호를 역양자화 및 역직교 변환하여 잔차 신호를 산출하고, 디코딩 화상 신호 중첩부(113)에 공급한다. 디코딩 화상 신호 중첩부(113)는, 예측 방법 결정부(106)에 의한 결정에 따른 예측 화상 신호와 역양자화·역직교 변환부(112)에서 역양자화 및 역직교 변환된 잔차 신호를 중첩하여 디코딩 화상을 생성하고, 디코딩 화상 메모리(115)에 저장한다. 한편, 디코딩 화상에 대해 인코딩에 의한 블록 노이즈 등의 변형을 감소시키는 필터링 처리를 실시하여, 디코딩 화상 메모리(115)에 저장되는 경우도 있다.
도 2는 도 1의 동영상 인코딩 장치에 대응한 본 발명의 실시형태에 따른 동영상 디코딩 장치의 구성을 나타내는 블록이다. 실시형태에 따른 동영상 디코딩 장치는, 분리부(201), 제1인코딩 비트열 디코딩부(202), 제2인코딩 비트열 디코딩부(203), 움직임 벡터 산출부(204), 인터 예측 정보 추정부(205), 움직임 보상 예측부(206), 역양자화·역직교 변환부(207), 디코딩 화상 신호 중첩부(208), 인코딩 정보 저장 메모리(209), 및 디코딩 화상 메모리(210)를 구비한다.
도 2의 동영상 디코딩 장치의 디코딩 처리는, 도 1의 동영상 인코딩 장치 내부에 마련되어 있는 디코딩 처리에 대응하는 것이기 때문에, 도 2의 움직임 보상 예측부(206), 역양자화·역직교 변환부(207), 디코딩 화상 신호 중첩부(208), 인코딩 정보 저장 메모리(209), 및 디코딩 화상 메모리(210)의 각 구성은, 도 1의 동영상 인코딩 장치의 움직임 보상 예측부(105), 역양자화·역직교 변환부(112), 디코딩 화상 신호 중첩부(113), 인코딩 정보 저장 메모리(114), 및 디코딩 화상 메모리(115)의 각 구성과 각각 대응하는 기능을 갖는다.
분리부(201)에 공급되는 비트 스트림은 규정의 신택스 규칙에 따라 분리되고, 분리된 인코딩 비트열이 제1인코딩 비트열 디코딩부(202), 제2인코딩 비트열 디코딩부(203)에 공급된다.
제1인코딩 비트열 디코딩부(202)는, 공급된 인코딩 비트열을 디코딩하여, 시퀀스, 픽처, 슬라이스, 인코딩 블록 단위의 정보, 및, 예측 블록 단위의 인코딩 정보를 얻는다. 구체적으로는, 인코딩 블록 단위로 인터 예측(PRED_INTER)인지 인트라 예측(PRED_INTRA)인지를 판별하는 예측 모드 PredMode, 분할 모드 PartMode, 인터 예측(PRED_INTER)인 경우, 머지 모드인지 여부를 판별하는 플래그, 머지 모드인 경우에는 머지 인덱스, 머지 모드가 아닌 경우에는 인터 예측 모드, 예측 움직임 벡터 인덱스, 차분 움직임 벡터 등에 관한 인코딩 정보를 후술하는 규정의 신택스 규칙에 따라 디코딩하고, 인코딩 정보를 움직임 벡터 산출부(204) 또는 인터 예측 정보 추정부(205)에 공급한다. 한편, 머지 모드가 아닌 경우, 후술하는 예측 움직임 벡터 리스트에 등록되는 예측 움직임 벡터의 후보가 1개인 경우, 예측 움직임 벡터 인덱스는 0으로 특정할 수 있기 때문에, 예측 움직임 벡터 인덱스는 인코딩되어 있지 않고, 예측 움직임 벡터 인덱스를 0으로 한다. 본 실시형태에 있어서는, 후술하는 바와 같이 디코딩 대상의 예측 블록의 사이즈에 상응하여, 예측 움직임 벡터의 후보수가 설정된다. 여기서, 제1인코딩 비트열 디코딩부(202)에서는, 디코딩 대상의 예측 블록의 사이즈에 상응하여, 예측 움직임 벡터의 후보수를 설정하고, 설정된 후보수가 1보다 큰 경우에 예측 움직임 벡터 인덱스를 디코딩한다.
제2인코딩 비트열 디코딩부(203)는, 공급된 인코딩 비트열을 디코딩하여 직교 변환·양자화된 잔차 신호를 산출하고, 직교 변환·양자화된 잔차 신호를 역양자화·역직교 변환부(207)에 공급한다.
움직임 벡터 산출부(204)는, 디코딩 대상의 예측 블록이 머지 모드가 아닐 때에, 인코딩 정보 저장 메모리(209)에 기억되어 있는 이미 디코딩된 화상 신호의 인코딩 정보를 사용하여, 복수의 예측 움직임 벡터의 후보를 산출하여 후술하는 예측 움직임 벡터 리스트에 등록하고, 예측 움직임 벡터 리스트에 등록된 복수의 예측 움직임 벡터의 후보 중에서, 제1인코딩 비트열 디코딩부(202)에서 디코딩되어 공급되는 예측 움직임 벡터 인덱스에 상응한 예측 움직임 벡터를 선택하여, 제1인코딩 비트열 디코딩부(202)에서 디코딩된 차분 벡터와 선택된 예측 움직임 벡터로부터 움직임 벡터를 산출하고, 다른 인코딩 정보와 함께 움직임 보상 예측부(206)에 공급하는 한편, 인코딩 정보 저장 메모리(209)에 저장한다. 여기서 공급·저장하는 예측 블록의 인코딩 정보는, 예측 모드 PredMode, 분할 모드 PartMode, L0 예측, 및 L1 예측을 이용할지 여부를 나타내는 플래그 predFlagL0, predFlagL1, L0, L1의 참조 인덱스 refIdxL0, refIdxL1, L0, L1의 움직임 벡터 mvL0, mvL1 등이다. 여기서, 예측 모드가 인트라 예측(PRED_INTRA)인 경우, L0 예측을 이용할지 여부를 나타내는 플래그 predFlagL0, L1 예측을 이용할지 여부를 나타내는 플래그 predFlagL1은 모두 0이다. 한편, 예측 모드 PredMode가 인터 예측(MODE_INTER)이고, 인터 예측 모드가 L0 예측(Pred_L0)인 경우, L0 예측을 이용할지 여부를 나타내는 플래그 predFlagL0은 1, L1 예측을 이용할지 여부를 나타내는 플래그 predFlagL1은 0이다. 인터 예측 모드가 L1 예측(Pred_L1)인 경우, L0 예측을 이용할지 여부를 나타내는 플래그 predFlagL0은 0, L1 예측을 이용할지 여부를 나타내는 플래그 predFlagL1은 1이다. 인터 예측 모드가 쌍예측(Pred_BI)인 경우, L0 예측을 이용할지 여부를 나타내는 플래그 predFlagL0, L1 예측을 이용할지 여부를 나타내는 플래그 predFlagL1은 모두 1이다. 움직임 벡터 산출부(204)의 상세한 구성과 동작은 후술한다.
인터 예측 정보 추정부(205)는, 디코딩 대상의 예측 블록이 머지 모드일 때에, 머지 모드의 인터 예측 정보를 추정한다. 인코딩 정보 저장 메모리(114)에 기억되어 있는 이미 디코딩된 예측 블록의 인코딩 정보를 사용하여, 복수의 머지 후보를 산출하여 머지 후보 리스트에 등록하고, 머지 후보 리스트에 등록된 복수의 머지 후보 중에서 제1인코딩 비트열 디코딩부(202)에서 디코딩되어 공급되는 머지 인덱스에 대응한 머지 후보를 선택하여, 선택된 머지 후보의 예측 모드 PredMode, 분할 모드 PartMode, L0 예측, 및 L1 예측을 이용할지 여부를 나타내는 플래그 predFlagL0, predFlagL1, L0, L1의 참조 인덱스 refIdxL0, refIdxL1, L0, L1의 움직임 벡터 mvL0, mvL1 등의 인터 예측 정보를 움직임 보상 예측부(206)에 공급하는 한편, 인코딩 정보 저장 메모리(209)에 저장한다.
움직임 보상 예측부(206)는, 움직임 벡터 산출부(204)에서 산출된 움직임 벡터를 사용하여 참조 픽처로부터 움직임 보상 예측에 의해 예측 화상 신호를 생성하고, 예측 화상 신호를 디코딩 화상 신호 중첩부(208)에 공급한다. 한편, 쌍예측(Pred_BI)인 경우에는, L0 예측, L1 예측에 2개의 움직임 보상 예측 화상 신호에 적응적으로 무게 계수를 곱셈하고 중첩하여, 최종적인 예측 화상 신호를 생성한다.
역양자화·역직교 변환부(207)는, 제1인코딩 비트열 디코딩부(202)에서 디코딩된 직교 변환·양자화된 잔차 신호에 대해 역직교 변환 및 역양자화를 하여, 역직교 변환·역양자화된 잔차 신호를 얻는다.
디코딩 화상 신호 중첩부(208)는, 움직임 보상 예측부(206)에서 움직임 보상 예측된 예측 화6상 신호와, 역양자화·역직교 변환부(207)에 의해 역직교 변환·역양자화된 잔차 신호를 중첩하는 것에 의해, 디코딩 화상 신호를 디코딩하고, 디코딩 화상 메모리(210)에 저장한다. 디코딩 화상 메모리(210)에 저장할 때는, 디코딩 화상에 대해 인코딩에 의한 블록 노이즈 등을 감소시키는 필터링 처리를 실시하여, 디코딩 화상 메모리(210)에 저장되는 경우도 있다.
(신택스에 대해)
다음으로, 본 실시형태에 따른 움직임 벡터의 예측 방법을 구비하는 동영상 인코딩 장치에 의해 인코딩되고, 디코딩 장치에 의해 디코딩되는 동영상의 비트 스트림의 인코딩 및 디코딩의 공통 규칙인 신택스에 대해 설명한다.
도 10은 본 실시형태에 의해 생성되는 비트 스트림의 슬라이스 단위로 슬라이스 헤더에 기술되는 제1의 신택스 구조를 나타낸다. 단, 본 실시형태에 관계가 있는 신택스 요소만 나타내고 있다. 슬라이스 타입이 B인 경우에는, 시간 방향의 예측 움직임 벡터의 후보, 또는 머지 후보를 산출할 때에 사용하는 상이한 시간의 픽처 colPic가 처리 대상의 예측 블록이 포함되는 픽처의 L0의 참조 리스트 혹은 L1의 참조 리스트 중의 어느 하나에 등록되어 있는 참조 픽처를 사용할지를 나타내는 플래그 collocated_from_l0_flag가 설치된다. 플래그 collocated_from_l0_flag의 상세에 대해서는 후술한다.
한편, 이상의 신택스 요소는 픽처 단위로 설정되는 신택스 요소를 기술하는 픽처·파라미터·세트에 설치해도 좋다.
도 11은 예측 블록 단위에 기술되는 신택스 패턴을 나타낸다. 예측 블록의 예측 모드 PredMode의 값이 인터 예측(MODE_INTER)인 경우, 머지 모드인지 여부를 나타내는 merge_flag[x0][y0]이 설치된다. 여기서, x0, y0은 휘도 신호의 픽처 내에서의 예측 블록의 왼쪽 위의 화소의 위치를 나타내는 인덱스이고, merge_flag[x0][y0]은 픽처 내의 (x0, y0)에 위치하는 예측 블록의 머지 모드인지 여부를 나타내는 플래그이다.
다음으로, merge_flag[x0][y0]이 1인 경우, 머지 모드인 것을 나타내고, 참조하는 머지 후보의 리스트인 머지 리스트의 인덱스의 신택스 요소 merge_idx[x0][y0]이 설치된다. 여기서, x0, y0은 픽처 내에서의 예측 블록의 왼쪽 위의 화소의 위치를 나타내는 인덱스이고, merge_idx[x0][y0]은 픽처 내의 (x0, y0)에 위치하는 예측 블록의 머지 인덱스이다.
한편, merge_flag[x0][y0]이 0인 경우, 머지 모드가 아님을 나타내고, 슬라이스 타입이 B인 경우, 인터 예측 모드를 식별하는 신택스 요소inter_pred_flag[x0][y0]이 설치되고, 이 신택스 요소로 L0 예측(Pred_L0), L1 예측(Pred_L1), 쌍예측(Pred_BI)을 식별한다. L0, L1마다, 참조 픽처를 특정하기 위한 참조 인덱스의 신택스 요소 ref_idx_l0[x0][y0], ref_idx_l1[x0][y0], 움직임 벡터 검출에 의해 구해진 예측 블록의 움직임 벡터와 예측 움직임 벡터의 차분인 차분 움직임 벡터의 신택스 요소 mvd_l0[x0][y0][j], mvd_l1[x0][y0][j]가 설치된다. 여기서, x0, y0은 픽처 내에서의 예측 블록의 왼쪽 위의 화소의 위치를 나타내는 인덱스이고, ref_idx_l0[x0][y0], mvd_l0[x0][y0][j]는 각각 픽처 내의 (x0, y0)에 위치하는 예측 블록의 L0의 참조 인덱스, 및 차분 움직임 벡터이고, ref_idx_l1[x0][y0], mvd_l1[x0][y0][j]는 각각 픽처 내의 (x0, y0)에 위치하는 예측 블록의 L1의 참조 인덱스, 및 차분 움직임 벡터이다. 또한, j는 차분 움직임 벡터의 성분을 나타내고, j가 0은 x성분을, j가 1은 y성분을 나타낸다. 다음으로, 인코딩 또는 디코딩 대상의 예측 블록의 사이즈에 상응하여 설정되는 차분 움직임 벡터의 후보수가 1보다 큰 경우에, 참조하는 예측 움직임 벡터의 후보 리스트인 예측 움직임 벡터 리스트의 인덱스의 신택스 요소 mvp_idx_l0[x0][y0], mvp_idx_l1[x0][y0]이 설치된다. 여기서, x0, y0은 픽처 내에서의 예측 블록의 왼쪽 위의 화소의 위치를 나타내는 인덱스이고, mvp_idx_l0[x0][y0], mvp_idx_l1[x0][y0]은 픽처 내의 (x0, y0)에 위치하는 예측 블록의 L0, L1의 예측 움직임 벡터 인덱스이다. 함수 NumMVPCand(LX)는, 예측 방향 LX(X는 0 혹은 1)에서 예측 블록의 예측 움직임 벡터의 후보의 총수를 산출하는 함수를 나타내고, 후술하는 인코딩 또는 디코딩 대상의 예측 블록의 사이즈에 상응하여 규정된 최종 후보수 finalNumMVPCand와 동일값이 설정된다. 도 12는 규정된 예측 움직임 벡터의 후보수마다의 예측 움직임 벡터 인덱스의 신택스 요소 mvp_idx_l0[x0][y0], mvp_idx_l1[x0][y0]의 엔트로피 부호의 일례이다. 예측 움직임 벡터 인덱스 mvp_idx_lx[x0][y0]은 움직임 벡터의 예측 방법에 의해 예측 움직임 벡터의 후보수 NumMVPCand(LX)가 1보다 큰 경우에 인코딩된다. 예측 움직임 벡터의 후보의 총수가 1개이면, 그 1개가 예측 움직임 벡터가 되기 때문에, mvp_idx_lx[x0][y0]을 전송하지 않아도 참조하는 예측 움직임 벡터의 후보가 확정되기 때문이다. 예측 움직임 벡터의 후보수 NumMVPCand(LX)가 2인 경우, 예측 움직임 벡터 인덱스가 0일 때, 예측 움직임 벡터 인덱스의 신택스 요소 mvp_idx_l0[x0][y0], mvp_idx_l1[x0][y0]의 부호는 “0”이 되고, 예측 움직임 벡터 인덱스가 1일 때, 예측 움직임 벡터 인덱스의 신택스 요소 mvp_idx_l0[x0][y0], mvp_idx_l1[x0][y0]의 부호는 “1”이 된다. 예측 움직임 벡터의 후보수 NumMVPCand(LX)가 3인 경우, 예측 움직임 벡터 인덱스가 0일 때, 예측 움직임 벡터 인덱스의 신택스 요소 mvp_idx_l0[x0][y0], mvp_idx_l1[x0][y0]의 부호는 “0”이 되고, 예측 움직임 벡터 인덱스가 1일 때, 예측 움직임 벡터 인덱스의 신택스 요소 mvp_idx_l0[x0][y0], mvp_idx_l1[x0][y0]의 부호는 “10”이 되고, 예측 움직임 벡터 인덱스가 2일 때, 예측 움직임 벡터 인덱스의 신택스 요소 mvp_idx_l0[x0][y0], mvp_idx_l1[x0][y0]의 부호는 “11”이 된다. 본 발명의 실시형태에 있어서는, 인코딩 또는 디코딩 대상의 예측 블록의 사이즈에 상응하여, 예측 움직임 벡터의 후보수가 설정되고, 상세에 대해서는 후술한다.
실시형태에 따른 움직임 벡터의 예측 방법은, 도 1의 동영상 인코딩 장치의 차분 움직임 벡터 산출부(103) 및 도 2의 동영상 디코딩 장치의 움직임 벡터 산출부(204)에서 실시된다.
실시형태에 따른 움직임 벡터의 예측 방법을 도면을 사용하여 설명한다. 움직임 벡터의 예측 방법은, 인코딩 블록을 구성하는 예측 블록 단위로, 인코딩 및 디코딩 처리 모두 실시된다. 예측 블록의 예측 모드가 인터 예측(MODE_INTER)이고, 머지 모드가 아닌 경우에, 인코딩의 경우, 인코딩 대상의 움직임 벡터로부터 인코딩하는 차분 움직임 벡터를 산출할 때에 사용하는 인코딩 완료된 움직임 벡터를 이용하여 예측 움직임 벡터를 도출할 때, 디코딩의 경우, 디코딩 대상의 움직임 벡터를 산출할 때에 사용하는 디코딩 완료된 움직임 벡터를 이용하여 예측 움직임 벡터를 도출할 때에 실시된다.
(인코딩에 있어서의 움직임 벡터의 예측)
상술한 신택스에 기초하여, 동영상 비트 스트림을 인코딩하는 동영상 인코딩 장치에 있어서, 실시형태에 따른 움직임 벡터의 예측 방법의 동작을 설명한다. 움직임 벡터의 예측 방법은, 슬라이스 단위로 움직임 보상 예측을 하는 경우, 즉 슬라이스 타입이 P 슬라이스(단방향 예측 슬라이스) 혹은 B 슬라이스(양방향 예측 슬라이스)인 경우에, 나아가, 슬라이스 중의 예측 블록의 예측 모드가 인터 예측(MODE_INTER)이고, 머지 모드가 아닌 차분 움직임 벡터를 인코딩 또는 디코딩하는 예측 블록에 적용된다.
도 13은 도 1의 동영상 인코딩 장치의 차분 움직임 벡터 산출부(103)의 상세한 구성을 나타내는 도면이다. 도 13의 굵은 테두리선으로 둘러싸이는 부분은 차분 움직임 벡터 산출부(103)를 나타내고 있다.
나아가, 그 내부의 굵은 점선으로 둘러싸이는 부분은 후술하는 움직임 벡터의 예측 방법의 동작부를 나타내고 있고, 실시형태에 따른 동영상 인코딩 장치와 대응하는 동영상 디코딩 장치에도 동일하게 설치되고, 인코딩과 디코딩에서 모순되지 않는 동일한 도출 결과를 얻을 수 있도록 하고 있다. 이하, 이 도면을 사용하여, 인코딩에 있어서의 움직임 벡터의 예측 방법을 설명한다.
본 실시형태에 있어서는, 인코딩 또는 디코딩 대상의 예측 블록의 사이즈에 상응하여, 예측 움직임 벡터의 최종 후보수 finalNumMVPCand를 설정한다. 차분 움직임 벡터 산출부(103)에서는, 인코딩 대상의 휘도 신호의 예측 블록의 사이즈가 규정한 사이즈 sizePUNumMVPCand 이하인 경우, finalNumMVPCand를 후자보다 작은 수로 설정하고, 그렇지 않은 경우, finalNumMVPCand를 전자보다 큰 수로 설정한다. 본 실시형태에 있어서는, 규정하는 사이즈 sizePUNumMVPCand를 8×8로 하고, 인코딩 또는 디코딩 대상의 휘도 신호의 예측 블록의 사이즈가 규정한 사이즈 sizePUNumMVPCand 이하인 경우에는, finalNumMVPCand를 1로 설정하고, 그 이외의 경우에는, finalNumMVPCand를 2로 설정한다.
예측 블록의 사이즈가 작은 경우, 단위 면적당의 예측 블록의 수가 많아지기 때문에, 후술하는 장황한 예측 움직임 벡터의 후보를 삭제하는 처리, 및 전술한 예측 움직임 벡터 인덱스를 인코딩하는 처리의 회수가 많아져버린다.
여기서, 본 실시형태에 있어서는, 인코딩 및 디코딩 대상의 예측 블록이 규정한 사이즈 이하인 경우, 최종 후보수 finalNumMVPCand를 1로 하고, 장황한 예측 움직임 벡터의 후보를 삭제하는 처리 및 예측 움직임 벡터 인덱스를 인코딩 및 디코딩하는 처리를 스킵하는 것에 의해, 처리량을 삭감한다. 나아가, 최종 후보수 finalNumMVPCand가 1이면, 예측 움직임 벡터 인덱스를 인코딩할 필요가 없기 때문에, 엔트로피 인코딩의 처리량을 삭감할 수 있다.
차분 움직임 벡터 산출부(103)는, 예측 움직임 벡터 후보 생성부(121), 예측 움직임 벡터 후보 등록부(122), 예측 움직임 벡터 리던던트 후보 삭제부(123), 예측 움직임 벡터 후보수 제한부(124), 예측 움직임 벡터 후보 인코딩량 산출부(125), 예측 움직임 벡터 선택부(126), 및 움직임 벡터 감산부(127)을 포함한다.
이 차분 움직임 벡터 산출부(103)에서의 차분 움직임 벡터 산출 처리는, 인코딩 대상 블록에서 선택된 인터 예측 방법에서 사용하는 움직임 벡터의 차분 움직임 벡터를 L0, L1마다 각각 산출한다. 구체적으로는 인코딩 대상 블록의 예측 모드 PredMode가 인터 예측(MODE_INTER)이고, 인코딩 대상 블록의 인터 예측 모드가 L0 예측(Pred_L0)인 경우, L0의 예측 움직임 벡터 리스트 mvpListL0을 산출하여, 예측 움직임 벡터 mvpL0을 선택하고, L0의 움직임 벡터의 차분 움직임 벡터 mvdL0을 산출한다. 인코딩 대상 블록의 인터 예측 모드(Pred_L1)가 L1 예측인 경우, L1의 예측 움직임 벡터 리스트 mvpListL1을 산출하여, 예측 움직임 벡터 mvpL1을 선택하고, L1의 움직임 벡터의 차분 움직임 벡터 mvdL1을 산출한다. 인코딩 대상 블록의 인터 예측 모드가 쌍예측(Pred_BI)인 경우, L0 예측과 L1 예측이 함께 진행되고, L0의 예측 움직임 벡터 리스트 mvpListL0을 산출하여, L0의 예측 움직임 벡터 mvpL0을 선택하고, L0의 움직임 벡터 mvL0의 차분 움직임 벡터 mvdL0을 산출하는 한편, L1의 예측 움직임 벡터 리스트 mvpListL1을 산출하여, L1의 예측 움직임 벡터 mvpL1을 산출하고, L1의 움직임 벡터 mvL1의 차분 움직임 벡터 mvdL1을 각각 산출한다.
L0, L1 각각에 대해, 차분 움직임 벡터 산출 처리를 하지만, L0, L1 모두 공통의 처리가 된다. 따라서, 이하의 설명에 있어서는 L0, L1을 공통의 LX로서 나타낸다. L0의 차분 움직임 벡터를 산출하는 처리에서는 X가 0이고, L1의 차분 움직임 벡터를 산출하는 처리에서는 X가 1이다. 또한, LX의 차분 움직임 벡터를 산출하는 처리 중에, LX가 아니고, 다른 한쪽의 리스트 정보를 참조하는 경우, 다른 한쪽의 리스트를 LY로서 나타낸다.
예측 움직임 벡터 후보 생성부(121)는, L0, L1마다, 상측에 인접하는 예측 블록 그룹(인코딩 대상의 예측 블록과 동일 픽처 내에서 그 예측 블록의 좌측에 인접하는 예측 블록 그룹: 도 5의 A0, A1), 좌측에 인접하는 예측 블록 그룹(인코딩 대상의 예측 블록과 동일 픽처 내에서 그 예측 블록의 상측에 인접하는 예측 블록 그룹: 도 5의 B0, B1, B2), 상이한 시간의 예측 블록 그룹(인코딩 대상의 예측 블록과 시간적으로 상이한 픽처 내에서 그 예측 블록과 동일 위치 혹은 그 근방의 위치에 존재하는 이미 인코딩 완료된 예측 블록 그룹: 도 9의 T0, T1)의 3개의 예측 블록 그룹으로부터, 예측 블록 그룹마다 1개의 움직임 벡터 mvLXA, mvLXB, mvLXCol을 각각 도출하여 예측 움직임 벡터 후보로 하여, 예측 움직임 벡터 후보 등록부(122)에 공급한다. 이하, mvLXA 및 mvLXB를 공간적인 예측 움직임 벡터, mvLXCol을 시간적인 예측 움직임 벡터라고 부른다. 이 예측 움직임 벡터 후보의 산출에 있어서는, 인코딩 정보 저장 메모리(114)에 저장되어 있는 인코딩 완료된 예측 블록의 예측 모드, 참조 리스트마다의 참조 인덱스, 참조 픽처의 POC, 움직임 벡터 등의 인코딩 정보를 사용한다.
이들의 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol은 인코딩 또는 디코딩 대상 픽처(인코딩 처리에 있어서는 인코딩 대상 픽처, 디코딩 처리에 있어서는 디코딩 대상 픽처이다. 이하, 한정하지 않는 한, 이 의미로 사용한다.)의 POC와 참조 픽처의 POC의 관계에 따라 스케일링하는 것에 의해 도출되는 경우도 있다.
예측 움직임 벡터 후보 생성부(121)는, 각 예측 블록 그룹마다, 소정의 순서로, 각각의 예측 블록 그룹 내의 예측 블록에 대해, 후술하는 조건 판정을 하여, 최초에 조건에 일치한 예측 블록의 움직임 벡터를 선택하여, 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol로 한다.
좌측에 인접하는 예측 블록 그룹으로부터 예측 움직임 벡터를 산출할 때는, 좌측에 인접하는 예측 블록 그룹의 아래에서 위의 순서(도 5의 A0에서 A0, A1의 순서)로, 상측에 인접하는 예측 블록 그룹으로부터 예측 움직임 벡터를 산출할 때는, 상측에 인접하는 예측 블록 그룹의 오른쪽에서 왼쪽의 순서(도 5의 B0에서 B0, B1, B2의 순서)로, 상이한 시간의 예측 블록 그룹으로부터 예측 움직임 벡터를 산출할 때는, 도 9의 T0에서 T0, T1의 순서로, 각 예측 블록에 대해, 후술하는 조건 판정을 하여, 최초에 조건에 일치한 예측 블록의 움직임 벡터를 선택하여, 예측 움직임 벡터의 후보를 각각 mvLXA, mvLXB, mvLXCol로 한다.
즉, 좌측의 인접 예측 블록 그룹에서는, 가장 아래의 예측 블록이 가장 우선 순위가 높고, 아래에서 위로 향해 우선 순위가 매겨져 있고, 상측의 인접 예측 블록 그룹에서는, 가장 오른쪽의 예측 블록이 가장 우선 순위가 높고, 오른쪽에서 왼쪽을 향해 우선 순위가 매겨져 있다. 상이한 시간의 예측 블록 그룹에서는, T0의 예측 블록이 가장 우선 순위가 높고, T0, T1의 순서로 우선 순위가 매겨져 있다.
(공간 예측 블록의 조건 판정의 루프의 설명)
좌측의 인접 예측 블록 그룹, 및 상측의 인접 예측 블록 그룹의 각 인접 예측 블록에 대해서는, 후술하는 스캔 방법 1, 2, 3, 4에서는, 하기의 조건 판정 1, 2, 3, 4의 우선 순서로 각각의 조건 판정이 적용된다. 단, 후술하는 스캔 방법 5만 예외로서, 조건 판정 1, 3, 2, 4의 우선 순서로 각각의 조건 판정이 적용된다.
조건 판정 1: 인코딩 또는 디코딩 대상의 예측 블록의 차분 움직임 벡터 산출 대상의 LX의 움직임 벡터와 동일한 참조 리스트 LX이고, 동일한 참조 인덱스, 즉 동일한 참조 픽처를 사용한 예측이 인접 예측 블록에서도 이루어지고 있다.
조건 판정 2: 인코딩 또는 디코딩 대상의 예측 블록의 차분 움직임 벡터 산출 대상의 LX의 움직임 벡터와는 상이한 참조 리스트 LY이지만, 동일한 참조 픽처를 사용한 예측이 인접 예측 블록에서 이루어지고 있다.
조건 판정 3: 인코딩 또는 디코딩 대상의 예측 블록의 차분 움직임 벡터 산출 대상의 LX의 움직임 벡터와 동일한 참조 리스트 LX이고, 상이한 참조 픽처를 사용한 예측이 인접 예측 블록에서 이루어지고 있다.
조건 판정 4: 인코딩 또는 디코딩 대상의 예측 블록의 차분 움직임 벡터 산출 대상의 LX의 움직임 벡터와는 상이한 참조 리스트 LY이고, 상이한 참조 픽처를 사용한 예측이 인접 예측 블록에서 이루어지고 있다.
이들의 조건 중 어느 하나에 일치한 경우, 해당 예측 블록에는 조건에 일치하는 움직임 벡터가 존재하는 것으로 판단하고, 후속의 조건 판정은 하지 않는다. 한편, 조건 판정 1 또는 조건 판정 2의 조건에 일치한 경우, 해당하는 인접 예측 블록의 움직임 벡터는 동일한 참조 픽처에 대응하는 것이기 때문에, 그대로 예측 움직임 벡터의 후보로 하지만, 조건 판정 3 또는 조건 판정 4의 조건에 일치한 경우, 해당하는 인접 예측 블록의 움직임 벡터는 상이한 참조 픽처에 대응하는 것이기 때문에, 그 움직임 벡터를 기초로 스케일링에 의해 산출하여 예측 움직임 벡터의 후보로 한다.
공간 예측 블록의 스캔의 루프 방법으로서, 상기 4개의 조건 판정의 진행 방법에 따라, 하기의 5가지 방법을 설정할 수 있다. 각각의 방법에 의해 예측 벡터의 적합도와 최대 처리량이 상이하여, 이와 같은 것들을 고려하여 이들의 방법으로부터 선택하여 설정한다. 스캔 방법 1에 대해서는, 도 19~도 23의 플로차트를 사용하여 자세하게 후술하지만, 다른 스캔 방법 2~5에 대해서도, 당업자라면 스캔 방법 2~5를 실시하는 순서에 대해서는 스캔 방법 1을 실시하는 순서에 준거하여 적절히 설계할 수 있는 사항이기 때문에, 자세한 설명을 생략한다. 한편, 여기서는 동영상 인코딩 장치에 있어서의 공간 예측 블록의 스캔의 루프 처리를 설명하지만, 동일한 처리는 동영상 디코딩 장치에 있어서도 가능하다.
스캔 방법 1:
동일한 참조 픽처를 사용한 스케일링 연산이 불필요한 예측 움직임 벡터의 판정을 우선하여, 4개의 조건 판정 중 예측 블록마다 2개의 조건 판정을 하여, 조건을 만족하지 못하면, 옆의 예측 블록의 조건 판정으로 이행한다. 최초의 주회에서는 조건 판정 1과 조건 판정 2의 조건 판정을 하고, 다음의 예측 블록의 주회에서는 조건 판정 3과 조건 판정 4의 조건 판정을 한다.
구체적으로는 이하의 우선 순서로 조건 판정을 한다. (단, N은 A 또는 B)
1. 예측 블록 N0의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처)
2. 예측 블록 N0의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처)
3. 예측 블록 N1의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처)
4. 예측 블록 N1의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처)
5. 예측 블록 N2의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
6. 예측 블록 N2의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
7. 예측 블록 N0의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처)
8. 예측 블록 N0의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처)
9. 예측 블록 N1의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처)
10. 예측 블록 N1의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처)
11. 예측 블록 N2의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
12. 예측 블록 N2의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
스캔 방법 1에 의하면, 동일한 참조 픽처를 사용한 스케일링 연산이 불필요한 예측 움직임 벡터가 선택되기 쉽기 때문에, 차분 움직임 벡터의 부호량이 작아질 가능성이 높아지는 효과가 있다. 또한, 조건 판정의 주회수가 최대 2회가 되기 때문에, 하드웨어로의 구현을 고려했을 때에 예측 블록의 인코딩 정보에 대한 메모리 엑세스 회수가 후술하는 스캔 방법 2에 비해 적어지고, 복잡성이 저감된다.
스캔 방법 2:
4개의 조건 판정 중 예측 블록마다 1개의 조건 판정을 하여, 조건을 만족하지 못하면, 옆의 예측 블록의 조건 판정으로 이행한다. 예측 블록마다 조건 판정을 4바퀴하면 종료한다.
구체적으로는 이하의 우선 순서로 조건 판정을 한다. (단, N은 A 또는 B)
1. 예측 블록 N0의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처)
2. 예측 블록 N1의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처)
3. 예측 블록 N2의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
4. 예측 블록 N0의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처)
5. 예측 블록 N1의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처)
6. 예측 블록 N2의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
7. 예측 블록 N0의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처)
8. 예측 블록 N1의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처)
9. 예측 블록 N2의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
10. 예측 블록 N0의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처)
11. 예측 블록 N1의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처)
12. 예측 블록 N2의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
스캔 방법 2에 의하면, 동일한 참조 픽처를 사용한 스케일링 연산이 불필요한 예측 움직임 벡터가 선택되기 쉽기 때문에, 차분 움직임 벡터의 부호량이 작아질 가능성이 높아지는 효과가 있다. 또한, 조건 판정의 주회수가 최대 4회가 되어, 하드웨어로의 구현을 고려했을 때에 예측 블록의 인코딩 정보에 대한 메모리 엑세스 회수가 스캔 방법 1에 비해 많아지지만, 동일한 참조 리스트의 예측 움직임 벡터가 선택되기 쉬워진다.
스캔 방법 3:
최초의 주회에서는 예측 블록마다 조건 판정 1의 조건 판정을 하여 조건을 만족하지 못하면, 옆의 예측 블록의 조건 판정으로 이행한다. 다음의 주회에서는 예측 블록마다 조건 판정 2, 조건 판정 3, 조건 판정 4의 순서로 조건 판정을 하고 나서 옆으로 이행한다.
구체적으로는 이하의 우선 순서로 조건 판정을 한다. (단, N은 A 또는 B)
1. 예측 블록 N0의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처)
2. 예측 블록 N1의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처)
3. 예측 블록 N2의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
4. 예측 블록 N0의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처)
5. 예측 블록 N0의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처)
6. 예측 블록 N0의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처)
7. 예측 블록 N1의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처)
8. 예측 블록 N1의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처)
9. 예측 블록 N1의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처)
10. 예측 블록 N2의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
11. 예측 블록 N2의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
12. 예측 블록 N2의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
스캔 방법 3에 의하면, 동일한 참조 리스트로부터 동일한 참조 픽처를 사용한 스케일링 연산이 불필요한 예측 움직임 벡터가 선택되기 쉽기 때문에, 차분 움직임 벡터의 부호량이 작아질 가능성이 높아지는 효과가 있다. 또한, 조건 판정의 주회수가 최대 2회가 되기 때문에, 하드웨어로의 구현을 고려했을 때에 예측 블록의 인코딩 정보에 대한 메모리 엑세스 회수가 스캔 방법 2에 비해 적어지고, 복잡성이 저감된다.
스캔 방법 4:
동일한 예측 블록의 조건 판정을 우선하여, 1개의 예측 블록 내에서 4개의 조건 판정을 하여, 모든 조건에 일치하지 않는 경우, 해당 예측 블록에는 조건에 일치하는 움직임 벡터는 존재하지 않는 것으로 판단하고, 다음의 예측 블록의 조건 판정을 한다.
구체적으로는 이하의 우선 순서로 조건 판정을 한다. (단, N은 A 또는 B)
1. 예측 블록 N0의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처)
2. 예측 블록 N0의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처)
3. 예측 블록 N0의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처)
4. 예측 블록 N0의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처)
5. 예측 블록 N1의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처)
6. 예측 블록 N1의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처)
7. 예측 블록 N1의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처)
8. 예측 블록 N1의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처)
9. 예측 블록 N2의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
10. 예측 블록 N2의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
11. 예측 블록 N2의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
12. 예측 블록 N2의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
스캔 방법 4에 의하면, 조건 판정의 주회수가 최대 1회가 되기 때문에, 하드웨어로의 구현을 고려했을 때에 예측 블록의 인코딩 정보에 대한 메모리 엑세스 회수가 스캔 방법 1, 스캔 방법 2, 스캔 방법 3에 비해 적어지고, 복잡성이 저감된다.
스캔 방법 5:
스캔 방법 4와 동일하게, 동일한 예측 블록의 조건 판정을 우선하여, 1개의 예측 블록 내에서 4개의 조건 판정을 하여, 모든 조건에 일치하지 않는 경우, 해당 예측 블록에는 조건에 일치하는 움직임 벡터는 존재하지 않는 것으로 판단하고, 다음의 예측 블록의 조건 판정을 한다. 단, 예측 블록 내의 조건 판정에 있어서는, 스캔 방법 4는 동일한 참조 픽처인 것을 더 우선하고 있지만, 스캔 방법 5는 동일한 참조 리스트인 것을 우선한다.
구체적으로는 이하의 우선 순서로 조건 판정을 한다. (단, N은 A 또는 B)
1. 예측 블록 N0의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처)
2. 예측 블록 N0의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처)
3. 예측 블록 N0의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처)
4. 예측 블록 N0의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처)
5. 예측 블록 N1의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처)
6. 예측 블록 N1의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처)
7. 예측 블록 N1의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처)
8. 예측 블록 N1의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처)
9. 예측 블록 N2의 조건 판정 1(동일한 참조 리스트 LX, 동일한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
10. 예측 블록 N2의 조건 판정 3(동일한 참조 리스트 LX, 상이한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
11. 예측 블록 N2의 조건 판정 2(상이한 참조 리스트 LY, 동일한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
12. 예측 블록 N2의 조건 판정 4(상이한 참조 리스트 LY, 상이한 참조 픽처), 상측에 인접하는 예측 블록 그룹만
스캔 방법 5에 의하면, 스캔 방법 4에 비해 예측 블록의 참조 리스트의 참조 회수를 더욱 절감할 수 있고, 메모리에 대한 액세스 회수, 조건 판정 등의 처리량을 삭감하는 것에 의해 복잡성을 저감할 수 있다. 또한, 스캔 방법 4와 동일하게, 조건 판정의 주회수가 최대 1회가 되기 때문에, 하드웨어로의 구현을 고려했을 때에 예측 블록의 인코딩 정보에 대한 메모리 엑세스 회수가 스캔 방법 1, 스캔 방법 2, 스캔 방법 3에 비해 적어지고, 복잡성이 저감된다.
다음으로, 예측 움직임 벡터 후보 등록부(122)는 산출된 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol을 예측 움직임 벡터 리스트 mvpListLX에 저장한다.
다음으로, 예측 움직임 벡터 리던던트 후보 삭제부(123)는, LX의 예측 움직임 벡터 리스트 mvpListLX에 저장된 각각의 예측 움직임 벡터의 후보의 움직임 벡터의 값을 비교하여, 예측 움직임 벡터의 후보 중에서 동일한 움직임 벡터의 값을 갖는 것을 판정하고, 동일한 움직임 벡터값을 갖는 것으로 판정된 예측 움직임 벡터의 후보에 대해 하나를 남기고 그 이외를 예측 움직임 벡터 리스트 mvpListLX로부터 삭제하여, 예측 움직임 벡터의 후보가 중복되지 않도록 하고, 예측 움직임 벡터 리스트 mvpListLX를 갱신한다. 단, 규정된 최종 후보수 finalNumMVPCand가 1인 경우, 본 리던던트 판정 처리를 생략할 수 있다.
예측 움직임 벡터 후보수 제한부(124)에서는, LX의 예측 움직임 벡터 리스트 mvpListLX에 등록되어 있는 예측 움직임 벡터의 후보수를 카운트하여, LX의 예측 움직임 벡터 후보수 NumMVPCandLX가 카운트된 후보수의 값으로 설정된다.
나아가, 예측 움직임 벡터 후보수 제한부(124)에서는, LX의 예측 움직임 벡터 리스트 mvpListLX에 등록되어 있는 LX의 예측 움직임 벡터 후보수 NumMVPCandLX를 예측 블록의 사이즈에 상응하여 규정된 최종 후보수 finalNumMVPCand로 제한한다.
본 실시형태에 있어서는, 예측 블록의 사이즈에 상응하여 최종 후보수 finalNumMVPCand를 규정하고 있다. 왜냐하면, 예측 움직임 벡터 리스트에 등록되는 예측 움직임 벡터의 후보수가 예측 움직임 벡터 리스트의 구축 상태에 따라 변동하면, 디코딩측에서는 예측 움직임 벡터 리스트를 구축하고 나서가 아니면, 예측 움직임 벡터 인덱스를 엔트로피 디코딩할 수 없기 때문이다. 나아가, 엔트로피 디코딩이 상이한 시간의 픽처의 예측 블록으로부터 도출된 예측 움직임 벡터 후보 mvLXCol을 포함하는 예측 움직임 벡터 리스트의 구축 상태에 의존하면, 다른 픽처의 인코딩 비트열의 디코딩 시에 에러가 발생했을 때에 현재의 픽처의 인코딩 비트열도 그 에러의 영향을 받아서 정상적으로 엔트로피 디코딩을 계속할 수 없는 문제가 있다. 예측 블록의 사이즈에 상응하여 최종 후보수 finalNumMVPCand를 고정한 수로 규정하면, 예측 움직임 벡터 리스트의 구축과 독립하여, 예측 움직임 벡터 인덱스를 엔트로피 디코딩할 수 있는 한편, 다른 픽처의 인코딩 비트열의 디코딩 시에 에러가 발생해도 그 영향을 받지 않고 현재의 픽처의 인코딩 비트열의 엔트로피 디코딩을 계속할 수 있다.
예측 움직임 벡터 후보수 제한부(124)에서는, LX의 예측 움직임 벡터 후보수 NumMVPCandLX가 규정된 최종 후보수 finalNumMVPCand보다 작은 경우, 예측 움직임 벡터 후보수 NumMVPCandLX가 최종 후보수 finalNumMVPCand와 동일값이 될 때까지, (0, 0)(수평 및 수직 성분이 모두 0)의 값을 갖는 움직임 벡터를 예측 움직임 벡터 리스트 mvpListLX에 추가하는 것으로 예측 움직임 벡터의 후보수를 규정값으로 제한한다. 이 경우, 중복하여 (0, 0)의 값을 갖는 움직임 벡터가 추가되는 경우가 있지만, 디코딩측에서는 예측 움직임 벡터 인덱스가 0에서 (규정의 후보수-1)의 범위 내에서 어떠한 값을 취해도, 예측 움직임 벡터를 확정할 수 있다. 한편, LX의 예측 움직임 벡터 후보수 NumMVPCandLX가 규정된 최종 후보수 finalNumMVPCand보다 큰 경우, 예측 움직임 벡터 리스트 mvpListLX로부터 finalNumMVPCand-1보다 큰 인덱스에 등록되어 있는 요소를 모두 삭제하고, LX의 예측 움직임 벡터 후보수 NumMVPCandLX를 최종 후보수 finalNumMVPCand와 동일값으로 하는 것으로 예측 움직임 벡터의 후보수를 규정값으로 제한한다. 갱신된 예측 움직임 벡터 리스트 mvpListLX는 예측 움직임 벡터 후보 인코딩량 산출부(125)와 예측 움직임 벡터 선택부(126)에 공급된다.
한편, 도 1의 움직임 벡터 검출부(102)에 의해 예측 블록마다 LX(X=0 또는 1)의 움직임 벡터 mvLX가 검출된다. 이들의 움직임 벡터 mvLX는 갱신된 예측 움직임 벡터 리스트 mvpListLX의 예측 움직임 벡터의 후보와 함께 예측 움직임 벡터 후보 인코딩량 산출부(125)에 공급된다.
예측 움직임 벡터 후보 인코딩량 산출부(125)는, LX(X=0 또는 1)의 예측 움직임 벡터 리스트 mvpListLX 중에 저장된 각각의 예측 움직임 벡터의 후보 mvpListLX[i]마다 움직임 벡터 mvLX와의 차분 움직임 벡터를 산출하고, 그 차분 움직임 벡터를 인코딩했을 때의 부호량을 각각 산출하여, 예측 움직임 벡터 선택부(126)에 공급한다.
예측 움직임 벡터 선택부(126)는, LX의 예측 움직임 벡터 리스트 mvpListLX에 등록된 각 요소 중에서, 예측 움직임 벡터의 후보마다의 부호량이 최소가 되는 예측 움직임 벡터의 후보 mvpListLX[i]를 LX의 예측 움직임 벡터 mvpLX로서 선택한다. 예측 움직임 벡터 리스트 mvpListLX 중에서 최소의 발생 부호량이 되는 예측 움직임 벡터의 후보가 복수 존재하는 경우에는, 예측 움직임 벡터 리스트 mvpListLX 중의 인덱스 i가 작은 번호로 표시되는 예측 움직임 벡터의 후보 mvpListLX[i]를 LX가 최적의 예측 움직임 벡터 mvpLX로서 선택한다. 선택된 예측 움직임 벡터 mvpLX를 움직임 벡터 감산부(127)에 공급한다. 나아가, 그 선택된 예측 움직임 벡터 mvpLX에 대응하는 예측 움직임 벡터 리스트 중의 인덱스 i를 LX의 예측 움직임 벡터 인덱스 mvpIdxLX로서 출력한다.
마지막으로 움직임 벡터 감산부(127)는, LX의 움직임 벡터 mvLX로부터 선택된 LX의 예측 움직임 벡터 mvpLX를 감산하는 것에 의해 LX의 차분 움직임 벡터 mvdLX를 산출하고, 차분 움직임 벡터 mvdLX를 출력한다.
mvdLX=mvLX-mvpLX
도 1을 다시 참조하여, 움직임 보상 예측부(105)는, 디코딩 화상 메모리(115)에 저장되어 있는 디코딩 픽처의 화상 신호를 참조하여 움직임 벡터 검출부(102)로부터 공급되는 LX(X=0 또는 1)의 움직임 벡터 mvLX에 따라 움직임 보상을 하고, 예측 화상 신호를 얻어, 예측 방법 결정부(106)에 공급한다.
예측 방법 결정부(106)는, 예측 방법을 결정한다. 각각의 예측 모드마다 부호량과 인코딩 변형을 산출하고, 가장 적은 발생 부호량과 인코딩 변형이 되는 예측 블록 사이즈와 예측 모드가 결정된다. 차분 움직임 벡터 산출부(103)의 움직임 벡터 감산부(127)로부터 공급된 LX의 차분 움직임 벡터 mvdLX와 예측 움직임 벡터 선택부(126)로부터 공급된 예측 움직임 벡터를 나타내는 LX의 예측 움직임 벡터 인덱스 mvpIdxLX의 인코딩이 진행되어, 움직임 정보의 부호량을 산출한다. 나아가, 움직임 보상 예측부(105)로부터 공급되는 예측 화상 신호와, 화상 메모리(101)로부터 공급되는 인코딩 대상의 화상 신호의 예측 잔차 신호를 인코딩한 예측 잔차 신호의 부호량을 산출한다. 움직임 정보의 부호량과 예측 잔차 신호의 부호량이 가산된 총발생 부호량을 산출하여, 제1의 평가값으로 한다.
또한, 이와 같은 예측 잔차 신호를 인코딩후에, 변형량 평가를 위해 디코딩하고, 인코딩에 의해 발생하는 원래의 화상 신호와의 오차를 나타내는 비율로서 인코딩 변형이 산출된다. 이들 총발생 부호량과 인코딩 변형을 움직임 보상마다 비교하는 것에 의해, 가장 적은 발생 부호량과 인코딩 변형이 되는 예측 블록 사이즈와 예측 모드가 결정된다. 결정된 예측 블록 사이즈의 예측 모드에 따른 움직임 벡터 mvLX에 대해, 상술한 움직임 벡터의 예측 방법이 진행되어, 예측 움직임 벡터를 나타내는 인덱스 mvpIdxLX가, 예측 블록 단위의 제2의 신택스 패턴으로 표시되는 신택스 요소 mvp_idx_lX[i]로서 인코딩된다. 한편, 여기서 산출되는 발생 부호량은, 인코딩 과정을 시뮬레이트한 것이 바람직하지만, 간편하게 근사하거나, 개산하는 것도 가능하다.
(디코딩에 있어서의 움직임 벡터의 예측)
상술한 신택스에 기초하여, 인코딩된 동영상의 비트 스트림을 디코딩하는 동영상 디코딩 장치에 있어서, 본 발명에 따른 움직임 벡터의 예측 방법의 동작을 설명한다.
실시형태에 따른 움직임 벡터의 예측 방법이 실시되는 경우, 도 2의 동영상 디코딩 장치의 움직임 벡터 산출부(204)에서 처리가 진행된다. 도 14는, 실시형태에 따른 동영상 인코딩 장치에 대응하는 도 2의 동영상 디코딩 장치의 움직임 벡터 산출부(204)의 상세한 구성을 나타내는 도면이다. 도 14의 굵은 테두리선으로 둘러싸이는 부분은 움직임 벡터 산출부(204)를 나타내고 있다. 나아가, 그 내부의 굵은 점선으로 둘러싸이는 부분은 후술하는 움직임 벡터의 예측 방법의 동작부를 나타내고 있고, 대응하는 동영상 인코딩 장치에도 동일하게 설치되어, 인코딩과 디코딩에서 모순되지 않는 동일한 판정 결과를 얻을 수 있도록 하고 있다. 이하, 이 도면을 사용하여, 디코딩에 있어서의 움직임 벡터의 예측 방법을 설명한다.
본 실시형태에 있어서는, 인코딩측에서 설명한 이유에 따라, 인코딩측과 동일하게 디코딩측에서도, 디코딩 대상의 예측 블록의 사이즈에 상응하여, 예측 움직임 벡터의 최종 후보수 finalNumMVPCand를 설정한다. 움직임 벡터 산출부(204)에서는, 디코딩 대상의 휘도 신호의 예측 블록의 사이즈가 규정한 사이즈 sizePUNumMVPCand 이하인 경우, finalNumMVPCand를 후자보다 작은 수로 설정하고, 그렇지 않은 경우, finalNumMVPCand를 전자보다 큰 수로 설정한다. 본 실시형태에 있어서는, 규정하는 사이즈 sizePUNumMVPCand를 8×8로 하고, 디코딩 대상의 휘도 신호의 예측 블록의 사이즈가 규정한 사이즈 sizePUNumMVPCand 이하인 경우에는, finalNumMVPCand를 1로 설정하고, 그 이외의 경우에는, finalNumMVPCand를 2로 설정한다.
움직임 벡터 산출부(204)는, 예측 움직임 벡터 후보 생성부(221), 예측 움직임 벡터 후보 등록부(222), 예측 움직임 벡터 리던던트 후보 삭제부(223), 예측 움직임 벡터 후보수 제한부(224), 예측 움직임 벡터 선택부(225) 및 움직임 벡터 가산부(226)를 포함한다.
이 움직임 벡터 산출부(204)에서의 움직임 벡터 산출 처리는, 인터 예측에서 사용하는 움직임 벡터를 L0, L1마다 각각 산출한다. 구체적으로는 디코딩 대상 블록의 예측 모드 PredMode가 인터 예측(MODE_INTER)이고, 디코딩 대상 블록의 인터 예측 모드가 L0 예측(Pred_L0)인 경우, L0의 예측 움직임 벡터 리스트 mvpListL0을 산출하여, 예측 움직임 벡터 mvpL0을 선택하고, L0의 움직임 벡터 mvL0을 산출한다. 디코딩 대상 블록의 인터 예측 모드가 L1 예측(Pred_L1)인 경우, L1의 예측 움직임 벡터 리스트 mvpListL1을 산출하여, 예측 움직임 벡터 mvpL1을 선택하고, L1의 움직임 벡터 mvL1을 산출한다. 디코딩 대상 블록의 인터 예측 모드가 쌍예측(Pred_BI)인 경우, L0 예측과 L1 예측이 함께 진행되고, L0의 예측 움직임 벡터 리스트 mvpListL0을 산출하여, L0의 예측 움직임 벡터 mvpL0을 선택하고, L0의 움직임 벡터 mvL0을 산출하는 한편, L1의 예측 움직임 벡터 리스트 mvpListL1을 산출하여, L1의 예측 움직임 벡터 mvpL1을 산출하고, L1의 움직임 벡터 mvL1을 각각 산출한다. 인코딩측과 동일하게, 디코딩측에서도 L0, L1 각각에 대해, 움직임 벡터 산출 처리를 하지만, L0, L1 모두 공통의 처리가 된다. 따라서, 이하의 설명에 있어서는 L0, L1을 공통의 LX로서 나타낸다. L0의 움직임 벡터를 산출하는 처리에서는 X가 0이고, L1의 움직임 벡터를 산출하는 처리에서는 X가 1이다. 또한, LX의 움직임 벡터를 산출하는 처리 중에, LX가 아니고, 다른 한쪽의 리스트 정보를 참조하는 경우, 다른 한쪽의 리스트를 LY로서 나타낸다.
움직임 벡터 산출부(204) 중의 예측 움직임 벡터 후보 생성부(221), 예측 움직임 벡터 후보 등록부(222), 예측 움직임 벡터 리던던트 후보 삭제부(223) 및 예측 움직임 벡터 후보수 제한부(224)는, 인코딩측의 차분 움직임 벡터 산출부(103) 중의 예측 움직임 벡터 후보 생성부(121), 예측 움직임 벡터 후보 등록부(122) 및 예측 움직임 벡터 리던던트 후보 삭제부(123), 예측 움직임 벡터 후보수 제한부(124)와 각각 같은 동작을 하도록 규정하는 것에 의해, 인코딩과 디코딩에서 모순되지 않는 동일한 예측 움직임 벡터의 후보를 인코딩측 및 디코딩측에서 얻을 수 있다.
예측 움직임 벡터 후보 생성부(221)는, 도 13의 인코딩측의 예측 움직임 벡터 후보 생성부(121)와 동일한 처리를 한다. 디코딩하여 인코딩 정보 저장 메모리(209)에 기록되어 있던, 디코딩 대상 블록과 동일 픽처 내의 디코딩 대상 블록과 인접하는 디코딩 완료된 예측 블록 및 상이한 픽처 내의 디코딩 대상 블록과 동일 위치 혹은 그 근방의 위치에 존재하는 디코딩 완료된 예측 블록 등의 움직임 벡터를 인코딩 정보 저장 메모리(209)로부터 판독한다. 인코딩 정보 저장 메모리(209)로부터 판독된 디코딩 완료된 다른 블록의 움직임 벡터로부터 예측 블록 그룹마다 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol을 생성하여, 예측 움직임 벡터 후보 등록부(222)에 공급한다.
이들의 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol은 참조 인덱스에 따라 스케일링하는 것에 의해 산출되는 경우도 있다. 한편, 예측 움직임 벡터 후보 생성부(221)는, 도 13의 인코딩측의 예측 움직임 벡터 후보 생성부(121)와 동일한 처리를 하기 때문에, 도 13의 인코딩측의 예측 움직임 벡터 후보 생성부(121)에서 설명한 예측 움직임 벡터를 산출하기 위한 스캔 방법 1, 2, 3, 4, 5의 조건 판정은 예측 움직임 벡터 후보 생성부(221)에서도 적용할 수 있는 것으로 하고, 여기서는 상세한 설명은 생략한다.
다음으로, 예측 움직임 벡터 후보 등록부(222)는 도 13의 인코딩측의 예측 움직임 벡터 후보 등록부(122)와 동일한 처리를 한다. 산출된 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol을 LX의 예측 움직임 벡터 리스트 mvpListLX에 저장한다.
다음으로, 예측 움직임 벡터 리던던트 후보 삭제부(223)는, 도 13의 인코딩측의 예측 움직임 벡터 리던던트 후보 삭제부(123)와 동일한 처리를 한다. LX의 예측 움직임 벡터 리스트 mvpListLX에 저장된 예측 움직임 벡터의 후보 중에서 동일한 움직임 벡터의 값을 갖는 것을 판정하고, 동일한 움직임 벡터값을 갖는 것으로 판정된 예측 움직임 벡터의 후보에 대해 하나를 남기고 그 이외를 예측 움직임 벡터 리스트 mvpListLX로부터 삭제하여, 예측 움직임 벡터의 후보가 중복되지 않도록 하고, 예측 움직임 벡터 리스트 mvpListLX를 갱신한다. 단, 규정된 최종 후보수 finalNumMVPCand가 1인 경우, 본 리던던트 판정 처리를 생략할 수 있다.
다음으로, 예측 움직임 벡터 후보수 제한부(224)는, 도 13의 인코딩측의 예측 움직임 벡터 후보수 제한부(124)와 동일한 처리를 한다. 예측 움직임 벡터 후보수 제한부(224)에서는, 예측 움직임 벡터 리스트 mvpListLX에 등록되어 있는 요소수를 카운트하여, LX의 예측 움직임 벡터 후보수 NumMVPCandLX가 카운트된 후보수의 값으로 설정된다.
또한, 예측 움직임 벡터 후보수 제한부(224)에서는, 인코딩측에서 설명한 이유에 의해 예측 움직임 벡터 리스트 mvpListLX에 등록되어 있는 LX의 예측 움직임 벡터 후보수 NumMVPCandLX를 예측 블록의 사이즈에 상응하여 규정된 최종 후보수 finalNumMVPCand로 제한한다. LX의 예측 움직임 벡터 후보수 NumMVPCandLX가 규정된 최종 후보수 finalNumMVPCand보다 작은 경우, 예측 움직임 벡터 후보수 NumMVPCandLX가 최종 후보수 finalNumMVPCand와 동일값이 될 때까지, (0, 0)의 값을 갖는 움직임 벡터를 예측 움직임 벡터 리스트 mvpListLX에 추가하는 것으로 예측 움직임 벡터의 후보수를 규정값으로 제한한다. 이 경우, 중복하여 (0, 0)의 값을 갖는 움직임 벡터가 추가되는 경우가 있지만, 디코딩측에서는 예측 움직임 벡터 인덱스가 0에서 규정값-1의 범위 내에서 어떠한 값을 취해도, 예측 움직임 벡터를 확정할 수 있다. 한편, LX의 예측 움직임 벡터 후보수 NumMVPCandLX가 규정된 최종 후보수 finalNumMVPCand보다 큰 경우, 예측 움직임 벡터 리스트 mvpListLX로부터 finalNumMVPCand-1보다 큰 인덱스에 등록되어 있는 요소를 모두 삭제하고, LX의 예측 움직임 벡터 후보수 NumMVPCandLX를 최종 후보수 finalNumMVPCand와 동일값으로 하는 것으로 예측 움직임 벡터의 후보수를 규정값으로 제한한다. 갱신된 예측 움직임 벡터 리스트 mvpListLX는 예측 움직임 벡터 선택부(225)에 공급된다.
한편, 제1인코딩 비트열 디코딩부(202)에서 디코딩된 예측 블록마다의 LX(X=0 또는 1)의 차분 움직임 벡터 mvdLX가 움직임 벡터 가산부(226)에 공급된다. 제1인코딩 비트열 디코딩부(202)에서 디코딩된 LX의 예측 움직임 벡터의 예측 움직임 벡터 인덱스 mvpIdxLX가 예측 움직임 벡터 선택부(225)에 공급된다. 단, 규정된 최종 후보수 finalNumMVPCand가 1인 경우, LX의 예측 움직임 벡터의 예측 움직임 벡터 인덱스 mvpIdxLX가 인코딩되어 있지 않고, 예측 움직임 벡터 선택부(225)에 공급되지 않는다.
예측 움직임 벡터 선택부(225)는, 제1인코딩 비트열 디코딩부(202)에서 디코딩된 LX의 예측 움직임 벡터 인덱스 mvpIdxLX가 공급되고, 공급된 인덱스 mvpIdxLX에 대응하는 예측 움직임 벡터의 후보 mvpListLX[mvpIdxLX]를 LX의 예측 움직임 벡터 mvpLX로서 예측 움직임 벡터 리스트 mvpListLX에서 취출한다. 단, 규정된 최종 후보수 finalNumMVPCand가 1인 경우, 예측 움직임 벡터 리스트 mvpListLX의 인덱스 i가 0에 등록되어 있는 유일한 예측 움직임 벡터의 후보 mvpListLX[0]을 취출한다. 공급된 예측 움직임 벡터의 후보를 예측 움직임 벡터 mvpLX로서 움직임 벡터 가산부(226)에 공급한다.
마지막으로 움직임 벡터 가산부(226)는, 제1인코딩 비트열 디코딩부(202)에서 디코딩되어 공급되는 LX의 차분 움직임 벡터 mvdLX와 LX의 예측 움직임 벡터 mvpLX를 가산하는 것에 의해 LX의 움직임 벡터 mv를 산출하고, 움직임 벡터 mvLX를 출력한다.
mvLX=mvpLX+mvdLX
이상과 같이 하여, 예측 블록마다 LX의 움직임 벡터 mvLX가 산출된다. 이 움직임 벡터를 사용하여 움직임 보상에 의해 예측 화상 신호가 생성되고, 디코딩된 예측 잔차 신호와 가산되는 것에 의해 디코딩 화상 신호가 생성된다.
동영상 인코딩 장치의 차분 움직임 벡터 산출부(103), 동영상 디코딩 장치의 움직임 벡터 산출부(204)의 처리 순서에 대해, 각각 도 15, 도 16의 플로차트를 사용하여 설명한다. 도 15는 동영상 인코딩 장치에 의한 차분 움직임 벡터 산출 처리 순서를 나타내는 플로차트이고, 도 16은 동영상 디코딩 장치에 의한 움직임 벡터 산출 처리 순서를 나타내는 플로차트이다.
도 15를 참조하여 인코딩측의 차분 움직임 벡터 산출 처리 순서를 설명한다. 인코딩측에서는, 우선, 차분 움직임 벡터 산출부(103)에서, 예측 움직임 벡터의 후보 최종 후보수 finalNumMVCand를 설정한다(S100). 스텝 S100의 상세한 처리 순서에 대해서는 도 17의 플로차트를 사용하여 후술한다.
이어서, 차분 움직임 벡터 산출부(103)에서, 인코딩 대상 블록에서 선택된 인터 예측에서 사용하는 움직임 벡터의 차분 움직임 벡터를 L0, L1마다 각각 산출한다(S101~S106). 구체적으로는 인코딩 대상 블록의 예측 모드 PredMode가 인터 예측(MODE_INTER)이고, 인터 예측 모드가 L0 예측(Pred_L0)인 경우, L0의 예측 움직임 벡터 리스트 mvpListL0을 산출하여, 예측 움직임 벡터 mvpL0을 선택하고, L0의 움직임 벡터 mvL0의 차분 움직임 벡터 mvdL0을 산출한다. 인코딩 대상 블록의 인터 예측 모드가 L1 예측(Pred_L1)인 경우, L1의 예측 움직임 벡터 리스트 mvpListL1을 산출하여, 예측 움직임 벡터 mvpL1을 선택하고, L1의 움직임 벡터 mvL1의 차분 움직임 벡터 mvdL1을 산출한다. 인코딩 대상 블록의 인터 예측 모드가 쌍예측(Pred_BI)인 경우, L0 예측과 L1 예측이 함께 진행되고, L0의 예측 움직임 벡터 리스트 mvpListL0을 산출하여, L0의 예측 움직임 벡터 mvpL0을 선택하고, L0의 움직임 벡터 mvL0의 차분 움직임 벡터 mvdL0을 산출하는 한편, L1의 예측 움직임 벡터 리스트 mvpListL1을 산출하여, L1의 예측 움직임 벡터 mvpL1을 산출하고, L1의 움직임 벡터 mvL1의 차분 움직임 벡터 mvdL1을 각각 산출한다.
L0, L1 각각에 대해, 차분 움직임 벡터 산출 처리를 하지만, L0, L1 모두 공통의 처리가 된다. 따라서, 이하의 설명에 있어서는 L0, L1을 공통의 LX로서 나타낸다. L0의 차분 움직임 벡터를 산출하는 처리에서는 X가 0이고, L1의 차분 움직임 벡터를 산출하는 처리에서는 X가 1이다. 또한, LX의 차분 움직임 벡터를 산출하는 처리 중에, LX가 아니고, 다른 한쪽의 리스트 정보를 참조하는 경우, 다른 한쪽의 리스트를 LY로서 나타낸다.
LX의 차분 움직임 벡터 mvdLX를 산출하는 경우(S102의 YES), LX의 예측 움직임 벡터의 후보를 산출하여 LX의 예측 움직임 벡터 리스트 mvpListLX를 구축한다(S103). 차분 움직임 벡터 산출부(103) 중의 예측 움직임 벡터 후보 생성부(121)에서 복수의 예측 움직임 벡터의 후보를 산출하고, 예측 움직임 벡터 후보 등록부(122)에서 예측 움직임 벡터 리스트 mvpListLX에 산출한 예측 움직임 벡터의 후보를 추가하고, 예측 움직임 벡터 리던던트 후보 삭제부(123)에서 불필요한 예측 움직임 벡터의 후보를 삭제하고, 예측 움직임 벡터 후보수 제한부(124)에서 예측 움직임 벡터 리스트 mvpListLX에 등록되어 있는 LX의 예측 움직임 벡터 후보수 NumMVPCandLX가 설정되고, 예측 움직임 벡터 리스트 mvpListLX에 등록되어 있는 LX의 예측 움직임 벡터 후보수 NumMVPCandLX를 규정된 최종 후보수 finalNumMVPCand로 제한하는 것에 의해, 예측 움직임 벡터 리스트 mvpListLX를 구축한다. 스텝 S103의 상세한 처리 순서에 대해서는 도 18의 플로차트를 사용하여 후술한다.
이어서, 예측 움직임 벡터 후보 인코딩량 산출부(125), 및 예측 움직임 벡터 선택부(126)에 의해, LX의 예측 움직임 벡터 리스트 mvpListLX로부터 LX의 예측 움직임 벡터 mvpLX를 선택한다(S104). 우선, 예측 움직임 벡터 후보 인코딩량 산출부(125)에서, 움직임 벡터 mvLX와 예측 움직임 벡터 리스트 mvpListLX 중에 저장된 각 예측 움직임 벡터의 후보 mvpListLX[i]의 차분인 각각의 차분 움직임 벡터를 산출하여, 그 차분 움직임 벡터를 인코딩했을 때의 부호량을 예측 움직임 벡터 리스트 mvpListLX의 요소마다 산출하고, 예측 움직임 벡터 선택부(126)에서, 예측 움직임 벡터 리스트 mvpListLX에 등록된 각 요소 중에서, 예측 움직임 벡터의 후보마다의 부호량이 최소가 되는 예측 움직임 벡터의 후보 mvpListLX[i]를 예측 움직임 벡터 mvpLX로서 선택한다. 예측 움직임 벡터 리스트 mvpListLX 중에서 최소의 발생 부호량이 되는 예측 움직임 벡터의 후보가 복수 존재하는 경우에는, 예측 움직임 벡터 리스트 mvpListLX 중의 인덱스 i가 작은 번호로 표시되는 예측 움직임 벡터의 후보 mvpListLX[i]를 최적 예측 움직임 벡터 mvpLX로서 선택한다.
이어서, 움직임 벡터 감산부(127)에서, LX의 움직임 벡터 mvLX로부터 선택된 LX의 예측 움직임 벡터 mvpLX를 감산하는 것에 의해 LX의 차분 움직임 벡터 mvdLX를 산출한다(S105).
mvdLX=mvLX-mvpLX
다음으로, 도 16을 참조하여 디코딩측의 움직임 벡터 산출 처리 순서를 설명한다. 디코딩측에서는, 움직임 벡터 산출부(204)에서, 인터 예측에서 사용하는 움직임 벡터를 L0, L1마다 각각 산출한다(S201~S206). 구체적으로는 디코딩 대상 블록의 예측 모드 PredMode가 인터 예측(MODE_INTER)이고, 디코딩 대상 블록의 인터 예측 모드가 L0 예측(Pred_L0)인 경우, L0의 예측 움직임 벡터 리스트 mvpListL0을 산출하여, 예측 움직임 벡터 mvpL0을 선택하고, L0의 움직임 벡터 mvL0을 산출한다. 디코딩 대상 블록의 인터 예측 모드가 L1 예측(Pred_L1)인 경우, L1의 예측 움직임 벡터 리스트 mvpListL1을 산출하여, 예측 움직임 벡터 mvpL1을 선택하고, L1의 움직임 벡터 mvL1을 산출한다. 디코딩 대상 블록의 인터 예측 모드가 쌍예측(Pred_BI)인 경우, L0 예측과 L1 예측이 함께 진행되고, L0의 예측 움직임 벡터 리스트 mvpListL0을 산출하여, L0의 예측 움직임 벡터 mvpL0을 선택하고, L0의 움직임 벡터 mvL0을 산출하는 한편, L1의 예측 움직임 벡터 리스트 mvpListL1을 산출하여, L1의 예측 움직임 벡터 mvpL1을 산출하고, L1의 움직임 벡터 mvL1을 각각 산출한다.
인코딩측과 동일하게, 디코딩측에서도 L0, L1 각각에 대해, 움직임 벡터 산출 처리를 하지만, L0, L1 모두 공통의 처리가 된다. 따라서, 이하의 설명에 있어서는 L0, L1을 공통의 LX로서 나타낸다. L0의 움직임 벡터를 산출하는 처리에서는 X가 0이고, L1의 움직임 벡터를 산출하는 처리에서는 X가 1이다. 또한, LX의 움직임 벡터를 산출하는 처리 중에, LX가 아니고, 다른 한쪽의 리스트 정보를 참조하는 경우, 다른 한쪽의 리스트를 LY로서 나타낸다.
LX의 움직임 벡터 mvLX를 산출하는 경우(S202의 YES), LX의 예측 움직임 벡터의 후보를 산출하여 LX의 예측 움직임 벡터 리스트 mvpListLX를 구축한다(S203). 움직임 벡터 산출부(204) 중의 예측 움직임 벡터 후보 생성부(221)에서 복수의 예측 움직임 벡터의 후보를 산출하고, 예측 움직임 벡터 후보 등록부(222)에서 예측 움직임 벡터 리스트 mvpListLX에 산출한 예측 움직임 벡터의 후보를 추가하고, 예측 움직임 벡터 리던던트 후보 삭제부(223)에서 불필요한 예측 움직임 벡터의 후보를 삭제하고, 예측 움직임 벡터 후보수 제한부(224)에서 예측 움직임 벡터 리스트 mvpListLX에 등록되어 있는 LX의 예측 움직임 벡터 후보수 NumMVPCandLX가 설정되고, 예측 움직임 벡터 리스트 mvpListLX에 등록되어 있는 LX의 예측 움직임 벡터 후보수 NumMVPCandLX를 규정된 최종 후보수 finalNumMVPCand로 제한하는 것에 의해, 예측 움직임 벡터 리스트 mvpListLX를 구축한다. 스텝 S203의 상세한 처리 순서에 대해서는 도 18의 플로차트를 사용하여 후술한다.
이어서, 예측 움직임 벡터 선택부(225)에서 예측 움직임 벡터 리스트 mvpListLX로부터 제1인코딩 비트열 디코딩부(202)에서 디코딩된 예측 움직임 벡터의 인덱스 mvpIdxLX에 대응하는 예측 움직임 벡터의 후보 mvpListLX[mvpIdxLX]를 선택된 예측 움직임 벡터 mvpLX로서 취출한다(S204). 단, 최대 후보수 finalNumCandLX가 1인 경우, 예측 움직임 벡터 리스트 mvpListLX에 등록되어 있는 유일한 예측 움직임 벡터의 후보 mvpListLX[0]을 선택된 예측 움직임 벡터 mvpLX로서 취출한다.
이어서, 움직임 벡터 가산부(226)에서 제1인코딩 비트열 디코딩부(202)에서 디코딩되어 공급되는 LX의 차분 움직임 벡터 mvdLX와 LX의 예측 움직임 벡터 mvpLX를 가산하는 것에 의해 LX의 움직임 벡터 mvLX를 산출한다(도 16의 S205).
mvLX=mvpLX+mvdLX
다음으로, 도 15의 S100, 및 도 16의 S200에서 공통의 예측 움직임 벡터의 최종 후보수를 설정하는 순서에 대해 상세하게 설명한다.
예측 움직임 벡터 후보수 제한부(124) 및 예측 움직임 벡터 후보수 제한부(224)는 인코딩 또는 디코딩 대상의 예측 블록의 사이즈에 상응하여, 예측 움직임 벡터의 최종 후보수 finalNumMVPCand를 설정한다.
도 17은 예측 움직임 벡터의 최종 후보수 설정 처리 순서를 나타내는 플로차트이다.
우선, 인코딩 또는 디코딩 대상의 예측 블록의 사이즈를 얻는다(S401). 인코딩 또는 디코딩 대상의 예측 블록의 사이즈가 규정한 사이즈 sizePUNumMVPCand 이하인 경우(S402의 YES), finalNumMVPCand를 후자보다 작은 수로 설정하고(S403), 그렇지 않은 경우, finalNumMVPCand를 전자보다 큰 수로 설정한다(S404). 본 실시형태에 있어서는, 규정하는 사이즈 sizePUNumMVPCand를 8×8로 하고, 인코딩 또는 디코딩 대상의 휘도 신호의 예측 블록의 사이즈가 규정한 사이즈 sizePUNumMVPCand 이하인 경우에는, finalNumMVPCand를 1로 설정하고, 그 이외의 경우에는, finalNumMVPCand를 2로 설정한다. 한편, 규정하는 사이즈 sizePUNumMVPCand는 고정된 값이어도 좋고, 시퀀스, 픽처 또는 슬라이스 단위로 신택스 요소를 준비하여 설정해도 좋다. 또한, 8×4와 4×8 등, 폭과 높이를 곱한 값이 동일한 사이즈인 경우에는 동일한 사이즈로 간주한다. 즉, 규정하는 사이즈 sizePUNumMVPCand가 8×4로 설정된 경우, 4×8도 설정된 것으로 간주한다. 또한, 스텝 S402에서, 인코딩 또는 디코딩 대상의 예측 블록의 사이즈가 규정한 사이즈 sizePUNumMVPCand 미만인 경우, finalNumMVPCand를 후자보다 작은 수로 설정하고, 그렇지 않은 경우, finalNumMVPCand를 전자보다 큰 수로 설정해도 좋다.
다음으로, 도 15의 S103, 및 도 16의 S203에서 공통의 예측 움직임 벡터의 후보 도출 및 예측 움직임 벡터 리스트 구축 처리 순서를 도 18의 플로차트를 사용하여 상세하게 설명한다.
(움직임 벡터의 예측 방법)
도 18은 동영상 인코딩 장치의 차분 움직임 벡터 산출부(103) 및 동영상 디코딩 장치의 움직임 벡터 산출부(204)에서 공통되는 기능을 구비하는 예측 움직임 벡터 후보 생성부(121) 및 (221), 예측 움직임 벡터 후보 등록부(122) 및 (222), 및 예측 움직임 벡터 리던던트 후보 삭제부(123) 및 (223), 예측 움직임 벡터 후보수 제한부(124) 및 (224)의 처리 순서를 나타내는 플로차트이다.
예측 움직임 벡터 후보 생성부(121) 및 (221)는 좌측에 인접하는 예측 블록으로부터의 예측 움직임 벡터의 후보를 도출하고, 좌측에 인접하는 예측 블록의 예측 움직임 벡터 후보가 이용할 수 있는지 여부를 나타내는 플래그 availableFlagLXA, 및 움직임 벡터 mvLXA, 참조 인덱스 refIdxA, 리스트 ListA를 도출한다(도 18의 S301). 한편, L0일 때 X는 0, L1일 때 X는 1로 한다(이하 동일). 이어서, 예측 움직임 벡터 후보 생성부(121) 및 (221)는 상측에 인접하는 예측 블록으로부터의 예측 움직임 벡터의 후보를 도출하고, 상측에 인접하는 예측 블록의 예측 움직임 벡터 후보가 이용할 수 있는지 여부를 나타내는 플래그 availableFlagLXB, 및 움직임 벡터 mvLXB, 참조 인덱스 refIdxB, 리스트 ListB를 도출한다(도 18의 S302). 도 18의 스텝 S301과 S302의 처리는 참조하는 인접 블록의 위치와 수가 상이한 점 이외에는 공통되고, 예측 블록의 예측 움직임 벡터 후보가 이용할 수 있는지 여부를 나타내는 플래그 availableFlagLXN, 및 움직임 벡터 mvLXN, 참조 인덱스 refIdxN, ListN(N은 A 또는 B, 이하 동일)을 도출하는 공통의 도출 처리 순서를 도 19~도 23의 플로차트를 사용하여 나중에 상세하게 설명한다.
이어서, 예측 움직임 벡터 후보 생성부(121) 및 (221)는 상이한 시간의 픽처의 예측 블록으로부터의 예측 움직임 벡터의 후보를 도출하고, 상이한 시간의 픽처의 예측 블록의 예측 움직임 벡터 후보가 이용할 수 있는지 여부를 나타내는 플래그 availableFlagLXCol, 및 움직임 벡터 mvLXCol, 참조 인덱스 refIdxCol, 리스트 ListCol을 도출한다(도 18의 S303). 이 스텝 S303의 도출 처리 순서를 도 24~도 30의 플로차트를 사용하여 나중에 상세하게 설명한다.
이어서, 예측 움직임 벡터 후보 등록부(122) 및 (222)는 예측 움직임 벡터 리스트 mvpListLX를 작성하고, LX의 각각의 예측 벡터의 후보 mvLXA, mvLXB, mvLXCol을 추가한다(도 18의 S304). 이 스텝 S304의 등록 처리 순서를 도 31의 플로차트를 사용하여 나중에 상세하게 설명한다.
이어서, 예측 움직임 벡터 리던던트 후보 삭제부(123) 및 (223)는 예측 움직임 벡터 리스트 mvpListLX 내에서, 복수의 움직임 벡터의 후보가 동일값 또는 가까운 값을 갖고 있는 경우에, 장황한 움직임 벡터의 후보로 판단하고, 가장 작은 순서, 즉 가장 작은 인덱스 i의 움직임 벡터의 후보를 제외하고 장황한 움직임 벡터의 후보를 제거한다(도 18의 S305). 이 스텝 S305의 삭제 처리 순서를 도 32의 플로차트를 사용하여 나중에 상세하게 설명한다.
이어서, 예측 움직임 벡터 후보수 제한부(124) 및 (224)는 예측 움직임 벡터 리스트 mvpListLX 내에 추가된 요소의 수를 카운트하여, 그 수가 LX의 예측 움직임 벡터 후보수 NumMVPCandLX로 설정되고, 예측 움직임 벡터 리스트 mvpListLX에 등록되어 있는 LX의 예측 움직임 벡터 후보수 NumMVPCandLX를 규정된 최종 후보수 finalNumMVPCand로 제한한다(도 18의 S306). 이 스텝 S306의 제한 처리 순서를 도 33의 플로차트를 사용하여 나중에 상세하게 설명한다.
도 18의 S301, S302의 좌측 또는 상측에 인접하는 예측 블록으로부터 예측 움직임 벡터의 후보를 각각 도출하는 순서에 대해 상세하게 설명한다.
도 5, 도 6, 도 7, 도 8에 도시되는 바와 같이, 동일 픽처 내의 인코딩 블록 내부를 움직임 보상하기 위해 정의되는 예측 블록(도 5, 도 6, 도 7, 도 8 중의 처리 대상의 예측 블록)에 인접하는 주위의 예측 블록으로부터 예측 움직임 벡터의 후보를 도출한다.
예측 움직임 벡터의 후보는, 처리 대상의 예측 블록의 좌측에 인접하는 예측 블록 Ak(k=0, 1), 즉 A0, A1로 구성되는 예측 블록 그룹 A, 위에 인접하는 예측 블록 Bk(k=0, 1, 2), 즉 B0, B1, B2로 구성되는 예측 블록 그룹 B로부터 각각 예측 움직임 벡터의 후보를 선출한다.
다음으로, 도 18의 S301 및 S302의 처리 순서인 좌측 및 상측에 인접하는 예측 블록 그룹 N으로부터의 예측 움직임 벡터의 후보의 도출 방법에 대해 설명한다. 도 19는 전술한 스캔 방법 1에 의한 도 18의 S301 및 S302의 예측 움직임 벡터 후보 도출 처리 순서를 나타내는 플로차트이다. 첨자 X에는 참조 리스트를 나타내는 0 혹은 1, N에는 인접하는 예측 블록 그룹의 영역을 나타내는 A(좌측) 또는 B(상측)가 들어간다.
좌측의 예측 블록으로부터 예측 움직임 벡터의 후보를 도출하기 위해서는(도 18의 S301), 도 19에서 N이 A로서 인코딩 또는 디코딩 대상의 예측 블록의 좌측에 인접하는 A0, A1의 예측 블록으로부터 예측 움직임 벡터의 후보를, 상측의 예측 블록으로부터 예측 움직임 벡터의 후보를 도출하기 위해서는(도 18의 S302), 도 19에서 N이 B로서 상측에 인접하는 B0, B1, B2 예측 블록으로부터 예측 움직임 벡터의 후보를, 각각 이하의 순서로 산출한다.
우선, 인코딩 또는 디코딩 대상의 예측 블록에 인접하는 예측 블록을 특정하고, 각각의 예측 블록 Nk(k=0, 1, 2, 단 2는 상측의 예측 블록 그룹만)를 이용할 수 있는 경우에는 인코딩 정보 저장 메모리(114) 또는 인코딩 정보 저장 메모리(209)에 저장되어 있는 인코딩 정보를 취득한다. 여기서 취득하는 인접하는 예측 블록 Nk의 인코딩 정보는, 예측 모드 PredMode, LX를 이용할지 여부를 나타내는 플래그 predFlagLX[xNk][yNk], LX의 참조 인덱스 refIdxLX[xNk][yNk], LX의 움직임 벡터 mvLX[xNk][yNk]이다. 인코딩 또는 디코딩 대상의 예측 블록의 좌측에 인접하는 예측 블록 그룹(N=A)의 경우(S1101의 YES), 왼쪽 아래에 인접하는 예측 블록 A0, 왼쪽에 인접하는 예측 블록 A1을 특정하여 인코딩 정보를 취득하고(S1102, S1103), 인코딩 또는 디코딩 대상의 예측 블록의 상측에 인접하는 예측 블록 그룹(N=B)의 경우(S1101의 NO), 오른쪽 위에 인접하는 예측 블록 B0, 위에 인접하는 예측 블록 B1, 왼쪽 위에 인접하는 예측 블록 B2를 특정하여 인코딩 정보를 취득한다(S1104, S1105, S1106). 한편, 인접하는 예측 블록 Nk가 인코딩 또는 디코딩 대상 예측 블록을 포함하는 슬라이스의 내측에 위치하는 경우에는 이용할 수 있고, 외측에 위치하는 경우에는 이용할 수 없다.
다음으로, 예측 블록 그룹 N으로부터 예측 움직임 벡터가 선출되었는지 여부를 나타내는 플래그 availableFlagLXN을 0, 예측 블록 그룹 N을 대표하는 움직임 벡터 mvLXN을 (0, 0)으로 설정한다(S1107).
이어서, 전술한 조건 판정 1 또는 조건 판정 2에 일치하는 예측 움직임 벡터 후보를 도출한다(S1108). 예측 블록 그룹 N(N은 A 또는 B)의 인접 예측 블록 N0, N1, N2(N2는 상측의 인접 예측 블록 그룹 B만) 중에서, 인코딩 또는 디코딩 대상 예측 블록에서 현재 대상으로 하고 있는 참조 리스트 LX와 동일한 참조 리스트 LX, 또는 인코딩 또는 디코딩 대상 예측 블록에서 현재 대상으로 하고 있는 참조 리스트 LX와 반대인 참조 리스트 LY(Y=! X: 현재 대상으로 하고 있는 참조 리스트가 L0일 때, 반대의 참조 리스트는 L1, 현재 대상으로 하고 있는 참조 리스트가 L1일 때, 반대의 참조 리스트는 L0)에서 동일한 참조 픽처의 움직임 벡터를 갖는 예측 블록을 발견하여 그 움직임 벡터를 예측 움직임 벡터 후보로 한다.
도 20은 도 19의 스텝 S1108의 도출 처리 순서를 나타내는 플로차트이다. 인접하는 예측 블록 Nk(k=0, 1, 2, 단, 2는 상측의 인접 예측 블록 그룹만)에 대해, k가 0, 1, 2의 순서로 각각 이하의 처리를 한다(S1201~S1207). N이 A인 경우 아래에서 위로 A0, A1의 순서로, N이 B인 경우, 오른쪽에서 왼쪽으로 B0, B1, B2의 순서로, 각각 이하의 처리를 한다.
인접하는 예측 블록 Nk를 이용할 수 있고, 예측 블록 Nk의 예측 모드 PredMode가 인트라(MODE_INTRA)가 아닌 경우(S1202의 YES), 전술한 조건 판정 1의 조건 판정을 한다(S1203). 인접하는 예측 블록 Nk의 LX를 이용하는지 여부를 나타내는 플래그 predFlagLX[xNk][yNk]가 1, 즉 인접하는 예측 블록 Nk가 산출 대상과 동일한 LX의 움직임 벡터를 사용하여 인터 예측되어 있고, 인접하는 예측 블록 Nk의 LX의 참조 인덱스 refIdxLX[xNk][yNk]와 처리 대상의 예측 블록의 인덱스 refIdxLX가 동일, 즉 인접하는 예측 블록 Nk가 LX 예측에서 동일한 참조 픽처를 사용하여 인터 예측되어 있는 경우(S1203의 YES), 스텝 S1204로 이행하고, 그렇지 않은 경우(S1203의 NO), 스텝 S1205의 조건 판정을 한다.
스텝 S1203이 YES인 경우, 플래그 availableFlagLXN이 1로 설정되고, 예측 블록 그룹 N의 예측 움직임 벡터 mvLXN이 인접하는 예측 블록 Nk의 LX의 움직임 벡터 mvLX[xNk][yNk]와 동일값으로 설정되고, 예측 블록 그룹 N의 참조 인덱스 refIdxN이 인접하는 예측 블록 Nk의 LX의 참조 인덱스 refIdxLX[xNk][yNk]와 동일값으로 설정되고, 예측 블록 그룹 N의 참조 리스트 ListN이 LX로 설정되고(S1204), 본 예측 움직임 벡터 후보 산출 처리를 종료한다.
한편, 스텝 S1203이 NO인 경우, 전술한 조건 판정 2의 조건 판정을 한다(S1205). 인접하는 예측 블록 Nk의 LY를 이용하는지 여부를 나타내는 플래그 predFlagLY가 1, 즉 인접하는 예측 블록 Nk가 산출 대상과 상이한 LY의 움직임 벡터를 사용하여 인터 예측되어 있고, 인접하는 예측 블록 Nk의 현재 대상으로 하고 있는 참조 리스트 LX와 반대인 참조 리스트 LY의 참조 픽처의 POC와 처리 대상의 예측 블록의 LX의 참조 픽처의 POC가 동일, 즉 인접하는 예측 블록 Nk가 LY 예측에서 동일한 참조 픽처를 사용하여 인터 예측되어 있는 경우(S1205의 YES), 스텝 S1206으로 이행하고, 플래그 availableFlagLXN이 1로 설정되고, 예측 블록 그룹 N의 예측 움직임 벡터 mvLXN이 인접하는 예측 블록 Nk의 LY의 움직임 벡터 mvLY[xNk][yNk]와 동일값으로 설정되고, 예측 블록 그룹 N의 참조 인덱스 refIdxN이 인접하는 예측 블록 Nk의 LY의 참조 인덱스 refIdxLY[xNk][yNk]와 동일값으로 설정되고, 예측 블록 그룹 N의 참조 리스트 ListN이 LY로 설정되고(S1206), 본 예측 움직임 벡터 후보 산출 처리를 종료한다.
이들의 조건에 일치하지 않는 경우, 즉 S1203의 NO, 또는 S1205의 NO인 경우, k를 1증가하고, 다음의 인접 예측 블록의 처리(S1201~S1207)를 하여, availableFlagLXN이 1이 되거나, 인접 블록 A1 또는 B2의 처리가 끝날 때까지 반복한다.
이어서, 도 19의 플로차트를 다시 참조하여, availableFlagLXN이 0일 때(S1109의 YES), 즉 스텝 S1108에서 예측 움직임 벡터의 후보를 산출하지 못한 경우, 전술한 조건 판정 3 또는 조건 판정 4에 일치하는 예측 움직임 벡터 후보를 산출한다(S1110). 예측 블록 그룹 N(N은 A 또는 B)의 인접 블록 N0, N1, N2(N2는 상측의 인접 예측 블록 그룹 B만) 중에서, 인코딩 또는 디코딩 대상 예측 블록에서 현재 대상으로 하고 있는 참조 리스트 LX와 동일한 참조 리스트 LX, 또는 인코딩 또는 디코딩 대상 예측 블록에서 현재 대상으로 하고 있는 참조 리스트 LX와 반대인 참조 리스트 LY(Y=! X: 현재 대상으로 하고 있는 참조 리스트가 L0일 때, 반대의 참조 리스트는 L1, 현재 대상으로 하고 있는 참조 리스트가 L1일 때, 반대의 참조 리스트는 L0)에서 상이한 참조 픽처의 움직임 벡터를 갖는 예측 블록을 발견하여 그 움직임 벡터를 예측 움직임 벡터 후보로 한다.
도 21은 도 19의 스텝 S1110의 도출 처리 순서를 나타내는 플로차트이다. 인접하는 예측 블록 Nk(k=0, 1, 2, 단, 2는 상측의 인접 예측 블록 그룹만)에 대해, k가 0, 1, 2의 순서로 각각 이하의 처리를 한다(S1301~S1307). N이 A인 경우 아래에서 위로 A0, A1의 순서로, N이 B인 경우, 오른쪽에서 왼쪽으로 B0, B1, B2의 순서로, 각각 이하의 처리를 한다.
인접하는 예측 블록 Nk를 이용할 수 있고, 예측 블록 Nk의 예측 모드 PredMode가 인트라(MODE_INTRA)가 아닌 경우(S1302의 YES), 전술한 조건 판정 3의 조건 판정을 한다(S1303). 인접하는 예측 블록 Nk의 LX를 이용하는지 여부를 나타내는 플래그 predFlagLX[xNk][yNk]가 1, 즉 인접하는 예측 블록 Nk가 산출 대상과 동일한 LX의 움직임 벡터를 사용하여 인터 예측되어 있는 경우, 스텝 S1304로 이행하고, 그렇지 않은 경우(S1303의 NO), 스텝 S1305의 조건 판정을 한다.
스텝 S1303이 YES인 경우, 플래그 availableFlagLXN이 1로 설정되고, 예측 블록 그룹 N의 mvLXN이 인접하는 예측 블록 Nk의 LX의 움직임 벡터 mvLX[xNk][yNk]와 동일값으로 설정되고, 예측 블록 그룹 N의 참조 인덱스 refIdxN이 인접하는 예측 블록 Nk의 LX의 참조 인덱스 refIdxLX[xNk][yNk]와 동일값으로 설정되고, 예측 블록 그룹 N의 참조 리스트 ListN이 LX로 설정되고(S1304), 스텝 S1308로 이행한다.
스텝 S1303이 NO인 경우, 전술한 조건 판정 4의 조건 판정을 한다(S1305). 인접하는 예측 블록 Nk의 LY를 이용하는지 여부를 나타내는 플래그 predFlagLY가 1, 즉 인접하는 예측 블록 Nk가 산출 대상과 상이한 LY의 움직임 벡터를 사용하여 인터 예측되어 있는 경우(S1305의 YES), 플래그 availableFlagLXN이 1로 설정되고, 예측 블록 그룹 N의 예측 움직임 벡터 mvLXN이 인접하는 예측 블록 Nk의 LY의 움직임 벡터 mvLY[xNk][yNk]와 동일값으로 설정되고, 예측 블록 그룹 N의 예측 움직임 벡터 mvLXN이 인접하는 예측 블록 Nk의 LY의 움직임 벡터 mvLY[xNk][yNk]와 동일값으로 설정되고, 예측 블록 그룹 N의 참조 인덱스 refIdxN이 인접하는 예측 블록 Nk의 LY의 참조 인덱스 refIdxLY[xNk][yNk]와 동일값으로 설정되고, 예측 블록 그룹 N의 참조 리스트 ListN이 LY로 설정되고(S1306), 스텝 S1308로 이행한다.
한편, 이들의 조건에 일치하지 않는 경우(S1303의 NO, 또는 S1305의 NO인 경우), k를 1증가하고, 다음의 인접 예측 블록의 처리(S1301~S1307)를 하여, availableFlagLXN이 1이 되거나, 인접 블록 A1 또는 B2의 처리가 끝날 때까지 반복하고, 스텝 S1308로 이행한다.
이어서, availableFlagLXN이 1일 때(S1308의 YES), mvLXN을 스케일링한다(S1309). 이 스텝 S1309의 공간 예측 움직임 벡터 후보의 스케일링 연산 처리 순서를 도 22 및 도 23을 사용하여 설명한다.
도 22는 도 21의 스텝 S1309의 움직임 벡터의 스케일링 연산 처리 순서를 나타내는 플로차트이다.
현재의 인코딩 또는 디코딩 대상 픽처의 POC로부터, 인접 예측 블록의 리스트 ListN이 참조하는 참조 픽처의 POC를 감산하여 픽처간 거리 td를 산출한다(S1601). 한편, 현재의 인코딩 또는 디코딩 대상 픽처보다 인접 예측 블록의 리스트 ListN에서 참조하는 참조 픽처가 표시 순서로 앞인 경우, 픽처간 거리 td는 정의 값이 되고, 현재의 인코딩 또는 디코딩 대상 픽처보다 인접 예측 블록의 참조 리스트 ListN에서 참조하는 참조 픽처가 표시 순서로 후인 경우, 픽처간 거리 td는 부의 값이 된다.
td=현재의 인코딩 또는 디코딩 대상 픽처의 POC-인접 예측 블록의 참조 리스트 ListN에서 참조하는 참조 픽처의 POC
현재의 인코딩 또는 디코딩 대상 픽처의 POC로부터 현재의 인코딩 또는 디코딩 대상 픽처의 리스트 LX가 참조하는 참조 픽처의 POC를 감산하여 픽처간 거리 tb를 산출한다(S1602). 한편, 현재의 인코딩 또는 디코딩 대상 픽처보다 현재의 인코딩 또는 디코딩 대상 픽처의 리스트 LX에서 참조하는 참조 픽처가 표시 순서로 앞인 경우, 픽처간 거리 tb는 정의 값이 되고, 현재의 인코딩 또는 디코딩 대상 픽처의 리스트 LX에서 참조하는 참조 픽처가 표시 순서로 후인 경우, 픽처간 거리 tb는 부의 값이 된다.
tb=현재의 인코딩 또는 디코딩 대상 픽처의 POC-현재의 인코딩 또는 디코딩 대상 픽처의 참조 리스트 LX에서 참조하는 참조 픽처의 POC
이어서, 다음의 식에 의해 mvLXN에 스케일링 계수 tb/td를 곱하는 것에 의해 스케일링 연산 처리를 하여(S1603), 스케일링된 움직임 벡터 mvLXN을 얻는다.
mvLXN=tb/td*mvLXN
또한, 스텝 S1603의 스케일링 연산을 정수 정밀도의 연산으로 진행하는 경우의 예를 도 23에 나타낸다. 도 23의 스텝 S1604~S1606의 처리가, 도 22의 스텝 S1603의 처리에 상당한다.
우선, 도 22의 플로차트와 동일하게, 픽처간 거리 td와 픽처간 거리 tb를 산출한다(S1601, S1602).
이어서, 다음의 식에 의해 변수 tx를 산출한다(S1604).
tx=(16384+Abs(td/2))/td
이어서, 다음의 식에 의해 스케일링 계수 DistScaleFactor를 산출한다(S1605).
DistScaleFactor=(tb*tx+32)>>6
이어서, 다음의 식에 의해, 스케일링된 움직임 벡터 mvLXN을 얻는다(S1606).
mvLXN=ClipMv(Sign(DistScaleFactor*mvLXN)*((Abs(DistScaleFactor*mvLXN)+127)>>8))
다음으로, 도 18의 S303의 상이한 시간의 픽처의 예측 블록으로부터 예측 움직임 벡터의 후보의 도출 방법에 대해 상세하게 설명한다. 도 24는 도 18의 스텝 S303의 예측 움직임 벡터 후보 도출 처리 순서를 설명하는 플로차트이다.
우선, slice_type과 collocated_from_l0_flag에 의해, 상이한 시간의 픽처 colPic를 산출한다(도 24의 S2101).
도 25는 도 24의 스텝 S2101의 상이한 시간의 픽처 colPic의 도출 처리 순서를 설명하는 플로차트이다. slice_type이 B이고, 전술한 플래그 collocated_from_l0_flag가 0인 경우(도 25의 S2201의 YES, S2202의 YES), RefPicList1[0], 즉 참조 리스트 L1의 참조 인덱스가 0인 픽처가 상이한 시간의 픽처 colPic가 된다(도 25의 S2203). 그렇지 않은 경우, 즉 전술한 플래그 collocated_from_l0_flag가 1인 경우(도 25의 S2201의 NO, S2202의 NO, S2204의 NO), RefPicList0[0], 즉 참조 리스트 L0의 참조 인덱스가 0인 픽처가 상이한 시간의 픽처 colPic가 된다(도 25의 S2205).
다음으로, 도 24의 플로차트를 다시 참조하여, 상이한 시간의 예측 블록 ColPU를 산출하고, 인코딩 정보를 취득한다(도 24의 S2102).
도 26은 도 24의 스텝 S2102의 상이한 시간의 픽처 colPic의 예측 블록 ColPU의 도출 처리 순서를 설명하는 플로차트이다.
우선, 상이한 시간의 픽처 colPic 내에서 처리 대상의 예측 블록과 동일 위치의 오른쪽 아래(외측)에 위치하는 예측 블록을 상이한 시간의 예측 블록 ColPU으로 설정한다(도 26의 S2301). 이 예측 블록은 도 9의 예측 블록 T0에 상당한다.
다음으로, 상이한 시간의 예측 블록 ColPU의 인코딩 정보를 취득한다(도 26의 S2302). 상이한 시간의 예측 블록 ColPU의 PredMode가 MODE_INTRA이거나, 이용할 수 없는 경우(도 26의 S2303, S2304), 상이한 시간의 픽처 colPic 내에서 처리 대상의 예측 블록과 동일 위치의 중앙 왼쪽 위에 위치하는 예측 블록을 상이한 시간의 예측 블록 ColPU으로 재설정한다(도 26의 S2305). 이 예측 블록은 도 9의 예측 블록 T1에 상당한다.
다음으로, 도 24의 플로차트를 다시 참조하여, 인코딩 또는 디코딩 대상의 예측 블록과 동일 위치의 타픽처의 예측 블록으로부터 산출되는 LX의 예측 움직임 벡터 mvLXCol과 예측 블록 그룹 Col의 참조 리스트 LX의 인코딩 정보가 유효인지 여부를 나타내는 플래그 availableFlagLXCol을 산출한다(도 24의 S2103).
도 27은 도 24의 스텝 S2103의 인터 예측 정보의 도출 처리를 설명하는 플로차트이다.
상이한 시간의 예측 블록 ColPU의 PredMode가 MODE_INTRA이거나, 이용할 수 없는 경우(도 27의 S2401의 NO, S2402의 NO), availableFlagLXCol을 0, mvLXCol을 (0, 0)으로 하고(도 27의 S2403, S2404), 처리를 종료한다.
예측 블록 ColPU를 이용할 수 있고 PredMode가 MODE_INTRA가 아닌 경우(도 27의 S2401의 YES, S2402의 YES), 이하의 순서로 mvCol과 refIdxCol을 산출한다.
예측 블록 ColPU의 L0 예측이 이용되고 있는지 여부를 나타내는 플래그 predFlagL0[xPCol][yPCol]이 0인 경우(도 27의 S2405의 YES), 예측 블록 ColPU의 예측 모드는 Pred_L1이기 때문에, 움직임 벡터 mvCol이 예측 블록 ColPU의 L1의 움직임 벡터인 MvL1[xPCol][yPCol]과 동일값으로 설정되고(도 27의 S2406), 참조 인덱스 refIdxCol이 L1의 참조 인덱스 refIdxL1[xPCol][yPCol]과 동일값으로 설정되고(도 27의 S2407), 리스트 ListCol이 L1로 설정된다(도 27의 S2408).
한편, 예측 블록 ColPU의 L0 예측 플래그 predFlagL0[xPCol][yPCol]이 0이 아닌 경우(도 27의 S2405의 NO), 예측 블록 ColPU의 L1 예측 플래그 predFlagL1[xPCol][yPCol]이 0인지 여부를 판정한다. 예측 블록 ColPU의 L1 예측 플래그 predFlagL1[xPCol][yPCol]이 0인 경우(도 27의 S2409의 YES), 움직임 벡터 mvCol이 예측 블록 ColPU의 L0의 움직임 벡터인 MvL0[xPCol][yPCol]과 동일값으로 설정되고(도 27의 S2410), 참조 인덱스 refIdxCol이 L0의 참조 인덱스 refIdxL0[xPCol][yPCol]과 동일값으로 설정되고(도 27의 S2411), 리스트 ListCol이 L0으로 설정된다(도 27의 S2412).
예측 블록 ColPU의 L0 예측 플래그 predFlagL0[xPCol][yPCol]과 예측 블록 ColPU의 L1 예측 플래그 predFlagL1[xPCol][yPCol]이 모두 0이 아닌 경우(도 27의 S2405의 NO, S2409의 NO), 예측 블록 ColPU의 인터 예측 모드는 쌍예측(Pred_BI)이기 때문에, L0, L1의 2개의 움직임 벡터로부터, 하나를 선택한다(도 27의 S2413).
도 28은 예측 블록 ColPU의 인터 예측 모드가 쌍예측(Pred_BI)일 때의 예측 블록의 인터 예측 정보의 도출 처리 순서를 나타내는 플로차트이다.
우선, 모든 참조 리스트에 등록되어 있는 모든 픽처의 POC가 현재의 인코딩 또는 디코딩 대상 픽처의 POC보다 작은지 여부를 판정하고(S2501), 예측 블록 ColPU의 모든 참조 리스트인 L0 및 L1에 등록되어 있는 모든 픽처의 POC가 현재의 인코딩 또는 디코딩 대상 픽처의 POC보다 작은 경우이고(S2501의 YES), X가 0, 즉 인코딩 또는 디코딩 대상의 예측 블록의 L0의 움직임 벡터의 예측 벡터 후보를 산출한 경우(S2502의 YES), 예측 블록 ColPU의 L0쪽의 인터 예측 정보를 선택하고, X가 1, 즉 인코딩 또는 디코딩 대상의 예측 블록의 L1의 움직임 벡터의 예측 벡터 후보를 산출한 경우(S2502의 NO), 예측 블록 ColPU의 L1쪽의 인터 예측 정보를 선택한다. 한편, 예측 블록 ColPU의 모든 참조 리스트 L0 및 L1에 등록되어 있는 픽처의 POC의 적어도 1개가 현재의 인코딩 또는 디코딩 대상 픽처의 POC보다 큰 경우이고(S2501의 NO), 플래그 collocated_from_l0_flag가 0인 경우(S2503의 YES), 예측 블록 ColPU의 L0쪽의 인터 예측 정보를 선택하고, 플래그 collocated_from_l0_flag가 1인 경우(S2503의 NO), 예측 블록 ColPU의 L1쪽의 인터 예측 정보를 선택한다.
예측 블록 ColPU의 L0쪽의 인터 예측 정보를 선택하는 경우(S2502의 YES, S2503의 YES), 움직임 벡터 mvCol이 MvL0[xPCol][yPCol]과 동일값으로 설정되고(S2504), 참조 인덱스 refIdxCol이 RefIdxL0[xPCol][yPCol]과 동일값으로 설정되고(S2505), 리스트 ListCol이 L0으로 설정된다(S2506).
예측 블록 ColPU의 L1쪽의 인터 예측 정보를 선택하는 경우(S2502의 NO, S2503의 NO), 움직임 벡터 mvCol이 MvL1[xPCol][yPCol]과 동일값으로 설정되고(S2507), 참조 인덱스 refIdxCol이 RefIdxL1[xPCol][yPCol]과 동일값으로 설정되고(S2508), 리스트 ListCol이 L1로 설정된다(S2509).
도 27을 다시 참조하여, 예측 블록 ColPU로부터 인터 예측 정보를 취득했으면 availableFlagLXCol을 1로 한다(도 27의 S2414).
다음으로, 도 24의 플로차트를 다시 참조하여, availableFlagLXCol이 1인 경우(도 24의 S2104의 YES), 필요에 따라 mvLXCol을 스케일링한다(도 24의 S2105). 이 움직임 벡터 mvLXCol의 스케일링 연산 처리 순서를 도 29 및 도 30을 사용하여 설명한다.
도 29는 도 24의 스텝 S2105의 움직임 벡터의 스케일링 연산 처리 순서를 나타내는 플로차트이다.
상이한 시간의 픽처 colPic의 POC로부터, 예측 블록 ColPU의 리스트 ListCol에서 참조하는 참조 픽처의 POC를 감산하여 픽처간 거리 td를 산출한다(S2601). 한편, 상이한 시간의 픽처 colPic보다 예측 블록 ColPU의 리스트 ListCol에서 참조하는 참조 픽처의 POC가 표시 순서로 앞인 경우, 픽처간 거리 td는 정의 값이 되고, 상이한 시간의 픽처 colPic보다 예측 블록 ColPU의 리스트 ListCol에서 참조하는 참조 픽처의 POC가 표시 순서로 후인 경우, 픽처간 거리 td는 부의 값이 된다.
td=상이한 시간의 픽처 colPic의 POC-예측 블록 ColPU의 리스트 ListCol에서 참조하는 참조 픽처의 POC
현재의 인코딩 또는 디코딩 대상 픽처의 POC로부터 현재의 인코딩 또는 디코딩 대상 픽처의 리스트 LX가 참조하는 참조 픽처의 POC를 감산하여 픽처간 거리 tb를 산출한다(S2602). 한편, 현재의 인코딩 또는 디코딩 대상 픽처보다 현재의 인코딩 또는 디코딩 대상 픽처의 리스트 LX에서 참조하는 참조 픽처가 표시 순서로 앞인 경우, 픽처간 거리 tb는 정의 값이 되고, 현재의 인코딩 또는 디코딩 대상 픽처의 리스트 LX에서 참조하는 참조 픽처가 표시 순서로 후인 경우, 픽처간 거리 tb는 부의 값이 된다.
tb=현재의 인코딩 또는 디코딩 대상 픽처의 POC-현재의 인코딩 또는 디코딩 대상 픽처의 참조 리스트 LX에서 참조하는 참조 픽처의 POC
이어서, 픽처간 거리 td와 tb를 비교하여(S2603), 픽처간 거리 td와 tb가 동일한 경우(S2603의 YES), 본 스케일링 연산 처리를 종료한다. 픽처간 거리 td와 tb가 동일하지 않은 경우(S2603의 NO), 다음의 식에 의해 mvLXCol에 스케일링 계수 tb/td를 곱하는 것에 의해 스케일링 연산 처리를 하여(S2604), 스케일링된 움직임 벡터 mvLXCol을 얻는다.
mvLXCol=tb/td*mvLXCol
또한, 스텝 S2604의 스케일링 연산을 정수 정밀도의 연산으로 진행하는 경우의 예를 도 30에 나타낸다. 도 30의 스텝 S2605~S2607의 처리가, 도 29의 스텝 S2604의 처리에 상당한다.
우선, 도 29의 플로차트와 동일하게, 픽처간 거리 td와 픽처간 거리 tb를 산출한다(S2601, S2602).
이어서, 픽처간 거리 td와 tb를 비교하여(S2603), 픽처간 거리 td와 tb가 동일한 경우(S2603의 YES), 본 스케일링 연산 처리를 종료한다. 픽처간 거리 td와 tb가 동일하지 않은 경우(S2603의 NO), 다음의 식에 의해 변수 tx를 산출한다(S2605).
tx=(16384+Abs(td/2))/td
이어서, 다음의 식에 의해 스케일링 계수 DistScaleFactor를 산출한다(S2606).
DistScaleFactor=(tb*tx+32)>>6
이어서, 다음의 식에 의해, 스케일링된 움직임 벡터 mvLXN을 얻는다(S2607).
mvLXN=ClipMv(Sign(DistScaleFactor*mvLXN)*((Abs(DistScaleFactor*mvLXN)+127)>>8))
도 18의 S304의 예측 움직임 벡터의 후보를 예측 움직임 벡터 리스트에 추가하는 순서에 대해 상세하게 설명한다.
도 18의 S301, S302, 및 S303에서 산출된 LX의 각각의 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol을 LX의 예측 움직임 벡터 리스트 mvpListLX에 추가한다(S304). 본 발명의 실시형태에서는, 우선 순위를 매겨서, 우선 순위가 높은 것부터 LX의 예측 움직임 벡터 리스트 mvpListLX에 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol을 등록하는 것에 의해, 우선 순위가 높은 요소를 예측 움직임 벡터 리스트의 전방에 배치한다. 도 18의 S306에서 예측 움직임 벡터 리스트 중의 요소수를 제한할 때에, 예측 움직임 벡터 리스트의 후방에 배치된 요소를 예측 움직임 벡터 리스트로부터 제외하는 것에 의해, 우선 순위가 높은 요소를 남긴다.
예측 움직임 벡터 리스트 mvpListLX는 리스트 구조를 이루고, 예측 움직임 벡터 리스트 내부의 소재를 나타내는 인덱스 i로 관리되고, 인덱스 i에 대응하는 예측 움직임 벡터의 후보를 요소로서 저장하는 기억 영역이 마련되어 있다. 인덱스 i의 숫자는 0으로부터 개시되고, 예측 움직임 벡터 리스트 mvpListLX의 기억 영역에, 예측 움직임 벡터의 후보가 저장된다. 이후의 처리에서는, 예측 움직임 벡터 리스트 mvpListLX에 등록된 인덱스 i의 요소인 예측 움직임 벡터의 후보는, mvpListLX[i]로 나타낸다.
다음으로, 도 18의 S304의 LX의 예측 움직임 벡터 리스트 mvpListLX로의 LX의 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol의 등록 처리 방법에 대해 상세하게 설명한다. 도 31은 도 18의 스텝 S304의 예측 움직임 벡터 후보 등록 처리 순서를 나타내는 플로차트이다.
우선, 예측 움직임 벡터 리스트 mvpListLX의 인덱스 i를 0으로 설정한다(S3101). availableFlagLXA가 1인 경우(S3102의 YES), 예측 움직임 벡터 리스트 mvpListLX의 인덱스 i에 대응하는 위치에 LX의 예측 움직임 벡터 후보 mvLXA를 등록하고(S3103), 인덱스 i에 1을 가산하는 것에 의해 갱신한다(S3104).
이어서, availableFlagLXB가 1인 경우(S3105의 YES), 예측 움직임 벡터 리스트 mvpListLXmvpListLX의 인덱스 i에 대응하는 위치에 LX의 예측 움직임 벡터 후보 mvLXB를 등록하고(S3106), 인덱스 i에 1을 가산하는 것에 의해 갱신한다(S3107).
이어서, availableFlagLXCol이 1인 경우(S3108의 YES), 예측 움직임 벡터 리스트 mvpListLX의 인덱스 i에 대응하는 위치에 LX의 예측 움직임 벡터 후보 mvLXCol을 등록하고(S3109), 예측 움직임 벡터 리스트로의 등록 처리를 종료한다.
이상의 처리에 있어서는, LX의 각각의 예측 움직임 벡터의 후보를 mvLXA, mvLXB, mvLXCol의 순서로 LX의 예측 움직임 벡터 리스트 mvpListLX에 추가했지만, 예측 블록이 규정의 사이즈 이하이고 후보수가 1이 되는 경우이고, 분할 모드(PartMode)가 2N×N 분할(PART_2N×N)이고 분할 인덱스 PartIdx가 0이 되는 경우, 또는 분할 모드(PartMode)가 N×2N 분할(PART_N×2N)이고 분할 인덱스 PartIdx가 1이 되는 경우에, LX의 각각의 예측 움직임 벡터의 후보를 mvLXB, mvLXA, mvLXCol의 순서로 예측 움직임 벡터 리스트 mvpListLX에 추가하는 것에 의해, 인코딩 또는 디코딩 대상의 예측 블록의 움직임 벡터에 가까운 값을 가질 가능성이 높은 예측 움직임 벡터 mvLXB가 선택되기 쉽게 하기 위해 예측 움직임 벡터 리스트의 선두에 등록하는 것에 의해, 차분 움직임 벡터의 부호량을 삭감할 수 있다. 이와 같이, 예측 움직임 벡터 후보수 제한부(124)는, 인코딩 또는 디코딩 대상 블록을 예측 블록으로 분할하는 분할 모드에 따라, 예측 움직임 벡터 후보 리스트에 남겨지는 예측 움직임 벡터의 후보의 우선 순위를 설정한다.
도 4(b)에 나타내는, 분할 모드(PartMode)가 2N×N 분할(PART_2N×N)에 있어서, 분할 인덱스 PartIdx가 0이 되는 상측의 예측 블록의 움직임 벡터는 긴 변에 접하고 있는 상측의 예측 블록 그룹으로부터의 예측 움직임 벡터에 가까운 움직임 벡터의 값을 가질 가능성이 높기 때문에, 상측의 예측 블록 그룹으로부터의 후보 mvLXB를 우선적으로 선택되기 쉽게 하기 위해 예측 움직임 벡터 리스트의 전방에 등록하고, 분할 인덱스 PartIdx가 1이 되는 하측의 예측 블록의 움직임 벡터는 상측의 예측 블록과 상이한 움직임 벡터의 값을 가질 가능성이 높기 때문에, 좌측의 예측 블록 그룹으로부터의 예측 움직임 벡터의 후보 mvLXA를 우선적으로 선택되기 쉽게 하기 위해 예측 움직임 벡터 리스트의 전방에 등록한다.
도 4(c)에 나타내는, 분할 모드(PartMode)가 N×2N 분할(PART_N×2N)에 있어서, 분할 인덱스 PartIdx가 0이 되는 좌측의 예측 블록의 움직임 벡터는 긴 변에 접하고 있는 좌측의 예측 블록 그룹으로부터의 예측 움직임 벡터에 가까운 움직임 벡터의 값을 가질 가능성이 높기 때문에, 좌측의 예측 블록 그룹으로부터의 후보 mvLXA를 우선적으로 선택되기 쉽게 하기 위해 예측 움직임 벡터 리스트의 전방에 등록하고, 분할 인덱스 PartIdx가 1이 되는 우측의 예측 블록의 움직임 벡터는 좌측의 예측 블록과 상이한 움직임 벡터의 값을 가질 가능성이 높기 때문에, 상측의 예측 블록 그룹으로부터의 예측 움직임 벡터의 후보 mvLXB를 우선적으로 선택되기 쉽게 하기 위해 예측 움직임 벡터 리스트의 전방에 등록한다.
도 34는 예측 블록의 사이즈, 분할 모드(PartMode) 및 분할 인덱스 PartIdx에 따라, LX의 예측 움직임 벡터 리스트 mvpListLX로의 LX의 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol의 순서를 적응적으로 전환하는 등록 처리 순서를 나타내는 플로차트이다.
우선, 예측 블록이 규정의 사이즈 이하이고(S3201의 YES), 분할 모드(PartMode)가 2N×N 분할(PART_2N×N)이고 분할 인덱스 PartIdx가 0이고 또는 분할 모드(PartMode)가 N×2N 분할(PART_N×2N)이고 분할 인덱스 PartIdx가 1인 경우에(S3202의 YES), 도 35의 처리 순서로, LX의 예측 움직임 벡터의 후보 mvLXB, mvLXA, mvLXCol의 순서로 LX의 예측 움직임 벡터 리스트 mvpListLX에 등록한다(S3203). 이상의 조건에 일치하지 않는 경우(S3201의 NO, S3202의 NO), 전술한 도 31의 처리 순서로, LX의 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol의 순서로 LX의 예측 움직임 벡터 리스트 mvpListLX에 등록한다(S3204).
도 35는 예측 블록의 사이즈, 분할 모드(PartMode) 및 분할 인덱스 PartIdx에 따라, LX의 예측 움직임 벡터 리스트 mvpListLX로의 LX의 예측 움직임 벡터의 후보 mvLXB, mvLXA, mvLXCol의 순서로 등록 처리 순서를 나타내는 플로차트이다.
우선, 예측 움직임 벡터 리스트 mvpListLX의 인덱스 i를 0으로 설정한다(S3301). availableFlagLXB가 1인 경우(S3302의 YES), 예측 움직임 벡터 리스트 mvpListLX의 인덱스 i에 대응하는 위치에 mvLXB를 등록하고(S3303), 인덱스 i에 1을 가산하는 것에 의해 갱신한다(S3304).
이어서, availableFlagLXA가 1인 경우(S3305의 YES), 예측 움직임 벡터 리스트 mvpListLXmvpListLX의 인덱스 i에 대응하는 위치에 mvLXA를 등록하고(S3306), 인덱스 i에 1을 가산하는 것에 의해 갱신한다(S3307).
이어서, availableFlagLXCol이 1인 경우(S3308의 YES), 예측 움직임 벡터 리스트 mvpListLX의 인덱스 i에 대응하는 위치에 mvLXCol을 등록하고(S3309), 예측 움직임 벡터 리스트로의 등록 처리를 종료한다.
다음으로, 도 18의 S305의 예측 움직임 벡터 리스트 중의 장황한 예측 움직임 벡터의 후보 삭제 방법에 대해 상세하게 설명한다. 도 32는 도 18의 S305의 예측 움직임 벡터 리던던트 후보 삭제 처리 순서를 나타내는 플로차트이다.
최종 후보수 finalNumMVPCand가 1보다 큰 경우(S4101의 YES), 예측 움직임 벡터 리던던트 후보 삭제부(123) 및 (223)는 예측 움직임 벡터 리스트 mvpListLX에 등록되어 있는 움직임 벡터의 후보끼리를 비교하여(S4102), 복수의 움직임 벡터의 후보가 동일값 또는 가까운 값을 갖고 있는 경우에(S4103의 YES), 장황한 움직임 벡터의 후보로 판단하고, 가장 작은 순서, 즉 가장 작은 인덱스 i의 움직임 벡터의 후보를 제외하고 장황한 움직임 벡터의 후보를 제거한다(S4104). 한편, 장황한 움직임 벡터의 후보를 제거한 후, 예측 움직임 벡터 리스트 mvpListLX 내에는, 삭제된 예측 움직임 벡터의 후보의 저장 영역이 비어 있기 때문에, 인덱스 i가 0을 기준으로 하여, 인덱스 i가 작은 예측 움직임 벡터의 후보의 순서로 채워 간다(S4105). 예를 들면, 인덱스 i가 0인 예측 움직임 벡터의 후보 mvListLX[0]이 삭제되고, 인덱스 i가 1 및 2인 예측 움직임 벡터의 후보 mvListLX[1], mvListLX[2]가 남은 경우, 인덱스 i가 1인 예측 움직임 벡터의 후보 mvListLX[1]을 새로 인덱스 i가 0인 예측 움직임 벡터의 후보 mvListLX[0]로 변경한다. 나아가, 인덱스 i가 2인 예측 움직임 벡터의 후보 mvListLX[2]를 새로 인덱스 i가 1인 예측 움직임 벡터의 후보 mvListLX[1]로 변경한다. 나아가, 인덱스 i가 2인 예측 움직임 벡터의 후보 mvListLX[2]는 존재하지 않는 것으로 설정한다.
최종 후보수 finalNumMVPCand가 1인 경우(S4101의 NO), S305의 장황한 예측 움직임 벡터의 후보를 삭제하는 처리는 할 필요가 없기 때문에, 본 리던던트 후보 삭제 처리를 종료한다. 왜냐하면, 스텝 S306의 요소수를 제한하는 처리로, 후보수가 1개로 제한되기 때문이다.
예측 블록의 사이즈가 작은 경우, 단위 면적당의 예측 블록의 수가 많아지기 때문에, 장황한 예측 움직임 벡터의 후보를 삭제하는 처리의 회수도 많아져버린다.
여기서, 본 실시형태에 있어서는, 인코딩 또는 디코딩 대상의 예측 블록이 규정한 사이즈 이하인 경우, 최종 후보수 finalNumMVPCand를 1로 하는 것에 의해, 장황한 예측 움직임 벡터의 후보를 삭제하는 처리를 스킵하여, 처리량을 삭감하고 있다.
최종 후보수 finalNumMVPCand가 2이고, 예측 움직임 벡터 리스트 mvpListLX에 예측 움직임 벡터의 후보 mvpLXA, mvpLXB, mvpLXCol이 모두 등록되어 후보수가 3인 경우, 예측 움직임 벡터 리스트 mvpListLX의 예측 움직임 벡터 인덱스가 0인 요소인 mvpListLX[0]이 mvpLXA가 되고, 예측 움직임 벡터 인덱스가 1인 요소인 mvpListLX[1]이 mvpLXB가 되고, 예측 움직임 벡터 인덱스가 2인 요소인 mvpListLX[2]가 mvpLXCol이 된다. 이 경우, 무작위로 비교하기 위해서는 스텝 S4102에서 예측 움직임 벡터 리스트 mvpListLX의 예측 움직임 벡터 인덱스가 0인 요소인 mvpListLX[0]과 예측 움직임 벡터 인덱스가 1인 요소인 mvpListLX[1]을 비교함과 함께, 예측 움직임 벡터 리스트 mvpListLX의 예측 움직임 벡터 인덱스가 0인 요소인 mvpListLX[0]과 예측 움직임 벡터 인덱스가 2인 요소인 mvpListLX[2]를 비교 할 필요가 있어, 2회의 비교 처리가 필요하다. 그러나, 처리량을 삭감하기 위해, 최종 후보수 finalNumMVPCand가 2인 경우, 스텝 S4102에서 예측 움직임 벡터 리스트 mvpListLX의 예측 움직임 벡터 인덱스가 0인 요소인 mvpListLX[0]과 예측 움직임 벡터 인덱스가 1인 요소인 mvpListLX[1]만을 비교하여, 장황한 움직임 벡터의 후보로 판단한 경우에 예측 움직임 벡터 인덱스가 1인 요소인 mvpListLX[1]을 삭제하고, 예측 움직임 벡터 인덱스가 2인 요소인 mvpListLX[2]가 존재하는 경우에 그 예측 움직임 벡터 인덱스를 1로 설정하여, 예측 움직임 벡터 인덱스가 1인 요소인 mvpListLX[1]로 하고, 본 처리를 종료할 수도 있다. 이 경우, 새로운 예측 움직임 벡터 인덱스가 0인 요소인 mvpListLX[0]과 예측 움직임 벡터 인덱스가 1인 요소인 mvpListLX[1]을 비교하면 장황할 가능성이 있지만, 가령 이 2개의 요소를 비교하여 장황한 것으로 판단한 경우에 한쪽을 삭제하여 후보수가 1이 되어도, 후술하는 스텝 S306에서, 예측 움직임 벡터 인덱스가 1인 요소인 mvpListLX[1]로 하여 (0, 0)의 값을 갖는 움직임 벡터가 등록되어 후보수가 2가 된다. 한쪽을 삭제하여 (0, 0)의 값을 갖는 움직임 벡터를 등록하는 것에 의한 메리트는 작은 것으로 생각되기 때문에 예측 움직임 벡터 인덱스가 0인 요소인 mvpListLX[0]과 예측 움직임 벡터 인덱스가 1인 요소인 mvpListLX[1]만을 비교하여 처리량을 삭감할 수 있다. 또한, 공간 예측 움직임 벡터 후보 mvpLXA와 mvpLXB는 동일 픽처의 예측 블록으로부터 예측 움직임 벡터 후보를 도출하기 때문에, 서로 움직임 정보가 동일할 가능성이 높지만, 시간 예측 움직임 벡터 후보 mvpLXCol은 상이한 픽처의 예측 블록으로부터 예측 움직임 벡터 후보를 도출하기 때문에, 공간 예측 움직임 벡터 후보 mvpLXA, mvpLXB와 상이한 움직임 정보가 될 가능성이 높다. 따라서, 시간 예측 움직임 벡터 후보 mvpLXCol의 비교를 생략해도 영향은 작을 것으로 생각된다. 이와 같이, 최종 후보수가 2인 경우, 예측 움직임 벡터 인덱스가 0인 예측 움직임 벡터 후보와, 예측 움직임 벡터 인덱스가 1인 예측 움직임 벡터 후보를 비교하여, 예측 움직임 벡터 인덱스가 2인 예측 움직임 벡터 후보와의 비교를 생략하는 것에 의해, 리던던트 후보를 삭제하기 위한 조건 판정 처리의 회수를 삭감할 수 있다.
다음으로, 도 18의 S306의 예측 움직임 벡터 리스트 중의 움직임 벡터의 후보수의 제한 방법에 대해 상세하게 설명한다. 도 33은 도 18의 S306의 예측 움직임 벡터 후보수 제한 처리 순서를 설명하는 플로차트이다.
예측 움직임 벡터 후보수 제한부(124) 및 예측 움직임 벡터 후보수 제한부(224)는 LX의 예측 움직임 벡터 리스트 mvpListLX에 등록되어 있는 LX의 예측 움직임 벡터 후보수 NumMVPCandLX를 규정된 최종 후보수 finalNumMVPCand로 제한한다.
우선, LX의 예측 움직임 벡터 리스트 mvpListLX에 등록되어 있는 요소수를 카운트하여, LX의 예측 움직임 벡터 후보수 NumMVPCandLX로 설정한다(S5101).
이어서, LX의 예측 움직임 벡터 후보수 NumMVPCandLX가 최종 후보수 finalNumMVPCand보다 작은 경우(S5103의 YES), LX의 예측 움직임 벡터 리스트 mvpListLX의 인덱스 i가 numMVPCandLX에 대응하는 위치에 (0, 0)의 값을 갖는 움직임 벡터를 등록하고(S5104), numMVPCandLX에 1을 가산한다(S5105). numMVPCandLX와 finalNumMVPCand가 동일값인 경우(S5106의 YES), 본 제한 처리를 종료하고, numMVPCandLX와 finalNumMVPCand가 동일값이 아닌 경우(S5106의 NO), 동일값이 될 때까지, 스텝 S5104와 S5105의 처리를 반복한다. 즉, LX의 예측 움직임 벡터 후보수 NumMVPCandLX가 최종 후보수 finalNumMVPCand에 달할 때까지, (0, 0)의 값을 갖는 MV를 등록한다. 이와 같이 중복하여 (0, 0)의 값을 갖는 MV를 등록하는 것에 의해, 예측 움직임 벡터 인덱스가 0이상 최종 후보수 finalNumMVPCand미만의 범위 내에서 어떠한 값을 취해도 예측 움직임 벡터를 확정할 수 있다.
한편, LX의 예측 움직임 벡터 후보수 NumMVPCandLX가 최종 후보수 finalNumMVPCand보다 큰 경우(S5103의 NO, S5107의 YES), LX의 예측 움직임 벡터 리스트 mvpListLX의 인덱스 i가 finalNumMVPCand-1보다 큰 모든 예측 움직임 벡터 후보를 삭제하고(S5108), numMVPCandLX에 finalNumMVPCand와 동일값을 설정하고(S5109), 본 제한 처리를 종료한다.
LX의 예측 움직임 벡터 후보수 NumMVPCandLX가 최종 후보수 finalNumMVPCand와 동일한 경우(S5103의 NO, S5107의 NO), 제한 처리를 실시하지 않고 본 제한 처리를 종료한다.
본 실시형태에 있어서는, 예측 블록의 사이즈에 상응하여 최종 후보수 finalNumMVPCand를 규정하고 있다. 왜냐하면, 예측 움직임 벡터 리스트에 등록되는 예측 움직임 벡터의 후보수가 예측 움직임 벡터 리스트의 구축 상태에 따라 변동하면, 디코딩측에서는 예측 움직임 벡터 리스트를 구축하고 나서가 아니면, 예측 움직임 벡터 인덱스를 엔트로피 디코딩할 수 없기 때문이다. 나아가, 엔트로피 디코딩이 상이한 시간의 픽처의 예측 블록으로부터 도출된 예측 움직임 벡터 후보 mvLXCol을 포함하는 예측 움직임 벡터 리스트의 구축 상태에 의존하면, 다른 픽처의 인코딩 비트열의 디코딩 시에 에러가 발생했을 때에 현재의 픽처의 인코딩 비트열도 그 영향을 받아 정상적으로 엔트로피 디코딩을 계속할 수 없는 문제가 있다. 예측 블록의 사이즈에 상응하여 최종 후보수 finalNumMVPCand를 고정한 수로 규정하면, 예측 움직임 벡터 리스트의 구축과 독립하여, 예측 움직임 벡터 인덱스를 엔트로피 디코딩할 수 있는 한편, 다른 픽처의 인코딩 비트열의 디코딩 시에 에러가 발생해도 그 영향을 받지 않고 현재의 픽처의 인코딩 비트열의 엔트로피 디코딩을 계속할 수 있다.
이상으로 설명한 실시형태에 따른 동영상 인코딩 장치가 출력하는 동영상의 인코딩 스트림은, 실시형태에서 사용된 인코딩 방법에 따라 디코딩할 수 있도록 특정의 데이터 포맷을 구비하고 있고, 동영상 인코딩 장치에 대응하는 동영상 디코딩 장치가 이 특정의 데이터 포맷의 인코딩 스트림을 디코딩할 수 있다.
동영상 인코딩 장치와 동영상 디코딩 장치 사이에서 인코딩 스트림을 주고받기 위해, 유선 또는 무선 네트워크가 사용되는 경우, 인코딩 스트림을 통신 채널의 전송 형태에 적합한 데이터 형식으로 변환하여 전송해도 좋다. 그 경우, 동영상 인코딩 장치가 출력하는 인코딩 스트림을 통신 채널의 전송 형태에 적합한 데이터 형식의 인코딩 데이터로 변환하여 네트워크에 송신하는 동영상 송신 장치와, 네트워크로부터 인코딩 데이터를 수신하여 인코딩 스트림으로 복원하여 동영상 디코딩 장치에 공급하는 동영상 수신 장치가 마련된다.
동영상 송신 장치는, 동영상 인코딩 장치가 출력하는 인코딩 스트림을 버퍼하는 메모리와, 인코딩 스트림을 패킷화하는 패킷 처리부와, 패킷화된 인코딩 데이터를 네트워크를 통해 송신하는 송신부를 포함한다. 동영상 수신 장치는, 패킷화된 인코딩 데이터를 네트워크를 통해 수신하는 수신부와, 수신된 인코딩 데이터를 버퍼하는 메모리와, 인코딩 데이터를 패킷 처리하여 인코딩 스트림을 생성하고, 동영상 디코딩 장치에 제공하는 패킷 처리부를 포함한다.
이상의 인코딩 및 디코딩에 관한 처리는, 하드웨어를 사용한 전송, 축적, 수신 장치로서 실현할 수 있는 것은 물론, ROM(read only memory)이나 플래시 메모리 등에 기억되어 있는 펌웨어나, 컴퓨터 등의 소프트웨어에 의해도 실현할 수 있다. 그 펌웨어 프로그램, 소프트웨어 프로그램을 컴퓨터 등으로 판독 가능한 기록 매체에 기록하여 제공하거나, 유선 혹은 무선 네트워크를 통해 서버에서 제공하거나, 지상파 혹은 위성 디지털 방송의 데이터 방송으로서 제공하는 것도 가능하다.
이상, 본 발명을 실시형태를 바탕으로 설명했다. 실시형태는 예시이며, 이들의 각 구성 요소나 각 처리 프로세스의 조합에 다양한 변형예가 가능하고, 또한 그러한 변형예도 본 발명의 범위에 있는 것은 당업자에 있어서 자명하다.
본 발명은, 동영상 인코딩 및 디코딩 기술, 특히 움직임 보상 예측을 이용한 동영상 인코딩 및 디코딩 기술에 이용할 수 있다.
101: 화상 메모리
102: 움직임 벡터 검출부
103: 차분 움직임 벡터 산출부
104: 인터 예측 정보 추정부
105: 움직임 보상 예측부
106: 예측 방법 결정부
107: 잔차 신호 생성부
108: 직교 변환·양자화부
109: 제1의 인코딩 비트열 생성부
110: 제2의 인코딩 비트열 생성부
111: 다중화부
112: 역양자화·역직교 변환부
113: 디코딩 화상 신호 중첩부
114: 인코딩 정보 저장 메모리
115: 디코딩 화상 메모리
121: 예측 움직임 벡터 후보 생성부
122: 예측 움직임 벡터 후보 등록부
123: 예측 움직임 벡터 리던던트 후보 삭제부(predicted motion vector redundant candidate deleting unit)
124: 예측 움직임 벡터 후보수 제한부
125: 예측 움직임 벡터 후보 인코딩량 산출부
126: 예측 움직임 벡터 선택부
127: 움직임 벡터 감산부
201: 분리부
202: 제1인코딩 비트열 디코딩부
203: 제2인코딩 비트열 디코딩부
204: 움직임 벡터 산출부
205: 인터 예측 정보 추정부
206: 움직임 보상 예측부
207: 역양자화·역직교 변환부
208: 디코딩 화상 신호 중첩부
209: 인코딩 정보 저장 메모리
210: 디코딩 화상 메모리
221: 예측 움직임 벡터 후보 생성부
222: 예측 움직임 벡터 후보 등록부
223: 예측 움직임 벡터 리던던트 후보 삭제부
224: 예측 움직임 벡터 후보수 제한부
225: 예측 움직임 벡터 선택부
226: 움직임 벡터 가산부

Claims (22)

  1. 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상을 인코딩하는 동영상 인코딩 장치이고,
    인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 인코딩 대상 블록과 상이한 인코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성부;
    상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록부;
    상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한부;
    상기 예측 움직임 벡터 후보 리스트로부터, 상기 인코딩 대상 블록의 예측 움직임 벡터를 결정하는 예측 움직임 벡터 선택부; 및
    상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 결정된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩부를 구비하는 것을 특징으로 하는 동영상 인코딩 장치.
  2. 제1항에 있어서,
    상기 예측 움직임 벡터 후보 제한부는, 상기 예측 움직임 벡터 후보 등록부에 의해 생성된 상기 예측 움직임 벡터 후보 리스트로부터 소정수를 넘는 예측 움직임 벡터 후보를 삭제하는 것을 특징으로 하는 동영상 인코딩 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 예측 움직임 벡터 후보 생성부는, 인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터로부터, 제1 및 제2의 예측 움직임 벡터 후보를 도출하고, 인코딩 대상 블록과 상이한 인코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 제3의 예측 움직임 벡터 후보를 도출하고,
    상기 예측 움직임 벡터 후보 등록부는, 소정의 조건을 만족하는 상기 제1, 제2 및 제3의 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하고,
    상기 예측 움직임 벡터 후보 등록부에 의해 상기 예측 움직임 벡터 후보 리스트에 등록된 상기 제1 및 제2의 예측 움직임 벡터 후보가 동일값일 때, 상기 예측 움직임 벡터 후보 리스트로부터 제2의 예측 움직임 벡터 후보를 삭제하는 예측 움직임 벡터 후보 리던던트 판정부를 구비하는 것을 특징으로 하는 동영상 인코딩 장치.
  4. 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상을 인코딩하는 동영상 인코딩 장치이고,
    인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 생성하고, 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성부;
    상기 예측 움직임 벡터 후보 리스트에 등록되는 상기 예측 움직임 벡터의 후보수를 예측 블록의 사이즈에 상응한 최대 후보수로 제한하는 예측 움직임 벡터 후보수 제한부;
    상기 예측 움직임 벡터 후보 리스트로부터, 상기 인코딩 대상 블록의 예측 움직임 벡터를 결정하는 예측 움직임 벡터 선택부; 및
    상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 결정된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩부를 구비하는 것을 특징으로 하는 동영상 인코딩 장치.
  5. 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상을 인코딩하는 동영상 인코딩 방법이고,
    인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 인코딩 대상 블록과 상이한 인코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝;
    상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝;
    상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝;
    상기 예측 움직임 벡터 후보 리스트로부터, 상기 인코딩 대상 블록의 예측 움직임 벡터를 결정하는 예측 움직임 벡터 선택 스텝; 및
    상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 결정된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩 스텝을 포함하는 것을 특징으로 하는 동영상 인코딩 방법.
  6. 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상을 인코딩하는 동영상 인코딩 프로그램이고,
    인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 인코딩 대상 블록과 상이한 인코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝;
    상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝;
    상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝;
    상기 예측 움직임 벡터 후보 리스트로부터, 상기 인코딩 대상 블록의 예측 움직임 벡터를 결정하는 예측 움직임 벡터 선택 스텝; 및
    상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 결정된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩 스텝을 컴퓨터에 실행시키는 것을 특징으로 하는 동영상 인코딩 프로그램.
  7. 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상을 인코딩하는 동영상 인코딩 방법에 의해 인코딩된 인코딩 비트열을 패킷화하여 인코딩 데이터를 얻는 패킷 처리부와,
    패킷화된 상기 인코딩 데이터를 송신하는 송신부를 구비하고,
    상기 동영상 인코딩 방법은,
    인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 인코딩 대상 블록과 상이한 인코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝;
    상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝;
    상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝;
    상기 예측 움직임 벡터 후보 리스트로부터, 상기 인코딩 대상 블록의 예측 움직임 벡터를 결정하는 예측 움직임 벡터 선택 스텝; 및
    상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 결정된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩 스텝을 포함하는 것을 특징으로 하는 송신 장치.
  8. 제7항에 있어서,
    상기 예측 움직임 벡터 후보 제한 스텝은, 상기 예측 움직임 벡터 후보 등록 스텝에 의해 생성된 상기 예측 움직임 벡터 후보 리스트로부터 소정수를 넘는 예측 움직임 벡터 후보를 삭제하는 것을 특징으로 하는 송신 장치.
  9. 제7항 또는 제8항에 있어서,
    상기 예측 움직임 벡터 후보 생성 스텝은, 인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터로부터, 제1 및 제2의 예측 움직임 벡터 후보를 도출하고, 인코딩 대상 블록과 상이한 인코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 제3의 예측 움직임 벡터 후보를 도출하고,
    상기 예측 움직임 벡터 후보 등록 스텝은, 소정의 조건을 만족하는 상기 제1, 제2 및 제3의 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하고,
    상기 예측 움직임 벡터 후보 등록 스텝에 의해 상기 예측 움직임 벡터 후보 리스트에 등록된 상기 제1 및 제2의 예측 움직임 벡터 후보가 동일값일 때, 상기 예측 움직임 벡터 후보 리스트로부터 제2의 예측 움직임 벡터 후보를 삭제하는 예측 움직임 벡터 후보 리던던트 판정 스텝을 포함하는 것을 특징으로 하는 송신 장치.
  10. 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상을 인코딩하는 동영상 인코딩 방법에 의해 인코딩된 인코딩 비트열을 패킷화하여 인코딩 데이터를 얻는 패킷 처리 스텝과,
    패킷화된 상기 인코딩 데이터를 송신하는 송신 스텝을 포함하고,
    상기 동영상 인코딩 방법은,
    인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 인코딩 대상 블록과 상이한 인코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝;
    상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝;
    상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝;
    상기 예측 움직임 벡터 후보 리스트로부터, 상기 인코딩 대상 블록의 예측 움직임 벡터를 결정하는 예측 움직임 벡터 선택 스텝; 및
    상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 결정된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩 스텝을 포함하는 것을 특징으로 하는 송신 방법.
  11. 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상을 인코딩하는 동영상 인코딩 방법에 의해 인코딩된 인코딩 비트열을 패킷화하여 인코딩 데이터를 얻는 패킷 처리 스텝과,
    패킷화된 상기 인코딩 데이터를 송신하는 송신 스텝을 컴퓨터에 실행시키고,
    상기 동영상 인코딩 방법은,
    인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 근접하는 인코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 인코딩 대상 블록과 상이한 인코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝;
    상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝;
    상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝;
    상기 예측 움직임 벡터 후보 리스트로부터, 상기 인코딩 대상 블록의 예측 움직임 벡터를 결정하는 예측 움직임 벡터 선택 스텝; 및
    상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 결정된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩 스텝을 포함하는 것을 특징으로 하는 송신 프로그램.
  12. 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 장치이고,
    예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩부;
    디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 디코딩 대상 블록과 상이한 디코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성부;
    상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록부;
    상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한부; 및
    디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트로부터, 상기 디코딩 대상 블록의 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택부를 구비하는 것을 특징으로 하는 동영상 디코딩 장치.
  13. 제12항에 있어서,
    상기 예측 움직임 벡터 후보 제한부는, 상기 예측 움직임 벡터 후보 등록부에 의해 생성된 상기 예측 움직임 벡터 후보 리스트로부터 소정수를 넘는 예측 움직임 벡터 후보를 삭제하는 것을 특징으로 하는 동영상 디코딩 장치.
  14. 제12항 또는 제13항에 있어서,
    상기 예측 움직임 벡터 후보 생성부는, 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터로부터, 제1 및 제2의 예측 움직임 벡터 후보를 도출하고, 디코딩 대상 블록과 상이한 디코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 제3의 예측 움직임 벡터 후보를 도출하고,
    상기 예측 움직임 벡터 후보 등록부는, 소정의 조건을 만족하는 상기 제1, 제2 및 제3의 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하고,
    상기 예측 움직임 벡터 후보 등록부에 의해 상기 예측 움직임 벡터 후보 리스트에 등록된 상기 제1 및 제2의 예측 움직임 벡터 후보가 동일값일 때, 상기 예측 움직임 벡터 후보 리스트로부터 제2의 예측 움직임 벡터 후보를 삭제하는 예측 움직임 벡터 후보 리던던트 판정부를 구비하는 것을 특징으로 하는 동영상 디코딩 장치.
  15. 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 장치이고,
    예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩부;
    디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 생성하고, 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성부;
    상기 예측 움직임 벡터 후보 리스트에 등록되는 상기 예측 움직임 벡터의 후보수를 예측 블록의 사이즈에 상응한 최대 후보수로 제한하는 예측 움직임 벡터 후보수 제한부; 및
    디코딩된 상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트로부터 상기 디코딩 대상 블록의 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택부를 구비하는 것을 특징으로 하는 동영상 디코딩 장치.
  16. 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 방법이고,
    예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩 스텝;
    디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 디코딩 대상 블록과 상이한 디코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝;
    상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝;
    상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝; 및
    디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트로부터, 상기 디코딩 대상 블록의 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택 스텝을 포함하는 것을 특징으로 하는 동영상 디코딩 방법.
  17. 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 프로그램이고,
    예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩 스텝;
    디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 디코딩 대상 블록과 상이한 디코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝;
    상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝;
    상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝; 및
    디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트로부터, 상기 디코딩 대상 블록의 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택 스텝을 컴퓨터에 실행시키는 것을 특징으로 하는 동영상 디코딩 프로그램.
  18. 동영상이 인코딩된 인코딩 비트열을 수신하여 디코딩하는 수신 장치이고,
    각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상이 인코딩된 인코딩 비트열이 패킷화된 인코딩 데이터를 수신하는 수신부;
    수신된 상기 인코딩 데이터를 패킷 처리하여 원래의 인코딩 비트열을 복원하는 복원부;
    복원된 인코딩 비트열로부터, 예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩부;
    디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 디코딩 대상 블록과 상이한 디코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성부;
    상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록부;
    상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한부; 및
    디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트로부터, 상기 디코딩 대상 블록의 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택부를 구비하는 것을 특징으로 하는 수신 장치.
  19. 제18항에 있어서,
    상기 예측 움직임 벡터 후보 제한부는, 상기 예측 움직임 벡터 후보 등록부에 의해 생성된 상기 예측 움직임 벡터 후보 리스트로부터 소정수를 넘는 예측 움직임 벡터 후보를 삭제하는 것을 특징으로 하는 수신 장치.
  20. 제18항 또는 제19항에 있어서,
    상기 예측 움직임 벡터 후보 생성부는, 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터로부터, 제1 및 제2의 예측 움직임 벡터 후보를 도출하고, 디코딩 대상 블록과 상이한 디코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 제3의 예측 움직임 벡터 후보를 도출하고,
    상기 예측 움직임 벡터 후보 등록부는, 소정의 조건을 만족하는 상기 제1, 제2 및 제3의 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하고,
    상기 예측 움직임 벡터 후보 등록부에 의해 상기 예측 움직임 벡터 후보 리스트에 등록된 상기 제1 및 제2의 예측 움직임 벡터 후보가 동일값일 때, 상기 예측 움직임 벡터 후보 리스트로부터 제2의 예측 움직임 벡터 후보를 삭제하는 예측 움직임 벡터 후보 리던던트 판정부를 구비하는 것을 특징으로 하는 수신 장치.
  21. 동영상이 인코딩된 인코딩 비트열을 수신하여 디코딩하는 수신 방법이고,
    각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상이 인코딩된 인코딩 비트열이 패킷화된 인코딩 데이터를 수신하는 수신 스텝;
    수신된 상기 인코딩 데이터를 패킷 처리하여 원래의 인코딩 비트열을 복원하는 복원 스텝;
    복원된 인코딩 비트열로부터, 예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩 스텝;
    디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 디코딩 대상 블록과 상이한 디코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝;
    상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝;
    상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝; 및
    디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트로부터, 상기 디코딩 대상 블록의 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택 스텝을 포함하는 것을 특징으로 하는 수신 방법.
  22. 동영상이 인코딩된 인코딩 비트열을 수신하여 디코딩하는 수신 프로그램이고,
    각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 동영상이 인코딩된 인코딩 비트열이 패킷화된 인코딩 데이터를 수신하는 수신 스텝;
    수신된 상기 인코딩 데이터를 패킷 처리하여 원래의 인코딩 비트열을 복원하는 복원 스텝;
    복원된 인코딩 비트열로부터, 예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩 스텝;
    디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 근접하는 디코딩 완료된 블록 중 어느 하나의 움직임 벡터와, 디코딩 대상 블록과 상이한 디코딩 완료된 픽처 내의 블록 중 어느 하나의 움직임 벡터로부터, 복수의 예측 움직임 벡터 후보를 도출하는 예측 움직임 벡터 후보 생성 스텝;
    상기 복수의 예측 움직임 벡터 후보 중, 소정의 조건을 만족하는 예측 움직임 벡터 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 등록 스텝;
    상기 예측 움직임 벡터 후보 리스트에 등록된 예측 움직임 벡터 후보의 수가 소정수(2 이상의 자연수)보다 작은 경우에, 예측 움직임 벡터 후보의 수가 소정수에 달할 때까지 반복하여 동일값의 예측 움직임 벡터 후보를 상기 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 제한 스텝; 및
    디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트로부터, 상기 디코딩 대상 블록의 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택 스텝을 컴퓨터에 실행시키는 것을 특징으로 하는 수신 프로그램.
KR1020147011156A 2011-09-28 2012-09-28 동영상 인코딩 장치, 동영상 인코딩 방법, 동영상 인코딩 프로그램, 송신 장치, 송신 방법 및 송신 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법, 동영상 디코딩 프로그램, 수신 장치, 수신 방법 및 수신 프로그램 KR101617974B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
JPJP-P-2011-212015 2011-09-28
JPJP-P-2011-212014 2011-09-28
JP2011212014 2011-09-28
JP2011212015 2011-09-28
JPJP-P-2012-214685 2012-09-27
JP2012214684A JP5884697B2 (ja) 2011-09-28 2012-09-27 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JPJP-P-2012-214684 2012-09-27
JP2012214685A JP5488666B2 (ja) 2011-09-28 2012-09-27 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
PCT/JP2012/006225 WO2013046707A1 (ja) 2011-09-28 2012-09-28 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム、並びに動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020167010918A Division KR101711355B1 (ko) 2011-09-28 2012-09-28 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램을 저장한 기록매체

Publications (2)

Publication Number Publication Date
KR20140065013A true KR20140065013A (ko) 2014-05-28
KR101617974B1 KR101617974B1 (ko) 2016-05-03

Family

ID=49032585

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020167010918A KR101711355B1 (ko) 2011-09-28 2012-09-28 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램을 저장한 기록매체
KR1020177004758A KR101809881B1 (ko) 2011-09-28 2012-09-28 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램을 저장한 기록매체
KR1020177004756A KR101809879B1 (ko) 2011-09-28 2012-09-28 동영상 인코딩 장치, 동영상 인코딩 방법 및 동영상 인코딩 프로그램을 저장한 기록매체
KR1020177004757A KR101809880B1 (ko) 2011-09-28 2012-09-28 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램을 저장한 기록매체
KR1020147011156A KR101617974B1 (ko) 2011-09-28 2012-09-28 동영상 인코딩 장치, 동영상 인코딩 방법, 동영상 인코딩 프로그램, 송신 장치, 송신 방법 및 송신 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법, 동영상 디코딩 프로그램, 수신 장치, 수신 방법 및 수신 프로그램

Family Applications Before (4)

Application Number Title Priority Date Filing Date
KR1020167010918A KR101711355B1 (ko) 2011-09-28 2012-09-28 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램을 저장한 기록매체
KR1020177004758A KR101809881B1 (ko) 2011-09-28 2012-09-28 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램을 저장한 기록매체
KR1020177004756A KR101809879B1 (ko) 2011-09-28 2012-09-28 동영상 인코딩 장치, 동영상 인코딩 방법 및 동영상 인코딩 프로그램을 저장한 기록매체
KR1020177004757A KR101809880B1 (ko) 2011-09-28 2012-09-28 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램을 저장한 기록매체

Country Status (4)

Country Link
US (5) US9674549B2 (ko)
KR (5) KR101711355B1 (ko)
BR (1) BR112014007492B1 (ko)
TW (5) TW201626802A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016137149A1 (ko) * 2015-02-24 2016-09-01 엘지전자(주) 폴리곤 유닛 기반 영상 처리 방법 및 이를 위한 장치
KR20190008214A (ko) * 2016-05-13 2019-01-23 퀄컴 인코포레이티드 비디오 코딩을 위한 모션 벡터 예측용 병합 후보들

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012111325A1 (ja) * 2011-02-17 2012-08-23 パナソニック株式会社 映像符号化装置、映像符号化方法、映像符号化プログラム、映像再生装置、映像再生方法及び映像再生プログラム
EP3937497B1 (en) * 2011-03-21 2023-02-22 LG Electronics, Inc. Motion vector predictor selection
PL2847996T3 (pl) 2012-05-09 2021-04-19 Sun Patent Trust Sposoby wykonywania predykcji wektora ruchu, sposoby kodowania i dekodowania oraz służące do tego urządzenia
US9247271B2 (en) * 2012-10-08 2016-01-26 Inria Institut National De Recherche En Informatique Et En Automatique Method and device for motion information prediction in multi-view video coding
JP2014093602A (ja) * 2012-11-01 2014-05-19 Toshiba Corp 画像処理装置、画像処理方法、画像処理プログラム、および立体画像表示装置
WO2016068685A1 (ko) * 2014-10-31 2016-05-06 삼성전자 주식회사 고정밀 스킵 부호화를 이용한 비디오 부호화 장치 및 비디오 복호화 장치 및 그 방법
WO2017195608A1 (ja) * 2016-05-13 2017-11-16 シャープ株式会社 動画像復号装置
AU2016425069B2 (en) * 2016-09-30 2022-03-03 Huawei Technologies Co., Ltd. Method and apparatus for image coding and decoding through inter prediction
US10735758B2 (en) * 2017-12-07 2020-08-04 Tencent America LLC Method and apparatus for video coding
WO2019147067A1 (ko) * 2018-01-26 2019-08-01 한국전자통신연구원 시간적 움직임 정보를 이용하는 영상 부호화 및 영상 복호화를 위한 방법 및 장치
US11425390B2 (en) * 2018-01-26 2022-08-23 Electronics And Telecommunications Research Institute Method and apparatus for image encoding and image decoding using temporal motion information
WO2019151093A1 (en) * 2018-01-30 2019-08-08 Sharp Kabushiki Kaisha Systems and methods for performing motion vector prediction for video coding using motion vector predictor origins
US11470346B2 (en) * 2018-05-09 2022-10-11 Sharp Kabushiki Kaisha Systems and methods for performing motion vector prediction using a derived set of motion vectors
WO2019221103A1 (ja) 2018-05-17 2019-11-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
CN110662072B (zh) * 2018-06-29 2022-04-26 杭州海康威视数字技术股份有限公司 运动信息候选者列表构建方法、装置及可读存储介质
US10715812B2 (en) * 2018-07-13 2020-07-14 Tencent America LLC Method and apparatus for video coding
EP3855738A4 (en) * 2018-09-17 2022-07-20 Samsung Electronics Co., Ltd. METHOD FOR ENCODING AND DECODING MOTION INFORMATION AND APPARATUS FOR ENCODING AND DECODING MOTION INFORMATION
US11758164B2 (en) * 2018-10-23 2023-09-12 Tencent America LLC Method and apparatus for video coding
WO2020117016A1 (ko) * 2018-12-06 2020-06-11 엘지전자 주식회사 인터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
CA3190343A1 (en) * 2018-12-12 2020-06-18 Lg Electronics Inc. Method and apparatus for processing video signal based on history based motion vector prediction
US11196988B2 (en) 2018-12-17 2021-12-07 Apple Inc. Reference picture management and list construction
CN112470476A (zh) * 2018-12-28 2021-03-09 Jvc建伍株式会社 图像编码装置、图像编码方法、图像编码程序、图像解码装置、图像解码方法及图像解码程序
WO2020139184A1 (en) * 2018-12-28 2020-07-02 Telefonaktiebolaget Lm Ericsson (Publ) Generating a motion vector predictor list
US11032574B2 (en) 2018-12-31 2021-06-08 Tencent America LLC Method and apparatus for video coding
WO2020187062A1 (zh) * 2019-03-18 2020-09-24 华为技术有限公司 用于融合运动矢量差技术的优化方法、装置及编解码器
CN111726617B (zh) * 2019-03-18 2024-03-15 华为技术有限公司 用于融合运动矢量差技术的优化方法、装置及编解码器
US11528504B2 (en) * 2019-07-11 2022-12-13 Qualcomm Incorporated Motion vector prediction with motion information collecting buffer

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3621742B2 (ja) * 1995-03-20 2005-02-16 新日本製鐵株式会社 加熱硬化型塗料の加熱鋼管への塗装方法
JP4150742B2 (ja) 2002-01-09 2008-09-17 松下電器産業株式会社 動きベクトル復号化方法
JP2004007379A (ja) * 2002-04-10 2004-01-08 Toshiba Corp 動画像符号化方法及び動画像復号化方法
WO2004008775A1 (ja) * 2002-07-15 2004-01-22 Hitachi, Ltd. 動画像符号化方法及び復号化方法
JP3879741B2 (ja) * 2004-02-25 2007-02-14 ソニー株式会社 画像情報符号化装置および画像情報符号化方法
US8761259B2 (en) * 2005-09-22 2014-06-24 Qualcomm Incorporated Multi-dimensional neighboring block prediction for video encoding
EP2079242A4 (en) * 2006-10-30 2010-11-03 Nippon Telegraph & Telephone METHOD FOR GENERATING PREDICTIVE REFERENCE INFORMATION, DYNAMIC IMAGE ENCODING AND DECODING METHOD, DEVICE THEREOF, PROGRAM THEREOF, AND STORAGE MEDIUM CONTAINING THE PROGRAM
JP2009164880A (ja) * 2008-01-07 2009-07-23 Mitsubishi Electric Corp トランスコーダ及び受信機
JP5422168B2 (ja) * 2008-09-29 2014-02-19 株式会社日立製作所 動画像符号化方法および動画像復号化方法
TW201130311A (en) * 2009-06-10 2011-09-01 Panasonic Corp Image encoding method, image decoding method, and devices therefor
KR101452859B1 (ko) * 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
KR101768207B1 (ko) * 2010-01-19 2017-08-16 삼성전자주식회사 축소된 예측 움직임 벡터의 후보들에 기초해 움직임 벡터를 부호화, 복호화하는 방법 및 장치
US9485518B2 (en) 2011-05-27 2016-11-01 Sun Patent Trust Decoding method and apparatus with candidate motion vectors
CA2834191C (en) * 2011-05-31 2019-04-09 Panasonic Corporation Video encoding method, video encoding device, video decoding method, video decoding device, and video encoding/decoding device
EP2723076A4 (en) * 2011-06-14 2015-03-04 Samsung Electronics Co Ltd METHOD AND APPARATUS FOR ENCODING MOVEMENT INFORMATION, AND METHOD AND APPARATUS FOR DECODING THE SAME
JP5488666B2 (ja) 2011-09-28 2014-05-14 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
WO2013108613A1 (ja) 2012-01-17 2013-07-25 パナソニック株式会社 動画像符号化方法、動画像復号化方法、動画像符号化装置、動画像復号化装置および動画像符号化復号化装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016137149A1 (ko) * 2015-02-24 2016-09-01 엘지전자(주) 폴리곤 유닛 기반 영상 처리 방법 및 이를 위한 장치
US10856001B2 (en) 2015-02-24 2020-12-01 Lg Electronics Inc. Polygon unit-based image processing method, and device for same
KR20190008214A (ko) * 2016-05-13 2019-01-23 퀄컴 인코포레이티드 비디오 코딩을 위한 모션 벡터 예측용 병합 후보들
KR20210122887A (ko) * 2016-05-13 2021-10-12 퀄컴 인코포레이티드 비디오 코딩을 위한 모션 벡터 예측용 병합 후보들

Also Published As

Publication number Publication date
TWI577184B (zh) 2017-04-01
KR101617974B1 (ko) 2016-05-03
US9661343B2 (en) 2017-05-23
BR112014007492A2 (pt) 2017-04-04
TW201626802A (zh) 2016-07-16
US20140205014A1 (en) 2014-07-24
TWI586155B (zh) 2017-06-01
BR112014007492B1 (pt) 2023-01-10
TWI562616B (ko) 2016-12-11
KR101809881B1 (ko) 2017-12-15
TW201703532A (zh) 2017-01-16
US9924194B2 (en) 2018-03-20
TWI575945B (zh) 2017-03-21
US9866865B2 (en) 2018-01-09
US20170230683A1 (en) 2017-08-10
TWI523496B (zh) 2016-02-21
KR20170021922A (ko) 2017-02-28
US20160269744A1 (en) 2016-09-15
KR101809879B1 (ko) 2017-12-15
US20170230682A1 (en) 2017-08-10
TW201322773A (zh) 2013-06-01
US20170238006A1 (en) 2017-08-17
KR101711355B1 (ko) 2017-02-28
US9866864B2 (en) 2018-01-09
KR20160054021A (ko) 2016-05-13
TW201703534A (zh) 2017-01-16
TW201703533A (zh) 2017-01-16
US9674549B2 (en) 2017-06-06
KR20170023204A (ko) 2017-03-02
KR20170023203A (ko) 2017-03-02
KR101809880B1 (ko) 2017-12-15

Similar Documents

Publication Publication Date Title
KR101617974B1 (ko) 동영상 인코딩 장치, 동영상 인코딩 방법, 동영상 인코딩 프로그램, 송신 장치, 송신 방법 및 송신 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법, 동영상 디코딩 프로그램, 수신 장치, 수신 방법 및 수신 프로그램
JP5884937B1 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法、及び送信プログラム
WO2013099244A1 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、並びに動画像復号装置、動画像復号方法及び動画像復号プログラム
JP5488666B2 (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
JP2013132046A (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP5747816B2 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP5962877B1 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP2013131918A (ja) 動画像復号装置、動画像復号方法及び動画像復号プログラム
JP5617834B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
WO2013046707A1 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム、並びに動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
JP5962876B1 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP5962875B1 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP6037061B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP2013131917A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2013110575A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2013110576A (ja) 動画像復号装置、動画像復号方法及び動画像復号プログラム
JP2013192081A (ja) 動画像復号装置、動画像復号方法及び動画像復号プログラム
JP2013192080A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2013132047A (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法、及び送信プログラム

Legal Events

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