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

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

Info

Publication number
KR20140019448A
KR20140019448A KR1020137034609A KR20137034609A KR20140019448A KR 20140019448 A KR20140019448 A KR 20140019448A KR 1020137034609 A KR1020137034609 A KR 1020137034609A KR 20137034609 A KR20137034609 A KR 20137034609A KR 20140019448 A KR20140019448 A KR 20140019448A
Authority
KR
South Korea
Prior art keywords
motion vector
prediction
prediction block
encoding
block
Prior art date
Application number
KR1020137034609A
Other languages
English (en)
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 JP2011122770A external-priority patent/JP5477340B2/ja
Priority claimed from JP2011122771A external-priority patent/JP5252029B2/ja
Application filed by 가부시키가이샤 제이브이씨 켄우드 filed Critical 가부시키가이샤 제이브이씨 켄우드
Publication of KR20140019448A publication Critical patent/KR20140019448A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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
    • 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

Landscapes

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

Abstract

예측 움직임 벡터 후보 생성부(120)는, 인코딩 대상 예측 블록과 동일 픽처 내의 인코딩 대상 예측 블록과 인접하는 제1의 인코딩 완료된 예측 블록, 및 인코딩 대상 예측 블록과는 상이한 픽처 내의 인코딩 대상 예측 블록과 동일 또는 주변의 위치에 있는 제2의 인코딩 완료된 예측 블록 중의 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 도출하고, 도출한 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록한다. 예측 움직임 벡터 후보 생성부(120)는, 설정된 수의 예측 움직임 벡터의 후보를 얻기 위해, 제1의 인코딩 완료된 예측 블록 중의 어느 예측 블록의 움직임 벡터가 예측 움직임 벡터의 후보를 도출하기 위한 움직임 벡터가 되는지의 판정을 우선 순서를 매겨 진행한다.

Description

동영상 인코딩 장치, 동영상 인코딩 방법 및 동영상 인코딩 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램{MOVING IMAGE ENCODING DEVICE, MOVING IMAGE ENCODING METHOD AND MOVING IMAGE ENCODING PROGRAM, AS WELL AS MOVING IMAGE DECODING DEVICE, MOVING IMAGE DECODING METHOD AND MOVING IMAGE DECODING 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 예측의 각각의 인터 예측된 신호에 가중 계수(weighting factor)를 곱셈하고, 오프셋값을 가산하여 중첩하여, 최종적인 인터 예측 신호를 생성한다. 가중 예측에 사용하는 가중 계수 및 오프셋값은 픽처 단위로 각 리스트의 참조 픽처마다 대표적인 값이 설정되어, 인코딩된다. 인터 예측에 관한 인코딩 정보에는, 블록마다, L0 예측과 L1 예측, 쌍예측을 구별하는 예측 모드, 블록마다의 참조 리스트마다, 참조 픽처를 특정하는 참조 인덱스, 블록의 이동 방향·이동량을 나타내는 움직임 벡터가 있고, 이들의 인코딩 정보를 인코딩·디코딩한다.
움직임 보상을 하는 동영상 인코딩 방식에서는, 각 블록에서 생성되는 움직임 벡터의 부호량을 삭감하기 위해, 움직임 벡터에 대해 예측 처리가 진행된다. MPEG-4 AVC/H.264에서는, 인코딩 대상의 움직임 벡터가 주위의 인접 블록의 움직임 벡터와 강한 상관이 있는 것을 이용하여, 주위의 인접 블록으로부터의 예측을 하는 것에 의해 예측 움직임 벡터를 도출(derivation)하고, 인코딩 대상의 움직임 벡터와 예측 움직임 벡터의 차분인 차분 움직임 벡터를 도출하고, 그 차분 움직임 벡터를 인코딩하는 것에 의해 부호량을 삭감하고 있다.
구체적으로는, 도 48(a)에 도시되는 바와 같이, 주위의 인접 블록 A, B, C의 움직임 벡터로부터 중간치를 도출하여 예측 움직임 벡터로 하고, 움직임 벡터와 그 예측 움직임 벡터의 차분을 취하는 것에 의해 움직임 벡터의 부호량을 삭감하고 있다(비특허문헌 1). 단, 도 48(b)와 같이 인코딩 대상 블록과 인접 블록의 형상이 상이한 경우에는, 좌측 옆에 복수의 인접 블록이 있을 때는 그 중의 가장 위의 블록을, 상측에 복수의 인접 블록이 있을 때는 그 중의 가장 좌측의 블록을 예측 블록으로 하고, 도 48(c), (d)와 같이 인코딩 대상 블록이 16×8화소 혹은 8×16화소로 분할되는 경우에는, 주위의 인접 블록의 움직임 벡터의 중간치를 취하는 것이 아닌, 움직임 보상 블록의 배치에 상응하여 도 48(c), (d)의 흰색 화살표로 나타내는 바와 같이 분할된 영역마다 참조처의 예측 블록을 결정하고, 결정된 예측 블록의 움직임 벡터로부터 예측을 실시한다.
ISO/IEC 14496-10 Information technology -- Coding of audio-visual objects -- Part 10: Advanced Video Coding
하지만, 비특허문헌 1에 기재된 방법에서는, 예측 벡터는 하나밖에 얻을 수 없기 때문에, 화상에 따라서는 예측 움직임 벡터의 예측 정밀도가 저하되고, 인코딩 효율이 양호하지 못한 경우도 있었다.
이와 같은 상황하에서, 본 발명자들은, 움직임 보상 예측을 사용하는 화상 인코딩 방식에 있어서, 인코딩 정보를 더욱 압축하여, 전체의 부호량을 삭감할 필요성을 인식하게 되었다.
본 발명은 이와 같은 상황하에서 이루어진 것으로서, 그 목적은, 예측 움직임 벡터의 후보를 도출(derive)하는 것에 의해, 차분 움직임 벡터의 부호량의 삭감을 실현하여 인코딩 효율을 향상시키는 동영상 인코딩 및 디코딩 기술을 제공하는 것에 있다. 또한, 다른 목적은, 인코딩 정보의 후보를 도출하는 것에 의해, 인코딩 정보의 부호량의 삭감을 실현하여 인코딩 효율을 향상시키는 동영상 인코딩 및 디코딩 기술을 제공하는 것에 있다.
상기 과제를 해결하기 위해, 본 발명의 일 태양에 따른 동영상 인코딩 장치는, 동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상을 인코딩하는 동영상 인코딩 장치이고, 인코딩 대상 예측 블록과 동일 픽처 내의 상기 인코딩 대상 예측 블록과 인접하는 제1의 인코딩 완료된 예측 블록, 및 상기 인코딩 대상 예측 블록과는 상이한 픽처 내의 상기 인코딩 대상 예측 블록과 동일 또는 주변의 위치에 있는 제2의 인코딩 완료된 예측 블록 중의 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 도출하고, 도출한 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성부(120, 121); 상기 예측 움직임 벡터 후보 리스트에서 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택부(124); 상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 선택된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩부(109)를 구비한다. 상기 예측 움직임 벡터 후보 생성부(120, 121)는, 설정된 수의 예측 움직임 벡터의 후보를 얻기 위해, 상기 제1의 인코딩 완료된 예측 블록 중의 어느 예측 블록의 움직임 벡터가 예측 움직임 벡터의 후보를 도출하기 위한 움직임 벡터가 되는지의 판정을 우선 순서를 매겨 진행할 때, 좌측의 인접 블록 그룹, 및 상측의 인접 블록 그룹의 인접 블록 그룹마다 소정 순서의 각 예측 블록에 대해, 조건 1. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함; 조건 2. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함; 조건 3. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함; 조건 4. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함, 의 각 조건의 판정을, 먼저, 조건 1, 2에 대해 그 조건 1, 2의 우선 순서로 각 예측 블록에 대해 진행하고, 그 다음에 조건 3, 4에 대해 그 조건 3, 4의 우선 순서로 각 예측 블록에 대해 진행한다.
본 발명의 다른 태양은, 동영상 인코딩 방법이다. 이 방법은, 동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상을 인코딩하는 동영상 인코딩 방법이고, 인코딩 대상 예측 블록과 동일 픽처 내의 상기 인코딩 대상 예측 블록과 인접하는 제1의 인코딩 완료된 예측 블록, 및 상기 인코딩 대상 예측 블록과는 상이한 픽처 내의 상기 인코딩 대상 예측 블록과 동일 또는 주변의 위치에 있는 제2의 인코딩 완료된 예측 블록 중의 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 도출하고, 도출한 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성 단계; 상기 예측 움직임 벡터 후보 리스트에서 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택 단계; 상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 선택된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩 단계를 포함한다. 상기 예측 움직임 벡터 후보 생성 단계는, 설정된 수의 예측 움직임 벡터의 후보를 얻기 위해, 상기 제1의 인코딩 완료된 예측 블록 중의 어느 예측 블록의 움직임 벡터가 예측 움직임 벡터의 후보를 도출하기 위한 움직임 벡터가 되는지의 판정을 우선 순서를 매겨 진행할 때, 좌측의 인접 블록 그룹, 및 상측의 인접 블록 그룹의 인접 블록 그룹마다 소정 순서의 각 예측 블록에 대해, 조건 1. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함; 조건 2. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함; 조건 3. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함; 조건 4. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함, 의 각 조건의 판정을, 먼저, 조건 1, 2에 대해 그 조건 1, 2의 우선 순서로 각 예측 블록에 대해 진행하고, 그 다음에 조건 3, 4에 대해 그 조건 3, 4의 우선 순서로 각 예측 블록에 대해 진행한다.
본 발명의 일 태양에 따른 동영상 디코딩 장치는, 동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 장치이고, 디코딩 대상 예측 블록과 동일 픽처 내의 상기 디코딩 대상 예측 블록과 인접하는 제1의 디코딩 완료된 예측 블록, 및 상기 디코딩 대상 예측 블록과는 상이한 픽처 내의 상기 디코딩 대상 예측 블록과 동일 또는 주변의 위치에 있는 제2의 디코딩 완료된 예측 블록 중의 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 도출하고, 도출한 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성부(220, 221); 상기 예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩부(202); 디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트에서 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택부(223)를 구비한다. 상기 예측 움직임 벡터 후보 생성부(220, 221)는, 설정된 수의 예측 움직임 벡터의 후보를 얻기 위해, 상기 제1의 디코딩 완료된 예측 블록 중의 어느 예측 블록의 움직임 벡터가 예측 움직임 벡터의 후보를 도출하기 위한 움직임 벡터가 되는지의 판정을 우선 순서를 매겨 진행할 때, 좌측의 인접 블록 그룹, 및 상측의 인접 블록 그룹의 인접 블록 그룹마다 소정 순서의 각 예측 블록에 대해, 조건 1. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함; 조건 2. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함; 조건 3. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함; 조건 4. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함, 의 각 조건의 판정을, 먼저, 조건 1, 2에 대해 그 조건 1, 2의 우선 순서로 각 예측 블록에 대해 진행하고, 그 다음에 조건 3, 4에 대해 그 조건 3, 4의 우선 순서로 각 예측 블록에 대해 진행한다.
본 발명의 또 다른 태양은, 동영상 디코딩 방법이다. 이 방법은, 동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 방법이고, 디코딩 대상 예측 블록과 동일 픽처 내의 상기 디코딩 대상 예측 블록과 인접하는 제1의 디코딩 완료된 예측 블록, 및 상기 디코딩 대상 예측 블록과는 상이한 픽처 내의 상기 디코딩 대상 예측 블록과 동일 또는 주변의 위치에 있는 제2의 디코딩 완료된 예측 블록 중의 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 도출하고, 도출한 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성 단계; 상기 예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩 단계; 디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트에서 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택 단계를 포함한다. 상기 예측 움직임 벡터 후보 생성 단계는, 설정된 수의 예측 움직임 벡터의 후보를 얻기 위해, 상기 제1의 디코딩 완료된 예측 블록 중의 어느 예측 블록의 움직임 벡터가 예측 움직임 벡터의 후보를 도출하기 위한 움직임 벡터가 되는지의 판정을 우선 순서를 매겨 진행할 때, 좌측의 인접 블록 그룹, 및 상측의 인접 블록 그룹의 인접 블록 그룹마다 소정 순서의 각 예측 블록에 대해, 조건 1. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함; 조건 2. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함; 조건 3. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함; 조건 4. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함, 의 각 조건의 판정을, 먼저, 조건 1, 2에 대해 그 조건 1, 2의 우선 순서로 각 예측 블록에 대해 진행하고, 그 다음에 조건 3, 4에 대해 그 조건 3, 4의 우선 순서로 각 예측 블록에 대해 진행한다.
또한, 이상의 구성 요소의 임의의 조합, 본 발명의 표현을 방법, 장치, 시스템, 기록 매체, 컴퓨터 프로그램 등의 사이에서 변환한 것도, 본 발명의 태양으로서 유효하다.
본 발명에 의하면, 복수의 예측 움직임 벡터를 도출하고, 그들의 복수의 예측 움직임 벡터 중에서 최적의 예측 움직임 벡터를 선택하고, 차분 움직임 벡터의 발생 부호량을 삭감시켜, 인코딩 효율을 향상시킬 수 있다. 또한, 본 발명에 의하면, 복수의 인코딩 정보의 후보를 도출하고, 그들의 복수의 인코딩 정보 중에서 최적의 움직임 정보를 선택하고, 전송하는 인코딩 정보의 발생 부호량을 삭감시켜, 인코딩 효율을 향상시킬 수 있다.
도 1은 실시형태에 따른 움직임 벡터의 예측 방법을 실행하는 동영상 인코딩 장치의 구성을 나타내는 블록도이다.
도 2는 실시형태에 따른 움직임 벡터의 예측 방법을 실행하는 동영상 디코딩 장치의 구성을 나타내는 블록도이다.
도 3은 인코딩 블록을 설명하는 도면이다.
도 4는 예측 블록의 형상의 종류를 설명하는 도면이다.
도 5는 예측 블록 그룹을 설명하는 도면이다.
도 6은 예측 블록 그룹을 설명하는 도면이다.
도 7은 예측 블록 그룹을 설명하는 도면이다.
도 8은 예측 블록 그룹을 설명하는 도면이다.
도 9는 예측 블록 그룹을 설명하는 도면이다.
도 10은 움직임 벡터의 예측 방법에 관한 슬라이스 레벨에서의 비트 스트림의 신택스를 설명하는 도면이다.
도 11은 움직임 벡터의 예측 방법에 관한 예측 블록 수준에서의 비트 스트림의 신택스를 설명하는 도면이다.
도 12는 도 1의 차분 움직임 벡터 도출부의 상세한 구성을 나타내는 블록도이다.
도 13은 도 2의 움직임 벡터 도출부의 상세한 구성을 나타내는 블록도이다.
도 14는 도 1의 차분 움직임 벡터 도출부의 동작을 설명하는 플로차트이다.
도 15는 도 2의 움직임 벡터 도출부의 동작을 설명하는 플로차트이다.
도 16은 움직임 벡터의 예측 방법을 설명하는 플로차트이다.
도 17은 예측 움직임 벡터의 후보 도출 방법을 설명하는 플로차트이다.
도 18은 예측 움직임 벡터의 후보 도출 방법을 설명하는 플로차트이다.
도 19는 예측 움직임 벡터의 후보 도출 방법을 설명하는 플로차트이다.
도 20은 예측 움직임 벡터의 후보 도출 방법을 설명하는 플로차트이다.
도 21은 예측 움직임 벡터의 후보 도출 방법을 설명하는 플로차트이다.
도 22는 움직임 벡터의 스케일링 방법을 설명하는 플로차트이다.
도 23은 움직임 벡터의 스케일링을 설명하는 도면이다.
도 24는 예측 움직임 벡터의 후보 도출 방법을 설명하는 플로차트이다.
도 25는 예측 움직임 벡터의 후보 도출 방법을 설명하는 플로차트이다.
도 26은 예측 움직임 벡터의 후보 도출 방법을 설명하는 플로차트이다.
도 27은 예측 움직임 벡터의 후보 도출 방법을 설명하는 플로차트이다.
도 28은 예측 움직임 벡터의 후보 도출 방법을 설명하는 플로차트이다.
도 29는 예측 움직임 벡터의 후보 도출 방법을 설명하는 플로차트이다.
도 30은 예측 움직임 벡터 후보 리스트로의 예측 움직임 벡터의 후보 등록 방법을 설명하는 플로차트이다.
도 31은 예측 움직임 벡터 후보 리스트로의 예측 움직임 벡터의 후보 등록 방법을 설명하는 플로차트이다.
도 32는 예측 움직임 벡터 후보 리스트로의 예측 움직임 벡터의 후보 등록 방법을 설명하는 플로차트이다.
도 33은 예측 움직임 벡터 후보 리스트로의 예측 움직임 벡터의 후보 등록 방법을 설명하는 플로차트이다.
도 34는 예측 움직임 벡터 후보 리스트로의 예측 움직임 벡터의 후보 등록 방법을 설명하는 플로차트이다.
도 35는 예측 움직임 벡터 후보 리스트로의 예측 움직임 벡터의 후보 등록 방법을 설명하는 플로차트이다.
도 36은 예측 움직임 벡터 후보 리스트로의 예측 움직임 벡터의 후보 등록 방법을 설명하는 플로차트이다.
도 37은 머지·모드에서의 주변의 예측 블록을 설명하는 도면이다.
도 38은 도 1의 인터 예측 정보 추정부의 상세한 구성을 나타내는 블록도이다.
도 39는 도 2의 인터 예측 정보 추정부의 상세한 구성을 나타내는 블록도이다.
도 40은 머지·모드의 동작을 설명하는 플로차트이다.
도 41은 머지·모드의 동작을 설명하는 플로차트이다.
도 42는 머지·모드의 동작을 설명하는 플로차트이다.
도 43은 머지·모드의 동작을 설명하는 플로차트이다.
도 44는 머지·모드의 동작을 설명하는 플로차트이다.
도 45는 머지·모드의 동작을 설명하는 플로차트이다.
도 46은 머지·모드의 동작을 설명하는 플로차트이다.
도 47은 머지·모드의 동작을 설명하는 플로차트이다.
도 48은 종래의 예측 움직임 벡터의 도출 방법을 설명하는 도면이다.
실시형태에서는, 동영상의 인코딩에 관하여, 특히 픽처를 직사각형 블록으로 분할하고, 픽처 간에서 블록 단위로 움직임 보상을 하는 동영상 인코딩에 있어서의 인코딩 효율을 향상시키기 위해, 인코딩 완료된 주위의 블록의 움직임 벡터로부터 복수의 예측 움직임 벡터를 도출하고, 인코딩 대상의 블록의 움직임 벡터와 선택된 예측 움직임 벡터의 차분 벡터를 도출하여 인코딩하는 것에 의해 부호량을 삭감한다. 혹은, 인코딩 완료된 주위의 블록의 인코딩 정보를 사용하는 것에 의해, 인코딩 대상 블록의 인코딩 정보를 추정하는 것에 의해 부호량을 삭감한다. 또한, 동영상의 디코딩의 경우에는, 디코딩 완료된 주위의 블록의 움직임 벡터로부터 복수의 예측 움직임 벡터를 도출하고, 인코딩 스트림으로부터 디코딩된 차분 벡터와 선택된 예측 움직임 벡터로부터 디코딩 대상의 블록의 움직임 벡터를 도출하여 디코딩한다. 혹은, 디코딩 완료된 주위의 블록의 인코딩 정보를 사용하는 것에 의해, 디코딩 대상 블록의 인코딩 정보를 추정한다.
도 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)에 기억되어 있는 이미 인코딩된 화상 신호의 인코딩 정보를 사용하여, 복수의 예측 움직임 벡터의 후보를 도출하여 후술하는 MVP 리스트에 등록하고, MVP 리스트에 등록된 복수의 예측 움직임 벡터의 후보 중에서 최적의 예측 움직임 벡터를 선택하여, 움직임 벡터 검출부(102)가 검출한 움직임 벡터와 예측 움직임 벡터로부터 차분 움직임 벡터를 도출하고, 도출된 차분 움직임 벡터를 예측 방법 결정부(106)에 공급한다. 이들의 인코딩 정보에 더하여, 후술하는 바와 같이 예측 블록마다 가중 예측에 사용하는 가중 파라미터를 전환하는 경우에는, 선택된 예측 블록의 가중 예측의 가중 파라미터(움직임 보상 화상 신호에 곱셈하는 가중 계수값 및 가산하는 가중 오프셋값)도 예측 방법 결정부(106)에 공급한다. 또한, MVP 리스트에 등록된 예측 움직임 벡터의 후보로부터 선택된 예측 움직임 벡터를 특정하는 MVP 인덱스를 예측 방법 결정부(106)에 공급한다. 차분 움직임 벡터 도출부(103)의 상세한 구성과 동작은 후술한다.
인터 예측 정보 추정부(104)는, 머지 모드(merge mode)의 인터 예측 정보를 추정한다. 머지 모드란, 해당 예측 블록의 예측 모드, 참조 인덱스(참조 리스트에 등록되어 있는 복수의 참조 화상으로부터 움직임 보상 예측에 이용하는 참조 화상을 특정하기 위한 정보), 움직임 벡터 등의 인터 예측 정보를 인코딩하는 것이 아닌, 인코딩 완료된 인접하는 인터 예측된 예측 블록, 혹은 상이한 화상의 인터 예측된 예측 블록의 인터 예측 정보를 사용하는 모드이다. 인코딩 정보 저장 메모리(114)에 기억되어 있는 이미 인코딩된 예측 블록의 인코딩 정보를 사용하여, 복수의 머지 후보(인터 예측 정보의 후보)을 도출하여 후술하는 머지 후보 리스트에 등록하고, 머지 후보 리스트에 등록된 복수의 머지 후보 중에서 최적인 머지 후보를 선택하여, 선택된 머지 후보의 예측 모드, 참조 인덱스, 움직임 벡터 등의 인터 예측 정보를 움직임 보상 예측부(105)에 공급하는 한편, 선택된 머지 후보를 특정하는 머지 인덱스를 예측 방법 결정부(106)에 공급한다. 이들의 인코딩 정보에 더하여, 후술하는 바와 같이 예측 블록마다 가중 파라미터를 전환하는 경우에는, 선택된 머지 후보의 가중 예측의 가중 파라미터도 움직임 보상 예측부(105)에 공급한다. 또한, 선택된 머지 후보를 특정하는 머지 인덱스를 예측 방법 결정부(106)에 공급한다. 또한, 이들의 인코딩 정보에 더하여, 선택된 인코딩 완료된 예측 블록의 양자화의 양자화 파라미터 등의 인코딩 정보도 예측값으로서 이용할 수 있고, 예측하는 경우에는 예측하는 인코딩 정보를 예측 방법 결정부(106)에 공급한다. 인터 예측 정보 추정부(104)의 상세한 구성과 동작은 후술한다.
움직임 보상 예측부(105)는, 움직임 벡터 검출부(102) 및 인터 예측 정보 추정부(104)에 의해 검출된 움직임 벡터를 사용하여 참조 픽처로부터 움직임 보상 예측에 의해 예측 화상 신호를 생성하고, 예측 화상 신호를 예측 방법 결정부(106)에 공급한다. 또한, 주로 전방향의 예측으로서 사용되는 L0 예측, 및 주로 후방향의 예측으로서 사용되는 L1 예측에서는, 단방향의 예측을 한다. 쌍예측의 경우에는, 양방향의 예측을 하고, 주로 전방향의 예측으로서 사용되는 L0 예측, 주로 후방향의 예측으로서 사용되는 L1 예측의 각각의 인터 예측된 신호에 적응적으로 가중 계수를 곱셈하고, 오프셋값을 가산하여 중첩하고, 최종적인 예측 화상 신호를 생성한다. 또한, 가중 예측에 사용하는 가중 계수, 오프셋값으로 이루어지는 가중 파라미터는 픽처 단위로 전환해도 좋고, 슬라이스 단위로 전환해도 좋고, 예측 블록 단위로 전환해도 좋다. 이 가중 파라미터는, 픽처 단위 또는 슬라이스 단위로 전환하는 경우, 픽처 단위 또는 슬라이스 단위로 각 리스트의 참조 픽처마다 대표적인 값이 설정되어 인코딩된다. 예측 블록 단위로 전환하는 경우, 예측 블록 단위에 가중 파라미터가 설정되어 인코딩된다.
예측 방법 결정부(106)는 차분 움직임 벡터의 부호량, 움직임 보상 예측 신호와 화상 신호 사이의 변형량 등을 평가하는 것에 의해, 복수의 예측 방법 중에서, 최적의 예측 블록 사이즈(예측 블록 사이즈에 대해서는 도 4를 참조하여 후술한다), 예측 모드, 머지 모드인지 여부 등의 예측 방법을 결정하고, 결정된 예측 방법을 나타내는 정보, 및 결정된 예측 방법에 따른 차분 움직임 벡터 등을 포함하는 인코딩 정보를 제1의 인코딩 비트열 생성부(109)에 공급한다. 또한, 필요에 따라 가중 예측을 할 때 사용하는 가중 파라미터, 양자화/역양자화를 할 때 사용하는 양자화 파라미터의 인코딩 정보의 예측값도 제1의 인코딩 비트열 생성부(109)에 공급한다.
또한, 예측 방법 결정부(106)는, 결정된 예측 방법을 나타내는 정보, 및 결정된 예측 방법에 따른 움직임 벡터 등을 포함하는 인코딩 정보를 인코딩 정보 저장 메모리(114)에 저장한다. 또한, 필요에 따라 예측 방법 결정부(106)로부터 공급되는 가중 예측의 가중 파라미터를 인코딩 정보 저장 메모리(114)에 저장한다. 예측 방법 결정부(106)는, 결정된 예측 모드에 따른 움직임 보상 예측 화상 신호를 잔차 신호 생성부(107)와 디코딩 화상 신호 중첩부(113)에 부여한다.
잔차 신호 생성부(107)는, 인코딩하는 화상 신호와 예측 신호의 뺄셈을 하여 잔차 신호를 생성하고, 직교 변환·양자화부(108)에 부여한다.
직교 변환·양자화부(108)는, 잔차 신호에 대해 양자화 파라미터에 상응하여 직교 변환 및 양자화를 진행하여 직교 변환·양자화된 잔차 신호를 생성하고, 제2의 인코딩 비트열 생성부(110)와 역양자화·역직교 변환부(112)에 공급한다. 또한, 직교 변환·양자화부(108)는, 양자화 파라미터를 인코딩 정보 저장 메모리(114)에 저장한다.
제1의 인코딩 비트열 생성부(109)는, 시퀀스, 픽처, 슬라이스, 인코딩 블록 단위의 정보에 더하여, 예측 블록마다 예측 방법 결정부(106)에 의해 결정된 예측 방법에 따른 인코딩 정보를 인코딩한다. 구체적으로는, 인터 예측인지 여부를 판별하는 파라미터, 인터 예측의 경우, 머지 모드인지 여부를 판별하는 파라미터, 머지 모드의 경우에는 머지·인덱스, 머지 모드가 아닌 경우에는 예측 모드, MVP 인덱스, 차분 움직임 벡터에 관한 정보 등의 인코딩 정보를 후술하는 규정의 신택스 규칙에 따라 인코딩하여 제1의 인코딩 비트열을 생성하고, 다중화부(111)에 공급한다. 또한, 머지 모드의 경우, 후술하는 머지 후보 리스트에 등록되는 머지 후보가 1개인 경우, 머지·인덱스 mergeIdx는 0으로 특정할 수 있기 때문에, 인코딩하지 않는다. 마찬가지로, 머지 모드가 아닌 경우, 후술하는 MVP 리스트에 등록되는 예측 움직임 벡터의 후보가 1개인 경우, MVP 인덱스 mergeIdx는 0으로 특정할 수 있기 때문에, 인코딩하지 않는다.
여기서, MVP 인덱스를 인코딩할 때, MVP 리스트에 있어서 우선 순위가 높은(즉 인덱스 번호가 작은) MVP 인덱스일수록 코드 길이가 짧은 부호를 할당하여 가변장 부호화한다. 마찬가지로, 머지·인덱스를 인코딩할 때, 머지 리스트에 있어서 우선 순위가 높은(즉 인덱스 번호가 작은) 머지·인덱스일수록 코드 길이가 짧은 부호를 할당하여 가변장 부호화한다.
또한, 가중 예측을 예측 블록 단위로 적응적으로 전환하는 경우에는, 머지 모드가 아닌 경우에 예측 방법 결정부(106)로부터 공급되는 가중 예측의 가중 파라미터도 인코딩한다. 양자화의 양자화 파라미터 인코딩 정보의 예측값과 실제로 사용하는 값의 차분을 인코딩한다.
제2의 인코딩 비트열 생성부(110)는, 직교 변환 및 양자화된 잔차 신호를 규정의 신택스 규칙에 따라 엔트로피 인코딩하여 제2의 인코딩 비트열을 생성하고, 다중화부(111)에 공급한다. 다중화부(111)에서, 제1의 인코딩 비트열과 제2의 인코딩 비트열을 규정의 신택스 규칙에 따라 다중화하고, 비트 스트림을 출력한다.
역양자화·역직교 변환부(112)는, 직교 변환·양자화부(108)로부터 공급된 직교 변환·양자화된 잔차 신호를 역양자화 및 역직교 변환하여 잔차 신호를 도출하고, 디코딩 화상 신호 중첩부(113)에 공급한다. 디코딩 화상 신호 중첩부(113)는, 예측 방법 결정부(106)에 의한 결정에 상응한 예측 신호와 역양자화·역직교 변환부(112)에서 역양자화 및 역직교 변환된 잔차 신호를 중첩하여 디코딩 화상을 생성하고, 디코딩 화상 메모리(115)에 저장한다. 또한, 디코딩 화상에 대해 인코딩에 의한 블럭 변형 등의 변형을 감소시키는 필터링 처리를 실시하여, 디코딩 화상 메모리(115)에 저장되는 경우도 있다. 그 경우, 필요에 따라 ALF나 디블로킹 필터(Deblocking Filter) 등의 포스트 필터의 정보를 식별하는 플래그 등의 예측된 인코딩 정보를 인코딩 정보 저장 메모리(114)에 저장한다.
도 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)는, 공급된 인코딩 비트열을 디코딩하여, 시퀀스, 픽처, 슬라이스, 인코딩 블록 단위의 정보, 및, 예측 블록 단위의 인코딩 정보를 얻는다. 구체적으로는, 인터 예측인지 여부를 판별하는 파라미터, 인터 예측인지 여부를 판별하는 파라미터, 머지 모드의 경우에는 머지·인덱스, 머지 모드가 아닌 경우에는 예측 모드, MVP 인덱스, 차분 움직임 벡터 등에 관한 인코딩 정보를 후술하는 규정의 신택스 규칙에 따라 디코딩하고, 인코딩 정보를 움직임 벡터 도출부(204) 또는 인터 예측 정보 추정부(205)와 움직임 보상 예측부(206)에 부여하는 한편 인코딩 정보 저장 메모리(209)에 저장한다. 또한, 머지 모드의 경우, 후술하는 머지 후보 리스트에 등록되는 머지 후보가 1개인 경우, 머지·인덱스 mergeIdx는 0으로 특정할 수 있기 때문에, 인코딩 비트열에는 인코딩되어 있지 않고, mergeIdx를 0으로 한다. 따라서, 머지 모드의 경우, 제1인코딩 비트열 디코딩부(202)에서는, 인터 예측 정보 추정부(205)에서 도출된 머지 후보 리스트에 등록되는 머지 후보의 수가 공급된다. 마찬가지로, 머지 모드가 아닌 경우, 후술하는 MVP 리스트에 등록되는 예측 움직임 벡터의 후보가 1개인 경우, MVP 인덱스 mvpIdx는 0으로 특정할 수 있기 때문에, 인코딩되어 있지 않고, mvpIdx를 0으로 한다. 따라서, 머지 모드가 아닌 경우, 제1인코딩 비트열 디코딩부(202)에서는, 움직임 벡터 도출부(204)에서 도출된 MVP 리스트에 등록되는 예측 움직임 벡터 후보의 수가 공급된다.
제2인코딩 비트열 디코딩부(203)는, 공급된 인코딩 비트열을 디코딩하여 직교 변환·양자화된 잔차 신호를 도출하고, 직교 변환·양자화된 잔차 신호를 역양자화·역직교 변환부(207)에 부여한다.
움직임 벡터 도출부(204)는, 디코딩 대상의 예측 블록이 머지 모드가 아닐 때, 인코딩 정보 저장 메모리(209)에 기억되어 있는 이미 디코딩된 화상 신호의 인코딩 정보를 사용하여, 복수의 예측 움직임 벡터의 후보를 도출하여 후술하는 MVP 리스트에 등록하고, MVP 리스트에 등록된 복수의 예측 움직임 벡터의 후보 중에서, 제1인코딩 비트열 디코딩부(202)에서 디코딩되어 공급되는 인코딩 정보에 상응한 예측 움직임 벡터를 선택하고, 제1인코딩 비트열 디코딩부(202)에서 디코딩된 차분 벡터와 선택된 예측 움직임 벡터로부터 움직임 벡터를 도출하고, 움직임 보상 예측부(206)에 공급하는 한편, 인코딩 정보 저장 메모리(209)에 공급한다. 또한, 움직임 벡터 도출부(204)에서 도출된 MVP 리스트에 등록되는 예측 움직임 벡터 후보의 수를 제1인코딩 비트열 디코딩부(202)에 공급한다. 움직임 벡터 도출부(204)의 상세한 구성과 동작은 후술한다.
인터 예측 정보 추정부(205)는, 디코딩 대상의 예측 블록이 머지 모드일 때, 머지 모드의 인터 예측 정보를 추정한다. 인코딩 정보 저장 메모리(114)에 기억되어 있는 이미 디코딩된 예측 블록의 인코딩 정보를 사용하여, 복수의 머지 후보를 도출하여 후술하는 머지 후보 리스트에 등록하고, 머지 후보 리스트에 등록된 복수의 머지 후보 중에서 제1인코딩 비트열 디코딩부(202)에서 디코딩되어 공급되는 머지 인덱스에 대응한 머지 후보를 선택하고, 선택된 머지 후보의 예측 모드, 참조 인덱스, 예측 움직임 벡터 등의 인터 예측 정보를 움직임 보상 예측부(206)에 공급하는 한편, 인코딩 정보 저장 메모리(209)에 저장한다. 또한, 인터 예측 정보 추정부(205)에서 도출된 머지 후보 리스트에 등록되는 머지 후보의 수를 제1인코딩 비트열 디코딩부(202)에 공급한다. 이들의 인코딩 정보에 더하여, 후술하는 바와 같이 예측 블록마다 가중 파라미터를 전환하는 경우에는, 선택된 머지 후보의 가중 예측의 가중 파라미터도 움직임 보상 예측부(206)에 공급한다. 또한, 선택된 인코딩 완료된 예측 블록의 이들의 인코딩 정보에 더하여, 양자화의 양자화 파라미터의 인터 예측 정보 이외의 인코딩 정보도 예측값으로서 이용할 수 있고, 예측하는 경우에는 예측하는 인코딩 정보를 예측 방법 결정부(106)에 공급할 수도 있다. 인터 예측 정보 추정부(205)의 상세한 구성과 동작은 후술한다.
움직임 보상 예측부(206)는, 움직임 벡터 도출부(204)에서 도출된 움직임 벡터를 사용하여 참조 픽처로부터 움직임 보상 예측에 의해 예측 화상 신호를 생성하고, 예측 화상 신호를 디코딩 화상 신호 중첩부(208)에 공급한다. 또한, 쌍예측의 경우에는, L0 예측, L1 예측의 2개의 움직임 보상 예측 화상 신호에 적응적으로 가중 계수를 곱셈하여 중첩하고, 최종적인 예측 화상 신호를 생성한다.
역양자화·역직교 변환부(207)는, 제1인코딩 비트열 디코딩부(202)에서 디코딩된 직교 변환·양자화된 잔차 신호에 대해 역직교 변환 및 역양자화를 진행하여, 역직교 변환·역양자화된 잔차 신호를 얻는다.
디코딩 화상 신호 중첩부(208)는, 움직임 보상 예측부(206)에서 움직임 보상 예측된 예측 화상 신호와, 역양자화·역직교 변환부(207)에 의해 역직교 변환·역양자화된 잔차 신호를 중첩하는 것에 의해, 디코딩 화상 신호를 디코딩하여, 디코딩 화상 메모리(210)에 저장한다. 디코딩 화상 메모리(210)에 저장할 때는, 디코딩 화상에 대해 인코딩에 의한 블럭 변형 등을 감소시키는 필터링 처리를 실시하여, 디코딩 화상 메모리(210)에 저장되는 경우도 있다.
실시형태에 따른 움직임 벡터의 예측 방법은, 도 1의 동영상 인코딩 장치의 차분 움직임 벡터 도출부(103) 및 도 2의 동영상 디코딩 장치의 움직임 벡터 도출부(204)에서 실시된다.
움직임 벡터의 예측 방법의 실시예를 설명하기 전에, 본 실시예에서 사용하는 용어를 정의한다.
(인코딩 블록에 대해)
실시형태에서는, 도 3에 도시되는 바와 같이, 화면 내를 임의의 동일 사이즈의 직사각형 단위로 균등 분할한다. 이 단위를 트리 블록으로 정의하고, 화상 내에서의 인코딩/디코딩 대상 블록(인코딩에 있어서는 인코딩 대상 블록, 디코딩에 있어서는 디코딩 대상 블록)을 특정하기 위한 어드레스 관리의 기본 단위로 한다. 트리 블록은 화면 내의 텍스처(texture)에 상응하여, 인코딩 처리를 최적으로 하기 위해, 필요에 따라 트리 블록 내를 계층적으로 4분할하여, 블록 사이즈가 작은 블록으로 할 수 있다. 이 블록을 인코딩 블록으로 정의하고, 인코딩 및 디코딩을 할 때의 처리 기본 단위로 한다. 트리 블록은 최대 사이즈의 인코딩 블록이기도 하다. 인코딩 블록을 더 이상 4분할할 수 없는 최소 사이즈가 되는 인코딩 블록을 최소 인코딩 블록이라 부르기로 한다.
(예측 블록에 대해)
화면 내를 블록으로 분할하여 움직임 보상을 하는 경우, 움직임 보상의 블록 사이즈를 더욱 작게 하는 편이, 더 세밀한 예측을 할 수 있기 때문에, 여러개의 블록 형상, 및 사이즈 중에서 최적의 것을 선택하여, 인코딩 블록 내부를 분할하여 움직임 보상을 하는 시스템을 취하고 있다. 이 움직임 보상을 하는 단위를 예측 블록이라 부른다. 도 4에 나타내는 바와 같이, 인코딩 블록 내부를 분할하지 않고 1개의 예측 블록으로 간주한 것(도 4(a))을 2N×2N 분할, 수평 방향으로 2분할하여, 2개의 예측 블록으로 한 것(도 4(b))을 2N×N 분할, 수직 방향으로 분할하여, 2개의 예측 블록으로 한 것(도 4(c)을 N×2N 분할, 수평과 수직의 균등 분할에 의해 2개의 예측 블록으로 한 것(도 4(d)을 N×N 분할로 각각 정의한다.
인코딩 블록 내부에 있어서, 각 예측 블록을 특정하기 위해, 0으로부터 시작하는 번호를, 인코딩 블록 내부에 존재하는 예측 블록에 대해 할당한다. 이 번호를 예측 블록 인덱스 puPartIdx로 정의한다. 도 4의 인코딩 블록의 각 예측 블록 내에 기술된 숫자는, 그 예측 블록의 예측 블록 인덱스 puPartIdx를 나타낸다.
(예측 블록 그룹에 대해)
복수의 예측 블록으로 구성되는 그룹을 예측 블록 그룹으로 정의한다. 도 5는 인코딩/디코딩 대상의 예측 블록과 동일 픽처 내에서 그 인코딩/디코딩 대상의 예측 블록에 인접하는 예측 블록 그룹을 설명하는 도면이다. 도 9는 인코딩/디코딩 대상의 예측 블록과 시간적으로 상이한 픽처에 있어서, 인코딩/디코딩 대상의 예측 블록과 동일 위치 혹은 그 근방의 위치에 존재하는 이미 인코딩/디코딩 완료된 예측 블록 그룹을 설명하는 도면이다. 도 5, 도 6, 도 7, 도 8, 도 9를 참조하여 본 발명의 예측 블록 그룹에 대해 설명한다.
인코딩/디코딩 대상의 예측 블록과 동일 픽처 내에서 그 인코딩/디코딩 대상의 예측 블록의 좌측에 인접하는 예측 블록 A1, 인코딩/디코딩 대상의 예측 블록의 좌측 아래에 인접하는 예측 블록 A0, 및 인코딩/디코딩 대상의 예측 블록의 좌측 위에 인접하는 예측 블록 A2(후술의 예측 블록 B2와 동일)로 구성되는 제1의 예측 블록 그룹을 좌측에 인접하는 예측 블록 그룹으로 정의한다.
또한, 도 6에 나타내는 바와 같이, 인코딩/디코딩 대상의 예측 블록의 좌측에 인접하는 예측 블록의 사이즈가 인코딩/디코딩 대상의 예측 블록보다 큰 경우에도, 상기 조건에 따라, 좌측에 인접하는 예측 블록 A가 그 인코딩/디코딩 대상의 예측 블록의 좌측에 인접하고 있으면 예측 블록 A1로 하고, 인코딩/디코딩 대상의 예측 블록의 좌측 아래에 인접하고 있으면 예측 블록 A0으로 하고, 인코딩/디코딩 대상의 예측 블록의 좌측 위에 인접하고 있으면 예측 블록 A2로 한다.
또한, 도 7에 나타내는 바와 같이, 인코딩/디코딩 대상의 예측 블록의 좌측에 인접하는 예측 블록의 사이즈가 인코딩/디코딩 대상의 예측 블록보다 작고, 복수 존재하는 경우에는, 그 중에서 가장 아래의 예측 블록 A10만을 좌측에 인접하는 예측 블록 A1로서 좌측에 인접하는 예측 블록 그룹에 포함시킨다. 단, 그 중에서 가장 위의 예측 블록 A12만을 좌측에 인접하는 예측 블록 A1로서 좌측에 인접하는 예측 블록 그룹에 포함시킬 수도 있고, 가장 아래의 예측 블록 A10과 가장 위의 예측 블록 A12를 모두 좌측에 인접하는 예측 블록 그룹에 포함시켜도 좋고, 좌측에 인접하는 모든 예측 블록 A10, A11, A12를 좌측에 인접하는 예측 블록 그룹에 포함시켜도 좋다. 인코딩/디코딩 대상의 예측 블록과 동일 픽처 내에서 그 인코딩/디코딩 대상의 예측 블록의 상측에 인접하는 예측 블록 B1, 인코딩/디코딩 대상의 예측 블록의 우측 위에 인접하는 예측 블록 B0, 및 인코딩/디코딩 대상의 예측 블록의 좌측 위에 인접하는 예측 블록 B2(예측 블록 A2와 동일)로 구성되는 제2의 예측 블록 그룹을 상측에 인접하는 예측 블록 그룹으로 정의한다.
또한, 도 8에 나타내는 바와 같이, 인코딩/디코딩 대상의 예측 블록의 상측에 인접하는 예측 블록의 사이즈가 인코딩/디코딩 대상의 예측 블록보다 큰 경우에도, 상기 조건에 따라, 상측에 인접하는 예측 블록 B가 그 인코딩/디코딩 대상의 예측 블록의 상측에 인접하고 있으면 예측 블록 B1로 하고, 인코딩/디코딩 대상의 예측 블록의 우측 위에 인접하고 있으면 예측 블록 B0으로 하고, 인코딩/디코딩 대상의 예측 블록의 좌측 위에 인접하고 있으면 예측 블록 B2로 한다.
또한, 도 7에 나타내는 바와 같이, 인코딩/디코딩 대상의 예측 블록의 상측에 인접하는 예측 블록의 사이즈가 작고, 복수 존재하는 경우에는, 그 중에서 가장 우측의 예측 블록 B10만을 상측에 인접하는 예측 블록 B1로서 상측에 인접하는 예측 블록 그룹에 포함시킨다. 단, 그 중에서 가장 좌측의 예측 블록 B12만을 상측에 인접하는 예측 블록 B1로서 상측에 인접하는 예측 블록 그룹에 포함시킬 수도 있고, 가장 우측의 예측 블록 B10과 가장 좌측의 예측 블록 B12를 모두 좌측에 인접하는 예측 블록 그룹에 포함시켜도 좋고, 상측에 인접하는 예측 블록을 모두 상측에 인접하는 예측 블록 그룹에 포함시켜도 좋다.
또한, 우측 위에 인접하는 예측 블록 A2/B2에 관해서는, 좌측에 인접하는 예측 블록 그룹에도 좌측에 인접하는 예측 블록 그룹에도 포함되고, 좌측에 인접하는 예측 블록 그룹에 대해 설명하는 경우에는, 예측 블록 A2, 상측에 인접하는 예측 블록 그룹에 대해 설명하는 경우에는, 예측 블록 B2로 한다.
이 방식에 있어서는, 좌측 위에 인접하는 예측 블록을 좌측에 인접하는 예측 블록 그룹과 상측에 인접하는 예측 블록 그룹의 쌍방에 소속시키는 것에 의해, 예측 움직임 벡터의 후보를 찾는 기회를 증가시키고 있다. 병렬 처리를 하는 경우에는, 최대 처리량은 증가하지 않지만, 직렬 처리에서의 처리량의 삭감을 중시하는 경우에는, 좌측 위에 인접하는 예측 블록은 어느 한쪽의 그룹에만 소속시켜도 좋다.
도 9에 나타내는 바와 같이, 인코딩/디코딩 대상의 예측 블록과 시간적으로 상이한 픽처에 있어서, 인코딩/디코딩 대상의 예측 블록과 동일 위치 혹은 그 근방의 위치에 존재하는 이미 인코딩/디코딩 완료된 예측 블록 그룹 T0, T1, T2, T3, 및 T4로 구성되는 제3의 예측 블록 그룹을 상이한 시간의 예측 블록 그룹으로 정의한다.
(참조 리스트에 대해)
인코딩 및 디코딩 시에는 참조 리스트 LX마다의 참조 인덱스로부터 참조 픽처를 지정하여 참조한다. L0과 L1로 2개 준비되어 있고, X에는 0 혹은 1이 들어간다. 참조 리스트 L0에 등록되어 있는 참조 픽처를 참조하는 인터 예측을 L0 예측(Pred_L0)이라 부르고, 참조 리스트 L1에 등록되어 있는 참조 픽처를 참조하는 움직임 보상 예측을 L1 예측(Pred_L1)이라 부른다. 주로 L0 예측은 전방향 예측에, L1 예측은 후방향 예측으로서 사용되고, P슬라이스에서는 L0 예측만, B슬라이스에서는 L0 예측, L1 예측, L0 예측과 L1 예측을 평균 또는 가중 가산하는 쌍예측(Pred_BI)을 사용할 수 있다. 이후의 처리에 있어서 출력에 첨자 LX가 붙어 있는 값에 대해서는, L0 예측, L1 예측마다 처리를 하는 것을 전제로 한다.
(POC에 대해)
POC는 인코딩되는 화상에 관련지어지는 변수로 하고, 출력 순서로 1씩 증가하는 값이 설정되는 것으로 한다. POC의 값에 의해, 동일 화상인지 여부를 판별하거나, 출력 순서에서의 전후관계를 판별하거나, 화상 사이의 거리를 판별할 수 있다. 예를 들면, 2개의 화상 POC가 동일값을 갖는 경우, 동일한 화상인 것에 의해 판단할 수 있다. 2개의 화상 POC가 상이한 값을 갖는 경우, POC의 값이 작은 화상이, 먼저 출력되는 화상인 것에 의해 판단할 수 있고, 2개의 화상의 POC의 차이가 프레임간 거리를 나타낸다.
실시형태에 의한 움직임 벡터의 예측 방법을 도면을 참조하여 설명한다. 움직임 벡터의 예측 방법은, 인코딩 블록을 구성하는 예측 블록 단위에, 인코딩 및 디코딩 처리 모두가 실시된다. 움직임 보상에 의한 화상간 인코딩(인터 예측)이 선택된 경우에, 인코딩의 경우, 인코딩 대상의 움직임 벡터로부터 인코딩하는 차분 움직임 벡터를 도출할 때 사용하는 인코딩 완료된 움직임 벡터를 사용하여 예측 움직임 벡터를 도출할 때, 디코딩의 경우, 디코딩 대상의 움직임 벡터를 도출할 때 사용하는 디코딩 완료된 움직임 벡터를 사용하여 예측 움직임 벡터를 도출할 때 실시된다.
(신택스에 대해)
먼저, 본 실시예에 따른 움직임 벡터의 예측 방법을 구비하는 동영상 인코딩 장치에 의해 인코딩되는 동영상의 비트 스트림 인코딩 및 디코딩의 공통 규칙인 신택스에 대해 설명한다.
도 10은 본 발명에 의해 생성되는 비트 스트림의 슬라이스 단위로 슬라이스 헤더에 기술되는 제1의 신택스 패턴을 나타낸다. 슬라이스 단위로 움직임 보상에 의한 화상간 예측(인터 예측)을 하는 경우, 즉 슬라이스 타입이 P(단방향 예측) 혹은 B(양방향 예측)인 경우에, 인터 예측의 머지 모드가 아닌 예측 블록에 있어서, 동일 픽처 내에서 인접하는 주위의 예측 블록의 움직임 벡터뿐만 아니라, 시간 방향으로 상이한 픽처 중의 처리 대상의 예측 블록과 동일 위치 혹은 근방의 예측 블록의 움직임 벡터를 사용하여 움직임 벡터의 예측을 진행할지 여부를 나타내고, 인터 예측의 머지 모드의 예측 블록에 있어서, 동일 픽처 내에서 인접하는 주위의 예측 블록의 인코딩 정보뿐만 아니라, 시간 방향으로 상이한 픽처 중의 처리 대상의 예측 블록과 동일 위치 혹은 근방의 예측 블록의 인코딩 정보도 이용하여 인터 예측을 진행할지 여부를 나타내는 제1플래그 mv_competition_temporal_flag가 설치된다.
또한, mv_competition_temporal_flag가 참(1)인 경우에는, 인터 예측의 머지 모드가 아닌 예측 블록에 있어서, 시간 방향으로 상이한 픽처 중의 처리 대상의 예측 블록과 동일 위치 또는 근방의 예측 블록의 움직임 벡터의 후보가 우선 순위를 높여서 후술하는 MVP 리스트에 등록되는지 여부를 나타내고, 인터 예측의 머지 모드의 예측 블록에 있어서, 시간 방향으로 상이한 픽처 중의 처리 대상의 예측 블록과 동일 위치 혹은 근방의 머지 후보가 우선 순위를 높여서 후술하는 머지 후보 리스트에 등록되는지 여부를 나타내는 제2플래그 mv_temporal_high_priority_flag가 설치된다. 이 값은 후술의 판정 처리를 간략화하기 위해 참(1) 또는 거짓(0)으로 고정해도 좋지만, 인코딩 효율을 향상시키기 위해 프레임마다 적응적으로 변경하는 것에 의해 더욱 부호량을 삭감한다.
인코딩/디코딩 대상 픽처와 가장 가까운 참조 픽처 사이의 거리가 가까운 경우에는, mv_temporal_high_priority_flag를 참(1)으로 하고, 인코딩/디코딩 대상 화상과 참조 픽처 사이의 거리가 먼 경우에는, 거짓(0)으로 설정하는 것에 의해, 후술하는 MVP 인덱스, 또는 머지·인덱스의 부호량을 삭감할 수 있다. 이 거리가 비교적 작은 경우에는 상이한 시간으로부터의 MVP의 후보 또는 머지의 후보가 후보로서 비교적 적합한 것으로 판단할 수 있기 때문이다. 예를 들면, frame rate가 30Hz인 경우, 인코딩/디코딩 대상 픽처와 가장 가까운 참조 픽처 사이의 거리가 X프레임 이내(X=1~3 정도)인 경우, mv_temporal_high_priority_flag를 참(1)으로 하고, 인코딩/디코딩 대상 화상과 참조 픽처 사이의 거리가 X프레임보다 큰 경우에는, 거짓(0)으로 설정하는 것에 의해, 후술하는 MVP 인덱스, 또는 머지·인덱스의 부호량을 삭감할 수 있다. 이 거리가 작은 경우에는 거리가 큰 경우보다 인터 예측의 신뢰성이 높고, 후보로서 적합한 것으로 판단한다. 이 임계값 X는 시퀀스의 내용에 따라 변경하는 것에 의해, 더욱 부호량을 삭감할 수 있다. 움직임이 크고 복잡한 시퀀스의 경우, 임계값 X를 작게 하는 것에 의해, 시간 방향의 MVP 후보나 머지 후보의 우선 순위를 낮추는 것에 의해, 인코딩 효율을 향상할 수 있다. 또는, 인코딩 처리 과정에서의 통계량을 기초로 하여 우선 순위를 제어할 수도 있다. 인코딩 처리시에 인코딩 완료된 선택수를 각각 카운트하고, 시간 방향으로 상이한 픽처 중의 처리 대상의 예측 블록과 동일 위치의 예측 블록의 움직임 벡터의 후보 또는 머지 후보가 동일 픽처 내에서 좌측 또는 상측에 인접하는 주위의 예측 블록의 움직임 벡터보다 많은 경우, 후속되는 인코딩 대상 화상의 mv_temporal_high_priority_flag를 참(1)으로 하고, 적은 경우, 인코딩/디코딩 대상 화상과 참조 픽처 사이의 거리가 먼 경우에는, 거짓(0)으로 설정하는 것에 의해, 후술하는 MVP 인덱스, 또는 머지·인덱스의 부호량을 삭감할 수 있다.
또한, 슬라이스 타입이 B인 경우에는, 시간 방향의 예측 움직임 벡터의 후보, 또는 머지 후보를 도출할 때 사용하는 시간 방향으로 상이한 픽처 colPic가 처리 대상의 예측 블록이 포함되는 픽처의 L0의 참조 리스트 혹은 L1의 참조 리스트 중의 어느 쪽에 등록되어 있는 참조 화상을 사용할지를 나타내는 제3플래그 collocated_from_l0_flag가 설치된다.
또한, 슬라이스 타입이 P(단방향 예측) 혹은 B(양방향 예측)인 경우에는, 후술하는 MVP 리스트, 또는 머지 후보 리스트 내의 등록 순서를 예측 블록마다 적응적으로 변경할지 여부를 나타내는 제4플래그 mv_list_adaptive_idx_flag가 설치된다.
또한, 이상의 신택스 요소는 픽처 단위로 설정되는 신택스 요소를 기술하는 픽처·파라미터·세트에 설치해도 좋다.
또한, 제1플래그 mv_competition_temporal_flag, 제2플래그 mv_temporal_high_priority_flag, 제3플래그 collocated_from_l0_flag, 제4플래그 mv_list_adaptive_idx_flag는, 각각 머지 모드가 아닌 움직임 벡터 예측용과, 머지 모드용으로 독립한 별개의 플래그를 준비하여, 각각 독립적으로 제어할 수도 있다.
도 11은 예측 블록 단위에 기술되는 신택스 패턴을 나타낸다. 예측 블록의 예측 모드 PredMode의 값이 화상간 예측(인터 예측)을 나타내는 MODE_INTER인 경우, 머지·모드인지 여부를 나타내는 merge_flag[x0][y0]가 설치된다. 여기서, x0, y0은 휘도 신호의 화면 내에서의 예측 블록의 좌측 위의 화소의 위치를 나타내는 인덱스이고, merge_flag[x0][y0]는 화면 내의 (x0, y0)에 위치하는 예측 블록의 머지·모드인지 여부를 나타내는 플래그이다.
다음으로, merge_flag[x0][y0]가 1인 경우, 머지 모드인 것을 나타내고, NumMergeCand가 1개를 넘는 경우에, 참조하는 예측 움직임 벡터의 후보 리스트인 머지 리스트의 인덱스 신택스 요소 merge_idx[x0][y0]가 설치된다. 여기서, x0, y0은 화면 내에서의 예측 블록의 좌측 위의 화소의 위치를 나타내는 인덱스이고, merge_idx[x0][y0]는 화면 내의 (x0, y0)에 위치하는 예측 블록의 머지·인덱스이다. 함수 NumMergeCand는 머지 후보의 수를 나타내고, 후술된다. 이 머지 리스트의 인덱스 신택스 요소 merge_idx[x0][y0]가 머지 후보의 수 NumMergeCand가 1보다 큰 경우에만 인코딩되는 것은, 예측 움직임 벡터의 후보의 총수가 1개이면, 그 1개가 머지 후보가 되기 때문에, merge_idx[x0][y0]를 전송하지 않아도 참조하는 머지 후보가 확정되기 때문이다.
한편, merge_flag[x0][y0]가 0인 경우, 머지 모드가 아닌 것을 나타내고, 슬라이스 타입이 B인 경우, 인터 예측 모드를 식별하는 신택스 요소 inter_pred_flag[x0][y0]가 설치된다. 참조 리스트 LX(X=0 또는 1)마다, 참조 픽처를 특정하기 위한 참조 픽처 인덱스의 신택스 요소 ref_idx_lX[x0][y0], 움직임 벡터 검출에서 구해진 예측 블록의 움직임 벡터와 예측 움직임 벡터의 차분 움직임 벡터의 신택스 요소 mvd_lX[x0][y0][j]가 설치된다. 여기서, X는 0 혹은 1로서 예측 방향을 나타내고, 배열의 인덱스 x0은 예측 블록의 X좌표, y0은 예측 블록의 y좌표, j는 차분 움직임 벡터의 성분을 나타내고, j=0은 x성분을, j=1은 y성분을 나타낸다. 다음으로, 예측 움직임 벡터의 후보의 총수가 1개를 넘는 경우에, 참조하는 예측 움직임 벡터의 후보 리스트인 MVP 리스트의 인덱스 신택스 요소 mvp_idx_lX[x0][y0]가 설치된다. 여기서, x0, y0은 화면 내에서의 예측 블록의 좌측 위의 화소의 위치를 나타내는 인덱스이고, mvp_idx_lX[x0][y0]는 화면 내의 (x0, y0)에 위치하는 예측 블록의 리스트 LX의 MVP 인덱스이다. 첨자 LX는 참조 리스트를 나타내고, L0과 L1로 2개 준비되어 있고, X에는 0 혹은 1이 들어간다. 함수 NumMVPCand(LX)는, 예측 방향 LX(X는 0 혹은 1)에서 예측 블록의 예측 움직임 벡터의 후보의 총수를 도출하는 함수를 나타내고, 후술된다. 이 MVP 리스트의 인덱스 mvp_idx_lX[x0][y0]는 움직임 벡터의 예측 방법에 의해 예측 움직임 벡터의 후보의 총수 NumMVPCand(LX)가 1보다 큰 경우에 인코딩된다. 예측 움직임 벡터의 후보의 총수가 1개이면, 그 1개가 예측 움직임 벡터가 되기 때문에, mvp_idx_lX[x0][y0]를 전송하지 않아도 참조하는 예측 움직임 벡터의 후보가 확정되기 때문이다.
(인코딩에 있어서의 움직임 벡터의 예측)
상술한 신택스에 기초하여, 동영상의 비트 스트림을 인코딩하는 동영상 인코딩 장치에 있어서, 실시형태에 따른 움직임 벡터의 예측 방법의 동작을 설명한다. 움직임 벡터의 예측 방법은, 슬라이스 단위로 움직임 보상에 의한 화상간 예측을 하는 경우, 즉 슬라이스 타입이 P슬라이스(단방향 예측 슬라이스) 혹은 B슬라이스(양방향 예측 슬라이스)인 경우, 나아가, 슬라이스 중의 예측 블록의 예측 모드가 화상간 예측(MODE_INTER)의 예측 블록에 적용된다.
도 12는 도 1의 동영상 인코딩 장치의 차분 움직임 벡터 도출부(103)의 상세한 구성을 나타내는 도면이다. 도 12의 굵은 테두리선으로 둘러싸이는 부분은 차분 움직임 벡터 도출부(103)를 나타내고 있다.
또한, 그 내부의 굵은 점선으로 둘러싸이는 부분은 후술하는 움직임 벡터의 예측 방법의 동작부를 나타내고 있고, 실시형태에 따른 동영상 인코딩 장치와 대응하는 동영상 디코딩 장치에도 동일하게 설치되어, 인코딩과 디코딩에서 모순되지 않는 동일한 판정 결과를 얻을 수 있도록 하고 있다. 이하, 이 도면을 참조하여, 인코딩에 있어서의 움직임 벡터의 예측 방법을 설명한다.
차분 움직임 벡터 도출부(103)는, 예측 움직임 벡터 후보 생성부(120), 예측 움직임 벡터 등록부(121), 예측 움직임 벡터 후보 동일 판정부(122), 예측 움직임 벡터 후보 부호량 도출부(123), 예측 움직임 벡터 선택부(124), 및 움직임 벡터 감산부(125)를 포함한다.
이 차분 움직임 벡터 도출부(103)에서의 차분 움직임 벡터 도출 처리는, 인코딩 대상 블록에서 선택된 인터 예측 방법에서 사용하는 움직임 벡터의 차분 움직임 벡터를 각각 도출한다. 구체적으로는 인코딩 대상 블록이 L0 예측인 경우, L0의 움직임 벡터의 차분 움직임 벡터를 도출하고, 인코딩 대상 블록이 L1 예측인 경우, L1의 움직임 벡터의 차분 움직임 벡터를 도출한다. 인코딩 대상 블록이 쌍예측인 경우, L0 예측과 L1 예측이 함께 이루어지고, L0의 움직임 벡터의 차분 움직임 벡터, 및 L1의 움직임 벡터의 차분 움직임 벡터를 각각 도출한다.
예측 움직임 벡터 후보 생성부(120)는, 참조 리스트(L0, L1)마다, 상측에 인접하는 예측 블록 그룹(인코딩 대상의 예측 블록과 동일 픽처 내에서 그 예측 블록의 좌측에 인접하는 예측 블록 그룹: 도 5의 A0, A1, A2), 좌측에 인접하는 예측 블록 그룹(인코딩 대상의 예측 블록과 동일 픽처 내에서 그 예측 블록의 상측에 인접하는 예측 블록 그룹: 도 5의 B0, B1, B2), 상이한 시간의 예측 블록 그룹(인코딩 대상의 예측 블록과 시간적으로 상이한 픽처 내에서 그 예측 블록과 동일 위치 혹은 그 근방의 위치에 존재하는 이미 인코딩 완료된 예측 블록 그룹: 도 9의 T0, T1, T2, T3)의 3개의 예측 블록 그룹으로부터, 각 예측 블록 그룹마다 1개의 움직임 벡터 mvLXA, mvLXB, mvLXCol을 각각 도출하고, 예측 움직임 벡터 후보로 하고, 예측 움직임 벡터 등록부(121)에 공급한다. 이하, mvLXA 및 mvLXB를 공간적인 움직임 벡터, mvLXCol을 시간적인 움직임 벡터라 부른다. 이 예측 움직임 벡터 후보의 도출에 있어서는, 인코딩 정보 저장 메모리(114)에 저장되어 있는 인코딩 완료된 예측 블록의 예측 모드, 참조 리스트마다의 참조 인덱스, 참조 픽처의 POC, 움직임 벡터 등의 인코딩 정보를 사용한다.
이들의 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol은 인코딩 대상 화상의 POC와 참조 픽처의 POC의 관계에 따라 스케일링하는 것에 의해 도출되는 경우도 있다.
예측 움직임 벡터 후보 생성부(120)는, 각 예측 블록 그룹마다, 소정의 순서로, 각각의 예측 블록 그룹 내의 예측 블록에 대해, 후술의 조건 판정을 하여, 최초에 조건에 일치한 예측 블록의 움직임 벡터를 선택하고, 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol로 한다.
좌측에 인접하는 예측 블록 그룹으로부터 예측 움직임 벡터를 도출할 때는, 좌측에 인접하는 예측 블록 그룹의 아래에서 위의 순서(도 5의 A0에서 A0, A1, A2의 순서)로, 상측에 인접하는 예측 블록 그룹으로부터 예측 움직임 벡터를 도출할 때는, 상측에 인접하는 예측 블록 그룹의 우측에서 좌측의 순서(도 5의 B0에서 B0, B1, B2의 순서)로, 상이한 시간의 예측 블록 그룹으로부터 예측 움직임 벡터를 도출할 때는, 도 9의 T0에서 T0, T1, T2, T3의 순서로, 각 예측 블록에 대해, 후술의 조건 판정을 하여, 최초에 조건에 일치한 예측 블록의 움직임 벡터를 선택하고, 예측 움직임 벡터의 후보를 각각 mvLXA, mvLXB, mvLXCol로 한다.
즉, 좌측의 인접 예측 블록 그룹에서는, 가장 아래의 예측 블록이 가장 우선 순위가 높고, 아래에서 위로 향해 우선 순위가 매겨져 있고, 상측의 인접 예측 블록 그룹에서는, 가장 우측의 예측 블록이 가장 우선 순위가 높고, 우측에서 좌측을 향해 우선 순위가 매겨져 있다. 상이한 시간의 예측 블록 그룹에서는, T0의 예측 블록이 가장 우선 순위가 높고, T0, T1, T2, T3의 순서로 우선 순위가 매겨져 있다. 이 예측 블록의 위치에 의한 우선 순위를 우선 순위 A로 한다.
(공간 예측 블록의 조건 판정의 루프의 설명)
좌측의 인접 예측 블록 그룹, 및 상측의 인접 예측 블록 그룹의 각 인접 예측 블록에 대해서는 아래의 조건 판정 1, 2, 3, 4의 우선 순서로 각각의 조건 판정이 적용된다. 단, 후술하는 방법 5만 예외로 조건 판정 1, 3, 2, 4의 우선 순서로 각각의 조건 판정이 적용된다.
조건 판정 1: 인코딩/디코딩 대상의 예측 블록의 차분 움직임 벡터 도출 대상의 움직임 벡터와 동일 참조 리스트에서, 동일 참조 인덱스, 즉 참조 프레임을 사용한 예측이 인접 예측 블록에서도 이루어지고 있다.
조건 판정 2: 인코딩/디코딩 대상의 예측 블록의 차분 움직임 벡터 도출 대상의 움직임 벡터와는 상이한 참조 리스트이지만, 동일 참조 프레임을 사용한 예측이 인접 예측 블록에서 이루어지고 있다.
조건 판정 3: 인코딩/디코딩 대상의 예측 블록의 차분 움직임 벡터 도출 대상의 움직임 벡터와 동일 참조 리스트에서, 상이한 참조 프레임을 사용한 예측이 인접 예측 블록에서 이루어지고 있다.
조건 판정 4: 인코딩/디코딩 대상의 예측 블록의 차분 움직임 벡터 도출 대상의 움직임 벡터와는 상이한 참조 리스트에서, 상이한 참조 프레임을 사용한 예측이 인접 예측 블록에서 이루어지고 있다.
이 우선 순위를 우선 순위 B로 한다. 이들 조건 중의 어느 하나에 일치한 경우, 해당 예측 블록에는 조건에 일치하는 움직임 벡터가 존재하는 것으로 판단하고, 후속되는 조건 판정은 하지 않는다. 또한, 조건 판정 1 또는 조건 판정 2의 조건에 일치한 경우, 해당하는 인접 예측 블록의 움직임 벡터는 동일 참조 프레임에 대응하는 것이기 때문에, 그대로 예측 움직임 벡터의 후보로 하지만, 조건 판정 3 또는 조건 판정 4의 조건에 일치한 경우, 해당하는 인접 예측 블록의 움직임 벡터는 상이한 참조 프레임에 대응하는 것이기 때문에, 그 움직임 벡터를 기초로 스케일링에 의해 도출하여 예측 움직임 벡터의 후보로 한다. 또한, 각 인접 예측 블록의 조건 판정을 병렬이 아닌, 직렬로 처리하는 경우, 2번째로 하는 예측 블록 그룹의 조건 판정에 있어서는(좌측의 인접 예측 블록 그룹의 조건 판정이 먼저인 경우, 상측의 인접 예측 블록 그룹의 조건 판정에서는), 해당 예측 블록 그룹의 예측 움직임 벡터의 후보가 앞의 예측 블록 그룹에서 결정한 예측 움직임 벡터의 후보와 동일값이 되는 경우, 그 예측 움직임 벡터의 후보를 사용하지 않고, 다음의 조건 판정으로 이행해도 좋다. 이와 같이 다음의 조건 판정을 하는 것에 의해, 예측 움직임 벡터의 후보 감소를 방지할 수 있다.
공간 예측 블록의 스캔의 루프 방법으로서, 상기한 4개의 조건 판정의 진행 방법에 의해, 아래의 4가지 방법을 설정할 수 있다. 각각의 방법에 의해 예측 벡터의 적합도와 최대 처리량이 상이하고, 이러한 것들을 고려하여 이들의 방법으로부터 선택하여 설정한다. 방법 1에 대해서만, 도 17~21의 플로차트를 참조하여 상세하게 후술하지만, 기타의 방법 2~4에 대해서도, 당업자라면 방법 2~4를 실시하는 순서에 대해서는 방법 1을 실시하는 순서를 참조하여 적절히 설계할 수 있는 사항이기 때문에, 상세한 설명을 생략한다. 또한, 여기서는 동영상 인코딩 장치에 있어서의 공간 예측 블록의 스캔의 루프 처리를 설명하지만, 동일한 처리는 동영상 디코딩 장치에 있어서도 가능한 것은 물론이다.
방법 1:
4개의 조건 판정 중 예측 블록마다 1개의 조건 판정을 진행하여, 조건을 만족하지 못하면, 옆의 예측 블록의 조건 판정으로 이행한다. 예측 블록마다 조건 판정을 4주(周) 하면 종료.
구체적으로는, 이하의 우선 순서로 조건 판정을 진행한다. (단, N은 A 또는 B)
1. 예측 블록 N0의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
2. 예측 블록 N1의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
3. 예측 블록 N2의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
4. 예측 블록 N0의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
5. 예측 블록 N1의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
6. 예측 블록 N2의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
7. 예측 블록 N0의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
8. 예측 블록 N1의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
9. 예측 블록 N2의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
10. 예측 블록 N0의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
11. 예측 블록 N1의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
12. 예측 블록 N2의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
방법 1에 의하면, 동일 참조 프레임을 사용한 스케일링되지 않는 예측 움직임 벡터가 선택되기 쉽기 때문에, 차분 움직임 벡터의 부호량이 작아질 가능성이 높아지는 효과가 있다.
방법 2:
동일 예측 프레임을 사용한 스케일링되지 않는 예측 움직임 벡터의 판정을 우선하고, 4개의 조건 판정 중 예측 블록마다 2개의 조건 판정을 진행하여, 조건을 만족하지 못하면, 옆의 예측 블록의 조건 판정으로 이행한다. 최초의 주회(周回)에서는 조건 판정 1과 조건 판정 2의 조건 판정을 진행하고, 다음의 예측 블록의 주회에서는 조건 판정 3과 조건 판정 4의 조건 판정을 진행한다.
구체적으로는, 이하의 우선 순서로 조건 판정을 진행한다. (단, N은 A 또는 B)
1. 예측 블록 N0의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
2. 예측 블록 N0의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
3. 예측 블록 N1의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
4. 예측 블록 N1의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
5. 예측 블록 N2의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
6. 예측 블록 N2의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
7. 예측 블록 N0의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
8. 예측 블록 N0의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
9. 예측 블록 N1의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
10. 예측 블록 N1의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
11. 예측 블록 N2의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
12. 예측 블록 N2의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
방법 2에 의하면, 방법 1과 동일하게, 동일 참조 프레임을 사용한 스케일링되지 않는 예측 움직임 벡터가 선택되기 쉽기 때문에, 차분 움직임 벡터의 부호량이 작아질 가능성이 높아지는 효과가 있다. 또한, 조건 판정의 주회수가 최대 2회가 되기 때문에, 하드웨어에 대한 구현을 고려했을 때 예측 블록의 인코딩 정보에 대한 메모리 액세스 회수가 방법 1에 비해 적어져, 복잡성이 저감된다.
방법 3:
최초의 주회에서는 예측 블록마다 조건 판정 1의 조건 판정을 진행하여 조건을 만족하지 못하면, 옆의 예측 블록의 조건 판정으로 이행한다. 다음의 주회에서는 예측 블록마다 조건 판정 2, 조건 판정 3, 조건 판정 4의 순서로 조건 판정을 하고 나서 옆으로 이행한다.
구체적으로는, 이하의 우선 순서로 조건 판정을 진행한다. (단, N은 A 또는 B)
1. 예측 블록 N0의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
2. 예측 블록 N1의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
3. 예측 블록 N2의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
4. 예측 블록 N0의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
5. 예측 블록 N0의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
6. 예측 블록 N0의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
7. 예측 블록 N1의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
8. 예측 블록 N1의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
9. 예측 블록 N1의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
10. 예측 블록 N2의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
11. 예측 블록 N2의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
12. 예측 블록 N2의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
방법 3에 의하면, 동일 참조 리스트에서 동일 참조 프레임을 사용한 스케일링되지 않는 예측 움직임 벡터가 선택되기 쉽기 때문에, 차분 움직임 벡터의 부호량이 작아질 가능성이 높아지는 효과가 있다. 또한, 조건 판정의 주회수가 최대 2회가 되기 때문에, 하드웨어에 대한 구현을 고려했을 때 예측 블록의 인코딩 정보에 대한 메모리 액세스 회수가 방법 1에 비해 적어져, 복잡성이 저감된다.
방법 4:
동일 예측 블록의 조건 판정을 우선하고, 1개의 예측 블록 내에서 4개의 조건 판정을 진행하여, 모든 조건에 일치하지 않는 경우, 해당 예측 블록에는 조건에 일치하는 움직임 벡터는 존재하지 않는 것으로 판단하고, 다음의 예측 블록의 조건 판정을 진행한다.
구체적으로는, 이하의 우선 순서로 조건 판정을 진행한다. (단, N은 A 또는 B)
1. 예측 블록 N0의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
2. 예측 블록 N0의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
3. 예측 블록 N0의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
4. 예측 블록 N0의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
5. 예측 블록 N1의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
6. 예측 블록 N1의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
7. 예측 블록 N1의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
8. 예측 블록 N1의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
9. 예측 블록 N2의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
10. 예측 블록 N2의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
11. 예측 블록 N2의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
12. 예측 블록 N2의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
방법 4에 의하면, 조건 판정의 주회수가 최대 1회가 되기 때문에, 하드웨어에 대한 구현을 고려했을 때 예측 블록의 인코딩 정보에 대한 메모리 액세스 회수가 방법 1, 방법 2, 방법 3에 비해 적어져, 복잡성이 저감된다.
방법 5:
방법 4와 동일하게, 동일 예측 블록의 조건 판정을 우선하고, 1개의 예측 블록 내에서 4개의 조건 판정을 진행하여, 모든 조건에 일치하지 않는 경우, 해당 예측 블록에는 조건에 일치하는 움직임 벡터는 존재하지 않는 것으로 판단하고, 다음의 예측 블록의 조건 판정을 진행한다. 단, 예측 블록 내의 조건 판정에 있어서는, 방법 4는 동일 참조 프레임인 것을 더 우선하고 있지만, 방법 5는 동일 참조 리스트인 것을 우선한다.
구체적으로는, 이하의 우선 순서로 조건 판정을 진행한다. (단, N은 A 또는 B)
1. 예측 블록 N0의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
2. 예측 블록 N0의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
3. 예측 블록 N0의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
4. 예측 블록 N0의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
5. 예측 블록 N1의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
6. 예측 블록 N1의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
7. 예측 블록 N1의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
8. 예측 블록 N1의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
9. 예측 블록 N2의 조건 판정 1(동일 참조 리스트, 동일 참조 프레임)
10. 예측 블록 N2의 조건 판정 3(동일 참조 리스트, 상이한 참조 프레임)
11. 예측 블록 N2의 조건 판정 2(상이한 참조 리스트, 동일 참조 프레임)
12. 예측 블록 N2의 조건 판정 4(상이한 참조 리스트, 상이한 참조 프레임)
방법 5에 의하면, 방법 4에 비해 예측 블록의 참조 리스트의 참조 회수를 더욱 절감할 수 있고, 메모리에 대한 액세스 회수, 조건 판정 등의 처리량을 삭감하는 것에 의해 복잡성을 저감할 수 있다. 또한, 방법 4와 동일하게, 조건 판정의 주회수가 최대 1회가 되기 때문에, 하드웨어에 대한 구현을 고려했을 때 예측 블록의 인코딩 정보에 대한 메모리 액세스 회수가 방법 1, 방법 2, 방법 3에 비해 적어져, 복잡성이 저감된다.
다음으로, 예측 움직임 벡터 등록부(121)는 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol의 우선 순위를 평가하여, 우선 순위에 상응한 순번으로 MVP 리스트 mvpListLX에 저장한다. 이 MVP 리스트 mvpListLX에 저장하는 순서에 대해서는 나중에 상세하게 설명한다.
다음으로, 예측 움직임 벡터 후보 동일 판정부(122)는, MVP 리스트 mvpListLX에 저장된 예측 움직임 벡터의 후보 중에서 동일한 움직임 벡터의 값을 갖는 것을 판정하고, 동일한 움직임 벡터 값을 갖는 것으로 판정된 예측 움직임 벡터의 후보에 대해 하나를 남기고 그 이외를 MVP 리스트 mvpListLX로부터 삭제하여, 예측 움직임 벡터의 후보가 중복하지 않도록 하고, MVP 리스트 mvpListLX를 갱신한다. 예측 움직임 벡터 후보 동일 판정부(122)는, 갱신된 MVP 리스트 mvpListLX를 예측 움직임 벡터 후보 부호량 도출부(123)와 예측 움직임 벡터 선택부(124)에 부여한다.
한편, 도 1의 움직임 벡터 검출부(102)에 의해 예측 블록마다 움직임 벡터 mv가 검출된다. 그 움직임 벡터 mv는 갱신된 MVP 리스트 mvpListLX의 예측 움직임 벡터의 후보와 함께 예측 움직임 벡터 후보 부호량 도출부(123)에 입력된다.
예측 움직임 벡터 후보 부호량 도출부(123)는, 움직임 벡터 mv와 MVP 리스트 mvpListLX 중에 저장된 각 예측 움직임 벡터의 후보 mvpListLX[i]의 차분인 각각의 차분 움직임 벡터를 도출하고, 그들의 차분 움직임 벡터를 인코딩했을 때의 부호량을 MVP 리스트 mvpListLX의 요소마다 도출하고, 예측 움직임 벡터 선택부(124)에 공급한다.
예측 움직임 벡터 선택부(124)는, MVP 리스트 mvpListLX에 등록된 각 요소 중에서, 예측 움직임 벡터의 후보마다의 부호량이 최소가 되는 예측 움직임 벡터의 후보 mvpListLX[i]를 예측 움직임 벡터 mvp로서 선택하고, MVP 리스트 mvpListLX 중에서 최소의 발생 부호량이 되는 예측 움직임 벡터의 후보가 복수 존재하는 경우에는, MVP 리스트 mvpListLX 중의 인덱스 i가 작은 번호로 표시되는 예측 움직임 벡터의 후보 mvpListLX[i]를 최적 예측 움직임 벡터 mvp로서 선택한다. 선택된 예측 움직임 벡터 mvp를 움직임 벡터 감산부(125)에 공급한다. 또한, 그 선택된 예측 움직임 벡터 mvp에 대응하는 MVP 리스트 중의 인덱스 i를 LX(X=0 또는 1)의 MVP 인덱스 mvp_idx로서 출력한다.
또한, 예측 움직임 벡터 선택부(124)는 필요에 따라 mvp_idx가 지시하는 MVP 리스트 중의 예측 블록에서 사용된 인코딩 정보도 도 1의 예측 방법 결정부(106)에 출력한다. 여기서 출력하는 인코딩 정보는, 가중 예측의 가중 파라미터, 양자화의 양자화 파라미터 등이 포함된다.
마지막으로, 움직임 벡터 감산부(125)는, 움직임 벡터 mv로부터 선택된 예측 움직임 벡터 mvp를 감산하는 것에 의해 차분 움직임 벡터 mvd를 도출하고, 차분 움직임 벡터 mvd를 출력한다.
mvd=mv-mvp
도 1을 다시 참조하여, 움직임 보상 예측부(105)는, 디코딩 화상 메모리(115)에 저장되어 있는 디코딩 화상을 참조하여 움직임 벡터 검출부(102)로부터 공급되는 움직임 벡터 mv에 상응하여 움직임 보상을 하고, 움직임 보상 예측 신호를 얻어, 예측 방법 결정부(106)에 공급한다.
예측 방법 결정부(106)는 예측 방법을 결정한다. 각각의 예측 모드마다 부호량과 인코딩 변형을 도출하고, 가장 적은 발생 부호량과 인코딩 변형이 되는 예측 블록 사이즈와 예측 모드가 결정된다. 차분 움직임 벡터 도출부(103)의 움직임 벡터 감산부(125)로부터 공급된 차분 움직임 벡터 mvd와 예측 움직임 벡터 선택부(124)로부터 공급된 예측 움직임 벡터를 나타내는 인덱스 mvp_idx의 인코딩이 진행되고, 움직임 정보의 부호량을 도출한다. 또한, 움직임 보상 예측부(105)로부터 공급되는 움직임 보상 예측 신호와, 화상 메모리(101)로부터 공급되는 인코딩 대상의 화상 신호의 예측 잔차 신호를 인코딩한 예측 잔차 신호의 부호량을 도출한다. 움직임 정보의 부호량과 예측 잔차 신호의 부호량이 가산된 총 발생 부호량을 도출하고, 제1의 평가값으로 한다.
또한, 이와 같은 차분 화상을 인코딩 후에, 변형량 평가를 위해 디코딩하고, 인코딩에 의해 생기는 원화상과의 오차를 나타내는 비율로서 인코딩 변형이 도출된다. 이들의 총 발생 부호량과 인코딩 변형을 움직임 보상마다 비교하는 것에 의해, 가장 적은 발생 부호량과 인코딩 변형이 되는 예측 블록 사이즈와 예측 모드가 결정된다. 결정된 예측 블록 사이즈의 예측 모드에 따른 움직임 벡터 mv에 대해, 상술한 움직임 벡터의 예측 방법이 진행되고, 예측 움직임 벡터를 나타내는 인덱스가, 예측 블록 단위의 제2의 신택스 패턴으로 표시되는 플래그 mvp_idx_lX[i]로서 인코딩된다. 또한, 여기서 도출되는 발생 부호량은, 인코딩 과정을 시뮬레이트한 것인 것이 바람직하지만, 간편하게 근사하거나, 어림셈(槪算)하는 것도 가능하다.
(디코딩에 있어서의 움직임 벡터의 예측)
상술한 신택스에 기초하여, 인코딩된 동영상의 비트 스트림을 디코딩하는 동영상 디코딩 장치에 있어서, 본 발명에 따른 움직임 벡터의 예측 방법의 동작을 설명한다.
우선, 제1인코딩 비트열 디코딩부(202)에서 디코딩되는 비트 스트림의 각 플래그에 대해 설명한다. 도 10은 본 발명의 동영상 인코딩 장치에 의해 생성되어, 제1인코딩 비트열 디코딩부(202)에 의해 디코딩되는 비트 스트림의 슬라이스 단위로 슬라이스 헤더에 기술되는 제1의 신택스 패턴이다. 비트 스트림의 슬라이스 헤더 내에 기술되어 있는 플래그로부터, 슬라이스 타입이 P 혹 B인 경우, 인터 예측의 머지 모드가 아닌 예측 블록에 있어서, 동일 픽처 내에서 인접하는 주위의 예측 블록의 움직임 벡터뿐만 아니라, 시간 방향으로 상이한 픽처 중의 처리 대상의 예측 블록과 동일 위치 혹은 근방의 예측 블록의 움직임 벡터를 이용하여 움직임 벡터의 예측을 진행할지 여부를 나타내고, 인터 예측의 머지 모드의 예측 블록에 있어서, 동일 픽처 내에서 인접하는 주위의 예측 블록의 인코딩 정보뿐만 아니라, 시간 방향으로 상이한 픽처 중의 처리 대상의 예측 블록과 동일 위치 혹은 근방의 예측 블록의 인코딩 정보도 이용하여 인터 예측을 진행할지 여부를 나타내는 제1플래그 mv_competition_temporal_flag를 디코딩하고, mv_competition_temporal_flag가 참(1)인 경우에는, 인터 예측의 머지 모드가 아닌 예측 블록에 있어서, 동일 픽처 내에서 인접하는 주위의 예측 블록의 움직임 벡터뿐만 아니라, 시간 방향으로 상이한 픽처에서 처리 대상의 예측 블록과 동일 위치 또는 근방의 예측 블록을 이용하여 움직임 벡터의 예측이 진행되고, 인터 예측의 머지 모드의 예측 블록에 있어서, 동일 픽처 내에서 인접하는 주위의 예측 블록의 인코딩 정보뿐만 아니라, 시간 방향으로 상이한 픽처에서 처리 대상의 예측 블록과 동일 위치 또는 근방의 예측 블록의 인코딩 정보도 이용하여 인터 예측이 진행된다. 또한, mv_competition_temporal_flag가 참(1)인 경우에는, 인터 예측의 머지 모드가 아닌 예측 블록에 있어서, 시간 방향으로 상이한 픽처 중의 처리 대상의 예측 블록과 동일 위치의 예측 블록의 움직임 벡터의 후보가 우선 순위를 높여 후술하는 머지 후보 리스트에 등록되는지 여부를 나타내는 제2플래그 mv_temporal_high_priority_flag를 디코딩하여 판정하고, 참(1)인 경우에는, 시간 방향으로 상이한 픽처에서 처리 대상의 예측 블록과 동일 위치의 예측 블록의 움직임 벡터나 머지 후보가 우선 순위를 높여, MVP 리스트나 머지 후보 리스트에 각각 등록된다.
또한, 슬라이스 타입이 B인 경우에는, 시간 방향의 예측 움직임 벡터의 후보, 또는 머지 후보를 도출할 때 사용하는 시간 방향으로 상이한 픽처 colPic가 처리 대상의 예측 블록이 포함되는 픽처의 L0의 참조 리스트 혹은 L1의 참조 리스트 중의 어느 쪽에 등록되어 있는 참조 화상을 사용할지를 나타내는 제3플래그 collocated_from_l0_flag를 디코딩하고, 처리 대상의 예측 블록이 포함되는 픽처의 참조 픽처의 리스트 중 L0 혹은 L1 중의 어느 쪽을 사용할지 판별한다.
또한, 슬라이스 타입이 P 혹은 B인 경우에는, 후술하는 MVP 리스트, 또는 머지 후보 리스트 내의 등록 순서를 예측 블록마다 적응적으로 변경할지 여부를 나타내는 제4플래그 mv_list_adaptive_idx_flag를 디코딩하고, MVP 리스트, 또는 머지 후보 리스트 내의 등록 순서를 예측 블록마다 적응적으로 변경할지 판별한다.
또한, 이상의 신택스 요소는 픽처 단위로 설정되는 신택스 요소를 기술하는 픽처·파라미터·세트에 설치해도 좋다.
또한, 제1플래그 mv_competition_temporal_flag, 제2플래그 mv_temporal_high_priority_flag, 제3플래그 collocated_from_l0_flag, 제4플래그 mv_list_adaptive_idx_flag는, 각각 머지 모드가 아닌 움직임 벡터 예측용과, 머지 모드용으로 독립된 별개의 플래그를 준비하여, 각각 독립적으로 제어할 수도 있다.
도 11은 본 발명의 동영상 인코딩 장치에 의해 생성되어, 제1인코딩 비트열 디코딩부(202)에 의해 디코딩되는 비트 스트림의 예측 블록 단위로 기술되는 제2의 신택스 패턴이다. 예측 블록 단위에 기술되는 신택스 패턴을 나타낸다. 인터 예측의 경우(예측 블록이 인터 예측인지 여부를 나타내는 예측 모드 PredMode가 인터 예측을 나타내는 MODE_INTER인 경우), 머지 모드인지 여부를 나타내는 merge_flag[x0][y0]가 디코딩된다. 여기서, x0, y0은 화면 내에서의 예측 블록의 좌측 위의 화소의 위치를 나타내는 인덱스이고, merge_flag[x0][y0]는 화면 내의 (x0, y0)에 위치하는 예측 블록의 머지·모드인지 여부를 나타내는 플래그이다.
다음으로, merge_flag[x0][y0]가 1인 경우, 머지 모드의 후보의 총수 NumMergeCand가 1개를 넘는 경우에, 참조하는 예측 움직임 벡터의 후보 리스트인 머지 리스트의 인덱스 신택스 요소 merge_idx[x0][y0]가 디코딩된다. 여기서, x0, y0은 화면 내에서의 예측 블록의 좌측 위의 화소의 위치를 나타내는 인덱스이고, merge_idx[x0][y0]는 화면 내의 (x0, y0)에 위치하는 예측 블록의 머지·인덱스이다.
한편, merge_flag[x0][y0]가 0인 경우, 참조 리스트 LX(X=0 또는 1)마다, 움직임 벡터 검출에서 구해진 예측 블록의 움직임 벡터와 예측 움직임 벡터의 차분 움직임 벡터의 신택스 요소 mvd_lX[x0][y0][j]가 디코딩된다. 여기서, X는 0 혹은 1로 예측 방향을 나타내고, 배열의 인덱스 x0은 예측 블록의 X좌표, y0은 예측 블록의 y좌표, j는 차분 움직임 벡터의 성분을 나타내고, j=0은 x성분을, j=1은 y성분을 나타낸다. 다음으로, 예측 움직임 벡터의 후보의 총수가 1개를 넘는 경우에, 참조하는 예측 움직임 벡터의 후보 리스트인 MVP 리스트의 인덱스 신택스 요소 mvp_idx_lX[x0][y0]가 디코딩된다. 여기서, x0, y0은 화면 내에서의 예측 블록의 좌측 위의 화소의 위치를 나타내는 인덱스이고, mvp_idx_lX[x0][y0]는 화면 내의 (x0, y0)에 위치하는 예측 블록의 리스트 LX의 MVP 인덱스이다. 첨자 LX는 참조 리스트를 나타내고, L0과 L1로 2개 준비되어 있고, X에는 0 혹은 1이 들어간다. 함수 NumMVPCand(LX)는, 예측 방향 LX(X는 0 혹은 1)에서 예측 블록의 예측 움직임 벡터의 후보의 총수를 도출하는 함수를 나타내고, 후술된다. 이 MVP 리스트의 인덱스 mvp_idx_lX[x0][y0]는 움직임 벡터의 예측 방법에 의해 예측 움직임 벡터의 후보의 총수 NumMVPCand(LX)가 1보다 큰 경우에 디코딩된다. 예측 움직임 벡터의 후보의 총수가 1개이면, 그 1개가 예측 움직임 벡터가 되기 때문에, mvp_idx_lX[x0][y0]를 전송하지 않아도 참조하는 예측 움직임 벡터의 후보가 확정되기 때문이다.
실시형태에 따른 움직임 벡터의 예측 방법이 실시되는 경우, 도 2의 동영상 디코딩 장치의 움직임 벡터 도출부(204)에서 처리가 진행된다. 도 13은 실시형태에 따른 동영상 인코딩 장치에 대응하는 도 2의 동영상 디코딩 장치의 움직임 벡터 도출부(204)의 상세한 구성을 나타내는 도면이다. 도 13의 굵은 테두리선으로 둘러싸이는 부분은 움직임 벡터 도출부(204)를 나타내고 있다. 또한, 그 내부의 굵은 점선으로 둘러싸이는 부분은 후술하는 움직임 벡터의 예측 방법의 동작부를 나타내고 있고, 대응하는 동영상 인코딩 장치에도 동일하게 설치되어, 인코딩과 디코딩에서 모순되지 않는 동일한 판정 결과를 얻을 수 있도록 하고 있다. 이하, 이 도면을 참조하여, 디코딩에 있어서의 움직임 벡터의 예측 방법을 설명한다.
움직임 벡터 도출부(204)는, 예측 움직임 벡터 후보 생성부(220), 예측 움직임 벡터 등록부(221), 예측 움직임 벡터 후보 동일 판정부(222), 예측 움직임 벡터 선택부(223) 및 움직임 벡터 가산부(224)를 포함한다.
움직임 벡터 도출부(204) 중의 예측 움직임 벡터 후보 생성부(220), 예측 움직임 벡터 등록부(221) 및 예측 움직임 벡터 후보 동일 판정부(222)는, 인코딩측의 차분 움직임 벡터 도출부(103) 중의 예측 움직임 벡터 후보 생성부(120), 예측 움직임 벡터 등록부(121) 및 예측 움직임 벡터 후보 동일 판정부(122)와 각각 동일한 동작을 하도록 규정하는 것에 의해, 인코딩과 디코딩에서 모순되지 않는 동일한 예측 움직임 벡터의 후보를 인코딩측 및 디코딩측에서 얻을 수 있다.
예측 움직임 벡터 후보 생성부(220)는, 도 12의 인코딩측의 예측 움직임 벡터 후보 생성부(120)와 동일한 처리를 한다. 예측 움직임 벡터 후보 생성부(220)는, 디코딩하여 인코딩 정보 저장 메모리(209)에 기록되어 있던, 디코딩 대상 블록과 동일 픽처 내의 디코딩 대상 블록과 인접하는 디코딩 완료된 예측 블록 및 상이한 픽처 내의 디코딩 대상 블록과 동일 위치 혹은 그 근방의 위치에 존재하는 디코딩 완료된 예측 블록 등의 움직임 벡터를 인코딩 정보 저장 메모리(209)로부터 판독한다. 인코딩 정보 저장 메모리(209)로부터 판독된 디코딩 완료된 다른 블록의 움직임 벡터로부터 적어도 1개 이상의 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol을 생성하여, 예측 움직임 벡터 등록부(221)에 공급한다. 이들의 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol은 참조 인덱스에 상응하여 스케일링하는 것에 의해 도출되는 경우도 있다. 또한, 예측 움직임 벡터 후보 생성부(220)는, 도 12의 인코딩측의 예측 움직임 벡터 후보 생성부(120)와 동일한 처리를 하기 때문에, 도 12의 인코딩측의 예측 움직임 벡터 후보 생성부(120)에서 설명한 예측 움직임 벡터를 도출하기 위한 방법 1, 2, 3, 4, 5의 조건 판정은 예측 움직임 벡터 후보 생성부(220)에서도 적용할 수 있는 것으로 하고, 여기서는 상세한 설명은 생략한다.
다음으로, 예측 움직임 벡터 등록부(221)는 도 12의 인코딩측의 예측 움직임 벡터 등록부(121)와 동일한 처리를 한다. 예측 움직임 벡터 등록부(221)는, 예측 움직임 벡터의 후보 mvLXA, mvLXB, mvLXCol의 우선 순위를 평가하고, 우선 순위에 상응한 순번으로 MVP 리스트 mvpListLX에 저장한다. 이 MVP 리스트 mvpListLX에 저장하는 순서에 대해서는 나중에 상세하게 설명한다.
다음으로, 예측 움직임 벡터 후보 동일 판정부(222)는, 도 12의 인코딩측의 예측 움직임 벡터 후보 동일 판정부(122)와 동일한 처리를 한다. 예측 움직임 벡터 후보 동일 판정부(222)는, MVP 리스트 mvpListLX에 저장된 예측 움직임 벡터의 후보 중에서 동일한 움직임 벡터의 값을 갖는 것을 판정하고, 동일한 움직임 벡터 값을 갖는 것으로 판정된 예측 움직임 벡터의 후보에 대해 하나를 남기고 그 이외를 MVP 리스트 mvpListLX로부터 삭제하여, 예측 움직임 벡터의 후보가 중복하지 않도록 하고, MVP 리스트 mvpListLX를 갱신한다. 갱신된 MVP 리스트 mvpListLX는 예측 움직임 벡터 선택부(223)에 부여된다.
한편, 제1인코딩 비트열 디코딩부(202)에서 디코딩된 차분 움직임 벡터 mvd가 움직임 벡터 가산부(224)에 입력된다. 예측 움직임 벡터의 인덱스를 나타내는 mvp_idx가 인코딩되어 있는 경우에는, 제1인코딩 비트열 디코딩부(202)에서 디코딩된 예측 움직임 벡터의 인덱스 mvp_idx가 예측 움직임 벡터 선택부(223)에 입력된다.
이와 같이 하여 예측 움직임 벡터 선택부(223)에는, MVP 리스트 mvpListLX 중에 남은 예측 움직임 벡터의 후보와, 예측 움직임 벡터의 인덱스를 나타내는 mvp_idx가 인코딩되어 있는 경우에는, 디코딩된 예측 움직임 벡터의 인덱스 mvp_idx도 입력된다.
예측 움직임 벡터 선택부(223)는, 먼저 MVP 리스트 mvpListLX에 남은 예측 움직임 벡터의 후보가 1개인지 여부를 판정하고, 1개인 경우, MVP 리스트 mvpListLX에 남은 예측 움직임 벡터의 후보를 예측 움직임 벡터 mvp로서 취출한다. MVP 리스트 mvpListLX 중에 예측 움직임 벡터의 후보가 1개 보다 많이 남은 경우, 제1인코딩 비트열 디코딩부(202)에서 디코딩된 예측 움직임 벡터의 인덱스 mvp_idx가 판독되고, 판독된 인덱스 mvp_idx에 대응하는 예측 움직임 벡터의 후보를 MVP 리스트 mvpListLX로부터 취출한다. 취출된 예측 움직임 벡터의 후보를 예측 움직임 벡터 mvp로서 움직임 벡터 가산부(224)에 공급한다.
마지막으로, 움직임 벡터 가산부(224)는, 제1인코딩 비트열 디코딩부(202)에서 디코딩되어 공급되는 차분 움직임 벡터 mvd와 예측 움직임 벡터 mvp를 가산하는 것에 의해 움직임 벡터 mv를 도출하고, 움직임 벡터 mv를 출력한다.
mv=mvp+mvd
이상과 같이 하여, 예측 블록마다 움직임 벡터가 도출된다. 이 움직임 벡터를 사용하여 움직임 보상에 의해 예측 화상이 생성되어, 비트 스트림으로부터 디코딩된 잔차 신호와 가산되는 것에 의해 디코딩 화상이 생성된다.
동영상 인코딩 장치의 차분 움직임 벡터 도출부(103), 동영상 디코딩 장치의 움직임 벡터 도출부(204)의 처리 순서에 대해, 각각 도 14, 도 15의 플로차트를 참조하여 설명한다. 도 14는 동영상 인코딩 장치에 의한 차분 움직임 벡터 도출 처리 순서를 나타내는 플로차트이고, 도 15는 동영상 디코딩 장치에 의한 움직임 벡터 도출 처리 순서를 나타내는 플로차트이다.
먼저, 도 14를 참조하여 인코딩측의 처리 순서를 설명한다. 인코딩측에서는, 차분 움직임 벡터 도출부(103) 중의 예측 움직임 벡터 후보 생성부(120), 예측 움직임 벡터 등록부(121), 및 예측 움직임 벡터 후보 동일 판정부(122)에 의해, 예측 움직임 벡터의 후보를 도출하고, MVP 리스트에 도출한 예측 움직임 벡터의 후보를 추가하고, 불필요한 예측 움직임 벡터의 후보를 삭제하는 것에 의해, MVP 리스트를 구축한다(S101).
이어서, 예측 움직임 벡터 후보 부호량 도출부(123)에 의해, 움직임 벡터 mv와 MVP 리스트 mvpListLX 중에 저장된 각 예측 움직임 벡터의 후보 mvpListLX[i]와의 차분인 각각의 차분 움직임 벡터를 도출하고, 그들의 차분 움직임 벡터를 인코딩했을 때의 부호량을 MVP 리스트 mvpListLX의 요소마다 도출하고, 예측 움직임 벡터 선택부(124)에 의해, MVP 리스트 mvpListLX에 등록된 각 요소 중에서, 예측 움직임 벡터의 후보마다의 부호량이 최소가 되는 예측 움직임 벡터의 후보 mvpListLX[i]를 예측 움직임 벡터 mvp로서 선택하고, MVP 리스트 mvpListLX 중에서 최소의 발생 부호량이 되는 예측 움직임 벡터의 후보가 복수 존재하는 경우에는, MVP 리스트 mvpListLX 중의 인덱스 i가 작은 번호로 표시되는 예측 움직임 벡터의 후보 mvpListLX[i]를 최적 예측 움직임 벡터 mvp로서 선택한다. 선택된 예측 움직임 벡터 mvp를 움직임 벡터 감산부(125)에 공급한다. 또한, 그 선택된 예측 움직임 벡터 mvp에 대응하는 MVP 리스트 중의 인덱스 i를 LX(X=0 또는 1)의 MVP 인덱스 mvp_idx로서 출력한다(S102).
이어서, 움직임 벡터 감산부(125)는, 움직임 벡터 mv로부터 선택된 예측 움직임 벡터 mvp와의 차분을 계산하는 것에 의해 차분 움직임 벡터 mvd를 도출하고, 차분 움직임 벡터 mvd를 출력한다(S103).
mvd=mv-mvp
다음으로, 도 15를 참조하여 디코딩측의 처리 순서를 설명한다. 디코딩측에서도 전술한 바와 같이 인코딩측과 동일하게, 움직임 벡터 도출부(204) 중의 예측 움직임 벡터 후보 생성부(220), 예측 움직임 벡터 등록부(221), 및 예측 움직임 벡터 후보 동일 판정부(222)에 의해, 예측 움직임 벡터의 후보를 도출하고, MVP 리스트에 도출한 예측 움직임 벡터의 후보를 추가하고, 불필요한 예측 움직임 벡터의 후보를 삭제하는 것에 의해, MVP 리스트를 구축한다(S201).
이어서, 예측 움직임 벡터 선택부(223)에 의해, 먼저 MVP 리스트 mvpListLX에 남은 예측 움직임 벡터의 후보가 1개인지 여부를 판정하고, 1개인 경우, MVP 리스트 mvpListLX에 남은 예측 움직임 벡터의 후보를 예측 움직임 벡터 mvp로서 취출한다. MVP 리스트 mvpListLX 중에 예측 움직임 벡터의 후보가 1개 보다 많이 남은 경우, 제1인코딩 비트열 디코딩부(202)에서 디코딩된 예측 움직임 벡터의 인덱스 mvp_idx가 판독되고, 판독된 인덱스 mvp_idx에 대응하는 예측 움직임 벡터의 후보를 MVP 리스트 mvpListLX로부터 취출한다. (S202).
이어서, 움직임 벡터 가산부(224)에 의해, 제1인코딩 비트열 디코딩부(202)에서 디코딩되어 공급되는 차분 움직임 벡터 mvd와 예측 움직임 벡터 mvp를 가산하는 것에 의해 움직임 벡터 mv를 도출하고, 움직임 벡터 mv를 출력한다. (도 15의 S203).
mv=mvp+mvd
도 14의 S101, 및 도 15의 S201에서 공통의 예측 움직임 벡터의 도출 및 MVP 리스트 구축 방법의 처리 순서를 도 16의 플로차트를 참조하여 상세하게 설명한다.
먼저, 동영상 인코딩 장치 및 동영상 디코딩 장치에서 공통되는 움직임 벡터의 예측 방법에 대해 설명한다.
(움직임 벡터의 예측 방법)
실시형태에 따른 예측 움직임 벡터의 도출 및 MVP 리스트 구축 방법은 예측 블록 단위에 도 16에 도시되는 제과정에서 참조 리스트 LX(X는 0 또는 1)마다 실시된다. 예측 모드 PredMode가 MODE_INTER(인터 예측)이고, 인터 예측 방법을 나타내는 플래그 inter_pred_flag[x0][y0]가, Pred_L0(L0 예측) 또는 Pred_BI(쌍예측)일 때는, 참조 리스트 L0용의 예측 움직임 벡터의 후보를 도출하고, MVP 리스트를 구축한다. 여기서, x0, y0은 화면 내에서의 예측 블록의 좌측 위의 화소의 위치를 나타내는 인덱스이고, inter_pred_flag[x0][y0]는 화면 내의 (x0, y0)에 위치하는 예측 블록의 인터 예측 방법을 나타내는 플래그이다. inter_pred_flag[x0][y0]가, Pred_L1(L1 예측) 또는 Pred_BI(쌍예측)일 때는, 참조 리스트 L1용의 예측 움직임 벡터의 후보를 도출하고, MVP 리스트를 구축한다. 즉, inter_pred_flag[x0][y0]가, Pred_BI(쌍예측)일 때는, 참조 리스트 L0용과 참조 리스트 L1용의 각각의 예측 움직임 벡터의 후보를 도출하여 MVP 리스트를 구축한다. 도 16은 동영상 인코딩 장치의 차분 움직임 벡터 도출부(103) 및 동영상 디코딩 장치의 움직임 벡터 도출부(204)에서 공통되는 기능을 갖는 예측 움직임 벡터 후보 생성부(120) 및 (220), 예측 움직임 벡터 등록부(121) 및 (221), 및 예측 움직임 벡터 후보 동일 판정부(122) 및 (222)의 처리의 흐름을 나타내는 플로차트이다. 이하, 제과정을 순서에 따라 설명한다.
좌측에 인접하는 예측 블록으로부터의 예측 움직임 벡터의 후보를 도출하고, 이용할 수 있는지 여부를 나타내는 플래그 availableFlagLXA, 및 움직임 벡터 mvLXA, 참조 픽처의 POCpocLXA를 출력한다(도 16의 S301). 또한, L0일 때 X는 0, L1일 때 X는 1로 한다(이하 동일). 이어서, 상측에 인접하는 예측 블록으로부터의 예측 움직임 벡터의 후보를 도출하고, 이용할 수 있는지 여부를 나타내는 플래그 availableFlagLXB, 및 움직임 벡터 mvLXB, 참조 픽처의 POCpocLXB를 도출한다(도 16의 S302). 도 16의 S301와 S302의 처리는 공통되고, 이용할 수 있는지 여부를 나타내는 플래그 availableFlagLXN, 및 움직임 벡터 mvLXN, 참조 픽처의 POCpocLXN(N은 A 또는 B, 이하 동일)을 도출하는 공통의 도출 처리 순서를 도 17~22의 플로차트를 참조하여 나중에 상세하게 설명한다.
이어서, 시간의 예측 움직임 벡터의 후보를 도출하고, 이용할 수 있는지 여부를 나타내는 플래그 availableFlagLXCol, 및 움직임 벡터 mvLXCol, 크로스되어 있는지 여부를 나타내는 플래그 mvXCrossflag를 출력한다(도 16의 S303). 이들의 도출 처리 순서를 도 24~29와 도 22의 플로차트를 참조하여 나중에 상세하게 설명한다.
이어서, MVP 리스트 mvpListLX를 작성하고, 예측 벡터의 후보 mvLXN(N은 A, B 또는 Col, 이하 동일)를 추가한다(도 16의 S304). 이들의 도출 처리 순서를 도 30~36의 플로차트를 참조하여 나중에 상세하게 설명한다.
이어서, MVP 리스트 mvpListLX 내에서, 복수의 움직임 벡터가 동일값을 갖고 있는 경우에, 가장 작은 순번의 움직임 벡터를 제외하고 그 움직임 벡터를 제거한다(도 16의 S305).
이어서, 도 15를 다시 참조하여, MVP 리스트 mvpListLX 내의 요소의 수 NumMVPCand(LX)가 1인 경우, 최종적인 MVP 인덱스 mvpIdx를 0으로 하고, 그렇지 않은 경우에는, mvpIdx를 mvp_idx_LX[xP, yP]로 한다(도 15의 S202). 여기서, xP, yP는 화면 내에서의 예측 블록의 좌측 위의 화소의 위치를 나타내는 인덱스이고, mvp_idx_lX[xP][yP]는 화면 내의 (xP, yP)에 위치하는 예측 블록의 리스트 LX(L0 또는 L1)의 MVP 인덱스이다. 첨자 LX는 참조 리스트를 나타내고, L0과 L1로 2개 준비되어 있고, X에는 0 혹은 1이 들어간다.
이어서, LX의 MVP 리스트 내의 mvpIdx번째에 등록되어 있는 움직임 벡터 mvpListLX[mvpIdx]가 최종적인 리스트 LX의 예측 움직임 벡터 mvpLX에 할당된다(도 15의 S203).
[좌측 또는 상측에 인접하는 1개 이상의 예측 블록으로부터 예측 움직임 벡터의 후보를 각각 도출(도 16의 S301, S302)]
이 처리에 있어서의 입력은, 인코딩/디코딩 대상의 예측 블록의 선두인 좌측 위의 화소 인코딩/디코딩 대상 화상 내에서의 좌표(xP, yP), 및 인코딩/디코딩 대상의 예측 블록의 폭 nPSW와 높이 nPSH, 예측 블록의 참조 리스트마다의 참조 인덱스 refIdxLX(X는 0 혹은 1)이다. 첨자 LX는 참조 리스트를 나타내고, L0과 L1로 2개 준비되어 있고, X에는 0 혹은 1이 들어간다. 참조 리스트 L0, L1은 복수의 참조 픽처의 후보로부터 블록 단위의 임의의 픽처를 참조하여 움직임 보상을 하기 위해, 복수의 참조 픽처를 관리하기 위한 리스트이고, 참조 인덱스 refIdxLX는 참조 픽처를 지정하기 위해 참조 리스트마다 각 참조 픽처에 할당한 인덱스이다.
이 처리에 있어서의 출력은 좌측 또는 상측에 인접하는 예측 블록의 움직임 벡터 mvLXN, 및 예측 블록 그룹 N의 참조 리스트 LX의 인코딩 정보가 유효한지 여부를 나타내는 플래그 availableFlagLXN이고, 첨자 X에는 참조 리스트를 나타내는 0 또는 1, N에는 인접하는 예측 블록 그룹의 영역을 나타내는 A(좌측) 또는 B(상측)가 들어간다.
도 5, 도 6, 도 7, 도 8에 도시되는 바와 같이, 동일 픽처 내의 인코딩 블록 내부를 움직임 보상하기 위해 정의되는 예측 블록의 예측 블록(도 12 중의 처리 대상의 예측 블록)에 인접하는 주위의 예측 블록으로부터 예측 움직임 벡터의 후보를 도출한다.
도 5는 처리 대상의 예측 블록과 그에 인접하는 예측 블록을 나타낸다. 예측 움직임 벡터의 후보는, 처리 대상의 예측 블록의 좌측에 인접하는 예측 블록 Ak(k=0, 1, 2)로 구성되는 예측 블록 그룹 A, 상측에 인접하는 예측 블록 Bk(k=0, 1, 2)로 구성되는 예측 블록 그룹 B로부터 각각 예측 움직임 벡터의 후보를 선출한다.
도 17의 플로차트를 참조하여, 도 16의 S301 및 S302의 처리 순서인 좌측 및 상측에 인접하는 예측 블록 그룹 N으로부터의 예측 움직임 벡터의 후보 mvLXN의 도출 방법에 대해 설명한다. 첨자 X에는 참조 리스트를 나타내는 0 또는 1, N에는 인접하는 예측 블록 그룹의 영역을 나타내는 A(좌측) 또는 B(상측)가 들어간다.
도 17에서, 변수 N=A로서 인코딩/디코딩 대상의 예측 블록의 좌측에 인접하는 1개 이상의 예측 블록으로부터 예측 움직임 벡터의 후보를, 변수 N=B로서 상측에 인접하는 1개 이상의 예측 블록으로부터 예측 움직임 벡터의 후보를, 각각 이하의 순서로 도출한다.
먼저, 인코딩/디코딩 대상의 예측 블록에 인접하는 예측 블록을 특정하고, 각각의 예측 블록 Nk(k=0, 1, 2)을 이용할 수 있는 경우에는 인코딩 정보를 취득한다(S1101, S1102, S1103). 인코딩/디코딩 대상의 예측 블록의 좌측에 인접하는 예측 블록 그룹(N=A)의 경우, 좌측 아래에 인접하는 예측 블록 A0, 좌측에 인접하는 예측 블록 A1, 좌측 위에 인접하는 예측 블록 A2를 특정하여 인코딩 정보를 취득하고, 인코딩/디코딩 대상의 예측 블록의 상측에 인접하는 예측 블록 그룹(N=B)의 경우, 우측 위에 인접하는 예측 블록 B0, 상측에 인접하는 예측 블록 B1, 좌측 위에 인접하는 예측 블록 B2를 특정하여 인코딩 정보를 취득한다(S1101, S1102, S1103). 또한, 인접하는 예측 블록 Nk가 인코딩/디코딩 대상 예측 블록을 포함하는 슬라이스의 내측에 위치하는 경우에는 이용할 수 있고, 외측에 위치하는 경우에는 이용할 수 없다.
다음으로, 예측 블록 그룹 N으로부터 예측 움직임 벡터가 선출되는지 여부를 나타내는 플래그 availableFlagLXN을 0, 예측 블록 그룹 N을 대표하는 움직임 벡터 mvLXN을 (0, 0), 예측 블록 그룹 N을 대표하는 움직임 벡터가 스케일링되어 있지 않은 것을 나타내는 플래그 mvXNNonScale를 0으로 설정한다(S1104, S1105, S1106).
이어서, 도 18에 나타내는 플로차트의 처리를 진행한다(S1107). 예측 블록 그룹 N의 인접 예측 블록 N0, N1, N2 중에서, 인코딩/디코딩 대상 예측 블록에서 현재 대상으로 하고 있는 참조 리스트 LX와 동일 참조 리스트 LX에서 동일 참조 인덱스의 움직임 벡터를 갖는 예측 블록을 찾는다.
도 18은 도 17의 단계 S1107의 처리 순서를 나타내는 플로차트이다. 인접하는 예측 블록 Nk(k=0, 1, 2)에 대해, k가 0, 1, 2의 차례로 각각 이하의 처리를 진행한다(S1201~S1210). N이 A인 경우 아래에서 위로, N이 B인 경우 우측에서 좌측으로 차례로 각각 이하의 처리를 진행한다.
인접하는 예측 블록 Nk를 이용할 수 있고(S1202의 YES), 예측 블록 Nk의 인코딩 모드 PredMode가 인트라(MODE_INTRA)가 아니고(S1203의 YES), 인접하는 예측 블록 Nk의 predFlagLX(LX예측인지 여부를 나타내는 플래그)가 1인 경우(S1204의 YES), 인접하는 예측 블록 Nk의 참조 인덱스 refIdxLX[xNk][yNk]와 처리 대상의 예측 블록의 인덱스 refIdxLX를 비교한다(S1205). 양자의 참조 인덱스가 동일한 경우(S1205의 YES), 플래그 availableFlagLXN은 1로 설정하고(S1206), mvLXN은 mvLXN[xNk][yNk]과 동일값으로 설정하고(S1207), refIdxN은 refIdxLX[xNk][yNk]와 동일값으로 설정하고(S1208), ListN은 LX로 설정하고(S1209), 스케일링되어 있지 않은 것을 나타내는 플래그 mvXNNonScale는 1로 설정한다(S1210).
본 실시형태에 있어서는, 스케일링되어 있지 않은 것을 나타내는 플래그 mvXNNonScale가 1, 즉 스케일링되지 않고 도출된 움직임 벡터 mvLXN은, 인코딩/디코딩 대상의 예측 블록의 움직임 벡터와 동일한 참조 픽처를 참조하고 있는 예측 블록의 움직임 벡터로부터 예측된 움직임 벡터이고, 인코딩/디코딩 대상의 예측 블록의 예측 움직임 벡터의 후보로서 비교적 적합한 것으로 판단한다. 한편, 플래그 mvXCross가 0, 즉 스케일링하는 것에 의해 도출된 움직임 벡터 mvLXN은, 인코딩/디코딩 대상의 예측 블록의 움직임 벡터와는 상이한 참조 픽처를 참조하고 있는 예측 블록의 움직임 벡터로부터 예측한 움직임 벡터이고, 인코딩/디코딩 대상의 예측 블록의 예측 움직임 벡터의 후보로서 비교적 적합하지 않은 것으로 판단한다. 즉, 스케일링되어 있지 않은 것을 나타내는 플래그 mvXNNonScale를 예측 움직임 벡터의 후보로서 적합한지 여부 판단의 지침의 하나로서 사용한다.
한편, 이들의 조건에 일치하지 않는 경우(S1202의 NO, S1203의 NO, S1204의 NO, 또는 S1205의 NO의 경우), k를 1증가시키고, 다음의 인접 예측 블록의 처리(S1202~S1209)를 진행하고, availableFlagLXN이 1이 되거나, N2의 처리가 끝날 때까지 반복한다.
이어서, 도 17의 플로차트를 다시 참조하여, availableFlagLXN이 0일 때(S1108의 YES), 도 19에 나타내는 플로차트의 처리를 진행한다(S1109). 예측 블록 그룹 N의 인접 예측 블록 N0, N1, N2 중에서, 인코딩/디코딩 대상 예측 블록에서 현재 대상으로 하고 있는 참조 리스트 LX와 반대인 참조 리스트 LY(Y=! X: 현재 대상으로 하고 있는 참조 리스트가 L0일 때, 반대의 참조 리스트는 L1, 현재 대상으로 하고 있는 참조 리스트가 L1일 때, 반대의 참조 리스트는 L0)에서 동일 참조 POC의 움직임 벡터를 갖는 예측 블록을 찾는다.
도 19는 도 17의 단계 S1109의 처리 순서를 나타내는 플로차트이다. 인접하는 예측 블록 Nk(k=0, 1, 2)에 대해, k가 0, 1, 2의 차례로 각각 이하의 처리를 진행한다(S1301~S1310). N이 A인 경우 아래에서 위로, N이 B인 경우, 우측에서 좌측으로 차례로 각각 이하의 처리를 진행한다.
인접하는 예측 블록 Nk를 이용할 수 있고(S1302의 YES), 예측 블록 Nk의 인코딩 모드 PredMode가 인트라(MODE_INTRA)가 아니고(S1303의 YES), 인접하는 예측 블록 Nk의 predFlagLY(LY예측인지 여부를 나타내는 플래그)가 1인 경우(S1304의 YES), 인접하는 예측 블록 Nk의 현재 대상으로 하고 있는 참조 리스트 LX와 반대인 참조 리스트 LY의 참조 픽처 RefPicListY[refIdxLY[xNk][yNk]]의 POCRefPicOrderCnt(currPic, refIdxLY[xNk][yNk], LY)와 처리 대상의 예측 블록의 LX의 참조 픽처 RefPicListX[refIdxLX]의 POCRefPicOrderCnt(currPic, refIdxLX, LX)를 비교한다(S1305). 양자의 참조 픽처의 POC가 동일한 경우(S1305의 YES), 플래그 availableFlagLXN은 1로 설정하고(S1306), mvLXN은 mvLXN[xNk][yNk]과 동일값으로 설정하고(S1307), refIdxN은 refIdxLY[xNk][yNk]과 동일값으로 설정하고(S1308), ListN은 LY로 설정하고(S1309), 스케일링되어 있지 않은 것을 나타내는 플래그 mvXNNonScale는 1로 설정한다(S1310).
한편, 이들의 조건에 일치하지 않는 경우(S1302의 NO, S1303의 NO, S1304의 NO, 또는 S1305의 NO의 경우), k를 1증가시키고, 다음의 인접 예측 블록의 처리(S1302~S1309)를 진행하고, availableFlagLXN이 1이 되거나, N2의 처리가 끝날 때까지 반복한다.
이어서, 도 17의 플로차트를 다시 참조하여, availableFlagLXN이 0일 때(S1110의 YES), 도 20에 나타내는 플로차트의 처리를 진행한다(S1111). 예측 블록 그룹 N의 인접 예측 블록 N0, N1, N2 중에서, 인코딩/디코딩 대상 예측 블록에서 현재 대상으로 하고 있는 참조 리스트 LX와 동일 참조 리스트 LX에서 상이한 참조 POC의 움직임 벡터를 갖는 예측 블록을 찾는다.
도 20은 도 17의 단계 S1111의 처리 순서를 나타내는 플로차트이다. 인접하는 예측 블록 Nk(k=0, 1, 2)에 대해, k가 0, 1, 2의 차례로 각각 이하의 처리를 진행한다(S1401~S1409). N이 A인 경우 아래에서 위로, N이 B인 경우, 우측에서 좌측으로 차례로 각각 이하의 처리를 진행한다.
인접하는 예측 블록 Nk를 이용할 수 있고(S1402의 YES), 예측 블록 Nk의 인코딩 모드 PredMode가 인트라(MODE_INTRA)가 아니고(S1403의 YES), 인접하는 예측 블록 Nk의 predFlagLX(LX예측인지 여부를 나타내는 플래그)가 1인 경우(S1404의 YES), 플래그 availableFlagLXN은 1로 설정하고(S1405), mvLXN은 mvLXN[xNk][yNk]과 동일값으로 설정하고(S1406), refIdxN은 refIdxLX[xNk][yNk]와 동일값으로 설정하고(S1407), ListN은 LX로 설정한다(S1408).
한편, 이들의 조건에 일치하지 않는 경우(S1402의 NO, S1403의 NO, 또는 S1404의 NO의 경우), k를 1증가시키고, 다음의 인접 예측 블록의 처리(S1402~S1408)을 진행하고, availableFlagLXN이 1이 되거나, N2의 처리가 끝날 때까지 반복한다.
이어서, 도 17의 플로차트를 다시 참조하여, availableFlagLXN이 0일 때(S1112의 YES), 도 21에 나타내는 플로차트의 처리를 진행한다(S1113). (예측 블록 그룹 N의 인접 예측 블록 N0, N1, N2 중에서, 인코딩/디코딩 대상 예측 블록에서 현재 대상으로 하고 있는 참조 리스트 LX와 반대인 참조 리스트 LY(Y=! X: 현재 대상으로 하고 있는 참조 리스트가 L0일 때, 반대의 참조 리스트는 L1, 현재 대상으로 하고 있는 참조 리스트가 L1일 때, 반대의 참조 리스트는 L0)에서 상이한 참조 POC의 움직임 벡터를 갖는 예측 블록을 찾는다.
도 21은 도 17의 단계 S1113의 처리 순서를 나타내는 플로차트이다. 인접하는 예측 블록 Nk(k=0, 1, 2)에 대해, k가 0, 1, 2의 차례로 각각 이하의 처리를 진행한다(S1501~S1509). N이 A인 경우 아래에서 위로, N이 B인 경우, 우측에서 좌측으로 차례로 각각 이하의 처리를 진행한다.
인접하는 예측 블록 Nk를 이용할 수 있고(S1502의 YES), 예측 블록 Nk의 인코딩 모드 PredMode가 인트라(MODE_INTRA)가 아니고(S1503의 YES), 인접하는 예측 블록 Nk의 predFlagLY(LY예측인지 여부를 나타내는 플래그)가 1인 경우(S1504의 YES), 플래그 availableFlagLXN은 1로 설정하고(S1505), mvLXN은 mvLXN[xNk][yNk]과 동일값으로 설정하고(S1506), refIdxN은 refIdxLY[xNk][yNk]과 동일값으로 설정하고(S1507), ListN은 LY로 설정한다(S1508).
한편, 이들의 조건에 일치하지 않는 경우(S1502의 NO, S1503의 NO, 또는 S1504의 NO의 경우), k를 1증가시키고, 다음의 인접 예측 블록의 처리(S1502~S1508)을 진행하고, availableFlagLXN이 1이 되거나, N2의 처리가 끝날 때까지 반복한다.
이어서, 도 17의 플로차트를 다시 참조하여, availableFlagLXN이 1일 때 (S1114의 YES), 도 22에 나타내는 mvLXN의 스케일링 처리를 진행한다(S1115).
도 22는 도 17의 단계 S1115의 움직임 벡터의 스케일링 처리 순서를 나타내는 플로차트이다. 도 23은 움직임 벡터의 시간 방향의 스케일링을 구체예로 설명하는 도면이다. 만약 참조하는 예측 블록의 참조 리스트 ListN의 참조 픽처 RefPicListN[refIdxLN]의 POC RefPicOrderCnt(currPic, refIdxN, ListN)가 LX의 참조 픽처 RefPicListX[refIdxLX]의 POC RefPicOrderCnt(currPic, refIdxLX, LX)와 동일한 경우(S1601의 YES), mvLXN을 그대로의 값으로 하고(S1602), 그렇지 않은 경우(S1601의 NO), 다음의 식에 의해 스케일링 처리를 진행한다.
mvLXN=tb/td*mvLXN
단, td는 현재의 인코딩/디코딩 대상 화상의 POC PicOrderCnt(currPic)와, 인접 예측 블록의 참조 리스트 ListN이 참조하는 참조 픽처 RefPicListN[refIdxN]의 POC RefPicOrderCnt(currPic, refIdxN, ListN)의 차이다.
td=PicOrderCnt(currPic)-RefPicOrderCnt(currPic, refIdxN, ListN)
tb는 현재의 인코딩/디코딩 대상 화상의 POC PicOrderCnt(currPic)와, 현재의 인코딩/디코딩 대상 화상의 참조 리스트 LX가 참조하는 참조 픽처의 POC와의 차이다.
tb=PicOrderCnt(currPic)-RefPicOrderCnt(currPic, refIdxLX, LX)
[시간 방향의 예측 움직임 벡터의 후보를 도출(도 16의 S303)]
이 처리에 있어서의 입력은, 인코딩/디코딩 대상의 예측 블록의 선두인 좌측 위의 화소 인코딩/디코딩 대상 화상 내에서의 좌표(xP, yP), 및 인코딩/디코딩 대상의 예측 블록의 폭 nPSW와 높이 nPSH, 예측 블록의 참조 리스트마다의 참조 인덱스 refIdxLX(X는 0 혹은 1)이다. 첨자 LX는 참조 리스트를 나타내고, L0과 L1로 2개 준비되어 있고, X에는 0 혹은 1이 들어간다. 참조 리스트 L0, L1은 복수의 참조 픽처의 후보로부터 블록 단위의 임의의 픽처를 참조하여 움직임 보상을 하기 위해, 복수의 참조 픽처를 관리하기 위한 리스트이고, 참조 인덱스 refIdxLX는 참조 픽처를 지정하기 위해 참조 리스트마다 각 참조 픽처에 할당한 인덱스이다.
이 처리에 있어서의 출력은 예측 블록의 예측 블록과 동일 위치의 다른 픽처의 예측 블록의 움직임 벡터 mvLXCol, 및 예측 블록 그룹 Col의 참조 리스트 LX의 인코딩 정보가 유효한지 여부를 나타내는 플래그 availableFlagLXCol이고, 첨자 X에는 참조 리스트를 나타내는 0 또는 1이 들어간다.
도 24는 도 16의 단계 S303의 처리 순서를 설명하는 플로차트이다.
먼저, slice_type와 collocated_from_l0_flag에 의해, 기준이 되는 픽처 colPic를 도출한다(도 24의 S2101).
도 25는 도 24의 단계 S2101의 기준 픽처 colPic의 도출 처리 순서를 설명하는 플로차트이다. slice_type이 B이고, 도 10의 제3플래그 collocated_form_l0_flag가 0인 경우(도 25의 S2201의 YES, S2202의 YES), RefPicList1[0], 즉 참조 픽처 리스트 1의 참조 인덱스가 0인 픽처가 colPic가 된다(도 25의 S2203). 그렇지 않은 경우(도 25의 S2201의 NO, S2202의 NO, S2204의 NO), RefPicList0[0], 즉 참조 픽처 리스트 0의 참조 인덱스가 0인 픽처가 colPic가 된다(도 25의 S2205).
다음으로, 도 24의 플로차트를 다시 참조하여, 예측 블록 colPu를 도출하고, 인코딩 정보를 취득한다(도 24의 S2102).
도 26은 도 24의 단계 S2102의 예측 블록 colPu의 도출 처리 순서를 설명하는 플로차트이다.
먼저, colPic 내에서 처리 대상의 예측 블록과 동일 위치의 우측 아래(외측)에 위치하는 예측 블록을 colPu으로 설정한다(도 26의 S2301). 이 예측 블록은 도 9의 예측 블록 T0에 상당한다.
다음으로, 예측 블록 colPu의 인코딩 정보를 취득한다. 예측 블록 colPu의 PredMode가 MODE_INTRA이거나, 이용할 수 없는 경우(도 26의 S2303, S2304), colPic 내에서 처리 대상의 예측 블록과 동일 위치의 좌측 위(내측)에 위치하는 예측 블록을 colPu으로 설정한다(도 26의 S2305). 이 예측 블록은 도 9의 예측 블록 T1에 상당한다. 또한, 도시하지 않고 있지만, 예측 블록 colPu의 PredMode가 MODE_INTRA이거나, 이용할 수 없는 경우, 도 9의 예측 블록 T2, T3의 차례로 이용할 수 있는 PredMode가 MODE_INTRA가 아닌 예측 블록을 찾는다.
다음으로, 도 24의 플로차트를 다시 참조하여, mvLXCol과 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과 참조 인덱스 refIdxCol은 쌍예측 블록 colPu의 L1의 움직임 벡터인 MvL1[xPCol][yPCol]과 L1의 참조 인덱스 refIdxL1[xPCol][yPCol]에 각각 설정한다(도 27의 S2406, S2407).
또한, 설정된 움직임 벡터 mvCol이 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처를 횡단하고 있는지 여부를 확인하고, Mv1Cross를 설정한다(도 27의 S2408).
다음으로, 도 29를 참조하여 움직임 벡터 mv의 크로스 판정을 설명한다.
도 29는 colPu의 움직임 벡터 mvCol이 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처를 횡단하여 참조 화상을 지시하고 있는지 여부의 확인 처리를 설명하는 플로차트이다. 기준 픽처 colPic의 POC PicOrderCnt(colPic)가 인코딩/디코딩 대상 픽처의 POC PicOrderCnt(currPic)보다 작고, mvCol이 지시하는 참조 픽처의 POC RefPicOrderCnt(colPic, RefIdxColLX, LX)가 인코딩/디코딩 대상 픽처의 POC PicOrderCnt(currPic)보다 큰 경우(도 27의 S2601의 YES), 인코딩/디코딩 대상 픽처를 끼고 기준 픽처 colPic가 과거, 참조 픽처가 미래에 위치하기 때문에, 움직임 벡터 mvCol이 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처를 횡단하여 참조 화상을 지시하고 있는 것으로 판단하고, MvXCross를 1로 한다(도 27의 S2602). 그렇지 않고(도 27의 S2601의 NO), 기준 픽처 colPic의 POC PicOrderCnt(colPic)가 인코딩/디코딩 대상 픽처의 POC PicOrderCnt(currPic)보다 크고, mvCol이 지시하는 참조 픽처의 POC RefPicOrderCnt(colPic, RefIdxColLX, LX)가 인코딩/디코딩 대상 픽처의 POC PicOrderCnt(currPic)보다 작은 경우(도 27의 S2603의 YES), 인코딩/디코딩 대상 픽처를 끼고 기준 픽처 colPic가 미래, 참조 픽처가 과거에 위치하기 때문에, 움직임 벡터 mvCol이 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처를 횡단하여 참조 화상을 지시하고 있는 것으로 판단하고, MvXCross를 1로 한다(도 27의 S2602). 이상의 조건에 일치하지 않는 경우(도 27의 S2601의 NO, S2603의 NO), 움직임 벡터 mvCol이 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처를 횡단하여 참조 화상을 지시하고 있지 않는 것으로 판단하고, MvXCross를 0으로 한다(도 27의 S2604).
도 27을 다시 참조하여, MvCross를 Mv1Cross의 값으로 설정한다(도 27의 S2409).
본 실시형태에 있어서는, 플래그 mvXCross가 1, 즉 기준 픽처 colPic의 colPu의 움직임 벡터 mvCol이 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처를 횡단하여 참조 화상을 지시하고 있는 경우, 그 움직임 벡터 mvCol은, 인코딩/디코딩 대상의 예측 블록의 예측 움직임 벡터의 후보로서 비교적 적합한 것으로 판단한다. 한편, 플래그 mvXCross가 0, 즉 기준 픽처 colPic의 colPu의 움직임 벡터 mvCol이 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처를 횡단하여 참조 화상을 지시하고 있지 않은 경우, 그 움직임 벡터 mvCol은, 인코딩/디코딩 대상의 예측 블록의 예측 움직임 벡터의 후보로서 비교적 적합하지 않은 것으로 판단한다. 즉, 플래그 mvXCross를 예측 움직임 벡터의 후보로서 적합한지 여부 판단의 지침의 하나로서 사용한다. 예측 블록 colPu의 L1 예측 플래그 PredFlagL1[xPCol][yPCol]이 0이 아닌 경우(도 27의 S2410의 YES), 예측 블록 colPu의 예측 모드는 Pred_BI이기 때문에, 2개의 움직임 벡터로부터 하나를 선택한다(도 27의 S2415).
도 28은 예측 블록 colPu의 예측 모드가 Pred_BI일 때의 예측 블록의 인터 예측 정보의 취득 처리 방법을 설명하는 플로차트이다.
움직임 벡터 mvCol과 참조 인덱스 refIdxCol은 예측 블록 colPu의 L0의 움직임 벡터인 MvL0[xPCol][yPCol]과 L0의 참조 인덱스 refIdxL0[xPCol][yPCol]에 각각 설정한다(도 27의 S2411, S2412).
먼저, RefIdxColLX에 L0의 참조 인덱스 refIdxL0[xPCol][yPCol]을 설정하고(도 28의 S2502), L0의 움직임 벡터가 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처를 횡단하는지 여부를 확인하여 Mv0Cross를 설정한다(도 28의 S2503). 또한, RefIdxColLX에 L1의 참조 인덱스 refIdxL1[xPCol][yPCol]을 설정하고(도 28의 S2502), L1의 움직임 벡터가 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처를 횡단하는지 여부를 확인하여 Mv1Cross를 설정한다(도 28의 S2503).
Mv0Cross가 0이고 Mv1Cross가 1인 경우(도 28의 S2505의 YES), 또는, Mv0Cross가 Mv1Cross와 동일하고, 참조 인덱스 리스트가 L1인 경우(도 28의 S2506의 YES), L1쪽의 인터 예측 정보를 선택하고, 움직임 벡터 mvCol, 참조 인덱스 refIdxCol, 리스트 ListCol, MvCross는, MvL1[xPCol][yPCol], RefIdxColL1 및 L1, Mv0Cross에 각각 설정된다.
그렇지 않은 경우(도 28의 S2505의 NO, S2506의 NO), L0쪽의 인터 예측 정보를 선택하고, 움직임 벡터 mvCol, 참조 인덱스 refIdxCol, 리스트 ListCol, MvCross는, MvL0[xPCol][yPCol], RefIdxColL0 및 L0, Mv0Cross에 각각 설정된다.
도 27을 다시 참조하여, 인터 예측 정보를 취득하면 availableFlagLXCol을 1로 한다(도 27의 S2416).
다음으로, 도 24의 플로차트를 다시 참조하여, availableFlagLXCol이 1인 경우(도 24의 S2104의 YES), 필요에 따라 mvLXCol을 스케일링한다. 이 mvLXCol의 스케일링에는 도 22에서 설명한 방법과 동일한 방법을 사용한다(도 24의 S2105).
[예측 움직임 벡터의 후보를 MVP 리스트에 추가(도 16의 S304)]
도 16의 S301, S302, 및 S303에서 도출된 예측 움직임 벡터의 후보 mvLXN(N=A, B, Col)을 MVP 리스트 mvpListLX에 추가한다(S304). 도 30은 MVP 리스트로의 예측 움직임 벡터의 후보 추가 처리 순서를 나타내는 플로차트이다. 이 방식에서는, 우선 순위를 매겨, 우선 순위가 높은 것부터 MVP 리스트 mvpListLX에 예측 움직임 벡터의 후보를 등록하는 것에 의해, MVP 인덱스 mvp_idx_lX[x0][y0]의 부호량을 삭감한다. 우선 순위가 높은 요소를 MVP 리스트의 전방에 배치하는 것에 의해, 부호량을 삭감한다. 예를 들면, MVP 리스트 mvpListLX의 요소가 3개인 경우, MVP 리스트의 인덱스 0을 "0", 인덱스 1을 "10", 인덱스 2를 "11"로 하는 것에 의해, 인덱스 0을 나타내는 부호량이 1비트가 되고, 인덱스 0에 발생 빈도가 높은 것으로 생각되는 요소를 등록하는 것에 의해, 부호량을 삭감한다.
MVP 리스트 mvpListLX는 리스트 구조를 이루고, MVP 리스트 내부의 소재를 나타내는 인덱스와, 인덱스에 대응하는 예측 움직임 벡터의 후보를 요소로서 저장하는 기억 영역이 마련되어 있다. 인덱스의 숫자는 0으로부터 개시되고, MVP 리스트 mvpListLX의 기억 영역에, 예측 움직임 벡터의 후보가 저장된다. 이후의 처리에서는, MVP 리스트 mvpListLX에 등록된 인덱스 i의 예측 움직임 벡터의 후보는, mvpListLX[i]로 나타내고, MVP 리스트 mvpListLX와는 배열 표기를 하는 것에 의해 구별하는 것으로 한다.
슬라이스, 시퀀스 또는 픽처마다 인코딩되는 플래그 mv_temporal_high_priority_flag가 1이고, mv_list_adaptive_idx_flag가 0인 경우(S3101의 YES, S3102의 NO), 좌측 또는 상측에 인접하는 예측 블록으로부터의 예측 움직임 벡터의 후보 mvLXA, mvLXB보다도, 상이한 시간의 픽처 동일 위치 혹은 그 근방의 예측 블록으로부터의 예측 움직임 벡터의 후보 mvLXCol이 우선되고, 도 31에서 나타내는 플로차트의 처리 순서로, 예측 움직임 벡터의 후보가 MVP 리스트에 등록된다(S3104).
또한, mv_temporal_high_priority_flag가 0이고, mv_list_adaptive_idx_flag가 0인 경우(S3101의 NO, S3103의 NO), 상이한 시간의 픽처 동일 위치 혹은 그 근방의 예측 블록으로부터의 예측 움직임 벡터의 후보 mvLXCol보다도, 좌측 또는 상측에 인접하는 예측 블록으로부터의 예측 움직임 벡터의 후보 mvLXA, mvLXB가 우선되고, 도 32에서 나타내는 플로차트의 처리 순서로, 예측 움직임 벡터의 후보가 MVP 리스트에 등록된다(S3105).
또한, mv_temporal_high_priority_flag가 1이고, mv_list_adaptive_idx_flag가 1인 경우(S3101의 YES, S3102의 YES), 신뢰성이 높은 것으로 판단되는 예측 움직임 벡터의 후보가 우선되는 한편, 좌측 또는 상측에 인접하는 예측 블록으로부터의 예측 움직임 벡터의 후보 mvLXA, mvLXB보다도, 상이한 시간의 픽처 동일 위치 혹은 그 근방의 예측 블록으로부터의 예측 움직임 벡터의 후보 mvLXCol이 우선되고, 도 33에서 나타내는 플로차트의 처리 순서로, 예측 움직임 벡터의 후보가 MVP 리스트에 등록된다(S3106).
또한, mv_temporal_high_priority_flag가 0이고, mv_list_adaptive_idx_flag가 1인 경우(S3101의 NO, S3103의 YES), 신뢰성이 높은 것으로 판단되는 예측 움직임 벡터의 후보가 우선되는 한편, 상이한 시간의 픽처 동일 위치 혹은 그 근방의 예측 블록으로부터의 예측 움직임 벡터의 후보 mvLXCol보다도, 좌측 또는 상측에 인접하는 예측 블록으로부터의 예측 움직임 벡터의 후보 mvLXA, mvLXB가 우선되고, 도 34에서 나타내는 플로차트의 처리 순서로, 예측 움직임 벡터의 후보가 MVP 리스트에 등록된다(S3107).
전술한 바와 같이, 제2플래그 mv_temporal_high_priority_flag의 값은 인코딩 효율을 향상시키기 위해 프레임 또는 슬라이스마다 적응적으로 변경하여 인코딩된다. 인코딩/디코딩 대상 픽처와 가장 가까운 참조 픽처 사이의 거리가 가까운 경우에는, mv_temporal_high_priority_flag를 참(1)으로 하고, 인코딩/디코딩 대상 화상과 참조 픽처 사이의 거리가 먼 경우에는, 거짓(0)으로 설정하는 것에 의해, MVP 인덱스의 부호량을 삭감할 수 있다. 이 거리가 비교적 작은 경우에는 상이한 시간으로부터의 MVP의 후보가 후보로서 비교적 적합한 것으로 판단한다. 예를 들면, frame rate가 30Hz인 경우, 인코딩/디코딩 대상 픽처와 가장 가까운 참조 픽처 사이의 거리가 X프레임 이내(X=1~3정도)인 경우, mv_temporal_high_priority_flag를 참(1)으로 하고, 인코딩/디코딩 대상 화상과 참조 픽처 사이의 거리가 X프레임보다 큰 경우에는, 거짓(0)으로 설정하는 것에 의해, MVP 인덱스의 부호량을 삭감한다. 이 임계값 X는 시퀀스의 내용에 따라 설정하는 것에 의해, 더욱 부호량을 삭감할 수 있다. 움직임이 크고 복잡한 시퀀스의 경우, 임계값을 작게 하는 것에 의해, 시간 방향의 MVP 후보의 우선 순위를 낮추는 것에 의해, 인코딩 효율을 향상할 수 있다.
도 31은 슬라이스, 시퀀스 또는 픽처마다 인코딩되는 플래그 mv_temporal_high_priority_flag가 1이고, mv_list_adaptive_idx_flag가 0인 경우(S3101의 YES, S3102의 NO)의 MVP 리스트 mvpListLX로의 예측 움직임 벡터의 후보 등록 처리 순서를 나타내는 플로차트이다.
먼저, availableFlagLXCol이 1인 경우(S3201의 YES), MVP 리스트 mvpListLX의 선두에 mvLXCol을 등록한다(S3202).
이어서, availableFlagLXA가 1인 경우(S3203의 YES), MVP 리스트 mvpListLX의 끝에 mvLXA를 등록한다(S3204).
이어서, availableFlagLXB가 1인 경우(S3205의 YES), MVP 리스트 mvpListLX의 끝에 mvLXB를 등록한다(S3206).
도 32는, 슬라이스, 시퀀스 또는 픽처마다 인코딩되는 플래그 mv_temporal_high_priority_flag가 1이고, mv_list_adaptive_idx_flag가 0인 경우(S3101의 NO, S3103의 NO)의 MVP 리스트 mvpListLX로의 예측 움직임 벡터의 후보 등록 처리 순서를 나타내는 플로차트이다.
먼저, availableFlagLXA가 1인 경우(S3301의 YES), MVP 리스트 mvpListLX의 선두에 mvLXA를 등록한다(S3302).
이어서, availableFlagLXB가 1인 경우(S3303의 YES), MVP 리스트 mvpListLX의 끝에 mvLXB를 등록한다(S3304).
이어서, availableFlagLXCol이 1인 경우(S3305의 YES), MVP 리스트 mvpListLX의 끝에 mvLXCol을 등록한다(S3306).
도 33은, 슬라이스, 시퀀스 또는 픽처마다 인코딩되는 플래그 mv_temporal_high_priority_flag가 1이고, mv_list_adaptive_idx_flag가 1인 경우(S3101의 YES, S3102의 YES)의 MVP 리스트 mvpListLX로의 예측 움직임 벡터의 후보 등록 처리 순서를 나타내는 플로차트이다.
먼저, availableFlagLXCol이 1이고 MvCross가 1인 경우(S3401의 YES, S3402의 YES), MVP 리스트 mvpListLX의 선두에 mvLXCol을 등록한다(S3403).
이어서, availableFlagLXA가 1이고 MvXANonScale가 1인 경우(S3404의 YES, S3405의 YES), MVP 리스트 mvpListLX의 끝에 mvLXA를 등록한다(S3406).
이어서, availableFlagLXB가 1이고 MvXBNonScale가 1인 경우(S3407의 YES, S3408의 YES), MVP 리스트 mvpListLX의 끝에 mvLXB를 등록한다(S3409).
이어서, availableFlagLXCol이 1이고 MvCross가 0인 경우(S3410의 YES, S3411의 YES), MVP 리스트 mvpListLX의 끝에 mvLXCol을 등록한다(S3412).
이어서, availableFlagLXA가 1이고 MvXANonScale가 0인 경우(S3413의 YES, S3414의 YES), MVP 리스트 mvpListLX의 끝에 mvLXA를 등록한다(S3415).
이어서, availableFlagLXB가 1이고 MvXBNonScale가 0인 경우(S3417의 YES, S3416의 YES), MVP 리스트 mvpListLX의 끝에 mvLXB를 등록한다(S3418).
도 34는, 슬라이스, 시퀀스 또는 픽처마다 인코딩되는 플래그 mv_temporal_high_priority_flag가 0이고, mv_list_adaptive_idx_flag가 1인 경우(S3101의 NO, S3103의 YES)의 MVP 리스트 mvpListLX로의 예측 움직임 벡터의 후보 등록 처리 순서를 나타내는 플로차트이다.
먼저, availableFlagLXA가 1이고 MvXANonScale가 1인 경우(S3501의 YES, S3502의 YES), MVP 리스트 mvpListLX의 선두에 mvLXA를 등록한다(S3503).
이어서, availableFlagLXB가 1이고 MvXBNonScale가 1인 경우(S3504의 YES, S3505의 YES), MVP 리스트 mvpListLX의 끝에 mvLXB를 등록한다(S3506).
이어서, availableFlagLXCol이 1이고 MvCross가 1인 경우(S3507의 YES, S3508의 YES), MVP 리스트 mvpListLX의 끝에 mvLXCol을 등록한다(S3509).
이어서, availableFlagLXA가 1이고 MvXANonScale가 0인 경우(S3510의 YES, S3511의 YES), MVP 리스트 mvpListLX의 끝에 mvLXA를 등록한다(S3512).
이어서, availableFlagLXB가 1이고 MvXBNonScale가 0인 경우(S3513의 YES, S3514의 YES), MVP 리스트 mvpListLX의 끝에 mvLXB를 등록한다(S3515).
이어서, availableFlagLXCol이 1이고 MvCross가 0인 경우(S3516의 YES, S3517의 YES), MVP 리스트 mvpListLX의 끝에 mvLXCol을 등록한다(S3518).
도 30의 MVP 리스트 mvpListLX로의 예측 움직임 벡터의 후보 등록 처리 순서에 있어서는, mv_temporal_high_priority_flag가 1일 때, 시간적인 움직임 벡터 mvLXCol을 우선적으로 MVP 리스트의 전방에 등록하고, mv_temporal_high_priority_flag가 0일 때, 공간적인 움직임 벡터 mvLXA, mvLXB를 우선적으로 MVP 리스트의 전방에 등록하는 것에 의해, 부호량을 삭감한다.
도 33, 및 도 34의 MVP 리스트 mvpListLX로의 예측 움직임 벡터의 후보 등록 처리 순서에 있어서는, 플래그 mvCross가 1, 즉 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처를 횡단하여 참조 화상을 지시하고 있는 colPu의 움직임 벡터 mvCol로부터 도출된 예측 움직임 벡터의 후보가, 플래그 mvCross가 0, 즉 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처를 횡단하지 않고 참조 화상을 지시하고 있는 colPu의 움직임 벡터 mvCol로부터 도출된 예측 움직임 벡터의 후보보다 인코딩/디코딩 대상의 움직임 벡터와 가까운 값을 갖는 경우가 많고, 차분 움직임 벡터의 값이 작아지는 경우가 많은 것으로 판단하고, 예측 블록 col의 예측 움직임 벡터를 우선 순위를 높여서 MVP 리스트의 전방에 등록하는 것에 의해, 부호량을 삭감한다. 즉 상이한 시간의 화상 예측 블록 col의 인코딩 정보의 값에 상응하여 우선 순위를 변경하여 머지 후보 리스트에 등록하는 순서를 변경하는 것에 의해, 부호량을 삭감한다.
또한, 예측 블록 N(N은 A 또는 B)에 있어서, MvXNNonScale이 1인 움직임 벡터로부터 예측된 예측 움직임 벡터의 후보가 MvXNNonScale이 0인 움직임 벡터로부터 예측된 예측 움직임 벡터의 후보보다 인코딩/디코딩 대상의 예측 블록의 예측 움직임 벡터의 후보로서 비교적 적합하고, 인코딩/디코딩 대상의 움직임 벡터와 가까운 값을 갖는 경우가 많고, 차분 움직임 벡터의 값이 작아지는 경우가 많은 것으로 판단하고, 우선적으로 MVP 리스트에 등록하는 것에 의해, 부호량을 삭감한다.
또한, 도 33 및 도 34 대신에, 도 35 및 도 36의 처리 순서로 예측 움직임 벡터의 후보를 등록할 수도 있다.
도 35는 슬라이스, 시퀀스 또는 픽처마다 인코딩되는 플래그 mv_temporal_high_priority_flag가 1이고, mv_list_adaptive_idx_flag가 1인 경우(S3101의 YES, S3102의 YES)의 제2의 MVP 리스트 mvpListLX로의 예측 움직임 벡터의 후보 등록 처리 순서를 나타내는 플로차트이다.
먼저, availableFlagLXCol이 1이면서 상이한 시간의 예측 블록 그룹에서 우측 아래의 예측 블록이 선택된 경우(S3601의 YES, S3602의 YES), MVP 리스트 mvpListLX의 선두에 mvLXCol을 등록한다(S3603).
이어서, availableFlagLXA가 1이면서 좌측에 인접하는 예측 블록 그룹에서 좌측 아래 또는 좌측의 예측 블록이 선택된 경우(S3604의 YES, S3605의 YES), MVP 리스트 mvpListLX의 끝에 mvLXA를 등록한다(S3606).
이어서, availableFlagLXB가 1이면서 상측에 인접하는 예측 블록 그룹에서 우측 위 또는 상측의 예측 블록이 선택된 경우(S3607의 YES, S3608의 YES), MVP 리스트 mvpListLX의 끝에 mvLXB를 등록한다(S3609).
이어서, availableFlagLXCol이 1이면서 상이한 시간의 예측 블록 그룹에서 중앙의 예측 블록이 선택된 경우(S3610의 YES, S3611의 YES), MVP 리스트 mvpListLX의 끝에 mvLXCol을 등록한다(S3612).
이어서, availableFlagLXA가 1이면서 좌측에 인접하는 예측 블록 그룹에서 좌측 위의 예측 블록이 선택된 경우(S3613의 YES, S3614의 YES), MVP 리스트 mvpListLX의 끝에 mvLXA를 등록한다(S3615).
이어서, availableFlagLXB가 1이면서 상측에 인접하는 예측 블록 그룹에서 좌측 위의 예측 블록이 선택된 경우(S3617의 YES, S3616의 YES), MVP 리스트 mvpListLX의 끝에 mvLXB를 등록한다(S3618).
도 36은 슬라이스, 시퀀스 또는 픽처마다 인코딩되는 플래그 mv_temporal_high_priority_flag가 0이고, mv_list_adaptive_idx_flag가 1인 경우(S3101의 NO, S3103의 YES)의 제2의 MVP 리스트 mvpListLX로의 예측 움직임 벡터의 후보 등록 처리 순서를 나타내는 플로차트이다.
먼저, availableFlagLXA가 1이면서 좌측에 인접하는 예측 블록 그룹에서 좌측 아래 또는 좌측의 예측 블록이 선택된 경우(S3701의 YES, S3702의 YES), MVP 리스트 mvpListLX의 선두에 mvLXA를 등록한다(S3703).
이어서, availableFlagLXB가 1이면서 상측에 인접하는 예측 블록 그룹에서 우측 위 또는 상측의 예측 블록이 선택된 경우(S3704의 YES, S3705의 YES), MVP 리스트 mvpListLX의 끝에 mvLXB를 등록한다(S3706).
이어서, availableFlagLXCol이 1이면서 상이한 시간의 예측 블록 그룹에서 우측 아래의 예측 블록이 선택된 경우(S3707의 YES, S3708의 YES), MVP 리스트 mvpListLX의 끝에 mvLXCol을 등록한다(S3709).
이어서, availableFlagLXA가 1이면서 좌측에 인접하는 예측 블록 그룹에서 좌측 위의 예측 블록이 선택된 경우(S3710의 YES, S3711의 YES), MVP 리스트 mvpListLX의 끝에 mvLXA를 등록한다(S3712).
이어서, availableFlagLXB가 1이면서 상측에 인접하는 예측 블록 그룹에서 좌측 위의 예측 블록이 선택된 경우(S3713의 YES, S3714의 YES), MVP 리스트 mvpListLX의 끝에 mvLXB를 등록한다(S3715).
이어서, availableFlagLXCol이 1이면서 상이한 시간의 예측 블록 그룹에서 중앙의 예측 블록이 선택된 경우(S3716의 YES, S3717의 YES), MVP 리스트 mvpListLX의 끝에 mvLXCol을 등록한다(S3718).
도 35, 및 도 36의 MVP 리스트 mvpListLX로의 예측 움직임 벡터의 후보 등록 처리 순서에 있어서는, 상이한 시간의 예측 블록 그룹에 있어서, 우측 아래의 예측 블록의 움직임 벡터로부터 예측된 예측 움직임 벡터의 후보가, 상이한 시간의 예측 블록 그룹에서 중앙의 예측 블록의 움직임 벡터로부터 예측된 예측 움직임 벡터의 후보보다 인코딩 대상의 움직임 벡터와 가까운 값을 갖는 경우가 많고, 차분 움직임 벡터의 값이 작아지는 경우가 많은 것으로 판단하고, 우선적으로 MVP 리스트에 등록하는 것에 의해, 부호량을 삭감한다. 좌측에 인접하는 예측 블록 그룹에 있어서, 좌측 아래 또는 좌측의 예측 블록의 움직임 벡터로부터 예측된 예측 움직임 벡터의 후보가, 좌측 위의 예측 블록의 움직임 벡터로부터 예측된 예측 움직임 벡터의 후보보다, 인코딩 대상의 움직임 벡터와 가까운 값을 갖는 경우가 많고, 차분 움직임 벡터의 값이 작아지는 경우가 많은 것으로 판단하고, 우선적으로 MVP 리스트에 등록하는 것에 의해, 부호량을 삭감한다. 상측에 인접하는 예측 블록 그룹에 있어서, 우측 위 또는 상측의 예측 블록의 움직임 벡터로부터 예측된 예측 움직임 벡터의 후보가, 좌측 위의 예측 블록의 움직임 벡터로부터 예측된 예측 움직임 벡터의 후보보다 인코딩 대상의 움직임 벡터와 가까운 값을 갖는 경우가 많고, 차분 움직임 벡터의 값이 작아지는 경우가 많은 것으로 판단하고, 우선적으로 MVP 리스트에 등록하는 것에 의해, 부호량을 삭감한다.
[MVP 리스트 중의 동일값을 갖는 예측 움직임 벡터의 후보를 삭제(도 16의 S305)]
예측 움직임 벡터의 후보 MVP 리스트 mvpListLX 중에서, 동일 움직임 벡터의 값을 갖는 예측 움직임 벡터의 후보가 존재하는 경우, MVP 리스트 mvpListLX 중에서 가장 작은 인덱스를 갖는 예측 움직임 벡터의 후보를 제외하고 모두 삭제된다. 삭제 처리의 종료후, MVP 리스트 mvpListLX 내는, 삭제된 예측 움직임 벡터의 후보 저장 영역이 비어 있기 때문에, 인덱스 0을 기준으로 하여, 인덱스가 작은 예측 움직임 벡터의 후보 순으로 채워간다. 예를 들면, 인덱스 1, 4의 예측 움직임 벡터의 후보가 삭제되고, 인덱스 0, 2 및 3이 남은 경우, 인덱스 0은 그대로 하여, 인덱스 2의 예측 움직임 벡터의 후보를 인덱스 1의 저장 영역으로 이동하고, 인덱스 3의 예측 움직임 벡터의 후보를 인덱스 2의 저장 영역으로 이동하여, MVP 리스트 mvpListLX 내를 갱신한다.
또한, 단계 S301, S302, S303에 관해서는, 처리 순서를 치환할 수도 있고, 병렬로 처리하는 것도 가능하다.
다음으로, 머지·모드에 대해 설명한다.
지금까지, 동영상 인코딩 장치의 차분 움직임 벡터 도출부(103), 및 동영상 디코딩 장치의 움직임 벡터 도출부(204)의 예측 움직임 벡터의 도출 방법, 및 예측 움직임 벡터 리스트의 구축 방법에 대해 설명했지만, 동영상 인코딩 장치의 인터 예측 정보 추정부(104), 및 동영상 디코딩 장치의 인터 예측 정보 추정부(205)의 머지·모드라도 동일한 처리를 진행한다.
전술한 바와 같이, 머지·모드는 해당 예측 블록의 예측 모드, 참조 리스트 인덱스, 움직임 벡터 등의 인터 예측 정보를 인코딩/디코딩하는 것이 아닌, 인코딩 완료된 인접하는 인터 예측된 예측 블록, 혹은 상이한 화상의 인터 예측된 예측 블록의 인터 예측 정보를 사용하는 모드이다.
도 37은 머지·모드에서의 인접하는 예측 블록의 위치를 설명하는 도면이다. 머지·모드는 좌측에 인접하는 예측 블록 A, 상측에 인접하는 예측 블록 B, 우측 위에 인접하는 예측 블록 C, 좌측 아래에 인접하는 예측 블록 D에 더하여, 도 9를 참조하여 설명한 상이한 시간의 동일 위치 혹은 그 근방의 예측 블록 col(T0~T3 중의 어느 하나)의 5개의 예측 블록을 후보로 한다. 동영상 인코딩 장치의 인터 예측 정보 추정부(104), 및 동영상 디코딩 장치의 인터 예측 정보 추정부(205)는 이들의 5개의 후보를 인코딩측과 디코딩측에서 공통의 규정 순서로 머지 후보 리스트에 등록하고, 동영상 인코딩 장치의 인터 예측 정보 추정부(104)가 머지 후보 리스트의 요소를 특정하는 머지·인덱스를 결정하여 제1의 인코딩 비트열 생성부를 경유하여 인코딩하고, 동영상 디코딩 장치의 인터 예측 정보 추정부(205)는 제1인코딩 비트열 디코딩부(202)에서 디코딩된 머지·인덱스가 공급되어, 그 머지·인덱스에 상응한 예측 블록을 머지 후보 리스트에서 선택하고, 그 선택된 예측 블록의 예측 모드, 참조 인덱스, 움직임 벡터 등의 인터 예측 정보를 사용하여, 움직임 보상 예측을 한다.
도 38은 도 1의 동영상 인코딩 장치의 인터 예측 정보 추정부(104)의 상세한 구성을 나타내는 도면이다. 또한, 도 39는 도 2의 동영상 디코딩 장치의 인터 예측 정보 추정부(205)의 상세한 구성을 나타내는 도면이다.
도 38 및 도 39의 굵은 테두리선으로 둘러싸이는 부분은 각각, 인터 예측 정보 추정부(104) 및 인터 예측 정보 추정부(205)를 나타내고 있다.
또한, 이들의 내부의 굵은 점선으로 둘러싸이는 부분은 후술하는 인터 예측 정보 추정 방법의 동작부를 나타내고 있고, 실시형태에 따른 동영상 인코딩 장치와 대응하는 동영상 디코딩 장치에도 동일하게 설치되어, 인코딩과 디코딩에서 모순되지 않는 동일한 판정 결과를 얻을 수 있도록 하고 있다.
인터 예측 정보 추정부(104)는, 머지 후보 생성부(130), 머지 후보 등록부(131), 머지 후보 동일 판정부(132), 및 인코딩 정보 선택부(133)를 포함한다.
인터 예측 정보 추정부(205)는, 머지 후보 생성부(230), 머지 후보 등록부(231), 머지 후보 동일 판정부(232), 및 인코딩 정보 선택부(233)를 포함한다.
도 40은 동영상 인코딩 장치의 인터 예측 정보 추정부(104) 및 동영상 디코딩 장치의 인터 예측 정보 추정부(205)에서 공통되는 기능을 갖는 머지 후보의 도출 및 머지 후보 리스트의 구축 처리의 흐름을 나타내는 플로차트이다. 이하, 제과정을 순서에 따라 설명한다.
동영상 인코딩 장치의 인터 예측 정보 추정부(104)의 머지 후보 생성부(130) 및 동영상 디코딩 장치의 인터 예측 정보 추정부(205)의 머지 후보 생성부(230)에서는, 주위에 인접하는 예측 블록 A, B, C, D로부터의 머지 후보가 되는 예측 블록을 리스트마다 도출하고, 이용할 수 있는지 여부를 나타내는 플래그 availableFlagN, 및 움직임 벡터 mvLXN, 참조 인덱스 refIdxLXN, LN 예측이 진행되는지 여부를 나타내는 LN 예측 플래그 PredFlagLXN을 출력한다(N=A, B, C, D)(도 40의 S401). 또한, L0일 때 X는 0, L1일 때 X는 1로 한다(이하 동일). 이용할 수 있는지 여부를 나타내는 플래그 availableFlagLXN, 및 움직임 벡터 mvLXN, 참조 인덱스 refIdxLXN, LN 예측 플래그 PredFlagLXN(N은 A, B, C, D, 이하 동일)을 도출하는 공통의 도출 처리 순서를 도 41의 플로차트를 참조하여 나중에 상세하게 설명한다.
이어서, 상이한 시간의 머지 후보를 도출한다. 상이한 시간의 머지 후보의 인코딩 정보를 사용하여 인터 예측을 하는 경우에는, 쌍예측을 하기 위해, L0과 L1의 2개 인코딩 정보를 도출한다. 먼저, 동영상 인코딩 장치의 인터 예측 정보 추정부(104)의 머지 후보 생성부(130) 및 동영상 디코딩 장치의 인터 예측 정보 추정부(205)의 머지 후보 생성부(230)에서는, 상이한 시간의 머지 후보의 참조 인덱스 refIdxLXCol을 결정하고, 출력한다(도 40의 S402). 여기서는, L0, L1 각각에 있어서, 인코딩 완료된 주위의 예측 블록의 인코딩 정보를 조사하여 그 중에서 가장 많이 발생하고 있는 참조 인덱스의 값을 참조 인덱스 refIdxLXCol의 값으로서 설정한다. 가장 많이 발생하고 있는 참조 인덱스가 동일수 존재하는 경우에는, 참조 인덱스의 값이 작은 쪽을 참조 인덱스 refIdxLXCol의 값으로서 설정하고, 참조 인덱스가 존재하지 않은 경우(주위의 예측 블록을 이용할 수 없거나, 인트라 예측 모드인 경우), 참조 인덱스 refIdxLXCol의 값을 0으로 한다.
이어서, 동영상 인코딩 장치의 인터 예측 정보 추정부(104)의 머지 후보 생성부(130) 및 동영상 디코딩 장치의 인터 예측 정보 추정부(205)의 머지 후보 생성부(230)에서는, 상이한 시간의 화상으로부터의 예측 움직임 벡터의 후보를 도출하고, 이용할 수 있는지 여부를 나타내는 플래그 availableFlagCol, 크로스되어 있는지 여부를 나타내는 플래그 mvCrossFlag, 및 움직임 벡터 mvLXCol을 출력한다(도 40의 S403). 이들의 도출 처리 순서는 도 24~29와 도 22의 플로차트를 참조하여 설명한 것과 동일한 방법이다. 단, 머지 모드에 있어서의 도 22에 의한 MV의 스케일링에 있어서는, 단계 S402에서 도출한 참조 인덱스 refIdxLXCol에 상응하여 도출한다.
이어서, 동영상 인코딩 장치의 인터 예측 정보 추정부(104)의 머지 후보 등록부(131) 및 동영상 디코딩 장치의 인터 예측 정보 추정부(205)의 머지 후보 등록부(231)에서는, 머지 후보 리스트 mergeCandList를 작성하고, 예측 벡터의 후보 mvLXN(N은 A, B, C, D 또는 Col, 이하 동일)을 추가한다(도 40의 S404). 이들의 등록 처리 순서를 도 42~45의 플로차트를 참조하여 나중에 상세하게 설명한다.
이어서, 동영상 인코딩 장치의 인터 예측 정보 추정부(104)의 머지 후보 동일 판정부(132) 및 동영상 디코딩 장치의 인터 예측 정보 추정부(205)의 머지 후보 동일 판정부(232)에서는, 머지 후보 리스트 mergeCandList 내에서, 머지 후보가 동일 참조 인덱스의 움직임 벡터가 동일값을 갖고 있는 경우에, 가장 작은 순번의 머지 후보를 제외하고 그 움직임 벡터를 제거한다(도 40의 S405).
[주변의 예측 블록으로부터 머지의 후보를 도출(도 40의 S401)]
도 41의 플로차트를 참조하여, 도 40의 S401의 처리 순서인 주변에 인접하는 예측 블록 그룹 N으로부터의 예측 블록 N의 도출 방법에 대해 설명한다. 첨자 X에는 참조 리스트를 나타내는 0 또는 1, N에는 인접하는 예측 블록 그룹의 영역을 나타내는 A(좌측), B(상측), C(우측 위) 또는 D(좌측 아래)가 들어간다.
도 40에서, 변수 N=A로서 인코딩/디코딩 대상의 예측 블록의 좌측에 인접하는 예측 블록을, 변수 N=B로서 상측에 인접하는 예측 블록을, 변수 N=C로서 우측 위에 인접하는 예측 블록을, N=D로서 좌측 아래에 인접하는 예측 블록을 조사하고 나서 예측 움직임 벡터의 후보를, 각각 이하의 순서로 도출한다(S4101~S4110).
먼저, 인코딩/디코딩 대상의 예측 블록에 인접하는 예측 블록을 특정하고, 각각의 예측 블록 N을 이용할 수 있는 경우에는 인코딩 정보를 취득한다(S4102).
인접하는 예측 블록 N을 이용할 수 없거나(S4103의 YES), 예측 블록 N의 인코딩 모드 PredMode가 인트라(MODE_INTRA)인 경우(S4104의 YES), 플래그 availableFlagN은 0으로 설정하고(S4105), mvLXN은 (0, 0)으로 설정한다(S4106).
한편, 인접하는 예측 블록 N을 이용할 수 있고(S4103의 NO), 예측 블록 N의 인코딩 모드 PredMode가 인트라(MODE_INTRA)가 아닌 경우(S4104의 NO), 플래그 availableFlagN은 1로 설정하고(S4107), 예측 블록 N의 인터 예측 정보를 취득한다. 즉, 예측 블록 N의 움직임 벡터 mvLXN, 참조 인덱스 refIdxLX[xN, yN], LX로부터의 예측을 진행할지 여부를 나타내는 플래그 PredFlagLX[xN, yN]가 mvLXN, refIdxLXN, predFlagLXN에 각각 할당된다(S4108, S4109, S4110). 여기서, X는 0과 1이고, L0과 L1의 인터 예측 정보를 취득한다. 또한, 가중 예측이 진행되고, 예측 블록 단위로 가중 계수가 설정되는 경우에는, 가중 계수도 취득한다. 또한, 인터레이스 인코딩이 진행되고, 예측 블록 단위로, 프레임 모드와 필드 모드가 전환되는 경우에는, 프레임/필드의 전환 모드도 취득한다. 또한, 인터 예측 정보 이외의 양자화 파라미터 등을 취득할 수도 있다.
이상의 단계 S4102~S4110의 처리를 N=A, B, C, D에 대해 반복한다(S4101~S4111).
[예측 블록의 후보를 머지 후보 리스트에 추가(도 40의 S404)]
도 37, 도 9를 참조하여 설명한 머지 후보가 되는 예측 블록의 후보를 머지 후보 리스트에 추가하는 방법에 대해 설명한다. 도 42는 머지 후보 리스트로의 머지 후보가 되는 예측 블록의 후보 추가 처리 순서를 나타내는 플로차트이다. 이 방식에서는, 우선 순위를 매겨, 우선 순위가 높은 것부터 머지 후보 리스트 mergeCandList에 예측 움직임 벡터의 후보를 등록하는 것에 의해, 머지·인덱스 merge_idx[x0][y0]의 부호량을 삭감한다. 우선 순위가 높은 요소를 머지 후보 리스트의 전방에 배치하는 것에 의해, 부호량을 삭감한다. 예를 들면, 머지 후보 리스트 mergeCandList의 요소가 5개인 경우, 머지 후보 리스트의 인덱스 0을 "0", 인덱스 1을 "10", 인덱스 2를 "110", 인덱스 3을 "1110", 인덱스4를 "11110"로 하는 것에 의해, 인덱스 0을 나타내는 부호량이 1비트가 되고, 인덱스 0에 발생 빈도가 높은 것으로 생각되는 요소를 등록하는 것에 의해, 부호량을 삭감한다.
머지 후보 리스트 mergeCandList는 리스트 구조를 이루고, 머지 후보 리스트 내부의 소재를 나타내는 머지·인덱스와, 인덱스에 대응하는 예측 움직임 벡터의 후보를 요소로서 저장하는 기억 영역이 마련되어 있다. 머지·인덱스의 숫자는 0으로부터 개시되고, 머지 후보 리스트 mergeCandList의 기억 영역에, 예측 움직임 벡터의 후보가 저장된다. 이후의 처리에서는, 머지 후보 리스트 mergeCandList에 등록된 머지·인덱스 i의 머지 후보가 되는 예측 블록은, mergeCandList[i]로 나타내고, 머지 후보 리스트 mergeCandList와는 배열 표기를 하는 것에 의해 구별하는 것으로 한다.
슬라이스, 시퀀스 또는 픽처마다 인코딩되는 플래그 mv_temporal_high_priority_flag가 1이고, mv_list_adaptive_idx_flag가 0인 경우(S4201의 YES, S4202의 NO), 우측 위 또는 좌측 아래에 인접하는 예측 블록 C, D보다, 상이한 시간의 픽처 동일 위치 혹은 그 근방의 예측 블록 col이 우선되고, 도 43에서 나타내는 플로차트의 처리 순서로, 머지 후보가 되는 예측 블록이 머지 후보 리스트에 등록된다(S4204).
또한, mv_temporal_high_priority_flag가 0이고, mv_list_adaptive_idx_flag가 0인 경우(S4201의 NO, S4203의 NO), 상이한 시간의 픽처 동일 위치 혹은 그 근방의 예측 블록으로부터의 머지 후보가 되는 예측 블록 col보다 우측 위 또는 좌측 아래에 인접하는 예측 블록 C, D가 우선되고, 도 44에서 나타내는 플로차트의 처리 순서로, 머지 후보가 되는 예측 블록이 머지 후보 리스트에 등록된다(S4205).
또한, mmv_list_adaptive_idx_flag가 1인 경우(S4202의 YES, S4203의 YES), 신뢰성이 높은 것으로 판단되는 머지 후보가 되는 예측 블록이 우선되고, 도 45에서 나타내는 플로차트의 처리 순서로, 머지 후보가 되는 예측 블록이 머지 후보 리스트에 등록된다(S4206).
전술한 바와 같이, 제2플래그 mv_temporal_high_priority_flag의 값은 인코딩 효율을 향상시키기 위해 프레임 또는 슬라이스마다 적응적으로 변경하여 인코딩된다. 인코딩/디코딩 대상 픽처와 가장 가까운 참조 픽처 사이의 거리가 가까운 경우에는, mv_temporal_high_priority_flag를 참(1)으로 하고, 인코딩/디코딩 대상 화상과 참조 픽처 사이의 거리가 먼 경우에는, 거짓(0)으로 설정하는 것에 의해, 머지·인덱스의 부호량을 삭감할 수 있다. 이 거리가 비교적 작은 경우에는 상이한 시간으로부터의 머지 후보가 후보로서 비교적 적합한 것으로 판단한다. 예를 들면, frame rate가 30Hz인 경우, 인코딩/디코딩 대상 픽처와 가장 가까운 참조 픽처 사이의 거리가 X프레임 이내(X=1~3정도)인 경우, mv_temporal_high_priority_flag를 참(1)으로 하고, 인코딩/디코딩 대상 화상과 참조 픽처 사이의 거리가 X프레임보다 큰 것 경우에는, 거짓(0)으로 설정하는 것에 의해, 머지·인덱스의 부호량을 삭감한다. 이 임계값 X는 시퀀스의 내용에 따라 설정하는 것에 의해, 더욱 부호량을 삭감할 수 있다. 움직임이 크고 복잡한 시퀀스의 경우, 임계값을 작게 하는 것에 의해, 시간 방향의 머지 후보의 우선 순위를 낮추는 것에 의해, 인코딩 효율을 향상할 수 있다.
도 43은 슬라이스, 시퀀스 또는 픽처마다 인코딩되는 플래그 mv_temporal_high_priority_flag가 1이고, mv_list_adaptive_idx_flag가 0인 경우(S4201의 YES, S4202의 NO)의 머지 후보 리스트 mergeCandList로의 머지 후보가 되는 예측 블록의 등록 처리 순서를 나타내는 플로차트이다.
먼저, availableFlagA가 1인 경우(S4301의 YES), 머지 후보 리스트 mergeCandList의 선두에 예측 블록 A를 머지 후보로서 등록한다(S4302).
이어서, availableFlagB가 1인 경우(S4303의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 B를 머지 후보로서 등록한다(S4304).
이어서, availableFlagCol이 1인 경우(S4305의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 col을 머지 후보로서 등록한다(S4306).
이어서, availableFlagC가 1인 경우(S4307의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 C를 머지 후보로서 등록한다(S4308).
이어서, availableFlagD가 1인 경우(S4309의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 D를 머지 후보로서 등록한다(S4310).
도 44는 슬라이스, 시퀀스 또는 픽처마다 인코딩되는 플래그 mv_temporal_high_priority_flag가 1이고, mv_list_adaptive_idx_flag가 0인 경우(S4201의 NO, S4203의 NO)의 머지 후보 리스트 mergeCandList로의 머지 후보가 되는 예측 블록의 등록 처리 순서를 나타내는 플로차트이다.
먼저, availableFlagA가 1인 경우(S4401의 YES), 머지 후보 리스트 mergeCandList의 선두에 예측 블록 A를 머지 후보로서 등록한다(S4402).
이어서, availableFlagB가 1인 경우(S4403의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 B를 머지 후보로서 등록한다(S4404).
이어서, availableFlagC가 1인 경우(S4405의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 C를 머지 후보로서 등록한다(S4406).
이어서, availableFlagD가 1인 경우(S4407의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 D를 머지 후보로서 등록한다(S4408).
이어서, availableFlagCol이 1인 경우(S4409의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 col을 머지 후보로서 등록한다(S4410).
도 45는 슬라이스, 시퀀스 또는 픽처마다 인코딩되는 플래그 mv_temporal_high_priority_flag가 0 또는 1이고, mv_list_adaptive_idx_flag가 1인 경우(S4201의 YES, S4202의 YES)의 머지 후보 리스트 mergeCandList로의 머지 후보가 되는 예측 블록의 등록 처리 순서를 나타내는 플로차트이다.
먼저, availableFlagA가 1인 경우(S4501의 YES), 머지 후보 리스트 mergeCandList의 선두에 예측 블록 A를 머지 후보로서 등록한다(S4502).
이어서, availableFlagB가 1인 경우(S4503의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 B를 머지 후보로서 등록한다(S4504).
이어서, availableFlagCol이 1이고 MvXCross가 1인 경우(S4505의 YES, S4506의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 col을 머지 후보로서 등록한다(S4507).
이어서, availableFlagC가 1인 경우(S4508의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 C를 머지 후보로서 등록한다(S4509).
이어서, availableFlagD가 1인 경우(S4510의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 D를 머지 후보로서 등록한다(S4511).
이어서, availableFlagCol이 1이고 MvXCross가 0인 경우(S4511의 YES, S4513의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 col을 머지 후보로서 등록한다(S4514).
도 42의 머지 후보 리스트 mergeCandList로의 예측 움직임 벡터의 후보 등록 처리 순서에 있어서는, mv_temporal_high_priority_flag가 1일 때, 우측 위 또는 좌측 아래에 인접하는 예측 블록 C, D보다 시간적인 예측 블록 col을 우선적으로 머지 후보 리스트의 전방에 등록하고, mv_temporal_high_priority_flag가 0일 때, 시간적인 예측 블록 col보다 우측 위 또는 좌측 아래에 인접하는 예측 블록 C, D를 우선적으로 머지 후보 리스트의 전방에 등록하는 것에 의해, 머지 인덱스의 부호량을 삭감한다.
도 45의 머지 후보 리스트 mergeCandList로의 예측 블록의 후보 등록 처리 순서에 있어서는, 플래그 mvCross가 1, 즉 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처를 횡단하여 참조 화상을 지시하고 있는 colPu의 움직임 벡터 mvCol로부터 도출된 움직임 벡터를 사용하는 머지 후보가, 플래그 mvCross가 0, 즉 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처를 횡단하지 않고 참조 화상을 지시하고 있는 colPu의 움직임 벡터 mvCol로부터 도출된 움직임 벡터를 사용하는 머지 후보보다 머지 후보로서 적합한 것으로 판단하고, MvCross가 1일 때, 시간적인 예측 블록 col의 우선 순위를 높여 머지 후보 리스트의 전방에 등록하고, MvCross가 0일 때, 시간적인 예측 블록 col의 우선 순위를 낮춰서 머지 후보 리스트의 후방에 등록하는 것에 의해, 부호량을 삭감한다. 즉 상이한 시간의 화상 예측 블록 col의 인코딩 정보의 값에 상응하여 우선 순위를 변경하여 머지 후보 리스트에 등록하는 순서를 변경하는 것에 의해, 부호량을 삭감한다.
또한, 머지 모드에 있어서, 좌측에 인접하는 예측 블록 A 및 상측에 인접하는 예측 블록 B는 인코딩/디코딩 대상의 예측 블록과 일체가 되는 움직임이 되는 경우가 많기 때문에, 인터 예측 정보를 취득할 수 있는 경우에는, 다른 예측 블록 C, D, Col보다 우선적으로 머지 후보 리스트의 전방에 등록한다.
또한, 도 45 대신에, 도 46의 처리 순서로 머지 후보를 등록할 수도 있다.
도 46은 슬라이스, 시퀀스 또는 픽처마다 인코딩되는 플래그 mv_temporal_high_priority_flag가 0 또는 1이고, mv_list_adaptive_idx_flag가 1인 경우(S4202의 YES, S4203의 YES)의 머지 후보 리스트 mergeCandList로의 머지 후보가 되는 예측 블록의 등록 처리 순서를 나타내는 플로차트이다.
먼저, availableFlagA가 1이고, predFlagL0A와 predFlagL1A가 모두 1인 경우(S4601의 YES, S4602의 YES), 머지 후보 리스트 mergeCandList의 선두에 쌍예측의 예측 블록 A를 머지 후보로서 등록한다(S4603).
이어서, availableFlagB가 1이고, predFlagL0B와 predFlagL1B가 모두 1인 경우(S4604의 YES, S4605의 YES), 머지 후보 리스트 mergeCandList의 끝에 쌍예측의 예측 블록 B를 머지 후보로서 등록한다(S4606).
이어서, availableFlagA가 1이고, predFlagL0A와 predFlagL1A의 어느 하나가 0인 경우(S4607의 YES, S4608의 YES), 머지 후보 리스트 mergeCandList의 끝에 쌍예측이 아닌 예측 블록 A를 머지 후보로서 등록한다(S4609).
이어서, availableFlagB가 1이고, predFlagL0B와 predFlagL1B의 어느 하나가 0인 경우(S4610의 YES, S4611의 YES), 머지 후보 리스트 mergeCandList의 끝에 쌍예측이 아닌 예측 블록 B를 머지 후보로서 등록한다(S4612).
이어서, availableFlagC가 1이고, predFlagL0C와 predFlagL1C가 모두 1인 경우(S4613의 YES, S4614의 YES), 머지 후보 리스트 mergeCandList의 끝에 쌍예측의 예측 블록 C를 머지 후보로서 등록한다(S4615).
이어서, availableFlagD가 1이고, predFlagL0D와 predFlagL1D가 모두 1인 경우(S4616의 YES, S4617의 YES), 머지 후보 리스트 mergeCandList의 끝에 쌍예측의 예측 블록 D를 머지 후보로서 등록한다(S4618).
이어서, availableFlagCol이 1인 경우(S4619의 YES), 머지 후보 리스트 mergeCandList의 끝에 예측 블록 col을 머지 후보로서 등록한다(S4620).
이어서, availableFlagC가 1이고, predFlagL0C와 predFlagL1C의 어느 하나가 0인 경우(S4621의 YES, S4622의 YES), 머지 후보 리스트 mergeCandList의 끝에 쌍예측이 아닌 예측 블록 C를 머지 후보로서 등록한다(S4623).
이어서, availableFlagD가 1이고, predFlagL0D와 predFlagL1D의 어느 하나가 0인 경우(S4624의 YES, S4625의 YES), 머지 후보 리스트 mergeCandList의 끝에 쌍예측이 아닌 예측 블록 C를 머지 후보로서 등록한다(S4626).
도 46의 머지 후보 리스트 mergeCandList로의 예측 블록의 후보 등록 처리 순서에 있어서는, 주위에 인접하는 예측 블록 N(N은 A, B, C, D)의 예측 플래그 PredFlagL0N과 predFlagL1N이 모두 1, 즉 쌍예측을 이용하여 움직임 보상이 진행되고 있는 머지 후보가, 주위에 인접하는 예측 블록 N(N은 A, B, C, D)의 예측 플래그 PredFlagL0N과 predFlagL1N의 어느 하나가 0, 즉 쌍예측이 아닌 L0 예측, L1 예측 등의 단방향 예측을 이용하여 움직임 보상이 진행되고 있는 머지 후보보다 머지 후보로서 적합한 것으로 판단하고, 쌍예측이 진행되는 머지 후보의 우선 순위를 높여서 머지 후보 리스트의 전방에 등록하고, 쌍예측이 진행되지 않는 머지 후보의 우선 순위를 낮춰서 머지 후보 리스트의 후방에 등록하는 것에 의해, 부호량을 삭감한다. 즉 주위에 인접하는 예측 블록 N의 인코딩 정보의 값에 상응하여 우선 순위를 변경하여 머지 후보 리스트에 등록하는 순서를 변경하는 것에 의해, 부호량을 삭감한다.
또한, 도 45, 도 46 대신에, 도 47의 처리 순서로 인코딩/디코딩 대상 화상과 머지 후보의 참조 화상의 거리에 상응하여 우선 순위를 매겨 머지 후보를 등록할 수도 있다.
도 47은 슬라이스, 시퀀스 또는 픽처마다 인코딩되는 플래그 mv_temporal_high_priority_flag가 0 또는 1이고, mv_list_adaptive_idx_flag가 1인 경우(S4202의 YES, S4203의 YES)의 머지 후보 리스트 mergeCandList로의 머지 후보가 되는 예측 블록의 등록 처리 순서를 나타내는 플로차트이다.
먼저, 인코딩/디코딩 대상 화상의 POC와 예측 블록 A의 인터 예측에서 사용되는 참조 픽처의 POC의 차분의 절대값을 도출하고, 인터 예측 화상간 거리 distA로 한다(S4701). 마찬가지로, 인코딩/디코딩 대상 화상의 POC와 예측 블록 B, C, D, Col의 인터 예측에서 사용되는 참조 픽처의 POC의 차분의 절대값을 각각 도출하고, 인터 예측 화상간 거리 distB, distC, distD, distCol로 한다(S4701~S4705). 예측 블록 N(N=A, B, C, D 또는 Col)이 쌍예측인 경우에는, L0용의 인터 예측 화상간 거리와 L1용의 인터 예측 화상간 거리를 도출하고, 작은 쪽을 선택하여, 인터 예측 화상간 거리 distN(N=A, B, C, D 또는 Col)로 한다. 예측 블록 N(N=A, B, C, D 또는 Col)이 L0 예측, 또는 L1 예측인 경우에는, 사용한 L0용의 인터 예측 화상간 거리 또는 L1용의 인터 예측 화상간 거리를 도출하고, 작은 쪽을 선택하여, 인터 예측 화상간 거리 distN(N=A, B, C, D 또는 Col)로 한다.
또한, 예측 블록 N(N=A, B, C, D 또는 Col)을 이용할 수 없는 경우, 및, 인트라 예측인 경우에는, 인터 예측 화상간 거리 distN(N=A, B, C, D 또는 Col)을 distN이 취할 수 있는 최대치로 설정한다.
이어서, 도출한 예측 블록 A, B, C, D, Col의 인터 예측 화상간 거리 distA, distB, distC, distD, distCol의 값에 상응하여, 머지 후보 리스트 mergeCandList에 머지 후보 A, B, C, D, Col을 추가한다(S4706~S4720).
먼저, 도출한 예측 블록 A, B의 인터 예측 화상간 거리 distA, distB의 값이 작은 예측 블록부터 순차 머지 후보 리스트 mergeCandList에 머지 후보 A, B를 추가한다(S4706~S4708).
예측 블록 A의 인터 예측 화상간 거리 distA의 값과 예측 블록 B의 인터 예측 화상간 거리 distB의 값을 비교하고(S4706), distA가 distB 이하인 경우, 머지 후보 리스트 mergeCandList에 예측 블록 A, B의 순서로 추가한다(S4707). 즉, 예측 블록 A를 추가하고 나서 그 후방에 예측 블록 B를 추가한다. distB의 값이 distA의 값보다 작은 경우, 머지 후보 리스트 mergeCandList에 예측 블록 B, A의 순서로 추가한다(S4708).
이어서, 도출한 예측 블록 C, D, Col의 인터 예측 화상간 거리 distC, distD, Col의 값이 작은 예측 블록부터 순차 머지 후보 리스트 mergeCandList에 머지 후보 C, D, Col을 추가한다(S4709~S4720).
도 47의 머지 후보 리스트 mergeCandList로의 예측 블록의 후보 등록 처리 순서에 있어서는, 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처와 머지 후보의 참조 픽처의 거리가 작은 머지 후보가, 인코딩/디코딩 대상의 예측 블록을 포함하는 픽처와 머지 후보의 참조 픽처의 거리가 큰 머지 후보보다 머지 후보로서 적합한 것으로 판단하고, 거리가 작은 머지 후보의 우선 순위를 거리가 큰 머지 후보의 우선 순위보다 높여서 머지 후보 리스트의 전방에 등록하는 것에 의해, 부호량을 삭감한다. 즉 주위에 인접하는 예측 블록 N의 인코딩 정보의 값에 상응하여 우선 순위를 변경하여 머지 후보 리스트에 등록하는 순서를 변경하는 것에 의해, 부호량을 삭감한다.
또한, 머지 모드에 있어서, 머지 후보가 되는 예측 블록의 인코딩 정보를 확인하고, 많은 것부터 차례로 우선 순위를 매길 수도 있다.
또한, 머지 모드에 있어서, 머지 후보가 되는 예측 블록의 크기를 확인하고, 큰 것부터 차례로 우선 순위를 매길 수도 있다.
도 38을 다시 참조하여, 동영상 인코딩 장치의 인터 예측 정보 추정부(104)의 인코딩 정보 선택부(133)에서는, 머지 후보 리스트에 등록되어 있는 머지 후보 중에서, 최적의 후보를 선택하고, 머지·인덱스 및 머지·인덱스에 대응하는 인코딩 정보를 출력한다.
최적의 후보의 선택에 있어서는, 예측 방법 결정부(106)와 동일한 방법을 이용할 수 있다. 각각의 머지 후보마다 부호량과 인코딩 변형을 도출하고, 가장 적은 발생 부호량과 인코딩 변형이 되는 인코딩 정보가 결정된다. 각각의 머지 후보마다 머지·인덱스 merge_idx의 인코딩이 진행되고, 인코딩 정보의 부호량을 도출한다. 또한, 각각의 머지 후보마다 움직임 보상 예측부(105)와 동일한 방법으로 각 머지 후보의 인코딩 정보에 상응하여 움직임 보상한 움직임 보상 예측 신호와, 화상 메모리(101)로부터 공급되는 인코딩 대상의 화상 신호의 예측 잔차 신호를 인코딩한 예측 잔차 신호의 부호량을 도출한다. 인코딩 정보(머지·인덱스)의 부호량과 예측 잔차 신호의 부호량이 가산된 총 발생 부호량을 도출하고, 제1의 평가값으로 한다.
또한, 이와 같은 차분 화상을 인코딩한 후에, 변형량 평가를 위해 디코딩하고, 인코딩에 의해 생기는 원화상과의 오차를 나타내는 비율로서 인코딩 변형이 도출된다. 이들의 총 발생 부호량과 인코딩 변형을 머지 후보마다 비교하는 것에 의해, 가장 적은 발생 부호량과 인코딩 변형이 되는 인코딩 정보가 결정된다. 결정된 인코딩 정보에 대응하는 머지·인덱스가, 예측 블록 단위의 제2의 신택스 패턴으로 표시되는 플래그 merge_idx로서 인코딩된다. 또한, 여기서 도출되는 발생 부호량은, 인코딩 과정을 시뮬레이트한 것인 것이 바람직하지만, 간편하게 근사하거나, 어림셈하는 것도 가능하다.
한편, 도 39에 있어서, 동영상 인코딩 장치의 인터 예측 정보 추정부(205)의 인코딩 정보 선택부(233)에서는, 머지 후보 리스트에 등록되어 있는 머지 후보 중에서, 공급된 머지 인덱스에 대응하는 인코딩 정보를 선택하고, 움직임 보상 예측부(206)에 공급하는 한편, 인코딩 정보 저장 메모리(209)에 저장한다.
이상으로 설명한 바와 같이, 실시형태에 따른 움직임 벡터의 예측 방법에 의하면, 픽처를 직사각형 블록으로 분할하고, 픽처 사이에서 블록 단위로 움직임 추정, 보상을 하는 동영상 인코딩에 있어서의 움직임 벡터의 인코딩 효율을 향상시키기 위해서, 이미 인코딩 완료된 예측 블록의 움직임 벡터로부터 예측을 진행하고, 처리 대상의 블록의 움직임 벡터와 그 예측값의 차분 벡터를 인코딩하는 것에 의해 부호량을 삭감할 수 있다. 그 때, 얻어지는 복수의 예측 움직임 벡터는 예측 움직임 벡터 리스트에 우선 순위를 매겨져서 등록되지만, 본 실시예에서 설명한 바와 같이, 우선 순위에 따라, 등록 순서를 변경해도 좋고, 기정의 순서로 등록한 후, 리스트 내를 우선 순위에 따라, 재배열해도 좋고, 본 발명에 포함된다. 예를 들면, 예측 움직임 벡터 리스트의 인덱스 0에 좌측에 인접하는 제1의 예측 블록 그룹 A로부터 도출한 예측 움직임 벡터, 인덱스 1에 상측에 인접하는 제2의 예측 블록 그룹 B로부터 도출한 예측 움직임 벡터, 인덱스 2에 상이한 시간의 제3의 예측 블록 그룹 C로부터 도출한 예측 움직임 벡터를 일단 등록하고, 그 후, 필요에 따라, 우선 순위에 따라 재배열한다.
또한, 실시형태에 따른 움직임 벡터의 예측 방법에 의하면, 픽처를 직사각형 블록으로 분할하고, 픽처 사이에서 블록 단위로 움직임 추정, 보상을 하는 동영상 인코딩에 있어서의 인코딩 정보의 인코딩 효율을 향상시키기 위해, 이미 인코딩 완료된 블록의 인코딩 정보를 사용하는 것에 의해 부호량을 삭감할 수 있다. 그 때, 얻어지는 복수의 머지 후보가 되는 예측 블록은 머지 후보 리스트에 우선 순위를 매겨져서 등록되지만, 본 실시예에서 설명한 바와 같이, 우선 순위에 따라, 등록 순서를 변경해도 좋고, 기정의 순서로 등록한 후, 리스트 내를 우선 순위에 따라, 재배열해도 좋고, 발명에 포함된다. 예를 들면, 머지 후보 리스트의 인덱스가 0인 위치에 머지 후보 A, 인덱스가 1인 위치에 머지 후보B, 인덱스가 2인 위치에 머지 후보 Col, 인덱스가 3인 위치에 머지 후보 C, 인덱스가 4인 위치에 머지 후보 D를 일단 등록하고, 그 후, 필요에 따라, 우선 순위에 따라 재배열한다. 또한, 머지 후보 리스트에 등록되는 머지 후보의 정보는, 구체적으로는, 해당 머지 후보의 모든 인코딩 정보 자체여도 좋고, 머지 후보의 인코딩 정보를 참조할 수 있는 메모리의 포인터나 어드레스 정보여도 좋다.
본 발명의 동영상 인코딩 장치의 또 다른 태양으로서, 이하의 것이 있다.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상을 인코딩하는 동영상 인코딩 장치이고, 인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 인접하는 인코딩 완료된 블록, 및 인코딩 대상 블록과는 상이한 픽처 내의 상기 인코딩 대상 블록과 동일 또는 주변의 위치에 있는 인코딩 완료된 블록 중의 어느 하나로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 생성하는 예측 움직임 벡터 후보 생성부를 구비하고, 상기 예측 움직임 벡터 후보 생성부는, 각 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록할 때, 픽처 또는 슬라이스 단위로, 우선 순위를 변경하여 예측 움직임 벡터 후보 리스트에 등록하는 것을 특징으로 하는 동영상 인코딩 장치.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상을 인코딩하는 동영상 인코딩 장치이고, 인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 인접하는 인코딩 완료된 블록, 및 인코딩 대상 블록과는 상이한 픽처 내의 상기 인코딩 대상 블록과 동일 또는 주변의 위치에 있는 인코딩 완료된 블록 중의 어느 하나로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 생성하는 예측 움직임 벡터 후보 생성부를 구비하고, 상기 예측 움직임 벡터 후보 생성부는, 각 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록할 때, 블록 단위로, 우선 순위를 변경하여 예측 움직임 벡터 후보 리스트에 등록하는 것을 특징으로 하는 동영상 인코딩 장치.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상을 인코딩하는 동영상 인코딩 장치이고,
인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 인접하는 인코딩 완료된 블록, 및 인코딩 대상 블록과는 상이한 픽처 내의 상기 인코딩 대상 블록과 동일 또는 주변의 위치에 있는 인코딩 완료된 블록 중의 어느 하나의 인터 예측 정보를 포함하는 인코딩 정보로부터, 복수의 인터 예측 정보를 포함하는 인코딩 정보인 머지의 후보를 생성하는 인터 예측 정보 생성부를 구비하고, 상기 인터 예측 정보 생성부는, 각 머지의 후보를 예측 머지 후보 리스트에 등록할 때, 픽처 또는 슬라이스 단위로, 우선 순위를 변경하여 머지 후보 리스트에 등록하는 것을 특징으로 하는 동영상 인코딩 장치.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상을 인코딩하는 동영상 인코딩 장치이고, 인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 인접하는 인코딩 완료된 블록, 및 인코딩 대상 블록과는 상이한 픽처 내의 상기 인코딩 대상 블록과 동일 또는 주변의 위치에 있는 인코딩 완료된 블록 중의 어느 하나의 인터 예측 정보를 포함하는 인코딩 정보로부터, 복수의 인터 예측 정보를 포함하는 인코딩 정보인 머지의 후보를 생성하는 인터 예측 정보 생성부를 구비하고, 상기 인터 예측 정보 생성부는, 각 머지의 후보를 예측 머지 후보 리스트에 등록할 때, 블록 단위로, 우선 순위를 변경하여 머지 후보 리스트에 등록하는 것을 특징으로 하는 동영상 인코딩 장치.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상을 인코딩하는 동영상 인코딩 장치이고, 인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 인접하는 인코딩 완료된 블록, 및 인코딩 대상 블록과는 상이한 픽처 내의 상기 인코딩 대상 블록과 동일 또는 주변의 위치에 있는 인코딩 완료된 블록 중의 어느 하나의 인터 예측 정보를 포함하는 인코딩 정보로부터, 복수의 인터 예측 정보를 포함하는 인코딩 정보인 머지의 후보를 생성하는 인터 예측 정보 생성부를 구비하고, 상기 인터 예측 정보 생성부는, 각 머지의 후보를 머지 후보 리스트에 등록할 때, 공간 방향으로부터의 머지의 후보가 쌍예측으로 인터 예측되어 있는 경우, 상기 공간 방향으로부터의 머지 후보의 우선 순위를 높여서 머지 후보 리스트에 등록하는 것을 특징으로 하는 동영상 인코딩 장치.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상을 인코딩하는 동영상 인코딩 장치이고, 인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 인접하는 인코딩 완료된 블록, 및 인코딩 대상 블록과는 상이한 픽처 내의 상기 인코딩 대상 블록과 동일 또는 주변의 위치에 있는 인코딩 완료된 블록 중의 어느 하나의 인터 예측 정보를 포함하는 인코딩 정보로부터, 복수의 인터 예측 정보를 포함하는 인코딩 정보인 머지의 후보를 생성하는 인터 예측 정보 생성부를 구비하고, 상기 인터 예측 정보 생성부는, 각 머지의 후보를 머지 후보 리스트에 등록할 때, 인코딩 대상 화상과 참조 화상 사이의 거리가 짧은 머지의 후보를 다른 머지의 후보보다 우선 순위를 높여 머지 후보 리스트에 등록하는 것을 특징으로 하는 동영상 인코딩 장치.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상을 인코딩하는 동영상 인코딩 장치이고, 인코딩 대상 블록과 동일 픽처 내의 상기 인코딩 대상 블록과 인접하는 인코딩 완료된 블록, 및 인코딩 대상 블록과는 상이한 픽처 내의 상기 인코딩 대상 블록과 동일 또는 주변의 위치에 있는 인코딩 완료된 블록 중의 어느 하나로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 생성하는 예측 움직임 벡터 후보 생성부를 구비하고, 상기 예측 움직임 벡터 후보 생성부는, 공간 방향으로 예측 블록을 스캔할 때, 좌측의 인접 예측 블록 그룹, 및 상측의 인접 예측 블록 그룹의 각 인접 예측 블록에 대해,
1. 인코딩 대상의 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 동일 참조 프레임의 움직임 벡터가 존재하는지 여부,
2. 인코딩 대상의 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 동일 참조 프레임의 움직임 벡터가 존재하는지 여부,
3. 인코딩 대상의 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 상이한 참조 프레임의 움직임 벡터가 존재하는지 여부, 및
4. 인코딩 대상의 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 상이한 참조 프레임의 움직임 벡터가 존재하는지 여부의 우선 순서로 조건 판정을 진행하는 것을 특징으로 하는 동영상 인코딩 장치.
상기한 공간 방향의 예측 블록의 스캔에 있어서, 제1의 조건 판정이 최초의 예측 블록에 대해 종료하면 옆의 예측 블록으로 순차 진행하여 동일 조건 판정을 진행하고, 이후, 제2, 제3, 제4의 조건 판정의 각각에 대해 예측 블록을 순차 진행시키면서 동일 조건 판정을 진행하는 것을 특징으로 하는 동영상 인코딩 장치.
상기한 공간 방향의 예측 블록의 스캔에 있어서, 4개의 조건 판정 중, 제1과 제2의 조건 판정이 최초의 예측 블록에 대해 종료하면 옆의 예측 블록으로 순차 진행시켜 동일 조건 판정을 진행하고, 그 다음에, 제3과 제4의 조건 판정이 최초의 예측 블록에 대해 종료하면 옆의 예측 블록으로 순차 진행시켜 동일 조건 판정을 진행하는 것을 특징으로 하는 동영상 인코딩 장치.
상기한 공간 방향의 예측 블록의 스캔에 있어서, 4개의 조건 판정 중, 제1의 조건 판정이 최초의 예측 블록에 대해 종료하면 옆의 예측 블록으로 순차 진행시켜 동일 조건 판정을 진행하고, 그 다음에, 제2과 제3과 제4의 조건 판정이 최초의 예측 블록에 대해 종료하면 옆의 예측 블록으로 순차 진행시켜 동일 조건 판정을 진행하는 것을 특징으로 하는 동영상 인코딩 장치.
상기한 공간 방향의 예측 블록의 스캔에 있어서, 최초의 예측 블록에 대해 4개의 조건 판정 중의 어느 것에도 일치하지 않는 경우, 해당 예측 블록에는 조건에 일치하는 움직임 벡터는 존재하지 않는 것으로 판단하고, 옆의 예측 블록으로 순차 진행시켜 4개의 조건 판정 중의 어느 것에 일치하는지 여부의 판정을 진행하는 것을 특징으로 하는 동영상 인코딩 장치.
본 발명의 동영상 디코딩 장치의 또 다른 태양으로서, 이하의 것이 있다.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 장치이고, 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 인접하는 디코딩 완료된 블록, 및 디코딩 대상 블록과는 상이한 픽처 내의 상기 디코딩 대상 블록과 동일 또는 주변의 위치에 있는 디코딩 완료된 블록 중의 어느 하나로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 생성하는 예측 움직임 벡터 후보 생성부를 구비하고, 상기 예측 움직임 벡터 후보 생성부는, 각 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록할 때, 픽처 또는 슬라이스 단위로, 우선 순위를 변경하여 예측 움직임 벡터 후보 리스트에 등록하는 것을 특징으로 하는 동영상 디코딩 장치.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 장치이고, 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 인접하는 디코딩 완료된 블록, 및 디코딩 대상 블록과는 상이한 픽처 내의 상기 디코딩 대상 블록과 동일 또는 주변의 위치에 있는 디코딩 완료된 블록 중의 어느 하나로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 생성하는 예측 움직임 벡터 후보 생성부를 구비하고, 상기 예측 움직임 벡터 후보 생성부는, 각 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록할 때, 블록 단위로, 우선 순위를 변경하여 예측 움직임 벡터 후보 리스트에 등록하는 것을 특징으로 하는 동영상 디코딩 장치.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 장치이고, 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 인접하는 디코딩 완료된 블록, 및 디코딩 대상 블록과는 상이한 픽처 내의 상기 디코딩 대상 블록과 동일 또는 주변의 위치에 있는 디코딩 완료된 블록 중의 어느 하나의 인터 예측 정보를 포함하는 인코딩 정보로부터, 복수의 인터 예측 정보를 포함하는 인코딩 정보인 머지의 후보를 생성하는 인터 예측 정보 생성부를 구비하고, 상기 인터 예측 정보 생성부는, 각 머지의 후보를 예측 머지 후보 리스트에 등록할 때, 픽처 또는 슬라이스 단위로, 우선 순위를 변경하여 머지 후보 리스트에 등록하는 것을 특징으로 하는 동영상 디코딩 장치.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 장치이고, 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 인접하는 디코딩 완료된 블록, 및 디코딩 대상 블록과는 상이한 픽처 내의 상기 디코딩 대상 블록과 동일 또는 주변의 위치에 있는 인접하는 디코딩 완료된 블록 중의 어느 하나의 인터 예측 정보를 포함하는 인코딩 정보로부터, 복수의 인터 예측 정보를 포함하는 인코딩 정보인 머지의 후보를 생성하는 인터 예측 정보 생성부를 구비하고, 상기 인터 예측 정보 생성부는, 각 머지의 후보를 예측 머지 후보 리스트에 등록할 때, 블록 단위로, 우선 순위를 변경하여 머지 후보 리스트에 등록하는 것을 특징으로 하는 동영상 디코딩 장치.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 장치이고, 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 인접하는 디코딩 완료된 블록, 및 디코딩 대상 블록과는 상이한 픽처 내의 상기 디코딩 대상 블록과 동일 또는 주변의 위치에 있는 디코딩 완료된 블록 중의 어느 하나의 인터 예측 정보를 포함하는 인코딩 정보로부터, 복수의 인터 예측 정보를 포함하는 인코딩 정보인 머지의 후보를 생성하는 인터 예측 정보 생성부를 구비하고, 상기 인터 예측 정보 생성부는, 각 머지의 후보를 머지 후보 리스트에 등록할 때, 공간 방향으로부터의 머지의 후보가 쌍예측으로 인터 예측되어 있는 경우, 상기 공간 방향으로부터의 머지 후보의 우선 순위를 높여서 머지 후보 리스트에 등록하는 것을 특징으로 하는 동영상 디코딩 장치.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 장치이고, 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 인접하는 디코딩 완료된 블록, 및 디코딩 대상 블록과는 상이한 픽처 내의 상기 디코딩 대상 블록과 동일 또는 주변의 위치에 있는 디코딩 완료된 블록 중의 어느 하나의 인터 예측 정보를 포함하는 인코딩 정보로부터, 복수의 인터 예측 정보를 포함하는 인코딩 정보인 머지의 후보를 생성하는 인터 예측 정보 생성부를 구비하고, 상기 인터 예측 정보 생성부는, 각 머지의 후보를 머지 후보 리스트에 등록할 때, 인코딩 대상 화상과 참조 화상 사이의 거리가 짧은 머지의 후보 우선 순위를 높여 머지 후보 리스트에 등록하는 것을 특징으로 하는 동영상 디코딩 장치.
동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 장치이고, 디코딩 대상 블록과 동일 픽처 내의 상기 디코딩 대상 블록과 인접하는 디코딩 완료된 블록, 및 디코딩 대상 블록과는 상이한 픽처 내의 상기 디코딩 대상 블록과 동일 또는 주변의 위치에 있는 디코딩 완료된 블록 중의 어느 하나로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 생성하는 예측 움직임 벡터 후보 생성부를 구비하고, 상기 예측 움직임 벡터 후보 생성부는, 공간 방향으로 예측 블록을 스캔할 때, 좌측의 인접 예측 블록 그룹, 및 상측의 인접 예측 블록 그룹의 각 인접 예측 블록에 대해,
1. 디코딩 대상의 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 동일 참조 프레임의 움직임 벡터가 존재하는지 여부,
2. 디코딩 대상의 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 동일 참조 프레임의 움직임 벡터가 존재하는지 여부,
3. 디코딩 대상의 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 상이한 참조 프레임의 움직임 벡터가 존재하는지 여부, 및
4. 디코딩 대상의 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 상이한 참조 프레임의 움직임 벡터가 존재하는지 여부의 우선 순서로 조건 판정을 진행하는 것을 특징으로 하는 동영상 디코딩 장치.
상기한 공간 방향의 예측 블록의 스캔에 있어서, 제1의 조건 판정이 최초의 예측 블록에 대해 종료하면 옆의 예측 블록으로 순차 진행시켜 동일 조건 판정을 진행하고, 이후, 제2, 제3, 제4의 조건 판정의 각각에 대해 예측 블록을 순차 진행시키면서 동일 조건 판정을 진행하는 것을 특징으로 하는 동영상 디코딩 장치.
상기한 공간 방향의 예측 블록의 스캔에 있어서, 4개의 조건 판정 중, 제1과 제2의 조건 판정이 최초의 예측 블록에 대해 종료하면 옆의 예측 블록으로 순차 진행시켜 동일 조건 판정을 진행하고, 그 다음에, 제3과 제4의 조건 판정이 최초의 예측 블록에 대해 종료하면 옆의 예측 블록으로 순차 진행시켜 동일 조건 판정을 진행하는 것을 특징으로 하는 동영상 디코딩 장치.
상기한 공간 방향의 예측 블록의 스캔에 있어서, 4개의 조건 판정 중, 제1의 조건 판정이 최초의 예측 블록에 대해 종료하면 옆의 예측 블록으로 순차 진행시켜 동일 조건 판정을 진행하고, 그 다음에, 제2과 제3과 제4의 조건 판정이 최초의 예측 블록에 대해 종료하면 옆의 예측 블록으로 순차 진행시켜 동일 조건 판정을 진행하는 것을 특징으로 하는 동영상 디코딩 장치.
상기한 공간 방향의 예측 블록의 스캔에 있어서, 최초의 예측 블록에 대해 4개의 조건 판정 중의 어느 것에도 일치하지 않는 경우, 해당 예측 블록에는 조건에 일치하는 움직임 벡터는 존재하지 않는 것으로 판단하고, 옆의 예측 블록으로 순차 진행시켜 4개의 조건 판정 중의 어느 것에 일치하는지 여부의 판정을 진행하는 것을 특징으로 하는 동영상 디코딩 장치.
이상으로 설명한 실시형태에 따른 동영상 인코딩 장치가 출력하는 동영상의 인코딩 스트림은, 실시형태에서 사용된 인코딩 방법에 상응하여 디코딩 할 수 있도록 특정의 데이터 포맷을 갖고 있어, 동영상 인코딩 장치에 대응하는 동영상 디코딩 장치가 이 특정의 데이터 포맷의 인코딩 스트림을 디코딩 할 수 있다.
동영상 인코딩 장치와 동영상 디코딩 장치 사이에 서로 인코딩 스트림을 주고 받기 위해, 유선 또는 무선 네트워크가 사용되는 경우, 인코딩 스트림을 통신 채널의 전송 형태에 적합한 데이터 형식으로 변환하여 전송해도 좋다. 그 경우, 동영상 인코딩 장치가 출력하는 인코딩 스트림을 통신 채널의 전송 형태에 적합한 데이터 형식의 인코딩 데이터로 변환하여 네트워크에 송신하는 동영상 송신 장치와, 네트워크로부터 인코딩 데이터를 수신하여 인코딩 스트림으로 복원하여 동영상 디코딩 장치에 공급하는 동영상 수신 장치가 마련된다.
동영상 송신 장치는, 동영상 인코딩 장치가 출력하는 인코딩 스트림을 버퍼하는 메모리와, 인코딩 스트림을 패킷화하는 패킷 처리부와, 패킷화된 인코딩 데이터를 네트워크를 통해 송신하는 송신부를 포함한다. 동영상 수신 장치는, 패킷화된 인코딩 데이터를 네트워크를 통해 수신하는 수신부와, 수신된 인코딩 데이터를 버퍼하는 메모리와, 인코딩 데이터를 패킷 처리하여 인코딩 스트림을 생성하여, 동영상 디코딩 장치에 제공하는 패킷 처리부를 포함한다.
이상의 인코딩 및 디코딩에 관한 처리는, 하드웨어를 이용한 전송, 축적, 수신 장치로서 실현할 수 있는 것은 물론, ROM(read only memory)이나 플래시 메모리 등에 기억되어 있는 펌웨어나, 컴퓨터 등의 소프트웨어에 의해서도 실현할 수 있다. 그 펌웨어 프로그램, 소프트웨어 프로그램을 컴퓨터 등으로 판독 가능한 기록 매체에 기록하여 제공하거나, 유선 혹은 무선 네트워크를 통해 서버에서 제공하거나, 지상파 혹은 위성 디지털 방송의 데이터 방송으로서 제공하는 것도 가능하다.
이상, 본 발명을 실시형태를 바탕으로 설명했다. 실시형태는 예시이며, 이들의 각 구성 요소나 각 처리 프로세스의 조합에 다양한 변형예가 가능하고, 또한 그러한 변형예도 본 발명의 범위에 있는 것은 당업자에 있어서 자명하다.
본 발명은, 움직임 보상 예측을 이용한 동영상 인코딩 및 디코딩 기술에 이용할 수 있다.
101: 화상 메모리
102: 움직임 벡터 검출부
103: 차분 움직임 벡터 도출부
104: 인터 예측 정보 추정부
105: 움직임 보상 예측부
106: 예측 방법 결정부
107: 잔차 신호 생성부
108: 직교 변환·양자화부
109: 제1의 인코딩 비트열 생성부
110: 제2의 인코딩 비트열 생성부
111: 다중화부
112: 역양자화·역직교 변환부
113: 디코딩 화상 신호 중첩부
114: 인코딩 정보 저장 메모리
115: 디코딩 화상 메모리
120: 예측 움직임 벡터 후보 생성부
121: 예측 움직임 벡터 등록부
122: 예측 움직임 벡터 후보 동일 판정부
123: 예측 움직임 벡터 후보 부호량 도출부
124: 예측 움직임 벡터 선택부
125: 움직임 벡터 감산부
130: 머지 후보 생성부
131: 머지 후보 등록부
132: 머지 후보 동일 판정부
133: 인코딩 정보 선택부
201: 분리부
202: 제1인코딩 비트열 디코딩부
203: 제2인코딩 비트열 디코딩부
204: 움직임 벡터 도출부
205: 인터 예측 정보 추정부
206: 보상 예측부
207: 역양자화·역직교 변환부
208: 디코딩 화상 신호 중첩부
209: 인코딩 정보 저장 메모리
210: 디코딩 화상 메모리
220: 예측 움직임 벡터 후보 생성부
221: 예측 움직임 벡터 등록부
222: 예측 움직임 벡터 후보 동일 판정부
223: 예측 움직임 벡터 선택부
224: 움직임 벡터 가산부
230: 머지 후보 생성부
231: 머지 후보 등록부
232: 머지 후보 동일 판정부
233: 인코딩 정보 선택부

Claims (12)

  1. 동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상을 인코딩하는 동영상 인코딩 장치이고,
    인코딩 대상 예측 블록과 동일 픽처 내의 상기 인코딩 대상 예측 블록과 인접하는 제1의 인코딩 완료된 예측 블록, 및 상기 인코딩 대상 예측 블록과는 상이한 픽처 내의 상기 인코딩 대상 예측 블록과 동일 또는 주변의 위치에 있는 제2의 인코딩 완료된 예측 블록 중의 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 도출하고, 도출한 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성부;
    상기 예측 움직임 벡터 후보 리스트에서 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택부;
    상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 선택된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩부를 구비하고,
    상기 예측 움직임 벡터 후보 생성부는, 설정된 수의 예측 움직임 벡터의 후보를 얻기 위해, 상기 제1의 인코딩 완료된 예측 블록 중의 어느 예측 블록의 움직임 벡터가 예측 움직임 벡터의 후보를 도출하기 위한 움직임 벡터가 되는지의 판정을 우선 순서를 매겨 진행할 때, 좌측의 인접 블록 그룹, 및 상측의 인접 블록 그룹의 인접 블록 그룹마다 소정 순서의 각 예측 블록에 대해,
    조건 1. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함,
    조건 2. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함,
    조건 3. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함,
    조건 4. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함, 의 각 조건의 판정을, 먼저, 조건 1, 2에 대해 그 조건 1, 2의 우선 순서로 각 예측 블록에 대해 진행하고, 그 다음에 조건 3, 4에 대해 그 조건 3, 4의 우선 순서로 각 예측 블록에 대해 진행하는 것을 특징으로 하는 동영상 인코딩 장치.
  2. 제1항에 있어서,
    상기 예측 움직임 벡터 후보 생성부는, 상기 조건 1, 2에 관한 조건 판정에 있어서, 조건에 일치하는 예측 블록이 발견되면 그 예측 블록의 움직임 벡터를 그대로 예측 움직임 벡터의 후보로 하는 것을 특징으로 하는 동영상 인코딩 장치.
  3. 동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상을 인코딩하는 동영상 인코딩 방법이고,
    인코딩 대상 예측 블록과 동일 픽처 내의 상기 인코딩 대상 예측 블록과 인접하는 제1의 인코딩 완료된 예측 블록, 및 상기 인코딩 대상 예측 블록과는 상이한 픽처 내의 상기 인코딩 대상 예측 블록과 동일 또는 주변의 위치에 있는 제2의 인코딩 완료된 예측 블록 중의 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 도출하고, 도출한 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성 단계;
    상기 예측 움직임 벡터 후보 리스트에서 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택 단계;
    상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 선택된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩 단계를 포함하고,
    상기 예측 움직임 벡터 후보 생성 단계는, 설정된 수의 예측 움직임 벡터의 후보를 얻기 위해, 상기 제1의 인코딩 완료된 예측 블록 중의 어느 예측 블록의 움직임 벡터가 예측 움직임 벡터의 후보를 도출하기 위한 움직임 벡터가 되는지의 판정을 우선 순서를 매겨 진행할 때, 좌측의 인접 블록 그룹, 및 상측의 인접 블록 그룹의 인접 블록 그룹마다 소정 순서의 각 예측 블록에 대해,
    조건 1. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함,
    조건 2. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함,
    조건 3. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함,
    조건 4. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함, 의 각 조건의 판정을, 먼저, 조건 1, 2에 대해 그 조건 1, 2의 우선 순서로 각 예측 블록에 대해 진행하고, 그 다음에 조건 3, 4에 대해 그 조건 3, 4의 우선 순서로 각 예측 블록에 대해 진행하는 것을 특징으로 하는 동영상 인코딩 방법.
  4. 제3항에 있어서,
    상기 예측 움직임 벡터 후보 생성 단계는, 상기 조건 1, 2에 관한 조건 판정에 있어서, 조건에 일치하는 예측 블록이 발견되면 그 예측 블록의 움직임 벡터를 그대로 예측 움직임 벡터의 후보로 하는 것을 특징으로 하는 동영상 인코딩 방법.
  5. 동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상을 인코딩하는 동영상 인코딩 프로그램이고,
    인코딩 대상 예측 블록과 동일 픽처 내의 상기 인코딩 대상 예측 블록과 인접하는 제1의 인코딩 완료된 예측 블록, 및 상기 인코딩 대상 예측 블록과는 상이한 픽처 내의 상기 인코딩 대상 예측 블록과 동일 또는 주변의 위치에 있는 제2의 인코딩 완료된 예측 블록 중의 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 도출하고, 도출한 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성 단계;
    상기 예측 움직임 벡터 후보 리스트에서 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택 단계;
    상기 예측 움직임 벡터 후보 리스트에 있어서의 상기 선택된 예측 움직임 벡터의 위치를 나타내는 정보를 인코딩하는 인코딩 단계를 컴퓨터에 실행시키고,
    상기 예측 움직임 벡터 후보 생성 단계는, 설정된 수의 예측 움직임 벡터의 후보를 얻기 위해, 상기 제1의 인코딩 완료된 예측 블록 중의 어느 예측 블록의 움직임 벡터가 예측 움직임 벡터의 후보를 도출하기 위한 움직임 벡터가 되는지의 판정을 우선 순서를 매겨 진행할 때, 좌측의 인접 블록 그룹, 및 상측의 인접 블록 그룹의 인접 블록 그룹마다 소정 순서의 각 예측 블록에 대해,
    조건 1. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함,
    조건 2. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함,
    조건 3. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함,
    조건 4. 인코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함, 의 각 조건의 판정을, 먼저, 조건 1, 2에 대해 그 조건 1, 2의 우선 순서로 각 예측 블록에 대해 진행하고, 그 다음에 조건 3, 4에 대해 그 조건 3, 4의 우선 순서로 각 예측 블록에 대해 진행하는 것을 특징으로 하는 동영상 인코딩 프로그램.
  6. 제5항에 있어서,
    상기 예측 움직임 벡터 후보 생성 단계는, 상기 조건 1, 2에 관한 조건 판정에 있어서, 조건에 일치하는 예측 블록이 발견되면 그 예측 블록의 움직임 벡터를 그대로 예측 움직임 벡터의 후보로 하는 것을 특징으로 하는 동영상 인코딩 프로그램.
  7. 동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 장치이고,
    디코딩 대상 예측 블록과 동일 픽처 내의 상기 디코딩 대상 예측 블록과 인접하는 제1의 디코딩 완료된 예측 블록, 및 상기 디코딩 대상 예측 블록과는 상이한 픽처 내의 상기 디코딩 대상 예측 블록과 동일 또는 주변의 위치에 있는 제2의 디코딩 완료된 예측 블록 중의 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 도출하고, 도출한 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성부;
    상기 예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩부;
    디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트에서 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택부를 구비하고,
    상기 예측 움직임 벡터 후보 생성부는, 설정된 수의 예측 움직임 벡터의 후보를 얻기 위해, 상기 제1의 디코딩 완료된 예측 블록 중의 어느 예측 블록의 움직임 벡터가 예측 움직임 벡터의 후보를 도출하기 위한 움직임 벡터가 되는지의 판정을 우선 순서를 매겨 진행할 때, 좌측의 인접 블록 그룹, 및 상측의 인접 블록 그룹의 인접 블록 그룹마다 소정 순서의 각 예측 블록에 대해,
    조건 1. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함,
    조건 2. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함,
    조건 3. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함,
    조건 4. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함, 의 각 조건의 판정을, 먼저, 조건 1, 2에 대해 그 조건 1, 2의 우선 순서로 각 예측 블록에 대해 진행하고, 그 다음에 조건 3, 4에 대해 그 조건 3, 4의 우선 순서로 각 예측 블록에 대해 진행하는 것을 특징으로 하는 동영상 디코딩 장치.
  8. 제7항에 있어서,
    상기 예측 움직임 벡터 후보 생성부는, 상기 조건 1, 2에 관한 조건 판정에 있어서, 조건에 일치하는 예측 블록이 발견되면 그 예측 블록의 움직임 벡터를 그대로 예측 움직임 벡터의 후보로 하는 것을 특징으로 하는 동영상 디코딩 장치.
  9. 동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 방법이고,
    디코딩 대상 예측 블록과 동일 픽처 내의 상기 디코딩 대상 예측 블록과 인접하는 제1의 디코딩 완료된 예측 블록, 및 상기 디코딩 대상 예측 블록과는 상이한 픽처 내의 상기 디코딩 대상 예측 블록과 동일 또는 주변의 위치에 있는 제2의 디코딩 완료된 예측 블록 중의 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 도출하고, 도출한 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성 단계;
    상기 예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩 단계;
    디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트에서 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택 단계를 포함하고,
    상기 예측 움직임 벡터 후보 생성 단계는, 설정된 수의 예측 움직임 벡터의 후보를 얻기 위해, 상기 제1의 디코딩 완료된 예측 블록 중의 어느 예측 블록의 움직임 벡터가 예측 움직임 벡터의 후보를 도출하기 위한 움직임 벡터가 되는지의 판정을 우선 순서를 매겨 진행할 때, 좌측의 인접 블록 그룹, 및 상측의 인접 블록 그룹의 인접 블록 그룹마다 소정 순서의 각 예측 블록에 대해,
    조건 1. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함,
    조건 2. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함,
    조건 3. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함,
    조건 4. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함, 의 각 조건의 판정을, 먼저, 조건 1, 2에 대해 그 조건 1, 2의 우선 순서로 각 예측 블록에 대해 진행하고, 그 다음에 조건 3, 4에 대해 그 조건 3, 4의 우선 순서로 각 예측 블록에 대해 진행하는 것을 특징으로 하는 동영상 디코딩 방법.
  10. 제9항에 있어서,
    상기 예측 움직임 벡터 후보 생성 단계는, 상기 조건 1, 2에 관한 조건 판정에 있어서, 조건에 일치하는 예측 블록이 발견되면 그 예측 블록의 움직임 벡터를 그대로 예측 움직임 벡터의 후보로 하는 것을 특징으로 하는 동영상 디코딩 방법.
  11. 동영상의 각 픽처를 분할한 블록 단위로 움직임 보상을 이용하여 상기 동영상이 인코딩된 인코딩 비트열을 디코딩하는 동영상 디코딩 프로그램이고,
    디코딩 대상 예측 블록과 동일 픽처 내의 상기 디코딩 대상 예측 블록과 인접하는 제1의 디코딩 완료된 예측 블록, 및 상기 디코딩 대상 예측 블록과는 상이한 픽처 내의 상기 디코딩 대상 예측 블록과 동일 또는 주변의 위치에 있는 제2의 디코딩 완료된 예측 블록 중의 어느 하나의 움직임 벡터로부터 예측하여, 복수의 예측 움직임 벡터의 후보를 도출하고, 도출한 예측 움직임 벡터의 후보를 예측 움직임 벡터 후보 리스트에 등록하는 예측 움직임 벡터 후보 생성 단계;
    상기 예측 움직임 벡터 후보 리스트에 있어서의 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보를 디코딩하는 디코딩 단계;
    디코딩된 상기 선택해야 할 예측 움직임 벡터의 위치를 나타내는 정보에 기초하여, 상기 예측 움직임 벡터 후보 리스트에서 예측 움직임 벡터를 선택하는 예측 움직임 벡터 선택 단계를 컴퓨터에 실행시키고,
    상기 예측 움직임 벡터 후보 생성 단계는, 설정된 수의 예측 움직임 벡터의 후보를 얻기 위해, 상기 제1의 디코딩 완료된 예측 블록 중의 어느 예측 블록의 움직임 벡터가 예측 움직임 벡터의 후보를 도출하기 위한 움직임 벡터가 되는지의 판정을 우선 순서를 매겨 진행할 때, 좌측의 인접 블록 그룹, 및 상측의 인접 블록 그룹의 인접 블록 그룹마다 소정 순서의 각 예측 블록에 대해,
    조건 1. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함,
    조건 2. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 동일한 참조 픽처의 움직임 벡터가 존재함,
    조건 3. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와 동일 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함,
    조건 4. 디코딩 대상 예측 블록에서 선택된 인코딩 모드와는 상이한 참조 리스트에서, 상이한 참조 픽처의 움직임 벡터가 존재함, 의 각 조건의 판정을, 먼저, 조건 1, 2에 대해 그 조건 1, 2의 우선 순서로 각 예측 블록에 대해 진행하고, 그 다음에 조건 3, 4에 대해 그 조건 3, 4의 우선 순서로 각 예측 블록에 대해 진행하는 것을 특징으로 하는 동영상 디코딩 프로그램.
  12. 제11항에 있어서,
    상기 예측 움직임 벡터 후보 생성 단계는, 상기 조건 1, 2에 관한 조건 판정에 있어서, 조건에 일치하는 예측 블록이 발견되면 그 예측 블록의 움직임 벡터를 그대로 예측 움직임 벡터의 후보로 하는 것을 특징으로 하는 동영상 디코딩 프로그램.
KR1020137034609A 2011-05-31 2012-05-30 동영상 인코딩 장치, 동영상 인코딩 방법 및 동영상 인코딩 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램 KR20140019448A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JPJP-P-2011-122771 2011-05-31
JP2011122770A JP5477340B2 (ja) 2011-05-31 2011-05-31 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2011122771A JP5252029B2 (ja) 2011-05-31 2011-05-31 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム
JPJP-P-2011-122770 2011-05-31
PCT/JP2012/003540 WO2012164924A1 (ja) 2011-05-31 2012-05-30 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、並びに動画像復号装置、動画像復号方法及び動画像復号プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020157019366A Division KR101921789B1 (ko) 2011-05-31 2012-05-30 동영상 인코딩 장치, 동영상 인코딩 방법 및 동영상 인코딩 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램

Publications (1)

Publication Number Publication Date
KR20140019448A true KR20140019448A (ko) 2014-02-14

Family

ID=47258796

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020157019366A KR101921789B1 (ko) 2011-05-31 2012-05-30 동영상 인코딩 장치, 동영상 인코딩 방법 및 동영상 인코딩 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램
KR1020187033273A KR20180126616A (ko) 2011-05-31 2012-05-30 동영상 인코딩 장치, 동영상 인코딩 방법 및 동영상 인코딩 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램
KR1020137034609A KR20140019448A (ko) 2011-05-31 2012-05-30 동영상 인코딩 장치, 동영상 인코딩 방법 및 동영상 인코딩 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020157019366A KR101921789B1 (ko) 2011-05-31 2012-05-30 동영상 인코딩 장치, 동영상 인코딩 방법 및 동영상 인코딩 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램
KR1020187033273A KR20180126616A (ko) 2011-05-31 2012-05-30 동영상 인코딩 장치, 동영상 인코딩 방법 및 동영상 인코딩 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램

Country Status (12)

Country Link
US (5) US8976867B2 (ko)
EP (5) EP3879833A1 (ko)
KR (3) KR101921789B1 (ko)
CN (7) CN105187838A (ko)
BR (2) BR122020013893B1 (ko)
DK (1) DK2717574T3 (ko)
ES (1) ES2861773T3 (ko)
HU (1) HUE053187T2 (ko)
PL (1) PL2717574T3 (ko)
SI (1) SI2717574T1 (ko)
TW (5) TWI594623B (ko)
WO (1) WO2012164924A1 (ko)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2210421A4 (en) * 2007-10-16 2013-12-04 Lg Electronics Inc METHOD AND APPARATUS FOR PROCESSING A VIDEO SIGNAL
GB2488815C (en) * 2011-03-09 2018-03-28 Canon Kk Video decoding
CN103733625B (zh) 2011-06-14 2017-04-05 三星电子株式会社 用于对运动矢量进行解码的方法
ES2754657T3 (es) 2011-06-27 2020-04-20 Samsung Electronics Co Ltd Codificación y decodificación de información de movimiento
US9473769B2 (en) * 2012-06-08 2016-10-18 Texas Instruments Incorporated Method and system for reducing slice header parsing overhead in video coding
CN102883163B (zh) 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
EP2981090A4 (en) * 2013-04-05 2016-11-02 Samsung Electronics Co Ltd METHOD FOR DETERMINING AN INTERPRETIVE CANDIDATE FOR A METHOD AND APPARATUS FOR DECODING AND INTERCODING ENCODING
WO2015169200A1 (en) * 2014-05-06 2015-11-12 Mediatek Singapore Pte. Ltd. Method of block vector prediction for intra block copy mode coding
JP6482191B2 (ja) 2014-06-12 2019-03-13 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
CN112188207B (zh) 2014-10-31 2023-10-20 三星电子株式会社 使用高精度跳过编码的视频编码设备和视频解码设备及其方法
BR112017011890A2 (pt) * 2014-12-09 2018-07-03 Mediatek Inc método de derivação de preditor de vetor de movimento ou de candidato a fusão em codificação de vídeo
EP3247114A4 (en) 2015-01-21 2018-01-17 Samsung Electronics Co., Ltd. Method and apparatus for decoding inter-layer video, and method and apparatus for encoding inter-layer video
US9930378B2 (en) * 2015-02-11 2018-03-27 Qualcomm Incorporated Signaling of operation points for carriage of HEVC extensions
CN107809642B (zh) * 2015-02-16 2020-06-16 华为技术有限公司 用于视频图像编码和解码的方法、编码设备和解码设备
KR20180048736A (ko) * 2015-09-24 2018-05-10 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
US10477233B2 (en) * 2015-09-30 2019-11-12 Apple Inc. Predictor candidates for motion estimation search systems and methods
CN105430414A (zh) * 2015-12-03 2016-03-23 福州瑞芯微电子股份有限公司 一种帧间预测解码方法和装置
US11032550B2 (en) * 2016-02-25 2021-06-08 Mediatek Inc. Method and apparatus of video coding
EP3439303B1 (en) * 2016-04-28 2020-12-30 LG Electronics Inc. -1- Inter prediction mode-based image processing method and apparatus therefor
KR102480191B1 (ko) * 2016-05-13 2022-12-21 브이아이디 스케일, 인크. 비디오 코딩을 위한 일반화된 다중-가설 예측 시스템 및 방법
JP6620079B2 (ja) * 2016-09-08 2019-12-11 株式会社ソニー・インタラクティブエンタテインメント 画像処理システム、画像処理方法およびコンピュータプログラム
KR102563706B1 (ko) * 2016-09-30 2023-08-03 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 인코딩 방법, 비디오 디코딩 방법, 및 단말
CN117395395A (zh) * 2017-03-22 2024-01-12 韩国电子通信研究院 使用参考块的预测方法和装置
CN109510991B (zh) * 2017-09-15 2021-02-19 浙江大学 一种运动矢量导出方法及装置
KR20200095463A (ko) * 2017-11-01 2020-08-10 브이아이디 스케일, 인크. 병합 모드를 위한 서브-블록 모션 도출 및 디코더측 모션 벡터 정교화
CN111801946A (zh) 2018-01-24 2020-10-20 Vid拓展公司 用于具有降低的译码复杂性的视频译码的广义双预测
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
US10491897B2 (en) 2018-04-13 2019-11-26 Google Llc Spatially adaptive quantization-aware deblocking filter
MX2020012042A (es) * 2018-05-17 2021-01-29 Panasonic Ip Corp America Dispositivo de codificacion, dispositivo de decodificacion, metodo de codificacion y metodo de decodificacion.
EP3791585A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Partial/full pruning when adding a hmvp candidate to merge/amvp
TWI728390B (zh) 2018-06-29 2021-05-21 大陸商北京字節跳動網絡技術有限公司 查找表尺寸
CN110662043B (zh) 2018-06-29 2021-12-21 北京字节跳动网络技术有限公司 一种用于处理视频数据的方法、装置和计算机可读介质
CN110662063B (zh) 2018-06-29 2020-12-15 北京字节跳动网络技术有限公司 视频处理方法、装置和计算机可读存储介质
SG11202012293RA (en) 2018-06-29 2021-01-28 Beijing Bytedance Network Technology Co Ltd Update of look up table: fifo, constrained fifo
EP4322533A3 (en) 2018-06-29 2024-03-06 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in lut
TWI731360B (zh) 2018-06-29 2021-06-21 大陸商北京字節跳動網絡技術有限公司 查找表的使用條件
EP3791586A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
CN110662052B (zh) 2018-06-29 2022-07-08 北京字节跳动网络技术有限公司 更新查找表(lut)的条件
TWI728389B (zh) 2018-07-01 2021-05-21 大陸商北京字節跳動網絡技術有限公司 基於優先級的非相鄰merge設計
WO2020008349A1 (en) 2018-07-02 2020-01-09 Beijing Bytedance Network Technology Co., Ltd. Merge index coding
WO2020009390A1 (ko) * 2018-07-02 2020-01-09 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측에 따른 영상 처리 방법 및 장치
KR20210049822A (ko) * 2018-09-07 2021-05-06 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 비디오 코딩 시스템 및 방법
WO2020053800A1 (en) 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. How many hmvp candidates to be checked
US20220038682A1 (en) * 2018-09-18 2022-02-03 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium in which bitstream is stored
EP3861741A1 (en) 2018-10-02 2021-08-11 InterDigital VC Holdings, Inc. Method and apparatus for video encoding and decoding using list of predictor candidates
US11032541B2 (en) * 2018-10-22 2021-06-08 Tencent America LLC Method and apparatus for video coding
EP3788779A4 (en) * 2018-10-23 2022-03-02 Tencent America LLC VIDEO CODING METHOD AND APPARATUS
CN111418205B (zh) 2018-11-06 2024-06-21 北京字节跳动网络技术有限公司 用于帧间预测的运动候选
SG11202104749RA (en) * 2018-11-08 2021-06-29 Guangdong Oppo Mobile Telecommunications Corp Ltd Image signal encoding/decoding method and apparatus therefor
TWI782887B (zh) * 2018-12-28 2022-11-01 日商Jvc建伍股份有限公司 影像編碼裝置、影像編碼方法、影像編碼程式、影像解碼裝置、影像解碼方法及影像解碼程式
WO2020137814A1 (ja) * 2018-12-28 2020-07-02 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
MX2021007752A (es) * 2018-12-28 2021-08-05 Godo Kaisha Ip Bridge 1 Dispositivo de decodificacion de imagenes, metodo de decodificacion de imagenes y programa de computadora.
US11032574B2 (en) 2018-12-31 2021-06-08 Tencent America LLC Method and apparatus for video coding
JP7275286B2 (ja) 2019-01-10 2023-05-17 北京字節跳動網絡技術有限公司 Lut更新の起動
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
WO2020147772A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Motion candidates derivation
WO2020184461A1 (ja) * 2019-03-08 2020-09-17 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム
CN116389769A (zh) * 2019-03-13 2023-07-04 北京大学 视频处理方法和设备
US11418807B2 (en) * 2019-03-15 2022-08-16 Tencent America LLC Temporal motion vector derivation in shared merge region at picture boundary
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
CN112055220B (zh) * 2019-06-05 2022-07-29 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
WO2020256102A1 (ja) * 2019-06-20 2020-12-24 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム
CN114598888A (zh) * 2020-12-04 2022-06-07 腾讯科技(深圳)有限公司 串矢量的编解码方法、编码设备、解码设备及存储介质
WO2023200382A1 (en) * 2022-04-12 2023-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Enhanced multi-hypothesis prediction
US20230396793A1 (en) * 2022-06-07 2023-12-07 Tencent America LLC Adjacent spatial motion vector predictor candidates improvement

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2725577B1 (fr) * 1994-10-10 1996-11-29 Thomson Consumer Electronics Procede de codage ou de decodage de vecteurs mouvement et dispositif de codage ou de decodage mettant en oeuvre ledit procede
US5608458A (en) * 1994-10-13 1997-03-04 Lucent Technologies Inc. Method and apparatus for a region-based approach to coding a sequence of video images
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
CN1213613C (zh) * 2003-09-12 2005-08-03 浙江大学 视频编解码中运动矢量的预测方法和装置
JP4064973B2 (ja) * 2005-03-23 2008-03-19 株式会社東芝 ビデオエンコーダ及びこれを用いた携帯無線端末装置
US20070009050A1 (en) * 2005-04-11 2007-01-11 Nokia Corporation Method and apparatus for update step in video coding based on motion compensated temporal filtering
US8165205B2 (en) * 2005-09-16 2012-04-24 Sony Corporation Natural shaped regions for motion compensation
US8879856B2 (en) * 2005-09-27 2014-11-04 Qualcomm Incorporated Content driven transcoder that orchestrates multimedia transcoding using content information
JP4879558B2 (ja) * 2005-11-02 2012-02-22 パナソニック株式会社 動きベクトル検出装置
US20080092005A1 (en) * 2006-09-26 2008-04-17 Huott William V Scan Testing Interface
TWI323132B (en) * 2006-12-29 2010-04-01 Ind Tech Res Inst Motion vector (mv) prediction method and apparatus
US20090003449A1 (en) * 2007-06-28 2009-01-01 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method and image decoding method
JP5951928B2 (ja) * 2007-09-06 2016-07-13 スリーエム イノベイティブ プロパティズ カンパニー 光出力の領域制御を提供する光抽出構造体を有する光ガイド
KR100926752B1 (ko) * 2007-12-17 2009-11-16 한국전자통신연구원 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치
CN101686393B (zh) * 2008-09-28 2012-10-17 华为技术有限公司 应用于模板匹配的快速运动搜索方法及装置
US20100166073A1 (en) * 2008-12-31 2010-07-01 Advanced Micro Devices, Inc. Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors
WO2010082231A1 (ja) * 2009-01-15 2010-07-22 ルネサスエレクトロニクス株式会社 画像処理装置、デコード方法、フレーム内復号装置、フレーム内復号方法、及びフレーム内符号化装置
US9185425B2 (en) * 2009-07-03 2015-11-10 France Telecom Prediction of a movement vector of a current image partition pointing to a reference zone that covers several reference image partitions and encoding and decoding using one such prediction
CN101860754B (zh) * 2009-12-16 2013-11-13 香港应用科技研究院有限公司 运动矢量编码和解码的方法和装置
EP2532159A1 (en) * 2010-02-05 2012-12-12 Telefonaktiebolaget L M Ericsson (PUBL) Selecting predicted motion vector candidates
US20130003843A1 (en) * 2010-03-12 2013-01-03 Mediatek Singapore Pte. Ltd. Motion Prediction Method
KR101752418B1 (ko) * 2010-04-09 2017-06-29 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
JP2011259204A (ja) * 2010-06-09 2011-12-22 Sony Corp 画像復号化装置と画像符号装置およびその方法とプログラム
EP4120686B1 (en) * 2011-01-07 2023-08-23 Ntt Docomo, Inc. Predictive encoding method, predictive encoding device, and predictive encoding program of motion vector, and, predictive decoding method, predictive decoding device, and predictive decoding program of motion vector
US9635383B2 (en) 2011-01-07 2017-04-25 Texas Instruments Incorporated Method, system and computer program product for computing a motion vector
CN102075751B (zh) * 2011-01-12 2012-12-19 浙江大学 一种基于宏块运动状态的h264快速模式选择方法
GB2488815C (en) * 2011-03-09 2018-03-28 Canon Kk Video decoding
WO2012128540A2 (ko) 2011-03-21 2012-09-27 엘지전자 주식회사 움직임 벡터 예측자 선택 방법 및 이를 이용하는 장치
KR20170005464A (ko) * 2011-08-30 2017-01-13 노키아 테크놀로지스 오와이 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
US20130188716A1 (en) * 2012-01-20 2013-07-25 Qualcomm Incorporated Temporal motion vector predictor candidate
US9503720B2 (en) * 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
US20130343459A1 (en) * 2012-06-22 2013-12-26 Nokia Corporation Method and apparatus for video coding
RU2612577C2 (ru) * 2012-07-02 2017-03-09 Нокиа Текнолоджиз Ой Способ и устройство для кодирования видеоинформации
US9357195B2 (en) * 2012-08-16 2016-05-31 Qualcomm Incorporated Inter-view predicted motion vector for 3D video
KR101812615B1 (ko) * 2012-09-28 2017-12-27 노키아 테크놀로지스 오와이 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
JP5942818B2 (ja) * 2012-11-28 2016-06-29 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
US9357214B2 (en) * 2012-12-07 2016-05-31 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video
WO2014106692A1 (en) * 2013-01-07 2014-07-10 Nokia Corporation Method and apparatus for video coding and decoding
JP5692260B2 (ja) 2013-03-06 2015-04-01 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム
EP3058747B1 (en) * 2013-10-15 2019-11-20 Nokia Technologies Oy Scalable video encoding and decoding using syntax element

Also Published As

Publication number Publication date
EP2717574B1 (en) 2021-02-17
US9736491B2 (en) 2017-08-15
DK2717574T3 (da) 2021-03-15
TWI578768B (zh) 2017-04-11
CN105187838A (zh) 2015-12-23
US9729895B2 (en) 2017-08-08
TWI584635B (zh) 2017-05-21
BR122020013893B1 (pt) 2022-08-23
US20170034528A1 (en) 2017-02-02
EP3879833A1 (en) 2021-09-15
US9635381B2 (en) 2017-04-25
EP2717574A4 (en) 2014-10-15
CN105245900A (zh) 2016-01-13
CN105187840A (zh) 2015-12-23
TW201611585A (zh) 2016-03-16
BR112013030935B1 (pt) 2022-05-03
CN105187839A (zh) 2015-12-23
US8976867B2 (en) 2015-03-10
TWI594623B (zh) 2017-08-01
US20150139329A1 (en) 2015-05-21
BR112013030935A2 (pt) 2016-12-06
KR101921789B1 (ko) 2018-11-23
EP3879834A1 (en) 2021-09-15
US20140153647A1 (en) 2014-06-05
EP3879832A1 (en) 2021-09-15
KR20150088914A (ko) 2015-08-03
SI2717574T1 (sl) 2021-04-30
HUE053187T2 (hu) 2021-06-28
EP3879831A1 (en) 2021-09-15
US20170150167A1 (en) 2017-05-25
EP3879831C0 (en) 2024-05-01
CN107257479A (zh) 2017-10-17
EP3879831B1 (en) 2024-05-01
TW201720166A (zh) 2017-06-01
PL2717574T3 (pl) 2021-09-13
WO2012164924A1 (ja) 2012-12-06
US20170150168A1 (en) 2017-05-25
ES2861773T3 (es) 2021-10-06
CN107181961A (zh) 2017-09-19
CN103563386A (zh) 2014-02-05
EP2717574A1 (en) 2014-04-09
EP3879834B1 (en) 2024-05-01
KR20180126616A (ko) 2018-11-27
EP3879834C0 (en) 2024-05-01
TW201304557A (zh) 2013-01-16
TWI586154B (zh) 2017-06-01
US9807413B2 (en) 2017-10-31
TWI524741B (zh) 2016-03-01
TW201811051A (zh) 2018-03-16
TW201811050A (zh) 2018-03-16

Similar Documents

Publication Publication Date Title
KR101921789B1 (ko) 동영상 인코딩 장치, 동영상 인코딩 방법 및 동영상 인코딩 프로그램, 및 동영상 디코딩 장치, 동영상 디코딩 방법 및 동영상 디코딩 프로그램
JP5692262B2 (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP5252029B2 (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP5692260B2 (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP5477340B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2015111910A (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP6288237B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP5692261B2 (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP5692263B2 (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP6226039B2 (ja) 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法及び受信プログラム
JP6135250B2 (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム
JP6135251B2 (ja) 画像復号装置、画像復号方法及び画像復号プログラム
JP5987615B2 (ja) 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法及び受信プログラム
JP2014072762A (ja) 画像復号装置、画像復号方法及び画像復号プログラム
JP2014072773A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E601 Decision to refuse application