KR101601813B1 - A Video Decoding Method and Apparatus Using Inter Prediction - Google Patents

A Video Decoding Method and Apparatus Using Inter Prediction Download PDF

Info

Publication number
KR101601813B1
KR101601813B1 KR1020150093515A KR20150093515A KR101601813B1 KR 101601813 B1 KR101601813 B1 KR 101601813B1 KR 1020150093515 A KR1020150093515 A KR 1020150093515A KR 20150093515 A KR20150093515 A KR 20150093515A KR 101601813 B1 KR101601813 B1 KR 101601813B1
Authority
KR
South Korea
Prior art keywords
motion vector
block
list0
list1
current
Prior art date
Application number
KR1020150093515A
Other languages
Korean (ko)
Other versions
KR20150083826A (en
Inventor
김하윤
전병우
문주희
이영렬
김해광
원광현
양정엽
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Priority to KR1020150093515A priority Critical patent/KR101601813B1/en
Publication of KR20150083826A publication Critical patent/KR20150083826A/en
Application granted granted Critical
Publication of KR101601813B1 publication Critical patent/KR101601813B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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/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

Abstract

본 발명은 인터 예측을 이용한 영상 복호화 방법에 관한 것으로, 부호화 데이터를 복호화함으로써, 현재 픽처 내에 위치하는 현재 블록의 제1 차분 움직임벡터 및 제2 차분 움직임 벡터를 복원하는 단계; 상기 현재 블록의 하나 이상의 주변 블록으로부터 상기 현재 블록의 제1 예측 움직임벡터 및 제2 예측 움직임벡터를 유도하는 단계; 상기 제1 차분 움직임벡터와 상기 제1 예측 움직임벡터를 가산하여 상기 현재 블록의 제1 움직임벡터를 생성하고, 상기 제2 차분 움직임벡터와 상기 제2 예측 움직임벡터를 가산하여 상기 현재 블록의 제2 움직임벡터를 생성하는 단계; 상기 현재 블록의 제1 움직임벡터 및 제2 움직임벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계; 상기 부호화 데이터에 포함된 잔차 신호를 복호화하고 복호화된 잔차 신호에 대한 역양자화 과정 및 역변환 과정을 선택적으로 수행하여 잔차 블록을 복원하는 단계; 및 상기 예측 블록의 각 픽셀과 상기 잔차 블록의 대응하는 픽셀을 가산하는 단계를 포함한다.The present invention relates to a method of decoding an image using inter-prediction, comprising: reconstructing a first differential motion vector and a second differential motion vector of a current block located in a current picture by decoding encoded data; Deriving a first predicted motion vector and a second predicted motion vector of the current block from one or more neighboring blocks of the current block; A second motion vector prediction unit for generating a first motion vector of the current block by adding the first difference motion vector and the first predicted motion vector to each other and adding the second difference motion vector and the second predicted motion vector, Generating a motion vector; Generating a prediction block of the current block using a first motion vector and a second motion vector of the current block; Decoding the residual signal included in the encoded data and selectively performing an inverse quantization process and an inverse transform process on the decoded residual signal to recover a residual block; And adding each pixel of the prediction block and a corresponding pixel of the residual block.

Description

인터 예측을 이용한 영상 복호화 방법 및 장치{A Video Decoding Method and Apparatus Using Inter Prediction}[0001] The present invention relates to a video decoding method and apparatus using inter prediction,

본 발명은 인터 예측을 이용한 영상 복호화 방법 및 장치에 관한 것이다.The present invention relates to a video decoding method and apparatus using inter prediction.

근래에 멀티미디어 기술은 비약적으로 발전하고 있으며, 이에 따라 오디오, 이미지, 동영상 등을 포함한 고품질의 멀티미디어 데이터들에 대한 수요도 증가하고 있다. 이러한 추세의 일환으로, 제한된 네트워크 환경에서 멀티미디어 데이터들을 전송하거나 저장하고 다시 읽고(Retrieve)자하는 수요를 충족시키기 위해 고효율의 영상 압축에 관한 국제 표준이 제정되었다. 특히, 동영상 압축에 관한 국제표준으로 ISO/IEC JTC1/SC29 MPEG 그룹 및 ITU-T VCEG 그룹이 제정한 H.264/AVC MPEG-4 Part.10 표준은, 높은 압축 효율을 달성하기 위해, 가변적인 블록 크기에서의 움직임 추정 및 보상(Variable Block Size Motion Estimation and Compensation), 인트라 예측(Intra Prediction) 부호화 등 다양한 예측 부호화 방법들을 사용한다.[0002] Recently, multimedia technology has been rapidly developed, and accordingly, demand for high-quality multimedia data including audio, image, and moving picture is increasing. As part of this trend, an international standard for high-efficiency image compression has been established to meet the demand to transmit, store, and retrieve multimedia data in a restricted network environment. In particular, the H.264 / AVC MPEG-4 Part.10 standard, established by ISO / IEC JTC1 / SC29 MPEG group and ITU-T VCEG group as an international standard for video compression, Block prediction, motion estimation and compensation for block size, intra prediction, and the like.

예측 부호화는 데이터 간에 존재하는 상관도(Correlation)를 줄일 수 있는 효과적인 방법으로 다양한 데이터의 압축에 널리 사용된다. 특히 B 픽처에서 두 개의 참조 픽처에 대한 현재 블록의 움직임 벡터(MV: Motion Vector)인 list0 움직임 벡터 및 list1 움직임 벡터는 주변 블록의 움직임 벡터와 밀접한 상관 관계가 있기 때문에, 주변 블록의 움직임 벡터로부터 현재 블록의 움직임 벡터에 대한 예측값(PMV: Predicted Motion Vector, 이하 '예측 움직임 벡터'라 칭함)을 계산한 후 현재 블록의 list0 움직임 벡터 및 list1 움직임 벡터의 값 자체를 부호화하지 않고 예측값에 대한 차분값(DMV: Differential Motion Vector, 이하 '차분 움직임 벡터'라 칭함)만을 부호화함으로써 부호화해야 할 비트량을 상당히 줄일 수 있으며 그에 따라 부호화 효율을 높일 수 있다.Predictive coding is widely used for compressing various data as an effective way to reduce correlation between data. In particular, since the list0 motion vector and the list1 motion vector, which are motion vectors (MVs) of the current block for the two reference pictures in the B picture, are closely correlated with the motion vectors of the neighboring blocks, A prediction value (PMV) for a motion vector of a block is calculated and a list value of a list0 motion vector and a list1 motion vector of the current block are not encoded but a difference value ( DMV (Differential Motion Vector, hereinafter referred to as 'differential motion vector'), the amount of bits to be encoded can be significantly reduced and the coding efficiency can be increased accordingly.

통상적으로 이러한 예측 움직임 벡터를 이용한 움직임 벡터 부호화에서는 효율적인 압축을 위하여 예측 움직임 벡터가 정확할수록 부호화 효율을 높일 수 있다. 따라서, 단지 공간적으로 인접한 블록의 움직임 벡터뿐만 아니라, 시간적, 공간적 또는 시공간적으로 인접한 블록의 움직임 벡터 또는 그들을 조합하여 계산된 다른 움직임 벡터들로 이루어진 유한한 개수의 예측 움직임 벡터들을 생성하고, 생성된 예측 움직임 벡터들 중에서 예측 부호화에 가장 적당한 예측 움직임 벡터를 선택하여 사용하면 부호화 효율을 더욱 높일 수 있다.Generally, in motion vector coding using such a predictive motion vector, the coding efficiency can be increased as the predicted motion vector is more accurate for effective compression. Therefore, a finite number of predicted motion vectors, which are not only motion vectors of spatially adjacent blocks but also motion vectors of temporally, spatially or temporally adjacent blocks, or other motion vectors calculated by combining them, are generated, The coding efficiency can be further increased by selecting a most suitable motion vector for the prediction coding from the motion vectors.

이 경우, 부호화된 움직임 벡터에 대한 정보로부터 원래의 움직임벡터를 올바르게 복원하기 위해서는 유한한 개수의 예측 움직임 벡터들 중에 어떤 예측 움직임 벡터가 사용되었는지 알아야 한다. 이를 위한 가장 간단한 움직임 벡터 예측 부호화 방법은 움직임 벡터 예측 부호화를 위하여 어떠한 예측 움직임 벡터를 사용하였는지에 대한 정보를 함께 부호화하는 것이다. 또는 어떠한 예측 움직임 벡터가 선택되었는지를 알리기 위한 추가적인 정보를 부호화하는 데 발생하는 비트량을 줄이기 위해, 현재의 H.264/AVC 표준은 주변블록(좌측, 상단, 우측 상단)이 가지는 list0 및 list1 움직임 벡터들의 수평 성분과 수직 성분 각각의 중간값(Median)을 움직임 벡터의 예측 부호화를 위한 예측 움직임 벡터로 사용한다. 이 방법은 중간값 계산과 같은 영상 부호화 장치와 영상 복호화 장치에 있어 함께 알고 있는 소정의 예측값 계산 방법을 정하고, 영상 부호화 장치나 영상 복호화 장치에서 소정의 예측값 계산 방법을 이용하여 예측 움직임 벡터를 산출함으로써, 어떠한 예측 움직임 벡터를 사용하였는지에 대한 정보를 함께 부호화할 필요를 없애는 것이다. 소정의 예측값 계산 방법을 사전에 정의하여 사용하는 기존 방법은, 어떤 움직임 벡터가 예측 움직임 벡터로 사용되었는지에 대한 추가적인 정보의 전송 없어, 향상된 부호화 효율을 유지할 수 있다는 장점이 있지만, 사용한 중간값인 예측 움직임 벡터가 그 차분 벡터를 부호화하는데 소요되는 비트량을 항상 최소로 발생시키는 최적의 예측 움직임 벡터가 아니라는 문제점이 있다.In this case, in order to correctly recover the original motion vector from the information on the encoded motion vector, it is necessary to know which prediction motion vector is used among a finite number of predicted motion vectors. The most simple motion vector prediction coding method for this purpose is to encode information about which prediction motion vector is used for motion vector prediction coding. The current H.264 / AVC standard uses the list0 and list1 motions of the neighboring blocks (left, top, right top) to reduce the amount of bits that occur to encode additional information to indicate which prediction mode The median of each of the horizontal component and the vertical component of the vectors is used as a predictive motion vector for predictive coding of the motion vector. In this method, a predetermined predictive value calculation method known together in the image encoding apparatus and the image decoding apparatus such as the intermediate value calculation is determined, and a predictive motion vector is calculated using a predetermined predictive value calculation method in the image encoding apparatus or the image decoding apparatus , And eliminates the need to encode information about which prediction motion vector is used together. An existing method of predefining and using a predetermined prediction value calculation method has an advantage that it is possible to maintain an improved coding efficiency without transmitting additional information as to which motion vector is used as a predicted motion vector. There is a problem that the motion vector is not an optimal predicted motion vector that always generates the minimum amount of bits required for coding the differential vector.

전술한 문제점을 해결하기 위해 본 발명은, 인터 예측을 이용한 영상 부호화 및 복호화에 있어서, 움직임 벡터 및 잔차 신호들 부호화하는 데 소요되는 비트량을 감소시켜 압축 효율을 향상시키는 데 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problems, and it is an object of the present invention to improve the compression efficiency by reducing the amount of bits required for coding motion vectors and residual signals in image coding and decoding using inter prediction.

본 발명의 일 측면에 따르면, 본 발명은 인터 예측을 이용한 영상 복호화 방법에 있어서, 부호화 데이터를 복호화함으로써, 현재 픽처 내에 위치하는 현재 블록의 제1 차분 움직임벡터 및 제2 차분 움직임 벡터를 복원하는 단계; 상기 현재 블록의 하나 이상의 주변 블록으로부터 상기 현재 블록의 제1 예측 움직임벡터 및 제2 예측 움직임벡터를 유도하는 단계; 상기 제1 차분 움직임벡터와 상기 제1 예측 움직임벡터를 가산하여 상기 현재 블록의 제1 움직임벡터를 생성하고, 상기 제2 차분 움직임벡터와 상기 제2 예측 움직임벡터를 가산하여 상기 현재 블록의 제2 움직임벡터를 생성하는 단계; 상기 현재 블록의 제1 움직임벡터 및 제2 움직임벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계; 상기 부호화 데이터에 포함된 잔차 신호를 복호화하고 복호화된 잔차 신호에 대한 역양자화 과정 및 역변환 과정을 선택적으로 수행하여 잔차 블록을 복원하는 단계; 및 상기 예측 블록의 각 픽셀과 상기 잔차 블록의 대응하는 픽셀을 가산하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법을 제공한다.According to an aspect of the present invention, there is provided a method of decoding an image using inter prediction, the method comprising: decoding a coded data to restore a first differential motion vector and a second differential motion vector of a current block located in a current picture ; Deriving a first predicted motion vector and a second predicted motion vector of the current block from one or more neighboring blocks of the current block; A second motion vector prediction unit for generating a first motion vector of the current block by adding the first difference motion vector and the first predicted motion vector to each other and adding the second difference motion vector and the second predicted motion vector, Generating a motion vector; Generating a prediction block of the current block using a first motion vector and a second motion vector of the current block; Decoding the residual signal included in the encoded data and selectively performing an inverse quantization process and an inverse transform process on the decoded residual signal to recover a residual block; And adding each pixel of the prediction block and a corresponding pixel of the residual block.

상기 잔차 블록을 복원하는 단계는, 역양자화 및 역변환을 위한 하나 이상의 조건을 식별하는 단계; 및 상기 식별된 조건에 근거하여, 상기 복호화된 잔차 신호에 대한 역양자화 및 역변환을 스킵하는 과정, 상기 복호화된 잔차 신호를 역양자화하고 역양자화된 잔차 신호에 대한 역변환을 스킵하는 과정, 및 상기 복호화된 잔차 신호에 대한 역양자화 및 역변환을 모두 수행하는 과정 중 하나를 선택함으로써 상기 잔차 블록을 복원하는 단계를 포함한다.The step of reconstructing the residual block comprises: identifying one or more conditions for inverse quantization and inverse transform; And skipping the inverse quantization and inverse transform of the decoded residual signal based on the identified condition, dequantizing the decoded residual signal and skipping the inverse transform of the dequantized residual signal, And performing the inverse quantization and inverse transform on the residual residual signal, thereby reconstructing the residual block.

상기 제1 및 제2 예측 움직임벡터를 유도하는 단계는, 상기 하나 이상의 주변 블록의 움직임벡터를 이용하여, 제1 후보 움직임벡터 집합과 제2 후보 움직임벡터 집합을 유도하는 단계; 상기 제1 후보 움직임벡터 집합에서 제1 후보 움직임벡터를 선택하고 제2 후부 움직임벡터 집합에서 제2 후보 움직임벡터를 선택하는 단계; 및 상기 제1 후보 움직임벡터를 상기 제1 예측 움직임벡터로 설정하고, 상기 제2 후보 움직임벡터를 상기 제2 예측 움직임벡터로 설정하는 단계를 포함할 수 있다.The step of deriving the first and second predicted motion vectors may include deriving a first candidate motion vector set and a second candidate motion vector set using the motion vectors of the at least one neighboring block. Selecting a first candidate motion vector in the first set of candidate motion vectors and a second candidate motion vector in a second set of backward motion vectors; And setting the first candidate motion vector to the first predictive motion vector and the second candidate motion vector to the second predictive motion vector.

여기서, 상기 하나 이상의 주변 블록은, 상기 현재 픽처 내에서 상기 현재 블록에 공간적으로 인접한 하나 이상의 블록 및 상기 현재 픽처 이전에 복호화된 참조 픽처 내에 위치한 하나 이상의 블록을 포함하되, 싱기 참조 픽처 내에 위치한 블록은 상기 현재 픽처에서 상기 현재 블록의 위치에 근거하여 결정될 수 있다. Wherein the one or more neighboring blocks include one or more blocks spatially adjacent to the current block in the current picture and one or more blocks located in a reference picture decoded prior to the current picture, And may be determined based on the position of the current block in the current picture.

또한, 상기 제1 후보 움직임벡터 집합을 유도하는 단계는, 상기 하나 이상의 주변 블록의 움직임벡터로부터 유도된 두 개의 후보 움직임벡터가 동일한 경우 그 중 하나만을 상기 제1 후보 움직임벡터 집합에 포함시키는 과정을 포함하고, 상기 제2 후보 움직임벡터 집합을 유도하는 단계는, 상기 하나 이상의 주변 블록의 움직임벡터로부터 유도된 두 개의 후보 움직임벡터가 동일한 경우 그 중 하나만을 상기 제2 후보 움직임벡터 집합에 포함시키는 과정을 포함할 수 있다.The step of deriving the first set of candidate motion vectors may include the step of including only one of the two candidate motion vectors derived from the motion vectors of the at least one neighboring block in the first candidate motion vector set Wherein the step of deriving the second set of candidate motion vectors comprises the step of including only one of the two candidate motion vectors derived from the motion vector of the at least one neighboring block in the second candidate motion vector set . ≪ / RTI >

또한, 상기 제1 후보 움직임벡터와 상기 제2 후보 움직임벡터는 상기 부호화 데이터에 포함된 정보에 근거하여 선택될 수 있다.The first candidate motion vector and the second candidate motion vector may be selected based on information included in the encoded data.

또한, 상기 역양자화 및 역변환을 위한 하나 이상의 조건은 상기 부호화 데이터에 포함된 정보에 근거하여 식별될 수 있다.In addition, one or more conditions for the dequantization and inverse transformation may be identified based on information included in the encoded data.

본 발명의 다른 측면에 따르면, 본 발명은 인터 예측을 이용한 영상 복호화 장치에 있어서, 부호화 데이터를 복호화함으로써, 현재 픽처 내에 위치한 현재 블록의 제1 차분 움직임벡터 및 제2 차분 움직임 벡터를 복원하는 정보 추출부; 상기 현재 블록의 하나 이상의 주변 블록으로부터 상기 현재 블록의 제1 예측 움직임벡터 및 제2 예측 움직임벡터를 유도하고, 상기 제1 차분 움직임벡터와 상기 제1 예측 움직임벡터를 가산하여 상기 현재 블록의 제1 움직임벡터를 생성하고 상기 제2 차분 움직임벡터와 상기 제2 예측 움직임벡터를 가산하여 상기 현재 블록의 제2 움직임벡터를 생성하며, 상기 현재 블록의 제1 움직임벡터 및 제2 움직임벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 예측부; 상기 부호화 데이터에 포함된 잔차 신호를 복호화하고 복호화된 잔차 신호에 대한 역양자화 과정 및 역변환 과정을 선택적으로 수행하여 잔차 블록을 복원하는 복호화부; 및 상기 예측 블록의 각 픽셀과 상기 잔차 블록의 대응하는 픽셀을 가산하는 가산기를 포함하는 것을 특징으로 하는 영상 복호화 장치를 제공한다.According to another aspect of the present invention, there is provided an apparatus and method for decoding an image using inter prediction, the apparatus comprising: an information extracting unit that decodes encoded data to reconstruct a first difference motion vector and a second difference motion vector of a current block located in a current picture, part; A first predictive motion vector and a second predictive motion vector of the current block are derived from one or more neighboring blocks of the current block, and the first differential motion vector and the first predictive motion vector are added, Generating a second motion vector of the current block by adding the second difference motion vector and the second predicted motion vector to generate a motion vector, and generating a second motion vector of the current block using the first motion vector and the second motion vector of the current block, A prediction unit for generating a prediction block of a current block; A decoding unit decoding a residual signal included in the encoded data and selectively performing an inverse quantization process and an inverse transform process on the decoded residual signal to recover a residual block; And an adder for adding each pixel of the prediction block and a corresponding pixel of the residual block.

상기 복호화부는, 역양자화 및 역변환을 위한 하나 이상의 조건을 식별하고, 상기 식별된 조건에 근거하여, 상기 복호화된 잔차 신호에 대한 역양자화 및 역변환을 스킵하는 과정, 상기 복호화된 잔차 신호를 역양자화하고 역양자화된 잔차 신호에 대한 역변환을 스킵하는 과정, 및 상기 복호화된 잔차 신호에 대한 역양자화 및 역변환을 모두 수행하는 과정 중 하나를 선택함으로써 상기 잔차 블록을 복원한다.The decoding unit identifies one or more conditions for inverse quantization and inverse transform, and skips inverse quantization and inverse transform of the decoded residual signal based on the identified condition, dequantizes the decoded residual signal A process of skipping the inverse transform of the inverse quantized residual signal, and a process of performing both the inverse quantization and inverse transform of the decoded residual signal, thereby restoring the residual block.

이상에서 설명한 바와 같이 본 발명에 의하면, 복수 개의 참조 픽처에 대한 현재 움직임 벡터의 예측 움직임 벡터를 더욱 정확하게 예측하고, 움직임 벡터를 부호화하는 데 소요되는 비트량을 감소시켜 압축 효율을 향상시킬 수 있다.As described above, according to the present invention, the prediction motion vector of the current motion vector for a plurality of reference pictures can be more accurately predicted, and the amount of bits required to encode the motion vector can be reduced to improve the compression efficiency.

도 1은 본 발명의 일 실시예에 따라 list0 현재 움직임 벡터를 부호화하기 위한 블록을 나타낸 예시도,
도 2는 본 발명의 일 실시예에 따라 list1 현재 움직임 벡터를 부호화하기 위한 블록을 나타낸 예시도,
도 3는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치의 구성을 간략하게 나타낸 블록 구성도,
도 4는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법을 설명하기 위한 순서도,
도 5는 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치의 구성을 간략하게 나타낸 블록 구성도,
도 6은 본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법을 설명하기 위한 순서도,
도 7은 본 발명의 일 실시예에 따른 영상 부호화 장치의 구성을 간략하게 나타낸 블록 구성도,
도 8은 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도,
도 9는 본 발명의 일 실시예에 따른 영상 복호화 장치의 구성을 간략하게 나타낸 블록 구성도,
도 10은 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram illustrating a block for coding a current motion vector of a list0 according to an embodiment of the present invention;
FIG. 2 is a block diagram illustrating a block for encoding a current motion vector list1 according to an embodiment of the present invention. FIG.
3 is a block diagram schematically illustrating a configuration of a motion vector coding apparatus according to an embodiment of the present invention.
4 is a flowchart for explaining a motion vector coding method according to an embodiment of the present invention.
FIG. 5 is a block diagram schematically showing a configuration of a motion vector decoding apparatus according to an embodiment of the present invention;
FIG. 6 is a flowchart for explaining a motion vector decoding method according to an embodiment of the present invention;
7 is a block diagram schematically illustrating a configuration of an image encoding apparatus according to an embodiment of the present invention.
8 is a flowchart illustrating a method of encoding an image according to an embodiment of the present invention.
9 is a block diagram schematically illustrating a configuration of an image decoding apparatus according to an embodiment of the present invention.
10 is a flowchart illustrating an image decoding method according to an embodiment of the present invention.

이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to exemplary drawings. It should be noted that, in adding reference numerals to the constituent elements of the drawings, the same constituent elements are denoted by the same reference numerals whenever possible, even if they are shown in different drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.In describing the components of the present invention, terms such as first, second, A, B, (a), and (b) may be used. These terms are intended to distinguish the constituent elements from other constituent elements, and the terms do not limit the nature, order or order of the constituent elements. When a component is described as being "connected", "coupled", or "connected" to another component, the component may be directly connected or connected to the other component, Quot; may be "connected," "coupled," or "connected. &Quot;

도 1은 본 발명의 일 실시예에 따라 list0 현재 움직임 벡터를 부호화하기 위한 블록을 나타낸 예시도이다.1 is a block diagram illustrating a block for encoding a current motion vector of list0 according to an embodiment of the present invention.

도 1을 참조하면, 도 1에 나타낸 모든 블록은 참조 픽처 식별자가 list0인 참조 픽처를 참조하는 블록이다. 블록 D는 현재 부호화할 움직임 벡터인 현재 움직임 벡터(MV: Motion Vector)를 갖는 현재 블록을 나타내고, 블록 A, 블록 B 및 블록 C는 블록 D에 대한 주변 블록을 나타낸다.Referring to FIG. 1, all the blocks shown in FIG. 1 are blocks that reference a reference picture whose reference picture identifier is list0. Block D represents a current block having a current motion vector (MV), which is a current motion vector to be coded. Block A, block B, and block C represent neighboring blocks for block D.

도 1에서, MVA0, MVB0, MVC0 및 MVD0는 각각, 블록 A, 블록 B, 블록 C, 블록 D가 갖는 list0 참조 픽처를 참조하는 움직임 벡터(이하, 'list0 움직임 벡터'라 칭함)이고, 각각은 수평 성분(MVA0 x, MVB0 x, MVC0 x 및 MVD0 x)과 수직 성분(MVA0 y, MVB0 y, MVC0 y 및 MVD0 y)을 가지는 것으로 정의한다. 이하에서는 현재 블록인 블록 D의 list0 움직임 벡터 MVD0를 'list0 현재 움직임 벡터'라 한다. list0 현재 움직임 벡터인 MVD0는 (2,0)이고, 주변 블록의 list0 움직임 벡터인 MVA0, MVB0 및 MVC0는 각각 (2,0), (2,1) 및 (2,2)인 것을 가정한다. 1, MV A0 , MV B0 , and MV C0 And MV D0, respectively, block A, block B, block C, block D is a motion vector (hereinafter referred to "list0 motion vector" hereinafter) that refer to list0 reference picture having, each of the horizontal component (MV A0 x, MV B0 x , MV C0 x And MV D0 x ) and the vertical components (MV A0 y , MV B0 y , MV C0 y And MV D0 y ). Hereinafter, the list0 motion vector MV D0 of the block D, which is the current block, is referred to as 'list0 current motion vector'. list0 the current motion vector MV D0 is (2,0), and each motion vector MV list0 A0, B0 and MV MV C0 is the neighboring blocks (2,0), (2,1) and (2,2) .

전술한 현재 블록(블록 D)의 list0 현재 움직임 벡터에 대한 list0 예측 움직임 벡터(PMVD0: list0 Predicted Motion Vector)를 수학식 1과 같이 계산하며, list0 예측 움직임 벡터(PMVD0)는 수평 성분(PMVD0 x)과 수직 성분(PMVD0 y)을 가지는 것으로 정의한다.The above-described present block (block D) of list0 list0 predicted motion vector for a current motion vector: calculated as the (PMV D0 list0 Predicted Motion Vector), and expression (1) and, list0 predicted motion vector (PMV D0) is the horizontal component (PMV D0 x ) and a vertical component (PMV D0 y ).

Figure 112015063618015-pat00001
Figure 112015063618015-pat00001

수학식 1을 참조하면, list0 현재 움직임 벡터에 대한 예측 list0 움직임 벡터(PMVD0)는 특정 함수(F())를 이용하여 계산될 수 있는데, 특정 함수(F())의 변수로서 주변 블록(블록 A, 블록 B, 블록 C)의 list0 움직임 벡터(MVA0, MVB0 및 MVC0)가 이용될 수 있다.Referring to Equation (1), the prediction list0 motion vector PMV D0 for the current motion vector list0 can be calculated using a specific function F The list0 motion vectors MV A0 , MV B0 and MV C0 of the block A, the block B, and the block C can be used.

도 2는 본 발명의 일 실시예에 따라 list1 현재 움직임 벡터를 부호화하기 위한 블록을 나타낸 예시도이다.FIG. 2 is a block diagram illustrating a block for coding a current motion vector list1 according to an embodiment of the present invention. Referring to FIG.

도 2를 참조하면, 도 2에 나타낸 모든 블록들은 참조 픽처 식별자가 list1인 참조 픽처를 참조하는 블록이다. 블록 D는 현재 부호화할 움직임 벡터를 갖는 현재 블록을 나타내며, 도 1에 도시한 블록 D와 동일한 블록이라 가정한다. 블록 A, 블록 B 및 블록 C는 블록 D에 대한 주변 블록을 나타내며, 도 1에서 도시한 블록 A, 블록 B 및 블록 C와 동일한 블록으로 가정한다. Referring to FIG. 2, all the blocks shown in FIG. 2 are blocks that reference a reference picture whose reference picture identifier is list1. Block D represents a current block having a current motion vector to be encoded, and is assumed to be the same block as block D shown in FIG. Block A, block B, and block C represent neighboring blocks for block D, and are assumed to be the same blocks as block A, block B, and block C shown in FIG.

도 2를 참조하면, MVA1, MVB1, MVC1 및 MVD1는, 블록 A, 블록 B, 블록 C, 블록 D 가 갖는 list1 움직임 벡터(Motion Vector: MV)이고, 각각은 수평 성분(MVA1 x, MVB1 x, MVC1 x 및 MVD1 x)과 수직 성분(MVA1 y, MVB1 y, MVC1 y 및 MVD1 y)을 가지는 것으로 정의한다. 여기서, 현재 블록인 블록 D의 list1 움직임 벡터 MVD1를 'list1 현재 움직임 벡터'라 한다. 도 2에 나타낸 바와 같이, list1 현재 움직임 벡터인 MVD1는 (0,2)이고, 주변 블록의 list1 움직임 벡터인 MVA1, MVB1 및 MVC1는 각각 (0,2), (1,1) 및 (2,0)인 것으로 가정한다. 현재 블록(블록 D)의 list1 현재 움직임 벡터에 대한 예측 움직임 벡터를 'list1 예측 움직임 벡터(PMVD1: list1 Predicted Motion Vector)'라 한다. list1 예측 움직임 벡터는 수학식 2와 같이 계산할 수 있으며, 수평 성분(PMVD1 x)과 수직 성분(PMVD1 y)을 가지는 것으로 정의한다.Referring to FIG. 2, MV A1 , MV B1 , MV C1 And MV D1 are list1 motion vectors (MVs) of the block A, the block B, the block C, and the block D, and each of them is a horizontal component (MV A1 x , MV B1 x , MV C1 x And MV D1 x ) and the vertical components (MV A1 y , MV B1 y , MV C1 y And MV D1 y ). Here, the list1 motion vector MV D1 of the current block, block D, is referred to as 'list1 current motion vector'. As shown in Figure 2, the MV list1 D1 current motion vector is (0,2), and each of list1 motion vector MV A1, B1 and MV MV C1 in the neighboring blocks (0,2), (1,1) And (2, 0). The predicted motion vector for the current motion vector of list1 of the current block (block D) is referred to as 'list1 predicted motion vector PMV D1 '. The list1 predicted motion vector can be calculated as shown in Equation (2), and is defined as having a horizontal component (PMV D1 x ) and a vertical component (PMV D1 y ).

Figure 112015063618015-pat00002
Figure 112015063618015-pat00002

수학식 2를 참조하면, list1 현재 움직임 벡터에 대한 list1 예측 움직임 벡터는 주변 블록(블록 A, 블록 B, 블록 C)의 움직임 벡터(MVA1, MVB1 및 MVC1)를 특정함수(F())의 변수로 대입하여 계산됨을 확인할 수 있다.Referring to Equation (2), the list1 predicted motion vector for the current motion vector list1 is obtained by substituting the motion vectors MV A1 , MV B1 and MV C1 of the neighboring blocks (blocks A, B, and C ) ) Is substituted for the variable.

H.264/AVC 표준에서는, 중간값(Median)을 계산하는 함수를 특정 함수(F())로서 이용하여 list0 현재 움직임 벡터에 대한 list0 예측 움직임 벡터와 list1 현재 움직임 벡터에 대한 list1 예측 움직임 벡터를 계산한다. 즉, list0 현재 움직임 벡터에 대한 list0 예측 움직임 벡터(PMVD0)는 주변 블록(블록 A, 블록 B, 블록 C)의 움직임 벡터(MVA0, MVB0 및 MVC0)에 대한 중간값(Median)으로 구해지고, list1 현재 움직임 벡터에 대한 list1 예측 움직임 벡터(PMVD1)는 주변 블록(블록 A, 블록 B, 블록 C)의 움직임 벡터(MVA1, MVB1 및 MVC1)에 대한 중간값(Median)으로 구해진다. 이러한 계산 방식을 수학식으로 나타내면, list0 현재 움직임 벡터(MVD0)에 대한 list0 예측 움직임 벡터(PMVD0)는 수학식 3과 같이 나타낼 수 있고, list1 현재 움직임 벡터(MVD1)에 대한 list1 예측 움직임 벡터(PMVD1)는 수학식 4와 같이 나타낼 수 있다.In the H.264 / AVC standard, a list0 predictive motion vector for the current motion vector list0 and a list1 predictive motion vector for the current motion vector list1 are computed using a function calculating the median value as a specific function F . That is, the list0 predicted motion vector PMV D0 for the current motion vector of list0 is the median of the motion vectors MV A0 , MV B0, and MV C0 of the neighboring blocks (block A, block B, and block C) And the list1 predicted motion vector PMV D1 for the current motion vector of list1 is a median for the motion vectors MV A1 , MV B1 and MV C1 of the neighboring blocks A, B, . Represents such a calculation method by the following equation, list0 current motion vector (MV D0) list0 predicted motion vector (PMV D0) for the list1 predicted motion for a can be represented as shown in Equation 3, list1 current motion vector (MV D1) The vector PMV D1 can be expressed by Equation (4).

Figure 112015063618015-pat00003
Figure 112015063618015-pat00003

Figure 112015063618015-pat00004
Figure 112015063618015-pat00004

수학식 1(또는 수학식 3)을 이용하여 list0 현재 움직임 벡터(MVD0)의 list0 예측 움직임 벡터(PMVD0)를 구하고, 수학식 2(또는 수학식 4)를 이용하여 list1 현재 움직임 벡터(MVD1)의 list1 예측 움직임 벡터(PMVD1)를 구할 수 있다. 수학식 5를 사용하여 압축해야 할 list0 현재 움직임 벡터(MVD0)에서 이에 대한 list0 예측 움직임 벡터(PMVD0)를 차분한 움직임 벡터인 list0 차분 벡터(DMVD0: list0 Differential Motion Vector, 'list0 움직임 벡터 잔차 신호'라고도 함)를 구할 수 있다. 수학식 6을 사용하여 압축해야 할 list1 현재 움직임 벡터(MVD1)에서 이에 대한 list1 예측 움직임 벡터(PMVD1)를 차분한 움직임 벡터인 list1 차분 벡터(DMVD1: list1 Differential Motion Vector, 'list1 움직임 벡터 잔차 신호'라고도 함)를 구할 수 있으며, list0 차분 벡터(DMVD0)와 list1 차분 벡터(DMVD1)는 각각 엔트로피 부호화 등의 미리 정의된 소정의 방법에 의해 부호화되어 전송된다.Using equation 1 (or equation 3) list0 current motion vector (MV D0) of list0 predicted motion vector (PMV D0) to obtain, by using the equation 2 (or equation 4) list1 current motion vector (MV D1 ) of the list 1 predicted motion vector (PMV D1 ). Can be compressed using the equation 5 list0 current motion vector (MV D0) thereto for list0 predicted motion vector (PMV D0) the soothing motion vector list0 difference vector (DMV D0 from: list0 Differential Motion Vector, 'list0 motion vector residual Quot; signal "). The list 1 predicted motion vector PMV D1 is subtracted from the list 1 current motion vector MV D1 to be compressed using Equation 6, and the list 1 differential vector DMV D1 : list 1 differential motion vector, can be obtained a signal also called '), list0 difference vector (DMV D0) and list1 difference vector (DMV D1) is transmitted is coded by a predetermined method, such as predefined, each entropy encoded.

Figure 112015063618015-pat00005
Figure 112015063618015-pat00005

Figure 112015063618015-pat00006
Figure 112015063618015-pat00006

도 1 및 도 2에 나타낸 것처럼, list0 현재 움직임 벡터(MVD0)의 값이 (2,0)인 경우, 중간값을 통해 list0 예측 움직임 벡터(PMVD0)를 계산하는 통상적인 움직임 벡터 부호화 방법에 따른 수학식 3을 이용하면, list0 예측 움직임 벡터(PMVD0)는 (2,1)이 된다. 그리고 list1 현재 움직임 벡터(MVD1)의 값이 (0,2)인 경우, 중간값을 통해 list1 예측 움직임 벡터(PMVD1)를 계산하는 통상적인 움직임 벡터 부호화 방법에 따른 수학식 4를 이용하면, list1 예측 움직임벡터(PMVD1)는 (1,1)이 된다.As shown in Figs. 1 and 2, list0 the conventional motion vector coding method for calculating a current motion vector of the case, list0 predicted motion vector (PMV D0) through the median value is (2,0) of (MV D0) Using Equation (3), the list0 predicted motion vector PMV D0 becomes (2,1). Using Equation (4) according to the conventional motion vector coding method for calculating the list 1 predicted motion vector (PMV D1 ) through the intermediate value when the value of the current motion vector (MV D1 ) of the list 1 is (0, 2) the list 1 predicted motion vector PMV D1 becomes (1,1).

이와 같이, 중간값을 list0 예측 움직임 벡터 및 list1 예측 움직임 벡터로 하는 통상적인 움직임 벡터 부호화 방법은, 움직임 벡터 부호화 장치와 움직임 벡터 복호화 장치가 사전에 중간값을 이용하여 예측 움직임 벡터를 계산하도록 약속함으로써, 움직임 벡터 부호화 장치에서 어떤 list0 움직임 벡터 및 list1 움직임 벡터가 list0 현재 움직임 벡터 및 list1 현재 움직임 벡터의 list0 예측 움직임 벡터 및 예측 list1 움직임 벡터로 사용되었는지에 대한 '추가적인 정보'를 부호화하여 전송할 필요가 없으므로, 부호화 효율 즉, 압축 효율을 향상시킬 수 있다.As described above, the conventional motion vector coding method using the intermediate values as the list0 predictive motion vector and the list1 predictive motion vector is a method in which the motion vector coding device and the motion vector decoding device promise to calculate the predictive motion vector using the intermediate value in advance , It is not necessary to encode and transmit 'additional information' as to whether a list0 motion vector and a list1 motion vector are used as list0 current motion vector and list0 predictive motion vector of list1 current motion vector and prediction list1 motion vector, respectively, in the motion vector coding apparatus , The coding efficiency, that is, the compression efficiency can be improved.

하지만, 중간값을 이용하여 계산된 list0 예측 움직임 벡터(PMVD0)는, 실제의 list0 현재 움직임 벡터(MVD0)와 차이가 있을 수 있고, 중간값을 이용하여 계산된 list1 예측 움직임 벡터(PMVD1)는, 실제의 list1 현재 움직임 벡터(MVD1)와 차이가 있을 수 있다. 도 1과 도 2에 나타낸 예시를 통해, 중간값을 이용하여 계산된 list0 예측 움직임 벡터(PMVD0)인 (2,1)은 list0 현재 움직임 벡터(MVD0)인 (2,0)와 차이가 있음을 알 수 있다. 수학식 5를 이용하여 list0 차분 벡터(DMVD0)를 구하면, 부호화할 list0 차분 벡터(DMVD0)는 (0,-1)이 되고, 중간값을 이용하여 계산된 list1 예측 움직임 벡터(PMVD1)인 (1,1)은 list1 현재 움직임 벡터(MVD1)인 (0,2)와 차이가 있음을 알 수 있으며, 수학식 6을 이용하여 list1 차분 벡터(DMVD1)를 구해보면 부호화할 list1 차분 벡터(DMVD1)는 (-1, 1)이 된다.However, the list0 predicted motion calculated using the median vector (PMV D0) is, and may be different actual list0 current motion vector (MV D0), calculated using the median list1 predicted motion vector (PMV D1 ) May differ from the actual list1 current motion vector (MV D1 ). Of (2, 1) FIG. 1 and the list0 predicted motion vector (PMV D0) calculated using the intermediate value by way of example in Fig. 2 is not different from the list0 (2,0) the current motion vector (MV D0) . By using the equation (5) Obtaining a list0 difference vector (DMV D0), list0 difference vector (DMV D0) to be coded is (0, -1) is, the predicted motion list1 calculated using a median vector (PMV D1) (1, 1) is different from (0,2) which is the current motion vector MV D1 of the list 1, and the list 1 differential vector DMV D1 is calculated using the equation (6) The vector (DMV D1 ) becomes (-1, 1).

하지만, 만약 블록 A의 list0 움직임벡터인 MVA0인 (2,0)을 list0 예측 움직임 벡터(PMVD0)로 사용하면, 실제의 list0 현재 움직임 벡터(MVD0)인 (2,0)과 차이가 발생하지 않고, 수학식 5를 이용하여 list0 차분 벡터(DMVD0)를 구해보면 부호화할 list0 차분 벡터(DMVD0)는 (0,0)이 된다. 만약, 블록 A의 list1 움직임 벡터인 MVA1인 (0,2)을 list1 예측 움직임 벡터(PMVD1)로 사용하면 실제의 list1 현재 움직임 벡터(MVD1)인 (0,2)과 차이가 발생하지 않고, 수학식 6을 이용하여 list1 차분 벡터(DMVD1)를 구해보면 부호화할 list1 차분 벡터(DMVD1)는 (0,0)이 된다.However, if the block A of the motion vector MV list0 A0 is (2, 0) the predictive motion vector list0 the (2,0) and the difference (PMV D0), the actual list0 current motion vector (MV D0) when used as a does not occur, by using the equation (5) in the obtained list0 difference vector (DMV D0) is a is a (0,0) list0 difference vector (DMV D0) to be encoded. If, using the motion vector MV list1 A1 is (0,2) of the block A in list1 predicted motion vector (PMV D1), the difference does not occur and the (0,2) real list1 current motion vector (MV D1) rather, using the equation (6) in the list1 obtained difference vector (DMV D1) is a is a (0,0) list1 difference vector (DMV D1) to be encoded.

즉, 중간값을 이용하여 계산된 list0 예측 움직임 벡터(PMVD0)인 (2,1)를 사용하는 것보다, 블록 A의 list0 움직임 벡터인 MVA0인 (2,0)을 list0 예측 움직임 벡터(PMVD0)로 사용하는 것이 list0 차분 벡터(DMVD0)가 (0,0)이 되어 이를 부호화하는 데 소용되는 비트량을 감소시킬 수 있다. 또한, 중간값을 이용하여 계산된 list1 예측 움직임 벡터(PMVD1)인 (1,1)를 사용하는 것보다, 블록 A의 list1 움직임 벡터인 MVA1인 (0,2)을 list1 예측 움직임 벡터(PMVD1)로 사용하는 것이 list1 차분 벡터(DMVD1)가 (0,0)이 되어 이를 부호화하는 데 소용되는 비트량을 더욱 감소시킬 수 있다.In other words, calculated using the median list0 predicted motion vector (PMV D0) is (2, 1) will be more, list0 list0 the motion vector MV of the A0 (2,0) of the block A predicted motion vector using the ( PMV D0 ), the list 0 differential vector DMV D0 becomes (0, 0), and the amount of bits used to encode the same can be reduced. Further, the calculation by using the intermediate value list1 predicted motion vector (PMV D1) of (1, 1) will than, list1 list1 the motion vector MV of A1 (0,2) of the block A predicted motion vector using the ( PMV D1 , the list 1 differential vector DMV D1 becomes (0, 0), and the amount of bits used to encode it can be further reduced.

하지만, 중간값을 이용하는 통상적인 움직임 벡터 부호화 방법에서는 list0 현재 움직임 벡터(MVD0)의 list0 예측 움직임 벡터(PMVD0)를 계산하기 위해서 항상 중간값을 사용해야 하므로, 블록 A의 list0 움직임 벡터인 MVA0를 list0 예측 움직임 벡터(PMVD0)로 사용하는 것이 불가능하다. 그리고 list1 현재 움직임 벡터(MVD1)의 list1 예측 움직임 벡터(PMVD1)를 계산하기 위해서 항상 중간값을 사용해야 하므로, 블록 A의 list1 움직임 벡터인 MVA1를 list1 예측 움직임 벡터(PMVD1)로 사용하는 것이 불가능하다.However, in the conventional motion vector coding method of using a median list0 current motion vector (MV D0) of list0 predicted motion vector (PMV D0) always so use the median value to compute, the MV A0 list0 motion vector of the block A Is used as the list0 predicted motion vector (PMV D0 ). And list1 it should always intermediate value to calculate the current motion vector list1 predicted motion vector (PMV D1) of (MV D1), using the list1 motion vector MV A1 of block A in list1 predicted motion vector (PMV D1) It is impossible.

만약, 블록 A의 list0 움직임 벡터(MVA0)를 list0 예측 움직임 벡터(PMVD0)로 사용한다고 하더라도, MVA0, MVB0 및 MVC0 중에서 어떤 list0 움직임 벡터가 list0 예측 움직임 벡터(PMVD0)로 사용되었는지에 대한 '추가적인 정보'를 함께 전송해야 한다. 블록 A의 list1 움직임 벡터(MVA1)를 list1 예측 움직임 벡터(PMVD1)로 사용한다고 하더라도, MVA1, MVB1 및 MVC1 중에서 어떤 list1 움직임 벡터가 list1 예측 움직임 벡터(PMVD1)로 사용되었는지에 대한 '추가적인 정보'를 함께 전송해야 한다. 그로 인해, 추가적인 정보를 부호화함으로써 압축 효율의 향상 여부를 보장할 수 없는 다른 문제점이 있다.Even if the list0 motion vector MV A0 of the block A is used as the list0 predicted motion vector PMV D0 , MV A0 and MV B0 And MV C0 It is necessary to transmit 'additional information' as to which list0 motion vector is used as the list0 predicted motion vector PMV D0 . Even if the list 1 motion vector MV A1 of the block A is used as the list 1 predicted motion vector PMV D1 , MV A1 and MV B1 And MV C1 And 'additional information' indicating which list 1 motion vector is used as the list 1 predicted motion vector PMV D1 . Therefore, there is another problem that it is impossible to guarantee the improvement of the compression efficiency by encoding additional information.

따라서, 본 발명의 일 실시예에 따른 복수 개의 참조 픽처에 대한 움직임 벡터 부호화 방법은 더욱 정확하게 복수 개의 참조 픽처에 대한 예측 움직임 벡터를 선택할 수 있도록 함으로써, 더욱 정확하게 예측된 움직임 벡터를 이용하여 움직임 벡터를 부호화할 수 있도록 한다. 또한, 본 발명의 일 실시예에 따른 복수 개의 참조 픽처에 대한 움직임 벡터 부호화 방법은 더욱 정확한 예측 움직임 벡터를 선택하여 부호화 효율을 향상시키면서도, 선택된 복수 개의 참조 픽처에 대한 예측 움직임 벡터를 알리기 위해 추가적인 정보를 전송해야 하는 비효율을 감소시킬 수 있다.Accordingly, the motion vector coding method for a plurality of reference pictures according to an embodiment of the present invention can more accurately select a predictive motion vector for a plurality of reference pictures, thereby obtaining a motion vector using a more accurately predicted motion vector So that it can be encoded. In addition, the motion vector coding method for a plurality of reference pictures according to an embodiment of the present invention may improve the coding efficiency by selecting more accurate prediction motion vectors, and may further include additional information to inform a predicted motion vector for a plurality of selected reference pictures Can be reduced.

이하에서는, 본 발명의 실시예를 설명하는 데 있어서, 도 1 에서 나타낸, 블록들(블록 A, 블록 B, 블록 C 및 블록 D) 및 그에 대한 list0 참조 픽처에 대한 움직임 벡터(이하 'list0 움직임 벡터'라 칭함)인 MVA0, MVB0, MVC0 및 MVD0와 도 2 에서 나타낸, 블록들(블록 A, 블록 B, 블록 C 및 블록 D) 및 그에 대한 list1 참조 픽처에 대한 움직임 벡터(이하 'list1 움직임 벡터'라 칭함)인 MVA1, MVB1, MVC1 및 MVD1를 이용하여 설명한다.Hereinafter, a description will be given of an embodiment of the present invention in which blocks (block A, block B, block C, and block D) shown in FIG. 1 and motion vectors MV A0 , MV B0 , and MV C0 And, blocks shown in FIG. 2 and MV D0 (block A, block B, block C, and block D), and thereto (hereinafter referred to as "list1 motion vector" hereinafter) for vector movement of the list1 reference pictures of MV A1, MV B1 , MV C1 And MV D1 .

단, 도 1과 도 2에서는, list0 움직임 벡터(MVA0, MVB0, MVC0 및 MVD0)와 list1 움직임 벡터(MVA1, MVB1, MVC1 및 MVD1)를 수직 성분과 수평 성분을 가지는 이차원적인 벡터로 도시하였으나, 이는 설명의 편의를 위한 것일 뿐, 본 발명에 이용되는 움직임 벡터는 반드시 이에 한정되지 않고, n차원 움직임 벡터로 확대하여 적용할 수 있다. 또한, 도 1과 도 2에서는, 현재 블록(블록 D)의 주변 블록을 공간적인 인접성에 따라 3개의 블록 A, 블록 B 및 블록 C로만 나타내었으나, 이는 설명의 편의를 위한 것일 뿐, 본 발명에 이용되는 주변 블록들은 반드시 이에 한정되지 않고, 시간적 또는 공간적으로 주변에 있는 하나 이상의 주변 블록일 수 있다.1 and 2, the list 0 motion vectors MV A0 , MV B0 , and MV C0 And MV D0 ) and list1 motion vectors (MV A1 , MV B1 , MV C1 And MV D1 are shown as a two dimensional vector having a vertical component and a horizontal component. However, this is for convenience of description, and the motion vector used in the present invention is not necessarily limited to this, can do. In FIGS. 1 and 2, neighboring blocks of the current block (block D) are represented by three blocks A, B, and C in accordance with spatial adjacency. However, The peripheral blocks used are not necessarily limited to this, and may be one or more peripheral blocks temporally or spatially surrounding.

또한, 도 1과 도 2에서는, 참조 픽처에 대한 움직임 벡터를 list0 움직임 벡터(MVA0, MVB0, MVC0 및 MVD0)와 list1 움직임 벡터(MVA1, MVB1, MVC1 및 MVD1)로 구분하였으나, B 픽처에서는 list0 및 list1 중 하나 또는 list0와 list1 모두를 참조 픽처로서 가지기 때문에, 반드시 두 개의 참조 픽처(list0와 list1)에 대한 움직임 벡터를 가질 필요는 없다. 더 나아가서, 두 개 이상의 복수 개의 참조 픽처를 가질 수도 있으며, 이 경우 복수 개의 참조 픽처는 list0, list1, …, list n 참조 픽처로 나타낼 수 있고 그에 따른 움직임 벡터를 list0 움직임 벡터, list1 움직임 벡터, …, list n 움직임 벡터 등으로 나타낼 수 있다.1 and 2, a motion vector for a reference picture is referred to as a list0 motion vector MV A0 , MV B0 , MV C0 And MV D0 ) and list1 motion vectors (MV A1 , MV B1 , MV C1 And MV D1 . However, since a B picture has either list0 or list1 or both list0 and list1 as reference pictures, it is not necessary to necessarily have motion vectors for two reference pictures (list0 and list1). Furthermore, it is possible to have two or more reference pictures, in which case a plurality of reference pictures may be list0, list1, ... , list n can be represented by reference pictures and the corresponding motion vectors are denoted by list0 motion vector, list1 motion vector, ... , list n motion vectors, and so on.

본 발명의 일 실시예에 따른 움직임 벡터 부호화 모드는 예측 가능 모드와 예측 불가능 모드를 포함한다. 일 예로서, 예측 가능 모드란 움직임 벡터 부호화 장치 또는 영상 부호화 장치에 미리 설정된 기준 또는 방법에 따라 현재 블록의 움직임 벡터인 현재 움직임 벡터를 예측하여 결정된 예측 움직임 벡터(이하 '최적 움직임 벡터(Optimum Motion Vector)'라 칭함)를 움직임 벡터 복호화 장치 또는 영상 복호화 장치에서 예측할 수 있음을 식별하기 위한 모드를 말한다. 예측 불가능 모드란 움직임 벡터 복호화 장치 또는 영상 복호화 장치에서 최적 움직임 벡터를 예측할 수 없음을 식별하기 위한 모드를 말한다.The motion vector coding mode according to an embodiment of the present invention includes a predictable mode and an unpredictable mode. For example, the predictive mode may be a predictive motion vector (hereinafter referred to as an " optimal motion vector ") determined by predicting a current motion vector, which is a motion vector of a current block, ) &Quot;) can be predicted by a motion vector decoding apparatus or an image decoding apparatus. The unpredictable mode refers to a mode for identifying that an optimal motion vector can not be predicted in a motion vector decoding apparatus or an image decoding apparatus.

본 발명에서, 최적 움직임 벡터라 함은 움직임 벡터 부호화 장치에서 미리 설정된 기준 또는 방법에 따라 현재 움직임 벡터를 예측하여 결정되는 예측 움직임 벡터를 의미하는 것일 뿐, 이와 같이 결정된 예측 움직임 벡터가 항상 최적의 예측값을 갖는다는 것을 의미하는 것은 아니다. 또한, 디폴트 움직임 벡터(Default Motion Vector)라 함은 움직임 벡터 부호화 장치 또는 영상 부호화 장치와 움직임 벡터 복호화 장치 또는 영상 복호화 장치에 공동으로 기 설정되거나 기 설정된 기준 또는 방법(예를 들면, 중간값(Median) 계산 방법 등)에 따라 생성되는 list0 및 list1 예측 움직임 벡터를 의미하는 것이다.In the present invention, the optimal motion vector means only a predictive motion vector determined by predicting the current motion vector according to a preset reference or method in the motion vector coding apparatus, and thus the predicted motion vector thus determined is always the optimal predicted value Does not mean that it has. Also, the default motion vector may be a motion vector coding apparatus, a motion vector decoding apparatus, a motion vector decoding apparatus, or a motion vector decoding apparatus, ) Calculation method, and the like), respectively.

도 3은 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치의 구성을 간략하게 나타낸 블록 구성도이다.3 is a block diagram schematically illustrating a configuration of a motion vector coding apparatus according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치(300)는, 최적 움직임 벡터 결정부(310), 움직임 벡터 부호화 모드 결정부(320), 제 1 움직임 벡터 부호화부(330) 및 제 2 움직임 벡터 부호화부(340)를 포함하여 구성될 수 있다.3, a motion vector coding apparatus 300 according to an embodiment of the present invention includes an optimal motion vector determination unit 310, a motion vector coding mode determination unit 320, a first motion vector coding unit 330 And a second motion vector coding unit 340.

최적 움직임 벡터 결정부(310)는 현재 블록의 현재 움직임 벡터를 복수 개의 참조 픽처에 대해 예측하여 복수 개의 참조 픽처에 대한 최적 움직임 벡터를 결정한다. 즉, 최적 움직임 벡터 결정부(310)는 현재 블록의 list0 및 list1 현재 움직임 벡터에 대하여 list0 및 list1 최적 움직임 벡터로 사용할 수 있는 후보 움직임벡터 집합을 선택하고, 선택된 list0 및 list1 후보 움직임 벡터에서 하나의 후보 움직임 벡터를 list0 및 list1 최적 움직임 벡터 집합으로 결정한다. 여기서, list0 및 list1 후보 움직임 벡터 집합은 하나 이상의 후보 움직임 벡터를 포함할 수 있다.The optimal motion vector determination unit 310 determines an optimal motion vector for a plurality of reference pictures by predicting the current motion vector of the current block with respect to a plurality of reference pictures. That is, the optimal motion vector determination unit 310 selects a set of candidate motion vectors that can be used as list0 and list1 optimal motion vectors for list0 and list1 current motion vectors of the current block, and selects one candidate motion vector from the selected list0 and list1 candidate motion vectors. The candidate motion vectors are determined as a set of optimal motion vectors for list0 and list1. Here, the list0 and list1 candidate motion vector sets may include one or more candidate motion vectors.

여기서, 최적 움직임 벡터 결정부(310)는 list0 최적 움직임 벡터 집합에 대한 후보 움직임 벡터 집합과 list1 최적 움직임 벡터에 대한 후보 움직임 벡터 집합을 각각 선택하거나, list0 및 list1 최적 움직임 벡터에 대한 후보 움직임 벡터 집합을 공유하여 선택할 수 있다. list0 최적 움직임 벡터에 대한 후보 움직임 벡터 집합과 list1 최적 움직임 벡터에 대한 후보 움직임 벡터 집합을 각각 선택하는 경우, 최적 움직임 벡터 결정부(310)는 list0 최적 움직임 벡터를 선택할 때 list0 참조 픽처를 참조하는 후보 움직임 벡터들 중에서 list0 최적 움직임 벡터에 대한 후보 움직임 벡터 집합을 선택하고, list1 최적 움직임 벡터를 선택할 때 list1 참조 픽처를 참조하는 후보 움직임 벡터들 중에서 list1 최적 움직임 벡터에 대한 후보 움직임 벡터 집합을 선택한다.Here, the optimal motion vector determination unit 310 selects a candidate motion vector set for the list0 optimal motion vector set and a candidate motion vector set for the list1 optimal motion vector, or sets a candidate motion vector set for the list0 and list1 optimal motion vectors, respectively You can choose to share. When selecting a candidate motion vector set for the list0 optimum motion vector and a candidate motion vector set for the list1 optimal motion vector, the optimal motion vector determination unit 310 selects candidate motion vectors Selects a candidate motion vector set for the list 0 best motion vector among the vectors and selects a candidate motion vector set for the list 1 best motion vector among the candidate motion vectors that refer to the list 1 reference picture when selecting the list 1 best motion vector.

list0 및 list1 최적 움직임 벡터에 대한 후보 움직임 벡터 집합을 공유하여 선택하는 경우, 최적 움직임 벡터 결정부(310)는 list0 최적 움직임 벡터를 선택할 때 공유하는 후보 움직임 벡터들(즉, list0 최적 움직임 벡터에 대한 후보 움직임 벡터와 list1 최적 움직임 벡터에 대한 후보 움직임 벡터들) 중에서 list1 참조 픽처를 참조하는 후보 움직임 벡터들을 시간적 거리를 고려하여 적절하게 스케일링하여 list0 최적 움직임 벡터에 대한 후보 움직임 벡터로서 선택하고, list1 최적 움직임 벡터를 선택할 때 공유하는 후보 움직임 벡터 중에서 list0 참조 픽처를 참조하는 후보 움직임 벡터들을 시간적 거리를 고려하여 적절하게 스케일링하여 list1 최적 움직임 벡터에 대한 후보 움직임 벡터 집합으로서 선택한다.When the candidate motion vector set for the list0 and list1 optimal motion vectors is shared and selected, the optimal motion vector determination unit 310 determines candidate optimal motion vectors for the list0 optimal motion vector (i.e., Candidate motion vectors referring to the list 1 reference pictures among the candidate motion vectors for the list 1 optimal motion vector are scaled appropriately considering the temporal distance and selected as the candidate motion vectors for the list 0 optimal motion vector, When selecting a motion vector, candidate motion vectors that refer to the list0 reference picture among the candidate motion vectors to be shared are appropriately scaled considering the temporal distance and selected as a candidate motion vector set for the list1 optimal motion vector.

또한, 최적 움직임 벡터 결정부(310)는 현재 블록에 대한 하나 이상의 주변블록을 검색하고, 검색된 하나 이상의 주변 블록의 list0 및 list1 움직임 벡터를 각각 산출하고 취합하여 후보 움직임 벡터 집합으로 선택할 수 있다. 도 1과 도 2에 나타낸 예시를 참조하면, 후보 움직임 벡터 집합은 현재 블록인 블록 D의 좌측, 상단, 우측 상단에 있는 주변 블록인 블록 A, 블록 B 및 블록 C가 가지는 움직임 벡터들로 이루어진 {MVA, MVB, MVC}일 수 있다.In addition, the optimal motion vector determination unit 310 may search for one or more neighboring blocks of the current block, and may calculate and collect the list0 and list1 motion vectors of the searched one or more neighboring blocks to select as a candidate motion vector set. 1 and 2, the set of candidate motion vectors includes a motion vector of a block A, a block B, and a block C, which are neighboring blocks on the left, top, MV A , MV B , MV C }.

다만, 최적 움직임 벡터 결정부(310)는 구현 방법이나 필요에 따라 더욱 다양한 움직임 벡터들을 후보 움직임 벡터 집합으로 선택할 수 있을 것이다. 예를 들어, 시간축 상으로 이전에 존재하는 참조 픽처에서 현재 블록과 동일한 위치에 있는 블록의 움직임 벡터나 공간축 상으로 좌측 상단에 위치한 블록의 움직임 벡터도 후보 움직임 벡터 집합으로 선택될 수 있으며, 이들 움직임 벡터들을 이용하여 선정된 또 다른 움직임벡터(예를 들어, 하나 이상의 움직임 벡터의 평균값이나 중간값 등)도 포함될 수 있다. 후보 움직임 벡터 집합은 그 정의를 움직임 벡터 부호화 장치와 움직임 벡터 복호화 장치에 기 설정된다는 전제 하에 다양한 방법으로 정의될 수 있으며, 후보 움직임 벡터 집합의 후보 움직임 벡터들 중 일부 또는 전부가 동일한 값을 갖는 경우 서로 다른 값을 갖는 후보 움직임 벡터들만으로 선택될 수 있다.However, the optimal motion vector determination unit 310 may select more various motion vectors as a candidate motion vector set according to an implementation method or a need. For example, a motion vector of a block located at the same position as the current block in a previous reference picture on the time axis or a motion vector of a block located at the upper left of the spatial axis may be selected as a candidate motion vector set. Another motion vector selected using motion vectors (e.g., an average or median value of one or more motion vectors, etc.) may also be included. The candidate motion vector set may be defined in various ways on the assumption that the motion vector coding apparatus and the motion vector decoding apparatus are defined in advance. If some or all of the candidate motion vectors in the candidate motion vector set have the same value Only candidate motion vectors having different values can be selected.

최적 움직임 벡터 결정부(310)는 전술한 바와 같이, 다양한 방법으로 선택한 후보 움직임 벡터 집합에서 하나의 후보 움직임 벡터를 선택하여 list0 및 list1 최적 움직임 벡터로서 결정한다. 최적 움직임 벡터 결정부(310)는 움직임 벡터 부호화 장치와 움직임 벡터 복호화 장치에 기 설정된 선택 함수를 이용하여 후보 움직임 벡터 각각에 대한 선택 함수값을 계산하고, 계산된 선택 함수값을 기초로 하나의 후보 움직임 벡터를 list0 및 list1 최적 움직임 벡터로 결정한다.As described above, the optimal motion vector determiner 310 selects one candidate motion vector from a set of candidate motion vectors selected by various methods, and determines the candidate motion vectors as list0 and list1 optimal motion vectors. The optimal motion vector determination unit 310 calculates a selection function value for each of the candidate motion vectors using a predetermined selection function in the motion vector coding apparatus and the motion vector decoding apparatus, The motion vectors are determined as list0 and list1 optimal motion vectors.

일 예로서, 전술한 선택 함수값은, 선택된 후보 움직임 벡터 집합 중 하나 이상의 후보 움직임 벡터 각각에 대해 list0 및 list1 현재 움직임 벡터와의 차인 list0 및 list1 차분 벡터를 부호화하는데 소요되는 비트량, 선택된 하나 이상의 후보 움직임 벡터 각각에 대해 list0 및 list1 현재 움직임 벡터와의 차이인 list0 및 list1 차분 벡터의 크기 및 움직임 벡터 부호화 모드를 부호화하는데 소요되는 비트량 중 하나 이상을 포함할 수 있다. 만약, list0 및 list1 차분 벡터의 비트량을 선택 함수값으로 이용하는 경우, 최적 움직임 벡터 결정부(310)는 선택된 하나 이상의 후보 움직임 벡터 각각에 대한 list0 및 list1 차분 벡터를 부호화하는데 소요되는 비트량을 계산하고, 계산된 비트량 중 최소의 비트량을 발생시키는 후보 움직임 벡터를 list0 및 list1 최적 움직임 벡터로서 선택할 수 있다. As an example, the above-mentioned selection function value may include a bit amount required to encode list0 and list1 differential vectors which are the differences between list0 and list1 current motion vectors for one or more candidate motion vectors in the selected candidate motion vector set, A list0 difference between list0 and list1 current motion vectors for each of the candidate motion vectors, and a bit quantity required to encode the motion vector coding mode and the size of the list1 differential vector. If the bit values of the list0 and list1 difference vectors are used as the selection function values, the optimal motion vector determination unit 310 calculates the bit amounts required to encode the list0 and list1 differential vectors for the selected one or more candidate motion vectors And a candidate motion vector generating a minimum amount of bits of the calculated bit amount can be selected as list0 and list1 optimal motion vectors.

다른 예로서, 최적 움직임 벡터 결정부(310)는 선택된 하나 이상의 후보 움직임 벡터 중 하나의 움직임 벡터를 선택했을 경우, 발생하는 부호화에 소요되는 비트량과 이때 발생할 복원된 영상의 화질을 함께 고려하는 율-왜곡 최적화(Rate-Distortion Optimization) 방식을 이용하여 list0 및 list1 최적 움직임 벡터를 결정할 수도 있다. 이 경우, 전술한 선택 함수값은 율-왜곡 비용(Rate-Distortion Cost)이 될 수 있다.As another example, when a motion vector of one or more selected candidate motion vectors is selected, the optimal motion vector determination unit 310 determines a rate of considering a bit amount required for encoding and a quality of a reconstructed image generated at this time - The optimal list0 and list1 motion vectors may be determined using Rate-Distortion Optimization. In this case, the above-mentioned selection function value may be a Rate-Distortion Cost.

또 다른 예로서, 최적 움직임 벡터 결정부(310)는 수학식 7, 수학식 8 및 수학식 9를 통해 정의되는 라그랑제 비용(Lagrangian Cost) 함수를 list0 및 list1 최적 움직임 벡터를 결정하기 위한 선택 함수로 이용할 수 있다. 이 경우, 전술한 선택 함수값은 라그랑제 비용이 될 수 있다.As another example, the optimal motion vector determiner 310 may determine a Lagrangian Cost function defined by Equations (7), (8), and (9) as a list0 and a list1 optimal motion vector . In this case, the above-mentioned selection function value can be a cost of raglane.

Figure 112015063618015-pat00007
Figure 112015063618015-pat00007

Figure 112015063618015-pat00008
Figure 112015063618015-pat00008

Figure 112015063618015-pat00009
Figure 112015063618015-pat00009

여기서, J는 라그랑제 비용을 나타내고, J0는 list0 참조 픽처에 대한 라그랑제 비용을 나타내며, J1는 list1 참조 픽처에 대한 라그랑제 비용을 나타내며, D0는 원래의 영상 데이터와 list0 참조 픽처를 이용하여 복원된 영상 데이터 간의 오차를 나타내며, D1는 원래의 영상 데이터와 list1 참조 픽처를 이용하여 복원된 영상 데이터 간의 오차를 나타내며, λ는 라그랑제 승수를 나타낸다. RH은 움직임 벡터 부호화 모드를 부호화하는데 소요되는 비트량을 나타내고, R0 M은 list0 현재 움직임 벡터의 차분 벡터를 부호화하는데 소요되는 비트량을 나타내며, R1 M은 list1 현재 움직임 벡터의 차분 벡터를 부호화하는데 소요되는 비트량을 나타낸다.J 0 denotes a Lagrangian cost, J 0 denotes a Lagrangian cost for a reference picture list 0 , J 1 denotes a Lagrangian cost for a reference picture list 1 , D 0 denotes original picture data, and list 0 reference picture Represents an error between reconstructed image data, D 1 represents an error between original image data and reconstructed image data using list 1 reference pictures, and λ represents a Lagrangian multiplier. R H represents the amount of bits required to code the motion vector coding mode, R 0 M represents the amount of bits required to code the list0 differential vector of the current motion vector, R 1 M are list1 the differential vector of the current motion vector Indicates the amount of bits required for encoding.

w는 가중치값으로서, 구현 방식에 따라서 1 또는 2의 값을 가질 수 있다. 실시예로, list0와 list1 참조 픽처에 대한 움직임 벡터 부호화 모드를 각각 결정할 경우, 움직임 벡터 부호화 모드가 2개가 되므로 w의 값은 2가 될 수 있다. 다른 실시예로, list0와 list1에 대한 움직임 벡터 부호화 모드를 하나로 결정할 경우, 움직임 벡터 부호화 모드가 1개가 되므로 w의 값은 1이 될 수 있다.w is a weight value, and may have a value of 1 or 2, depending on the implementation. In the embodiment, when the motion vector coding modes for the list0 and list1 reference pictures are respectively determined, the motion vector coding mode becomes two, so the value of w can be two. In another embodiment, when the motion vector coding modes for list0 and list1 are determined to be one, the motion vector coding mode becomes one, so that the value of w may be one.

수학식 7 내지 수학식 9에서의 J, J0, J1, D0, D1, RH, R0 M, R1 M 은 모두 현재블록이 위치하는 현재 픽처의 번호를 표시하는 n과 현재 블록의 번호를 표시하는 k에 따라 정의되므로, 라그랑제 비용을 이용하여 최적 움직임 벡터를 결정하는 것은 픽처 또는 블록 단위에서 선택적으로 적용될 수 있다. 또한, 최적 움직임 벡터를 결정하는 과정에서 원래의 영상 데이터와 복원된 영상 데이터 간의 오차인 D가 변하지 않는 경우 또는 계산상의 편의를 위한 경우, 라그랑제 비용 J를 산출하는 수학식 7 및 수학식 8에서 D0, D1와 λ를 제거하여 식을 간략화할 수도 있다.J, J 0 , J 1 , D 0 , D 1 , R H , R 0 M , and R 1 M in Equations (7) to (9) are all expressed by n representing the number of the current picture in which the current block is located, Since it is defined according to k indicating the number of blocks, the determination of the optimal motion vector using the Lagrangian cost can be selectively applied on a picture or block basis. In the case where D, which is an error between the original image data and the reconstructed image data, does not change in the process of determining the optimal motion vector or for convenience of calculation, Equation 7 and Equation 8 for calculating the Lagrangian cost J It is also possible to simplify the equation by removing D 0 , D 1 and λ.

라그랑제 비용을 계산하는 과정에서 수학식 9의 RH는 움직임 벡터 부호화 모드 부호화하는 데에 소요되는 비트량이고, 수학식 7과 수학식 8의 R0 M, R1 M 은 현재 움직임 벡터에 대한 차분 벡터를 부호화하는 데에 소요되는 비트량으로서, 그 계산 방법은 움직임 벡터 부호화 모드에 따라 달라진다. 즉, 움직임 벡터 부호화 모드가 예측 불가능 모드인 경우, R0 M, R1 M 은 기 설정되거나 중간값(Median) 계산과 같이 기 설정된 방법에 의해 생성된 list0 및 list1 예측 움직임 벡터(이하에서는 'list0 및 list1 디폴트 움직임 벡터'라 칭함)와 list0 및 list1 현재 움직임 벡터의 차이인 list0 및 list1 차분 벡터를 부호화하는데 소요되는 비트량일 수 있다. 또한, 움직임 벡터 부호화 모드가 예측 가능 모드인 경우, R0 M, R1 M 은 결정된 list0 및 list1 최적 움직임 벡터와 list0 및 list1 현재 움직임 벡터의 차이인 list0 및 list1 차분 벡터를 부호화하는데 소요되는 비트량일 수 있다.In the process of calculating the Lagrangian cost, R H in Equation (9) is the amount of bits required for coding the motion vector coding mode, and R 0 M and R 1 M in Equations (7) and (8) The amount of bits required for coding the differential vector, and the calculation method thereof depends on the motion vector coding mode. That is, when the motion vector coding mode is in the unpredictable mode, R 0 M and R 1 M are set to list0 and list1 predictive motion vectors (hereinafter referred to as 'list0' and 'list0') generated by a predetermined method such as predetermined or median And the list1 default motion vector) and the difference between the list0 and list1 current motion vectors (list0 and list1 differential vectors). When the motion vector coding mode is the predictive mode, R 0 M and R 1 M are the bit amounts required to encode the list0 and list1 differential vectors, which are differences between the determined list0 and list1 optimal motion vectors, and the current motion vectors of list0 and list1, .

또한, 최적 움직임 벡터 결정부(310)는 수학식 7 내지 수학식 9를 통해 전술한 라그랑제 비용(Lagrangian Cost) 함수를 선택 함수로서 이용하여 list0 및 list1 최적 움직임 벡터를 결정할 수도 있지만, 수학식 10과 수학식 11과 같은 더욱 일반화된 선택 함수를 이용하여 list0 및 list1 최적 움직임 벡터를 결정할 수도 있다. 단, 수학식 10과 수학식 11은 부호화할 현재 블록의 list0 현재 움직임 벡터를 도 1에 도시한 블록 D의 움직임 벡터인 MVD0로 가정하여 표현되었고, 부호화할 현재 블록의 list1 현재 움직임 벡터를 도 2에 도시한 블록 D의 움직임벡터인 MVD1로 가정하여 표현되었다.The optimal motion vector determiner 310 may determine the list0 and list1 optimal motion vectors using the Lagrangian Cost function described above through Equations 7 through 9 as a selection function, And a more generalized selection function such as Equation (11) may be used to determine optimal list0 and list1 motion vectors. However, it was represented by assuming a motion vector MV D0 in equation (10) and Equation (11) shows a block at list0 1 also the current motion vector of a current block to code D, also the list1 current motion vector of the current block to be coded a motion vector MV D D1 of one block shown in Figure 2 were expressed on the assumption.

Figure 112015063618015-pat00010
Figure 112015063618015-pat00010

수학식 10에서, PMV0 enc는 결정된 list0 최적 움직임 벡터를 나타내고, PMVC0는 list0 현재 움직임 벡터 MVD0의 list0 최적 움직임 벡터로 결정할 수 있는 후보 움직임 벡터들의 집합인 후보 움직임 벡터 집합(CS: Candidate Set)에 속하는 하나의 원소(즉, 움직임 벡터)를 의미한다. h()는 현재 움직임 벡터 MVD0에 대한 list0 최적 움직임 벡터를 결정하기 위한 선택함수이다.In Equation 10, PMV 0 enc is determined list0 best represents the motion vector, PMVC 0 is list0 current motion vector MV D0 list0 best motion vector candidate motion a set of candidate motion vectors a set of vectors that can be determined by the (CS: Candidate Set (I. E., A motion vector). h () is a selection function for determining the list 0 best motion vector for the current motion vector MV D0 .

Figure 112015063618015-pat00011
Figure 112015063618015-pat00011

수학식 11에서, PMV1 enc는 list1 최적 움직임 벡터이고, PMVC1는 list1 현재 움직임 벡터 MVD1에 대한 list1 최적 움직임 벡터로 결정할 수 있는 후보 움직임 벡터들의 집합인 후보 움직임 벡터 집합(CS)에 속하는 하나의 원소(즉, 후보 움직임 벡터)를 의미한다.In Equation (11), PMV 1 enc is a list 1 best motion vector, PMVC 1 is a list 1 candidate motion vector set (CS 1) which is a set of candidate motion vectors that can be determined as a list 1 best motion vector for list 1 current motion vector MV D1 (I. E., A candidate motion vector).

수학식 10 및 수학식 11에서, h()는 현재 움직임 벡터 MVD1에 대한 list1 최적 움직임 벡터를 선택하기 위한 선택 함수이다. 일 예로, 선택 함수 h()는 list0 및 list1 현재 움직임 벡터와 차분하여 부호화하는데 소요되는 비트량을 사용하거나, list0 및 list1 현재 움직임 벡터와 차분하여 부호화하는데 소요되는 비트량과 움직임 벡터 부호화 모드를 부호화하는데 소요되는 비트량의 합을 사용할 수 있다. 또한, 계산을 간단히 하기 위해, 실제 소요되는 비트량 대신 list0 및 list1 현재 움직임 벡터와 list0 및 list1 최적 움직임벡터와의 차이인 list0 및 list1 차분 벡터의 크기를 사용할 수도 있다. 더욱 일반적으로는, 선택 함수 h()는 움직임 벡터 부호화 장치와 움직임 벡터 복호화 장치에 기 설정된다는 전제하에 다양하게 정의될 수 있다. 이러한 선택 함수 h()가 주어지면, 최적 움직임 벡터의 후보인 후보 움직임 벡터를 포함하는 후보 움직임 벡터 집합(CS)으로부터 선택 함수 h()를 최적화하는 하나의 후보 움직임 벡터(PMVC0)를 list0 최적 움직임 벡터(PMV0 enc)로 결정할 수 있다.In Equations (10) and (11), h () is a selection function for selecting the list 1 best motion vector for the current motion vector MV D1 . For example, the selection function h () can be obtained by coding the bit amount and the motion vector coding mode used for coding by differentiating the list0 and list1 from the current motion vector, The sum of the amounts of bits required to perform the above operation can be used. In order to simplify the calculation, it is also possible to use the sizes of the list0 and list1 difference vectors, which are differences between the current motion vectors list0 and list1 and the optimal motion vectors list0 and list1, instead of the actual bit amounts. More generally, the selection function h () may be variously defined on the assumption that it is preset in the motion vector coding apparatus and the motion vector decoding apparatus. Given this selection function h (), one candidate motion vector (PMVC 0 ) that optimizes the selection function h () from the candidate motion vector set (CS) containing the candidate motion vector as a candidate for the best motion vector is called the list0 optimum It can be determined by a motion vector (PMV 0 enc ).

움직임 벡터 부호화 모드 결정부(320)는 복수 개의 참조 픽처에 대한 최적 움직임 벡터를 움직임 벡터 복호화 장치에서 예측할 수 있는지 여부에 따라 움직임 벡터 부호화 모드를 결정한다. 즉, 움직임 벡터 부호화 모드 결정부(320)는 최적 움직임 벡터 결정부(310)에서 결정한 list0 및 list1 최적 움직임 벡터를 움직임 벡터 복호화 장치에서 예측할 수 있는지 여부에 따라 움직임 벡터 부호화 모드를 예측 가능 모드 또는 예측 불가능 모드로 결정하고, 결정된 움직임 벡터 부호화 모드에 따라 제 1 움직임 벡터 부호화부(330) 또는 제 2 움직임 벡터 부호화(340)로 하여금 list0 및 list1 현재 움직임 벡터를 부호화하도록 제어한다.The motion vector coding mode determination unit 320 determines a motion vector coding mode according to whether or not an optimal motion vector for a plurality of reference pictures can be predicted by the motion vector decoding apparatus. That is, the motion vector coding mode determination unit 320 determines a motion vector coding mode as a predictive mode or a prediction mode according to whether a motion vector decoding apparatus can predict the list0 and list1 optimal motion vectors determined by the optimal motion vector determination unit 310. [ And controls the first motion vector coding unit 330 or the second motion vector coding unit 340 to encode the current motion vectors of list0 and list1 according to the determined motion vector coding mode.

여기서, 움직임 벡터 부호화 모드 결정부(320)는 움직임 벡터 부호화 장치와 움직임 벡터 복호화 장치 간에 기 설정된 판단 함수를 이용하여 후보 움직임 벡터 각각에 대한 판단 함수값을 계산하고, 계산된 판단 함수값을 기초로 하나 이상의 후보 움직임 벡터 중 선택한 각각의 후보 움직임 벡터를 list0 및 list1 현재 움직임 벡터에 대한 list0 및 list1 추정 최적 움직임 벡터(Estimated Optimum Motion Vector)로 결정하며, 결정된 list0 및 list1 추정 최적 움직임 벡터와 결정된 list0 및 list1 최적 움직임 벡터를 비교함으로써 list0 및 list1 최적 움직임 벡터가 움직임 벡터 복호화 장치에서 예측할 수 있는지 여부를 결정할 수 있다.Here, the motion vector coding mode determination unit 320 calculates a determination function value for each of the candidate motion vectors using a predetermined determination function between the motion vector coding apparatus and the motion vector decoding apparatus, The candidate motion vectors selected from among the one or more candidate motion vectors are determined as list0 and list1 estimated optimal motion vectors for the current motion vectors list0 and list1, respectively, and the determined list0 and list1 estimated optimal motion vectors, it is possible to determine whether the list0 and list1 optimal motion vectors can be predicted by the motion vector decoding apparatus by comparing list1 best motion vectors.

예를 들어, list0 및 list1 최적 움직임벡터(PMV0 enc 및 PMV1 enc)를 이용하여 계산된 list0 및 list1 차분 벡터, list0 및 list1 최적 움직임 벡터의 후보가 될 수 있는 유한한 개수의 후보 움직임 벡터, 움직임 보상에 사용할 참조 픽처, 이미 복원된 주변 블록의 정보, 현재 블록의 화소값을 움직임 보상하여 생성한 예측 블록의 예측 화소값과의 차인 잔차 신호 등을 이용하여, list0 및 list1 최적 움직임 벡터가 움직임 벡터 복호화 장치에서 예측할 수 있는지 여부를 판단할 수 있다.For example, a list0 and list1 differential vectors calculated using list0 and list1 optimal motion vectors (PMV 0 enc and PMV 1 enc ), a finite number of candidate motion vectors that can be candidates of list0 and list1 optimal motion vectors, And the residual signal which is a difference between the predicted pixel value of the prediction block generated by motion compensation of the pixel value of the current block and the predicted pixel value of the current block is used as the optimal motion vectors of list0 and list1, It is possible to judge whether or not it can be predicted by the vector decoding apparatus.

이를 위해, 움직임 벡터 부호화 모드 결정부(320)는 움직임 벡터 부호화 장치(300)가 계산하여 전송할 list0 현재 움직임 벡터(MVD0)에 대한 list0 차분 벡터인 DMVD0(=MVD0-PMV0 enc), 이미 부호화되고 복호화되어 복원된 주변 블록의 정보, 움직임 보상에 사용할 참조 픽처와 수학식 12와 같은 판단 함수 등을 이용하여 list0 추정 최적 움직임 벡터인 PMV0 dec를 결정하고, 전송할 list1 현재 움직임 벡터(MVD1)에 대한 list1 차분 벡터인 DMVD1(=MVD1-PMV1 enc), 이미 부호화되고 복호화되어 복원된 주변 블록의 정보, 움직임 보상에 사용할 참조 픽처와 수학식 13과 같은 판단 함수를 이용하여 list1 추정 최적 움직임 벡터인 PMV1 dec를 결정할 수 있다.To this end, the motion vector coding mode determining unit 320 determines a motion vector coding mode of the motion vector coding unit 300 based on the list 0 differential vector DMV D0 (= MV D0 -PMV 0 enc ) for the list0 current motion vector MV D0 to be calculated and transmitted by the motion vector coding apparatus 300, PMV 0 dec, which is a list 0 estimated optimal motion vector, is determined using information of a neighboring block that has already been coded, decoded and reconstructed, a reference picture to be used for motion compensation, and a decision function such as Equation (12) the list1 differential vector DMV to D1) D1 (= MV D1 -PMV 1 enc), list1 using a criterion function, such as a reference picture, and the equation (13) used for the already encoded and decoded information of the reconstructed neighboring blocks, the motion compensation The estimated optimal motion vector PMV 1 dec can be determined.

Figure 112015063618015-pat00012
Figure 112015063618015-pat00012

수학식 12에서, 판단 함수인 g()는, 움직임 벡터 부호화 장치(300)의 움직임 벡터 부호화 모드 결정부(320)가, list0 차분 벡터와 이미 부호화되고 복호화되어 복원된 주변 블록의 정보를 이용하여, 움직임 벡터 복호화 장치 또는 영상 복호화 장치에서 list0 최적 움직임 벡터(PMV0 enc)를 예측할 수 있는지를 판단하기 위한 함수이다. 또한, 판단 함수 g()는 움직임 벡터 복호화 장치에서 list0 추정 최적 움직임 벡터를 결정할 때도 사용될 수 있다.In Equation (12), the motion vector coding mode determination unit 320 of the motion vector coding apparatus 300 uses the information of the list0 differential vector and information of the neighboring blocks that have been already coded and decoded and restored , And determines whether the list0 optimal motion vector (PMV 0 enc ) can be predicted in the motion vector decoding apparatus or the video decoding apparatus. The determination function g () may also be used in determining a list0 estimated optimal motion vector in the motion vector decoding apparatus.

Figure 112015063618015-pat00013
Figure 112015063618015-pat00013

수학식 13에서, 판단 함수인 g()는, 움직임 벡터 부호화 장치(300)의 움직임 벡터 부호화 모드 결정부(320)가, list1 차분 벡터 및 이미 부호화되고 복호화되어 복원된 주변 블록의 정보를 이용하여, 움직임 벡터 복호화 장치에서 list1 최적 움직임벡터(PMV1 enc)를 예측할 수 있는지를 판단하기 위한 함수이다. 또한, 판단 함수 g()는 후술할 움직임 벡터 복호화 장치 또는 영상 복호화 장치에서 list1 추정 최적 움직임 벡터를 예측할 때도 사용된다. 이러한 판단 함수 g()는 움직임 벡터 부호화 장치(300)와 움직임 벡터 복호화 장치에 기 설정된다는 전제하에 다양한 방법으로 정의될 수 있다.In Equation 13, the motion vector coding mode determination unit 320 of the motion vector coding apparatus 300 uses the information of the list 1 differential vector and neighboring blocks that have been already coded and decoded and restored , And determines whether the list 1 best motion vector (PMV 1 enc ) can be predicted in the motion vector decoding apparatus. Further, the determination function g () is also used in predicting the list 1 estimated optimal motion vector in a motion vector decoding apparatus or an image decoding apparatus to be described later. This determination function g () may be defined in various ways on the premise that it is previously set in the motion vector coding apparatus 300 and the motion vector decoding apparatus.

수학식 12에 의해, 움직임 벡터 부호화 모드 결정부(320)는 움직임 벡터 복호화 장치가 추정할 움직임 벡터인 list0 추정 최적 움직임 벡터 PMV0 dec를 미리 계산하고, 움직임 벡터 복호화 장치가 list0 차분 벡터 DMVD0(=MVD0-PMV0 enc)를 이용하여 list0 최적 움직임 벡터(PMV0 enc)를 올바르게 예측하여 영상 데이터를 올바르게 복원할 수 있는지 여부를 판단한다. 즉, 움직임 벡터 부호화 모드 결정부(320)는 영상 복호화 장치가 수행할 list0 추정 최적 움직임 벡터를 결정하는 과정을 미리 수행하여 그 결과인 list0 추정 최적 움직임 벡터를 움직임 벡터를 부호화할 때 이용한다.According to Equation (12), the motion vector coding mode determining unit 320 previously calculates the list0 estimated optimal motion vector PMV 0 dec , which is a motion vector to be estimated by the motion vector decoding apparatus, and the motion vector decoding apparatus calculates the list0 differential vector DMV D0 MV = D0 -PMV using 0 enc) list0 judges whether the optimal motion vector (PMV 0 can be correctly predicted by the enc) to restore the image data correctly. That is, the motion vector coding mode determination unit 320 performs a process of determining a list0 estimated optimal motion vector to be performed by the video decoding apparatus, and uses the resultant list0 estimated optimal motion vector to encode the motion vector.

수학식 13에 의해, 움직임 벡터 부호화 모드 결정부(320)는 움직임 벡터 복호화 장치가 추정할 움직임 벡터인 list1 추정 최적 움직임 벡터 PMV1 dec를 미리 계산하고, 움직임 벡터 복호화 장치가 list1 차분 벡터 DMVD1(=MVD1-PMV1 enc)를 이용하여 list1 최적 움직임 벡터(PMV1 enc)를 올바르게 예측하여 영상 데이터를 올바르게 복원할 수 있는지 여부를 판단한다. 즉, 움직임 벡터 부호화 모드 결정부(320)는 영상 복호화 장치가 수행할 list1 추정 최적 움직임 벡터를 찾아내는 과정을 미리 수행하여 그 결과인 list1 추정 최적 움직임 벡터를 움직임 벡터를 부호화할 때 이용한다.According to Equation (13), the motion vector coding mode determination unit 320 previously calculates the list 1 estimated optimal motion vector PMV 1 dec , which is a motion vector to be estimated by the motion vector decoding apparatus, and the motion vector decoding apparatus calculates the list 1 differential vector DMV D1 = MV D1 -PMV 1 enc ) is used to correctly predict the list 1 best motion vector PMV 1 enc to determine whether the image data can be correctly restored. That is, the motion vector coding mode determination unit 320 performs a process of finding the list 1 estimated optimal motion vector to be performed by the video decoding apparatus in advance, and uses the resultant list 1 estimated optimal motion vector to encode the motion vector.

일 예로, 움직임 벡터 부호화 모드 결정부(320)는 수학식 12를 이용하여 계산된 list0 추정 최적 움직임 벡터(PMV0 dec)와 최적 움직임 벡터 결정부(310)에 의해 결정된 list0 최적 움직임 벡터(PMV0 enc)가 동일한 경우, 움직임 벡터 복호화 장치는 움직임 벡터 부호화 장치로부터 제공된 list0 차분 벡터(DMVD0)에 직접 추정한 list0 추정 최적 움직임 벡터(PMV0 dec)를 더하여 현재 움직임 벡터 MVD0를 올바르게 복원할 수 있으며 그에 따라 올바르게 복원된 영상 데이터를 얻어낼 수 있다.For example, the motion vector coding mode decision unit 320 is calculated using Equation 12 list0 estimated optimal motion vector (PMV 0 dec) and list0 optimal motion vector (PMV 0 determined by the optimal motion vector determiner 310 the motion vector decoding apparatus can correctly restore the current motion vector MV D0 by adding the list0 estimated optimal motion vector PMV 0 dec directly estimated to the list0 differential vector DMV D0 provided from the motion vector coding apparatus So that the correctly reconstructed image data can be obtained.

또한, 움직임 벡터 부호화 모드 결정부(320)는 수학식 13을 이용하여 계산된 list1 추정 최적 움직임 벡터(PMV1 dec)가 최적 움직임 벡터 결정부(310)에 의해 결정된 list1 최적 움직임 벡터(PMV1 enc)와 동일한 경우, 움직임 벡터 복호화 장치는 움직임 벡터 부호화 장치로부터 제공된 list1 차분 벡터(DMVD1)에 직접 추정한 list1 추정 최적 움직임 벡터(PMV1 dec)를 더하여 현재 움직임벡터 MVD1를 올바르게 복원할 수 있으며 그에 따라 올바르게 복원된 영상 데이터를 얻어낼 수 있다.Also, the motion vector coding mode determination unit 320 may determine that the list 1 estimated optimal motion vector PMV 1 dec calculated using Equation (13) is the list 1 best motion vector PMV 1 enc , The motion vector decoding apparatus can correctly restore the current motion vector MV D1 by adding the list1 estimated optimal motion vector PMV 1 dec directly estimated to the list1 differential vector DMV D1 provided from the motion vector coding apparatus Accordingly, it is possible to obtain correctly reconstructed image data.

따라서, 움직임 벡터 부호화 모드 결정부(320)는 최적 움직임 벡터 결정부(310)에 의해 결정된 list0 및 list1 예측 움직임 벡터(PMV0 enc 및 PMV1 enc)와 움직임 벡터 복호화 장치가 예측할 것으로 추정되는 list0 및 list1 추정 최적 움직임 벡터(PMV0 dec 및 PMV1 dec)가 동일한 경우에는, 움직임 벡터 복호화 장치에서 list0 및 list1 최적 움직임 벡터(PMV0 enc 및 PMV1 enc)을 예측할 수 있다고 판단하고, 그 이외의 경우에는 예측할 수 없다고 판단할 수 있다.Accordingly, the motion vector coding mode determination unit 320 determines the motion vectors of the list 0 and list 1 predicted motion vectors PMV 0 enc and PMV 1 enc determined by the optimal motion vector determination unit 310, list0, which is estimated by the motion vector decoding apparatus, If the list1 estimated optimal motion vectors (PMV 0 dec and PMV 1 dec ) are the same, it is determined that the list0 and list1 optimal motion vectors (PMV 0 enc and PMV 1 enc ) can be predicted by the motion vector decoding apparatus, Can not be predicted.

또한, 경우에 따라서, 움직임 벡터 부호화 모드 결정부(320)는 최적 움직임 벡터 결정부(310)에 의해 결정된 list0 및 list1 최적 움직임 벡터(PMV0 enc 및 PMV1 enc)와 움직임 벡터 복호화 장치가 계산할 것으로 추정되는 list0 및 list1 추정 최적 움직임 벡터(PMV0 dec 및 PMV1 dec) 간의 차이가 소정의 벡터 경계값 이하인 경우에도, 움직임 벡터 복호화 장치에서 list0 및 list1 최적 움직임 벡터(PMV0 enc 및 PMV1 enc)를 예측할 수 있다고 판단하고, 그 이외의 경우는 경우에는 예측할 수 없다고 판단할 수 있다. 여기서, 벡터 경계값은 움직임 벡터의 크기의 단위로 계산식을 통해 또는 경험적으로 자유롭게 설정될 수 있는 값을 말한다.In addition, the motion vector coding mode determination unit 320 may determine whether the list0 and list1 optimal motion vectors (PMV 0 enc and PMV 1 enc ) determined by the optimal motion vector determination unit 310 and the motion vectors estimating list0 and list1 estimated optimal motion vector (PMV 0 dec and PMV 1 dec) even if more than the predetermined vector threshold value, list0 in the motion vector decoding apparatus and a list1 optimal motion vector (PMV 0 enc and PMV 1 enc) the difference between the It can be judged that it can not be predicted. Here, the vector boundary value refers to a value that can be set freely in a unit of magnitude of a motion vector or through empirical expression.

다른 예로, 영상의 압축율이 높거나 영상의 화소값의 변화가 크지 않거나 영상의 움직임 벡터의 변화가 크지 않은 경우 등에는, 움직임 벡터 부호화 모드 결정부(320)는 비록 list0 최적 움직임 벡터(PMV0 enc)와 list0 추정 최적 움직임 벡터(PMV0 dec)가 동일하지 않거나 소정의 벡터 경계값 이하로 차이가 있더라도, list0 추정 최적 움직임 벡터(PMV0 dec)를 이용하여 복원한 list0 현재 움직임 벡터(즉, MVD0 = DMVD0 + PMV0 dec )를 이용하여 움직임 보상된 영상 데이터와 list0 최적 움직임 벡터(PMV0 enc)를 이용하여 복원한 list0 현재 움직임 벡터(즉, MVD0 = DMVD0 + PMV0 enc )를 이용하여 움직임 보상된 영상 데이터가 동일한 경우, 움직임 벡터 복호화 장치가 list0 추정 최적 움직임 벡터(PMV0 dec)를 이용하여 list0 최적 움직임 벡터(PMV0 enc)를 예측할 수 있다고 판단하고, 그 이외의 경우에는 예측할 수 없다고 판단할 수 있다.As another example, in a case where the compression rate of the image is high, the change of the pixel value of the image is not large, or the change of the motion vector of the image is not large, the motion vector coding mode determination unit 320 determines that the list 0 best motion vector PMV 0 enc ) And list0 estimated optimal motion vector (PMV 0 dec ) are different from each other by the list 0 estimated optimal motion vector PMV 0 dec , D0 = DMV D0 + PMV 0 dec) the motion compensated image data and list0 optimal motion vector (PMV 0 enc) list0 a current motion vector restored by using the (ie, MV D0 using = DMV D0 + PMV 0 enc ), It is determined that the motion vector decoding apparatus can predict the list0 optimal motion vector (PMV 0 enc ) using the list 0 estimated optimal motion vector PMV 0 dec , and the other It can be judged that it can not be predicted.

또한, list1 최적 움직임 벡터(PMV1 enc)와 list1 추정 최적 움직임 벡터(PMV1 dec)가 동일하지 않더라도, 움직임 벡터 부호화 모드 결정부(320)는 list1 추정 최적 움직임 벡터(PMV1 dec)를 이용하여 복원한 list1 현재 움직임 벡터(즉, MV'D1 = DMVD1 + PMV1 dec )를 이용하여 움직임 보상된 영상 데이터와 list1 최적 움직임 벡터(PMV1 enc)를 이용하여 복원한 list1 현재 움직임 벡터(즉, MVD1 = DMVD1 + PMV1 enc )를 이용하여 움직임 보상된 영상 데이터가 동일한 경우(예를 들어, 두 개의 복원된 영상 데이터 간의 SAD(Sum of Absolute Difference)가 '0'인 경우), 움직임 벡터 복호화 장치가 list1 추정 최적 움직임 벡터(PMV1 dec)를 이용하여 list1 최적 움직임 벡터(PMV1 enc)를 예측할 수 있다고 판단하고, 그 이외의 경우에는 예측할 수 없다고 판단할 수 있다.Also, even if the list 1 optimal motion vector PMV 1 enc and the list 1 estimated optimal motion vector PMV 1 dec are not the same, the motion vector coding mode determination unit 320 uses the list 1 estimated optimal motion vector PMV 1 dec The reconstructed list1 current motion vector (i.e. MV ' D1 = DMV D1 + PMV dec 1) and motion-compensated image data and list1 optimal motion vector (PMV 1 enc) list1 a current motion vector restored by using the (ie, MV D1 using = DMV D1 + PMV 1 enc (For example, when the sum of absolute differences (SAD) between the two reconstructed image data is '0'), the motion vector decoding apparatus calculates the list 1 estimated optimal motion vector PMV 1 dec ) can be used to determine that the list 1 optimal motion vector PMV 1 enc can be predicted, and otherwise, it can be determined that the prediction can not be performed.

또한, 경우에 따라서, 움직임 벡터 부호화 모드 결정부(320)는, 더욱 압축률을 높이기 위해, list0 추정 최적 움직임 벡터(PMV0 dec)를 이용하여 복원한 list0 현재 움직임 벡터(즉, MVD0 = DMVD0 + PMV0 dec )를 이용하여 움직임 보상된 영상 데이터와 list0 최적 움직임 벡터(PMV0 enc)를 이용하여 복원한 list0 현재 움직임 벡터(즉, MVD0 = DMVD0 + PMV0 enc )를 이용하여 움직임 보상된 영상 데이터가 소정의 데이터 경계값 이하로 차이가 있는 경우(예를 들어, 두 개의 복원된 영상 데이터 간의 SAD(Sum of Absolute Difference)가 소정의 경계값 이하인 경우), 움직임 벡터 복호화 장치가 list0 추정 최적 움직임 벡터(PMV0 dec)를 이용하여 list0 최적 움직임 벡터(PMV0 enc)를 예측할 수 있다고 판단하고, 그 이외의 경우에는 예측할 수 없다고 판단할 수 있다. 여기서, 데이터 경계값이란 데이터의 비트량과 같은 데이터의 크기를 표현할 수 있는 단위로 계산식을 통해 또는 경험적으로 자유롭게 설정될 수 있는 값을 말한다.In some cases, the motion vector coding mode determination unit 320, in order to increase the compression ratio further, list0 estimated optimal motion vector (PMV 0 dec) list0 a current motion vector (i.e., MV D0 restored using = DMV D0 + PMV 0 dec) the motion compensated image data and list0 optimal motion vector (PMV 0 enc) list0 a current motion vector restored by the (i. E., Using the MV D0 D0 = DMV + PMV 0 enc (For example, when the sum of absolute differences (SAD) between two reconstructed image data is equal to or less than a predetermined boundary value), motion vector decoding apparatus that can be determined list0 estimated optimal motion vector (PMV 0 dec) using a list0 optimum motion vector determined that predict the (PMV 0 enc), and can not predict when the other. Here, the data boundary value refers to a value that can be freely set by a calculation formula or empirically as a unit capable of expressing the size of data such as a bit amount of data.

또한, list1 최적 움직임 벡터(PMV1 enc)와 list1 추정 최적 움직임 벡터(PMV1 dec)가 동일하지 않더라도, 움직임 벡터 부호화 모드 결정부(320)는 list1 추정 최적 움직임 벡터(PMV1 dec)를 이용하여 복원한 list1 현재 움직임 벡터(즉, MV'D1 = DMVD1 + PMV1 dec )를 이용하여 움직임 보상된 영상 데이터와 list1 최적 움직임 벡터(PMV1 enc)를 이용하여 복원한 list1 현재 움직임 벡터(즉, MVD1 = DMVD1 + PMV1 enc )를 이용하여 움직임 보상된 영상 데이터가 소정의 데이터 경계값 이하로 차이가 있는 경우, 움직임 벡터 복호화 장치가 list1 추정 최적 움직임 벡터(PMV1 dec)를 이용하여 list1 최적 움직임 벡터(PMV1 enc)를 예측할 수 있다고 판단하고, 그 이외의 경우에는 예측할 수 없다고 판단할 수 있다.Also, even if the list 1 optimal motion vector PMV 1 enc and the list 1 estimated optimal motion vector PMV 1 dec are not the same, the motion vector coding mode determination unit 320 uses the list 1 estimated optimal motion vector PMV 1 dec The reconstructed list1 current motion vector (i.e. MV ' D1 = DMV D1 + PMV dec 1) and motion-compensated image data and list1 optimal motion vector (PMV 1 enc) list1 a current motion vector restored by using the (ie, MV D1 using = DMV D1 + PMV 1 enc ), The motion vector decoding apparatus calculates the list 1 optimal motion vector PMV 1 enc using the list 1 estimated optimal motion vector PMV 1 dec , It can be judged that it can be predicted, and in the other cases, it can be judged that it can not be predicted.

list 0 및 list1 추정 최적 움직임 벡터를 계산하기 위해 이용하는 판단 함수는 움직임 벡터 부호화 장치(300)와 움직임 벡터 복호화 장치에 기 설정된다는 전제하에서 다양한 형태의 함수가 적용될 수 있다. 단, 이하에서는 기 설정된 판단 함수가 list0와 list1에서 모두 사용될 수 있으므로 각 참조 픽처를 구분하여 설명하지 않는다.various types of functions may be applied based on the assumption that the decision function used for calculating the list 0 and list 1 estimated optimal motion vectors is previously set in the motion vector coding apparatus 300 and the motion vector decoding apparatus. However, since the predetermined decision function can be used in both list0 and list1, the reference pictures are not separately described.

수학식 12와 수학식 13의 판단 함수 g()로서는, 템플릿 매칭(TM: Template Matching)을 이용한 함수 또는 경계 화소 정합(BM: Boundary Matching) 등을 이용하는 함수가 이용될 수 있다.As a determination function g () in Equations (12) and (13), a function using Template Matching (TM) or a function using boundary matching (BM) can be used.

일 예로, 판단 함수로서 템플릿 매칭(TM: Template Matching)을 이용한 함수가 이용되는 경우, 탬플릿 매칭 화소 인덱스 집합(TMS: Template Matching Set, 이하 'TMS'라 칭함)는 지정된 블록의 위치를 기준으로, 선택된 화소들의 상대적 위치를 나타내는 인덱스 집합으로 정의될 수 있으며, 예를 들어 지정된 블록의 좌측, 좌측 상단 및 상단에 인접한 주변의 하나 이상의 화소의 위치이다. 필요에 따라서, 다른 방법으로 TMS를 선택할 수 있으나, 통상적으로 TMS가 지시하는 화소의 수가 많으면 더욱 정확한 매칭이 가능하지만 계산량이 많아진다.For example, when a function using Template Matching (TM) is used as a determination function, a Template Matching Set (TMS) May be defined as a set of indices indicating the relative positions of the selected pixels, for example, the positions of one or more surrounding pixels adjacent to the left, top left, and top of a designated block. If necessary, the TMS can be selected by another method. However, if the number of pixels indicated by the TMS is usually large, more accurate matching is possible, but the calculation amount is increased.

템플릿 매칭 방법은, 추정 최적 움직임 벡터로 선택할 수 있는 모든 후보 움직임 벡터 집합(CS)를 선정한 후, 선정된 후보 움직임 벡터 집합 내의 각각의 후보 움직임 벡터가 지정하는 블록(이하 '참조 블록'이라 칭함)에 대해 TMS가 지시하는 화소들과 현재 블록에 대해 TMS가 지시하는 화소들의 차이를 수학식 14(수학식 12와 수학식 13의 일 실시예를 표현한 수학식임)를 이용하여 계산하고 각각의 후보 움직임 벡터에 따른 정합 오류를 계산하여 계산된 정합 오류들 중 가장 최소의 정합 오류를 가지는 것을 추정 최적 움직임 벡터(PMVdec)로 결정한다.The template matching method selects all candidate motion vector sets (CS) that can be selected as the estimated optimal motion vector, and then selects a block (hereinafter referred to as a reference block) designated by each candidate motion vector in the selected candidate motion vector set. And the difference between the pixels indicated by the TMS for the current block and the pixels indicated by the TMS for the current block are calculated using Equation 14 (Equations expressing one embodiment of Equations 12 and 13) And the vector having the smallest matching error among the calculated matching errors is determined as the estimated optimal motion vector (PMV dec ).

Figure 112015063618015-pat00014
Figure 112015063618015-pat00014

수학식 14에서, f(PMVC1+DMVD1,i)의 (PMVC1+DMVD1)는 인덱스 i(TMS에 포함됨)가 가리키는 참조 픽처 내의 참조 블록 주변의 인덱스 i가 나타내는 화소 위치를 나타내고, f(PMVC1+DMVD1,i)는 이 화소 위치에서의 화소값을 나타낸다. 또한, C(i)는 인덱스 i가 지시하는 현재 블록 주변의 화소값을 나타낸다.In Equation 14, f (PMVC 1 + DMV D1, i) (PMVC 1 + DMV D1) of the denotes a pixel location indicated by the reference block surrounding of the index i in the reference points, the index i (Included in TMS) picture, f (PMVC 1 + DMV D1 , i) represents the pixel value at this pixel position. C (i) represents the pixel value around the current block indicated by the index i.

판단 함수 g(PMVC1|DMVD1)는 움직임 벡터 부호화 장치(300)가 움직임 벡터 복호화 장치로 제공하는 차분 벡터(DMVD1)에 후보 움직임 벡터 집합(CS) 중의 한 원소인 후보 움직임 벡터(PMVC1)를 더하여 계산된 움직임 벡터(PMVC1+DMVD1)가 지시하는 참조 블록의 화소값과 이 움직임 벡터(PMVC1+DMVD1)가 지시하는 참조 블록의 움직임 보상을 수행하여 예측한 블록과 현재 블록을 감산한 잔차 블록의 잔차 신호를 더하여 복원된 블록이 얼마나 올바른지 여부를 산정한 값을 제공한다. 이를 산정하기 위해, 수학식 14에서는 차이의 제곱합(Sum of Squared Error)을 이용하였지만, 응용에 따라 절대값 차의 합(SAD: Sum of Absolute Difference) 등 다양한 함수가 이용될 수 있다. 추정 최적 움직임 벡터(PMV1 dec)는 판단 함수 g(PMVC1|DMVD1)의 값이 최소가 되는 후보 움직임 벡터(PMVC1)가 될 수 있다.The decision function g PMVC 1 DMV D1 is added to the difference vector DMV D1 provided by the motion vector coding apparatus 300 to the motion vector decoding apparatus 300 as a candidate motion vector PMVC 1 ), Adds the pixel value of the reference block indicated by the calculated motion vector (PMVC 1 + DMV D1 ) and the motion vector of the reference block indicated by the motion vector (PMVC 1 + DMV D1 ) And a residual signal of the residual block obtained by subtracting the residual signal from the residual block. In order to calculate this, a Sum of Squared Error is used in Equation (14), but various functions such as sum of absolute difference (SAD) may be used depending on the application. The estimated optimal motion vector PMV 1 dec may be the candidate motion vector PMVC 1 having the minimum value of the determination function g (PMVC 1 | DMV D1 ).

즉, 움직임 벡터 부호화 모드 결정부(320)는 선택된 후보 움직임 벡터 집합에 포함된 하나 이상의 후보 움직임 벡터 각각이 지시하는 참조 블록에 대해 TMS가 지시하는 화소들과 현재 블록에 대해 TMS가 지시하는 화소들의 화소값 차이를 계산하고, 계산된 화소값 차이를 기초로 후보 움직임 벡터 각각에 대한 정합 오류를 판단 함수값으로 계산할 수 있다.That is, the motion vector coding mode determining unit 320 determines the motion vector coding mode of the current block, based on the pixels indicated by the TMS and the pixels indicated by the TMS with respect to the reference block indicated by each of the one or more candidate motion vectors included in the selected candidate motion vector set The pixel value difference may be calculated and a matching error for each of the candidate motion vectors may be calculated as a judgment function value based on the calculated pixel value difference.

다른 예로, 판단 함수로서, 경계 화소 정합을 이용한 함수가 이용되는 경우, 전술한 일 예의 TMS와 유사하게, 경계 매칭 화소 인덱스 집합(BMS: Boundary Matching Index Set, 이하 'BMS'라 칭함)는 현재 블록 내의 가장 좌측 및 가장 상단에 위치한 화소의 위치를 가리키는 인덱스의 집합으로 정의할 수 있으나, 응용에 따라서는 현재 블록 내의 블록 경계에 위치한 전부 또는 일부의 화소들의 위치로 정의할 수도 있다.As another example, when a function using boundary pixel matching is used as a determination function, a BMS (Bounding Matching Index Set) (hereinafter, referred to as BMS) But it may be defined as the position of all or some of the pixels located at the block boundary in the current block depending on the application.

경계 화소 정합 방법은, 예측 움직임 벡터로 선택할 수 있는 모든 후보 움직임 벡터 집합(CS)을 선정한 이후, 후보 움직임 벡터 집합(CS) 중 어느 후보 움직임 벡터(PMVC)가 가장 최적인지 여부를 판단하기 위해, 후보 움직임 벡터 집합(CS) 중에서 경계 화소 매칭을 수행하여 경계 화소 정합의 오류를 최소화하는 후보 움직임 벡터(PMVC)를 추정 최적 움직임 벡터(PMVdec)로 결정한다. 이를 위해, 움직임 벡터 부호화 모드 결정부(320)는 수학식 15와 같이 차이의 제곱합으로 각각의 후보 움직임 벡터가 가지는 정합 오류를 계산할 수 있을 뿐만 아니라, 차이의 제곱합이 아닌 절대값의 차이의 합(SAD)등 다른 방법으로 정합 오류를 계산할 수도 있다.In the boundary pixel matching method, after selecting all the candidate motion vector sets CS that can be selected as the predicted motion vectors, in order to determine which candidate motion vector PMVC among the candidate motion vector sets CS is the most optimal, The candidate motion vector PMVC that minimizes the error of the boundary pixel matching is determined as the estimated optimal motion vector PMV dec by performing boundary pixel matching among the candidate motion vector sets CS. For this, the motion vector coding mode determination unit 320 not only calculates the matching error of each candidate motion vector by the sum of squares of differences as shown in Equation (15), but also calculates the sum of the differences of the absolute values SAD). ≪ / RTI >

Figure 112015063618015-pat00015
Figure 112015063618015-pat00015

수학식 15에서, C(i)는 후보 움직임 벡터 집합(CS) 중의 한 원소인 후보 움직임 벡터(PMVC1)와 움직임 벡터 부호화 장치(300)로부터 움직임 벡터 복호화 장치로 제공되는 차분 벡터(DMVD !)를 더해 계산된 움직임 벡터(PMVC1+DMVD1)가 지시하는 참조 블록의 화소값과 이 움직임 벡터(PMVC1+DMVD1)가 지시하는 참조 블록의 움직임 보상을 수행하여 예측한 블록과 현재 블록을 감산한 잔차 블록의 잔차 신호를 더하여 복원된 현재 블록의 복원 화소 중 BMS 내의 인덱스 i가 지시하는 화소값을 말한다.In Equation (15), C (i) represents a candidate motion vector PMVC 1 that is an element of the candidate motion vector set CS and a difference vector DMV D ! Provided from the motion vector coding apparatus 300 to the motion vector decoding apparatus . ), Adds the pixel value of the reference block indicated by the calculated motion vector (PMVC 1 + DMV D1 ) and the motion vector of the reference block indicated by the motion vector (PMVC 1 + DMV D1 ) Is added to the residual signal of the residual block and the pixel value indicated by the index i in the BMS of the reconstructed pixels of the reconstructed current block.

또한, f(i)는 현재 블록에 인접하는 주변 블록 내의 경계 화소 중 BMS의 인덱스 i가 지시하는 화소와 바로 인접하는 화소의 화소값을 나타낸다. 수학식 15를 이용하여 후보 움직임 벡터 집합 내의 각각의 후보 움직임 벡터(PMVC1)에 대해 경계 화소 정합의 정합 오류를 계산하고, 계산된 정합 오류 중 최소의 정합 오류를 발생하는 후보 움직임 벡터를 추정 최적 움직임 벡터(PMV1 dec)로 결정한다. 즉, 추정 최적 움직임 벡터는 움직임 벡터 복호화 장치에서 추정될 예측 움직임 벡터를 말한다.Also, f (i) represents the pixel value of the pixel immediately adjacent to the pixel indicated by the index i of the BMS among the boundary pixels in the neighboring block adjacent to the current block. A matching error of the boundary pixel matching is calculated for each candidate motion vector PMVC 1 in the candidate motion vector set using Equation 15 and a candidate motion vector for generating the minimum matching error among the calculated matching errors is estimated Is determined by the motion vector (PMV 1 dec ). That is, the estimated optimal motion vector refers to a predicted motion vector to be estimated by the motion vector decoding apparatus.

즉, 움직임 벡터 부호화 모드 결정부(320)는 선택된 후보 움직임 벡터 집합에 포함된 하나 이상의 후보 움직임 벡터 각각에 대한 차분 벡터와 해당 후보 움직임 벡터가 지시하는 참조 블록의 화소값과 해당 후보 움직임 벡터와 차분 벡터를 이용하여 복원되는 움직임 벡터를 이용하여 움직임을 보상하여 생성되는 잔차 블록의 잔차 신호를 더하여 복원되는 현재 블록의 복원 화소 중 BMS 내의 인덱스가 지시하는 화소값 및 현재 블록에 인접하는 주변 블록 내의 경계 화소 중 BMS의 인덱스가 지시하는 화소와 인접한 화소의 화소값의 차이를 기초로, 하나 이상의 후보 움직임 벡터 각각에 대한 정합 오류를 판단 함수값으로 계산할 수 있다.That is, the motion vector coding mode determination unit 320 determines a motion vector coding mode by using a difference vector between at least one candidate motion vector included in the selected candidate motion vector set, a pixel value of a reference block indicated by the corresponding candidate motion vector, A residual value of a residual block generated by compensating for a motion using a restored motion vector is added to a pixel value indicated by an index in the BMS of the reconstructed pixels of the restored current block, A matching error for each of the one or more candidate motion vectors may be calculated as a determination function value based on the difference between the pixel value of the pixel indicated by the index of the BMS and the pixel value of the adjacent pixel.

또한, 움직임 벡터 부호화 모드 결정부(320)는 움직임 벡터 복호화 장치에서 복수 개의 참조 픽처에 대한 최적 움직임 벡터 모두를 예측할 수 있는지 여부에 따라 움직임 벡터 부호화 모드를 결정할 수 있다. 이때, 움직임 벡터 부호화 모드 결정부(320)는 움직임 벡터 복호화 장치에서 복수 개의 참조 픽처에 대한 최적 움직임 벡터를 모두 예측할 수 있는 경우에는 예측 가능 모드를 움직임 벡터 부호화 모드로서 결정할 수 있으며, 움직임 벡터 복호화 장치에서 복수 개의 참조 픽처에 대한 최적 움직임 벡터 중 하나 이상을 예측할 수 없는 경우에는 예측 불가능 모드를 움직임 벡터 부호화 모드로서 결정할 수 있다.In addition, the motion vector coding mode determination unit 320 can determine the motion vector coding mode according to whether the optimal motion vector for a plurality of reference pictures can be predicted in the motion vector decoding apparatus. In this case, if the motion vector coding mode determination unit 320 can predict all the optimal motion vectors for a plurality of reference pictures in the motion vector decoding apparatus, the predictive mode can be determined as a motion vector coding mode. If it is not possible to predict at least one of the best motion vectors for a plurality of reference pictures, the predictive mode can be determined as a motion vector coding mode.

또한, 움직임 벡터 부호화 모드 결정부(320)는 복수 개의 참조 픽처에 대한 최적 움직임 벡터 각각을 움직임 벡터 복호화 장치에서 예측할 수 있는지 여부에 따라 복수 개의 최적 움직임 벡터 각각에 대해 독립적으로 움직임 벡터 부호화 모드를 결정할 수 있다. 이때, 움직임 벡터 부호화 모드 결정부(320)는 복수 개의 참조 픽처에 대한 최적 움직임 벡터 중 움직임 벡터 복호화 장치에서 예측할 수 있는 최적 움직임 벡터에 대해서는 예측 가능 모드를 움직임 벡터 부호화 모드로서 결정할 수 있고, 복수 개의 참조 픽처에 대한 최적 움직임 벡터 중 움직임 벡터 복호화 장치에서 예측할 수 없는 최적 움직임 벡터에 대해서는 예측 불가능 모드를 움직임 벡터 부호화 모드로서 결정할 수 있다.In addition, the motion vector coding mode determination unit 320 determines the motion vector coding mode independently for each of the plurality of optimal motion vectors according to whether the motion vector decoding apparatus can predict each of the optimal motion vectors for the plurality of reference pictures . At this time, the motion vector coding mode determination unit 320 can determine the predictive mode as the motion vector coding mode for the best motion vector predicted by the motion vector decoding apparatus among the optimal motion vectors for the plurality of reference pictures, The optimal motion vector for the reference picture that can not be predicted by the motion vector decoding apparatus can be determined as the motion vector coding mode.

제 1 움직임 벡터 부호화부(330)는 움직임 벡터 부호화 모드가 예측 가능 모드인 경우, 최적 움직임 벡터 결정부(310)에 의해 결정된 복수 개의 참조 픽처에 대한 최적 움직임 벡터를 복수 개의 참조 픽처에 대한 예측 움직임 벡터로서 결정하고, 복수 개의 참조 픽처에 대한 예측 움직임 벡터와 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 이용하여 복수 개의 참조 픽처에 대한 움직임 정보를 부호화한다. 즉, 제 1 움직임 벡터 부호화부(330)는 움직임 벡터 부호화 모드가 예측 가능 모드인 경우, list0 및 list1 최적 움직임 벡터를 list0 및 list1 현재 움직임 벡터에 대한 list0 및 list1 예측 움직임 벡터로서 결정하고, list0 및 list1 현재 움직임 벡터와 list0 및 list1 최적 움직임 벡터를 이용하여 list0 및 list1 움직임 정보를 생성하고 부호화하고, 움직임 벡터 부호화 모드(즉, 예측 가능 모드)를 부호화한다.When the motion vector coding mode is the predictive mode, the first motion vector coding unit 330 predicts an optimal motion vector for a plurality of reference pictures determined by the best motion vector determination unit 310 as a prediction motion for a plurality of reference pictures And motion information on a plurality of reference pictures is encoded using a predicted motion vector for a plurality of reference pictures and a current motion vector for a plurality of reference pictures. That is, when the motion vector coding mode is the predictable mode, the first motion vector coding unit 330 determines list0 and list1 optimal motion vectors as list0 and list1 predicted motion vectors for list0 and list1 current motion vectors, list1 generates list0 and list1 motion information using the current motion vector and the list0 and list1 optimal motion vectors, encodes the list0 and list1 motion information, and encodes the motion vector coding mode (i.e., the predictable mode).

여기서, 제 1 움직임 벡터 부호화부(330)는 list0 및 list1 현재 움직임 벡터와 list0 및 list1 최적 움직임 벡터의 차이인 list0 및 list1 차분 벡터를 계산하고, 계산된 list0 및 list1 차분 벡터를 부호화함으로써, list0 및 list1 최적 움직임 벡터를 이용하여 list0 및 list1 현재 움직임 벡터를 부호화할 수 있다. 즉, list0 및 list1 움직임 정보로서, list0 및 list1 차분 벡터를 생성하여 부호화할 수 있다. 또한, 제 1 움직임 벡터 부호화부(330)는 list0 및 list1 움직임 정보로서 list0 및 list1 차분 벡터를 부호화하는 것뿐만 아니라, list0 및 list1 현재 움직임 벡터를 list0 및 list1 움직임 정보로서 생성하고 list0 및 list1 최적 움직임 벡터의 특성(예를 들면, 방향, 크기 등)에 따라 list0 및 list1 움직임 정보 즉, list0 및 list1 현재 움직임 벡터를 다르게 부호화(예를 들면, 서로 다른 가변 길이 부호화 테이블을 이용하여 부호화하는 등)하는 등 다양한 방식으로 부호화할 수 있다.Here, the first motion vector encoding unit 330 calculates list0 and list1 differential vectors, which are differences between the current motion vectors list0 and list1 and the optimal motion vectors list0 and list1, and codes the calculated list0 and list1 differential vectors, list1 < / RTI > and the current motion vector of list1 using the optimal motion vector. That is, list0 and list1 differential vectors can be generated and encoded as list0 and list1 motion information. The first motion vector encoding unit 330 not only encodes the list0 and list1 differential vectors as the list0 and list1 motion information but also generates the current motion vectors list0 and list1 as list0 and list1 motion information, The list0 and list1 motion information, i.e., list0 and list1 current motion vectors are encoded differently (for example, by using different variable length coding tables), depending on the characteristics (e.g., direction, size, etc.) And so on.

제 2 움직임 벡터 부호화부(340)는 움직임 벡터 부호화 모드가 예측 불가능 모드인 경우, 기 설정된 복수 개의 참조 픽처에 대한 디폴트 움직임 벡터를 복수 개의 참조 픽처에 대한 예측 움직임 벡터로서 결정하고, 복수 개의 참조 픽처에 대한 예측 움직임 벡터와 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 이용하여 복수 개의 참조 픽처에 대한 움직임 정보를 생성하고 부호화한다. 즉, 제 2 움직임 벡터 부호화부(340)는 움직임 벡터 부호화 모드가 예측 불가능 모드인 경우, 기 설정된 list0 및 list1 디폴트 움직임 벡터를 list0 및 list1 현재 움직임 벡터에 대한 list0 및 list1 예측 움직임 벡터로서 결정하고, list0 및 list1 현재 움직임 벡터와 list0 및 list1 디폴트 움직임 벡터를 이용하여 list0 및 list1 움직임 정보를 생성하고 부호화하고, 움직임 벡터 부호화 모드(즉, 예측 불가능 모드)를 부호화한다.When the motion vector coding mode is in the unpredictable mode, the second motion vector coding unit 340 determines a default motion vector for a predetermined plurality of reference pictures as a predictive motion vector for a plurality of reference pictures, And motion information on a plurality of reference pictures is generated and coded using the motion vectors for the reference pictures and the current motion vectors for the plurality of reference pictures. That is, when the motion vector coding mode is in an unpredictable mode, the second motion vector coding unit 340 determines list0 and list1 default motion vectors as list0 and list1 predicted motion vectors for list0 and list1 current motion vectors, respectively, list0 and list1 motion information of list0 and list1 are generated and encoded using the current motion vector and list0 and list1 default motion vectors and the motion vector coding mode (i.e., the unpredictable mode) is encoded.

여기서, 제 2 움직임 벡터 부호화부(340)는 list0 및 list1 움직임 정보로서 list0 및 list1 현재 움직임 벡터와 list0 및 list1 디폴트 움직임 벡터의 차이인 list0 및 list1 차분 벡터를 계산하고, 계산된 list0 및 list1 차분 벡터를 부호화함으로써, list0 및 list1 디폴트 움직임 벡터를 이용하여 list0 및 list1 현재 움직임 벡터를 부호화할 수 있다. 또한, 제 2 움직임 벡터 부호화부(340)는 list0 및 list1 차분 벡터를 부호화하는 것뿐만 아니라, list0 및 list1 디폴트 움직임 벡터의 특성(예를 들면, 방향, 크기 등)에 따라 list0 및 list1 현재 움직임 벡터를 다르게 부호화(예를 들면, 서로 다른 가변 길이 부호화 테이블을 이용하여 부호화하는 등)하는 등 다양한 방식으로 부호화할 수 있다.Here, the second motion vector coding unit 340 calculates list0 and list1 differential vectors, which are differences between list0 and list1 current motion vectors and list0 and list1 default motion vectors, as list0 and list1 motion information, respectively, and outputs the calculated list0 and list1 differential vectors The list0 and list1 default motion vectors can be used to encode the current motion vectors of list0 and list1. The second motion vector coding unit 340 not only encodes the list0 and list1 difference vectors but also the list0 and list1 differential motion vectors according to the characteristics (e.g., direction, size, etc.) (For example, coding is performed using different variable length coding tables), and the like.

도 3에서는 제 1 움직임 벡터 부호화부(330)와 제 2 움직임 벡터 부호화부(340)가 각각 독립적으로 구현되는 것으로 도시하고 설명했지만, 각 기능을 통합한 하나의 움직임 벡터 부호화부로 구현될 수도 있다. 이 경우, 통합된 하나의 움직임 벡터 부호화부는 움직임 벡터 부호화 모드에 따라 복수 개의 참조 픽처에 대한 최적 움직임 벡터 또는 복수 개의 참조 픽처에 대한 디폴트 움직임 벡터를 이용하여 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 부호화한다.In FIG. 3, the first motion vector coding unit 330 and the second motion vector coding unit 340 are independently implemented. However, the motion vector coding unit 330 and the second motion vector coding unit 340 may be implemented as a single motion vector coding unit. In this case, the combined motion vector coding unit may encode a current motion vector for a plurality of reference pictures using an optimal motion vector for a plurality of reference pictures or a default motion vector for a plurality of reference pictures according to a motion vector coding mode do.

도 4는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법을 설명하기 위한 순서도이다.4 is a flowchart illustrating a motion vector coding method according to an embodiment of the present invention.

움직임 벡터 부호화 장치(300)는 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 부호화하기 위해, 복수 개의 참조 픽처에 대한 최적 움직임 벡터를 결정한다(S410). 즉, 움직임 벡터 부호화 장치(300)는 list0 및 list1 현재 움직임 벡터를 부호화하기 위해 list0 및 list1 최적 움직임 벡터를 결정한다.The motion vector coding apparatus 300 determines an optimal motion vector for a plurality of reference pictures to encode the current motion vector for a plurality of reference pictures (S410). That is, the motion vector coding apparatus 300 determines list0 and list1 optimal motion vectors to encode the current motion vectors of list0 and list1.

복수 개의 참조 픽처에 대한 최적 움직임 벡터를 결정한 움직임 벡터 부호화 장치(300)는 움직임 벡터 복호화 장치에서 복수 개의 참조 픽처에 대한 최적 움직임 벡터를 예측할 수 있는지 여부를 판단하여(S420), 움직임 벡터 복호화 장치에서 복수 개의 참조 픽처에 대한 최적 움직임 벡터를 예측할 수 있다고 판단하는 경우에는, list0 및 list1 최적 움직임 벡터를 list0 및 list1 예측 움직임 벡터로서 결정하고(S430), 예측 가능 모드를 움직임 벡터 부호화 모드로서 결정하며(S440), 움직임 벡터 복호화 장치에서 복수 개의 참조 픽처에 대한 최적 움직임 벡터를 예측할 수 없다고 판단하는 경우에는 기 설정된 list0 및 list1 디폴트 움직임 벡터를 list0 및 list1 예측 움직임 벡터로서 결정하고(S432), 예측 불가능 모드를 움직임 벡터 부호화 모드로서 결정한다(S442). 즉, 움직임 벡터 부호화 장치(300)는 움직임 벡터 복호화 장치가 list0 및 list1 최적 움직임 벡터를 예측할 수 있는지 여부를 판단하여, 예측할 수 있다고 판단한 경우에는 예측 가능 모드를 움직임 벡터 부호화 모드로서 결정하고 list0 및 list1 최적 움직임 벡터를 list0 및 list1 예측 움직임 벡터로서 결정하며, 예측할 수 없다고 판단한 경우에는 예측 불가능 모드를 움직임 벡터 부호화 모드로서 결정하고 list0 및 list1 디폴트 움직임 벡터를 list0 및 list1 예측 움직임 벡터로서 결정한다.The motion vector coding apparatus 300 determines an optimal motion vector for a plurality of reference pictures. The motion vector decoding apparatus 300 determines whether an optimal motion vector for a plurality of reference pictures can be predicted (S420) When it is determined that the optimal motion vector for a plurality of reference pictures can be predicted, list0 and list1 optimal motion vectors are determined as list0 and list1 predicted motion vectors (S430), and the predictable mode is determined as a motion vector encoding mode S440). When the motion vector decoding apparatus determines that the optimal motion vector for a plurality of reference pictures can not be predicted, the default list0 and list1 default motion vectors are determined as list0 and list1 predicted motion vectors (S432) As a motion vector coding mode (S442). That is, the motion vector coding apparatus 300 determines whether the motion vector decoding apparatus can predict the list0 and list1 optimal motion vectors. If it is determined that the list0 and list1 optimal motion vectors can be predicted, the motion vector coding apparatus 300 determines the predictable mode as a motion vector coding mode, The optimal motion vectors are determined as list0 and list1 predictive motion vectors. If it is determined that the optimal motion vectors are not predictable, the non-predictable mode is determined as a motion vector coding mode and the list0 and list1 default motion vectors are determined as list0 and list1 predicted motion vectors.

복수 개의 참조 픽처에 대한 예측 움직임 벡터를 결정한 움직임 벡터 부호화 장치(300)는 단계 S430 또는 단계 S432에서 결정된 복수 개의 참조 픽처에 대한 예측 움직임 벡터와 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 이용하여 복수 개의 참조 픽처에 대한 움직임 정보를 생성하고 부호화한다(S450). 즉, 움직임 벡터 부호화 장치(300)는 list0 및 list1 예측 움직임 벡터와 list0 및 list1 현재 움직임 벡터를 이용하여 list0 및 list1 움직임 정보를 생성하고 부호화한다.The motion vector coding apparatus 300 determines a predicted motion vector for a plurality of reference pictures. Using the predicted motion vector for the plurality of reference pictures and the current motion vector for the plurality of reference pictures determined in step S430 or step S432, Motion information on the reference picture is generated and encoded (S450). That is, the motion vector coding apparatus 300 generates and codes list0 and list1 motion information using list0 and list1 predictive motion vectors and list0 and list1 current motion vectors.

움직임 벡터 부호화 장치(300)는 단계 S440 또는 단계 S442에서 결정된 움직임 벡터 부호화 모드를 부호화하며(S460). 부호화된 복수 개의 참조 픽처에 대한 움직임 정보 및 부호화된 움직임 벡터 부호화 모드를 포함하는 움직임 벡터 부호화 데이터를 생성하여 출력한다(S470).The motion vector coding apparatus 300 encodes the motion vector coding mode determined in step S440 or step S442 (S460). Motion vector coded data including motion information on a plurality of coded reference pictures and an encoded motion vector coding mode is generated and output (S470).

한편, 단계 S410에서, 움직임 벡터 부호화 장치(300)는 후보 움직임 벡터 집합을 선택하고 후보 움직임 벡터 집합에서 하나의 후보 움직임 벡터를 선택하여 list0 및 list1 최적 움직임 벡터로서 결정하는 방법과, 단계 S420에서, 움직임 벡터 부호화 장치(300)가 영상 복호화 장치에서 list0 및 list1 최적 움직임 벡터를 예측할 수 있는지 여부를 판단하는 방법과, 단계 S450에서, 움직임 벡터 부호화 장치(300)가 list0 및 list1 현재 움직임 벡터와 list0 및 list1 예측 움직임 벡터를 이용하여 list0 및 list1 움직임 정보를 생성하고 부호화하는 방법에 대해서는 도 3을 통해 이미 전술하였으므로 상세한 설명은 생략한다.In step S410, the motion vector coding apparatus 300 selects a candidate motion vector set, selects one candidate motion vector from the set of candidate motion vectors, and determines the candidate motion vectors as list0 and list1 optimal motion vectors. In step S420, A method for determining whether the motion vector coding apparatus 300 can predict list0 and list1 optimal motion vectors in an image decoding apparatus and a method for determining whether or not the motion vector coding apparatus 300 determines whether the list0 and list1 current motion vectors, The method of generating and encoding the list0 and list1 motion information using the list1 predictive motion vector has already been described with reference to FIG. 3, and a detailed description thereof will be omitted.

이상에서 전술한 바와 같이, 부호화된 움직임 벡터 부호화 데이터는 후술할 움직임 벡터 복호화 장치에서 복호화될 수 있다.As described above, the encoded motion vector encoded data can be decoded by a motion vector decoding apparatus to be described later.

도 5는 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치의 구성을 간략하게 나타낸 블록 구성도이다.FIG. 5 is a block diagram schematically illustrating a configuration of a motion vector decoding apparatus according to an embodiment of the present invention. Referring to FIG.

본 발명의 일 실시예에 따른 영상 복호화 장치(500)는 복호화부(510), 제 1 예측 움직임 벡터 결정부(520), 제 2 예측 움직임 벡터 결정부(530) 및 움직임 벡터 복원부(540)를 포함하여 구성될 수 있다.The video decoding apparatus 500 according to an embodiment of the present invention includes a decoding unit 510, a first predictive motion vector determination unit 520, a second predictive motion vector determination unit 530, and a motion vector restoration unit 540, As shown in FIG.

복호화부(510)는 입력되는 움직임 벡터 부호화 데이터에 포함된 부호화된 움직임 벡터 부호화 모드와 복수 개의 참조 픽처에 대한 움직임 정보를 복원한다. 즉, 복호화부(510)는 움직임 벡터 부호화 데이터로부터 부호화된 움직임 벡터 부호화 모드와 부호화된 list0 및 list1 움직임 정보를 추출하고 복호화하여 움직임 벡터 부호화 모드와 list0 및 list1 움직임 정보를 복원한다.The decoding unit 510 reconstructs a coded motion vector coding mode included in the input motion vector coding data and motion information on a plurality of reference pictures. That is, the decoding unit 510 extracts the coded motion vector coding mode and the encoded list0 and list1 motion information from the motion vector coded data, and decodes them to restore the motion vector coding mode and the list0 and list1 motion information.

또한, 복호화부(510)는 복원된 움직임 벡터 부호화 모드를 분석하여 움직임 벡터 부호화 모드가 예측 가능 모드인 경우에는 제 1 예측 움직임 벡터 결정부(520)를 활성화시키거나 제 1 예측 움직임 벡터 결정부(520)로 하여금 list0 및 list1 최적 움직임 벡터를 결정하여 결정된 list0 및 list1 최적 움직임 벡터를 list0 및 list1 예측 움직임 벡터로서 결정하도록 제어할 수 있다. 복호화부(510)는 복원된 움직임 벡터 부호화 모드를 분석하여 움직임 벡터 부호화 모드가 예측 불가능 모드인 경우에는 제 2 예측 움직임 벡터 결정부(530)를 활성화시키거나 제 2 예측 움직임 벡터 결정부(530)로 하여금 list0 및 list1 최적 움직임 벡터를 결정하여 결정된 list0 및 list1 최적 움직임 벡터를 list0 및 list1 예측 움직임 벡터로서 결정하도록 제어할 수 있다.The decoding unit 510 analyzes the reconstructed motion vector coding mode, and when the motion vector coding mode is the predictable mode, the decoding unit 510 activates the first predictive motion vector determiner 520 or the first predictive motion vector determiner 520 520 to determine list0 and list1 optimal motion vectors and determine determined list0 and list1 optimal motion vectors as list0 and list1 predicted motion vectors. The decoding unit 510 analyzes the reconstructed motion vector coding mode and activates the second predictive motion vector determiner 530 or the second predictive motion vector determiner 530 when the motion vector coding mode is the predictive- To determine the list0 and list1 optimal motion vectors and determine the determined list0 and list1 optimal motion vectors as list0 and list1 predicted motion vectors.

복호화부(510)는 움직임 벡터 부호화 모드가 하나인 경우 전술한 바와 같이, 제 1 예측 움직임 벡터 결정부(520)와 제 2 예측 움직임 벡터 결정부(530)를 활성화시키거나 제어하는데, 움직임 벡터 부호화 모드는 두 개 이상 각각 있을 수 있다. 즉, 도 3을 통해 전술한 바와 같이, 복수 개의 참조 픽처에 대해 각각 움직임 벡터 부호화 모드가 있을 수 있고, 복수 개의 참조 픽처에 대해 하나의 움직임 벡터 부호화 모드가 있을 수 있다.The decoding unit 510 activates or controls the first predictive motion vector determination unit 520 and the second predictive motion vector determination unit 530 in the case where the motion vector encoding mode is one, There can be more than one mode each. That is, as described above with reference to FIG. 3, there may be a motion vector coding mode for each of a plurality of reference pictures, and there may be one motion vector coding mode for a plurality of reference pictures.

예를 들어, 움직임 벡터 부호화 장치(300)에서 list0 및 list1 참조 픽처에 대해 각각 움직임 벡터 부호화 모드를 부호화했다면, 움직임 벡터 부호화 데이터에는 list0 및 list1에 대한 움직임 벡터 부호화 모드가 있을 것이고, 복호화부(510)는 list0 및 list1에 대한 움직임 벡터 부호화 모드 각각을 분석하여 각각에 따라 다르게 제 1 예측 움직임 벡터 결정부(520) 및 제 2 예측 움직임 벡터 결정부(520)를 활성화시키거나 제어할 수 있다. 즉, list0 및 list1에 대한 움직임 벡터 부호화 모드가 모두 예측 가능 모드 또는 예측 불가능 모드라면, 제 1 예측 움직임 벡터 결정부(520)로 하여금 list0 및 list1 추정 최적 움직임 벡터를 결정하여 list0 및 list1 예측 움직임 벡터로서 결정하도록 하거나 제 2 예측 움직임 벡터 결정부(530)로 하여금 list0 및 list1 디폴트 움직임 벡터를 list0 및 list1 예측 움직임 벡터로서 결정하도록 할 수 있으며, list0 및 list1에 대한 움직임 벡터 부호화 모드 중 list0에 대한 움직임 벡터 부호화 모드가 예측 가능 모드이고 list1에 대한 움직임 벡터 부호화 모드가 예측 불가능 모드라면, 제 1 예측 움직임 벡터 결정부(520)로 하여금 list0 추정 최적 움직임 벡터를 결정하여 list0 예측 움직임 벡터로서 결정하도록 할 수 있으며, 제 2 예측 움직임 벡터 결정부(530)로 하여금 list1 디폴트 움직임 벡터를 list1 예측 움직임 벡터로서 결정하도록 할 수 있다.For example, if the motion vector coding mode is encoded for the list0 and list1 reference pictures in the motion vector coding apparatus 300, the motion vector coding mode will have a motion vector coding mode for list0 and list1, and the decoding unit 510 May analyze each of the motion vector coding modes for list0 and list1 and may activate or control the first predictive motion vector determination unit 520 and the second predictive motion vector determination unit 520 depending on the respective modes. That is, if the motion vector coding modes for list0 and list1 are both the predictive mode or the non-predictable mode, the first predictive motion vector determination unit 520 determines list0 and list1 estimated optimal motion vectors, Or the second predicted motion vector determining unit 530 may determine the list0 and list1 default motion vectors as list0 and list1 predicted motion vectors and determine motion of list0 in the motion vector coding mode for list0 and list1 If the vector coding mode is the predictive mode and the motion vector coding mode for list 1 is the unpredictable mode, the first predictive motion vector determination unit 520 may determine the list0 estimated optimal motion vector to be determined as the list0 predictive motion vector. And the second predicted motion vector determining unit 530 sets the predicted motion vector The vector Im can be determined as a predictive motion vector list1.

제 1 예측 움직임 벡터 결정부(520)는 복원된 움직임 벡터 부호화 모드가 예측 가능 모드인 경우, 복수 개의 참조 픽처에 대한 추정 최적 움직임 벡터를 결정하고 결정된 복수 개의 참조 픽처에 대한 추정 최적 움직임 벡터를 복수 개의 참조 픽처에 대한 예측 움직임 벡터로 결정한다. 제 2 예측 움직임 벡터 결정부(530)는 복원된 움직임 벡터 부호화 모드가 예측 불가능 모드인 경우, 기 설정된 복수 개의 참조 픽처에 대한 디폴트 움직임 벡터를 복수 개의 참조 픽처에 대한 예측 움직임 벡터로 결정한다.When the reconstructed motion vector coding mode is a predictive mode, the first predictive motion vector determination unit 520 determines an estimated optimal motion vector for a plurality of reference pictures and outputs an estimated optimal motion vector for a plurality of reference pictures, Are determined as prediction motion vectors for the reference pictures. The second predictive motion vector determination unit 530 determines a default motion vector for a predetermined plurality of reference pictures as a predictive motion vector for a plurality of reference pictures, when the reconstructed motion vector coding mode is an unpredictable mode.

즉, 제 1 예측 움직임 벡터 결정부(520)는 움직임 벡터 부호화 모드가 예측 가능 모드인 경우, list0 및 list1 추정 최적 움직임 벡터를 결정하고 결정된 list0 및 list1 추정 최적 움직임 벡터를 list0 및 list1 예측 움직임 벡터로 결정한다. 제 2 예측 움직임 벡터 결정부(530)는 복원된 움직임 벡터 부호화 모드가 예측 불가능 모드인 경우, 기 설정되거나 기 설정된 기준에 따라 생성한 list0 및 list1 디폴트 움직임 벡터를 list0 및 list1 예측 움직임 벡터로 결정한다. 여기서, 제 1 예측 움직임 벡터 결정부(520)가 list0 및 list1 추정 최적 움직임 벡터를 결정하는 방법에 대해서는 도 3을 통해 전술한 움직임 벡터 부호화 장치(300) 또는 최적 움직임 벡터 결정부(310)가 판단 함수를 이용하여 list0 및 list1 추정 최적 움직임 벡터를 결정하는 방법과 동일 또는 유사하므로 상세한 설명을 생략한다.That is, when the motion vector coding mode is the predictive mode, the first predictive motion vector determiner 520 determines list0 and list1 estimated optimal motion vectors, and determines list0 and list1 estimated optimal motion vectors as list0 and list1 predictive motion vectors . When the restored motion vector coding mode is in an unpredictable mode, the second predictive motion vector determiner 530 determines the list0 and list1 default motion vectors, which are generated according to a predetermined or preset reference, as list0 and list1 predictive motion vectors . Here, the method for determining the estimated optimal motion vectors list0 and list1 by the first predictive motion vector determination unit 520 will be described with reference to FIG. 3 by the motion vector encoding apparatus 300 or the optimal motion vector determination unit 310, Function is used to determine the estimated optimal motion vectors list0 and list1, the detailed description thereof will be omitted.

도 5에서는 제 1 예측 움직임 벡터 결정부(520)와 제 2 예측 움직임 벡터 결정부(530)가 독립적으로 구성되는 것으로 도시하고 설명했지만, 각 기능을 통합한 하나의 예측 움직임 벡터 결정부로서 구성될 수도 있다. 이 경우, 하나로 구성되는 예측 움직임 벡터 결정부는 움직임 벡터 부호화 모드에 따라 현재 블록의 현재 움직임 벡터를 복수 개의 참조 픽처에 대해 예측하여 결정되는 복수 개의 참조 픽처에 대한 추정 최적 움직임 벡터 또는 움직임 벡터 부호화 장치와 기 설정된 복수 개의 참조 픽처에 대한 디폴트 움직임 벡터를 복수 개의 참조 픽처에 대한 예측 움직임 벡터로서 결정할 수 있다.In FIG. 5, the first predictive motion vector determination unit 520 and the second predictive motion vector determination unit 530 are illustrated as being independently configured. However, the predictive motion vector determination unit 520 may be configured as a predictive motion vector determination unit It is possible. In this case, the predictive motion vector determination unit, which is composed of one unit, determines a best motion vector or a motion vector coding unit for a plurality of reference pictures determined by predicting a current motion vector of a current block in accordance with a motion vector coding mode, It is possible to determine a default motion vector for a plurality of predetermined reference pictures as a predictive motion vector for a plurality of reference pictures.

움직임 벡터 복원부(540)는 제 1 예측 움직임 벡터 결정부(520) 및 제 2 예측 움직임 벡터 결정부(530) 중 하나 이상에서 결정한 list0 및 list1 예측 움직임 벡터와 복호화부(510)에서 복원한 list0 및 list1 움직임 정보를 이용하여 list0 및 list1 현재 움직임 벡터를 복원하여 출력한다. 여기서, list0 및 list1 움직임 정보가 list0 및 list1 차분 벡터인 경우에는 list0 및 list1 차분 벡터에 list0 및 list1 예측 움직임 벡터를 더하여 list0 및 list1 현재 움직임 벡터를 복원할 수 있지만, 이에 한정되지 않고, 움직임 벡터 부호화 장치(300)에서 list0 및 list1 움직임 정보를 생성한 방식의 역으로 list0 및 list1 현재 움직임 벡터를 복원할 수 있으며, 이 경우 움직임 벡터 부호화 장치(300)이나 제 1 부호화부(330) 또는 제 2 부호화부(340)와 움직임 벡터 복호화 장치(500)나 움직임 벡터 복원부(540)에 그 방식이 설정될 수 있다.The motion vector restoring unit 540 restores the list0 and list1 predicted motion vectors determined by at least one of the first predicted motion vector determiner 520 and the second predicted motion vector determiner 530 and the list0 And list1 motion information to restore the current motion vectors of list0 and list1 and output them. Here, when the list0 and list1 motion information are list0 and list1 differential vectors, list0 and list1 predictive motion vectors may be added to list0 and list1 differential vectors to restore the current motion vectors of list0 and list1, but the present invention is not limited thereto, It is possible to restore the current motion vectors of list0 and list1 in the reverse of the manner in which list0 and list1 motion information are generated in the device 300. In this case, the motion vector coding apparatus 300, the first coding unit 330, And the motion vector decoding apparatus 500 and the motion vector restoring unit 540 may be set to the same.

도 6은 본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법을 설명하기 위한 순서도이다.6 is a flowchart illustrating a motion vector decoding method according to an embodiment of the present invention.

움직임 벡터 복호화 장치(500)는 입력되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터 부호화 모드와 list0 및 list1 움직임 정보를 복원하고(S610), 움직임 벡터 부호화 모드가 예측 가능 모드인지 여부를 판단하여(S620), 움직임 벡터 부호화 모드가 예측 가능 모드인 경우에는 list0 및 list1 추정 최적 움직임 벡터를 결정하여 list0 및 list1 예측 움직임 벡터로서 결정하고(S630), 움직임 벡터 부호화 모드가 예측 불가능 모드인 경우에는 list0 및 list1 디폴트 움직임 벡터를 list0 및 list1 예측 움직임 벡터로서 결정한다(S632).In operation S610, the motion vector decoding apparatus 500 decodes the input motion vector coding data to restore the motion vector coding mode and list0 and list1 motion information, and determines whether the motion vector coding mode is the predictable mode in operation S620. , List0 and list1 estimated optimal motion vectors are determined and determined as list0 and list1 predicted motion vectors (S630). If the motion vector coding mode is in the unpredictable mode, the list0 and list1 default motion vectors are determined The motion vectors are determined as list0 and list1 predicted motion vectors (S632).

움직임 벡터 복호화 장치(500)는 단계 S610에서 복원한 움직임 벡터 부호화 모드와 단계 S630 또는 단계 S632에서 결정된 list0 및 list1 예측 움직임 벡터를 이용하여 list0 및 list1 현재 움직임 벡터를 복원한다(S640).The motion vector decoding apparatus 500 restores the current motion vectors of list0 and list1 using the motion vector coding mode restored in step S610 and the list0 and list1 predictive motion vectors determined in step S630 or step S632 in step S640.

여기서, 움직임 벡터 복호화 장치(500)가 움직임 벡터 부호화 모드를 분석하여 list0 및 list1 추정 최적 움직임 벡터를 결정하여 list0 및 list1 예측 움직임 벡터로서 결정하거나 list0 및 list1 디폴트 움직임 벡터를 list0 및 list1 예측 움직임 벡터로서 결정하는 방법과 움직임 벡터 부호화 모드와 list0 및 list1 예측 움직임 벡터를 이용하여 list0 및 list1 현재 움직임 벡터를 복원하는 방법에 대해서는 도 5를 통해 전술한 바와 같으므로, 상세한 설명은 생략한다.Here, the motion vector decoding apparatus 500 analyzes the motion vector coding mode to determine list0 and list1 estimated optimal motion vectors, and determines list0 and list1 as predicted motion vectors, or list0 and list1 default motion vectors as list0 and list1 predicted motion vectors And a method of restoring the current motion vectors of list0 and list1 using the motion vector coding mode and the list0 and list1 predictive motion vectors are described above with reference to FIG. 5, and thus detailed description thereof will be omitted.

이상에서 전술한 본 발명의 일 실시예에 따른 움직임 벡터 부호화/복호화 장치는 영상을 부호화하는 영상 부호화 장치와 영상을 복호화하는 영상 복호화 장치에서 활용될 수 있다.The motion vector encoding / decoding apparatus according to an embodiment of the present invention can be applied to an image encoding apparatus for encoding an image and an image decoding apparatus for decoding an image.

도 7은 본 발명의 일 실시예에 따른 영상 부호화 장치의 구성을 간략하게 나타낸 블록 구성도이다.FIG. 7 is a block diagram of a video encoding apparatus according to an embodiment of the present invention. Referring to FIG.

본 발명의 일 실시예에 따른 영상 부호화 장치(700)는 블록 모드 결정부(710), 예측부(720), 감산부(730), 제 1 부호화부(740), 제 2 부호화부(750), 부호화 데이터 생성부(760), 복호화부(770), 가산부(780) 및 참조 픽처 저장부(790)를 포함하여 구성될 수 있다. 이러한 영상 부호화 장치(700)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.The image encoding apparatus 700 according to an embodiment of the present invention includes a block mode determination unit 710, a prediction unit 720, a subtraction unit 730, a first encoding unit 740, a second encoding unit 750, An encoded data generating unit 760, a decoding unit 770, an adding unit 780, and a reference picture storage unit 790. The image encoding apparatus 700 may be a personal computer (PC), a notebook computer, a personal digital assistant (PDA), a portable multimedia player (PMP), a PlayStation Portable ), A mobile communication terminal, and the like, and may be a communication device such as a communication modem for performing communication with various devices or wired / wireless communication networks, a memory for storing various programs for encoding an image and data, a program And a microprocessor for calculating and controlling the microprocessor.

블록 모드 결정부(710)는 영상에서 현재 부호화하고자 하는 현재 블록에 선택될 수 있는 블록 모드들에 대해 소정의 최적 기준(예를 들어, 율-왜곡 최적화 기준)을 적용하여 현재 블록에 대한 블록 모드(예를 들어, 최소의 율-왜곡 비용을 갖는 블록 모드)를 결정한다. 영상 부호화 장치(700)에 블록 모드가 기 설정되어 있다면, 블록 모드 결정부(710)는 반드시 영상 부호화 장치(700)에 포함되지 않고 선택적으로 생략될 수 있다.The block mode determination unit 710 applies a predetermined optimum criterion (e.g., a rate-distortion optimization criterion) to the block modes that can be selected for the current block to be coded in the image, (E.g., a block mode with a minimum rate-distortion cost). If the block mode is preset in the image encoding apparatus 700, the block mode determination unit 710 is not necessarily included in the image encoding apparatus 700 and may be selectively omitted.

예측부(720)는 현재 블록을 예측하여 예측 블록을 생성하고 출력한다. 즉, 예측부(720)는 영상에서 부호화하고자 하는 현재 블록의 각 화소의 화소값(Pixel Value)을 예측하여 예측된 각 화소의 예측 화소값(Predicted Pixel Value)을 갖는 예측 블록(Predicted Block)을 생성한다. 이러한 예측부(720)는 인터 예측을 수행하는 경우에는 도시한 바와 같이, 움직임 벡터 부호화부(722) 및 움직임 보상부(724)를 포함하여 구성될 수 있으며, 복수 개의 참조 픽처에 대한 현재 블록의 현재 움직임 벡터를 예측하여 결정한 복수 개의 참조 픽처에 대한 최적 움직임 벡터를 움직임 벡터 복호화 장치에서 예측할 수 있는지 여부에 따라 최적 움직임 벡터 또는 움직임 벡터 복호화 장치와 기 설정된 복수 개의 참조 픽처에 대한 디폴트 움직임 벡터를 이용하여 복수 개의 참조 픽처에 대한 움직임 정보를 생성하고 부호화함으로써 움직임 벡터 부호화 데이터를 생성하고, 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 이용하여 현재 블록의 예측 블록을 생성한다.The prediction unit 720 predicts the current block to generate and output a prediction block. That is, the predicting unit 720 predicts a pixel value of each pixel of a current block to be encoded in an image and outputs a predicted block having a predicted pixel value of each predicted pixel . The prediction unit 720 may be configured to include a motion vector coding unit 722 and a motion compensation unit 724 as shown in the case of performing inter prediction, The optimal motion vector or motion vector decoding apparatus and a default motion vector for a predetermined plurality of reference pictures are used according to whether or not an optimal motion vector for a plurality of reference pictures determined by predicting a current motion vector can be predicted by a motion vector decoding apparatus Generates motion vector coding data by generating and encoding motion information on a plurality of reference pictures, and generates a prediction block of a current block using a current motion vector for a plurality of reference pictures.

움직임 벡터 부호화부(722)는 도 3을 통해 전술한 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치(300)로 구현될 수 있으며, 이에 대해서는 도 3을 통해 전술하였으므로, 상세한 설명을 생략한다. 다만, 움직임 벡터 부호화부(722)는 복수 개의 참조 픽처에 대한 현재 블록의 움직임 벡터인 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 결정할 수 있으며, 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 결정할 때, 율-왜곡 최적화 등의 다양한 기법을 이용하여 결정할 수 있다.The motion vector coding unit 722 may be implemented by the motion vector coding apparatus 300 according to an embodiment of the present invention described above with reference to FIG. 3, and the detailed description thereof will be omitted since it has been described with reference to FIG. However, the motion vector coding unit 722 can determine a current motion vector for a plurality of reference pictures, which are motion vectors of a current block for a plurality of reference pictures. When determining a current motion vector for a plurality of reference pictures, - distortion optimization, and so on.

움직임 보상부(724)는 움직임 벡터 부호화부(722)로부터 출력되는 참조 픽처에 대한 인덱스 정보에 의해 지시되는 참조 픽처에 움직임 벡터 부호화부(722)로부터 출력되는 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 이용하여 현재 블록의 예측 블록을 생성하고 출력한다.The motion compensation unit 724 stores a current motion vector for a plurality of reference pictures output from the motion vector coding unit 722 in a reference picture indicated by index information about a reference picture output from the motion vector coding unit 722, And generates and outputs a prediction block of the current block.

감산부(730)는 현재 블록에서 예측 블록을 감산하여 잔차 블록(Residual Block)을 생성한다. 즉, 감산부(730)는 부호화하고자 하는 현재 블록의 각 화소의 화소값과 예측부(720)에서 예측한 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔차 신호(Residual Signal)를 갖는 잔차 블록을 생성한다.The subtraction unit 730 subtracts the prediction block from the current block to generate a residual block. That is, the subtractor 730 calculates the difference between the pixel value of each pixel of the current block to be encoded and the predicted pixel value of each pixel of the predicted block predicted by the predictor 720, and outputs a residual signal ) ≪ / RTI >

제 1 부호화부(740)는 잔차 블록을 변환 및 양자화하여 양자화된 잔차 블록을 출력한다. 즉, 제 1 부호화부(740)는 잔차 블록의 잔차 신호를 주파수 영역으로 변환하여 잔차 블록의 각 화소값을 주파수 계수로 변환하고, 주파수 계수를 갖는 잔차 블록을 양자화(Quantization)한다. 여기서, 제 1 부호화부(740)는 하다마드 변환(Hadamard Transform), 이산 코사인 변환 기반 변환(DCT based Transform: Discrete Cosine Transform Based Transform) 등과 같은 공간축의 화상 신호를 주파수축으로 변환하는 다양한 변환 기법을 이용하여 잔차 신호를 주파수 영역으로 변환할 수 있는데, 주파수 영역으로 변환된 잔차 신호가 주파수 계수가 된다. 또한, 제 1 부호화부(740)는 변환된 잔차 블록을 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization, 이하 'DZUTQ'라 칭함), 양자화 가중치 매트릭스(Quantization Weighted Matrix) 또는 이를 개량한 양자화 기법 등을 사용하여 양자화할 수 있다.The first encoder 740 transforms and quantizes the residual block and outputs the quantized residual block. That is, the first encoder 740 converts the residual signal of the residual block into a frequency domain, transforms each pixel value of the residual block into a frequency coefficient, and quantizes the residual block having the frequency coefficient. Here, the first encoder 740 may include various transformation techniques for transforming image signals on the spatial axis into a frequency axis such as a Hadamard Transform and a DCT based Transform (DCT based Transform) The residual signal transformed into the frequency domain is the frequency coefficient. The first encoding unit 740 encodes the transformed residual block into a dead zone uniform boundary quantization (DZUTQ), a quantization weighted matrix, Method, or the like.

한편, 이상에서는 제 1 부호화부(740)가 잔차 블록을 변환하고 양자화하는 것으로 설명했지만, 잔차 블록의 잔차 신호를 변환하여 주파수 계수를 갖는 잔차 블록을 생성하고 양자화 과정을 수행하지 않을 수 있으며, 잔차 블록의 잔차 신호를 주파수 계수로 변환하지 않고 양자화 과정만을 수행할 수 있을 뿐만 아니라, 심지어는 변환과 양자화 과정을 모두 수행하지 않을 수 있다. 변환과 양자화 과정을 수행하지 않는 경우에는 본 발명의 일 실시예에 따른 영상 부호화 장치(740)에서 제 1 부호화부(740)는 생략될 수 있을 것이다.In the above description, the first encoder 740 transforms and quantizes the residual block. However, the residual signal of the residual block may be transformed to generate the residual block having the frequency coefficient, and the quantization process may not be performed. Not only the quantization process can be performed without converting the residual signal of the block into the frequency coefficient, and even the conversion and the quantization process can not be performed. In the case where the transformation and quantization are not performed, the first encoder 740 in the image encoding apparatus 740 according to the embodiment of the present invention may be omitted.

제 2 부호화부(750)는 제 1 부호화부(740)로부터 출력되는 잔차 블록을 부호화하여 잔차 블록 부호화 데이터를 생성하고 출력한다. 즉, 제 2 부호화부(750)는 잔차 블록의 양자화 주파수 계수, 주파수 계수 또는 잔차 신호를 지그재그 스캔과 같은 다양한 스캔 방식에 따라 스캔하여 양자화 주파수 계수열, 주파수 계수열 또는 신호열을 생성하고 엔트로피 부호화(Entropy Coding) 기법 등 다양한 부호화 기법을 이용하여 부호화한다. 한편, 이러한 제 1 부호화부(740)와 제 2 부호화부(750)의 기능이 통합되어 하나의 부호화부로서 구현될 수도 있다.The second encoder 750 encodes the residual block output from the first encoder 740 to generate and output residual block encoded data. That is, the second encoder 750 scans the quantization frequency coefficient, the frequency coefficient, or the residual signal of the residual block according to various scan methods such as zigzag scan to generate a quantization frequency coefficient sequence, a frequency coefficient sequence or a signal sequence, Entropy coding) technique. The functions of the first encoder 740 and the second encoder 750 may be integrated into one encoder.

부호화 데이터 생성부(760)는 부호화부(750)로부터 출력되는 잔차 블록 부호화 데이터와 움직임 벡터 부호화부(722)로부터 출력되는 움직임 벡터 부호화 데이터를 포함하는 부호화 데이터를 생성하여 출력한다. 또한, 부호화 데이터 생성부(760)는 블록 모드 결정부(710)로부터 출력되거나 기 설정된 현재 블록에 대한 블록 모드에 대한 정보를 부호화 데이터에 추가로 포함시켜 출력할 수 있다. 이러한 부호화 데이터 생성부(760)는 멀티플렉서(MUX: Multiplexer)로 구현될 수 있다.The encoded data generation unit 760 generates encoded data including the residual block encoded data output from the encoding unit 750 and the motion vector encoded data output from the motion vector encoding unit 722 and outputs the encoded data. The encoded data generation unit 760 may further include information on the block mode output from the block mode determination unit 710 or the preset current block in addition to the encoded data. The coded data generator 760 may be implemented as a multiplexer (MUX).

복호화부(770)는 제 1 부호화부(740)에 의해 양자화된 잔차 블록을 역 양자화(Inverse Quantization)하고 역 변환(Inverse Transform)한다. 즉, 복호화부(770)는 앙자화된 잔차 블록의 양자화 주파수 계수들을 역 양자화하여 주파수 계수를 갖는 잔차 블록을 생성하고, 역 양자화된 잔차 블록을 역 변환하여 화소값을 갖는 잔차 블록 즉, 복원된 잔차 블록을 생성한다. 여기서, 복호화부(770)는 제 1 부호화부(740)에서 사용한 변환 방식과 양자화 방식을 역으로 사용하여 역 변환 및 역 양자화할 수 있다. 또한, 제 1 부호화부(740)에서 변환만을 수행하고 양자화를 수행하지 않은 경우, 복호화부(770)는 역 변환만을 수행하고 역 양자화를 수행하지 않으며, 제 1 부호화부(740)에서 양자화만을 수행하고 변환을 수행하지 않은 경우에는 역 양자화만을 수행하고 역 변환을 수행하지 않을 수 있다. 만약, 제 1 부호화부(740)에서 변환 및 양자화를 모두 수행하지 않거나 제 1 부호화부(740)가 영상 부호화 장치(700)에 구성되지 않고 생략된 경우, 복호화부(770)도 역 변환 및 역 양자화를 모두 수행하지 않거나 영상 부호화 장치(700)에 구성되지 않고 생략될 수 있다.The decoding unit 770 performs inverse quantization and inverse transform of the residual block quantized by the first encoding unit 740. That is, the decoding unit 770 dequantizes the quantized frequency coefficients of the coarse residual block to generate a residual block having a frequency coefficient, and inversely transforming the dequantized residual block to generate a residual block having a pixel value, And generates a residual block. Here, the decoding unit 770 can perform inverse transform and inverse quantization using the transform method and the quantization method used in the first encoding unit 740 inversely. If the first encoder 740 does not perform the quantization but only the inverse transform, the decoder 770 does not perform the inverse quantization, and only the quantization is performed in the first encoder 740 If the transform is not performed, only the inverse quantization is performed and the inverse transform is not performed. If the first encoding unit 740 does not perform both the conversion and the quantization or the first encoding unit 740 is omitted in the image encoding apparatus 700 and is omitted, the decoding unit 770 also performs inverse transform and inverse transform The quantization may not be performed at all or may be omitted in the image encoding apparatus 700.

가산부(780)는 예측부(720)에서 예측된 예측 블록과 복호화부(770)에 의해 복원된 잔차 블록을 가산하여 현재 블록을 복원한다. 참조 픽처 저장부(790)는 가산부(780)로부터 출력되는 복원된 현재 블록을 픽처 단위로 참조 픽처로서 저장하여 예측부(720)가 현재 블록의 다음 블록이나 향후 다른 블록을 부호화할 때 참조 픽처로서 사용할 수 있도록 한다.The adding unit 780 adds the prediction block predicted by the predicting unit 720 and the residual block restored by the decoding unit 770 to restore the current block. The reference picture storage unit 790 stores the reconstructed current block output from the addition unit 780 as a reference picture on a picture-by-picture basis, and when the prediction unit 720 encodes the next block of the current block or another block in the future, .

도 7에서는 도시하지 않았지만, 전술한 본 발명의 일 실시예에 따른 영상 부호화 장치(700)는 H.264/AVC 표준에 기초하여, 인트라 예측(Intra Prediction)을 위한 인트라 예측부, 복원된 현재 블록을 디블로킹 필터링(Deblocking Filtering)하는 디블록킹 필터부 등을 추가로 포함할 수 있다. 또한, 제 1 부호화부(740) 및 복호화부(770)는 H.264/AVC 표준에 기초하여, 특정 픽처(예를 들어, 인트라 픽춰)에 대한 변환 및 양자화(또는 역 변환 및 역 양자화) 연산을 추가로 수행할 수도 있다. 여기서, 디블로킹 필터링이란 영상을 블록 단위로 부호화하면서 발생하는 블록 왜곡을 감소시키는 작업을 말하며, 블록 경계와 매크로블록 경계에 디블로킹 필터를 적용하거나 매크로블록 경계에만 디블로킹 필터를 적용하거나 디블로킹 필터를 사용하지 않는 방법 중 하나를 선택적으로 사용할 수 있다.Although not shown in FIG. 7, the image encoding apparatus 700 according to an embodiment of the present invention described above includes an intra prediction unit for intra prediction, an intra prediction unit for intra prediction based on the H.264 / AVC standard, And a deblocking filter unit for deblocking filtering the received signal. The first encoding unit 740 and the decoding unit 770 convert and quantize (or inverse transform and inverse-quantize) a specific picture (e.g., intra picture) based on the H.264 / AVC standard May be performed. Here, deblocking filtering refers to a task of reducing block distortion caused by coding an image block by block. The deblocking filter may be applied to a block boundary or a macro block boundary, a deblocking filter may be applied to a macro block boundary, Can be selectively used.

도 8은 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.8 is a flowchart illustrating an image encoding method according to an embodiment of the present invention.

영상 부호화 장치(700)는 복수 개의 참조 픽처에 대한 현재 블록의 현재 움직임 벡터를 예측하여 결정한 복수 개의 참조 픽처에 대한 최적 움직임 벡터를 움직임 벡터 복호화 장치에서 예측할 수 있는지 여부에 따라 움직임 벡터 부호화 모드를 결정한다(S810). 즉, 영상 부호화 장치(700)는 도 3을 통해 전술한 바와 같이, list0 및 list1 최적 예측 움직임 벡터를 결정하고 영상 복호화 장치에서 list0 및 list1 최적 예측 움직임 벡터를 결정할 수 있는지 여부를 판단하여 움직임 벡터 부호화 모드를 결정한다. 이때, 움직임 벡터 부호화 모드는 도 3을 통해 전술한 바와 같이, 예측 가능 모드와 예측 불가능 모드로 결정될 수 있으며, 복수 개의 참조 픽처에 대해 각각 결정되거나 하나로 결정될 수도 있다.The image coding apparatus 700 determines a motion vector coding mode according to whether or not an optimal motion vector for a plurality of reference pictures determined by predicting a current motion vector of a current block for a plurality of reference pictures can be predicted by a motion vector decoding apparatus (S810). That is, as described above with reference to FIG. 3, the image encoding apparatus 700 determines list0 and list1 optimal predicted motion vectors, determines whether the list0 and list1 optimal predicted motion vectors can be determined in the image decoding apparatus, Mode. At this time, the motion vector coding mode can be determined to be a predictive mode and an unpredictable mode, as described above with reference to FIG. 3, and may be determined for each of a plurality of reference pictures or may be determined as one.

영상 부호화 장치(700)는 움직임 벡터 부호화 모드에 따라 복수 개의 참조 픽처에 대한 최적 움직임 벡터 또는 복수 개의 참조 픽처에 대한 디폴트 움직임 벡터를 이용하여 복수 개의 참조 픽처에 대한 움직임 정보를 생성한다(S820). 즉, 영상 부호화 장치(700)는 도 3을 통해 전술한 바와 같이, 움직임 벡터 부호화 모드에 따라 list0 및 list1 최적 움직임 벡터 또는 list0 및 list1 디폴트 움직임 벡터를 이용하여 list0 및 list1 움직임 정보를 생성한다.The image coding apparatus 700 generates motion information on a plurality of reference pictures using an optimal motion vector for a plurality of reference pictures or a default motion vector for a plurality of reference pictures according to a motion vector coding mode in operation S820. That is, as described above with reference to FIG. 3, the image coding apparatus 700 generates list0 and list1 motion information using list0 and list1 optimal motion vectors or list0 and list1 default motion vectors according to a motion vector coding mode.

영상 부호화 장치(700)는 복수 개의 참조 픽처에 대한 움직임 정보와 움직임 벡터 부호화 모드를 부호화하여 움직임 벡터 부호화 데이터를 생성하고(S830), 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 이용하여 현재 블록의 예측 블록을 생성하며(S840), 현재 블록과 예측 블록을 감산하여 생성한 잔차 블록을 부호화하여 잔차 블록 부호화 데이터를 생성하며(S850), 움직임 부호화 데이터와 잔차 블록 부호화 데이터를 포함하는 부호화 데이터를 생성하여 출력한다.The image coding apparatus 700 generates motion vector coding data by coding motion information and a motion vector coding mode for a plurality of reference pictures (S830), and predicts the current block using the current motion vector for a plurality of reference pictures (S840). The residual block generated by subtracting the current block from the prediction block is coded to generate residual block coded data (S850), and coded data including the motion coded data and the residual block coded data is generated Output.

이상에서 전술한 바와 같이, 영상 부호화 장치(700)에 의해 부호화 데이터로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 후술할 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.As described above, the image encoded with the encoded data by the image encoding apparatus 700 can be transmitted through the wired / wireless communication network such as the Internet, the local area wireless communication network, the wireless LAN network, the WiBro network, the mobile communication network, , A universal serial bus (USB), or the like, to be transmitted to a video decoding apparatus to be described later, decoded by the video decoding apparatus, and restored and reproduced as an image.

도 9는 본 발명의 일 실시예에 따른 영상 복호화 장치의 구성을 간략하게 나타낸 블록 구성도이다.FIG. 9 is a block diagram of a video decoding apparatus according to an embodiment of the present invention. Referring to FIG.

본 발명의 일 실시예에 따른 영상 복호화 장치(900)는 정보 추출부(910), 제 1 복호화부(920), 제 2 복호화부(930), 예측부(940), 가산부(950) 및 참조 픽처 저장부(960)를 포함하여 구성될 수 있다. 이러한 영상 복호화 장치(900)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.An image decoding apparatus 900 according to an exemplary embodiment of the present invention includes an information extracting unit 910, a first decoding unit 920, a second decoding unit 930, a predicting unit 940, an adding unit 950, And a reference picture storage unit 960. The video decoding apparatus 900 may be a personal computer (PC), a notebook computer, a personal digital assistant (PDA), a portable multimedia player (PMP), a PlayStation Portable ), A mobile communication terminal, and the like, and may be a communication device such as a communication modem for performing communication with various devices or wired / wireless communication networks, a memory for storing various programs and data for decrypting video, a program And a microprocessor for calculating and controlling the microprocessor.

정보 추출부(910)는 부호화 데이터를 입력받아 블록 모드에 대한 정보(예를 들면, 식별자)를 추출하고 추출된 블록 모드에 대한 정보를 출력한다. 또한, 정보 추출부(910)는 블록 모드가 움직임 벡터 생략 모드인 경우(예를 들면, 블록 모드가 인트라 16x16 모드, 인트라 4x4 모드 등인 경우), 부호화 데이터로부터 움직임 벡터 부호화 데이터를 추출하지 않고 잔차 블록 부호화 데이터만을 추출하여 출력할 수 있다. 반면, 블록 모드가 움직임 벡터 생략 모드가 아닌 경우(예를 들면, 블록 모드가 인터 16x16 모드, 인터 4x4 모드, P8x8 모드 등인 경우), 정보 추출부(910)는 부호화 데이터로부터 움직임 벡터 부호화 데이터와 잔차 블록 부호화 데이터를 추출하여 출력한다. 이때, 정보 추출부(910)는 부호화 데이터로부터 참조 픽처에 대한 인덱스 정보를 추가로 추출하여 출력할 수 있다.The information extraction unit 910 receives the encoded data, extracts information on the block mode (for example, an identifier), and outputs information on the extracted block mode. If the block mode is the motion vector skip mode (for example, the block mode is the intra 16x16 mode or the intra 4x4 mode), the information extracting unit 910 extracts the motion vector encoded data from the encoded data, Only the encoded data can be extracted and output. On the other hand, when the block mode is not the motion vector skip mode (for example, the block mode is the inter 16x16 mode, the inter 4x4 mode, the P8x8 mode, etc.), the information extracting unit 910 extracts, from the encoded data, And extracts and outputs block coded data. At this time, the information extracting unit 910 can further extract and output index information about the reference picture from the encoded data.

제 1 복호화부(920)는 정보 추출부(910)로부터 출력되는 잔차 블록 부호화 데이터를 복호화한다. 즉, 제 1 복호화부(920)는 엔트로피 부호화 기법 등을 이용하여 잔차 블록 부호화 데이터의 이진 데이터를 복호화하여 양자화 주파수 계수열을 생성하고 역 지그재그 스캔 등 다양한 스캔 방식에 의해 역 스캔하여 양자화 주파수 계수열을 갖는 잔차 블록을 생성한다. 만약, 잔차 블록 부호화 데이터의 이진 데이터가 주파수 계수가 부호화된 이진 데이터라면, 제 1 복호화부(920)에 의해 복호화된 잔차 블록은 주파수 계수를 갖는 잔차 블록이 될 것이고, 잔차 블록 부호화 데이터의 이진 데이터가 변환되지 않고 양자화되지 않은 잔차 신호가 부호화된 이진 데이터라면, 제 1 복호화부(920)에 의해 복호화된 잔차 블록은 잔차 신호를 갖는 잔차 블록이 될 것이다.The first decoding unit 920 decodes the residual block coded data output from the information extracting unit 910. That is, the first decoding unit 920 decodes the binary data of the residual block coded data using an entropy coding technique or the like to generate a quantized frequency coefficient sequence, performs inverse scanning by various scanning methods such as inverse zigzag scanning, Lt; / RTI > If the binary data of the residual block coded data is binary data in which the frequency coefficients are coded, the residual block decoded by the first decoding unit 920 will be a residual block having a frequency coefficient, and the binary data of the residual block coded data The residual block decoded by the first decoding unit 920 will be a residual block having the residual signal if the non-quantized residual signal is the encoded binary data.

제 2 복호화부(930)는 제 1 복호화부(920)에 의해 복호화된 잔차 블록을 역 양자화하고 역 변환하여 잔차 블록을 복원한다. 즉, 제 2 복호화부(930)는 제 1 복호화부(920)로부터 출력되는 복호화된 잔차 블록의 양자화 주파수 계수를 역 양자화하고 역 양자화된 주파수 계수를 역 변환하여 잔차 신호를 갖는 잔차 블록을 복원한다. 만약, 제 2 복호화부(930)는 제 1 복호화부(920)에 의해 복호화된 잔차 블록이 양자화 주파수 계수를 갖는다면, 역 양자화와 역 변환을 모두 수행하지만, 제 1 복호화부(920)에 의해 복호화된 잔차 블록이 주파수 계수를 갖는다면, 역 양자화는 수행하지 않고 역 변환만을 수행할 수 있으며, 제 1 복호화부(920)에 의해 복호화된 잔차 블록이 잔차 신호만을 갖는다면, 역 양자화와 역 변환을 모두 수행하지 않거나, 영상 복호화 장치(900)에서 제 2 복호화부(930)는 구성되지 않고 생략될 수도 있을 것이다. 한편, 도 9에서는 제 1 복호화부(920)와 제 2 복호화부(930)가 독립적으로 구성되는 것으로 도시하고 설명했지만, 각 기능을 통합한 하나의 복호화부(미도시)로 구성될 수도 있을 것이다.The second decoding unit 930 dequantizes and inversely transforms the residual block decoded by the first decoding unit 920 and restores the residual block. That is, the second decoding unit 930 dequantizes the quantized frequency coefficients of the decoded residual block output from the first decoding unit 920, and inversely transforms the dequantized frequency coefficients to recover the residual block having the residual signal . If the residual block decoded by the first decoding unit 920 has a quantization frequency coefficient, the second decoding unit 930 performs both of the inverse quantization and the inverse transform. However, if the first decoding unit 920 If the decoded residual block has a frequency coefficient, only the inverse transform can be performed without performing inverse quantization. If the residual block decoded by the first decoding unit 920 has only a residual signal, inverse quantization and inverse transform Or the second decoding unit 930 may not be configured in the image decoding apparatus 900 and may be omitted. 9, the first decoding unit 920 and the second decoding unit 930 are illustrated as being independently configured, but they may be configured as one decoding unit (not shown) that integrates the functions of the first decoding unit 920 and the second decoding unit 930 .

예측부(940)는 현재 블록을 예측하여 예측 블록을 생성한다. 이러한 예측부(940)는 움직임 벡터 복호화부(942) 및 움직임 보상부(944)를 포함하여 구성될 수 있으며, 정보 추출부(910)로부터 출력되는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터 부호화 모드 및 복수 개의 참조 픽처에 대한 움직임 정보를 복원하고, 복원된 움직임 정보와 움직임 벡터 부호화 모드에 따라 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 예측하여 결정한 복수 개의 참조 픽처에 대한 추정 최적 움직임 벡터 또는 움직임 벡터 부호화 장치와 기 설정된 디폴트 움직임 벡터를 이용하여 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 복원하며, 복원된 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 이용하여 현재 블록의 예측 블록을 생성한다.The prediction unit 940 predicts the current block to generate a prediction block. The prediction unit 940 may include a motion vector decoding unit 942 and a motion compensation unit 944. The prediction unit 940 may decode the motion vector coding data output from the information extraction unit 910, And reconstructs motion information for a plurality of reference pictures and predicts a current motion vector for a plurality of reference pictures according to the reconstructed motion information and the motion vector coding mode, And restores the current motion vector for a plurality of reference pictures using the apparatus and a preset default motion vector and generates a prediction block of the current block using the current motion vector for the plurality of reference pictures reconstructed.

움직임 벡터 복호화부(942)는 도 5를 통해 전술한 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치(500)와 같이 구현될 수 있다. 즉, 움직임 벡터 복호화부(942)는 움직임 벡터 부호화 데이터를 복호화하여 움직임 벡터 부호화 모드 및 list0 및 list1 움직임 정보를 복원하고, 움직임 벡터 부호화 모드가 예측 가능 모드인지 또는 예측 불가능 모드인지 여부에 따라서, list0 및 list1 추정 최적 움직임 벡터를 결정하여 list0 및 list1 예측 움직임 벡터로서 결정하거나 기 설정된 list0 및 list1 디폴트 움직임 벡터를 list0 및 list1 예측 움직임 벡터로서 결정하며, list0 및 list1 예측 움직임 벡터와 list0 및 list1 움직임 정보를 이용하여 list0 및 list1 현재 움직임 벡터를 복원한다.The motion vector decoding unit 942 may be implemented as a motion vector decoding apparatus 500 according to an embodiment of the present invention described above with reference to FIG. That is, the motion vector decoding unit 942 decodes the motion vector coding data to restore the motion vector coding mode and the list0 and list1 motion information, and determines whether the motion vector coding mode is predictive mode or predictive mode, And list1 estimated optimal motion vectors to determine list0 and list1 predicted motion vectors or determined list0 and list1 default motion vectors as list0 and list1 predicted motion vectors, and list0 and list1 predicted motion vectors and list0 and list1 motion information, respectively. To restore the current motion vectors of list0 and list1.

움직임 보상부(944)는 참조 픽처 저장부(960)에 저장된 참조 픽처에서 움직임 벡터 복호화부(942)에 의해 복원된 list0 및 list1 현재 움직임 벡터에 의해 지시되는 참조 블록을 현재 블록의 예측 블록으로서 예측하여 예측 블록을 생성한다. 여기서, 움직임 벡터 복호화부(942)는 참조 픽처를 이용하는 데 있어서, 정보 추출부(910)로부터 참조 픽처에 대한 인덱스 정보가 출력되면, 참조 픽처 저장부(960)에 저장된 많은 참조 픽처 중에서 참조 픽처에 대한 인덱스 정보에 의해 식별되는 참조 픽처를 이용할 수 있다.The motion compensation unit 944 predicts the reference blocks indicated by the current motion vectors of the list0 and list1 restored by the motion vector decoding unit 942 in the reference pictures stored in the reference picture storage unit 960 as prediction blocks of the current block Thereby generating a prediction block. Here, when using the reference picture, the motion vector decoding unit 942 outputs the index information of the reference picture from the information extracting unit 910 to the reference picture among the many reference pictures stored in the reference picture storage unit 960 It is possible to use the reference picture identified by the index information.

가산부(950)는 제 2 복호화부(930)로부터 출력되는 복원된 잔차 블록을 예측부(940)에서 예측되어 출력되는 예측 블록과 가산하여 현재 블록을 복원한다. 이와 같이 복원된 현재 블록은 픽처 단위로 누적되어 복원 영상으로서 출력되거나 참조 픽처로서 참조 픽처 저장부(960)에 저장되며, 다음 블록을 예측하는 데 활용될 수 있다.The adder 950 restores the current block by adding the restored residual block output from the second decoding unit 930 to the predicted block output from the predicting unit 940. The reconstructed current block may be accumulated as a reconstructed picture on a picture-by-picture basis or may be stored in a reference picture storage unit 960 as a reference picture and used to predict a next block.

도 9에서는 도시하지 않았지만, 전술한 본 발명의 일 실시예에 따른 영상 복호화 장치(900)는 H.264/AVC 표준에 기초하여, 인트라 예측을 위한 인트라 예측부, 복원된 현재 블록을 디블로킹 필터링(Deblocking Filtering)하는 디블록킹 필터부 등을 추가로 포함할 수 있다. 또한, 제 2 복호화부(930)는 H.264/AVC 표준에 기초하여, 특정 픽처(예를 들어, 인트라 픽춰)에 대한 역 변환 및 역 양자화 연산을 추가로 수행할 수도 있다.Although not shown in FIG. 9, the video decoding apparatus 900 according to an embodiment of the present invention described above includes an intra prediction unit for intraprediction based on the H.264 / AVC standard, a deblocking filtering A deblocking filter unit for performing deblocking filtering, and the like. In addition, the second decoding unit 930 may further perform inverse transform and inverse quantization on a specific picture (e.g., intra picture) based on the H.264 / AVC standard.

도 10은 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.10 is a flowchart illustrating an image decoding method according to an embodiment of the present invention.

유무선 통신망 또는 케이블 등을 통해 영상에 대한 부호화 데이터를 수신하여 저장한 영상 복호화 장치(900)는 사용자의 선택 또는 실행 중인 다른 프로그램의 알고리즘에 따라 영상을 재생하기 위해, 영상을 복호화하여 복원한다.The video decoding apparatus 900 receives encoded video data through a wired / wireless communication network or a cable and stores the encoded data. The video decoding apparatus 900 decodes and restores the video in order to reproduce the video according to a user's selection or an algorithm of another program being executed.

이를 위해, 영상 복호화 장치(900)는 입력되는 부호화 데이터를 복호화하여 잔차 블록, 움직임 벡터 부호화 모드 및 복수 개의 참조 픽처에 대한 움직임 정보를 복원하고(S1010), 복원된 움직임 벡터 부호화 모드에 따라 복수 개의 참조 픽처에 대한 추정 최적 움직임 벡터 또는 복수 개의 참조 픽처에 대한 디폴트 움직임 벡터를 이용하여 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 복원한다(S1020).For this, the video decoding apparatus 900 decodes input encoded data to recover residual blocks, a motion vector coding mode, and motion information on a plurality of reference pictures (S1010) The current motion vector for a plurality of reference pictures is reconstructed using the estimated optimal motion vector for the reference picture or the default motion vector for the plurality of reference pictures (S1020).

즉, 영상 복호화 장치(900)는 입력되는 부호화 데이터를 복호화하여 잔차 블록, 움직임 벡터 부호화 모드 및 list0 및 list1 움직임 정보를 복원하고, 복원된 움직임 벡터 부호화 모드에 따라 list0 및 list1 추정 최적 움직임 벡터 또는 list0 및 list1 디폴트 움직임 벡터를 이용하여 list0 및 list1 현재 움직임 벡터를 복원한다.That is, the image decoding apparatus 900 decodes the input encoded data to recover the residual block, the motion vector coding mode, and the list0 and list1 motion information, and outputs list0 and list1 estimated optimal motion vectors or list0 And list1 default motion vectors to restore the current motion vectors of list0 and list1.

영상 복호화 장치(900)는 복원된 복수 개의 참조 픽처에 대한 현재 움직임 벡터 즉, list0 및 list1 현재 움직임 벡터를 이용하여 현재 블록을 예측하여 예측 블록을 생성하고(S1030), 복원된 잔차 블록과 예측 블록을 가산하여 현재 블록을 복원한다(S1040).The video decoding apparatus 900 generates a prediction block by predicting the current block using the current motion vectors of the restored reference pictures, that is, list0 and list1 current motion vectors (S1030), and outputs the reconstructed residual block and the prediction block And restores the current block (S1040).

도 4, 도 6, 도 8 및 도 10과 그에 대한 설명에 나타낸 각 단계의 순서는 본 발명의 일 실시예에 따른 순서에 불과할 뿐, 본 발명의 본질적인 특성을 벗어나지 않는 범위 내에서 각 단계의 순서는 변경되어 구현될 수도 있다.4, 6, 8, and 10 and the description thereof is only an order according to one embodiment of the present invention, and the order of each step within the scope of the essential characteristics of the present invention May be modified and implemented.

또한, 전술한 설명에서는, 움직임 벡터 부호화 모드는 예측 가능 모드와 예측 불가능 모드로 구분되는 것으로 설명했지만, 반드시 이에 한정되는 것은 아니며, 기 설정된 복수 개의 참조 픽처에 대한 디폴트 움직임 벡터를 복수 개의 참조 픽처에 대한 예측 움직임 벡터로 사용하는 모드와 기 설정된 기준 또는 방법에 따라 복수 개의 참조 픽처에 대한 최적 움직임 벡터를 복수 개의 참조 픽처에 대한 예측 움직임 벡터로 사용하는 모드로 구분될 수 있을 것이다.In the above description, the motion vector coding mode is classified into the predictive mode and the unpredictable mode. However, the present invention is not limited to this, and a default motion vector for a plurality of reference pictures may be divided into a plurality of reference pictures And a mode for using a best motion vector for a plurality of reference pictures as a predicted motion vector for a plurality of reference pictures according to a mode used as a predictive motion vector and a preset reference or method.

전술한 본 발명의 일 실시예에 따르면, 움직임 벡터 부호화 장치(300) 또는 영상 부호화 장치(700)에서 복수 개의 참조 픽처에 대한 예측 모드를 선택하여 결정할 수 있도록 함으로써, 복수 개의 참조 픽처에 대한 현재 움직임 벡터와 동일 또는 더욱 유사한 움직임 벡터를 복수 개의 참조 픽처에 대한 예측 움직임 벡터로서 이용하여 복수 개의 참조 픽처에 대한 현재 움직임 벡터를 부호화하는 데 소요되는 비트량을 최소화할 수 있으며, 그에 따라 부호화 효율 또는 압축 효율을 향상시킬 수 있다.According to an embodiment of the present invention described above, the motion vector coding apparatus 300 or the image coding apparatus 700 can select and determine a prediction mode for a plurality of reference pictures, The amount of bits required to encode the current motion vector for a plurality of reference pictures can be minimized by using a motion vector equal to or more similar to a vector as a predictive motion vector for a plurality of reference pictures, The efficiency can be improved.

또한, 본 발명의 일 실시예에 따르면, 더욱 정확한 복수 개의 참조 픽처에 대한 예측 움직임 벡터를 이용하여 부호화 효율을 향상시키면서도, 영상 부호화 장치(300) 또는 움직임 벡터 부호화 장치(300)는 선택된 복수 개의 참조 픽처에 대한 예측 움직임 벡터를 직접 복호화 장치로 알리지 않고, 움직임 벡터 복호화 장치(500) 또는 영상 복호화 장치(700)에서 직접 구할 수 있도록 움직임 정보나 움직임 벡터 부호화 모드와 같은 정보만을 전송하거나 그를 찾기 위한 함수를 공유함으로써, 복수 개의 참조 픽처에 대한 예측 움직임 벡터를 알리기 위해 발생하는 추가적인 비트량의 증가를 줄일 수 있으므로, 부호화 효율 및 복호화 효율을 더욱 향상시킬 수 있다.Also, according to an embodiment of the present invention, the image coding apparatus 300 or the motion vector coding apparatus 300 can improve the coding efficiency by using the predicted motion vectors for the more accurate reference pictures, A function for transmitting or searching only information such as motion information and a motion vector coding mode so as to be directly obtained from the motion vector decoding apparatus 500 or the video decoding apparatus 700 without notifying the predicted motion vector for the picture directly to the decoding apparatus, It is possible to reduce an increase in the amount of additional bits generated for notifying the predicted motion vector for a plurality of reference pictures, so that the coding efficiency and the decoding efficiency can be further improved.

또한, 본 발명의 일 실시예를 영상 처리 서비스 등에 적용하면, 적은 비트량으로 영상을 부호화할 수 있어서, 사용자에게 만족도 높은 서비스를 제공해줄 수 있다. 특히, 유선 환경에 비해 상대적으로 작은 대역폭, 큰 데이터 손실 및 지연 등을 가질 수 있는 무선 이동 환경에서는 더욱 큰 효과를 기대할 수 있다.Further, when an embodiment of the present invention is applied to an image processing service or the like, it is possible to encode an image with a small bit amount, thereby providing a highly satisfactory service to a user. Especially, it can be expected to be more effective in a wireless mobile environment that can have a relatively small bandwidth, large data loss and delay compared to a wired environment.

이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments. That is, within the scope of the present invention, all of the components may be selectively coupled to one or more of them. In addition, although all of the components may be implemented as one independent hardware, some or all of the components may be selectively combined to perform a part or all of the functions in one or a plurality of hardware. As shown in FIG. The codes and code segments constituting the computer program may be easily deduced by those skilled in the art. Such a computer program can be stored in a computer-readable storage medium, readable and executed by a computer, thereby realizing an embodiment of the present invention. As the storage medium of the computer program, a magnetic recording medium, an optical recording medium, a carrier wave medium, or the like may be included.

또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Furthermore, the terms "comprises", "comprising", or "having" described above mean that a component can be implanted unless otherwise specifically stated, But should be construed as including other elements. All terms, including technical and scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs, unless otherwise defined. Commonly used terms, such as predefined terms, should be interpreted to be consistent with the contextual meanings of the related art, and are not to be construed as ideal or overly formal, unless expressly defined to the contrary.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present invention, and various changes and modifications may be made by those skilled in the art without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are intended to illustrate rather than limit the scope of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.

이상에서 설명한 바와 같이 본 발명은 영상을 부호화하고 복호화하는 영상 처리 분야에 적용되어, 복수 개의 참조 픽처에 대한 현재 움직임 벡터의 예측 움직임 벡터를 더욱 정확하게 예측하고, 움직임 벡터를 부호화하는 데 소요되는 비트량을 감소시켜 압축 효율을 향상시킬 수 있는 효과를 발생하는 매우 유용한 발명이다.
As described above, the present invention is applied to an image processing field for encoding and decoding an image, so as to more accurately predict a predicted motion vector of a current motion vector for a plurality of reference pictures, to calculate a bit amount And the compression efficiency can be improved.

Claims (16)

인터 예측을 이용한 영상 복호화 방법에 있어서,
부호화 데이터를 복호화함으로써, 현재 픽처 내에 위치하는 현재 블록의 제1 차분 움직임벡터 및 제2 차분 움직임 벡터를 복원하는 단계;
상기 현재 블록의 하나 이상의 주변 블록으로부터 상기 현재 블록의 제1 예측 움직임벡터 및 제2 예측 움직임벡터를 유도하는 단계;
상기 제1 차분 움직임벡터와 상기 제1 예측 움직임벡터를 가산하여 상기 현재 블록의 제1 움직임벡터를 생성하고, 상기 제2 차분 움직임벡터와 상기 제2 예측 움직임벡터를 가산하여 상기 현재 블록의 제2 움직임벡터를 생성하는 단계;
상기 현재 블록의 제1 움직임벡터 및 제2 움직임벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계;
상기 부호화 데이터에 포함된 잔차 신호를 복호화함으로써 잔차 블록을 복원하는 단계; 및
상기 예측 블록의 각 픽셀과 상기 잔차 블록의 대응하는 픽셀을 가산하는 단계를 포함하되,
상기 잔차 블록을 복원하는 단계는,
역양자화 및 역변환을 위한 하나 이상의 조건을 식별하는 단계; 및
상기 식별된 조건에 근거하여, 상기 복호화된 잔차 신호에 대한 역양자화 및 역변환을 스킵하는 과정, 상기 복호화된 잔차 신호를 역양자화하고 역양자화된 잔차 신호에 대한 역변환을 스킵하는 과정, 및 상기 복호화된 잔차 신호에 대한 역양자화 및 역변환을 모두 수행하는 과정 중 하나를 선택함으로써 상기 잔차 블록을 복원하는 단계
를 포함하는 것을 특징으로 하는 영상 복호화 방법.
In an image decoding method using inter prediction,
Reconstructing a first differential motion vector and a second differential motion vector of a current block located in a current picture by decoding the encoded data;
Deriving a first predicted motion vector and a second predicted motion vector of the current block from one or more neighboring blocks of the current block;
A second motion vector prediction unit for generating a first motion vector of the current block by adding the first difference motion vector and the first predicted motion vector to each other and adding the second difference motion vector and the second predicted motion vector, Generating a motion vector;
Generating a prediction block of the current block using a first motion vector and a second motion vector of the current block;
Reconstructing a residual block by decoding the residual signal included in the encoded data; And
And adding each pixel of the prediction block and a corresponding pixel of the residual block,
Wherein the step of restoring the residual block comprises:
Identifying one or more conditions for dequantization and inverse transformation; And
Quantizing the decoded residual signal, skipping the inverse quantization and inverse transform of the decoded residual signal, dequantizing the decoded residual signal and skipping the inverse transform of the dequantized residual signal, Reconstructing the residual block by selecting one of the processes of performing both inverse quantization and inverse transform on the residual signal
And decoding the decoded image.
삭제delete 제 1 항에 있어서,
상기 제1 및 제2 예측 움직임벡터를 유도하는 단계는,
상기 하나 이상의 주변 블록의 움직임벡터를 이용하여, 제1 후보 움직임벡터 집합과 제2 후보 움직임벡터 집합을 유도하는 단계;
상기 제1 후보 움직임벡터 집합에서 제1 후보 움직임벡터를 선택하고 제2 후부 움직임벡터 집합에서 제2 후보 움직임벡터를 선택하는 단계; 및
상기 제1 후보 움직임벡터를 상기 제1 예측 움직임벡터로 설정하고, 상기 제2 후보 움직임벡터를 상기 제2 예측 움직임벡터로 설정하는 단계
를 포함하는 것을 특징으로 하는 영상 복호화 방법.
The method according to claim 1,
Wherein deriving the first and second predicted motion vectors comprises:
Deriving a first candidate motion vector set and a second candidate motion vector set using the motion vectors of the at least one neighboring block;
Selecting a first candidate motion vector in the first set of candidate motion vectors and a second candidate motion vector in a second set of backward motion vectors; And
Setting the first candidate motion vector to the first predicted motion vector and setting the second candidate motion vector to the second predicted motion vector
And decoding the decoded image.
제 3 항에 있어서,
상기 하나 이상의 주변 블록은, 상기 현재 픽처 내에서 상기 현재 블록에 공간적으로 인접한 하나 이상의 블록 및 상기 현재 픽처 이전에 복호화된 참조 픽처 내에 위치한 하나 이상의 블록을 포함하되,
싱기 참조 픽처 내에 위치한 블록은 상기 현재 픽처에서 상기 현재 블록의 위치에 근거하여 결정되는 것을 특징으로 하는 영상 복호화 방법.
The method of claim 3,
Wherein the one or more neighboring blocks include one or more blocks spatially adjacent to the current block in the current picture and one or more blocks located in a reference picture decoded prior to the current picture,
Wherein a block located within a coded reference picture is determined based on a position of the current block in the current picture.
제 4 항에 있어서,
상기 현재 블록에 공간적으로 인접한 하나 이상의 블록은 상기 현재 블록의 좌측, 상단, 우상단, 좌상단에 위치한 블록을 포함하는 것을 특징으로 하는 영상 복호화 방법.
5. The method of claim 4,
Wherein at least one block spatially adjacent to the current block includes blocks located at left, upper, upper right, and upper left of the current block.
제 3 항에 있어서,
상기 제1 후보 움직임벡터 집합을 유도하는 단계는, 상기 하나 이상의 주변 블록의 움직임벡터로부터 유도된 두 개의 후보 움직임벡터가 동일한 경우 그 중 하나만을 상기 제1 후보 움직임벡터 집합에 포함시키는 과정을 포함하고,
상기 제2 후보 움직임벡터 집합을 유도하는 단계는, 상기 하나 이상의 주변 블록의 움직임벡터로부터 유도된 두 개의 후보 움직임벡터가 동일한 경우 그 중 하나만을 상기 제2 후보 움직임벡터 집합에 포함시키는 과정을 포함하는 것을 특징으로 하는 영상 복호화 방법.
The method of claim 3,
Wherein the step of deriving the first set of candidate motion vectors comprises the step of including only one of the two candidate motion vectors derived from the motion vectors of the at least one neighboring block in the first candidate motion vector set ,
Wherein the step of deriving the second set of candidate motion vectors comprises the step of including only one of the two candidate motion vectors derived from the motion vectors of the at least one neighboring block in the second candidate motion vector set And decodes the decoded image.
제 3 항에 있어서,
상기 제1 후보 움직임벡터와 상기 제2 후보 움직임벡터는 상기 부호화 데이터에 포함된 정보에 근거하여 선택되는 것을 특징으로 하는 영상 복호화 방법.
The method of claim 3,
Wherein the first candidate motion vector and the second candidate motion vector are selected based on information included in the encoded data.
제 1 항에 있어서,
상기 역양자화 및 역변환을 위한 하나 이상의 조건은 상기 부호화 데이터에 포함된 정보에 근거하여 식별되는 것을 특징으로 하는 영상 복호화 방법.
The method according to claim 1,
Wherein one or more conditions for the dequantization and inverse transformation are identified based on information included in the encoded data.
인터 예측을 이용한 영상 복호화 장치에 있어서,
부호화 데이터를 복호화함으로써, 현재 픽처 내에 위치한 현재 블록의 제1 차분 움직임벡터 및 제2 차분 움직임 벡터를 복원하는 정보 추출부;
상기 현재 블록의 하나 이상의 주변 블록으로부터 상기 현재 블록의 제1 예측 움직임벡터 및 제2 예측 움직임벡터를 유도하고, 상기 제1 차분 움직임벡터와 상기 제1 예측 움직임벡터를 가산하여 상기 현재 블록의 제1 움직임벡터를 생성하고 상기 제2 차분 움직임벡터와 상기 제2 예측 움직임벡터를 가산하여 상기 현재 블록의 제2 움직임벡터를 생성하며, 상기 현재 블록의 제1 움직임벡터 및 제2 움직임벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 예측부;
상기 부호화 데이터에 포함된 잔차 신호를 복호화함으로써 잔차 블록을 복원하는 복호화부; 및
상기 예측 블록의 각 픽셀과 상기 잔차 블록의 대응하는 픽셀을 가산하는 가산기를 포함하되,
상기 복호화부는,
역양자화 및 역변환을 위한 하나 이상의 조건을 식별하고,
상기 식별된 조건에 근거하여, 상기 복호화된 잔차 신호에 대한 역양자화 및 역변환을 스킵하는 과정, 상기 복호화된 잔차 신호를 역양자화하고 역양자화된 잔차 신호에 대한 역변환을 스킵하는 과정, 및 상기 복호화된 잔차 신호에 대한 역양자화 및 역변환을 모두 수행하는 과정 중 하나를 선택함으로써 상기 잔차 블록을 복원하는 것을 특징으로 하는 영상 복호화 장치.
In an image decoding apparatus using inter prediction,
An information extraction unit for decoding the encoded data to reconstruct a first difference motion vector and a second difference motion vector of a current block located in a current picture;
A first predictive motion vector and a second predictive motion vector of the current block are derived from one or more neighboring blocks of the current block, and the first differential motion vector and the first predictive motion vector are added, Generating a second motion vector of the current block by adding the second difference motion vector and the second predicted motion vector to generate a motion vector, and generating a second motion vector of the current block using the first motion vector and the second motion vector of the current block, A prediction unit for generating a prediction block of a current block;
A decoding unit for decoding a residual signal included in the encoded data to reconstruct a residual block; And
And an adder for adding each pixel of the prediction block and a corresponding pixel of the residual block,
Wherein the decoding unit comprises:
Identifying one or more conditions for dequantization and inverse transformation,
Quantizing the decoded residual signal, skipping the inverse quantization and inverse transform of the decoded residual signal, dequantizing the decoded residual signal and skipping the inverse transform on the dequantized residual signal, And performing the inverse quantization and inverse transform on the residual signal, thereby reconstructing the residual block.
삭제delete 제 9 항에 있어서,
상기 예측부는,
상기 하나 이상의 주변 블록의 움직임벡터를 이용하여, 제1 후보 움직임벡터 집합과 제2 후보 움직임벡터 집합을 유도하고,
상기 제1 후보 움직임벡터 집합에서 제1 후보 움직임벡터를 선택하고 제2 후부 움직임벡터 집합에서 제2 후보 움직임벡터를 선택하며,
상기 제1 후보 움직임벡터를 상기 제1 예측 움직임벡터로 설정하고 상기 제2 후보 움직임벡터를 상기 제2 예측 움직임벡터로 설정하는 것을 특징으로 하는 영상 복호화 장치.
10. The method of claim 9,
The predicting unit,
Deriving a first candidate motion vector set and a second candidate motion vector set using the motion vectors of the at least one neighboring block,
Selecting a first candidate motion vector in the first set of candidate motion vectors and a second candidate motion vector in a second set of backward motion vectors,
Sets the first candidate motion vector to the first predictive motion vector and sets the second candidate motion vector to the second predictive motion vector.
제 11 항에 있어서,
상기 하나 이상의 주변 블록은, 상기 현재 픽처 내에서 상기 현재 블록에 공간적으로 인접한 하나 이상의 블록 및 상기 현재 픽처 이전에 복호화된 참조 픽처 내에 위치한 하나 이상의 블록을 포함하되,
싱기 참조 픽처 내에 위치한 블록은 상기 현재 픽처에서 상기 현재 블록의 위치에 근거하여 결정되는 것을 특징으로 하는 영상 복호화 장치.
12. The method of claim 11,
Wherein the one or more neighboring blocks include one or more blocks spatially adjacent to the current block in the current picture and one or more blocks located in a reference picture decoded prior to the current picture,
Wherein a block located within a coded reference picture is determined based on a position of the current block in the current picture.
제 12 항에 있어서,
상기 현재 블록에 공간적으로 인접한 하나 이상의 블록은 상기 현재 블록의 좌측, 상단, 우상단, 좌상단에 위치한 블록을 포함하는 것을 특징으로 하는 영상 복호화 장치.
13. The method of claim 12,
Wherein at least one block spatially adjacent to the current block includes blocks located at the left, upper, upper right, and upper left of the current block.
제 11 항에 있어서,
상기 예측부가 상기 제1 후보 움직임벡터 집합을 유도하는 과정은 상기 하나 이상의 주변 블록의 움직임벡터로부터 유도된 두 개의 후보 움직임벡터가 동일한 경우 그 중 하나만을 상기 제1 후보 움직임벡터 집합에 포함시키는 과정을 포함하고,
상기 제2 후보 움직임벡터 집합을 유도하는 과정은 상기 하나 이상의 주변 블록의 움직임벡터로부터 유도된 두 개의 후보 움직임벡터가 동일한 경우 그 중 하나만을 상기 제2 후보 움직임벡터 집합에 포함시키는 과정을 포함하는 것을 특징으로 하는 영상 복호화 장치.
12. The method of claim 11,
Wherein the step of deriving the first candidate motion vector set includes the step of including only one of the two candidate motion vectors derived from the motion vectors of the at least one neighboring block in the first candidate motion vector set, Including,
Wherein the step of deriving the second set of candidate motion vectors includes the step of including only one of the two candidate motion vectors derived from the motion vectors of the at least one neighboring block in the second candidate motion vector set Wherein the video decoding apparatus comprises:
제 11 항에 있어서,
상기 제1 후보 움직임벡터와 상기 제2 후보 움직임벡터는 상기 부호화 데이터에 포함된 정보에 근거하여 선택되는 것을 특징으로 하는 영상 복호화 장치.
12. The method of claim 11,
Wherein the first candidate motion vector and the second candidate motion vector are selected based on information included in the encoded data.
제 9 항에 있어서,
상기 복호화부는, 상기 부호화 데이터에 포함된 정보에 근거하여 상기 역양자화 및 역변환을 위한 하나 이상의 조건을 식별하는 것을 특징으로 하는 영상 복호화 장치.

10. The method of claim 9,
Wherein the decoding unit identifies one or more conditions for the inverse quantization and inverse transform based on information included in the encoded data.

KR1020150093515A 2015-06-30 2015-06-30 A Video Decoding Method and Apparatus Using Inter Prediction KR101601813B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150093515A KR101601813B1 (en) 2015-06-30 2015-06-30 A Video Decoding Method and Apparatus Using Inter Prediction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150093515A KR101601813B1 (en) 2015-06-30 2015-06-30 A Video Decoding Method and Apparatus Using Inter Prediction

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020140009246A Division KR101575635B1 (en) 2014-01-24 2014-01-24 Method and Apparatus for Encoding and Decoding Motion Vector in Plural Number of Reference Pictures and Video Encoding/Decoding Method and Apparatus Using Same

Publications (2)

Publication Number Publication Date
KR20150083826A KR20150083826A (en) 2015-07-20
KR101601813B1 true KR101601813B1 (en) 2016-03-11

Family

ID=53874043

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150093515A KR101601813B1 (en) 2015-06-30 2015-06-30 A Video Decoding Method and Apparatus Using Inter Prediction

Country Status (1)

Country Link
KR (1) KR101601813B1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017034113A1 (en) * 2015-08-24 2017-03-02 엘지전자(주) Inter prediction mode-based image processing method and apparatus therefor
KR20180064411A (en) * 2015-09-15 2018-06-14 디지털인사이트 주식회사 HDR quantization or masking method and apparatus
WO2017048008A1 (en) * 2015-09-17 2017-03-23 엘지전자 주식회사 Inter-prediction method and apparatus in video coding system
US10904526B2 (en) 2016-03-28 2021-01-26 Kt Corporation Method and apparatus for processing video signal
US10958931B2 (en) 2016-05-11 2021-03-23 Lg Electronics Inc. Inter prediction method and apparatus in video coding system
KR20200110235A (en) * 2019-03-13 2020-09-23 현대자동차주식회사 Method and apparatus for deriving delta motion vector

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008245330A (en) * 2002-07-18 2008-10-09 Lg Electronics Inc Method of determining motion vector

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008245330A (en) * 2002-07-18 2008-10-09 Lg Electronics Inc Method of determining motion vector

Also Published As

Publication number Publication date
KR20150083826A (en) 2015-07-20

Similar Documents

Publication Publication Date Title
KR101377527B1 (en) Method and Apparatus for Encoding and Decoding Motion Vector in Plural Number of Reference Pictures and Video Encoding/Decoding Method and Apparatus Using Same
KR101590511B1 (en) / / Motion Vector Coding Method and Apparatus
KR101441905B1 (en) Motion Vector Coding Method and Apparatus by Using Candidate Predicted Motion Vector Set Selection and Video Coding Method and Apparatus Using Same
KR101830352B1 (en) Method and Apparatus Video Encoding and Decoding using Skip Mode
KR101444675B1 (en) Method and Apparatus for Encoding and Decoding Video
KR101377660B1 (en) Motion Vector Encoding/Decoding Method and Apparatus Using Multiple Motion Vector Estimation and Video Encoding/Decoding Method and Apparatus Using Same
KR101601813B1 (en) A Video Decoding Method and Apparatus Using Inter Prediction
KR101418104B1 (en) Motion Vector Coding Method and Apparatus by Using Motion Vector Resolution Combination and Video Coding Method and Apparatus Using Same
KR101449683B1 (en) Motion Vector Coding Method and Apparatus by Using Motion Vector Resolution Restriction and Video Coding Method and Apparatus Using Same
KR101527148B1 (en) Inter Prediction Apparatus and Video Encoding/Decoding Apparatus and Method Using Same
KR101575635B1 (en) Method and Apparatus for Encoding and Decoding Motion Vector in Plural Number of Reference Pictures and Video Encoding/Decoding Method and Apparatus Using Same
KR101575605B1 (en) Method and Apparatus for Encoding and Decoding Motion Vector in Plural Number of Reference Pictures and Video Encoding/Decoding Method and Apparatus Using Same
KR101575616B1 (en) Method and Apparatus for Encoding and Decoding Motion Vector in Plural Number of Reference Pictures and Video Encoding/Decoding Method and Apparatus Using Same
KR101575645B1 (en) Method and Apparatus for Encoding and Decoding Motion Vector in Plural Number of Reference Pictures and Video Encoding/Decoding Method and Apparatus Using Same
KR101590493B1 (en) Method and Apparatus for Encoding and Decoding Video by Using Inter Prediction
KR101582493B1 (en) Motion Vector Coding Method and Apparatus
KR101582495B1 (en) Motion Vector Coding Method and Apparatus
KR101422058B1 (en) Motion Vector Coding Method and Apparatus
KR101693284B1 (en) Method and Apparatus for Encoding/Decoding of Video Data Using Global Motion-based Enconding Structure
KR101483174B1 (en) Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus
KR101673026B1 (en) Method and Apparatus for Coding Competition-based Interleaved Motion Vector and Method and Apparatus for Encoding/Decoding of Video Data Thereof
KR101582504B1 (en) Method and Apparatus for Encoding and Decoding Video by Using Inter Prediction
KR101575636B1 (en) Motion Vector Encoding/Decoding Method and Apparatus Using Multiple Motion Vector Estimation and Video Encoding/Decoding Method and Apparatus Using Same
KR101445835B1 (en) Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus

Legal Events

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

Payment date: 20190304

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191216

Year of fee payment: 5