KR101543310B1 - Motion Vector Coding Method and Apparatus by Using Partitioning Space and Video Coding Method and Apparatus Using Same - Google Patents

Motion Vector Coding Method and Apparatus by Using Partitioning Space and Video Coding Method and Apparatus Using Same Download PDF

Info

Publication number
KR101543310B1
KR101543310B1 KR1020150008911A KR20150008911A KR101543310B1 KR 101543310 B1 KR101543310 B1 KR 101543310B1 KR 1020150008911 A KR1020150008911 A KR 1020150008911A KR 20150008911 A KR20150008911 A KR 20150008911A KR 101543310 B1 KR101543310 B1 KR 101543310B1
Authority
KR
South Korea
Prior art keywords
motion vector
group
current block
vector
candidate
Prior art date
Application number
KR1020150008911A
Other languages
Korean (ko)
Other versions
KR20150024361A (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 KR1020150008911A priority Critical patent/KR101543310B1/en
Publication of KR20150024361A publication Critical patent/KR20150024361A/en
Application granted granted Critical
Publication of KR101543310B1 publication Critical patent/KR101543310B1/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
    • 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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/567Motion estimation based on rate distortion criteria

Landscapes

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

Abstract

본 발명은 공간 분할을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치에 관한 것이다.
본 발명은 현재 블록의 후보 예측 움직임 벡터들을 적어도 하나의 후보 예측 움직임 벡터를 포함하는 복수 개의 그룹으로 구분하고, 각 그룹 내의 후보 예측 움직임 벡터들을 순차적으로 비교하여 하나의 후보 예측 움직임 벡터를 대표 예측 움직임 벡터로서 선택하여 그룹별 대표 예측 움직임 벡터를 선택하며, 그룹별 대표 예측 움직임 벡터 중에서 하나의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하며, 현재 블록의 현재 움직임 벡터와 선택되는 예측 움직임 벡터 간의 차이인 차분 벡터를 부호화하는 것을 특징으로 하는 움직임 벡터 부호화 방법을 제공한다.
본 발명에 의하면, 부호화할 차분 벡터의 크기를 줄이면서도 어떠한 예측 움직임 벡터가 선택되었는지를 나타내기 위한 부가 정보를 부호화함에 따라 발생하는 비트량을 억제할 수 있으므로, 움직임 벡터의 부호화 효율을 향상시켜 궁극적으로는 영상의 압축 효율을 향상시킬 수 있다.
The present invention relates to a motion vector coding / decoding method and apparatus using spatial division, and a method and apparatus for image coding / decoding using the same.
The present invention divides candidate prediction motion vectors of a current block into a plurality of groups including at least one candidate prediction motion vector and sequentially compares candidate prediction motion vectors in each group to generate one candidate prediction motion vector as a representative prediction motion vector And selects one representative predicted motion vector among the representative predicted motion vectors for each group as a predicted motion vector. The predicted motion vector is selected as a difference between the current motion vector of the current block and the predicted motion vector And a difference vector is encoded.
According to the present invention, it is possible to suppress the amount of bits generated by coding additional information to indicate which prediction motion vector is selected while decreasing the size of difference vector to be coded, thereby improving the coding efficiency of the motion vector The compression efficiency of the image can be improved.

Description

공간 분할을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치{Motion Vector Coding Method and Apparatus by Using Partitioning Space and Video Coding Method and Apparatus Using Same}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a motion vector coding / decoding method and apparatus using spatial division, and a video coding / decoding method and apparatus using the same.

본 발명은 공간 분할을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치에 관한 것이다. 더욱 상세하게는, 영상을 예측 부호화하는 데 이용되는 움직임 벡터를 효율적으로 압축하여 영상의 압축 효율을 향상시키기 위한 방법 및 장치에 관한 것이다.The present invention relates to a motion vector coding / decoding method and apparatus using spatial division, and a method and apparatus for image coding / decoding using the same. More particularly, the present invention relates to a method and apparatus for efficiently compressing a motion vector used for predictive encoding of an image to improve compression efficiency of an image.

H.264/AVC와 같은 통상적인 영상 압축 기술에서는 블록 기반으로 움직임을 추정하여 얻어지는 움직임 벡터를 예측 부호화하기 위해서, 부호화하고자 하는 블록의 주변 블록의 움직임 벡터들의 중앙값(Median)을 이용하여 예측 움직임 벡터를 결정하고, 부호화하고자 하는 움직임 벡터와 예측 움직임 벡터의 차분을 가변 길이 부호화하여 움직임 벡터를 압축한다.In a conventional image compression technique such as H.264 / AVC, in order to predictively encode a motion vector obtained by estimating motion based on a block, a median of motion vectors of neighboring blocks of a block to be encoded is used to calculate a predicted motion vector And variable-length-codes the difference between the motion vector to be coded and the predicted motion vector to compress the motion vector.

최근 ITU-T VCEG(Video Coding Expert Group)에서는 KTA(Key Technical Area)라는 이름으로 기존의 H.264/AVC 기반으로 더 높은 성능을 갖는 코덱을 연구해왔는데, 그 중 MVComp(Competition-based Motion Vector Coding)라는 기법을 통하여 기존의 H.264/AVC의 움직임 벡터 부호화 기법을 개선하였다.Recently, the ITU-T Video Coding Expert Group (VCEG) has been studying a higher performance codec based on the existing H.264 / AVC with the name KTA (Key Technical Area). Of these, the Competition-based Motion Vector Coding ) To improve the existing H.264 / AVC motion vector coding scheme.

MVComp는 여러 개의 후보 예측 움직임 벡터를 두고, 현재 움직임 벡터와 예측 후에 얻어지는 움직임 벡터와의 차분 값이 최소가 되는 후보 예측 움직임 벡터를 선택하여 복호화기에 선정된 후보 예측 움직임 벡터에 대한 정보를 전송해주는 방법으로, 기존의 H.264/AVC에 비해서 5% 정도의 부호화 압축 효율을 개선하였다. 하지만, 이 기법은 후보 예측 움직임 벡터의 개수가 늘어날수록 복호화기에 전송해야 할 인덱싱 부가 정보(Indexing Side Information)의 양이 증가하는 문제점이 있다.MVComp selects a candidate prediction motion vector having a minimum difference value between a current motion vector and a motion vector obtained after prediction with a plurality of candidate prediction motion vectors and transmits information about the candidate prediction motion vector selected to the decoder , Which improves the coding compression efficiency by about 5% compared to the existing H.264 / AVC. However, this technique has a problem that the amount of indexing side information to be transmitted to the decoder increases as the number of candidate prediction motion vectors increases.

이에, 여러 개의 후보 예측 움직임 벡터 중에 현재 움직임 벡터와 가장 유사할 것과 같은 하나의 움직임 벡터를 부호화기에서 선택하여, 선택된 움직임 벡터가 최적의 움직임 벡터인지 아닌지만을 구별하기 위한 부가 정보를 보내는 기술 등이 제안되었다. 하지만, 제안된 방법은 현재 프레임의 비트를 에러 없이 전달 받았음에도 불구하고, 이전 프레임에서 발생한 에러 때문에 현재 프레임 및 다음 인트라 프레임 전까지의 프레임을 복원할 수 없게 되는 복호화기 충돌 문제(Decoder Crash Problem)와 복호화기에 많은 연산량 증가를 가져오는 한계를 가지는 문제점이 있다.Accordingly, a technique of selecting one motion vector, which is the most similar to the current motion vector, among a plurality of candidate prediction motion vectors, and sending additional information for discriminating whether or not the selected motion vector is an optimal motion vector . However, in the proposed method, even though a bit of the current frame is received without error, a decoder crash problem in which a frame before the current frame and the next intra frame can not be restored due to an error generated in the previous frame There is a problem that there is a limit to increase the amount of computation in the decoder.

이에, 현재 부호화할 블록 주위의 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 결정하는 기법들이 제안되었다. 이 기법은 주변 블록의 움직임 벡터를 이용하여 인덱싱 부가 정보를 효율적으로 전송하고 후보 움직임 벡터의 선택을 이전 프레임의 정보와 분리시켜 복호화기 충돌 문제를 해결하였지만, 한정된 개수의 후보 움직임 벡터를 사용하기 때문에 압축 성능에 있어서 제한적이라는 한계를 가지는 문제점이 있다.Accordingly, techniques for determining a motion vector of a current block using a motion vector around a current block to be coded have been proposed. In this technique, the indexing side information is efficiently transmitted using the motion vector of the neighboring block, and the selection of the candidate motion vector is separated from the information of the previous frame to solve the decoder conflict problem. However, since a limited number of candidate motion vectors are used There is a problem that the compression performance is limited.

전술한 문제점을 해결하기 위해 본 발명은, 부호화할 움직임 벡터와 더욱 유사한 예측 움직임 벡터를 이용하여 움직임 벡터를 부호화하면서도 부호화된 비트량을 줄여 움직임 벡터를 효율적으로 압축하고 그에 따라 영상의 압축 효율을 향상시키는 데 주된 목적이 있다.In order to solve the above-described problems, the present invention provides a method and apparatus for encoding a motion vector using a predicted motion vector more similar to a motion vector to be encoded, and efficiently compressing a motion vector by reducing the amount of encoded bits, There is a main purpose in making.

전술한 목적을 달성하기 위해 본 발명은, 움직임 벡터를 부호화하는 장치에 있어서, 현재 블록의 후보 예측 움직임 벡터들을 복수 개의 그룹으로 결집시키는 후보 예측 움직임 벡터 결집기; 결집된 각 그룹 내의 후보 예측 움직임 벡터 중 하나의 후보 예측 움직임 벡터를 대표 예측 움직임 벡터로서 선택하여 그룹별 대표 예측 움직임 벡터를 선택하는 대표 예측 움직임 벡터 선택기; 그룹별 대표 예측 움직임 벡터 중에서 하나의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하는 예측 움직임 벡터 선택기; 및 현재 블록의 현재 움직임 벡터와 선택되는 예측 움직임 벡터 간의 차이인 차분 벡터를 부호화하는 차분 벡터 부호화기를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치를 제공한다.According to an aspect of the present invention, there is provided an apparatus for coding a motion vector, the apparatus comprising: a candidate prediction motion vector aggregator for combining candidate prediction motion vectors of a current block into a plurality of groups; A representative predictive motion vector selector for selecting a representative predictive motion vector for each group by selecting one candidate predictive motion vector among the candidate predictive motion vectors in each group as a representative predictive motion vector; A predictive motion vector selector for selecting one representative predictive motion vector among the representative predictive motion vectors per group as a predictive motion vector; And a differential vector encoder for coding a difference vector which is a difference between a current motion vector of the current block and a predictive motion vector to be selected.

또한, 본 발명의 다른 목적에 의하면, 영상을 부호화하는 장치에 있어서, 현재 블록의 움직임 벡터인 현재 움직임 벡터를 결정하고 현재 움직임 벡터를 이용하여 현재 블록을 예측 부호화하는 영상 부호화기; 및 현재 블록의 후보 예측 움직임 벡터들이 공간적 위치를 기초로 결집되는 복수 개의 그룹에 대해 그룹별 대표 예측 움직임 벡터를 선택하고, 그룹별 대표 예측 움직임 벡터 중에서 하나의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하며, 결정되는 현재 움직임 벡터와 선택되는 예측 움직임 벡터 간의 차인 차분 벡터와 선택되는 하나의 대표 예측 움직임 벡터가 포함되는 그룹을 나타내는 그룹 인덱스를 부호화하여 움직임 벡터 데이터를 생성하는 움직임 벡터 부호화기를 포함하는 것을 특징으로 하는 영상 부호화 장치를 제공한다.According to another aspect of the present invention, there is provided an apparatus for encoding an image, the apparatus comprising: an image encoder for determining a current motion vector, which is a motion vector of a current block, and for predicting a current block using a current motion vector; And a representative predictive motion vector for each group is selected for a plurality of groups in which the candidate predictive motion vectors of the current block are grouped based on the spatial position, and one representative predictive motion vector among the representative predictive motion vectors for each group is selected as a predictive motion vector And a motion vector encoder for generating motion vector data by coding a group index indicating a group including a difference vector which is a difference between a current motion vector to be determined and a selected predicted motion vector and a representative predictive motion vector to be selected The present invention provides a video encoding apparatus characterized by:

또한, 본 발명의 또 다른 목적에 의하면, 움직임 벡터를 복호화하는 장치에 있어서, 현재 블록의 후보 예측 움직임 벡터들을 복수 개의 그룹으로 결집시키는 후보 예측 움직임 벡터 결집기; 결집된 각 그룹 내의 후보 예측 움직임 벡터 중 하나의 후보 예측 움직임 벡터를 대표 예측 움직임 벡터로서 선택하여 그룹별 대표 예측 움직임 벡터를 선택하는 대표 예측 움직임 벡터 선택기; 움직임 벡터 데이터로부터 추출되는 그룹 인덱스 데이터를 복호화하여 그룹 인덱스를 복원하고, 그룹별 대표 예측 움직임 벡터 중에서 복원되는 그룹 인덱스에 의해 식별되는 그룹의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하는 예측 움직임 벡터 복원기; 및 움직임 벡터 데이터로부터 추출되는 차분 벡터 데이터를 복호화하여 차분 벡터를 복원하고, 복원되는 차분 벡터와 선택되는 예측 움직임 벡터를 현재 블록의 현재 움직임 벡터로서 복원하는 현재 움직임 벡터 복원기를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 장치를 제공한다.According to another aspect of the present invention, there is provided an apparatus for decoding a motion vector, the apparatus comprising: a candidate prediction motion vector aggregator for combining candidate prediction motion vectors of a current block into a plurality of groups; A representative predictive motion vector selector for selecting a representative predictive motion vector for each group by selecting one candidate predictive motion vector among the candidate predictive motion vectors in each group as a representative predictive motion vector; A predictive motion vector restoration unit for restoring a group index from the group index data extracted from the motion vector data and selecting a representative predictive motion vector of the group identified by the group index to be restored from among the representative predictive motion vectors for each group, group; And a current motion vector reconstructor for reconstructing the differential vector extracted from the motion vector data to reconstruct the differential vector and reconstructing the reconstructed differential vector and the selected predictive motion vector as the current motion vector of the current block. A motion vector decoding apparatus is provided.

또한, 본 발명의 또 다른 목적에 의하면, 영상을 복호화하는 장치에 있어서, 비트스트림으로부터 추출되는 움직임 벡터 데이터를 복호화하여 차분 벡터와 그룹 색인을 복원하고, 현재 블록의 후보 예측 움직임 벡터들이 공간적 위치를 기초로 결집되는 복수 개의 그룹에 대해 그룹별 대표 예측 움직임 벡터를 선택하며, 그룹별 대표 예측 움직임 벡터 중에서 복원되는 그룹 색인에 의해 식별되는 그룹의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하며, 복원되는 차분 벡터와 선택되는 예측 움직임 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원하는 움직임 벡터 복호화기; 및 비트스트림으로부터 추출되는 영상 데이터를 복원되는 현재 움직임 벡터를 이용하여 예측 복호화하여 현재 블록을 복원하는 영상 복호화기를 포함하는 것을 특징으로 하는 영상 복호화 장치를 제공한다.According to another aspect of the present invention, there is provided an apparatus for decoding an image, the apparatus comprising: decoding motion vector data extracted from a bitstream to restore a difference vector and a group index; Selects a representative predictive motion vector for each group to be grouped based on the group, selects a representative predictive motion vector of the group identified by the group index to be restored from among the representative predictive motion vectors for each group as a predictive motion vector, A motion vector decoder for adding a difference vector and a selected motion vector to reconstruct a current motion vector of a current block; And an image decoder that predictively decodes the image data extracted from the bitstream using the recovered current motion vector to recover the current block.

또한, 본 발명의 또 다른 목적에 의하면, 움직임 벡터를 부호화하는 방법에 있어서, 현재 블록의 후보 예측 움직임 벡터들을 복수 개의 그룹으로 결집시키는 단계; 결집된 각 그룹 내의 후보 예측 움직임 벡터 중 하나의 후보 예측 움직임 벡터를 대표 예측 움직임 벡터로서 선택하여 그룹별 대표 예측 움직임 벡터를 선택하는 단계; 그룹별 대표 예측 움직임 벡터 중에서 하나의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하는 단계; 및 현재 블록의 현재 움직임 벡터와 선택되는 예측 움직임 벡터 간의 차이인 차분 벡터를 부호화하는 단계를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 방법을 제공한다.According to another aspect of the present invention, there is provided a method of coding a motion vector, the method comprising: aggregating candidate prediction motion vectors of a current block into a plurality of groups; Selecting one of the candidate prediction motion vectors in each group as a representative prediction motion vector and selecting a representative prediction motion vector per group; Selecting one representative predictive motion vector among representative predictive motion vectors per group as a predictive motion vector; And encoding a differential vector which is a difference between a current motion vector of a current block and a predictive motion vector to be selected.

또한, 본 발명의 또 다른 목적에 의하면, 영상을 부호화하는 방법에 있어서, 현재 블록의 움직임 벡터인 현재 움직임 벡터를 결정하는 단계; 결정되는 현재 움직임 벡터를 이용하여 현재 블록을 예측 부호화하는 단계; 현재 블록의 후보 예측 움직임 벡터들이 공간적 위치를 기초로 결집되는 복수 개의 그룹에 대해 그룹별 대표 예측 움직임 벡터를 선택하는 단계; 그룹별 대표 예측 움직임 벡터 중에서 하나의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하는 단계; 및 결정되는 현재 움직임 벡터와 선택되는 예측 움직임 벡터 간의 차인 차분 벡터와 선택되는 하나의 대표 예측 움직임 벡터가 포함되는 그룹을 나타내는 그룹 인덱스를 부호화하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법을 제공한다.According to another aspect of the present invention, there is provided a method of coding an image, the method comprising: determining a current motion vector, which is a motion vector of a current block; Predictively encoding a current block using a determined current motion vector; Selecting a group-wise representative predicted motion vector for a plurality of groups in which candidate prediction motion vectors of the current block are grouped based on spatial positions; Selecting one representative predictive motion vector among representative predictive motion vectors per group as a predictive motion vector; And encoding a group index indicating a group including a difference vector which is a difference between a current motion vector to be determined and a selected predicted motion vector and a representative predictive motion vector to be selected. .

또한, 본 발명의 또 다른 목적에 의하면, 움직임 벡터를 복호화하는 방법에 있어서, 움직임 벡터 데이터로부터 추출되는 차분 벡터 데이터와 그룹 인덱스 데이터를 복호화하여 차분 벡터와 그룹 인덱스를 복원하는 단계; 현재 블록의 후보 예측 움직임 벡터들을 복수 개의 그룹으로 결집시키는 단계; 결집된 각 그룹 내의 후보 예측 움직임 벡터 중 하나의 후보 예측 움직임 벡터를 대표 예측 움직임 벡터로서 선택하여 그룹별 대표 예측 움직임 벡터를 선택하는 단계; 그룹별 대표 예측 움직임 벡터 중에서 복원되는 그룹 인덱스에 의해 식별되는 그룹의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하는 단계; 및 복원되는 차분 벡터와 선택되는 예측 움직임 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원하는 단계를 포함하는 것을 특징으로 하는 움직임 벡터 복호화 방법을 제공한다.According to another aspect of the present invention, there is provided a method of decoding a motion vector, the method comprising: decoding differential vector data and group index data extracted from motion vector data to reconstruct a difference vector and a group index; Collecting candidate prediction motion vectors of a current block into a plurality of groups; Selecting one of the candidate prediction motion vectors in each group as a representative prediction motion vector and selecting a representative prediction motion vector per group; Selecting a representative predictive motion vector of the group identified by the restored group index among the representative predictive motion vectors of each group as a predictive motion vector; And reconstructing a current motion vector of a current block by adding a differential vector to be reconstructed and a predictive motion vector to be selected.

또한, 본 발명의 또 다른 목적에 의하면, 영상을 복호화하는 방법에 있어서, 비트스트림으로부터 추출되는 움직임 벡터 데이터를 복호화하여 차분 벡터와 그룹 색인을 복원하는 단계; 현재 블록의 후보 예측 움직임 벡터들이 공간적 위치를 기초로 결집되는 복수 개의 그룹에 대해 그룹별 대표 예측 움직임 벡터를 선택하는 단계; 그룹별 대표 예측 움직임 벡터 중에서 복원되는 그룹 색인에 의해 식별되는 그룹의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하는 단계; 복원되는 차분 벡터와 선택되는 예측 움직임 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원하는 단계; 및 비트스트림으로부터 추출되는 영상 데이터를 복원되는 현재 움직임 벡터를 이용하여 예측 복호화하여 현재 블록을 복원하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법을 제공한다.According to another aspect of the present invention, there is provided a method of decoding an image, comprising: decoding motion vector data extracted from a bitstream to restore a difference vector and a group index; Selecting a group-wise representative predicted motion vector for a plurality of groups in which candidate prediction motion vectors of the current block are grouped based on spatial positions; Selecting a representative predictive motion vector of the group identified by the restored group index among the representative predictive motion vectors per group as a predictive motion vector; Reconstructing a current motion vector of a current block by adding a reconstructed difference vector and a selected predictive motion vector; And reconstructing a current block by predicting and decoding the image data extracted from the bitstream using a current motion vector to be reconstructed.

이상에서 설명한 바와 같이 본 발명에 의하면, 많은 개수의 후보 예측 움직임 벡터들을 이용하여 예측 움직임 벡터를 선택하여 부호화할 차분 벡터의 크기를 줄이면서도 어떠한 예측 움직임 벡터가 선택되었는지를 나타내기 위한 부가 정보를 부호화함에 따라 발생하는 비트량을 억제할 수 있으므로, 움직임 벡터의 부호화 효율을 향상시켜 궁극적으로는 영상의 압축 효율을 향상시킬 수 있다.As described above, according to the present invention, by selecting a predictive motion vector using a large number of candidate predictive motion vectors and reducing the size of a differential vector to be encoded, additional information for indicating which predictive motion vector has been selected is encoded The amount of bits generated can be suppressed, so that the coding efficiency of a motion vector can be improved and ultimately the compression efficiency of an image can be improved.

도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도,
도 2는 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치를 간략하게 나타낸 블록 구성도,
도 3 내지 도 5는 본 발명의 일 실시예에 따라 후보 예측 움직임 벡터들을 공간적 위치를 기초로 복수 개의 그룹으로 결집시키는 과정을 나타낸 예시도,
도 6은 본 발명의 일 실시예에 따라 그룹별 대표 예측 움직임 벡터를 선택하는 과정을 나타낸 예시도,
도 7은 본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법을 설명하기 위한 순서도,
도 8은 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도,
도 9는 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도,
도 10은 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치를 간략하게 나타낸 블록 구성도,
도 11은 본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법을 설명하기 위한 순서도,
도 12는 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
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.
FIGS. 3 to 5 are views illustrating a process of grouping candidate predictive motion vectors into a plurality of groups based on spatial positions according to an embodiment of the present invention; FIG.
FIG. 6 is a diagram illustrating a process of selecting representative predictive motion vectors for each group according to an embodiment of the present invention. FIG.
FIG. 7 is a flowchart illustrating a motion vector coding method according to an embodiment of the present invention. FIG.
8 is a flowchart illustrating a method of encoding an image according to an embodiment of the present invention.
9 is a block diagram schematically showing an image decoding apparatus according to an embodiment of the present invention.
10 is a block diagram schematically showing a motion vector decoding apparatus according to an embodiment of the present invention.
11 is a flowchart for explaining a motion vector decoding method according to an embodiment of the present invention,
12 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 symbols as possible even if they are shown in different drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

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

이하에서 후술할 움직임 벡터 부호화 장치(Motion Vector Encoding Apparatus), 움직임 벡터 복호화 장치(Motion Vector Decoding Apparatus), 영상 부호화 장치(Video Encoding Apparatus), 영상 복호화 장치(Video Decoding Apparatus)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 움직임 벡터를 부호화거나 복호화거나 영상을 부호화하거나 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.A motion vector encoding apparatus, a motion vector decoding apparatus, a video encoding apparatus, and a video decoding apparatus, which will be described later, may be implemented as a personal computer (PC) Such as a portable computer, a computer, a notebook computer, a personal digital assistant (PDA), a portable multimedia player (PMP), a PlayStation Portable (PSP), a mobile communication terminal, Or a server terminal such as an application server and a service server, and may be a communication device such as a communication modem for performing communication with various devices or wired / wireless communication networks, various programs and data for coding or decoding a motion vector, A memory for storing, a program is executed And a microprocessor for controlling and controlling the microprocessor.

또한, 움직임 벡터 부호화 장치 또는 영상 부호화 장치에 의해 비트스트림으로 부호화된 움직임 벡터 또는 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 움직임 벡터 복호화 장치 또는 영상 복호화 장치로 전송되어 움직임 벡터 복호화 장치에서 복호화되어 움직임 벡터로서 복원되거나 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.The motion vector or the motion vector encoded in the bit stream by the motion vector coding apparatus or the video coding apparatus can be transmitted in real time or in non-real time through a wired / wireless communication network such as the Internet, a local area wireless communication network, a wireless LAN network, a WiBro network, , A universal serial bus (USB), or the like, and is transmitted to a motion vector decoding apparatus or an image decoding apparatus, decoded by a motion vector decoding apparatus and restored as a motion vector, or decoded by a video decoding apparatus, And can be reproduced.

통상적으로 동영상은 일련의 픽처(Picture)로 구성되어 있으며, 각 픽처들은 블록(Block)과 같은 소정의 영역으로 분할된다. 영상의 영역이 블록으로 분할되는 경우에는 분할된 블록은 부호화 방법에 따라 크게 인트라 블록(Intra Block), 인터 블록(Inter Block)으로 분류된다. 인트라 블록은 인트라 예측 부호화(Intra Prediction Coding) 방식을 사용하여 부호화되는 블록을 뜻하는데, 인트라 예측 부호화란 현재 부호화를 수행하는 현재 픽처 내에서 이전에 부호화되고 복호화되어 복원된 블록들의 화소를 이용하여 현재 부호화하고자 하는 블록인 현재 블록의 화소를 예측함으로써 예측 블록을 생성하고 현재 블록의 화소와의 차분값을 부호화하는 방식이다. 인터 블록은 인터 예측 부호화(Inter Prediction Coding)를 사용하여 부호화되는 블록을 뜻하는데, 인터 예측 부호화란 하나 이상의 과거 픽처 또는 미래 픽처를 참조하여 현재 픽처 내의 현재 블록을 예측함으로써 예측 블록을 생성하고 현재 블록과의 차분값을 부호화하는 방식이다. 여기서, 현재 픽처를 부호화하거나 복호화하는데 참조되는 픽처를 참조 픽처(Reference Picture)라고 한다.Usually, a moving picture is composed of a series of pictures, and each picture is divided into a predetermined area such as a block. In the case where an image area is divided into blocks, the divided blocks are classified into an intra block and an inter block according to a coding method. The intra-block refers to a block that is coded using Intra Prediction Coding (P-Coding) scheme. The intra-prediction coding is performed by using the pixels of previously decoded and decoded blocks in the current picture, A prediction block is generated by predicting a pixel of a current block which is a block to be encoded and a difference value between the pixel of the current block and the current block is encoded. Inter-block refers to a block that is coded using Inter Prediction Coding. Inter-prediction coding refers to one or more past pictures or a future picture to generate a prediction block by predicting a current block in the current picture, And the difference value is encoded. Here, a picture referred to in encoding or decoding a current picture is referred to as a reference picture.

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

본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 영상을 부호화하는 장치로서, 움직임 벡터 부호화기(Motion Vector Encoder, 110)와 영상 부호화기(Video Encoder, 120)를 포함하여 구성될 수 있다.The image encoding apparatus 100 according to an embodiment of the present invention is an apparatus for encoding an image and may include a motion vector encoder 110 and a video encoder 120.

움직임 벡터 부호화기(110)는 현재 블록의 후보 예측 움직임 벡터들(Candidate Predictied Motion Vector)이 공간적 위치를 기초로 결집(Aggregation)되는 복수 개의 그룹에 대해 그룹별 대표 예측 움직임 벡터(Representative Predictied Motion Vector Classified by Group)를 선택하고, 그룹별 대표 예측 움직임 벡터 중에서 하나의 대표 예측 움직임 벡터(Representative Predictied Motion Vector)를 예측 움직임 벡터(Predictied Motion Vector)로서 선택하며, 현재 움직임 벡터(Current Motion Vector)와 선택되는 예측 움직임 벡터 간의 차인 차분 벡터(Differential Motion Vector)와 선택되는 하나의 대표 예측 움직임 벡터가 포함되는 그룹을 나타내는 그룹 인덱스(Group Index)를 부호화한다. 차분 벡터는 부호화되어 차분 벡터 데이터로서 생성되고 그룹 인덱스는 부호화되어 그룹 인덱스 데이터로서 생성된다.The motion vector encoder 110 generates a representative predictive motion vector classified by a group for a plurality of groups in which Candidate Predicted Motion Vector of the current block is aggregated based on the spatial position. Selects a representative predictive motion vector from among representative predictive motion vectors for each group as a predictive motion vector, and selects a current motion vector and a selected predictive motion vector, A group index indicating a group including a differential motion vector that is a difference between motion vectors and one representative predictive motion vector that is selected is encoded. The difference vector is encoded and generated as difference vector data, and the group index is encoded and generated as group index data.

따라서, 움직임 벡터 부호화기(110)는 차분 벡터 데이터와 그룹 인덱스 데이터를 포함하는 움직임 벡터 데이터를 생성한다. 여기서, 움직임 벡터 부호화기(110)는 차분 벡터를 생성하는 데 있어서, 영상 부호화기(120)에서 현재 블록을 예측 부호화하기 위해 결정된 현재 움직임 벡터를 이용한다. 움직임 벡터 부호화기(110)에 대해서는 후술하는 과정에서 도 2 내지 도 6을 통해 상세히 설명한다.Accordingly, the motion vector encoder 110 generates motion vector data including differential vector data and group index data. Here, in generating the difference vector, the motion vector encoder 110 uses the current motion vector determined to predictively encode the current block in the image encoder 120. The motion vector encoder 110 will be described in detail with reference to FIG. 2 through FIG. 6 in the following description.

영상 부호화기(120)는 현재 블록의 움직임 벡터인 현재 움직임 벡터를 결정하고 현재 움직임 벡터를 이용하여 현재 블록을 예측 부호화한다. 이와 같이 현재 블록이 예측 부호화되어 영상 데이터가 생성된다.The image encoder 120 determines the current motion vector, which is a motion vector of the current block, and predictively encodes the current block using the current motion vector. Thus, the current block is predictively encoded and image data is generated.

이를 위해, 영상 부호화기(120)는 예측기(Predictor), 감산기(Subtracter), 변환기 및 양자화기(Transformer and Quantizer), 부호화기(Encoder)를 포함하여 구성될 수 있으며, 역 양자화기 및 역 변환기(Inverse Transformer and Inverse Quantizer), 가산기(Adder), 디블로킹 필터(Deblocking Filter), 메모리(Memory) 등을 추가로 포함할 수 있다. 여기서, 예측기는 현재 블록의 움직임을 추정하여 현재 움직임 벡터를 결정하고 현재 움직임 벡터를 이용하여 현재 블록의 움직임을 보상하여 예측 블록(Predicted Block)을 생성하며, 감산기는 현재 블록과 예측 블록을 감산하여 잔여 블록(Residual Block)을 생성하며, 변환기 및 양자화기는 잔여 블록을 변환 및 양자화하여 양자화된 변환 계수(Quantized Transform Coefficient)를 생성하며, 부호화기는 양자화된 변환 계수를 부호화하여 영상 데이터를 생성한다. 또한, 역 양자화기 및 역 변환기는 양자화된 변환 계수를 역 양자화 및 역 변환하여 잔여 블록을 복원하고 가산기는 예측 블록과 복원되는 잔여 블록을 복원하여 현재 블록을 복원하며, 복원된 현재 블록은 디블로킹 필터(Deblocking Filter)에 의해 디블로킹 필터링되어 메모리에 픽처 단위로 누적되어 참조 픽처로서 저장되고 다음 블록 또는 다음 픽처를 예측하는 데 활용된다.For this, the image encoder 120 may include a Predictor, a subtracter, a transformer and a quantizer, and an encoder. The image encoder 120 may include an inverse transformer and an inverse quantizer, an adder, a deblocking filter, a memory, and the like. Here, the predictor estimates the motion of the current block to determine a current motion vector, generates a predicted block by compensating the motion of the current block using the current motion vector, and the subtractor subtracts the current block from the prediction block The transformer and the quantizer transform and quantize the residual block to generate a quantized transform coefficient. The encoder generates the image data by encoding the quantized transform coefficient. The dequantizer and the inverse transformer dequantize and inverse transform the quantized transform coefficients to restore the residual block, the adder restores the prediction block and the restored residual block to restore the current block, and the restored current block is deblocked Is deblocked and filtered by a filter (Deblocking Filter), accumulated in a memory on a picture-by-picture basis, and stored as a reference picture to be used for predicting a next block or a next picture.

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

본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치는 도 1을 통해 전술한 영상 부호화 장치(100)에서는 움직임 벡터 부호화기(110)로 구현될 수 있다. 이하에서는 설명의 편의를 위해, 본 발명의 일 실시예에 따른 움직임 벡터 부호화 장치를 움직임 벡터 부호화기(110)라 칭한다.The motion vector coding apparatus according to an embodiment of the present invention can be implemented in the motion vector coding unit 110 in the image coding apparatus 100 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 a motion vector coding unit 110 for convenience of explanation.

움직임 벡터 부호화기(110)는 후보 예측 움직임 벡터 결집기(Candidate Predicted Motion Vector Aggregator, 210), 대표 예측 움직임 벡터 선택기(Representative Predicted Motion Vector Selector, 220), 예측 움직임 벡터 선택기(Predicted Motion Vector Selector, 230), 차분 벡터 부호화기(Differential Motion Vector Encoder, 240) 및 예측 움직임 벡터 부호화기(Predicted Motion Vector Encoder, 250)를 포함하여 구성될 수 있다.The motion vector encoder 110 includes a Candidate Predicted Motion Vector Aggregator 210, a Representative Predicted Motion Vector Selector 220, a Predicted Motion Vector Selector 230, A Differential Motion Vector Encoder 240, and a Predicted Motion Vector Encoder 250.

후보 예측 움직임 벡터 결집기(210)는 현재 블록의 후보 예측 움직임 벡터들을 적어도 하나의 후보 예측 움직임 벡터를 포함하는 복수 개의 그룹으로 구분하여 결집한다.The candidate prediction motion vector superimposer 210 divides the candidate prediction motion vectors of the current block into a plurality of groups including at least one candidate prediction motion vector.

여기서, 현재 블록의 후보 예측 움직임 벡터들이란 현재 블록의 예측 움직임 벡터로서 결정될 가능성이 높은 후보들을 말한다. 이러한 후보 예측 움직임 벡터들은 예를 들어, MV H .264 , MV extspa , MV a , MV b , MV c , MV d , MV col , MV 0 등과 같은 움직임 벡터들이 될 수 있다. MV H .264 는 H.264/AVC 압축 표준에서 예측 움직임 벡터로 이용되는 움직임 벡터로서, 현재 블록의 주변 블록의 움직임 벡터의 중간값(Median)을 가지는 움직임 벡터를 말한다. MV extspa 는 현재 블록의 주변 블록의 존재 여부에 따라 예측 움직임 벡터로 이용되는 움직임 벡터를 말한다. MV a , MV b , MV c , MV d 는 현재 블록의 주변 블록의 움직임 벡터를 말한다. MV col 는 참조 픽처에서 현재 블록과 동일한 위치에 있는 블록의 움직임 벡터를 말한다. MV 0 는 (0, 0)의 움직임 벡터인 제로 벡터를 말한다.Here, the candidate predicted motion vectors of the current block are candidates likely to be determined as the predicted motion vector of the current block. These candidate predictive motion vectors may be, for example, motion vectors such as MV H .264 , MV extspa , MV a , MV b , MV c , MV d , MV col , MV 0 , MV H .264 is a motion vector used as a predictive motion vector in the H.264 / AVC compression standard, and refers to a motion vector having a median of a motion vector of a neighboring block of the current block. MV extspa refers to a motion vector used as a predicted motion vector according to the presence or absence of neighboring blocks of the current block. MV a , MV b , MV c , and MV d are motion vectors of neighboring blocks of the current block. MV col is a motion vector of a block located at the same position as the current block in the reference picture. MV 0 is a zero vector which is a motion vector of (0, 0).

일 예로, 현재 블록의 왼쪽 블록을 블록 a, 위쪽 블록을 블록 b, 위쪽 오른쪽 블록을 블록 c, 위쪽 왼쪽 블록을 블록 d라고 가정하면, 블록 a의 움직임 벡터는 MV a , 블록 b의 움직임 벡터는 MV b , 블록 c의 움직임 벡터는 MV c , 블록 d의 움직임 벡터는 MV d 이 된다. MV H .264 MV a , MV b , MV c 의 중간값으로 계산될 수 있으며, MV extspa 는 현재 블록의 주위에 블록 a, 블록 b, 블록 c가 모두 이용 가능한 경우에는 MV H.264 가 되며, 블록 a, 블록 b, 블록 c 중 하나 또는 두 개의 블록이 이용 가능하지 않은 경우에는 MV a , MV b , MV c 순서로 이용 가능한 움직임 벡터가 되며, 블록 a, 블록 b, 블록 c가 모두 이용 가능하지 않은 경우에는 MV 0 가 된다.For example, assuming that the left block of the current block is block a, the upper block is block b, the upper right block is block c, and the upper left block is block d, the motion vector of block a is MV a and the motion vector of block b is a motion vector of MV b, c block is a motion vector of MV c, d is a block MV d. H .264 MV MV is a, can be calculated as the median value of the MV b, c MV, MV extspa if possible both using the current block around the block a, the block b, c block has an MV and H.264 If one or two of the blocks a , b , and c are not available, MV a , MV b , and MV c become available motion vectors, and block a, block b, If it is not possible, it becomes MV 0 .

다만, 전술한 현재 블록의 후보 예측 움직임 벡터들은 설명의 편의를 위한 예시일 뿐, 본 발명의 일 실시예에서 이용되는 현재 블록의 후보 예측 움직임 벡터들이 전술한 예시로 한정되는 것은 아니며, 움직임 벡터 부호화 장치와 후술할 움직임 벡터 복호화 장치 또는 영상 부호화 장치와 후술할 영상 복호화 장치 간에 미리 약속된다는 전제하에서, 전술한 예시의 일부만이 후보 예측 움직임 벡터들로 이용될 수도 있고, 다른 다양한 후보 예측 움직임 벡터들이 추가로 이용될 수 있을 것이며, 전술한 예시의 전부가 이용되지 않고 다른 후보 예측 움직임 벡터들이 이용될 수도 있다.However, the candidate prediction motion vectors of the current block are only examples for convenience of explanation. The candidate prediction motion vectors of the current block used in the embodiment of the present invention are not limited to the above-described example, Only a part of the above-described example may be used as candidate predictive motion vectors, and various other candidate predictive motion vectors may be added to the motion vector decoding apparatus or the image encoding apparatus, which will be described later, And all of the above examples are not used and other candidate predictive motion vectors may be used.

후보 예측 움직임 벡터 결집기(210)는 현재 블록의 후보 예측 움직임 벡터들의 공간적 위치를 기초로 복수 개의 그룹으로 결집시킬 수 있다. 즉, 후보 예측 움직임 벡터 결집기(210)는 현재 블록의 후보 예측 움직임 벡터들의 공간적 위치를 고려하여 적절히 후보 예측 움직임 벡터들을 복수 개의 그룹으로 결집시킨다. 이때, 후보 예측 움직임 벡터 결집기(210)는 후보 예측 움직임 벡터들을 결집시키는 그룹의 개수를 임의로 선택할 수도 있고, 움직임 벡터 부호화 장치와 움직임 벡터 복호화 장치 또는 영상 부호화 장치와 영상 복호화 장치가 미리 약속한 개수로 선택할 수도 있다. 만약, 그룹의 개수가 미리 약속한 개수로 선택되는 경우에는 후보 예측 움직임 벡터들이 몇 개의 그룹으로 결집되는지를 나타내기 위해 그룹 개수에 대한 정보가 부호화될 필요가 없지만, 그룹의 개수가 임의의 개수로 선택되는 경우에는 그룹 개수에 대한 정보는 부호화되어 비트스트림의 슬라이스 헤더, 픽처 헤더, 시퀀스 헤더 등에 삽입되어야 한다.The candidate predictive motion vector convolution module 210 may group the motion vector candidates into a plurality of groups based on the spatial positions of the candidate predicted motion vectors of the current block. That is, the candidate prediction motion vector superimposer 210 suitably groups the candidate prediction motion vectors into a plurality of groups in consideration of the spatial position of the candidate prediction motion vectors of the current block. At this time, the candidate predictive motion vector superimposer 210 may arbitrarily select the number of groups for grouping the candidate predictive motion vectors, and may determine the number of groups predicted by the motion vector coding apparatus, the motion vector decoding apparatus, . If the number of groups is selected in advance, the information on the number of groups does not have to be coded to indicate how many candidate prediction motion vectors are grouped. However, if the number of groups is an arbitrary number The information on the number of groups is encoded and inserted into a slice header, a picture header, a sequence header, or the like of a bitstream.

후보 예측 움직임 벡터 결집기(210)는 K-Means 알고리즘을 이용하여 현재 블록의 후보 예측 움직임 벡터들을 그의 공간적 위치를 기초로 분할하여 복수 개의 그룹으로 결집시킬 수 있다. 즉, 후보 예측 움직임 벡터 결집기(210)는 현재 블록의 후보 예측 움직임 벡터들 중에서 복수 개의 후보 예측 움직임 벡터를 복수 개의 그룹의 중심값으로 설정하고, 각 그룹에 대해 중심값과의 공간적인 거리가 거리 임계값 이하가 되는 후보 예측 움직임 벡터를 각 그룹으로 결집시키며, 각 그룹에 대해 결집되는 후보 예측 움직임 벡터 간의 거리에 대한 제곱의 평균이 평균 임계값 이하가 되도록 중심값을 재설정하며, 이와 같이 각 그룹으로 결집시키고 중심값을 재설정하는 과정을 각 그룹에 대해 결집되는 후보 예측 움직임 벡터 간의 거리에 대한 제곱의 평균이 평균 임계값 이하가 될 때까지 반복함으로써 현재 블록의 후보 예측 움직임 벡터들을 복수 개의 그룹으로 결집시킬 수 있다.The candidate prediction motion vector superimposer 210 may group the candidate prediction motion vectors of the current block into a plurality of groups based on their spatial positions using the K-Means algorithm. That is, the candidate prediction motion vector superimposer 210 sets a plurality of candidate prediction motion vectors among the candidate prediction motion vectors of the current block as a center value of a plurality of groups, and a spatial distance from the center value The candidate prediction motion vectors that fall below the distance threshold value are collected into each group and the center value is reset so that the average of the squares of the distances between the candidate prediction motion vectors to be collected for each group is less than or equal to the average threshold, Grouping and grouping the candidate prediction motion vectors of the current block into a plurality of groups by repeating the process of re-centering the groups and resetting the center value until the average of the squares of the distances between the candidate prediction motion vectors collected for each group becomes equal to or less than the average threshold value .

도 3 내지 도 5는 본 발명의 일 실시예에 따라 후보 예측 움직임 벡터들을 공간적 위치를 기초로 복수 개의 그룹으로 결집시키는 과정을 나타낸 예시도이다.FIGS. 3 to 5 are diagrams illustrating a process of grouping candidate prediction motion vectors into a plurality of groups based on spatial positions according to an embodiment of the present invention.

도 3 내지 도 5에서는 현재 블록의 후보 예측 움직임 벡터들이 MV H .264 , MV extspa , MV a , MV b , MV c , MV d , MV col , MV 0 로 설정된 경우, K-Means 알고리즘을 이용하여 현재 블록의 주변 움직임 벡터들을 포함하는 후보 예측 움직임 벡터들을 그의 공간적 위치를 기초로 분할하여 복수 개의 그룹으로 결집시키는 과정을 예시적으로 나타내었다.3 to 5, when the candidate predicted motion vectors of the current block are set to MV H .264 , MV extspa , MV a , MV b , MV c , MV d , MV col , MV 0 , The motion vector of the current block The candidate predictive motion vectors are divided into a plurality of groups based on their spatial positions.

도 3에서는 현재 블록의 후보 예측 움직임 벡터들을 그의 공간적인 위치를 고려하여 X-Y 평면 상에 예시적으로 나타내었다. 후보 예측 움직임 벡터 결집기(210)는 도 3과 같이 나타낸 후보 예측 움직임 벡터들 중 복수 개의 후보 예측 움직임 벡터를 임의로 선택하여 복수 개의 그룹의 중심값으로 설정한다.In FIG. 3, candidate prediction motion vectors of the current block are exemplarily shown on the X-Y plane in consideration of their spatial positions. The candidate prediction motion vector superimposer 210 arbitrarily selects a plurality of candidate prediction motion vectors among the candidate prediction motion vectors shown in FIG. 3 and sets the center values of the plurality of groups.

도 4에서는 도 3과 같이 나타낸 후보 예측 움직임 벡터 중에서 4 개의 후보 예측 움직임 벡터를 4 개의 그룹의 중심값으로 설정한 경우를 예시적으로 나타내었다. 4 개의 그룹은 그룹 A, 그룹 B, 그룹 C 및 그룹 D로 나타내었으며, 그룹 A에서는 MV d 가 초기의 중심값으로 설정된 것으로 가정하고, 그룹 B에서는 MV H .264 가 초기의 중심값으로 설정된 것으로 가정하며, 그룹 C에서는 MV col 가 초기의 중심값으로 설정된 것으로 가정하며, 그룹 D에서는 MV extspa 가 초기의 중심값으로 설정된 것으로 가정하였다.In FIG. 4, four candidate prediction motion vectors among the candidate prediction motion vectors shown in FIG. 3 are set as the center values of four groups. The four groups are represented as group A, group B, group C, and group D. In group A, it is assumed that MV d is set as the initial center value. In group B, MV H .264 is set as the initial center value In the group C, it is assumed that MV col is set as the initial center value. In the group D, MV extspa is assumed as the initial center value.

후보 예측 움직임 벡터 결집기(210)는 도 4에 도시한 바와 같이 4 개의 그룹의 초기의 중심값이 설정되면, 각 그룹의 중심값과 현재 블록의 후보 예측 움직임 벡터들 간의 공간적 거리를 계산하여 계산된 거리가 기 설정된 거리 임계값 이하가 되는 후보 예측 움직임 벡터를 선택하여 해당 그룹에 결집시킨다. 도 4에서는 그룹 A의 초기의 중심값으로 설정된 MV d 와 현재 블록의 후보 예측 움직임 벡터들인 MV H.264 , MV extspa , MV a , MV b , MV c , MV d , MV col , MV 0 각각의 거리가 계산되고, 계산된 거리가 기 설정된 거리 임계값 이하가 되는 후보 예측 움직임 벡터인 MV a 와 중심값으로 설정된 후보 예측 움직임 벡터인 MV d 가 그룹 A에 결집되었다. 마찬가지 방식으로 그룹 B, 그룹 C 및 그룹 D에 대해서도 동일한 방식으로 각 그룹의 중심값과 후보 예측 움직임 벡터들 간의 거리가 계산되고 계산된 거리가 기 설정된 거리 임계값 이하가 되는 후보 예측 움직임 벡터가 해당 그룹으로 결집되어, 그룹 B에는 MV a MV H.264 가 결집되고, 그룹 C에는 MV col 가 결집되며, 그룹 D에는 MV b , MV extspa , MV 0 가 결집되었다.When the initial center value of the four groups is set as shown in FIG. 4, the candidate prediction motion vector superimposer 210 calculates a spatial distance between the center value of each group and the candidate prediction motion vectors of the current block, A candidate predicted motion vector whose distance is less than or equal to a predetermined distance threshold value is selected and is grouped into the corresponding group. In Figure 4 is set to the center value of the group A d and an initial MV of the current block, the candidate prediction motion vector, which are H.264 MV, MV extspa, MV a, MV b, c MV, MV d, col MV, MV 0 each and a distance calculation, the distance is set to a predetermined distance threshold value or less, the candidate prediction motion vector MV and a center value is calculated candidate predicted motion vector MV d were mobilized in group a. Likewise, the distance between the center value of each group and the candidate predicted motion vectors is calculated in the same manner for the group B, the group C, and the group D in the same manner, and the candidate predicted motion vector in which the calculated distance is less than the predetermined distance threshold value MV a and MV H.264 were collected in group B, MV col was collected in group C, and MV b , MV extspa and MV 0 were collected in group D, respectively.

도 5에서는 도 4에 도시한 바와 같이 초기 중심값을 중심으로 결집된 그룹에 대해 중심값을 재설정한 모습을 예시적으로 나타내었다.In FIG. 5, as shown in FIG. 4, a center value is reset for a group that is centered around an initial center value.

초기의 중심값을 중심으로 결집된 그룹이 형성되면, 후보 예측 움직임 벡터 결집기(210)는 초기 중심값을 중심으로 후보 움직임 벡터가 결집되어 형성된 각 그룹에 대해 각 그룹 내의 후보 예측 움직임 벡터 간의 거리에 대한 제곱의 평균이 기 설정된 평균 임계값 이하가 되도록 중심값을 재설정한다.When a group is formed centering on the initial center value, the candidate predictive motion vector superimposer 210 calculates the distance between the candidate predictive motion vectors in each group for each group in which the candidate motion vectors are grouped based on the initial center value The center value is reset so that the average of the squares of < EMI ID = 1.0 >

도 5에서는 그룹 A 내의 후보 예측 움직임 벡터들인 MV a MV d 간의 거리가 기 설정된 평균 임계값 이하가 될 수 있도록 중심값을 재설정하여 MV a MV d 사이에 새로운 중심값이 설정되었다. 마찬가지로 그룹 B, 그룹 C, 그룹 D에 대해서도 새로운 중심값이 도 5에 도시한 바와 같이 설정되었다.In FIG. 5, the center value is reset so that the distance between MV a and MV d, which are candidate predicted motion vectors in the group A, may be less than a preset average threshold value, and MV a and MV d A new center value has been set. Likewise, a new center value is set for group B, group C, and group D as shown in FIG.

이후, 후보 움직임 벡터 결집기(210)는 각 그룹의 재설정된 중심값과 현재 블록의 후보 예측 움직임 벡터들 간의 공간적 거리를 계산하여 계산된 거리가 기 설정된 거리 임계값 이하가 되는 후보 예측 움직임 벡터를 선택하여 해당 그룹에 결집시키고, 각 그룹 내의 후보 예측 움직임 벡터 간의 거리에 대한 제곱의 평균이 기 설정된 평균 임계값 이하가 되도록 중심값을 재설정하는 과정을 반복한다. 이와 같이 반복하는 과정에서, 각 그룹 내에 결집되는 후보 움직임 벡터가 달라질 수 있으며, 그에 따라 각 그룹 내의 후보 예측 움직임 벡터 간의 거리에 대한 제곱의 평균이 기 설정된 평균 임계값 이하가 될 수 있도록 수렴된다. 만약에 초기의 중심값 또는 재설정된 중심값을 중심으로 결집된 그룹 내의 후보 예측 움직임 벡터 간의 거리에 대한 제곱의 평균이 이미 평균 임계값 이하라면, 후보 움직임 벡터 결집기(210)는 중심값을 재설정하지 않고, 설정되어 있는 중심값을 최종 중심값으로 결정하고 해당 최종 중심값으로 형성된 그룹을 최종 그룹으로 결정한다. 도 5에서는 재설정된 중심값이 최종 중심값인 경우를 나타내었다.Thereafter, the candidate motion vector superimposer 210 calculates a spatial distance between the reset center value of each group and the candidate prediction motion vectors of the current block, and outputs a candidate prediction motion vector whose calculated distance is less than a preset distance threshold value And repeats the process of resetting the center value so that the average of the squares of the distances between the candidate predicted motion vectors in each group becomes equal to or less than the preset average threshold value. In this process, the candidate motion vectors to be grouped in each group can be changed, and thus, the average of the squares of the distances between the candidate predicted motion vectors in each group is converged to be less than a predetermined average threshold value. If the average of the squares of the distances between the initial center values or the candidate predicted motion vectors in the group grouped around the reset center value is already equal to or less than the average threshold value, the candidate motion vector summarizer 210 resets the center value The set center value is determined as the final center value, and the group formed by the final center value is determined as the final group. FIG. 5 shows a case where the reset center value is the final center value.

다시 도 2를 참조하면, 대표 예측 움직임 벡터 선택기(220)는 후보 움직임 벡터 결집기(210)에 의해 결집된 각 그룹 내의 후보 예측 움직임 벡터들을 순차적으로 비교하여 하나의 후보 예측 움직임 벡터를 대표 예측 움직임 벡터로서 선택하여 그룹별 대표 예측 움직임 벡터를 선택한다. 이때, 대표 예측 움직임 벡터 선택기(220)는, 도 6에 예시적으로 도시한 바와 같이, 후보 예측 움직임 벡터 결집기(210)에 의해 결집된 각 그룹에 대해 그룹 내의 후보 예측 움직임 벡터 중에서 그룹 내의 후보 예측 움직임 벡터의 중심값과의 공간적인 거리가 가장 가까운 후보 예측 움직임 벡터를 선택함으로써, 그룹별 대표 예측 움직임 벡터를 선택할 수 있다.Referring again to FIG. 2, the representative predictive motion vector selector 220 sequentially compares the candidate predictive motion vectors in each group, which have been collected by the candidate motion vector summarizer 210, And selects a group-wise representative predicted motion vector. 6, the representative predictive motion vector selector 220 selects candidate candidate motion vectors in the group among the candidate predictive motion vectors in the group for each group collected by the candidate predictive motion vector superimposer 210 It is possible to select a group-wise representative predicted motion vector by selecting a candidate predicted motion vector having the closest spatial distance from the center value of the predicted motion vector.

도 6은 본 발명의 일 실시예에 따라 그룹별 대표 예측 움직임 벡터를 선택하는 과정을 나타낸 예시도이다.6 is a diagram illustrating a process of selecting representative predictive motion vectors per group according to an embodiment of the present invention.

도 6에서는 도 5에 도시한 바와 같이 4 개의 그룹에 후보 예측 움직임 벡터들이 나누어 결집되고 최종적인 중심값이 설정된 경우, 각 그룹에 대해 선택되는 대표 예측 움직임 벡터를 예시적으로 나타내었다.FIG. 6 exemplarily shows a representative predictive motion vector selected for each group when candidate predictive motion vectors are grouped into four groups and a final center value is set as shown in FIG.

도 6에서 도시한 바와 같이, 그룹 A에서는 MV d MV c 보다 최종적인 중심값의 위치에서 공간적으로 가까우므로 MV d 가 대표 예측 움직임 벡터로서 선택된다. 그룹 B에서는 MV H .264 MV a 보다 최종적인 중심값의 위치에서 공간적으로 가까우므로 MV H. 264가 대표 예측 움직임 벡터로서 선택된다. 그룹 C에서는 MV col 가 최종적인 중심값이 되므로 MV col 가 대표 예측 움직임 벡터로서 선택된다. 그룹 D에서는 MV b 가 다른 움직임 벡터인 MV extspa MV 0 와 비교할 때 최종적인 중심값의 위치에서 공간적으로 가장 가까우므로 MV b 가 대표 예측 움직임 벡터로서 선택된다.As shown in FIG. 6, in the group A, MV d is selected as a representative predicted motion vector since MV d is spatially close to the position of the final center value than MV c . Since the group B in the MV H .264 is close in space at the position of the final center than a MV is selected as a representative MV H. 264 predicted motion vector. In group C, MV col is the final center value, so MV col is selected as the representative predicted motion vector. In the group D, MV b is selected as the representative predictive motion vector because MV b is closest in terms of the spatial center value as compared with the other motion vectors MV extspa and MV 0 .

다시 도 2를 참조하면, 예측 움직임 벡터 선택기(230)는 그룹별 대표 예측 움직임 벡터 중에서 하나의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택한다. 여기서, 예측 움직임 벡터 선택기(230)는 율-왜곡 비용(Rate-Distortion Cost)을 이용하여 그룹별 대표 예측 움직임 벡터 중에서 하나의 대표 예측 움직임 벡터를 선택할 수 있다. 즉, 예측 움직임 벡터 선택기(230)는 그룹별 대표 예측 움직임 벡터 각각을 사용했을 때 현재 블록을 부호화함에 따라 발생하는 율-왜곡 비용을 계산하고 계산된 율-왜곡 비용이 가장 작은 그룹의 대표 예측 움직임 벡터를 현재 블록의 예측 움직임 벡터로서 선택할 수 있다. 다만, 율-왜곡 비용은 예측 움직임 벡터를 선택하는 데 이용될 수 있는 기준을 예시한 것일 뿐, 본 발명의 일 실시예에서 반드시 율-왜곡 비용을 이용하여 그룹별 대표 예측 움직임 벡터 중에서 예측 움직임 벡터를 선택해야 하는 것은 아니며, 다양한 부호화 비용을 이용하여 예측 움직임 벡터를 선택할 수도 있을 것이다.Referring again to FIG. 2, the predictive motion vector selector 230 selects one representative predictive motion vector among the representative predictive motion vectors per group as a predictive motion vector. Here, the predictive motion vector selector 230 can select one representative predictive motion vector among the representative predictive motion vectors per group using the rate-distortion cost. That is, the predictive motion vector selector 230 calculates a rate-distortion cost generated by coding the current block when using each representative predictive motion vector for each group, and calculates a predictive motion vector of the group having the smallest rate- The vector can be selected as the predictive motion vector of the current block. However, the rate-distortion cost is only an example of a criterion that can be used to select a predictive motion vector. In an embodiment of the present invention, the predictive motion vector And a prediction motion vector may be selected using various coding costs.

차분 벡터 부호화기(240)는 현재 블록의 현재 움직임 벡터와 선택되는 예측 움직임 벡터 간의 차이인 차분 벡터를 부호화한다. 즉, 차분 벡터 부호화기(240)는 영상 부호화기(120)에 의해 결정된 현재 움직임 벡터와 예측 움직임 벡터 선택기(230)에 의해 선택되는 예측 움직임 벡터를 감산하여 차분 벡터를 구하고 차분 벡터를 부호화하여 차분 벡터 데이터를 생성한다. 다만, 차분 벡터 부호화기(240)는 차분 벡터를 별도로 부호화하지 않고 예측 움직임 벡터 선택기(230)가 율-왜곡 비용을 구하기 위해 차분 벡터를 구하고 부호화한 경우 예측 움직임 벡터 선택기(230)에 의해 부호화된 차분 벡터 데이터를 출력할 수 있다. 차분 벡터를 부호화하는 기법으로서는 고정 길이 부호화(Fixed Length Coding), 가변 길이 부호화(Variable Length Coding), 산술 부호화(Arithmetic Coding) 등과 같은 엔트로피 부호화(Entropy Coding) 기법이 이용될 수 있다.The difference vector encoder 240 encodes a differential vector which is a difference between the current motion vector of the current block and the selected predictive motion vector. That is, the difference vector encoder 240 subtracts the current motion vector determined by the image encoder 120 and the predicted motion vector selected by the predictive motion vector selector 230 to obtain a difference vector, . However, the difference vector encoder 240 does not separately encode the difference vector. When the predictive motion vector selector 230 obtains the difference vector to obtain the rate-distortion cost and encodes the difference vector, the difference vector encoder 240 It is possible to output vector data. Entropy coding schemes such as Fixed Length Coding, Variable Length Coding, and Arithmetic Coding can be used as a technique for coding difference vectors.

예측 움직임 벡터 부호화기(250)는 예측 움직임 벡터로서 선택되는 하나의 대표 예측 움직임 벡터가 포함되는 그룹을 나타내는 그룹 인덱스를 부호화한다. 즉, 예측 움직임 벡터 부호화기(250)는 예측 움직임 벡터 선택기(230)에 의해 선택되는 예측 움직임 벡터가 어느 그룹의 대표 예측 움직임 벡터인지 여부를 확인하고, 해당 그룹을 나타내는 그룹 인덱스를 부호화하여 그룹 인덱스 데이터를 생성한다. 그룹 인덱스가 그룹 인덱스는 그룹 A, 그룹 B, 그룹 C, 그룹 D 등이나 제 1 그룹, 제 2 그룹, 제 3 그룹, 제 4 그룹 등과 같이 그룹을 식별할 수 있는 인덱스를 말하며, 차분 벡터와 유사하게 고정 길이 부호화, 가변 길이 부호화, 산술 부호화 등과 같은 엔트로피 부호화 기법 등이 이용될 수 있다.The predictive motion vector encoder 250 encodes a group index indicating a group including one representative predictive motion vector selected as a predictive motion vector. That is, the predictive motion vector encoder 250 checks whether the predictive motion vector selected by the predictive motion vector selector 230 is a group of representative predictive motion vectors, encodes the group index indicating the corresponding group, . Group Index The group index is an index capable of identifying a group such as a group A, a group B, a group C, a group D, or a first group, a second group, a third group, a fourth group, Entropy coding techniques such as fixed length coding, variable length coding, and arithmetic coding can be used.

예를 들어, 후보 예측 움직임 벡터들이 그룹 A, 그룹 B, 그룹 C, 그룹 D의 4 개의 그룹으로 결집된 경우, 고정 길이 부호화를 이용하여 그룹 인덱스를 부호화하면, 그룹 A에 대한 그룹 인덱스 데이터는 '00'으로 부호화되고, 그룹 B에 대한 그룹 인덱스 데이터는 '01'로 부호화되고, 그룹 C에 대한 그룹 인덱스 데이터는 '10'으로 부호화되고, 그룹 D에 대한 그룹 인덱스 데이터는 '11'로 부호화될 수 있다.For example, when the candidate predictive motion vectors are grouped into four groups of group A, group B, group C, and group D, if the group index is coded using fixed length coding, the group index data for group A is' 00 ', the group index data for the group B is encoded as' 01', the group index data for the group C is encoded as' 10 ', and the group index data for the group D is encoded as' 11' .

한편, 예측 움직임 벡터 선택기(230)는 전술한 바와 같이, 그룹별 대표 예측 움직임 벡터 중에서 하나의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택할 수도 있지만, 복수 개의 그룹 상호 간의 공간적인 거리가 기 설정된 기준 거리 이하인지 여부를 판단하여, 기준 거리 이하인 경우에는 현재 블록의 후보 예측 움직임 벡터들의 중간값을 예측 움직임 벡터로서 선택하고, 기준 거리보다 큰 경우에만 전술한 바와 같이 그룹별 대표 예측 움직임 벡터 중에서 하나의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택할 수 있다.Meanwhile, as described above, the predictive motion vector selector 230 may select one representative predictive motion vector among the representative predictive motion vectors per group as a predictive motion vector. However, when the spatial distance between the plurality of groups is greater than a predetermined reference distance If the reference distance is less than or equal to the reference distance, the intermediate value of the candidate prediction motion vectors of the current block is selected as the prediction motion vector. If only the reference motion vector is larger than the reference distance, A predictive motion vector may be selected as a predictive motion vector.

만약, 예측 움직임 벡터 선택기(230)가 복수 개의 그룹 상호 간의 공간적인 거리가 기 설정된 기준 거리 이하여서 현재 블록의 후보 예측 움직임 벡터들의 중간값을 예측 움직임 벡터로서 선택한 경우, 예측 움직임 벡터 부호화기(250)는 그룹 색인을 부호화하지 않을 수 있다. 이는 움직임 벡터 복호화 장치 또는 영상 복호화 장치도 움직임 벡터 부호화 장치 또는 영상 부호화 장치와 마찬가지로 현재 블록의 후보 예측 움직임 벡터들 복수 개의 그룹으로 집결시키고 복수 개의 그룹 상호 간의 공간적인 거리가 기 설정된 기준 거리 이하인지 여부를 판단할 수 있기 때문이다.If the predictive motion vector selector 230 selects the intermediate value of the candidate predictive motion vectors of the current block as a predictive motion vector because the spatial distance between the plurality of groups is less than the preset reference distance, May not encode the group index. This is because the motion vector decoding apparatus or the video decoding apparatus is also used for grouping the candidate prediction motion vectors of the current block into a plurality of groups as in the motion vector coding apparatus or the video coding apparatus and determining whether the spatial distance between the plurality of groups is equal to or less than a preset reference distance As shown in FIG.

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

본 발명의 일 실시예에 따른 움직임 벡터 부호화 방법에 따르면, 움직임 벡터 부호화기(110)는 현재 블록의 후보 예측 움직임 벡터들을 복수 개의 그룹으로 결집시키고(S710), 결집된 각 그룹 내의 후보 예측 움직임 벡터 중 하나의 후보 예측 움직임 벡터를 대표 예측 움직임 벡터로서 선택하여 그룹별 대표 예측 움직임 벡터를 선택하며(S720), 그룹별 대표 예측 움직임 벡터 중에서 하나의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하며(S730), 현재 블록의 현재 움직임 벡터와 선택되는 예측 움직임 벡터 간의 차이인 차분 벡터를 부호화한다(740). 또한, 움직임 벡터 부호화기(110)는 차분 벡터뿐만 아니라 예측 움직임 벡터로서 선택되는 하나의 대표 예측 움직임 벡터가 포함되는 그룹을 나타내는 그룹 인덱스를 추가로 부호화할 수 있다.According to the motion vector coding method according to the embodiment of the present invention, the motion vector encoder 110 combines the candidate prediction motion vectors of the current block into a plurality of groups (S710) In operation S720, one representative predictive motion vector is selected as a representative predictive motion vector to select a representative predictive motion vector for each group, A differential vector which is a difference between the current motion vector of the current block and the selected predictive motion vector is encoded (740). In addition, the motion vector encoder 110 may further encode a group index indicating a group including one representative predictive motion vector selected as a predictive motion vector as well as a difference vector.

단계 S710에서, 움직임 벡터 부호화기(110)는 현재 블록의 후보 예측 움직임 벡터들의 공간적 위치를 기초로 복수 개의 그룹으로 결집시킬 수 있는데, 예를 들어 현재 블록의 후보 예측 움직임 벡터들 중에서 복수 개의 후보 예측 움직임 벡터를 복수 개의 그룹의 중심값으로 설정하고, 각 그룹에 대해 중심값과의 공간적인 거리가 거리 임계값 이하가 되는 후보 예측 움직임 벡터를 각 그룹으로 결집시키며, 각 그룹에 대해 결집되는 후보 예측 움직임 벡터 간의 거리에 대한 제곱의 평균이 평균 임계값 이하가 되도록 중심값을 재설정하며, 각 그룹으로 결집시키는 과정과 중심값을 재설정하는 과정을 각 그룹에 대해 결집되는 후보 예측 움직임 벡터 간의 거리에 대한 제곱의 평균이 평균 임계값 이하가 될 때까지 반복함으로써 현재 블록의 후보 예측 움직임 벡터들을 복수 개의 그룹으로 결집시킬 수 있다.In step S710, the motion vector encoder 110 may group the motion vectors into a plurality of groups based on the spatial positions of the candidate prediction motion vectors of the current block. For example, a plurality of candidate prediction motion vectors A candidate prediction motion vector having a spatial distance from a center value to a center value is less than or equal to a distance threshold value is grouped into each group, and a candidate prediction motion The center value is reset so that the average of the squares of the distances between the vectors is equal to or less than the average threshold value, and the process of collecting into each group and resetting the center value is performed by multiplying the square of the distance between candidate predicted motion vectors Until the average of the predicted motion of the current block becomes equal to or less than the average threshold value Vector can be mobilized into the plurality of groups.

단계 S720에서, 움직임 벡터 부호화기(110)는 각 그룹에 대해 그룹 내의 후보 예측 움직임 벡터 중에서 그룹 내의 후보 예측 움직임 벡터의 중심값과의 공간적인 거리가 가장 가까운 후보 예측 움직임 벡터를 선택함으로써, 그룹별 대표 예측 움직임 벡터를 선택할 수 있다.In step S720, the motion vector encoder 110 selects a candidate prediction motion vector having the closest spatial distance from the center value of the candidate prediction motion vectors in the group among the candidate prediction motion vectors in the group for each group, A predictive motion vector can be selected.

단계 S730에서, 움직임 벡터 부호화기(110)는 율-왜곡 비용를 이용하여 그룹별 대표 예측 움직임 벡터 중에서 하나의 대표 예측 움직임 벡터를 선택할 수 있다.In step S730, the motion vector encoder 110 may select one representative predictive motion vector among representative predictive motion vectors per group using the rate-distortion cost.

또한, 움직임 벡터 부호화기(110)는 복수 개의 그룹 상호 간의 공간적인 거리가 기 설정된 기준 거리 이하인 경우에는 현재 블록의 후보 예측 움직임 벡터들의 중간값을 예측 움직임 벡터로서 선택할 수도 있다. 이 경우, 움직임 벡터 부호화기(110)는 그룹 색인을 부호화하지 않는다.In addition, if the spatial distance between the plurality of groups is less than or equal to a preset reference distance, the motion vector encoder 110 may select a middle value of candidate prediction motion vectors of the current block as a prediction motion vector. In this case, the motion vector encoder 110 does not encode the group index.

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

본 발명의 일 실시예에 따른 영상 부호화 방법에 따르면, 영상 부호화 장치(100)는 현재 블록의 움직임 벡터인 현재 움직임 벡터를 결정하고(S810), 결정되는 현재 움직임 벡터를 이용하여 현재 블록을 예측 부호화하며(S820), 현재 블록의 후보 예측 움직임 벡터들이 공간적 위치를 기초로 결집되는 복수 개의 그룹에 대해 그룹별 대표 예측 움직임 벡터를 선택하며(S830), 그룹별 대표 예측 움직임 벡터 중에서 하나의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하며(S840), 결정되는 현재 움직임 벡터와 선택되는 예측 움직임 벡터 간의 차인 차분 벡터와 선택되는 하나의 대표 예측 움직임 벡터가 포함되는 그룹을 나타내는 그룹 인덱스를 부호화한다(S850).According to the image encoding method of the present invention, the image encoding apparatus 100 determines a current motion vector, which is a motion vector of a current block (S810), and predictively encodes the current block using the determined current motion vector (S820), a representative predictive motion vector for each group is selected for a group of candidate predictive motion vectors of the current block based on the spatial position (S830), and one representative predictive motion A group index indicating a group including a difference vector which is a difference between a current motion vector to be determined and a predictive motion vector to be selected and a representative predictive motion vector to be selected is encoded in operation S850. .

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

본 발명의 일 실시예에 따른 영상 복호화 장치(900)는 움직임 벡터 복호화기(Motion Vector Decoder, 910) 및 영상 복호화기(Video Decoder, 920)를 포함하여 구성될 수 있다.The video decoding apparatus 900 according to an exemplary embodiment of the present invention may include a motion vector decoder 910 and a video decoder 920. [

움직임 벡터 복호화기(910)는 비트스트림으로부터 추출되는 움직임 벡터 데이터를 복호화하여 차분 벡터와 그룹 색인을 복원하고, 현재 블록의 후보 예측 움직임 벡터들이 공간적 위치를 기초로 결집되는 복수 개의 그룹에 대해 그룹별 대표 예측 움직임 벡터를 선택하며, 그룹별 대표 예측 움직임 벡터 중에서 복원되는 그룹 색인에 의해 식별되는 그룹의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하며, 복원되는 차분 벡터와 선택되는 예측 움직임 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원한다. 움직임 벡터 복호화기(910)에 대해서는 후술하는 과정에서 도 10을 통해 상세히 설명한다.The motion vector decoder 910 decodes the motion vector data extracted from the bitstream to reconstruct a difference vector and a group index, and generates a motion vector for each of a plurality of groups of candidate prediction motion vectors of the current block, Selects a representative predictive motion vector, selects a representative predictive motion vector of the group identified by the group index to be restored from the representative predictive motion vectors of each group as a predictive motion vector, adds the restored differential vector and the selected predictive motion vector And restores the current motion vector of the current block. The motion vector decoder 910 will be described in detail with reference to FIG. 10 in the following description.

영상 복호화기(920)는 비트스트림으로부터 추출되는 영상 데이터를 복원되는 현재 움직임 벡터를 이용하여 예측 복호화하여 현재 블록을 복원한다. 이를 위해, 영상 복호화기(920)는 복호화기(Decoder), 역 양자화기 및 역 변환기, 예측기, 가산기, 디블로킹 필터, 메모리 등을 포함하여 구성될 수 있다. 여기서, 복호화기는 비트스트림으로부터 추출되는 영상 데이터를 복호화하여 양자화된 변환 계수를 복원하고, 역 양자화기 및 역 변환기는 복원되는 양자화된 변환 계수를 역 양자화 및 역 변환하여 잔여 블록을 복원하며, 예측기는 움직임 벡터 복호화기(910)에 의해 복원되는 현재 블록의 현재 움직임 벡터를 이용하여 현재 블록의 움직임을 보상함으로써 예측 블록을 생성하며, 가산기는 복원되는 잔여 블록과 예측 블록을 가산하여 현재 블록을 복원할 수 있다. 복원되는 현재 블록은 디블로킹 필터에 의해 디블로킹 필터링되고 픽처 단위로 누적되어 복원 영상으로서 출력되거나 메모리에 저장되어 예측기가 다음 블록 또는 다음 픽처를 예측하는데 활용된다.The image decoder 920 predictively decodes the image data extracted from the bitstream using the recovered current motion vector to recover the current block. For this, the image decoder 920 may include a decoder, an inverse quantizer and an inverse transformer, a predictor, an adder, a deblocking filter, a memory, and the like. Here, the decoder decompresses the image data extracted from the bitstream to restore the quantized transform coefficients. The dequantizer and the inverse transformer inverse quantize and inverse transform the quantized transform coefficients to be restored, thereby restoring the residual block. The motion vector decoder 910 generates a prediction block by compensating for the motion of the current block using the current motion vector of the current block restored by the motion vector decoder 910. The adder adds the residual block to be restored and the prediction block to restore the current block . The reconstructed current block is deblocked and filtered by the deblocking filter, accumulated in units of pictures, and output as a reconstructed image or stored in memory so that the predictor can be used to predict the next block or next picture.

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

본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치는 도 9를 통해 전술한 영상 복호화 장치(900)에서는 움직임 벡터 복호화기(910)로 구현될 수 있다. 이하에서는 설명의 편의를 위해, 본 발명의 일 실시예에 따른 움직임 벡터 복호화 장치를 움직임 벡터 복호화기(910)라 칭한다.The motion vector decoding apparatus according to an embodiment of the present invention may be implemented by a motion vector decoder 910 in the video decoding apparatus 900 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 motion vector decoder 910 for convenience of explanation.

움직임 벡터 복호화기(910)는 후보 예측 움직임 벡터 결집기(1010), 대표 예측 움직임 벡터 선택기(1020), 예측 움직임 벡터 복원기(Predicted Motion Vector Reconstructer, 1030) 및 현재 움직임 벡터 복원기(Current Motion Vector Reconstructer, 1040)를 포함하여 구성될 수 있다.The motion vector decoder 910 includes a candidate prediction motion vector combiner 1010, a representative predictive motion vector selector 1020, a predictive motion vector reconstructor 1030, and a current motion vector reconstructor 1030. [ Reconstructor, 1040).

예측 움직임 벡터 결집기(1010)는 현재 블록의 후보 예측 움직임 벡터들을 복수 개의 그룹으로 결집시키고, 대표 예측 움직임 벡터 선택기(1020)는 결집된 각 그룹 내의 후보 예측 움직임 벡터 중 하나의 후보 예측 움직임 벡터를 대표 예측 움직임 벡터로서 선택하여 그룹별 대표 예측 움직임 벡터를 선택한다. 여기서, 후보 예측 움직임 벡터 결집기(1010)와 대표 예측 움직임 벡터 선택기(1020)는 도 2를 통해 전술한 예측 움직임 벡터 결집기(210)와 대표 예측 움직임 벡터 선택기(220)와 동일 또는 유사하므로 상세한 설명은 생략한다.The predictive motion vector combiner 1010 combines the candidate predictive motion vectors of the current block into a plurality of groups, and the representative predictive motion vector selector 1020 selects one of the candidate predictive motion vectors in each group And selects a representative predictive motion vector for each group as a representative predictive motion vector. The predictive motion vector combiner 1010 and the representative predictive motion vector selector 1020 are the same as or similar to the predictive motion vector superimposer 210 and the representative predictive motion vector selector 220 described above with reference to FIG. 2, The description is omitted.

예측 움직임 벡터 복원기(1030)는 움직임 벡터 데이터로부터 추출되는 그룹 인덱스 데이터를 복호화하여 그룹 인덱스를 복원하고, 그룹별 대표 예측 움직임 벡터 중에서 복원되는 그룹 인덱스에 의해 식별되는 그룹의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택한다. 예를 들어, 대표 예측 움직임 벡터 선택기(1020)에 의해 도 6과 같이 그룹별 대표 예측 움직임 벡터가 선택되었고, 그룹 인덱스 데이터 '11'을 복호화하여 복원되는 그룹 인덱스에 의해 식별되는 그룹이 그룹 D라면, 예측 움직임 벡터 복원기(1030)는 그룹 D에서 대표 예측 움직임 벡터로 선택된 MV b 를 예측 움직임 벡터로서 복원한다.The predictive motion vector reconstructor 1030 reconstructs a group index by decoding the group index data extracted from the motion vector data, and predicts a representative predictive motion vector of the group identified by the group index to be restored in the representative predictive motion vectors of each group As a motion vector. For example, when the representative predictive motion vector per group is selected by the representative predictive motion vector selector 1020 as shown in FIG. 6 and the group identified by the group index to be decoded by decoding the group index data '11' is the group D , The predictive motion vector reconstructor 1030 restores the MV b selected as the representative predictive motion vector in the group D as a predictive motion vector.

현재 움직임 벡터 복원기(1040)는 움직임 벡터 데이터로부터 추출되는 차분 벡터 데이터를 복호화하여 차분 벡터를 복원하고, 복원되는 차분 벡터와 선택되는 예측 움직임 벡터를 현재 블록의 현재 움직임 벡터로서 복원한다. 예를 들어, 차분 벡터 데이터를 복호화하여 복원되는 차분 벡터가 MV 0 이고, 예측 움직임 벡터 복원기(1030)에 의해 복원되는 예측 움직임 벡터가 전술한 예와 같이 MV b 라면, MV b 가 현재 움직임 벡터로서 복원된다.The current motion vector reconstructor 1040 decodes difference vector data extracted from the motion vector data to restore a difference vector, and restores the reconstructed difference vector and the selected predicted motion vector as the current motion vector of the current block. For example, if the difference vector recovered by decoding the differential vector data is MV 0 and the predicted motion vector restored by the predictive motion vector restorer 1030 is MV b as in the above example, MV b is the current motion vector .

한편, 예측 움직임 벡터 복원기(1030)는 전술한 바와 같이 그룹별 대표 예측 움직임 벡터 중에서 복원되는 그룹 인덱스에 의해 식별되는 그룹의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택할 수도 있지만, 현재 블록의 후보 예측 움직임 벡터들의 중간값을 예측 움직임 벡터로서 선택할 수도 있다. 즉, 예측 움직임 벡터 복원기(1030)는 움직임 벡터 데이터로부터 그룹 인덱스 데이터가 추출되는지 여부를 판단하여, 그룹 인덱스 데이터가 추출되는 경우에는 전술한 바와 같이 그룹별 대표 예측 움직임 벡터 중에서 복원되는 그룹 인덱스에 의해 식별되는 그룹의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하고, 그룹 인덱스 데이터가 추출되지 않는 경우에는 현재 블록의 후보 예측 움직임 벡터들의 중간값을 예측 움직임 벡터로서 선택할 수 있다.Meanwhile, the predictive motion vector reconstructor 1030 may select a representative predictive motion vector of the group identified by the group index to be restored from among the representative predictive motion vectors of each group, as described above, The intermediate value of the motion vectors may be selected as the predicted motion vector. That is, the predictive motion vector reconstructor 1030 determines whether or not the group index data is extracted from the motion vector data. If the group index data is extracted, And selects the representative predictive motion vector of the group identified by the predictive motion vector as a predictive motion vector. If the group index data is not extracted, the intermediate value of the candidate predictive motion vectors of the current block can be selected as a predictive motion vector.

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

본 발명의 일 실시예에 따른 움직임 벡터 복호화 방법에 따르면, 움직임 벡터 복호화기(910)는 움직임 벡터 데이터로부터 추출되는 차분 벡터 데이터와 그룹 인덱스 데이터를 복호화하여 차분 벡터와 그룹 인덱스를 복원하고(S1110), 현재 블록의 후보 예측 움직임 벡터들을 복수 개의 그룹으로 결집시키며(S1120), 결집된 각 그룹 내의 후보 예측 움직임 벡터 중 하나의 후보 예측 움직임 벡터를 대표 예측 움직임 벡터로서 선택하여 그룹별 대표 예측 움직임 벡터를 선택하며(S1130), 그룹별 대표 예측 움직임 벡터 중에서 복원되는 그룹 인덱스에 의해 식별되는 그룹의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하며(S1140), 복원되는 차분 벡터와 선택되는 예측 움직임 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원한다(S1150).According to the motion vector decoding method of the embodiment of the present invention, the motion vector decoder 910 decodes the difference vector data and the group index data extracted from the motion vector data to recover the difference vector and the group index (S1110) , The candidate predictive motion vectors of the current block are grouped into a plurality of groups (S1120), one candidate predictive motion vector among the candidate predictive motion vectors in each group is selected as a representative predictive motion vector, (S1130), selects a representative predicted motion vector of the group identified by the group index to be restored from among the representative predicted motion vectors of each group as a predicted motion vector (S1140), adds the recovered difference vector and the selected predicted motion vector And restores the current motion vector of the current block (S1150).

단계 S1120에서, 움직임 벡터 복호화기(910)는 현재 블록의 후보 예측 움직임 벡터들의 공간적 위치를 기초로 복수 개의 그룹으로 결집시킬 수 있다. 예를 들어, 움직임 벡터 복호화기(910)는 현재 블록의 후보 예측 움직임 벡터들 중에서 복수 개의 후보 예측 움직임 벡터를 복수 개의 그룹의 중심값으로 설정하고, 각 그룹에 대해 중심값과의 공간적인 거리가 거리 임계값 이하가 되는 후보 예측 움직임 벡터를 각 그룹으로 결집시키며, 각 그룹에 대해 결집되는 후보 예측 움직임 벡터 간의 거리에 대한 제곱의 평균이 평균 임계값 이하가 되도록 중심값을 재설정하며, 각 그룹으로 결집시키는 과정과 중심값을 재설정하는 과정을 각 그룹에 대해 결집되는 후보 예측 움직임 벡터 간의 거리에 대한 제곱의 평균이 평균 임계값 이하가 될 때까지 반복함으로써, 현재 블록의 후보 예측 움직임 벡터들을 복수 개의 그룹으로 결집시킬 수 있다.In step S1120, the motion vector decoder 910 may group the motion vectors into a plurality of groups based on the spatial positions of the candidate prediction motion vectors of the current block. For example, the motion vector decoder 910 sets a plurality of candidate prediction motion vectors among the candidate prediction motion vectors of the current block as a center value of a plurality of groups, and a spatial distance from the center value The candidate predictive motion vectors that fall below the distance threshold value are grouped into each group and the center value is reset so that the average of the squares of the distances between the candidate predictive motion vectors to be collected for each group is less than or equal to the average threshold value, And the process of resetting the center value are repeated until the average of the squares of the distances between the candidate predictive motion vectors collected for each group becomes equal to or less than the average threshold value so that the candidate predictive motion vectors of the current block are divided into a plurality of Group.

단계 S1130에서, 움직임 벡터 복호화기(910)는 각 그룹에 대해 그룹 내의 후보 예측 움직임 벡터 중에서 그룹 내의 후보 예측 움직임 벡터의 중심값과의 공간적인 거리가 가장 가까운 후보 예측 움직임 벡터를 선택함으로써, 그룹별 대표 예측 움직임 벡터를 선택할 수 있다.In step S1130, the motion vector decoder 910 selects a candidate prediction motion vector having the closest spatial distance from the center value of the candidate prediction motion vectors in the group among the candidate prediction motion vectors in the group for each group, The representative predictive motion vector can be selected.

또한, 움직임 벡터 복호화기(910)는 움직임 벡터 데이터로부터 그룹 색인 데이터가 추출되는지 여부를 판단하고, 그룹 색인 데이터가 추출되지 않는 경우, 현재 블록의 후보 예측 움직임 벡터들의 중간값을 예측 움직임 벡터로서 선택할 수 있다.Also, the motion vector decoder 910 determines whether group index data is extracted from the motion vector data. If the group index data is not extracted, the motion vector decoder 910 selects the intermediate value of the candidate prediction motion vectors of the current block as a prediction motion vector .

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

본 발명의 일 실시예에 따른 영상 복호화 방법에 따르면, 영상 복호화 장치(900)는 비트스트림으로부터 추출되는 움직임 벡터 데이터를 복호화하여 차분 벡터와 그룹 색인을 복원하고(S1210), 현재 블록의 후보 예측 움직임 벡터들이 공간적 위치를 기초로 결집되는 복수 개의 그룹에 대해 그룹별 대표 예측 움직임 벡터를 선택하며(S1220), 그룹별 대표 예측 움직임 벡터 중에서 복원되는 그룹 색인에 의해 식별되는 그룹의 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택하며(S1230), 복원되는 차분 벡터와 선택되는 예측 움직임 벡터를 가산하여 현재 블록의 현재 움직임 벡터를 복원하며(S1240), 비트스트림으로부터 추출되는 영상 데이터를 복원되는 현재 움직임 벡터를 이용하여 예측 복호화하여 현재 블록을 복원한다(S1250).According to an image decoding method according to an embodiment of the present invention, the image decoding apparatus 900 decodes motion vector data extracted from a bitstream to recover a difference vector and a group index (S1210) The representative predictive motion vectors of the group identified by the group index to be restored from among the representative predictive motion vectors of each group are predicted (step S1220) (S1230). The current motion vector of the current block is reconstructed by adding the reconstructed difference vector and the predictive motion vector to be reconstructed (S1240). The reconstructed image data from the bitstream is reconstructed using the reconstructed current motion vector And reconstructs the current block (S1250).

이상에서 전술한 바와 같이, 본 발명의 일 실시예에 따르면, 부호화하고자 하는 블록의 후보 예측 움직임 벡터들을 공간적인 위치를 고려하여 여러 그룹으로 분할하여 결집시키고, 각 그룹별로 대표 예측 움직임 벡터를 선택하고 율-왜곡 관점에서 최적인 대표 예측 움직임 벡터를 예측 움직임 벡터로서 선택함으로써, 많은 개수의 후보 예측 움직임 벡터들을 이용하여 예측 움직임 벡터를 선택하고 그를 이용하여 움직임 벡터를 예측 부호화하더라도 어떠한 예측 움직임 벡터가 선택되었는지를 나타내기 위한 부가 정보를 부호화함에 따라 발생하는 비트량을 억제할 수 있으므로, 움직임 벡터의 부호화 효율을 향상시켜 궁극적으로는 영상의 압축 효율을 향상시킬 수 있다.As described above, according to an embodiment of the present invention, candidate prediction motion vectors of a block to be coded are divided into a plurality of groups in consideration of spatial positions, and a representative predictive motion vector is selected for each group A predictive motion vector is selected using a large number of candidate predictive motion vectors by selecting a representative predictive motion vector optimal in terms of rate-distortion, as a predictive motion vector, and even if a predictive motion vector is predictively encoded using the selected predictive motion vector, It is possible to improve the coding efficiency of the motion vector and ultimately improve the compression efficiency of the image.

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

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

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

이상에서 설명한 바와 같이 본 발명은 영상을 부호화하고 복호화하는 영상 압축 처리 분야에 적용되어, 많은 개수의 후보 예측 움직임 벡터들을 이용하여 예측 움직임 벡터를 선택하여 부호화할 차분 벡터의 크기를 줄이면서도 어떠한 예측 움직임 벡터가 선택되었는지를 나타내기 위한 부가 정보를 부호화함에 따라 발생하는 비트량을 억제할 수 있으므로, 움직임 벡터의 부호화 효율을 향상시켜 궁극적으로는 영상의 압축 효율을 향상시킬 수 있는 효과를 발생하는 매우 유용한 발명이다.As described above, the present invention is applied to an image compression processing field for encoding and decoding an image, so that a prediction motion vector is selected using a large number of candidate prediction motion vectors, It is possible to suppress the amount of bits generated by encoding the additional information for indicating whether the vector is selected. Therefore, it is very useful to improve the coding efficiency of the motion vector and ultimately to improve the compression efficiency of the image Invention.

Claims (5)

현재 블록의 움직임 벡터를 부호화하는 장치에 있어서,
상기 현재 블록의 주변에 위치하는 블록에 대응되는 복수의 움직임 벡터들 중 제1 움직임 벡터 그룹에서 제1 움직임 벡터를 선택하고 상기 복수의 움직임 벡터들 중 제2 움직임 벡터 그룹에서 제2 움직임 벡터를 선택하는 움직임 벡터 선택기;
상기 제1 및 제2 움직임 벡터를 포함하는 후보 움직임 벡터 집합 중에서 하나의 움직임 벡터를 상기 현재 블록의 예측 움직임 벡터로서 선택하는 예측 움직임 벡터 선택기;
상기 현재 블록의 움직임 벡터와 상기 예측 움직임 벡터 간의 차이인 차분 벡터를 부호화하는 차분 벡터 부호화기; 및
상기 제1 및 제2 움직임 벡터를 포함하는 후보 움직임 벡터 집합 중에서 선택되는 상기 하나의 움직임 벡터를 식별하는 인덱스를 부호화하는 예측 움직임 정보 부호화기
를 포함하고,
상기 제1 움직임 벡터 그룹은 상기 현재 블록의 왼쪽 블록의 움직임 벡터를 포함하고, 상기 제2 움직임 벡터 그룹은 상기 현재 블록의 위쪽 블록의 움직임 벡터를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
An apparatus for coding a motion vector of a current block,
Selecting a first motion vector in a first motion vector among a plurality of motion vectors corresponding to a block located in the periphery of the current block and selecting a second motion vector in a second motion vector group among the plurality of motion vectors A motion vector selector;
A predicted motion vector selector for selecting one of the candidate motion vector sets including the first and second motion vectors as a predicted motion vector of the current block;
A differential vector encoder for coding a difference vector which is a difference between the motion vector of the current block and the predicted motion vector; And
A predictive motion information encoder for encoding an index identifying the one motion vector selected from the set of candidate motion vectors including the first and second motion vectors,
Lt; / RTI >
Wherein the first motion vector group includes a motion vector of a left block of the current block and the second motion vector group includes a motion vector of an upper block of the current block.
제 1 항에 있어서,
상기 움직임 벡터 선택기는, 상기 제2 움직임 벡터 그룹에 포함된 움직임 벡터들을 순차적으로 확인하여 상기 제2 움직임 벡터를 선택하는 것을 특징으로 하는 움직임 벡터 부호화 장치.
The method according to claim 1,
Wherein the motion vector selector sequentially selects motion vectors included in the second motion vector group to select the second motion vector.
현재 블록의 움직임 벡터를 부호화하는 방법에 있어서,
상기 현재 블록의 주변에 위치하는 블록에 대응되는 복수의 움직임 벡터들 중 제1 움직임 벡터 그룹에서 제1 움직임 벡터를 선택하고 상기 복수의 움직임 벡터들 중 제2 움직임 벡터 그룹에서 제2 움직임 벡터를 선택하는 단계;
상기 제1 및 제2 움직임 벡터를 포함하는 후보 움직임 벡터 집합 중에서 하나의 움직임 벡터를 상기 현재 블록의 예측 움직임 벡터로서 결정하는 단계; 및
상기 현재 블록의 움직임 벡터와 상기 예측 움직임 벡터 간의 차이인 차분 벡터를 부호화하는 단계; 및
상기 제1 및 제2 움직임 벡터를 포함하는 후보 움직임 벡터 집합 중에서 상기 예측 움직임 벡터로서 선택되는 하나의 움직임 벡터를 식별하는 인덱스를 부호화하는 단계
를 포함하고,
상기 제1 움직임 벡터 그룹은 상기 현재 블록의 왼쪽 블록의 움직임 벡터를 포함하고, 상기 제2 움직임 벡터 그룹은 상기 현재 블록의 위쪽 블록의 움직임 벡터를 포함하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
A method of coding a motion vector of a current block,
Selecting a first motion vector in a first motion vector among a plurality of motion vectors corresponding to a block located in the periphery of the current block and selecting a second motion vector in a second motion vector group among the plurality of motion vectors ;
Determining one motion vector among a set of candidate motion vectors including the first and second motion vectors as a predicted motion vector of the current block; And
Encoding a difference vector which is a difference between the motion vector of the current block and the predicted motion vector; And
Encoding an index identifying a motion vector selected as the predicted motion vector from a set of candidate motion vectors including the first and second motion vectors;
Lt; / RTI >
Wherein the first motion vector group includes a motion vector of a left block of the current block and the second motion vector group includes a motion vector of an upper block of the current block.
제 3 항에 있어서, 상기 제2 움직임 벡터를 선택하는 단계는,
상기 제2 움직임 벡터 그룹에 포함된 움직임 벡터들을 순차적으로 확인하여 상기 제2 움직임 벡터를 선택하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
4. The method of claim 3, wherein selecting the second motion vector comprises:
Wherein the second motion vector is selected by sequentially checking the motion vectors included in the second motion vector group.
제 3 항에 있어서, 상기 예측 움직임 벡터로서 결정하는 단계는,
상기 현재 블록에 대한 부호화 비용을 이용하여 상기 제1 및 제2 움직임 벡터를 포함하는 후보 움직임 벡터 집합 중에서 상기 하나의 움직임 벡터를 결정하는 것을 특징으로 하는 움직임 벡터 부호화 방법.
4. The method of claim 3, wherein determining as the predicted motion vector comprises:
Wherein the one motion vector is determined from a set of candidate motion vectors including the first and second motion vectors using a coding cost for the current block.
KR1020150008911A 2015-01-19 2015-01-19 Motion Vector Coding Method and Apparatus by Using Partitioning Space and Video Coding Method and Apparatus Using Same KR101543310B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150008911A KR101543310B1 (en) 2015-01-19 2015-01-19 Motion Vector Coding Method and Apparatus by Using Partitioning Space and Video Coding Method and Apparatus Using Same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150008911A KR101543310B1 (en) 2015-01-19 2015-01-19 Motion Vector Coding Method and Apparatus by Using Partitioning Space and Video Coding Method and Apparatus Using Same

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020140076783A Division KR101543309B1 (en) 2014-06-23 2014-06-23 Motion Vector Coding Method and Apparatus by Using Partitioning Space and Video Coding Method and Apparatus Using Same

Publications (2)

Publication Number Publication Date
KR20150024361A KR20150024361A (en) 2015-03-06
KR101543310B1 true KR101543310B1 (en) 2015-08-26

Family

ID=53021007

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150008911A KR101543310B1 (en) 2015-01-19 2015-01-19 Motion Vector Coding Method and Apparatus by Using Partitioning Space and Video Coding Method and Apparatus Using Same

Country Status (1)

Country Link
KR (1) KR101543310B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451807B2 (en) * 2018-08-08 2022-09-20 Tencent America LLC Method and apparatus for video coding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009147757A (en) * 2007-12-14 2009-07-02 Canon Inc Motion vector detecting apparatus, motion vector detecting method, imaging apparatus, and program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009147757A (en) * 2007-12-14 2009-07-02 Canon Inc Motion vector detecting apparatus, motion vector detecting method, imaging apparatus, and program

Also Published As

Publication number Publication date
KR20150024361A (en) 2015-03-06

Similar Documents

Publication Publication Date Title
KR101459714B1 (en) Motion Vector Coding Method and Apparatus by Using Partitioning Space and Video Coding Method and Apparatus Using Same
US11425392B2 (en) Method and apparatus for encoding and decoding video 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
JP5937717B2 (en) Video decoding method and apparatus
RU2509436C1 (en) Method and apparatus for encoding and decoding coding unit of picture boundary
RU2559737C2 (en) Method and device for coding/decoding of movement vector
KR101681303B1 (en) Method and Apparatus for Encoding/Decoding of Video Data Using Partitioned-Block Prediction
WO2014054267A1 (en) Image coding device and image coding method
US20150063452A1 (en) High efficiency video coding (hevc) intra prediction encoding apparatus and method
KR101418104B1 (en) Motion Vector Coding Method and Apparatus by Using Motion Vector Resolution Combination and Video Coding Method and Apparatus Using Same
KR101924088B1 (en) Apparatus and method for video encoding and decoding using adaptive prediction block filtering
KR101763113B1 (en) Video Encoding/Decoding Method and Apparatus for Noise Component in Spatial Domain
KR101449683B1 (en) Motion Vector Coding Method and Apparatus by Using Motion Vector Resolution Restriction and Video Coding Method and Apparatus Using Same
KR101543313B1 (en) Motion Vector Coding Method and Apparatus by Using Partitioning Space and Video Coding Method and Apparatus Using Same
KR101377529B1 (en) Video Coding and Decoding Method and Apparatus Using Adaptive Motion Vector Coding/Encoding
KR101543310B1 (en) Motion Vector Coding Method and Apparatus by Using Partitioning Space and Video Coding Method and Apparatus Using Same
KR101543309B1 (en) Motion Vector Coding Method and Apparatus by Using Partitioning Space and Video Coding Method and Apparatus Using Same
KR20110066888A (en) Video coding method and apparatus by using motion compensation frame selective filtering and inter prediction method and apparatus therefor
KR101543323B1 (en) Motion Vector Coding Method and Apparatus by Using Partitioning Space and Video Coding Method and Apparatus Using Same
KR101678654B1 (en) Method and Apparatus of adaptive motion vector predictors selection for competition-based motion vector coding, and Recording Medium therefor
KR101671507B1 (en) Method and Apparatus for Encoding or Decoding Motion Vector
KR101658585B1 (en) Video Coding Method and Apparatus by Using Tool Set
KR20120033546A (en) Method and apparatus for adaptive motion vector coding/decoding using the information of image structure and method and apparatus for encoding/decoding using the same
KR101316710B1 (en) Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus
WO2012044116A2 (en) Apparatus and method for encoding/decoding video using adaptive prediction block filtering

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