KR20120079862A - Apparatus and method for encoding and decoding motion vector - Google Patents

Apparatus and method for encoding and decoding motion vector Download PDF

Info

Publication number
KR20120079862A
KR20120079862A KR1020110001187A KR20110001187A KR20120079862A KR 20120079862 A KR20120079862 A KR 20120079862A KR 1020110001187 A KR1020110001187 A KR 1020110001187A KR 20110001187 A KR20110001187 A KR 20110001187A KR 20120079862 A KR20120079862 A KR 20120079862A
Authority
KR
South Korea
Prior art keywords
motion vector
component
predicted
virtual
current
Prior art date
Application number
KR1020110001187A
Other languages
Korean (ko)
Other versions
KR101441889B1 (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 KR1020110001187A priority Critical patent/KR101441889B1/en
Publication of KR20120079862A publication Critical patent/KR20120079862A/en
Application granted granted Critical
Publication of KR101441889B1 publication Critical patent/KR101441889B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence

Abstract

PURPOSE: A device for encoding or decoding a motion vector and a method thereof are provided to predict a prediction motion vector with high relation with a current motion vector. CONSTITUTION: A first prediction unit(210) predicts a first component of a prediction motion vector using a first motion vector candidate group. A virtual motion vector generating unit(220) and a second prediction unit(230) determine horizontal components of the prediction motion vector. A component separating machine(240) separates current motion vectors of a current block into first and second components. An entropy encoding unit(260) outputs the differential value between the current motion vector and the prediction motion vector by bit streams.

Description

움직임벡터 부호화 및 복호화 장치와 방법{Apparatus and Method for Encoding and Decoding Motion Vector} Apparatus and Method for Encoding and Decoding Motion Vector

본 발명은 움직임 벡터 부호화 및 복호화 장치 및 방법에 관한 것이다.The present invention relates to a motion vector encoding and decoding apparatus and method.

현재, 영상 부호화 및 복호화 분야에서 널리 사용되고 있는 움직임벡터 부호화 및 복호화 방법은 부호화 대상블록(이하, '현재블록'이라 함)에 대해 시공간적으로 주변에 위치한 주변블록의 움직임벡터를 예측값으로 사용하여 움직임 예측된 현재블록의 움직임벡터(이하, '현재 움직임벡터'라 함)를 예측 부호화하는 것이다. 즉, 현재 움직임벡터는 주변블록의 움직임벡터와 상당한 상관관계를 가지고 있기 때문에, 소정의 방법을 통해 주변블록의 움직임벡터로부터 현재 움직임벡터의 예측값(이하, '예측 움직임벡터'라 함)을 계산한 후, 현재 움직임벡터 자체를 부호화하지 않고 예측 움직임벡터에 대한 차분 움직임벡터만을 부호화함으로써 부호화해야 할 비트량을 줄여 부호화 효율을 높이고 있다.Currently, a motion vector encoding and decoding method widely used in the field of image encoding and decoding uses a motion vector of a neighboring block located in space and time around a encoding target block (hereinafter, referred to as a 'current block') as a prediction value. It predicts and encodes a motion vector (hereinafter, referred to as a 'current motion vector') of the current block. That is, since the current motion vector has a significant correlation with the motion vector of the neighboring block, the predicted value of the current motion vector (hereinafter referred to as 'predictive motion vector') is calculated from the motion vector of the neighboring block by a predetermined method. After that, by encoding only the differential motion vector for the predicted motion vector without encoding the current motion vector itself, the amount of bits to be encoded is reduced to increase the coding efficiency.

H.264/AVC에서는 부호화할 현재블록의 주변블록들의 움직임벡터들에 대해 중간값(Median) 연산을 수행하여 예측 움직임벡터를 계산하고 있다.In H.264 / AVC, a predicted motion vector is calculated by performing a median operation on motion vectors of neighboring blocks of a current block to be encoded.

이러한 기술은 움직임벡터를 부호화하는 데에 소요되는 비트량을 줄이는 데에 어느 정도 기여하지만, 현재블록의 움직임벡터와 상관관계가 높은 최적의 예측 움직임벡터를 예측하는 데에는 한계가 있으며, 따라서 부호화 효율의 향상에 있어서도 한계가 따른다.While this technique contributes somewhat to reduce the amount of bits required to encode a motion vector, there is a limit to predicting an optimal predicted motion vector highly correlated with the motion vector of the current block. There is also a limit to improvement.

이러한 문제를 해결하기 위해, 본 발명은 예측 움직임벡터의 제1 성분과 제2 성분을 구분하여 예측하되, 제1 성분은 현재블록에 인접한 주변블록들의 움직임벡터들을 이용하여 예측하고, 제2 성분은 주변블록들의 움직임벡터들을 인터폴레이션(Interpolation)하여 생성한 가상 움직임벡터들과 주변블록의 움직임벡터들을 이용하여 예측함으로써, 부호화 효율을 향상시킬 수 있는 부호화 및 복호화 장치와 방법을 제공함을 목적으로 한다.In order to solve this problem, the present invention separately predicts a first component and a second component of a predicted motion vector, wherein the first component is predicted using motion vectors of neighboring blocks adjacent to the current block, and the second component is predicted. An object of the present invention is to provide an encoding and decoding apparatus and method capable of improving encoding efficiency by predicting virtual motion vectors generated by interpolating motion vectors of neighboring blocks and motion vectors of neighboring blocks.

이러한 목적을 달성하기 위해, 본 발명은 부호화 대상블록의 움직임벡터(이하, '현재 움직임벡터'라 함)를 부호화하는 움직임벡터 부호화 장치에 있어서, 상기 부호화 대상블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측하는 제1 예측부; 상기 적어도 하나의 주변블록의 움직임벡터를 이용한 인터폴레이션(Interpolation)이 가능한지 여부를 판단하고, 그 판단결과에 따라 인터폴레이션을 수행하여 적어도 하나의 가상 움직임벡터를 생성하는 가상 움직임벡터 생성부; 상기 적어도 하나의 주변블록의 움직임벡터 및 상기 가상 움직임벡터 생성부가 출력하는 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합과 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하는 제2 예측부; 및 상기 예측 움직임벡터를 이용하여 상기 현재 움직임벡터에 대한 부호화를 수행하는 움직임벡터 부호화부를 포함하는 것을 특징으로 하는 움직임벡터 부호화 장치를 제공한다.In order to achieve the above object, the present invention provides a motion vector encoding apparatus for encoding a motion vector (hereinafter, referred to as a 'current motion vector') of an encoding target block, the motion of at least one neighboring block adjacent to the encoding target block. A first predictor for predicting a first component of a predicted motion vector using a first motion vector candidate set generated based on the vector; A virtual motion vector generator configured to determine whether interpolation using the motion vectors of the at least one neighboring block is possible, and to generate at least one virtual motion vector by performing interpolation according to the determination result; A second component of the prediction motion vector is generated by using a second motion vector candidate set including a motion vector of the at least one neighboring block and a virtual motion vector output by the virtual motion vector generator and a first component of the current motion vector. A second predictor for predicting; And a motion vector encoder for encoding the current motion vector using the predicted motion vector.

여기서, 상기 제2 예측부는 상기 제2 움직임벡터 후보집합에 속하는 움직임벡터 후보들 중에서 상기 현재 움직임벡터의 제1 성분과의 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보를 이용하여 상기 예측 움직임벡터의 제2 성분을 예측할 수 있다. 또한, 상기 예측 움직임벡터의 제1 성분과 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보가 복수 개인 경우, 그 복수 개의 움직임벡터 후보들의 제2 성분의 평균값을 상기 예측 움직임벡터의 제2 성분으로 예측할 수 있다.Here, the second predictor uses the motion vector candidate having a first component closest to the first component of the current motion vector among the motion vector candidates belonging to the second motion vector candidate set, to determine the predicted motion vector. The second component can be predicted. Further, when there are a plurality of motion vector candidates having a first component closest to the first component of the predicted motion vector, the average value of the second components of the plurality of motion vector candidates is used as the second component of the predicted motion vector. It can be predicted.

한편, 상기 가상 움직임벡터 생성부는 상기 부호화 대상블록에 인접한 주변블록들 중 두 개의 주변블록들을 선별하고 선별된 두 개의 주변블록들의 움직임벡터들에 대해 정수 기반의 인터폴레이션을 수행하여 상기 적어도 하나의 가상 움직임벡터를 생성할 수 있고, 여기서 두 개의 주변블록을 선별함에 있어서 서로 인접한 블록들을 선별할 수 있다.Meanwhile, the virtual motion vector generator selects two neighboring blocks among neighboring blocks adjacent to the encoding target block and performs integer-based interpolation on the motion vectors of the selected two neighboring blocks to perform the at least one virtual motion. A vector may be generated, and in selecting two neighboring blocks, adjacent blocks may be selected.

또 다른 목적을 위해 본 발명은, 복호화 대상블록의 부호화된 움직임벡터를 복호화하여 생성한 복호화된 움직임벡터를 상기 복호화 대상블록의 움직임벡터(이하, '현재 움직임벡터'라 함)로 복원하는 움직임벡터 복호화 장치에 있어서, 상기 복호화 대상블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측하고, 상기 복호화된 움직임벡터의 제1 성분과 상기 예측 움직임벡터의 제1 성분을 이용하여 상기 현재 움직임벡터의 제1 성분을 복원하는 제1 성분 복원부; 상기 적어도 하나의 주변블록의 움직임벡터를 이용한 인터폴레이션(Interpolation)이 가능한지 여부를 판단하고, 그 판단결과에 따라 인터폴레이션을 수행하여 적어도 하나의 가상 움직임벡터를 생성하는 가상 움직임벡터 생성부; 및 상기 적어도 하나의 주변블록의 움직임벡터 및 상기 가상 움직임벡터 생성부가 출력하는 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합과 상기 제1 성분 복원부가 복원한 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하고, 상기 복호화된 움직임벡터의 제2 성분과 상기 예측 움직임벡터의 제2 성분을 이용하여 상기 현재 움직임벡터의 제2 성분을 복원하는 제2 성분 복원부를 포함하는 움직임벡터 복호화 장치를 제공한다.For still another purpose, the present invention provides a motion vector for reconstructing a decoded motion vector generated by decoding a coded motion vector of a decoding target block into a motion vector of the decoding target block (hereinafter, referred to as a 'current motion vector'). A decoding apparatus, comprising: predicting a first component of a predicted motion vector by using a first motion vector candidate set generated based on a motion vector of at least one neighboring block adjacent to the decoding target block, A first component reconstruction unit for reconstructing a first component of the current motion vector by using a first component and a first component of the predicted motion vector; A virtual motion vector generator configured to determine whether interpolation using the motion vectors of the at least one neighboring block is possible, and to generate at least one virtual motion vector by performing interpolation according to the determination result; And a second motion vector candidate set including a motion vector of the at least one neighboring block and a virtual motion vector output by the virtual motion vector generator, and a first component of the current motion vector reconstructed by the first component recovery unit. A second component reconstructor configured to predict a second component of the predicted motion vector and to reconstruct a second component of the current motion vector by using the second component of the decoded motion vector and the second component of the predicted motion vector. A motion vector decoding apparatus is provided.

또 다른 목적을 위해 본 발명은, 부호화 또는 복호화 대상블록의 움직임벡터(이하, '현재 움직임벡터'라 함)에 대한 예측 움직임벡터를 결정하는 장치에 있어서, 상기 부호화 또는 복호화 대상블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측하는 제1 예측부; 상기 적어도 하나의 주변블록의 움직임벡터를 이용한 인터폴레이션(Interpolation)이 가능한지 여부를 판단하고, 그 판단결과에 따라 인터폴레이션을 수행하여 적어도 하나의 가상 움직임벡터를 생성하는 가상 움직임벡터 생성부; 및 상기 적어도 하나의 주변블록의 움직임벡터 및 상기 가상 움직임벡터 생성부가 출력하는 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합과 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하는 제2 예측부를 포함하는 것을 특징으로 하는 예측 움직임벡터 결정 장치를 제공한다.According to another aspect of the present invention, there is provided an apparatus for determining a predicted motion vector with respect to a motion vector of a block to be encoded or decoded (hereinafter, referred to as a 'current motion vector'), at least one adjacent to the block to be encoded or decoded. A first predictor for predicting a first component of a predicted motion vector using a first motion vector candidate set generated based on the motion vectors of neighboring blocks of the first motion vector candidate set; A virtual motion vector generator configured to determine whether interpolation using the motion vectors of the at least one neighboring block is possible, and to generate at least one virtual motion vector by performing interpolation according to the determination result; And a second component of the prediction motion vector using the second motion vector candidate set and the first component of the current motion vector, the second motion vector candidate set including a motion vector of the at least one neighboring block and a virtual motion vector output by the virtual motion vector generator. It provides a prediction motion vector determination apparatus comprising a second prediction unit for predicting the.

또 다른 목적을 위해 본 발명은, 부호화 대상블록의 움직임벡터(이하, '현재 움직임벡터'라 함)를 부호화하는 움직임벡터 부호화 방법에 있어서, 상기 부호화 대상블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측하는 제1 예측 단계; 상기 적어도 하나의 주변블록의 움직임벡터를 이용한 인터폴레이션(Interpolation)이 가능한지 여부를 판단하고, 그 판단결과에 따라 인터폴레이션을 수행하여 적어도 하나의 가상 움직임벡터를 생성하는 가상 움직임벡터 생성 단계; 상기 적어도 하나의 주변블록의 움직임벡터 및 상기 가상 움직임벡터 생성 단계에서 생성되는 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합과 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하는 제2 예측 단계; 및 상기 예측 움직임벡터를 이용하여 상기 현재 움직임벡터에 대한 부호화를 수행하는 움직임벡터 부호화 단계를 포함하는 것을 특징으로 하는 움직임벡터 부호화 방법을 제공한다.According to another aspect of the present invention, in the motion vector encoding method for encoding a motion vector (hereinafter, referred to as a 'current motion vector') of an encoding target block, the motion vector of at least one neighboring block adjacent to the encoding target block is provided. A first prediction step of predicting a first component of a predicted motion vector by using the first motion vector candidate set generated based on the first motion vector candidate set; Determining whether or not interpolation is possible using the motion vectors of the at least one neighboring block, and generating at least one virtual motion vector by performing interpolation according to the determination result; A second component of the predicted motion vector using a second motion vector candidate set including a motion vector of the at least one neighboring block and a virtual motion vector generated in the virtual motion vector generation step and a first component of the current motion vector; Predicting a second step; And a motion vector encoding step of performing encoding on the current motion vector using the predicted motion vector.

또 다른 목적을 위해 본 발명은, 복호화 대상블록의 부호화된 움직임벡터를 복호화하여 생성한 복호화된 움직임벡터를 상기 복호화 대상블록의 움직임벡터(이하, '현재 움직임벡터'라 함)로 복원하는 움직임벡터 복호화 방법에 있어서, 상기 복호화 대상블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측하고, 상기 복호화된 움직임벡터의 제1 성분과 상기 예측 움직임벡터의 제1 성분을 이용하여 상기 현재 움직임벡터의 제1 성분을 복원하는 제1 성분 복원 단계; 상기 적어도 하나의 주변블록의 움직임벡터를 이용한 인터폴레이션(Interpolation)이 가능한지 여부를 판단하고, 그 판단결과에 따라 인터폴레이션을 수행하여 적어도 하나의 가상 움직임벡터를 생성하는 가상 움직임벡터 생성 단계; 및 상기 적어도 하나의 주변블록의 움직임벡터 및 상기 가상 움직임벡터 생성 단계에서 생성되는 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합과 상기 제1 성분 복원 단계에서 복원된 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하고, 상기 복호화된 움직임벡터의 제2 성분과 상기 예측 움직임벡터의 제2 성분을 이용하여 상기 현재 움직임벡터의 제2 성분을 복원하는 제2 성분 복원 단계를 포함하는 움직임벡터 복호화 방법을 제공한다.For still another purpose, the present invention provides a motion vector for reconstructing a decoded motion vector generated by decoding a coded motion vector of a decoding target block into a motion vector of the decoding target block (hereinafter, referred to as a 'current motion vector'). A decoding method comprising: predicting a first component of a predicted motion vector by using a first motion vector candidate set generated based on a motion vector of at least one neighboring block adjacent to the decoding target block, A first component reconstruction step of reconstructing a first component of the current motion vector using a first component and a first component of the predicted motion vector; Determining whether or not interpolation is possible using the motion vectors of the at least one neighboring block, and generating at least one virtual motion vector by performing interpolation according to the determination result; And a second motion vector candidate set including a motion vector of the at least one neighboring block and a virtual motion vector generated in the virtual motion vector generation step and a first component of the current motion vector reconstructed in the first component recovery step. Second component reconstruction for predicting a second component of the predicted motion vector, and reconstructing a second component of the current motion vector using the second component of the decoded motion vector and the second component of the predicted motion vector. It provides a motion vector decoding method comprising the step.

본 발명에 의하면, 현재 움직임벡터와 상관관계가 높은 예측 움직임벡터를 예측할 수 있으므로 움직임벡터에 대한 부호화 효율을 향상시킬 수 있고, 이에 따라 전체 영상에 대한 부호화 효율이 향상된다는 장점이 있다.According to the present invention, since the predicted motion vector having a high correlation with the current motion vector can be predicted, the coding efficiency of the motion vector can be improved, thereby improving the coding efficiency of the entire image.

도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치의 구성을 나타내는 블록도,
도 2는 본 발명의 일 실시예에 따른 움직임벡터 부호화 장치의 구성을 나타내는 블록도,
도 3은 현재블록에 인접한 주변블록들을 나타내는 예시 도면,
도 4는 본 발명의 일 실시예에 따른 가상 움직임벡터를 생성하는 과정을 설명하기 위해 예시 도면,
도 5는 본 발명의 실시예에 따른 움직임벡터 부호화 방법을 나타내는 순서도,
도 6은 본 발명의 일 실시예에 따른 영상 복호화 장치의 구성을 나타내는 블록도,
도 7은 본 발명의 일 실시예에 따른 움직임벡터 복호화 장치의 구성을 나타내는 블록도,
도 8은 본 발명의 일 실시예에 따른 움직임벡터 복호화 방법을 나타내는 순서도이다.
1 is a block diagram showing a configuration of a video encoding apparatus according to an embodiment of the present invention;
2 is a block diagram showing a configuration of a motion vector encoding apparatus according to an embodiment of the present invention;
3 is an exemplary diagram illustrating neighboring blocks adjacent to a current block;
4 is an exemplary diagram for explaining a process of generating a virtual motion vector according to an embodiment of the present invention;
5 is a flowchart illustrating a motion vector encoding method according to an embodiment of the present invention;
6 is a block diagram showing a configuration of an image decoding apparatus according to an embodiment of the present invention;
7 is a block diagram showing the configuration of a motion vector decoding apparatus according to an embodiment of the present invention;
8 is a flowchart illustrating a motion vector decoding method according to an embodiment of the present invention.

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

본 발명의 일 실시예에 따른 영상 부호화 장치는 인트라 예측부(110), 인터 예측부(120), 감산기(130), 변환 및 양자화부(140), 부호화부(150), 역양자화 및 역변환부(160), 가산기(170), 프레임 메모리(180) 등을 포함할 수 있다.An image encoding apparatus according to an embodiment of the present invention includes an intra predictor 110, an inter predictor 120, a subtractor 130, a transform and quantizer 140, an encoder 150, an inverse quantization and inverse transform unit. 160, an adder 170, a frame memory 180, and the like.

여기서 영상 부호화 장치는, 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.The video encoding apparatus may be a personal computer (PC), a notebook computer, a personal digital assistant (PDA), a portable multimedia player (PMP), a PlayStation Portable (PSP), It may be a mobile communication terminal, a communication device such as a communication modem for communicating with various devices or a wired / wireless communication network, a memory for storing various programs for encoding an image and data, and a calculation by executing a program And various devices including a microprocessor for controlling and the like.

부호화하고자 하는 영상은 블록 단위로 분할되어 입력될 수 있는데, 블록의 크기는 다양하게 정의될 수 있다.An image to be encoded can be divided into blocks and input. The sizes of the blocks can be variously defined.

인트라 예측부(110)는, 현재블록과 공간적으로 주변에 위치하는 인접블록에서 사용 가능한 참조 화소값을 이용해 현재블록의 인트라 예측블록을 생성한다. 이 경우, 사용 가능한 인트라 예측모드에 대해 각각 현재블록과 인트라 예측블록 간의 에러값을 연산하고, 최소의 에러값을 갖는 인트라 예측모드를 적용하여 인트라 예측블록을 생성한다. 또한, 최소의 에러값을 갖는 인트라 예측모드에 대한 정보를 부호화부(150)에 제공한다. The intra predictor 110 generates an intra predicted block of the current block by using a reference pixel value that can be used in an adjacent block that is spatially adjacent to the current block. In this case, an error value between the current block and the intra prediction block is calculated for each of the available intra prediction modes, and the intra prediction block is generated by applying the intra prediction mode having the minimum error value. In addition, the encoder 150 provides information about an intra prediction mode having a minimum error value.

인터 예측부(120)는 이미 부호화 과정을 거치고 복원된 이전 프레임에서 탐색 영역을 결정하고, 결정된 탐색 영역에서 움직임 추정 과정을 거쳐 현재블록과 상관관계가 높은, 즉, 현재블록에 대해 최소의 에러를 발생시키는 인트라 예측블록을 생성한다. 또한, 움직임 추정 과정을 통해 생성된 현재블록에 대한 움직임벡터(현재 움직임벡터)를 부호화부(150)로 제공한다. The inter prediction unit 120 determines a search region in a previous frame that has already been encoded and reconstructed, and performs a motion estimation process in the determined search region, and has a high correlation with the current block, that is, a minimum error for the current block. Generate an intra prediction block to generate. In addition, the encoder 150 provides a motion vector (current motion vector) for the current block generated through the motion estimation process.

감산기(130)는 입력된 현재블록과 인트라 예측부(110) 또는 인터 예측부(120)로부터 수신한 인트라 예측블록 또는 인터 예측블록을 감산하여 잔차블록(Residual Block)을 생성한 후 이를 변환 및 양자화부(140)로 전달한다. 즉, 감산기(130)는 현재블록의 화소값과 인트라 예측부(110) 또는 인터 예측부(120)로부터 전달받은 예측블록의 화소값을 감산하여 잔차블록을 생성한다.The subtractor 130 subtracts the input current block and the intra prediction block or the inter prediction block received from the intra prediction unit 110 or the inter prediction unit 120 to generate a residual block, and then transforms and quantizes the residual block. Transfer to the unit 140. That is, the subtractor 130 generates a residual block by subtracting the pixel value of the current block and the pixel value of the prediction block received from the intra predictor 110 or the inter predictor 120.

변환 및 양자화부(140)는 감산기(130)에서 생성된 잔차블록을 주파수 영역으로 변환한 후 이를 양자화한다. 즉, 변환 및 양자화부(140)는 감산기(130)에 의해 생성된 잔차블록의 잔차 계수를 주파수 영역으로 변환하여 주파수 계수를 갖는 잔차블록을 생성하고, 주파수 계수를 갖는 잔차블록을 양자화한다. 여기서, 변환 방식으로는 하다마드 변환(Hadamard Transform), 이산 코사인 변환 기반의 정수 변환(Discrete Cosine Transform Based Integer Transform) 등과 같은 공간 영역의 화상 신호를 주파수 영역으로 변환하는 기법이 사용될 수 있고, 양자화 방식으로는 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization) 또는 양자화 가중치 매트릭스 (Quantization Weighted Matrix) 등과 같은 다양한 양자화 기법이 이용될 수 있다. 그러나 변환 및 양자화 방식이 이에 한정되는 것은 아니며, 보다 다양한 변환 및 양자화 기법들이 이용될 수 있을 것이다.The transform and quantization unit 140 converts the residual block generated by the subtractor 130 into the frequency domain and quantizes it. That is, the transform and quantization unit 140 converts the residual coefficients of the residual block generated by the subtractor 130 into a frequency domain to generate a residual block having frequency coefficients, and quantizes the residual block having frequency coefficients. Here, as a transformation method, a technique of transforming an image signal in a spatial domain into a frequency domain, such as a Hadamard transform or a discrete cosine transform based integer transform, may be used. Various quantization techniques such as Dead Zone Uniform Threshold Quantization (DZUTQ) or Quantization Weighted Matrix (DZUTQ) may be used. However, the transformation and quantization scheme is not limited thereto, and more various transformation and quantization techniques may be used.

부호화부(150)는 변환 및 양자화부(140)에 의해 변환되고 양자화된 잔차블록을 부호화하여 부호화 데이터를 생성한다. 생성된 부호화 데이터는 비트스트림으로 출력될 수 있다. 부호화부(150)에 의해 사용되는 부호화 기술로는 엔트로피 부호화(Entropy Encoding) 기술이 사용될 수 있으나, 이에 한정되는 것은 아니며 다른 다양한 부호화 기술이 사용될 수 있을 것이다.The encoder 150 generates encoded data by encoding the residual block transformed and quantized by the transform and quantization unit 140. The generated encoded data may be output as a bitstream. As the encoding technique used by the encoder 150, an entropy encoding technique may be used, but the present disclosure is not limited thereto and various other encoding techniques may be used.

또한, 부호화부(150)는 부호화 데이터를 복호화하는 데에 필요한 다양한 정보들을 부호화 데이터에 포함시킬 수 있다. 예컨대, 부호화 데이터는 부호화된 블록 형태(CBP: Coded Block Pattern), 델타 양자화 계수(Delta Quantization Parameter), 양자화 주파수 계수가 부호화된 비트열을 포함하는 제1 필드와 예측에 필요한 정보(예를 들어, 인트라 예측의 경우 인트라 예측 모드에 대한 정보, 인터 예측의 경우 움직임 정보 등)를 포함하는 제2 필드를 포함할 수 있다.In addition, the encoder 150 may include various pieces of information necessary for decoding the encoded data in the encoded data. For example, the coded data may include a first field including a coded block pattern (CBP), a delta quantization parameter, a bit string in which the quantization frequency coefficient is encoded, and information necessary for prediction (eg, In case of intra prediction, a second field including information on an intra prediction mode, motion information in case of inter prediction, etc. may be included.

또한, 부호화부(150)는 움직임 추정에 사용된 참조프레임의 색인 정보나 움직임 벡터의 정밀도(예를 들면, 1/2-화소단위, 1/4- 화소단위, 1/8 단위 화소단위 등)를 출력할 수도 있다. 그러나, 부호화 장치와 복호화 장치가 사전에 어떤 값을 사용할지를 미리 약속한 경우, 예를 들어, 시간적으로 가장 최근인 참조프레임을 사용하는 것으로 상호 약속하거나 움직임 정보의 정밀도로서 1/4-화소 단위를 사용하는 것으로 부호화 장치와 복호화 장치가 상호 약속한 경우 등에 있어서는 이러한 정보를 출력하지 않을 수도 있다.In addition, the encoder 150 may determine the index information of the reference frame used for the motion estimation or the precision of the motion vector (for example, 1 / 2-pixel unit, 1 / 4-pixel unit, 1/8 unit pixel unit, etc.). You can also output However, if the encoding device and the decoding device have previously promised which values to use in advance, they may be mutually promised, for example, to use a reference frame that is most recent in time, or 1 / 4-pixel units as the precision of motion information. Such information may not be output in the case where the encoding device and the decoding device mutually promise each other.

특히, 부호화부(150)는 움직임벡터를 부호화하기 위한 움직임벡터 부호화 장치를 포함할 수 있는데, 이 움직임벡터 부호화 장치는 본 발명의 실시예에서 제안하는 예측 움직임벡터 결정 방식에 따라 결정된 예측 움직임벡터와 현재 움직임벡터를 이용하여 차분 움직임벡터를 생성하고 생성된 차분 움직임벡터를 부호화한다. 움직임벡터 부호화 장치는 도 2 내지 도 4를 참조하여 후술하기로 한다.In particular, the encoder 150 may include a motion vector encoding apparatus for encoding a motion vector. The motion vector encoding apparatus includes a predicted motion vector determined according to a predicted motion vector determination method proposed in an embodiment of the present invention. A differential motion vector is generated using the current motion vector, and the generated differential motion vector is encoded. The motion vector encoding apparatus will be described later with reference to FIGS. 2 to 4.

역양자화 및 역변환부(160)는 변환 및 양자화부(140)에 의해 변환 및 양자화된 잔차블록을 역양자화 및 역변환하여 잔차블록을 복원한다. 즉, 역양자화와 역변환은 변환 및 양자화부(140)가 수행한 변환 과정과 양자화 과정을 역으로 수행하며 다양한 방법으로 구현될 수 있다. 예를 들어, 변환 및 양자화부(140)와 역양자화 및 역변환부(160)가 사전에 공유하는 동일한 과정의 변환 및 역변환 또는 양자화 및 역양자화를 사용할 수 있고, 또는 역양자화 및 역변환부(160)는 변환 및 양자화부(140)의 변환 및 양자화 과정에 의해 발생되어 전달되는 변환 및 양자화 과정에 관한 정보(예를 들어, 변환 크기, 변환 모양, 양자화 타입 등의 정보)를 이용하여 잔여데이터 부호화부(230)의 변환 및 양자화 과정을 역으로 수행함으로써, 역양자화 및 역변환을 수행할 수도 있다.The inverse quantization and inverse transform unit 160 inversely quantizes and inverse transforms the residual block transformed and quantized by the transform and quantization unit 140 to restore the residual block. That is, inverse quantization and inverse transformation perform the transformation and quantization processes inversely performed by the transform and quantization unit 140 and may be implemented in various ways. For example, the transform and inverse transform or the quantization and inverse quantization of the same process that the transform and quantization unit 140 and the inverse quantization and inverse transform unit 160 share in advance may be used, or the inverse quantization and inverse transform unit 160 may be used. The residual data encoder uses information about a transform and quantization process generated and transmitted by the transform and quantization process of the transform and quantization unit 140 (for example, information on transform size, transform shape, and quantization type). Inverse quantization and inverse transformation may be performed by inversely performing the transform and quantization process of 230.

가산기(170)는 역양자화 및 역변환부(160)에서 복원된 잔차블록과 인트라 예측부(110) 또는 인터 예측부(120)로부터 출력되는 예측블록을 가산하여 복원블록을 생성한다. 생성된 복원블록은 프레임 메모리(180)에 저장되어 이후에 부호화해야 할 대상블록을 부호화하기 위한 참조프레임으로 사용된다.The adder 170 generates a reconstructed block by adding the residual block reconstructed by the inverse quantization and inverse transform unit 160 and the prediction block output from the intra predictor 110 or the inter predictor 120. The generated reconstruction block is stored in the frame memory 180 and used as a reference frame for encoding a target block to be encoded later.

한편, 도 1에는 도시하지 않았으나, 본 발명의 실시예에 따른 영상 부호화 장치는 블록 단위의 예측 및 양자화에 의해 발생하는 블록킹 효과를 감소시키기 위해 복원블록을 필터링하는 디블록킹 필터를 포함할 수 있다. 이때, 인트라 예측의 경우에는 디블록킹 필터에 의해 필터링되지 않은 복원블록을 사용하고, 인터 예측의 경우에는 필터링된 복원블록을 사용할 수 있다.On the other hand, although not shown in Figure 1, the image encoding apparatus according to an embodiment of the present invention may include a deblocking filter for filtering the reconstructed block in order to reduce the blocking effect caused by block-based prediction and quantization. In this case, in the case of intra prediction, a reconstructed block that is not filtered by the deblocking filter may be used, and in the case of inter prediction, the filtered reconstructed block may be used.

도 2는 본 발명의 일 실시예에 따른 움직임벡터 부호화 장치의 구성을 나타내는 블록도이며, 이러한 구성들은 독립적인 하드웨어 또는 소프트웨어 모듈로서 구현될 수 있을 것이다.2 is a block diagram illustrating a configuration of a motion vector encoding apparatus according to an embodiment of the present invention, and these configurations may be implemented as independent hardware or software modules.

본 발명의 실시예에 따른 움직임벡터 부호화 장치는 예측 움직임벡터 결정부(200), 성분 분리기(240), 차분기(252, 254), 및 엔트로피 부호화부(260)를 포함할 수 있다.The motion vector encoding apparatus according to the embodiment of the present invention may include a predictive motion vector determiner 200, a component separator 240, a difference divider 252 and 254, and an entropy encoder 260.

예측 움직임벡터 결정부(200)는 본 발명의 실시예에서 제안하는 방식에 따라 현재 움직임벡터에 대한 예측 움직임벡터를 결정하며, 제1 예측부(210), 가상 움직임벡터 생성부(220) 및 제2 예측부(230)를 포함할 수 있다.The predicted motion vector determiner 200 determines a predicted motion vector for the current motion vector according to the method proposed by the embodiment of the present invention, and includes a first predictor 210, a virtual motion vector generator 220, and a first motion vector. 2 may include a predictor 230.

제1 예측부(210)는 현재블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측하며, 제1 움직임벡터 후보집합 생성부(212) 및 제1 성분 예측부(214)를 포함할 수 있다. 이하에서는, 설명의 편의를 위해 제1 성분을 수직성분, 제2 성분을 수평성분으로 가정하여 설명하나, 반드시 이에 한정되는 것은 아니며, 제1 성분을 수평성분, 제2 성분을 수직성분으로 할 수 있음은 자명하다.The first predictor 210 predicts a first component of the predicted motion vector by using the first motion vector candidate set generated based on the motion vectors of at least one neighboring block adjacent to the current block, and then predicts the first motion vector candidate. The set generator 212 and the first component predictor 214 may be included. In the following description, the first component is assumed to be a vertical component and the second component is a horizontal component for convenience of description. However, the present invention is not limited thereto, and the first component may be a horizontal component and the second component may be a vertical component. It is self-evident.

제1 움직임벡터 후보집합 생성부(212)는 현재블록에 인접한 적어도 하나의 주변블록을 이용하여 제1 움직임벡터 후보들을 선정한다. The first motion vector candidate set generator 212 selects first motion vector candidates using at least one neighboring block adjacent to the current block.

예컨대, 도 3을 참조하면, 현재블록을 D, 현재블록에 인접한 이미 부호화된 주변블록을 A, B, C라 가정하고, 현재블록 D의 움직임벡터를

Figure pat00001
, 주변블록 A, B, C의 움직임벡터를 각각
Figure pat00002
,
Figure pat00003
,
Figure pat00004
라 하면, 제1 움직임벡터 후보집합 생성부(212)는 주변블록의 움직임벡터 {
Figure pat00005
,
Figure pat00006
,
Figure pat00007
}를 제1 움직임벡터 후보집합으로 선정할 수 있다. 또는 제1 예측부(210)는 예측 움직임벡터의 제1 성분, 즉, 수직성분을 예측하는 기능을 수행하므로, 주변블록의 움직임벡터의 제1 성분만을 추출하여 {
Figure pat00008
,
Figure pat00009
,
Figure pat00010
}를 제1 움직임벡터 후보로 선정할 수도 있다. 본 실시예에서는 현재블록에 대해 공간적으로 좌측, 상단, 우측상단에 위치한 주변블록들을 이용하여 제1 움직임벡터 후보집합을 선정하는 것으로 설명하고 있으나, 반드시 이에 한정되는 것은 아니며, 구현 방법이나 필요에 따라 보다 다양한 움직임 벡터들을 후보로서 선택할 수 있을 것이다. For example, referring to FIG. 3, it is assumed that the current block is D, the neighboring coded neighboring blocks adjacent to the current block are A, B, and C, and the motion vector of the current block D is calculated.
Figure pat00001
, The motion vectors of neighboring blocks A, B, and C, respectively
Figure pat00002
,
Figure pat00003
,
Figure pat00004
In this case, the first motion vector candidate set generator 212 may include a motion vector {of a neighboring block {
Figure pat00005
,
Figure pat00006
,
Figure pat00007
} May be selected as the first motion vector candidate set. Alternatively, since the first predictor 210 performs a function of predicting the first component of the predicted motion vector, that is, the vertical component, the first predictor 210 extracts only the first component of the motion vector of the neighboring block {
Figure pat00008
,
Figure pat00009
,
Figure pat00010
} May be selected as the first motion vector candidate. In the present exemplary embodiment, the first motion vector candidate set is selected by using neighboring blocks located on the left, top, and right upper sides of the current block, but the present invention is not limited thereto. More various motion vectors may be selected as candidates.

예를 들어, 공간적으로 좌측상단에 위치한 블록의 움직임벡터도 후보로 사용할 수 있고, 시간적으로 이전에 부호화된 참조프레임에서 현재블록과 동일한 위치 또는 인접한 위치에 있는 블록의 움직임벡터를 현재블록에 대한 주변블록으로 하여 후보집합을 구성할 수도 있을 것이다. 또는 사용 가능한 후보가 존재하지 않는 경우에는 임의의 예측값(예를 들어, (0,0))을 유일한 후보로 사용할 수도 있다. 즉, 후보집합은 그 정의를 부호화 장치와 복호화 장치가 사전에 공유하고 있다는 전제 하에 다양한 방법으로 정의될 수 있을 것이다.For example, a motion vector of a block located at the top left in space may also be used as a candidate, and a motion vector of a block located at the same or adjacent position as the current block in a reference frame encoded in time is peripheral to the current block. Candidate sets may be configured as blocks. Alternatively, if no candidate is available, an arbitrary prediction value (for example, (0, 0)) may be used as the only candidate. That is, the candidate set may be defined in various ways on the assumption that the definition is shared between the encoding apparatus and the decoding apparatus in advance.

제1 성분 예측부(214)는 제1 움직임벡터 후보집합 생성부(212)에 의해 생성된 제1 움직임벡터 후보들을 이용하여 예측 움직임벡터의 제1 성분을 예측한다. 예컨대, 수학식 1에서 보는 바와 같이, 제1 성분 예측부(214)는 제1 움직임벡터 후보들의 제1 성분의 중간값을 예측 움직임벡터의 제1 성분, PMVy으로 예측할 수 있다. 그러나 이에 한정되는 것은 아니며, 제1 성분 예측부(214)는 제1 움직임벡터 후보들을 이용하여 보다 다양한 방식으로 예측 움직임벡터의 제1 성분을 예측할 수 있으며, 예를 들어 제1 움직임벡터 후보들의 평균값을 예측 움직임벡터로서 선정할 수도 있을 것이다.The first component predictor 214 predicts the first component of the predicted motion vector by using the first motion vector candidates generated by the first motion vector candidate set generator 212. For example, as shown in Equation 1, the first component predictor 214 may predict the median value of the first components of the first motion vector candidates as the first component PMVy of the predicted motion vector. However, the present invention is not limited thereto, and the first component predictor 214 may predict the first component of the predicted motion vector in various ways by using the first motion vector candidates, for example, an average value of the first motion vector candidates. May be selected as the predicted motion vector.

Figure pat00011
Figure pat00011

가상 움직임벡터 생성부(220) 및 제2 예측부(230)는 예측 움직임벡터의 제2 성분, 즉, 수평성분을 결정하기 위한 구성요소로서, 이 중 가상 움직임벡터 생성부(220)는 현재블록에 인접한 주변블록들을 이용한 인터폴레이션(Interpolation)이 가능한지 여부를 판단하고, 인터폴레이션이 가능한 경우 그 주변블록들을 인터폴레이션하여 가상 움직임벡터를 생성한다. 여기서, 인터폴레이션이란 특정 함수를 이용하여 몇 개의 점에 주어진 값을 기초로 그 점들 사이의 값을 구하는 것을 의미하며, 그 특정 함수의 종류에 따라 선형 인터폴레이션(Linear Interpolation)과 비선형 인터폴레이션(Non-linear Interpolation)으로 구분될 수 있다. 이하에서는, 선형 인터폴레이션을 이용하여 주변블록들의 움직임벡터를 인터폴레이션하는 것으로 설명하나, 본 발명의 범위가 이에 한정되는 것은 아니며 비선형 인터폴레이션을 사용하는 것도 본 발명의 범위에 포함되는 것으로 해석하여야 할 것이다.The virtual motion vector generator 220 and the second predictor 230 are components for determining a second component, that is, a horizontal component, of the predicted motion vector. Among them, the virtual motion vector generator 220 is a current block. It is determined whether interpolation using neighboring blocks adjacent to is possible, and if the interpolation is possible, interpolating the neighboring blocks to generate a virtual motion vector. Here, interpolation means obtaining a value between the points based on a value given to several points using a specific function, and linear interpolation and non-linear interpolation according to the type of the specific function. ) Can be separated. Hereinafter, although it will be described as interpolating motion vectors of neighboring blocks using linear interpolation, the scope of the present invention is not limited thereto, and it should be interpreted that the use of nonlinear interpolation is included in the scope of the present invention.

예를 들어, 두 개의 주변블록의 움직임벡터를 각각 MV1(x1, y1), MV2(x2, y2)라 가정하고, y2≥y1이라 가정하면, 가상 움직임벡터 생성부(220)는 제1 성분인 y1과 y2 간의 거리 차가 1 이하인지 여부를 판단한다. 만약 y1=y2이거나 y2-y1=1 인 경우 두 개의 주변블록 MV1(x1, y1), MV2(x2, y2)에 대한 인터폴레이션이 불가능하다고 판단하게 되고, 그렇지 않은 경우에는 다음의 알고리즘에 의해 MV1(x1, y1), MV2(x2, y2) 간의 인터폴레이션을 수행하여 가상 움직임벡터를 생성한다.
For example, assuming that the motion vectors of two neighboring blocks are MV1 (x1, y1) and MV2 (x2, y2), respectively, and y2≥y1, the virtual motion vector generator 220 is a first component. It is determined whether the distance difference between y1 and y2 is 1 or less. If y1 = y2 or y2-y1 = 1, it is determined that interpolation of two neighboring blocks MV1 (x1, y1) and MV2 (x2, y2) is impossible, otherwise MV1 ( The virtual motion vector is generated by performing interpolation between x1, y1) and MV2 (x2, y2).

Inclination = (x2-x1)/(y2-y1)Inclination = (x2-x1) / (y2-y1)

y = y1+1y = y1 + 1

While (y != y2)While (y! = Y2)

x = floor(Inclination *(y-y1)) + x1;x = floor (Inclination * (y-y1)) + x1;

(x,y)를 가상 움직임벡터로 선정Select (x, y) as a virtual motion vector

y = y+1y = y + 1

End While
End while

이 알고리즘에서 변수 "Inclination"은 두 움직임벡터 MV1(x1, y1), MV2(x2, y2) 간의 기울기를 의미한다. 이 알고리즘에 따르면, 제1 성분인 y값을 y1에서 y2까지 차례로 증가시켜 가며, y1과 y2 사이의 모든 정수값에 대해 선형 인터폴레이션(Linear Interpolation)을 수행한다. 다만, 움직임벡터가 화소 단위로 결정되고 따라서 움직임벡터의 값이 정수이어야 한다고 가정할 때, 인터폴레이션은 정수 기반으로 수행되어야 한다. 이를 위해 본 실시예에서는 "floor" 연산을 사용하여 선형 인터폴레이션을 수행하여 얻은 x값이 소수점 이하의 값을 가지는 경우 내림 연산을 수행한다.In this algorithm, the variable "Inclination" means the slope between two motion vectors MV1 (x1, y1) and MV2 (x2, y2). According to this algorithm, the first component y is sequentially increased from y1 to y2, and linear interpolation is performed on all integer values between y1 and y2. However, assuming that the motion vector is determined in units of pixels, and therefore the value of the motion vector should be an integer, interpolation should be performed on an integer basis. To this end, in the present embodiment, when the x value obtained by performing the linear interpolation using the "floor" operation has a value less than or equal to the decimal point, a rounding operation is performed.

도 4를 참조하여, 가상 움직임벡터를 생성하는 과정을 좀 더 상세히 설명하면, MV1=(x1,y1)=(2,2)이고, MV2=(x2,y2)=(4, 6)이라고 할 때, y1과 y2는 거리가 2이상이므로, 가상 움직임벡터 생성부(220)는 전술한 알고리즘과 같은 연산을 수행하여 정수 기반의 인터폴레이션을 수행하게 된다.Referring to FIG. 4, a process of generating a virtual motion vector will be described in more detail, where MV1 = (x1, y1) = (2,2) and MV2 = (x2, y2) = (4, 6). At this time, since y1 and y2 have a distance of 2 or more, the virtual motion vector generator 220 performs an integer-based interpolation by performing the same operation as the algorithm described above.

먼저, y값을 y1=2에서 1만큼 증가시킬 때(y=3일 때), x값을 구하면, x=floor(2.5)=2이다. 따라서 VMV1=(2,3)이 가상 움직임벡터로서 생성된다.First, when increasing the value of y by 1 from y1 = 2 (when y = 3), the value of x is x = floor (2.5) = 2. Therefore, VMV1 = (2, 3) is generated as a virtual motion vector.

다음 y값을 다시 1만큼 증가시켜 y=4일때 x값을 구하면, x=floor(3)=3이 된다. 따라서 VMV2=(3,4)이 가상 움직임벡터로서 생성된다.Then increase the value of y again by 1 to find the value of x when y = 4, where x = floor (3) = 3. Therefore, VMV2 = (3, 4) is generated as a virtual motion vector.

y값을 다시 1만큼 증가시켜 y=5일 때 x값을 구하면, x=floor(3.5)=3이 된다. 따라서 VMV3=(3,5)가 가상 움직임벡터로서 생성된다.Increasing the value of y again by 1 to find the value of x when y = 5 yields x = floor (3.5) = 3. Therefore, VMV3 = (3, 5) is generated as a virtual motion vector.

다시 y값을 1만큼 증가시키면 y=6이 되고, 따라서 y=y2가 되므로, 알고리즘은 종료되고, 최종적으로 VMV1, VMV2, VMV3 세 개의 가상 움직임벡터가 생성된다.If y is increased by 1 again, y = 6, and thus y = y2, the algorithm is terminated and finally three virtual motion vectors are generated, VMV1, VMV2, and VMV3.

본 실시예에서는 정수 기반의 인터폴레이션을 수행하기 위해, 내림 연산을 사용하였으나, 본 발명의 범위가 이에 한정되는 것은 아니며 올림이나 반올림 연산을 수행하여 x값을 정수로 만들 수도 있을 것이다. 또한, 본 실시예에서는 제1 성분, 즉, 수직성분인 y값을 기준으로 y값을 1씩 증가시켜가며 x값을 구하는 인터폴레이션을 수행하였으나, 이에 한정되는 것은 아니며, x값을 기준으로 x값을 1씩 증가시켜가며 y값을 구하는 방식으로 인터폴레이션을 수행할 수도 있을 것이다.In the present embodiment, a rounding operation is used to perform integer-based interpolation, but the scope of the present invention is not limited thereto, and the rounding or rounding operation may be used to make the x value an integer. In addition, in the present exemplary embodiment, interpolation is performed to obtain an x value by increasing the y value by 1 based on the first component, that is, the vertical y value, but the present invention is not limited thereto. You can also interpolate by incrementing by 1 to find the y value.

또한, 본 실시예에서는 설명의 편의를 위해 y2≥y1이라 가정하여 설명하였으나, 만약 y1≥y2이라면 y2를 기준으로 1씩 증가시켜가며 x를 구하는 인터폴레이션을 수행하거나 또는 y1을 기준으로 1씩 감소시켜가며 x를 구하는 인터폴레이션을 수행할 수도 있을 것이다.In addition, in the present embodiment, for convenience of explanation, it is assumed that y2≥y1. However, if y1≥y2, an interpolation to find x while increasing by 1 based on y2 is performed or reduced by 1 based on y1. You can also do interpolation to find x.

한편, 가상 움직임벡터 생성부(220)는 전술한 알고리즘 이외에, 다음의 알고리즘과 같이, 두 개의 주변블록의 움직임벡터들의 평균값을 구하여 인터폴레이션을 수행할 수도 있을 것이다.
Meanwhile, in addition to the above-described algorithm, the virtual motion vector generator 220 may perform interpolation by obtaining an average value of motion vectors of two neighboring blocks, as in the following algorithm.

y = (y1+y2) >> 1y = (y1 + y2) >> 1

x = (x1+x2) >> 1x = (x1 + x2) >> 1

(x,y)를 가상 움직임벡터로 생성
Generate (x, y) as a virtual motion vector

위 알고리즘에서 ">>"는 이진 연산된 값을 오른쪽으로 시프트하는 연산을 의미하는 것으로, 두 값을 더하여 생성한 이진수 값을 1만큼 오른쪽으로 시프트한다는 것은 두 개의 이진수에 대한 평균을 구하는 연산과 동일하다. 더 정확히는 두 개의 이진수의 평균을 구한 후 이를 내림 연산하는 것과 동일하다.In the above algorithm, ">>" means shifting a binary calculated value to the right. Shifting a binary value created by adding two values to the right by 1 is the same as calculating the average of two binary numbers. Do. More precisely, it is equivalent to taking the average of two binary numbers and then rounding them down.

도 4의 예에서와 같이, MV1=(x1,y1)=(2,2)이고, MV2=(x2,y2)=(4, 6)이라면, 위 알고리즘에 의해 생성된 가상 움직임벡터는 VMV=(3,4)가 된다. 만약, MV1=(x1,y1)=(2,3)이고, MV2=(x2,y2)=(5, 6)이라면, 위 알고리즘에 의해 생성된 가상 움직임벡터는 VMV=(3,4)가 된다.As in the example of Figure 4, if MV1 = (x1, y1) = (2, 2), and MV2 = (x2, y2) = (4, 6), the virtual motion vector generated by the above algorithm is VMV = (3,4). If MV1 = (x1, y1) = (2,3) and MV2 = (x2, y2) = (5, 6), then the virtual motion vector generated by the above algorithm is VMV = (3,4) do.

가상 움직임벡터 생성부(220)는 현재블록에 인접한 주변블록들의 움직임벡터들, 예를 들어 제1 움직임벡터 후보집합으로 선정된 {

Figure pat00012
,
Figure pat00013
,
Figure pat00014
}으로부터 두 개의 움직임벡터를 선별하고, 선별한 두 개의 움직임벡터를 이용하여 전술한 인터폴레이션을 수행함으로써 가상 움직임벡터를 생성한다. 즉,
Figure pat00015
Figure pat00016
를 이용하여 가상 움직임벡터를 생성하고,
Figure pat00017
Figure pat00018
를 이용하여 가상움직임벡터를 생성하며,
Figure pat00019
Figure pat00020
를 이용하여 가상 움직임벡터를 생성할 수 있다. 한편, 주변블록들 간의 인접성을 고려하여,
Figure pat00021
Figure pat00022
,
Figure pat00023
Figure pat00024
만을 이용하여 가상 움직임벡터를 생성할 수도 있을 것이다. 즉, 서로 인접한 주변블록들 간의 상관관계가 더 높을 수 있다는 것을 고려하여 서로 인접한 주변블록들만을 이용하여 가상 움직임벡터를 생성할 수 있다. 그러나 이에 한정되는 것은 아니며, 현재블록에 대한 주변블록, 즉, 시간적 또는 공간적으로 주변에 위치한 다양한 주변블록들 중 임의의 두 개를 선별하여 가상 움직임벡터를 생성할 수 있을 것이다.The virtual motion vector generator 220 selects motion vectors of neighboring blocks adjacent to the current block, for example, the first motion vector candidate set {
Figure pat00012
,
Figure pat00013
,
Figure pat00014
}, Two motion vectors are selected from each other, and a virtual motion vector is generated by performing the above-described interpolation using the selected two motion vectors. In other words,
Figure pat00015
Wow
Figure pat00016
Create a virtual motion vector using
Figure pat00017
Wow
Figure pat00018
To generate a virtual motion vector,
Figure pat00019
Wow
Figure pat00020
A virtual motion vector can be generated using. Meanwhile, in consideration of the proximity between neighboring blocks,
Figure pat00021
Wow
Figure pat00022
,
Figure pat00023
Wow
Figure pat00024
It is also possible to generate a virtual motion vector using only. That is, the virtual motion vector may be generated using only neighboring blocks adjacent to each other in consideration that correlation between neighboring neighboring blocks may be higher. However, the present invention is not limited thereto, and a virtual motion vector may be generated by selecting any two of the neighboring blocks, that is, the various neighboring blocks located in the temporal or spatial vicinity.

제2 예측부(230)는 제2 움직임벡터 후보집합 생성부(232)와 제2 성분 예측부(234)를 포함할 수 있는데, 제2 움직임벡터 후보집합 생성부(232)는 현재블록에 인접한 주변블록들의 움직임벡터들과 가상 움직임벡터 생성부(220)에서 생성된 가상 움직임벡터들을 포함하는 제2 움직임벡터 후보집합을 생성한다. 즉, 현재블록 D에 인접한 주변블록 A, B, C의 움직임벡터인

Figure pat00025
,
Figure pat00026
,
Figure pat00027
와 이 움직임벡터들을 이용하여 생성한 가상 움직임벡터들을 제2 움직임벡터 후보들로 선정한다. 가상 움직임벡터는 가상 움직임벡터 생성부(220)가 인터폴레이션이 가능하다고 판단한 경우에 생성되고, 그렇지 않은 경우에는 생성되지 않는다. 따라서 제2 움직임벡터 후보집합 생성부(232)는 가상 움직임벡터 생성부(220)로부터 생성 또는 출력되는 가상 움직임벡터가 없는 경우 주변블록의 움직임벡터만을 이용하여 제2 움직임벡터 후보집합을 생성하게 된다.The second predictor 230 may include a second motion vector candidate set generator 232 and a second component predictor 234. The second motion vector candidate set generator 232 may be adjacent to the current block. The second motion vector candidate set including the motion vectors of the neighboring blocks and the virtual motion vectors generated by the virtual motion vector generator 220 is generated. That is, the motion vectors of neighboring blocks A, B, and C adjacent to the current block D
Figure pat00025
,
Figure pat00026
,
Figure pat00027
And virtual motion vectors generated using the motion vectors are selected as second motion vector candidates. The virtual motion vector is generated when the virtual motion vector generator 220 determines that interpolation is possible. Otherwise, the virtual motion vector is not generated. Accordingly, when there is no virtual motion vector generated or output from the virtual motion vector generator 220, the second motion vector candidate set generator 232 generates a second motion vector candidate set using only motion vectors of neighboring blocks. .

제2 성분 예측부(234)는 제2 움직임벡터 후보집합 생성부(232)에서 생성된 제2 움직임벡터 후보들 및 성분 분리기(240)에 의해 출력된 현재 움직임벡터의 제1 성분을 이용하여 예측 움직임벡터의 제2 성분을 예측한다. The second component predictor 234 predicts the motion by using the second motion vector candidates generated by the second motion vector candidate set generator 232 and the first component of the current motion vector output by the component separator 240. Predict the second component of the vector.

예를 들어, 제2 성분 예측부(234)는 제2 움직임벡터 후보들 중 현재 움직임벡터의 제1 성분과 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보의 제2 성분을 예측 움직임벡터의 제2 성분으로 예측할 수 있다.For example, the second component predictor 234 may determine the second component of the motion vector candidate having the first component having the closest distance to the first component of the current motion vector among the second motion vector candidates. Can be predicted by component.

나아가, 현재 움직임벡터의 제1 성분과 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보가 복수 개 존재하는 경우, 그 복수 개의 움직임벡터들의 제2 성분들의 평균값을 예측 움직임벡터의 제2 성분으로 할 수도 있으며 또는 그 복수 개의 움직임벡터들의 제2 성분들의 중간값을 예측 움직임벡터의 제2 성분으로 할 수도 있다.Furthermore, when there are a plurality of motion vector candidates having a first component closest to the first component of the current motion vector, the average value of the second components of the plurality of motion vectors may be used as the second component of the predicted motion vector. Alternatively, an intermediate value of the second components of the plurality of motion vectors may be used as the second component of the predicted motion vector.

성분 분리기(240)는 움직임 추정 과정을 통해 획득된 현재블록에 대한 현재 움직임벡터를 입력받아 제1 성분과 제2 성분으로 분리하고, 제1 성분을 차분기(252) 및 제2 성분 예측부(234)로, 제2 성분을 차분기(254)로 출력한다.The component separator 240 receives a current motion vector of the current block obtained through the motion estimation process, separates the first component into a first component and a second component, and divides the first component into a difference unit 252 and a second component predictor ( 234, the second component is output to the difference 254.

차분기(252)는 제1 성분 예측부(214)에 의해 예측된 예측 움직임벡터 제1 성분과 성분 분리기(240)에서 출력된 현재 움직임벡터의 제1 성분을 감산하여 그 결과를 엔트로피 부호화부(260)로 출력한다.The difference unit 252 subtracts the predicted motion vector first component predicted by the first component predictor 214 and the first component of the current motion vector output from the component separator 240 and subtracts the result from the entropy encoder. 260).

차분기(254)는 제2 성분 예측부(234)에 의해 예측된 예측 움직임벡터 제2 성분과 성분 분리기(240)에서 출력된 현재 움직임벡터 제2 성분을 감산하여 엔트로피 부호화(260)로 출력한다.The difference unit 254 subtracts the predicted motion vector second component predicted by the second component predictor 234 and the current motion vector second component output from the component separator 240 and outputs the entropy encoding 260. .

엔트로피 부호화부(260)는 차분기(252, 254)로부터 출력된 값, 즉, 현재 움직임벡터와 예측 움직임벡터의 차분값을 엔트로피 부호화하여 비트스트림으로 출력한다.The entropy encoder 260 entropy encodes a value output from the difference units 252 and 254, that is, a difference value between a current motion vector and a predicted motion vector, and outputs the bitstream by entropy encoding.

도 5는 본 발명의 실시예에 따른 움직임벡터 부호화 방법을 나타내는 순서도이다.5 is a flowchart illustrating a motion vector encoding method according to an embodiment of the present invention.

본 발명의 실시예에 따른 움직임벡터 부호화 방법은 예측 움직임벡터의 제1 성분을 예측하는 제1 예측 단계(S510), 가상 움직임벡터 생성 단계(520), 예측 움직임벡터의 제2 성분을 예측하는 제2 예측 단계(S530) 및 움직임벡터 부호화 단계(S540)를 포함할 수 있다.A motion vector encoding method according to an embodiment of the present invention includes a first prediction step (S510) for predicting a first component of a predicted motion vector, a virtual motion vector generation step (520), and a second component for predicting a second component of a predicted motion vector. It may include two prediction step (S530) and motion vector encoding step (S540).

제1 예측단계(S510)는 현재블록에 인접한 주변블록들의 움직임벡터에 기반하여 제1 움직임벡터 후보집합을 생성하고, 생성된 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측한다.The first prediction step S510 generates a first motion vector candidate set based on the motion vectors of neighboring blocks adjacent to the current block, and predicts a first component of the predicted motion vector by using the generated first motion vector candidate set. do.

가상 움직임벡터 생성 단계(S520)는 현재블록에 인접한 주변블록들의 움직임벡터들을 이용한 인터폴레이션이 가능한지 여부를 판단하고, 가능한 경우 그 주변블록들의 움직임벡터들을 인터폴레이션하여 가상 움직임벡터를 생성한다.The virtual motion vector generation step (S520) determines whether interpolation using motion vectors of neighboring blocks adjacent to the current block is possible, and if possible, interpolates the motion vectors of the neighboring blocks to generate a virtual motion vector.

제2 예측단계(S530)는 현재블록에 인접한 주변블록들의 움직임벡터와 가상 움직임벡터 생성 단계(S520)에서 생성되는 가상 움직임벡터를 포함하는 제2 움직임벡터 후보들을 생성하고, 그 제2 움직임벡터 후보들과 현재 움직임벡터의 제1 성분을 이용하여 예측 움직임벡터의 제2 성분을 예측한다.The second prediction step S530 generates second motion vector candidates including the motion vectors of the neighboring blocks adjacent to the current block and the virtual motion vector generated in the generating a virtual motion vector step S520, and the second motion vector candidates. The second component of the predicted motion vector is predicted using the first component of the current motion vector.

움직임벡터 부호화 단계(S540)는 제1 예측 단계(S510)와 제2 예측단계(S530)에 의해 생성된 예측 움직임벡터를 이용하여 현재 움직임벡터를 부호화한다. 예컨대, 현재 움직임벡터와 예측 움직임벡터를 차분한 결과를 엔트로피 부호화한다.In the motion vector encoding operation S540, the current motion vector is encoded by using the predicted motion vectors generated by the first prediction step S510 and the second prediction step S530. For example, entropy encoding is performed on the difference between the current motion vector and the predicted motion vector.

제1 예측단계(S510)는 제1 예측부(210), 가상 움직임벡터 생성 단계(S520)는 가상 움직임벡터 생성부(220), 제2 예측 단계(S530)는 제2 예측부(230), 움직임벡터 부호화 단계(S540)는 차분기(252, 254) 및 엔트로피 부호화부(260)에서 수행되는 과정과 각각 동일하므로, 중복 설명을 피하기 위해 각 단계에 대한 더 이상의 설명을 생략한다.The first prediction step S510 includes a first predictor 210, a virtual motion vector generation step S520, a virtual motion vector generator 220, a second prediction step S530, a second predictor 230, Since the motion vector coding step S540 is the same as that performed in the subcarriers 252 and 254 and the entropy coding unit 260, the description of each step will be omitted in order to avoid redundant explanation.

이상에서 설명한 움직임벡터 부호화 방법은 컴퓨터 프로그램으로 구현되어 기록매체에 저장되고, 컴퓨터가 그 기록매체에 접근하여 프로그램을 실행시킴으로써 구현될 수 있을 것이다. 그러나 이에 한정되는 것은 아니며, 움직임벡터 부호화 방법의 각 단계를 수행하는 모듈들이 하나의 하드웨어 칩으로 구현되고, 그 하드웨어 칩이 동작함으로써 움직임벡터 부호화 방법이 구현될 수도 있을 것이다.The motion vector encoding method described above may be implemented by a computer program, stored in a recording medium, and implemented by a computer accessing the recording medium to execute a program. However, the present invention is not limited thereto, and the modules performing each step of the motion vector encoding method may be implemented as one hardware chip, and the motion vector encoding method may be implemented by operating the hardware chip.

도 6은 본 발명의 일 실시예에 따른 영상 복호화 장치의 구성을 나타내는 블록도이다.6 is a block diagram illustrating a configuration of an image decoding apparatus according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 영상 복호화 장치는, 도 1을 통해 전술한 영상 부호화 장치와 같이, 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.An image decoding apparatus according to an embodiment of the present invention, like the image encoding apparatus described above with reference to FIG. 1, includes a personal computer (PC), a notebook computer, a personal digital assistant (PDA), and a portable multimedia device. It may be a player (PMP: Portable Multimedia Player), PlayStation Portable (PSP: PlayStation Portable), a mobile communication terminal (Mobile Communication Terminal), and the like, communication devices such as communication modems for communicating with various devices or wired and wireless communication networks, images Means a variety of devices including a memory for storing the program and a memory for storing the data, a microprocessor for the operation and control by running the program.

본 발명의 일 실시예에 따른 영상 복호화 장치는 복호화부(610), 역양자화 및 역변환부(620), 인트라 예측부(630), 인터 예측부(640), 가산기(650) 및 프레임 메모리(660)를 포함할 수 있다.An image decoding apparatus according to an embodiment of the present invention includes a decoder 610, an inverse quantization and inverse transform unit 620, an intra predictor 630, an inter predictor 640, an adder 650, and a frame memory 660. ) May be included.

복호화부(610)는 입력받은 부호화 데이터를 엔트로피 복호화하여 블록 단위 복호화에 필요한 정보를 추출한다. 즉, 복호화부(610)는 부호화 데이터를 복호화하여 양자화 주파수 계수열을 추출하고, 양자화 주파수 계수열을 역 스캐닝하여 양자화 주파수 계수를 갖는 잔차블록을 생성한다. 예컨대, 부호화 장치가 지그재그 스캐닝 방식을 사용하였다면, 복호화 장치는 역 지그재그 스캐닝 방식을 적용하여 양자화 주파수 계수열을 역 스캐닝함으로써 양자화 주파수 계수를 갖는 잔차블록을 생성하게 된다. The decoder 610 entropy-decodes the received encoded data and extracts information necessary for block-by-block decoding. That is, the decoder 610 decodes the encoded data to extract the quantized frequency coefficient sequence, and inversely scans the quantized frequency coefficient sequence to generate a residual block having the quantized frequency coefficients. For example, if the encoding apparatus uses the zigzag scanning scheme, the decoding apparatus applies the inverse zigzag scanning scheme to inversely scan the quantized frequency coefficient sequence to generate a residual block having the quantized frequency coefficients.

이 때, 복호화부(610)는 부호화 데이터에 포함된 제1 필드에서 부호화된 잔차블록을 추출하여 복호화할 수 있고, 부호화 데이터에 포함된 제2 필드에서 예측에 필요한 정보를 추출하여 인트라 예측부(620) 또는 인터 예측부(630)로 전달할 수 있다.In this case, the decoder 610 may extract and decode the encoded residual block from the first field included in the encoded data, extract information necessary for prediction from the second field included in the encoded data, and then extract the information from the intra predictor ( 620 or the inter predictor 630.

한편, 복호화부(610)는 본 발명의 실시예에서 제안하는 움직임벡터 복호화 장치를 포함할 수 있는데, 움직임벡터 복호화 장치는 도 7을 통해 후술한다.Meanwhile, the decoder 610 may include a motion vector decoding apparatus proposed by an embodiment of the present invention, which will be described later with reference to FIG. 7.

역양자화 및 역변환부(620)는 복호화부(610)로부터 전달받은 양자화된 잔차블록을 역 양자화하고 이를 다시 역변환하여 잔차블록을 생성한다.The inverse quantization and inverse transform unit 620 inverse quantizes the quantized residual block received from the decoder 610 and inversely transforms it to generate a residual block.

인트라 예측부(630)는 복호화부(610)로부터 전달되는 인트라 예측에 필요한 정보(예를 들어, 인트라 예측 모드에 관한 정보 등)를 이용하여 현재블록에 대한 인트라 예측블록을 생성한다.The intra prediction unit 630 generates an intra prediction block for the current block by using information (eg, information about an intra prediction mode) required for intra prediction transmitted from the decoder 610.

인터 예측부(640)는 복호화부(610)으로부터 전달되는 인터 예측에 필요한 정보(예를 들어, 현재블록의 움직임벡터 등)를 이용하여 인터 예측블록을 생성한다.The inter prediction unit 640 generates an inter prediction block by using information (eg, a motion vector of the current block) required for inter prediction transmitted from the decoder 610.

가산기(650)는 인트라 예측부(630) 또는 인터 예측부(640)로부터 전달되는 예측블록과 역양자화 및 역변환부(620)로부터 전달되는 잔차블록을 가산하여 현재블록을 복원한다. 복원된 현재블록은 프레임 메모리(660)에 저장되며, 이후 다른 블록들을 예측하는 데에 활용된다.The adder 650 reconstructs the current block by adding the prediction block delivered from the intra prediction unit 630 or the inter prediction unit 640 and the residual block transferred from the inverse quantization and inverse transform unit 620. The reconstructed current block is stored in the frame memory 660 and then used to predict other blocks.

한편, 도 6에는 도시하지 않았으나, 본 발명의 실시예에 따른 영상 복호화 장치는 블록 단위의 예측 및 양자화에 의해 발생하는 블록킹 효과를 감소시키기 위해 복원블록을 필터링하는 디블록킹 필터를 포함할 수 있다. 이때, 인트라 예측의 경우에는 디블록킹 필터에 의해 필터링되지 않은 복원블록을 사용하고, 인터 예측의 경우에는 필터링된 복원블록을 사용할 수 있다.On the other hand, although not shown in Figure 6, the image decoding apparatus according to an embodiment of the present invention may include a deblocking filter for filtering the reconstructed block in order to reduce the blocking effect caused by block-based prediction and quantization. In this case, in the case of intra prediction, a reconstructed block that is not filtered by the deblocking filter may be used, and in the case of inter prediction, the filtered reconstructed block may be used.

도 7은 본 발명의 일 실시예에 따른 움직임벡터 복호화 장치의 구성을 나타내는 블록도이며, 이러한 구성들은 독립적인 하드웨어 또는 소프트웨어 모듈로서 구현될 수 있을 것이다.7 is a block diagram illustrating a configuration of a motion vector decoding apparatus according to an embodiment of the present invention, and these configurations may be implemented as independent hardware or software modules.

본 발명의 일 실시예에 따른 움직임벡터 복호화 장치는 엔트로피 복호화부(710), 제1 성분 복원부(720), 가상 움직임벡터 생성부(730), 제2 성분 복원부(740) 및 움직임벡터 구성기(750)를 포함할 수 있다.The motion vector decoding apparatus according to an embodiment of the present invention comprises an entropy decoder 710, a first component reconstructor 720, a virtual motion vector generator 730, a second component reconstructor 740, and a motion vector configuration. May include group 750.

엔트로피 복호화부(710)는 부호화된 움직임벡터를 엔트로피 복호화하여 복호화된 움직임벡터를 생성하고, 복호화된 움직임벡터의 제1 성분과 제2 성분을 각각 제1 성분 복원부(720) 및 제2 성분 복원부(740)로 전달한다.The entropy decoder 710 entropy decodes the encoded motion vector to generate a decoded motion vector, and decompresses the first component and the second component of the decoded motion vector by the first component reconstructor 720 and the second component, respectively. Transfer to section 740.

제1 성분 복원부(720)는 복호화 대상블록인 현재블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측하고, 엔트로피 복호화부(710)로부터 전달된 복호화된 움직임벡터의 제1 성분과 예측 움직임벡터의 제1 성분을 이용하여 현재 움직임벡터의 제1 성분을 복원한다.The first component reconstructor 720 predicts the first component of the predicted motion vector by using the first motion vector candidate set generated based on the motion vectors of at least one neighboring block adjacent to the current block as the decoding target block, The first component of the current motion vector is reconstructed using the first component of the decoded motion vector and the first component of the predicted motion vector transmitted from the entropy decoder 710.

더 구체적으로, 제1 성분 복원부(720)는 제1 움직임벡터 후보집합 생성부(722), 제1 성분 예측부(724) 및 가산기(726)를 포함할 수 있다.More specifically, the first component reconstructor 720 may include a first motion vector candidate set generator 722, a first component predictor 724, and an adder 726.

제1 움직임벡터 후보집합 생성부(722)는 현재블록에 대한 위치정보를 이용하여 현재블록에 인접한 적어도 하나의 주변블록의 움직임벡터를 선정하고, 그 주변블록의 움직임벡터를 이용하여 제1 움직임벡터 후보집합을 선정한다. 예를 들어, 도 3을 참조하면, 제1 움직임벡터 후보집합 생성부(722)는 현재블록 D에 인접한 주변블록의 움직임벡터 {

Figure pat00028
,
Figure pat00029
,
Figure pat00030
}를 제1 움직임벡터 후보집합으로 선정할 수 있다. 또는 주변블록의 움직임벡터의 제1 성분만을 추출하여 {
Figure pat00031
,
Figure pat00032
,
Figure pat00033
}를 제1 움직임벡터 후보로 선정할 수도 있다. 본 실시예에서는 현재블록에 대해 공간적으로 좌측, 상단, 우측상단에 위치한 주변블록들을 이용하여 제1 움직임벡터 후보집합을 선정하는 것으로 설명하고 있으나, 반드시 이에 한정되는 것은 아니며, 움직임벡터 복호화 장치와 움직임벡터 부호화 장치가 제1 움직임벡터 후보집합에 대한 생성 기준을 공유하는 한, 다양한 방식으로 제1 움직임벡터 후보집합을 선정할 수 있을 것이다.The first motion vector candidate set generator 722 selects a motion vector of at least one neighboring block adjacent to the current block by using the position information of the current block, and uses the motion vector of the neighboring block to select the first motion vector. Select a candidate set. For example, referring to FIG. 3, the first motion vector candidate set generator 722 may generate a motion vector {of a neighboring block adjacent to the current block D {
Figure pat00028
,
Figure pat00029
,
Figure pat00030
} May be selected as the first motion vector candidate set. Or extract only the first component of the motion vector of the neighboring block {
Figure pat00031
,
Figure pat00032
,
Figure pat00033
} May be selected as the first motion vector candidate. In the present exemplary embodiment, the first motion vector candidate set is selected by using neighboring blocks located on the left, top, and right upper sides of the current block, but the present invention is not limited thereto. As long as the vector encoding apparatus shares generation criteria for the first motion vector candidate set, the first motion vector candidate set may be selected in various ways.

제1 성분 예측부(724)는 제1 움직임벡터 후보집합에 속하는 후보들을 이용하여 예측 움직임벡터의 제1 성분을 예측한다. 예컨대, 움직임벡터 부호화 장치의 제1 성분 예측부(214)가 수학식 1에 의해 제1 움직임벡터 후보들의 제1 성분의 중간값을 예측 움직임벡터의 제1 성분으로 예측한다면, 움직임벡터 복호화 장치의 제1 성분 예측부(724) 또한 제1 움직임벡터 후보집합에 속하는 제1 움직임벡터 후보들의 제1 성분의 중간값을 예측 움직임벡터의 제1 성분으로 예측한다. The first component predictor 724 predicts the first component of the predicted motion vector by using the candidates belonging to the first motion vector candidate set. For example, if the first component predictor 214 of the motion vector encoding apparatus predicts the median value of the first components of the first motion vector candidates as the first component of the predicted motion vector by Equation 1, The first component predictor 724 also predicts a median value of the first components of the first motion vector candidates belonging to the first motion vector candidate set as the first component of the predicted motion vector.

가산기(726)는 제1 성분 예측부(724)로부터 전달된 예측 움직임벡터의 제1 성분과 엔트로피 복호화(710)로부터 전달된 복호화된 움직임벡터의 제1 성분을 가산하여 현재 움직임벡터의 제1 성분을 복원한다. 복원된 현재 움직임벡터의 제1 성분은 제2 성분 복원부(740) 및 움직임벡터 구성기(750)로 전달된다.The adder 726 adds the first component of the predicted motion vector transmitted from the first component predictor 724 and the first component of the decoded motion vector transmitted from the entropy decoding 710 to add the first component of the current motion vector. Restore The first component of the reconstructed current motion vector is transmitted to the second component reconstructor 740 and the motion vector composer 750.

가상 움직임벡터 생성부(730)는 현재블록에 인접한 적어도 하나의 주변블록의 움직임벡터를 이용한 인터폴레이션이 가능한지 여부를 판단하고, 인터폴레이션이 가능한 경우 그 주변블록의 움직임벡터를 이용하여 인터폴레이션을 수행함으로써 가상 움직임벡터를 생성한다. 움직임벡터 복호화 장치의 가상 움직임벡터 생성부(730)는 도 2 내지 도 4를 참조하여 설명한 움직임벡터 부호화 장치의 가상 움직임벡터 생성부(220)과 그 기능이 동일하므로, 중복 설명을 피하기 위해 더 이상의 상세한 설명을 생략한다.The virtual motion vector generator 730 determines whether interpolation is possible using the motion vectors of at least one neighboring block adjacent to the current block, and if interpolation is possible, performs virtual interpolation using the motion vector of the neighboring block. Create a vector. The virtual motion vector generator 730 of the motion vector decoding apparatus has the same function as the virtual motion vector generator 220 of the motion vector encoding apparatus described with reference to FIGS. Detailed description will be omitted.

제2 성분 복원부(740)는 현재블록에 인접한 주변블록의 움직임벡터 및 가상 움직임벡터 생성부(730)에서 출력되는 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합을 생성하고, 제2 움직임벡터 후보집합에 속하는 후보들과 제1 성분 복원부(720)에서 복원된 현재 움직임벡터의 제1 성분을 이용하여 예측 움직임벡터의 제2 성분을 예측한다. 그리고, 엔트로피 복호화부(710)로부터 전달된 복호화된 움직임벡터의 제2 성분과 예측 움직임벡터의 제2 성분을 이용하여 현재 움직임벡터의 제2 성분을 복원한다.The second component reconstructor 740 generates a second motion vector candidate set including the motion vector of the neighboring block adjacent to the current block and the virtual motion vector output from the virtual motion vector generator 730, and the second motion vector. The second component of the predicted motion vector is predicted using the candidates belonging to the candidate set and the first component of the current motion vector reconstructed by the first component reconstructor 720. The second component of the current motion vector is reconstructed using the second component of the decoded motion vector and the second component of the predicted motion vector transmitted from the entropy decoder 710.

더 구체적으로, 제2 성분 복원부(740)는 제2 움직임벡터 후보집합 생성부(742), 제2 성분 예측부(744) 및 가산기(746)를 포함할 수 있다.More specifically, the second component reconstructor 740 may include a second motion vector candidate set generator 742, a second component predictor 744, and an adder 746.

제2 움직임벡터 후보집합 생성부(742)는 현재블록에 인접한 주변블록들의 움직임벡터들과 가상 움직임벡터 생성부(730)에서 생성된 가상 움직임벡터들을 포함하는 제2 움직임벡터 후보집합을 생성한다. 예컨대, 현재블록 D에 인접한 주변블록 A, B 및 C의 움직임벡터인,

Figure pat00034
,
Figure pat00035
,
Figure pat00036
와 이 움직임벡터들을 이용하여 생성한 가상 움직임벡터들을 제2 움직임벡터 후보로 선정할 수 있다.The second motion vector candidate set generator 742 generates a second motion vector candidate set including motion vectors of neighboring blocks adjacent to the current block and virtual motion vectors generated by the virtual motion vector generator 730. For example, which is a motion vector of neighboring blocks A, B, and C adjacent to the current block D,
Figure pat00034
,
Figure pat00035
,
Figure pat00036
And virtual motion vectors generated using the motion vectors may be selected as second motion vector candidates.

제2 성분 예측부(744)는 제2 움직임벡터 후보집합 생성부(742)에서 생성된 제2 움직임벡터 후보들과 제1 성분 복원부(720)에서 복원된 현재 움직임벡터의 제1 성분을 이용하여 예측 움직임벡터의 제2 성분을 예측한다. 예를 들어, 제2 움직임벡터 후보들 중 현재 움직임벡터의 제1 성분과 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보의 제2 성분을 예측 움직임벡터의 제2 성분으로 예측할 수 있으며, 현재 움직임벡터의 제1 성분과 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보가 복수 개인 경우에는, 그 복수 개의 움직임벡터 후보들의 평균값 또는 중간값을 예측 움직임벡터의 제2 성분으로 할 수도 있다.The second component predictor 744 uses the second motion vector candidates generated by the second motion vector candidate set generator 742 and the first component of the current motion vector reconstructed by the first component reconstructor 720. A second component of the predicted motion vector is predicted. For example, the second component of the motion vector candidate having the first component closest to the first component of the current motion vector among the second motion vector candidates may be predicted as the second component of the predicted motion vector, and the current motion vector. When there are a plurality of motion vector candidates having a first component closest to the first component of, the average or median of the plurality of motion vector candidates may be the second component of the predicted motion vector.

가산기(746)는 제2 성분 예측부(744)에서 예측된 예측 움직임벡터의 제2 성분과 엔트로피 복호화부(710)로부터 전달된 복호화된 움직임벡터의 제2 성분을 가산하여 현재 움직임벡터의 제2 성분을 복원한다.The adder 746 adds a second component of the predicted motion vector predicted by the second component predictor 744 and a second component of the decoded motion vector transferred from the entropy decoder 710 to generate a second component of the current motion vector. Restore the ingredients.

움직임벡터 구성기(750)는 가산기(726) 및 가산기(746)로부터 각각 입력된 현재 움직임벡터의 제1 성분 및 제2 성분을 조합하여 현재 움직임벡터를 구성하여 출력한다.The motion vector composer 750 configures and outputs the current motion vector by combining the first component and the second component of the current motion vector input from the adder 726 and the adder 746, respectively.

도 7에서 도면부호 700은 예측 움직임벡터 결정부를 나타내는데, 이 예측 움직임벡터 결정부(700)에 포함된 제1 움직임벡터 후보집합 생성부(722), 제1 성분 예측부(724), 가상 움직임벡터 생성부(730), 제2 움직임벡터 후보집합 생성부(742) 및 제2 성분 예측부(744)는 각각 도 2에 도시된 예측 움직임벡터 결정부(200)의 제1 움직임벡터 후보집합 생성부(212), 제1 성분 예측부(214), 가상 움직임벡터 생성부(220), 제2 움직임벡터 후보집합 생성부(232) 및 제2 성분 예측부(234)에 대응하는 구성이다. 즉, 움직임벡터 부호화 장치와 움직임벡터 복호화 장치는 예측 움직임벡터 결정부를 공유함으로써, 동일한 예측 움직임벡터를 예측하게 되고, 움직임벡터 부호화 장치는 그 예측 움직임벡터를 이용하여 현재 움직임벡터를 부호화하고, 움직임벡터 복호화 장치는 그 예측 움직임벡터를 이용하여 현재 움직임벡터를 복호화하게 된다.In FIG. 7, reference numeral 700 denotes a predicted motion vector determiner, wherein a first motion vector candidate set generator 722, a first component predictor 724, and a virtual motion vector included in the predicted motion vector determiner 700 are illustrated. The generator 730, the second motion vector candidate set generator 742, and the second component predictor 744 each include a first motion vector candidate set generator of the predicted motion vector determiner 200 shown in FIG. 2. 212, the first component predictor 214, the virtual motion vector generator 220, the second motion vector candidate set generator 232, and the second component predictor 234. That is, the motion vector coding apparatus and the motion vector decoding apparatus share the predicted motion vector determining unit to predict the same predicted motion vector. The motion vector encoding apparatus encodes the current motion vector using the predicted motion vector, The decoding apparatus decodes the current motion vector using the predicted motion vector.

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

본 발명의 일 실시예에 따른 움직임벡터 복호화 방법은, 복호화 대상블록, 즉, 현재블록의 부호화된 움직임벡터를 복호화하는 움직임벡터 복호화 단계(S810), 예측 움직임벡터의 제1 성분을 예측하고 이를 이용하여 현재 움직임벡터의 제1 성분을 복원하는 제1 성분 복원 단계(S820), 가상 움직임벡터 생성 단계(S830), 예측 움직임벡터의 제2 성분을 예측하고 이를 이용하여 현재 움직임벡터의 제2 성분을 복원하는 제2 성분 복원 단계(S840)를 포함할 수 있다.In the motion vector decoding method according to an embodiment of the present invention, the motion vector decoding step (S810) of decoding the encoded motion vector of the decoding target block, that is, the current block, predicts and uses the first component of the predicted motion vector. By reconstructing the first component of the current motion vector (S820), the virtual motion vector generation step (S830), and predicting the second component of the motion vector using the second component of the current motion vector. It may include a second component restoration step (S840) to restore.

움직임벡터 복호화 단계(S810)는 부호화된 움직임벡터를 엔트로피 복호화하여 복호화된 움직임벡터를 생성한다.The motion vector decoding step S810 entropy decodes the encoded motion vector to generate a decoded motion vector.

제1 성분 복원 단계(S820)는 현재블록에 인접한 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측하고, 그 예측 움직임벡터의 제1 성분과 움직임벡터 복호화 단계(S810)에서 복호화된 움직임벡터의 제1 성분을 이용하여 현재 움직임벡터의 제1 성분을 복원한다.The first component reconstruction step (S820) predicts a first component of a predicted motion vector by using a first motion vector candidate set generated based on a motion vector of a neighboring block adjacent to the current block, and then calculates a first component of the predicted motion vector. The first component of the current motion vector is reconstructed by using the first component of the motion vector decoded in the component and the motion vector decoding step S810.

가상 움직임벡터 생성 단계(S830)는 현재블록에 인접한 주변블록의 움직임벡터를 이용한 인터폴레이션이 가능한지 여부를 판단하고, 인터폴레이션이 가능한 경우 그 주변블록의 움직임벡터를 이용하여 인터폴레이션을 수행함으로써 가상 움직임벡터를 생성한다.The virtual motion vector generation step (S830) determines whether interpolation is possible using the motion vectors of the neighboring blocks adjacent to the current block, and if interpolation is possible, generates a virtual motion vector by performing interpolation using the motion vectors of the neighboring blocks. do.

제2 성분 복원 단계(S840)는 현재블록에 인접한 주변블록의 움직임벡터 및 가상 움직임벡터 생성 단계에서 출력된 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합과 제1 성분 복원 단계(S820)에서 복원된 현재 움직임벡터의 제1 성분을 이용하여 예측 움직임벡터의 제2 성분을 예측하고, 그 예측 움직임벡터의 제2 성분과 움직임벡터 복호화 단계(S810)에서 복호화된 움직임벡터의 제2 성분을 이용하여 현재 움직임벡터의 제2 성분을 복원한다.The second component reconstruction step S840 is a second motion vector candidate set including the motion vector of the neighboring block adjacent to the current block and the virtual motion vector output in the virtual motion vector generation step and the first component reconstruction step S820. The second component of the predicted motion vector is predicted using the first component of the current motion vector, and the second component of the predicted motion vector and the second component of the motion vector decoded in the motion vector decoding step S810 are present. Restore the second component of the motion vector.

움직임벡터 복호화 단계(S810), 제1 성분 복원 단계(S820), 가상 움직임벡터 생성 단계(S830) 및 제2 성분 복원 단계(S840)가 수행하는 기능은 각각 움직임벡터 복호화 장치의 엔트로피 복호화부(710), 제1 성분 복원부(720), 가상 움직임벡터 생성부(730) 및 제2 성분 복원부(740)에 대응하므로, 중복 설명을 피하기 위해 더 이상의 상세한 설명을 생략한다.The functions performed by the motion vector decoding step S810, the first component reconstruction step S820, the virtual motion vector generation step S830, and the second component reconstruction step S840 are respectively entropy decoding units 710 of the motion vector decoding apparatus. ), Corresponding to the first component reconstructor 720, the virtual motion vector generator 730, and the second component reconstructor 740, and thus, detailed descriptions thereof will be omitted to avoid redundant description.

이상에서 설명한 움직임벡터 복호화 방법은 컴퓨터 프로그램으로 구현되어 기록매체에 저장되고, 컴퓨터가 그 기록매체에 접근하여 프로그램을 실행시킴으로써 구현될 수 있을 것이다. 그러나 이에 한정되는 것은 아니며, 움직임벡터 복호화 방법의 각 단계를 수행하는 모듈들이 하나의 하드웨어 칩으로 구현되고, 그 하드웨어 칩이 동작함으로써 움직임벡터 복호화 방법이 구현될 수도 있을 것이다. The motion vector decoding method described above may be implemented as a computer program, stored in a recording medium, and implemented by a computer accessing the recording medium to execute a program. However, the present invention is not limited thereto, and the modules performing each step of the motion vector decoding method may be implemented as one hardware chip, and the motion vector decoding method may be implemented by operating the hardware chip.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.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 protection scope of the present invention should be interpreted by the following claims, and all technical ideas within the equivalent scope should be interpreted as being included in the scope of the present invention.

이상에서 설명한 본 발명의 실시예는 움직임벡터에 대한 예측 부호화를 수행하는 영상 부호화 및 복호화 분야에 적용되어 현재 움직임벡터와 상관관계가 높은 예측 움직임벡터를 결정할 수 있으며, 이에 따라 현재 움직임벡터에 대한 부호화 효율을 높일 수 있으므로, 매우 유용한 발명이다.
The embodiment of the present invention described above is applied to the field of image encoding and decoding for performing prediction encoding on a motion vector to determine a predictive motion vector having a high correlation with the current motion vector. Accordingly, encoding on the current motion vector is performed. Since the efficiency can be improved, it is a very useful invention.

Claims (31)

부호화 및 복호화의 대상이 되는 현재블록의 움직임벡터(이하, '현재 움직임벡터'라 함)를 부호화 및 복호화하는 움직임벡터 부호화/복호화 장치에 있어서,
상기 현재블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 제1 예측 움직임벡터의 제1 성분을 예측하고, 상기 적어도 하나의 주변블록의 움직임벡터를 이용한 인터폴레이션(Interpolation)이 가능한지 여부를 판단하고 그 판단결과에 따라 인터폴레이션을 수행하여 적어도 하나의 가상 움직임벡터를 생성하며, 상기 적어도 하나의 주변블록의 움직임벡터 및 생성된 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합과 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 제1 예측 움직임벡터의 제2 성분을 예측한 후, 상기 제1 예측 움직임벡터를 이용하여 상기 현재 움직임벡터를 부호화하는 움직임벡터 부호화 장치; 및
상기 움직임벡터 부호화 장치에 의해 부호화된 상기 현재 움직임벡터를 복호화하여 복호화된 움직임벡터를 생성하고, 상기 제1 예측 움직임벡터 후보집합을 이용하여 제2 예측 움직임벡터의 제1 성분을 예측한 후 상기 복호화된 움직임벡터의 제1 성분과 상기 제2 예측 움직임벡터의 제1 성분을 이용하여 상기 현재 움직임벡터의 제1 성분을 복원하며, 상기 제2 움직임벡터 후보집합과 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 제2 예측 움직임벡터의 제2 성분을 예측하고 상기 복호화된 움직임벡터의 제2 성분과 상기 제2 예측 움직임벡터의 제2 성분을 이용하여 상기 현재 움직임벡터의 제2 성분을 복원하는 움직임벡터 복호화 장치
를 포함하는 움직임벡터 부호화/복호화 장치.
In a motion vector encoding / decoding apparatus for encoding and decoding a motion vector (hereinafter, referred to as a 'current motion vector') of a current block to be encoded and decoded,
The first component of the first predicted motion vector is predicted by using the first motion vector candidate set generated based on the motion vectors of at least one neighboring block adjacent to the current block, and the motion vectors of the at least one neighboring block are predicted. Determining whether the interpolation is possible, and performing interpolation according to the determination result to generate at least one virtual motion vector, and including a motion vector of the at least one neighboring block and the generated virtual motion vector. A motion vector encoding apparatus for predicting a second component of the first predicted motion vector by using a motion vector candidate set and a first component of the current motion vector, and then encoding the current motion vector using the first predicted motion vector. ; And
Decoding the current motion vector encoded by the motion vector encoding apparatus to generate a decoded motion vector, predicting a first component of a second predicted motion vector using the first predicted motion vector candidate set, and then decoding the motion vector. Reconstructing the first component of the current motion vector using the first component of the first motion vector and the first predicted motion vector, and using the second motion vector candidate set and the first component of the current motion vector. Predicting a second component of the second predicted motion vector and reconstructing a second component of the current motion vector by using the second component of the decoded motion vector and the second component of the second predicted motion vector. Decryption device
Motion vector encoding / decoding apparatus comprising a.
부호화 대상블록의 움직임벡터(이하, '현재 움직임벡터'라 함)를 부호화하는 움직임벡터 부호화 장치에 있어서,
상기 부호화 대상블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측하는 제1 예측부;
상기 적어도 하나의 주변블록의 움직임벡터를 이용한 인터폴레이션(Interpolation)이 가능한지 여부를 판단하고, 그 판단결과에 따라 인터폴레이션을 수행하여 적어도 하나의 가상 움직임벡터를 생성하는 가상 움직임벡터 생성부;
상기 적어도 하나의 주변블록의 움직임벡터 및 상기 가상 움직임벡터 생성부가 출력하는 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합과 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하는 제2 예측부; 및
상기 예측 움직임벡터를 이용하여 상기 현재 움직임벡터에 대한 부호화를 수행하는 움직임벡터 부호화부
를 포함하는 것을 특징으로 하는 움직임벡터 부호화 장치.
In the motion vector encoding apparatus for encoding a motion vector (hereinafter referred to as the "current motion vector") of the target block,
A first predictor for predicting a first component of a predicted motion vector using a first motion vector candidate set generated based on a motion vector of at least one neighboring block adjacent to the encoding target block;
A virtual motion vector generator configured to determine whether interpolation using the motion vectors of the at least one neighboring block is possible, and to generate at least one virtual motion vector by performing interpolation according to the determination result;
A second component of the prediction motion vector is generated by using a second motion vector candidate set including a motion vector of the at least one neighboring block and a virtual motion vector output by the virtual motion vector generator and a first component of the current motion vector. A second predictor for predicting; And
A motion vector encoder which encodes the current motion vector using the predicted motion vector.
And a motion vector coding unit for coding the motion vector.
제 1 항에 있어서,
상기 제2 예측부는 상기 제2 움직임벡터 후보집합에 속하는 움직임벡터 후보들 중에서 상기 현재 움직임벡터의 제1 성분과의 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보를 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하는 것을 특징으로 하는 움직임벡터 부호화 장치.
The method of claim 1,
The second predictor uses a motion vector candidate having a first component closest to a first component of the current motion vector among the motion vector candidates belonging to the second motion vector candidate set, to generate a second predictive motion vector. A motion vector encoding apparatus characterized by predicting a component.
제 3 항에 있어서,
상기 제2 예측부는, 상기 예측 움직임벡터의 제1 성분과 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보가 복수 개인 경우, 그 복수 개의 움직임벡터 후보들의 제2 성분의 평균값을 상기 예측 움직임벡터의 제2 성분으로 하는 것을 특징으로 하는 움직임벡터 부호화 장치.
The method of claim 3, wherein
The second predictor, when there are a plurality of motion vector candidates having a first component closest to the first component of the predicted motion vector, calculates an average value of the second components of the plurality of motion vector candidates. A motion vector encoding device, characterized in that the second component.
제 1 항에 있어서,
상기 가상 움직임벡터 생성부는 상기 부호화 대상블록에 인접한 주변블록들 중 두 개의 주변블록들을 선별하고 선별된 두 개의 주변블록들의 움직임벡터들에 대해 정수 기반의 인터폴레이션을 수행하여 상기 적어도 하나의 가상 움직임벡터를 생성하는 것을 특징으로 하는 움직임벡터 부호화 장치.
The method of claim 1,
The virtual motion vector generator selects two neighboring blocks among neighboring blocks adjacent to the encoding target block and performs integer-based interpolation on the motion vectors of the selected two neighboring blocks to obtain the at least one virtual motion vector. And a motion vector encoding apparatus.
제 5 항에 있어서,
상기 두 개의 주변블록들을 서로 인접한 것을 특징으로 하는 움직임벡터 부호화 장치.
The method of claim 5, wherein
The motion vector encoding apparatus of claim 2, wherein the two neighboring blocks are adjacent to each other.
제 5 항에 있어서,
상기 가상 움직임벡터 생성부는 상기 두 개의 주변블록의 움직임벡터 각각의 제1 성분 사이에 존재하는 모든 정수값에 대해 상기 정수 기반의 인터폴레이션을 수행하는 것을 특징으로 하는 움직임벡터 부호화 장치.
The method of claim 5, wherein
And the virtual motion vector generator performs the integer based interpolation on all integer values existing between the first components of each of the motion vectors of the two neighboring blocks.
제 5 항에 있어서,
상기 가상 움직임벡터 생성부는 상기 적어도 두 개의 주변블록의 움직임벡터 각각의 제2 성분 사이에 존재하는 모든 정수값에 대해 상기 정수 기반의 인터폴레이션을 수행하는 것을 특징으로 하는 움직임벡터 부호화 장치.
The method of claim 5, wherein
And the virtual motion vector generator performs the integer based interpolation on all integer values existing between the second components of each of the motion vectors of the at least two neighboring blocks.
제 5 항에 있어서,
상기 가상 움직임벡터 생성부는 상기 두 개의 주변블록의 움직임벡터들의 평균값을 연산하여 상기 정수 기반의 인터폴레이션을 수행하는 것을 특징으로 하는 움직임벡터 부호화 장치.
The method of claim 5, wherein
The virtual motion vector generating unit performs the integer based interpolation by calculating an average value of the motion vectors of the two neighboring blocks.
제 1 항에 있어서,
상기 가상 움직임벡터 생성부는 상기 부호화 대상블록에 인접한 두 개의 주변블록을 선별하고, 상기 선별된 두 개의 주변블록의 움직임벡터의 제1 성분 또는 제2 성분의 차이가 1이하인 경우, 상기 선별된 두 개의 주변블록의 움직임벡터들에 대해서 인터폴레이션이 불가능하다고 판단하는 것을 특징으로 하는 움직임벡터 부호화 장치.
The method of claim 1,
The virtual motion vector generator selects two neighboring blocks adjacent to the encoding target block, and when the difference between the first component or the second component of the selected motion vector of the two neighboring blocks is less than or equal to 1, the selected two And a motion vector encoding apparatus for determining that interpolation is impossible with respect to motion vectors of a neighboring block.
제 1 항에 있어서,
상기 적어도 하나의 주변블록은 시간적으로 이미 부호화된 참조프레임에서 상기 부호화 대상블록과 동일한 위치 또는 인접한 위치에 있는 주변블록들을 포함하는 것을 특징으로 하는 움직임벡터 부호화 장치.
The method of claim 1,
And the at least one neighboring block includes neighboring blocks located at the same or adjacent positions as the encoding target block in a reference frame that is already encoded in time.
복호화 대상블록의 부호화된 움직임벡터를 복호화하여 생성한 복호화된 움직임벡터를 상기 복호화 대상블록의 움직임벡터(이하, '현재 움직임벡터'라 함)로 복원하는 움직임벡터 복호화 장치에 있어서,
상기 복호화 대상블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측하고, 상기 복호화된 움직임벡터의 제1 성분과 상기 예측 움직임벡터의 제1 성분을 이용하여 상기 현재 움직임벡터의 제1 성분을 복원하는 제1 성분 복원부;
상기 적어도 하나의 주변블록의 움직임벡터를 이용한 인터폴레이션(Interpolation)이 가능한지 여부를 판단하고, 그 판단결과에 따라 인터폴레이션을 수행하여 적어도 하나의 가상 움직임벡터를 생성하는 가상 움직임벡터 생성부; 및
상기 적어도 하나의 주변블록의 움직임벡터 및 상기 가상 움직임벡터 생성부가 출력하는 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합과 상기 제1 성분 복원부가 복원한 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하고, 상기 복호화된 움직임벡터의 제2 성분과 상기 예측 움직임벡터의 제2 성분을 이용하여 상기 현재 움직임벡터의 제2 성분을 복원하는 제2 성분 복원부
를 포함하는 움직임벡터 복호화 장치.
A motion vector decoding apparatus for reconstructing a decoded motion vector generated by decoding a coded motion vector of a decoding target block into a motion vector of a decoding target block (hereinafter, referred to as a "current motion vector"),
The first component of the predicted motion vector is predicted by using the first motion vector candidate set generated based on the motion vectors of at least one neighboring block adjacent to the decoding target block, and the first component and the first component of the decoded motion vector are predicted. A first component reconstruction unit for reconstructing a first component of the current motion vector by using a first component of a predicted motion vector;
A virtual motion vector generator configured to determine whether interpolation using the motion vectors of the at least one neighboring block is possible, and to generate at least one virtual motion vector by performing interpolation according to the determination result; And
The second motion vector candidate set including the motion vector of the at least one neighboring block and the virtual motion vector output by the virtual motion vector generator and the first component of the current motion vector reconstructed by the first component reconstructor A second component reconstructor for predicting a second component of a predicted motion vector and reconstructing a second component of the current motion vector by using the second component of the decoded motion vector and the second component of the predicted motion vector
Motion vector decoding apparatus comprising a.
제 12 항에 있어서,
상기 제2 성분 복원부는 상기 제2 움직임벡터 후보집합에 속하는 움직임벡터 후보들 중에서 상기 현재 움직임벡터의 제1 성분과 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보를 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하는 것을 특징으로 하는 움직임벡터 복호화 장치.
The method of claim 12,
The second component reconstructor uses the motion vector candidate having a first component closest to the first component of the current motion vector among the motion vector candidates belonging to the second motion vector candidate set, to obtain the second component of the predicted motion vector. A motion vector decoding apparatus characterized by predicting a component.
제 13 항에 있어서,
상기 제2 성분 복원부는, 상기 예측 움직임벡터의 제1 성분과 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보가 복수 개인 경우, 그 복수 개의 움직임벡터 후보들의 제2 성분의 평균값을 상기 예측 움직임벡터의 제2 성분으로 하는 것을 특징으로 하는 움직임벡터 복호화 장치.
The method of claim 13,
The second component reconstructor, when there are a plurality of motion vector candidates having a first component closest to the first component of the predicted motion vector, calculates an average value of the second components of the plurality of motion vector candidates. And a second component of the motion vector decoding apparatus.
제 12 항에 있어서,
상기 가상 움직임벡터 생성부는 상기 복호화 대상블록에 인접한 주변블록들 중 두 개의 주변블록들을 선별하고 선별된 두 개의 주변블록들의 움직임벡터들에 대해 정수 기반의 인터폴레이션을 수행하여 상기 적어도 하나의 가상 움직임벡터를 생성하는 것을 특징으로 하는 움직임벡터 복호화 장치.
The method of claim 12,
The virtual motion vector generator selects two neighboring blocks among neighboring blocks adjacent to the decoding target block and performs integer-based interpolation on the motion vectors of the selected two neighboring blocks to determine the at least one virtual motion vector. Motion vector decoding device, characterized in that for generating.
제 12 항에 있어서,
상기 두 개의 주변블록들은 서로 인접한 것을 특징으로 하는 움직임벡터 복호화 장치.
The method of claim 12,
And the two neighboring blocks are adjacent to each other.
제 15 항에 있어서,
상기 가상 움직임벡터 생성부는 상기 두 개의 주변블록들의 움직임벡터 각각의 제1 성분 사이에 존재하는 모든 정수값에 대해 상기 정수 기반의 인터폴레이션을 수행하는 것을 특징으로 하는 움직임벡터 복호화 장치.
The method of claim 15,
And the virtual motion vector generating unit performs the integer based interpolation on all integer values existing between the first component of each of the motion vectors of the two neighboring blocks.
제 15 항에 있어서,
상기 가상 움직임벡터 생성부는 상기 두 개의 주변블록들의 움직임벡터 각각의 제2 성분 사이에 존재하는 모든 정수값에 대해 상기 정수 기반의 인터폴레이션을 수행하는 것을 특징으로 하는 움직임벡터 복호화 장치.
The method of claim 15,
And the virtual motion vector generating unit performs the integer based interpolation on all integer values existing between the second components of each of the motion vectors of the two neighboring blocks.
제 15 항에 있어서,
상기 가상 움직임벡터 생성부는 상기 두 개의 주변블록의 움직임벡터들의 평균값을 연산하여 상기 정수 기반의 인터폴레이션을 수행하는 것을 특징으로 하는 움직임벡터 부호화 장치.
The method of claim 15,
The virtual motion vector generating unit performs the integer based interpolation by calculating an average value of the motion vectors of the two neighboring blocks.
부호화 또는 복호화 대상블록의 움직임벡터(이하, '현재 움직임벡터'라 함)에 대한 예측 움직임벡터를 결정하는 장치에 있어서,
상기 부호화 또는 복호화 대상블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측하는 제1 예측부;
상기 적어도 하나의 주변블록의 움직임벡터를 이용한 인터폴레이션(Interpolation)이 가능한지 여부를 판단하고, 그 판단결과에 따라 인터폴레이션을 수행하여 적어도 하나의 가상 움직임벡터를 생성하는 가상 움직임벡터 생성부; 및
상기 적어도 하나의 주변블록의 움직임벡터 및 상기 가상 움직임벡터 생성부가 출력하는 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합과 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하는 제2 예측부
를 포함하는 것을 특징으로 하는 예측 움직임벡터 결정 장치.
An apparatus for determining a predicted motion vector with respect to a motion vector (hereinafter, referred to as a 'current motion vector') of a block to be encoded or decoded,
A first predictor for predicting a first component of a predicted motion vector using a first motion vector candidate set generated based on a motion vector of at least one neighboring block adjacent to the encoding or decoding target block;
A virtual motion vector generator configured to determine whether interpolation using the motion vectors of the at least one neighboring block is possible, and to generate at least one virtual motion vector by performing interpolation according to the determination result; And
A second component of the prediction motion vector is generated by using a second motion vector candidate set including a motion vector of the at least one neighboring block and a virtual motion vector output by the virtual motion vector generator and a first component of the current motion vector. Second prediction part to predict
Predictive motion vector determination apparatus comprising a.
부호화 및 복호화의 대상이 되는 현재블록의 움직임벡터(이하, '현재 움직임벡터'라 함)를 부호화 및 복호화하는 움직임벡터 부호화/복호화 방법에 있어서,
상기 현재블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 제1 예측 움직임벡터의 제1 성분을 예측하고, 상기 적어도 하나의 주변블록의 움직임벡터를 이용한 인터폴레이션(Interpolation)이 가능한지 여부를 판단하고 그 판단결과에 따라 인터폴레이션을 수행하여 적어도 하나의 가상 움직임벡터를 생성하며, 상기 적어도 하나의 주변블록의 움직임벡터 및 생성된 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합과 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 제1 예측 움직임벡터의 제2 성분을 예측한 후, 상기 제1 예측 움직임벡터를 이용하여 상기 현재 움직임벡터를 부호화하는 움직임벡터 부호화 단계; 및
상기 움직임벡터 부호화 장치에 의해 부호화된 상기 현재 움직임벡터를 복호화하여 복호화된 움직임벡터를 생성하고, 상기 제1 예측 움직임벡터 후보집합을 이용하여 제2 예측 움직임벡터의 제1 성분을 예측한 후 상기 복호화된 움직임벡터의 제1 성분과 상기 제2 예측 움직임벡터의 제1 성분을 이용하여 상기 현재 움직임벡터의 제1 성분을 복원하며, 상기 제2 움직임벡터 후보집합과 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 제2 예측 움직임벡터의 제2 성분을 예측하고 상기 복호화된 움직임벡터의 제2 성분과 상기 제2 예측 움직임벡터의 제2 성분을 이용하여 상기 현재 움직임벡터의 제2 성분을 복원하는 움직임벡터 복호화 단계
를 포함하는 움직임벡터 부호화/복호화 방법.
In a motion vector encoding / decoding method for encoding and decoding a motion vector (hereinafter, referred to as a 'current motion vector') of a current block to be encoded and decoded,
The first component of the first predicted motion vector is predicted by using the first motion vector candidate set generated based on the motion vectors of at least one neighboring block adjacent to the current block, and the motion vectors of the at least one neighboring block are predicted. Determining whether the interpolation is possible, and performing interpolation according to the determination result to generate at least one virtual motion vector, and including a motion vector of the at least one neighboring block and the generated virtual motion vector. A motion vector encoding step of predicting a second component of the first predicted motion vector using a motion vector candidate set and a first component of the current motion vector, and then encoding the current motion vector using the first predicted motion vector. ; And
Decoding the current motion vector encoded by the motion vector encoding apparatus to generate a decoded motion vector, predicting a first component of a second predicted motion vector using the first predicted motion vector candidate set, and then decoding the motion vector. Reconstructing the first component of the current motion vector using the first component of the first motion vector and the first predicted motion vector, and using the second motion vector candidate set and the first component of the current motion vector. Predicting a second component of the second predicted motion vector and reconstructing a second component of the current motion vector by using the second component of the decoded motion vector and the second component of the second predicted motion vector. Decryption step
Motion vector encoding / decoding method comprising a.
부호화 대상블록의 움직임벡터(이하, '현재 움직임벡터'라 함)를 부호화하는 움직임벡터 부호화 방법에 있어서,
상기 부호화 대상블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측하는 제1 예측 단계;
상기 적어도 하나의 주변블록의 움직임벡터를 이용한 인터폴레이션(Interpolation)이 가능한지 여부를 판단하고, 그 판단결과에 따라 인터폴레이션을 수행하여 적어도 하나의 가상 움직임벡터를 생성하는 가상 움직임벡터 생성 단계;
상기 적어도 하나의 주변블록의 움직임벡터 및 상기 가상 움직임벡터 생성 단계에서 생성되는 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합과 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하는 제2 예측 단계; 및
상기 예측 움직임벡터를 이용하여 상기 현재 움직임벡터에 대한 부호화를 수행하는 움직임벡터 부호화 단계
를 포함하는 것을 특징으로 하는 움직임벡터 부호화 방법.
In a motion vector encoding method of encoding a motion vector (hereinafter, referred to as a "current motion vector") of an encoding target block,
A first prediction step of predicting a first component of a predicted motion vector using a first motion vector candidate set generated based on a motion vector of at least one neighboring block adjacent to the encoding target block;
Determining whether or not interpolation is possible using the motion vectors of the at least one neighboring block, and generating at least one virtual motion vector by performing interpolation according to the determination result;
A second component of the predicted motion vector using a second motion vector candidate set including a motion vector of the at least one neighboring block and a virtual motion vector generated in the virtual motion vector generation step and a first component of the current motion vector; Predicting a second step; And
A motion vector encoding step of performing encoding on the current motion vector using the predicted motion vector.
Motion vector encoding method comprising a.
제 22 항에 있어서,
상기 제2 예측 단계는 상기 제2 움직임벡터 후보집합에 속하는 움직임벡터 후보들 중에서 상기 현재 움직임벡터의 제1 성분과의 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보들을 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하는 것을 특징으로 하는 움직임벡터 부호화 방법.
The method of claim 22,
The second prediction step includes the first prediction of the predicted motion vector using motion vector candidates having the first component having the closest distance to the first component of the current motion vector among the motion vector candidates belonging to the second motion vector candidate set. A motion vector encoding method characterized by predicting two components.
제 23 항에 있어서,
상기 제2 예측 단계는, 상기 예측 움직임벡터의 제1 성분과의 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보가 복수 개인 경우, 그 복수 개의 움직임벡터 후보들의 제2 성분의 평균값을 상기 예측 움직임벡터의 제2 성분으로 하는 것을 특징으로 하는 움직임벡터 부호화 방법.
24. The method of claim 23,
In the second prediction step, when there are a plurality of motion vector candidates having a first component closest to the first component of the predicted motion vector, the predicted motion is obtained by averaging the average value of the second components of the plurality of motion vector candidates. A motion vector encoding method comprising the second component of a vector.
제 22 항에 있어서,
상기 가상 움직임벡터 생성 단계는 상기 부호화 대상블록에 인접한 주변블록들 중 두 개의 주변블록을 선별하고 선별된 두 개의 주변블록들의 움직임벡터들에 대해 정수 기반의 인터폴레이션을 수행하여 상기 적어도 하나의 가상 움직임벡터를 생성하는 것을 특징으로 하는 움직임벡터 부호화 방법.
The method of claim 22,
The generating of the virtual motion vector may include selecting at least two neighboring blocks among neighboring blocks adjacent to the encoding target block and performing integer-based interpolation on the motion vectors of the selected two neighboring blocks to perform the at least one virtual motion vector. Motion vector encoding method, characterized in that for generating.
복호화 대상블록의 부호화된 움직임벡터를 복호화하여 생성한 복호화된 움직임벡터를 상기 복호화 대상블록의 움직임벡터(이하, '현재 움직임벡터'라 함)로 복원하는 움직임벡터 복호화 방법에 있어서,
상기 복호화 대상블록에 인접한 적어도 하나의 주변블록의 움직임벡터에 기반하여 생성한 제1 움직임벡터 후보집합을 이용하여 예측 움직임벡터의 제1 성분을 예측하고, 상기 복호화된 움직임벡터의 제1 성분과 상기 예측 움직임벡터의 제1 성분을 이용하여 상기 현재 움직임벡터의 제1 성분을 복원하는 제1 성분 복원 단계;
상기 적어도 하나의 주변블록의 움직임벡터를 이용한 인터폴레이션(Interpolation)이 가능한지 여부를 판단하고, 그 판단결과에 따라 인터폴레이션을 수행하여 적어도 하나의 가상 움직임벡터를 생성하는 가상 움직임벡터 생성 단계; 및
상기 적어도 하나의 주변블록의 움직임벡터 및 상기 가상 움직임벡터 생성 단계에서 생성되는 가상 움직임벡터를 포함하는 제2 움직임벡터 후보집합과 상기 제1 성분 복원 단계에서 복원된 상기 현재 움직임벡터의 제1 성분을 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하고, 상기 복호화된 움직임벡터의 제2 성분과 상기 예측 움직임벡터의 제2 성분을 이용하여 상기 현재 움직임벡터의 제2 성분을 복원하는 제2 성분 복원 단계
를 포함하는 움직임벡터 복호화 방법.
In a motion vector decoding method for reconstructing a decoded motion vector generated by decoding a coded motion vector of a decoding target block to a motion vector (hereinafter, referred to as a "current motion vector") of the decoding target block,
The first component of the predicted motion vector is predicted by using the first motion vector candidate set generated based on the motion vectors of at least one neighboring block adjacent to the decoding target block, and the first component and the first component of the decoded motion vector are predicted. A first component reconstruction step of reconstructing a first component of the current motion vector using a first component of a predicted motion vector;
Determining whether or not interpolation is possible using the motion vectors of the at least one neighboring block, and generating at least one virtual motion vector by performing interpolation according to the determination result; And
Using a second motion vector candidate set including a motion vector of the at least one neighboring block and a virtual motion vector generated in the virtual motion vector generation step and a first component of the current motion vector reconstructed in the first component reconstruction step Predicting a second component of the predicted motion vector, and restoring a second component of the current motion vector by using the second component of the decoded motion vector and the second component of the predicted motion vector.
Motion vector decoding method comprising a.
제 26 항에 있어서,
상기 제2 성분 복원부는 상기 제2 움직임벡터 후보집합에 속하는 움직임벡터 후보들 중에서 상기 현재 움직임벡터의 제1 성분과 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보를 이용하여 상기 예측 움직임벡터의 제2 성분을 예측하는 것을 특징으로 하는 움직임벡터 복호화 방법.
The method of claim 26,
The second component reconstructor uses the motion vector candidate having a first component closest to the first component of the current motion vector among the motion vector candidates belonging to the second motion vector candidate set, to obtain the second component of the predicted motion vector. A motion vector decoding method comprising predicting a component.
제 27 항에 있어서,
상기 제2 성분 복원부는, 상기 예측 움직임벡터의 제1 성분과 거리가 가장 가까운 제1 성분을 갖는 움직임벡터 후보가 복수 개인 경우, 그 복수 개의 움직임벡터 후보들의 제2 성분의 평균값을 상기 예측 움직임벡터의 제2 성분으로 하는 것을 특징으로 하는 움직임벡터 복호화 방법.
The method of claim 27,
The second component reconstructor, when there are a plurality of motion vector candidates having a first component closest to the first component of the predicted motion vector, calculates an average value of the second components of the plurality of motion vector candidates. And a second component of the motion vector decoding method.
제 26 항에 있어서,
상기 가상 움직임벡터 생성부는 상기 복호화 대상블록에 인접한 주변블록들 중 두 개의 주변블록들을 선별하고 선별된 두 개의 주변블록들의 움직임벡터들에 대해 정수 기반의 인터폴레이션을 수행하여 상기 적어도 하나의 가상 움직임벡터를 생성하는 것을 특징으로 하는 움직임벡터 복호화 방법.
The method of claim 26,
The virtual motion vector generator selects two neighboring blocks among neighboring blocks adjacent to the decoding target block and performs integer-based interpolation on the motion vectors of the selected two neighboring blocks to determine the at least one virtual motion vector. Motion vector decoding method, characterized in that for generating.
제 22 항 내지 제 25 항 중 어느 하나의 움직임벡터 부호화 방법이 프로그램으로 기록된 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium in which a motion vector encoding method according to any one of claims 22 to 25 is recorded by a program. 제 26 항 내지 제 29 항 중 어느 하나의 움직임벡터 복호화 방법이 프로그램으로 기록된 컴퓨터로 읽을 수 있는 기록매체.


A computer-readable recording medium having a motion vector decoding method according to any one of claims 26 to 29.


KR1020110001187A 2011-01-06 2011-01-06 Apparatus and Method for Encoding and Decoding Motion Vector KR101441889B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110001187A KR101441889B1 (en) 2011-01-06 2011-01-06 Apparatus and Method for Encoding and Decoding Motion Vector

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110001187A KR101441889B1 (en) 2011-01-06 2011-01-06 Apparatus and Method for Encoding and Decoding Motion Vector

Publications (2)

Publication Number Publication Date
KR20120079862A true KR20120079862A (en) 2012-07-16
KR101441889B1 KR101441889B1 (en) 2014-09-29

Family

ID=46712667

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110001187A KR101441889B1 (en) 2011-01-06 2011-01-06 Apparatus and Method for Encoding and Decoding Motion Vector

Country Status (1)

Country Link
KR (1) KR101441889B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017052081A1 (en) * 2015-09-24 2017-03-30 엘지전자 주식회사 Inter prediction method and apparatus in image coding system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1514241A2 (en) * 2002-05-30 2005-03-16 Koninklijke Philips Electronics N.V. Unit for and method of estimating a motion vector
KR100606140B1 (en) * 2004-11-09 2006-08-01 (주)씨앤에스 테크놀로지 A motion estimation method by a determination of adaptive mode

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017052081A1 (en) * 2015-09-24 2017-03-30 엘지전자 주식회사 Inter prediction method and apparatus in image coding system
US10575011B2 (en) 2015-09-24 2020-02-25 Lg Electronics Inc. Inter prediction method and apparatus in image coding system

Also Published As

Publication number Publication date
KR101441889B1 (en) 2014-09-29

Similar Documents

Publication Publication Date Title
US9781481B2 (en) Apparatus and method for generating/recovering motion information based on predictive motion vector index encoding, and apparatus and method for image encoding/decoding using same
KR101444675B1 (en) Method and Apparatus for Encoding and Decoding Video
KR101377527B1 (en) Method and Apparatus for Encoding and Decoding Motion Vector in Plural Number of Reference Pictures and Video Encoding/Decoding Method and Apparatus Using Same
KR101441903B1 (en) Reference Frame Creating Method and Apparatus and Video Encoding/Decoding Method and Apparatus Using Same
KR101681303B1 (en) Method and Apparatus for Encoding/Decoding of Video Data Using Partitioned-Block Prediction
KR20130051384A (en) Method and apparatus video encoding and decoding using skip mode
KR20110081304A (en) Image prediction encoding device, image prediction decoding device, image prediction encoding method, image prediction decoding method, image prediction encoding program, and image prediction decoding program
US20130230104A1 (en) Method and apparatus for encoding/decoding images using the effective selection of an intra-prediction mode group
KR20120009861A (en) Method and Apparatus for Encoding/Decoding of Video Data Using Expanded Skip Mode
KR20120066741A (en) Code motion information generating/motion information reconstructing method and apparatus using motion information merge and image encoding/decoding method and apparatus using the same
KR101377529B1 (en) Video Coding and Decoding Method and Apparatus Using Adaptive Motion Vector Coding/Encoding
KR101441889B1 (en) Apparatus and Method for Encoding and Decoding Motion Vector
KR101658592B1 (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
KR101524664B1 (en) Reference Frame Creating Method and Apparatus and Video Encoding/Decoding Method and Apparatus Using Same
KR100667815B1 (en) Apparatus for encoding and decoding image, and method theroff, and a recording medium storing program to implement the method
KR101479137B1 (en) Motion Information Generating Apparatus and Method using Motion Vector Predictor Index Coding, and Image Encoding/Decoding Apparatus and Method using the Same
KR101346474B1 (en) Video encoding apparatus and method thereof, and video decoding apparatus and method thereof
KR101693284B1 (en) Method and Apparatus for Encoding/Decoding of Video Data Using Global Motion-based Enconding Structure
KR101699832B1 (en) Motion Information Generating Apparatus and Method using Motion Vector Predictor Index Coding, and Image Encoding/Decoding Apparatus and Method using the Same
KR101533435B1 (en) Reference Frame Creating Method and Apparatus and Video Encoding/Decoding Method and Apparatus Using Same
KR101533441B1 (en) Reference Frame Creating Method and Apparatus and Video Encoding/Decoding Method and Apparatus Using Same
KR101479525B1 (en) Reference Frame Creating Method and Apparatus and Video Encoding/Decoding Method and Apparatus Using Same
KR101676381B1 (en) Motion Information Generating Apparatus and Method using Motion Vector Predictor Index Coding, and Image Encoding/Decoding Apparatus and Method using the Same
KR20140029503A (en) Method and apparatus for encoding and decoding motion vector in plural number of reference pictures and video encoding/decoding method and apparatus using same
KR20140027435A (en) Method and apparatus for encoding and decoding motion vector in plural number of reference pictures and video encoding/decoding method and apparatus using same

Legal Events

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

Payment date: 20170905

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190626

Year of fee payment: 6