KR20130057020A - Method for fast motion estimation using motion vectors of neighboring blocks - Google Patents

Method for fast motion estimation using motion vectors of neighboring blocks Download PDF

Info

Publication number
KR20130057020A
KR20130057020A KR1020110122726A KR20110122726A KR20130057020A KR 20130057020 A KR20130057020 A KR 20130057020A KR 1020110122726 A KR1020110122726 A KR 1020110122726A KR 20110122726 A KR20110122726 A KR 20110122726A KR 20130057020 A KR20130057020 A KR 20130057020A
Authority
KR
South Korea
Prior art keywords
motion
motion vector
difference
mvd
vector
Prior art date
Application number
KR1020110122726A
Other languages
Korean (ko)
Other versions
KR101324352B1 (en
Inventor
강현수
Original Assignee
충북대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 충북대학교 산학협력단 filed Critical 충북대학교 산학협력단
Priority to KR1020110122726A priority Critical patent/KR101324352B1/en
Publication of KR20130057020A publication Critical patent/KR20130057020A/en
Application granted granted Critical
Publication of KR101324352B1 publication Critical patent/KR101324352B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

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

Abstract

PURPOSE: A method for estimating a high speed motion by using a motion vector of an adjacent block is provided to reduce computation by exploring narrow or wide ranges according to a difference between a motion vector of a surrounding block and the MVP(Motion Vector Prediction) of a current block. CONSTITUTION: A video encoder receives a motion vector of a surrounding block of a current block(S101). The video encoder receives the MVP of the motion vector and obtains a difference vector by calculating a difference between the motion vector and the MVP(S103). The video encoder calculates the average of the obtained difference vector and sets an exploration range by using the average(S104,S105). The video encoder estimates a motion by using the set exploration range(S106). [Reference numerals] (S101) Input motion vectors of surrounding blocks(MV_A, MV_B, MV_C, MV_D, MV_E); (S102) Calculate a predicted motion vector of a current block(MVP); (S103) Calculate motion vector differences(MVD_A, MVD_B, MVD_C, MVD_D, MVD_E); (S104) Calculate the average of the motion vector differences((Sample mean MVD)_x, (Sample mean MVD)_y); (S105) Calculate a range of motion exploration(SR = max{a×(Sample mean MVD), b}); (S106) Execute motion estimation for a exploration range of (SR_x, SR_y)

Description

인접한 블록의 움직임 벡터를 이용한 고속 움직임 추정 방법{ Method for fast motion estimation using motion vectors of neighboring blocks}Fast motion estimation using motion vectors of neighboring blocks

본 발명은 영상 부호화기에서 움직임 추정(motion estimation)의 속도를 향상시키기 위한 방법에 관한 것으로, 주변 블록의 움직임벡터와 현재 블록의 움직임 추정의 탐색 중심점과의 차이가 크면 넓은 범위를 탐색하고, 주변 블록의 움직임벡터와 현재 블록의 움직임 추정의 탐색 중심점과의 차이가 작으면 좁은 범위를 탐색함으로써 계산량을 크게 감소시키기 위한 인접한 블록의 움직임 벡터를 이용한 고속 움직임 추정 방법에 관한 것이다. The present invention relates to a method for improving the speed of motion estimation in an image encoder. When the difference between the motion vector of the neighboring block and the search center point of the motion estimation of the current block is large, a wide range is searched and the neighboring block is searched. The present invention relates to a fast motion estimation method using a motion vector of an adjacent block to greatly reduce the amount of computation by searching a narrow range when the difference between the motion vector of and the search center point of the motion estimation of the current block is small.

일반적으로, 블록단위로 부호화가 이루어지는 국제 표준 영상 부호화기에 있어서, 그 블록은 인트라블록(intra-block)과 인터블록(inter-block)으로 분류된다. 고속의 움직임벡터 추정 방법은 인터블록의 부호화 방법에 관련되며, 국제 표준 영상 부호화기에서 움직임 추정의 탐색 중심점을 MVP(motion vector prediction)벡터로 하고, 이 중심점을 중심으로 좌우상하 방향으로 탐색범위를 설정한 뒤 탐색하게 된다.   In general, in the international standard image encoder in which encoding is performed on a block basis, the block is classified into an intra-block and an inter-block. The fast motion vector estimation method is related to the interblock encoding method, and the search center point of motion estimation is set as a motion vector prediction (MVP) vector in an international standard image encoder, and the search range is set in the left and right directions up and down about the center point. After that you will search.

도 1은 국제 표준 동영상 부호화기의 대표적인 사례인 H.264/AVC 동영상 부호기의 블록 다이아그램이다. 도1에서 보는 바와 같이, 입력된 현재 영상(110)은 인터예측(112)과 인트라예측(114)이 모두 수행되고 그 중 우수한 예측방식을 선택적으로 사용하게 되며, 도 1의 스위치(100)가 그 역할을 수행하게 된다. 단, 인트라 픽쳐(intra picture)의 경우에는 항상 인트라예측을 수행하게 된다. 인터 또는 인트라예측으로 얻어진 예측 영상과의 차이 영상은 DCT변환(116)과 양자화(118)를 거쳐 엔트로피 부호화(119)된다. 또한 이 부호화기에서 역양자화(122), 역DCT변환(124)을 통해 복원된 차이 영상은 인터 또는 인트라예측으로 얻어진 예측 영상과의 합을 통해 복원된 영상이 얻어지고 이 복원된 영상은 인트라예측에 활용되며, 복원된 영상에 대해 디블록킹필터 처리된 영상은 인터예측에 활용된다. 1 is a block diagram of an H.264 / AVC video encoder, which is a representative example of an international video encoder. As shown in FIG. 1, the input current image 110 performs both the inter prediction 112 and the intra prediction 114, and selectively uses a superior prediction method among them, and the switch 100 of FIG. It will play its role. However, in the case of an intra picture, intra prediction is always performed. The difference image from the predicted image obtained by the inter or intra prediction is entropy encoded 119 through the DCT transform 116 and the quantization 118. In addition, the difference image reconstructed through the inverse quantization 122 and the inverse DCT transformation 124 in this encoder is obtained by reconstructing an image obtained by adding the predicted image obtained through inter or intra prediction. The deblocked filter image of the reconstructed image is utilized for inter prediction.

도 1의 표준 영상 부호화기에서는 전체 영상 단위로 부호화하는 대신에 한 장의 영상을 일정한 크기의 블록(예컨대, 가로방향으로 M 화소, 세로 방향으로 N 화소(통상적으로 MㅧN으로 표시))의 화소(picture element 또는 pixel)의 집합 단위로 부호화를 수행하는데, 블록의 크기는 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 등이 될 수 있다. 16×16 크기의 블록을 '매크로블록(macroblock)' 이라고 부르며, 그 외의 크기의 블록을 그냥 '블록(block)'이라고 부른다. 또한 블록은 '매크로블록'과 '블록'의 통칭으로 사용되기도 한다. 따라서 본 명세서에서 언급하는 블록은 이러한 다양한 크기의 블록을 통칭하여 사용한다.In the standard image encoder of FIG. 1, instead of encoding the entire image unit, a single image of a single block of pixels (e.g., M pixels in the horizontal direction and N pixels in the vertical direction (usually represented by M ㅧ N)) The encoding is performed in units of sets of picture elements or pixels, and the block size may be 16 × 16, 16 × 8, 8 × 16, 8 × 8, 8 × 4, 4 × 8, 4 × 4, and the like. . Blocks of size 16x16 are called macroblocks, and blocks of other sizes are just called blocks. Blocks are also used collectively as 'macroblocks' and 'blocks'. Therefore, the blocks mentioned in the present specification are collectively used for these various sizes of blocks.

이와 같은 인터 예측 부호화에서는 현재 블록과 이전에 부호화된 프레임의 블록과의 움직임을 추정하여 그 차이 영상의 데이터와 움직임벡터를 부호화 하게 된다. 단순히 움직임벡터를 부호화 하는 것은 많은 비트를 필요로 하기에 영상 부호화기에서는 주변블록의 움직임벡터를 참고로 하여 현재 블록의 움직임 추정의 탐색 중심점(Motion Vector Prediction; 이하 MVP라함)을 추정하고, 현재 블록의 움직임벡터와의 차이(Motion Vector Difference ; 이하 MVD라함)만을 부호화함으로써 부호화 효율을 높이는 방법을 사용하고 있다. 즉, 움직임 벡터 대신 움직임 벡터차가 부호화되어 부호화 효율을 높이는 방법을 사용하고 있는 것이다. In the inter prediction encoding, the motion between the current block and the block of the previously encoded frame is estimated and the data and the motion vector of the difference image are encoded. Since simply encoding a motion vector requires a lot of bits, the image encoder estimates a search vector center of a motion estimation of a current block by referring to the motion vector of a neighboring block, and then refers to the motion vector of the current block. A method of increasing coding efficiency by encoding only a difference from a motion vector (Motion Vector Difference (hereinafter referred to as MVD)) is used. In other words, the motion vector difference is encoded instead of the motion vector to increase the coding efficiency.

종래의 동영상 압축 부호기에서는, 움직임 추정을 위한 탐색범위를 사용자가 입력하게 되면 MVP를 중심으로 그 탐색범위만큼 탐색하여 가장 우수한 움직임 벡터를 선정하게 된다. 이 방법은 작은 탐색범위로 설정하여도 성능저하가 발생하지 않는 움직임이 많지 않은 영상에 대해서도 그대로 적용됨으로써 계산량을 낭비하는 문제점을 가지고 있다. In a conventional video compression encoder, when a user inputs a search range for motion estimation, the user searches for the search range around the MVP and selects the best motion vector. This method has a problem of wasting computational amount as it is applied to an image that does not have a lot of motion that does not cause a performance deterioration even with a small search range.

또한 종래의 동적탐색방법에서는 현재 블록의 움직임 탐색 범위가 움직임 벡터 차와 밀접한 관계가 있다는 점을 고려하지 못하고, 단순히 주변 블록의 움직임 벡터 크기에 비례하도록 탐색범위를 설정함으로써 계산량 감축에 있어서 효율성이 높지 않다는 문제점을 가지고 있다. In addition, the conventional dynamic search method does not consider that the motion search range of the current block is closely related to the motion vector difference, and the efficiency of the computational reduction is not high by simply setting the search range to be proportional to the motion vector size of the neighboring blocks. It has a problem.

따라서 영상의 특성에 따라 탐색범위를 가변적으로 변화시킬 수 있고, 탐색 범위와 밀접한 관계가 있는 움직임 벡터 차이 값에 기반하여 탐색범위를 줄임으로써 계산량을 효과적으로 감축하는 방법의 필요성이 대두되었다. Therefore, there is a need for a method of effectively reducing the amount of calculation by reducing the search range based on a motion vector difference value closely related to the search range and varying the search range according to the characteristics of the image.

주변 블록의 움직임 벡터와 상관되어 현재 블록의 탐색범위를 제한함으로서 계산량을 감축하고자 하는 종래 방법에는 동적탐색방법 (dynamic search method)이 있다. 이 방법은 국제 표준화 기구인 ISO/IEC와 ITU-T의 Joint Video Team의 기고서 (JVT-Q088)에 제출된 방법으로서 주변 블록의 움직임 벡터의 크기의 최대값에 비례하여 현재 블록의 탐색범위를 제한하여 계산량을 감축하도록 하였다. 이 방법은 블록에 따라 다른 탐색범위를 적용한다는 점에서 본 발명에서 제시될 방법과 유사한 부류에 속하는 방법이나, 본 발명에서는 탐색범위가 현재 블록의 움직임 벡터 보다는 움직임 벡터 차이와 보다 밀접하게 관련있다는 점을 고려하여 주변 블록의 움직임 벡터 차의 크기를 이용하여 현재 블록의 탐색범위를 제한한다는 점에 차별화된다.The conventional method of reducing the amount of computation by limiting the search range of the current block correlated with the motion vector of the neighboring block includes a dynamic search method. This method is submitted to the international standardization organization ISO / IEC and ITU-T's Joint Video Team (JVT-Q088), which limits the search range of the current block in proportion to the maximum value of the motion vector of the neighboring blocks. To reduce the amount of computation. This method belongs to a similar class to the method proposed in the present invention in that different search ranges are applied to each block, but in the present invention, the search range is more closely related to the motion vector difference than the motion vector of the current block. In consideration of this, the difference of the search range of the current block is limited by using the magnitude of the motion vector difference of the neighboring blocks.

본 발명은 상기의 필요성을 감안하여 발명된 것으로, 영상부호화기에서 주변 블록의 움직임 벡터와 상관되어 현재 블록을 탐색하는 탐색범위는 MVP를 중심좌표로 하여 설정되므로 움직임 벡터보다는 움직임 벡터 차와 밀접한 관계가 있음을 주목한다. 따라서, 본 발명은 현재 블록의 움직임 탐색범위를 설정함에 있어서, 이미 부호화된 주변 블록의 움직임 벡터와 현재 블록의 MVP의 차와, 이전 프레임의 동일 위치의 블록의 움직임 벡터와 현재 블록의 MVP의 차를 이용하여 현재 블록의 움직임 탐색범위를 실제 움직임 벡터가 존재할 가능성이 높은 영역을 설정함으로써 계산량을 대폭 감소시키는 인접한 블록의 움직임 벡터를 이용한 고속 움직임 추정 방법을 제공하는 데 그 목적이 있다. The present invention has been invented in view of the above necessity, and since a search range for searching a current block correlated with a motion vector of a neighboring block in an image encoder is set with MVP as a center coordinate, it is more closely related to a motion vector difference than a motion vector. Note that there is. Accordingly, in the present invention, in setting the motion search range of the current block, the difference between the motion vector of the neighboring block and the MVP of the current block, and the difference between the motion vector of the block at the same position of the previous frame and the MVP of the current block It is an object of the present invention to provide a fast motion estimation method using motion vectors of adjacent blocks, which greatly reduces the amount of computation by setting a region where a real motion vector is likely to exist in the motion search range of a current block using.

이와 같은 목적을 수행하기 위한 본 발명은, The present invention for performing such an object,

부호화를 수행하는 현재 블록을 둘러싼 주변 블록의 움직임 벡터(

Figure pat00001
)를 입력받는 단계;The motion vector of the neighboring block surrounding the current block that performs encoding (
Figure pat00001
);

현재 블록의 움직임 벡터의 예측 벡터(MVP)를 입력 받고, 입력된 주변 블록의 움직임 벡터와 상기 예측 벡터(MVP)의 차이를 계산하여 차벡터를 얻는 단계; Receiving a prediction vector (MVP) of a motion vector of a current block, obtaining a difference vector by calculating a difference between the input motion vector of the neighboring block and the prediction vector (MVP);

획득된 차벡터의 평균을 계산하고 차벡터의 평균을 이용하여 x방향과 y방향의 탐색범위를 설정하는 단계; 그리고, Calculating a mean of the obtained difference vectors and setting a search range in the x and y directions using the mean of the difference vectors; And,

설정된 탐색범위를 탐색범위로 하는 움직임을 추정하는 단계를 포함하는 인접한 블록의 움직임 벡터를 이용한 고속 움직임 추정 방법이다. A fast motion estimation method using motion vectors of adjacent blocks, comprising estimating a motion having a set search range as a search range.

본 발명의 바람직한 실시예에서는 평균을 계산하는 단계는 부호화를 수행하는 현재 블록을 둘러싼 5개의 주변 블록의 움직임 벡터의 전체의 평균을 계산하는 방법 또는 현재 블록을 둘러싼 5개의 주변 블록의 움직임 벡터에서 일부만을 취하여 평균을 계산하는 방법중에 선택되는 하나의 방법임을 특징으로 한다. In the preferred embodiment of the present invention, the calculating of the average may be performed by calculating a mean of the entire motion vectors of the five neighboring blocks surrounding the current block performing encoding or only a part of the motion vectors of the five neighboring blocks surrounding the current block. It is characterized in that it is one of the methods selected from among the methods for calculating the average.

본 발명에 따른 인접한 블록의 움직임 벡터를 이용한 고속 움직임 추정 방법은 주변 블록의 움직임벡터와 현재 블록의 MVP와의 차이가 크면 현재 블록의 움직임 벡터 차가 크다고 볼 수 있으므로 넓은 범위를 탐색하고, 반대로 그 차이가 작으면 현재 블록의 움직임 벡터 차가 작다고 볼 수 있으므로 좁은 범위를 탐색함으로써 계산량을 크게 감소시킬 수 있다. In the fast motion estimation method using the motion vectors of adjacent blocks according to the present invention, if the difference between the motion vector of the neighboring block and the MVP of the current block is large, the difference in the motion vector of the current block can be considered to be large. If it is small, the motion vector difference of the current block can be regarded as small, so that the calculation amount can be greatly reduced by searching a narrow range.

본 발명에 따른 인접한 블록의 움직임 벡터를 이용한 고속 움직임 추정 방법을 움직임이 적은 영상에 적용하여 보았을 때, 화질 저하없이 계산량을 크게 감소시킴을 알 수 있으며, 이는 사용자에 의해 입력된 탐색범위를 모두 탐색하지 않고도 본 발명의 방법이 움직임 추정을 효율적으로 처리함을 알 수 있었다. When the fast motion estimation method using the motion vectors of adjacent blocks according to the present invention is applied to an image with little motion, it can be seen that the computation amount is greatly reduced without deterioration of image quality, which searches all the search ranges input by the user. It has been found that the method of the present invention efficiently handles motion estimation without having to do so.

도 1은 종래의 동영상 부호기 구조를 보여주기 위한 블록도이다.
도 2는 움직임 벡터를 이용한 움직임 추정 방법에서 현재 블록과 주변 블록을 정의를 보여주는 도면이다.
도 3은 움직임 벡터를 이용한 움직임 추정 방법에서 동일위치 블록의 정의를 보여주는 도면이다.
도 4는 본 발명에 따른 움직임 벡터를 이용한 움직임 추정방법을 설명하기 위한 흐름도이다.
1 is a block diagram illustrating a conventional video encoder structure.
2 is a diagram illustrating definition of a current block and neighboring blocks in a motion estimation method using a motion vector.
3 is a diagram illustrating definition of an identical block in a motion estimation method using a motion vector.
4 is a flowchart illustrating a motion estimation method using a motion vector according to the present invention.

이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하면 다음과 같다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2를 참조하면 영상 부호기 표준에서, 현재 블록(X)의 효과적인 압축을 위해 사용되는 주변 블록(A, B, C, D)의 정의를 나타낸다. MVP는 A, B, C블록의 움직임벡터를 사용하며, C가 유효하지 않은 경우에는 D가 사용된다. 각 방향(X축 방향, Y축 방향)에 따라 3개의 움직임벡터의 중간값을 취하게 된다. 이 중간값을 중심점으로 하여 현재 블록과 가장 유사한 블록을 이전에 부호화된 프레임에서 탐색하게 되며 가장 유사한 블록과 현재 블록과의 상대적인 위치를 움직임 벡터라고 한다. 이처럼 움직임 벡터를 찾는 과정을 움직임 추정이라고 하며, 움직임 벡터를 찾는 범위를 탐색범위라고 한다. 여기서 탐색범위는 사용자에 의해 주어지는 입력에 의해 결정된다.Referring to FIG. 2, in the video encoder standard, a definition of neighboring blocks A, B, C, and D used for effective compression of the current block X is shown. MVP uses motion vectors of blocks A, B, and C. If C is not valid, D is used. The median of three motion vectors is taken along each direction (X-axis direction, Y-axis direction). Using this intermediate value as the center point, the block most similar to the current block is searched for in the previously encoded frame. The position of the most similar block and the current block is called a motion vector. The process of finding a motion vector is called motion estimation, and the range for finding a motion vector is called a search range. The search range is determined by the input given by the user.

움직임 추정은 MVP를 탐색의 중심 좌표로 설정하고 이 중심 좌표를 중심으로 사용자에 의해 주어진 탐색범위의 범위 만큼 움직임 벡터를 탐색하는 것이다. 따라서 탐색 범위 내에서 찾아진 최적 포인트의 좌표와 MVP를 더함으로써 실제 움직임 벡터를 얻게 되며, 부호화 시에는 MVP로부터 움직임 벡터가 얼마나 떨어져 있는지(MVD에 해당됨)를 부호화 하게 된다.  The motion estimation sets the MVP as the center coordinate of the search and searches for the motion vector by the range of the search range given by the user about the center coordinate. Accordingly, the actual motion vector is obtained by adding the coordinates of the optimum point found in the search range and the MVP, and during encoding, the distance of the motion vector from the MVP (corresponding to the MVD) is encoded.

본 발명에 따른 인접한 블록의 움직임 벡터를 이용한 고속 움직임 추정 방법에서는 MVP를 중심으로 탐색 범위가 설정되므로 이 탐색 범위는 움직임 벡터 보다는 움직임 벡터 차 (MVD)와 직접적으로 관련된다는 점을 주목하고 이에 대하여 움직임 추정방법을 제시한다. In the fast motion estimation method using the motion vectors of adjacent blocks according to the present invention, since the search range is set around the MVP, it is noted that the search range is directly related to the motion vector difference (MVD) rather than the motion vector. Provide an estimation method.

여기서 이전 프레임의 동일 위치의 블록을 '동일위치블록'이라고 칭하며, 도 3은 동일위치블록을 도식적으로 보여준다. Here, the same position block of the previous frame is referred to as 'same position block', and FIG. 3 schematically shows the same position block.

도2에 나타난 주변 블록 A, B, C, D, 그리고 도3에 나타난 동일위치블록 E의 움직임 벡터를 각각

Figure pat00002
라고 할 때, 현재 블록 X의 움직임 벡터는 통계적으로
Figure pat00003
들과 유사할 가능성이 높다. 따라서 이 벡터들과 현재 블록의 MVP와의 차이는 실제 부호화할 움직임벡터의 차벡터와 유사할 가능이 높다. The motion vectors of the neighboring blocks A, B, C, and D shown in FIG.
Figure pat00002
, The motion vector of the current block X is statistically
Figure pat00003
Likely to Therefore, the difference between these vectors and the MVP of the current block is likely to be similar to the difference vector of the motion vector to be actually encoded.

본 발명에 따른 인접한 블록의 움직임 벡터를 이용한 고속 움직임 추정 방법은 움직임 탐색범위는 현재 블록의 움직임 벡터의 크기가 아니라 차벡터 MVD가 포함될 수 있도록 움직임 탐색범위를 설정해야 한다는 점이다. 따라서, 본 발명에서는 차벡터 MVD의 크기가 크면 탐색범위를 크게 하고 MVD의 크기가 작으면 탐색범위 작게 설정하는 것이다.In the fast motion estimation method using the motion vectors of adjacent blocks according to the present invention, the motion search range should be set so that the difference vector MVD can be included instead of the size of the motion vector of the current block. Therefore, in the present invention, when the size of the difference vector MVD is large, the search range is increased, and when the size of the MVD is small, the search range is set small.

도 4는 본 발명에 따른 움직임 벡터를 이용한 움직임 추정방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a motion estimation method using a motion vector according to the present invention.

도 4에서 보는 바와 같이 본 발명에 따른 움직임 추정방법은 현재블럭의 주변 블록의 움직임 벡터(

Figure pat00004
)를 입력받고, (단계 S101) 현재 블록의 움직임 벡터의 예측 벡터(MVP)를 입력 받는다.(단계 S102) 입력된 주변 블록의 움직임 벡터와 예측 벡터의 차이를 계산하여 차벡터를 얻은 다음(단계 S103) 차벡터의 평균을 계산한다.(단계 S104)As shown in FIG. 4, the motion estimation method according to the present invention provides a motion vector of a neighboring block of the current block.
Figure pat00004
) Is inputted (step S101) and a prediction vector (MVP) of the motion vector of the current block. (Step S102) a difference vector is obtained by calculating a difference between the motion vector and the prediction vector of the input neighboring block (step S102). S103) Calculate the average of the difference vectors (step S104).

차벡터의 평균을 이용하여 x방향과 y방향의 탐색범위를 결정하고 난 다음(단계 S105) 단계 S105에서 결정된 탐색범위를 탐색 범위로하는 움직임 추정단계(S106)로 구성된다.After determining the search range in the x-direction and the y-direction by using the average of the difference vectors (step S105), the motion estimation step (S106) includes the search range determined in step S105 as the search range.

먼저 본 발명에 따른 움직임 추정방법은 현재 블럭의 주변 블록의 움직임 벡터(

Figure pat00005
)를 입력받고, 현재 블록의 움직임 벡터의 예측 벡터(MVP)를 입력 받는다. 입력된 주변 블록의 움직임 벡터와 예측 벡터의 차이를 계산하여 MVP로부터 움직임 벡터가 얼마나 떨어져 있는지를 나타내는 차벡터(MVD)를 획득한다. First, the motion estimation method according to the present invention provides a motion vector of a neighboring block of the current block.
Figure pat00005
) And a prediction vector (MVP) of the motion vector of the current block. The difference between the motion vector and the prediction vector of the input neighboring block is calculated to obtain a difference vector MVD indicating how far the motion vector is from the MVP.

현재 블록의 움직임 벡터가 매우 크다고 하더라도 MVP가 이 움직임 벡터와 유사하다면 MVD는 작은 값이 나오게 되고 좁은 탐색범위로도 현재 블록의 움직임 벡터를 성공적으로 찾아낼 수 있다. 따라서 MVD의 크기가 얼마인지를 가늠해내는 것이 중요한 데, 종래 방법에는 동적탐색방법은 이점을 고려하지 못하고 움직임 벡터 자체의 크기만을 고려하였다. 이에 따라 현재 블록의 MVD와 통계적으로 유사하다고 판단되는 MVP와의 차이 벡터 5개를 도입하여 탐색영역을 설정하는데 활용한다. 하기 <수학식1>은 이 차이 벡터 5개를 정의한다. 하기의 수학식들에서

Figure pat00006
는 현재 블록을 둘러싼 주변 블록의 움직임 벡터이고, MVP는 현재 블록의 움직임 벡터의 예측 벡터이며, MVD는 MVP로부터 움직임 벡터가 얼마나 떨어져 있는지를 나타내는 차벡터이다. Even if the motion vector of the current block is very large, if the MVP is similar to this motion vector, the MVD will have a small value and the motion vector of the current block can be found successfully with a narrow search range. Therefore, it is important to estimate the size of the MVD. In the conventional method, the dynamic search method does not consider the advantage but only the size of the motion vector itself. Accordingly, five difference vectors from MVP which are determined to be statistically similar to the MVD of the current block are introduced and used to set the search area. Equation 1 defines five difference vectors. In the following equations
Figure pat00006
Is a motion vector of the neighboring block surrounding the current block, MVP is a prediction vector of the motion vector of the current block, and MVD is a difference vector indicating how far the motion vector is from the MVP.

Figure pat00007
Figure pat00007

Figure pat00008
,
Figure pat00008
,

Figure pat00009
,
Figure pat00009
,

Figure pat00010
,
Figure pat00010
,

Figure pat00011
Figure pat00011

<수학식1>의 5개의 벡터의 크기의 평균으로 현재 블록의 MVD가 어느 정도의 크기를 가질 것인지 추측할 수 있다. 벡터의 크기는 x방향과 y방향에 대해 각각 별도로 적용되며, x방향의 평균과 y방향의 평균은 각각

Figure pat00012
,
Figure pat00013
로 나타내며 <수학식2>와 같다. 여기서 5개의 벡터에 대해 평균을 취하였지만 5개 중 일부만을 취할 수도 있다.By the average of the magnitudes of the five vectors of Equation 1, it can be estimated how much the MVD of the current block will have. The magnitude of the vector is applied separately for the x and y directions, and the mean in the x direction and the mean in the y direction are respectively
Figure pat00012
,
Figure pat00013
It is represented by <Equation 2>. Here we averaged five vectors, but we could take only some of the five vectors.

Figure pat00014
Figure pat00014

Figure pat00015
Figure pat00015

<수학식2>에서 A, C, D에 대한 차벡터는 블록의 위치에 따라 존재하지 않을 수 있으며, 이 경우 <수학식2>에 포함시키지 않는다. 즉, 만약 D에 대한 차벡터 (

Figure pat00016
)가 존재하지 않는 경우에는 나머지 4개 벡터를 이용하여 평균을 계산한다. 차벡터의 평균은 <수학식2>에서 보는 바와 같이 구할 수 있을 뿐만 아니라 <수학식2>에 나타난 5개의 벡터의 일부 벡터들에 대한 평균으로도 구할 수 있으며 그 방법은 제한할 필요가 없다. 그래서 차벡터의 평균을 구하는 또 다른 방법의 예로서 <수학식3>이 있다. In Equation 2, the difference vectors for A, C, and D may not exist depending on the position of the block, and in this case, they are not included in Equation 2. That is, if the difference vector for D
Figure pat00016
If none exists, use the remaining four vectors to calculate the mean. The average of the difference vectors can be obtained not only as shown in Equation 2, but also as an average of some vectors of the five vectors shown in Equation 2, and the method need not be limited. Thus, as an example of another method of calculating the mean of the difference vectors, Equation 3 is given.

Figure pat00017
Figure pat00017

Figure pat00018
Figure pat00018

<수학식2> 또는 <수학식3>과 유사한 방법에 의해 얻어진 차벡터의 평균을 기반으로 x방향과 y방향의 움직임 탐색범위를 설정한다. 즉, x방향과 y방향의 탐색범위

Figure pat00019
,
Figure pat00020
는 <수학식4>와 같이 설정할 수 있다. A motion search range in the x and y directions is set based on the average of the difference vectors obtained by the method similar to Equation (2) or (3). That is, the search range in the x direction and the y direction
Figure pat00019
,
Figure pat00020
Can be set as in Equation 4.

Figure pat00021
Figure pat00021

Figure pat00022
Figure pat00022

<수학식4>에서 max{ㆍ,ㆍ}는 두 개의 값 중 큰 값을 취하는 연산자이며,

Figure pat00023
는 MVD의 평균보다 몇 배의 범위까지 탐색범위를 확장할 것을 결정해주는 상수이며,
Figure pat00024
는 MVD가 0인 경우 탐색범위가 0이 되는 현상을 방지해주기 위한 최소 탐색 범위를 나타내는 상수이다.
Figure pat00025
를 크게 함으로써 실제 MVD가 탐색범위에 포함될 가능성이 커지는 반면 탐색범위가 넓어져 계산량이 보다 더 요구된다. 한편으로는
Figure pat00026
를 통해 움직임 추정기의 계산량을 제어할 수도 있다. 적은 계산량이 요구되는 상황이라면
Figure pat00027
를 작게 설정함으로써 성능 저하를 일부 감수하면서 계산량을 감소할 수 있게 된다.In Equation 4, max {·, ·} is an operator that takes the larger of two values.
Figure pat00023
Is a constant that determines how to extend the search by several times the average of the MVD.
Figure pat00024
Is a constant indicating the minimum search range to prevent the search range from becoming zero when MVD is zero.
Figure pat00025
By increasing, the possibility of actual MVD being included in the search range increases, while the search range is widened, which requires more computation. On one hand
Figure pat00026
The amount of computation of the motion estimator can also be controlled through. In situations where a small amount of computation is required
Figure pat00027
By setting the to small, it is possible to reduce the amount of calculation while taking part in performance degradation.

그러므로, 주변 블록의 움직임벡터와 현재 블록의 움직임 추정의 탐색 중심점과의 차이가 크면 즉, 차벡터가 크면 넓은 범위를 탐색한다. 또한, 주변 블록의 움직임벡터와 현재 블록의 움직임 추정의 탐색 중심점과의 차이가 작으면 즉, 차벡터가 작으면 좁은 범위를 탐색함으로써 계산량을 크게 감소시키는 것이다. Therefore, if the difference between the motion vector of the neighboring block and the search center point of the motion estimation of the current block is large, that is, the difference vector is large, a wide range is searched. In addition, if the difference between the motion vector of the neighboring block and the search center point of the motion estimation of the current block is small, that is, the difference vector is small, the calculation amount is greatly reduced by searching for a narrow range.

이상에서 본 발명의 바람직한 실시예를 상세히 설명하였으나, 본 발명은 이에 한정되는 것이 아니며 본 발명의 기술적 사상의 범위내에서 당업자에 의해 그 개량이나 변형이 가능하다. Although the preferred embodiment of the present invention has been described in detail above, the present invention is not limited thereto and may be improved or modified by those skilled in the art within the scope of the technical idea of the present invention.

Claims (3)

ⅰ)부호화를 수행하는 현재 블록을 둘러싼 주변 블록의 움직임 벡터(
Figure pat00028
)를 입력받는 단계;
ⅱ)현재 블록의 움직임 벡터의 예측 벡터(MVP)를 입력 받고, 입력된 주변 블록의 움직임 벡터와 상기 예측 벡터(MVP)의 차이를 계산하여 차벡터를 얻는 단계;
ⅲ)상기 단계에서 획득된 차벡터의 평균을 계산하고 차벡터의 평균을 이용하여 x방향과 y방향의 탐색범위를 설정하는 단계; 그리고,
ⅳ)상기 ⅲ단계에서 설정된 탐색범위를 탐색범위로 하는 움직임을 추정하는 단계를 포함하는 인접한 블록의 움직임 벡터를 이용한 고속 움직임 추정 방법.
(I) the motion vector of the neighboring block surrounding the current block that performs encoding
Figure pat00028
);
Ii) receiving a prediction vector (MVP) of a motion vector of a current block, and calculating a difference vector by calculating a difference between the input motion vector of the neighboring block and the prediction vector (MVP);
Iii) calculating an average of the difference vectors obtained in the step and setting a search range in the x direction and the y direction using the average of the difference vectors; And,
Iii) estimating a motion having the search range set in step 로 as the search range.
청구항 1에 있어서, 상기 ⅲ)단계에서 차벡터의 평균을 계산하는 단계는 부호화를 수행하는 현재 블록을 둘러싼 5개의 주변 블록의 움직임 벡터의 전체의 평균을 계산하는 방법 또는 현재 블록을 둘러싼 5개의 주변 블록의 움직임 벡터에서 일부만을 취하여 평균을 계산하는 방법중에 선택되는 하나의 방법임을 특징으로 하는 인접한 블록의 움직임 벡터를 이용한 고속 움직임 추정 방법. The method of claim 1, wherein the calculating of the average of the difference vectors in step iii) comprises calculating a method of calculating the average of the motion vectors of the five neighboring blocks surrounding the current block to be encoded or the five surroundings of the current block. A method of fast motion estimation using motion vectors of adjacent blocks, wherein the method selects only a part of the motion vectors of a block and calculates an average. 청구항 1에 있어서, 상기 ⅲ)단계에서 차벡터의 평균을 기반으로 x방향과 y방향의 움직임 탐색범위를 설정하는 것은 차벡터의 평균에 비례하도록 하기 수학식 1에 의하여 수행됨을 특징으로 하는 인접한 블록의 움직임 벡터를 이용한 고속 움직임 추정 방법.
Figure pat00029

Figure pat00030
수학식 1
상기 수학식 1에서
Figure pat00031
,
Figure pat00032
는 x방향과 y방향의 탐색범위, max{ㆍ,ㆍ}는 두 개의 값 중 큰 값을 취하는 연산자,
Figure pat00033
는 MVD의 평균보다 몇 배의 범위까지 탐색범위를 확장할 것을 결정해주는 상수이며,
Figure pat00034
는 MVD가 0인 경우 탐색범위가 0이 되는 현상을 방지해주기 위한 최소 탐색 범위를 나타내는 상수임.
The adjacent block as set forth in claim 1, wherein the setting of the motion search range in the x direction and the y direction based on the mean of the difference vectors is performed by Equation 1 below to be proportional to the mean of the difference vectors. Fast Motion Estimation Using Motion Vectors.
Figure pat00029

Figure pat00030
Equation 1
In Equation (1)
Figure pat00031
,
Figure pat00032
Is the search range in the x and y directions, max {·, ·} is the operator that takes the larger of the two values,
Figure pat00033
Is a constant that determines how to extend the search by several times the average of the MVD.
Figure pat00034
Is a constant that indicates the minimum search range to prevent the search range from becoming zero when MVD is zero.
KR1020110122726A 2011-11-23 2011-11-23 Method for fast motion estimation using motion vectors of neighboring blocks KR101324352B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110122726A KR101324352B1 (en) 2011-11-23 2011-11-23 Method for fast motion estimation using motion vectors of neighboring blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110122726A KR101324352B1 (en) 2011-11-23 2011-11-23 Method for fast motion estimation using motion vectors of neighboring blocks

Publications (2)

Publication Number Publication Date
KR20130057020A true KR20130057020A (en) 2013-05-31
KR101324352B1 KR101324352B1 (en) 2013-11-01

Family

ID=48664848

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110122726A KR101324352B1 (en) 2011-11-23 2011-11-23 Method for fast motion estimation using motion vectors of neighboring blocks

Country Status (1)

Country Link
KR (1) KR101324352B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111919439A (en) * 2018-04-02 2020-11-10 华为技术有限公司 Video coding and decoding method and device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100597397B1 (en) * 2003-11-06 2006-07-07 삼성전자주식회사 Method For Encording Moving Picture Using Fast Motion Estimation Algorithm, And Apparatus For The Same

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111919439A (en) * 2018-04-02 2020-11-10 华为技术有限公司 Video coding and decoding method and device
CN111919439B (en) * 2018-04-02 2022-01-14 华为技术有限公司 Method and device for acquiring motion vector, method and device for constructing motion vector set and computer-readable storage medium
US11394996B2 (en) 2018-04-02 2022-07-19 Huawei Technologies Co., Ltd. Video coding method and apparatus

Also Published As

Publication number Publication date
KR101324352B1 (en) 2013-11-01

Similar Documents

Publication Publication Date Title
JP2021022936A (en) Image prediction method and related device
KR101384437B1 (en) Speculative start point selection for motion estimation iterative search
JP5044568B2 (en) Motion estimation using predictive guided decimation search
JP5752204B2 (en) Image decoding apparatus and image decoding method
JP2008252176A (en) Motion picture encoder and encoding method
JP6825765B2 (en) Filtering methods and equipment for removing blocking artifacts
AU2015213343A1 (en) Video decoder, video encoder, video decoding method, and video encoding method
JP5649523B2 (en) Video encoding method, apparatus, video decoding method, apparatus, and program thereof
JP4937224B2 (en) Image encoding device
JP5248632B2 (en) Techniques for motion estimation
JP6607040B2 (en) Motion vector search apparatus, motion vector search method, and recording medium for storing motion vector search program
JP2011229145A (en) Method of performing hybrid multi-hypothesis prediction in moving picture encoding by encoding unit, and related device
KR101623064B1 (en) Video encoding device, video encoding method and video encoding program
KR100618910B1 (en) Motion Estimation apparatus and method with optmized operation complexity
JP2009049519A (en) Prediction motion vector generating device of motion picture coding device
CN107613294B (en) Method for rapidly skipping P, B frame intra-frame prediction mode in HEVC
JP2007228519A (en) Image encoding device and image encoding method
US9077996B2 (en) Predicted motion vectors
EP2648409B1 (en) Quantization control device and method, and quantization control program
KR101324352B1 (en) Method for fast motion estimation using motion vectors of neighboring blocks
Pan et al. Predictive and distribution-oriented fast motion estimation for H. 264/AVC
Lin et al. Improved parabolic prediction-based fractional search for H. 264/AVC video coding
KR101182037B1 (en) Apparatus and method for high precision motion estimation in video signal
Jeong et al. A diamond web-grid search algorithm combined with efficient stationary block skip method for H. 264/AVC motion estimation
JP5521859B2 (en) Moving picture coding apparatus and method

Legal Events

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

Payment date: 20161005

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee