KR101598306B1 - 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램 - Google Patents

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

Info

Publication number
KR101598306B1
KR101598306B1 KR1020147002478A KR20147002478A KR101598306B1 KR 101598306 B1 KR101598306 B1 KR 101598306B1 KR 1020147002478 A KR1020147002478 A KR 1020147002478A KR 20147002478 A KR20147002478 A KR 20147002478A KR 101598306 B1 KR101598306 B1 KR 101598306B1
Authority
KR
South Korea
Prior art keywords
reference block
motion vector
candidate list
encoding
prediction mode
Prior art date
Application number
KR1020147002478A
Other languages
English (en)
Other versions
KR20140031384A (ko
Inventor
마사요시 니시타니
히로야 나카무라
히데키 타케하라
시게루 후쿠시마
Original Assignee
가부시키가이샤 제이브이씨 켄우드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2011146770A external-priority patent/JP5246303B2/ja
Priority claimed from JP2011146769A external-priority patent/JP5644701B2/ja
Application filed by 가부시키가이샤 제이브이씨 켄우드 filed Critical 가부시키가이샤 제이브이씨 켄우드
Publication of KR20140031384A publication Critical patent/KR20140031384A/ko
Application granted granted Critical
Publication of KR101598306B1 publication Critical patent/KR101598306B1/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/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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Abstract

제1의 모드 검출부는, 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드에 있어서, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스를 출력한다. 제2의 모드 검출부는, 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 인코딩 대상 블록의 움직임 벡터의 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드에 있어서, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제2의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스 및 상기 차분 움직임 벡터를 출력한다.

Description

화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램{IMAGE ENCODING DEVICE, IMAGE ENCODING METHOD, IMAGE ENCODING PROGRAM, IMAGE DECODING DEVICE, IMAGE DECODING METHOD, AND IMAGE DECODING PROGRAM}
본 발명은, 동영상의 인코딩 기술에 관한 것으로서, 특히 픽처를 직사각형 블록으로 분할하고, 픽처 사이에서 블록 단위로 움직임 추정, 보상을 하는 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램에 관한 것이다.
MPEG(Moving Picture Coding Experts Group)으로 대표되는, 픽처를 직사각형 블록으로 분할하고, 픽처 사이에서 블록 단위로 움직임 추정, 보상을 하는 동영상 인코딩 방식에서는, 각 블록에서 생성되는 움직임 벡터의 코딩량을 삭감하기 위해, 움직임 벡터에 대해 예측 처리가 진행된다.
MPEG-2에서는, 매크로 블록 단위로 검출되는 움직임 벡터는, 직전에 인코딩된 매크로 블록의 움직임 벡터와의 차분이 취해지고, 그 차분 벡터를 인코딩하는 것에 의해, 코딩량을 삭감하고 있다. MPEG-4 AVC/H.264에서는, 움직임 벡터가 주위의 인접 블록의 움직임 벡터와 강한 상관이 있는 것을 이용하여, 주위의 인접 블록으로부터의 예측을 하고, 그 차분 벡터를 인코딩하는 것에 의해 코딩량을 삭감하고 있다. 구체적으로는, 처리 대상의 블록 좌측, 상측 및 우상측의 인접 블록의 움직임 벡터로부터 중간값을 산출하고, 그 중간값과의 차분을 취하는 것에 의해 움직임 벡터의 예측을 실현하고 있다.
이들의 예측 방법에서는, 예측을 위한 움직임 벡터가 1개밖에 없기 때문에, 예측이 맞지 않으면, 움직임 벡터의 차분이 커져, 발생 코딩량이 증가하는 과제가 있었다. 또한, 움직임 벡터의 코딩량은 삭감되지만, 다른 움직임 정보는 처리 대상의 블록마다 인코딩된다. 따라서, 주위의 인접 블록과 동일한 움직임 정보를 갖고 있어도, 중복하여 인코딩되게 되기 때문에, 효율적인 인코딩에 도달하지 못한 과제가 있었다.
이들의 과제를 해결하기 위해, ISO/IEC 및 ITU-T에 있어서의 동영상 인코딩의 규격작업 중에서 새로운 2개의 기술이 검토되고 있다. 하나는 움직임 벡터의 예측 방법에 관하여, 인코딩 완료된 주위의 인접 블록의 움직임 벡터 및 인코딩 완료된 시간이 상이한 별도의 픽처의 동일 위치의 주변 블록의 움직임 벡터에 대해, 각각을 예측 움직임 벡터의 후보로서 적용한 경우의 발생 코딩량에 의해 평가하는 수법이다.
도 1의 (a), (b)에 예측 움직임 벡터의 후보가 되는 인접 블록의 일례를 나타낸다. 도 1의 (a)는 동일 픽처 내의 인접 블록의 예이고, 도 1(b)는 시간이 상이한 별도의 픽처의 동일 위치의 주변 블록의 예이다. 이들의 블록의 움직임 벡터를 예측 움직임 벡터의 후보로 하여, 처리 대상의 블록 움직임 벡터와 예측 움직임 벡터의 후보의 차분값의 발생 코딩량을 최소로 하는 예측 움직임 벡터를 선택한다. 그리고, 해당 예측 움직임 벡터와의 차분값과, 필요하면, 예측 움직임 벡터를 선택한 인접 블록에 관한 부가 정보를 인코딩하여 전송한다.
또 하나는, 처리 대상 블록의 움직임 정보와, 주위의 이미 인코딩 완료된 인접 블록의 움직임 정보가 동일하면, 처리 대상 블록은 자신의 움직임 정보를 인코딩하지 않고, 인접 블록의 움직임 정보를 인코딩에 사용한다. 구체적으로는, 참조하는 움직임 정보를 갖는 인접 블록을 지정하는 부가 정보를 인코딩하는 것에 의해, 움직임 정보의 코딩량을 삭감하는 수법이다(예를 들면, 특허문헌 1 참조). 이와 같은 수법은, 머지(merge)로 불리고, 움직임 정보의 코딩량 삭감의 일 수법으로서 주목받고 있다.
일본국 공개특허공보 H10-276439호 공보
상술한 움직임 벡터의 예측 방법이나 머지 수법에서는, 인코딩 완료된 주위의 인접 블록 및 시간이 상이한 별도의 픽처의 동일 위치의 주변 블록의 움직임 벡터, 참조하는 픽처를 나타내는 참조 픽처 번호, 참조 리스트 등의 인코딩 정보를 사용한다. 하지만, 각각의 기술에서 참조하는 주위의 인접 블록의 위치가 상이하기 때문에, 인코딩 완료된 인코딩 정보를 기록하고 있는 메모리를 액세스하는 횟수가 증가하는 어려움이 있다.
또한, 일반적인 인코딩 과정에 있어서는, 최적의 참조처(referent)를 선택하기 위해, 참조처의 인접 블록의 인코딩 정보를 사용하여 움직임 보상을 하고, 발생 코딩량과 코딩 왜곡(coding distortion)을 지표로 하여 판정한다. 하지만, 참조하는 주위의 인접 블록이 상이하면, 블록수가 증가하게 되어, 처리 부하가 증가하는 어려움이 있다. 또한, 디코딩 시에 디코딩 완료된 인코딩 정보를 판독하는 타이밍이 제한되거나, 디코딩 완료된 인코딩 정보를 기억하는 일시 메모리가 증가하는 어려움이 있다.
본 발명은 이와 같은 상황하에서, 움직임 정보를 처리할 때의 부하를 억제하면서, 움직임 정보의 인코딩 효율을 향상시키는 기술을 제공하는 것을 목적으로 한다.
상기 과제를 해결하기 위해, 본 발명의 일 태양에 따른 화상 인코딩 장치는, 동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩하는 화상 인코딩 장치이고, 인코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 취득부(104); 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드에 있어서, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스를 출력하는 제1의 모드 검출부(106); 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩 대상 블록의 움직임 벡터의 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드에 있어서, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제2의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스 및 상기 차분 움직임 벡터를 출력하는 제2의 모드 검출부(103); 상기 제1의 모드 검출부(106) 및 상기 제2의 모드 검출부(103)의 출력 결과를 바탕으로, 상기 인코딩 대상 블록마다의 참조 블록과 화상간 예측 모드를 결정하는 예측 방법 결정부(107); 상기 예측 방법 결정부(107)에 의해 결정된 참조 블록의 인덱스와, 상기 예측 방법 결정부(107)에 의해 결정된 화상간 예측 모드를 나타내는 예측 모드 정보와, 제2의 화상간 예측 모드가 결정된 경우의 참조 블록에 대응한 상기 차분 움직임 벡터를 인코딩하는 인코딩열 생성부(109)를 구비한다. 상기 제1의 모드 검출부(106) 및 상기 제2의 모드 검출부(103)는, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용한다.
상기 제1의 모드 검출부(106)는, 상기 제1의 소정 순위가 높은 참조 블록 후보의 인덱스일수록 적은 코드워드를 할당해도 좋다.
상기 제1의 모드 검출부(106)에 의해 생성되는 상기 제1의 후보 리스트에 상기 복수의 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제2의 모드 검출부(103)에 의해 생성되는 상기 제2의 후보 리스트에 상기 복수의 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이해도 좋다.
상기 제1의 모드 검출부(106)는, 상기 복수의 참조 블록 후보의 수를 제한하여, 상기 복수의 참조 블록 후보의 상기 제1의 후보 리스트를 생성해도 좋다. 상기 제2의 모드 검출부(103)는, 상기 복수의 참조 블록 후보의 수를 제한하여, 상기 복수의 참조 블록 후보의 상기 제2의 후보 리스트를 생성해도 좋다.
상기 복수의 참조 블록 후보에는, 상기 인코딩 대상 블록에 공간적으로 인접하는 이미 인코딩된 블록과, 상기 인코딩 대상 블록을 포함하는 픽처와 시간적으로 상이한 픽처에 포함되는 블록을 포함해도 좋다. 상기 제1의 모드 검출부(106) 및 상기 제2의 모드 검출부(103)는, 상기 복수의 참조 블록 후보에 있어서, 상기 시간적으로 상이한 픽처에 포함되는 블록의 상기 제1의 소정 순위 및 제2의 소정 순위에 있어서의 순위는, 상기 공간적으로 인접하는 블록의 상기 제1의 소정 순위 및 제2의 소정 순위에 있어서의 순위보다 낮게 설정해도 좋다.
상기 제1의 모드 검출부(106)는, 상기 공간적으로 인접하는 이미 인코딩된 복수의 블록에 대해, 상기 제1의 소정 순위에 기초하여 상기 제1의 후보 리스트를 생성할 때, 상기 공간적으로 인접하는 복수의 블록을 상기 제1의 후보 리스트에 배열하는 후보수에 소정의 상한값을 마련하고, 상기 제1의 소정 순위에서 최상위로부터 상기 소정의 상한값만큼의 순위까지의 참조 블록을 이용하여 상기 제1의 후보 리스트를 생성해도 좋다.
상기 제2의 모드 검출부(103)는, 상기 공간적으로 인접하는 이미 인코딩된 복수의 블록 중, 상기 인코딩 대상 블록의 좌측에 배치된 블록을 좌측 블록 그룹, 상기 인코딩 대상 블록의 상측에 배치된 블록을 상측 블록 그룹으로 하여, 상기 블록 그룹 중에서 각각의 상기 블록 그룹을 대표하는 후보를 도출하고, 상기 좌측 블록 그룹의 후보, 상기 상측 블록 그룹의 후보의 차례로 상기 제2의 소정 순위를 마련하여, 상기 제2의 후보 리스트를 생성해도 좋다.
상기 제1의 모드 검출부(106)는, 상기 제1의 후보 리스트에 배열되는 참조 블록 후보의 최대 개수를 설정하고, 상기 참조 블록 후보의 최대 개수에 기초하여 상기 제1의 후보 리스트를 생성해도 좋다. 상기 인코딩열 생성부(109)는, 상기 참조 블록 후보의 최대 개수를 나타내는 정보를 인코딩하여 인코딩열에 포함시켜도 좋다.
본 발명의 일 태양에 따른 화상 인코딩 방법은, 동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩하는 화상 인코딩 방법이고, 인코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제1스텝; 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드에 있어서, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스를 출력하는 제2스텝; 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩 대상 블록의 움직임 벡터의 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드에 있어서, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제2의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스 및 상기 차분 움직임 벡터를 출력하는 제3스텝; 상기 제2스텝 및 상기 제3스텝에 의해 출력되는 출력 결과를 바탕으로, 상기 인코딩 대상 블록마다의 참조 블록과 화상간 예측 모드를 결정하는 제4스텝; 상기 제4스텝에 의해 결정된 참조 블록의 인덱스와, 상기 제4스텝에 의해 결정된 화상간 예측 모드를 나타내는 예측 모드 정보와, 제2의 화상간 예측 모드가 결정된 경우의 참조 블록에 대응한 상기 차분 움직임 벡터를 인코딩하는 제5스텝을 포함한다. 상기 제2스텝 및 상기 제3스텝은, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용한다.
본 발명의 일 태양에 따른 화상 디코딩 장치는, 동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩된 인코딩열을 디코딩하는 화상 디코딩 장치이고, 상기 인코딩열로부터 디코딩 대상 블록마다, 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스, 또는 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스와 참조 블록에 대응한 차분 움직임 벡터를 디코딩하는 인코딩열 디코딩부(202); 각 블록의 인코딩 정보를 저장하기 위한 인코딩 정보 저장부(210); 상기 디코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 상기 인코딩 정보 저장부(210)로부터 취득하는 취득부(205); 상기 인코딩열 디코딩부(202)에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드인 경우에, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 인코딩열 디코딩부(202)에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제1의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 그 인코딩 정보를 출력하는 제1의 모드 출력부(206); 상기 인코딩열 디코딩부(202)에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록에 대응한 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드인 경우에, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 인코딩열 디코딩부에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제2의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 해당 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩열 디코딩부(202)에 의해 디코딩된 차분 움직임 벡터로부터 상기 디코딩 대상 블록의 움직임 벡터를 산출하여 출력하는 제2의 모드 출력부(204); 상기 제1의 모드 출력부(206) 또는 상기 제2의 모드 출력부(204)로부터 출력된 정보를 바탕으로, 상기 인코딩열 디코딩부(202)에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드를 사용하여 움직임 보상을 하여 예측 화상을 생성하는 움직임 보상 예측부(207)를 구비한다. 상기 제1의 모드 출력부(206) 및 상기 제2의 모드 출력부(204)는, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용한다.
상기 제1의 모드 출력부(206)는, 상기 제1의 소정 순위가 높은 참조 블록 후보의 인덱스일수록 적은 코드워드를 할당해도 좋다.
상기 제1의 모드 출력부(206)에 의해 생성되는 상기 제1의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제2의 모드 출력부(204)에 의해 생성되는 상기 제2의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이해도 좋다.
상기 제1의 모드 출력부(206)는, 상기 복수의 참조 블록 후보의 수를 제한하여, 상기 복수의 참조 블록 후보의 상기 제1의 후보 리스트를 생성해도 좋다. 상기 제2의 모드 출력부(204)는, 상기 복수의 참조 블록 후보의 수를 제한하여, 상기 복수의 참조 블록 후보의 상기 제2의 후보 리스트를 생성해도 좋다.
상기 복수의 참조 블록 후보에는, 상기 디코딩 대상 블록에 공간적으로 인접하는 이미 디코딩된 블록과, 상기 디코딩 대상 블록을 포함하는 픽처와 시간적으로 상이한 픽처에 포함되는 블록을 포함해도 좋다. 상기 제1의 모드 출력부(206) 및 상기 제2의 모드 출력부(204)는, 상기 복수의 참조 블록 후보에 있어서, 상기 시간적으로 상이한 픽처에 포함되는 블록의 상기 제1의 소정 순위 및 제2의 소정 순위에 있어서의 순위는, 상기 공간적으로 인접하는 블록의 상기 제1의 소정 순위 및 제2의 소정 순위에 있어서의 순위보다 낮게 설정해도 좋다.
상기 제1의 모드 출력부(206)는, 상기 공간적으로 인접하는 이미 디코딩된 복수의 블록에 대해, 상기 제1의 소정 순위에 기초하여 상기 제1의 후보 리스트를 생성할 때, 상기 공간적으로 인접하는 복수의 블록을 상기 제1의 후보 리스트에 배열하는 후보수에 소정의 상한값을 마련하고, 상기 제1의 소정 순위에서 최상위로부터 상기 소정의 상한값만큼의 순위까지의 참조 블록을 이용하여 상기 제1의 후보 리스트를 생성해도 좋다.
상기 제2의 모드 출력부(204)는, 상기 공간적으로 인접하는 이미 디코딩된 복수의 블록 중, 상기 디코딩 대상 블록의 좌측에 배치된 블록을 좌측 블록 그룹, 상기 디코딩 대상 블록의 상측에 배치된 블록을 상측 블록 그룹으로 하여, 상기 블록 그룹 중에서 각각의 상기 블록 그룹을 대표하는 후보를 도출하고, 상기 좌측 블록 그룹의 후보, 상기 상측 블록 그룹의 후보의 차례로 상기 제2의 소정 순위를 마련하여, 상기 제2의 후보 리스트를 생성해도 좋다.
상기 제1의 모드 출력부(206)는, 상기 인코딩열 디코딩부에 의해 상기 인코딩열로부터 디코딩된 상기 제1의 후보 리스트에 배열되는 참조 블록 후보의 최대 개수에 기초하여, 상기 제1의 후보 리스트를 생성해도 좋다.
본 발명의 일 태양에 따른 화상 디코딩 방법은, 동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩된 인코딩열을 디코딩하는 화상 디코딩 방법이고, 상기 인코딩열로부터 디코딩 대상 블록마다, 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스, 또는 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스와 참조 블록에 대응한 차분 움직임 벡터를 디코딩하는 제1스텝; 상기 디코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제2스텝; 상기 제1스텝에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드인 경우에, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1스텝에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제1의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 그 인코딩 정보를 출력하는 제3스텝; 상기 제1스텝에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록에 대응한 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드인 경우에, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제1스텝에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제2의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 해당 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 제1스텝에 의해 디코딩된 차분 움직임 벡터로부터 상기 디코딩 대상 블록의 움직임 벡터를 산출하여 출력하는 제4스텝; 상기 제3스텝 또는 상기 제4스텝에 의해 출력된 정보를 바탕으로, 상기 제1스텝에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드를 사용하여 움직임 보상을 하여 예측 화상을 생성하는 제5스텝을 포함한다. 상기 제3스텝 및 상기 제4스텝은, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용한다.
한편, 이상의 구성 요소의 임의의 조합, 본 발명의 표현을 방법, 장치, 시스템, 기록 매체, 컴퓨터 프로그램 등의 사이에서 변환한 것도, 본 발명의 태양으로서 유효하다.
본 발명에 의하면, 움직임 정보를 처리할 때의 부하를 억제하면서, 움직임 정보의 인코딩 효율을 향상시킬 수 있다.
도 1의 (a), (b)는, 처리 대상의 예측 블록과, 동일 픽처 혹은 시간이 상이한 별도의 픽처에서 인접하는 예측 블록의 일례를 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 있어서의 동영상 인코딩 장치의 구성을 나타내는 블록도이다.
도 3의 (a), (b)는, 본 발명의 실시예에 있어서의 예측 모드의 분류의 정의를 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 있어서의 동영상 디코딩 장치의 구성을 나타내는 블록도이다.
도 5는 본 발명의 실시예에 있어서의 인코딩 블록의 정의를 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 있어서의 참조 인접 블록의 선출 방법에 관한 예측 블록 레벨에서의 비트 스트림의 신택스 패턴을 설명하는 도면이다.
도 7의 (a)~(d)는, 본 발명의 실시예에 있어서의 예측 블록의 형상의 종류를 설명하기 위한 도면이다.
도 8은 본 발명의 실시예에 있어서의 인코딩 정보 저장 메모리에 기록되는 인코딩 정보의 보존 형식을 설명하는 도면이다.
도 9의 (a), (b)는, 본 발명의 실시예에 있어서의 처리 대상의 예측 블록에 대한 참조처가 되는 인접 블록의 배치를 설명하는 도면이다.
도 10은 본 발명의 실시예에 있어서의 인터 예측 정보 검출부의 상세한 구성을 나타내는 블록도이다.
도 11은 실시예 1에 있어서의 머지 검출부의 상세한 구성을 나타내는 블록도이다.
도 12는 실시예 1의 머지 검출부의 인코딩 정보 도출부의 동작을 설명하기 위한 플로차트이다.
도 13은 실시예 1의 인코딩 정보 도출부에 있어서, 동일 픽처 상의 주위의 인접 블록을 선출하는 동작을 설명하기 위한 플로차트이다.
도 14의 (a)~(c)는, 실시예 1의 인코딩 정보 도출부에 있어서, 처리 대상의 예측 블록의 참조 픽처 번호 후보를 선출하는 동작을 설명하는 도면이다.
도 15는 실시예 1의 인코딩 정보 도출부에 있어서, 처리 대상의 예측 블록의 참조 픽처 번호 후보로부터 참조 픽처 번호의 선출 패턴을 열기(列記)한 도면이다.
도 16은 실시예 1의 인코딩 정보 도출부에 있어서, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 인코딩 정보를 선출하는 동작을 설명하기 위한 플로차트이다.
도 17은 실시예 1의 인코딩 정보 도출부에 있어서, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 인코딩 정보를 산출하는 상세한 동작을 설명하기 위한 플로차트이다.
도 18은 col 픽처와 그 참조 픽처의 거리를 처리 대상의 픽처와 그 참조 픽처의 거리로 환산하여, 움직임 벡터를 처리 대상의 픽처에 맞추는 스케일링을 설명하는 도면이다.
도 19는 실시예 1의 참조 후보 리스트 작성부에 있어서, 인코딩 정보 도출부에서 선출된, 참조 인접 블록의 인코딩 정보를 참조 후보 리스트에 등록하는 동작을 설명하기 위한 플로차트이다.
도 20은 실시예 1에 있어서, 참조 후보 리스트 작성부에서 작성되는 참조 후보 리스트의 일례를 나타내는 도면이다.
도 21은 실시예 1의 동일 정보 검출부에 있어서, 참조 후보 리스트에 등록된 동일한 인코딩 정보를 검출·삭제하여 참조 후보 리스트를 갱신하는 동작을 설명하기 위한 플로차트이다.
도 22는 실시예 1의 머지 판정부의 상세한 구성을 나타내는 블록도이다.
도 23은 실시예 1의 움직임 벡터 예측부의 상세한 구성을 나타내는 블록도이다.
도 24는 실시예 1의 움직임 벡터 예측부의 인코딩 정보 도출부의 동작을 설명하기 위한 플로차트이다.
도 25는 실시예 1의 인코딩 정보 도출부에 있어서, 동일 픽처 상의 주위의 인접 블록을 선출하는 동작을 설명하기 위한 플로차트이다.
도 26은 실시예 1의 인코딩 정보 도출부에 있어서, 동일 픽처 상의 주위의 인접 블록을 선출하는 동작을 설명하기 위한 다른 수법의 플로차트이다.
도 27은 움직임 벡터의 스케일링을 설명하는 도면이다.
도 28은 실시예 1에 있어서, 참조 후보 리스트 작성부에서 작성되는 참조 후보 리스트의 일례를 나타내는 도면이다.
도 29는 실시예 1의 동일 정보 검출부에 있어서, 참조 후보 리스트에 등록된 동일한 움직임 벡터를 갖는 인코딩 정보를 검출·삭제하여 참조 후보 리스트를 갱신하는 동작을 설명하기 위한 플로차트이다.
도 30은 실시예 1의 움직임 벡터 도출부의 상세한 구성을 나타내는 블록도이다.
도 31의 (a), (b)는, 실시예 2에 있어서의 처리 대상의 예측 블록에 대한 참조처가 되는 인접 블록의 배치를 설명하는 도면이다.
도 32는 실시예 2의 머지 검출부의 인코딩 정보 도출부의 동작을 설명하기 위한 플로차트이다.
도 33은 실시예 2의 인코딩 정보 도출부에 있어서, 동일 픽처 상의 주위의 인접 블록을 선출하는 동작을 설명하기 위한 플로차트이다.
도 34는 실시예 2의 인코딩 정보 도출부에 있어서, 처리 대상의 예측 블록의 참조 픽처 번호 후보를 선출하는 동작을 설명하는 도면이다.
도 35는 실시예 2의 인코딩 정보 도출부에 있어서, 처리 대상의 예측 블록의 참조 픽처 번호 후보로부터 참조 픽처 번호의 선출 패턴을 열기한 도면이다.
도 36은 실시예 2에 있어서, 머지 검출부의 참조 후보 리스트 작성부에서 작성되는 참조 후보 리스트의 일례를 나타내는 도면이다.
도 37은 실시예 2의 움직임 벡터 예측부의 인코딩 정보 도출부의 동작을 설명하기 위한 플로차트이다.
도 38은 실시예 2의 인코딩 정보 도출부에 있어서, 동일 픽처 상의 주위의 인접 블록을 선출하는 동작을 설명하기 위한 플로차트이다.
도 39는 실시예 2의 인코딩 정보 도출부에 있어서, 동일 픽처 상의 주위의 인접 블록을 선출하는 동작을 설명하기 위한 다른 수법의 플로차트이다.
도 40은 실시예 2에 있어서, 움직임 검출부의 참조 후보 리스트 작성부에서 작성되는 참조 후보 리스트의 일례를 나타내는 도면이다.
도 41은 실시예 3에 있어서, 머지 모드와 움직임 검출 모드로 다른 선출 수법에 의해 작성된 참조 후보 리스트의 일례를 나타내는 도면이다.
도 42는 실시예 4의 머지 검출부의 인코딩 정보 도출부의 동작을 설명하기 위한 플로차트이다.
도 43은 실시예 4의 인코딩 정보 도출부에 있어서, 동일 픽처 상의 주위의 인접 블록을 선출하는 동작을 설명하기 위한 플로차트이다.
도 44는 실시예 4의 움직임 벡터 예측부의 인코딩 정보 도출부의 동작을 설명하기 위한 플로차트이다.
도 45는 실시예 4의 인코딩 정보 도출부에 있어서, 동일 픽처 상의 주위의 인접 블록을 선출하는 동작을 설명하기 위한 수법의 플로차트이다.
도 46은 실시예 5의 참조 후보 리스트 작성부에 있어서, 인코딩 정보 도출부에서 선출된 참조 인접 블록의 인코딩 정보를 참조 후보 리스트에 등록하는 동작을 설명하기 위한 플로차트이다.
도 47은 실시예 6에 있어서, 참조 후보 리스트 작성부에서 작성되는 참조 후보 리스트의 일례를 나타내는 도면이다.
도 48은 실시예 7의 머지 검출부의 상세한 구성을 나타내는 블록도이다.
도 49는 실시예 7의 동일 정보 검출부에 있어서, 참조 후보 리스트에 등록된 인코딩 정보를 제한하여 참조 후보 리스트를 갱신하는 동작을 설명하기 위한 플로차트이다.
도 50은 실시예 7의 머지 검출부의 상세한 구성을 나타내는 블록도이다.
도 51은 실시예 7의 참조 후보 리스트 작성부에 있어서, 참조 후보 리스트에 등록된 인코딩 정보를 제한하여 참조 후보 리스트를 갱신하는 동작을 설명하기 위한 플로차트이다.
도 52는 실시예 7의 움직임 벡터 예측부의 상세한 구성을 나타내는 블록도이다.
도 53은 실시예 7의 인코딩 정보 도출부에 있어서, 주위의 인접 블록을 선출하는 동작을 설명하기 위한 플로차트이다.
도 54는 실시예 7의 인코딩 정보 도출부의 움직임 벡터의 산출의 상세한 동작을 설명하기 위한 플로차트이다.
도 55는 실시예 7의 참조 후보 리스트 작성부에 있어서, 인코딩 정보 도출부에서 선출된 참조 인접 블록의 인코딩 정보를 참조 후보 리스트에 등록하는 동작을 설명하기 위한 플로차트이다.
도 56은 실시예 7의 동일 정보 검출부에 있어서, 참조 후보 리스트에 등록된 인코딩 정보를 제한하여 참조 후보 리스트를 갱신하는 동작을 설명하기 위한 플로차트이다.
도 57은 실시예 7의 움직임 벡터 예측부의 상세한 구성을 나타내는 블록도이다.
도 58은 실시예 8의 참조 후보 리스트 작성부에 있어서, 인코딩 정보 도출부에서 선출된 참조 인접 블록의 인코딩 정보를 참조 후보 리스트에 등록하는 동작을 설명하기 위한 플로차트이다.
도 59는 실시예 8에 있어서, 머지 모드와 움직임 검출 모드로 작성된 참조 후보 리스트의 일례를 나타내는 도면이다.
도 60은 실시예 9의 참조 후보 리스트 작성부에 있어서, 인코딩 정보 도출부에서 선출된 참조 인접 블록의 인코딩 정보를 참조 후보 리스트에 등록하는 동작을 설명하기 위한 플로차트이다.
도 61은 실시예 9의 참조 후보 리스트 작성부에 있어서, 변환 테이블을 작성·갱신하는 동작을 설명하기 위한 플로차트이다.
도 62는 실시예 9의 참조 후보 리스트 작성부에 있어서, 참조 후보 리스트의 인덱스와 변환 테이블의 인덱스의 대응 관계의 일례를 나타내는 도면이다.
도 63은 실시예 9에 있어서, 참조 후보 리스트 작성부에서 작성되는 참조 후보 리스트의 일례를 나타내는 도면이다.
도 64는 실시예 12의 움직임 벡터 예측부의 상세한 구성을 나타내는 블록도이다.
도 65는 실시예 12의 참조 후보 제어부에 있어서, 참조 후보 리스트에 등록된 인코딩 정보를 교체를 실시하는 동작을 설명하기 위한 플로차트이다.
본 발명을 실시하는 바람직한 동영상 인코딩 장치 및 동영상 디코딩 장치에 대해 설명한다. 도 2는 본 발명의 실시예에 따른 동영상 인코딩 장치(100)의 구성을 나타내는 블록도이다. 동영상 인코딩 장치(100)는, 화상 메모리(101), 움직임 벡터 추정(estimate)부(102), 움직임 벡터 예측부(103), 인터 예측 정보 검출부(104), 움직임 보상 예측부(105), 머지 검출부(106), 예측 방법 결정부(107), 스위치(108), 제1의 인코딩 비트열 생성부(109), 잔차 신호 생성부(110), 직교 변환·양자화부(111), 역양자화·역직교 변환부(112), 디코딩 화상 신호 중첩부(113), 인코딩 정보 저장 메모리(114), 디코딩 화상 메모리(115), 제2의 인코딩 비트열 생성부(116) 및 인코딩 비트열 다중화부(117)를 구비한다. 한편, 각 블록 사이를 잇는 굵은 실선의 화살표는 픽처 화상 신호, 가는 실선의 화살표는 인코딩을 제어하는 파라미터 신호의 흐름을 나타내는 것이다.
화상 메모리(101)는, 촬영/표시 시간순으로 공급된 인코딩 대상의 화상 신호를 일시 저장한다. 화상 메모리(101)는, 저장된 인코딩 대상의 화상 신호를, 소정의 화소 블록 단위로, 움직임 벡터 추정부(102), 예측 방법 결정부(107) 및 잔차 신호 생성부(110)에 공급한다. 그 때, 촬영/표시 시간순으로 저장된 화상은, 인코딩 순서로 재배열하여, 화소 블록 단위로, 화상 메모리(101)로부터 출력된다.
움직임 벡터 추정부(102)는, 화상 메모리(101)로부터 공급되는 화상 신호와 디코딩 화상 메모리(115)로부터 공급되는 디코딩 화상(참조 픽처) 사이에서 블록 매칭 등에 의해, 각 예측 블록 사이즈, 예측 모드마다의 움직임 벡터를 예측 블록 단위로 검출하고, 검출된 움직임 벡터를 움직임 보상 예측부(105), 움직임 벡터 예측부(103) 및 예측 방법 결정부(107)에 공급한다. 여기서, 예측 모드는 도 3(a)에 도시되는 바와 같이 대별되어 있고, 도 3의 (a), (b) 중의 단방향 예측 혹은 쌍방향 예측 모드의 움직임 벡터가 검출된다. 예측 모드는 후술하는 신택스의 정의에서 설명한다.
움직임 벡터 예측부(103)는, 예측 모드가 움직임 검출 모드인 경우에 인터 예측 정보 검출부(104)에서 출력되는 인코딩 정보의 움직임 벡터를 예측 움직임 벡터로 하여, 움직임 벡터 추정부(102)가 검출한 움직임 벡터와 해당 예측 움직임 벡터로부터 차분 움직임 벡터를 산출하고, 산출된 차분 움직임 벡터를 예측 방법 결정부(107)에 공급한다. 또한, 선택된 예측 움직임 벡터를 특정하는 인덱스를 예측 방법 결정부(107)에 공급한다. 움직임 벡터 예측부(103)의 상세한 구성과 동작은 후술한다.
인터 예측 정보 검출부(104)는, 처리 대상의 예측 블록이 참조하는 동일 픽처 상에서 처리 대상의 예측 블록의 주변에 인접하는 인코딩 완료된 예측 블록, 혹은 시간이 상이한 다른 픽처 중에서 처리 대상의 예측 블록과 동일 위치의 블록 주변에 인접하는 예측 블록의 인코딩 정보를 인코딩 정보 저장 메모리(114)로부터 취득한다. 인코딩 정보 저장 메모리(114)에 기억되어 있는 이미 인코딩된 주변의 인접 블록, 혹은 시간이 상이한 다른 픽처의 인접 블록의 인코딩 정보 중, 처리 대상의 예측 블록의 위치 정보로부터, 복수의 참조처 후보의 인접 블록의 인코딩 정보를 검출하고, 참조처로서 선택되는 인접 블록의 인코딩 정보와 그 인접 블록을 특정하는 인덱스를, 스위치(108)에 입력되는 동영상 인코딩 장치(100)에 의해 제어되는 예측 모드로 전환하여 공급한다. 인터 예측 정보 검출부(104)의 상세한 구성과 동작은 후술한다.
움직임 보상 예측부(105)는, 움직임 벡터 추정부(102)에 의해 검출된 움직임 벡터 혹은 인터 예측 정보 검출부(104)에 의해 검출된 참조처로서 선택되는 인접 블록의 인코딩 정보를 사용하여, 참조 픽처로부터 움직임 보상 예측에 의해 예측 화상 신호를 생성하고, 해당 예측 화상 신호를 예측 방법 결정부(107)에 공급한다. 한편, 쌍방향 예측의 경우에는, 주로 전방향의 예측으로서 사용되는 L0 예측, 주로 후방향의 예측으로서 사용되는 L1 예측의 2개의 움직임 보상 예측 화상 신호에 적응적으로 가중 계수를 곱셈하여 중첩하고, 최종적인 예측 화상 신호를 생성한다. 이 가중 계수는, 슬라이스 단위 혹은 예측 블록 단위로 설정된다.
머지 검출부(106)는, 예측 모드가 머지 모드인 경우에 인터 예측 정보 검출부(104)에서 취득되는 처리 대상의 예측 블록이 참조하는 인접 블록(이하, 참조 인접 블록이라 한다)의 인코딩 정보를, 처리 대상의 예측 블록의 인코딩 정보로서 이용하기 위해, 인접 블록을 우선하여 참조하는 순위로 재배열하여 참조 후보 리스트에 등록한다. 머지 검출부(106)는, 해당 참조 후보 리스트 중에 등록된 인코딩 정보를 처리 대상의 예측 블록의 인코딩 정보로서 검출하고, 검출된 인코딩 정보의 움직임 벡터, 참조 픽처 번호, 참조 리스트 등을 움직임 보상 예측부(105)에 공급한다. 또한, 머지 검출부(106)는, 검출된 인코딩 정보를 갖는 참조 인접 블록을 특정하는 인덱스를 예측 방법 결정부(107)에 공급한다. 머지 검출부(106)의 상세한 구성과 동작은 후술한다.
예측 방법 결정부(107)는, 참조 인접 블록의 인코딩 정보, 인접 블록을 특정하는 인덱스의 코딩량, 움직임 보상 예측 신호와 화상 신호 사이의 왜곡량 등을 평가하는 것에 의해, 복수의 예측 방법 중에서, 최적의 예측 블록 사이즈, 분할 모드(PartMode), 예측 모드(PredMode) 등을 포함하는 예측 방법을 결정한다. 예측 방법 결정부(107)는, 결정된 예측 방법을 나타내는 정보 및 결정된 예측 방법에 따른 차분 움직임 벡터 등을 포함하는 인코딩 정보를 제1의 인코딩 비트열 생성부(109)에 공급한다. 한편, 예측 블록 사이즈, 분할 모드 및 예측 모드의 상세한 것에 대해서는 후술한다.
스위치(108)는, 동영상 인코딩 장치(100)에 의해 제어되는 예측 모드에 상응하여, 인터 예측 정보 검출부(104)에 의해 검출된 참조처로서 선택되는 인접 블록의 인코딩 정보를 움직임 벡터 예측부(103) 혹은 머지 검출부(106) 사이에서 전환하여 공급한다. 또한, 스위치(108)는, 결정된 예측 방법을 나타내는 정보 및 결정된 예측 방법에 따른 움직임 벡터 등을 포함하는 인코딩 정보를 인코딩 정보 저장 메모리(114)에 저장하고, 결정된 예측 모드에 상응한 움직임 보상 예측 화상 신호를 잔차 신호 생성부(110) 및 디코딩 화상 신호 중첩부(113)에 부여한다.
잔차 신호 생성부(110)는, 인코딩하는 화상 신호와 예측 신호의 뺄셈을 하여 잔차 신호를 생성하여, 직교 변환·양자화부(111)에 부여한다. 직교 변환·양자화부(111)는, 잔차 신호에 대해 직교 변환 및 양자화를 진행하여 직교 변환·양자화된 잔차 신호를 생성하여, 제2의 인코딩 비트열 생성부(116)와 역양자화·역직교 변환부(112)에 공급한다.
제1의 인코딩 비트열 생성부(109)는, 예측 방법 결정부(107)에 의해 결정된 예측 방법 정보 및 해당 예측 방법 정보에 따른 차분 움직임 벡터에 관한 정보를, 규정된 신택스 규칙에 따라 인코딩하여 제1의 인코딩 비트열을 생성하고, 인코딩 비트열 다중화부(117)에 공급한다.
한편, 필요에 따라 예측 방법 결정부(107)로부터 공급되는 가중 예측의 가중 파라미터, 인터레이스 인코딩 시의 프레임/필드 예측을 식별하는 플래그, 양자화의 양자화 파라미터, 잔차 신호를 인코딩하였는지 여부를 나타내는 플래그, 직교 변환의 수법을 식별하는 플래그, 잔차 신호의 인코딩 순서를 식별하는 플래그, 디블로킹 필터(deblocking filter) 등의 포스트 필터의 정보 등의, 인코딩 정보의 예측값과 실제로 사용하는 값의 차분이 제1의 인코딩 비트열 생성부(109)에 공급되어, 인코딩된다. 또한, 잔차 신호의 인코딩 순서를 식별하는 플래그 등의, 예측된 인코딩 정보를 인코딩 정보 저장 메모리(114)에 저장한다.
제2의 인코딩 비트열 생성부(116)는, 직교 변환 및 양자화된 잔차 신호를 규정된 신택스 규칙에 따라 엔트로피 코딩하여 제2의 인코딩 비트열을 생성하여, 인코딩 비트열 다중화부(117)에 공급한다. 인코딩 비트열 다중화부(117)는, 제1의 인코딩 비트열과 제2의 인코딩 비트열을 규정된 신택스 규칙에 따라 다중화하여, 비트 스트림을 출력한다.
역양자화·역직교 변환부(112)는, 직교 변환·양자화부(111)로부터 공급된 직교 변환·양자화된 잔차 신호를 역양자화 및 역직교 변환하여 잔차 신호를 산출하여, 디코딩 화상 신호 중첩부(113)에 공급한다. 디코딩 화상 신호 중첩부(113)는, 예측 방법 결정부(107)에 의한 결정에 따른 예측 신호와, 역양자화·역직교 변환부(112)에서 역양자화 및 역직교 변환된 잔차 신호를 중첩하여 디코딩 화상을 생성하여, 디코딩 화상 메모리(115)에 저장한다. 한편, 디코딩 화상에 대해 인코딩에 의한 블록 노이즈 등의 왜곡을 감소시키는 필터링 처리를 실시하여, 디코딩 화상 메모리(115)에 저장되는 경우도 있다. 그 경우, 필요에 따라 디블로킹 필터 등의 포스트 필터의 정보를 식별하는 플래그 등의, 예측된 인코딩 정보를 인코딩 정보 저장 메모리(114)에 저장한다.
도 4는 도 2의 동영상 인코딩 장치(100)에 대응한 실시예에 있어서의 동영상 디코딩 장치(200)의 구성을 나타내는 블록도이다. 상기 동영상 디코딩 장치(200)는, 비트열 분리부(201), 제1의 인코딩 비트열 디코딩부(202), 제2의 인코딩 비트열 디코딩부(203), 움직임 벡터 도출(derivate)부(204), 인터 예측 정보 검출부(205), 머지 판정부(206), 움직임 보상 예측부(207), 역양자화·역직교 변환부(208), 디코딩 화상 신호 중첩부(209), 인코딩 정보 저장 메모리(210), 디코딩 화상 메모리(211) 및 스위치(212)를 구비한다. 한편, 도 2의 동영상 인코딩 장치(100)와 동일하게, 각 블록 사이를 잇는 굵은 실선의 화살표는 픽처의 화상 신호, 가는 실선의 화살표는 인코딩을 제어하는 파라미터 신호의 흐름을 나타내는 것이다.
도 4의 동영상 디코딩 장치(200)의 디코딩 처리는, 도 2의 동영상 인코딩 장치(100)의 내부에 마련되어 있는 디코딩 처리에 대응하는 것이기 때문에, 도 4의 움직임 보상 예측부(207), 역양자화·역직교 변환부(208), 디코딩 화상 신호 중첩부(209), 인코딩 정보 저장 메모리(210) 및 디코딩 화상 메모리(211)의 각 구성은, 도 2의 동영상 인코딩 장치(100)의 움직임 보상 예측부(105), 역양자화·역직교 변환부(112), 디코딩 화상 신호 중첩부(113), 인코딩 정보 저장 메모리(114) 및 디코딩 화상 메모리(115)의 각 구성과 각각 대응하는 기능을 갖는다.
비트열 분리부(201)에 공급되는 비트 스트림은, 규정된 신택스 규칙에 따라 분리되어, 분리된 인코딩 비트열이 제1의 인코딩 비트열 디코딩부(202) 및 제2의 인코딩 비트열 디코딩부(203)에 공급된다.
제1의 인코딩 비트열 디코딩부(202)는, 공급된 인코딩 비트열을 디코딩하여 예측 모드, 움직임 벡터 등에 관한 인코딩 정보를 출력하고, 인코딩 정보를 움직임 벡터 도출부(204) 또는 인터 예측 정보 검출부(205)와, 움직임 보상 예측부(207)에 부여하는 한편 인코딩 정보 저장 메모리(210)에 저장한다.
제2의 인코딩 비트열 디코딩부(203)는, 공급된 인코딩 비트열을 디코딩하여 직교 변환·양자화된 잔차 신호를 산출하여, 직교 변환·양자화된 잔차 신호를 역양자화·역직교 변환부(208)에 부여한다.
움직임 벡터 도출부(204)는, 예측 모드가 움직임 검출 모드인 경우에 인터 예측 정보 검출부(205)에 의해 판정되고, 출력되는 인코딩 정보의 움직임 벡터를 예측 움직임 벡터로 하여, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 차분 벡터 및 해당 예측 움직임 벡터로부터 움직임 벡터를 산출하여, 해당 움직임 벡터를 움직임 보상 예측부(207)에 공급하는 한편, 인코딩 정보 저장 메모리(210)에 공급한다.
인터 예측 정보 검출부(205)는, 처리 대상의 예측 블록이 참조하는 동일 픽처 상에서 처리 대상의 예측 블록의 주변에 인접하는 디코딩 완료된 예측 블록, 혹은 시간이 상이한 다른 픽처 중에서 처리 대상의 예측 블록과 동일 위치의 블록 주변에 인접하는 예측 블록의 인코딩 정보를 인코딩 정보 저장 메모리(210)로부터 취득한다. 인코딩 정보 저장 메모리(210)에 기억되어 있는 이미 디코딩된 주변의 인접 블록, 혹은 시간이 상이한 다른 픽처의 인접 블록의 인코딩 정보 중, 처리 대상의 예측 블록의 위치 정보로부터, 복수의 참조처 후보의 인접 블록의 인코딩 정보를 검출하고, 참조처로서 선택되는 인접 블록의 인코딩 정보와 그 인접 블록을 특정하는 인덱스를, 스위치(212)에 입력되는 동영상 디코딩 장치(200)에 의해 디코딩된 예측 모드로 전환하여 공급한다. 인터 예측 정보 검출부(205)의 상세한 구성과 동작은 후술한다.
머지 판정부(206)는, 예측 모드가 머지 모드인 경우에 인터 예측 정보 검출부(205)에서 취득되는 처리 대상의 예측 블록이 참조 인접 블록의 인코딩 정보를, 처리 대상의 예측 블록의 인코딩 정보로서 이용하기 위해, 인접 블록을 우선하여 참조하는 순위로 재배열하여 참조 후보 리스트에 등록한다. 머지 판정부(206)는, 해당 참조 후보 리스트 중에서 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 참조 인접 블록을 특정하는 인덱스로 지정되는 인접 블록을 검출하고, 그 인코딩 정보를 움직임 보상 예측부(207)에 공급하는 한편, 인코딩 정보 저장 메모리(210)에 공급한다. 머지 판정부(206)의 상세한 구성과 동작은 후술한다.
움직임 보상 예측부(207)는, 움직임 벡터 도출부(204)에서 산출된 움직임 벡터 혹은 머지 판정부(206)에 의해 검출된 참조처로서 선택되는 인접 블록의 인코딩 정보를 사용하여, 참조 픽처로부터 움직임 보상 예측에 의해 예측 화상 신호를 생성하여, 예측 화상 신호를 디코딩 화상 신호 중첩부(209)에 공급한다. 한편, 쌍방향 예측의 경우에는, L0 예측, L1 예측의 2개의 움직임 보상 예측 화상 신호에 적응적으로 가중 계수를 곱셈하여 중첩하고, 최종적인 예측 화상 신호를 생성한다.
역양자화·역직교 변환부(208)는, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 직교 변환·양자화된 잔차 신호에 대해 역직교 변환 및 역양자화를 하여, 역직교 변환·역양자화된 잔차 신호를 얻는다.
디코딩 화상 신호 중첩부(209)는, 움직임 보상 예측부(207)에서 움직임 보상 예측된 예측 화상 신호와, 역양자화·역직교 변환부(208)에 의해 역직교 변환·역양자화된 잔차 신호를 중첩하는 것에 의해, 디코딩 화상 신호를 디코딩하여, 디코딩 화상 메모리(211)에 저장한다. 디코딩 화상 메모리(211)에 저장할 때는, 디코딩 화상에 대해 인코딩에 의한 블록 노이즈 등을 감소시키는 필터링 처리를 실시하여, 디코딩 화상 메모리(211)에 저장되는 경우도 있다.
스위치(212)는, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 예측 모드에 상응하여, 인터 예측 정보 검출부(205)에 의해 검출된 참조처로서 선택되는 인접 블록의 인코딩 정보를 움직임 벡터 도출부(204) 혹은 머지 판정부(206) 사이에서 전환하여 공급한다.
이하의 실시예에서는, 동영상 인코딩 장치(100)의 인터 예측 정보 검출부(104) 및 동영상 디코딩 장치(200)의 인터 예측 정보 검출부(205) 중에서 공통으로 실시되는 움직임 벡터의 예측 방법과 머지 수법에서 참조하는 주변의 인접 블록의 배치를 통합하고, 그 중에서 참조 인접 블록을 선출하는 방법의 상세한 것에 대해 설명한다.
본 발명의 실시예에서 참조 인접 블록의 선출 방법을 설명하기 전에, 본 실시예에서 사용하는 용어를 정의한다.
(본 발명에서 사용하는 용어의 정의)
·인코딩 블록의 정의
본 실시예에서는, 도 5에 도시되는 바와 같이, 화면 내를 동일 사이즈의 정사각형 블록으로 균등 분할된다. 이 블록을 인코딩 블록이라 부르고, 인코딩 및 디코딩을 할 때의 처리의 기본으로 한다. 인코딩 블록은 화면내의 텍스처(texture)에 상응하여, 인코딩 처리를 최적으로 하기 위해, 인코딩 블록 내를 4분할하여, 블록 사이즈가 작은 인코딩 블록으로 할 수 있다. 도 5에 도시되는 화면 내를 균등 사이즈로 분할되는 인코딩 블록을 최대 인코딩 블록이라 부르고, 그 내부를 인코딩 조건에 따라 4분할한 것을 총칭하여 인코딩 블록이라 한다. 인코딩 블록을 더 이상 4분할할 수 없는 최소의 사이즈가 되는 인코딩 블록을 최소 인코딩 블록이라 하기로 한다.
·예측 블록의 정의
화면 내를 블록으로 분할하여 움직임 보상을 하는 경우, 움직임 보상의 블록 사이즈를 더욱 작게 하는 것이, 더 세밀한 예측을 할 수 있기 때문에, 여러 개의 블록 사이즈 중에서 최적의 것을 선택하여, 움직임 보상을 하는 구조를 도입하고 있다. 이 움직임 보상을 하는 블록을 예측 블록이라 부른다. 예측 블록은 인코딩 블록의 내부를 분할하는 경우에 사용되고, 움직임 보상에 상응하여, 인코딩 블록 내부를 분할하지 않고 1블록으로 간주하는 경우를 최대로 하고, 수평 혹은 수직 방향으로 2분할한 것, 수평과 수직의 균등 분할에 의해 4분할한 것으로 나눌 수 있다. 분할 방법에 따라, 분할 타입에 대응한 분할 모드(PartMode)가 정의되어 있고, 도 6에 도시된다. 도 7(a)~(d) 중의 직사각형 내부의 번호는 분할된 예측 블록의 번호를 나타낸다. 최소 인코딩 블록 내부에 있어서, 예측 블록을 관리하기 위해, 0으로부터 시작하는 번호가 예측 블록에 대해 위에서 아래, 좌측에서 우측의 순서로 할당된다.
이상과 같이, 인코딩 블록을 움직임 검출·보상을 하는 경우, 움직임 검출·보상의 단위로서는, 인코딩 블록 자신의 사이즈, 인코딩 블록을 2분할 혹은 4분할한 각각의 소블록, 나아가 4분할한 각각의 소블록을 인코딩 블록으로서 동일하게 분할하는 것에 의해 예측 블록의 최소 사이즈까지 재귀적(recursively)으로 얻어지는 사이즈의 블록이 된다. 이하의 설명에서는, 특히 한정하지 않는 한 움직임 검출·보상을 하는 단위는 형상, 사이즈에 상관없이 "예측 블록"이라 한다.
(참조 리스트)
다음으로, 참조 리스트에 대해 설명한다. 인코딩 및 디코딩시는, 참조 리스트 LX마다의 참조 인덱스로부터 참조 픽처 번호를 지정하여 참조한다. L0과 L1로 2개가 준비되어 있고, X에는 0 혹은 1이 들어간다. 참조 리스트 L0에 등록되어 있는 참조 픽처를 참조하는 인터 예측을 L0 예측(Pred_L0)이라 부르고, 참조 리스트 L1에 등록되어 있는 참조 픽처를 참조하는 움직임 보상 예측을 L1 예측(Pred_L1)이라 부른다. 주로 L0 예측은 전방향 예측에, L1 예측은 후방향 예측으로서 사용되고, P슬라이스에서는 L0 예측만, B슬라이스에서는 L0 예측, L1 예측 및 L0 예측과 L1 예측을 평균 또는 가중 가산하는 쌍방향 예측을 사용할 수 있다. 이후의 처리에 있어서 출력에 첨자 LX가 붙어있는 값에 대해서는, L0 예측, L1 예측마다 처리를 하는 것을 전제로 한다.
(인코딩 정보의 기록)
다음으로, 움직임 검출·보상에 의해 검출되는 움직임 벡터 등의 인코딩 정보의 기록에 대해 설명한다. 여기서, 인코딩 정보는, 움직임 벡터를 비롯해, 참조 리스트, 참조 리스트에 등록되어 있는 참조 픽처를 나타내는 참조 픽처 번호, 예측 모드 등, 인코딩에 사용된 정보로 구성된다. 예측 블록 단위로 움직임 검출·보상이 이루어지지만, 검출된 움직임 벡터 등의 인코딩 정보는, 예측 블록 단위로 기록하지 않고, 상술한 최소 예측 블록 단위로 기록한다. 즉, 예측 블록 내부를 구성하는 복수의 최소 예측 블록에 동일한 인코딩 정보를 기록하도록 한다.
예측 블록의 사이즈는 인코딩 조건에 따라 변하기 때문에, 예측 블록 단위로 인코딩 정보 저장 메모리(114, 210)에 기록하기 위해서는, 검출된 움직임 벡터 이외에 예측 블록의 픽처 상에서의 위치, 예측 블록의 형상 등의 부가 정보가 필요하게 되고, 인코딩 정보를 취득하기 위한 액세스가 복잡화된다. 그 때문에, 정보의 중복 기록에 의한 장황도는 있지만, 균일한 최소 예측 블록 단위로 분할하고, 기록하는 것이 액세스가 용이하다.
도 8은 픽처를 최소 예측 블록으로 분할한 일례이고, 이 도면을 사용하여 인코딩 정보 저장 메모리(114, 210)에 기록되는 인코딩 정보의 보존 형식을 설명한다. 도 8 중의 w는 픽처의 폭, h는 픽처의 높이를 나타낸다. 최소 예측 블록의 폭 및 높이를 p로 하면, 횡방향으로 w/p개, 종방향으로 h/p개의 최소 예측 블록으로 픽처는 구성되게 되고, 이 하나 하나의 최소 예측 블록에 대응하는 인코딩 정보가 도 8 중의 굵은 실선으로 표시되는 래스터 주자(raster scan) 순으로 인코딩 정보 저장 메모리(114, 210)에 기록된다.
여기서, 도 8 중의 굵은 선으로 둘러싸인 직사각형 영역을 예측 블록(도 8 중의 해칭된 영역)이라 한다. 예측 블록에서는 움직임 검출에 의해 움직임 벡터 등의 인코딩 정보가 검출된다. 검출된 인코딩 정보는, 예측 블록 내를 구성하는 최소 예측 블록에 대응하는 인코딩 정보 저장 메모리(114, 210)에 기록된다. 인코딩 정보 저장 메모리(114, 210)의 인코딩 정보의 기록 영역의 선두 어드레스를 도 8 중의 좌상측을 원점으로 하면, 예측 블록의 선두 위치는 도 8 중의 검은색 원으로 표시된다. 예측 블록의 선두 위치가 최소 예측 블록 단위에서 원점으로부터 우측으로 x개, 하측으로 y개의 위치에 있다고 하면, 예측 블록의 선두 어드레스는 w/p×y+x로 표시된다. 그 선두 위치의 최소 예측 블록으로부터, 해칭된 예측 블록 내의 최소 예측 블록에 대응하는 인코딩 정보 저장 메모리(114, 210) 내의 기억 영역에 예측 블록의 인코딩 정보를 기록해 간다. 이와 같이 하여, 예측 블록 중의 최소 예측 블록에 대응하는 인코딩 정보 저장 메모리(114, 210)의 기록 영역에, 동일 인코딩 정보를 기록한다.
다음으로, 본 발명의 실시예에 있어서의, 참조 인접 블록의 선출 방법을 갖추는 동영상 인코딩 장치에 의해 인코딩 되는 동영상의 비트 스트림 신택스에 대해 설명한다.
(신택스의 정의)
상술한 도 3(a)는 예측 모드에 따라 인코딩을 대별한 것이다. 화상간 예측(Inter 모드)의 경우, 먼저 머지 수법을 사용하는지 여부에 따라 머지 모드와 비머지 모드로 나눌 수 있다. 비머지 모드는 블록 매칭 등의 움직임 벡터의 검출을 실제로 하는 모드이고, 움직임 검출 모드라고 바꿔 말할 수 있다. 머지 모드는 skip 모드와 비skip 모드로 더 나눌 수 있다. skip 모드는 참조 인접 블록의 인코딩 정보에 의해 예측된 예측 화상 신호를 디코딩 화상으로 하기 때문에, 화상 잔차 신호는 0이 된다. 따라서, skip 모드는 인코딩 전송을 불필요하고, 인코딩 정보의 참조처를 나타내는 인덱스만을 인코딩 전송하는 모드이다. skip 모드의 인코딩 정보는 머지 모드와 동일하고, 여기서는 화상 잔차 신호를 인코딩 전송하는 경우를 머지 모드로 한정하기로 한다. Inter 모드의 인코딩 대상이 되는 신호를 분류한 표를 도 3(b)에 나타낸다. skip 모드에서는, 다른 모드와는 달리, 화상 잔차 신호의 인코딩 전송을 필요로 하지 않기 때문에, 도 3(a)의 예측 모드의 분기 순으로 판정을 하는 것 보다, 먼저 skip 모드의 판정을 하는 것이 모드 판정에 사용되는 플래그의 코딩량을 억제할 수 있다.
상술한 도 6은 슬라이스 중의 예측 블록 단위로 기술되는 신택스 패턴을 나타낸다. 우선, skip 모드인지 여부를 나타내는 플래그 skip_flag가 설치된다. skip_flag가 참(1)이고, 나아가 참조 인접 블록의 후보의 총수 NumMergeCand가 1개를 넘는 경우, skip 모드가 적용되고, 인코딩 정보를 참조 인접 블록의 후보 리스트인 머지 리스트의 인덱스 신택스 요소 merge_idx가 설치된다. NumMergeCand가 1인 경우에는, 그 1개가 참조 인접 블록이 되기 때문에, merge_idx를 전송하지 않아도 참조 인접 블록의 후보가 확정된다.
다음으로, 예측 블록의 예측 모드가 화상간 예측(Inter 모드)인 경우, 머지 모드인지 여부를 나타내는 플래그 merge_flag가 설치된다. merge_flag가 참(1)이고, 나아가 참조 인접 블록의 후보의 총수 NumMergeCand가 1개를 넘는 경우, 머지 모드가 적용되고, 인코딩 정보를 참조 인접 블록의 후보 리스트인 머지 리스트의 인덱스 신택스 요소 merge_idx가 설치된다. NumMergeCand가 1인 경우에는, 그 1개가 참조 인접 블록이 되기 때문에, merge_idx를 전송하지 않아도 참조 인접 블록의 후보가 확정된다.
merge_flag가 거짓(0)인 경우, 머지 모드를 적용하지 않고, 통상의 움직임 벡터 검출을 하여, 움직임 벡터나 참조 픽처 번호 등의 인코딩 정보를 전송한다(움직임 검출 모드에 해당한다). 예측 블록마다, 예측 블록이 속하는 슬라이스의 슬라이스 타입에 따라, 인코딩 및 디코딩시에 사용하는 참조 리스트를 선택한다. 슬라이스 타입 slice_type이 "B"인 경우, 단방향 예측 혹은 쌍방향 예측을 나타내는 플래그 inter_pred_flag를 설정한다.
inter_pred_flag는 Pred_L0(L0 예측), Pred_L1(L1 예측) 혹은 Pred_BI(쌍방향 예측)으로 설정한다. inter_pred_flag에 기초하여, 참조 리스트 LX(X=0 혹은 1)를 설정한다. 설정된 참조 리스트마다 움직임 벡터 검출에 의해 구해진, 참조 픽처 번호를 나타내는 신택스 요소ref_idx_lX, 및 움직임 벡터와 예측 블록의 주위의 인접 블록의 예측 움직임 벡터의 차분 움직임 벡터의 신택스 요소 mvd_lX[i]가 설치된다. 여기서, X는 0 혹은 1로 참조 리스트를 나타내고, i는 차분 움직임 벡터의 성분을 나타내고, i=0은 x성분을, i=1은 y성분을 나타낸다.
다음으로, 예측 움직임 벡터의 후보의 총수 NumMvpCand(LX)가 1개를 넘는 경우에, 참조하는 예측 움직임 벡터의 후보 리스트인 MVP 리스트의 인덱스 신택스 요소 mvp_idx_lX가 설치된다. NumMvpCand(LX)는, 참조 리스트 LX(X는 0 혹은 1)로 예측 블록의 예측 움직임 벡터의 후보의 총수를 산출하는 함수를 나타낸다. 또한, 움직임 벡터의 예측 방법에 의해 예측 움직임 벡터의 후보의 총수 NumMvpCand(LX)가 1개인 경우에, 인덱스 mvp_idx_lX는 설치되지 않고, 인코딩되지 않는다. 예측 움직임 벡터의 후보의 총수가 1개이면, 그 1개가 예측 움직임 벡터가 되기 때문에, mvp_idx_lX를 전송하지 않아도 참조하는 예측 움직임 벡터의 후보가 확정되기 때문이다. 이상의 신택스에 기초하여, 동영상의 비트 스트림 인코딩 및 디코딩이 가능해진다.
다음으로, 움직임 검출 모드에 있어서 참조하는 예측 움직임 벡터를 갖는 주위의 인접 블록, 혹은 머지 모드에 있어서의 인코딩 정보의 참조처가 되는 주위의 인접 블록의 배치의 일례를 도 9의 (a), (b)에 나타낸다. 도 9의 (a), (b)에서는, 처리 대상이 되는 예측 블록에 대해, 인접하는 블록을 최소 예측 블록으로 나타내고 있다.
이 구성은, 인코딩 정보 저장 메모리(114, 210)에 기록된 이미 인코딩 완료된 인코딩 정보에 대해, 처리 대상의 예측 블록의 위치와 크기(블록의 폭 및 높이)에 기초하여 액세스하는 경우에 바람직하다. 도 9의 (a), (b)에 도시되는 주위의 인접 블록에 대해, 처리 대상의 예측 블록의 좌측에 인접하는 블록을 기호 "A"로 나타내고, 상측에 인접하는 블록을 "B"로 나타낸다. 첨자의 숫자는 위치를 나타낸다.
블록 "T"는 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 일례이다. 본 발명의 실시예에서는 처리 대상의 예측 블록에 대해 다른 픽처의 우하측에 설정하는 것으로 한다. 한편, 처리 대상의 예측 블록의 위치에 의해, 블록 T가 픽처 밖이 되는 경우에는, 처리 대상의 예측 블록에 대해 다른 픽처의 중앙 부근의 최소 예측 블록의 위치로 한다. 도 9(a)는 동일 픽처 상의 공간에 있는 인접 블록으로, 5개의 후보로 하고, 시간이 상이한 다른 픽처에 있는 후보와 합쳐서 6개의 후보로 구성된다. 도 9(b)는 동일 픽처 상의 공간에 있는 인접 블록으로, 4개의 후보로 하고, 시간이 상이한 다른 픽처에 있는 후보와 합쳐서 5개의 후보로 구성된다.
도 1과 같이 인접하는 모든 블록을 후보로 해도 좋지만, 예를 들면, 처리 대상의 예측 블록의 사이즈가 64×64 화소이고, 인코딩 정보 저장 메모리(114, 210)에 인코딩 정보가 기억되는 블록의 사이즈를 4×4 화소로 하면, 처리 대상의 예측 블록에 인접하는 블록은 좌측에서 16개, 상측에서 16개, 나아가 코너에서 3개의 블록이 참조처가 되는 인접 블록이 된다. 하드웨어로 구현하는 경우, 상정할 수 있을 수 있는 최대의 메모리 액세스 횟수, 메모리량, 및 처리량(처리 시간)을 고려할 필요가 있다.
본 발명의 실시예에 있어서는, 도 9(a)에 나타내는 바와 같이, 좌측에 인접하는 블록, 상측에 인접하는 블록을 각각 1개로 한정하는 것에 의해 참조하는 후보를 좁히고, 좌경사 하측, 우경사 상측 및 좌경사 상측에 인접하는 블록을 후보로서 추가하고 있다. 또한, 도 9(b)에서는, 좌측에 인접하는 블록, 상측에 인접하는 블록을 각각 도 9(a)와는 다른 1개로 한정하는 것에 의해 참조하는 후보를 좁히고, 좌경사 하측 및 우경사 상측에 인접하는 블록을 후보로 하고 있다.
이와 같이, 미리 후보를 한정하는 것에 의해, 본 발명의 실시예에서는 인코딩 효율을 거의 저하시키지 않고, 메모리 액세스 횟수, 메모리량, 및 처리량(처리 시간)을 삭감하는 효과가 있다. 또한, 후술하는 실시예 3 이후에서는 메모리 액세스 횟수, 메모리량, 및 처리량(처리 시간)을 삭감할 수 있을 뿐만 아니라, 머지 인덱스, MVP 인덱스의 코딩량을 삭감할 수 있기 때문에, 발생 코딩량을 삭감하는 효과도 있다. 또한, 본 발명의 실시예에서는 머지 모드와 움직임 검출 모드에서는, 후보의 위치를 공통화하는 것에 의해, 진일보의 메모리 액세스 횟수, 메모리량, 및 처리량(처리 시간)의 삭감을 실현하고 있다.
이하에서는, 도 9(a)의 배치예를 사용하여 설명을 하기로 한다. 도 9(b)의 배치예를 사용하는 경우에는, 이하의 설명에 있어서 C0을 생략하는 것에 의해, 도 9(a)의 배치예와 동일한 처리를 할 수 있다. 한편, 참조 인접 블록의 배치는, 동영상 인코딩 장치(100) 및 동영상 디코딩 장치(200)에서 모순이 생기지 않는 한, 어떤 구성을 취해도 좋다. 또한, 참조 인접 블록의 인코딩 정보는, 동영상 인코딩 장치(100)로 이미 인코딩 완료된, 및 동영상 디코딩 장치(200)로 이미 디코딩 완료된 정보로 하고, 인코딩 정보 저장 메모리(114, 210)에 기억 가능한 것이라면, 어떤 정보여도 좋다.
도 10은, 동영상 인코딩 장치(100)의 구성을 나타내는 도 2 및 동영상 디코딩 장치(200)의 구성을 나타내는 도 4 중에 설치되는 실시예 1의 인터 예측 정보 검출부(104, 205)의 상세를 나타내는 것이다. 도 10 중의 굵은 점선으로 둘러싸이는 부분은 인터 예측 정보 검출부(104, 205)를 나타내고 있고, 이 도면을 사용하여 설명한다. 인터 예측 정보 검출부(104, 205)는, 처리 대상 블록 위치 검출부(301), 인접 블록 지정부(302) 및 일시 메모리(303)를 포함한다. 머지 모드와 움직임 검출 모드의 두 모드로, 후보의 위치를 도 9(a)의 배치에 공통화하고, 도 9(a)의 배치의 인접 블록의 인코딩 정보를 인코딩 정보 저장 메모리(114, 210)로부터 취득하는 순서를 설명한다.
우선, 처리 대상의 예측 블록의 픽처 내에서의 위치와 사이즈의 정보가 처리 대상 블록 위치 검출부(301)에 입력된다. 처리 대상의 예측 블록의 위치는, 픽처의 좌상측 화소를 원점으로 하고, 처리 대상의 예측 블록의 좌상측 화소까지의 수평 및 수직 방향의 화소 단위의 거리로 표시된다. 또한, 처리 대상의 인코딩 블록의 분할 모드를 나타내는 PartMode와 인코딩 블록이 재귀적으로 분할된 횟수에 의해, 처리 대상의 예측 블록의 폭과 높이가 산출되고, 처리 대상의 예측 블록이 참조하는 참조 인접 블록의 위치가 산출된다.
산출된 인접 블록의 위치에 기초하여, 인접 블록 지정부(302)는 인코딩 정보 저장 메모리(114, 210)에 액세스하여, 그 중에서 도 9(a)에 도시되는 인접 블록의 위치에 해당하는 인코딩 정보를 일시 메모리(303)에 저장한다. 일시 메모리(303)는, 인터 예측 정보 검출부(104, 205) 내부에 마련되고, 처리 대상의 예측 블록이 참조하는 참조 인접 블록의 인코딩 정보를 기억하는 메모리이다. 여기서, 산출된 인접 블록의 위치가 화면 밖이 되는 경우에는, 해당 인접 블록은 존재하지 않기 때문에, "0"을 일시 메모리(303)에 기록한다.
이상과 같이, 머지 모드와 움직임 검출 모드의 두 모드로 후보의 위치를 공통화하는 것에 의해, 인코딩측에서는 인접 블록의 인코딩 정보의 일시 메모리(303)로의 저장 처리량이 삭감된다. 또한, 예측 모드마다 예측 방법을 변경하여, 그 때마다 필요한 인접 블록의 인코딩 정보를 취득하기 때문에, 인코딩 정보 저장 메모리(114)에 액세스할 필요가 없어진다. 한편, 디코딩측에서는 머지 모드와 움직임 검출 모드의 판별을 하기 전에, 인접 블록의 인코딩 정보의 일시 메모리(303)로의 저장 처리를 시작하는 것이 가능해지기 때문에, 디코딩 처리의 속도를 향상할 수 있다.
본 발명의 실시예에 따른 인코딩 정보의 선출 방법을 갖추는 동영상 인코딩 장치(100) 및 동영상 디코딩 장치(200)에서는, 처리 대상의 예측 블록의 움직임 벡터나 참조 픽처 번호 등의 인코딩 정보를 그대로 인코딩하는 것이 아니고, 인코딩 정보 저장 메모리(114, 210)에 저장된, 이미 인코딩/디코딩 완료된 주위의 인접 블록의 인코딩 정보를 참조, 이용한다. 그리고, 참조 인접 블록의 위치를 나타내는 인덱스나 움직임 벡터를 예측하는 예측 움직임 벡터의 인덱스를 인코딩하는 것에 의해, 인코딩 정보에 드는 코딩량의 삭감이 실현된다. 이하에서는, 인터 예측 정보 검출부(104, 205)에 의해 취득된 인접 블록의 인코딩 정보로부터, 인코딩 과정에서 참조 인접 블록의 위치를 나타내는 인덱스나 움직임 벡터를 예측하는 예측 움직임 벡터의 인덱스를 도출하는 수법과, 인코딩 과정에 대응하는 디코딩 과정에서 디코딩된 참조 인접 블록의 위치를 나타내는 인덱스나 움직임 벡터를 예측하는 예측 움직임 벡터의 인덱스에 기초하여, 인코딩 정보를 취득하는 수법의 구체적인 실시예를 제시하기로 한다.
(실시예 1)
우선, 동영상 인코딩 장치(100)의 구성을 나타내는 도 2 중에 설치되는 실시예 1의 머지 검출부(106)에 대해 설명한다. 도 11은 머지 검출부(106)의 상세한 구성을 나타내는 것이다. 도 11 중의 굵은 점선으로 둘러싸이는 부분은 머지 검출부(106)를 나타내고 있고, 이 도면을 사용하여 설명한다. 머지 검출부(106)는, 인코딩 정보 도출부(310), 참조 후보 리스트 작성부(311), 동일 정보 검출부(312), 출력부(313) 및 참조 후보 리스트 저장 메모리(314)를 포함한다.
먼저, 스위치(108)에 입력되는 동영상 인코딩 장치(100)에 의해 제어되는 예측 모드에 의해, 인터 예측 정보 검출부(104)의 출력처가 머지 검출부(106)로 전환된다. 인터 예측 정보 검출부(104)의 내부의 일시 메모리(303)에 기억된 처리 대상의 예측 블록이 참조하는 참조 인접 블록의 인코딩 정보가 인코딩 정보 도출부(310)에 입력된다.
인코딩 정보 도출부(310)의 동작을 도 12의 플로차트를 사용하여 설명한다. 먼저 입력된 인접 블록 중에서 처리 대상의 예측 블록과 동일 픽처에 있는 인접 블록의 인코딩 정보가 유효한지 여부를 판정하여, 도출한다(S100).
도 13에 처리 대상의 예측 블록과 동일 픽처에 있는 인접 블록마다의 판정 처리의 상세한 흐름을 나타낸다. 우선, 변수 N을 초기화한다(S200). 변수 N에는 도 9(a)에 도시되는 동일한 픽처 상에 있는 인접 블록 A1, B1, B0, A0, C0이 설정된다. 여기서, 초기화시에는 N=A1로 설정하기로 하고, 변수 N의 갱신은 B1, B0, A0, C0의 순서로 진행하기로 한다.
다음으로, 이후의 판정에서 사용하는 인접 블록의 인코딩 정보를 저장해 두는 변수를 초기화한다. 여기서, 변수는 인접 블록이 유효한지 여부를 나타내는 플래그 availableFlagN, 움직임 벡터 mvLXN, 참조 픽처 번호 refIdxLXN 및 참조 리스트의 유효성을 나타내는 플래그 predFlagLXN이고, 다음과 같이 초기화된다(S201).
availableFlagN=0
mvLXN=(0, 0)
refIdxLXN=0
predFlagLXN=0
여기서, 첨자 X에는 참조 리스트를 나타내는 0 혹은 1이 설정된다. 변수 N의 인접 블록(이하, 인접 블록 N이라 한다)의 위치 및 인코딩 정보를 취득한다(S202).
취득된 인접 블록 N의 위치에 기초하여, 인접 블록 N이 유효한지 여부를 판정한다(S203). 예를 들면, 처리 대상의 예측 블록이 픽처 좌단에 위치하는 경우, 처리 대상의 예측 블록의 좌측의 인접 블록은 존재하지 않기 때문에, 인코딩 정보 저장 메모리(114) 중에 해당하는 인코딩 정보는 없는 것이 되고, 무효로 판정된다. 인접 블록 N이 무효인 경우(S203의 N), availableFlagN을 "0"으로 설정한다(S207). 인접 블록 N이 유효인 경우(S203의 Y), 인접 블록 N의 예측 모드가 화면내 인코딩(Intra) 모드인지 여부를 판정한다(S204).
인접 블록 N의 예측 모드가 Intra 모드인 경우(S204의 Y), availableFlagN을 "0"으로 설정한다(S207). 인접 블록 N의 예측 모드가 Intra 모드가 아닌 경우(S204의 N), availableFlagN을 "1"로 설정한다(S205). 이어서, 인접 블록 N의 인코딩 정보를, refIdxLXN, mvLXN 및 predFlagLXN에 대입하여 설정한다(S206).
이상과 같이 하여, 인접 블록 N에 대한 판정 처리가 종료되면, 변수 N이 인접 블록의 최후인지 여부의 판정을 실시한다(S208). 변수 N의 갱신은 A1, B1, B0, A0, C0의 순서로 진행되기 때문에, 여기서는 N이 C0인지 여부의 판정을 한다. N이 C0이면(S208의 Y), 모든 인접 블록에 대해 판정을 하게 되고, 처리를 종료한다. N이 C0이 아닌 경우(S208의 N), N의 갱신을 한다(S209). 상술한 인접 블록의 차례로 N을 갱신하여, 스텝 S201 이후의 처리를 인접 블록 N에 대해 반복한다. 이상과 같이 하여, 처리 대상의 예측 블록과 동일 픽처 상에 존재하는 주위의 인접 블록을 참조 블록으로 하여, 그 인코딩 정보가 도출된다.
이어서, 도 12를 다시 참조하여, 시간이 상이한 별도의 픽처를 머지 후보로 하는 경우의 처리 대상의 예측 블록의 참조 픽처 번호를 결정한다(S101). 이 처리는, 다음에 설명하는, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 움직임 벡터를 참조하여 처리 대상의 예측 블록이 인터 예측할 때의 참조 픽처를 결정하기 위해 이루어진다. 그 때, 이미 인코딩 완료된 인접 블록의 인코딩 정보로부터 처리 대상의 예측 블록이 참조하는 픽처의 참조 픽처 번호를 결정한다. 여기서는, 앞의 처리(S100)에서 도출된 동일한 픽처 상의 인접 블록의 인코딩 정보에 기초하는 수법을 도 14를 사용하여 설명한다.
우선, 스텝 S100에 의해 도출된 4개의 인접 블록을 3개의 그룹으로 분류한다. 그룹으로서는, 처리 대상의 예측 블록의 좌변에 접하는 인접 블록을 그룹 A, 상변에 접하는 인접 블록을 그룹 B, 및 코너에서 접하는 인접 블록을 그룹 C로 하여, 각각의 그룹에서 판정을 한다.
우선, 그룹 A에 대해 도 14(a)를 사용하여 설명한다. 그룹 A에 속하는 인접 블록은 A1이기 때문에, 스텝 S100에서의 A1이 유효한지 여부를 나타내는 플래그 availableFlagA1을 조사한다(S300). availableFlagA1이 1이면(S300의 Y), 그룹 A의 참조 픽처 번호 refIdxLXA를 A1의 참조 픽처 번호로 설정한다. 그렇지 않으면(S300의 N), refIdxLXA를 참조 픽처 번호가 없음을 나타내는 -1로 설정한다.
동일하게 하여, 그룹 B에 대해 도 14(b)를 사용하여 설명한다. 그룹 B에 속하는 인접 블록은 B1이기 때문에, 스텝 S100에서의 B1이 유효한지 여부를 나타내는 플래그 availableFlagB1을 조사한다(S301). availableFlagB1이 1이면(S301의 Y), 그룹 B의 참조 픽처 번호 refIdxLXB를 B1의 참조 픽처 번호로 설정한다. 그렇지 않으면(S301의 N), refIdxLXB를 -1로 설정한다.
그룹 C에 속하는 인접 블록은 A0, B0과 C0이고, 도 14(c)에 도시되는 바와 같이, B0, A0, C0의 순서로 판정을 한다. A1, B1과 동일하게 B0의 플래그 availableFlagB0을 조사한다(S302). availableFlagB0이 1이면(S302의 Y), 그룹 C의 참조 픽처 번호 refIdxLXC를 B0의 참조 픽처 번호로 설정하고, 그렇지 않으면(S302의 N), A0의 플래그 availableFlagA0을 조사한다(S303). availableFlagA0이 1이면(S303의 Y), 그룹 C의 참조 픽처 번호 refIdxLXC를 A0의 참조 픽처 번호로 설정한다. 그렇지 않으면(S303의 N), C0의 플래그 availableFlagC0을 조사한다(S304). availableFlagC0이 1이면(S304의 Y), 그룹 C의 참조 픽처 번호 refIdxLXC를 C0의 참조 픽처 번호로 설정한다. 그렇지 않으면(S304의 N), refIdxLXC를 -1로 설정한다.
한편, 도 9(b)에 도시되는 동일한 픽처 상에 있는 인접 블록과 같이, C0의 위치의 블록이 없는 경우에는, B0과 A0의 2개의 인접 블록에 대해 판정을 하기로 한다. 이와 같이 하여 도출된 각 그룹의 참조 픽처 번호 refIdxLXN(N은 A, B 혹은 C)의 다수결 혹은 최소값을 선택하는 것에 의해 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 참조 픽처 번호를 결정한다.
도 15에 참조 픽처 번호 refIdxLXN에 기초하는 판정을 나타낸다. 도 15 위로부터 차례로 설명한다. 1~4째줄은 refIdxLXN에 동일값이 존재하는 경우이고, 다수결에 의해 선택한다. 첫째줄은 refIdxLXN이 모두 동일한 경우이고, -1이면 0을, 그렇지 않으면 refIdxLXA의 값으로 한다. 2~4째줄은 3개의 refIdxLXN 중 2개가 동일한 경우이고, 2개가 동일한 경우의 값이 -1이면 나머지에 1개의 refIdxLXN의 값을, 그렇지 않으면 2개가 동일한 경우의 값으로 한다.
5~8째줄은 refIdxLXN에 동일값이 존재하지 않는 경우이고, 그 중에서 최소값을 선택한다. 3개 중에서 -1이 되어 있는 refIdxLXN을 제외하고, 최소의 참조 픽처 번호의 값을 선택한다. 이상과 같이 하여, 처리 대상의 예측 블록의 참조 픽처 번호가 결정되지만, 이 수법 이외의 수법을 사용해도 좋다.
도 12를 다시 참조하여, 다음으로, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 인코딩 정보가 유효한지 여부를 판정하여, 도출한다(S102). 도 16에 처리 대상의 예측 블록과 다른 픽처에 있는 인접 블록의 판정 처리의 상세한 흐름을 나타낸다. 먼저 처리 대상의 예측 블록을 포함하는 픽처와는 시간이 상이한 별도의 픽처를 지정한다(S400). 처리 대상의 예측 블록을 포함하는 슬라이스가 P슬라이스인 경우, L0 예측만 사용할 수 있기 때문에, L0의 참조 리스트 중의 참조 픽처 번호 0으로 표시되는 픽처를 지정한다. B슬라이스인 경우, L0 예측, L1 예측 중의 하나 및 L0, L1의 쌍방향 예측이 사용 가능하지만, L0 혹은 L1 중의 어느 하나의 참조 리스트의 참조 픽처 번호 0으로 표시되는 픽처를 지정한다. 여기서는, B슬라이스인 경우 시간이 상이한 별도의 픽처의 지정에 대해 언급하지 않지만, 예를 들면 슬라이스 헤더 내에, B슬라이스인 경우에 어느 쪽의 참조 리스트를 참조할지를 미리 정해 두는 파라미터를 삽입하는 등의 수법도 생각할 수 있다.
이어서, 참조하는 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 위치를 지정한다(S401). 실시예 1에서는, 도 9(a)에 도시되는 참조 인접 블록 "T"를 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록으로 하고 있기 때문에, 처리 대상의 예측 블록의 위치와 분할 모드를 나타내는 PartMode와 분할 횟수에 의해, 처리 대상의 예측 블록의 폭과 높이가 산출되고, 인접 블록 "T"의 위치가 산출된다. 산출된 인접 블록의 위치가 픽처 밖이 되는 경우에는, 시간이 상이한 별도의 픽처에 있어서, 처리 대상의 예측 블록과 동일 위치의 중앙 부근의 위치로 한다. 이하의 설명에서는, 시간이 상이한 별도의 픽처를 col 픽처, 그 픽처의 처리 대상의 블록 동일 위치에 인접하는 블록을 col 블록이라 하고, 그 움직임 벡터나 참조 픽처 번호에는 첨자로서 "Col"을 붙여서 나타내기로 한다.
col 픽처와 그 중의 처리 대상의 예측 블록과 동일 위치에 인접하는 col 블록의 위치에 기초하여, col 블록의 인코딩 정보를 인코딩 정보 저장 메모리(114)에 액세스하여 판독하고, 인코딩 정보가 유효한지 여부를 판정하고, 움직임 벡터를 도출한다(S402).
도 17은 이들의 도출의 상세한 처리를 나타내고, 이 도면을 사용하여 설명한다. 인코딩 정보 저장 메모리(114)로부터 판독한 col 블록의 인코딩 정보와 위치로부터 col 블록이 유효한지 여부를 판정한다(S500). col 블록이 존재하지 않는, 혹은 col 블록의 예측 모드가 Intra인 경우(S500의 Y), col 블록의 기준 움직임 벡터 mvCol을 (0, 0), 기준 유효 플래그 availableFlagCol을 0으로 설정하고(S501), 스텝 S509으로 이행한다. 그렇지 않은 경우(S500의 N), col 블록의 L0 참조 리스트의 유효성을 나타내는 플래그 predFlagL0의 판정으로 이행한다(S502).
predFlagL0이 0인 경우(S502의 Y), L0 예측이 무효하기 때문에, L1 예측의 인코딩 정보를 선택하고, mvCol을 mvL1, 기준 참조 픽처 번호 refIdxCol을 refIdxL1로 설정하고(S503), 스텝 S507로 이행한다. 그렇지 않은 경우(S502의 N), 즉 L0 예측이 유효한 경우, col 블록의 L1 참조 리스트의 유효성을 나타내는 플래그 predFlagL1의 판정으로 이행한다(S504).
predFlagL1이 0인 경우(S504의 Y), L1 예측이 무효이기 때문에, L0 예측의 인코딩 정보를 선택하고, mvCol을 mvL0, refIdxCol을 refIdxL0로 설정하고(S505), 스텝 S507로 이행한다. 그렇지 않은 경우(S504의 N), 즉 L0 및 L1 예측 모두 유효한 경우, Pred_BI 모드인 경우 도출로 이행한다(S506). Pred_BI 모드인 경우 도출에서는, L0 예측 혹은 L1 예측 중의 어느 하나를 선택한다.
선택 방법은, 예를 들면 스텝 S500에서 선택한 col 픽처와 동일 참조 리스트를 선택하는, col 블록의 L0 예측, L1 예측의 각각의 참조 픽처에서 col 픽처와의 화상간 거리가 가까운 쪽을 선택하거나, 혹은 col 블록의 L0 예측, L1 예측의 각각의 움직임 벡터가 처리 대상의 픽처와 교차하는 쪽을 선택하는 등을 들 수 있다.
세번째의 판정 기준의 일례를 도 18에 나타낸다. 이 예에서는, 처리 대상의 픽처가 col 블록의 움직임 벡터와 교차하는 경우, 즉, col 픽처의 참조 픽처, 처리 대상의 픽처, col 픽처의 시간순으로 표시되고, col 블록에 상당하는 블록은 반드시 처리 대상의 픽처 내부에 존재하게 되고, 미소 시간 내에서 주변 영역의 움직임을 평가함에 있어서는, 교차하는 측의 예측을 선택하는 것이 움직임 벡터 예측에 있어서 가까운 값이 얻어지는 신뢰성이 높게 된다. 그 때문에, 처리 대상의 픽처와 교차하는 움직임 벡터의 참조 리스트측을 선택하고, mvCol 및 refIdxCol을 설정한다.
도 17을 다시 참조하여, 다음으로, 움직임 벡터가 존재하기 때문에, 기준 유효 플래그 availableFlagCol을 1로 설정한다(S507). 참조 리스트를 나타내는 변수 X를 0으로 설정하고(S508), col 블록의 L0 및 L1 예측의 움직임 벡터를 도출한다. 상술한 과정에서 구해진 기준 움직임 벡터 mvCol과 기준 참조 픽처 번호 refIdxCol로부터 참조 픽처의 위치를 지정하고, col 픽처와의 화상간 거리 colDist를 산출한다.
한편, 스텝 S401에서 결정된 처리 대상의 예측 블록의 참조 픽처 번호 refIdxLX로부터 참조 픽처의 위치를 지정하고, 처리 대상의 픽처와의 화상간 거리 currDist를 산출한다. currDist와 colDist의 비교를 한다(S509). currDist와 colDist가 동일한 경우(S509의 OK), 기준 움직임 벡터 mvCol을 그대로 mvLXCol로 한다(S510).
currDist와 colDist가 상이한 경우(S509의 NG), 스케일링에 의한 거리 환산을 한다. 스케일링은 인접 블록의 참조하는 픽처의 화상간 거리를, 처리 대상의 예측 블록이 참조하는 픽처와의 화상간 거리에 맞춰, 인접 블록의 움직임 벡터를 거리 환산하여, 처리 대상의 예측 블록의 움직임 벡터로 하는 처리이다. 도 18에 스케일링의 일례를 나타낸다. col 픽처 상의 col 블록과 처리 대상의 예측 블록의 각각 참조하는 픽처와의 화상간 거리가 colDist, currDist이기 때문에, col 블록의 움직임 벡터 mvCol을 다음의 식에 의해 처리 대상의 예측 블록의 화상간 거리에 맞춰, 움직임 벡터가 산출된다(S511).
Figure 112014009155997-pct00001
X가 1인지 여부를 판정한다(S512). X가 1이 아닌, 즉 0인 경우(S512의 N), L1 예측의 방향에 대해서도 동일한 순서로 산출한다. 그 때문에, X를 1로 갱신하여(S513), 스텝 S509 이후를 반복한다. X가 1인 경우(S512의 Y), 처리를 종료한다.
이와 같이 하여 얻어진 인접 블록의 인코딩 정보는 참조 후보 리스트 작성부(311)에 입력된다. 실시예 1에서는, 참조 후보 리스트 저장 메모리(314)에 참조 인접 블록의 인코딩 정보의 후보를 등록하는 기억 영역으로서 참조 후보 리스트를 마련한다. 그리고, 해당 참조 인접 블록의 인코딩 정보의 후보에 우선 순위를 붙이고, 우선 순위가 높은 것으로부터 참조 후보 리스트에, 해당 참조 인접 블록의 인코딩 정보의 후보를 등록한다. 이에 의해, 참조 후보 리스트의 인덱스 merge_idx의 코딩량을 삭감할 수 있게 된다.
참조 후보 리스트 중의 각 요소의 위치가 높은 요소를 참조 후보 리스트의 전방에 배치하는 것에 의해, 코딩량을 삭감한다. 우선 순위를 나타내는 인덱스 merge_idx는 0에서부터 상승순으로 할당한다. 예를 들면, 참조 후보 리스트의 요소가 3개인 경우, 참조 후보 리스트의 인덱스 0을 "0"(2진수 표기), 인덱스 1을 "10"(2진수 표기), 인덱스 2를 "11"(2진수 표기)로 하는 것에 의해, 인덱스 0을 나타내는 코딩량이 1비트가 되고, 인덱스 0에 발생 빈도가 높은 것으로 생각되는 요소를 등록하는 것에 의해, 코딩량을 삭감한다.
참조 후보 리스트 저장 메모리(314)에 마련되는 참조 후보 리스트는, 리스트 구조를 이루고, 참조 후보 리스트 내부의 소재를 나타내는 인덱스와, 인덱스에 대응하는 참조 인접 블록의 인코딩 정보의 후보를 요소로서 저장하는 배열 영역이 마련된다. 이 배열 영역은 candList로 표시된다. 인덱스의 숫자는 0으로부터 개시되고, 참조 후보 리스트 candList의 기억 영역에, 참조 인접 블록의 인코딩 정보의 후보가 저장된다. 이후의 처리에서는, 참조 후보 리스트 candList에 등록된 인덱스 i의 인코딩 정보는, candList[i]로 나타내기로 하고, 참조 후보 리스트 candList와는 배열 표기를 하는 것에 의해 구별하기로 한다. 한편, 참조 후보 리스트의 기억 영역에 저장되는 인코딩 정보는, 특히 한정하지 않는 한, 참조 인접 블록의 위치명(A0, A1, B0, B1, C0, T)으로 나타내기로 한다.
참조 후보 리스트 작성부(311)의 동작을 도 19의 플로차트를 사용하여 설명한다. 우선, 변수 N과 참조 후보 리스트의 인덱스 k를 초기화한다(S600). 변수 N에는 도 9(a)에 도시되는 인접 블록 A1이 초기 설정되고, k는 0으로 설정된다. 인덱스 k는 참조 후보 리스트의 기억 영역에 설정되는 인코딩 정보의 후보 저장 영역의 우선 순위를 나타낸다.
다음으로, 참조 인접 블록 N의 유효 플래그 availableFlagN의 판정이 진행된다(S601). availableFlagN이 1인 경우(S601의 Y), 인접 블록 N의 인코딩 정보를 참조 후보 리스트 candList[k]에 등록하고(S602), k를 갱신한다(S603). availableFlagN이 0인 경우(S601의 N), 참조 후보 리스트에는 등록하지 않고, 다음으로 이행한다.
인접 블록 N이 최후의 참조 블록인지 여부를 판정한다(S604). 최후의 블록인 경우(S604의 Y), 인덱스의 값을 후보 리스트 총수 NumListCand로 설정한 후(S605), 처리를 종료한다. 최후의 블록이 아닌 경우(S604의 N), 변수 N을 갱신하여(S606), 스텝 S601 이후의 처리를 반복한다.
여기서, 변수 N을 갱신하는 인접 블록의 순번이 참조 후보 리스트에 저장하는 우선 순위가 되고 있고, 실시예 1에서는, 머지 모드인 경우, 순번(A1, B1, B0, A0, C0, T)을 설정하기로 한다. 우선 순위의 상위에 있는 것일수록 참조 후보 리스트의 전방에 등록하고, 참조 후보 리스트 중의 머지 후보를 특정하는 머지 인덱스에 짧은 코드장의 코드가 할당된다.
머지 모드인 경우에는, 처리 대상의 예측 블록의 변과, 인코딩 정보가 가장 동일할 가능성이 높은 것으로 생각되는 처리 대상의 예측 블록의 변이 접하고 있는 인접 블록 A1 및 B1을 우선하여 참조 후보 리스트의 전방에 등록한다. 이에 의해, 머지 인덱스의 코딩량을 삭감하고, 인코딩 효율을 향상시킨다.
이상의 처리에 의해, 참조 후보 리스트에 등록된, 참조 인접 블록이 모두 유효하면, 도 20에 표시되는 순번으로 참조 후보 리스트가 작성된다. 우선 순위를 인덱스로 하여, 각 코드워드는 참조 후보 리스트의 우열에 표시되고, 최대 코드워드장은 NumListCand-1이 된다. 도 20의 경우, NumListCand는 6이고, 코드워드는 최대 5비트로 표시된다. 참조 인접 블록이 1개만 유효한 경우, 최대 코드워드장은 0이 되기 때문에, 인덱스는 불필요하고, 1개만 유효로 판정된 인접 블록의 인코딩 정보의 후보가 참조처로서 일의(一意)로 결정되게 된다.
작성된 참조 후보 리스트는 동일 정보 검출부(312)에 입력된다. 동일 정보 검출부(312)에서는, 참조 후보 리스트 중에 저장된 인코딩 정보의 후보를 비교하여, 동일 인코딩 정보의 후보가 존재하는 경우, 가장 작은 참조 후보 리스트의 인덱스를 갖는 인코딩 정보의 후보를 제외하고 모두 삭제된다. 도 21에 도시되는 플로차트를 사용하여 동작을 설명한다.
우선, 참조 후보 리스트의 인덱스를 나타내는 변수 N과 m을 각각 0과 1로 설정한다(S700). 참조 후보 리스트에 저장되어 있는 인덱스 n과 m의 인코딩 정보를 비교한다(S701). 여기서, 비교하는 인코딩 정보는, 예측 모드, 사용되고 있는 참조 리스트, 사용되고 있는 참조 리스트마다의 참조 픽처 번호, 및 사용되고 있는 참조 리스트마다의 움직임 벡터이다. 불일치한 것으로 판정된 경우(S701의 N), 스텝 S704로 이행한다. 일치한 것으로 판정된 경우(S701의 Y), n과 m에서 인덱스가 큰 것, 즉 m이 이미 삭제 리스트에 기록되어 있는지 판정한다(S702).
m이 삭제 리스트에 이미 기록되어 있는 경우(S702의 Y), 스텝 S704로 이행한다. 아직 기록되어 있지 않은 경우(S702의 N), m을 삭제 리스트에 기록한다(S703). 삭제 리스트는, 동일 정보 검출부(312) 내에 마련된 일시 기억용 메모리이다.
다음으로, m에 1을 가산하여, 갱신한다(S704). m과 후보 리스트 총수 NumListCand의 비교를 한다(S705). m이 NumListCand가 아닌 경우(S705의 N), 스텝 S701 이후의 인덱스 n의 인코딩 정보와의 비교를 반복한다. m이 NumListCand가 된 경우(S705의 Y)에는 n에 1을 가산하여, 갱신한다(S706).
다음으로, n과 (NumListCand-1)의 비교를 한다(S707). n이 (NumListCand-1)이 아닌 경우(S707의 N), m을 (n+1)로 설정하고(S709), 스텝 S701 이후의 인코딩 정보의 비교를 반복한다. n이 (NumListCand-1)이 된 경우(S707의 Y), 삭제 리스트에 기록된 인덱스에 해당하는 리스트의 저장 영역의 인코딩 정보를 삭제하고, 인덱스 0을 기준으로, 인덱스가 작은 후보가 순서로 채워나가, 코드워드와 참조 후보 리스트의 총수 NumListCand를 갱신하여(S708), 종료한다.
끝으로, 출력부(313)가 작성된 참조 후보 리스트 중의 인덱스와 인코딩 정보를 출력한다. 참조 후보 리스트는, 참조 후보 리스트를 머지 리스트로 하여, 리스트 중의 인덱스를 머지 인덱스로서 출력한다. 동영상 인코딩 장치(100)에서는, 움직임 보상 예측부(105)와 예측 방법 결정부(107)에 출력된다.
상술한 동영상 인코딩 장치(100) 중에 설치되는 실시예 1의 머지 검출부(106)에 대응하는, 동영상 디코딩 장치(200) 중에 설치되는 실시예 1의 머지 판정부(206)에 대해 설명한다. 도 22는 머지 판정부(206)의 상세한 구성을 나타내는 것이다. 도 22 중의 굵은 점선으로 둘러싸이는 부분은 머지 판정부(206)를 나타내고 있다. 머지 판정부(206)는, 인코딩 정보 도출부(310), 참조 후보 리스트 작성부(311), 동일 정보 검출부(312), 참조 후보 리스트 저장 메모리(314) 및 선택부를 포함한다.
머지 판정부(206)는 동영상 인코딩 장치(100)의 머지 검출부(106)와 대응되고, 내부의 구성은 선택부(315)와 출력부(313)만 상이하고, 그 이외의 인코딩 정보 도출부(310), 참조 후보 리스트 작성부(311), 동일 정보 검출부(312) 및 참조 후보 리스트 저장 메모리(314)는 동일한 기능을 갖는다. 따라서, 동일 정보 검출부(312)까지의 처리로 인코딩 과정과 동일한 참조 후보 리스트가 작성되게 된다.
이하에서는, 작성된 참조 후보 리스트로부터, 머지 모드에 있어서의 참조 인접 블록의 인코딩 정보를 취득하는 선택부(315)에 대해 설명한다. 선택부(315)는, 작성된 참조 후보 리스트 중에서, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 참조 인접 블록을 특정하는 인덱스로 지정되는 참조 후보 리스트의 인접 블록을 선택한다. 선택된 인코딩 정보를 움직임 보상 예측부(207)에 공급하는 한편, 인코딩 정보 저장 메모리(210)에 공급한다.
다음으로, 동영상 인코딩 장치(100)의 구성을 나타내는 도 2 중에 설치되는 실시예 1의 움직임 벡터 예측부(103)에 대해 설명한다. 도 23은 움직임 벡터 예측부(103)의 상세한 구성을 나타내는 것이다. 도 23 중의 굵은 점선으로 둘러싸이는 부분은 움직임 벡터 예측부(103)를 나타내고 있고, 이 도면을 사용하여 설명한다. 움직임 벡터 예측부(103)는, 인코딩 정보 도출부(320), 참조 후보 리스트 작성부(321), 동일 정보 검출부(322), 출력부(323), 참조 후보 리스트 저장 메모리(324) 및 차분 움직임 벡터 도출부(326)를 포함한다.
인터 예측 정보 검출부(104)의 내부의 일시 메모리(303)에 기억된 처리 대상의 예측 블록이 참조하는 참조 인접 블록의 인코딩 정보가 인코딩 정보 도출부(320)에 입력된다. 인코딩 정보 도출부(320)의 동작을 도 24의 플로차트를 사용하여 설명한다.
최초에 입력된 인접 블록 중에서 처리 대상의 예측 블록과 동일 픽처에 있는 인접 블록의 인코딩 정보가 유효한지 여부를 판정하여, 도출한다(S800). 도 25에 처리 대상의 예측 블록과 동일 픽처에 있는 인접 블록마다의 판정 처리의 상세한 흐름을 나타낸다. 한편, 도 25의 판정 처리는 L0, L1의 리스트마다 독립으로 진행한다.
처리 대상의 예측 블록의 예측 모드에 상응하여, 단방향 예측에서 L0 예측인 경우에는 참조 리스트 L0에 등록되어 있는 인코딩 정보만을, 단방향 예측에서 L1 예측인 경우에는 참조 리스트 L1에 등록되어 있는 인코딩 정보만을, 쌍방향 예측인 경우에는 참조 리스트 L0, L1에 등록되어 있는 각각의 인코딩 정보의 판정 처리를 한다. 본 명세서에서는, 특히 주석을 하지 않는 한, 움직임 검출 모드시의 판정 처리는 참조 후보 리스트의 하나를 LX로 하여 설명하기로 하고, 도면에서 나타내는 참조 후보 리스트도 1개만 들기로 한다.
우선, 변수 N을 초기화한다(S900). 변수 N에는 도 9(a)에 도시되는 동일한 픽처 상에 있는 인접 블록 A1, B1, B0, A0, C0이 설정된다. 여기서, 초기화시에는 N=A1로 설정하기로 하고, 변수 N의 갱신은 B1, B0, A0, C0의 순서로 진행하기로 한다.
다음으로, 이후의 판정에서 사용하는 인접 블록의 인코딩 정보를 저장해 두는 변수를 초기화한다. 여기서, 변수는 인접 블록이 유효한지 여부를 나타내는 플래그 availableFlagLXN, 움직임 벡터 mvLXN, 참조 픽처 번호 refIdxLXN 및 참조 리스트의 유효성을 나타내는 플래그 predFlagLXN이고, 다음과 같이 초기화된다(S901).
availableFlagLXN=0
mvLXN=(0, 0)
refIdxLXN=0
predFlagLXN=0
여기서, 첨자 X에는 참조 리스트를 나타내는 0 혹은 1이 설정된다. 변수 N의 인접 블록(이하, 인접 블록 N이라 한다)의 위치 및 인코딩 정보를 취득한다(S902).
취득된 인접 블록 N의 위치에 기초하여, 인접 블록 N이 유효한지 여부를 판정한다(S903). 예를 들면, 처리 대상의 예측 블록이 픽처 좌단에 위치하는 경우, 처리 대상의 예측 블록의 좌측의 인접 블록은 존재하지 않기 때문에, 인코딩 정보 저장 메모리(114) 중에 해당하는 인코딩 정보는 없는 것이 되고, 무효로 판정된다.
인접 블록 N이 무효인 경우(S903의 N), availableFlagLXN을 "0"으로 설정한다(S908). 인접 블록 N이 유효인 경우(S903의 Y), 인접 블록 N의 예측 모드가 화면내 인코딩(Intra) 모드인지 여부를 판정한다(S904).
인접 블록 N의 예측 모드가 Intra 모드인 경우(S904의 Y), availableFlagLXN을 "0"으로 설정한다(S908). 인접 블록 N의 예측 모드가 Intra 모드가 아닌 경우(S904의 N), 처리 대상의 예측 블록의 산출 대상의 예측과 동일 참조 리스트에서 동일 참조 픽처 번호를 사용한 예측이 인접 블록 N에서도 진행되고 있는지 여부를 판정한다(S905).
진행되지 않고 있는 경우(S905의 N), availableFlagLXN을 "0"으로 설정한다(S908). 진행되고 있는 경우(S905의 Y), availableFlagLXN을 "1"로 설정한다(S906). 이어서, 인접 블록 N의 움직임 벡터의 값을 mvLXN에 대입하여 설정한다(S907).
이상과 같이 하여, 인접 블록 N에 대한 판정 처리가 종료되면, 변수 N이 인접 블록의 최후인지 여부의 판정을 실시한다(S909). 변수 N의 갱신은 A1, B1, B0, A0, C0의 순서로 진행되기 때문에, 여기서는 N이 C0인지 여부의 판정을 한다. N이 C0이면(S909의 Y), 모든 인접 블록에 대해 판정을 하게 되고, 처리를 종료한다. N이 C0이 아닌 경우(S909의 N), N의 갱신을 한다(S910). 상술한 인접 블록의 차례로 N을 갱신하여, 스텝 S901 이후의 처리를 인접 블록 N에 대해 반복한다.
한편, 실시예 1에서는, 스텝 S905에서 처리 대상의 예측 블록의 산출 대상의 예측과 동일 참조 리스트에서 동일 참조 픽처 번호를 사용한 예측이 인접 블록 N에서도 진행되고 있는지 여부의 판정을 했다. 이는, 동일한 참조 픽처 번호 및 참조 리스트의 조건이면, 근접하고 있는 처리 대상의 예측 블록과 인접 블록 N의 움직임 벡터가 동일 또는 가까운 값이 되는 확률이 높기 때문에, 움직임 벡터의 차분값이 작아져, 인코딩 효율을 향상시키게 된다.
하지만, 반드시 동일 픽처 상에 동일 참조 픽처 번호 및 참조 리스트를 사용한 예측을 하는 인접 블록이 존재한다고 할 수 없기 때문에, 존재하지 않는 경우에는, 움직임 벡터의 차분값을 산출할 수 없어, 인코딩 효율을 저하시키게 된다. 여기서, 스텝 S905의 동일한 참조 리스트 및 참조 픽처 번호의 조건으로 판정을 좁히지 않고, 인접 블록에서 진행되고 있는 예측이, 다음의 조건을 만족시키는 경우에 있어서도, 인접 블록이 유효한지 여부를 나타내는 플래그 availableFlagLXN을 1(유효)로 하고, 참조 인접 블록의 후보로 하여, 그 인코딩 정보를 도출한다.
조건 1: 동일 참조 리스트에서, 동일 참조 픽처 번호
조건 2: 상이한 참조 리스트에서, 동일 참조 픽처 번호
조건 3: 동일 참조 리스트에서, 상이한 참조 픽처 번호
조건 4: 상이한 참조 리스트에서, 상이한 참조 픽처 번호
이 경우의 처리 흐름을 도 26에 나타낸다. 도 26이 도 25와 다른 것은, 도 25의 스텝 S905의 조건 1만의 조건 판정을 삭제한 점, 스텝 S911의 조건 1~4의 조건 판정을 하여, 조건 1 또는 2를 만족하지 못하는 경우에는 움직임 벡터의 스케일링 처리(S912)를 추가한 점이다. 그 이외의 스텝 S900~스텝 S910은 도 25의 설명과 동등하기 때문에, 이하에서는, 변경·추가된 부분에 대해 설명한다.
인접 블록 N의 예측 모드가 Intra 모드가 아닌 경우(S904의 N), availableFlagLXN을 "1"로 설정한다(S906). 이어서, 처리 대상의 예측 블록의 산출 대상의 예측 인코딩 정보와 인접 블록 N의 인코딩 정보를 비교하는 것에 의해 조건 1~4를 판정한다(S911). 조건 1 또는 조건 2를 만족하는 경우에는, 인접 블록 N이 동일 참조 리스트(조건 1에 합치한 경우) 혹은 상이한 참조 리스트(조건 2에 합치한 경우)의 움직임 벡터의 값을 mvLXN에 대입하여 설정한다(S907).
조건 3 또는 조건 4를 만족하는 경우, 동일 참조 리스트(조건 3에 합치한 경우) 혹은 상이한 참조 리스트(조건 4에 합치한 경우)의 인접 블록 N의 움직임 벡터의 스케일링 처리가 실시된다(S912). 움직임 검출 모드에서는, 처리 대상의 예측 블록의 움직임 벡터를 보다 적은 코딩량으로 전송하기 위해, 움직임 벡터 예측이 진행된다. 움직임 벡터 예측은, 처리 대상의 예측 블록의 움직임 벡터와 인접 블록의 움직임 벡터의 차분을 취하고, 그 차분값을 인코딩하는 처리이다. 그 때, 각각 참조하는 픽처가 상이하면 움직임 벡터의 크기에 영향을 미치고, 차분값이 실제의 처리 대상의 예측 블록의 움직임 벡터보다 커져버리는 경우가 있다.
여기서, 인접 블록의 참조하는 픽처의 화상간 거리를, 처리 대상의 예측 블록이 참조하는 픽처와의 화상간 거리에 맞춰, 인접 블록의 움직임 벡터를 거리 환산하는 스케일링이 실시된다. 도 27에 스케일링의 일례를 나타낸다. 처리 대상의 예측 블록에 대해, 움직임 벡터 추정부(102)에서 움직임 벡터 검출이 진행되어, 처리 대상의 예측 블록의 움직임 벡터, 참조 픽처 번호 및 참조 리스트가 검출된다.
한편, 처리 대상의 픽처 상의 인접 블록은 자신의 인코딩 정보가 기지이기 때문에, 각각의 참조 픽처 번호로부터 참조하는 픽처를 선출한다. 처리 대상의 픽처 상의 인접 블록과 처리 대상의 예측 블록의 각각 참조하는 픽처와의 화상간 거리 td, tb가 산출되고, 인접 블록 N이 동일 참조 리스트 LX의 움직임 벡터 mvLX(조건 3에 합치한 경우), 또는 상이한 참조 리스트 LY(X=0일 때 Y=1, X=1일 때 Y=0)의 움직임 벡터 mvLY(조건 4에 합치한 경우)를 다음의 식에 의해 처리 대상의 예측 블록의 화상간 거리에 맞추기 위해 거리 환산된다.
Figure 112014009155997-pct00002
도 26을 다시 참조하여, 이와 같이 하여, 환산된 움직임 벡터 mvLX 또는 mvLY를 mvLXN에 대입하여 설정한다(S907). 이 스케일링 처리를 실시하는 것에 의해, 처리 대상의 예측 블록에 대해, 더 가까운 예측 움직임 벡터를 도출하여 정밀도 향상을 실현할 수 있다. 이상과 같이 하여, 처리 대상의 예측 블록과 동일 픽처 상에 존재하는 주위의 인접 블록을 참조 블록으로 하여, 그 인코딩 정보가 도출된다.
도 24를 다시 참조하여, 다음으로, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 인코딩 정보가 유효한지 여부를 판정하여, 도출한다(S801). 이 처리는, 머지 검출부(106)에 있어서의 인코딩 정보 도출부(310)의 스텝 S103의 처리와 기본적으로 동등하다. 머지 모드인 경우, 머지 검출부(106)에 있어서의 인코딩 정보 도출부(310)에서는, 스텝 S103의 처리를 하기 전에, 처리 대상의 예측 블록의 참조 픽처 번호의 도출(S102)을 진행했었다.
이에 대해, 움직임 검출 모드인 경우, 처리 대상의 예측 블록에 대해, 움직임 벡터 추정부(102)에서 움직임 벡터 검출이 진행되어, 처리 대상의 예측 블록의 움직임 벡터, 참조 픽처 번호 및 참조 리스트가 검출된다. 이들의 검출된 처리 대상의 예측 블록의 인코딩 정보와 기지인 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 인코딩 정보로부터, 각각의 참조 픽처 번호로부터 참조하는 픽처를 선출하고, 처리 대상의 예측 블록과 그 참조 픽처와의 화상간 거리에, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 움직임 벡터를 환산하여 산출한다.
이와 같이 하여 얻어진 인접 블록의 인코딩 정보는 참조 후보 리스트 작성부(321)에 입력된다. 참조 후보 리스트 작성부(321)에서 작성되는 참조 후보 리스트는, 처리 대상의 예측 블록의 Inter 모드에 상응하여, L0 예측 및 L1 예측의 2개의 참조 리스트에 대해 각각 참조 후보 리스트가 작성된다. Inter 모드에서는 단방향 예측으로서 L0 예측과 L1 예측, 쌍방향 예측으로서 Bi-pred 예측이 정의되어 있고, Bi-pred 예측에서는 L0 예측 및 L1 예측의 2개의 참조 리스트를 사용한다. 따라서, 인코딩시의 예측 모드에 상응하여, 참조 후보 리스트 저장 메모리(314)에 1개 내지 2개의 참조 후보 리스트를 마련하도록 해도 좋고, 미리 L0 예측과 L1 예측 2개분의 참조 후보 리스트를 마련해 두어도 좋다. 본 명세서에서는, 특히 주석을 하지 않는 한, 움직임 검출 모드시의 참조 후보 리스트는 설명의 형편상 1개만 들어 설명하기로 하고, 도면에서 나타내는 참조 후보 리스트도 1개만 들기로 한다.
실시예 1에서는, 참조 후보 리스트 저장 메모리(324)에, 참조 인접 블록의 인코딩 정보의 후보를 등록하는 기억 영역으로서 참조 후보 리스트를 마련한다. 해당 참조 인접 블록의 인코딩 정보의 후보에 우선 순위를 붙이고, 우선 순위가 높은 것으로부터 참조 후보 리스트 저장 메모리(324)에, 해당 참조 인접 블록의 인코딩 정보의 후보를 등록한다. 이에 의해, 참조 후보 리스트의 인덱스 mvp_idx_l0 및 mvp_idx_l1의 코딩량을 삭감할 수 있게 된다.
우선 순위가 높은 요소를 참조 후보 리스트의 전방에 배치하는 것에 의해, 코딩량을 삭감한다. 참조 후보 리스트 중의 각 요소의 위치를 나타내는 인덱스는 0에서부터 상승순으로 할당한다. 참조 후보 리스트 저장 메모리(324)에 마련되는 참조 후보 리스트는, 리스트 구조를 이루고, 참조 후보 리스트 내부의 소재를 나타내는 인덱스와, 인덱스에 대응하는 참조 인접 블록의 인코딩 정보의 후보를 요소로서 저장하는 배열 영역이 마련된다.
이 배열 영역은 candListLX로 표시된다. 인덱스의 숫자는 0으로부터 개시되고, 참조 후보 리스트 candListLX의 기억 영역에, 참조 인접 블록의 인코딩 정보의 후보가 저장된다. 이후의 처리에서는, 참조 후보 리스트 candListLX에 등록된 인덱스 i의 인코딩 정보는, candListLX[i]로 나타내기로 하고, 참조 후보 리스트 candListLX와는 배열 표기를 하는 것에 의해 구별하기로 한다. 한편, 참조 후보 리스트의 기억 영역에 저장되는 인코딩 정보는, 특히 한정하지 않는 한, 참조 인접 블록의 위치명(A0, A1, B0, B1, C0, T)으로 나타내기로 한다.
참조 후보 리스트 작성부(321)의 동작은, 머지 검출부(106)의 참조 후보 리스트 작성부(311)와 동등하고, 인코딩 정보 도출부(320)에서 얻어진 인접 블록이 유효한지 여부를 나타내는 플래그 availableFlagLXN을, 움직임 검출 모드로 정의된 순번 A1, B1, A0, B0, C0, T에 판정하여, 1(유효)인 경우, 참조 후보 리스트 저장 메모리(324)에 마련한 참조 후보 리스트에 등록한다.
이상의 처리에 의해, 참조 후보 리스트에 등록되고, 참조 인접 블록이 모두 유효하면, 도 20에 표시되는 순번으로 참조 후보 리스트가 작성된다. 우선 순위를 인덱스로 하여, 각 코드워드는 참조 후보 리스트의 우열에 표시되고, 최대 코드워드장은 NumListCand-1이 된다. 도 20의 경우, NumListCand는 6이고, 코드워드는 최대 5비트로 표시된다. 참조 인접 블록이 1개만 유효한 경우, 최대 코드워드장은 0이 되기 때문에, 코드워드는 불필요하고, 1개만 유효로 판정된 인접 블록의 인코딩 정보의 후보가 참조처로서 일의로 결정되게 된다.
작성된 참조 후보 리스트는 동일 정보 검출부(322)에 입력된다. 동일 정보 검출부(322)에서는, 참조 후보 리스트 중에 저장된 움직임 벡터를 비교하여, 동일 움직임 벡터를 갖는 후보가 존재하는 경우, 가장 작은 참조 후보 리스트의 인덱스를 갖는 후보를 제외하고 모두 삭제된다. 도 29에 도시되는 플로차트를 사용하여 동작을 설명한다.
우선, 참조 후보 리스트의 인덱스를 나타내는 변수 N과 m을 각각 0과 1로 설정한다(S1000). 참조 후보 리스트에 저장되어 있는 인덱스 n과 m의 움직임 벡터를 비교한다(S1001). 불일치한 것으로 판정된 경우(S1001의 N), 스텝 S1004로 이행한다. 일치한 것으로 판정된 경우(S1001의 Y), n과 m에서 인덱스가 큰 것, 즉 m이 이미 삭제 리스트에 기록되어 있는지 판정한다(S1002).
m이 삭제 리스트에 이미 기록되어 있는 경우(S1002의 Y), 스텝 S1004로 이행한다. 아직 기록되어 있지 않은 경우(S1002의 N), m을 삭제 리스트에 기록한다(S1003). 삭제 리스트는, 동일 정보 검출부(322) 내에 마련된 일시 기억용 메모리이다.
다음으로, m에 1을 가산하여, 갱신한다(S1004). m과 후보 리스트 총수 NumListCand의 비교를 한다(S1005). m이 NumListCand가 아닌 경우(S1005의 N), 스텝 S1001 이후의 인덱스 n의 움직임 벡터와의 비교를 반복한다. m이 NumListCand가 된 경우(S1005의 Y), n에 1을 가산하여, 갱신한다(S1006).
]다음으로 n과 (NumListCand-1)의 비교를 한다(S1007). n이 (NumListCand-1)이 아닌 경우(S1007의 N), m을 (n+1)로 설정하고(S1009), 스텝 S1001 이후의 움직임 벡터의 비교를 반복한다. n이 (NumListCand-1)이 된 경우(S1007의 Y), 삭제 리스트에 기록된 인덱스에 해당하는 리스트의 저장 영역의 인코딩 정보를 삭제하고, 인덱스 0을 기준으로, 인덱스가 작은 후보가 순서로 채워나가, 코드워드와 참조 후보 리스트의 총수 NumListCand를 갱신하여(S1008), 종료한다.
차분 움직임 벡터 도출부(326)는, 이와 같이 하여 작성된 참조 후보 리스트 중의 인코딩 정보의 움직임 벡터를 예측 움직임 벡터로 하여, 움직임 벡터 추정부(102)가 검출한 움직임 벡터와 예측 움직임 벡터로부터 차분 움직임 벡터를 산출하고, 산출된 차분 움직임 벡터를 출력부(323)에 공급한다.
끝으로, 출력부(323)가, 작성된 참조 후보 리스트 중의 인덱스와 차분 움직임 벡터를 출력한다. 참조 후보 리스트는, 참조 후보 리스트를 MVP 리스트로 하여, 리스트 중의 인덱스를 MVP 인덱스로서 출력한다. 동영상 인코딩 장치(100)에서는, 예측 방법 결정부(107)에 출력된다.
상술한 동영상 인코딩 장치(100) 중에 설치되는 실시예 1의 움직임 벡터 예측부(103)에 대응하는, 동영상 디코딩 장치(200) 중에 설치되는 실시예 1의 움직임 벡터 도출부(204)에 대해 설명한다. 도 30은 움직임 벡터 도출부(204)의 상세한 구성을 나타내는 것이다. 도 30 중의 굵은 점선으로 둘러싸이는 부분은 움직임 벡터 도출부(204)를 나타내고 있다. 움직임 벡터 도출부(204)는, 인코딩 정보 도출부(320), 참조 후보 리스트 작성부(321), 동일 정보 검출부(322), 참조 후보 리스트 저장 메모리(324), 선택부(325) 및 움직임 벡터 가산부(327)를 포함한다.
움직임 벡터 도출부(204)는, 동영상 인코딩 장치(100)의 움직임 벡터 예측부(103)와 대응되고, 내부의 구성은 선택부(325)와 출력부(323) 및 움직임 벡터 가산부(327)만 상이하고, 그 이외의 인코딩 정보 도출부(320), 참조 후보 리스트 작성부(321), 동일 정보 검출부(322) 및 참조 후보 리스트 저장 메모리(324)는 동일한 기능을 갖는다. 따라서, 동일 정보 검출부(322)까지의 처리로 인코딩 과정과 동일한 참조 후보 리스트가 작성되게 된다.
이하에서는, 작성된 참조 후보 리스트로부터, 움직임 검출 모드에 있어서의 참조 인접 블록의 인코딩 정보를 취득하는 선택부(325)에 대해 설명한다. 선택부(325)는, 작성된 참조 후보 리스트 중에서, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 참조 인접 블록을 특정하는 인덱스로 지정되는 참조 후보 리스트의 인접 블록을 선택한다. 선택된 리스트의 인접 블록의 인코딩 정보로부터 움직임 벡터를 예측 움직임 벡터로서 출력하고, 움직임 벡터 가산부(327)에서 예측 움직임 벡터와 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 차분 움직임 벡터를 가산하여 움직임 벡터를 산출한다. 해당 움직임 벡터를 움직임 보상 예측부(207)에 공급하는 한편, 선택된 참조 후보 리스트의 인접 블록의 인코딩 정보를 인코딩 정보 저장 메모리(210)에 공급한다.
(실시예 2)
도 31의 (a), (b)에 실시예 2에 있어서의 처리 대상의 예측 블록에 대한 참조 인접 블록의 배치를 나타낸다. 각 인접 블록의 기호는, 도 9의 (a), (b)와 동일하여, 여기서는 도 31(a)의 배치예를 사용하여 설명을 하기로 한다. 실시예 2는, 처리 대상의 예측 블록과 동일한 픽처 상에 있는 인접 블록을, 좌측에 인접하는 블록 그룹(도 31(a)에서는 A0과 A1), 상측에 인접하는 블록 그룹(도 31(a)에서는 B0, B1과 C0)에 그룹화하여, 각각의 블록 그룹 중에서, 블록 그룹의 대표 값으로서 참조 인접 블록을 1개 선택한다.
선택 방법으로서, 인접 블록의 인코딩 정보의 예측 모드 및 위치에 기초하여, 인접 블록이 유효한지 여부를 판정하는 것은 실시예 1, 2와 동일하지만, 블록 그룹 단위로 1개씩 대표하는 인접 블록을 선출하는 점이 상이하다. 이와 같이, 복수의 인접 블록으로 이루어지는 블록 그룹 중에서, 그 블록 그룹을 대표하는 인접 블록을 선출하는 방법을 스캔이라 부른다. 이 스캔에 의해, 좌측에 인접하는 블록 그룹을 대표하는 인접 블록, 상측에 인접하는 블록 그룹을 대표하는 인접 블록 및 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 3개의 인접 블록이 참조 후보 리스트에 등록되게 된다.
따라서, 참조 후보 리스트에 등록하는 인접 블록의 총수를 실시예 1에 비해 삭감할 수 있어, 동일 정보 검출부(312)에서의 인코딩 정보의 비교 횟수, 및 동일 정보 검출부(322)에서의 움직임 벡터의 비교 횟수를 삭감할 수 있다. 또한, 참조 후보 리스트의 인덱스에 할당하는 코드워드장이 짧아져, 참조 후보 리스트의 인덱스 코딩량을 삭감할 수 있다. 또한, 좌측 및 상측에 인접하는 블록 그룹 중의 인접 블록의 처리 순번을 예측 모드에 상응하여 변경하는 것에 의해, 예측 모드에 적합한 인접 블록의 선택이 가능해지고, 인코딩 효율의 개선을 기대할 수 있다.
처리 순번은 예측 모드가 머지 모드인 경우, 머지 검출부(106) 및 머지 판정부(206)는 도 31의 (a), (b) 중의 가는 점선 화살표와 같이 좌측에 인접하는 블록 그룹은 위에서 아래로, 상측에 인접하는 블록 그룹은 좌상측의 인접 블록 C0을 최후의 순으로 하여 B1, B0, C0의 순서로 처리를 한다. 움직임 검출 모드인 경우, 움직임 벡터 예측부(103) 및 움직임 벡터 도출부(204)는 도 31의 (a), (b) 중의 가는 실선 화살표와 같이 좌측에 인접하는 블록 그룹은 아래에서 위로, 상측에 인접하는 블록 그룹은 우측에서 좌측의 순서로 처리를 한다.
머지 모드에서는, 처리 대상의 예측 블록과 인코딩 정보가 가장 동일할 가능성이 높은 것으로 생각되는 인접 블록 A1, B1을 우선하여 판정 처리하여 선택하는 것에 의해, 인코딩 효율을 향상시킨다. 한편, 움직임 검출 모드에서는, 예측 움직임 벡터의 선택 폭을 넓히기 위해, 좌측과 상측의 인접 블록의 후보 사이에서 인코딩 정보의 차이가 나기 쉬워지도록, 좌측과 상측의 후보 사이의 거리가 떨어진 인접 블록 A0, B0을 우선하여 판정 처리하여 선택한다. 이에 의해, 차분 움직임 벡터의 코딩량을 삭감하여, 인코딩 효율을 향상시킨다.
이하에서는, 실시예 1과는 상이한 실시예 2의 동작에 대해서만 상세하게 설명한다. 우선, 동영상 인코딩 장치(100) 중의 머지 검출부(106)의 동작에 대해 설명한다. 머지 검출부(106)는 실시예 1에서 설명한 도 11과 동일한 구성을 이루지만, 인코딩 정보 도출부(310)의 처리가 실시예 1과는 상이하기 때문에, 실시예 2에 있어서의 인코딩 정보 도출부(310)의 동작에 대해 설명한다. 도 32는 실시예 2에 있어서의 인코딩 정보 도출부(310)의 동작을 나타내는 플로차트이다.
먼저, 스위치(108)에 입력되는 동영상 인코딩 장치(100)에 의해 제어되는 예측 모드에 의해, 인터 예측 정보 검출부(104)의 출력처가 머지 검출부(106)로 전환되어, 인터 예측 정보 검출부(104)의 내부의 일시 메모리(303)에 기억된, 처리 대상의 예측 블록이 참조하는 참조 인접 블록의 인코딩 정보가 인코딩 정보 도출부(310)에 입력된다.
입력된 인접 블록 중에서 처리 대상의 예측 블록과 동일 픽처에 있는 인접 블록의 인코딩 정보가 유효한지 여부를 판정하여, 도출한다(S103). 도 33에 처리 대상의 예측 블록과 동일 픽처에 있는 인접 블록마다의 판정 처리의 상세한 흐름을 나타낸다. 실시예 1의 도 13에 도시되는 플로차트에 대해, 스텝 S210, 스텝 S211, 스텝 S212, 스텝 S213 및 스텝 S214이 새로 추가된 처리이고, 그 이외는 실시예 1과 동등하기 때문에, 여기서는 추가된 처리만 상세하게 설명한다.
우선, 블록 그룹 M을 초기화한다(S210). 여기서는, 좌측에 인접하는 블록 그룹에 설정하기로 하고, M에는 좌측의 블록 그룹을 나타내는 값인 A가 설정된다. 다음으로, 블록 그룹 중의 변수 N을 초기화한다(S200). 변수 N은 상술한 블록 그룹 내의 처리순에 따라 설정되고, N의 갱신시에는 좌측의 블록 그룹에서 A1, A0, 상측에서 B1, B0, C0의 순서로 갱신되는 것으로 한다.
도 33 중의 스텝 S201~스텝 S209까지의 처리는 기본적으로 실시예 1의 도 13과 동일하지만, 인접 블록 N의 예측 모드가 화면내 인코딩(Intra) 모드인지 여부를 판정하고(S204), 인접 블록 N의 예측 모드가 Intra 모드가 아닌 경우(S204의 N) 이후의 처리가 실시예 1과 상이하다.
인접 블록 N의 예측 모드가 화면내 인코딩(Intra) 모드인지 여부를 판정하고(S204), 인접 블록 N의 예측 모드가 Intra 모드가 아닌 경우(S204의 N), M이 좌측의 블록 그룹인지 여부의 판정으로 이행하고(S211), M이 좌측의 블록 그룹인 경우(S211의 Y), availableFlagM을 "1"로 설정하고(S205), 인접 블록 N의 인코딩 정보를 refIdxLXM, mvLXM 및 predFlagLXM에 대입하여 설정한다(S206). M이 상측의 블록 그룹인 경우에만(S211의 N), 좌측의 블록 그룹에서 선택된 인접 블록의 인코딩 정보와 인접 블록 N의 인코딩 정보가 동일한지 여부를 판정한다(S212).
최초에 좌측의 블록 그룹을 대표하는 인접 블록을 선택하고 있기 때문에, 그 인코딩 정보를 유지해 두고, 상측의 블록 그룹의 판정에 사용한다. 이 처리에 의해, 좌측의 블록 그룹을 대표하는 인접 블록의 인코딩 정보와 중복되는 것이 없어지기 때문에, 참조처로서 선택지의 폭이 넓어진다. 한편, 처리량의 삭감을 위해, 스텝 S211 및 스텝 S212의 처리를 생략하여, 직접 스텝 S205로 이행할 수도 있다.
좌측의 블록 그룹에서 선택된 인접 블록의 인코딩 정보와 인접 블록 N의 인코딩 정보가 상이하거나 좌측의 블록 그룹에서 선택된 인접 블록의 인코딩 정보가 존재하지 않는 경우(S212의 N), availableFlagM을 "1"로 설정하고(S205), 인접 블록 N의 인코딩 정보를 refIdxLXM, mvLXM 및 predFlagLXM에 대입하여 설정한다(S206).
다음으로, 블록 그룹 M의 인코딩 정보가 설정된 후, 다음의 블록 그룹, 즉 상측에 인접하는 블록 그룹에 대해 처리를 하기 위해, 변수 M이 상측의 블록 그룹을 나타내는 값인 B인지 여부를 판정한다(S213). M이 B(상측)가 아니면(S213의 N), M을 B(상측)로 갱신하여(S214), 스텝 S200 이후의 처리를 반복한다. M이 상측이면(S213의 Y), 처리를 종료한다.
인접 블록 N이 유효하지 않은 경우(S203의 N), 인접 블록 N의 예측 모드가 화면내 인코딩(Intra) 모드가 아닌 경우(S204의 Y), 좌측의 블록 그룹에서 선택된 인접 블록의 인코딩 정보와 인접 블록 N의 인코딩 정보가 동일한 경우(S212의 Y), availableFlagM을 "0"으로 설정하고(S207), 인접 블록 N이 블록 그룹 M 내의 인접 블록의 최후인지 여부의 판정을 실시한다(S208).
변수 N의 갱신은 상술한 블록 그룹 내의 처리순에 상응하여 설정되고, 여기서는 N이 A0(좌측의 블록 그룹의 경우) 혹은 C0(상측의 블록 그룹의 경우)인지 여부의 판정을 한다. 인접 블록 N이 최후의 블록이면(S208의 Y), 블록 그룹 M의 판정으로 이행하고(S213), 그렇지 않으면(S208의 N), 변수 N을 블록 그룹 내의 처리순에 따라 갱신하고(S209), 스텝 S201 이후의 처리를 반복한다. 이상과 같이 하여, 처리 대상의 예측 블록과 동일 픽처 상에 존재하는 블록 그룹의 인접 블록을 대표하는 참조 블록으로 하여, 그 인코딩 정보가 도출된다.
도 32를 다시 참조하여, 이어서, 시간이 상이한 별도의 픽처를 머지 후보로 하는 경우의 처리 대상의 예측 블록의 참조 픽처 번호를 결정한다(S104). 실시예 1에 있어서의 스텝 S101의 처리를 그대로 이용해도 좋지만, 여기서는, 앞의 처리(S103)에서 도출된 동일한 픽처 상의 좌측 및 상측에 인접하는 블록 그룹의 인코딩 정보에 기초하는 수법을 도 34의 (a), (b)를 사용하여 설명한다.
우선, 스텝 S103에서 도출된 좌측에 인접하는 블록 그룹 A 및 상측에 인접하는 블록 그룹 B 각각의 블록 그룹의 인접 블록이 유효한지 여부를 나타내는 플래그 availableFlagM, 참조 픽처 번호 refIdxLXM이 입력된다. 여기서 M은 A 및 B이다.
우선, 좌측의 인접 블록 그룹 A에 대해 도 34(a)를 사용하여 설명한다. 좌측의 인접 블록 그룹의 인접 블록이 유효한지 여부를 나타내는 플래그 availableFlagA를 조사한다(S1100). availableFlagA가 1이면(S1100의 Y), 좌측의 인접 블록 그룹의 인접 블록의 참조 픽처 번호 refIdxLXA를 설정하고, 그렇지 않으면(S1100의 N), refIdxLXA를 -1로 설정한다.
동일하게 하여, 상측의 인접 블록 그룹 B에 대해 도 34(b)를 사용하여 설명한다. 상측의 인접 블록 그룹의 인접 블록이 유효한지 여부를 나타내는 플래그 availableFlagB를 조사한다(S1101). availableFlagB가 1이면(S1101의 Y), 상측의 인접 블록 그룹의 인접 블록의 참조 픽처 번호 refIdxLXB를 설정하고, 그렇지 않으면(S1101의 N), refIdxLXB를 -1로 설정한다.
이와 같이 하여 도출된 각 블록 그룹의 참조 픽처 번호 refIdxLXM(M은 A, B)의 조건에 기초하여, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 참조 픽처 번호 refIdxLXCol을 결정한다. 도 35에 참조 픽처 번호 refIdxLXM에 기초하는 판정을 나타낸다. 도 35의 1째줄은 refIdxLXA와 refIdxLXB가 동일값이고, -1이 아닌 경우이고, refIdxLXA를 선택한다. 2째줄은 refIdxLXA와 refIdxLXB가 상이한 값이고, 모두 -1이 아닌 경우이고, 최소의 참조 픽처 번호의 값을 선택한다. 3째줄과 4째줄은 어느 하나가 -1인 경우이고, -1이 아닌 것을 선택한다. 5째줄은 양쪽이 -1인 경우이고, 이 때는 "0"을 설정한다. 이상과 같이 하여, 처리 대상의 예측 블록의 참조 픽처 번호가 결정되지만, 이 수법 이외의 수법을 사용해도 좋다.
도 32를 다시 참조하여, 다음으로, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 인코딩 정보가 유효한지 여부를 판정하여, 도출한다(S102). 실시예 1의 스텝 S102와 동일하기 때문에 설명을 할애한다. 이와 같이 하여 얻어진 인접 블록의 인코딩 정보는 참조 후보 리스트 작성부(311)에 입력된다.
실시예 2에서도 실시예 1과 동일하게, 참조 후보 리스트 저장 메모리(314)에, 참조 인접 블록의 인코딩 정보의 후보를 등록하는 기억 영역으로서 참조 후보 리스트를 마련하고, 참조 인접 블록의 인코딩 정보의 후보에 우선 순위를 붙이고, 우선 순위가 높은 것으로부터 참조 후보 리스트에, 참조 인접 블록의 인코딩 정보의 후보를 등록한다. 이에 의해, 참조 후보 리스트의 인덱스 merge_idx의 코딩량을 삭감한다.
참조 후보 리스트 작성부(311)는 실시예 1과 동일한 동작을 하여, 참조하는 좌측 및 상측의 인접 블록 그룹, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 유효 플래그 availableFlagM (여기서 M은 A, B, T)의 판정을 하고, 인접 블록의 인코딩 정보를 참조 후보 리스트 candList에 등록한다. 여기서, 변수 N을 갱신하는 인접 블록의 순번이 참조 후보 리스트에 저장하는 우선 순위가 되고 있고, 실시예 2에서는, 좌측, 상측, 상이한 시간의 동일 순번(A, B, T)을 설정하기로 한다.
이상의 처리에 의해, 참조 후보 리스트에 등록된, 참조 인접 블록이 모두 유효하면, 도 36에 도시되는 순번으로 참조 후보 리스트가 작성된다. 우선 순위를 인덱스로 하여, 각 코드워드는 참조 후보 리스트의 우열에 표시되고, 최대 코드워드장은 2가 된다. 여기서, 참조 후보 리스트 내부의 괄호는, 좌측 혹은 상측의 인접 블록 그룹 중에서, 인코딩 정보 도출부(310)에서 괄호 내의 좌측에서 우측의 순서로 처리되어, 선택되는 1개의 인접 블록을 나타낸다.
작성된 참조 후보 리스트는, 동일 정보 검출부(312)에 의해 동일한 인코딩 정보가 되는 참조 후보 리스트에 저장된 인코딩 정보를 삭제하고, 참조 후보 리스트 작성부(311)에서 작성된 참조 후보 리스트 중의 인덱스와 인코딩 정보를 출력한다. 참조 후보 리스트는, 참조 후보 리스트를 머지 리스트로 하여, 해당 리스트 중의 인덱스를 머지 인덱스로서 출력된다. 동영상 인코딩 장치(100)에서는, 움직임 보상 예측부(105)와 예측 방법 결정부(107)에 출력된다.
상술한 동영상 인코딩 장치(100) 중에 설치되는 실시예 2의 머지 검출부(106)에 대응하는, 동영상 디코딩 장치(200) 중에 설치되는 실시예 2의 머지 판정부(206)에 대해 설명한다. 머지 판정부(206)는 실시예 1에서 설명한 도 22와 동일한 구성을 이루고, 인코딩 정보 도출부(310)의 처리가 실시예 1과 상이하다. 그 이외의 참조 후보 리스트 작성부(311), 동일 정보 검출부(312), 참조 후보 리스트 저장 메모리(314) 및 선택부(315)는 실시예 1과 동일한 기능을 갖는다.
또한, 실시예 2에 있어서의 머지 판정부(206)의 인코딩 정보 도출부(310)는 상술한 실시예 2에 있어서의 머지 검출부(106)의 인코딩 정보 도출부(310)와 동일한 기능을 갖고 있기 때문에, 실시예 2에 있어서의 머지 판정부(206)의 머지 판정부(206)의 동일 정보 검출부(312)까지의 처리로, 실시예 2의 머지 검출부(106)와 동일한 참조 후보 리스트가 작성되게 된다. 작성된 참조 후보 리스트로부터, 머지 모드에 있어서 참조 인접 블록의 인코딩 정보를 취득하는 선택부(315)에 대해 설명한다. 선택부(315)는, 작성된 참조 후보 리스트 중에서, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된, 참조 인접 블록을 특정하는 인덱스로 지정되는 참조 후보 리스트의 인접 블록을 선택한다. 선택된 인코딩 정보를 움직임 보상 예측부(207)에 공급하는 한편, 인코딩 정보 저장 메모리(210)에 공급한다.
다음으로, 동영상 인코딩 장치(100)의 구성을 나타내는 도 2 중에 설치되는 실시예 2의 움직임 벡터 예측부(103)에 대해 설명한다. 실시예 2의 움직임 벡터 예측부(103)는 실시예 1에서 설명한 도 23과 동일한 구성을 이루지만, 인코딩 정보 도출부(320)의 처리가 실시예 1과는 상이하기 때문에, 실시예 2에서는 인코딩 정보 도출부(320)의 동작에 대해 설명한다. 도 37은 실시예 2에 있어서의 인코딩 정보 도출부(320)의 동작을 나타내는 플로차트이다.
먼저, 스위치(108)에 입력되는 동영상 인코딩 장치(100)에 의해 제어되는 예측 모드에 의해, 인터 예측 정보 검출부(104)의 출력처가 움직임 벡터 예측부(103)로 전환된다. 인터 예측 정보 검출부(104)의 내부의 일시 메모리(303)에 기억된 처리 대상의 예측 블록이 참조 인접 블록의 인코딩 정보가, 인코딩 정보 도출부(320)에 입력된다. 입력된 인접 블록 중에서 처리 대상의 예측 블록과 동일 픽처에 있는 인접 블록의 인코딩 정보가 유효한지 여부를 판정하여, 도출한다(S802). 도 38에 처리 대상의 예측 블록과 동일 픽처에 있는 인접 블록마다의 판정 처리의 상세한 흐름을 나타낸다.
실시예 1의 도 25에 도시되는 플로차트에 대해, 스텝 S913, 스텝 S914, 스텝 S915, 스텝 S916 및 스텝 S917이 새로 추가된 처리이고, 그 이외는 실시예 1과 동등하기 때문에, 여기서는 추가된 처리만 상세하게 설명한다.
우선, 블록 그룹의 변수 M을 초기화한다(S913). 여기서는, 좌측에 인접하는 블록 그룹에 설정하기로 하고, M에는 좌측의 블록 그룹을 나타내는 값인 A가 설정된다. 다음으로, 블록 그룹 중의 변수 N을 초기화한다(S900). 변수 N은 상술한 블록 그룹 내의 처리순에 따라 설정되고, N의 갱신시에는 좌측의 블록 그룹에서 A0, A1, 상측에서 B0, B1, C0의 순서로 갱신되는 것으로 한다. 이후의 스텝 S901~스텝 S910까지의 처리는 기본적으로 실시예 1과 동일하지만, 인접 블록 N의 예측 모드가 화면내 인코딩(Intra) 모드인지 여부를 판정하고(S904), 인접 블록 N의 예측 모드가 Intra 모드가 아닌 경우(S904의 N) 이후의 처리가 실시예 1과 상이하다.
인접 블록 N의 예측 모드가 화면내 인코딩(Intra) 모드인지 여부를 판정하고(S904), 인접 블록 N의 예측 모드가 Intra 모드가 아닌 경우(S904의 N), M이 좌측의 블록 그룹인지 여부의 판정으로 이행하고(S914), M이 좌측의 블록 그룹인 경우(S914의 Y), 스텝 S905의 처리로 이행한다. M이 상측의 블록 그룹인 경우에만(S914의 N), 좌측의 블록 그룹에서 선택된 인접 블록의 움직임 벡터 mvLXA와 인접 블록 N의 움직임 벡터가 동일한지 여부를 판정한다(S915).
최초에 좌측의 블록 그룹을 대표하는 인접 블록을 선택하고 있기 때문에, 그 움직임 벡터를 유지해 두고, 상측의 블록 그룹의 판정에 사용한다. 이 처리에 의해, 좌측의 블록 그룹을 대표하는 인접 블록의 움직임 벡터와 중복되는 것이 없어지기 때문에, 참조처로서 선택지의 폭이 넓어진다. 한편, 처리량의 삭감을 위해, 스텝 S914 및 스텝 S915의 처리를 생략하여, 직접 스텝 S905로 이행할 수도 있다.
좌측의 블록 그룹에서 선택된 인접 블록의 움직임 벡터 mvLXA와 인접 블록 N의 움직임 벡터가 동일한 경우(S915의 Y), 스텝 S908로 이행한다. 상이한 경우(S915의 N), 처리 대상의 예측 블록의 산출 대상의 예측과 동일 참조 리스트에서 동일 참조 픽처 번호를 사용한 예측이 인접 블록 N에서도 진행되고 있는지 여부를 판정한다(S905).
처리 대상의 예측 블록의 산출 대상의 움직임 벡터를 사용한 예측과 동일 참조 리스트에서 동일 참조 픽처 번호를 사용한 예측이 인접 블록 N에서도 진행되고 있는 경우(S905의 Y), availableFlagLXN을 "1"로 설정하고(S906), 인접 블록 N의 움직임 벡터를 mvLXM에 대입하여 설정한다(S907). 블록 그룹 M의 움직임 벡터가 설정된 후, 다음의 블록 그룹, 즉 상측에 인접하는 블록 그룹에 대해 처리를 하기 위해, 변수 M이 상측의 블록 그룹을 나타내는 값인 B인지 여부를 판정한다(S916). M이 B(상측)가 아니면(S916의 N), M을 B(상측)로 갱신하여(S917), 스텝 S900 이후의 처리를 반복한다. M이 B(상측)이면(S916의 Y), 처리를 종료한다.
인접 블록 N이 유효하지 않은 경우(S903의 N), 인접 블록 N의 예측 모드가 화면내 인코딩(Intra) 모드가 아닌 경우(S904의 Y), 좌측의 블록 그룹에서 선택된 인접 블록의 움직임 벡터 mvLXA와 상측의 블록 그룹의 인접 블록 N의 움직임 벡터가 동일한 경우(S915의 Y), 동일 참조 리스트에서 동일 참조 픽처 번호를 사용한 예측이 진행되지 않고 있는 경우(S905의 N), availableFlagLXM을 "0"으로 설정하고(S908), 인접 블록 N이 블록 그룹 M 내의 인접 블록의 최후인지 여부의 판정을 실시한다(S909). 변수 N의 갱신은 상술한 블록 그룹 내의 처리순에 상응하여 설정되고, 여기서는 N이 A1(좌측의 블록 그룹의 경우) 혹은 C0(상측의 블록 그룹의 경우)인지 여부의 판정을 한다.
인접 블록 N이 최후의 블록이면(S909의 Y), 블록 그룹 M의 판정으로 이행한다(S916). 그렇지 않으면(S909의 N), 변수 N을 블록 그룹 내의 처리순에 따라 갱신하고(S910), 스텝 S901 이후의 처리를 반복한다. 이상과 같이 하여, 처리 대상의 예측 블록과 동일 픽처 상에 존재하는 블록 그룹의 인접 블록을 대표하는 참조 블록으로 하여, 그 인코딩 정보가 도출된다.
실시예 2에서도 실시예 1과 동일하게, 인접 블록에서 진행되고 있는 예측이, 다음의 조건을 만족시키는 경우에 있어서도, 인접 블록이 유효한지 여부를 나타내는 플래그 availableFlagLXM을 1(유효)로 하고, 참조 인접 블록의 후보로서, 그 인코딩 정보를 도출할 수 있다.
조건 1: 동일 참조 리스트에서, 동일 참조 픽처 번호
조건 2: 상이한 참조 리스트에서, 동일 참조 픽처 번호
조건 3: 동일 참조 리스트에서, 상이한 참조 픽처 번호
조건 4: 상이한 참조 리스트에서, 상이한 참조 픽처 번호
이 경우의 처리 흐름을 도 39에 나타낸다. 상술한 도 38과 상이한 것은, 스텝 S905의 조건 1만의 조건 판정을 삭제한 점, 스텝 S911의 조건 1~4의 조건 판정을 하여, 조건 1 또는 2를 만족하지 못하는 경우에는 움직임 벡터의 스케일링 처리(S912)를 추가한 점이다.
우선, 블록 그룹의 변수 M을 초기화한다(S913). 여기서는, 좌측에 인접하는 블록 그룹에 설정하기로 하고, M에는 A가 설정된다. 다음으로, 블록 그룹 중의 변수 N을 초기화한다(S900). 변수 N은 상술한 블록 그룹 내의 처리순에 따라 설정되고, N의 갱신시에는 좌측의 블록 그룹에서 A0, A1, 상측에서 B0, B1, C0의 순서로 갱신되는 것으로 한다. 이후의 스텝 S901~스텝 S910까지의 처리는 기본적으로 실시예 1의 도 26과 동일하다. 인접 블록 N의 예측 모드가 화면내 인코딩(Intra) 모드인지 여부를 판정하고(S904), 인접 블록 N의 예측 모드가 Intra 모드가 아닌 경우(S904의 N) 이후의 처리가 실시예 2의 도 38과 상이하다.
인접 블록 N의 예측 모드가 Intra 모드가 아닌 경우(S904의 N), 즉 Inter 모드인 경우에는, 처리 대상의 예측 블록의 산출 대상의 예측 인코딩 정보와 인접 블록 N의 인코딩 정보를 비교하는 것에 의해 조건 1~4의 판정 처리를 한다(S911). 조건 1 또는 조건 2를 만족하는 경우, M이 좌측의 블록 그룹인지 여부의 판정 처리로 이행한다(S914). 한편, 조건 3 또는 조건 4를 만족하는 경우, 실시예 1의 도 26의 S912와 동일하게 인접 블록 N의 움직임 벡터의 스케일링 처리가 실시되고(S912), M이 좌측의 블록 그룹인지 여부의 판정 처리로 이행한다(S914).
M이 좌측의 블록 그룹인 경우(S914의 Y), availableFlagLXM을 "1"로 설정한다(S906). M이 상측의 블록 그룹인 경우(S914의 N), 좌측의 블록 그룹에서 선택된 인접 블록의 움직임 벡터 mvLXA와 인접 블록 N의 움직임 벡터가 동일한지 여부를 판정한다(S915). 한편, 처리량의 삭감을 위해, 스텝 S914 및 스텝 S915의 처리를 생략하여, 직접 스텝 S906으로 이행할 수도 있다.
좌측의 블록 그룹에서 선택된 인접 블록의 움직임 벡터 mvLXA와 인접 블록 N의 인코딩 정보가 동일한 경우(S915의 Y), availableFlagLXN을 "0"으로 설정하고(S908), 상이한 경우(S915의 N), availableFlagLXM을 "1"로 설정한다(S906).
실시예 1의 도 26의 스텝 S907과 동일하게 인접 블록 N이 동일 참조 리스트(조건 1에 합치한 경우)의 움직임 벡터 mvLX 혹은 상이한 참조 리스트(조건 2에 합치한 경우)의 움직임 벡터 mvLY, 또는 동일 참조 리스트(조건 3에 합치한 경우)의 스케일링에 의해 환산된 움직임 벡터 mvLX 혹은 상이한 참조 리스트(조건 4에 합치한 경우)의 스케일링에 의해 환산된 움직임 벡터 mvLY를 mvLXM에 대입하여 설정된다(S907).
블록 그룹 M의 움직임 벡터가 설정된 후, 다음의 블록 그룹, 즉 상측에 인접하는 블록 그룹에 대해 처리를 하기 위해, 변수 M이 상측인지 여부를 판정한다(S916). M이 상측이 아니면(S916의 N), M을 B(상측)로 갱신하여(S917), 스텝 S900 이후의 처리를 반복한다. M이 상측이면(S916의 Y), 처리를 종료한다.
availableFlagLXM을 "0"으로 설정한 경우(S908), 인접 블록 N이 블록 그룹 M 내의 인접 블록의 최후인지 여부의 판정을 실시한다(S909). 변수 N의 갱신은 상술한 블록 그룹 내의 처리순에 상응하여 설정되고, 여기서는 N이 A1(좌측의 블록 그룹의 경우) 혹은 C0(상측의 블록 그룹의 경우)인지 여부의 판정을 한다. 인접 블록 N이 최후의 블록이면(S909의 Y), 블록 그룹 M의 판정으로 이행하고(S916), 그렇지 않으면(S909의 Y), 변수 N을 블록 그룹 내의 처리순에 따라 갱신하고(S910), 스텝 S901 이후의 처리를 반복한다. 이상과 같이 하여, 처리 대상의 예측 블록과 동일 픽처 상에 존재하는 블록 그룹의 인접 블록을 대표하는 참조 블록으로서, 그 움직임 벡터가 도출된다.
도 37을 다시 참조하여, 다음으로, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 인코딩 정보가 유효한지 여부를 판정하여, 도출한다(S801). 이는 실시예 1의 스텝 S801과 동일하기 때문에 설명을 할애한다. 이와 같이 하여 얻어진 인접 블록의 인코딩 정보는 참조 후보 리스트 작성부(321)에 입력된다. 참조 후보 리스트 작성부(321)에서 작성되는 참조 후보 리스트는, L0 예측 및 L1 예측의 2개의 참조 리스트에 대해 각각 참조 후보 리스트가 작성된다. 본 명세서에서는, 특히 주석을 하지 않는 한, 움직임 검출 모드시의 참조 후보 리스트는 설명의 형편상 1개만 들어 설명하기로 하고, 도면에서 나타내는 참조 후보 리스트도 1개만 들기로 한다.
실시예 2에서는, 참조 후보 리스트 저장 메모리(324)에, 참조 인접 블록의 인코딩 정보의 후보를 등록하는 기억 영역으로서 참조 후보 리스트를 마련한다. 참조 인접 블록의 인코딩 정보의 후보에 우선 순위를 붙이고, 우선 순위가 높은 것으로부터 참조 후보 리스트 저장 메모리(324)에, 참조 인접 블록의 인코딩 정보의 후보를 등록한다. 이에 의해, 참조 후보 리스트의 인덱스 mvp_idx_l0 및 mvp_idx_l1의 코딩량을 삭감할 수 있게 된다.
우선 순위가 높은 요소를 참조 후보 리스트의 전방에 배치하는 것에 의해, 코딩량을 삭감한다. 우선 순위를 나타내는 인덱스는 0에서부터 상승순으로 할당한다. 참조 후보 리스트 저장 메모리(324)에 마련되는 참조 후보 리스트는, 리스트 구조를 이루고, 참조 후보 리스트 내부의 소재를 나타내는 인덱스와, 인덱스에 대응하는 참조 인접 블록의 인코딩 정보의 후보를 요소로서 저장하는 배열 영역이 마련된다. 이 배열 영역은 candListLX로 표시된다. 인덱스의 숫자는 0으로부터 개시되고, 참조 후보 리스트 candListLX의 기억 영역에, 참조 인접 블록의 인코딩 정보의 후보가 저장된다. 이후의 처리에서는, 참조 후보 리스트 candListLX에 등록된 인덱스 i의 인코딩 정보는, candListLX[i]로 나타내기로 하고, 참조 후보 리스트 candListLX와는 배열 표기를 하는 것에 의해 구별하기로 한다. 한편, 참조 후보 리스트의 기억 영역에 저장되는 인코딩 정보는, 특히 한정하지 않는 한, 참조 인접 블록의 위치명(A0, A1, B0, B1, C0, T)으로 나타내기로 한다.
참조 후보 리스트 작성부(321)는 실시예 1과 동일한 동작을 하여, 참조하는 좌측 및 상측의 인접 블록 그룹, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 유효 플래그 availableFlagLXM(여기서 M은 A, B, T)의 판정을 하고, 인접 블록의 인코딩 정보를 참조 후보 리스트 candListLX에 등록한다. 여기서, 변수 N을 갱신하는 인접 블록의 순번이 참조 후보 리스트에 저장하는 우선 순위가 되고 있고, 실시예 2에서는, 좌측, 상측, 상이한 시간의 동일 순번(A, B, T)을 설정하기로 한다. 이상의 처리에 의해, 참조 후보 리스트에 등록된, 참조 인접 블록이 모두 유효하면, 도 40에 도시되는 순번으로 참조 후보 리스트가 작성된다.
우선 순위를 인덱스로 하여, 각 코드워드는 참조 후보 리스트의 우열에 표시되고, 최대 코드워드장은 2가 된다. 여기서, 참조 후보 리스트 내부의 괄호는, 좌측 혹은 상측의 인접 블록 그룹 중에서, 인코딩 정보 도출부(320)에서 괄호 내의 좌측에서 우측의 순서로 처리되어, 선택되는 1개의 인접 블록을 나타낸다. 참조 인접 블록이 1개만 유효한 경우, 최대 코드워드장은 0이 되기 때문에, 코드워드는 불필요하고, 1개만 유효로 판정된 인접 블록의 인코딩 정보의 후보가 참조처로서 일의로 결정되게 된다.
작성된 참조 후보 리스트는, 동일 정보 검출부(322)에 의해 동일한 인코딩 정보가 되는 참조 후보 리스트에 저장된 인코딩 정보를 삭제하고, 차분 움직임 벡터 도출부(326)에서 작성된 참조 후보 리스트 중의 인코딩 정보의 움직임 벡터를 예측 움직임 벡터로 하여, 움직임 벡터 추정부(102)가 검출한 움직임 벡터와 예측 움직임 벡터로부터 차분 움직임 벡터를 산출하고, 산출된 차분 움직임 벡터를 출력부(323)에 공급한다.
끝으로, 출력부(323)가, 작성된 참조 후보 리스트 중의 인덱스와 차분 움직임 벡터를 출력한다. 참조 후보 리스트는, 참조 후보 리스트를 MVP 리스트로 하여, 리스트 중의 인덱스를 MVP 인덱스로서 출력한다. 동영상 인코딩 장치(100)에서는, 예측 방법 결정부(107)에 출력된다.
상술한 동영상 인코딩 장치(100) 중에 설치되는 실시예 2의 움직임 벡터 예측부(103)에 대응하는, 동영상 디코딩 장치(200) 중에 설치되는 실시예 2의 움직임 벡터 도출부(204)에 대해 설명한다. 움직임 벡터 도출부(204)는 도 30과 동일한 구성을 이루고, 인코딩 정보 도출부(320)의 처리가 실시예 1과 상이하다. 그 이외의 참조 후보 리스트 작성부(321), 동일 정보 검출부(322), 참조 후보 리스트 저장 메모리(324), 선택부(325) 및 움직임 벡터 가산부(327)는 실시예 1과 동일한 기능을 갖는다.
또한, 인코딩 정보 도출부(320)는 상술한 실시예 2에 있어서의 움직임 벡터 예측부(103)의 인코딩 정보 도출부(320)와 동일한 기능을 갖고 있기 때문에, 움직임 벡터 도출부(204)의 동일 정보 검출부(322)까지의 처리로, 실시예 2의 움직임 벡터 예측부(103)와 동일한 참조 후보 리스트가 작성되게 된다. 작성된 참조 후보 리스트로부터, 움직임 검출 모드에 있어서 참조 인접 블록의 인코딩 정보를 취득하는 선택부(325)에 대해 설명한다. 선택부(325)는, 작성된 참조 후보 리스트 중에서, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 참조 인접 블록을 특정하는 인덱스로 지정되는 참조 후보 리스트의 인접 블록을 선택한다. 선택된 참조 후보 리스트의 인접 블록의 인코딩 정보로부터 움직임 벡터를 예측 움직임 벡터로서 출력하고, 움직임 벡터 가산부(327)에서 예측 움직임 벡터와 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 차분 움직임 벡터를 가산하여 움직임 벡터를 산출하고, 움직임 보상 예측부(207)에 공급하는 한편, 선택된 리스트의 인접 블록의 인코딩 정보를 인코딩 정보 저장 메모리(210)에 공급한다.
한편, 실시예 2에서는, 각 블록 그룹으로부터 1개의 인접 블록을, 참조 인접 블록의 대표로서 선출했지만, 복수개의 인접 블록을 선출해도 좋다. 단, 블록 그룹 중의 블록수를 넘지 않는 범위로 설정한다.
(실시예 3)
실시예 3에서는, 예측 모드에 상응하여 참조 인접 블록의 선택 방법을 바꾼다. 도 31(a)의 인접 블록의 배치를 사용하여 설명한다. 머지 모드에서는 6개의 인접 블록 A0, A1, B0, B1, C0, T 중에서 1개의 인접 블록의 인코딩 정보를 참조처로서 선택한다. 움직임 검출 모드에서는 6개의 인접 블록 A0, A1, B0, B1, C0, T 중, A0과 A1을 좌측에 인접하는 블록 그룹, B0, B1과 C0을 상측에 인접하는 블록 그룹으로 분류하고, 각 블록 그룹 중에서 1개를 대표하는 인접 블록으로서 선택한다. 좌측 및 상측에 인접하는 블록 그룹의 각 대표 블록과 T의 3개의 인접 블록으로부터 1개의 인접 블록의 인코딩 정보를 참조처로서 선택한다. 즉, 머지 모드는 실시예 1의 수법을, 움직임 검출 모드는 실시예 2의 수법을 각각 적용하는 혼합 수법이다.
머지 모드에서는, 참조 인접 블록의 후보의 인코딩 정보를 그대로 사용하여, 화상간 예측을 하기 때문에, 선택의 여지를 남기기 위해, 움직임 검출 모드보다 많은 후보를 리스트에 등록한다. 이는, 머지 모드는 움직임 검출 모드에 비해, 많은 정보(움직임 벡터, 참조 인덱스, 참조 리스트)를 적은 코딩량으로 전송할 수 있기 때문이고, 머지 인덱스의 코딩량을 삭감하는 것 보다, 인접 블록의 후보를 남겨 선택의 폭을 넓히는 것이 인코딩 효율이 향상하기 때문이다. 한편, 움직임 검출 모드에서는, 참조 인접 블록의 후보의 인코딩 정보를 그대로 사용하는 것이 아니고, 차분 움직임 벡터를 비롯한 인코딩 정보를 인코딩하기 때문에, 스캔을 하여 후보를 좁혀 리스트에 등록한다. 이는, 후보를 좁히는 것에 의해, MVP 인덱스의 코딩량을 삭감하는 것이 인코딩 효율이 향상하기 때문이다.
실시예 3에서 작성되는 후보 리스트는, 참조 인접 블록이 모두 유효한 경우, 예측 모드별로 도 41과 같이 표시된다. 머지 검출부(106) 및 움직임 벡터 예측부(103)에서 각각 참조 후보 리스트가 작성되고, 후보 리스트 총수도 상이하기 때문에 코드워드도 3항목 이후에서 상이하지만, 각각 최적의 코드워드로서 작성되어 있기 때문에, 인코딩 효율의 개선을 기대할 수 있다. 또한, 코드워드장이 길어지지만, 움직임 검출 모드의 코드워드 "11"(2진수 표기)을 동일 행의 머지 모드인 "110"(2진수 표기)에 맞춰서, 출현하는 코드워드의 종류를 공통화해도 좋다.
(실시예 4)
실시예 4는, 처리 대상의 예측 블록과 동일 픽처 상에 있는 인접 블록(이하, 공간의 인접 블록이라 한다)으로부터 2개의 블록을 대표하는 인접 블록으로서 선택하는 방법이다. 이 점은 실시예 2와 동일하지만, 실시예 2에서는 공간의 인접 블록을 2개의 블록 그룹으로 나누어 정의하고, 블록 그룹 단위로 1개씩 대표하는 인접 블록을 선출했다. 실시예 4에서는 공간의 인접 블록 전체를 1개의 블록 그룹으로 하여, 이 중에서 2개의 대표하는 인접하는 블록을 선출하는 점이 상이하다.
실시예 2와 동일하게 처리 대상의 예측 블록과 동일 픽처 상에 있는 인접 블록을 대표하는 2개의 인접 블록 및 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 3개의 인접 블록이 참조 후보 리스트에 등록되게 된다. 참조 후보 리스트에 등록하는 인접 블록의 총수를 실시예 1에 비해 삭감할 수 있기 때문에, 동일 정보 검출부(312)에서의 인코딩 정보의 비교 횟수, 동일 정보 검출부(322)에서의 움직임 벡터의 비교 횟수를 삭감할 수 있다. 또한, 참조 후보 리스트의 인덱스에 할당하는 코드워드장이 짧아져, 참조 후보 리스트의 인덱스 코딩량을 삭감할 수 있다. 또한, 인접 블록의 선출 처리 순번을 예측 모드에 상응하여 변경하는 것에 의해, 예측 모드에 적합한 인접 블록의 선택이 가능해지고, 인코딩 효율의 개선을 기대할 수 있다.
처리 순번은 예측 모드가 머지 모드인 경우, 머지 검출부(106) 및 머지 판정부(206)는 도 9(a)의 A1, B1, B0, A0, C0 (또는 B1, A1, A0, B0, C0)의 순서로 처리를 한다. 움직임 검출 모드인 경우, 움직임 벡터 예측부(103) 및 움직임 벡터 도출부(204)는 도 9(a)의 B0, A0, A1, B1, C0 (또는 A0, B0, B1, A1, C0)의 순서로 처리를 한다.
머지 모드에서는, 인접 블록 A1, B1을 우선하여 선택하고, 후보 리스트에 등록한다. 이는, 인접 블록 A1, B1은, 처리 대상의 예측 블록과 변이 접하고 있기 때문에, 다른 인접 블록(A0, B0, C)보다, 처리 대상의 예측 블록과 인코딩 정보가 동일할 가능성이 높고, 가능성이 높은 후보를 등록하는 것이, 머지 모드에서의 인코딩 효율 향상에 기여한다. 한편, 움직임 검출 모드에서는, 인접 블록 A0, B0을 우선하여 선택하고, 후보 리스트에 등록한다. 인접 블록 A0, B0은, 인접 블록 중에서 후보 사이의 거리가 가장 떨어져 있어, 상이한 성질의 움직임 벡터를 등록할 수 있는 가능성이 높아, 예측 움직임 벡터의 선택 폭을 넓일 수 있다. 이에 의해, 차분 움직임 벡터를 전송할 때 큰 코딩량이 쉽게 발생하지 않아, 움직임 검출 모드에서의 인코딩 효율 향상에 기여한다.
실시예 4의 동영상 인코딩 장치(100) 및 동영상 디코딩 장치(200)의 구성은 실시예 1, 2와 동일하다. 또한, 실시예 4의 동작은 도 11 및 도 22의 인코딩 정보 도출부(310), 도 23 및 도 30의 인코딩 정보 도출부(320)의 동작을 제외하고 실시예 2와 동일하다. 이하에서는, 실시예 2와는 상이한 실시예 4의 동작에 대해서만 상세한 설명을 한다.
우선, 동영상 인코딩 장치 중의 머지 검출부(106)의 동작에 대해 설명한다. 머지 검출부(106)는 실시예 2의 도 11과 동일한 구성을 이루지만, 인코딩 정보 도출부(310)의 처리가 실시예 2와는 상이하기 때문에, 실시예 4에 있어서의 인코딩 정보 도출부(310)의 동작에 대해 설명한다. 도 42는 실시예 4에 있어서의 인코딩 정보 도출부(310)의 동작을 나타내는 플로차트이다.
먼저, 스위치(108)에 입력되는 동영상 인코딩 장치(100)에 의해 제어되는 예측 모드에 의해, 인터 예측 정보 검출부(104)의 출력처가 머지 검출부(106)로 전환되어, 인터 예측 정보 검출부(104)의 내부의 일시 메모리(303)에 기억된, 처리 대상의 예측 블록이 참조 인접 블록의 인코딩 정보가 인코딩 정보 도출부(310)에 입력된다.
입력된 인접 블록 중에서 처리 대상의 예측 블록과 동일 픽처에 있는 인접 블록의 인코딩 정보가 유효한지 여부를 판정하고, 2개의 인접 블록을 도출한다(S105). 도 43에 처리 대상의 예측 블록과 동일 픽처에 있는 인접 블록마다의 판정 처리의 상세한 흐름을 나타낸다.
우선, 선택된 인접 블록을 나타내는 변수 F를 S0으로 설정하고, 카운터 k를 0으로 설정한다(S1600). 선택된 인접 블록을 나타내는 변수 F의 S0은 최초로 선출되는 제1후보의 인접 블록을 나타내고, S1은 2번째로 선출되는 제2후보의 인접 블록을 나타낸다.
다음으로, 처리 중의 인접 블록을 나타내는 변수 N을 A1로 초기화한다(S1601). 처리 중의 인접 블록을 나타내는 변수 N은 A1, B1, B0, A0, C0의 처리순에 따라 설정되고, N의 갱신시에는 이 순서로 갱신되는 것으로 한다.
다음으로, 이후의 판정에서 사용하는 인접 블록의 인코딩 정보를 저장해 두는 변수를 초기화한다(S1602). 여기서, 변수는 인접 블록이 유효한지 여부를 나타내는 플래그 availableFlagF, 움직임 벡터 mvLXF, 참조 픽처 번호 refIdxLXF 및 예측 방향의 유효성을 나타내는 플래그 predFlagLXF이고, 다음과 같이 초기화된다.
availableFlagF=0
mvLXF=(0, 0)
refIdxLXF=0
predFlagLXF=0
여기서, 첨자 X에는 예측 방향을 나타내는 0 혹은 1이 설정된다. 처리 중의 인접 블록을 나타내는 변수 N의 인접 블록(이하, 인접 블록 N이라 한다)의 위치 및 인코딩 정보를 취득한다(S1603).
취득된 인접 블록 N의 위치에 기초하여, 인접 블록 N이 유효한지 여부를 판정한다(S1604). 예를 들면, 처리 대상의 예측 블록이 픽처 좌단에 위치하는 경우, 처리 대상의 예측 블록의 좌측의 인접 블록은 존재하지 않기 때문에, 인코딩 정보 저장 메모리(114) 중에 해당하는 인코딩 정보는 없는 것이 되고, 무효로 판정된다.
인접 블록 N이 무효인 경우(S1604의 N), availableFlagF를 "0"으로 설정한다(S1613). 인접 블록 N이 유효인 경우(S1604의 Y), 인접 블록 N의 예측 모드가 화면내 인코딩(Intra) 모드인지 여부를 판정하고(S1605), 인접 블록 N의 예측 모드가 Intra 모드인 경우(S1605의 Y), availableFlagF를 "0"으로 설정한다(S1613).
인접 블록 N의 예측 모드가 Intra 모드가 아닌 경우(S1605의 N), 즉 Inter 모드인 경우에는, F가 S0인지 여부의 판정(S1606)으로 이행하고, F가 S0인 경우(S1606의 Y), availableFlagF(availableFlagS0)을 1로 설정한다(S1608).
F가 S0이 아닌 경우(S1606의 N), 이미 선택된 인접 블록의 인코딩 정보와 인접 블록 N의 인코딩 정보가 동일한지 여부를 판정한다(S1607). 이미 선택된 인접 블록의 인코딩 정보와 인접 블록 N의 인코딩 정보가 동일한 경우(S1607의 Y), availableFlagF를 "0"으로 설정한다(S1613).
구체적으로는, 공간의 인접 블록의 최대수를 2로 한 경우, 최초에 제1후보로서 선택된 인코딩 정보를 유지해 두고, 제2후보의 선출시의 비교 판정에 사용한다. 이 처리에 의해, 제2후보의 인접 블록의 인코딩 정보가 대표하는 제1후보의 인접 블록의 인코딩 정보와 중복되는 것이 없어지기 때문에, 보다 많은 후보를 참조처로서 선택 가능해진다. 한편, 처리량의 삭감을 위해, 스텝 S1606 및 스텝 S1607의 처리를 생략하여, 직접 스텝 S1608로 이행할 수도 있다.
제1후보로서 선택된 인접 블록의 인코딩 정보와 인접 블록 N의 인코딩 정보가 상이한 경우(S1607의 N), availableFlagF(availableFlagS1)를 "1"로 설정한다(S1608). 이어서, 인접 블록 N의 인코딩 정보를 refIdxLXF, mvLXF 및 predFlagLXF에 대입하여 설정한다(S1609).
다음으로, 카운터 k에 1을 가산하는 것에 의해 갱신하고(S1610), 카운터 k가 공간의 후보 최대 후보수인 2보다 작은지를 판정한다(S1611). 카운터 k가 공간의 후보 최대 후보수인 2인 경우(S1611의 Y), 선택된 공간의 인접 블록의 후보수를 나타내는 변수 NumListCand를 k로 설정하고(S1616), 처리를 종료한다.
availableFlagF를 "0"으로 설정한 경우(S1613), 인접 블록 N이 인접 블록의 최후인지 여부의 판정을 실시한다(S1614). 또한, k가 공간의 후보 최대 후보수인 2보다 작은 경우(S1611의 N), F를 S1로 갱신하고(S1612), 인접 블록 N이 인접 블록의 최후인지 여부의 판정을 실시한다(S1614). 변수 N의 갱신은 상술한 A1, B1, B0, A0, C0의 처리순에 상응하여 설정되고, 여기서는 N이 C0인지 여부의 판정을 한다.
인접 블록 N이 최후의 블록이면(S1614의 Y), 선택된 공간의 인접 블록의 후보수를 나타내는 변수 NumListCand를 k로 설정하고(S1616), 처리를 종료한다. 인접 블록 N이 최후의 블록이 아니면(S1614의 N), 변수 N을 A1, B1, B0, A0, C0의 처리순에 상응하여 갱신하고(S1615), 스텝 S1602 이후의 처리를 반복한다. 이상과 같이 하여, 처리 대상의 예측 블록과 동일 픽처 상에 존재하는 블록 그룹의 인접 블록을 대표하는 2개의 참조 블록으로 하여, 각각의 인코딩 정보가 도출된다.
도 42를 다시 참조하여, 스텝 S105에 이어서, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 인코딩 정보를 후보로 하는 경우의, 처리 대상의 예측 블록의 참조 픽처 번호를 결정한다(S104). 이 스텝 S104의 처리는 실시예 1, 2의 스텝 S104와 동일하다. 다음으로, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 인코딩 정보가 유효한지 여부를 판정하여, 도출한다(S102). 이 실시예 4의 스텝 S102의 처리도 실시예 1, 2의 스텝 S102와 동일하다.
이와 같이 하여 얻어진 인접 블록의 인코딩 정보는 참조 후보 리스트 작성부(311)에 입력된다. 실시예 4와 실시예 2와 동일하게, 참조 후보 리스트 저장 메모리(314)에, 참조 인접 블록의 인코딩 정보의 후보를 등록하는 기억 영역으로서 참조 후보 리스트를 마련한다. 참조 인접 블록의 인코딩 정보의 후보에 우선 순위를 붙이고, 우선 순위가 높은 것으로부터 참조 후보 리스트에, 참조 인접 블록의 인코딩 정보의 후보를 등록한다. 이에 의해, 참조 후보 리스트의 인덱스 merge_idx의 코딩량을 삭감한다.
참조 후보 리스트 작성부(311)는 도 19의 플로차트에 나타내는 실시예 1, 2와 동일한 동작을 한다. 단, 실시예 4의 변수 F의 값을 도 19의 변수 N의 값으로 설정하여 동작시킨다. 공간의 제1후보의 인접 블록 S0, 공간의 제2후보의 인접 블록 S1, 및 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록 T의 유효 플래그 availableFlagN(여기서 N은 S0, S1, T)의 판정이 진행되어, 인접 블록의 인코딩 정보를 참조 후보 리스트 candList에 등록한다. 여기서, 변수 N을 갱신하는 인접 블록의 순번이 참조 후보 리스트에 저장하는 우선 순위가 되고 있고, 실시예 4에서는, 동일 시간의 제1후보, 동일 시간의 제2후보, 상이한 시간의 동일 순번(S0, S1, T)의 순서로 설정하기로 한다.
실시예 1, 2와 동일하게, 작성된 참조 후보 리스트는, 동일 정보 검출부(312)에서 동일한 인코딩 정보가 되는 참조 후보 리스트에 저장된 인코딩 정보를 삭제하고, 출력부(313)에서 작성된 참조 후보 리스트 중의 인덱스와 인코딩 정보를 출력한다. 참조 후보 리스트는, 참조 후보 리스트를 머지 리스트로 하여, 리스트 중의 인덱스를 머지 인덱스로서 출력한다. 동영상 인코딩 장치(100)에서는, 움직임 보상 예측부(105)와 예측 방법 결정부(107)에 출력된다.
상술한 동영상 인코딩 장치(100) 중에 설치되는 실시예 4의 머지 검출부(106)에 대응하는, 동영상 디코딩 장치(200) 중에 설치되는 실시예 4의 머지 판정부(206)에 대해 설명한다. 머지 판정부(206)는 실시예 2의 도 22와 동일한 구성을 이루고, 인코딩 정보 도출부(310)의 처리가 실시예 2와 상이하다. 그 이외의 참조 후보 리스트 작성부(311), 동일 정보 검출부(312), 참조 후보 리스트 저장 메모리(314) 및 선택부(315)는 실시예 2와 동일한 기능을 갖는다.
또한, 머지 판정부(206)의 인코딩 정보 도출부(310)는 상술한 실시예 4에 있어서의 머지 검출부(106)의 인코딩 정보 도출부(310)과 동일한 기능을 갖고 있고, 머지 판정부(206)의 참조 후보 리스트 작성부(311)는 상술한 실시예 4에 있어서의 머지 검출부(106)의 참조 후보 리스트 작성부(311)와 동일한 기능을 갖고 있고, 머지 판정부(206)의 동일 정보 검출부(312)는 상술한 실시예 4에 있어서의 머지 검출부(106)의 동일 정보 검출부(312)와 동일한 기능을 갖고 있기 때문에, 머지 판정부(206)의 동일 정보 검출부(312)까지의 처리로, 실시예 4의 머지 검출부(106)와 동일한 참조 후보 리스트가 작성된다.
실시예 2와 동일하게 선택부(315)에서는, 작성된 참조 후보 리스트 중에서, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된, 참조 인접 블록을 특정하는 인덱스로 지정되는 참조 후보 리스트의 인접 블록을 선택한다. 선택된 인코딩 정보를 움직임 보상 예측부(207)에 공급하는 한편, 인코딩 정보 저장 메모리(210)에 공급한다.
다음으로, 동영상 인코딩 장치(100)의 구성을 나타내는 도 2 중에 설치되는 실시예 4의 움직임 벡터 예측부(103)에 대해 설명한다. 움직임 벡터 예측부(103)는 실시예 2의 도 23과 동일한 구성을 이루지만, 인코딩 정보 도출부(320)의 처리가 실시예 2와는 상이하기 때문에, 실시예 4에 있어서의 인코딩 정보 도출부(320)의 동작에 대해 설명한다. 도 44는 실시예 4에 있어서의 인코딩 정보 도출부(320)의 동작을 나타내는 플로차트이다.
먼저, 스위치(108)에 입력되는 동영상 인코딩 장치(100)에 의해 제어되는 예측 모드에 의해, 인터 예측 정보 검출부(104)의 출력처가 움직임 벡터 예측부(103)로 전환된다. 인터 예측 정보 검출부(104)의 내부의 일시 메모리(303)에 기억된, 처리 대상의 예측 블록이 참조 인접 블록의 인코딩 정보가 인코딩 정보 도출부(320)에 입력된다.
입력된 인접 블록 중에서 처리 대상의 예측 블록과 동일 픽처에 있는 인접 블록의 인코딩 정보가 유효한지 여부를 판정하고, 2개의 인접 블록을 도출한다(S803). 도 45에 처리 대상의 예측 블록과 동일 픽처에 있는 인접 블록마다의 판정 처리의 상세한 흐름을 나타낸다. 도 45에 나타내는 처리를 처리 대상의 블록 예측 모드에 상응하여, L0 예측인 경우에 대해 진행하고, L1 예측인 경우에 대해 진행하고, L0 예측과 L1 예측의 쌍예측인 경우 각각에 대해 한다.
우선, 공간 후보 인덱스 F를 S0으로 설정하고, 카운터 k를 0으로 설정한다(S1700). 공간 후보 인덱스 F의 S0은 최초로 선출되는 제1후보의 인접 블록을 나타내고, S1은 2번째로 선출되는 제2후보의 인접 블록을 나타낸다.
다음으로, 블록 그룹 중의 변수 N을 A1로 초기화한다(S1701). 처리 중의 인접 블록을 나타내는 변수 N은 B0, A0, A1, B1, C0의 처리순에 따라 설정되고, N의 갱신시에는 이 순서로 갱신되는 것으로 한다.
다음으로, 이후의 판정에서 사용하는 인접 블록의 인코딩 정보를 저장해 두는 변수를 초기화한다(S1702). 여기서, 변수는 인접 블록이 유효한지 여부를 나타내는 플래그 availableFlagF, 움직임 벡터 mvLXF, 참조 픽처 번호 refIdxLXF 및 예측 방향의 유효성을 나타내는 플래그 predFlagLXF이고, 다음과 같이 초기화된다.
availableFlagLXF=0
mvLXF=(0, 0)
refIdxLXF=0
predFlagLXF=0
여기서, 첨자 X에는 예측 방향을 나타내는 0 혹은 1이 설정된다. 처리 중의 인접 블록을 나타내는 변수 N의 인접 블록(이하, 인접 블록 N이라 한다)의 위치 및 인코딩 정보를 취득한다(S1703).
취득된 인접 블록 N의 위치에 기초하여, 인접 블록 N이 유효한지 여부를 판정한다(S1704). 예를 들면, 처리 대상의 예측 블록이 픽처 좌단에 위치하는 경우, 처리 대상의 예측 블록의 좌측의 인접 블록은 존재하지 않기 때문에, 인코딩 정보 저장 메모리(114) 중에 해당하는 인코딩 정보는 없는 것이 되고, 무효로 판정된다.
인접 블록 N이 무효인 경우(S1704의 N), availableFlagLXF를 "0"으로 설정한다(S1715). 인접 블록 N이 유효인 경우(S1704의 Y), 인접 블록 N의 예측 모드가 화면내 인코딩(Intra) 모드인지 여부를 판정하고(S1705), 인접 블록 N의 예측 모드가 Intra 모드인 경우(S1705의 Y), availableFlagLXF를 "0"으로 설정한다(S1715).
인접 블록 N의 예측 모드가 Intra 모드가 아닌 경우(S1705의 N), 즉 Inter 모드인 경우에는, 처리 대상의 예측 블록의 산출 대상의 예측과 인접 블록 N의 인코딩 정보를 비교하는 것에 의해 조건 1~4의 판정 처리를 한다(S1709). 조건 1 또는 조건 2를 만족하는 경우, F가 S0인지 여부의 판정 처리로 이행한다(S1706). 한편, 조건 3 또는 조건 4를 만족하는 경우, 실시예 2의 도 39의 S912와 동일하게 인접 블록 N의 움직임 벡터의 스케일링 처리가 실시되고(S1710), F가 S0인지 여부의 판정 처리로 이행한다(S1706).
F가 S0인 경우(S1706의 Y), availableFlagLXF(availableFlagLXS0)을 1로 설정한다(S1708). F가 S0이 아닌 경우(S1706의 N), 이미 선택된 인접 블록의 움직임 벡터와, 인접 블록 N의 움직임 벡터 또는 인접 블록 N의 움직임 벡터가 스케일링된 움직임 벡터 mvLXN이 동일한지 여부를 판정한다(S1707).
이미 선택된 인접 블록의 움직임 벡터와 인접 블록 N의 움직임 벡터가 동일한 경우(S1707의 Y), availableFlagLXF를 "0"으로 설정한다(S1715). 구체적으로는, 공간의 인접 블록의 최대수를 2로 한 경우, 최초에 제1후보로서 선택된 움직임 벡터를 유지해 두고, 제2후보의 선출시의 비교 판정에 사용한다. 이 처리에 의해, 제2후보의 인접 블록의 인코딩 정보가 대표하는 제1후보의 인접 블록의 움직임 벡터와 중복되는 것이 없어지기 때문에, 참조처로서 선택지의 폭이 넓어진다. 한편, 처리량의 삭감을 위해, 스텝 S1706 및 스텝 S1707의 처리를 생략하여, 직접 스텝 S1708로 이행하고, availableFlagLXF(availableFlagLXS1)를 "1"로 설정할 수도 있다(S1708).
제1후보로서 선택된 인접 블록의 움직임 벡터 mvLXS0과 인접 블록 N의 움직임 벡터 mvLXN이 상이한 경우(S1707의 N), availableFlagLXF(availableFlagLXS1)를 "1"로 설정한다(S1708). 인접 블록 N이 동일 참조 리스트(조건 1에 합치한 경우)의 움직임 벡터 mvLX 혹은 상이한 참조 리스트(조건 2에 합치한 경우)의 움직임 벡터 mvLY, 또는 동일 참조 리스트(조건 3에 합치한 경우)의 스케일링에 의해 환산된 움직임 벡터 mvLX 혹은 상이한 참조 리스트(조건 4에 합치한 경우)의 스케일링에 의해 환산된 움직임 벡터 mvLY를 mvLXM에 대입하여 설정된다(S1711).
카운터 k에 1을 가산하는 것에 의해 갱신하고(S1712), 카운터 k가 공간의 후보 최대 후보수인 2보다 작은지를 판정한다(S1713). 카운터 k가 공간의 후보 최대 후보수인 2의 경우(S1713의 N), 선택된 공간의 인접 블록의 후보수를 나타내는 변수 NumListCand를 k로 설정하고(S1718), 처리를 종료한다.
availableFlagF를 "0"으로 설정한 경우(S1715), 인접 블록 N이 인접 블록의 최후인지 여부의 판정을 실시한다(S1716). 또한, k가 공간의 후보 최대 후보수인 2보다 작은 경우(S1713의 Y), F를 S1로 갱신하고(S1714), 인접 블록 N이 인접 블록의 최후인지 여부의 판정을 실시한다(S1716).
변수 N의 갱신은 상술한 B0, A0, A1, B1, C0의 처리순에 상응하여 설정되고, 여기서는 N이 C0인지 여부의 판정을 한다. 인접 블록 N이 최후의 블록이면(S1716의 Y), 선택된 공간의 인접 블록의 후보수를 나타내는 변수 NumListCand를 k로 설정하고(S1718), 처리를 종료한다. 인접 블록 N이 최후의 블록이 아니면(S1716의 N), 변수 N을 B0, A0, A1, B1, C0의 처리순에 상응하여 갱신하고(S1717), 스텝 S1702이후의 처리를 반복한다. 이상과 같이 하여, 처리 대상의 예측 블록과 동일 픽처 상에 존재하는 블록 그룹의 인접 블록을 대표하는 참조 블록으로 하여, 그 인코딩 정보가 도출된다.
도 44를 다시 참조하여, 다음으로, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 인코딩 정보가 유효한지 여부를 판정하여, 도출한다(S801). 이 실시예 4의 S801의 처리는 실시예 1의 S801과 동일하기 때문에 설명을 할애한다.
이와 같이 하여 얻어진 인접 블록의 인코딩 정보는, 참조 후보 리스트 작성부(321)에 입력된다. 참조 후보 리스트 작성부(321)에서 작성되는 참조 후보 리스트로서, 예측 모드(L0 예측, L1 예측, 쌍예측)에 상응하여, L0 예측 및 L1 예측의 2개의 예측 방향에 대해 어느 하나, 또는 양쪽의 각각의 참조 후보 리스트가 작성된다. 본 명세서에서는, 특히 주석을 하지 않는 한, 움직임 검출 모드시의 참조 후보 리스트는 설명의 형편상 1개만 들어 설명하기로 하고, 도면에서 나타내는 참조 후보 리스트도 1개만 들기로 한다.
실시예 4에서는, 참조 후보 리스트 저장 메모리(324)에, 참조 인접 블록의 인코딩 정보의 후보를 등록하는 기억 영역으로서 참조 후보 리스트를 마련한다. 참조 인접 블록의 인코딩 정보의 후보에 우선 순위를 붙이고, 우선 순위가 높은 것으로부터 참조 후보 리스트 저장 메모리(324)에, 참조 인접 블록의 인코딩 정보의 후보를 등록한다. 이에 의해, 참조 후보 리스트의 인덱스 mvp_idx_l0 및 mvp_idx_l1의 코딩량을 삭감할 수 있게 된다.
우선 순위가 높은 요소를 참조 후보 리스트의 전방에 배치하는 것에 의해, 코딩량을 삭감한다. 우선 순위를 나타내는 인덱스는 0에서부터 상승순으로 할당한다. 참조 후보 리스트 저장 메모리(324)에 마련되는 참조 후보 리스트는, 리스트 구조를 이루고, 참조 후보 리스트 내부의 소재를 나타내는 인덱스와, 인덱스에 대응하는 참조 인접 블록의 인코딩 정보의 후보를 요소로서 저장하는 배열 영역이 마련된다. 이 배열 영역은 candListLX로 표시된다. 인덱스의 숫자는 0으로부터 개시되고, 참조 후보 리스트 candListLX의 기억 영역에, 참조 인접 블록의 인코딩 정보의 후보가 저장된다.
이후의 처리에서는, 참조 후보 리스트 candListLX에 등록된 인덱스 i의 인코딩 정보는, candListLX[i]로 나타내기로 하고, 참조 후보 리스트 candListLX와는 배열 표기를 하는 것에 의해 구별하기로 한다. 한편, 참조 후보 리스트의 기억 영역에 저장되는 인코딩 정보는, 특히 한정하지 않는 한, 참조 인접 블록의 위치명(A0, A1, B0, B1, C0, T)으로 나타내기로 한다.
참조 후보 리스트 작성부(321)는 도 19의 플로차트에 나타내는 실시예 1, 2와 동일한 동작을 한다. 단, 실시예 4의 변수 F의 값을 도 19의 변수 N의 값으로 설정하여 동작시킨다. 공간의 제1후보의 인접 블록 S0, 공간의 제2후보의 인접 블록 S1, 및 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 유효 플래그 availableFlagLXN(여기서 N은 S0, S1, T)의 판정이 진행되어, 인접 블록의 인코딩 정보를 참조 후보 리스트 candListLX에 등록한다. 여기서, 변수 N을 갱신하는 인접 블록의 순번이 참조 후보 리스트에 저장하는 우선 순위가 되고 있고, 실시예 4에서는, 동일 시간의 제1후보, 동일 시간의 제2후보, 상이한 시간의 동일 순번(S0, S1, T)을 설정하기로 한다.
실시예 1, 2와 동일하게, 작성된 참조 후보 리스트는, 동일 정보 검출부(322)에 의해 동일한 인코딩 정보가 되는 참조 후보 리스트에 저장된 인코딩 정보를 삭제하고, 차분 움직임 벡터 도출부(326)에서 작성된 참조 후보 리스트 중의 인코딩 정보의 움직임 벡터를 예측 움직임 벡터로 한다. 움직임 벡터 추정부(102)가 검출한 움직임 벡터와 예측 움직임 벡터로부터 차분 움직임 벡터를 산출하고, 산출된 차분 움직임 벡터를 출력부(323)에 공급한다.
끝으로, 출력부(323)가, 작성된 참조 후보 리스트 중의 인덱스와 차분 움직임 벡터를 출력한다. 참조 후보 리스트는, 참조 후보 리스트를 MVP 리스트로 하여, 리스트 중의 인덱스를 MVP 인덱스로서 출력한다. 동영상 인코딩 장치(100)에서는, 예측 방법 결정부(107)에 출력된다.
상술한 동영상 인코딩 장치(100) 중에 설치되는 실시예 4의 움직임 벡터 예측부(103)에 대응하는, 동영상 디코딩 장치(200) 중에 설치되는 실시예 4의 움직임 벡터 도출부(204)에 대해 설명한다. 움직임 벡터 도출부(204)는 실시예 2의 도 30과 동일한 구성을 이루고, 인코딩 정보 도출부(320)의 처리가 실시예 2와 상이하다. 그 이외의 참조 후보 리스트 작성부(321), 동일 정보 검출부(322), 참조 후보 리스트 저장 메모리(324), 선택부(325) 및 움직임 벡터 가산부(327)는 실시예 2와 동일한 기능을 갖는다.
또한, 인코딩 정보 도출부(320)는 상술한 실시예 2에 있어서의 움직임 벡터 예측부(103)의 인코딩 정보 도출부(320)와 동일한 기능을 갖고 있고, 머지 판정부(206)의 참조 후보 리스트 작성부(311)는 상술한 실시예 4에 있어서의 머지 검출부(106)의 참조 후보 리스트 작성부(311)와 동일한 기능을 갖고 있고, 머지 판정부(206)의 동일 정보 검출부(312)는 상술한 실시예 4에 있어서의 머지 검출부(106)의 동일 정보 검출부(312)와 동일한 기능을 갖고 있기 때문에, 움직임 벡터 도출부(204)의 동일 정보 검출부(322)까지의 처리로, 실시예 4의 움직임 벡터 예측부(103)와 동일한 참조 후보 리스트가 작성된다.
실시예 2와 동일하게 선택부(325)는, 작성된 참조 후보 리스트 중에서, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된, 참조 인접 블록을 특정하는 인덱스로 지정되는 참조 후보 리스트의 인접 블록을 선택한다. 선택된 참조 후보 리스트의 인접 블록의 인코딩 정보로부터 움직임 벡터를 예측 움직임 벡터로서 출력하고, 움직임 벡터 가산부(327)에서 예측 움직임 벡터와 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 차분 움직임 벡터를 가산하여 움직임 벡터를 산출하고, 움직임 보상 예측부(207)에 공급하는 한편, 선택된 리스트의 인접 블록의 인코딩 정보를 인코딩 정보 저장 메모리(210)에 공급한다.
한편, 실시예 4에서는, 2개의 인접 블록을, 참조 인접 블록의 대표로서 선출했지만, 머지 모드, 움직임 검출 모드 각각 각자 1개 또는 3개 이상의 인접 블록을 대표로서 선출하기로 해도 좋다. 단, 블록 그룹 중의 블록수를 넘지 않는 범위로 설정한다. 한편, 본 발명의 설명에 사용하고 있는 도 9의 배치에서는, 대표의 수는 6개가 최대수가 된다. 머지 모드인 경우, 대표의 수를 6개로 설정하면, 실시예 1과 등가가 된다. 움직임 검출 모드에서는 2개의 공간의 인접 블록을 대표로 하고, 머지 모드에서는 3개 이상의 공간의 인접 블록을 대표로 하는 등, 움직임 검출 모드보다 머지 모드에서 많은 공간의 인접 블록을 대표로 하는 것에 의해, 이하와 같은 효과를 얻을 수 있다.
즉, 머지 모드에서는, 참조 인접 블록의 후보의 인코딩 정보를 그대로 사용하여, 화상간 예측을 하기 때문에, 선택의 여지를 남기기 위해, 움직임 검출 모드보다 많은 후보를 리스트에 등록한다. 이는, 머지 모드는 움직임 검출 모드에 비해, 많은 정보(움직임 벡터, 참조 인덱스, 예측 방향)를 적은 코딩량으로 전송할 수 있기 때문이고, 머지 인덱스의 코딩량을 삭감하는 것 보다, 인접 블록의 후보를 남겨 선택의 폭을 넓히는 것이 인코딩 효율이 향상하기 때문이다.
한편, 움직임 검출 모드에서는, 참조 인접 블록의 후보의 인코딩 정보를 그대로 사용하는 것이 아니고, 차분 움직임 벡터를 비롯한 인코딩 정보를 인코딩하기 때문에, 머지 모드보다 후보를 좁혀서 리스트에 등록한다. 이는, 후보를 좁히는 것에 의해, MVP 인덱스의 코딩량을 삭감하는 것이 인코딩 효율이 향상하기 때문이다.
머지 모드에서, 3개 이상의 공간의 인접 블록을 대표로서 선출하는 것으로 한 경우, 도 43의 스텝 S1607에서는, 모든 이미 선택된 각각의 인접 블록의 인코딩 정보와, 인접 블록 N의 인코딩 정보가 동일한지 여부를 판정한다. 움직임 검출 모드에서, 3개 이상의 공간의 인접 블록을 대표로서 선출하는 것으로 한 경우, 도 45의 스텝 S1707에서는, 모든 이미 선택된 각각의 인접 블록의 움직임 벡터와 인접 블록 N의 움직임 벡터 또는 인접 블록 N의 움직임 벡터가 스케일링된 움직임 벡터 mvLXN이 동일한지 여부를 판정한다.
머지 모드인 경우에는 실시예 4의 수법을 사용하여, 움직임 검출 모드인 경우에는 다른 실시예의 수법을 사용하는 것도 가능하다. 동일하게, 움직임 검출 모드인 경우에는 실시예 4의 수법을 사용하여, 머지 모드인 경우에는 다른 실시예의 수법을 사용하는 것도 가능하다. 특히, 머지 모드인 경우에는 실시예 1의 수법을 사용하여, 움직임 검출 모드인 경우에는 실시예 4의 수법을 사용한 경우, 실시예 3과 동일한 효과를 얻을 수 있다.
즉, 머지 모드에서는, 참조 인접 블록의 후보의 인코딩 정보를 그대로 사용하여, 화상간 예측을 하기 때문에, 선택의 여지를 남기기 위해, 움직임 검출 모드보다 많은 후보를 리스트에 등록한다. 이는, 머지 모드는 움직임 검출 모드에 비해, 많은 정보(움직임 벡터, 참조 인덱스, 예측 방향)를 적은 코딩량으로 전송할 수 있기 때문이고, 머지 인덱스의 코딩량을 삭감하는 것 보다, 인접 블록의 후보를 가능한 남기고, 움직임 정보의 후보를 늘리는 것이 인코딩 효율 향상에 기여하기 위해서이다.
한편, 움직임 검출 모드에서는, 참조 인접 블록의 후보의 인코딩 정보를 그대로 사용하는 것이 아니고, 차분 움직임 벡터를 비롯한 인코딩 정보를 인코딩하기 때문에, 스캔을 하여 후보를 좁혀 리스트에 등록한다. 이는, 움직임 검출 모드에서의 후보는 예측 벡터에만 사용되기 때문에, 인접 블록의 후보를 많이 남겨도, 후보 사이에서 가까운 움직임 벡터를 등록해도 차분 움직임 벡터의 코딩량을 줄일 수 없고, MVP 인덱스의 코딩량이 증가할 뿐이다. 그 때문에, 리스트에 등록하는 후보를 좁히는 것에 의해, MVP 인덱스의 코딩량을 삭감하는 것이 인코딩 효율 향상에 기여하기 위해서이다.
머지 모드, 움직임 검출 모드 모두, 인접 블록이 참조처 후보로서 이용 가능한 것인지 여부의 정보만을 사용하여 리스트에 등록하는 후보를 결정할 수 있기 때문에, 복잡한 판정을 할 필요가 없고, 머지 모드, 움직임 검출 모드 각각에 대해, 적절한 후보를 리스트에 등록하는 것이 가능하다.
또한, 실시예 4는, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록만을 별도 취급으로 하여 참조 후보 리스트의 최후에 등록한다. 동일 픽처 상에 있는 인접 블록끼리는 동일 인코딩 정보를 가질 가능성이 높고, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록은 그들과 상이한 인코딩 정보를 가질 가능성이 높기 때문에, 별도 후보로서 등록하는 효과가 높다고 할 수 있다. 예를 들면, 동일 픽처 상에 있는 인접 블록이 모두, 인트라의 경우에도, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록은 인터 예측의 인코딩 정보를 가질 가능성이 높다. 단, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록은, 처리 대상의 예측 블록과 동일 픽처 상에 있는 인접 블록에 비해, 처리 대상의 예측 블록과 인코딩 정보가 동일 혹은 가까울 가능성이 낮기 때문에, 우선 순위를 낮추고 있다.
(실시예 5)
동영상 인코딩 장치(100)의 구성을 나타내는 도 2 중에 설치되는 실시예 5의 머지 검출부(106)에 대해 설명한다. 머지 검출부(106)는 실시예 1에서 설명한 도 11과 동일한 구성을 이루지만, 참조 후보 리스트 작성부(311)의 처리가 실시예 1과는 상이하기 때문에, 실시예 5에 있어서의 머지 검출부(106)의 참조 후보 리스트 작성부(311)의 동작에 대해 설명한다. 참조 후보 리스트 작성부(311)는, 참조 후보 리스트 저장 메모리(314)에, 참조 인접 블록의 인코딩 정보의 후보를 등록하는 기억 영역으로서 참조 후보 리스트를 마련하고, 참조 인접 블록의 인코딩 정보의 후보에 우선 순위를 붙이고, 우선 순위가 높은 것으로부터 참조 후보 리스트에, 참조 인접 블록의 인코딩 정보의 후보를 등록한다. 이에 의해, 참조 후보 리스트의 인덱스 merge_idx의 코딩량을 삭감한다.
우선 순위가 높은 요소를 참조 후보 리스트의 전방에 배치하는 것에 의해, 코딩량을 삭감한다. 우선 순위를 나타내는 인덱스는 0에서부터 상승순으로 할당한다. 여기서, 머지 모드인 경우, 순번(A1, B1, B0, A0, C0, T)을 설정하기로 한다. 머지 모드인 경우에는, 처리 대상의 예측 블록의 변과, 인코딩 정보가 가장 동일할 가능성이 높은 것으로 생각되는 처리 대상의 예측 블록과 변이 접하고 있는 인접 블록 A1 및 B1을 우선하여 리스트의 전방에 등록하는 것에 의해, 머지 인덱스의 코딩량을 삭감하고, 인코딩 효율을 향상시킨다.
참조 후보 리스트 저장 메모리(314)에 마련되는 참조 후보 리스트는, 리스트 구조를 이루고, 참조 후보 리스트 내부의 소재를 나타내는 인덱스와, 인덱스에 대응하는 참조 인접 블록의 인코딩 정보의 후보를 요소로서 저장하는 배열 영역이 마련된다. 이 배열 영역은 candList로 표시된다. 인덱스의 숫자는 0으로부터 개시되고, 참조 후보 리스트 candList의 기억 영역에, 참조 인접 블록의 인코딩 정보의 후보가 저장된다. 이후의 처리에서는, 참조 후보 리스트 candList에 등록된 인덱스 i의 인코딩 정보는, candList[i]로 나타내기로 하고, 참조 후보 리스트 candList와는 배열 표기를 하는 것에 의해 구별하기로 한다. 한편, 참조 후보 리스트의 기억 영역에 저장되는 인코딩 정보는, 특히 한정하지 않는 한, 참조 인접 블록의 위치명(A0, A1, B0, B1, C0, T)으로 나타내기로 한다.
도 46은 실시예 5에 있어서의 참조 후보 리스트 작성부(311)의 동작을 나타내는 플로차트이다. 실시예 5에서는, 참조 후보 리스트 작성 전에, 도 31(a)에 도시되는 인접 블록 중에서 좌측 및 상측의 블록 그룹으로 분류하고, 각각의 블록 그룹의 참조 인접 블록의 개수 NA 및 NB를 설정한다. 여기서, 좌측의 블록 그룹의 인접 블록은 A0, A1, 상측의 블록 그룹의 인접 블록은 B0, B1, C0이고, NA 및 NB를 모두 1로 설정한다. 즉, 각각의 블록 그룹으로부터 1개의 인접 블록을 선택하는 것을 의미한다. 한편, NA 및 NB는 각각의 블록 그룹 중의 인접 블록 총수를 넘지 않는 것으로 한다.
우선, 변수 N과 참조 후보 리스트의 인덱스 k를 초기화한다(S1200). 변수 N에는 예측 모드에 대응한 가장 우선 순위가 높은 인접 블록이 초기 설정된다. 머지 모드에서는 A1, 움직임 검출 모드에서는 A0이다. k는 0으로 설정된다. 인덱스 k는 참조 후보 리스트의 기억 영역에 설정되는 인코딩 정보의 후보 저장 영역의 우선 순위를 나타낸다.
다음으로, 좌측 및 상측의 블록 그룹의 카운터 na 및 nb를 0으로 초기화한다(S1201). 먼저, 인접 블록 N이 좌측 혹은 상측의 블록 그룹에 속하는 인접 블록인지 여부의 판정이 진행된다(S1202). 속하지 않는 경우(S1202의 N), 스텝 S1206으로 이행하고, 속하는 경우(S1202의 Y), 좌측 혹은 상측 중의 어느 블록 그룹에 속하는지를 판정한다(S1203).
좌측의 경우, 카운터 na와 NA의 비교로 이행하고(S1204), na가 NA보다 작은 경우(S1204의 Y), 스텝 S1206으로, 그렇지 않은 경우(S1204의 N), 스텝 S1210으로 이행한다. 상측의 경우, 카운터 nb와 NB의 비교로 이행하고(S1205), nb가 NB보다 작은 경우(S1205의 Y), 스텝 S1206으로, 그렇지 않은 경우(S1205의 N), 스텝 S1210으로 이행한다.
na 및 nb가 NA 및 NB 이상인 경우에는, 각 블록 그룹에서 참조 후보 리스트로 선출되는 인접 블록수를 넘은 것을 나타내고, 이 경우, 참조 후보 리스트에 등록할지 여부의 판정은 하지 않고, 등록되지 않는다.
인접 블록 N의 유효 플래그 availableFlagN의 판정이 진행된다(S1206). availableFlagN이 1인 경우(S1206의 Y), 인접 블록 N의 인코딩 정보를 참조 후보 리스트 candListLX[k]에 등록하고(S1207), k를 갱신한다(S1208). 또한, 인접 블록 N이 좌측 혹은 상측의 블록 그룹에 속하는 경우에는 카운터 na 혹은 nb를 갱신한다(S1209). availableFlagN이 0인 경우(S1206의 N), 참조 후보 리스트에는 등록하지 않고, 스텝 S1210으로 이행한다.
인접 블록 N이 최후의 참조 블록인지 여부를 판정한다(S1210). 최후의 블록인 경우(S1210의 Y), 인덱스의 값을 후보 리스트 총수 NumListCand로 설정한 후(S1211), 처리를 종료한다. 최후의 블록이 아닌 경우(S1210의 Y), 변수 N을 갱신하여(S1212), 스텝 S1202 이후의 처리를 반복한다.
이상의 처리에 의해, 참조 후보 리스트에 등록된다. 여기서는, 참조 후보 리스트에 등록되는 최대수는 NA+NB+1로 표시된다. 최초에 설정한 NA와 NB에 상이한 시간의 후보가 1개 가산되게 되고, 여기서는 NA, NB 모두 1로 했기 때문에, 최대 3이 된다. 참조 인접 블록이 1개만 유효한 경우, 최대 코드워드장은 0이 되기 때문에, 코드워드는 불필요하고, 1개만 유효로 판정된 인접 블록의 인코딩 정보의 후보가 참조처로서 일의로 결정된다.
상기한 처리에 있어서, 예를 들면 인접 블록 A1의 유효 플래그 availableFlagA1이 0인 경우, 우선 순위는 A1, B1, B0, A0, C0, T이기 때문에, 참조 후보 리스트에는 우선순으로 B1, A0, T가 등록된다. 실시예 2에서 동일 조건으로 처리를 하면 A0, B1, T가 된다. 실시예 5가 원래의 우선 순위를 유지하면서, 처리 대상의 예측 블록과 인코딩 정보가 가장 동일할 가능성이 높은 것으로 생각되는 인접 블록을 우선하여 참조 후보 리스트의 전방에 등록하는 것에 의해, 인덱스의 코딩량을 삭감하고, 인코딩 효율을 향상시킨다.
또한, 이 경우, 좌측 및 상측에 인접하는 블록 그룹을 대표하는 인접 블록 및 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 3개의 인접 블록이 참조 후보 리스트에 등록되게 되고, 참조 인접 블록의 총수를 실시예 1에 비해 삭감할 수 있기 때문에, 할당하는 코드워드장이 짧아져, 인코딩 효율을 개선할 수 있다.
상술한 동영상 인코딩 장치(100) 중에 설치되는 실시예 5의 머지 검출부(106)에 대응하는, 동영상 디코딩 장치(200) 중에 설치되는 실시예 5의 머지 판정부(206)에 대해 설명한다. 머지 판정부(206)는 실시예 1에서 설명한 도 22와 동일한 구성을 이루고, 참조 후보 리스트 작성부(311)의 처리가 실시예 1과 상이하다. 그 이외의 인코딩 정보 도출부(310), 동일 정보 검출부(312), 참조 후보 리스트 저장 메모리(314) 및 선택부(315)는 실시예 1과 동일한 기능을 갖는다.
또한, 참조 후보 리스트 작성부(311)는 상술한 실시예 5에 있어서의 머지 검출부(106)의 참조 후보 리스트 작성부(311)와 동일한 기능을 갖고 있기 때문에, 머지 판정부(206)의 동일 정보 검출부(312)까지의 처리로, 실시예 5의 머지 검출부(106)와 동일한 참조 후보 리스트가 작성되게 된다.
작성된 참조 후보 리스트로부터, 머지 모드에서의 참조 인접 블록의 인코딩 정보를 취득하는 선택부(315)에 대해 설명한다. 선택부(315)는, 작성된 참조 후보 리스트 중에서, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된, 참조 인접 블록을 특정하는 인덱스로 지정되는 참조 후보 리스트의 인접 블록을 선택한다. 선택된 인코딩 정보를 움직임 보상 예측부(207)에 공급하는 한편, 인코딩 정보 저장 메모리(210)에 공급한다.
다음으로, 본 발명의 동영상 인코딩 장치(100)의 구성을 나타내는 도 2 중에 설치되는 실시예 5의 움직임 벡터 예측부(103)에 대해 설명한다. 움직임 벡터 예측부(103)는 실시예 1에서 설명한 도 23과 동일한 구성을 이루지만, 참조 후보 리스트 작성부(321)의 처리가 실시예 1과는 상이하다. 참조 후보 리스트 작성부(321)는 머지 검출부(106)의 참조 후보 리스트 작성부(311)와 기본적으로 동일한 기능을 갖고 있기 때문에, 참조 인접 블록의 인코딩 정보의 후보가 유효인지 여부를 판정하고, 참조 후보 리스트에 등록하는 동작은 동일하기 때문에, 설명을 할애한다.
참조 후보 리스트 작성부(321)가 머지 검출부(106)의 참조 후보 리스트 작성부(311)와 상이한 것은, 참조 후보 리스트 저장 메모리(324)에 마련된 참조 후보 리스트에, 참조 인접 블록의 인코딩 정보의 후보를 등록하는 경우의 우선 순위이다. 움직임 검출 모드인 경우, 참조 후보 리스트 작성부(321)에서는, A0, B0, A1, B1, C0, T의 순번으로 설정된다.
움직임 검출 모드는, 차분 움직임 벡터를 전송하기 위한 모드이고, 예측 움직임 벡터의 선택 폭을 넓히기 위해, 좌측과 상측의 인접 블록의 후보 움직임 벡터의 차이가 커지도록, 좌측과 상측의 후보 사이의 거리를 띄워서 등록하는 것에 의해, 차분 움직임 벡터의 코딩량을 삭감하고, 인코딩 효율을 향상시킨다. 이 움직임 검출 모드에서의 우선 순위의 결정 방법은, 가능한 동일한 인코딩 정보인 확률이 높은 인접 블록을 우선 후보로서 등록하는 머지 모드와는 목적이 다르다. 이상과 같이, 우선 순위를 붙이고, 우선 순위가 높은 것으로부터 참조 후보 리스트에, 참조 인접 블록의 인코딩 정보의 후보를 등록하는 것에 의해, 참조 후보 리스트의 인덱스 mvp_idx_l0 및 mvp_idx_l1의 코딩량을 삭감한다.
상술한 동영상 인코딩 장치(100) 중에 설치되는 실시예 5의 움직임 벡터 예측부(103)에 대응하는, 동영상 디코딩 장치(200) 중에 설치되는 실시예 5의 움직임 벡터 도출부(204)에 대해서도, 움직임 벡터 도출부(204)의 참조 후보 리스트 작성부(321)는, 대응하는 움직임 벡터 예측부(103)의 참조 후보 리스트 작성부(321)와 동일한 기능을 갖고 있기 때문에, 움직임 벡터 예측부(103)와 동일한 참조 후보 리스트가 작성되게 된다.
작성된 참조 후보 리스트로부터, 움직임 검출 모드에 있어서 참조 인접 블록의 인코딩 정보를 취득하는 선택부(325)에 대해 설명한다. 선택부(325)는, 작성된 참조 후보 리스트 중에서, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된, 참조 인접 블록을 특정하는 인덱스로 지정되는 리스트의 인접 블록을 선택한다. 선택된 리스트의 인접 블록의 인코딩 정보로부터 움직임 벡터를 예측 움직임 벡터로서 출력하고, 움직임 벡터 가산부(327)에서 예측 움직임 벡터와 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 차분 움직임 벡터를 가산하여 움직임 벡터를 산출하고, 움직임 보상 예측부(207)에 공급하는 한편, 선택된 리스트의 인접 블록의 인코딩 정보를 인코딩 정보 저장 메모리(210)에 공급한다.
한편, 실시예 5에서는, NA 및 NB를 모두 1로 설정했지만, 각각의 블록 그룹의 인접 블록 총수를 넘지 않는 수를 설정해도 좋고, 또한, 예측 모드로 각각 설정을 변경해도 좋다.
(실시예 6)
실시예 6에서는, 실시예 2와는 상이한 참조 인접 블록의 블록 그룹을 정의하고, 그 중에서 각각 1개를 대표하는 인접 블록으로서 선택하는 방법을 바꾸는 것이다. 도 31(a)의 인접 블록의 배치를 사용하여 설명한다. 도 31(a)에 배치되는 6개의 인접 블록 A0, A1, B0, B1, C0, T를, A1을 좌측에 인접하는 대표 블록, B1을 상측에 인접하는 대표 블록, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록 T, 처리 대상의 예측 블록의 코너에 위치하는 인접 블록 A0, B0과 C0을 코너에 인접하는 블록 그룹으로 한다. 그 블록 그룹 중에서 1개를 대표하는 인접 블록으로서 선택한다. 좌측, 상측, 상이한 시간 및 코너에 4개의 인접 블록으로부터 1개의 인접 블록의 인코딩 정보를 참조처로서 선택한다.
처리 대상의 예측 블록의 변과, 인코딩 정보가 가장 동일할 가능성이 높은 것으로 생각되는 처리 대상의 예측 블록의 변이 접하고 있는 인접 블록 A1 및 B1을 우선하여 참조 후보 리스트의 전방에 등록하고, 상대적인 가능성이 낮은 코너에 3개의 인접 블록을 그룹화하여, 인덱스의 코딩량을 삭감하고, 인코딩 효율을 향상시키기 때문에, 특히 머지 모드인 경우에 유효한 수법이다.
동영상 인코딩 장치(100) 중에 설치되는 실시예 6의 머지 검출부(106)와, 대응하는 동영상 디코딩 장치(200) 중에 설치되는 실시예 6의 머지 판정부(206)의 참조 후보 리스트 작성부(311), 및 동영상 인코딩 장치(100) 중에 설치되는 실시예 6의 움직임 벡터 예측부(103)와, 대응하는 동영상 디코딩 장치(200) 중에 설치되는 실시예 6의 움직임 벡터 도출부(204)의 참조 후보 리스트 작성부(321) 중에서, 처리 대상의 예측 블록의 코너에 위치하는 인접 블록 A0, B0과 C0을 코너에 인접하는 블록 그룹으로 정의한다. A1, B1, (B0, A0, C0), T의 순서로 우선 순위를 설정하고, 우선 순위가 높은 것으로부터 참조 후보 리스트에 참조 인접 블록의 인코딩 정보의 후보를 등록하는 것에 의해, 참조 후보 리스트의 인덱스 코딩량을 삭감한다. 여기서, 참조 후보 리스트 내부의 괄호는, 좌측 혹은 상측의 인접 블록 그룹 중에서, 괄호 내의 좌측에서 우측의 순서로 처리되어, 선택되는 1개의 인접 블록을 나타낸다.
참조 후보 리스트 작성부(311) 및 작성부(321)에서는, 코너에 인접하는 블록 그룹으로부터 대표하는 인접 블록의 선택으로서, 예를 들면, 실시예 2에서 설명한 바와 같이, 블록 그룹 중의 인접 블록을 미리 결정된 처리순으로 스캔한다. 인접 블록이 유효하고, 또한 Intra 모드가 아닌 조건을 만족하는지를 판정하고, 이 조건을 만족하는 최초의 인접 블록을 선택해도 좋다. 여기서는, 처리순을 B0, A0, C0로 하지만, 반드시 이 순번일 필요는 없다. 또한, 코너에 인접하는 블록 그룹 중의 인접 블록 B0, A0, C0의 인코딩 정보의 비교를 하고, 동일한 인코딩 정보를 갖는 인접 블록을 선택해도 좋다. 즉, 블록 그룹 중에서 다수결을 하여, 동일한 인코딩 정보를 갖는 인접 블록 중, 처리순 B0, A0, C0에서 우선되는 것을 인접 블록으로서 선택한다. 실시예 6에서 작성되는 참조 후보 리스트는, 참조 인접 블록이 모두 유효한 경우, 도 47과 같이 표시된다.
(실시예 7)
실시예 7은, 참조 후보 리스트에 등록된, 참조 인접 블록의 수를 제한하는 것이다. 실시예 1, 3(실시예는 머지 모드인 경우)의 참조 후보 리스트에 등록되는, 참조 인접 블록수는, 도 9(a) 혹은 도 31(a)의 인접 블록의 배치의 경우, 최대 6개 존재한다. 이 중에서 인접 블록을 선택하면, 인덱스로 최대로 5비트의 코딩량을 필요로 하기 때문에, 인코딩 효율이 향상한다고는 할 수 없다. 여기서, 실시예 2, 4 등과 동일하게 작성된 참조 후보 리스트 중의 상위의 인접 블록의 인코딩 정보만 사용하도록 한정한다.
먼저, 동영상 인코딩 장치(100)의 구성을 나타내는 도 2 중에 설치되는 실시예 7의 머지 검출부(106)에 대해 설명한다. 도 48은 도 11에 도시되는 실시예 1의 동영상 인코딩 장치(100)의 머지 검출부(106)에 참조 후보 제한부(318)를 추가한 머지 검출부(106)의 구성을 나타낸다. 도 48에 도시되는 각 부는 도 11에 도시되는 각 부와 동일한 기능을 갖고 있기 때문에, 여기서는 참조 후보 제한부(318)의 기능에 대해서만 설명한다.
참조 후보 제한부(318)는, 동일 정보 검출부(312)에 의해 참조 후보 리스트 중에서 동일한 인코딩 정보를 구비하는 참조 인접 블록을 삭제한 참조 후보 리스트가 입력된다. 참조 후보 제한부(318)는, 참조 후보 리스트 중에서, 설정된 제한수만큼의 인덱스 상위의 인접 블록을 남기고, 그 이외를 삭제하거나, 혹은 선택 외로서 판정한다. 예를 들면, 실시예 1에서 동일한 인코딩 정보가 존재하지 않는 경우의 참조 후보 리스트의 일례를 나타내는 도 20에 대해, 머지 모드인 경우에서 3개로 제한하면, 인덱스 0에서 2까지의 상위 3개의 인접 블록을 참조 후보로 하고, 나머지는 사용하지 않기 때문에 참조 후보의 대상에서 제외한다.
이상과 같이 하여, 참조 후보로서 인접 블록이 참조 후보 리스트에 제한되어 등록되게 되고, 참조 인접 블록의 총수를 실시예 1에 비해 삭감할 수 있기 때문에, 할당하는 코드워드장이 짧아져, 인코딩 효율을 개선할 수 있다. 또한, 참조 후보 리스트의 우선 순위가 높은 인접 블록으로 좁혀서 제한하기 때문에, 인코딩 효율의 저하를 억제할 수 있다. 참조 후보 리스트의 제한수는, 예를 들면 SPS(Sequence Parameter Set)나 Slice Header와 같은 헤더 정보에 제한수를 설정해도 좋다. 또한, 인코딩측과 디코딩측에서 암묵적인 조건으로 설정해도 좋고, 인코딩측과 디코딩측에서 모순이 생기지 않도록 설정된다면 방법을 제한하지 않는다. 또한, 예측 모드에 따라 각각 제한수를 설정해도 좋다. 또한, 처리 대상의 예측 블록이 참조하는 인코딩 완료 혹은 디코딩 완료된 인접 블록의 인코딩 정보에 기초하여, 참조 후보 리스트의 제한수를 적응적으로 변경해도 좋다.
이상과 같이, 동일 정보 검출부(312)의 직후에 참조 후보 제한부(318)를 마련하는 것에 의해, 참조 후보를 제한하는 수법을 설명했지만, 참조 후보 제한부(318)를 머지 검출부(106) 중에 마련하지 않고, 동일 정보 검출부(312) 중에 참조 후보 제한부(318)의 기능을 갖추도록 해도 동등한 효과를 얻을 수 있다. 이 경우, 동일 정보 검출부(312)에서는, 참조 후보 리스트 중에 저장된 인코딩 정보의 후보를 비교하여, 동일 인코딩 정보의 후보가 존재하는 경우, 가장 작은 참조 후보 리스트의 인덱스를 갖는 인코딩 정보의 후보를 제외하고 모두 삭제되는 한편, 가장 작은 참조 후보 리스트의 인덱스를 갖는 인코딩 정보의 후보를 참조 후보 리스트에 재등록하고, 그 등록수가 제한수에 달한 경우에 처리가 종료된다.
도 49는 실시예 7에 있어서의 동일 정보 검출부(312)의 동작을 나타내는 플로차트이고, 실시예 1의 도 21에 나타내는 동작을 하는 동일 정보 검출부(312)에 대해, 실시예 7의 참조 후보의 제한하는 기능을 추가한 것이다. 도 21의 플로차트에 대해, 새로 스텝 S710~스텝 S712의 처리 스텝이 추가되고, 이들의 추가된 처리에 대해 설명한다.
참조 후보 리스트의 인덱스를 나타내는 변수 N과 m의 설정 후에, 삭제 리스트에 기록되는 참조 후보 리스트의 후보수를 나타내는 카운터 s를 0으로 설정한다(S710). 다음으로, 스텝 S702에서, m이 이미 삭제 리스트에 기록되어 있는지 판정하고, m이 아직 삭제 리스트에 기록되어 있지 않은 경우(S702의 N), m을 삭제 리스트에 기록하는 한편, 카운터 s에 1가산하여 갱신한다(S711).
다음으로 s가 한계값 TH와 동일한지 여부를 판정한다(S712). 여기서, 한계값 TH는 후보 리스트 총수 NumListCand에서 제한수를 뺀 수를 나타낸다. 즉, 참조 후보 리스트에 제한수의 후보를 남기고, 삭제 리스트에 기록된 후보수의 최대수를 나타낸다. s가 TH와 동일해진 경우(S712의 Y), 참조 후보 리스트에 제한수만큼의 후보가 남게 되기 때문에, 동일 정보판정의 처리를 종료하여, 스텝 S708로 이행하고, 삭제 리스트에 기록된 인덱스에 해당하는 리스트의 저장 영역의 인코딩 정보를 삭제하여, 인덱스 0을 기준으로, 인덱스가 작은 후보가 순서로 채우고, 코드워드를 갱신하여 종료한다. 한편, 참조 후보 리스트의 총수 NumListCand는 제한수로 갱신된다.
또한, 참조 후보 제한부(318)를 동일 정보 검출부(312)의 직전에 마련해도 좋다. 이 경우, 참조 후보 리스트 작성부(311)에서 작성된 참조 후보 리스트 중의 참조 후보를 제한하여 후보수를 좁히기 때문에, 동일 정보 검출부(312)에서 동일 정보를 검출하는 최대 횟수가 삭감되기 때문에, 처리량이 삭감되는 효과가 있다.
도 50은 도 11에 도시되는 실시예 1의 동영상 인코딩 장치(100)의 머지 검출부(106)를 기초로, 실시예 7의 참조 후보 제한부(318)를 추가한 머지 검출부(106)의 구성을 나타낸다. 도 50에 도시되는 각 부는 도 11에 도시되는 각 부와 동일한 기능을 갖고 있다. 상술한 도 48의 구성과 참조 후보 제한부(318)의 위치만 상이하고, 참조 후보 제한부(318)의 동작도 동일하다. 참조 후보 제한부(318)는 참조 후보 리스트 작성부(311)에서 작성된 참조 후보 리스트 중에서, 설정된 제한수만큼의 인덱스 상위의 인접 블록을 남기고, 그 이외를 삭제하거나, 혹은 선택 외로서 판정한다.
이상과 같이, 동일 정보 검출부(312)의 직전에 참조 후보 제한부(318)를 마련하는 것에 의해, 참조 후보의 제한하는 수법을 설명했지만, 참조 후보 제한부(318)를 머지 검출부(106) 중에 마련하지 않고, 참조 후보 리스트 작성부(311) 중에 참조 후보 제한부(318)의 기능을 갖추도록 해도 동등한 효과를 얻을 수 있다. 이 경우, 참조 후보 리스트 작성부(311)에서는, 인코딩 정보 도출부(310)에서 도출된, 참조 인접 블록의 인코딩 정보를, 참조 후보 리스트에 등록하는 한편, 참조 후보 리스트에 등록된, 참조 인접 블록의 수를 카운트하여, 그 수가 제한수에 달한 경우에 처리를 종료한다.
도 51은 실시예 7에 있어서의 참조 후보 리스트 작성부(311)의 동작을 나타내는 플로차트이고, 실시예 1의 도 19에 나타내는 동작을 하는 참조 후보 리스트 작성부(311)에 대해, 실시예 7의 참조 후보의 제한하는 기능을 추가한 것이다. 도 19의 플로차트에 대해, 새로 스텝 S607의 처리 스텝이 추가되고, 이 추가된 처리에 대해 설명한다.
우선, 변수 N과 참조 후보 리스트의 인덱스 k를 초기화한다(S600). 인덱스 k는 참조 후보 리스트의 기억 영역에 설정되는 인코딩 정보의 후보 저장 영역의 우선 순위를 나타낸다.
다음으로, 참조 인접 블록 N의 유효 플래그 availableFlagN의 판정이 진행되고(S601), availableFlagN이 1인 경우(S601의 Y), 인접 블록 N의 인코딩 정보를 참조 후보 리스트에 등록하고(S602), k를 갱신한다(S603).
다음으로, k가 제한수에 달하였는지 여부의 판정이 진행된다(S607). k가 제한수 미만이면(S607의 N), 아직 참조 후보 리스트에 제한수만큼의 인코딩 정보가 등록되어 있지 않기 때문에, 스텝 S604로 이행한다. k가 제한수에 달한 경우(S607의 Y), 참조 후보 리스트에 제한수만큼의 인코딩 정보가 등록되었기 때문에, 인덱스의 값을 후보 리스트 총수 NumListCand로 설정한 후(S605), 처리를 종료한다.
한편, 실시예 1의 머지 검출부(106)에 대해 참조 후보 제한부(318)를 추가한 예로 설명했지만, 다른 실시예에 있어서도, 참조 후보 제한부(318)를 추가하는 것은 가능하다. 또한, 머지 검출부(106)에 대응하는 동영상 디코딩 장치(200) 중에 설치되는 실시예 7의 머지 판정부(206)에 참조 후보 제한부(318)를 추가하는 것도 가능하고, 머지 판정부(206) 중에 참조 후보 제한부(318)를 마련하지 않고, 머지 판정부(206)의 참조 후보 리스트 작성부(311) 혹은 동일 정보 검출부(312) 중에, 참조 후보 제한부(318)의 기능을 갖추도록 해도 동등한 효과를 얻을 수 있다. 단, 인코딩측과 디코딩측에서 참조 후보 제한부(318)를 설치하는 위치 혹은 참조 후보 제한부(318)의 기능을 갖추는 처리부는 동일하게 할 필요가 있다.
다음으로, 동영상 인코딩 장치(100)의 구성을 나타내는 도 2 중에 설치되는 실시예 7의 움직임 벡터 예측부(103)에 대해 설명한다. 도 52는 도 23에 도시되는 실시예 1의 동영상 인코딩 장치의 움직임 벡터 예측부(103)를 기초로, 실시예 7의 참조 후보 제한부(328)를 추가한 움직임 벡터 예측부(103)의 구성을 나타낸다. 도 52에 도시되는 각 부는, 기본적으로는 도 23에 도시되는 각 부와 동일한 기능을 갖고 있지만, 인코딩 정보 도출부(320) 및 참조 후보 리스트 작성부(321)의 처리는 실시예 1과는 상이하다. 실시예 7에 있어서의 인코딩 정보 도출부(320) 및 참조 후보 리스트 작성부(321)와 새로 추가한 참조 후보 제한부(328)의 기능에 대해 설명한다.
도 53은 실시예 7에 있어서의 인코딩 정보 도출부(320)의 동작을 나타내는 플로차트이다. 실시예 1에 있어서의 인코딩 정보 도출부(320)에서는, 처리 대상의 예측 블록의 예측 모드에 상응하여, 단방향 예측에서 L0 예측인 경우에는 참조 리스트 L0에 등록되어 있는 인코딩 정보만을, 단방향 예측에서 L1 예측인 경우에는 참조 리스트 L1에 등록되어 있는 인코딩 정보만을, 쌍방향 예측인 경우에는 참조 리스트 L0, L1에 등록되어 있는 각각의 인코딩 정보의 판정을, L0과 L1의 리스트마다 독립하여 진행했었다.
실시예 7에서는, 우선, 리스트에 상관없이 인접 블록의 유효성을 판정하고, 그 후에 처리 대상의 예측 블록의 예측 모드에 상응하여, 인코딩 정보를 검출하여 취득한다. 이 처리에 의해, 인접 블록의 유효성 판정을 리스트마다 할 필요가 없어져, 처리 공수를 삭감할 수 있게 된다.
우선, 변수 N을 초기화한다(S900). 변수 N에는 도 9(a)에 도시되는 동일한 픽처 상에 있는 인접 블록 B0, A0, A1, B1, C0이 설정된다. 여기서, 초기화시에는 N=B0으로 설정하기로 하고, 변수 N의 갱신은 A0, A1, B1, C0의 순서로 진행하기로 한다.
움직임 검출 모드는, 차분 움직임 벡터를 전송하기 위한 모드이고, 예측 움직임 벡터의 선택 폭을 넓히기 위해, 좌측과 상측의 인접 블록의 후보 움직임 벡터의 차이가 커지도록, 좌측과 상측의 후보 사이의 거리를 띄워서 등록하는 것에 의해, 차분 움직임 벡터의 코딩량을 삭감하고, 인코딩 효율을 향상시킨다. 이 움직임 검출 모드에서의 우선 순위의 결정 방법은, 가능한 동일한 인코딩 정보인 확률이 높은 인접 블록을 우선 후보로서 등록하는 머지 모드와는 목적이 다르다.
다음으로, 변수 N의 인접 블록(이하, 인접 블록 N이라 한다)의 위치 및 인코딩 정보를 취득한다(S902). 취득된 인접 블록 N의 위치에 기초하여, 인접 블록 N이 유효한지 여부를 판정한다(S903). 예를 들면, 처리 대상의 예측 블록이 픽처 좌단에 위치하는 경우, 처리 대상의 예측 블록의 좌측의 인접 블록은 존재하지 않기 때문에, 인코딩 정보 저장 메모리(114) 중에 해당하는 인코딩 정보는 없는 것이 되고, 무효로 판정된다.
인접 블록 N이 무효인 경우(S903의 N), availableFlagN을 "0"으로 설정한다(S908). 인접 블록 N이 유효인 경우(S903의 Y), 인접 블록 N의 예측 모드가 화면내 인코딩(Intra) 모드인지 여부를 판정한다(S904). 인접 블록 N의 예측 모드가 Intra 모드가 아닌 경우(S904의 Y), 즉, Inter 모드인 경우, availableFlagN을 "1"로 설정한다(S906). 이어서, 움직임 벡터의 산출이 진행된다(S916). 움직임 벡터의 산출후, 인접 블록 N의 인코딩 정보를 refIdxLXN, mvLXN 및 predFlagLXN에 대입하여 설정한다(S907).
이상과 같이 하여, 인접 블록 N에 대한 판정 처리가 종료되면, 변수 N이 인접 블록의 최후인지 여부의 판정을 실시한다(S909). 변수 N의 갱신은 B0, A0, A1, B1, C0의 차례로 진행되기 때문에, 여기서는 N이 C0인지 여부의 판정을 한다. N이 C0이면(S909의 Y), 모든 인접 블록에 대해 판정을 하게 되고, 처리를 종료한다. N이 C0이 아닌 경우(S909의 N), N의 갱신을 한다(S910). 상술한 인접 블록의 차례로 N을 갱신하여, 스텝 S902 이후의 처리를 인접 블록 N에 대해 반복한다.
여기서, 움직임 벡터의 산출 과정에 대해 도 54의 플로차트를 사용하여 설명한다. 우선, L0 예측의 인접 블록 N의 인코딩 정보를 저장해 두는 변수를 초기화한다. 여기서, 변수는 인접 블록 N의 움직임 벡터 mvL0N, 참조 픽처 번호 refIdxL0N 및 참조 리스트의 유효성을 나타내는 플래그 predFlagL0N이고, 다음과 같이 초기화된다(S920).
mvL0N=(0, 0)
refIdxL0N=0
predFlagL0N=0)
다음으로, 처리 대상의 예측 블록의 Inter 모드가 단방향의 L0 예측 혹은 Bi-pred 예측(쌍방향 예측)인지 여부가 판정된다(S921). Bi-pred 예측에서는 L0 예측 및 L1 예측의 2개의 참조 리스트를 사용하기 때문에, 단방향의 L0 예측 혹은 Bi-pred 예측인 경우(S921의 Y), 인접 블록 N의 움직임 벡터 mvL0N의 산출로 이행한다(S922).
처리 대상의 예측 블록과 인접 블록 N의 참조 픽처 번호 및 참조 리스트가 동일한 경우에는, 인접 블록 N의 L0 예측의 움직임 벡터를 mvL0N에 대입하여 설정한다. 처리 대상의 예측 블록과 인접 블록 N의 참조 픽처 번호 및 참조 리스트가 동일하지 않은 경우, 인접 블록 N의 움직임 벡터의 스케일링 처리가 실시된다. 스케일링 처리에 대해서는 실시예 1에서 설명했기 때문에, 여기서는 할애한다. 스케일링 처리를 실시하는 것에 의해, 처리 대상의 예측 블록에 대해, 더 가까운 움직임 벡터를 도출하여 정밀도 향상을 실현할 수 있다. 이상과 같이 하여, 스케일링 처리된 움직임 벡터를 mvL0N에, 인접 블록 N의 L0 예측의 인코딩 정보를 refIdxL0N 및 predFlagL0N에 대입하여 설정한다.
단방향의 L0 예측도 아니고 Bi-pred 예측도 아닌 경우(S921의 N), L1 예측의 움직임 벡터 판정으로 이행한다. 이어서, L1 예측의 인접 블록 N의 인코딩 정보를 저장해 두는 변수를 초기화한다. 여기서, 변수는 인접 블록 N의 움직임 벡터 mvL1N, 참조 픽처 번호 refIdxL1N 및 참조 리스트의 유효성을 나타내는 플래그 predFlagL1N이고, 다음과 같이 초기화된다(S923).
mvL1N=(0, 0)
refIdxL1N=0
predFlagL1N=0
다음으로, 처리 대상의 예측 블록의 Inter 모드가 단방향의 L1 예측 혹은 Bi-pred 예측(쌍방향 예측)인지 여부가 판정된다(S924). Bi-pred 예측에서는 L0 예측 및 L1 예측의 2개의 참조 리스트를 사용하기 때문에, 단방향의 L1 예측 혹은 Bi-pred 예측인 경우(S924의 Y), 인접 블록 N의 움직임 벡터 mvL1N의 산출로 이행한다(S925).
처리 대상의 예측 블록과 인접 블록 N의 참조 픽처 번호 및 참조 리스트가 동일한 경우에는, 인접 블록 N의 L1 예측의 움직임 벡터를 mvL0N에 대입하여 설정한다. 처리 대상의 예측 블록과 인접 블록 N의 참조 픽처 번호 및 참조 리스트가 동일하지 않은 경우, 인접 블록 N의 움직임 벡터의 스케일링 처리가 실시된다. 스케일링 처리에 대해서는 실시예 1에서 설명했기 때문에, 여기서는 할애한다. 이상과 같이 하여, 스케일링 처리된 움직임 벡터를 mvL1N에, 인접 블록 N의 L1 예측의 인코딩 정보를 refIdxL1N 및 predFlagL1N에 대입하여 설정한다. 단방향의 L1 예측도 아니고 Bi-pred 예측도 아닌 경우(S924의 N), 처리를 종료한다.
이상과 같이 하여, 처리 대상의 예측 블록과 동일 픽처 상에 존재하는 주위의 인접 블록을 참조 블록으로 하여, 그 인코딩 정보가 도출된다. 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 인코딩 정보의 도출은 실시예 1과 동일하기 때문에, 여기서는 설명을 할애한다.
이와 같이 하여 얻어진 인접 블록의 인코딩 정보는, 참조 후보 리스트 작성부(321)에 입력된다. 참조 후보 리스트 작성부(321)에서 작성되는 참조 후보 리스트로서, 처리 대상의 예측 블록의 Inter 모드에 상응하여, L0 및 L1 예측의 2개의 참조 리스트에 대해 각각 참조 후보 리스트가 작성된다. 실시예 1에서는 참조 후보 리스트를 참조 리스트마다 작성했지만, 실시예 7에서는 이후의 판정에 사용하는 인접 블록의 유효성을 나타내는 플래그를 참조 리스트에 상관없이 1개의 플래그 availableFlagN으로 나타내기 때문에, L0, L1 쌍예측의 참조 후보 리스트를 한번에 작성하는 것이 가능해져, 처리 공수를 삭감할 수 있다.
참조 후보 리스트 작성부(321)의 동작을 도 55의 플로차트를 사용하여 설명한다. 우선, 변수 N과 참조 후보 리스트의 인덱스 k를 초기화한다(S600). 변수 N에는 도 9(a)에 도시되는 인접 블록 B0이 초기 설정되고, k는 0으로 설정된다. 변수 N은 참조 후보 리스트에 저장하는 우선 순위를 나타내고, 인접 블록 B0, A0, A1, B1, C0의 차례로 진행된다. 인덱스 k는 참조 후보 리스트의 기억 영역에 설정되는 인코딩 정보의 후보 저장 영역의 번호를 나타내고, 우선 순위와 대응하고 있다.
다음으로, 참조 인접 블록 N의 유효 플래그 availableFlagN의 판정이 진행된다(S601). availableFlagN이 1인 경우(S601의 Y), 인접 블록 N의 인코딩 정보를 L0 및 L1 예측의 2개의 참조 후보 리스트 candListLX[k]에 동시에 등록하고(S602), k를 갱신한다(S603). 여기서, 첨자 X는 0 혹은 1을 나타낸다. availableFlagN이 0인 경우(S601의 N), 참조 후보 리스트에는 등록하지 않고, 다음으로 이행한다. 인접 블록 N이 최후의 참조 블록인지 여부를 판정한다(S604). 최후의 블록인 경우(S604의 Y), 인덱스의 값을 후보 리스트 총수 NumListCand로 설정한 후(S605), 처리를 종료한다. 최후의 블록이 아닌 경우(S604의 N), 변수 N을 갱신하여(S606), 스텝 S601 이후의 처리를 반복한다.
참조 후보 제한부(328)에는, 동일 정보 검출부(322)에 의해 참조 후보 리스트 중에서 동일한 움직임 벡터를 갖는 참조 인접 블록을 삭제한 참조 후보 리스트가 입력된다. 참조 후보 제한부(328)는, 참조 후보 리스트 중에서, 설정된 제한수만큼의 인덱스 상위의 인접 블록을 남기고, 그 이외를 삭제하거나, 혹은 선택 외로서 판정한다. 예를 들면, 실시예 1에서 동일한 움직임 벡터가 존재하지 않는 경우의 참조 후보 리스트의 일례를 나타내는 도 28에 있어서, 움직임 검출 모드인 경우에 3개로 제한하면, 인덱스 0에서 2까지의 상위 3개의 인접 블록을 참조 후보로 하고, 나머지는 사용하지 않기 때문에 참조 후보의 대상에서 제외한다.
이상과 같이 하여, 참조 후보로서 인접 블록이 참조 후보 리스트에 제한되어 등록되게 되고, 참조 인접 블록의 총수를 실시예 1에 비해 삭감할 수 있기 때문에, 할당하는 코드워드장이 짧아져, 인코딩 효율을 개선할 수 있다. 또한, 참조 후보 리스트의 우선 순위가 높은 인접 블록으로 좁혀서 제한하기 때문에, 인코딩 효율의 저감을 억제할 수 있다. 참조 후보 리스트의 제한수는, 예를 들면 SPS(Sequence Parameter Set)나 Slice Header와 같은 헤더 정보에 제한수를 설정해도 좋다.
또한, 인코딩측과 디코딩측에서 암묵적인 조건으로서 설정해도 좋고, 인코딩측과 디코딩측에서 모순이 생기지 않도록 설정된다면 방법을 제한하지 않는다. 또한, 예측 모드에 따라 각각 제한수를 설정해도 좋다. 또한, 처리 대상의 예측 블록이 참조하는 인코딩 완료 혹은 디코딩 완료된 인접 블록의 인코딩 정보에 기초하여, 참조 후보 리스트의 제한수를 적응적으로 변경해도 좋다.
이상과 같이, 동일 정보 검출부(322)의 직후에 참조 후보 제한부(328)를 마련하는 것에 의해, 참조 후보를 제한하는 수법을 설명했지만, 참조 후보 제한부(328)를 움직임 벡터 예측부(103) 중에 마련하지 않고, 동일 정보 검출부(322) 중에 참조 후보 제한부(328)의 기능을 갖추도록 해도 동등한 효과를 얻을 수 있다. 이 경우, 동일 정보 검출부(322)에서는, 참조 후보 리스트 중에 저장된 인코딩 정보의 후보를 비교하여, 동일 움직임 벡터를 갖는 후보가 존재하는 경우, 가장 작은 참조 후보 리스트의 인덱스를 갖는 인코딩 정보의 후보를 제외하고 모두 삭제하는 한편, 가장 작은 참조 후보 리스트의 인덱스를 갖는 인코딩 정보의 후보를 참조 후보 리스트에 재등록하고, 그 등록수가 제한수에 달한 경우에 처리를 종료한다.
도 56은 실시예 7에 있어서의 동일 정보 검출부(322)의 동작을 나타내는 플로차트이고, 실시예 1의 도 29에 나타내는 동작을 하는 동일 정보 검출부(322)에 대해, 실시예 7의 참조 후보를 제한하는 기능을 추가한 것이다. 도 29의 플로차트에 대해, 새로 스텝 S1010~스텝 S1012의 처리 스텝이 추가되고, 이들의 추가된 처리에 대해 설명한다.
참조 후보 리스트의 인덱스를 나타내는 변수 N과 m의 설정 후에, 삭제 리스트에 기록되는 참조 후보 리스트의 후보수를 나타내는 카운터 s를 0으로 설정한다(S1010). 다음으로, 스텝 S1002에서, m이 이미 삭제 리스트에 기록되어 있는지 판정하고, m이 아직 삭제 리스트에 기록되어 있지 않은 경우(S1002의 N), m을 삭제 리스트에 기록하는 한편(S1003), 카운터 s를 1가산하여 갱신한다(S1011).
다음으로 s가 한계값 TH와 동일한지 여부를 판정한다(S1012). 여기서, 한계값 TH는 후보 리스트 총수 NumListCand에서 제한수를 뺀 수를 나타낸다. 즉, 참조 후보 리스트에 제한수의 후보를 남기고, 삭제 리스트에 기록된 후보수의 최대수를 나타낸다. s가 TH와 동일해진 경우(S1012의 Y), 참조 후보 리스트에 제한수만큼의 후보가 남게 되기 때문에, 동일 정보판정의 처리를 종료하고, 스텝 S1008로 이행하고, 삭제 리스트에 기록된 인덱스에 해당하는 리스트의 저장 영역의 인코딩 정보를 삭제하고, 인덱스 0을 기준으로, 인덱스가 작은 후보가 순서로 채우고, 코드워드를 갱신하여 종료한다. 한편, 참조 후보 리스트의 총수 NumListCand는 제한수로 갱신된다.
또한, 참조 후보 제한부(328)를 동일 정보 검출부(322)의 직전에 마련해도 좋다. 이 경우, 참조 후보 리스트 작성부(321)에서 작성된 참조 후보 리스트 중의 참조 후보를 제한하여 후보수를 좁히기 때문에 동일 정보 검출부(322)에서 동일 정보를 검출하는 최대 횟수가 삭감되기 때문에, 처리량이 삭감되는 효과가 있다.
도 57은 도 23에 도시되는 실시예 1의 동영상 인코딩 장치의 움직임 벡터 예측부(103)를 기초로, 실시예 7의 참조 후보 제한부(328)를 추가한 움직임 벡터 예측부(103)의 구성을 나타낸다. 도 57에 도시되는 각 부는 도 23에 도시되는 각 부와 동일한 기능을 갖고 있다. 상술한 도 52의 구성과 참조 후보 제한부(328)의 위치만 상이하고, 참조 후보 제한부(328)의 동작은 동일하다. 참조 후보 제한부(328)는 참조 후보 리스트 작성부(321)에서 작성된 참조 후보 리스트 중에서, 설정된 제한수만큼의 인덱스 상위의 인접 블록을 남기고, 그 이외를 삭제하거나, 혹은 선택 외로서 판정한다.
이상과 같이, 동일 정보 검출부(322)의 직전에 참조 후보 제한부(328)를 마련하는 것에 의해, 참조 후보를 제한하는 수법을 설명했지만, 참조 후보 제한부(328)를 움직임 벡터 예측부(103) 중에 마련하지 않고, 참조 후보 리스트 작성부(321) 중에 참조 후보 제한부(328)의 기능을 갖추도록 해도 동등한 효과를 얻을 수 있다. 이 경우, 참조 후보 리스트 작성부(321)에서는, 인코딩 정보 도출부(320)에서 도출된 참조 인접 블록의 인코딩 정보를, 참조 후보 리스트에 등록하는 한편, 참조 후보 리스트에 등록된 참조 인접 블록의 수를 카운트하여, 그 수가 제한수에 달한 경우에 처리를 종료한다. 참조 후보 리스트 작성부(321)는, 처리 대상의 예측 블록의 예측 모드에 상응하여, L0 및 L1 예측의 참조 후보 리스트를 동시에 작성할 수 있는 것을 제외하면, 실시예 7에 있어서의 참조 후보 리스트 작성부(311)의 동작을 나타내는 도 51의 플로차트와 동일한 동작을 하기 때문에, 여기서는 설명을 할애한다.
(실시예 8)
실시예 8에서는, 실시예 2, 5와는 상이한, 참조 인접 블록의 블록 그룹을 정의하고, 그 중에서 K개의 대표하는 인접 블록을 선택하는 것이다. 도 31(a)의 인접 블록의 배치를 사용하여 설명한다. 실시예 4와 동일하게, 도 31(a)에 배치되는 6개의 인접 블록 A0, A1, B0, B1, C0, T로부터, 처리 대상의 예측 블록과 동일 픽처 상에 있는 인접 블록 A0, A1, B0, B1, C0을 1개의 블록 그룹으로 하고, 그 블록 그룹 중에서 K개의 대표하는 인접 블록을 선택한다.
선택된 동일 픽처 상의 대표하는 K개의 인접 블록과, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록 T의 K+1개의 인접 블록의 인코딩 정보를 참조 후보로서 참조 후보 리스트에 등록한다. 실시예 4에서는 인코딩 정보 도출부(310), 인코딩 정보 도출부(320)로 K개(2개)의 대표하는 인접 블록을 선택하고 있는 것에 대해, 실시예 8에서는 실시예 1과 동일하게, 인코딩 정보 도출부(310) 및 인코딩 정보 도출부(320)는 모든 인접 블록을 선택하고, 참조 후보 리스트 작성시 이후의 처리로, K개(2개)의 대표하는 인접 블록을 선택하고 있는 점이 상이하다.
실시예 8은, 참조 후보로서 선출하는 인접 블록의 수에 제한을 거는 실시예 7을, 처리 대상의 예측 블록과 동일 픽처 상의 블록 그룹에 적용한 경우와 등가이지만, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록만을 별도 취급으로 하여 참조 후보 리스트의 최후에 등록하는 점이 상이하다. 동일 픽처 상에 있는 인접 블록끼리는 동일 인코딩 정보를 가질 가능성이 높고, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록은 그들과 상이한 인코딩 정보를 가질 가능성이 높기 때문에, 별도 후보로서 등록하는 효과가 높다고 할 수 있다. 예를 들면, 동일 픽처 상에 있는 인접 블록이 모두, 인트라인 경우에도, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록은 인터 예측의 인코딩 정보를 가질 가능성이 높다. 단, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록은, 처리 대상의 예측 블록과 동일 픽처 상에 있는 인접 블록에 비해, 처리 대상의 예측 블록과 인코딩 정보가 동일 혹은 가까울 가능성이 낮기 때문에, 우선 순위를 낮추고 있다.
그 때문에, 동일 픽처 상의 블록 그룹으로부터 선택되는 인접 블록보다 우선 순위를 낮게 설정하고, 참조 후보 리스트의 하위 위치에 등록한다. 이하에서는, 실시예 8은, 실시예 7에서 설명된 동영상 인코딩 장치(100) 및 동영상 디코딩 장치(200)와 동일 구성을 이루는 것으로서 설명한다. 단, 실시예 7의 참조 후보 제한부(318) 및 제한부(328)는 설치하지 않고, 참조 후보 제한부의 기능을 참조 후보 리스트 작성부(311, 321), 혹은 동일 정보 검출부(312, 322) 중에 마련하고, 처리 대상의 예측 블록과 동일 픽처 상에 있는 인접 블록의 블록 그룹에 적용하기로 한다.
동영상 인코딩 장치(100) 중에 설치되는 머지 검출부(106)와, 대응하는 동영상 디코딩 장치(200) 중에 설치되는 머지 판정부(206)의 참조 후보 리스트 작성부(311), 및 동영상 인코딩 장치(100) 중에 설치되는 움직임 벡터 예측부(103)와, 대응하는 동영상 디코딩 장치(200) 중에 설치되는 움직임 벡터 도출부(204)의 참조 후보 리스트 작성부(321) 중에서, 처리 대상의 예측 블록과 동일 픽처 상에 있는 인접 블록 A0, A1, B0, B1, C0을 동일 픽처 상의 블록 그룹으로 정의한다. 동일 픽처 상의 블록 그룹을 대표하는 인접 블록, T의 순서로 우선 순위를 설정하고, 우선 순위가 높은 것으로부터 참조 후보 리스트에 참조 인접 블록의 인코딩 정보의 후보를 등록하는 것에 의해, 참조 후보 리스트의 인덱스 코딩량을 삭감한다.
우선, 동영상 인코딩 장치(100)의 구성을 나타내는 도 2 중에 설치되는 실시예 8의 머지 검출부(106)에 대해 설명한다. 머지 검출부(106)는 실시예 1에서 설명한 도 11과 동일한 구성을 이루지만, 참조 후보 리스트 작성부(311)의 처리가 실시예 1과는 상이하다. 실시예 8에 있어서의 머지 검출부(106)의 참조 후보 리스트 작성부(311)의 동작에 대해 설명한다.
도 58은 실시예 8에 있어서의 참조 후보 리스트 작성부(311)의 동작을 나타내는 플로차트이다. 실시예 8에서는, 참조 후보 리스트 작성 전에, 동일 픽처 상의 블록 그룹의, 참조 인접 블록의 참조 후보 리스트에 등록하는 수 K를 설정한다. 여기서, K는 2로 설정한다. 한편, K는 동일 픽처 상의 블록 그룹 중의 인접 블록 총수를 넘지 않는 것으로 한다.
우선, 변수 N과 참조 후보 리스트의 인덱스 k를 초기화한다(S1300). 변수 N에는 예측 모드에 대응한 가장 우선 순위가 높은 인접 블록이 초기 설정된다. 머지 모드에 있어서의 우선 순위는 A1, B1, B0, A0, C0으로 하고 있기 때문에, A1이 설정되고, N의 갱신은 이 순번으로 진행된다. k는 0으로 설정된다. 인덱스 k는 참조 후보 리스트의 기억 영역에 설정되는 인코딩 정보의 후보 저장 영역의 우선 순위를 나타낸다.
최초로, 인접 블록 N의 유효 플래그 availableFlagN의 판정이 진행된다(S1301). availableFlagN이 0인 경우(S1301의 N), 참조 후보 리스트에는 등록하지 않고, 스텝 S1305로 이행한다. availableFlagN이 1인 경우(S1301의 Y), 인접 블록 N의 인코딩 정보를 참조 후보 리스트에 등록하고(S1302), k를 갱신한다(S1303).
k의 갱신 후, k와 K의 비교로 이행한다(S1304). k가 K 미만(S1304의 Y), 즉 참조 후보 리스트에 등록되는 인접 블록의 수가 설정수 K에 달하지 않은 경우에는 스텝 S1305로 이행한다. k가 K 이상인 경우(S1304의 N), 참조 후보 리스트에 등록되는 인접 블록의 수가 설정수 K에 달한 경우이기 때문에, 참조 후보 리스트에 등록할지 여부의 판정에서 나와, 스텝 S1307로 이행한다.
다음으로, 인접 블록 N이 최후의 참조 블록인지 여부를 판정한다(S1305). 인접 블록 N이 최후의 블록이 아닌 경우(S1305의 N), 변수 N을 갱신하여(S1306), 스텝 S1301 이후의 처리를 반복한다. 인접 블록 N이 최후의 블록인 경우(S1305의 Y), 스텝 S1307로 이행한다.
동일 픽처 상의 블록 그룹의 등록 판정 종료 후에, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록 T의 유효 플래그 availableFlagT의 판정이 진행된다(S1307). availableFlagT가 1인 경우(S1307의 Y), 인접 블록 T의 인코딩 정보를 참조 후보 리스트에 등록하고(S1308), k를 갱신한다(S1309). availableFlagT가 0인 경우(S1307의 N), 참조 후보 리스트에 등록하지 않고, 스텝 S1310으로 이행한다. 참조 후보 리스트에 등록한 수를 후보 리스트 총수 NumListCand로 설정한 후(S1310), 처리를 종료한다.
이상의 처리에 의해, 참조 후보 리스트에 등록된다. 여기서는, 참조 후보 리스트에 등록되는 최대수는 K+1로 표시된다. 참조 인접 블록이 1개만 유효한 경우, 최대 코드워드장은 0이 되기 때문에, 코드워드는 불필요하고, 1개만 유효로 판정된 인접 블록의 인코딩 정보의 후보를 참조처로서 일의로 결정된다.
상술한 동영상 인코딩 장치(100) 중에 설치되는 머지 검출부(106)에 대응하는, 동영상 디코딩 장치(200) 중에 설치되는 실시예 8의 머지 판정부(206)에 대해 설명한다. 머지 판정부(206)는 실시예 1에서 설명한 도 22와 동일한 구성을 이루고, 참조 후보 리스트 작성부(311)의 처리가 실시예 1과 상이하다. 그 이외의 인코딩 정보 도출부(310), 동일 정보 검출부(312), 참조 후보 리스트 저장 메모리(314) 및 선택부(315)는 실시예 1과 동일한 기능을 갖는다.
또한, 참조 후보 리스트 작성부(311)는 상술한 실시예 8에 있어서의 머지 검출부(106)의 참조 후보 리스트 작성부(311)와 동일한 기능을 갖고 있기 때문에, 머지 판정부(206)의 동일 정보 검출부(312)까지의 처리로, 실시예 8의 머지 검출부(106)와 동일한 참조 후보 리스트가 작성되게 된다. 작성된 참조 후보 리스트로부터, 머지 모드에 있어서의 참조 인접 블록의 인코딩 정보를 취득하는 선택부(315)에 대해 설명한다. 선택부(315)는, 작성된 참조 후보 리스트 중에서, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 참조 인접 블록을 특정하는 인덱스로 지정되는 참조 후보 리스트의 인접 블록을 선택한다. 선택된 인코딩 정보를 움직임 보상 예측부(207)에 공급하는 한편, 인코딩 정보 저장 메모리(210)에 공급한다.
다음으로, 동영상 인코딩 장치(100)의 구성을 나타내는 도 2 중에 설치되는 실시예 8의 움직임 벡터 예측부(103)에 대해 설명한다. 움직임 벡터 예측부(103)는 실시예 1에서 설명한 도 23과 동일한 구성을 이루지만, 참조 후보 리스트 작성부(321)의 처리가 실시예 1과는 상이하다. 실시예 8에 있어서의 참조 후보 리스트 작성부(321)의 동작에 대해 설명한다.
참조 후보 리스트 작성부(321)는 상술한 머지 검출부(106)의 참조 후보 리스트 작성부(311)와 동일하게, 처리 대상의 예측 블록과 동일 픽처 상에 있는 인접 블록 A0, A1, B0, B1, C0을 1개의 블록 그룹으로 하여, 그 블록 그룹 중에서 K개의 대표하는 인접 블록을 선택한다. 머지 검출부(106)의 참조 후보 리스트 작성부(311)와 비교하여, L0 및 L1 예측 각각의 참조 후보 리스트를 동시에 작성하는 점이 상이하지만, 처리의 흐름에 큰 차이는 없기 때문에, 여기서는 설명을 할애한다. 한편, 움직임 검출 모드에서의 우선 순위는 B0, A0, A1, B1, C0으로 하고 있다.
상술한 동영상 인코딩 장치(100) 중에 설치되는 움직임 벡터 예측부(103)에 대응하는, 동영상 디코딩 장치(200) 중에 설치되는 실시예 8의 움직임 벡터 도출부(204)에 대해서도, 움직임 벡터 도출부(204)의 참조 후보 리스트 작성부(321)는, 대응하는 움직임 벡터 예측부(103)의 참조 후보 리스트 작성부(321)와 동일한 기능을 갖고 있고, 움직임 벡터 예측부(103)와 동일한 참조 후보 리스트가 작성되게 되기 때문에, 여기서의 설명은 할애한다.
이상의 처리에 의해, 실시예 8에서 작성되는 후보 리스트는, 참조 인접 블록이 모두 유효한 경우, 예측 모드별로 도 59와 같이 표시된다. 머지 모드, 움직임 검출 모드 모두 동일 픽처 상의 블록 그룹의 참조 인접 블록의 개수를 2로 한 경우의 일례이고, 각각의 예측 모드의 우선 순위가 높은 유효한 인접 블록이 참조 후보 리스트에 등록된다.
실시예 8에서는, 우선 순위를 머지 모드인 경우에는 A1, B1, B0, A0, C0, 움직임 검출 모드인 경우에는 B0, A0, A1, B1, C0의 순번으로 했지만, 반드시 이 순번일 필요는 없다. 단, 머지 모드인 경우에는, 처리 대상의 예측 블록의 변과, 인코딩 정보가 가장 동일할 가능성이 높은 것으로 생각되는 처리 대상의 예측 블록의 변이 접하고 있는 인접 블록 A1 및 B1을 우선하여 참조 후보 리스트의 전방에 등록하는 것에 의해, 머지 인덱스의 코딩량을 삭감하고, 인코딩 효율을 향상시킬 수 있다.
움직임 검출 모드는, 차분 움직임 벡터를 전송하기 위한 모드이고, 예측 움직임 벡터의 선택 폭을 넓히기 위해, 좌측과 상측의 인접 블록의 후보 움직임 벡터의 차이가 커지도록, 좌측과 상측의 후보 사이의 거리를 띄워서 등록하는 것에 의해, 차분 움직임 벡터의 코딩량을 삭감하고, 인코딩 효율을 향상시킬 수 있다. 이 움직임 검출 모드에서의 우선 순위의 결정 방법은, 가능한 동일한 인코딩 정보인 확률이 높은 인접 블록을 우선 후보로서 등록하는 머지 모드와는 목적이 다르다. 한편, 실시예 3에서 설명한 바와 같이, 머지 모드인 경우에는 실시예 8를 사용하여, 움직임 검출 모드인 경우에는 실시예 2 혹은 다른 실시예를 사용하는 등, 예측 모드에 상응하여 조합을 바꿀 수도 있다.
(실시예 9)
실시예 9에서는, 실시예 1과 동일하게, 처리 대상의 예측 블록과 동일 픽처 상에 있는 인접 블록 및 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록에 대해, 인접 블록이 유효하면 참조 후보 리스트에 등록하고, 참조 후보 리스트 중에서 최적의 인접 블록의 인코딩 정보를 선택하고, 인접 블록을 나타내는 참조 후보 리스트의 인덱스를 인코딩, 전송하는 것이다.
도 9(a)의 인접 블록의 배치를 사용하여 설명한다. 실시예 1에서는, 참조 후보 리스트를 작성하는 경우에, 인접 블록의 위치에 대해 미리 결정된 우선 순위가 대응지어지고, 우선 순위의 순번으로 인접 블록이 소정의 조건을 만족시키는지 여부를 판정하고, 조건을 만족시키는 경우에 참조 후보 리스트의 전방에 등록하고, 참조 후보 리스트를 작성하고 있었다. 즉, 인접 블록의 위치에 대응지어진 우선 순위가 그대로 참조 후보 리스트의 인덱스에 반영되고, 우선 순위가 높을수록, 작은 인덱스가 되는 참조 후보 리스트의 기억 영역에 저장되었다.
일반적으로, 처리 대상의 예측 블록의 주위의 인접 블록은, 처리 대상의 예측 블록에 접하고 있는 영역이 클수록, 처리 대상의 예측 블록과 인코딩 정보가 가장 동일할 가능성이 높을 것으로 생각되기 때문에, 그러한 인접 블록을 우선하여 참조 후보 리스트의 전방에 등록하는 것에 의해, 인덱스의 코딩량을 삭감하고, 인코딩 효율을 향상시킨다.
이상의 점으로부터, 실시예 9에서는, 움직임 검출 모드인 경우에, 움직임 벡터 예측의 참조 후보 리스트 작성시에 인접 블록의 유효성을 판정하는 순번과, 참조 인접 블록에 대해 할당하는 코드워드의 순번을 각자 정의한다. 참조 후보 리스트 작성시에 인접 블록의 유효성을 판정하는 순번은, 예측 움직임 벡터의 선택 폭을 넓히기 위해, 좌측과 상측의 인접 블록의 후보 움직임 벡터의 차이가 커지도록, 인접 블록간의 거리를 띄워놓은 순위로 한다.
여기서는, 움직임 벡터 예측의 참조 후보 리스트 작성시에 인접 블록의 유효성을 판정하는 순번을 B0, A0, A1, B1, C0, T로 한다. 한편, 참조 인접 블록에 대해 할당하는 코드워드는, 처리 대상의 예측 블록에 접하고 있는 영역이 큰 인접 블록을 우선하여 A1, B1, B0, A0, C0, T의 순번으로 적은 코드워드를 할당하기로 한다.
동영상 인코딩 장치(100)의 구성을 나타내는 도 2 중에 설치되는 실시예 9의 움직임 벡터 예측부(103)에 대해 설명한다. 실시예 9의 움직임 벡터 예측부(103)는 실시예 1에서 설명한 도 23과 동일한 구성을 이루지만, 참조 후보 리스트 작성부(321)의 동작이 상이하다. 실시예 9에 있어서의 참조 후보 리스트 작성부(321)의 동작에 대해 설명한다. 도 60은, 실시예 9의 움직임 검출 모드에 있어서의 참조 후보 리스트 작성부(321)의 동작을 나타내는 플로차트이고, 이 도면을 사용하여 설명한다.
참조 후보 리스트 작성부(321)는 기본적으로 움직임 벡터 예측부(103) 중의 참조 후보 리스트 작성부(321)와 동일한 동작을 실시한다. 움직임 검출 모드에서는 참조 리스트에 의해 L0 예측과 L1 예측 각각의 참조 후보 리스트를 작성할 필요가 있기 때문에, 움직임 검출 모드에서의 참조 후보 리스트 작성은, L0 예측과 L1 예측을 별게로 2회 실시한다. 그 때문에, 인접 블록의 유효성을 판정하는 스텝 S601에 있어서, 인접 블록의 유효성을 나타내는 플래그 availableFlagLXN(X는 0 혹은 1, N은 인접 블록을 나타내는 기호가 기술된다)에 참조 리스트를 나타내는 LX의 첨자가 부가되지만, 판정 동작은 머지 모드인 경우와 동일하다.
도 60에서는, 움직임 벡터 예측부(103) 중의 참조 후보 리스트 작성부(321)의 동작을 나타내는 도 19의 플로차트에 대해, 새로 변환 테이블의 작성·갱신(S608)이 추가되어 있고, 이 판정부를 포함하여, 참조 후보 리스트 작성부(321)의 동작을 설명한다. 단, 여기서는 참조 리스트의 하나만 설명하기로 하고, 다른 하나의 참조 리스트에 대해서는 판정 동작은 동일하기 때문에 설명을 할애한다.
우선, 변수 N과 참조 후보 리스트의 인덱스 k를 초기화한다(S600). 변수 N에는 도 9(a)에 도시되는 인접 블록 B0이 초기 설정되고, k는 0으로 설정된다. 인덱스 k는 참조 후보 리스트 저장 메모리(324)에 마련되는 참조 후보 리스트의 기억 영역에 설정되는 인코딩 정보의 후보 저장 영역의 우선 순위를 나타낸다. 이 저장 영역은 배열 구조를 이루고, candList로 표시된다. 인덱스의 숫자는 0으로부터 개시되고, 참조 후보 리스트 candList의 기억 영역에, 참조 인접 블록의 인코딩 정보의 후보가 저장된다. 이후의 처리에서는, 참조 후보 리스트 candList에 등록된 인덱스 i의 인코딩 정보는, candList[i]로 나타내기로 한다.
다음으로, 참조 인접 블록 N의 유효 플래그 availableFlagLXN의 판정이 진행된다(S601). 여기서, X는 0 혹은 1이 들어간다. availableFlagLXN이 0인 경우(S601의 N), 참조 후보 리스트에는 등록하지 않고, 다음으로 이행한다. 인접 블록 N이 최후의 참조 블록인지 여부를 판정한다(S604). 최후의 블록인 경우(S604의 Y), 인덱스 k의 값을 후보 리스트 총수 NumListCand로 설정한 후(S605), 처리를 종료한다. 최후의 블록이 아닌 경우(S604의 N), 변수 N을 갱신하여(S606), 스텝 S601 이후의 처리를 반복한다. 여기서, 변수 N을 갱신하는 인접 블록의 순번이 참조 후보 리스트에 저장하는 우선 순위가 되고 있고, 실시예 9에서는, 순번(B0, A0, A1, B1, C0, T)을 설정하기로 한다.
한편, availableFlagLXN이 1인 경우(S601의 Y), 인접 블록 N의 인코딩 정보를 참조 후보 리스트 candList[k]에 등록하고(S602), 변환 테이블의 작성·갱신(S608)을 실시하고, k를 갱신한다(S603).
여기서, 변환 테이블의 작성·갱신(S608)의 상세에 대해 설명한다. 변환 테이블의 작성·갱신에서는, 움직임 벡터 예측의 참조 후보 리스트 작성시에 인접 블록의 유효성을 판정하는 순번과, 참조 인접 블록에 대해 할당하는 코드워드의 순번을 대응시키는 변환 테이블을 작성한다. 변환 테이블은 참조 후보 리스트 저장 메모리(324)에 마련되는 배열 구조를 하는 기억 영역이고, 참조 후보 리스트의 인덱스에 대응하는 코드워드를 나타내는 변환 테이블의 인덱스를 기억한다.
도 61을 사용하여 설명한다. 변수 N과 참조 후보 리스트의 인덱스 k가 입력되고, 변환 테이블의 작성·갱신이 개시된다. 먼저, 변수 M과 변환 테이블의 인덱스 j를 초기화한다(S1400). 변수 M에는 도 9(a)에 도시되는 인접 블록 A1이 초기 설정되고, j는 0으로 설정된다. 변수 M은 A1, B1, B0, A0, C0, T의 순번으로 갱신된다. 다음으로, M과 N의 동일 판정이 진행된다(S1401). M이 N과 상이한 경우(S1401의 N), 변환 테이블에는 등록하지 않고, j를 갱신한다(S1403).
다음으로, 변수 M이 최후의 인접 블록인지 여부를 판정한다(S1404). 최후의 인접 블록은 T이고, M이 T인 경우(S1404의 Y), 처리를 종료한다. 최후의 블록이 아닌 경우(S1404의 N), 변수 M을 갱신하여(S1405), 스텝 S1401 이후의 처리를 반복한다.
M이 N인 경우(S1401의 Y), 참조 후보 리스트의 인덱스 k를 변환 테이블의 선두부터 j번째의 기억 영역에 등록된다(S1402). 인덱스 k가 등록되면 처리를 종료하고, 도 60의 k의 갱신(S603)으로 돌아간다. 이상의 처리에 의해, 참조 후보 리스트의 인덱스 k는 변환 테이블에 등록되고, 참조 인접 블록이 모두 유효하면, 도 62에 도시되는 변환 테이블의 인덱스로 표시되는 코드워드에 대응지어진다.
이 변환 테이블을 사용하여, 등록된 참조 후보 리스트는, 참조 인접 블록이 모두 유효하면, 도 63에 도시되는 순번으로 참조 후보 리스트가 작성되어, 코드워드가 할당된다. 참조 인접 블록이 1개만 유효한 경우, 코드워드는 불필요하고, 1개만 유효로 판정된 인접 블록의 인코딩 정보의 후보가 참조처로서 일의로 결정되게 된다.
여기서는, 참조 후보 리스트 작성부(321)에서 작성된 직후의 참조 후보 리스트의 인덱스에 대해 설명했지만, 본래는 동일 정보 검출부(322)에 의해 동일한 인코딩 정보를 구비하는 참조 후보의 인접 블록을 참조 후보 리스트로부터 삭제한 후에, 참조 후보 리스트의 인덱스와 변환 테이블의 인덱스를 대응짓는 것이 바람직하다. 동일 정보 검출부(322)에 의해 삭제된 참조 후보의 인접 블록의 참조 후보 리스트의 인덱스에 해당하는 변환 테이블의 기억 영역도 삭제되어, 변환 테이블의 선두 방향으로 채워진다.
예를 들면, 도 62에 있어서, 참조 후보 리스트의 인덱스 1에 해당하는 인접 블록이 삭제된 경우, 참조 후보 리스트의 인덱스 1에 해당하는 변환 테이블의 인덱스 3의 개소가 삭제된다. 변환 테이블의 인덱스 4 및 5가 각각 3 및 4로 되고, 각각 대응지어지는 코드워드도 1110 및 1111로 갱신된다.
이상과 같이 하여, 작성된 참조 후보 리스트의 움직임 벡터를 예측 움직임 벡터로 하여, 차분 움직임 벡터 도출부(326)에서는, 움직임 벡터 추정부(102)가 검출한 움직임 벡터와 예측 움직임 벡터로부터 차분 움직임 벡터를 산출하고, 산출된 차분 움직임 벡터를 출력부(323)에 공급한다. 출력부(323)가, 작성된 참조 후보 리스트 중의 인덱스와 차분 움직임 벡터를 출력한다. 참조 후보 리스트는, 참조 후보 리스트를 MVP 리스트로 하여, 리스트 중의 인덱스를 MVP 인덱스로서 출력한다.
상술한 동영상 인코딩 장치(100) 중에 설치되는 움직임 벡터 예측부(103)에 대응하는, 동영상 디코딩 장치(200) 중에 설치되는 움직임 벡터 도출부(204) 중에도 움직임 벡터 예측부(103)와 동일한 기능을 하는 실시예 9의 참조 후보 리스트 작성부(321) 혹은 동일 정보 검출부(322)가 구비되어 있기 때문에, 움직임 벡터 예측부(103)와 동일한 참조 후보 리스트가 작성된다. 작성된 참조 후보 리스트는 선택부(325)에 출력한다.
선택부(325)는, 작성된 참조 후보 리스트 중에서, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 참조 인접 블록을 특정하는 인덱스로 지정되는 참조 후보 리스트의 인접 블록을 선택한다. 선택된 리스트의 인접 블록의 인코딩 정보로부터 움직임 벡터를 예측 움직임 벡터로서 출력하고, 차분 움직임 벡터 도출부(326)에서 예측 움직임 벡터와 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 차분 움직임 벡터를 가산하여 움직임 벡터를 산출하고, 움직임 보상 예측부(207)에 공급하는 한편, 선택된 참조 후보 리스트의 인접 블록의 인코딩 정보를 인코딩 정보 저장 메모리(210)에 공급한다.
(실시예 10)
실시예 10은, 움직임 검출 모드인 경우에, 참조 후보 리스트의 작성시에 인접 블록의 유효성을 판정하는 순번을, 최초의 인접 블록이 유효인지 여부로 그 후의 인접 블록의 판정하는 순번을 변경하는 것이다. 도 9(a)의 인접 블록의 배치를 사용하여 설명한다. 실시예 9의 참조 후보 리스트 작성시에 인접 블록의 유효성을 판정하는 순번 B0, A0, A1, C0, B1, T를 일례로서 설명한다.
최초에 판정하는 인접 블록은 B0이고, B0이 유효한 경우, 그 후의 인접 블록의 순번은 변경되지 않는다. B0이 무효인 경우, 그 후의 인접 블록의 순번은 A0, B1, C0, A1의 순번으로 변경된다. B0이 무효가 될 경우, A0이 최초에 판정하는 인접 블록이 되고, 그 다음의 인접 블록이 A1이다. A1은 A0과 가까운 위치에 있기 때문에, A0에 가까운 값의 움직임 벡터가 될 가능성이 높고, A1이 예측 움직임 벡터로서 선택될 가능성이 낮아진다.
움직임 검출 모드는, 차분 움직임 벡터를 전송하기 위한 모드이고, 참조 인접 블록을 구비하는 블록이 가까운 값이면, 예측 움직임 벡터의 선택 폭이 좁아져, 적절한 예측 움직임 벡터가 검출되지 않게 된다. 그 때문에, B0이 무효가 될 경우, A0의 다음에 판정하는 인접 블록은, 예측 움직임 벡터의 선택 폭을 넓히기 위해, A0로 움직임 벡터의 차이가 커지도록, A0과 거리가 떨어진 인접 블록 B1을 선택한다. 이와 같이 하여, 가능한 예측 움직임 벡터의 후보가 되는 인접 블록의 거리가 떨어지도록, 판정하는 순번을 변경한다.
(실시예 11)
실시예 11에서는, 움직임 검출 모드인 경우, 처리 대상의 예측 블록과 동일 픽처 상에 있는 인접 블록을 동일 픽처 상의 블록 그룹으로 정의하고, 그 중에서 블록 그룹을 대표하는 2개의 인접 블록을 선택하는 일 수법을 나타낸다. 도 9(a)의 인접 블록의 배치를 사용하여 설명한다. 참조 후보 리스트의 작성시에 인접 블록의 유효성을 판정하는 순번을 B0, B1, C0, A1, A0로 한다.
먼저, 열기한 좌측에서 우측의 순번 B0, B1, C0, A1, A0(순방향)으로 인접 블록의 유효성을 판정하고, 최초에 유효로 판정된 인접 블록을 우선 1개째의 블록 그룹을 대표하는 인접 블록으로서 참조 후보 리스트에 등록한다. 다음으로, 열기한 순번의 역순, 즉 우측에서 좌측의 순번 A0, A1, C0, B1, B0(역방향)으로 인접 블록의 유효성을 판정하고, 또한 하나의 블록 그룹을 대표하는 인접 블록으로서 참조 후보 리스트에 등록한다.
인접 블록의 유효성을 판정하는 순번이, 처리 대상의 예측 블록의 우상측 코너에서 좌하측 코너에 걸쳐, 인접 블록의 후보 움직임 벡터의 차이가 커지도록, 유효성의 판정순을 역으로 하여, 후보 사이의 거리를 띄워서 등록하는 것에 의해, 예측 움직임 벡터의 선택 폭이 넓어져, 차분 움직임 벡터의 코딩량을 삭감하고, 인코딩 효율을 향상시킨다.
한편, 순방향, 역방향으로 인접 블록의 유효성을 판정하는 경우, 순방향에서는 A0, 역방향에서는 B0의 각각 최후의 순번에 해당하는 인접 블록의 판정을 생략해도 좋다. 순방향으로부터의 판정에서 최후의 A0이 선택될 경우에는, 역방향으로부터의 최초의 판정으로 유효가 되는 인접 블록이기 때문에, 순방향으로부터의 판정에서 선택된 인접 블록으로서 적절하지 않기 때문이다.
또한, 각 방향으로부터의 판정에서 C0까지의 3개의 인접 블록만 판정하도록 제한해도 좋다. 예를 들면, 순방향으로부터의 판정에서 A0이 선택되고, 역방향으로부터의 판정에서 A1이 선택된 경우, 동일 움직임 벡터를 갖는 인접 블록일 가능성이 높고, 움직임 벡터 예측의 선택 폭이 좁아져, 효과적인 예측 움직임 벡터를 도출할 수 없게 되어버린다. 이와 같은 근접한 인접 블록의 선택을 피하기 위해, 중간 위치에 있는 C0까지에서 유효성의 판정을 한다. 이상과 같은 유효성 판정의 제한은, 판정하는 인접 블록의 수가 적어지기 때문에, 처리 공수의 삭감으로 연결된다.
(실시예 12)
실시예 12는, 움직임 검출 모드인 경우에, 실시예 9에 대해, 처리 대상의 예측 블록과 동일 픽처 상에 있는 인접 블록을 동일 픽처 상의 블록 그룹으로 정의하고, 그 중에서 블록 그룹을 대표하는 인접 블록으로서 선택하도록 한 것이다. 실시예 12에서는, 실시예 9와 동일하게, 움직임 벡터 예측의 참조 후보 리스트 작성시에 인접 블록의 유효성을 판정하는 순번과, 참조 인접 블록에 대해 할당하는 코드워드의 순번을 각자 정의한다.
참조 후보 리스트 작성시에는, 예측 움직임 벡터의 선택 폭을 넓히기 위해, 좌측과 상측의 인접 블록의 후보 움직임 벡터의 차이가 커지도록, 인접 블록간의 거리를 띄워놓은 순위로 하고, 코드워드 할당에서는, 처리 대상의 예측 블록과 인코딩 정보가 가장 동일할 가능성이 높은 것으로 생각되는 처리 대상의 예측 블록에 접하고 있는 영역이 큰 인접 블록을 우선하여 작은 코드워드를 할당하도록 한다.
여기서는, 움직임 벡터 예측의 참조 후보 리스트 작성시에 인접 블록의 유효성을 판정하는 순번을 B0, A0, A1, C0, B1, T로 한다. 한편, 참조 인접 블록에 대해 할당하는 코드워드는, 처리 대상의 예측 블록에 접하고 있는 영역이 큰 인접 블록을 우선하여 A1, B1, B0, A0, C0, T의 순번으로 적은 코드워드를 할당하기로 한다.
우선, 동영상 인코딩 장치(100)의 구성을 나타내는 도 2 중에 설치되는 실시예 12의 특징이 되는 움직임 벡터 예측부(103)에 대해 설명한다. 움직임 벡터 예측부(103)는 도 64에 도시되는 구성을 이루고, 실시예 9에서 설명한 도 23에 대해, 참조 후보 리스트 작성부(321)의 직후에 참조 후보 제어부(329)이 추가된 점이 상이하다.
또한, 실시예 12에서는, 처리 대상의 예측 블록과 동일 픽처 상에 있는 블록 그룹을 대표하는 인접 블록을 선택하기 때문에, 참조 후보 리스트 작성부(321)는 실시예 8에서 설명한 처리 대상의 예측 블록과 동일 픽처 상에 있는 블록 그룹으로부터의 선택 방법과 동일한 동작을 한다. 여기서는, 동일 픽처 상의 블록 그룹으로부터 K개의 대표하는 인접 블록을 선택한다. 선택된 동일 픽처 상의 블록 그룹을 대표하는 K개의 인접 블록과, 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록 T의 K+1개의 인접 블록의 인코딩 정보를 참조 후보로서 참조 후보 리스트에 등록한다.
여기서 K는 2로서, 참조 후보 리스트 작성부(321)에서는, 참조 후보 리스트의 선두부터 동일 픽처 상의 블록 그룹을 대표하는 2개의 인접 블록, 및 시간이 상이한 별도의 픽처의 동일 위치에 인접하는 블록의 계 3개의 인코딩 정보가 참조 후보 리스트에 등록된 것으로 하여, 이하 설명한다.
도 65는 참조 후보 제어부(329)의 동작을 나타내는 플로차트이다. 참조 후보 리스트 작성부(321)에서 작성된 참조 후보 리스트와 참조 후보 리스트에 등록된 참조 후보수NumListCand가 입력된다. 우선, NumListCand의 판정이 진행된다(S1500). NumListCand가 2 미만인 경우(S1500의 Y), 즉 참조 후보 리스트에 등록된 참조 후보가 1이면, 그 1개의 후보가 참조처로서 일의로 결정되기 때문에, 처리를 종료한다.
NumListCand가 2보다 큰 경우(S1500의 N), 참조 후보 리스트의 선두부터 2번째로 등록된 인코딩 정보 CandListLX[1]를 갖추는 인접 블록을 N으로 한다. 여기서, 참조 후보 리스트의 배열 CandListLX는 0을 참조 후보 리스트의 선두 인덱스로서 개시하기 때문에, CandListLX[1]가 참조 후보 리스트의 선두부터 등록된 2번째의 인코딩 정보가 저장되는 기억 영역이 되고, 첨자 X에는 참조 리스트의 참조 리스트를 나타내는 0(L0 예측) 혹은 1(L1 예측)이 들어간다.
다음으로, N이 인접 블록 A1 혹은 B1인지 여부를 판정한다(S1502). N이 A1도 아니고 B1도 아닌 경우(S1502의 N), 처리를 종료한다. N이 A1 혹은 B1인 경우(S1502의 Y), 참조 후보 리스트 중의 인코딩 정보의 교체를 실시한다(S1503). 참조 후보 리스트의 선두 인코딩 정보 CandListLX[0]와 2번째의 인코딩 정보 CandListLX[1]의 교체를 한다.
참조 후보 리스트의 작성하는 순번은 B0, A0, A1, C0, B1이기 때문에, A1 혹은 B1이 참조 후보 리스트에 2번째에 있는 경우, 선두가 되는 인접 블록은 A1 혹은 B1보다 코드워드장이 길어진다. 이는, 인접 블록을 특정하는 인덱스의 코드워드 할당 순번이 A1, B1, B0, A0, C0, T로 정의되고 있기 때문에, 코드워드장이 A1<B1<B0<A 0<C0<T가 되기 때문이다. 여기서, A1 혹은 B1을 참조 후보 리스트의 선두에 바꿔 넣고, 코드워드장이 짧은 인덱스의 인접 블록의 참조 후보 리스트 중에서의 우선을 높게 하여, 인덱스의 코딩량을 삭감한다.
한편, 교체 전의 참조 후보 리스트 중의 순번으로서 A1, B1이 되는 경우에도 교체를 실시하게 되고, 코드워드가 긴 B1이 참조 후보 리스트의 선두가 되지만, 다른 인접 블록이 참조 후보 리스트의 선두가 되는 경우에 비해 인코딩 효율의 손실을 억제할 수 있다. 이상과 같이 하여, 참조 후보 리스트 중의 교체가 실시되어, 참조 후보 리스트의 상위에 적은 코드워드로 인접 블록을 특정하는 인접 블록을 할당할 수 있게 되고, 인코딩 효율을 향상시킬 수 있게 된다.
이상과 같이 하여, 동일 정보 검출부(322)의 후에, 작성된 참조 후보 리스트의 움직임 벡터를 예측 움직임 벡터로 하여, 차분 움직임 벡터 도출부(326)는, 움직임 벡터 추정부(102)가 검출한 움직임 벡터와 예측 움직임 벡터로부터 차분 움직임 벡터를 산출하고, 산출된 차분 움직임 벡터를 출력부(323)에 공급한다. 출력부(323)가, 작성된 참조 후보 리스트 중의 인덱스와 차분 움직임 벡터를 출력한다. 참조 후보 리스트는, 참조 후보 리스트를 MVP 리스트로 하여, 리스트 중의 인덱스를 MVP 인덱스로서 출력한다.
상술한 동영상 인코딩 장치(100) 중에 설치되는 움직임 벡터 예측부(103)에 대응하는, 동영상 디코딩 장치(200) 중에 설치되는 움직임 벡터 도출부(204) 중에도 움직임 벡터 예측부(103)와 동일한 기능을 하는 실시예 12의 참조 후보 제어부(329)가 설치되기 때문에, 움직임 벡터 예측부(103)와 동일한 참조 후보 리스트가 작성된다. 작성된 참조 후보 리스트는 선택부(325)에 출력된다. 선택부(325)는, 작성된 참조 후보 리스트 중에서, 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 참조 인접 블록을 특정하는 인덱스로 지정되는 참조 후보 리스트의 인접 블록을 선택한다. 선택된 리스트의 인접 블록의 인코딩 정보로부터 움직임 벡터를 예측 움직임 벡터로서 출력하고, 차분 움직임 벡터 도출부(326)에서 예측 움직임 벡터와 제1의 인코딩 비트열 디코딩부(202)에서 디코딩된 차분 움직임 벡터를 가산하여 움직임 벡터를 산출하고, 움직임 보상 예측부(207)에 공급하는 한편, 선택된 참조 후보 리스트의 인접 블록의 인코딩 정보를 인코딩 정보 저장 메모리(210)에 공급한다.
이상으로 설명한 바와 같이 본 발명의 실시예에 있어서, 움직임 벡터의 예측 방법과 머지 수법에서 각각 참조하는 주변의 인접 블록의 배치를 통합하는 것에 의해, 인접 블록의 정보를 기억하는 일시 메모리를 삭감하고, 공통화한 참조 인접 블록으로부터 각 예측 수법마다 후보의 우선 순위를 결정하는 것에 의해, 화상간 예측에 있어서의 움직임 벡터의 예측 방법과 머지 수법의 인코딩 효율의 장황도를 삭감하는 한편 디코딩시의 처리 효율을 높일 수 있다. 또한, 움직임 보상을 하기 전에, 참조하는 주위의 인접 블록의 예측 모드나 위치 정보 등으로부터, 그 블록을 참조하는 유효성을 판정하는 것에 의해, 움직임 보상의 처리 횟수를 삭감할 수 있다.
이하, 더욱 구체적으로 설명한다. 상정할 수 있을 수 있는 최대의 메모리 액세스 횟수, 메모리량, 처리량(처리 시간)을 삭감하기 위해, 도 9(a)에 나타내는 바와 같이, 좌측에 인접하는 블록, 상측에 인접하는 블록을 각각 1개로 한정하는 것에 의해 후보를 좁힌다. 이와 같이 미리 후보를 한정하는 것에 의해, 인코딩 효율을 거의 저하시키지 않고, 메모리 액세스 횟수, 메모리량, 처리량(처리 시간)을 삭감하는 효과가 있다.
또한, 메모리 액세스 횟수, 메모리량, 처리량(처리 시간)을 삭감할 수 있을 뿐만 아니라, 머지 인덱스, MVP 인덱스의 코딩량을 삭감할 수 있기 때문에, 코딩량도 삭감하는 효과가 있다. 또한, 머지 모드와 움직임 검출 모드에 있어서 후보의 위치를 공통화하는 것에 의해, 진일보의 메모리 액세스 횟수, 메모리량, 처리량(처리 시간)의 삭감을 실현하고 있다. 또한, 머지 모드 및 움직임 검출 모드의 각각의 특성에 따른 배치로 후보 리스트에 후보를 저장하는 것에 의해, 머지 모드에서는 머지 인덱스의 코딩량을 삭감하고, 움직임 검출 모드에서는 MVP 인덱스, 및 차분 움직임 벡터의 코딩량을 삭감하는 것에 의해, 인코딩 효율을 개선하고 있다.
한편, 본 발명은 이상의 실시예에 한정되지 않고, 예를 들면 상기한 동영상 인코딩/디코딩 장치의 기능을 컴퓨터에 실현시키기 위한 동영상 인코딩/디코딩 프로그램도 포함하는 것이다. 이 동영상 인코딩/디코딩 프로그램은, 기록 매체로부터 판독되어 컴퓨터에 입력되어 좋고, 통신 네트워크를 통해 전송되어 컴퓨터에 입력되어도 좋다.
이상으로 설명한 실시예의 동영상 인코딩 장치가 출력하는 동영상의 인코딩 비트 스트림은, 실시예에서 사용된 인코딩 방법에 따라 디코딩할 수 있도록 특정의 데이터 포맷을 갖고 있어, 동영상 인코딩 장치에 대응하는 동영상 디코딩 장치가 이 특정의 데이터 포맷의 인코딩 비트 스트림을 디코딩할 수 있다.
동영상 인코딩 장치와 동영상 디코딩 장치 사이에서 인코딩 비트 스트림을 주고받기 위해, 유선 또는 무선 네트워크가 사용되는 경우, 인코딩 비트 스트림을 통신 채널의 전송 형태에 적합한 데이터 형식으로 변환하여 전송해도 좋다. 그 경우, 동영상 인코딩 장치가 출력하는 인코딩 비트 스트림을 통신 채널의 전송 형태에 적합한 데이터 형식의 인코딩 데이터로 변환하여 네트워크에 송신하는 동영상 송신 장치와, 네트워크로부터 인코딩 데이터를 수신하여 인코딩 비트 스트림으로 복원하여 동영상 디코딩 장치에 공급하는 동영상 수신 장치가 마련된다.
동영상 송신 장치는, 동영상 인코딩 장치가 출력하는 인코딩 비트 스트림을 버퍼하는 메모리와, 인코딩 비트 스트림을 패킷화하는 패킷 처리부와, 패킷화된 인코딩 데이터를 네트워크를 통해 송신하는 송신부를 포함한다. 동영상 수신 장치는, 패킷화된 인코딩 데이터를 네트워크를 통해 수신하는 수신부와, 수신된 인코딩 데이터를 버퍼하는 메모리와, 인코딩 데이터를 패킷 처리하여 인코딩 스트림을 생성하여, 동영상 디코딩 장치에 제공하는 패킷 처리부를 포함한다.
이상, 본 발명을 다양한 실시예를 바탕으로 설명했지만, 이들의 실시예는 예시이며, 이들의 각 구성 요소나 각 처리 프로세스의 조합에 다양한 변형예가 가능하고, 또한 그러한 변형예도 본 발명의 범위에 있는 것은 당업자에게 있어서 자명하다.
[항목 1]
동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩하는 화상 인코딩 장치이고,
인코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 취득부;
인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드에 있어서, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스를 출력하는 제1의 모드 검출부;
인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩 대상 블록의 움직임 벡터의 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드에 있어서, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제2의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스 및 상기 차분 움직임 벡터를 출력하는 제2의 모드 검출부;
상기 제1의 모드 검출부 및 상기 제2의 모드 검출부의 출력 결과를 바탕으로, 상기 인코딩 대상 블록마다의 참조 블록과 화상간 예측 모드를 결정하는 예측 방법 결정부;
상기 예측 방법 결정부에 의해 결정된 참조 블록의 인덱스와, 상기 예측 방법 결정부에 의해 결정된 화상간 예측 모드를 나타내는 예측 모드 정보와, 제2의 화상간 예측 모드가 결정된 경우의 참조 블록에 대응한 상기 차분 움직임 벡터를 인코딩하는 인코딩열 생성부를 구비하고,
상기 제1의 모드 검출부 및 상기 제2의 모드 검출부는, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하는 것을 특징으로 하는 화상 인코딩 장치.
[항목 2]
항목 1에 있어서,
상기 제1의 모드 검출부는, 상기 제1의 소정 순위가 높은 참조 블록 후보의 인덱스일수록 적은 코드워드를 할당하는 것을 특징으로 하는 화상 인코딩 장치.
[항목 3]
항목 1 또는 항목 2에 있어서,
상기 제1의 모드 검출부에 의해 생성되는 상기 제1의 후보 리스트에 상기 복수의 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제2의 모드 검출부에 의해 생성되는 상기 제2의 후보 리스트에 상기 복수의 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 화상 인코딩 장치.
[항목 4]
항목 1 내지 항목 3 중의 어느 한 항목에 있어서,
상기 제1의 모드 검출부는, 상기 복수의 참조 블록 후보의 수를 제한하여, 상기 복수의 참조 블록 후보의 상기 제1의 후보 리스트를 생성하고,
상기 제2의 모드 검출부는, 상기 복수의 참조 블록 후보의 수를 제한하여, 상기 복수의 참조 블록 후보의 상기 제2의 후보 리스트를 생성하는 것을 특징으로 하는 화상 인코딩 장치.
[항목 5]
항목 1 내지 항목 4 중의 어느 한 항목에 있어서,
상기 복수의 참조 블록 후보에는, 상기 인코딩 대상 블록에 공간적으로 인접하는 이미 인코딩된 블록과, 상기 인코딩 대상 블록을 포함하는 픽처와 시간적으로 상이한 픽처에 포함되는 블록을 포함하고,
상기 제1의 모드 검출부 및 상기 제2의 모드 검출부는, 상기 복수의 참조 블록 후보에 있어서, 상기 시간적으로 상이한 픽처에 포함되는 블록의 상기 제1의 소정 순위 및 제2의 소정 순위에 있어서의 순위는, 상기 공간적으로 인접하는 블록의 상기 제1의 소정 순위 및 제2의 소정 순위에 있어서의 순위보다 낮게 설정하는 것을 특징으로 하는 화상 인코딩 장치.
[항목 6]
항목 5에 있어서,
상기 제1의 모드 검출부는, 상기 공간적으로 인접하는 이미 인코딩된 복수의 블록에 대해, 상기 제1의 소정 순위에 기초하여 상기 제1의 후보 리스트를 생성할 때, 상기 공간적으로 인접하는 복수의 블록을 상기 제1의 후보 리스트에 배열하는 후보수에 소정의 상한값을 마련하고, 상기 제1의 소정 순위에서 최상위로부터 상기 소정의 상한값만큼의 순위까지의 참조 블록을 이용하여 상기 제1의 후보 리스트를 생성하는 것을 특징으로 하는 화상 인코딩 장치.
[항목 7]
항목 5 또는 항목 6에 있어서,
상기 제2의 모드 검출부는, 상기 공간적으로 인접하는 이미 인코딩된 복수의 블록 중, 상기 인코딩 대상 블록의 좌측에 배치된 블록을 좌측 블록 그룹, 상기 인코딩 대상 블록의 상측에 배치된 블록을 상측 블록 그룹으로 하여, 상기 블록 그룹 중에서 각각의 상기 블록 그룹을 대표하는 후보를 도출하고, 상기 좌측 블록 그룹의 후보, 상기 상측 블록 그룹의 후보의 차례로 상기 제2의 소정 순위를 마련하여, 상기 제2의 후보 리스트를 생성하는 것을 특징으로 하는 화상 인코딩 장치.
[항목 8]
항목 1 내지 항목 7 중의 어느 한 항목에 있어서,
상기 제1의 모드 검출부는, 상기 제1의 후보 리스트에 배열되는 참조 블록 후보의 최대 개수를 설정하고, 상기 참조 블록 후보의 최대 개수에 기초하여 상기 제1의 후보 리스트를 생성하고,
상기 인코딩열 생성부는, 상기 참조 블록 후보의 최대 개수를 나타내는 정보를 인코딩하여 인코딩열에 포함시키는 것을 특징으로 하는 화상 인코딩 장치.
[항목 9]
동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩하는 화상 인코딩 방법이고,
인코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제1스텝;
인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드에 있어서, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스를 출력하는 제2스텝;
인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩 대상 블록의 움직임 벡터의 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드에 있어서, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제2의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스 및 상기 차분 움직임 벡터를 출력하는 제3스텝;
상기 제2스텝 및 상기 제3스텝에 의해 출력되는 출력 결과를 바탕으로, 상기 인코딩 대상 블록마다의 참조 블록과 화상간 예측 모드를 결정하는 제4스텝;
상기 제4스텝에 의해 결정된 참조 블록의 인덱스와, 상기 제4스텝에 의해 결정된 화상간 예측 모드를 나타내는 예측 모드 정보와, 제2의 화상간 예측 모드가 결정된 경우의 참조 블록에 대응한 상기 차분 움직임 벡터를 인코딩하는 제5스텝을 포함하고,
상기 제2스텝 및 상기 제3스텝은, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하는 것을 특징으로 하는 화상 인코딩 방법.
[항목 10]
동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩하는 화상 인코딩 프로그램이고,
인코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제1처리;
인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드에 있어서, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스를 출력하는 제2처리;
인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩 대상 블록의 움직임 벡터의 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드에 있어서, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제2의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스 및 상기 차분 움직임 벡터를 출력하는 제3처리;
상기 제2처리 및 상기 제3처리에 의해 출력되는 출력 결과를 바탕으로, 상기 인코딩 대상 블록마다의 참조 블록과 화상간 예측 모드를 결정하는 제4처리;
상기 제4처리에 의해 결정된 참조 블록의 인덱스와, 상기 제4처리에 의해 결정된 화상간 예측 모드를 나타내는 예측 모드 정보와, 제2의 화상간 예측 모드가 결정된 경우의 참조 블록에 대응한 상기 차분 움직임 벡터를 인코딩하는 제5처리를 컴퓨터에 실행시키고,
상기 제2처리 및 상기 제3처리는, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하는 것을 특징으로 하는 화상 인코딩 프로그램.
[항목 11]
동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩된 인코딩열을 디코딩하는 화상 디코딩 장치이고,
상기 인코딩열로부터 디코딩 대상 블록마다, 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스, 또는 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스와 참조 블록에 대응한 차분 움직임 벡터를 디코딩하는 인코딩열 디코딩부;
상기 디코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 취득부;
상기 인코딩열 디코딩부에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드인 경우에, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 인코딩열 디코딩부에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제1의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 그 인코딩 정보를 출력하는 제1의 모드 출력부;
상기 인코딩열 디코딩부에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록에 대응한 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드인 경우에, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 인코딩열 디코딩부에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제2의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 해당 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩열 디코딩부에 의해 디코딩된 차분 움직임 벡터로부터 상기 디코딩 대상 블록의 움직임 벡터를 도출(derivate)하여 출력하는 제2의 모드 출력부;
상기 제1의 모드 출력부 또는 상기 제2의 모드 출력부에서 출력된 정보를 바탕으로, 상기 인코딩열 디코딩부에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드를 사용하여 움직임 보상을 행동 예측 화상을 생성하는 움직임 보상 예측부를 구비하고,
상기 제1의 모드 출력부 및 상기 제2의 모드 출력부는, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하는 것을 특징으로 하는 화상 디코딩 장치.
[항목 12]
항목 11에 있어서,
상기 제1의 모드 출력부는, 상기 제1의 소정 순위가 높은 참조 블록 후보의 인덱스일수록 적은 코드워드를 할당하는 것을 특징으로 하는 화상 디코딩 장치.
[항목 13]
항목 11 또는 항목 12에 있어서,
상기 제1의 모드 출력부에 의해 생성되는 상기 제1의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제2의 모드 출력부에 의해 생성되는 상기 제2의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 화상 디코딩 장치.
[항목 14]
항목 11 내지 항목 13 중의 어느 한 항목에 있어서,
상기 제1의 모드 출력부는, 상기 복수의 참조 블록 후보의 수를 제한하여, 상기 복수의 참조 블록 후보의 상기 제1의 후보 리스트를 생성하고,
상기 제2의 모드 출력부는, 상기 복수의 참조 블록 후보의 수를 제한하여, 상기 복수의 참조 블록 후보의 상기 제2의 후보 리스트를 생성하는 것을 특징으로 하는 화상 디코딩 장치.
[항목 15]
항목 11 내지 항목 14 중의 어느 한 항목에 있어서,
상기 복수의 참조 블록 후보에는, 상기 디코딩 대상 블록에 공간적으로 인접하는 이미 디코딩된 블록과, 상기 디코딩 대상 블록을 포함하는 픽처와 시간적으로 상이한 픽처에 포함되는 블록을 포함하고,
상기 제1의 모드 출력부 및 상기 제2의 모드 출력부는, 상기 복수의 참조 블록 후보에 있어서, 상기 시간적으로 상이한 픽처에 포함되는 블록의 상기 제1의 소정 순위 및 제2의 소정 순위에 있어서의 순위는, 상기 공간적으로 인접하는 블록의 상기 제1의 소정 순위 및 제2의 소정 순위에 있어서의 순위보다 낮게 설정하는 것을 특징으로 하는 화상 디코딩 장치.
[항목 16]
항목 15에 있어서,
상기 제1의 모드 출력부는, 상기 공간적으로 인접하는 이미 디코딩된 복수의 블록에 대해, 상기 제1의 소정 순위에 기초하여 상기 제1의 후보 리스트를 생성할 때, 상기 공간적으로 인접하는 복수의 블록을 상기 제1의 후보 리스트에 배열하는 후보수에 소정의 상한값을 마련하고, 상기 제1의 소정 순위에서 최상위로부터 상기 소정의 상한값만큼의 순위까지의 참조 블록을 이용하여 상기 제1의 후보 리스트를 생성하는 것을 특징으로 하는 화상 디코딩 장치.
[항목 17]
항목 15 또는 항목 16에 있어서,
상기 제2의 모드 출력부는, 상기 공간적으로 인접하는 이미 디코딩된 복수의 블록 중, 상기 디코딩 대상 블록의 좌측에 배치된 블록을 좌측 블록 그룹, 상기 디코딩 대상 블록의 상측에 배치된 블록을 상측 블록 그룹으로 하여, 상기 블록 그룹 중에서 각각의 상기 블록 그룹을 대표하는 후보를 도출하고, 상기 좌측 블록 그룹의 후보, 상기 상측 블록 그룹의 후보의 차례로 상기 제2의 소정 순위를 마련하여, 상기 제2의 후보 리스트를 생성하는 것을 특징으로 하는 화상 디코딩 장치.
[항목 18]
항목 11 내지 항목 17 중의 어느 한 항목에 있어서,
상기 제1의 모드 출력부는, 상기 인코딩열 디코딩부에 의해 상기 인코딩열로부터 디코딩된 상기 제1의 후보 리스트에 배열되는 참조 블록 후보의 최대 개수에 기초하여, 상기 제1의 후보 리스트를 생성하는 것을 특징으로 하는 화상 디코딩 장치.
[항목 19]
동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩된 인코딩열을 디코딩하는 화상 디코딩 방법이고,
상기 인코딩열로부터 디코딩 대상 블록마다, 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스, 또는 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스와 참조 블록에 대응한 차분 움직임 벡터를 디코딩하는 제1스텝;
상기 디코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제2스텝;
상기 제1스텝에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드인 경우에, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1스텝에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제1의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 그 인코딩 정보를 출력하는 제3스텝;
상기 제1스텝에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록에 대응한 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드인 경우에, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제1스텝에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제2의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 해당 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 제1스텝에 의해 디코딩된 차분 움직임 벡터로부터 상기 디코딩 대상 블록의 움직임 벡터를 도출(derivate)하여 출력하는 제4스텝;
상기 제3스텝 또는 상기 제4스텝에 의해 출력된 정보를 바탕으로, 상기 제1스텝에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드를 사용하여 움직임 보상을 하여 예측 화상을 생성하는 제5스텝을 포함하고,
상기 제3스텝 및 상기 제4스텝은, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하는 것을 특징으로 하는 화상 디코딩 방법.
[항목 20]
동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩된 인코딩열을 디코딩하는 화상 디코딩 프로그램이고,
상기 인코딩열로부터 디코딩 대상 블록마다, 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스, 또는 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스와 참조 블록에 대응한 차분 움직임 벡터를 디코딩하는 제1처리;
상기 디코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제2처리;
상기 제1처리에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드인 경우에, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1처리에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제1의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 그 인코딩 정보를 출력하는 제3처리;
상기 제1처리에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록에 대응한 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드인 경우에, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제1처리에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제2의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 해당 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 제1처리에 의해 디코딩된 차분 움직임 벡터로부터 상기 디코딩 대상 블록의 움직임 벡터를 도출(derivate)하여 출력하는 제4처리;
상기 제3처리 또는 상기 제4처리에 의해 출력된 정보를 바탕으로, 상기 제1처리에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드를 사용하여 움직임 보상을 하여 예측 화상을 생성하는 제5처리를 컴퓨터에 실행시키고,
상기 제3처리 및 상기 제4처리는, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하는 것을 특징으로 하는 화상 디코딩 프로그램.
본 발명은, 움직임 보상 예측을 이용한 동영상 인코딩 및 디코딩 기술에 이용할 수 있다.
100: 동영상 인코딩 장치
101: 화상 메모리
102: 움직임 벡터 추정부
103: 움직임 벡터 예측부
104: 인터 예측 정보 검출부
105: 움직임 보상 예측부
106: 머지 검출부
107: 예측 방법 결정부
108: 스위치
109: 제1의 인코딩 비트열 생성부
110: 잔차 신호 생성부
111: 직교 변환·양자화부
112: 역양자화·역직교 변환부
113: 디코딩 화상 신호 중첩부
114: 인코딩 정보 저장 메모리
115: 디코딩 화상 메모리
116: 제2의 인코딩 비트열 생성부
117: 인코딩 비트열 다중화부
200: 동영상 디코딩 장치
201: 비트열 분리부
202: 제1의 인코딩 비트열 디코딩부
203: 제2의 인코딩 비트열 디코딩부
204: 움직임 벡터 도출부
205: 인터 예측 정보 검출부
206: 머지 판정부
207: 움직임 보상 예측부
208: 역양자화·역직교 변환부
209: 디코딩 화상 신호 중첩부
210: 인코딩 정보 저장 메모리
211: 디코딩 화상 메모리
212: 스위치
301: 처리 대상 블록 위치 검출부
302: 인접 블록 지정부
303: 일시 메모리
310: 인코딩 정보 도출부
311: 참조 후보 리스트 작성부
312: 동일 정보 검출부
313: 출력부
314: 참조 후보 리스트 저장 메모리
315: 선택부
318: 참조 후보 제한부
320: 인코딩 정보 도출부
321: 참조 후보 리스트 작성부
322: 동일 정보 검출부
323: 출력부
324: 참조 후보 리스트 저장 메모리
326: 차분 움직임 벡터 도출부
328: 참조 후보 제한부
329: 참조 후보 제어부

Claims (20)

  1. 동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩하는 화상 인코딩 장치이고,
    인코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 취득부;
    인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드에 있어서, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스를 출력하는 제1의 모드 검출부;
    인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩 대상 블록의 움직임 벡터의 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드에 있어서, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제2의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스 및 상기 차분 움직임 벡터를 출력하는 제2의 모드 검출부를 구비하는 것을 특징으로 하는 화상 인코딩 장치.
  2. 제1항에 있어서,
    참조 블록의 인덱스와, 화상간 예측 모드를 나타내는 예측 모드 정보와, 상기 제2의 화상간 예측 모드가 결정된 경우의 참조 블록에 대응한 상기 차분 움직임 벡터를 인코딩하는 인코딩열 생성부를 구비하고,
    상기 제1의 모드 검출부 및 상기 제2의 모드 검출부는, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하고,
    상기 제1의 모드 검출부에 의해 생성되는 상기 제1의 후보 리스트에 상기 복수의 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제2의 모드 검출부에 의해 생성되는 상기 제2의 후보 리스트에 상기 복수의 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 화상 인코딩 장치.
  3. 동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩하는 화상 인코딩 방법이고,
    인코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제1스텝;
    인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드에 있어서, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스를 출력하는 제2스텝;
    인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩 대상 블록의 움직임 벡터의 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드에 있어서, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제2의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스 및 상기 차분 움직임 벡터를 출력하는 제3스텝;
    상기 제2스텝 및 상기 제3스텝에 의해 출력되는 출력 결과를 바탕으로, 상기 인코딩 대상 블록마다의 참조 블록과 화상간 예측 모드를 결정하는 제4스텝;
    상기 제4스텝에 의해 결정된 참조 블록의 인덱스와, 상기 제4스텝에 의해 결정된 화상간 예측 모드를 나타내는 예측 모드 정보와, 제2의 화상간 예측 모드가 결정된 경우의 참조 블록에 대응한 상기 차분 움직임 벡터를 인코딩하는 제5스텝을 포함하고,
    상기 제2스텝 및 상기 제3스텝은, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하고,
    상기 제2스텝에 의해 생성되는 상기 제1의 후보 리스트에 상기 복수의 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제3스텝에 의해 생성되는 상기 제2의 후보 리스트에 상기 복수의 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 화상 인코딩 방법.
  4. 동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩하는 화상 인코딩 프로그램을 저장한 기록 매체이고,
    인코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제1처리;
    인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드에 있어서, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스를 출력하는 제2처리;
    인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩 대상 블록의 움직임 벡터의 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드에 있어서, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제2의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스 및 상기 차분 움직임 벡터를 출력하는 제3처리;
    상기 제2처리 및 상기 제3처리에 의해 출력되는 출력 결과를 바탕으로, 상기 인코딩 대상 블록마다의 참조 블록과 화상간 예측 모드를 결정하는 제4처리;
    상기 제4처리에 의해 결정된 참조 블록의 인덱스와, 상기 제4처리에 의해 결정된 화상간 예측 모드를 나타내는 예측 모드 정보와, 제2의 화상간 예측 모드가 결정된 경우의 참조 블록에 대응한 상기 차분 움직임 벡터를 인코딩하는 제5처리를 컴퓨터에 실행시키고,
    상기 제2처리 및 상기 제3처리는, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하고,
    상기 제2처리에 의해 생성되는 상기 제1의 후보 리스트에 상기 복수의 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제3처리에 의해 생성되는 상기 제2의 후보 리스트에 상기 복수의 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 기록 매체.
  5. 동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩된 인코딩열을 디코딩하는 화상 디코딩 장치이고,
    상기 인코딩열로부터 디코딩 대상 블록마다, 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스, 또는 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스와 참조 블록에 대응한 차분 움직임 벡터를 디코딩하는 인코딩열 디코딩부;
    상기 디코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 취득부;
    상기 인코딩열 디코딩부에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드인 경우에, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 인코딩열 디코딩부에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제1의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 그 인코딩 정보를 출력하는 제1의 모드 출력부;
    상기 인코딩열 디코딩부에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록에 대응한 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드인 경우에, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 인코딩열 디코딩부에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제2의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 해당 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩열 디코딩부에 의해 디코딩된 차분 움직임 벡터로부터 상기 디코딩 대상 블록의 움직임 벡터를 도출(derivate)하여 출력하는 제2의 모드 출력부;
    상기 제1의 모드 출력부 또는 상기 제2의 모드 출력부에서 출력된 정보를 바탕으로, 상기 인코딩열 디코딩부에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드를 사용하여 움직임 보상을 행동 예측 화상을 생성하는 움직임 보상 예측부를 구비하고,
    상기 제1의 모드 출력부 및 상기 제2의 모드 출력부는, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하고,
    상기 제1의 모드 출력부에 의해 생성되는 상기 제1의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제2의 모드 출력부에 의해 생성되는 상기 제2의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 화상 디코딩 장치.
  6. 동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩된 인코딩열을 디코딩하는 화상 디코딩 방법이고,
    상기 인코딩열로부터 디코딩 대상 블록마다, 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스, 또는 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스와 참조 블록에 대응한 차분 움직임 벡터를 디코딩하는 제1스텝;
    상기 디코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제2스텝;
    상기 제1스텝에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드인 경우에, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1스텝에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제1의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 그 인코딩 정보를 출력하는 제3스텝;
    상기 제1스텝에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록에 대응한 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드인 경우에, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제1스텝에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제2의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 해당 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 제1스텝에 의해 디코딩된 차분 움직임 벡터로부터 상기 디코딩 대상 블록의 움직임 벡터를 도출(derivate)하여 출력하는 제4스텝;
    상기 제3스텝 또는 상기 제4스텝에 의해 출력된 정보를 바탕으로, 상기 제1스텝에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드를 사용하여 움직임 보상을 하여 예측 화상을 생성하는 제5스텝을 포함하고,
    상기 제3스텝 및 상기 제4스텝은, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하고,
    상기 제3스텝에 의해 생성되는 상기 제1의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제4스텝에 의해 생성되는 상기 제2의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 화상 디코딩 방법.
  7. 동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩된 인코딩열을 디코딩하는 화상 디코딩 프로그램을 저장한 기록 매체이고,
    상기 인코딩열로부터 디코딩 대상 블록마다, 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스, 또는 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스와 참조 블록에 대응한 차분 움직임 벡터를 디코딩하는 제1처리;
    상기 디코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제2처리;
    상기 제1처리에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드인 경우에, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1처리에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제1의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 그 인코딩 정보를 출력하는 제3처리;
    상기 제1처리에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록에 대응한 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드인 경우에, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제1처리에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제2의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 해당 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 제1처리에 의해 디코딩된 차분 움직임 벡터로부터 상기 디코딩 대상 블록의 움직임 벡터를 도출(derivate)하여 출력하는 제4처리;
    상기 제3처리 또는 상기 제4처리에 의해 출력된 정보를 바탕으로, 상기 제1처리에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드를 사용하여 움직임 보상을 하여 예측 화상을 생성하는 제5처리를 컴퓨터에 실행시키고,
    상기 제3처리 및 상기 제4처리는, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하고,
    상기 제3처리에 의해 생성되는 상기 제1의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제4처리에 의해 생성되는 상기 제2의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 기록 매체.
  8. 동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩하는 화상 인코딩 방법에 의해 인코딩된 인코딩열을 패킷화하여 인코딩 스트림을 얻는 패킷 처리부와, 패킷화된 상기 인코딩 스트림을 송신하는 송신부를 구비하고,
    상기 화상 인코딩 방법은,
    인코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제1스텝;
    인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드에 있어서, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스를 출력하는 제2스텝;
    인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩 대상 블록의 움직임 벡터의 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드에 있어서, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제2의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스 및 상기 차분 움직임 벡터를 출력하는 제3스텝;
    상기 제2스텝 및 상기 제3스텝에 의해 출력되는 출력 결과를 바탕으로, 상기 인코딩 대상 블록마다의 참조 블록과 화상간 예측 모드를 결정하는 제4스텝;
    상기 제4스텝에 의해 결정된 참조 블록의 인덱스와, 상기 제4스텝에 의해 결정된 화상간 예측 모드를 나타내는 예측 모드 정보와, 제2의 화상간 예측 모드가 결정된 경우의 참조 블록에 대응한 상기 차분 움직임 벡터를 인코딩하는 제5스텝을 포함하고,
    상기 제2스텝 및 상기 제3스텝은, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하고,
    상기 제2스텝에 의해 생성되는 상기 제1의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제3스텝에 의해 생성되는 상기 제2의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 송신 장치.
  9. 동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩하는 화상 인코딩 방법에 의해 인코딩된 인코딩열을 패킷화하여 인코딩 스트림을 얻는 패킷 처리 스텝;
    패킷화된 상기 인코딩 스트림을 송신하는 송신 스텝을 포함하고,
    상기 화상 인코딩 방법은,
    인코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제1스텝;
    인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드에 있어서, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스를 출력하는 제2스텝;
    인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩 대상 블록의 움직임 벡터의 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드에 있어서, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제2의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스 및 상기 차분 움직임 벡터를 출력하는 제3스텝;
    상기 제2스텝 및 상기 제3스텝에 의해 출력되는 출력 결과를 바탕으로, 상기 인코딩 대상 블록마다의 참조 블록과 화상간 예측 모드를 결정하는 제4스텝;
    상기 제4스텝에 의해 결정된 참조 블록의 인덱스와, 상기 제4스텝에 의해 결정된 화상간 예측 모드를 나타내는 예측 모드 정보와, 제2의 화상간 예측 모드가 결정된 경우의 참조 블록에 대응한 상기 차분 움직임 벡터를 인코딩하는 제5스텝을 포함하고,
    상기 제2스텝 및 상기 제3스텝은, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하고,
    상기 제2스텝에 의해 생성되는 상기 제1의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제3스텝에 의해 생성되는 상기 제2의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 송신 방법.
  10. 동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩하는 화상 인코딩 방법에 의해 인코딩된 인코딩열을 패킷화하여 인코딩 스트림을 얻는 패킷 처리;
    패킷화된 상기 인코딩 스트림을 송신하는 송신 처리를 컴퓨터에 실행시키고,
    상기 화상 인코딩 방법은,
    인코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제1스텝;
    인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드에 있어서, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제1의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스를 출력하는 제2스텝;
    인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩 대상 블록의 움직임 벡터의 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드에 있어서, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제2의 후보 리스트에 등록된 참조 블록 후보를 특정하기 위한 인덱스를 부여하여, 상기 복수의 참조 블록 후보의 인덱스 및 상기 차분 움직임 벡터를 출력하는 제3스텝;
    상기 제2스텝 및 상기 제3스텝에 의해 출력되는 출력 결과를 바탕으로, 상기 인코딩 대상 블록마다의 참조 블록과 화상간 예측 모드를 결정하는 제4스텝;
    상기 제4스텝에 의해 결정된 참조 블록의 인덱스와, 상기 제4스텝에 의해 결정된 화상간 예측 모드를 나타내는 예측 모드 정보와, 제2의 화상간 예측 모드가 결정된 경우의 참조 블록에 대응한 상기 차분 움직임 벡터를 인코딩하는 제5스텝을 포함하고
    상기 제2스텝 및 상기 제3스텝은, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하고,
    상기 제2스텝에 의해 생성되는 상기 제1의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제3스텝에 의해 생성되는 상기 제2의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 송신 프로그램을 저장한 기록 매체.
  11. 동영상이 인코딩된 인코딩열을 수신하여 디코딩하는 수신 장치이고,
    동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩된 인코딩열이 패킷화된 인코딩 스트림을 수신하는 수신부;
    수신된 상기 패킷화된 인코딩 스트림을 패킷 처리하여 원래의 인코딩열을 복원하는 복원부;
    상기 인코딩열로부터 디코딩 대상 블록마다, 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스, 또는 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스와 참조 블록에 대응한 차분 움직임 벡터를 디코딩하는 인코딩열 디코딩부;
    상기 디코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 취득부;
    상기 인코딩열 디코딩부에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드인 경우에, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 인코딩열 디코딩부에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제1의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 그 인코딩 정보를 출력하는 제1의 모드 출력부;
    상기 인코딩열 디코딩부에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록에 대응한 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드인 경우에, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 인코딩열 디코딩부에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제2의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 해당 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 인코딩열 디코딩부에 의해 디코딩된 차분 움직임 벡터로부터 상기 디코딩 대상 블록의 움직임 벡터를 도출(derivate)하여 출력하는 제2의 모드 출력부;
    상기 제1의 모드 출력부 또는 상기 제2의 모드 출력부에서 출력된 정보를 바탕으로, 상기 인코딩열 디코딩부에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드를 사용하여 움직임 보상을 하여 예측 화상을 생성하는 움직임 보상 예측부를 구비하고,
    상기 제1의 모드 출력부 및 상기 제2의 모드 출력부는, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하고,
    상기 제1의 모드 출력부에 의해 생성되는 상기 제1의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제2의 모드 출력부에 의해 생성되는 상기 제2의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 수신 장치.
  12. 동영상이 인코딩된 인코딩열을 수신하여 디코딩하는 수신 방법이고,
    동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩된 인코딩열이 패킷화된 인코딩 스트림을 수신하는 제1스텝;
    수신된 상기 패킷화된 인코딩 스트림을 패킷 처리하여 원래의 인코딩열을 복원하는 제2스텝;
    상기 인코딩열로부터 디코딩 대상 블록마다, 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스, 또는 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스와 참조 블록에 대응한 차분 움직임 벡터를 디코딩하는 제3스텝;
    상기 디코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제4스텝;
    상기 제3스텝에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드인 경우에, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제3스텝에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제1의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 그 인코딩 정보를 출력하는 제5스텝;
    상기 제3스텝에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록에 대응한 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드인 경우에, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제3스텝에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제2의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 해당 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 제3스텝에 의해 디코딩된 차분 움직임 벡터로부터 상기 디코딩 대상 블록의 움직임 벡터를 도출(derivate)하여 출력하는 제6스텝;
    상기 제5스텝 또는 상기 제6스텝에 의해 출력된 정보를 바탕으로, 상기 제3스텝에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드를 사용하여 움직임 보상을 하여 예측 화상을 생성하는 제7스텝을 포함하고,
    상기 제5스텝 및 상기 제6스텝은, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하고,
    상기 제5스텝에 의해 생성되는 상기 제1의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제6스텝에 의해 생성되는 상기 제2의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 수신 방법.
  13. 동영상이 인코딩된 인코딩열을 수신하여 디코딩하는 수신 프로그램을 저장한 기록 매체이고,
    동영상의 각 픽처를 분할한 블록 단위로 움직임 벡터를 사용하여 인코딩된 인코딩열이 패킷화된 인코딩 스트림을 수신하는 제1처리;
    수신된 상기 패킷화된 인코딩 스트림을 패킷 처리하여 원래의 인코딩열을 복원하는 제2처리;
    상기 인코딩열로부터 디코딩 대상 블록마다, 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스, 또는 화상간 예측 모드를 나타내는 예측 모드 정보와 참조 블록의 인덱스와 참조 블록에 대응한 차분 움직임 벡터를 디코딩하는 제3처리;
    상기 디코딩 대상 블록의 복수의 참조 블록 후보의 인코딩 정보를 취득하는 제4처리;
    상기 제3처리에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보를 사용하는 제1의 화상간 예측 모드인 경우에, 제1의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제1의 후보 리스트를 생성하고, 상기 제3처리에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제1의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 그 인코딩 정보를 출력하는 제5처리;
    상기 제3처리에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드가, 인덱스에 의해 특정되는 참조 블록에 대응한 차분 움직임 벡터를 사용하는 제2의 화상간 예측 모드인 경우에, 제2의 소정 순위에 기초하여 상기 복수의 참조 블록 후보로부터 제2의 후보 리스트를 생성하고, 상기 제3처리에 의해 디코딩된 참조 블록의 인덱스를 바탕으로, 상기 제2의 후보 리스트로부터 상기 디코딩 대상 블록의 참조 블록을 특정하고, 해당 참조 블록의 상기 인코딩 정보가 갖는 움직임 벡터의 정보에 기초하는 예측 움직임 벡터와 상기 제3처리에 의해 디코딩된 차분 움직임 벡터로부터 상기 디코딩 대상 블록의 움직임 벡터를 도출(derivate)하여 출력하는 제6처리;
    상기 제5처리 또는 상기 제6처리에 의해 출력된 정보를 바탕으로, 상기 제3처리에 의해 디코딩된 예측 모드 정보가 나타내는 화상간 예측 모드를 사용하여 움직임 보상을 하여 예측 화상을 생성하는 제7처리를 컴퓨터에 실행시키고,
    상기 제5처리 및 상기 제6처리는, 상기 복수의 참조 블록 후보로서, 공통의 복수의 블록을 사용하고,
    상기 제5처리에 의해 생성되는 상기 제1의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제1의 소정 순위와, 상기 제6처리에 의해 생성되는 상기 제2의 후보 리스트에 참조 블록 후보를 배열하기 위한 상기 제2의 소정 순위는 상이한 것을 특징으로 하는 기록 매체.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020147002478A 2011-06-30 2012-06-26 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램 KR101598306B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2011146770A JP5246303B2 (ja) 2011-06-30 2011-06-30 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法、及び受信プログラム
JPJP-P-2011-146770 2011-06-30
JP2011146769A JP5644701B2 (ja) 2011-06-30 2011-06-30 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム
JPJP-P-2011-146769 2011-06-30
PCT/JP2012/004135 WO2013001793A1 (ja) 2011-06-30 2012-06-26 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020167003743A Division KR101681011B1 (ko) 2011-06-30 2012-06-26 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램
KR1020157017292A Division KR101729429B1 (ko) 2011-06-30 2012-06-26 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램

Publications (2)

Publication Number Publication Date
KR20140031384A KR20140031384A (ko) 2014-03-12
KR101598306B1 true KR101598306B1 (ko) 2016-02-26

Family

ID=47423713

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020177014687A KR101777097B1 (ko) 2011-06-30 2012-06-26 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램
KR1020167032508A KR101744468B1 (ko) 2011-06-30 2012-06-26 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램
KR1020157017292A KR101729429B1 (ko) 2011-06-30 2012-06-26 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램
KR1020167003743A KR101681011B1 (ko) 2011-06-30 2012-06-26 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램
KR1020147002478A KR101598306B1 (ko) 2011-06-30 2012-06-26 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램

Family Applications Before (4)

Application Number Title Priority Date Filing Date
KR1020177014687A KR101777097B1 (ko) 2011-06-30 2012-06-26 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램
KR1020167032508A KR101744468B1 (ko) 2011-06-30 2012-06-26 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램
KR1020157017292A KR101729429B1 (ko) 2011-06-30 2012-06-26 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램
KR1020167003743A KR101681011B1 (ko) 2011-06-30 2012-06-26 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램

Country Status (9)

Country Link
US (5) US8982956B2 (ko)
EP (5) EP2728882B1 (ko)
KR (5) KR101777097B1 (ko)
CN (5) CN106851267B (ko)
BR (1) BR112013033818B1 (ko)
HU (3) HUE053035T2 (ko)
PL (3) PL3422714T3 (ko)
TW (5) TWI521951B (ko)
WO (1) WO2013001793A1 (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9374598B2 (en) 2011-03-21 2016-06-21 Lg Electronics Inc. Method for selecting motion vector predictor and device using same
PL3422714T3 (pl) * 2011-06-30 2021-05-31 JVC Kenwood Corporation Urządzenie do kodowania obrazu, sposób kodowania obrazu, program do kodowania obrazu, urządzenie do dekodowania obrazu, sposób dekodowania obrazu i program do dekodowania obrazu
JP6422011B2 (ja) 2012-05-11 2018-11-14 サン パテント トラスト 動画像符号化方法、動画像復号化方法、動画像符号化装置および動画像復号化装置
WO2014155290A1 (en) * 2013-03-25 2014-10-02 Imax Corporation Enhancing motion pictures with accurate motion information
WO2014163458A1 (ko) * 2013-04-05 2014-10-09 삼성전자주식회사 인터 레이어 복호화 및 부호화 방법 및 장치를 위한 인터 예측 후보 결정 방법
US10070070B2 (en) * 2014-05-28 2018-09-04 Mediatek Inc. Video processing apparatus with transform unit size selection, mode information unit size selection and/or picture width/height decision, and related video processing method thereof
US20150350686A1 (en) * 2014-05-29 2015-12-03 Apple Inc. Preencoder assisted video encoding
CN112188207B (zh) * 2014-10-31 2023-10-20 三星电子株式会社 使用高精度跳过编码的视频编码设备和视频解码设备及其方法
KR20160131526A (ko) * 2015-05-07 2016-11-16 삼성전자주식회사 시스템 온 칩, 상기 시스템 온 칩을 포함하는 디스플레이 시스템, 및 상기 디스플레이 시스템의 동작 방법
KR20170026276A (ko) * 2015-08-28 2017-03-08 주식회사 케이티 비디오 신호 처리 방법 및 장치
EP3416623B1 (en) 2016-02-15 2021-08-11 University of Georgia Research Foundation, Inc. Ipa-3-loaded liposomes and methods of use thereof
CN109155847A (zh) 2016-03-24 2019-01-04 英迪股份有限公司 用于编码/解码视频信号的方法和装置
US20190158860A1 (en) * 2016-05-13 2019-05-23 Sharp Kabushiki Kaisha Video decoding device
TWI610558B (zh) * 2016-05-26 2018-01-01 晨星半導體股份有限公司 位元分配方法及視訊編碼裝置
EP3627838A4 (en) 2017-06-26 2020-04-08 Panasonic Intellectual Property Corporation of America ENCODING DEVICE, DECODING DEVICE, ENCODING METHOD, AND DECODING METHOD
CN111279388A (zh) * 2017-10-25 2020-06-12 株式会社索思未来 动态图像处理装置、动态图像处理系统、以及动态图像处理方法
WO2019112072A1 (ko) * 2017-12-04 2019-06-13 엘지전자 주식회사 영상 코딩 시스템에서 수정된 움직임 정보 후보 리스트에 기반한 영상 디코딩 방법 및 장치
US10491897B2 (en) 2018-04-13 2019-11-26 Google Llc Spatially adaptive quantization-aware deblocking filter
US10469869B1 (en) * 2018-06-01 2019-11-05 Tencent America LLC Method and apparatus for video coding
CA3101730A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Partial/full pruning when adding a hmvp candidate to merge/amvp
TWI744662B (zh) 2018-06-29 2021-11-01 大陸商北京字節跳動網絡技術有限公司 更新查閱資料表(lut)的條件
KR20240005240A (ko) 2018-06-29 2024-01-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
CA3105330C (en) 2018-06-29 2023-12-05 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
EP3791589A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Which lut to be updated or no updating
CN110662053B (zh) 2018-06-29 2022-03-25 北京字节跳动网络技术有限公司 使用查找表的视频处理方法、装置和存储介质
CN110662059B (zh) 2018-06-29 2021-04-20 北京字节跳动网络技术有限公司 使用查找表存储先前编码的运动信息并用其编码后续块的方法和装置
TWI723445B (zh) 2018-06-29 2021-04-01 大陸商北京字節跳動網絡技術有限公司 查找表的更新:fifo、約束的fifo
CN110677666B (zh) 2018-07-02 2022-06-14 北京字节跳动网络技术有限公司 Lamvr中取整和修剪的顺序
BR112021001384A2 (pt) * 2018-08-06 2021-04-20 Electronics And Telecommunications Research Institute método e dispositivo para codificação/decodificação de imagens, e mídia de gravação que armazena fluxo de bits
CN110868601B (zh) * 2018-08-28 2024-03-15 华为技术有限公司 帧间预测方法、装置以及视频编码器和视频解码器
GB2590310B (en) 2018-09-12 2023-03-22 Beijing Bytedance Network Tech Co Ltd Conditions for starting checking HMVP candidates depend on total number minus K
CN112740693A (zh) * 2018-09-21 2021-04-30 韩国电子通信研究院 图像编码/解码方法、装置和具有存储的比特流的记录介质
KR20210084479A (ko) 2018-11-06 2021-07-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 모션 정보의 위치 의존적 저장
US10887611B2 (en) * 2018-12-27 2021-01-05 Qualcomm Incorporated Pruning for illumination compensation mode
KR102583807B1 (ko) * 2018-12-28 2023-09-26 가부시키가이샤 제이브이씨 켄우드 화상 부호화 장치, 화상 부호화 방법, 화상 부호화 프로그램, 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램
CN112954361B (zh) * 2018-12-28 2022-09-13 知识产权之桥一号有限责任公司 图像编解码装置、图像编解码方法
KR20240010576A (ko) 2019-01-10 2024-01-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut 업데이트의 호출
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
CN113330739A (zh) 2019-01-16 2021-08-31 北京字节跳动网络技术有限公司 Lut中的运动候选的插入顺序
CN111698506B (zh) * 2019-03-11 2022-04-26 杭州海康威视数字技术股份有限公司 运动信息候选者列表构建方法、三角预测解码方法及装置
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
CA3136498A1 (en) * 2019-05-24 2020-12-03 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for using ibc merge list

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3703836C2 (de) 1987-02-07 1995-12-21 Heinrich Lindert Bearbeitungsanlage für Geflügelfleisch
US5883678A (en) * 1995-09-29 1999-03-16 Kabushiki Kaisha Toshiba Video coding and video decoding apparatus for reducing an alpha-map signal at a controlled reduction ratio
JP4034380B2 (ja) * 1996-10-31 2008-01-16 株式会社東芝 画像符号化/復号化方法及び装置
JP3637996B2 (ja) 1997-03-28 2005-04-13 シャープ株式会社 領域統合が可能な動き補償フレーム間予測方式を用いた動画像符号化・復号化装置
KR100407691B1 (ko) * 2000-12-21 2003-12-01 한국전자통신연구원 계층탐색을 이용한 움직임 추정장치 및 방법
JP3823767B2 (ja) * 2001-07-18 2006-09-20 日本電信電話株式会社 動画像の前景背景領域分離方法、及びその方法を用いた条件付画素補填による動画像符号化方法
DE10300048B4 (de) * 2002-01-05 2005-05-12 Samsung Electronics Co., Ltd., Suwon Verfahren und Vorrichtung zur Bildcodierung und -decodierung
JP3944225B2 (ja) * 2002-04-26 2007-07-11 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、画像符号化プログラム及び画像復号プログラム
US20050013498A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
JP4213646B2 (ja) * 2003-12-26 2009-01-21 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法、及び画像復号プログラム。
US8320453B2 (en) * 2005-07-08 2012-11-27 Lg Electronics Inc. Method for modeling coding information of a video signal to compress/decompress the information
CN103118254B (zh) * 2005-09-26 2016-01-20 三菱电机株式会社 运动图像编码装置以及运动图像译码装置
KR20070056627A (ko) * 2005-11-30 2007-06-04 삼성전자주식회사 움직임 추정장치, 움직임 추정방법 및 전역 움직임추정장치
CN104822062B (zh) * 2007-01-08 2018-11-30 诺基亚公司 用于视频编码中扩展空间可分级性的改进层间预测
KR100809354B1 (ko) * 2007-02-02 2008-03-05 삼성전자주식회사 복원된 프레임의 프레임율을 업컨버팅하는 장치 및 방법
JP5025286B2 (ja) * 2007-02-28 2012-09-12 シャープ株式会社 符号化装置及び復号装置
CN101669367A (zh) * 2007-03-02 2010-03-10 Lg电子株式会社 用于解码/编码视频信号的方法及设备
CN100571370C (zh) 2007-05-24 2009-12-16 中兴通讯股份有限公司 将传统iptv终端接入ims域的装置、系统和方法
CN100496127C (zh) * 2007-06-05 2009-06-03 南京大学 Mpeg-2到h.264码的快速转换方法
US8345968B2 (en) * 2007-06-28 2013-01-01 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method and image decoding method
CN101198064A (zh) * 2007-12-10 2008-06-11 武汉大学 一种分辨率分层技术中的运动矢量预测方法
CN101953167B (zh) * 2007-12-20 2013-03-27 高通股份有限公司 减少光晕的图像插值
RU2011104707A (ru) * 2008-07-10 2012-08-20 Мицубиси Электрик Корпорейшн (Jp) Устройство кодирования изображений, устройство декодирования изображений, способ кодирования изображений и способ декодирования изображений
JP5401071B2 (ja) * 2008-10-09 2014-01-29 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法
CN101931739A (zh) * 2009-06-23 2010-12-29 鸿富锦精密工业(深圳)有限公司 绝对误差总和值估算系统及方法
CN101600108B (zh) * 2009-06-26 2011-02-02 北京工业大学 一种多视点视频编码中的运动和视差联合估计方法
CN101860754B (zh) * 2009-12-16 2013-11-13 香港应用科技研究院有限公司 运动矢量编码和解码的方法和装置
US8885711B2 (en) * 2009-12-17 2014-11-11 Sk Telecom Co., Ltd. Image encoding/decoding method and device
KR101457396B1 (ko) * 2010-01-14 2014-11-03 삼성전자주식회사 디블로킹 필터링을 이용한 비디오 부호화 방법과 그 장치, 및 디블로킹 필터링을 이용한 비디오 복호화 방법 및 그 장치
CN103039075B (zh) * 2010-05-21 2015-11-25 Jvc建伍株式会社 图像编码装置、图像编码方法、以及图像解码装置、图像解码方法
KR101449679B1 (ko) * 2010-08-18 2014-10-15 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법, 및 참조픽처 인덱싱 장치 및 방법
US9131239B2 (en) 2011-06-20 2015-09-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
PL3422714T3 (pl) * 2011-06-30 2021-05-31 JVC Kenwood Corporation Urządzenie do kodowania obrazu, sposób kodowania obrazu, program do kodowania obrazu, urządzenie do dekodowania obrazu, sposób dekodowania obrazu i program do dekodowania obrazu
JP5644701B2 (ja) 2011-06-30 2014-12-24 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム
IN2014DN03096A (ko) * 2011-10-17 2015-05-15 Kt Corp

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Yunfei Zheng et al., "Unified Motion Vector Predictors Selection for Merge and AMVP", 2011.03, JCTVC-E396.
Yusuke Itani et al., "Improvement to AMVP/Merge process, 2011.3, JCTVC-E064

Also Published As

Publication number Publication date
EP2728882A4 (en) 2015-03-25
BR112013033818A2 (pt) 2017-02-14
TW201707456A (zh) 2017-02-16
CN107105228B (zh) 2020-03-20
CN107105227A (zh) 2017-08-29
US8982956B2 (en) 2015-03-17
US20140219356A1 (en) 2014-08-07
KR20140031384A (ko) 2014-03-12
EP3419289B1 (en) 2020-12-23
KR20160023917A (ko) 2016-03-03
HUE052633T2 (hu) 2021-05-28
KR101777097B1 (ko) 2017-09-08
KR101744468B1 (ko) 2017-06-07
US9363529B2 (en) 2016-06-07
KR20150085093A (ko) 2015-07-22
CN103609120B (zh) 2016-09-28
KR101729429B1 (ko) 2017-04-21
CN107105227B (zh) 2019-10-25
US20170105000A1 (en) 2017-04-13
EP3419289A1 (en) 2018-12-26
TWI605708B (zh) 2017-11-11
HUE053035T2 (hu) 2021-06-28
TWI563835B (ko) 2016-12-21
KR101681011B1 (ko) 2016-11-29
CN107105228A (zh) 2017-08-29
TWI605707B (zh) 2017-11-11
EP3422714A1 (en) 2019-01-02
US20150131734A1 (en) 2015-05-14
US20160080759A1 (en) 2016-03-17
EP3285489B1 (en) 2019-04-24
TW201309039A (zh) 2013-02-16
CN107071403A (zh) 2017-08-18
EP3419290A1 (en) 2018-12-26
CN106851267A (zh) 2017-06-13
EP3422714B1 (en) 2020-12-23
PL3419289T3 (pl) 2021-04-19
KR20160139044A (ko) 2016-12-06
US20160241857A1 (en) 2016-08-18
CN107071403B (zh) 2019-09-24
EP3285489A1 (en) 2018-02-21
PL3419290T3 (pl) 2021-05-31
WO2013001793A1 (ja) 2013-01-03
US9800873B2 (en) 2017-10-24
TWI577183B (zh) 2017-04-01
TW201722159A (zh) 2017-06-16
PL3422714T3 (pl) 2021-05-31
CN106851267B (zh) 2019-10-22
HUE052632T2 (hu) 2021-05-28
US9706208B2 (en) 2017-07-11
KR20170064554A (ko) 2017-06-09
CN103609120A (zh) 2014-02-26
EP2728882B1 (en) 2017-11-22
BR112013033818B1 (pt) 2020-02-04
EP2728882A1 (en) 2014-05-07
TW201722158A (zh) 2017-06-16
EP3419290B1 (en) 2020-12-23
US9191680B2 (en) 2015-11-17
TWI521951B (zh) 2016-02-11
TW201608879A (zh) 2016-03-01

Similar Documents

Publication Publication Date Title
KR101598306B1 (ko) 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램
JP6252654B2 (ja) 画像復号装置、画像復号方法、及び画像復号プログラム
JP5644701B2 (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム
JP6036976B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
JP6036977B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
WO2013024588A1 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
JP5776711B2 (ja) 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP5776714B2 (ja) 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP5776713B2 (ja) 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP5246303B2 (ja) 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP5854110B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
JP6036975B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
JP6036974B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法、及び送信プログラム
JP5776712B2 (ja) 画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法、及び受信プログラム
JP6288209B2 (ja) 画像符号化装置
JP5999230B2 (ja) 受信装置
JP2013059023A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200205

Year of fee payment: 5