KR20090103663A - Method for coding data of motion vector and apparatus for the same - Google Patents

Method for coding data of motion vector and apparatus for the same

Info

Publication number
KR20090103663A
KR20090103663A KR1020080074289A KR20080074289A KR20090103663A KR 20090103663 A KR20090103663 A KR 20090103663A KR 1020080074289 A KR1020080074289 A KR 1020080074289A KR 20080074289 A KR20080074289 A KR 20080074289A KR 20090103663 A KR20090103663 A KR 20090103663A
Authority
KR
South Korea
Prior art keywords
motion vector
motion
information
reference picture
unit
Prior art date
Application number
KR1020080074289A
Other languages
Korean (ko)
Inventor
최광표
오윤제
주영훈
전병우
정봉수
Original Assignee
삼성전자주식회사
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 성균관대학교산학협력단 filed Critical 삼성전자주식회사
Priority to KR1020080074289A priority Critical patent/KR20090103663A/en
Priority to JP2009080293A priority patent/JP4990927B2/en
Priority to US12/414,280 priority patent/US8553779B2/en
Priority to EP20090156747 priority patent/EP2106146A3/en
Publication of KR20090103663A publication Critical patent/KR20090103663A/en

Links

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

Landscapes

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

Abstract

PURPOSE: A method for coding data of a motion vector and an apparatus for the same are provided to reduce the information for motion estimation by encoding a reset satisfaction condition for motion vector related data. CONSTITUTION: A method for coding data of a motion vector comprises the steps of: setting up subunits in which encoding units are split into two regions calculating a PMV(Predictive Motion Vector) for plural subunits(260); confirming whether or not the plural PMVs satisfies a preset condition; and generating the encoding data for the motion vector by including the information that indicates the omission of the subunit motion vector if the plural PMVs satisfy the preset condition(350).

Description

움직임 벡터 정보의 부호화/복호화 방법 및 장치{METHOD FOR CODING DATA OF MOTION VECTOR AND APPARATUS FOR THE SAME}METHOD FOR CODING DATA OF MOTION VECTOR AND APPARATUS FOR THE SAME}

본 발명은 동영상 부호화 방법에 관한 것으로서, 특히 움직임 벡터에 대한 정보의 압축률을 향상시킬 수 있는 동영상 부호화 방법에 관한 것이다.The present invention relates to a video encoding method, and more particularly, to a video encoding method capable of improving the compression ratio of information on a motion vector.

최근에 표준화 완료된 H.264/AVC 표준은 종래의 다른 비디오 압축표준과 같이 블록기반 부호화 방식을 유지하면서 우수한 비트율-왜곡(Rate-Distortion) 성능을 지닌다. 특히, H.264/AVC 표준은 하나의 부호화단위인 매크로블록을 종래 영상 압축 표준보다 더욱 정교하게 복수의 가변 블록크기의 부단위로 분할한 후, 분할된 블록에 대한 움직임 벡터를 추정하여 움직임 보상한다.The recently standardized H.264 / AVC standard has excellent rate-distortion performance while maintaining a block-based encoding scheme like other conventional video compression standards. In particular, the H.264 / AVC standard divides a macroblock as one coding unit into subunits of a plurality of variable block sizes more precisely than the conventional video compression standard, and then estimates a motion vector for the divided block to compensate for motion. do.

구체적으로, 부호화단위인 매크로블록(macroblock)에 대해, 도 1에 도시한 바와 같이 SKIP, P16×16, P16×8, P8×16, 및 P8×8(P8×8, P8×4, P4×8, P4×4)블록 단위로 움직임 벡터를 추정 및 보상한다. H.264/AVC에서는 이러한 가변 블록크기 움직임 보상 기술을 사용할 경우 하나의 부호화단위인 매크로블록에서 최대 16개의 움직임 벡터가 발생한다. 이것은 움직임 벡터 부호화에 많은 비트량이 소요되게 됨을 보여준다. 이러한 가변 블록크기 움직임 예측을 위하여 한 매크로블록을 어떤 크기들의 부단위들로 구성하여 움직임 보상할 것인가는, 더욱 정밀한 부단위의 움직임 보상으로 인한 긍정적 효과뿐만 아니라, 이때 추가로 전송하여야 하는 복수의 움직임 벡터, 그리고 어떻게 주어진 부호화 단위를 움직임 보상 단위인 부단위로 분할하였는가를 나타내는 부호화 단위 분할 정보에 소요되는 비트 오버 헤드에 대한 부정적 효과들을 모두 종합적으로 고려하여 결정된다. Specifically, for a macroblock as a coding unit, as shown in FIG. 1, SKIP, P16 × 16, P16 × 8, P8 × 16, and P8 × 8 (P8 × 8, P8 × 4, P4 × 8, P4 × 4) Motion vectors are estimated and compensated in units of blocks. In H.264 / AVC, when using this variable block size motion compensation technique, up to 16 motion vectors are generated in one macroblock, one coding unit. This shows that a large amount of bits are required for motion vector coding. In order to predict the variable block size motion, a macroblock is composed of sub-units of which size to compensate for motion, as well as a positive effect due to more precise sub-compensation of motion compensation. A vector and a negative effect on bit overhead required for coding unit splitting information indicating how a given coding unit is divided into subunits, which are motion compensation units, are all determined.

이와 같이, 가변 블록 크기로 분할하면 부호화단위를 더 많은 수의 부단위로 분할할수록 움직임 보상 후 잉여(residual) 데이터가 적게 발생한다. 하지만, 분할된 부단위의 수에 대응하는 만큼의 움직임 벡터가 생성되므로 많은 수의 부단위에 대한 움직임 벡터가 발생된다. 따라서, 부호화할 잉여 데이터는 감소하지만 움직임 벡터 수의 증가에 따른 비트량이 증가하는 문제가 발생한다. 결국, 부단위 움직임 보상의 효과를 제대로 살릴 수 없는 문제가 발생한다.As described above, when the data is divided into variable block sizes, the smaller the coding unit is, the smaller the residual data is after the motion compensation. However, since motion vectors corresponding to the number of divided subunits are generated, motion vectors for a large number of subunits are generated. Therefore, a problem arises in that excess data to be encoded decreases but the bit amount increases due to an increase in the number of motion vectors. As a result, a problem arises in which the effect of sub-movement compensation cannot be properly utilized.

본 발명은 전술한 점을 고려하여 안출된 것으로서, 부호화단위의 움직임 벡터를 지시하는 정보 및 잉여 데이터에 대한 데이터를 효과적으로 압축할 수 있는 부호화/복호화 방법 및 장치를 제공하는데 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made in view of the foregoing, and an object thereof is to provide an encoding / decoding method and apparatus capable of effectively compressing information indicating a motion vector of a coding unit and data for surplus data.

상기한 목적을 달성하기 위하여 본 발명의 일 측면에 따른 움직임 벡터 정보의 부호화 방법은 부호화단위의 움직임 벡터에 대한 정보를 부호화하는 방법에 있어서, 부호화단위를 적어도 두 개의 영역으로 분할한 부단위를 설정하고, 복수의 부단위에 대한 예측 움직임 벡터(PMV; Predictive Motion Vector)를 연산하는 과정과, 상기 복수의 예측 움직임 벡터(PMV)가 미리 정해진 조건을 만족하는지를 확인하는 과정과, 상기 복수의 예측 움직임 벡터(PMV)가 상기 미리 정해진 조건을 만족하는 경우, 부단위 움직임 벡터의 생략을 지시하는 정보를 포함하여, 움직임 벡터에 대한 부호화 데이터를 생성하는 과정을 포함한다.In order to achieve the above object, a method of encoding motion vector information according to an aspect of the present invention is a method of encoding information about a motion vector of a coding unit, wherein a subunit obtained by dividing a coding unit into at least two regions is set. And calculating a predicted motion vector (PMV) for a plurality of subunits, checking whether the plurality of predicted motion vectors (PMV) satisfy a predetermined condition, and performing the plurality of predicted motion vectors. When the vector PMV satisfies the predetermined condition, the method includes generating coded data for the motion vector, including information indicating that the sub-unit motion vector is omitted.

본 발명의 일 측면에 따른 움직임 벡터 정보 부호화 방법은 복수의 움직임 벡터 예측 모드에 기초하여, 각각의 상기 모드에 따른 움직임 벡터를 추정하는 과정과, 추정된 상기 움직임 벡터를 참조픽쳐에 적용하여 부호화단위의 영상정보를 복원하는 과정과, 복원된 상기 영상정보와 원본의 영상정보 사이의 잉여 데이터를 연산하고, 상기 잉여 데이터를 부호화 및 복호화하는 과정과, 부호화 및 복호화된 상기 잉여 데이터를 복원된 영상에 적용하여, 재복원된 영상정보를 생성하는 과정과, 재복원된 상기 영상정보와 원본의 영상정보 사이의 코스트를 연산하는 과정과, 복수의 움직임 벡터 예측 모드 중, 최소의 코스트를 갖는 모드를 선택하고, 상기 최소의 코스트를 제1코스트로 설정하는 과정과, 예측 움직임 벡터(PMV)를 참조픽처에 적용하여, 부호화단위의 영상정보를 복원하고, 복원된 상기 영상정보와 원본의 영상정보 사이의 제2코스트를 연산하는 과정을 더 포함하며, 상기 미리 정해진 조건은, 제1코스트보다 제2코스트가 상대적으로 더 작은 값을 갖는 조건인 것이 바람직하다.According to an aspect of the present invention, there is provided a method of encoding motion vector information based on a plurality of motion vector prediction modes, and estimating a motion vector according to each mode, and applying the estimated motion vector to a reference picture. Restoring video information of the video data; calculating surplus data between the restored video information and the original video information; encoding and decoding the excess data; and encoding the encoded and decoded surplus data to the restored video. Applying, selecting a mode having a minimum cost among a process of generating reconstructed image information, calculating a cost between the reconstructed image information and original image information, and a plurality of motion vector prediction modes And encoding the minimum cost as the first cost, and applying a predicted motion vector (PMV) to a reference picture. Restoring the above video information, and calculating a second cost between the restored video information and the original video information, wherein the predetermined condition is that the second cost is relatively smaller than the first cost. It is preferable that it is a condition which has a value.

상기 미리 정해진 조건을 만족하지 못하는 경우, 최소의 코스트를 갖는 상기 모드에 대해 추정된 움직임벡터, 참조픽처, 및 잉여 데이터(residual)를 포함하여, 움직임 벡터에 대한 부호화 데이터를 생성하는 과정을 포함할 수 있다.If the predetermined condition is not satisfied, generating encoded data for the motion vector, including a motion vector, a reference picture, and residual data estimated for the mode having a minimum cost; Can be.

미리 정해진 조건은, 부단위의 예측 움직임 벡터(PMV)와 부단위로 탐색된 움직임 벡터가 동일한 값으로 이루어지거나, 부호화단위에 포함된 부단위들에 대한 움직임 벡터의 참조픽처가 모두 동일한 참조픽처로 이루어진 조건일 수 있다.The predetermined condition is that the prediction motion vector (PMV) of the sub-unit and the motion vector searched by the sub-unit have the same value, or the reference pictures of the motion vectors of the sub-units included in the coding unit are all the same reference picture. It may be a condition made.

나아가, 상기 참조픽처는 현재 부호화를 진행중인 픽처와 시각(time)적으로 이웃한 픽처이거나, 프레임 메모리에 저장된 픽처 중, 선택된 어느 하나의 픽처일 수 있으며, 후자의 경우 상기 부호화 데이터는 적어도 하나의 상기 참조픽처를 지시하는 정보를 포함하는 것이 바람직하다.Further, the reference picture may be a picture that is timely neighboring to a picture currently being encoded, or any one of pictures stored in a frame memory, and in the latter case, the encoded data is at least one of the pictures. It is preferable to include information indicating a reference picture.

상기 예측 움직임 벡터(PMV)를 연산하는 과정은, 주변에 위치한 부단위들에 대한 움직임 벡터를 획득하는 과정과, 상기 주변에 위치한 부단위들에 대한 움직임 벡터의 중간값을 연산하여, 상기 부단위의 예측 움직임 벡터(PMV)를 예측하는 과정을 포함할 수 있다.The operation of calculating the predicted motion vector (PMV) may include obtaining a motion vector for subunits located nearby, calculating a median value of the motion vector for the subunits located nearby, and calculating the subunit. It may include the process of predicting the predicted motion vector (PMV) of.

본 발명의 다른 측면에 따른 움직임 벡터에 대한 정보를 복원하는 방법은 움직임 벡터를 획득한 단위를 지시하는 식별코드를 포함하는 비트스트림으로부터 움직임 벡터에 대한 정보를 복원하는 방법에 있어서, 입력되는 비트스트림에 포함된 상기 식별코드를 파싱(parsing)하여, 움직임 벡터 부호화 모드(MVCM; Motion Vector Coding Mode)를 획득하는 과정과, 상기 모드가 부단위의 움직임 벡터의 생략을 지시하는 모드인 경우, 부호화기와 사전에 약속된 조건에 따라, 예측 움직임 벡터(PMV; Predictive Motion Vector)를 연산하고, 참조픽처에 대한 정보를 획득하는 과정과, 상기 예측 움직임 벡터(PMV)를 상기 참조픽처에 적용하여 움직임 보상 블록을 복원하는 과정을 포함한다.According to another aspect of the present invention, there is provided a method for recovering information on a motion vector, the method for recovering information on a motion vector from a bitstream including an identification code indicating a unit from which the motion vector is obtained. Parsing the identification code included in the processor to obtain a Motion Vector Coding Mode (MVCM), and if the mode is a mode indicating omission of the sub-unit motion vector, A motion compensation block is performed by calculating a predictive motion vector (PMV) according to a previously promised condition, obtaining information about a reference picture, and applying the predictive motion vector (PMV) to the reference picture. It includes the process of restoring.

본 발명의 다른 측면에 따른 움직임 벡터에 대한 정보를 복원하는 방법은 상기 움직임 벡터 부호화 모드(MVCM)가 부단위의 움직임 벡터의 생략을 지시하는 모드가 아닌 경우, 부호화된 움직임 벡터 및 부호화된 잉여(residual)데이터를 복원하고, 참조픽처를 확인하는 과정과, 상기 움직임 벡터 및 잉여 데이터를 참조 픽쳐에 적용하여, 부호화단위의 영상정보를 복원하는 과정을 포함할 수 있다.According to another aspect of the present invention, a method for restoring information on a motion vector may include encoding a motion vector and a coded surplus when the motion vector encoding mode (MVCM) is not a mode indicating omission of a sub-motion vector. and reconstructing the image information of the coding unit by reconstructing the residual data, identifying the reference picture, and applying the motion vector and the surplus data to the reference picture.

예측 움직임 벡터(PMV)를 연산하는 상기 과정은, 주변에 위치한 부단위들에 대한 움직임 벡터를 획득하는 과정과, 상기 주변에 위치한 부단위들에 대한 움직임 벡터의 중간값을 연산하고, 상기 중간값을 상기 예측 움직임 벡터(PMV)로 설정하는 과정을 포함하는 것이 바람직하다.The process of calculating a predicted motion vector (PMV) may include obtaining a motion vector for subunits located in the periphery, calculating a median value of the motion vector for the subunits in the periphery, and calculating the median value. It is preferable to include the step of setting to the predicted motion vector (PMV).

상기 참조픽처는 현재 부호화를 진행중인 픽처와 시각(time)적으로 이웃한 픽처일 수 있다.The reference picture may be a picture neighboring in time with a picture currently being encoded.

본 발명의 또 다른 측면에 따른 움직임 벡터에 대한 정보를 부호화하는 장치는 움직임 추정부 및 움직임 보상부를 이용하여, 부호화단위의 움직임 벡터에 대한 정보를 부호화하는 장치에 있어서, 복수의 움직임 벡터 예측 모드(MVPM; Motion Vector Predictive Mode)에 대한 움직임 벡터의 탐색 및 부단위 예측 움직임 벡터(PMV; Predictive Motion Vector)의 연산을 지시하고, 복원된 부호화단위의 코스트를 연산하고, 상기 움직임 추정부 및 움직임 보상부의 동작을 제어하는 제어부와, 상기 제어부가 입력하는 움직임 벡터 예측 모드(MVPM)에 대응하여, 각각의 상기 움직임 벡터 예측 모드(MVPM)의 움직임 벡터를 탐색한 후, 움직임 보상부로 제공하며, 주변의 움직임 벡터를 이용하여 부단위의 예측 움직임 벡터(PMV)를 연산한 후, 움직임 보상부로 제공하는 움직임 추정부와, 움직임 추정부로부터 입력받은 움직임 벡터를 참조픽처에 적용하여 부호화단위의 영상정보를 복원하는 움직임 보상부를 포함하며, 상기 제어부는, 미리 정해진 조건을 만족하는 경우, 부호화단위에 대한 움직임 벡터의 생략을 지시하는 정보를 부호화 데이터에 포함시킨다.An apparatus for encoding information about a motion vector according to another aspect of the present invention is an apparatus for encoding information about a motion vector of a coding unit by using a motion estimator and a motion compensator, wherein a plurality of motion vector prediction modes ( Instructs the search of a motion vector and operation of a sub-predictive motion vector (PMV) for MVPM (Motion Vector Predictive Mode), calculates the cost of the reconstructed coding unit, and calculates the cost of the motion estimation unit and the motion compensation unit. The controller controls an operation and a motion vector of each of the motion vector prediction modes (MVPM) corresponding to the motion vector prediction mode (MVPM) input by the controller, and then provides the motion compensation unit to provide a motion compensation unit. A motion estimator for calculating a subunit predicted motion vector (PMV) using the vector and then providing the motion compensation unit And a motion compensator for restoring image information of a coding unit by applying the motion vector received from the video estimation unit to the reference picture, wherein the control unit indicates to omit the motion vector for the coding unit when a predetermined condition is satisfied. Information to be included in the encoded data.

상기 제어부는, 상기 미리 정해진 조건을 만족하지 못하는 경우, 최소의 코스트를 갖는 움직임 벡터 예측 모드(MVPM), 상기 모드(MVPM)를 기준으로 탐색된 움직임벡터 및 잉여 데이터(residual)를 포함하여, 움직임 벡터에 대한 부호화 데이터를 생성하는 것이 바람직하다.If the predetermined condition is not satisfied, the controller includes a motion vector prediction mode (MVPM) having a minimum cost, a motion vector searched based on the mode (MVPM), and surplus data (residual). It is preferable to generate encoded data for the vector.

상기 미리 정해진 조건은, 부단위의 예측 움직임 벡터(PMV)에 기초한 코스트가, 움직임 벡터 예측 모드(MVPM)에 기초하여 연산된 최소 코스트보다 상대적으로 더 작은 값을 가지며, 부단위의 예측 움직임 벡터(PMV)와 부단위의 탐색을 통해 획득한 상기 움직임 벡터가 동일한 값으로 이루어진 조건일 수 있다.The predetermined condition is that the cost based on the subunit predicted motion vector PMV has a value smaller than the minimum cost calculated based on the motion vector predictive mode MVPM, and the subunit predicted motion vector PMV. PMV) and the motion vector obtained through the subunit search may be the same condition.

상기 미리 정해진 조건은, 부단위 움직임 벡터의 참조픽처가 모두 동일한 참조픽처로 이루어진 조건일 수 있다.The predetermined condition may be a condition in which all of the reference pictures of the sub-unit motion vector are the same reference picture.

상기 참조픽처는 현재 부호화를 진행중인 픽처와 시각(time)적으로 이웃한 픽처일 수 있다.The reference picture may be a picture neighboring in time with a picture currently being encoded.

상기 참조픽처는 프레임 메모리에 저장된 픽처 중, 선택된 어느 하나의 픽처이며, 상기 부호화 데이터는 적어도 하나의 상기 참조픽처를 지시하는 정보를 포함하는 것이 바람직하다.Preferably, the reference picture is any one selected picture from among pictures stored in a frame memory, and the encoded data includes information indicating at least one reference picture.

본 발명의 또 다른 측면에 따른 움직임 벡터에 대한 정보를 부호화하는 장치는 부호화단위의 원본 영상정보와 복원된 영상정보 사이의 잉여 데이터를 부호화하는 잉여 데이터 부호화부와, 부호화된 상기 잉여 데이터를 복원하는 잉여 데이터 복호화부를 더 포함하며, 상기 제어부는, 잉여 데이터 부호화부로부터 제공받은 잉여 데이터의 비트수 및 잉여 데이터 복호화부로부터 제공받은 왜곡치(Distortion)를 이용하여 코스트를 연산할 수 있다.According to another aspect of the present invention, an apparatus for encoding information about a motion vector includes: a redundant data encoder for encoding surplus data between original image information and reconstructed image information of a coding unit; and reconstructing the encoded excess data. The apparatus may further include a redundant data decoder, and the controller may calculate a cost using the number of bits of the redundant data provided from the redundant data encoder and a distortion provided from the redundant data decoder.

움직임 추정부는, 주변에 위치한 부단위들에 대한 움직임 벡터를 획득하고, 상기 주변에 위치한 부단위들에 대한 움직임 벡터의 중간값을 연산하여, 상기 부단위의 예측 움직임 벡터를 연산하는 것이 바람직하다.Preferably, the motion estimator obtains a motion vector for subunits located nearby, calculates a median value of the motion vector for subunits located nearby, and calculates the predicted motion vector of the subunit.

본 발명의 또 다른 측면에 따른 움직임 벡터에 대한 정보를 복원하는 장치는 비트스트림으로부터 움직임 벡터에 대한 정보를 복원하는 장치에 있어서, 입력되는 비트스트림으로부터 움직임 벡터 부호화 모드(MVCM; MVCM; Motion Vector Coding Mode)를 획득하고, 상기 모드(MVCM)에 대응하는 움직임 벡터의 복원 및 부호화단위의 영상정보의 복원을 제어하는 제어부와, 상기 제어부로부터 제공받은 상기 모드(MVCM) 및 부호화기와 사전에 약속된 조건을 참조하여, 부호화된 움직임 벡터 및 참조픽처를 포함하는 움직임 정보를 복원하는 움직임 벡터 복호화부와, 상기 제어부로부터 제공받은 상기 모드(MVCM)를 참조하고, 부단위의 예측 움직임 벡터(PMV; Predictive Motion Vector)를 연산하는 움직임 벡터 예측부와, 상기 참조픽처에 상기 움직임 벡터를 적용하여 영상정보를 복원하는 움직임 보상부와, 부호화된 잉여 데이터를 복원하는 잉여 데이터 복호화부와, 상기 움직임 보상부로부터 출력되는 영상정보 및 상기 잉여 데이터 복호화부로부터의 상기 잉여 데이터를 가산하는 가산부를 포함한다.An apparatus for restoring information on a motion vector according to another aspect of the present invention is an apparatus for restoring information on a motion vector from a bitstream, the apparatus for restoring information about a motion vector from a bitstream, wherein the motion vector coding mode (MVCM; MVCM; Motion Vector Coding) A control unit for acquiring a mode, controlling a reconstruction of a motion vector corresponding to the mode (MVCM) and the reconstruction of image information of a coding unit, and a condition promised in advance with the mode (MVCM) and the encoder provided from the controller. With reference to the motion vector decoder for restoring motion information including the encoded motion vector and the reference picture, and the mode (MVCM) provided from the controller, the sub-prediction motion vector (PMV) is referred to. A motion vector predictor calculating a vector) and applying the motion vector to the reference picture to restore image information. A motion compensator, a surplus data decoder for restoring the encoded surplus data, and an adder for adding video information output from the motion compensator and the surplus data from the redundant data decoder.

상기 모드(MVCM)가 부단위의 움직임 벡터 생략을 지시하는 모드인 경우, 상기 제어부는, 부호화기와 사전에 약속된 조건에 따라, 상기 움직임 벡터 예측부를 제어하고, 참조픽처에 대한 정보를 획득할 수 있다.When the mode (MVCM) is a mode for instructing to omit a motion vector of a sub-unit, the controller may control the motion vector predictor according to a condition previously promised with an encoder to obtain information about a reference picture. have.

상기 움직임 벡터 예측부는, 주변에 위치한 부단위들에 대한 움직임 벡터를 획득하고, 획득한 상기 움직임 벡터들의 중간값을 연산하여, 상기 중간값을 상기 부단위의 예측 움직임 벡터(PMV)로 설정하는 것이 바람직하다.The motion vector predictor is configured to obtain a motion vector for subunits located nearby, calculate an intermediate value of the obtained motion vectors, and set the intermediate value as a predicted motion vector (PMV) of the subunit. desirable.

상기 참조픽처는 현재 부호화를 진행중인 픽처와 시각(time)적으로 이웃한 픽처일 수 있다.The reference picture may be a picture neighboring in time with a picture currently being encoded.

상기 모드가 부단위의 움직임 벡터의 생략을 지시하는 모드가 아닌 경우, 상기 제어부는, 부호화기와 사전에 약속된 조건에 따라, 상기 움직임 벡터 복호화부 및 잉여 데이터 복호화부를 제어하고, 상기 움직임 벡터 복호화부는, 입력된 데이터로부터 움직임 벡터 및 참조픽처를 획득하고, 상기 잉여 데이터 복호화부는 입력된 비트스트림을 참조하여 잉여 데이터를 획득하는 것이 바람직하다.When the mode is not a mode for instructing to omit the sub-motion vector, the controller controls the motion vector decoder and the redundant data decoder according to a condition previously promised by the encoder, and the motion vector decoder Preferably, the motion vector and the reference picture are obtained from the input data, and the redundant data decoder obtains the redundant data by referring to the input bitstream.

본 발명에 따르면, 움직임 벡터와 관련된 데이터에 대한 미리 정해진 조건의 만족 여부를 부호화하여 움직임 예측에 대한 정보를 효과적으로 줄일 수 있다.According to the present invention, information about motion prediction can be effectively reduced by encoding whether or not a predetermined condition on data related to a motion vector is satisfied.

또한, 복수의 부단위의 움직임 벡터 정보를 부호화하여 전송할 필요없이 하나의 매크로블록 부호화 모드를 지시하는 정보를 부호화하는 것만으로, 부단위의 움직임 벡터 정보를 부호화할 수 있고 부단위의 크기로 움직임벡터를 복원하는 것이 가능하다.In addition, the motion vector information of the sub-units can be encoded by encoding information indicating one macroblock encoding mode without the need to encode and transmit the motion vector information of the plurality of sub-units. It is possible to restore it.

도 1은 H.264/AVC 표준에 따른 움직임 벡터 예측 모드의 일 예시도,1 illustrates an example of a motion vector prediction mode according to the H.264 / AVC standard.

도 2는 본 발명의 일 실시예에 따른 움직임 정보 부호화 장치가 적용되는 동영상 부호화 장치의 블록도,2 is a block diagram of a video encoding apparatus to which a motion information encoding apparatus according to an embodiment of the present invention is applied;

도 3은 본 발명의 일 실시예에 따른 움직임 벡터 정보의 부호화 방법의 순서를 도시하는 흐름도,3 is a flowchart illustrating a procedure of a method of encoding motion vector information according to an embodiment of the present invention;

도 4는 본 발명의 일 실시예에 따른 움직임 벡터 정보의 부호화를 수행하는 매크로블록의 일 예시도,4 is an exemplary diagram of a macroblock for encoding motion vector information according to an embodiment of the present invention;

도 5는 본 발명의 다른 실시예에 따른 움직임 벡터 정보의 부호화 방법의 순서를 도시하는 흐름도,5 is a flowchart illustrating a procedure of a method of encoding motion vector information according to another embodiment of the present invention;

도 6은 본 발명의 또 다른 실시예에 따른 움직임 벡터 정보의 부호화 방법의 순서를 도시하는 흐름도,6 is a flowchart showing a procedure of a method of encoding motion vector information according to another embodiment of the present invention;

도 7은 본 발명의 일 실시예에 따른 움직임 벡터 복원 장치가 적용되는 동영상 복호화 장치를 나타내는 블록도,7 is a block diagram illustrating a video decoding apparatus to which a motion vector decompression device is applied according to an embodiment of the present invention;

도 8은 본 발명의 일 실시예에 따른 움직임 벡터 정보의 복호화 방법의 순서를 도시하는 흐름도.8 is a flowchart illustrating a procedure of a method of decoding motion vector information according to an embodiment of the present invention.

이하 본 발명에 따른 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기 설명에서는 구체적인 특정 사항들이 나타나고 있는데 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들이 본 발명의 범위 내에서 소정의 변형이나 혹은 변경이 이루어질 수 있음은 이 기술분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Specific details appear in the following description, which is provided to help a more general understanding of the present invention, and it is common knowledge in the art that such specific matters may be changed or modified within the scope of the present invention. It is self-evident to those who have.

본 발명의 실시예에서는 본 발명의 부호화 방법 및 장치를 H.264/AVC 표준에 적용함을 예시한다. 따라서, 본 발명의 실시예에서 부호화 단위는, H.264/AVC 표준에서 영상의 픽처에 포함된 화소들을 부호화하는 단위인 매크로블록 단위를 사용한다.An embodiment of the present invention illustrates the application of the encoding method and apparatus to the H.264 / AVC standard. Therefore, in the embodiment of the present invention, the coding unit uses a macroblock unit that is a unit for encoding pixels included in a picture of an image in the H.264 / AVC standard.

또한, 본 발명의 실시예에서 움직임 벡터를 획득하기 위한 단위로서, 부호화단위(예컨대, 매크로블록)를 적어도 두 개로 분할한 단위를 부단위로 정의한다. 나아가, H.264/AVC 표준을 예시하는 본 발명의 실시예에서 부단위는 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 화소 등으로 이루어진 단위일 수 있다.In an embodiment of the present invention, as a unit for obtaining a motion vector, a unit obtained by dividing a coding unit (eg, a macroblock) into at least two is defined as a subunit. Furthermore, in the embodiment of the present invention illustrating the H.264 / AVC standard, the subunit may be a unit consisting of 16 × 8, 8 × 16, 8 × 8, 8 × 4, 4 × 8, 4 × 4 pixels, and the like. have.

비록, 본 발명의 일 실시예에서 동영상을 부호화 및 복호화하는 방법으로서, H.264/AVC 표준에 기초한 부호화 및 복호화 방법을 예시하면서 부호화단위를 매크로블록으로 예시하였고, 부단위를 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 화소 등으로 이루어진 단위로 예시하였다. 그러나, 본 발명이 이를 한정하는 것은 아니며 동영상을 부호화 및 복호화하는 방법에 다양하게 적용할 수 있음은 물론이다.Although, according to an embodiment of the present invention, a coding unit is illustrated as a macroblock while an encoding and decoding method based on the H.264 / AVC standard is illustrated as a method for encoding and decoding a video, and subunits are 16 × 8, 8 It illustrated by the unit which consists of x16, 8x8, 8x4, 4x8, 4x4 pixel. However, the present invention is not limited thereto and may be variously applied to a method of encoding and decoding a video.

나아가, 본 발명의 일 실시예에서 부호화를 진행하고 있는 픽처를 현재 픽처(CP; Current Picture)로 정의하고, 부호화를 진행하고 있는 매크로블록을 현재 매크로블록(CMB; Current Macroblock)으로 정의한다. 그리고, 도 1에 도시된 바와 같이 미리 정해진 단위(16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 화소 단위)로 움직임 벡터를 추정하는 모드를 움직임 벡터 예측 모드(MVPM; Motion Vector Predictive Mode)로 정의하고, 주변의 부호화단위(또는 부단위)의 움직임 벡터를 이용하여 예측한 움직임 벡터를 예측 움직임 벡터(PMV; Predictive Motion Vector)로 정의하고, 본 발명의 움직임 벡터 부호화 방법에 따라 결정된 부호화 모드를 움직임 벡터 부호화 모드(MVCM; Motion Vector Coding Mode)로 정의한다.Furthermore, in an embodiment of the present invention, a picture being encoded is defined as a current picture (CP), and a macroblock being encoded is defined as a current macroblock (CMB). As shown in FIG. 1, a mode for estimating a motion vector in predetermined units (16 × 16, 16 × 8, 8 × 16, 8 × 8, 8 × 4, 4 × 8, and 4 × 4 pixel units). Is defined as a Motion Vector Predictive Mode (MVPM), and a motion vector predicted using motion vectors of neighboring coding units (or sub-units) is defined as a Predictive Motion Vector (PMV). The coding mode determined according to the motion vector coding method of the present invention is defined as a motion vector coding mode (MVCM).

한편, 동영상을 부호화하는 과정에서, 매크로블록과 같은 하나의 부호화 단위가 소정 개수의 부단위으로 분할되어 움직임 보상됨에 따라, 각각의 부단위에 대하여 움직임 벡터가 발생한다. Meanwhile, in the process of encoding a video, as one coding unit such as a macroblock is divided into a predetermined number of subunits and motion compensated, a motion vector is generated for each subunit.

특히, 움직임이 거의 없는 영역에 해당되는 매크로블록 또는 동일한 방향으로 이동하는 영역에 해당되는 매크로블록의 경우, 그 복수의 움직임 벡터들 사이에는 상당한 연관성(correlation)이 존재할 수 있다.In particular, in the case of a macroblock corresponding to a region having little motion or a macroblock corresponding to a region moving in the same direction, there may be a significant correlation between the plurality of motion vectors.

따라서, 본 발명의 부호화 방법에서는 이웃한 매크로블록의 움직임 벡터와 현재 매크로블록의 움직임 벡터 사이의 관계를 확인하고, 상기 관계가 미리 정해진 조건을 만족하는 지에 대한 정보만을 부호화한다. 이에 대응하여, 본 발명의 복호화 과정에서는 미리 정해진 조건을 만족하는 지에 대한 정보를 확인하고, 미리 정해진 조건을 적용함으로써, 매크로블록의 움직임 벡터를 복원한다.Therefore, in the encoding method of the present invention, the relationship between the motion vector of the neighboring macroblock and the motion vector of the current macroblock is checked, and only information on whether the relationship satisfies a predetermined condition is encoded. Correspondingly, in the decoding process of the present invention, information on whether a predetermined condition is satisfied is checked, and the motion vector of the macroblock is restored by applying the predetermined condition.

도 2는 본 발명의 일 실시예에 따른 움직임 정보 부호화 장치가 적용되는 동영상 부호화 장치의 블록도이다. 도 2를 참조하면, 본 발명의 일 실시예의 움직임 정보 부호화 장치가 적용되는 동영상 부호화 장치는 움직임 추정부(110), 움직임 보상부(120), 감산부(125), 참조픽처 메모리(130), 잉여 데이터 부호화부(140), 잉여 데이터 복호화부(150), 가산부(155), 엔트로피 부호화부(160), 움직임 벡터 부호화부(170), 제어부(180), 및 멀티플렉서(190)를 포함한다.2 is a block diagram of a video encoding apparatus to which a motion information encoding apparatus according to an embodiment of the present invention is applied. 2, a video encoding apparatus to which a motion information encoding apparatus of an embodiment of the present invention is applied includes a motion estimator 110, a motion compensator 120, a subtractor 125, a reference picture memory 130, The redundant data encoder 140, the redundant data decoder 150, the adder 155, the entropy encoder 160, the motion vector encoder 170, the controller 180, and the multiplexer 190 are included. .

움직임 추정부(110)는 상기 제어부(180)로부터 도 1에 도시된 움직임 벡터 예측 모드(MVPM) 중, 어느 하나의 모드를 입력받는다. 그리고, 참조픽처 메모리(130)에 저장된 적어도 하나의 참조픽쳐를 참조하여, 입력받은 상기 모드(MVPM)에 대응하는 단위(예컨대, 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 화소 단위)로 움직임 벡터를 탐색한다. 이때, 움직임 추정부(110)는 상기 제어부(180)로부터 참조픽처를 지시하는 정보를 직접 제공받고, 제공받은 상기 참조픽처를 참조하여 움직임 벡터를 탐색할 수 있다. 또한, 이에 대한 대안으로서, 움직임 추정부(110)는 상기 제어부(180)로부터 단순히 움직임 벡터 예측 모드(MVPM)만을 입력받을 수 있다. 이 경우, 움직임 추정부(110)는 현재의 픽처와 시각(time)적으로 주변에 위치한 픽처들에 대해 각각 에러값을 연산하고, 최소의 에러값을 갖는 참조픽처를 기준으로 움직임 벡터를 탐색한다. 그리고, 움직임 추정부(110)는 움직임 벡터와 참조픽처에 대한 인덱스정보를 함께 제공한다.The motion estimator 110 receives one of the motion vector prediction modes (MVPM) shown in FIG. 1 from the controller 180. In addition, referring to at least one reference picture stored in the reference picture memory 130, a unit corresponding to the received mode (MVPM) (for example, 16 × 16, 16 × 8, 8 × 16, 8 × 8, 8). Motion vectors are searched in units of 4x4, 4x8 and 4x4 pixels). In this case, the motion estimation unit 110 may directly receive information indicating a reference picture from the control unit 180 and search for a motion vector by referring to the received reference picture. In addition, as an alternative thereto, the motion estimator 110 may simply receive only a motion vector prediction mode (MVPM) from the controller 180. In this case, the motion estimator 110 calculates an error value with respect to a current picture and pictures that are located in a timely vicinity, and searches for a motion vector based on a reference picture having a minimum error value. . The motion estimation unit 110 also provides the motion vector and the index information of the reference picture.

또한, 움직임 추정부(110)는 상기 제어부(180)로부터 부단위의 예측 움직임 벡터(PMV)의 연산을 지시받고, 예측 움직임 벡터(PMV)를 연산한다. 그리고, 움직임 추정부(110)는 연산된 결과, 즉 예측 움직임 벡터(PMV)를 움직임 보상부(120)에 제공한다. 예컨대, 움직임 추정부(110)는 상기 제어부(180)로부터 8×8 화소 단위의 예측 움직임 벡터(PMV)의 연산을 지시받고, 현재의 매크로블록(CMB)에 대해 8×8 화소 단위의 예측 움직임 벡터(PMV)를 연산한다.In addition, the motion estimation unit 110 is instructed by the control unit 180 to calculate the subunit prediction motion vector PMV, and calculates the prediction motion vector PMV. The motion estimator 110 provides the calculated result, that is, the predicted motion vector PMV, to the motion compensator 120. For example, the motion estimation unit 110 is instructed to calculate a prediction motion vector (PMV) in units of 8 × 8 pixels from the controller 180, and predicts motion in units of 8 × 8 pixels with respect to the current macroblock (CMB). Calculate the vector PMV.

비록, 본 발명의 일 실시예에서, 움직임 추정부(110)가 예측 움직임 벡터(PMV)를 연산하는 것을 예시하였으나, 본 발명이 이를 한정하는 것은 아니며, 예컨대, 제어부(180) 또는 움직임 벡터 부호화부(170)가 예측 움직임 벡터(PMV)를 연산하는 것도 가능하다.Although, in the embodiment of the present invention, the motion estimator 110 illustrates calculating the predicted motion vector (PMV), the present invention is not limited thereto. For example, the controller 180 or the motion vector encoder It is also possible for 170 to calculate the predicted motion vector PMV.

움직임 보상부(120)는 움직임 추정부(110)로부터 움직임 벡터와 참조픽처에 대한 인덱스정보를 수신한다. 그리고, 상기 참조픽처에 움직임 벡터를 적용하여 매크로블록을 생성한다.The motion compensator 120 receives index information about a motion vector and a reference picture from the motion estimator 110. The macroblock is generated by applying a motion vector to the reference picture.

감산부(125)는 입력 매크로블록을 픽쳐간 예측 부호화하는 경우, 움직임 보상부(120)로부터 입력 매크로블록에 대응하는 참조 픽쳐 내의 매크로블록을 입력받아, 입력 매크로블록과의 차분 연산을 수행하여 잉여(residue)데이터를 출력한다.The subtractor 125 receives the macroblock in the reference picture corresponding to the input macroblock from the motion compensator 120 and performs the difference operation with the input macroblock when the input macroblock is predictively encoded between the pictures. (residue) Print data.

잉여 데이터 부호화부(140)는 감산부(125)로부터 출력된 잉여 데이터를 DCT 변환 및 양자화 연산한 후, 부호화된 데이터로 변환한다. 그리고, 잉여 데이터 복호화부(150)는 부호화된 잉여 데이터를 다시 복원하여 출력한다.The surplus data encoder 140 converts the surplus data output from the subtractor 125 into DCT transform and quantization operation and then converts the surplus data into encoded data. The surplus data decoder 150 restores the encoded surplus data and outputs the encoded surplus data.

가산부(155)는 움직임 보상부(120)를 통해 복원된 매크로블록과 잉여 데이터 복호화부(150)를 통해 출력된 잉여 데이터를 결합하여 복원된 영상을 생성한 후, 참조픽처 메모리(130)에 저장한다.The adder 155 combines the macroblock reconstructed by the motion compensator 120 and the surplus data output through the surplus data decoder 150 to generate a reconstructed image and then stores the reconstructed image in the reference picture memory 130. Save it.

엔트로피 부호화부(160)는 잉여 데이터 부호화부(140)로부터 출력되는 잉여 데이터를 엔트로피 부호화하여 출력하고, 움직임 벡터 부호화부(170)는 움직임 추정부(110)로부터 출력되는 움직임 벡터 및 상기 움직임 벡터의 참조픽처에 대한 정보를 부호화하여 출력한다.The entropy encoder 160 entropy encodes and outputs the surplus data output from the surplus data encoder 140, and the motion vector encoder 170 outputs the motion vector and the motion vector output from the motion estimator 110. Information about a reference picture is encoded and output.

한편, 제어부(180)는 상기 각 기능부들의 동작을 총괄적으로 제어한다. 특히, 제어부(180)는 현재 매크로블록(CMB)의 움직임 벡터가 미리 정해진 조건을 만족하는지를 확인하고, 움직임 벡터 부호화 모드(MVCM)를 결정한다. Meanwhile, the controller 180 collectively controls the operations of the respective functional units. In particular, the controller 180 determines whether the motion vector of the current macroblock (CMB) satisfies a predetermined condition, and determines a motion vector encoding mode (MVCM).

즉, 제어부(180)는 현재 매크로블록(CMB)에 대해서, 도 1에 도시된 움직임 벡터 예측 모드(MVPM)에 대응하는 단위로 각각 움직임 벡터의 탐색을 수행하도록 제어한다. 그리고, 탐색된 상기 움직임 벡터에 기초하여 움직임 보상된 픽처를 생성하도록 움직임 추정부(110), 움직임 보상부(120), 및 참조픽처 메모리(130)의 동작을 제어한다. That is, the controller 180 controls the current macroblock CMB to search for the motion vector in units corresponding to the motion vector prediction mode MVPM shown in FIG. 1. The operation of the motion estimator 110, the motion compensator 120, and the reference picture memory 130 is controlled to generate a motion compensated picture based on the found motion vector.

이러한 제어를 통해, 제어부(180)는 미리 정해진 조건의 기준이 되는 데이터들을 획득한다. 그리고, 획득한 데이터들이 미리 정해진 조건을 만족하는 경우, 제어부(180)는 별도의 움직임 벡터의 정보 없이 움직임 벡터 정보의 생략을 지시하는 모드를 멀티플렉서(190)에 제공한다. 여기서, 미리 정해진 조건은 예측 움직임 벡터(PMV)에 기초한 코스트가 최소의 코스트를 갖는 움직임 벡터 예측모드(MVPM)에 기초한 코스트보다 상대적으로 더 적은 값을 갖는 조건일 수 있다. 따라서, 제어부(180)는 상기 미리 정해진 조건의 기준이 되는 데이터로서, 현재 매크로블록(CMB)의 원본 영상과 움직임 보상된 매크로블록 사이의 코스트를 연산 및 비교한 결과를 획득한다. Through such control, the controller 180 obtains data that is a criterion of a predetermined condition. In addition, when the obtained data satisfies a predetermined condition, the controller 180 provides the multiplexer 190 with a mode for instructing to omit motion vector information without information of a separate motion vector. Here, the predetermined condition may be a condition in which the cost based on the predicted motion vector PMV has a value that is relatively smaller than the cost based on the motion vector prediction mode MVPM having the minimum cost. Therefore, the controller 180 obtains a result of calculating and comparing the cost between the original image of the current macroblock (CMB) and the motion compensated macroblock as data that is a criterion of the predetermined condition.

멀티플렉서(190)는 엔트로피 부호화된 데이터, 움직임 벡터 예측 모드, 및 부호화된 움직임 벡터에 대한 정보를 정렬하여 비트스트림을 출력한다.The multiplexer 190 aligns the information about the entropy coded data, the motion vector prediction mode, and the coded motion vector, and outputs a bitstream.

전술한 본 발명의 일 실시예에 따른 부호화 장치는 H.264/AVC 표준에 기초하여, 인트라 예측부, 디블록킹 필터 등을 더 포함할 수 있다. 또한, 잉여 데이터 부호화부(140) 및 잉여 데이터 복호화부(150)는 H.264/AVC 표준에 기초하여, 잉여 데이터의 DCT 변환 및 양자화(역 DCT 변환 및 역 양자화) 연산뿐 아니라, 특정 픽처(예컨대, I픽처)에 대한 DCT 변환 및 양자화(역 DCT 변환 및 역 양자화) 연산을 더 수행할 수도 있다. 나아가, 본 발명의 일 실시예에 따른 부호화 장치는 본 발명의 움직임 벡터 부호화 뿐 아니라, H.264/AVC 표준에 기초한 영상 데이터의 부호화를 더 수행할 수 있다.The encoding apparatus according to the embodiment of the present invention described above may further include an intra predictor, a deblocking filter, and the like based on the H.264 / AVC standard. In addition, the redundant data encoder 140 and the redundant data decoder 150 may not only perform DCT transform and quantization (inverse DCT transform and inverse quantization) of redundant data, but also specific pictures (based on the H.264 / AVC standard). For example, a DCT transform and quantization (inverse DCT transform and inverse quantization) operation on an I picture may be further performed. Furthermore, the encoding apparatus according to an embodiment of the present invention may further perform encoding of image data based on the H.264 / AVC standard as well as motion vector encoding of the present invention.

이하에서는, 상기 제어부(180), 움직임 추정부(110), 움직임 보상부(120), 및 참조픽처 메모리(130)의 동작을 중심으로 본 발명의 특징에 따른 움직임 벡터 부호화 방법을 설명한다.Hereinafter, a motion vector encoding method according to an aspect of the present invention will be described based on the operations of the controller 180, the motion estimator 110, the motion compensator 120, and the reference picture memory 130.

도 3은 본 발명의 일 실시예에 따른 움직임 벡터 정보의 부호화 방법의 순서를 도시하는 흐름도이다. 도 3을 참조하면, 210단계에서는 우선 부호화단위의 블록, 예컨대 매크로블록을 입력받는다.3 is a flowchart illustrating a procedure of a method of encoding motion vector information according to an embodiment of the present invention. Referring to FIG. 3, in operation 210, a block of a coding unit, for example, a macroblock, is first received.

다음으로, 220단계에서는 움직임 추정 및 움직임 보상을 통한 예측을 수행하여, 최적의 코스트(Cost)를 갖는 움직임 벡터 예측모드(MVPM)를 선택한다. 즉, 상기 제어부(180)는 도 1에 도시된 움직임 벡터 예측모드(MVPM)들, 즉 SKIP, P16×16, P16×8, P8×16, P8×8, P8×4, P4×8, P4×4 모드를 순차적으로 움직임 추정부(110)에 제공하고, 움직임 추정에 참조될 참조픽처가 저장된 위치에 대한 정보를 제공한다. 그리고, 동시에 움직임 추정부(110)의 동작을 지시한다. 그러면, 움직임 추정부(110)는 각각의 모드에 대해 움직임 벡터를 탐색하고, 움직임 벡터 예측모드(MVPM), 추정된 움직임 벡터 및 참조픽처에 대한 인덱스를 움직임 보상부(120)에 제공한다. 이에 대응하여 움직임 보상부(120)는 움직임 벡터 및 참조픽처를 이용하여 재구성된 매크로블록을 생성한다. 상기 재구성된 매크로블록은 감산부(125), 잉여 데이터 부호화부(140), 잉여 데이터 복호화부(150)를 순차적으로 통과하게 되고, 이를 통해 잉여 데이터가 생성된다. 상기 재구성된 매크로블록과 잉여 데이터는 가산부(155)로 전달되어 조합되고, 복원된 제1매크로블록이 생성된다. 결국, SKIP, P16×16, P16×8, P8×16, P8×8, P8×4, P4×8, P4×4 모드 각각에 대한 제1매크로블록이 생성된다. 그리고, 제어부(180)는 최종적으로 상기 모드들 각각의 제1매크로블록과 원본의 매크로블록 사이의 코스트를 연산한다. 그리고, 연산된 코스트들 중 가장 작은 값을 갖는 코스트를 제1코스트로 설정한다.Next, in step 220, prediction through motion estimation and motion compensation is performed to select a motion vector prediction mode (MVPM) having an optimal cost. In other words, the controller 180 may determine the motion vector prediction modes (MVPMs) illustrated in FIG. 1, that is, SKIP, P16 × 16, P16 × 8, P8 × 16, P8 × 8, P8 × 4, P4 × 8, and P4. The x4 mode is sequentially provided to the motion estimation unit 110, and information about a position where a reference picture to be referred to for motion estimation is stored is provided. At the same time, the operation of the motion estimation unit 110 is instructed. Then, the motion estimation unit 110 searches for a motion vector for each mode, and provides the motion compensation unit 120 with an index for a motion vector prediction mode (MVPM), an estimated motion vector, and a reference picture. In response, the motion compensator 120 generates a reconstructed macroblock using a motion vector and a reference picture. The reconstructed macroblock sequentially passes through the subtractor 125, the redundant data encoder 140, and the redundant data decoder 150, thereby generating redundant data. The reconstructed macroblock and surplus data are transferred to the adder 155, combined, and a reconstructed first macroblock is generated. As a result, a first macroblock for each of the SKIP, P16 × 16, P16 × 8, P8 × 16, P8 × 8, P8 × 4, P4 × 8, and P4 × 4 modes is generated. The controller 180 finally calculates a cost between the first macroblock of each of the modes and the macroblock of the original. Then, the cost having the smallest value among the calculated costs is set as the first cost.

다음으로, 제어부(180)는 미리 정의된 바에 따라, 본 발명의 부호화 방법에 적용할 참조픽처를 설정(230단계)하고, 상기 참조픽처에 대한 인덱스를 움직임 보상부(120)로 전달할 것을 지시한다.Next, the controller 180 sets a reference picture to be applied to the encoding method of the present invention (step 230) and instructs to transfer the index of the reference picture to the motion compensation unit 120, as previously defined. .

바람직하게, 미리 정의된 바에 따른 상기 참조픽처는 참조픽처 메모리(130)에 저장된 픽처 중, 가장 최근에 저장된 픽처(예컨대, 레퍼런스 인덱스가 0인 픽처)일 수 있다.Preferably, the reference picture as previously defined may be the most recently stored picture (eg, a picture having a reference index of 0) among pictures stored in the reference picture memory 130.

240단계는 제어부(180) 및 움직임 추정부(110)를 통해 수행될 수 있다. 제어부(180)는 부단위의 예측 움직임 벡터(PMV)를 연산할 것을 움직임 추정부(110)에 지시한다. 그러면, 움직임 추정부(110)는 주변에 이웃한 부단위(예컨대, 8×8 화소 단위의 블록)를 참조하여, 매크로블록에 포함된 부단위들에 대한 예측 움직임 벡터(PMV)를 연산한다.Operation 240 may be performed through the controller 180 and the motion estimator 110. The controller 180 instructs the motion estimator 110 to calculate the subunit predicted motion vector PMV. Then, the motion estimation unit 110 calculates a predicted motion vector (PMV) for the subunits included in the macroblock by referring to neighboring subunits (for example, a block of 8 × 8 pixel units).

예컨대, 도 4를 참조하면, 현재의 매크로블록이 8×8 화소 단위의 4개의 부단위(21,22,23,24)를 포함하는 경우, 240단계에서는 부단위 X1, X2, X3, X4(21,22,23,24)에 대한 예측 움직임 벡터(PMV)를 연산한다. 즉, 부호화할 매크로블록의 첫 번째 X1블록(21)에 이웃한 주변 부단위들인 좌측 A블록(25), 상측 B블록(26), 우상측 C블록(27)의 움직임 벡터를 각각, MVA, MVB, MVC라고 하면, X1블록(21)의 예측 움직임 벡터(PMV)의 값(PMVX1)은 하기의 수학식 1의 연산을 통해 획득한다. 예측 움직임 벡터(PMV)의 연산은 벡터의 성분값(x 성분 및 y 성분)에 대해 각각 독립적으로 수행된다.For example, referring to FIG. 4, when the current macroblock includes four subunits 21, 22, 23, and 24 of 8 × 8 pixel units, in step 240, subunits X 1 , X 2 , X 3 Compute a predicted motion vector (PMV) for X 4 (21,22,23,24). That is, the motion vectors of the left A block 25, the upper B block 26, and the right upper C block 27 which are neighboring subunits neighboring the first X 1 block 21 of the macroblock to be encoded are MV, respectively. A , MV B , and MV C , the value PMV X1 of the predicted motion vector PMV of the X 1 block 21 is obtained through the calculation of Equation 1 below. The calculation of the predictive motion vector PMV is performed independently of each component value (x component and y component) of the vector.

도 4의 두 번째 부단위인 X2에 대한 인접 블록들도 마찬가지의 기준에 기초하여, 좌측 블록은 X1블록(21), 상측 블록은 C블록(27), 우상측 블록은 E블록(29)이 된다. 이러한 블록들의 움직임 벡터를 각각 MVX1, MVC, MVE라고 하면 X2 블록(22)의 예측 움직임 벡터(PMVX2)는 하기의 수학식 2의 연산을 통해 획득된다. 또한 부단위인 X3블록(23)에 대해서도 동일한 방법으로 하기의 수학식 3에 따라 예측 움직임 벡터(PMVX3)를 연산한다.The neighboring blocks for X 2 , which is the second subunit of FIG. 4, are based on the same criteria. The left block is the X 1 block 21, the upper block is the C block 27, and the right upper block is the E block 29. ) When the motion vectors of the blocks are MV X1 , MV C , and MV E , respectively, the predicted motion vector PMV X2 of the X 2 block 22 is obtained through the calculation of Equation 2 below. In addition, the prediction motion vector PMV X3 is calculated according to Equation 3 below with respect to the X 3 block 23 which is a subunit.

비록, 본 발명이 일 실시예에 따른 움직임 추정부(110)는 예측 움직임 벡터(PMV)를 현재의 부단위의 좌측, 상부측, 우상측에 위치한 블록의 움직임 벡터를 이용하여 연산하는 것을 예시하였으나, 본 발명이 이를 한정하는 것은 아니다. 예컨대, X4블록(24)과 같이 우상측에 위치한 블록의 움직임 벡터를 획득할 수 없는 경우, 우상측에 위치한 블록의 움직임 벡터를 이용하는 것에 대한 대안으로서 좌상측에 위치한 블록(즉, X1블록(21))의 움직임 벡터를 이용하는 것도 가능하다. 이 경우, X4 블록(24)의 예측 움직임 벡터(PMVX2)는 하기의 수학식 4의 연산을 통해 획득될 수 있다.Although the present invention exemplarily illustrates that the motion estimation unit 110 calculates a predicted motion vector (PMV) using motion vectors of blocks located on the left side, the upper side, and the upper right side of the current subunit. However, the present invention is not limited to this. For example, if the motion vector of the block located on the upper right side cannot be obtained, such as the X 4 block 24, the block located on the upper left side (ie, the X 1 block) is an alternative to using the motion vector of the block located on the upper right side. It is also possible to use the motion vector of (21). In this case, the predicted motion vector PMV X2 of the X 4 block 24 may be obtained through the calculation of Equation 4 below.

나아가, 비록, 본 발명이 일 실시예에 따른 움직임 추정부(110)는 주변에 위치한 부단위의 중간값으로 연산하는 것을 예시하였으나, 본 발명이 이를 한정하는 것은 아니다. 예컨대, 평균값 연산, 움직임 벡터 경쟁 등의 다양한 방법을 통해 예측할 수 있다.Further, although the present invention illustrates that the motion estimation unit 110 calculates a median value of sub-units located in the vicinity, the present invention is not limited thereto. For example, the prediction may be performed through various methods such as an average value calculation and a motion vector competition.

한편, 250단계에서는 우선 움직임 보상부(120)가 움직임 추정부(110)로부터 수신한 예측 움직임 벡터(PMVX1, PMVX2, PMVX3, PMVX4)를 이용하여 제2매크로블록을 생성한다. 이때, 움직임 보상에 요구되는 참조픽처에 대한 인덱스는, 미리 정해진 바에 따라 제어부(180)로부터 수신한다.In operation 250, the motion compensator 120 first generates a second macroblock using the predicted motion vectors PMV X1 , PMV X2 , PMV X3 , and PMV X4 received from the motion estimator 110. In this case, the index for the reference picture required for the motion compensation is received from the controller 180 as previously determined.

260단계에서, 제어부(180)는 상기 제2매크로블록과 원본 매크로블록 사이의 코스트(제2코스트)를 연산한다. 이때, 연산된 상기 코스트는 제어부(180)로 제공된다.In operation 260, the controller 180 calculates a cost (second cost) between the second macroblock and the original macroblock. In this case, the calculated cost is provided to the controller 180.

270단계에서, 제어부(180)는 220단계를 수행하는 과정에서 발생된 제1코스트 및 260단계에서 발생된 제2코스트를 서로 비교한다.In step 270, the controller 180 compares the first cost generated in the step 220 and the second cost generated in step 260.

만약, 상기 제2코스트 값이 상기 제1코스트보다 상대적으로 더 작은 값을 지시하는 경우(270-아니오), 제어부(180)는 미리 정해진 조건을 만족하는 것으로 판단하고, 움직임 벡터 부호화 모드(MVCM)를 부단위 움직임 벡터 생략 모드로 결정한다. 그리고, 제어부(180)는 별도의 움직임 벡터에 대한 정보 없이 움직임 벡터 부호화 모드(MVCM)(즉, 부단위 움직임 벡터 생략 모드)를 지시하는 식별자만을 멀티플렉서(190)로 제공한다(300단계). 이에 따라, 멀티플렉서(190)는 움직임 벡터에 대한 정보 없이, 부단위 움직임 벡터 생략 모드를 지시하는 식별자만을 포함하여 부호화 스트림을 생성하게 된다(310단계).If the second cost value indicates a value smaller than the first cost (270-No), the controller 180 determines that a predetermined condition is satisfied, and the motion vector encoding mode (MVCM) is performed. Is determined as the sub-unit motion vector skip mode. The controller 180 provides only the identifier indicating the motion vector encoding mode (MVCM) (that is, the sub-unit motion vector skipping mode) to the multiplexer 190 without information on a separate motion vector (step 300). Accordingly, the multiplexer 190 generates an encoded stream including only an identifier indicating a sub-motion vector skip mode without information on the motion vector (step 310).

바람직하게, 상기 미리 정해진 조건은 부단위의 예측 움직임 벡터(PMV)가 부단위로 탐색된 벡터와 동일한 값으로 이루어지는 조건일 수 있다. 이에 대응하여, 본 발명의 실시예에 따른 부호화 방법은 270단계와 300단계 사이에, 부단위의 예측 움직임 벡터(PMV)가 부단위로 탐색된 벡터와 동일한 값으로 이루어졌는지를 확인하는 과정(280단계)을 더 포함할 수 있다(도 5참조).Preferably, the predetermined condition may be a condition in which the predicted motion vector PMV in subunits has the same value as the vector searched in subunits. Correspondingly, the encoding method according to the embodiment of the present invention checks whether the subunit prediction motion vector (PMV) has the same value as the sub-unit searched vector between steps 270 and 300 (280). Step) may be further included (see FIG. 5).

더욱 바람직하게, 상기 미리 정해진 조건은 상기 두 가지 조건을 포함하며, 부단위의 예측 움직임 벡터의 참조픽처가 모두 동일한 참조픽처로 이루어지는 조건일 수 있다. 이에 대응하여, 본 발명의 실시예에 따른 부호화 방법은 280단계와 300단계 사이에, 부단위의 예측 움직임 벡터의 참조픽처가 모두 동일한 참조픽처로 이루어졌는지를 확인하는 과정(290단계)을 더 포함할 수 있다(도 6참조).More preferably, the predetermined condition may include the two conditions, and may be a condition in which all of the reference pictures of the sub-prediction motion vectors are the same reference picture. Correspondingly, the encoding method according to the embodiment of the present invention further includes a step (step 290) of checking between step 280 and step 300 whether all reference pictures of the sub-prediction motion vectors are made of the same reference picture. (See FIG. 6).

상기 280 및 290단계는 제어부(180)를 통해 수행될 수 있다.Steps 280 and 290 may be performed through the controller 180.

한편, 상기 220단계에서 상기 제1코스트가 상기 제2코스트보다 상대적으로 더 적을 경우, 제어부(180)는 미리 정해진 조건을 만족하지 않는 것으로 판단한다. 그리고 제어부(180)는 움직임 벡터 부호화 모드(MVCM)를 상기 제1코스트에 대응하는 움직임 벡터 예측 모드로 결정하고, 상기 움직임 벡터 부호화 모드(MVCM)(즉, 상기 제1코스트에 따른 움직임 벡터 예측 모드)에 대응하는 식별자를 생성한다(320단계). On the other hand, if the first cost is relatively less than the second cost in step 220, the controller 180 determines that a predetermined condition is not satisfied. The controller 180 determines a motion vector coding mode (MVCM) as a motion vector prediction mode corresponding to the first cost, and determines the motion vector coding mode (MVCM) (that is, a motion vector prediction mode according to the first cost). In step 320, an identifier corresponding to (a) is generated.

다음으로, 제어부(180)는 멀티플렉서(190)로 움직임 벡터 부호화 모드(MVCM)를 지시하는 식별자를 제공함과 동시에, 움직임 벡터 부호화부(170)로 상기 제1코스트에 대응하는 움직임 벡터 및 상기 움직임 벡터의 참조픽처에 대한 정보를 부호화하여 출력할 것을 지시하고(330단계), 잉여 데이터 부호화부(140)로 상기 움직임 벡터에 기초하여 복원된 매크로블록의 잉여 데이터를 부호화하여 출력할 것을 지시한다(340단계). 그러면, 멀티플렉서(190)는 상기 움직임 벡터 부호화 모드(MVCM)를 지시하는 식별자, 움직임 벡터, 상기 움직임 벡터의 참조픽처에 대한 정보, 및 잉여 데이터를 조합하여 부호화 스트림을 생성하게 된다(350단계).Next, the controller 180 provides the multiplexer 190 with an identifier indicating a motion vector encoding mode (MVCM), and at the same time, the motion vector encoder 170 motion vector corresponding to the first cost and the motion vector. It is instructed to encode and output the information about the reference picture of (step 330), and instructs the redundant data encoder 140 to encode and output the excess data of the reconstructed macroblock based on the motion vector (340). step). Then, the multiplexer 190 generates an encoded stream by combining an identifier indicating the motion vector coding mode (MVCM), a motion vector, information on a reference picture of the motion vector, and surplus data (step 350).

예컨대, 상기 움직임 벡터 부호화 모드(MVCM)를 지시하는 식별자는 하기의 표 1과 같이 정의될 수 있다.For example, an identifier indicating the motion vector encoding mode (MVCM) may be defined as shown in Table 1 below.

mb_typemb_type codecode No. of bitsNo. of bits Name of mb_typeName of mb_type 00 "1""One" 1One P16×16P16 × 16 1One "010""010" 33 P8×8 Skip MVP8 × 8 Skip MV 22 "011""011" 33 P16×8P16 × 8 33 "00100""00100" 55 P8×16P8 × 16 44 "00101""00101" 55 P8×8P8 × 8 55 "00110""00110" 55 P8×8 ref0P8 × 8 ref0

mb_type이 "0"이면 부호화된 움직임 벡터와 관련된 데이터가 있으며, 이때 움직임 벡터 부호화 모드(MVCM)는 P16×16 예측 모드임을 지시한다. 이 경우, 제어부(180)는 320단계에서 움직임 벡터 부호화 모드(MVCM)의 식별자를 "1"로 설정하며, 330 내지 350 단계를 통해, 움직임 벡터, 상기 움직임 벡터의 참조픽처에 대한 정보, 및 잉여 데이터를 조합하여 부호화 스트림을 생성하게 된다.If mb_type is "0", there is data related to the encoded motion vector, and this indicates that the motion vector encoding mode (MVCM) is a P16x16 prediction mode. In this case, the controller 180 sets the identifier of the motion vector encoding mode (MVCM) to “1” in step 320, and in step 330 to 350, the motion vector, information about the reference picture of the motion vector, and the surplus The data is combined to generate an encoded stream.

mb_type이 "2"이면 부호화된 움직임 벡터와 관련된 데이터가 있으며, 이때 움직임 벡터 부호화 모드(MVCM)는 P16×8 예측 모드임을 지시한다. 이 경우, 제어부(180)는 320단계에서 움직임 벡터 부호화 모드(MVCM)의 식별자를 "011"로 설정하며, 330 내지 350 단계를 통해, 움직임 벡터, 상기 움직임 벡터의 참조픽처에 대한 정보, 및 잉여 데이터를 조합하여 부호화 스트림을 생성하게 된다.If mb_type is "2", there is data related to the encoded motion vector, and this indicates that the motion vector encoding mode (MVCM) is a P16x8 prediction mode. In this case, the controller 180 sets the identifier of the motion vector encoding mode (MVCM) to "011" in step 320, and through steps 330 to 350, information about the motion vector, the reference picture of the motion vector, and the surplus The data is combined to generate an encoded stream.

mb_type이 "3"이면 부호화된 움직임 벡터와 관련된 데이터가 있으며, 이때 움직임 벡터 부호화 모드(MVCM)는 P8×16 예측 모드임을 지시한다. 이 경우, 제어부(180)는 320단계에서 움직임 벡터 부호화 모드(MVCM)의 식별자를 "00100"으로 설정하며, 330 내지 350 단계를 통해, 움직임 벡터, 상기 움직임 벡터의 참조픽처에 대한 정보, 및 잉여 데이터를 조합하여 부호화 스트림을 생성하게 된다.If mb_type is "3", there is data related to the encoded motion vector, and this indicates that the motion vector encoding mode (MVCM) is a P8x16 prediction mode. In this case, the controller 180 sets the identifier of the motion vector encoding mode (MVCM) to "00100" in step 320, and in step 330 to 350, the motion vector, information on the reference picture of the motion vector, and the surplus The data is combined to generate an encoded stream.

mb_type이 "4"이면 부호화된 움직임 벡터와 관련된 데이터가 있으며, 이때 움직임 벡터 부호화 모드(MVCM)는 P8×8 예측 모드임을 지시한다. 이 경우, 제어부(180)는 320단계에서 움직임 벡터 부호화 모드(MVCM)의 식별자를 "00101"으로 설정하며, 330 내지 350 단계를 통해, 움직임 벡터, 상기 움직임 벡터의 참조픽처에 대한 정보, 및 잉여 데이터를 조합하여 부호화 스트림을 생성하게 된다.If mb_type is "4", there is data related to the encoded motion vector, and this indicates that the motion vector encoding mode (MVCM) is a P8x8 prediction mode. In this case, the controller 180 sets the identifier of the motion vector encoding mode (MVCM) to "00101" in step 320, and in step 330 to 350, the motion vector, information on the reference picture of the motion vector, and excess The data is combined to generate an encoded stream.

mb_type이 "5"이면 부호화된 움직임 벡터와 관련된 데이터가 있으며, 이때 움직임 벡터 부호화 모드(MVCM)는 P8×8모드이고, 또한 매크로블록에 포함된 부단위의 참조픽처가 참조픽처 메모리(130)에 저장된 픽처 중, 가장 최근에 저장된 픽처(예컨대, 레퍼런스 인덱스가 0인 픽처)임을 지시한다. 이 경우, 제어부(180)는 320단계에서 움직임 벡터 부호화 모드(MVCM)의 식별자를 "00110"으로 설정하며, 330 내지 350단계에서 상기 움직임 벡터의 참조픽처에 대한 정보없이, 움직임 벡터 및 잉여 데이터만을 조합하여 부호화 스트림을 생성하게 된다.If mb_type is "5", there is data related to the encoded motion vector, where the motion vector encoding mode (MVCM) is P8x8 mode, and the sub-pictures included in the macroblock are stored in the reference picture memory 130. Among the stored pictures, this indicates that the most recently stored picture (eg, a picture having a reference index of 0). In this case, the controller 180 sets the identifier of the motion vector encoding mode (MVCM) to "00110" in step 320, and in step 330 to 350 only the motion vector and the surplus data without information on the reference picture of the motion vector. Combination generates an encoded stream.

한편, mb_type이 "1"이면 움직임 벡터 부호화 모드(MVCM)는 P8×8단위 생략 모드임을 지시한다. 이 경우, 제어부(180)는 300단계에서 움직임 벡터 부호화 모드(MVCM)의 식별자를 "010"로 설정하며, 310단계에서 별도의 움직임 벡터, 참조픽처에 대한 정보, 및 잉여 데이터에 대한 정보를 부호화할 필요없이 움직임 벡터 부호화 모드(MVCM)의 식별자, 즉 "010"만을 포함하여 부호화 스트림을 생성한다.On the other hand, when mb_type is "1", it indicates that the motion vector encoding mode (MVCM) is a P8 × 8 unit skip mode. In this case, the controller 180 sets the identifier of the motion vector encoding mode (MVCM) to “010” in step 300, and encodes information about a separate motion vector, reference picture information, and surplus data in step 310. The encoding stream is generated by including only the identifier of the motion vector encoding mode (MVCM), that is, "010".

따라서, 움직임 벡터 부호화 모드(MVCM)가 P8×8단위 생략 모드인 경우, 3비트의 움직임 벡터 부호화 모드(MVCM)의 식별자만을 통해 부호화가 가능하고, 부단위로 움직임 벡터를 설정함으로써 좀 더 정확하게 움직임 벡터를 부호화할 수 있다. Therefore, when the motion vector encoding mode (MVCM) is a P8x8 unit skipped mode, encoding is possible only through an identifier of the 3-bit motion vector encoding mode (MVCM), and motion is more precisely set by setting the motion vector in subunits. You can encode a vector.

결국, 본 발명의 움직임 벡터를 부호화하는 방법에 따르면, 부단위의 움직임 벡터가 미리 정해진 조건을 만족하는 경우, 움직임 벡터 정보를 부호화하여 전송할 필요없이, 하나의 움직임 벡터 부호화 모드(MVCM)만을 이용하여 부호화가 가능하다. 따라서, 부호화모드를 지시하는 식별자의 비트수를 최소화하면서 정확한 단위로 움직임 벡터를 부호화 할 수 있다.After all, according to the method of encoding a motion vector of the present invention, when a motion vector of a subunit satisfies a predetermined condition, only one motion vector encoding mode (MVCM) is used without having to encode and transmit motion vector information. Coding is possible. Therefore, the motion vector can be encoded in an accurate unit while minimizing the number of bits of the identifier indicating the encoding mode.

도 7은 본 발명의 일 실시예에 따른 움직임 정보 복호화 장치가 적용되는 동영상 복호화 장치를 나타내는 블록도이다. 도 7을 참조하면, 동영상 복호화 장치는 디멀티플렉서(410), 움직임 벡터 복호화부(420), 참조픽처 메모리(430), 움직임 예측부(440), 움직임 보상부(450), 엔트로피 복호화부(460), 잉여 데이터 복호화부(470), 가산부(475), 및 제어부(480)를 포함한다.7 is a block diagram illustrating a video decoding apparatus to which a motion information decoding apparatus according to an embodiment of the present invention is applied. Referring to FIG. 7, the video decoding apparatus includes a demultiplexer 410, a motion vector decoder 420, a reference picture memory 430, a motion predictor 440, a motion compensator 450, and an entropy decoder 460. And a redundant data decoding unit 470, an adding unit 475, and a control unit 480.

디멀티플렉서(410)는 부호화된 비트스트림을 파싱(parsing)하여, 우선적으로 움직임 벡터 부호화 모드(MVCM)를 지시하는 식별자를 획득하고, 이를 제어부(480)로 제공한다. 디멀티플렉서(410)는 움직임 벡터 부호화 모드(MVCM)가 부단위 움직임 벡터 생략 모드인 경우, 움직임 벡터에 대한 정보를 획득하지 않는다. 반면, 움직임 벡터 부호화 모드(MVCM)가 부단위 움직임 벡터 생략 모드가 아닌 경우, 디멀티플렉서(410)는 움직임 벡터 부호화 모드(MVCM) 이후에 수신된 데이터 스트림으로부터 부호화된 움직임 벡터, 상기 움직임 벡터의 참조픽처에 대한 정보, 및 부호화된 잉여 데이터를 획득한다. 그리고, 부호화된 움직임 벡터 및 상기 움직임 벡터의 참조픽처에 대한 정보는 움직임 벡터 복호화부(420)로 제공하고, 부호화된 잉여 데이터는 엔트로피 복호화부(460)로 제공한다.The demultiplexer 410 parses the encoded bitstream, first obtains an identifier indicating a motion vector encoding mode (MVCM), and provides the identifier to the controller 480. The demultiplexer 410 does not acquire information about a motion vector when the motion vector encoding mode MVCM is a sub-motion vector skip mode. On the other hand, when the motion vector encoding mode (MVCM) is not a sub-motion vector skipping mode, the demultiplexer 410 is a motion vector encoded from a data stream received after the motion vector encoding mode (MVCM), and a reference picture of the motion vector. Obtains information about and encoded redundant data. Information about the encoded motion vector and the reference picture of the motion vector is provided to the motion vector decoder 420, and the encoded surplus data is provided to the entropy decoder 460.

움직임 벡터 복호화부(420)는 디멀티플렉서(410)로부터 입력받은 데이터를 복호화하여 움직임 벡터 및 상기 움직임 벡터의 참조픽처에 대한 정보를 복원한다.The motion vector decoder 420 decodes the data received from the demultiplexer 410 to restore the motion vector and information on the reference picture of the motion vector.

움직임 예측부(440)는 주변 부단위의 움직임 벡터를 이용하여 예측 움직임 벡터를 연산한다. 예측 움직임 벡터의 연산은 부호화 과정에서 예측 움직임 벡터를 연산하는 방법과 동일하게 이루어지는 것이 바람직하다. 예컨대, 예측 움직임 벡터를 연산은 상기 수학식1 내지 4의 연산을 통해 수행될 수 있다.The motion predictor 440 calculates the predicted motion vector by using the motion vector of the peripheral subunit. The calculation of the predictive motion vector is preferably performed in the same manner as the method of calculating the predictive motion vector in the encoding process. For example, the calculation of the prediction motion vector may be performed through the calculation of Equations 1 to 4 above.

움직임 보상부(450)는 제어부(480)로부터 움직임 벡터 부호화 모드(MVCM)에 따른 부단위에 대응하는 움직임 벡터의 복원 단위를 제공받는다. 그리고, 상기 움직임 벡터 부호화 모드(MVCM)를 고려하여, 움직임 벡터 복호화부(420)로부터 제공받은 움직임 벡터를 상기 참조픽처에 적용하고, 부호화단위에 대응하는 단위로 영상정보를 복원한다.The motion compensator 450 receives a reconstruction unit of the motion vector corresponding to the subunit according to the motion vector encoding mode (MVCM) from the controller 480. The motion vector provided from the motion vector decoder 420 is applied to the reference picture in consideration of the motion vector coding mode (MVCM), and the image information is restored in a unit corresponding to the coding unit.

엔트로피 복호화부(460)는 압축된 비트스트림을 수신하여 엔트로피 복호화를 수행하여 양자화된 계수를 생성하고, 잉여 데이터 복호화부(470)는 양자화된 계수에 대한 역양자화 및 역변환을 수행하여 잉여 데이터를 복원한다. The entropy decoder 460 receives the compressed bitstream to perform entropy decoding to generate quantized coefficients, and the redundant data decoder 470 performs inverse quantization and inverse transformation on the quantized coefficients to restore the redundant data. do.

가산부(475)는 복원된 상기 잉여 데이터를 움직임 보상을 통해 복원된 상기 영상정보에 반영하여 최종적으로 영상정보를 복원한다.The adder 475 finally restores the image information by applying the reconstructed surplus data to the image information reconstructed through motion compensation.

한편, 제어부(480)는 상기 각 기능부들의 동작을 총괄적으로 제어하여 영상 복호화 장치의 전반적인 동작을 제어하는 기능을 수행한다. 특히, 제어부(480)는 디멀티플렉서(410)로부터 움직임 벡터 부호화 모드(MVCM)의 식별자를 수신하여, 부단위 움직임 벡터 생략 모드 인지를 확인한다. The controller 480 controls the overall operations of the image decoding apparatus by collectively controlling the operations of the functional units. In particular, the controller 480 receives the identifier of the motion vector coding mode (MVCM) from the demultiplexer 410 and checks whether the sub-vector is a motion vector skipping mode.

만약, 움직임 벡터 부호화 모드(MVCM)의 식별자가 부단위 움직임 벡터 생략 모드인 경우, 제어부(480)는 미리 정해진 조건에 따라 참조픽처에 대한 인덱스, 움직임 벡터를 움직임 보상부(450)에 제공하여 영상정보의 복원을 제어한다.If the identifier of the motion vector encoding mode (MVCM) is the sub-unit motion vector skipping mode, the controller 480 provides the motion compensation unit 450 with an index and a motion vector for the reference picture according to a predetermined condition. Control the restoration of information.

만약, 움직임 벡터 부호화 모드(MVCM)의 식별자가 부단위 움직임 벡터 생략 모드가 아닌 경우, 제어부(480)는 디멀티플렉서(410)를 제어하여, 움직임 벡터 부호화 모드(MVCM)의 식별자에 대응하는 움직임 벡터, 상기 움직임 벡터의 참조픽처에 대한 정보를 움직임 벡터 복호화부(420)로 제공하고, 잉여 데이터를 엔트로피 복호화부(460)로 제공하도록 한다. 그리고, 움직임 벡터 복호화부(420)의 동작을 제어하여 부호화된 움직임 벡터 및 상기 움직임 벡터의 참조픽처에 대한 정보를 복원하고, 엔트로피 복호화부(460) 및 잉여 데이터 복호화부(470)의 동작을 제어하여 부호화된 잉여 데이터를 복원하도록 한다. 또한, 복호화단위의 상기 움직임 벡터 및 참조픽처를 움직임 보상부(450)에 제공하여 영상정보의 복원을 제어한다.If the identifier of the motion vector encoding mode (MVCM) is not the sub-unit motion vector skipping mode, the controller 480 controls the demultiplexer 410 so that the motion vector corresponding to the identifier of the motion vector encoding mode (MVCM), Information about the reference picture of the motion vector is provided to the motion vector decoder 420, and surplus data is provided to the entropy decoder 460. The motion vector decoder 420 controls the operation of the encoded motion vector and the reference picture of the motion vector, and controls the operations of the entropy decoder 460 and the redundant data decoder 470. To recover the encoded redundant data. In addition, the motion vector and the reference picture of the decoding unit are provided to the motion compensator 450 to control the reconstruction of the image information.

전술한 본 발명의 일 실시예에 따른 복호화 장치는 H.264/AVC 표준에 기초하여, 인트라 보상부, 디블록킹 필터 등을 더 포함할 수 있다. 또한, 잉여 데이터 복호화부(470)는 H.264/AVC 표준에 기초하여, 잉여 데이터의 역 DCT 변환 및 역 양자화 연산뿐 아니라, 특정 픽처(예컨대, I픽처)에 대한 역 DCT 변환 및 역 양자화 연산을 더 수행할 수도 있다. 나아가, 본 발명의 일 실시예에 따른 복호화 장치는 본 발명의 움직임 벡터 복호화 뿐 아니라, H.264/AVC 표준에 기초하여 부호화된 영상 데이터의 복원을 더 수행할 수 있다.The decoding apparatus according to the embodiment of the present invention described above may further include an intra compensation unit, a deblocking filter, and the like based on the H.264 / AVC standard. In addition, the redundant data decoder 470, based on the H.264 / AVC standard, in addition to the inverse DCT transform and inverse quantization operation of the redundant data, the inverse DCT transform and inverse quantization operation for a specific picture (eg, I picture) You can also do more. Furthermore, the decoding apparatus according to an embodiment of the present invention may further perform reconstruction of image data encoded based on the H.264 / AVC standard as well as motion vector decoding of the present invention.

이하에서는, 전술한 구성요소를 참조하여, 본 발명에 따른 움직임 벡터 복호화 방법을 적용한 동영상 복원 과정을 설명한다.Hereinafter, a video reconstruction process to which the motion vector decoding method according to the present invention is applied will be described with reference to the above-described components.

도 8은 본 발명의 일 실시예에 따른 움직임 벡터 정보의 복호화 방법의 순서를 도시하는 흐름도이다. 도 8을 참조하면, 510단계에서 디멀티플렉서(410)는 비트스트림을 입력받고, 움직임 벡터 부호화 모드(MVCM)를 지시하는 식별자를 획득하여 제어부(480)에 제공한다. 8 is a flowchart illustrating a procedure of a method of decoding motion vector information according to an embodiment of the present invention. Referring to FIG. 8, in operation 510, the demultiplexer 410 receives a bitstream, obtains an identifier indicating a motion vector encoding mode (MVCM), and provides it to the controller 480.

520단계는 제어부(480)에 의해 수행된다. 520단계에서 제어부(480)는 움직임 벡터 부호화 모드(MVCM)를 지시하는 식별자를 확인하여, 움직임 벡터 부호화 모드(MVCM)를 지시하는 식별자가 부단위 움직임 벡터 생략 모드를 지시하는지를 확인한다.Operation 520 is performed by the controller 480. In operation 520, the controller 480 checks an identifier indicating a motion vector encoding mode (MVCM) and determines whether an identifier indicating a motion vector encoding mode (MVCM) indicates a sub-unit motion vector skipping mode.

한편, 부단위 움직임 벡터 생략 모드가 뜻하는 바는, 부호화기와 복호화기가 사전에 미리 인지하는 조건에 의하여 결정된다. 따라서, 복호화 과정에서는 미리 정해진 조건을 반영하여 부호화 단위의 영상을 복원하게 된다. 여기서, 미리 정해진 조건은, 부단위의 예측 움직임 벡터가 부단위로 탐색된 벡터와 동일한 값으로 이루어지고, 부단위의 예측 움직임 벡터의 참조픽처가 모두 동일한 참조픽처로 이루어지는 조건일 수 있다.On the other hand, the sub-unit motion vector omission mode is determined by a condition previously recognized by the encoder and the decoder in advance. Therefore, in the decoding process, the image of the coding unit is reconstructed by reflecting a predetermined condition. Here, the predetermined condition may be a condition in which the prediction motion vector of the sub-unit is the same value as the vector searched by the sub-unit, and the reference pictures of the prediction motion vectors of the sub-unit are all the same reference picture.

만약, 움직임 벡터 부호화 모드(MVCM)를 지시하는 식별자가 부단위 움직임 벡터 생략 모드를 지시하는 경우(520단계-예), 상기 미리 정해진 조건을 고려하여 부호화단위의 움직임 벡터와 참조픽처 인덱스를 복원하고, 복원된 상기 움직임 벡터를 참조픽처에 적용하여 움직임 보상을 수행한다. 이를 위해, 제어부(480)는 531, 533, 535단계의 수행을 위하여 움직임 보상부(450) 및 참조픽처 메모리(430)의 동작을 제어한다. 구체적으로, 제어부(480)는 참조픽처 메모리(430)로 상기 미리 정해진 조건에 대응하는 참조픽처를 움직임 보상부(450)로 제공하도록 제어한다(531단계). 그리고, 제어부(480)가 움직임 예측부(440)의 동작을 지시하면, 움직임 예측부(440)는 주변 부단위의 움직임 벡터를 이용하여 예측 움직임 벡터를 연산한 후, 움직임 보상부(450)로 제공하게 된다(533단계). 그러면, 움직임 보상부(450)는 상기 예측 움직임 벡터 및 참조픽처를 조합하여 부호화단위의 움직임 보상블록을 생성하여 영상을 복원하게 된다(535단계).If the identifier indicating the motion vector coding mode (MVCM) indicates the sub-unit motion vector skipping mode (step 520), the motion vector and the reference picture index of the coding unit are restored in consideration of the predetermined condition. The motion compensation is performed by applying the reconstructed motion vector to a reference picture. To this end, the controller 480 controls operations of the motion compensator 450 and the reference picture memory 430 to perform steps 531, 533, and 535. In detail, the controller 480 controls the reference picture memory 430 to provide a reference picture corresponding to the predetermined condition to the motion compensator 450 (operation 531). When the controller 480 instructs the operation of the motion predictor 440, the motion predictor 440 calculates the predicted motion vector by using the motion vector of the neighboring subunit, and then moves to the motion compensator 450. (533). In operation 535, the motion compensator 450 reconstructs an image by generating a motion compensation block of a coding unit by combining the predicted motion vector and the reference picture.

한편, 움직임 벡터 부호화 모드(MVCM)를 지시하는 식별자가 부단위 움직임 벡터 생략 모드를 지시하지 않는 경우(520단계-아니오), 제어부(480)는 541, 543, 및 545 단계의 수행을 위하여 움직임 벡터 복호화부(420), 참조픽처 메모리(430), 움직임 보상부(450), 엔트로피 복호화부(460), 잉여 데이터 복호화부(470), 가산부(475)의 동작을 제어한다. On the other hand, if the identifier indicating the motion vector coding mode (MVCM) does not indicate the sub-unit motion vector skipping mode (step 520-no), the controller 480 performs the motion vector to perform steps 541, 543, and 545. The operations of the decoder 420, the reference picture memory 430, the motion compensator 450, the entropy decoder 460, the redundant data decoder 470, and the adder 475 are controlled.

구체적으로, 541단계에서, 상기 제어부(480)는 움직임 벡터 복호화부(420)의 동작을 지시하고, 움직임 벡터 복호화부(420)는 디멀티플렉서(410)로부터 제공받은 부호화된 움직임 벡터 및 상기 움직임 벡터의 참조픽처를 지시하는 정보를 복원한 후, 참조픽처 메모리(430) 및 움직임 보상부(450)로 제공하게 된다.In detail, in step 541, the controller 480 instructs the operation of the motion vector decoder 420, and the motion vector decoder 420 of the coded motion vector and the motion vector received from the demultiplexer 410. After restoring the information indicating the reference picture, the information is provided to the reference picture memory 430 and the motion compensator 450.

그런 다음, 543단계에서, 제어부(480)는 움직임 벡터 부호화 모드(MVCM)에 대응하는 크기의 부단위를 고려하여 움직임 보상부(450)의 동작을 지시하고, 움직임 보상부(450)는 복원된 상기 움직임 벡터 및 참조픽처를 조합하여 부호화단위의 움직임 보상을 수행하고, 영상정보를 획득하게 된다.Next, in step 543, the controller 480 instructs the operation of the motion compensator 450 in consideration of a subunit of a size corresponding to the motion vector encoding mode MVCM, and the motion compensator 450 reconstructs the restored motion. The motion vector and the reference picture are combined to perform motion compensation of a coding unit, and to obtain image information.

다음으로, 545단계에서, 제어부(480)는 엔트로피 복호화부(460), 잉여 데이터 복호화부(470) 및 가산부(475)의 동작을 제어한다. 이에 대응하여, 엔트로피 복호화부(460)는 디멀티플렉서(410)로부터 엔트로피 부호화된 잉여 데이터를 제공받아 복원하고, 잉여 데이터 복호화부(470)는 복원된 상기 데이터를 복원하여 잉여 데이터를 획득하여 출력한다. 가산부(475)는 상기 잉여 데이터 및 움직임 보상된 영상정보를 조합하여 최종적으로 부호화단위의 영상정보를 복원하게 된다.Next, in step 545, the controller 480 controls the operations of the entropy decoder 460, the redundant data decoder 470, and the adder 475. In response, the entropy decoding unit 460 receives and restores the entropy-encoded surplus data from the demultiplexer 410, and the surplus data decoding unit 470 recovers the restored data to obtain and output the surplus data. The adder 475 combines the surplus data and the motion compensated image information to finally restore the image information of the coding unit.

본 발명의 일 실시예에서는 미리 정해진 조건으로서, 부호화단위의 부단위의 예측 움직임 벡터(PMV)를 미리 정해진 참조픽처에 적용하여 복원하고, 이렇게 복원된 결과가 부호화단위의 영상정보와 동일하거나 최소의 코스트를 갖는 것을 예시하였다.According to an embodiment of the present invention, as a predetermined condition, a prediction motion vector (PMV) of a subunit of a coding unit is applied to a predetermined reference picture, and the result of the reconstruction is equal to or smaller than the image information of the coding unit. It is illustrated having a cost.

본 발명의 일 실시예에서의 상기 참조픽처는 프레임 메모리 내에서 가장 최근에 저장된 픽처일 수 있다. 이 경우 상기 미리 정해진 조건은 예측 움직임 벡터(PMV)의 기준이 되는 참조픽처가 시각적(time)으로 현재의 픽처(CP) 바로 이전의 픽처로 모두 동일한 것으로 설정할 수 있다. 따라서, 부호화 과정에서는 상기 조건을 만족하는 경우, 조건의 만족에 대한 정보만을 부호화하고, 복호화 과정에서는 상기 조건을 고려하여, 별도의 참조픽처에 대한 정보 없이도 자체적으로 상기 부호화단위를 복원하는데 필요한 참조픽처를 획득할 수 있다.The reference picture in one embodiment of the present invention may be a picture most recently stored in the frame memory. In this case, the predetermined condition may be set such that all reference pictures, which are the reference of the prediction motion vector PMV, are the same as the pictures immediately before the current picture CP in time. Therefore, in the encoding process, if the condition is satisfied, only the information on the satisfaction of the condition is encoded, and in the decoding process, the reference picture required for reconstructing the coding unit itself without information on a separate reference picture is considered in consideration of the condition. Can be obtained.

또한, 상기 참조픽처는 참조픽처 메모리 내에서 저장된 어느 하나의 픽처일 수 있다. 이 경우 상기 미리 정해진 조건은 부호화단위의 예측 움직임 벡터(PMV)의 기준이 되는 픽처가 이미 부호화 또는 복호화된 픽처의 어느 한 픽처로서 모두 동일한 것으로 설정할 수 있다. 따라서, 부호화 과정에서는 상기 조건을 만족하는 경우, 조건의 만족에 대한 정보와 참조픽처의 위치를 소정의 단위(예컨대, 슬라이스 단위, 픽처 단위, GOP 단위, 시퀀스 단위등)마다 주기적으로 부호화하고, 복호화 과정에서는 상기 조건을 고려하여, 주기적으로 복원되는 참조픽처를 이용하여 복수의 부호화단위를 복원하는데 적용할 수 있다.Also, the reference picture may be any one picture stored in the reference picture memory. In this case, the predetermined condition may be set to be the same as any picture of a picture that is already encoded or decoded as a reference of the prediction motion vector (PMV) of the coding unit. Therefore, in the encoding process, when the condition is satisfied, the information on the satisfaction of the condition and the position of the reference picture are periodically encoded for each predetermined unit (eg, slice unit, picture unit, GOP unit, sequence unit, and the like) and decoded. In consideration of the above condition, the process may be applied to reconstruct a plurality of coding units using a reference picture that is periodically reconstructed.

나아가, 이러한 조건은 효율적인 부호화 및 복호화를 위해 다양하게 변경될 수 있음은 당연하다.Furthermore, it is natural that these conditions can be variously changed for efficient encoding and decoding.

본 발명에 따른 움직임 벡터 부호화 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.The motion vector encoding method according to the present invention can be embodied as computer readable codes on a computer readable recording medium. Computer-readable recording media include all kinds of recording devices that store data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical disk, and the like, and may also include those implemented in the form of carrier waves (eg, transmission over the Internet). do. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이상에서 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 수정 및 변형이 가능함은 물론이다.Although the present invention has been described above by means of limited embodiments and drawings, the present invention is not limited thereto, and various modifications and changes may be made by those skilled in the art to which the present invention pertains.

Claims (25)

부호화단위의 움직임 벡터에 대한 정보를 부호화하는 방법에 있어서,In the method of encoding information about a motion vector of a coding unit, 부호화단위를 적어도 두 개의 영역으로 분할한 부단위를 설정하고, 복수의 부단위에 대한 예측 움직임 벡터(PMV; Predictive Motion Vector)를 연산하는 과정과,Setting a subunit obtained by dividing a coding unit into at least two regions, and calculating a predictive motion vector (PMV) for a plurality of subunits; 상기 복수의 예측 움직임 벡터(PMV)가 미리 정해진 조건을 만족하는지를 확인하는 과정과,Checking whether the plurality of prediction motion vectors (PMVs) satisfy a predetermined condition; 상기 복수의 예측 움직임 벡터(PMV)가 상기 미리 정해진 조건을 만족하는 경우, 부단위 움직임 벡터의 생략을 지시하는 정보를 포함하여, 움직임 벡터에 대한 부호화 데이터를 생성하는 과정을 포함함을 특징으로 하는 움직임 벡터 정보의 부호화 방법.When the plurality of prediction motion vectors (PMVs) satisfy the predetermined condition, generating encoded data of the motion vector, including information indicating that the sub-unit motion vector is omitted. A method of encoding motion vector information. 제1항에 있어서,The method of claim 1, 복수의 움직임 벡터 예측 모드에 기초하여, 각각의 상기 모드에 따른 움직임 벡터를 추정하는 과정과,Estimating a motion vector according to each mode based on a plurality of motion vector prediction modes, 추정된 상기 움직임 벡터를 참조픽쳐에 적용하여 부호화단위의 영상정보를 복원하는 과정과,Restoring image information of a coding unit by applying the estimated motion vector to a reference picture; 복원된 상기 영상정보와 원본의 영상정보 사이의 잉여 데이터를 연산하고, 상기 잉여 데이터를 부호화 및 복호화하는 과정과,Calculating surplus data between the reconstructed image information and original image information, encoding and decoding the surplus data; 부호화 및 복호화된 상기 잉여 데이터를 복원된 영상에 적용하여, 재복원된 영상정보를 생성하는 과정과, Generating the reconstructed image information by applying the encoded and decoded surplus data to the reconstructed image; 재복원된 상기 영상정보와 원본의 영상정보 사이의 코스트를 연산하는 과정과,Calculating a cost between the reconstructed image information and the original image information; 복수의 움직임 벡터 예측 모드 중, 최소의 코스트를 갖는 모드를 선택하고, 상기 최소의 코스트를 제1코스트로 설정하는 과정과,Selecting a mode having a minimum cost among a plurality of motion vector prediction modes and setting the minimum cost as a first cost; 예측 움직임 벡터(PMV)를 참조픽처에 적용하여, 부호화단위의 영상정보를 복원하고, 복원된 상기 영상정보와 원본의 영상정보 사이의 제2코스트를 연산하는 과정을 더 포함하며,Applying a predictive motion vector (PMV) to a reference picture, reconstructing image information of a coding unit, and calculating a second cost between the reconstructed image information and the original image information, 상기 미리 정해진 조건은,The predetermined condition is 제1코스트보다 제2코스트가 상대적으로 더 작은 값을 갖는 조건인 것을 특징으로 하는 움직임 벡터 정보의 부호화 방법.A method of encoding motion vector information, wherein the second cost is a condition having a relatively smaller value than the first cost. 제2항에 있어서, The method of claim 2, 상기 미리 정해진 조건을 만족하지 못하는 경우,If the predetermined condition is not satisfied, 최소의 코스트를 갖는 상기 모드에 대해 추정된 움직임벡터, 참조픽처에 대한 정보, 및 잉여 데이터(residual)를 포함하여, 움직임 벡터에 대한 부호화 데이터를 생성하는 과정을 포함함을 특징으로 하는 움직임 벡터 정보의 부호화 방법.Motion vector information comprising the step of generating encoded data for the motion vector, including the motion vector estimated for the mode having the lowest cost, information about a reference picture, and residual data Encoding method. 제1항에 있어서, 미리 정해진 조건은,The method of claim 1, wherein the predetermined condition is 부단위의 예측 움직임 벡터(PMV)와 부단위로 탐색된 움직임 벡터가 동일한 값으로 이루어진 조건임을 특징으로 하는 움직임 벡터 정보의 부호화 방법.A method of encoding motion vector information, characterized in that the sub-unit predicted motion vector (PMV) and the sub-unit searched motion vector have the same value. 제4항에 있어서, 미리 정해진 조건은,The method according to claim 4, wherein the predetermined condition is 부호화단위에 포함된 부단위들에 대한 움직임 벡터의 참조픽처가 모두 동일한 참조픽처로 이루어진 조건임을 특징으로 하는 움직임 벡터 정보의 부호화 방법.The motion vector information encoding method according to claim 1, wherein the reference pictures of the motion vectors of the subunits included in the coding unit are all made of the same reference picture. 제5항에 있어서, 상기 참조픽처는 현재 부호화를 진행중인 픽처와 시각(time)적으로 이웃한 픽처인 것을 특징으로 하는 움직임 벡터 정보의 부호화 방법.6. The method of claim 5, wherein the reference picture is a picture that is neighbored in time with a picture currently being encoded. 제5항에 있어서,The method of claim 5, 상기 참조픽처는 프레임 메모리에 저장된 픽처 중, 선택된 어느 하나의 픽처이며,The reference picture is any one selected from pictures stored in the frame memory. 상기 부호화 데이터는 적어도 하나의 상기 참조픽처를 지시하는 정보를 포함하는 것을 특징으로 하는 움직임 벡터 정보의 부호화 방법.And the encoded data includes information indicating at least one reference picture. 제1항 내지 제7항 중 어느 한 항에 있어서, The method according to any one of claims 1 to 7, 상기 예측 움직임 벡터(PMV)를 연산하는 과정은,The process of calculating the predicted motion vector (PMV), 주변에 위치한 부단위들에 대한 움직임 벡터를 획득하는 과정과,Obtaining a motion vector for subunits located nearby, 상기 주변에 위치한 부단위들에 대한 움직임 벡터의 중간값을 연산하여, 상기 부단위의 예측 움직임 벡터(PMV)를 예측하는 과정을 포함하는 것을 특징으로 하는 움직임 벡터 정보의 부호화 방법.And calculating a predicted motion vector (PMV) of the sub-units by calculating a median value of the motion vectors of the sub-units located in the periphery. 움직임 벡터를 획득한 단위를 지시하는 식별코드를 포함하는 비트스트림으로부터 움직임 벡터에 대한 정보를 복원하는 방법에 있어서,A method for recovering information about a motion vector from a bitstream including an identification code indicating a unit for obtaining a motion vector, the method comprising: 입력되는 비트스트림에 포함된 상기 식별코드를 파싱(parsing)하여, 움직임 벡터 부호화 모드(MVCM; Motion Vector Coding Mode)를 획득하는 과정과,Parsing the identification code included in an input bitstream to obtain a motion vector coding mode (MVCM); 상기 모드가 부단위의 움직임 벡터의 생략을 지시하는 모드인 경우, 부호화기와 사전에 약속된 조건에 따라, 예측 움직임 벡터(PMV; Predictive Motion Vector)를 연산하고, 참조픽처에 대한 정보를 획득하는 과정과,When the mode is a mode indicating omission of the sub-unit motion vector, a process of calculating a predictive motion vector (PMV) according to a condition previously promised by an encoder and obtaining information on a reference picture and, 상기 예측 움직임 벡터(PMV)를 상기 참조픽처에 적용하여 움직임 보상 블록을 복원하는 과정을 포함함을 특징으로 하는 움직임 벡터에 대한 정보를 복원하는 방법.And restoring a motion compensation block by applying the predicted motion vector (PMV) to the reference picture. 제9항에 있어서,The method of claim 9, 상기 움직임 벡터 부호화 모드(MVCM)가 부단위의 움직임 벡터의 생략을 지시하는 모드가 아닌 경우,When the motion vector encoding mode (MVCM) is not a mode indicating omission of the subunit motion vector, 부호화된 움직임 벡터 및 부호화된 잉여(residual)데이터를 복원하고, 참조픽처에 대한 정보를 확인하는 과정과,Restoring the encoded motion vector and the encoded residual data and confirming information about the reference picture; 상기 움직임 벡터 및 잉여 데이터를 참조 픽쳐에 적용하여, 부호화단위의 영상정보를 복원하는 과정을 포함함을 특징으로 하는 움직임 벡터에 대한 정보를 복원하는 방법.And reconstructing image information of a coding unit by applying the motion vector and the surplus data to a reference picture. 제9항에 있어서, 예측 움직임 벡터(PMV)를 연산하는 상기 과정은,The method of claim 9, wherein the process of calculating the predicted motion vector (PMV), 주변에 위치한 부단위들에 대한 움직임 벡터를 획득하는 과정과,Obtaining a motion vector for subunits located nearby, 상기 주변에 위치한 부단위들에 대한 움직임 벡터의 중간값을 연산하고, 상기 중간값을 상기 예측 움직임 벡터(PMV)로 설정하는 과정을 포함하는 것을 특징으로 하는 움직임 벡터에 대한 정보를 복원하는 방법.And calculating a median value of the motion vector for the sub-units located in the periphery, and setting the median value as the predictive motion vector (PMV). 제9항에 있어서, 상기 참조픽처는 현재 부호화를 진행중인 픽처와 시각(time)적으로 이웃한 픽처인 것을 특징으로 하는 움직임 벡터에 대한 정보를 복원하는 방법.10. The method of claim 9, wherein the reference picture is a picture neighboring in time with a picture currently being encoded. 움직임 추정부 및 움직임 보상부를 이용하여, 부호화단위의 움직임 벡터에 대한 정보를 부호화하는 장치에 있어서,An apparatus for encoding information on a motion vector of a coding unit by using a motion estimation unit and a motion compensation unit, 복수의 움직임 벡터 예측 모드(MVPM; Motion Vector Predictive Mode)에 대한 움직임 벡터의 탐색 및 부단위 예측 움직임 벡터(PMV; Predictive Motion Vector)의 연산을 지시하고, 복원된 부호화단위의 코스트를 연산하고, 상기 움직임 추정부 및 움직임 보상부의 동작을 제어하는 제어부와,Instructs the search of the motion vector and the operation of the sub-predictive motion vector (PMV) for a plurality of motion vector prediction modes (MVPM), calculates the cost of the reconstructed coding unit, and A controller for controlling the operation of the motion estimator and the motion compensator; 상기 제어부가 입력하는 움직임 벡터 예측 모드(MVPM)에 대응하여, 각각의 상기 움직임 벡터 예측 모드(MVPM)의 움직임 벡터를 탐색한 후, 움직임 보상부로 제공하며, 주변의 움직임 벡터를 이용하여 부단위의 예측 움직임 벡터(PMV)를 연산한 후, 움직임 보상부로 제공하는 움직임 추정부와,In response to the motion vector prediction mode (MVPM) input by the controller, the motion vector of each of the motion vector prediction modes (MVPM) is searched and provided to the motion compensator, and the sub-units are searched using neighboring motion vectors. A motion estimation unit for calculating a predicted motion vector (PMV) and then providing the motion compensation unit to the motion compensation unit; 움직임 추정부로부터 입력받은 움직임 벡터를 참조픽처에 적용하여 부호화단위의 영상정보를 복원하는 움직임 보상부를 포함하며,It includes a motion compensation unit for restoring the image information of the coding unit by applying the motion vector received from the motion estimation unit to the reference picture, 상기 제어부는,The control unit, 미리 정해진 조건을 만족하는 경우, 부호화단위에 대한 움직임 벡터의 생략을 지시하는 정보를 부호화 데이터에 포함시키는 것을 특징으로 하는 움직임 정보 부호화 장치.When the predetermined condition is satisfied, the motion information encoding apparatus includes information indicating that the motion vector for the coding unit is omitted in the encoded data. 제13항에 있어서, 상기 제어부는,The method of claim 13, wherein the control unit, 상기 미리 정해진 조건을 만족하지 못하는 경우, If the predetermined condition is not satisfied, 최소의 코스트를 갖는 움직임 벡터 예측 모드(MVPM), 상기 모드(MVPM)를 기준으로 탐색된 움직임벡터 및 잉여 데이터(residual)를 포함하여, 움직임 벡터에 대한 부호화 데이터를 생성하는 것을 특징으로 하는 움직임 정보 부호화 장치.Motion information, characterized by generating coded data for a motion vector, including a motion vector prediction mode (MVPM) having a minimum cost, a motion vector searched based on the mode (MVPM), and residual data. Encoding device. 제13항에 있어서, 상기 미리 정해진 조건은The method of claim 13, wherein the predetermined condition is 부단위의 예측 움직임 벡터(PMV)에 대한 코스트가, 움직임 벡터 예측 모드(MVPM)에 기초하여 연산된 최소 코스트보다 상대적으로 더 작은 값을 가지며,The cost for the subunit predicted motion vector (PMV) has a value that is relatively smaller than the minimum cost computed based on the motion vector prediction mode (MVPM), 부단위의 예측 움직임 벡터(PMV)와 부단위의 탐색을 통해 획득한 상기 움직임 벡터가 동일한 값으로 이루어진 조건임을 특징으로 하는 움직임 정보 부호화 장치.The motion information encoding apparatus of claim 1, wherein the prediction motion vector (PMV) of the sub-unit and the motion vector obtained through the search of the sub-unit are made of the same value. 제15항에 있어서, 상기 미리 정해진 조건은The method of claim 15, wherein the predetermined condition is 부단위 움직임 벡터의 참조픽처가 모두 동일한 참조픽처로 이루어진 조건임을 특징으로 하는 움직임 정보 부호화 장치.A motion information encoding apparatus, characterized in that all reference pictures of sub-unit motion vectors are composed of the same reference picture. 제16항에 있어서, 상기 참조픽처는 현재 부호화를 진행중인 픽처와 시각(time)적으로 이웃한 픽처인 것을 특징으로 하는 움직임 정보 부호화 장치.17. The motion information encoding apparatus of claim 16, wherein the reference picture is a picture neighboring in time with a picture currently being encoded. 제14항에 있어서,The method of claim 14, 상기 참조픽처는 프레임 메모리에 저장된 픽처 중, 선택된 어느 하나의 픽처이며,The reference picture is any one selected from pictures stored in the frame memory. 상기 부호화 데이터는 적어도 하나의 상기 참조픽처를 지시하는 정보를 포함하는 것을 특징으로 하는 움직임 정보 부호화 장치.And the coded data includes information indicating at least one reference picture. 제13항에 있어서,The method of claim 13, 부호화단위의 원본 영상정보와 복원된 영상정보 사이의 잉여 데이터를 부호화하는 잉여 데이터 부호화부와,A surplus data encoder for encoding surplus data between original image information and reconstructed image information in a coding unit; 부호화된 상기 잉여 데이터를 복원하는 잉여 데이터 복호화부를 더 포함하며,A redundant data decoding unit for restoring the encoded redundant data is further included. 상기 제어부는,The control unit, 잉여 데이터 부호화부로부터 제공받은 잉여 데이터의 비트수 및 잉여 데이터 복호화부로부터 제공받은 왜곡치(Distortion)를 이용하여 코스트를 연산하는 것을 특징으로 하는 움직임 정보 부호화 장치.And calculating a cost using the number of bits of surplus data provided from the surplus data encoder and a distortion value provided from the surplus data decoder. 제13항 내지 제19항 중 어느 한 항에 있어서, The method according to any one of claims 13 to 19, 움직임 추정부는,The motion estimator, 주변에 위치한 부단위들에 대한 움직임 벡터를 획득하고,Obtain a motion vector for the surrounding subunits, 상기 주변에 위치한 부단위들에 대한 움직임 벡터의 중간값을 연산하여, 상기 부단위의 예측 움직임 벡터를 연산하는 것을 특징으로 하는 움직임 정보 부호화 장치.And a predicted motion vector of the subunits by calculating a median value of the motion vectors of the subunits located in the periphery. 비트스트림으로부터 움직임 벡터에 대한 정보를 복원하는 장치에 있어서,An apparatus for recovering information about a motion vector from a bitstream, 입력되는 비트스트림으로부터 움직임 벡터 부호화 모드(MVCM; Motion Vector Coding Mode)를 획득하고, 상기 모드(MVCM)에 대응하는 움직임 벡터의 복원 및 부호화단위의 영상정보의 복원을 제어하는 제어부와,A controller for acquiring a motion vector coding mode (MVCM) from an input bitstream, controlling a reconstruction of a motion vector corresponding to the mode (MVCM) and reconstruction of image information of a coding unit; 상기 제어부로부터 제공받은 상기 모드(MVCM) 및 미리 정해진 조건을 참조하여, 부호화된 움직임 벡터 및 참조픽처를 포함하는 움직임 정보를 복원하는 움직임 벡터 복호화부와,A motion vector decoder configured to reconstruct motion information including an encoded motion vector and a reference picture with reference to the mode (MVCM) and a predetermined condition provided from the controller; 상기 제어부로부터 제공받은 상기 모드(MVCM) 및 부호화기와 사전에 약속된 조건을 참조하고, 부단위의 예측 움직임 벡터(PMV; Predictive Motion Vector)를 연산하는 움직임 벡터 예측부와,A motion vector predictor configured to calculate a predicted motion vector (PMV) of a sub-unit by referring to the mode (MVCM) and an encoder previously promised from the controller; 상기 참조픽처에 상기 움직임 벡터를 적용하여 영상정보를 복원하는 움직임 보상부와,A motion compensator for restoring image information by applying the motion vector to the reference picture; 부호화된 잉여 데이터를 복원하는 잉여 데이터 복호화부와,A surplus data decoding unit for restoring the encoded surplus data; 상기 움직임 보상부로부터 출력되는 영상정보 및 상기 잉여 데이터 복호화부로부터의 상기 잉여 데이터를 가산하는 가산부를 포함함을 특징으로 하는 움직임 정보 복호화 장치.And an adder which adds the image information output from the motion compensator and the surplus data from the surplus data decoder. 제21항에 있어서, The method of claim 21, 상기 모드(MVCM)가 부단위의 움직임 벡터 생략을 지시하는 모드인 경우,When the mode (MVCM) is a mode indicating omission of the subunit motion vector, 상기 제어부는, 부호화기와 사전에 약속된 조건에 따라, 상기 움직임 벡터 예측부를 제어하고, 참조픽처에 대한 정보를 획득하는 것을 특징으로 하는 움직임 정보 복호화 장치.And the control unit controls the motion vector predictor according to a condition previously promised by an encoder and obtains information about a reference picture. 제21항에 있어서, 상기 움직임 벡터 예측부는,The method of claim 21, wherein the motion vector predictor, 주변에 위치한 부단위들에 대한 움직임 벡터를 획득하고, Obtain a motion vector for the surrounding subunits, 획득한 상기 움직임 벡터들의 중간값을 연산하여, 상기 중간값을 상기 부단위의 예측 움직임 벡터(PMV)로 설정하는 것을 특징으로 하는 움직임 정보 복호화 장치.And calculating the median of the obtained motion vectors and setting the median as the predicted motion vector (PMV) of the sub-unit. 제21항 또는 제23항에 있어서, 상기 참조픽처는 현재 부호화를 진행중인 픽처와 시각(time)적으로 이웃한 픽처인 것을 특징으로 하는 움직임 정보 복호화 장치.24. The motion information decoding apparatus of claim 21 or 23, wherein the reference picture is a picture neighboring in time with a picture currently being encoded. 제21항에 있어서, The method of claim 21, 상기 모드가 부단위의 움직임 벡터의 생략을 지시하는 모드가 아닌 경우, If the mode is not a mode indicating omission of the subunit motion vector, 상기 제어부는, 부호화기와 사전에 약속된 조건에 따라, 상기 움직임 벡터 복호화부 및 잉여 데이터 복호화부를 제어하고,The control unit controls the motion vector decoder and the redundant data decoder according to a condition previously agreed with an encoder. 상기 움직임 벡터 복호화부는, 입력된 데이터로부터 움직임 벡터 및 참조픽처를 획득하고,The motion vector decoder obtains a motion vector and a reference picture from input data, 상기 잉여 데이터 복호화부는 입력된 비트스트림을 참조하여 잉여 데이터를 획득하는 것을 특징으로 하는 움직임 정보 복호화 장치.The redundant data decoding unit obtains redundant data with reference to the input bitstream.
KR1020080074289A 2008-03-28 2008-07-29 Method for coding data of motion vector and apparatus for the same KR20090103663A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020080074289A KR20090103663A (en) 2008-03-28 2008-07-29 Method for coding data of motion vector and apparatus for the same
JP2009080293A JP4990927B2 (en) 2008-03-28 2009-03-27 Method and apparatus for encoding / decoding motion vector information
US12/414,280 US8553779B2 (en) 2008-03-28 2009-03-30 Method and apparatus for encoding/decoding motion vector information
EP20090156747 EP2106146A3 (en) 2008-03-28 2009-03-30 Encoding and decoding motion vector information

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020080029289 2008-03-28
KR1020080074289A KR20090103663A (en) 2008-03-28 2008-07-29 Method for coding data of motion vector and apparatus for the same

Publications (1)

Publication Number Publication Date
KR20090103663A true KR20090103663A (en) 2009-10-01

Family

ID=41533175

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080074289A KR20090103663A (en) 2008-03-28 2008-07-29 Method for coding data of motion vector and apparatus for the same

Country Status (1)

Country Link
KR (1) KR20090103663A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015012622A1 (en) * 2013-07-24 2015-01-29 삼성전자 주식회사 Method for determining motion vector and apparatus therefor
US10630992B2 (en) 2016-01-08 2020-04-21 Samsung Electronics Co., Ltd. Method, application processor, and mobile terminal for processing reference image

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015012622A1 (en) * 2013-07-24 2015-01-29 삼성전자 주식회사 Method for determining motion vector and apparatus therefor
US10630992B2 (en) 2016-01-08 2020-04-21 Samsung Electronics Co., Ltd. Method, application processor, and mobile terminal for processing reference image

Similar Documents

Publication Publication Date Title
JP4990927B2 (en) Method and apparatus for encoding / decoding motion vector information
JP5524625B2 (en) Inter prediction encoding / decoding method and apparatus
US7925107B2 (en) Adaptive variable block transform system, medium, and method
EP2699001B1 (en) A method and a system for video signal encoding and decoding with motion estimation
JP2021521730A (en) How to decrypt video, devices, and computer programs
US20120230405A1 (en) Video coding methods and video encoders and decoders with localized weighted prediction
US20080008238A1 (en) Image encoding/decoding method and apparatus
US10574863B2 (en) Video encoding and decoding
JP2022506717A (en) Methods and equipment for video coding
US10652570B2 (en) Moving image encoding device, moving image encoding method, and recording medium for recording moving image encoding program
JP2022532032A (en) Methods and equipment for video coding
KR20090095012A (en) Method and apparatus for encoding and decoding image using consecutive motion estimation
JP2004336369A (en) Moving image encoder, moving image decoder, moving image encoding method, moving image decoding method, moving image encoding program and moving image decoding program
KR20110071231A (en) Encoding method, decoding method and apparatus thereof
KR20090103674A (en) Method for predictive intra coding/decoding for video and apparatus for same
KR20090087767A (en) Method for predictive intra coding for image data
WO2008035842A1 (en) Apparatus and method for encoding and decoding using alternative converter according to the correlation of residual signal
KR101375667B1 (en) Method and apparatus for Video encoding and decoding
KR100856392B1 (en) Video Encoding and Decoding Apparatus and Method referencing Reconstructed Blocks of a Current Frame
KR100928325B1 (en) Image encoding and decoding method and apparatus
KR20090103675A (en) Method for coding/decoding a intra prediction mode of video and apparatus for the same
JP4349109B2 (en) Image data processing apparatus, method thereof, and encoding apparatus
KR20090103663A (en) Method for coding data of motion vector and apparatus for the same
KR20100082700A (en) Wyner-ziv coding and decoding system and method
KR101390194B1 (en) Method and apparatus for encoding and decoding based on motion estimation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application