KR101483174B1 - Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus - Google Patents

Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus Download PDF

Info

Publication number
KR101483174B1
KR101483174B1 KR20130088181A KR20130088181A KR101483174B1 KR 101483174 B1 KR101483174 B1 KR 101483174B1 KR 20130088181 A KR20130088181 A KR 20130088181A KR 20130088181 A KR20130088181 A KR 20130088181A KR 101483174 B1 KR101483174 B1 KR 101483174B1
Authority
KR
South Korea
Prior art keywords
motion vector
prediction candidate
block
current
vector prediction
Prior art date
Application number
KR20130088181A
Other languages
Korean (ko)
Other versions
KR20130098252A (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 KR20130088181A priority Critical patent/KR101483174B1/en
Publication of KR20130098252A publication Critical patent/KR20130098252A/en
Application granted granted Critical
Publication of KR101483174B1 publication Critical patent/KR101483174B1/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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters

Landscapes

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

Abstract

본 발명은 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치에 관한 것이다.
본 발명은 움직임 벡터를 부호화하는 장치에 있어서, 하나 이상의 움직임 벡터 예측 후보를 선택하는 예측 후보 선택기; 하나 이상의 움직임 벡터 예측 후보 중에서 예측 움직임 벡터를 결정하는 예측 움직임 벡터 결정기; 및 현재 움직임 벡터에서 결정된 예측 움직임 벡터를 감산하여 차분 벡터를 계산하고 부호화하는 차분 벡터 부호화기를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치를 제공한다.
본 발명에 의하면, 더욱 정확하게 예측된 예측 움직임 벡터를 이용하여 움직임 벡터를 부호화하면서도 예측 움직임 벡터에 대한 정보를 부호화하기 위한 비트량을 줄여 압축 효율을 향상시킬 수 있다.
The present invention relates to a motion vector coding method and apparatus, and a method and apparatus for image coding / decoding using the same.
An apparatus for encoding a motion vector, the apparatus comprising: a prediction candidate selector for selecting one or more motion vector prediction candidates; A predicted motion vector determiner for determining a predicted motion vector from one or more motion vector prediction candidates; And a difference vector encoder for calculating a difference vector by subtracting the predicted motion vector determined in the current motion vector and encoding the difference vector.
According to the present invention, it is possible to improve the compression efficiency by reducing the amount of bits for coding the information on the predictive motion vector while encoding the motion vector using the predicted motion vector more accurately.

Description

움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치{Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a motion vector coding method and apparatus, and a video coding / decoding method and apparatus using the same.

본 발명은 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치에 관한 것이다. 더욱 상세하게는, 현재 부호화를 수행할 블록 이전에 부호화되고 복호화되어 복원된 화소를 이용하여 인터 예측을 수행하고 인터 예측에 이용한 움직임 벡터를 효율적으로 부호화하거나 복호화하고 그를 이용하여 정지 영상 또는 동영상의 데이터를 부호화하거나 복호화하는 방법 및 장치에 관한 것이다.The present invention relates to a motion vector coding method and apparatus, and a method and apparatus for image coding / decoding using the same. In more detail, inter prediction is performed using pixels that are coded, decoded and reconstructed before a block to be currently encoded, motion vectors used for inter prediction are efficiently encoded or decoded, and the still image or moving picture data And more particularly, to a method and apparatus for encoding or decoding a video signal.

영상 신호를 효율적으로 압축하기 위한 방법으로서 정지화상으로는 JPEG, JPEG-2000, 동영상에서는 H.261, H.263, MPEG-2, MPEG-4 등이 있다. 또한, MPEG-2, MPEG-4 등의 기술을 계승하면서 더욱 향상된 압축 효율을 제공하는 MPEG-4 AVC(Advanced Video Coding)가 ISO(국제 표준화 기구)에 의해서 2003년에 표준 규격화되어 있다.JPEG, JPEG-2000, and H.261, H.263, MPEG-2, and MPEG-4 are examples of still image compression methods for efficiently compressing video signals. In addition, MPEG-4 Advanced Video Coding (AVC), which provides further improved compression efficiency while inheriting the technologies of MPEG-2 and MPEG-4, is standardized in 2003 by ISO (International Standardization Organization).

동영상에 대한 데이터의 부호화는 인트라 예측 부호화와 인터 예측 부호화로 성립되어 있다. 이러한 인트라 예측 부호화 또는 인터 예측 부호화는 데이터 간에 존재하는 상관도(Correlation)를 줄일 수 있는 효과적인 방법으로 다양한 데이터의 압축에 널리 사용된다. 특히, 인터 예측 부호화에서 현재 부호화하고자 하는 현재 블록의 움직임을 추정하여 결정되는 현재 블록의 움직임 벡터는 주변 블록의 움직임 벡터와 밀접한 상관 관계가 있기 때문에, 주변 블록의 움직임 벡터로부터 현재 블록의 움직임 벡터에 대한 예측값(PMV: Predicted Motion Vector, 이하 '예측 움직임 벡터'라 칭함)을 계산한 후 현재 블록의 움직임 벡터의 값 자체를 부호화하지 않고 예측값에 대한 차분값(DMV: Differential Motion Vector, 이하 '차분 벡터'라 칭함)만을 부호화함으로써 부호화해야 할 비트량을 상당히 줄일 수 있으며 그에 따라 부호화 효율을 높일 수 있다.The encoding of data for a moving picture is performed by intraprediction encoding and inter prediction encoding. Such intraprediction coding or inter prediction coding is an effective method for reducing correlation between data and is widely used for various data compression. In particular, since the motion vector of the current block, which is determined by estimating the motion of the current block to be coded in inter prediction coding, is closely correlated with the motion vector of the neighboring block, the motion vector of the current block A differential motion vector (DMV) (hereinafter referred to as 'differential vector') is calculated without calculating a motion vector value of the current block after calculating a predicted motion vector (PMV) Quot;), the amount of bits to be coded can be significantly reduced and the coding efficiency can be increased accordingly.

즉, MPEG-4 AVC와 같은 기존의 대부분의 영상 압축 표준들은 인터 예측 부호화를 수행하는 경우, 부호화기는 이전에 부호화되고 복호화되어 복원된 참조 프레임에서 현재 블록의 움직임을 추정하여 결정한 예측 움직임 벡터와 현재 움직임 벡터와의 차분값인 차분 벡터만을 부호화하여 전송한다. 복호화기도 미리 복호화된 주위의 블록의 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 예측하여 전송된 차분 벡터와 예측 움직임 벡터를 더하여 현재 움직임 벡터를 복원한다.In other words, when performing inter-prediction coding in most conventional image compression standards such as MPEG-4 AVC, the encoder calculates a predicted motion vector determined by estimating motion of a current block in a reference frame that has been previously encoded and decoded and restored, Only a differential vector which is a difference value from the motion vector is encoded and transmitted. The decoding unit estimates a motion vector of a current block using motion vectors of neighboring blocks decoded in advance, and adds the transmitted difference vector and the predicted motion vector to recover the current motion vector.

하지만, 전술한 바와 같은 기존의 영상 압축 표준들에 따라 움직임 벡터를 부호화하게 되면, 예측 움직임 벡터가 현재 움직임 벡터와 상관성이 없을 경우 차분 벡터가 커지므로, 발생하는 비트량이 증가하여 압축 효율을 저하할 뿐만 아니라, 차분 벡터를 줄이기 위해 부호화기에서 예측 움직임 벡터에 대한 정보를 추가로 부호화하는 경우에도, 추가 정보를 부호화하는 데에 따른 비트량이 증가하여 압축 효율을 저하하는 문제점이 있다.However, if a motion vector is coded according to the conventional image compression standards as described above, if the predicted motion vector is not correlated with the current motion vector, the difference vector becomes large. Therefore, In addition, even when information on a predictive motion vector is further encoded in an encoder to reduce a difference vector, there is a problem that an amount of bits for encoding the additional information increases and the compression efficiency is lowered.

전술한 문제점을 해결하기 위해 본 발명은, 더욱 정확하게 예측된 예측 움직임 벡터를 이용하여 움직임 벡터를 부호화하면서도 예측 움직임 벡터에 대한 정보를 부호화하기 위한 비트량을 줄여 압축 효율을 향상시키는 데 주된 목적이 있다.In order to solve the above-described problems, the present invention has a main purpose of improving a compression efficiency by reducing a bit amount for coding information on a predictive motion vector, while encoding a motion vector using a more precisely predicted motion vector .

전술한 목적을 달성하기 위해 본 발명은, 움직임 벡터를 부호화하는 장치에 있어서, 하나 이상의 움직임 벡터 예측 후보를 선택하는 예측 후보 선택기; 하나 이상의 움직임 벡터 예측 후보 중에서 예측 움직임 벡터를 결정하는 예측 움직임 벡터 결정기; 및 현재 움직임 벡터에서 결정된 예측 움직임 벡터를 감산하여 차분 벡터를 계산하고 부호화하는 차분 벡터 부호화기를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치를 제공한다.According to an aspect of the present invention, there is provided an apparatus for coding a motion vector, the apparatus comprising: a prediction candidate selector for selecting one or more motion vector prediction candidates; A predicted motion vector determiner for determining a predicted motion vector from one or more motion vector prediction candidates; And a difference vector encoder for calculating a difference vector by subtracting the predicted motion vector determined in the current motion vector and encoding the difference vector.

또한, 본 발명의 다른 목적에 의하면, 움직임 벡터를 부호화하는 방법에 있어서, 하나 이상의 움직임 벡터 예측 후보를 선택하는 예측 후보 선택 단계; 하나 이상의 움직임 벡터 예측 후보 중에서 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정하는 예측 움직임 벡터 결정 단계; 및 현재 움직임 벡터에서 결정된 예측 움직임 벡터를 감산하여 차분 벡터를 계산하고 부호화하는 차분 벡터 부호화 단계를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 방법을 제공한다.According to another aspect of the present invention, there is provided a method of coding a motion vector, comprising: a prediction candidate selection step of selecting at least one motion vector prediction candidate; A predicted motion vector determining step of determining one of the at least one motion vector prediction candidate as a predicted motion vector; And a differential vector coding step of calculating a difference vector by subtracting the predicted motion vector determined in the current motion vector and encoding the difference vector.

또한, 본 발명의 또 다른 목적에 의하면, 움직임 벡터를 복호화하는 장치에 있어서, 부호화된 차분 벡터를 복호화하여 차분 벡터를 복원하는 차분 벡터 복호화기; 및 하나 이상의 움직임 벡터 예측 후보 중 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정하고, 결정된 예측 움직임 벡터와 복원된 차분 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원하는 움직임 벡터 복원기를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 장치를 제공한다.According to another aspect of the present invention, there is provided an apparatus for decoding a motion vector, comprising: a differential vector decoder for decoding a coded differential vector to reconstruct a differential vector; And a motion vector reconstructor that determines one of the motion vector prediction candidates as a predicted motion vector and adds the determined predicted motion vector and the reconstructed difference vector to reconstruct the current motion vector of the current block And a motion vector decoding unit.

또한, 본 발명의 또 다른 목적에 의하면, 움직임 벡터를 복호화하는 방법에 있어서, 부호화된 차분 벡터를 복호화하여 차분 벡터를 복원하는 차분 벡터 복호화 단계; 및 하나 이상의 움직임 벡터 예측 후보 중 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정하고, 결정된 예측 움직임 벡터와 복원된 차분 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원하는 움직임 벡터 복원 단계를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 방법을 제공한다.According to another aspect of the present invention, there is provided a method of decoding a motion vector, comprising: a differential vector decoding step of decoding a coded differential vector to recover a difference vector; And a motion vector restoration step of restoring a current motion vector of the current block by determining one of the motion vector prediction candidates as a predicted motion vector and adding the determined predicted motion vector and the restored difference vector, The motion vector decoding method of the present invention is characterized by comprising:

또한, 본 발명의 또 다른 목적에 의하면, 영상을 부호화하는 장치에 있어서, 현재 블록의 현재 움직임 벡터를 결정하고 결정된 현재 움직임 벡터를 이용하여 예측 블록을 생성하는 예측기; 현재 블록과 예측 블록을 감산하여 잔차 블록을 생성하는 감산기; 잔차 블록을 변환하는 변환기; 변환된 잔차 블록을 양자화하는 양자화기; 및 양자화된 잔차 블록을 부호화하며, 하나 이상의 움직임 벡터 예측 후보 중에서 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정하고, 현재 움직임 벡터에서 결정된 예측 움직임 벡터를 감산한 차분 벡터를 부호화하며, 부호화된 잔차 블록 및 부호화된 차분 벡터를 포함하는 비트스트림을 생성하여 출력하는 부호화기를 포함하는 것을 특징으로 하는 영상 부호화 장치를 제공한다.According to another aspect of the present invention, there is provided an apparatus for encoding an image, the apparatus comprising: a predictor for determining a current motion vector of a current block and generating a predictive block using the determined current motion vector; A subtractor for generating a residual block by subtracting a current block from a prediction block; A transformer for transforming the residual block; A quantizer for quantizing the transformed residual block; And a quantized residual block, a motion vector prediction candidate for one or more motion vector prediction candidates is determined as a predicted motion vector, a difference vector obtained by subtracting a predicted motion vector determined from the current motion vector is encoded, And an encoder for generating and outputting a bitstream including a block and an encoded difference vector.

또한, 본 발명의 또 다른 목적에 의하면, 영상을 부호화하는 방법에 있어서, 현재 블록의 현재 움직임 벡터를 결정하고 결정된 현재 움직임 벡터를 이용하여 예측 블록을 생성하는 예측 단계; 현재 블록과 예측 블록을 감산하여 잔차 블록을 생성하는 감산기; 잔차 블록을 변환하는 변환 단계; 변환된 잔차 블록을 양자화하는 양자화 단계; 양자화된 잔차 블록을 부호화하는 잔차 블록 부호화 단계; 하나 이상의 움직임 벡터 예측 후보 중에서 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정하고, 현재 움직임 벡터에서 결정된 예측 움직임 벡터를 감산한 차분 벡터를 부호화하는 차분 벡터 부호화 단계; 및 부호화된 잔차 블록 및 부호화된 차분 벡터를 포함하는 비트스트림을 생성하여 출력하는 비트스트림 생성 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법을 제공한다.According to another aspect of the present invention, there is provided a method of coding an image, the method comprising: a prediction step of determining a current motion vector of a current block and generating a prediction block using the determined current motion vector; A subtractor for generating a residual block by subtracting a current block from a prediction block; A transforming step of transforming the residual block; A quantization step of quantizing the transformed residual block; A residual block coding step of coding a quantized residual block; A differential vector coding step of determining a motion vector prediction candidate among the at least one motion vector prediction candidate as a predicted motion vector and coding a difference vector obtained by subtracting a predicted motion vector determined from the current motion vector; And a bitstream generation step of generating and outputting a bitstream including an encoded residual block and an encoded difference vector.

또한, 본 발명의 또 다른 목적에 의하면, 영상을 복호화하는 장치에 있어서, 비트스트림으로부터 부호화된 잔차 블록과 부호화된 차분 벡터를 추출하고 복호화하여 잔차 블록 및 차분 벡터를 복원하며, 하나 이상의 움직임 벡터 예측 후보 중에서 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정하고 결정된 예측 움직임 벡터와 복원된 차분 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원하는 복호화기; 복원된 잔차 블록을 역 양자화하는 역 양자화기; 역 양자화된 잔차 블록을 역 변환하는 역 변환기; 복원된 현재 움직임 벡터를 이용하여 예측 블록을 생성하는 예측기; 및 역 변환된 잔차 블록과 생성된 예측 블록을 가산하여 현재 블록을 복원하는 가산기를 포함하는 것을 특징으로 하는 영상 복호화 장치를 제공한다.According to still another aspect of the present invention, there is provided an apparatus for decoding an image, comprising: a decoding unit for extracting and decoding a coded residual block and a coded residual block from a bitstream to recover a residual block and a difference vector, A decoder for determining one motion vector prediction candidate as a predicted motion vector among the candidates and adding the determined predicted motion vector and the reconstructed difference vector to reconstruct the current motion vector of the current block; An inverse quantizer for inversely quantizing the reconstructed residual block; An inverse transformer for inversely transforming the dequantized residual block; A predictor for generating a prediction block using the restored current motion vector; And an adder for adding the inverse transformed residual block and the generated prediction block to reconstruct a current block.

또한, 본 발명의 또 다른 목적에 의하면, 영상을 복호화하는 방법에 있어서, 비트스트림으로부터 부호화된 잔차 블록을 추출하고 복호화하여 잔차 블록을 복원하는 잔차 블록 복호화 단계; 비트스트림으로부터 부호화된 차분 벡터를 추출하고 복호화하여 차분 벡터를 복원하는 차분 벡터 복호화 단계; 하나 이상의 움직임 벡터 예측 후보 중에서 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로 선택하고 선택된 예측 움직임 벡터와 복원된 차분 벡터를 이용하여 현재 블록의 현재 움직임 벡터를 복원하는 움직임 벡터 복원 단계; 복원된 잔차 블록을 역 양자화하는 역 양자화 단계; 역 양자화된 잔차 블록을 역 변환하는 역 변환 단계; 복원된 현재 움직임 벡터를 이용하여 예측 블록을 생성하는 예측 단계; 및 역 변환된 잔차 블록과 생성된 예측 블록을 가산하여 현재 블록을 복원하는 가산 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법을 제공한다.According to another aspect of the present invention, there is provided a method of decoding an image, the method comprising: a residual block decoding step of extracting and decoding a coded residual block from a bitstream to restore a residual block; A difference vector decoding step of extracting and decoding a coded difference vector from a bit stream to recover a difference vector; A motion vector restoring step of restoring a current motion vector of a current block by selecting one of the at least one motion vector prediction candidate as a predicted motion vector and using a selected predictive motion vector and a reconstructed difference vector; An inverse quantization step of inversely quantizing the reconstructed residual block; An inverse transform step of inversely transforming the dequantized residual block; A prediction step of generating a prediction block using the restored current motion vector; And adding the inverse transformed residual block and the generated prediction block to reconstruct a current block.

이상에서 설명한 바와 같이 본 발명에 의하면, 더욱 정확하게 예측된 예측 움직임 벡터를 이용하여 움직임 벡터를 부호화하면서도 예측 움직임 벡터에 대한 정보를 부호화하기 위한 비트량을 줄여 압축 효율을 향상시킬 수 있다.As described above, according to the present invention, it is possible to improve the compression efficiency by reducing the amount of bits for coding the information on the predictive motion vector, while encoding the motion vector using the predicted motion vector more accurately.

도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도,
도 2는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치를 간략하게 나타낸 블록 구성도,
도 3은 지그재그 스캔 방향을 나타낸 예시도,
도 4는 현재 블록의 주변 블록을 나타낸 예시도,
도 5는 현재 프레임의 현재 블록과 주변 블록을 나타낸 예시도,
도 6은 현재 프레임과 참조 프레임의 블록들을 예시적으로 나타낸 예시도,
도 7은 지시 벡터를 설명하기 위한 예시도,
도 8은 임계값을 계산하는 과정을 설명하기 위한 예시도,
도 9는 움직임 벡터 예측 후보와 현재 움직임 벡터를 각 컴포넌트별로 분리하여 나타낸 예시도,
도 10은 복수 개의 임계값에 따른 예측 후보 식별 플래그를 나타낸 예시도,
도 11은 예측 후보 식별 플래그의 전송 비트를 나타낸 예시도,
도 12는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법을 설명하기 위한 순서도,
도 13은 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도,
도 14는 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도,
도 15는 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치를 간략하게 나타낸 블록 구성도,
도 16은 본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법을 설명하기 위한 순서도,
도 17은 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
1 is a block diagram schematically illustrating an image encoding apparatus according to an embodiment of the present invention.
2 is a block diagram schematically showing a motion vector coding apparatus according to an embodiment of the present invention.
3 is an exemplary view showing a zigzag scanning direction,
FIG. 4 is an exemplary view showing neighboring blocks of a current block,
5 is an exemplary view showing a current block and a neighboring block of a current frame,
6 is an exemplary diagram illustrating exemplary blocks of a current frame and a reference frame,
7 is an exemplary diagram for explaining an instruction vector,
8 is an exemplary diagram for explaining a process of calculating a threshold value,
FIG. 9 is a diagram illustrating a motion vector prediction candidate and a current motion vector separately for each component,
10 is an exemplary view showing a prediction candidate identification flag according to a plurality of threshold values,
11 is an exemplary view showing transmission bits of a prediction candidate identification flag,
12 is a flowchart for explaining a motion vector coding method according to an embodiment of the present invention;
13 is a flowchart illustrating an image encoding method according to an embodiment of the present invention.
FIG. 14 is a block diagram schematically showing an image decoding apparatus according to an embodiment of the present invention;
15 is a block diagram schematically illustrating a motion vector decoding apparatus according to an embodiment of the present invention.
16 is a flowchart for explaining a motion vector decoding method according to an embodiment of the present invention,
17 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 even though 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은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.1 is a block diagram schematically illustrating an image encoding apparatus according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 예측기(110), 감산기(120), 변환기(130), 양자화기(140), 부호화기(150), 역 양자화기(160), 역 변환기(170), 가산기(180) 및 메모리(190)를 포함하여 구성될 수 있다. 여기서, 역 양자화기(160), 역 변환기(170), 가산기(180) 및 메모리(190)는 영상 부호화 장치(100)에 선택적으로 포함될 수 있다. 이러한 영상 부호화 장치(100)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.An image encoding apparatus 100 according to an embodiment of the present invention includes a predictor 110, a subtracter 120, a transformer 130, a quantizer 140, an encoder 150, an inverse quantizer 160, An adder 170, an adder 180, and a memory 190. Here, the dequantizer 160, the inverse transformer 170, the adder 180, and the memory 190 may be selectively included in the image encoding apparatus 100. The image encoding apparatus 100 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.

예측기(110)는 현재 블록의 움직임 벡터인 현재 움직임 벡터를 결정하고 결정된 현재 움직임 벡터를 이용하여 예측 블록을 생성한다. 즉, 예측기(110)는 영상에서 부호화하고자 하는 현재 블록의 각 화소의 화소값(Pixel Value)을 현재 움직임 벡터를 이용하여 예측하여 예측된 각 화소의 예측 화소값(Predicted Pixel Value)을 갖는 예측 블록(Predicted Block)을 생성한다. 예측기(110)는 율-왜곡 최적화(RDO: Rate-Distortion Optimization) 등 다양한 기법을 이용하여 현재 움직임 벡터를 결정할 수 있는데, 결정된 현재 움직임 벡터는 최적의 움직임 벡터가 될 수 있다.The predictor 110 determines a current motion vector, which is a motion vector of the current block, and generates a prediction block using the determined current motion vector. That is, the predictor 110 predicts the pixel value of each pixel of the current block to be encoded in the image using the current motion vector, and outputs the predicted pixel value of the predicted pixel value (Predicted Block). The predictor 110 may determine the current motion vector using various techniques such as Rate-Distortion Optimization (RDO), and the determined current motion vector may be an optimal motion vector.

감산기(120)는 현재 블록과 예측 블록을 감산하여 잔차 블록을 생성한다. 즉, 감산기(120)는 부호화하고자 하는 현재 블록의 각 화소의 화소값과 예측기(110)에서 예측한 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔차 신호(Residual Signal)를 갖는 잔차 블록을 생성한다.The subtracter 120 subtracts the current block and the prediction block to generate a residual block. That is, the subtractor 120 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 110, and outputs a residual signal (residual signal) Thereby generating a residual block.

변환기(130)는 잔차 블록을 변환한다. 즉, 변환기(130)는 감산기(120)로부터 출력되는 잔차 블록의 잔차 신호를 주파수 영역으로 변환하여 잔차 블록의 각 화소값을 주파수 계수로 변환한다. 여기서, 변환기(130)는 하다마드 변환(Hadamard Transform), 이산 코사인 변환 기반 변환(DCT based Transform: Discrete Cosine Transform Based Transform) 등과 같은 공간축의 화상 신호를 주파수축으로 변환하는 다양한 변환 기법을 이용하여 잔차 신호를 주파수 영역으로 변환할 수 있는데, 주파수 영역으로 변환된 잔차 신호가 주파수 계수가 된다.The transformer 130 transforms the residual block. That is, the converter 130 converts the residual signal of the residual block output from the subtracter 120 into the frequency domain, and converts each pixel value of the residual block into a frequency coefficient. Here, the transformer 130 transforms image signals on the spatial axis, such as Hadamard Transform and DCT-based Transform (DCT based Transform) The signal can be transformed into the frequency domain, and the residual signal transformed into the frequency domain becomes the frequency coefficient.

양자화기(140)는 변환된 잔차 블록을 양자화한다. 즉, 양자화기(140)는 변환기(130)로부터 출력되는 잔차 블록의 주파수 계수를 양자화(Quantization)하여 양자화 주파수 계수를 갖는 잔차 블록을 출력한다. 여기서, 양자화기(140)는 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization, 이하 'DZUTQ'라 칭함), 양자화 가중치 매트릭스(Quantization Weighted Matrix) 또는 이를 개량한 양자화 기법 등을 사용하여 양자화할 수 있다.The quantizer 140 quantizes the transformed residual block. That is, the quantizer 140 quantizes the frequency coefficient of the residual block output from the transformer 130, and outputs a residual block having a quantized frequency coefficient. Here, the quantizer 140 may quantize quantization using Dead Zone Uniform Threshold Quantization (DZUTQ), a Quantization Weighted Matrix, or an improved quantization technique .

한편, 이상에서는 본 발명의 일 실시예에 따른 영상 부호화 장치(100)가 변환기(130) 및 양자화기(140)를 포함하는 것을 도시하고 설명했지만, 변환기(130) 및 양자화기(140)는 선택적으로 포함될 수 있을 것이다. 즉, 본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 잔차 블록의 잔차 신호를 변환하여 주파수 계수를 갖는 잔차 블록을 생성하고 양자화 과정을 수행하지 않을 수 있으며, 잔차 블록의 잔차 신호를 주파수 계수로 변환하지 않고 양자화 과정만을 수행할 수 있을 뿐만 아니라, 심지어는 변환과 양자화 과정을 모두 수행하지 않을 수 있다.Although the image encoding apparatus 100 according to an embodiment of the present invention includes the converter 130 and the quantizer 140 as described above, the converter 130 and the quantizer 140 may be optional . That is, the image encoding apparatus 100 according to an embodiment of the present invention may convert the residual signal of the residual block to generate the residual block having the frequency coefficient and not perform the quantization process, Not only the quantization process but also the conversion and the quantization process can be performed.

부호화기(150)는 양자화된 잔차 블록을 부호화하며, 하나 이상의 움직임 벡터 예측 후보(Motion Vector Prediction Candidate) 중에서 예측 움직임 벡터(Predicted Motion Vector)를 결정하고, 현재 움직임 벡터에서 예측 움직임 벡터를 감산한 차분 벡터(Differential Motion Vector)를 부호화하며, 부호화된 잔차 블록 및 부호화된 차분 벡터를 포함하는 비트스트림을 생성하여 출력한다. 즉, 부호화기(150)는 양자화기(140)로부터 출력되는 잔차 블록의 양자화 주파수 계수를 도 3에서 예시적으로 나타낸 지그재그 스캔과 같은 다양한 스캔 방식에 따라 스캔하여 양자화 주파수 계수열을 생성하고 엔트로피 부호화(Entropy Coding) 기법 등 다양한 부호화 기법을 이용하여 부호화한다.The encoder 150 encodes the quantized residual block, determines a predictive motion vector from one or more motion vector prediction candidates, subtracts the predicted motion vector from the current motion vector, (Differential Motion Vector), and generates and outputs a bitstream including the coded residual block and the coded difference vector. That is, the encoder 150 scans the quantization frequency coefficients of the residual block output from the quantizer 140 according to various scan methods, such as zigzag scan, as illustrated in FIG. 3 to generate a quantized frequency coefficient sequence and perform entropy encoding Entropy coding) technique.

또한, 부호화기(150)는 현재 움직임 벡터를 부호화하는데, 하나 이상의 움직임 벡터 예측 후보를 선택하고 선택된 하나 이상의 움직임 벡터 예측 후보 중에서 예측 움직임 벡터를 결정한다. 이를 위해, 부호화기(150)는 현재 블록의 주변 블록의 움직임 벡터, 참조 프레임에서 현재 블록의 위치와 동일한 위치에 있는 Col(Colocated Block) 블록의 움직임 벡터, Col 블록의 주변 블록의 움직임 벡터 및 현재 블록에서 참조 프레임의 특정 블록을 지시하는 지시 벡터 중 하나 이상을 하나 이상의 움직임 벡터 예측 후보로서 선택할 수 있다. 여기서, 특정 블록은 지시 벡터와 수평이거나 지시 벡터와의 차이가 기 설정된 임계값보다 작은 움직임 벡터를 갖는 블록일 수 있다.In addition, the encoder 150 encodes the current motion vector, selects one or more motion vector prediction candidates, and determines a predicted motion vector from the selected one or more motion vector prediction candidates. For this purpose, the encoder 150 generates a motion vector of a current block, a motion vector of a Col (Colocated Block) block located at the same position as the current block in the reference frame, a motion vector of a neighboring block of the Col block, One or more of the indicator vectors indicating a specific block of the reference frame may be selected as one or more motion vector prediction candidates. Here, the specific block may be a block having a motion vector which is horizontal to the indicating vector or whose difference between the indicating vector is smaller than a preset threshold value.

예를 들어, 부호화기(150)는 하나 이상의 움직임 벡터 예측 후보 중 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정할 때, 도 4에 예시적으로 나타낸 바와 같이, 중간값을 이용하여 예측 움직임 벡터를 결정할 수 있다. 도 4를 참조하면, 현재 블록이 X이고, 현재 블록의 좌측 블록이 A이고, 현재 블록의 상단 블록이 B, 현재 블록의 상단 우측 블록이 C라고 가정하고, 좌측 블록 A의 움직임 벡터가 MV_A이고, 상단 블록 B의 움직임 벡터가 MV_B이고, 상단 우측 블록 C의 움직임 벡터가 MV_C라고 가정한 경우, 현재 블록 A의 예측 움직임 벡터는, 수학식 1과 같이, 중간값을 이용하여 계산될 수 있다.For example, when determining one of the motion vector prediction candidates as a predicted motion vector, the encoder 150 determines a predicted motion vector using an intermediate value, as exemplarily shown in FIG. 4 . 4, it is assumed that the current block is X, the left block of the current block is A, the upper block of the current block is B, and the upper right block of the current block is C, and the motion vector of the left block A is MV_A , The motion vector of the uppermost block B is MV_B, and the motion vector of the upper right block C is MV_C, the predicted motion vector of the current block A can be calculated using an intermediate value as shown in Equation (1).

Figure 112013067494154-pat00001
Figure 112013067494154-pat00001

부호화기(150)는 중간값을 이용하여 하나 이상의 움직임 벡터 예측 후보 중에서 예측 움직임 벡터를 결정할 수 있지만, 반드시 중간값을 이용해야 하는 것은 아니며, 다른 다양한 방법을 이용하여 예측 움직임 벡터를 결정할 수 있다. 이에 대해서는 후술하는 과정에서 도 2를 통해, 상세히 설명한다.The encoder 150 can determine a predicted motion vector from one or more motion vector prediction candidates using an intermediate value. However, the intermediate value is not necessarily used, and the predicted motion vector can be determined using various other methods. This will be described in detail with reference to FIG. 2 in the following process.

또한, 부호화기(150)는 예측 움직임 벡터로서 결정된 움직임 벡터 예측 후보를 식별하는 예측 후보 식별 플래그를 생성하고 부호화하여 비트스트림에 추가로 포함시킬 수 있다. 즉, 비트스트림은 부호화된 잔차 블록과 부호화된 차분 벡터뿐만 아니라 부호화된 예측 후보 식별 플래그를 포함할 수 있다.Also, the encoder 150 may generate and encode a prediction candidate identification flag that identifies a motion vector prediction candidate determined as a predicted motion vector, and may further include the prediction candidate identification flag in the bitstream. That is, the bitstream may include an encoded residual block and an encoded difference vector as well as an encoded prediction candidate identification flag.

또한, 부호화기(150)는 예측 움직임 벡터의 x-컴포넌트와 y-컴포넌트 각각을 독립적으로 결정할 수 있다. 즉, 부호화기(150)는 하나 이상의 움직임 벡터 예측 후보의 x-컴포넌트 중에서 하나의 움직임 벡터 예측 후보의 x-컴포넌트를 예측 움직임 벡터의 x-컴포넌트로서 결정하고, 하나 이상의 움직임 벡터 예측 후보의 y-컴포넌트 중에서 하나의 움직임 벡터 예측 후보의 y-컴포넌트를 예측 움직임 벡터의 y-컴포넌트로서 결정할 수 있다.In addition, the encoder 150 can independently determine each of the x-component and the y-component of the predicted motion vector. That is, the encoder 150 determines the x-component of one motion vector prediction candidate among the x-components of one or more motion vector prediction candidates as the x-component of the predicted motion vector, The y-component of one of the motion vector prediction candidates may be determined as the y-component of the predicted motion vector.

또한, 부호화기(150)는 차분 벡터의 x-컴포넌트의 절대값 및 차분 벡터의 y-컴포넌트의 절대값 중 하나 이상이 각각 기 설정된 x-컴포넌트 임계값 및 기 설정된 y-컴포넌트 임계값 중 하나 이상보다 작거나 같은 경우, 예측 움직임 벡터의 x-컴포넌트 및 예측 움직임 벡터의 y-컴포넌트 중 하나 이상으로 결정된 움직임 벡터 예측 후보를 식별하는 예측 후보 식별 플래그를 생성하고 부호화하여 비트스트림에 추가로 포함시킬 수 있다. 부호화기(150)에 대해서는 후술하는 과정에서 도 2를 통해 상세히 설명한다.Also, the encoder 150 may determine that at least one of the absolute value of the x-component of the difference vector and the absolute value of the y-component of the difference vector is greater than or equal to one or more of the predetermined x- Component of the predicted motion vector and the y-component of the predicted motion vector, and generates a prediction candidate identification flag for identifying a motion vector prediction candidate determined as at least one of the x-component of the predicted motion vector and the y-component of the predicted motion vector, . The encoder 150 will be described later in detail with reference to FIG.

역 양자화기(160)는 양자화기(140)에 의해 양자화된 잔차 블록을 역 양자화(Inverse Quantization)한다. 역 변환기(170)는 역 양자화기(160)에 의해 역 양자화된 잔차 블록을 역 변환(Inverse Transform)한다. 여기서, 역 양자화기(160)와 역 변환기(170)는 양자화기(140)와 변환기(130)에서 사용한 양자화 방식과 변환 방식을 역으로 사용하여 역 양자화 및 역 변환할 수 있다. 또한, 변환기(130)와 역 양자화기(140)에서 양자화만을 수행하고 변환을 수행하지 않은 경우에는 역 양자화만을 수행하고 역 변환을 수행하지 않을 수 있다. 만약, 변환 및 양자화를 모두 수행하지 않은 경우, 역 양자화기(160)와 역 변환기(170)도 역 변환 및 역 양자화를 모두 수행하지 않거나 영상 부호화 장치(100)에 포함되지 않고 생략될 수 있다.The inverse quantizer 160 inverse quantizes the residual block quantized by the quantizer 140. The inverse transformer 170 performs an inverse transform on the inversely quantized residual block by the inverse quantizer 160. Here, the inverse quantizer 160 and the inverse transformer 170 can perform inverse quantization and inverse transform using the quantization method and the transformation method used in the quantizer 140 and the transformer 130 inversely. In addition, when the transformer 130 and the inverse quantizer 140 perform only quantization and do not perform the transform, only the inverse quantization is performed, and the inverse transform is not performed. If both the transform and the quantization are not performed, the inverse quantizer 160 and the inverse transformer 170 may neither perform inverse transform nor dequantization nor be included in the image encoding apparatus 100 and may be omitted.

가산기(180)는 예측기(110)에서 예측된 예측 블록과 역 변환기(170)에 의해 복원된 잔차 블록을 가산하여 현재 블록을 복원한다. 메모리(190)는 가산기(180)로부터 출력되는 복원된 현재 블록을 프레임 단위로 참조 프레임으로서 저장하여 예측기(110)가 현재 블록의 다음 블록이나 향후 다른 블록을 부호화할 때 참조 프레임으로서 사용할 수 있도록 한다.The adder 180 adds the prediction block predicted by the predictor 110 and the residual block reconstructed by the inverse transformer 170 to reconstruct the current block. The memory 190 stores the reconstructed current block output from the adder 180 as a reference frame on a frame-by-frame basis so that the predictor 110 can use the restored current block as a reference frame when coding the next block or another block in the current block .

도 1에서는 도시하지 않았지만, 전술한 본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 H.264/AVC 표준에 기초하여, 인트라 예측(Intra Prediction)을 위한 인트라 예측기, 복원된 현재 블록을 디블로킹 필터링(Deblocking Filtering)하는 디블록킹 필터기 등을 추가로 포함할 수 있다. 여기서, 디블로킹 필터링이란 영상을 블록 단위로 부호화하면서 발생하는 블록 왜곡을 감소시키는 작업을 말하며, 블록 경계와 매크로블록 경계에 디블로킹 필터를 적용하거나 매크로블록 경계에만 디블로킹 필터를 적용하거나 디블로킹 필터를 사용하지 않는 방법 중 하나를 선택적으로 사용할 수 있다.Although not shown in FIG. 1, the image encoding apparatus 100 according to an embodiment of the present invention described above may be configured to perform intra prediction for intra prediction, based on the H.264 / AVC standard, A deblocking filter for deblocking filtering, and the like. 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.

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

본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치는 도 1을 통해 전술한 본 발명의 일 실시예에 따른 영상 부호화 장치(100)의 부호화기(150)로 구현될 수 있다. 이하에서는 설명의 편의를 위해, 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치를 부호화기(150)라 칭한다. 또한, 본 발명의 일 실시예에 따른 부호화기(150)는 도 1을 통해 전술한 바와 같이, 양자화된 잔차 블록을 부호화하여 부호화된 잔차 블록을 출력하는 영상 부호화기를 추가로 포함할 수 있지만, 이러한 영상 부호화기는 당업자에게 자명하므로 상세한 설명은 생략한다.The motion vector coding apparatus according to an embodiment of the present invention can be implemented by the encoder 150 of the image coding apparatus 100 according to an embodiment of the present invention described above with reference to FIG. Hereinafter, a motion vector coding apparatus according to an embodiment of the present invention will be referred to as an encoder 150 for convenience of explanation. The encoder 150 according to the embodiment of the present invention may further include an image encoder for encoding the quantized residual block and outputting the encoded residual block as described above with reference to FIG. The encoder will be apparent to those skilled in the art, and a detailed description thereof will be omitted.

본 발명의 일 실시예에 따른 부호화기(150)는 예측 후보 선택기(210), 예측 움직임 벡터 결정기(220), 차분 벡터 부호화기(230), 예측 후보 식별 플래그 부호화기(240) 및 예측 후보 선택 플래그 부호화기(250)를 포함하여 구성될 수 있다. 여기서, 부호화기(150)는 예측 후보 식별 플래그 부호화기(240) 및 예측 후보 선택 플래그 부호화기(250) 중 하나 이상을 반드시 포함하지 않고 선택적으로 포함할 수 있다.The encoder 150 according to an exemplary embodiment of the present invention includes a prediction candidate selector 210, a predictive motion vector determiner 220, a differential vector encoder 230, a prediction candidate identification flag encoder 240 and a prediction candidate selection flag encoder 250). Here, the encoder 150 does not necessarily include at least one of the prediction candidate identification flag encoder 240 and the prediction candidate selection flag encoder 250, but may selectively include the encoder.

예측 후보 선택기(210)는 하나 이상의 움직임 벡터 예측 후보를 선택한다. 예측 움직임 벡터 결정기(220)는 하나 이상의 움직임 벡터 예측 후보 중에서 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정한다. 차분 벡터 부호화기(230)는 현재 움직임 벡터에서 예측 움직임 벡터를 감산하여 차분 벡터를 계산하고 부호화한다. 예측 후보 식별 플래그 부호화기(240)는 예측 움직임 벡터로서 결정된 움직임 벡터 예측 후보를 식별하는 예측 후보 식별 플래그를 생성하고 부호화한다. 예측 후보 선택 플래그 부호화기(250)는 영상의 임의의 영역(예를 들면 H.264에서 슬라이스(Slice))마다 예측 후보 선택기(210)에 의해 어떠한 움직임 벡터 예측 후보가 선택되었는지를 식별하기 위한 예측 후보 선택 플래그를 생성하고 부호화한다.The prediction candidate selector 210 selects one or more motion vector prediction candidates. The predictive motion vector determiner 220 determines one of the one or more motion vector prediction candidates as a predictive motion vector. The difference vector encoder 230 subtracts the predicted motion vector from the current motion vector to calculate and encode the difference vector. The prediction candidate identification flag encoder 240 generates and encodes a prediction candidate identification flag for identifying a motion vector prediction candidate determined as a predictive motion vector. The prediction candidate selection flag encoder 250 generates prediction candidates for identifying which motion vector prediction candidates are selected by the prediction candidate selector 210 for each region (e.g., a slice in H.264) of an image Generates and encodes a selection flag.

차분 벡터는 수학식 2와 같이 계산될 수 있다. 수학식 2에서 MVd는 차분 벡터를 나타내고, MV는 현재 움직임 벡터를 나타내며, MVp_opt는 예측 움직임 벡터를 나타낸다.The difference vector can be calculated as shown in Equation (2). In Equation (2), MVd denotes a difference vector, MV denotes a current motion vector, and MVp_opt denotes a predicted motion vector.

Figure 112013067494154-pat00002
Figure 112013067494154-pat00002

차분 벡터 부호화기(230)에서 부호화된 차분 벡터와 전술한 영상 부호화기에서 출력되는 부호화된 잔차 블록은 비트스트림에 포함되어 영상 복호화 장치로 전송될 수 있다. 또한, 비트스트림에는 예측 후보 선택 플래그 부호화기(250)에서 부호화된 예측 후보 선택 플래그와 예측 후보 식별 플래그 부호화기(240)에서 부호화된 예측 후보 식별 플래그 중 하나 이상이 추가로 포함될 수 있다.The differential vector coded by the difference vector encoder 230 and the coded residual block output from the image encoder may be included in the bitstream and transmitted to the image decoding apparatus. The bitstream may further include at least one of a prediction candidate selection flag encoded by the prediction candidate selection flag encoder 250 and a prediction candidate identification flag encoded by the prediction candidate identification flag encoder 240. [

여기서, 예측 후보 선택기(210)는 현재 블록의 주변 블록의 움직임 벡터를 하나 이상의 움직임 벡터 예측 후보로서 선택할 수도 있다. 즉, 현재 프레임의 현재 블록과 주변 블록을 예시적으로 나타낸 도 5를 참조하면, 하나 이상의 움직임 벡터 예측 후보는 현재 부호화하고자 하는 현재 블록 X가 위치한 현재 프레임에서, 현재 블록 X의 주변에 위치한 주변 블록 L, UL, U, UR의 움직임 벡터들이 될 수 있다. 도 5에서는 현재 블록의 좌측 블록 L, 상단 좌측 블록 UL, 상단 블록 U 및 상단 우측 블록 UR만을 주변 블록으로 도시하였지만, 움직임 벡터 예측 후보는 현재 블록과 인접한 다른 블록뿐만 아니라 인접하지 않은 다른 블록들의 움직임 벡터들이 될 수 있다.Here, the prediction candidate selector 210 may select a motion vector of a neighboring block of the current block as one or more motion vector prediction candidates. 5, the one or more motion vector prediction candidates may include a neighboring block located near the current block X in the current frame in which the current block X to be currently coded is located, L, UL, U, and UR motion vectors. 5, only the left block L, the upper left block UL, the upper block U, and the upper right block UR of the current block are shown as neighboring blocks. However, the motion vector prediction candidate includes not only neighboring blocks other than the current block, Vectors.

또한, 예측 후보 선택기(210)는 참조 프레임에서 현재 블록의 위치와 동일한 위치에 있는 Col 블록의 움직임 벡터와 Col 블록의 주변 블록의 움직임 벡터 중 하나 이상을 하나 이상의 움직임 벡터 예측 후보로서 선택할 수도 있다. 즉, 현재 프레임과 참조 프레임의 블록들을 예시적으로 나타낸 도 6을 참조하면, 하나 이상의 움직임 벡터 예측 후보는 참조 프레임 frame t-1에서 현재 블록 X와 동일한 위치에 있는 블록인 Col 블록과 Col 블록의 주변 블록(ULCol, UCol, URCol, LCol, RCol, BLCol, BCol, BRCol)의 움직임 벡터들이 될 수 있다. 도 6에서는 Col 블록과 Col 블록의 주변 블록(ULCol, UCol, URCol, LCol, RCol, BLCol, BCol, BRCol)만을 도시하였지만, 이뿐만 아니라 움직임 벡터 예측 후보는 Col 블록과 인접한 다른 블록은 물론, 인접하지 않은 다른 블록들의 움직임 벡터들이 될 수 있다.Also, the prediction candidate selector 210 may select one or more of a motion vector of a Col block and a motion vector of a neighboring block of the Col block that are located at the same position as the current block in the reference frame, as one or more motion vector prediction candidates. 6, the one or more motion vector prediction candidates are classified into a Col block and a Col block, which are blocks located at the same position as the current block X in the reference frame frame t-1, they may be a motion vector of a neighboring block (UL Col, Col U, UR Col, Col L, Col R, BL Col, Col B, BR Col). 6, only neighboring blocks ( Col , Ucol , URcol , Lcol , Rcol , BLcol , Bcol , and BRcol ) of the Col block and the Col block are shown. May be motion vectors of other blocks not adjacent to each other, as well as adjacent blocks.

또한, 예측 후보 선택기(210)는 현재 프레임의 현재 블록에서 참조 프레임의 특정 블록을 지시하는 지시 벡터를 하나 이상의 움직임 벡터 예측 후보로서 선택할 수 있다. 즉, 지시 벡터를 설명하기 위해 예시적으로 나타낸 도 7을 참조하면, 현재 프레임 frame t에 위치한 현재 블록 X에서 제 1 참조 프레임 frame t-1에 위치한 어떠한 블록 Par를 지시하는 벡터와 제 1 참조 프레임 frame t-1에 위치한 어떠한 블록 Par의 움직임 벡터가 서로 수평이거나 차이가 기 설정된 임계값보다 작은 경우, 현재 프레임 frame t의 현재 블록 X에서 참조 영상 frame t-1의 어떠한 블록 Par를 지시하는 벡터가 움직임 벡터 예측 후보로서 선택될 수 있다. 여기서, 현재 프레임 frame t의 현재 블록 X의 위치에서 참조 영상 frame t-1의 어떠한 블록 Par를 지시하는 벡터가 지시 벡터이다. 따라서, 전술한 특정 블록은 지시 벡터와 수평이거나 지시 벡터와의 차이가 기 설정된 임계값보다 작은 움직임 벡터를 갖는 블록일 수 있다.In addition, the prediction candidate selector 210 may select, as one or more motion vector prediction candidates, an indicator vector indicating a specific block of the reference frame in the current block of the current frame. That is, referring to FIG. 7 exemplarily illustrated for explaining the instruction vector, a vector indicating a block Par located in the first reference frame frame t-1 in the current block X located in the current frame frame t, If the motion vector of any block Par located at frame t-1 is horizontal or smaller than the predetermined threshold, a vector indicating any block Par of reference frame frame t-1 in current block X of current frame frame t And can be selected as a motion vector prediction candidate. Here, the vector indicating any block Par of the reference picture frame t-1 at the position of the current block X of the current frame f is an indicator vector. Therefore, the above-described specific block may be a block having a motion vector whose horizontal direction is different from the indicator vector or whose difference from the indicator vector is smaller than a predetermined threshold value.

예측 후보 선택기(210)가 하나 이상의 움직임 벡터를 선택한 경우, 예측 후보 선택 플래그 부호화기(250)는 예측 후보 선택기(210)에 의해 선택된 움직임 벡터 예측 후보를 식별하기 위한 예측 후보 선택 플래그를 생성하여 부호화할 수 있으며, 부호화된 예측 후보 선택 플래그는 비트스트림의 헤더에 삽입될 수 있다.When the prediction candidate selector 210 selects one or more motion vectors, the prediction candidate selection flag encoder 250 generates and codes a prediction candidate selection flag for identifying the motion vector prediction candidate selected by the prediction candidate selector 210 And the encoded prediction candidate selection flag can be inserted into the header of the bitstream.

다른 예로서, 예측 후보 선택기(210)는 하나 이상의 움직임 벡터 예측 후보 중에서 일부의 움직임 벡터 예측 후보를 선택할 수 있다. 즉, 예측 후보 선택기(210)는 영상의 특성에 따라 하나 이상의 움직임 벡터 예측 후보 중에서 소정의 기준에 따라 몇 개를 선택하여 선택된 움직임 벡터 예측 후보 중에서만 예측 움직임 벡터를 결정할 수 있다. 이 경우, 예측 후보 선택 플래그 부호화기(250)는 하나 이상의 움직임 벡터 예측 후보 중에서 어떠한 움직임 벡터 예측 후보가 일부의 움직임 벡터 예측 후보로서 선택되었는지를 식별하기 위해, 예측 후보 선택기(210)에 의해 선택된 일부의 움직임 벡터 예측 후보를 식별하는 예측 후보 선택 플래그를 생성하여 부호화할 수 있다.As another example, the prediction candidate selector 210 may select some motion vector prediction candidates from one or more motion vector prediction candidates. That is, the prediction candidate selector 210 may select a number of motion vector prediction candidates from among one or more motion vector prediction candidates according to the characteristics of the image, and determine a prediction motion vector only among the selected motion vector prediction candidates. In this case, the predictive candidate selection flag encoder 250 selects one of the motion vector prediction candidates selected by the prediction candidate selector 210 to identify which of the motion vector prediction candidates has been selected as a part of the motion vector prediction candidates A prediction candidate selection flag for identifying a motion vector prediction candidate can be generated and encoded.

여기서, 소정의 기준이란 하나 이상의 움직임 벡터 예측 후보 각각이 현재 움직임 벡터로서 결정될 수 있는 확률이 될 수도 있는데, 이러한 확률을 이용하는 경우, 예측 후보 선택기(210)는 하나 이상의 움직임 벡터 예측 후보 각각을 이용하여 현재 프레임의 하나 이상의 영역을 부호화함으로써, 하나 이상의 움직임 벡터 예측 후보 각각에 대해 현재 움직임 벡터로서 결정되는 확률을 계산하고, 계산된 확률에 따라 일부의 움직임 벡터 예측 후보를 선택할 수 있다. 예를 들어, 하나 이상의 움직임 벡터 예측 후보가 총 A, B, C, D, E 5개라고 가정할 때, 5개의 움직임 벡터 예측 후보 각각을 이용하여 현재 프레임의 임의의 영역들을 가상으로 부호화하여 최적의 움직임 벡터로서 결정될 확률(즉, 현재 움직임 벡터로서 결정될 확률)을 계산하고, 만약 계산된 결과가 A: 80%, B: 10%, C: 5%, D:3%, E: 2%의 확률로서 계산되었다면, A 또는 A와 B 움직임 벡터 예측 후보를 일부의 움직임 벡터 예측 후보로서 선택할 수 있다.Here, the predetermined criterion may be a probability that each of the one or more motion vector prediction candidates can be determined as a current motion vector. When using this probability, the prediction candidate selector 210 uses each of the one or more motion vector prediction candidates By encoding one or more regions of the current frame, a probability that is determined as a current motion vector for each of the one or more motion vector prediction candidates can be calculated, and a part of the motion vector prediction candidates can be selected according to the calculated probability. For example, assuming that one or more motion vector prediction candidates are total five, A, B, C, D, and E, each of the five motion vector prediction candidates is used to virtually encode arbitrary areas of the current frame, (A), B: 10%, C: 5%, D: 3%, and E: 2%, which are calculated as a motion vector If it is calculated as a probability, A or A and B motion vector prediction candidates can be selected as some motion vector prediction candidates.

또한, 소정의 기준이란 상관성이 될 수 있는데, 상관성을 이용하는 경우, 예측 후보 선택기(210)는 하나 이상의 움직임 벡터 예측 후보 중 상관성이 있는 움직임 벡터 예측 후보들을 하나 이상의 그룹으로 선택하고, 선택된 각 그룹을 대표하는 대표 움직임 벡터를 일부의 움직임 벡터 예측 후보로서 선택할 수 있다. 여기서, 대표 움직임 벡터는 선택된 각 그룹 내의 움직임 벡터 예측 후보들의 중간값 또는 평균값일 수 있다.If the correlation is used, the prediction candidate selector 210 selects one or more candidate motion vector prediction candidates having correlation among one or more motion vector prediction candidates as one or more groups, The representative representative motion vector can be selected as a part of the motion vector prediction candidates. Here, the representative motion vector may be an intermediate value or an average value of the motion vector prediction candidates in each selected group.

예를 들어, 하나 이상의 움직임 벡터 예측 후보가 도 5 내지 도 7을 통해 전술한 움직임 벡터들이라면, 도 5를 통해 전술한 현재 블록의 주변 블록 중 일부의 주변 블록(L, UL, U, UR)의 움직임 벡터들(MV_L, MV_UL, MV_U, MV_UR)만을 모아서 하나의 그룹 A로 선택하고, 수학식 3과 같이, 중간값 연산을 통해 계산된 값 MVp_Group A를 대표 움직임 벡터로서 결정하고 대표 움직임 벡터를 일부의 움직임 벡터 예측 후보로서 선택할 수 있다. For example, if one or more motion vector prediction candidates are motion vectors as described above with reference to FIG. 5 to FIG. 7, the neighboring blocks L, UL, U, UR of some of the neighboring blocks of the current block, MV_U, MV_UR, MV_U, and MV_UR are selected as a group A, the MV_Group A calculated through the intermediate value calculation is determined as a representative motion vector, As a motion vector prediction candidate of the motion vector estimation unit.

Figure 112013067494154-pat00003
Figure 112013067494154-pat00003

또한, 도 6을 통해 전술한 Col 블록과 Col 블록의 주변 블록 중 상하좌우의 블록(Col, UCol, LCol, RCol, BCol)의 움직임 벡터들(MV_Col, MV_Ucol, MV_Lcol, MV_Rcol, MV_Bcol)을 모아서 하나의 그룹 B로 선택하고, 수학식 4와 같이, 평균값 연산을 통해 계산된 값 MVp_Group A를 대표 움직임 벡터로서 결정하고 대표 움직임 벡터를 일부의 움직임 벡터 예측 후보로서 선택할 수 있다.Further, Fig through 6 described above Col block and the block of vertical and horizontal of the neighboring blocks of the Col block motion vectors of (Col, U Col, L Col, R Col, B Col) (MV_Col, MV_U col, MV_L col, MV_R col , MV_B col ) are selected as one group B, and the MV MV_Group A calculated through the average value calculation is determined as a representative motion vector and a representative motion vector is selected as a part of the motion vector prediction candidates have.

Figure 112013067494154-pat00004
Figure 112013067494154-pat00004

또한, 도 6을 통해 전술한 Col 블록과 Col 블록의 주변 블록(ULCol, UCol, URCol, LCol, RCol, BLCol, BCol, BRCol)의 움직임 벡터들(MV_Col, MV_ULcol, MV_Ucol, MV_URcol, MV_Lcol, MV_Rcol, MV_BLcol, MV_Bcol, MV_BRcol)을 모아서 하나의 그룹 C로 선택하고, 수학식 5와 같이, 중간값 연산을 통해 계산된 값 MVp_Group C를 대표 움직임 벡터로서 결정하고 대표 움직임 벡터를 일부의 움직임 벡터 예측 후보로서 선택할 수 있다.Further, FIG aforementioned through 6 Col block and the neighboring blocks of the Col block motion vectors of (UL Col, U Col, UR Col, L Col, R Col, BL Col, B Col, BR Col) (MV_Col, MV_UL col , MV_U col , MV_UR col , MV_L col , MV_R col , MV_BL col , MV_B col , MV_BR col ) are grouped into one group C and represented by the intermediate value calculation MVp_Group C And the representative motion vector may be selected as a part of the motion vector prediction candidates.

Figure 112013067494154-pat00005
Figure 112013067494154-pat00005

전술한 바와 같이, 수학식 4 내지 수학식 5에 의해 계산된 대표 움직임 벡터와 도 7을 통해 전술한 지시 벡터가 일부의 움직임 벡터 예측 후보로서 선택될 수 있으며, 이 경우, 예측 후보 선택 플래그 부호화기(250)는 일부의 움직임 벡터 예측 후보로서 MVp_groupA, MVp_groupB, MVp_groupC, MV_col과 MV_par가 선택되었음을 나타내기 위한 예측 후보 선택 플래그를 생성하여 부호화할 수 있다. 물론, 예측 후보 식별 플래그 부호화기(240)는 일부의 움직임 벡터 예측 후보 MVp_groupA, MVp_groupB, MVp_groupC, MV_col과 MV_par 중 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지 나타내기 위한 예측 후보 식별 플래그를 생성하여 부호화할 수 있다.As described above, the representative motion vector calculated by Equations (4) to (5) and the indicator vector described above with reference to FIG. 7 can be selected as a part of the motion vector prediction candidates. In this case, 250 may generate and predict a prediction candidate selection flag to indicate that MVp_groupA, MVp_groupB, MVp_groupC, MV_col, and MV_par are selected as some motion vector prediction candidates. Of course, the prediction candidate identification flag encoder 240 generates a prediction candidate identification flag for indicating which of the motion vector prediction candidates MVp_groupA, MVp_groupB, MVp_groupC, MV_col and MV_par is used as a prediction motion vector, can do.

또한, 예측 후보 선택기(210)는 하나 이상의 움직임 벡터 예측 후보 중에서 기 설정된 하나 이상의 움직임 벡터 예측 후보를 일부의 움직임 벡터 예측 후보로서 선택할 수 있다. 여기서, 기 설정된 하나 이상의 움직임 벡터 예측 후보는 사용자에 의해 임의로 선택될 수 있다.Also, the prediction candidate selector 210 may select one or more motion vector prediction candidates, which are predetermined from among the one or more motion vector prediction candidates, as partial motion vector prediction candidates. Here, one or more predetermined motion vector prediction candidates may be arbitrarily selected by the user.

또한, 예측 움직임 벡터 결정기(220)는 다양한 방식으로 예측 움직임 벡터를 결정할 수 있다. 일 예로서, 예측 움직임 벡터 결정기(220)는 예측 후보 선택기(210)에 의해서 선택된 하나 이상의 움직임 벡터 예측 후보 중에서 각각의 움직임 벡터 예측 후보를 이용하여 계산된 차분 벡터를 부호화하는 데 소요되는 비트량이 최소가 되는 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정할 수 있다. 따라서, 예측 움직임 벡터 결정기(220)는 각 움직임 벡터 예측 후보를 예측 움직임 벡터라 가정하여 차분 벡터를 계산하고 계산된 차분 벡터를 부호화하여 부호화된 데이터가 최소가 되는 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정할 수 있다. 이 경우, 예측 후보 식별 플래그 부호화기(240)는 현재 블록의 움직임 벡터를 부호화할 때(즉, 현재 움직임 벡터와 결정된 예측 움직임 벡터의 차분 벡터를 부호화할 때)마다 하나 이상의 움직임 벡터 예측 후보 중에서 어떠한 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정하였는지를 식별하기 위해 예측 움직임 벡터로서 결정된 움직임 벡터 예측 후보를 식별하는 예측 후보 식별 플래그를 생성하고 부호화할 수 있다.In addition, the predictive motion vector determiner 220 may determine a predictive motion vector in various manners. For example, the predictive motion vector determiner 220 may determine that the amount of bits required to encode the differential vector calculated using each motion vector prediction candidate among the one or more motion vector prediction candidates selected by the prediction candidate selector 210 is the minimum Can be determined as a predicted motion vector. Accordingly, the predictive motion vector determiner 220 calculates a differential vector on the assumption that each motion vector predictive candidate is a predictive motion vector, and encodes the calculated differential vector to obtain a motion vector predictive candidate having the minimum coded data as a predictive motion vector You can decide. In this case, when the motion vector of the current block is coded (that is, when coding the difference vector between the current motion vector and the determined predicted motion vector), the predictive candidate identification flag encoder 240 generates any motion A prediction candidate identification flag for identifying a motion vector prediction candidate determined as a prediction motion vector to identify whether the vector prediction candidate is determined as a prediction motion vector may be generated and encoded.

다른 예로서, 예측 움직임 벡터 결정기(220)는 예측 움직임 벡터의 x-컴포넌트와 y-컴포넌트 각각을 독립적으로 결정할 수 있다. 즉, 예측 움직임 벡터 결정기(220)는 하나 이상의 움직임 벡터 예측 후보의 x-컴포넌트 중에서 하나의 움직임 벡터 예측 후보의 x-컴포넌트를 예측 움직임 벡터의 x-컴포넌트로서 결정하고, 하나 이상의 움직임 벡터 예측 후보의 y-컴포넌트 중에서 하나의 움직임 벡터 예측 후보의 y-컴포넌트를 예측 움직임 벡터의 y-컴포넌트로서 결정할 수 있다. 예를 들어, 차분 벡터를 부호화하는데 있어서, 차분 벡터의 비트량이 차분 벡터의 크기의 절대값에 비례하고 하나 이상의 움직임 벡터 예측 후보가 (-4, -4), (2, 2), (4, 4), (14, 14)이며 현재 움직임 벡터가 (0, 4)라고 가정하면, 기존에는 (2, 2) 또는 (4, 4)가 예측 움직임 벡터로서 결정될 수 있지만, 또 전술한 예에서는 예측 움직임 벡터의 x-컴포넌트는 -4, 2, 4, 14 중에서 2로 선택될 수 있으며, 예측 움직임 벡터의 y-컴포넌트는 -4, 2, 4, 14 중에서 4로 선택될 수 있다. 즉, 기존과 같이, x-컴포넌트와 y-컴포넌트를 분리하여 선택할 수 없는 것이 아니라, x-컴포넌트와 y-컴포넌트를 분리하여 최적의 값을 예측 움직임 벡터로서 결정할 수 있다.As another example, the predictive motion vector determiner 220 may independently determine each of the x-component and the y-component of the predicted motion vector. That is, the predictive motion vector determiner 220 determines the x-component of one motion vector prediction candidate among the x-components of one or more motion vector prediction candidates as the x-component of the predicted motion vector, component of one motion vector prediction candidate in the y-component as the y-component of the predicted motion vector. For example, in coding the difference vector, if the bit amount of the difference vector is proportional to the absolute value of the difference vector magnitude and one or more motion vector prediction candidates are (-4, -4), (2, 2) (2, 2) or (4, 4) can be determined as a predicted motion vector, assuming that the current motion vector is (0, 4) The x-component of the motion vector may be selected to be 2 out of -4, 2, 4, or 14, and the y-component of the predicted motion vector may be selected to be 4 out of -4, 2, 4, That is, instead of separating the x-component and the y-component as before, the x-component and the y-component can be separated and the optimal value can be determined as the predicted motion vector.

이 경우, 예측 후보 식별 플래그 부호화기(240)는 차분 벡터의 x-컴포넌트의 절대값과 차분 벡터의 y-컴포넌트의 절대값이 각각 기 설정된 x-컴포넌트 임계값(Threshold)과 기 설정된 y-컴포넌트 임계값보다 큰 같은 경우, 예측 후보 식별 플래그를 생성하지 않을 수 있으며 그에 따라 예측 후보 식별 플래그를 부호화하여 전송하지 않을 수 있다. 또한, 예측 후보 식별 플래그 부호화기(240)는 차분 벡터의 x-컴포넌트의 절대값과 차분 벡터의 y-컴포넌트의 절대값 중 하나 이상이 각각 기 설정된 x-컴포넌트 임계값과 기 설정된 y-컴포넌트 임계값 중 하나 이상보다 작거나 같은 경우에는, 예측 움직임 벡터의 x-컴포넌트와 예측 움직임 벡터의 y-컴포넌트 중 하나 이상으로 결정된 움직임 벡터 예측 후보를 식별하는 예측 후보 식별 플래그를 생성하고 부호화할 수 있다. 즉, 예측 움직임 벡터의 두 컴포넌트(x-컴포넌트 및 y-컴포넌트) 중 두 컴포넌트가 모두 임계값보다 큰 경우에는 예측 후보 식별 플래그를 생성하지 않고, 하나의 컴포넌트만이 임계값보다 작은 경우에는 임계값보다 큰 하나의 컴포넌트로 어떠한 움직임 벡터 예측 후보가 이용되었는지를 식별하는 예측 후보 식별 플래그를 생성하며, 두 개의 컴포넌트가 모두 임계값보다 크지 않은 경우에는 두 개의 컴포넌트로 어떠한 움직임 벡터 예측 후보가 이용되었는지를 식별하는 예측 후보 식별 플래그를 생성하여 부호화할 수 있다.In this case, the prediction candidate identification flag encoder 240 determines whether or not the absolute value of the x-component of the difference vector and the absolute value of the y-component of the difference vector are greater than a preset x-component threshold value and a predetermined y- Value, the prediction candidate identification flag may not be generated, and the prediction candidate identification flag may be encoded and not transmitted. In addition, the prediction candidate identification flag encoder 240 determines whether or not at least one of the absolute value of the x-component of the difference vector and the absolute value of the y-component of the difference vector is greater than a preset x- A prediction candidate identification flag that identifies a motion vector prediction candidate determined by at least one of the x-component of the predicted motion vector and the y-component of the predicted motion vector may be generated and encoded. That is, if two of the two components (x-component and y-component) of the predicted motion vector are both greater than the threshold value, the prediction candidate identification flag is not generated. If only one component is smaller than the threshold value, And generates a prediction candidate identification flag that identifies which motion vector prediction candidate is used as a larger component. If neither of the two components is greater than the threshold value, it is determined whether a motion vector prediction candidate is used as two components It is possible to generate and to code a prediction candidate identification flag to identify.

여기서, 차분 벡터의 각 컴포넌트의 절대값이 각 컴포넌트의 임계값보다 커서 예측 후보 식별 플래그를 생성하여 부호화하지 않는 경우와 차분 벡터의 각 컴포넌트의 절대값이 각 컴포넌트의 임계값보다 작거나 같아서 예측 후보 식별 플래그를 생성하여 부호화하는 경우 각각에 대해서 선택되는 움직임 벡터 예측 후보들 중 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지를 식별하는 예측 후보 식별 플래그를 따로따로 생성하여 부호화할 수 있다. 영상 복호화 장치에서도 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트 임계값보다 커서 예측 후보 식별 플래그가 전송되지 않은 경우와 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트 임계값보다 작거나 같아서 예측 후보 식별 플래그가 전송된 경우에 대해서 움직임 벡터 예측 후보들을 각각 따로따로 복호화하여 예측 움직임 벡터를 결정할 수 있다.Here, when the absolute value of each component of the difference vector is larger than the threshold value of each component, a prediction candidate identification flag is generated and not encoded, and when the absolute value of each component of the difference vector is smaller than or equal to the threshold value of each component, When the identification flag is generated and encoded, a prediction candidate identification flag that identifies which of the motion vector prediction candidates selected for each motion vector prediction candidate is determined as a prediction motion vector may separately be generated and encoded. Since the absolute value of each component of the difference vector is larger than the corresponding component threshold value and the predictive candidate identification flag is not transmitted and the absolute value of each component of the differential vector is smaller than or equal to the corresponding component threshold value in the video decoding apparatus, The motion vector prediction candidates may be separately decoded to determine a predicted motion vector.

예를 들어, 그룹 A의 선택된 움직임 벡터 예측 후보들 중 하나를 예측 움직임 벡터로서 결정하여 차분 벡터를 계산하고, 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트의 임계값보다 큰 경우에는 예측 후보 식별 플래그를 생성하여 부호화하지 않을 수 있으며, 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트의 임계값보다 작은 경우에는 그룹 B의 선택된 움직임 벡터 예측 후보들 중 하나를 예측 움직임 벡터로서 결정하여 차분 벡터를 계산하고, 그룹 B의 선택된 움직임 벡터 예측 후보들 중 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지를 식별하는 예측 후보 식별 플래그를 생성하여 부호화할 수 있다. 즉, 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트의 임계값보다 큰 경우에는 그룹 A의 선택된 움직임 벡터 예측 후보들을 사용하고, 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트의 임계값보다 작거나 같은 경우에는 그룹 B의 선택된 움직임 벡터 예측 후보들을 사용할 수 있다.For example, if one of the selected motion vector prediction candidates of the group A is determined as a predicted motion vector to calculate a difference vector, and if the absolute value of each component of the difference vector is greater than a threshold value of the corresponding component, If the absolute value of each component of the difference vector is smaller than the threshold value of the corresponding component, one of the selected motion vector prediction candidates of the group B is determined as a predicted motion vector to calculate a difference vector, A prediction candidate identification flag that identifies which of the selected motion vector prediction candidates of B has been determined as a prediction motion vector is generated and encoded. That is, if the absolute value of each component of the difference vector is larger than the threshold value of the corresponding component, the selected motion vector prediction candidates of the group A are used. If the absolute value of each component of the difference vector is smaller than or equal to the threshold value of the corresponding component The selected motion vector prediction candidates of group B can be used.

여기서, 각 컴포넌트 임계값(x-컴포넌트 임계값 및 y-컴포넌트 임계값)은 다양하게 계산될 수 있다. 일 예로, x-컴포넌트 임계값은 하나 이상의 움직임 벡터 예측 후보의 x-컴포넌트 중 가장 가까운 두 개의 움직임 벡터 예측 후보의 x-컴포넌트 간의 차이값을 소정의 수로 나눈 값들 중 최대값일 수 있으며, y-컴포넌트 임계값은 하나 이상의 움직임 벡터 예측 후보의 y-컴포넌트 중 가장 가까운 두 개의 움직임 벡터 예측 후보의 y-컴포넌트 간의 차이값을 소정의 수로 나눈 값들 중 최대값일 수 있다. 즉, 각 컴포넌트는 수학식 6과 같이, 서로 가장 인접한 두 개의 움직임 벡터 예측 후보(MVp Cand (i) MVp Cand (j))마다 각각 thre ij 를 계산한 후, 계산된 thre ij 중 최대값으로 계산될 수 있다.Here, each component threshold value (x-component threshold value and y-component threshold value) can be calculated in various ways. For example, the x-component threshold may be the maximum of the differences between the x-components of the two closest of the x-components of one or more motion vector prediction candidates divided by a predetermined number, The threshold value may be a maximum value obtained by dividing the difference value between the y-components of the two closest motion vector prediction candidates among the y-components of the at least one motion vector prediction candidate by a predetermined number. That is, as shown in Equation (6), each component has two motion vector prediction candidates MVp Cand (i) and MVp Cand MVp Cand after calculating each thre ij for each (j)), may be calculated as the maximum value of the calculated thre ij.

Figure 112013067494154-pat00006
Figure 112013067494154-pat00006

임계값을 계산하는 과정을 설명하기 위해 예시적으로 나타낸 도 8을 참조하면, 움직임 벡터 예측 후보의 x-컴포넌트의 값이 도 8에 나타낸 바와 같이, '-4', '2', '4', '14'인 것으로 가정하면, 각 움직임 벡터 예측 후보의 x-컴포넌트의 값의 차이값을 2로 나눈 값은 구간 ①에서는 '3', 구간 ②에서는 '1', 구간 ③에서는 '5'가 되고, 최대값은 '5'이므로 임계값은 '5'가 된다.Referring to FIG. 8 illustrating an exemplary process for calculating a threshold value, a value of an x-component of a motion vector prediction candidate is '-4', '2', '4' , '14', the value obtained by dividing the difference value of the value of the x-component of each motion vector prediction candidate by 2 is '3' in the section ①, '1' in the section ②, and '5' And the maximum value is '5', so that the threshold value becomes '5'.

움직임 벡터 예측 후보와 현재 움직임 벡터를 각 컴포넌트별로 분리하여 예시적으로 나타낸 도 9를 참조하면, x-컴포넌트의 임계값은 '2'이고, y-컴포넌트의 임계값은 '3'이다. 이 경우, 예측 움직임 벡터의 x-컴포넌트는 '3'(MVp_cand[2])로 결정되어 차분 벡터의 x-컴포넌트는 '-3'이 되며, 예측 움직임 벡터의 y-컴포넌트는 '2'(MVp_cand[0])으로 결정되어 차분 벡터의 y-컴포넌트는 '+4'가 된다. 차분 벡터의 두 컴포넌트의 절대값이 각 컴포넌트의 임계값보다 크므로, 예측 후보 식별 플래그 부호화기(240)는 움직임 벡터 예측 후보 중에서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지를 나타내기 위한 예측 후보 식별 플래그를 생성하여 부호화하지 않을 수 있다. 이와 같은 원리로, 영상 복호화 장치에서는 현재 움직임 벡터를 복원할 때, 예측 후보 식별 플래그가 없어 하나 이상의 움직임 벡터 예측 후보 중에서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지 알 수 없는 경우에도, 차분 벡터의 x-컴포넌트와 y-컴포넌트가 각 컴포넌트의 임계값보다 큰지 여부를 확인하여 임계값보다 크면, 스스로 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지를 파악할 수 있다.Referring to FIG. 9, which illustrates the motion vector prediction candidate and the current motion vector separately for each component, the threshold value of the x-component is '2' and the threshold value of the y-component is '3'. In this case, the x-component of the predicted motion vector is determined to be '3' (MVp_cand [2]) so that the x-component of the differential vector becomes -3 and the y-component of the predicted motion vector is '2' [0]), and the y-component of the difference vector becomes '+4'. Since the absolute values of the two components of the differential vector are greater than the threshold values of the respective components, the prediction candidate identification flag encoder 240 generates prediction candidates for indicating which of the motion vector prediction candidates is determined as a prediction motion vector An identification flag may be generated and not encoded. With this principle, when restoring the current motion vector in the video decoding apparatus, even when it is not possible to know which motion vector prediction candidate is determined as the predicted motion vector from among one or more motion vector prediction candidates due to the absence of the prediction candidate identification flag, Component is greater than a threshold value of each component, and if the x-component and the y-component of the motion vector prediction candidate are larger than the threshold value, it is possible to determine which motion vector prediction candidate is determined as a predicted motion vector.

또한, 다른 예로, x-컴포넌트 임계값은 하나 이상의 움직임 벡터 예측 후보의 x-컴포넌트 중 가장 가까운 두 개의 움직임 벡터 예측 후보의 x-컴포넌트 간의 차이값을 소정의 수로 나눈 값들일 수 있으며, y-컴포넌트 임계값은 하나 이상의 움직임 벡터 예측 후보의 y-컴포넌트 중 가장 가까운 두 개의 움직임 벡터 예측 후보의 y-컴포넌트 간의 차이값을 소정의 수로 나눈 값들일 수 있다. 즉, 각 컴포넌트 임계값은 수학식 6과 같이 각 움직임 벡터 예측 후보들 사이의 거리를 2로 나눈 값들 중에서 가장 큰 값이 아니라, 수학식 7과 같이 각 움직임 벡터 예측 후보들 사이의 거리를 2로 나눈 값들로 계산될 수 있다. 따라서, 움직임 벡터 예측 후보가 N개 있을 경우, 각 컴포넌트의 임계값은 N-1개일 수 있다. 단, 수학식 7에서, 0 ≤ n < N이다.In another example, the x-component threshold may be a value obtained by dividing the difference value between the x-components of the two closest motion vector prediction candidates among the x-components of the at least one motion vector prediction candidate by a predetermined number, The threshold value may be a value obtained by dividing the difference value between the y-components of the two closest motion vector prediction candidates among the y-components of the at least one motion vector prediction candidate by a predetermined number. That is, each component threshold is not the largest value obtained by dividing the distance between each motion vector prediction candidate by 2, as shown in Equation (6), but a value obtained by dividing the distance between each motion vector prediction candidate by 2 Lt; / RTI &gt; Therefore, when there are N motion vector prediction candidates, the threshold value of each component may be N-1. In Equation (7), 0? N <N.

Figure 112013067494154-pat00007
Figure 112013067494154-pat00007

예를 들어, 도 8과 같은 경우, x-컴포넌트의 제 1 임계값(Threshold1)은 '3'이 될 수 있고, 제 2 임계값(Threshold2)은 '1'이 될 수 있고, 제 3 임계값(Threshold3)은 '5'가 될 수 있다.For example, in the case of FIG. 8, the first threshold Threshold 1 of the x-component may be '3', the second threshold Threshold 2 may be '1' The threshold value (Threshold 3 ) may be '5'.

이 경우, 예측 후보 식별 플래그 부호화기(240)는 차분 벡터의 각 컴포넌트의 절대값의 크기와 각 컴포넌트 임계값에 따라, 예측 후보 식별 플래그를 다르게 생성하고 부호화할 수 있다. 즉, 예측 후보 식별 플래그 부호화기(240)는 N-1개의 임계값을 내림차순으로 정렬을 하여 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트의 가장 작은 임계값보다 작거나 같은 경우, N개의 선택된 움직임 벡터 예측 후보들 중에서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로 결정되었는지를 식별하는 예측 후보 식별 플래그를 생성하고 부호화하며, 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트의 두 번째로 작은 임계값보다 작거나 같은 경우, 해당 컴포넌트의 가장 작은 임계값을 가지는 두 개의 움직임 벡터 예측 후보들의 사이에 현재 움직임 벡터가 없다고 가정을 하고 N-1개의 선택된 움직임 벡터 예측 후보들 중에서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로 결정되었는지를 식별하는 예측 후보 식별 플래그를 생성하여 부호화한다. 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트의 세 번째로 작은 임계값보다 작거나 같은 경우, 해당 컴포넌트의 가장 작은 임계값을 가지는 두 개의 움직임 벡터 예측 후보들의 사이에 현재 움직임 벡터가 없다고 가정을 하고, 해당 컴포넌트의 두 번째로 작은 임계값을 가지는 두 개의 움직임 벡터 예측 후보들 사이에도 현재 움직임 벡터가 없다고 가정을 하고, N-2개의 선택된 움직임 벡터 예측 후보들 중에서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로 결정되었는지를 식별하기 위한 예측 후보 식별 플래그를 생성하여 부호화한다.In this case, the prediction candidate identification flag encoder 240 can generate and encode the prediction candidate identification flag differently according to the magnitude of the absolute value of each component of the difference vector and each component threshold value. That is, if the absolute value of each component of the difference vector is smaller than or equal to the smallest threshold value of the corresponding component, the prediction candidate identification flag encoder 240 arranges N-1 threshold values in descending order, A prediction candidate identification flag that identifies which motion vector prediction candidate is determined as a prediction motion vector among the prediction candidates is generated and encoded, and the absolute value of each component of the difference vector is smaller than or equal to a second smallest threshold value of the corresponding component , It is assumed that there is no current motion vector between the two motion vector prediction candidates having the smallest threshold value of the component and if any motion vector prediction candidate among the N-1 selected motion vector prediction candidates is determined as a prediction motion vector And generates a prediction candidate identification flag . If the absolute value of each component of the difference vector is less than or equal to the third smallest threshold value of the component, it is assumed that there is no current motion vector between the two motion vector prediction candidates having the smallest threshold value of the component , It is assumed that there is no current motion vector between two motion vector prediction candidates having the second smallest threshold value of the corresponding component, and any motion vector prediction candidate among N-2 selected motion vector prediction candidates is determined as a predicted motion vector And generates a prediction candidate identification flag for identifying whether or not the video signal has been encoded.

이와 같은 방법으로 차분 벡터의 각 컴포넌트의 절대값과 해당 컴포넌트의 각 임계값을 차례로 비교하여 예측 후보 식별 플래그를 생성하여 부호화하며, 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트의 모든 임계값보다 큰 경우에는, N개의 움직임 벡터 예측 후보들 중에서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지를 식별하기 위한 예측 후보 식별 플래그를 생성하여 부호화할 필요가 없다. 이와 같이, 차분 벡터의 각 컴포넌트의 절대값과 해당 컴포넌트의 임계값들에 따라서, 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지를 식별하기 위한 예측 후보 식별 플래그의 길이가 달라질 수 있다.In this way, the absolute value of each component of the difference vector is sequentially compared with each threshold value of the corresponding component, and a prediction candidate identification flag is generated and encoded. When the absolute value of each component of the differential vector is larger than all threshold values of the corresponding component , There is no need to generate and code a prediction candidate identification flag for identifying which motion vector prediction candidate is determined as a prediction motion vector from among the N motion vector prediction candidates. In this way, the length of the prediction candidate identification flag for identifying which motion vector prediction candidate is determined as the predicted motion vector may be changed according to the absolute values of the respective components of the difference vector and the threshold values of the corresponding component.

위와 같은 방법에 따르면, 차분 벡터의 각 컴포넌트의 절대값이 모든 임계값보다 큰 경우에는, 움직임 벡터 예측 후보의 각 컴포넌트에 대해 개별적으로 선택하여 예측 움직임 벡터를 결정할 수 있다. 차분 벡터의 각 컴포넌트의 절대값 중 하나의 컴포넌트만 모든 임계값보다 큰 경우에는, 모든 임계값보다 크지 않은 절대값을 가지는 차분 벡터의 컴포넌트에 대해서만 움직임 벡터 예측 후보들 중에서 어떠한 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정했는지를 식별하기 위한 예측 후보 식별 플래그를 전송한다.According to the above method, when the absolute value of each component of the difference vector is larger than all the threshold values, a predictive motion vector can be determined by selecting individually for each component of the motion vector prediction candidate. If only one component of the absolute values of the components of the difference vector is larger than all of the threshold values, motion vector prediction candidates of the motion vector prediction candidates are predicted only for the component of the difference vector having an absolute value not larger than all the threshold values And transmits a prediction candidate identification flag for identifying whether it is determined as a vector.

즉, 차분 벡터의 두 컴포넌트의 절대값 중 하나만 가장 큰 임계값을 넘은 경우에는, 가장 큰 임계값을 넘지 않은 절대값을 가지는 컴포넌트를 가지는 움직임 벡터 예측 후보를 식별하기 위한 예측 후보 식별 플래그를 생성하여 부호화할 수 있다. 차분 벡터의 두 컴포넌트의 절대값이 모두 가장 큰 임계값보다 크지 못한 경우에는, 각 컴포넌트에 대해 독립적으로 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로 결정되었는지를 식별하기 위한 예측 후보 식별 플래그를 생성하여 부호화하는 것이 아니라, 각 컴포넌트 두 개가 동시에 예측 움직임 벡터로 결정되는 움직임 벡터 예측 후보를 식별하기 위한 예측 후보 식별 플래그를 생성하여 부호화할 수 있다.That is, when only one of the absolute values of the two components of the difference vector exceeds the maximum threshold value, a prediction candidate identification flag for identifying a motion vector prediction candidate having a component having an absolute value not exceeding the largest threshold value is generated Can be encoded. If the absolute values of the two components of the difference vector are not greater than the largest threshold value, a prediction candidate identification flag for identifying which motion vector prediction candidate is determined as a prediction motion vector independently for each component is generated, , But a prediction candidate identification flag for identifying a motion vector prediction candidate in which two components are simultaneously determined as a prediction motion vector can be generated and encoded.

예를 들어, 전술한 도 8과 복수 개의 임계값에 따른 예측 후보 식별 플래그를 예시적으로 나타낸 도 10을 참조하면, 예측 후보의 개수는 4개이고 각각의 임계값은 '1', '3', '5'가 된다. 이에 따라, 도 10에서는 3개의 임계값에 따라 나누어진 구간을 나타내었다. ①로 표시된 구간은 움직임 벡터 예측 후보들의 x-컴포넌트를 나타낸 것이고, ②로 표시된 구간은 차분 벡터의 x-컴포넌트의 절대값이 x-컴포넌트의 가장 작은 임계값보다 작거나 같은 경우의 현재 움직임 벡터의 x-컴포넌트가 위치하는 구간을 나타낸 것이고, ③으로 표시된 구간은 차분 벡터의 x-컴포넌트의 절대값이 x-컴포넌트의 두 번째로 작은 임계값보다 작거나 같은 경우의 현재 움직임 벡터의 x-컴포넌트가 위치하는 구간을 나타낸 것이고, ④로 표시된 구간은 차분 벡터의 x-컴포넌트의 절대값이 x-컴포넌트의 가장 큰 임계값보다 작거나 같은 경우의 현재 움직임 벡터의 x-컴포넌트가 위치하는 구간을 나타낸 것이고, ⑤로 표시된 구간은 차분 벡터의 x-컴포넌트의 절대값이 x-컴포넌트의 가장 큰 임계값보다 큰 경우의 현재 움직임 벡터의 x-컴포넌트가 위치하는 구간을 나타낸 것이다.For example, referring to FIG. 8 and FIG. 10 illustrating a prediction candidate identification flag according to the plurality of threshold values, the number of prediction candidates is four and each threshold value is '1', '3' '5'. Accordingly, in FIG. 10, a section divided by three threshold values is shown. The interval indicated by (1) represents the x-component of the motion vector prediction candidates, and the interval indicated by (2) represents the current motion vector when the absolute value of the x-component of the difference vector is smaller than or equal to the smallest threshold value of the x- component, and the interval indicated by (3) indicates that the x-component of the current motion vector when the absolute value of the x-component of the difference vector is smaller than or equal to the second smallest threshold value of the x- Component, and the section indicated by (4) represents a section where the x-component of the current motion vector is located when the absolute value of the x-component of the difference vector is smaller than or equal to the largest threshold value of the x-component , The interval indicated by (5) indicates that the x-component of the current motion vector in the case where the absolute value of the x-component of the difference vector is larger than the largest threshold value of the x- A shows a section in which location.

예측 후보 식별 플래그 부호화기(240)는 ②로 표시된 구간에서는 4개의 움직임 벡터 예측 후보 중에서 어떠한 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정했는지를 식별하는 예측 후보 식별 플래그를 생성하여 부호화할 수 있고, ③으로 표시된 구간에서는 3개의 움직임 벡터 예측 후보 중에서 어떠한 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정했는지를 식별하는 예측 후보 식별 플래그를 생성하여 부호화할 수 있으며, ④로 표시된 구간에서는 2개의 움직임 벡터 예측 후보 중에서 어떠한 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정했는지를 식별하는 예측 후보 식별 플래그를 생성하여 부호화할 수 있으며, ⑤로 표시된 구간에서는 예측 후보 식별 플래그를 생성하지 않을 수 있다.The prediction candidate identification flag encoder 240 can generate and code a prediction candidate identification flag that identifies which of the four motion vector prediction candidates has been determined as a prediction motion vector in the section indicated by 2, A prediction candidate identification flag for identifying which motion vector prediction candidate has been determined as a prediction motion vector from among the three motion vector prediction candidates can be generated and coded. In the section indicated by 4, any of the two motion vector prediction candidates A prediction candidate identification flag that identifies whether the motion vector prediction candidate is determined as a prediction motion vector may be generated and coded. In the section indicated by (5), the prediction candidate identification flag may not be generated.

현재 움직임 벡터의 x-컴포넌트가 '8'인 경우, 예측 움직임 벡터의 x-컴포넌트는 '4'가 된다. 이때, 차분 벡터의 x-컴포넌트는 '+4'이므로 그 절대값이 x-컴포넌트의 가장 큰 임계값인 '5'보다 작고, 두 번째로 큰 임계값인 '3'보다 크므로, 움직임 벡터 예측 후보의 x-컴포넌트 '4' 및 '14' 중 하나를 식별하기 위한 예측 후보 식별 플래그를 생성하여 부호화하면 된다.If the x-component of the current motion vector is '8', the x-component of the predicted motion vector is '4'. Since the absolute value of the x-component of the difference vector is '+4', its absolute value is smaller than the largest threshold value '5' of the x-component and greater than the second threshold value '3' A prediction candidate identification flag for identifying one of the candidate x-components '4' and '14' may be generated and encoded.

영상 복호화 장치에서는 차분 벡터의 x-컴포넌트가 '+4'이므로, 움직임 벡터 예측 후보의 x-컴포넌트 '-4'를 예측 움직임 벡터의 x-컴포넌트로 가정한 경우, 현재 움직임 벡터의 x-컴포넌트를 '0'으로 가정할 수 있다. 하지만, 현재 움직임 벡터의 x-컴포넌트가 '0'이라고 가정한 경우, 최적의(즉, 차분 벡터의 x-컴포넌트 값을 최소로 하는) 예측 움직임 벡터의 x-컴포넌트는 '2'가 되므로, 움직임 벡터 예측 후보의 x-컴포넌트 '-4'는 예측 움직임 벡터가 아님을 알 수 있다. 이와 같은 방법으로, 움직임 벡터 예측 후보의 x-컴포넌트 '-4'와 '2'는 예측 움직임 벡터로서 결정되지 않았음을 알 수 있다. 따라서, 예측 움직임 벡터로서 결정될 수 있는 움직임 벡터 예측 후보의 x-컴포넌트 '4'와 '14' 중에서 어느 값이 예측 움직임 벡터의 x-컴포넌트로 결정되었는지를 식별하기 위한 예측 후보 식별 플래그를 생성하여 부호화하면 된다. 이와 같이, 각 컴포넌트에 대해 복수 개의 임계값을 계산하고, 차분 벡터의 각 컴포넌트의 절대값과 해당 컴포넌트의 복수 개의 임계값을 비교하여 예측 후보 식별 플래그를 다르게 생성하고 부호화하면, 현재 움직임 벡터를 부호화할 때 전송해야 하는 예측 후보 식별 플래그의 부호화된 비트량을 줄일 수 있고, 그에 따라 압축 효율을 향상시킬 수 있다.Since the x-component of the difference vector is '+4' in the image decoding apparatus, if the x-component '-4' of the motion vector prediction candidate is assumed to be the x-component of the predicted motion vector, Quot; 0 &quot;. However, when it is assumed that the x-component of the current motion vector is '0', the x-component of the predicted motion vector that is optimal (i.e., minimizes the x-component value of the difference vector) becomes '2' It can be seen that the x-component '-4' of the vector prediction candidate is not a predicted motion vector. In this way, it can be seen that the x-components '-4' and '2' of the motion vector prediction candidate are not determined as the predicted motion vector. Accordingly, a prediction candidate identification flag for identifying which of the x-components '4' and '14' of the motion vector prediction candidate that can be determined as the predictive motion vector is determined as the x-component of the predictive motion vector is generated, . As described above, when a plurality of threshold values are calculated for each component and the absolute values of the components of the difference vector are compared with a plurality of threshold values of the component to generate a prediction candidate identification flag differently and encoded, It is possible to reduce the amount of encoded bits of the prediction candidate identification flag to be transmitted at the time of encoding, thereby improving the compression efficiency.

영상 복호화 장치에서는 이러한 예측 후보 식별 플래그만을 이용하여 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지 식별할 수 있다. The video decoding apparatus can identify which motion vector prediction candidate is determined as a predicted motion vector using only the prediction candidate identification flag.

또 다른 예로서, 예측 움직임 벡터 결정기(220)는 선택된 움직임 벡터 예측 후보들 중에서 각 움직임 벡터 예측 후보들 간의 거리가 임의의 임계값보다 작을 경우, 임의의 임계값보다 작은 두 움직임 벡터 예측 후보 중 어느 하나만 선택 선택된 것으로 간주하여 다른 움직임 벡터 예측 후보를 움직임 벡터 예측 후보들에서 제외하고, 제외되지 않은 나머지 움직임 벡터 예측 후보들 중에서 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정할 수 있다. 영상 복호화 장치에서도 선택된 움직임 벡터 예측 후보들 중에서 움직임 벡터 예측 후보들 간의 거리가 임의의 임계값보다 작을 경우, 임의의 임계값보다 작은 두 움직임 벡터 예측 후보 중 하나만 선택된 것으로 간주하고 다른 움직임 벡터 예측 후보를 움직임 벡터 예측 후보들에서 제외시켜, 나머지 움직임 벡터 예측 후보들 중에서 하나를 예측 움직임 벡터로서 결정할 수 있다.As another example, when the distance between each motion vector prediction candidate among the selected motion vector prediction candidates is smaller than a certain threshold value, the predictive motion vector determiner 220 selects either one of two motion vector prediction candidates smaller than a certain threshold value It is possible to exclude other motion vector prediction candidates from the motion vector prediction candidates by considering them as being selected and determine one motion vector prediction candidate among the remaining motion vector prediction candidates as the prediction motion vector. If the distance between the motion vector prediction candidates in the video decoding apparatus is less than a certain threshold value, it is assumed that only one of the two motion vector prediction candidates smaller than the arbitrary threshold value is selected and the other motion vector prediction candidate is selected as the motion vector It is possible to determine one of the remaining motion vector prediction candidates as a predicted motion vector.

예를 들어, 임의의 임계값이 '2'이고 선택된 움직임 벡터 예측 후보들이 3개일 경우, 첫 번째 움직임 벡터 예측 후보가 '-5'이고, 두 번째 움직임 벡터 예측 후보가 '8'이고, 세 번째 움직임 벡터 예측 후보가 '9'라면, 두 번째 움직임 벡터 예측 후보와 세 번째 움직임 벡터 예측 후보의 거리가 임의의 임계값보다 작으므로, 세 번째 움직임 벡터 예측 후보를 움직임 벡터 예측 후보들에서 제외하고 첫 번째 움직임 벡터 예측 후보와 두 번째 움직임 벡터 예측 후보 중에서 하나를 예측 움직임 벡터로서 결정할 수 있다. 이와 같은 방법을 이용하면, 선택된 움직임 벡터 예측 후보들의 개수를 줄여 예측 후보 식별 플래그를 부호화하기 위한 비트량을 줄일 수 있다.For example, when an arbitrary threshold value is '2' and three motion vector prediction candidates are selected, the first motion vector prediction candidate is '-5', the second motion vector prediction candidate is '8' If the motion vector prediction candidate is '9', since the distance between the second motion vector prediction candidate and the third motion vector prediction candidate is smaller than a certain threshold value, the third motion vector prediction candidate is excluded from the motion vector prediction candidates, It is possible to determine one of the motion vector prediction candidate and the second motion vector prediction candidate as a prediction motion vector. With this method, the number of selected motion vector prediction candidates can be reduced to reduce the bit amount for encoding the prediction candidate identification flag.

또한, 예측 후보 식별 플래그 부호화기(240)는 예측 후보 식별 플래그를 생성하는 경우, 다양한 방식으로 예측 후보 식별 플래그를 생성할 수 있다. 일 예로서, 예측 후보 식별 플래그 부호화기(240)는 예측 움직임 벡터로서 결정된 움직임 벡터 예측 후보가 하나 이상의 움직임 벡터 예측 후보 중 현재 움직임 벡터로 결정될 확률이 최고인 움직임 벡터 예측 후보인 경우, 예측 후보 식별 플래그가 최소의 비트가 되도록, 예측 후보 식별 플래그를 생성할 수 있다.Further, when generating the prediction candidate identification flag, the prediction candidate identification flag encoder 240 can generate the prediction candidate identification flag in various manners. For example, when the motion vector prediction candidate determined as the predicted motion vector is the motion vector prediction candidate having the highest probability of being determined as the current motion vector among the one or more motion vector prediction candidates, the prediction candidate identification flag It is possible to generate the prediction candidate identification flag so as to be the minimum bit.

즉, 수학식 8과 같이, 움직임 벡터 예측 후보들의 개수(NumOfMVpCand)를 이용하여 예측 후보 식별 플래그를 부호화하는 데 필요한 최대 길이(L)을 계산한다.That is, the maximum length L required to encode the prediction candidate identification flag is calculated using the number of motion vector prediction candidates NumOfMVp Cand , as shown in Equation (8).

Figure 112013067494154-pat00008
Figure 112013067494154-pat00008

Figure 112013067494154-pat00009
Figure 112013067494154-pat00009

수학식 9와 같이, 계산된 움직임 벡터 예측 후보들의 개수에서 '1'을 빼고 log2를 취한 M의 값이 정수일 때, 예측 후보 식별 플래그의 전송 비트를 예시적으로 나타낸 도 11과 같이, 예측 움직임 벡터로 결정된 움직임 벡터 예측 후보를 식별하기 위한 예측 후보 식별 플래그를 생성하여 부호화할 때, 가장 확률이 높은 움직임 벡터 예측 후보가 예측 움직임 벡터일 경우, 예측 후보 식별 플래그를 한 비트로 생성하고 부호화한다.11, when the value of M obtained by subtracting '1' from the number of calculated motion vector prediction candidates and taking log 2 is an integer, as shown in Equation (9), the predictive motion When a motion vector prediction flag for identifying a motion vector prediction candidate determined as a vector is generated and encoded, the prediction candidate identification flag is generated and encoded with one bit when the most probable motion vector prediction candidate is a prediction motion vector.

예를 들어, 선택된 움직임 벡터 예측 후보들이 3개인 경우(MVp_cand[i]:0≤i <3), 부호화하는데 필요한 최대 비트 길이 L은 '2'이므로, 선택된 움직임 벡터 예측 후보들 중에서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지를 식별하는 예측 후보 식별 플래그를 2비트로 생성할 수 있다. 이때, 수학식 9에 의하여 M의 값이 정수이므로, 확률이 가장 높은 움직임 벡터 예측 후보는 한 비트로 생성하여 부호화한다. 한 비트의 예측 후보 식별 플래그가 '1'인 경우에는 확률이 가장 높은 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정된 것을 식별하며, '0'인 경우에는 확률이 가장 높은 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되지 않은 것을 식별하므로, 추가적인 비트를 생성하여 부호화함으로써, 나머지 2개의 움직임 벡터 예측 후보들을 식별하기 위한 2비트를 생성하여 부호화한다. M이 정수인 경우, 영상 복호화 장치에서는 예측 후보 식별 플래그를 한 비트만 읽어서 확률이 가장 높은 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지를 식별하고 확률이 가장 높은 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되지 않은 경우에만, 비트를 추가로 읽어서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지를 식별한다.For example, when the number of selected motion vector prediction candidates is 3 (MVp_cand [i]: 0? I <3), the maximum bit length L required for coding is '2', so that any of the selected motion vector prediction candidates The prediction candidate identification flag that identifies whether the prediction candidate motion vector has been determined as a predictive motion vector. Since the value of M is an integer according to Equation (9), the motion vector prediction candidate having the highest probability is generated and encoded with one bit. The motion vector prediction candidate having the highest probability is determined as a prediction motion vector when the prediction candidate identification flag of one bit is '1', and the motion vector prediction candidate having the highest probability is determined as the prediction motion vector So that additional bits are generated and encoded to generate 2 bits for identifying the remaining two motion vector prediction candidates and then encoded. If M is an integer, the video decoding apparatus reads only one bit of the prediction candidate identification flag to identify whether the motion vector prediction candidate having the highest probability is determined as a prediction motion vector, and determines that the motion vector prediction candidate having the highest probability is determined as a prediction motion vector The bit is further read to identify which motion vector prediction candidate has been determined as a predicted motion vector.

이때, 예측 후보 식별 플래그 부호화기(240)는 하나 이상의 움직임 벡터 예측 후보를 이용하여 현재 프레임의 하나 이상의 영역을 부호화함으로써, 하나 이상의 움직임 벡터 예측 후보 각각에 대해 현재 움직임 벡터로 결정될 확률을 계산할 수도 있으며, 임의로 지정되어 설정되는 확률에 따르거나 임의로 지정되어 설정되는 움직임 벡터 예측 후보를 확률이 가장 높은 움직임 벡터 예측 후보로 선택할 수 있다.At this time, the prediction candidate identification flag encoder 240 may calculate one or more regions of the current frame using one or more motion vector prediction candidates, thereby calculating a probability of determining the current motion vector for each of the one or more motion vector prediction candidates, The motion vector prediction candidate set according to the probability that is arbitrarily designated and set or arbitrarily designated can be selected as the motion vector prediction candidate having the highest probability.

다른 예로서, 예측 후보 식별 플래그 부호화기(240)는 하나 이상의 움직임 벡터 예측 후보 중 적어도 하나 이상이 동일하지 않은 경우에만 예측 후보 식별 플래그를 생성하여 부호화할 수 있다. 즉, 선택된 움직임 벡터 예측 후보들이 동일한 예측 후보들은 하나로 간주한다. 모든 선택된 예측 후보가 모두 동일한 경우에는 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로 결정되더라도 해당 움직임 벡터 예측 후보가 최적이 되므로, 움직임 벡터 예측 후보들 중에서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지를 식별하는 예측 후보 식별 플래그를 생성하여 부호화하지 않을 수 있다. 이 경우, 영상 복호화 장치에서도 예측 후보 식별 플래그를 복호화하지 않는다.As another example, the prediction candidate identification flag encoder 240 may generate and code a prediction candidate identification flag only when at least one of the one or more motion vector prediction candidates is not the same. That is, the selected motion vector prediction candidates regard the same prediction candidates as one. If all the selected prediction candidates are the same, no matter which motion vector prediction candidate is determined as the predicted motion vector, the corresponding motion vector prediction candidate becomes optimal, so that it is identified which of the motion vector prediction candidates is determined as the predicted motion vector It is possible to generate the prediction candidate identification flag and not to encode it. In this case, the video decoding apparatus does not decode the prediction candidate identification flag.

또 다른 예로서, 예측 후보 식별 플래그 부호화기(240)는 현재 블록의 블록 타입이 SKIP 모드인 경우, P 블록인 경우 및 B 블록인 경우 중 하나 이상의 경우, 각 경우에 대해 예측 후보 식별 플래그를 생성하여 부호화할 수 있다. 즉, 예측 움직임 벡터 결정기(220)는 현재 블록의 블록 타입이 SKIP 모드인 경우, P 블록인 경우 및 B 블록인 경우, 각각에 대해서 서로 다른 움직임 벡터 예측 후보를 선택할 수 있다. 이 경우, 예측 후보 식별 플래그 부호화기(240)는 각 경우에 따라 예측 후보 선택 플래그를 다르게 생성하여 부호화할 수 있다. 이때, 예측 후보 선택기(220)와 예측 후보 선택 부호화기(250)에서도 블록의 블록 타입이 SKIP 모드일 경우, P 블록인 경우, B 블록인 경우에 따라 각각 다르게 선택된 움직임 벡터 예측 후보들을 비트스트림의 헤더에 삽입하여 전송한다. 영상 복호화 장치에서도 현재 블록의 블록 타입이 SKIP 모드일 경우, P 블록인 경우, B 블록인 경우에 따라 각각 다르게 선택된 움직임 벡터 예측 후보들을 복호화하여 결정할 수 있다.As another example, the prediction candidate identification flag encoder 240 generates a prediction candidate identification flag for each case when the block type of the current block is SKIP mode, or when it is at least one of P block and B block Can be encoded. That is, the predictive motion vector determiner 220 can select different motion vector prediction candidates for the current block, the SK block, the P block, and the B block, respectively. In this case, the prediction candidate identification flag encoder 240 can generate and code the prediction candidate selection flag differently according to each case. At this time, in the prediction candidate selector 220 and the prediction candidate selection encoder 250, the motion vector prediction candidates selected differently according to the case of the block type SKIP mode, the case of the P block, the case of the B block, And transmits it. In the video decoding apparatus, motion vector prediction candidates differently selected according to the block type of the current block, the skip mode, the P block, and the B block can be decoded and determined.

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

부호화기(150)는 하나 이상의 움직임 벡터 예측 후보를 선택하고(S1210), 하나 이상의 움직임 벡터 예측 후보 중에서 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정하며(S1220), 기 결정된 현재 움직임 벡터에서 단계 S1220에서 결정된 예측 움직임 벡터를 감산하여 차분 벡터를 계산하고(S1230), 계산된 차분 벡터를 부호화한다(S1240).The encoder 150 selects one or more motion vector prediction candidates (S1210), determines one motion vector prediction candidate among the one or more motion vector prediction candidates as a predicted motion vector (S1220) (S1230), and the calculated difference vector is encoded (S1240).

여기서, 부호화기(150)는 단계 S1210에서 선택된 하나 이상의 움직임 벡터 중에서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지를 식별하는 예측 후보 식별 플래그를 생성하여 부호화할 수 있다. 또한, 부호화기(150)가 하나 이상의 움직임 벡터 예측 후보를 선택하는 방법, 예측 움직임 벡터를 결정하는 방법과 예측 후보 식별 플래그를 생성하여 부호화하는 방법에 대해서는 도 2 내지 도 11을 통해 전술하였으므로, 상세한 설명은 생략한다. 또한, 도 12에서 나타낸 단계의 순서는 예시일 뿐, 본 발명이 이러한 순서에 반드시 한정되는 것은 아니며 그 순서는 선택적으로 변경될 수 있으며, 경우에 따라서는 일부 또는 전부의 단계가 병렬적으로 수행될 수도 있다.Here, the encoder 150 may generate and encode a prediction candidate identification flag that identifies which motion vector prediction candidate is determined as a prediction motion vector from among the one or more motion vectors selected in step S1210. The method of selecting one or more motion vector prediction candidates, the method of determining a predicted motion vector, and the method of generating and encoding a prediction candidate identification flag have been described with reference to FIGS. 2 to 11, Is omitted. The order of steps shown in Fig. 12 is only an example, and the present invention is not necessarily limited to this order, and the order may be selectively changed, and in some cases, some or all of the steps may be performed in parallel It is possible.

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

영상 부호화 장치(100)는 현재 블록의 현재 움직임 벡터를 결정하고 결정된 현재 움직임 벡터를 이용하여 예측 블록을 생성하며(S1310), 현재 블록과 예측 블록을 감산하여 잔차 블록을 생성하고 잔차 블록을 변환하여 양자화하고 부호화한다(S1320). 영상 부호화 장치(100)는 하나 이상의 움직임 벡터 예측 후보 중에서 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정하고(S1330), 현재 움직임 벡터에서 단계 S1330에서 결정된 예측 움직임 벡터를 감산한 차분 벡터를 부호화한다(S1340). 이때, 영상 부호화 장치(100)는 예측 후보 식별 플래그를 생성하여 부호화할 수 있다. 영상 부호화 장치(100)는 단계 S1320에서 부호화된 잔차 블록 및 단계 S1340에서 부호화된 차분 벡터를 포함하는 비트스트림을 생성하여 출력한다(S1350). 영상 부호화 장치(100)는 예측 후보 식별 플래그가 부호화된 경우에는 비트스트림에 부호화된 예측 후보 식별 플래그를 추가로 포함시킬 수 있다. 또한, 도 13에서 나타낸 단계의 순서는 예시일 뿐, 본 발명이 이러한 순서에 반드시 한정되는 것은 아니며 그 순서는 선택적으로 변경될 수 있으며, 경우에 따라서는 일부 또는 전부의 단계가 병렬적으로 수행될 수도 있다.The image coding apparatus 100 determines a current motion vector of the current block and generates a prediction block using the determined current motion vector (S1310). The current block and the prediction block are subtracted to generate a residual block, and the residual block is transformed Quantized and encoded (S1320). The image encoding apparatus 100 determines one of the motion vector prediction candidates as a predicted motion vector as a predicted motion vector (S1330) and encodes a difference vector obtained by subtracting the predicted motion vector determined in step S1330 from the current motion vector (S1340). At this time, the image encoding apparatus 100 can generate and encode a prediction candidate identification flag. The image encoding apparatus 100 generates and outputs a bitstream including the residual block encoded in step S1320 and the difference vector encoded in step S1340 (S1350). The image encoding apparatus 100 may further include a prediction candidate identification flag encoded in the bitstream when the prediction candidate identification flag is encoded. Also, the order of steps shown in Fig. 13 is only an example, and the present invention is not necessarily limited to this order, and the order may be selectively changed, and in some cases, some or all steps may be performed in parallel It is possible.

이상에서 전술한 바와 같이, 영상 부호화 장치(100)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 후술할 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.As described above, the image encoded with the bit stream by the image encoding apparatus 100 can be transmitted through a wired / wireless communication network such as the Internet, a local area wireless communication network, a wireless LAN network, a WiBro network, a 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.

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

본 발명의 일 실시예에 따른 영상 복호화 장치(1400)는 복호화기(1410), 역 양자화기(1420), 역 변환기(1430), 예측기(1440), 가산기(1450) 및 메모리(1460)을 포함하여 구성될 수 있다. 이러한 영상 복호화 장치(1400)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.An image decoding apparatus 1400 according to an embodiment of the present invention includes a decoder 1410, an inverse quantizer 1420, an inverse transformer 1430, a predictor 1440, an adder 1450, and a memory 1460 . The video decoding apparatus 1400 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.

복호화기(1410)는 비트스트림으로부터 부호화된 잔차 블록과 부호화된 차분 벡터를 추출하고 복호화하여 잔차 블록 및 차분 벡터를 복원하며, 하나 이상의 움직임 벡터 예측 후보 중에서 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정하고 예측 움직임 벡터와 복원된 차분 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원한다.The decoder 1410 extracts the residual block coded from the bitstream and the coded difference vector to reconstruct the residual block and the difference vector, and selects one of the motion vector prediction candidates as the predicted motion vector And restores the current motion vector of the current block by adding the predicted motion vector and the reconstructed difference vector.

여기서, 복호화기(1410)는 비트스트림으로부터 부호화된 예측 후보 식별 플래그를 추가로 추출하고 복호화하여 예측 후보 식별 플래그를 추가로 복원하되, 하나 이상의 움직임 벡터 예측 후보 중에서 복원된 예측 후보 식별 플래그에 의해 식별되는 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정할 수 있다.Here, the decoder 1410 further extracts and decodes the encoded predictive candidate identification flag from the bitstream to further recover the predictive candidate identification flag, and identifies it by the restored predictive candidate identification flag among the at least one motion vector predictive candidate Can be determined as a predicted motion vector.

또한, 복호화기(1410)는 비트스트림으로부터 부호화된 예측 후보 식별 플래그와 부호화된 일부 예측 후보 식별 플래그를 복호화하여 예측 후보 식별 플래그 및 일부 예측 후보 식별 플래그를 복원하고, 하나 이상의 움직임 벡터 예측 후보 중에서 복원된 일부 예측 후보 식별 플래그에 의해 식별되는 일부 움직임 벡터 예측 후보 중에서 복원된 예측 후보 식별 플래그에 의해 식별되는 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정할 수 있다.Also, the decoder 1410 decodes the predicted candidate identification flag and the encoded partial predicted candidate identification flag from the bitstream to restore the predicted candidate identification flag and the partial predicted candidate identification flag, and restores one or more motion vector prediction candidates The motion vector prediction candidate identified by the reconstructed prediction candidate identification flag among the motion vector prediction candidates identified by some of the prediction candidate identification flags can be determined as the predictive motion vector.

또한, 복호화기(1410)는 비트스트림으로부터 부호화된 예측 후보 식별 플래그를 추가로 추출하고 복호화하여 예측 후보 식별 플래그를 추가로 복원하되, 복원된 차분 벡터의 x-컴포넌트의 절대값 및 y-컴포넌트의 절대값 중 하나 이상이 각각 기 설정된 x-컴포넌트 임계값 및 기 설정된 y-컴포넌트 임계값 중 하나 이상보다 작거나 같은 경우에는, 복원된 예측 후보 식별 플래그에 의해 식별되는 움직임 벡터 예측 후보의 x-컴포넌트 및 y-컴포넌트 중 하나 이상을 예측 움직임 벡터의 x-컴포넌트 및 y-컴포넌트 중 하나 이상으로서 결정할 수 있다.In addition, the decoder 1410 further extracts and decodes the encoded prediction candidate identification flag from the bitstream to further recover the prediction candidate identification flag, and the absolute value of the x-component of the reconstructed differential vector and the absolute value of the y- Component x-component of the motion vector prediction candidate identified by the reconstructed prediction candidate identification flag, if at least one of the absolute values is less than or equal to at least one of the predetermined x-component threshold and the predetermined y- And y-components as one or more of the x-component and the y-component of the predicted motion vector.

역 양자화기(1420)는 복호화기(1410)에 의해 복원된 잔차 블록을 역 양자화하고, 역 변환기(1430)는 역 양자화기(1420)에 의해 역 양자화된 잔차 블록을 역 변환하며, 예측기(1440)는 복호화기(1410)에 의해 복원된 현재 움직임 벡터를 이용하여 예측 블록을 생성하며, 가산기(1450)는 역 변환기(1430)에 의해 역 변환된 잔차 블록과 예측기(1440)에 의해 생성된 예측 블록을 가산하여 현재 블록을 복원한다. 메모리(1460)는 가산기(1450)로부터 출력되는 복원된 현재 블록을 프레임 단위로 참조 프레임으로서 저장하여 예측기(1440)에서 참조 프레임을 이용할 수 있도록 한다.The inverse quantizer 1420 dequantizes the residual block reconstructed by the decoder 1410 and the inverse transformer 1430 inversely transforms the inverse quantized residual block by the inverse quantizer 1420. The inverse quantizer 1420 inversely quantizes the residual block reconstructed by the predictor 1440 ) Generates a prediction block using the current motion vector reconstructed by the decoder 1410 and the adder 1450 generates the prediction block generated by the inverse transformed residual block by the inverse transformer 1430 and the predicted block generated by the predictor 1440 The blocks are added to restore the current block. The memory 1460 stores the reconstructed current block output from the adder 1450 as a reference frame on a frame-by-frame basis so that the predictor 1440 can use the reference frame.

도 14에서는 도시하지 않았지만, 전술한 본 발명의 일 실시예에 따른 영상 복호화 장치(1400)는 H.264/AVC 표준에 기초하여, 인트라 예측을 위한 인트라 예측기, 복원된 현재 블록을 디블로킹 필터링(Deblocking Filtering)하는 디블록킹 필터기 등을 추가로 포함할 수 있다.Although not shown in FIG. 14, the video decoding apparatus 1400 according to an embodiment of the present invention described above may be configured to perform an intra predictor for intra prediction, a deblocking filtering Deblocking Filtering), and the like.

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

본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치는 도 14에서 전술한 본 발명의 일 실시예에 따른 영상 복호화 장치에서는 복호화기(1410)로 구현될 수 있다. 이하에서는 설명의 편의를 위해 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치를 복호화기(1410)라 칭한다.The motion vector decoding apparatus according to an embodiment of the present invention may be implemented as a decoder 1410 in the video decoding apparatus according to an embodiment of the present invention described above with reference to FIG. Hereinafter, a motion vector decoding apparatus according to an embodiment of the present invention will be referred to as a decoder 1410 for convenience of explanation.

본 발명의 일 실시예에 따른 복호화기(1410)는 차분 벡터 복호화기(1530) 및 움직임 벡터 복원기(1540)를 포함하여 구성될 수 있다. 또한, 복호화기(1410)는 경우에 따라서, 예측 후보 선택 플래그 복호화기(1510) 및 예측 후보 식별 플래그 복호화기(1520)를 추가로 포함할 수 있다. 또한, 복호화기(1410)는 부호화된 잔차 블록을 복호화하는 영상 복호화기를 추가로 포함할 수 있지만, 영상 복호화기는 당업자에게 자명하므로 상세한 설명을 생략한다.The decoder 1410 according to an embodiment of the present invention may include a difference vector decoder 1530 and a motion vector restorer 1540. In addition, the decoder 1410 may further include a prediction candidate selection flag decoder 1510 and a prediction candidate identification flag decoder 1520, as the case may be. In addition, the decoder 1410 may further include an image decoder for decoding the encoded residual block, but the image decoder is obvious to a person skilled in the art, and a detailed description thereof will be omitted.

차분 벡터 복호화기(1530)는 부호화된 차분 벡터를 복호화하여 차분 벡터를 복원한다. 움직임 벡터 복원기(1540)는 하나 이상의 움직임 벡터 예측 후보 중 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정하고, 결정된 예측 움직임 벡터와 복원된 차분 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원한다.The difference vector decoder 1530 decodes the coded difference vector to recover the difference vector. The motion vector restorer 1540 determines one of the motion vector prediction candidates as a predicted motion vector, and adds the determined predicted motion vector and the restored difference vector to restore the current motion vector of the current block .

예측 후보 선택 플래그 복호화기(1510)는 비트스트림의 헤더로부터 부호화된 예측 후보 선택 플래그를 복원하고, 후보 식별 플래그 복호화기(1530)는 비트스트림으로부터 부호화된 예측 후보 식별 플래그 중 하나 이상을 추출하고 복호화하여 복원한다. 움직임 벡터 복원기(1540)는 후보 선택 플래그 복호화기(1510)에 의해 복원된 예측 후보 선택 플래그에 의해 식별되는 움직임 벡터 예측 후보를 하나 이상의 움직임 벡터 예측 후보로서 결정할 수 있으며, 후보 식별 플래그 복호화기(1520)에 의해 복원된 예측 후보 식별 플래그에 의해 식별되는 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정할 수 있다.The prediction candidate selection flag decoder 1510 restores the encoded prediction candidate selection flag from the header of the bitstream, and the candidate identification flag decoder 1530 extracts one or more of the encoded prediction candidate identification flags from the bitstream, . The motion vector reconstructor 1540 may determine the motion vector prediction candidate identified by the prediction candidate selection flag restored by the candidate selection flag decoder 1510 as one or more motion vector prediction candidates, The motion vector prediction candidate identified by the prediction candidate identification flag reconstructed by the motion vector estimation unit 1520 can be determined as a predicted motion vector.

여기서, 움직임 벡터 복원기(1530)는 후보 선택 플래그 복호화기(1510)가 없거나 후보 선택 플래그 복호화기(1510)에 의해 예측 후보 선택 플래그가 복원되지 않은 경우, 부호화기(150)와 같이, 현재 블록의 주변 블록의 움직임 벡터, 참조 프레임에서 현재 블록의 위치와 동일한 위치에 있는 Col 블록의 움직임 벡터, Col 블록의 주변 블록의 움직임 벡터 및 현재 블록에서 참조 프레임의 특정 블록을 지시하는 지시 벡터 중 하나 이상을 하나 이상의 움직임 벡터 예측 후보로서 선택할 수 있다. 여기서, 특정 블록은 지시 벡터와 수평이거나 지시 벡터와의 차이가 기 설정된 임계값보다 작은 움직임 벡터를 갖는 블록일 수 있다. 이에 대해서는 도 5 내지 도 7을 통해 전술하였으므로 상세한 설명은 생략한다.Here, if the candidate selection flag decoder 1510 is not present or the prediction candidate selection flag is not restored by the candidate selection flag decoder 1510, the motion vector reconstructor 1530 may generate a motion vector of the current block A motion vector of a neighboring block, a motion vector of a col block at the same position as the current block in the reference frame, a motion vector of a neighboring block of the col block, and an indicator vector indicating a specific block of the reference frame in the current block It can be selected as one or more motion vector prediction candidates. Here, the specific block may be a block having a motion vector which is horizontal to the indicating vector or whose difference between the indicating vector is smaller than a preset threshold value. This has been described above with reference to FIGS. 5 to 7, and thus a detailed description thereof will be omitted.

또한, 선택된 하나 이상의 움직임 벡터 예측 후보가 모두 동일한 경우, 동일한 움직임 벡터 예측 후보는 하나의 움직임 벡터 예측 후보로 가정하고, 후보 식별 플래그 복호화기(1520)에서 예측 움직임 벡터로서 결정하고 복원된 차분 벡터와 가산하여 현재 움직임 벡터를 복원할 수 있다.If the selected one or more motion vector prediction candidates are all the same, the same motion vector prediction candidate is assumed to be one motion vector prediction candidate, and the candidate identification flag decoder 1520 determines the predicted motion vector, Thereby restoring the current motion vector.

또한, 움직임 벡터 복원기(1540)는 차분 벡터 복호화기(1530)에서 복원된 차분 벡터의 x-컴포넌트의 절대값 및 y-컴포넌트의 절대값이 각각 기 설정된 x-컴포넌트 임계값 및 기 설정된 y-컴포넌트 임계값보다 큰 경우에는, 후보 식별 플래그를 복호화하지 않아도 되며, 하나 이상의 움직임 벡터 예측 후보 각각을 이용하여 복원한 현재 움직임 벡터가 최소가 되는 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정할 수 있다.In addition, the motion vector restorer 1540 restores the absolute value of the x-component and the absolute value of the y-component of the differential vector reconstructed by the difference vector decoder 1530 to the predetermined x- The candidate identification flag may not be decoded and a motion vector prediction candidate in which the restored current motion vector is minimized using each of the one or more motion vector prediction candidates may be determined as a predicted motion vector.

도 8과 도 9를 참조하여 예를 들면, 차분 벡터가 임계값 보다 큰 경우, 움직임 벡터 복원기(1540)는 예측 후보 식별 플래그가 없이 선택된 움직임 벡터 예측 후보들 중에서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지 식별할 수 없는 경우, 첫 번째 움직임 벡터 예측 후보의 x-컴포넌트로 현재 움직임 벡터를 복원하면, 현재 움직임 벡터는 '7'(10-3=7)이 된다. 하지만, 두 번째 움직임 벡터 예측 후보의 x-컴포넌트가 '7'이므로 첫 번째 움직임 벡터 예측 후보의 x-컴포넌트를 이용하여 부호화된 것이 아님을 식별할 수 있다. 두 번째 움직임 벡터 예측 후보의 x-컴포넌트를 이용하여 현재 움직임 벡터를 복원하면, 현재 움직임 벡터는 '4'(7-3=4)이므로, 현재 움직임 벡터가 '4'인 경우에는 두 번째 움직임 벡터 예측 후보의 x-컴포넌트로 예측한 것보다는 세 번째 움직임 벡터 예측 후보로 예측한 경우가 더욱 최적인 것을 식별할 수 있다. 따라서, 두 번째 움직임 벡터 예측 후보의 x-컴포넌트를 이용하여 부호화된 것이 아님을 알 수 있다. 이와 같은 방법을 통해, 세 번째 움직임 벡터 예측 후보의 x-컴포넌트가 최적임을 알 수 있으므로, 영상 부호화 장치(100)에서 세 번째 움직임 벡터 예측 후보의 x-컴포넌트로 예측 움직임 벡터의 x-컴포넌트를 결정했음을 식별할 수 있다.8 and 9, if the difference vector is greater than the threshold value, the motion vector reconstructor 1540 determines that any motion vector prediction candidate among the motion vector prediction candidates selected without the prediction candidate identification flag is a predictive motion vector , The current motion vector is '7' (10-3 = 7) if the current motion vector is restored to the x-component of the first motion vector prediction candidate. However, since the x-component of the second motion vector prediction candidate is '7', it can be discriminated that it is not encoded using the x-component of the first motion vector prediction candidate. When the current motion vector is restored using the x-component of the second motion vector prediction candidate, the current motion vector is '4' (7-3 = 4). Therefore, if the current motion vector is '4' It is possible to identify that the prediction with the third motion vector prediction candidate is more optimal than the prediction with the x-component of the prediction candidate. Therefore, it can be seen that the motion vector is not encoded using the x-component of the second motion vector prediction candidate. In this way, since the x-component of the third motion vector prediction candidate is found to be optimal, the image coding apparatus 100 determines the x-component of the predicted motion vector with the x-component of the third motion vector prediction candidate Can be identified.

또한, 복호화기(1410)에서 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트 임계값보다 커서 예측 후보 식별 플래그를 복호화 하지 않아도 되는 경우, 움직임 벡터 예측 후보들을 각각 컴포넌트별로 따로따로 복호화하여 예측 움직임 벡터를 결정할 수 있다. 예를 들면, 부호화기(150)에 대한 설명에서 전술한 바와 같이, 차분 벡터의 두 컴포넌트의 절대값이 모두 각 컴포넌트의 임계값 보다 큰 경우, x-컴포넌트에 대한 최적의 예측 움직임 벡터를 'A'로 결정하고, y-컴포넌트의 최적의 예측 움직임 벡터를 'B'로 결정하여, 각각 컴포넌트별로 다른 움직임 벡터 예측 후보로 예측 움직임 벡터를 결정할 수 있다.If the decoder 1410 does not need to decode the prediction candidate identification flag because the absolute value of each component of the difference vector is larger than the corresponding component threshold value, the motion vector prediction candidates are separately decoded for each component, You can decide. For example, as described in the description of the encoder 150, when the absolute values of the two components of the difference vector are all greater than the threshold value of each component, the optimal predicted motion vector for the x- , And the optimal predicted motion vector of the y-component is determined as 'B', and the predicted motion vector may be determined as a different motion vector prediction candidate for each component.

또한, 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트 임계값보다 작거나, 두 컴포넌트 중 하나만 작은 경우, 복호화기(1410)가 예측 후보 식별 플래그를 복호화해야 한다. 움직임 벡터 복원기(1540)는 예측 후보 식별 플래그 복호화기(1520)에 의해 복원된 예측 후보 식별 플래그에 의해 식별되는 움직임 벡터 예측 후보를 움직임 벡터 예측 후보로서 결정할 수 있다. 또한, 차분 벡터의 x-컴포넌트와 y-컴포넌트가 임계값보다 모두 작은 경우, x-컴포넌트와 y-컴포넌트 각각 예측 후보 식별 플래그를 복호화하여 식별되는 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정할 수도 있고, 하나의 예측 후보 식별 플래그를 복호화하여 두 컴포넌트를 동시에 만족하는 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정할 수도 있다. 차분 벡터의 두 컴포넌트의 절대값 중 하나만 해당 컴포넌트의 임계값보다 큰 경우, 해당 컴포넌트의 임계값보다 작은 컴포넌트에 대해서만 예측 후보 식별 플래그를 복호화한다. 움직임 벡터 복원기(1540)는 차분 벡터 복호화기(1530)에 의해 복원된 차분 벡터의 x-컴포넌트의 절대값 및 y-컴포넌트의 절대값 중 하나 이상이 각각 기 설정된 x-컴포넌트 임계값 및 기 설정된 y-컴포넌트 임계값 중 하나 이상보다 작거나 같은 경우에는, 예측 후보 식별 플래그 복호화기(1520)에 의해 복원된 예측 후보 식별 플래그에 의해 식별되는 움직임 벡터 예측 후보의 x-컴포넌트 및 y-컴포넌트 중 하나 이상을 예측 움직임 벡터의 x-컴포넌트 및 y-컴포넌트 중 하나 이상으로서 결정할 수 있다. 이때, 예측 후보 선택 플래그 복호화기(1510)가 예측 후보 선택 플래그를 복원한 경우, 움직임 벡터 복원기(1540)가 예측 후보 선택 플래그에 의해 식별되는 움직임 벡터 예측 후보 중에서 복원된 예측 후보 식별 플래그에 의해 식별되는 움직임 벡터 예측 후보의 x-컴포넌트 및 y-컴포넌트 중 하나 이상을 예측 움직임 벡터의 x-컴포넌트 및 y-컴포넌트 중 하나 이상으로서 결정할 수 있음은 물론이다.Also, if the absolute value of each component of the difference vector is smaller than the corresponding component threshold value or only one of the two components is small, the decoder 1410 must decode the prediction candidate identification flag. The motion vector reconstructor 1540 can determine the motion vector prediction candidate identified by the prediction candidate identification flag restored by the prediction candidate identification flag decoder 1520 as a motion vector prediction candidate. If the x-component and the y-component of the difference vector are both smaller than the threshold value, the motion vector prediction candidate identified by decoding the prediction candidate identification flag of each of the x-component and the y- It is also possible to decode one prediction candidate identification flag to determine a motion vector prediction candidate satisfying both components at the same time as a prediction motion vector. If only one of the absolute values of the two components of the difference vector is larger than the threshold value of the corresponding component, the prediction candidate identification flag is decoded only for the component smaller than the threshold of the component. The motion vector reconstructor 1540 may be configured such that at least one of the absolute value of the x-component and the absolute value of the y-component of the differential vector restored by the difference vector decoder 1530 is set to a predetermined x- component and y-component of the motion vector prediction candidate identified by the prediction candidate identification flag reconstructed by the prediction candidate identification flag decoder 1520, if one or more of the y- Of the predicted motion vector as one or more of the x-component and the y-component of the predicted motion vector. At this time, when the prediction candidate selection flag decoder 1510 restores the prediction candidate selection flag, the motion vector reconstructor 1540 generates the prediction candidate selection flag by using the restored prediction candidate identification flag among the motion vector prediction candidates identified by the prediction candidate selection flag It is of course possible to determine at least one of the x-component and the y-component of the identified motion vector prediction candidate as at least one of the x-component and the y-component of the predicted motion vector.

예를 들어, 도 2를 통해 전술한 예측 후보 식별 플래그 부호화기(240)는 하나의 컴포넌트만이 임계값보다 작은 경우에는 임계값보다 큰 하나의 컴포넌트로 어떠한 움직임 벡터 예측 후보가 이용되었는지를 식별하는 예측 후보 식별 플래그를 생성하며, 두 개의 컴포넌트가 모두 임계값보다 크지 않은 경우에는 두 개의 컴포넌트로 어떠한 움직임 벡터 예측 후보가 이용되었는지를 식별하는 하나의 예측 후보 식별 플래그를 생성하여 부호화하거나 두 개의 컴포넌트로 어떠한 움직임 벡터 예측 후보가 이용되었는지를 식별하는 두 개의 예측 후보 식별 플래그를 생성하여 부호화할 수 있다.For example, in the case where only one component is smaller than the threshold value, the prediction candidate identification flag encoder 240 described above with reference to FIG. 2 uses a prediction value that identifies which motion vector prediction candidate is used as one component larger than a threshold value If both components are not larger than the threshold value, a prediction candidate identification flag that identifies which motion vector prediction candidate is used as the two components is generated and encoded, Two prediction candidate identification flags for identifying whether the motion vector prediction candidates are used can be generated and encoded.

따라서, 예측 후보 식별 플래그 복호화기(1520)가 비트스트림으로부터 두 개의 부호화된 예측 후보 식별 플래그를 추출하여 복호화하면, 움직임 벡터 복원기(1540)는 두 개의 예측 후보 식별 플래그로 식별되는 움직임 벡터 예측 후보의 x-컴포넌트와 y-컴포넌트를 예측 움직임 벡터의 x-컴포넌트와 y-컴포넌트로 결정할 수 있다. 또한, 후보 식별 플래그 복호화기(1520)는 하나의 부호화된 예측 후보 식별 플래그를 추출하여 복호화하면, 움직임 벡터 복원기(1540)는 하나의 예측 후보 식별 플래그에 의해 식별되는 움직임 벡터 예측 후보의 x-컴포넌트 및 y-컴포넌트로 예측 움직임 벡터의 x-컴포넌트 및 y-컴포넌트를 결정하거나 하나의 예측 후보 식별 플래그에 의해 식별되는 움직임 벡터 예측 후보의 x-컴포넌트 또는 y-컴포넌트를 예측 움직임 벡터의 x-컴포넌트 또는 y-컴포넌트를 결정할 수 있다.Accordingly, when the predictive candidate identification flag decoder 1520 extracts and decodes the two encoded predictive candidate identification flags from the bitstream, the motion vector reconstructor 1540 obtains the motion vector prediction candidates identified by the two predictive candidate identification flags And the y-component of the predicted motion vector as the x-component and the y-component of the predicted motion vector. If the candidate identification flag decoder 1520 extracts and decodes one encoded prediction candidate identification flag, the motion vector reconstructor 1540 obtains the x-direction of the motion vector prediction candidate identified by one prediction candidate identification flag, Component or y-component of the predicted motion vector or a x-component or y-component of the motion vector prediction candidate identified by one predictive candidate identification flag to the x-component of the predicted motion vector Or a y-component.

이때, 움직임 벡터 복원기(1540)는 하나의 예측 후보 식별 플래그에 의해 식별되는 움직임 벡터 예측 후보의 x-컴포넌트와 y-컴포넌트 중 어느 컴포넌트를 예측 움직임 벡터의 해당 컴포넌트로 결정할 것인지는 영상 부호화 장치(100)의 예측 후보 식별 플래그 부호화기(240)와 약속(또는 기 설정)된 컴포넌트로 결정할 수 있다. 또한, 움직임 벡터 복원기(1540)는 하나의 예측 후보 식별 플래그에 의해 식별되는 움직임 벡터 예측 후보의 x-컴포넌트와 y-컴포넌트 중 어느 컴포넌트를 예측 움직임 벡터의 해당 컴포넌트로 결정한 경우, 예측 움직임 벡터의 나머지 컴포넌트는 하나 이상의 움직임 벡터 예측 후보의 해당 컴포넌트 각각을 이용하여 복원한 현재 움직임 벡터가 최소가 되는 움직임 벡터 예측 후보의 해당 컴포넌트를 예측 움직임 벡터의 해당 컴포넌트로서 결정할 수 있다.At this time, the motion vector restorer 1540 determines which of the x-component and the y-component of the motion vector prediction candidate identified by the one prediction candidate identification flag is the corresponding component of the predicted motion vector, (Or preset) with the predictive candidate identification flag encoder 240 of FIG. In addition, when a component of the x-component and the y-component of the motion vector prediction candidate identified by one prediction candidate identification flag is determined as a corresponding component of the predicted motion vector, The remaining components can determine the corresponding component of the motion vector prediction candidate in which the restored current motion vector is minimized by using each of the corresponding components of the one or more motion vector prediction candidates as a corresponding component of the predicted motion vector.

또한, 복호화기(1410)는 예측 후보 선택 플래그 복호화기(1510)에서 선택된 움직임 벡터 예측 후보들을 이용하여 부호화기(150)에 대한 설명에서 전술한 수학식 7과 같이 선택된 예측 후보들의 개수를 N이라고 하면, N-1개의 임계값을 계산하여 도8과 도 10과 같이 차분 벡터의 크기에 따라 복호화할 예측 후보 식별 플래그의 길이가 달라진다. 예측 후보 식별 플래그 복호화기(1520)는 차분 벡터의 각 컴포넌트의 절대값의 크기와 각 컴포넌트 임계값에 따라, 예측 후보 식별 플래그를 다르게 생성하고 복호화한다. 즉, 예측 후보 식별 플래그 복호화기(1520)는 N-1개의 임계값을 내림차순으로 정렬하여 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트의 가장 작은 임계값보다 작거나 같은 경우, N개의 선택된 움직임 벡터 예측 후보들 중에서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로 결정되었는지를 식별하는 예측 후보 식별 플래그를 복호화하며, 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트의 두 번째로 작은 임계값보다 작거나 같은 경우, 해당 컴포넌트의 가장 작은 임계값을 가지는 두 개의 움직임 벡터 예측 후보들의 사이에 현재 움직임 벡터가 없다고 가정을 하고 N-1개의 선택된 움직임 벡터 예측 후보들 중에서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로 결정되었는지를 식별하는 예측 후보 식별 플래그를 복호화한다. 차분 벡터의 각 컴포넌트의 절대값이 해당 컴포넌트의 세 번째로 작은 임계값보다 작거나 같은 경우, 해당 컴포넌트의 가장 작은 임계값을 가지는 두 개의 움직임 벡터 예측 후보들의 사이에 현재 움직임 벡터가 없다고 가정을 하고, 해당 컴포넌트의 두 번째로 작은 임계값을 가지는 두 개의 움직임 벡터 예측 후보들 사이에도 현재 움직임 벡터가 없다고 가정을 하고, N-2개의 선택된 움직임 벡터 예측 후보들 중에서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로 결정되었는지를 식별하기 위한 예측 후보 식별 플래그를 복호화한다. If the number of prediction candidates selected as shown in Equation (7) in the description of the encoder 150 is N using the motion vector prediction candidates selected by the decoder 1510, the decoder 1410 decodes , The N-1 threshold values are calculated and the length of the prediction candidate identification flag to be decoded is changed according to the size of the difference vector as shown in FIG. 8 and FIG. The prediction candidate identification flag decoder 1520 generates and decodes the prediction candidate identification flag differently according to the magnitude of the absolute value of each component of the difference vector and each component threshold value. That is, if the absolute value of each component of the difference vector is smaller than or equal to the smallest threshold value of the corresponding component, the prediction candidate identification flag decoder 1520 arranges N-1 threshold values in descending order, A prediction candidate identification flag that identifies which motion vector prediction candidate has been determined as a prediction motion vector among the prediction candidates is decoded and if the absolute value of each component of the difference vector is smaller than or equal to a second smallest threshold value of the component, It is assumed that there is no current motion vector between two motion vector prediction candidates having the smallest threshold value of the corresponding component and it is discriminated whether any motion vector prediction candidate among N-1 selected motion vector prediction candidates is determined as a predicted motion vector And decodes the prediction candidate identification flag. If the absolute value of each component of the difference vector is less than or equal to the third smallest threshold value of the component, it is assumed that there is no current motion vector between the two motion vector prediction candidates having the smallest threshold value of the component , It is assumed that there is no current motion vector between two motion vector prediction candidates having the second smallest threshold value of the corresponding component, and any motion vector prediction candidate among N-2 selected motion vector prediction candidates is determined as a predicted motion vector And decodes the predictive candidate identification flag for identifying whether or not the received signal has been received.

복호화할 후보 예측 후보 식별 플래그의 길이는 도 11과 같이 부호화기에서 전술한 바와 같이 수학식 9에 의해 계산된 값이 정수인 경우, 한 비트만 읽어서 '1'인 경우는 가장 높은 확률의 움직임 벡터 예측 후보가 결정이 된다. '0'인 경우는 수학식 8과 같이 예측 후보 식별 플래그의 최대 길이만큼 읽어서 움직임 벡터 예측 후보를 결정한다. 수학식 9에 의해 계산된 값이 정수가 아닌 경우, 수학식 8과 같이 예측 후보 식별 플래그의 최대 길이만큼 읽어서 움직임 벡터 예측 후보(MVp_cand[i])를 결정한다.The length of the candidate prediction candidate identification flag to be decoded is one bit read when the value calculated by Equation (9) is an integer as described above in the encoder as shown in FIG. 11, and when it is '1', the highest probability motion vector prediction candidate Is determined. '0', the motion vector prediction candidate is determined by reading the maximum length of the prediction candidate identification flag as shown in Equation (8). If the value calculated by Equation (9) is not an integer, the motion vector prediction candidate MVp_cand [i] is determined by reading a maximum length of the prediction candidate identification flag as shown in Equation (8).

도 8과 도 10을 참조하여 예를 들면, 움직임 벡터 예측 후보의 개수는 4개이고 각각의 임계값은 '1', '3', '5'가 된다. 도 10은 3개의 임계값에 따른 구간을 나눈 그림이다. ①로 표시된 구간은 움직임 벡터 예측 후보들의 x-컴포넌트를 나타낸 것이고, ②로 표시된 구간은 차분 벡터의 x-컴포넌트의 절대값이 x-컴포넌트의 가장 작은 임계값보다 작거나 같은 경우의 현재 움직임 벡터의 x-컴포넌트가 위치하는 구간을 나타낸 것이고, ③으로 표시된 구간은 차분 벡터의 x-컴포넌트의 절대값이 x-컴포넌트의 두 번째로 작은 임계값보다 작거나 같은 경우의 현재 움직임 벡터의 x-컴포넌트가 위치하는 구간을 나타낸 것이고, ④로 표시된 구간은 차분 벡터의 x-컴포넌트의 절대값이 x-컴포넌트의 가장 큰 임계값보다 작거나 같은 경우의 현재 움직임 벡터의 x-컴포넌트가 위치하는 구간을 나타낸 것이고, ⑤로 표시된 구간은 차분 벡터의 x-컴포넌트의 절대값이 x-컴포넌트의 가장 큰 임계값보다 큰 경우의 현재 움직임 벡터의 x-컴포넌트가 위치하는 구간을 나타낸 것이다.Referring to FIG. 8 and FIG. 10, for example, the number of motion vector prediction candidates is 4, and the threshold values are '1', '3', and '5', respectively. 10 is a diagram obtained by dividing a section according to three threshold values. The interval indicated by (1) represents the x-component of the motion vector prediction candidates, and the interval indicated by (2) represents the current motion vector when the absolute value of the x-component of the difference vector is smaller than or equal to the smallest threshold value of the x- component, and the interval indicated by (3) indicates that the x-component of the current motion vector when the absolute value of the x-component of the difference vector is smaller than or equal to the second smallest threshold value of the x- Component, and the section indicated by (4) represents a section where the x-component of the current motion vector is located when the absolute value of the x-component of the difference vector is smaller than or equal to the largest threshold value of the x-component , The interval indicated by (5) indicates that the x-component of the current motion vector in the case where the absolute value of the x-component of the difference vector is larger than the largest threshold value of the x- A shows a section in which location.

예측 후보 식별 플래그 복호화기(1520)는 ②로 표시된 구간에서는 4개의 움직임 벡터 예측 후보 중에서 어떠한 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정했는지를 식별하는 예측 후보 식별 플래그를 복호화 하고, ③으로 표시된 구간에서는 3개의 움직임 벡터 예측 후보 중에서 어떠한 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정했는지를 식별하는 예측 후보 식별 플래그를 복호화 하며, ④로 표시된 구간에서는 2개의 움직임 벡터 예측 후보 중에서 어떠한 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정했는지를 식별하는 예측 후보 식별 플래그를 복호화 하며, ⑤로 표시된 구간에서는 예측 후보 식별 플래그를 복호화 하지 않는다.The predictive candidate identification flag decoder 1520 decodes a prediction candidate identification flag that identifies which of the four motion vector prediction candidates has been determined as a predictive motion vector in the section indicated by 2, A prediction candidate identification flag that identifies which of the three motion vector prediction candidates the motion vector prediction candidate is determined as a prediction motion vector is decoded. In a section indicated by 4, any motion vector prediction candidate is predicted Decodes the prediction candidate identification flag that identifies whether the vector is determined as the vector, and does not decode the prediction candidate identification flag in the period indicated by (5).

차분 벡터가 '+4'인 경우는 두 번째로 큰 임계값보다 크면서 가장 큰 임계값보다 작으므로, 부호화기(150)에 대한 설명에서 전술한 바와 같이 도 10의 구간 ④에 속한다는 것을 알 수 있다. 예측 후보로 '4' 및 '14' 중 부호화기(150)에서 어떠한 움직임 벡터 예측 후보를 사용하였는지를 나타내는 예측 후보 식별 플래그를 복호화하면 된다. 이때, 수학식 8에 의하여 복호화할 움직임 벡터 예측 후보의 개수가 2개이므로, 한 비트만 복호화하면 된다. 차분 벡터가 '-3'인 경우는 도 10의 구간 ③에 속하므로, 움직임 벡터 예측 후보 '-4', '2', '14' 중에서 부호화기(150)에서 어떠한 예측 후보를 사용하였는지를 나태내는 예측 후보 식별 플래그를 복호화하면 된다. 이때, 복호화할 예측 후보의 개수가 3개이기 때문에 수학식 9에 의한 계산된 값이 정수가되므로, 도 11과 같이 한 비트만 먼저 읽은 값이 '1'인 경우, MVp_cand[0]을 움직임 벡터 예측 후보로 사용하고, '0'인 경우 수학식 8에 의하여 계산된 복호화할 예측 후보 식별 플래그의 길이만큼 복호화하면 된다.If the difference vector is '+4', it is larger than the second-largest threshold value and smaller than the largest threshold value. Therefore, as described in the description of the encoder 150, have. A prediction candidate identification flag indicating which motion vector prediction candidate is used in the encoder 150 among the prediction candidates '4' and '14' may be decoded. At this time, since the number of motion vector prediction candidates to be decoded by Equation (8) is two, only one bit can be decoded. The motion vector prediction candidates '-4', '2' and '14' are used as prediction candidates indicating which prediction candidates are used by the encoder 150. In this case, The identification flag can be decoded. Since the number of prediction candidates to be decoded is 3, the calculated value according to Equation (9) is an integer. Thus, if MVp_cand [0] is a value read first by one bit as shown in FIG. 11, MVp_cand [ Decoded by the length of the predictive candidate identification flag to be decoded calculated by Equation (8) in case of '0'.

또한, 복호화기(1410)가 예측 후보 식별 플래그 복호화기(1520)를 추가로 포함하는 경우, 움직임 벡터 복원기(1540)는 예측 후보 식별 플래그를 한 비트만 읽어서, 읽어진 한 비트가 예를 들어 '1'인지 여부를 판단하여 확률이 가장 높은 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지를 식별하고, 확률이 가장 높은 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되지 않은 경우에만, 한 비트 이상을 추가로 읽어서 어떠한 움직임 벡터 예측 후보가 예측 움직임 벡터로서 결정되었는지를 식별할 수 있다.In the case where the decoder 1410 further includes the prediction candidate identification flag decoder 1520, the motion vector restorer 1540 reads only one bit of the prediction candidate identification flag, 1 &quot;, it is discriminated whether the motion vector prediction candidate having the highest probability is determined as the prediction motion vector, and only when the motion vector prediction candidate having the highest probability is not determined as the prediction motion vector, It is further possible to identify which motion vector prediction candidate has been determined as a predicted motion vector.

이때, 움직임 벡터 복원기(1540)는 하나 이상의 움직임 벡터 예측 후보를 이용하여 현재 프레임의 하나 이상의 영역을 부호화함으로써, 하나 이상의 움직임 벡터 예측 후보 각각에 대해 현재 움직임 벡터로 결정될 확률을 계산할 수도 있으며, 임의로 지정되어 설정되는 확률에 따르거나 임의로 지정되어 설정되는 움직임 벡터 예측 후보를 확률이 가장 높은 움직임 벡터 예측 후보로 선택할 수 있다.At this time, the motion vector reconstructor 1540 may calculate a probability that the current motion vector is determined for each of the one or more motion vector prediction candidates by coding one or more regions of the current frame using one or more motion vector prediction candidates, The motion vector prediction candidate set according to the probability of being designated or set or set arbitrarily can be selected as the motion vector prediction candidate having the highest probability.

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

복호화기(1410)는 비트스트림으로부터 부호화된 예측 후보 식별 플래그를 읽어 복호화하여 예측 후보 식별 플래그를 복원하고(S1610), 비트스트림으로부터 부호화된 차분 벡터를 읽어 복호화하여 차분 벡터를 복원하고(S1620), 비트스트림으로부터 부호화된 예측 후보 식별 플래그를 읽어 복호화하여 예측 후보 식별 플래그를 복원하고(S1630), 하나 이상의 움직임 벡터 예측 후보 중 단계 S1630에서 복원된 예측 후보 식별 플래그에 의해 식별되는 움직임 벡터 예측 후보를 예측 움직임 벡터로 결정하고, 결정된 예측 움직임 벡터와 단계 S1620에서 복원된 차분 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원한다(S1640). 여기서, 복호화기(1410)는 단계 S1610과 단계 S1630을 반드시 수행하지 않을 수 있으며, 이 경우 복호화기(1410)는 단계 S1640에서 예측 움직임 벡터를 결정할 때 도 15를 통해 전술한 바와 같이, 예측 후보 식별 플래그가 없는 경우 예측 움직임 벡터를 결정하는 방법에 따라 예측 움직임 벡터를 결정할 수 있다. 또한, 도 16에서 나타낸 단계의 순서는 예시일 뿐, 본 발명이 이러한 순서에 반드시 한정되는 것은 아니며 그 순서는 선택적으로 변경될 수 있다.The decoder 1410 reads and decodes the encoded prediction candidate identification flag from the bit stream to restore the prediction candidate identification flag (S1610), reads and decodes the encoded difference vector from the bit stream to restore the difference vector (S1620) (Step S1630). A motion vector prediction candidate identified by the prediction candidate identification flag reconstructed in step S1630 of the one or more motion vector prediction candidates is predicted by decoding the predicted candidate identification flag And determines the current motion vector of the current block by adding the determined predicted motion vector and the restored difference vector in step S1620 (S1640). Here, the decoder 1410 may not necessarily perform steps S1610 and S1630. In this case, when the predictive motion vector is determined in step S1640, the decoder 1410 decodes the prediction candidate identification If there is no flag, the predicted motion vector can be determined according to the method of determining the predicted motion vector. Also, the order of the steps shown in FIG. 16 is only an example, and the present invention is not necessarily limited to this order, and the order may be selectively changed.

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

영상 복호화 장치(1400)는 비트스트림으로부터 부호화된 예측 후보 식별 플래그를 추출하여 복호화함으로써 예측 후보 식별 플래그를 복원하고(S1710), 비트스트림으로부터 부호화된 차분 벡터를 추출하여 복호화함으로써 차분 벡터를 복원하며(S1720), 비트스트림으로부터 부호화된 예측 후보 식별 플래그를 추출하여 복호화함으로써 예측 후보 식별 플래그를 복원하고(S1730), 하나 이상의 움직임 벡터 예측 후보 중에서 단계 S1730에서 복원된 예측 후보 식별 플래그에 의해 움직임 벡터 예측 후보를 예측 움직임 벡터로서 결정하여 결정된 예측 움직임 벡터와 단계 S1720에서 복원된 차분 벡터를 가산하여 현재 움직임 벡터를 복원한다(S1740).The image decoding apparatus 1400 reconstructs the prediction candidate identification flag by extracting and decoding the encoded prediction candidate identification flag from the bit stream (S1710), extracts and decodes the encoded difference vector from the bit stream to restore the difference vector ( S1720), the predicted candidate identification flag is extracted and decoded from the bitstream to decode the predicted candidate identification flag (S1730), and among the one or more motion vector prediction candidates, the motion vector prediction candidate As a predicted motion vector, and adds the determined predicted motion vector and the reconstructed difference vector in step S1720 to reconstruct the current motion vector (S1740).

영상 복호화 장치(1400)는 단계 S1740에서 복원된 현재 움직임 벡터를 이용하여 현재 블록의 움직임을 추정 및 보상하여 현재 블록을 예측하고 예측 블록을 생성하며(S1750), 비트스트림으로부터 부호화된 잔차 블록을 추출하고 부호화된 잔차 블록을 역 양자화, 역 변환하여 복호화함으로써 잔차 블록을 복원하고 복원된 잔차 블록을 예측 블록과 가산하여 현재 블록을 복원한다(S1760).The image decoding apparatus 1400 estimates and compensates for the motion of the current block using the restored current motion vector in step S1740 to generate a predicted block and generates a predicted block (S1750), and extracts the encoded residual block from the bitstream And decodes the coded residual block by inverse-quantizing and inverse-transforming the decoded residual block to restore the residual block, and restores the current block by adding the restored residual block to the prediction block (S1760).

여기서, 영상 복호화 장치(1400)는 단계 S1710과 단계 S1730을 반드시 수행하지 않을 수 있으며, 이 경우 영상 복호화 장치(1400)는 단계 S1740에서 예측 움직임 벡터를 결정할 때 도 15를 통해 전술한 바와 같이, 예측 후보 식별 플래그가 없는 경우 예측 움직임 벡터를 결정하는 방법에 따라 예측 움직임 벡터를 결정할 수 있다. 또한, 도 17에서 도시하고 설명한 단계는 도시하고 설명된 순서에 반드시 한정되지 않으며, 그 순서가 선택적으로 변경될 수 있다.Here, the image decoding apparatus 1400 may not necessarily perform steps S1710 and S1730. In this case, when determining the predicted motion vector in step S1740, the image decoding apparatus 1400 decodes the prediction If there is no candidate identification flag, a predicted motion vector may be determined according to a method of determining a predicted motion vector. In addition, the steps shown and described in Fig. 17 are not necessarily limited to the order shown and described, and the order may be selectively changed.

예를 들어, 영상 복호화 장치(1400)는 도 17의 순서로 각 단계를 수행하는 것이 아니라, 비트스트림으로부터 부호화된 잔차 블록을 추출하고 복호화하여 잔차 블록을 복원하며, 비트스트림으로부터 부호화된 차분 벡터를 추출하고 복호화하여 차분 벡터를 복원하며, 하나 이상의 움직임 벡터 예측 후보 중에서 하나의 움직임 벡터 예측 후보를 예측 움직임 벡터로 선택하고 선택된 예측 움직임 벡터와 복원된 차분 벡터를 이용하여 현재 블록의 현재 움직임 벡터를 복원하며, 복원된 잔차 블록을 역 양자화하고 역 양자화된 잔차 블록을 역 변환하며, 복원된 현재 움직임 벡터를 이용하여 예측 블록을 생성하고 역 변환된 잔차 블록과 생성된 예측 블록을 가산하여 현재 블록을 복원하는 순서로 각 단계를 수행할 수 있다.For example, instead of performing the respective steps in the order shown in FIG. 17, the image decoding apparatus 1400 extracts and decodes the encoded residual block from the bitstream, restores the residual block, and outputs the encoded difference vector from the bitstream Extracts and decodes the motion vectors to restore a differential vector, selects one of the motion vector prediction candidates as a prediction motion vector, restores the current motion vector of the current block using the selected prediction vector and the reconstructed differential vector Quantizes the reconstructed residual block, inversely transforms the inversely quantized residual block, generates a prediction block using the reconstructed current motion vector, and adds the inverse transformed residual block and the generated prediction block to reconstruct the current block And then perform each step in the order.

이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(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, according to the present invention, inter prediction is performed using pixels that have been coded, decoded and reconstructed before a current block to be encoded, motion vectors used for inter prediction are efficiently encoded or decoded, The present invention is applied to an image processing field for encoding or decoding data of a moving picture so as to improve a compression efficiency by reducing a bit amount for coding information on a predictive motion vector while coding a motion vector using a more accurately predicted predictive motion vector It is a very useful invention that produces an effect.

Claims (18)

현재 블록의 움직임 벡터인 현재 움직임 벡터를 부호화하는 장치에 있어서,
상기 현재 움직임 벡터를 예측하기 위한 움직임 벡터 예측 후보를 선택하는 예측 후보 선택기;
상기 움직임 벡터 예측 후보로부터 예측 움직임 벡터를 결정하는 예측 움직임 벡터 결정기; 및
상기 현재 움직임 벡터에서 상기 예측 움직임 벡터를 감산하여 차분 벡터를 계산하고 부호화하는 차분 벡터 부호화기를 포함하며,
상기 예측 후보 선택기는,
현재 프레임 내의 상기 현재 블록의 주변 블록에 기반하여 하나 이상의 제1 움직임 벡터 예측 후보를 선택하는 모듈과, 참조 프레임 내의 참조 블록에 기반하여 제2 움직임 벡터 예측 후보를 선택하는 모듈을 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
An apparatus for coding a current motion vector, which is a motion vector of a current block,
A prediction candidate selector for selecting a motion vector prediction candidate for predicting the current motion vector;
A predicted motion vector determiner for determining a predicted motion vector from the motion vector prediction candidate; And
And a difference vector encoder for calculating and coding a difference vector by subtracting the predicted motion vector from the current motion vector,
Wherein the prediction candidate selector comprises:
A module for selecting at least one first motion vector prediction candidate based on a neighboring block of the current block in the current frame and a module for selecting a second motion vector prediction candidate based on a reference block in the reference frame, And a motion vector coding unit.
제 1 항에 있어서, 상기 예측 후보 선택기는,
상기 현재 프레임 내에서의 상기 현재 블록의 위치에 근거하여 상기 참조 프레임 내에서의 상기 참조 블록의 위치를 결정하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
2. The apparatus of claim 1, wherein the prediction candidate selector comprises:
And determines the position of the reference block in the reference frame based on the position of the current block in the current frame.
제 1 항에 있어서, 상기 예측 후보 선택기는,
상기 현재 블록의 상단 좌측 블록, 상단 블록 및 상단 우측 블록 중 적어도 하나에서 상기 하나 이상의 제1 움직임 벡터 예측 후보를 선택하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
2. The apparatus of claim 1, wherein the prediction candidate selector comprises:
Wherein the selecting unit selects the at least one first motion vector prediction candidate in at least one of an upper left block, an upper block, and an upper right block of the current block.
제 1 항에 있어서, 상기 예측 후보 선택기는,
두 개의 움직임 벡터 예측 후보 사이의 거리가 미리 지정된 기준을 만족하지 않으면 그 중 하나만을 움직임 벡터 예측 후보로 선택하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
2. The apparatus of claim 1, wherein the prediction candidate selector comprises:
And selects only one of the two candidates as a motion vector prediction candidate if the distance between the two motion vector prediction candidates does not satisfy a predetermined criterion.
제 1 항에 있어서, 상기 예측 후보 선택기는,
상기 하나 이상의 제 1 움직임 벡터 예측 후보로부터 상기 예측 움직임 벡터를 결정하기 위한 상기 움직임 벡터 예측 후보를 모두 선택하거나, 또는,
상기 하나 이상의 제 1 움직임 벡터 예측 후보와 상기 제 2 움직임 벡터 예측 후보 각각에서 상기 예측 움직임 벡터를 결정하기 위한 상기 움직임 벡터 예측 후보를 선택하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
2. The apparatus of claim 1, wherein the prediction candidate selector comprises:
Selecting all of the motion vector prediction candidates for determining the predicted motion vector from the at least one first motion vector prediction candidate,
And selects the motion vector prediction candidate for determining the predicted motion vector in each of the at least one first motion vector prediction candidate and the second motion vector prediction candidate.
현재 블록의 움직임 벡터인 현재 움직임 벡터를 부호화하는 방법에 있어서,
상기 현재 움직임 벡터를 예측하기 위한 움직임 벡터 예측 후보를 선택하는 단계;
상기 움직임 벡터 예측 후보로부터 예측 움직임 벡터를 결정하는 단계; 및
상기 현재 움직임 벡터에서 상기 예측 움직임 벡터를 감산하여 차분 벡터를 계산하고 부호화하는 단계를 포함하며,
상기 움직임 벡터 예측 후보 선택 단계는,
현재 프레임 내의 상기 현재 블록의 주변 블록에 기반하여 제1 움직임 벡터 예측 후보를 선택하는 단계와, 참조 프레임 내의 참조 블록에 기반하여 제2 움직임 벡터 예측 후보를 선택하는 단계를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
A method for coding a current motion vector, which is a motion vector of a current block,
Selecting a motion vector prediction candidate for predicting the current motion vector;
Determining a predicted motion vector from the motion vector prediction candidate; And
And subtracting the predicted motion vector from the current motion vector to calculate and encode a difference vector,
Wherein the motion vector prediction candidate selection step comprises:
Selecting a first motion vector prediction candidate based on a neighboring block of the current block in a current frame; and selecting a second motion vector prediction candidate based on a reference block in the reference frame. Vector encoding method.
제 6 항에 있어서,
상기 참조 프레임 내에서의 상기 참조 블록의 위치는 상기 현재 프레임 내에서의 상기 현재 블록의 위치에 근거하여 결정되는 것을 특징으로 하는 움직임 벡터 부호화 방법.
The method according to claim 6,
Wherein the position of the reference block in the reference frame is determined based on the position of the current block in the current frame.
제 6 항에 있어서,
상기 제1 움직임 벡터 예측 후보는, 상기 현재 블록의 상단 좌측 블록, 상단 블록 및 상단 우측 블록 중 적어도 하나에서 선택하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
The method according to claim 6,
Wherein the first motion vector prediction candidate is selected from at least one of an upper left block, an upper block, and an upper right block of the current block.
제 6 항에 있어서,
상기 움직임 벡터 예측 후보를 선택하는 단계는, 두 개의 움직임 벡터 예측 후보 사이의 거리가 미리 지정된 기준을 만족하지 않으면 그 중 하나만을 움직임 벡터 예측 후보로 선택하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
The method according to claim 6,
Wherein the step of selecting the motion vector prediction candidates selects only one of the two motion vector prediction candidates if the distance between the two motion vector prediction candidates does not satisfy a predetermined reference.
현재 블록의 현재 움직임 벡터를 복호화하는 장치에 있어서,
비트스트림으로부터 차분 벡터를 복원하는 차분 벡터 복호화기; 및
상기 현재 움직임 벡터를 예측하기 위한 움직임 벡터 예측 후보를 선택하고, 상기 움직임 벡터 예측 후보 중에서 예측 움직임 벡터를 결정하고 상기 예측 움직임 벡터와 상기 차분 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원하는 움직임 벡터 복원기를 포함하고,
상기 움직임 벡터 복원기는,
현재 프레임 내 상기 현재 블록의 주변 블록에 기반하여 하나 이상의 제1 움직임 벡터 예측 후보를 선택하는 모듈과, 참조 프레임 내의 참조 블록에 기반하여 제2 움직임 벡터 예측 후보를 선택하는 모듈을 포함하는 것을 특징으로 하는 움직임 벡터 복호화 장치.
An apparatus for decoding a current motion vector of a current block,
A difference vector decoder for decoding a difference vector from a bitstream; And
A motion vector prediction unit for selecting a motion vector prediction candidate for predicting the current motion vector, determining a predicted motion vector from the motion vector prediction candidates, and adding the predicted motion vector and the difference vector to recover a current motion vector of the current block, A reconstructor,
Wherein the motion vector reconstructor comprises:
A module for selecting at least one first motion vector prediction candidate based on a neighboring block of the current block in the current frame and a module for selecting a second motion vector prediction candidate based on a reference block in the reference frame, The motion vector decoding apparatus comprising:
제 10 항에 있어서, 상기 움직임 벡터 복원기는,
상기 현재 프레임 내에서의 상기 현재 블록의 위치에 근거하여 상기 참조 프레임 내에서의 상기 참조 블록의 위치를 결정하는 것을 특징으로 하는 움직임 벡터 복호화 장치.
11. The apparatus of claim 10,
And determines the position of the reference block in the reference frame based on the position of the current block in the current frame.
제 10 항에 있어서, 상기 움직임 벡터 복원기는,
상기 현재 블록의 상단 좌측 블록, 상단 블록 및 상단 우측 블록 중 적어도 하나에서 상기 하나 이상의 제1 움직임 벡터 예측 후보를 선택하는 것을 특징으로 하는 움직임 벡터 복호화 장치.
11. The apparatus of claim 10,
Wherein the motion vector decoding unit selects the at least one first motion vector prediction candidate in at least one of an upper left block, an upper block, and an upper right block of the current block.
제 10 항에 있어서, 상기 움직임 벡터 복원기는,
두 개의 움직임 벡터 예측 후보 사이의 거리가 미리 지정된 기준을 만족하지 않으면 그 중 하나만을 움직임 벡터 예측 후보로 선택하는 것을 특징으로 하는 움직임 벡터 복호화 장치.
11. The apparatus of claim 10,
And selects only one of the two candidates as a motion vector prediction candidate if the distance between the two motion vector prediction candidates does not satisfy a predetermined criterion.
제 10 항에 있어서, 상기 움직임 벡터 복원기는,
상기 하나 이상의 제 1 움직임 벡터 예측 후보로부터 상기 예측 움직임 벡터를 결정하기 위한 상기 움직임 벡터 예측 후보를 모두 선택하거나, 또는,
상기 하나 이상의 제 1 움직임 벡터 예측 후보와 상기 제 2 움직임 벡터 예측 후보 각각에서 상기 예측 움직임 벡터를 결정하기 위한 상기 움직임 벡터 예측 후보를 선택하는 것을 특징으로 하는 움직임 벡터 복호화 장치.
11. The apparatus of claim 10,
Selecting all of the motion vector prediction candidates for determining the predicted motion vector from the at least one first motion vector prediction candidate,
And selects the motion vector prediction candidate for determining the predicted motion vector in each of the at least one first motion vector prediction candidate and the second motion vector prediction candidate.
현재 블록의 현재 움직임 벡터를 복호화하는 방법에 있어서,
비트스트림으로부터 차분 벡터를 복원하는 단계;
상기 현재 움직임 벡터를 예측하기 위한 움직임 벡터 예측 후보를 선택하는 단계;
상기 움직임 벡터 예측 후보 중에서 예측 움직임 벡터를 결정하는 단계; 및
상기 예측 움직임 벡터와 상기 차분 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원하는 단계를 포함하고,
상기 움직임 벡터 예측 후보 선택 단계는,
현재 프레임 내의 상기 현재 블록의 주변 블록에 기반하여 제1 움직임 벡터 예측 후보를 선택하는 단계와, 참조 프레임 내의 참조 블록에 기반하여 제2 움직임 벡터 예측 후보를 선택하는 단계를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 방법.
A method for decoding a current motion vector of a current block,
Reconstructing a differential vector from the bitstream;
Selecting a motion vector prediction candidate for predicting the current motion vector;
Determining a predicted motion vector from the motion vector prediction candidates; And
And restoring a current motion vector of a current block by adding the predictive motion vector and the difference vector,
Wherein the motion vector prediction candidate selection step comprises:
Selecting a first motion vector prediction candidate based on a neighboring block of the current block in a current frame; and selecting a second motion vector prediction candidate based on a reference block in the reference frame. Vector decoding method.
제 15 항에 있어서,
상기 참조 프레임 내에서의 상기 참조 블록의 위치는 상기 현재 프레임 내에서의 상기 현재 블록의 위치에 근거하여 결정되는 것을 특징으로 하는 움직임 벡터 복호화 방법.
16. The method of claim 15,
Wherein a position of the reference block in the reference frame is determined based on a position of the current block in the current frame.
제 15 항에 있어서,
상기 제1 움직임 벡터 예측 후보는, 상기 현재 블록의 상단 좌측 블록, 상단 블록 및 상단 우측 블록 중 적어도 하나에서 선택하는 것을 특징으로 하는 움직임 벡터 복호화 방법.
16. The method of claim 15,
Wherein the first motion vector prediction candidate is selected from at least one of an upper left block, an upper block, and an upper right block of the current block.
제 15 항에 있어서,
상기 움직임 벡터 예측 후보를 선택하는 단계는, 두 개의 움직임 벡터 예측 후보 사이의 거리가 미리 지정된 기준을 만족하지 않으면 그 중 하나만을 움직임 벡터 예측 후보로 선택하는 것을 특징으로 하는 움직임 벡터 복호화 방법.
16. The method of claim 15,
Wherein the step of selecting the motion vector prediction candidates selects only one of the two candidates as a motion vector prediction candidate if the distance between the two motion vector prediction candidates does not satisfy a predetermined criterion.
KR20130088181A 2013-07-25 2013-07-25 Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus KR101483174B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130088181A KR101483174B1 (en) 2013-07-25 2013-07-25 Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130088181A KR101483174B1 (en) 2013-07-25 2013-07-25 Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020130027508A Division KR101314632B1 (en) 2013-03-14 2013-03-14 Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus

Publications (2)

Publication Number Publication Date
KR20130098252A KR20130098252A (en) 2013-09-04
KR101483174B1 true KR101483174B1 (en) 2015-01-20

Family

ID=49450222

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130088181A KR101483174B1 (en) 2013-07-25 2013-07-25 Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus

Country Status (1)

Country Link
KR (1) KR101483174B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019045383A1 (en) * 2017-08-29 2019-03-07 세종대학교 산학협력단 Method and apparatus for encoding/decoding image

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0181034B1 (en) * 1995-03-18 1999-05-01 배순훈 Method and apparatus for detecting motion vector using feature point based motion estimation
KR100275694B1 (en) * 1998-03-02 2000-12-15 윤덕용 Hierarchical search block matching method by using multiple motion vector candidates
WO2012114694A1 (en) * 2011-02-22 2012-08-30 パナソニック株式会社 Moving image coding method, moving image coding device, moving image decoding method, and moving image decoding device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0181034B1 (en) * 1995-03-18 1999-05-01 배순훈 Method and apparatus for detecting motion vector using feature point based motion estimation
KR100275694B1 (en) * 1998-03-02 2000-12-15 윤덕용 Hierarchical search block matching method by using multiple motion vector candidates
WO2012114694A1 (en) * 2011-02-22 2012-08-30 パナソニック株式会社 Moving image coding method, moving image coding device, moving image decoding method, and moving image decoding device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019045383A1 (en) * 2017-08-29 2019-03-07 세종대학교 산학협력단 Method and apparatus for encoding/decoding image

Also Published As

Publication number Publication date
KR20130098252A (en) 2013-09-04

Similar Documents

Publication Publication Date Title
KR101279573B1 (en) Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus
KR101590511B1 (en) / / Motion Vector Coding Method and Apparatus
KR101830352B1 (en) Method and Apparatus Video Encoding and Decoding using Skip Mode
KR101441905B1 (en) Motion Vector Coding Method and Apparatus by Using Candidate Predicted Motion Vector Set Selection and Video Coding Method and Apparatus Using Same
KR101444675B1 (en) Method and Apparatus for Encoding and Decoding Video
KR101943049B1 (en) Method and Apparatus for Image Encoding/Decoding
KR101377660B1 (en) Motion Vector Encoding/Decoding Method and Apparatus Using Multiple Motion Vector Estimation and Video Encoding/Decoding Method and Apparatus Using Same
KR101418096B1 (en) Video Coding Method and Apparatus Using Weighted Prediction
KR101418104B1 (en) Motion Vector Coding Method and Apparatus by Using Motion Vector Resolution Combination and Video Coding Method and Apparatus Using Same
KR101601813B1 (en) A Video Decoding Method and Apparatus Using Inter Prediction
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
KR101377529B1 (en) Video Coding and Decoding Method and Apparatus Using Adaptive Motion Vector Coding/Encoding
KR101483174B1 (en) Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus
KR101445835B1 (en) Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus
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
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
KR101314632B1 (en) Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus
KR101316710B1 (en) Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding 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
KR101582504B1 (en) Method and Apparatus for Encoding and Decoding Video by Using Inter Prediction

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: 20180104

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191216

Year of fee payment: 6