Nothing Special   »   [go: up one dir, main page]

KR19990086890A - Motion estimation method - Google Patents

Motion estimation method Download PDF

Info

Publication number
KR19990086890A
KR19990086890A KR1019980020071A KR19980020071A KR19990086890A KR 19990086890 A KR19990086890 A KR 19990086890A KR 1019980020071 A KR1019980020071 A KR 1019980020071A KR 19980020071 A KR19980020071 A KR 19980020071A KR 19990086890 A KR19990086890 A KR 19990086890A
Authority
KR
South Korea
Prior art keywords
motion vector
motion
motion estimation
macro block
value
Prior art date
Application number
KR1019980020071A
Other languages
Korean (ko)
Other versions
KR100382540B1 (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 KR1019980020071A priority Critical patent/KR100382540B1/en
Publication of KR19990086890A publication Critical patent/KR19990086890A/en
Application granted granted Critical
Publication of KR100382540B1 publication Critical patent/KR100382540B1/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/547Motion estimation performed in a transform domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

시간축의 중복성을 제거하기 위하여 움직임 벡터를 구한 후 픽쳐 사이에서 가장 비슷한 블록을 찾는 움직임 추정 방법에 관한 것으로서, 특히 이미 구해진 다수개의 주변 매크로 블록의 움직임 벡터들의 중간값을 구하는 제 1 단계와, 상기 중간값을 기준으로 주어진 탐색 영역에서 현재 매크로 블록의 움직임 벡터를 구하여 움직임 추정을 수행하는 제 2 단계로 이루어져, 주변 움직임 벡터에 의해 구해진 새로운 탐색 영역을 이용하여 움직임 벡터를 구한 후 움직임 추정을 함으로써, 움직임이 빠른 동화상에서 움직임 추정 능력이 향상되었으며 향후 적은 계산량으로 빠르게 움직이는 움직임 벡터를 찾아야 하는 제품등에 응용할 수 있다. 특히, 제한된 엔코더의 성능에서나 실시간 처리를 요하는 경우에 있어서는 적은 탐색 영역에서 움직임 벡터를 찾아야 하는데, 이 경우에도 보다 정확한 움직임 벡터를 찾아낼 수 있다.A motion estimation method for finding the most similar block among pictures after obtaining a motion vector to remove the redundancy of the time axis. In particular, a first step of obtaining a median value of motion vectors of a plurality of neighboring macroblocks already obtained; The second step is to perform motion estimation by obtaining the motion vector of the current macroblock in the given search area based on the value, and obtain the motion vector using the new search area obtained by the neighboring motion vector, and then perform the motion estimation. The motion estimation capability has been improved in this fast moving image, and it can be applied to products that need to find a fast moving motion vector with a small amount of computation in the future. In particular, in the case of limited encoder performance or when real-time processing is required, a motion vector must be found in a small search area, and in this case, a more accurate motion vector can be found.

Description

움직임 추정 방법Motion estimation method

본 발명은 동영상 압축에 관한 것으로서, 특히 MPEG(Moving Picture Experts Group) 엔코더에서의 움직임 추정(Motion estimation) 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to video compression, and more particularly, to a motion estimation method in a moving picture expert group (MPEG) encoder.

멀티미디어를 지원해주는 핵심 요소로는 디지털화와 더불어 화상 압축 기술이 있다. 최근들어 정보의 디지탈화가 급속도로 발전하고 있으며, 이에 따라 화상 압축 기술이 매우 중요하게 부각되고 있다.Key factors supporting multimedia include digitalization and image compression technology. Recently, digitalization of information has been rapidly developed, and image compression technology is very important.

동화상 전문가 그룹(Moving Pictures Expert Group ; MPEG)은 멀티미디어 환경에 가장 핵심 기술인 디지털 동영상의 압축 부호화를 위한 국제적인 표준안이다.Moving Pictures Expert Group (MPEG) is an international standard for the compression encoding of digital video, the most critical technology in a multimedia environment.

이때, 시간에 따라 변화하는 비디오 시퀀스를 효율적으로 압축하기 위해서는 영상 데이터가 갖고 있는 2차원 공간상의 중복성뿐만 아니라 시간축의 중복성 제거가 절대적으로 필요하므로, MPEG 비디오 압축 알고리즘은 두 가지 기본 기술을 바탕으로 한다. 즉, 시간 중복성(Temporal Redundancy)을 줄이기 위해서 블록 단위의 움직임 추정 및 보상을 이용하고, 공간 중복성(Spatial Redundancy)을 줄이기 위해서 이산 코사인 변환(Discrete Cosine Transform ; DCT)을 이용한다.At this time, in order to efficiently compress the video sequence that changes with time, it is absolutely necessary to remove the redundancy of the time axis as well as the two-dimensional redundancy of the image data. Therefore, the MPEG video compression algorithm is based on two basic techniques. . In other words, a block-based motion estimation and compensation are used to reduce temporal redundancy, and a discrete cosine transform (DCT) is used to reduce spatial redundancy.

도 1은 일반적인 동화상 압축 특히, MPEG 엔코더의 구성 블록도로서, DCT부(11)는 2차원 축변환을 통해서 데이터의 상관성을 제거하는데, 이를 위해 픽쳐를 블록 단위로 나눈 후 나누어진 각각의 블록을 DCT식에 따라 축변환시킨다. 이렇게 축변환된 데이터들은 한쪽 방향(저역 쪽)으로 몰리는 경향이 있는데 이렇게 몰려진 데이터들만을 양자화부(12)에서 양자화한 후 가변 길이 코딩(Variable Length Coding ; VLC)부(13)로 출력된다. 상기 VLC부(13)는 자주 나오는 값은 적은 수의 비트로, 드물게 나오는 값은 많은 수의 비트로 표시하여 전체 비트 수를 줄인 후 선입선출(FIFO) 메모리(17)를 통해 전송한다. 또한, 상기 양자화된 데이터는 다시 역양자화부(14)에서 역양자화되고 IDCT부(15)에서 IDCT된 후 움직임 추정 및 보상(motion estimation/motion compensation ; ME/MC)부(16)로 출력된다.FIG. 1 is a block diagram of a general video compression, in particular, an MPEG encoder. The DCT unit 11 removes correlation of data through two-dimensional axis transformation. For this purpose, each block divided after a picture by a block unit is divided. The axis is converted according to the DCT equation. The axially transformed data tends to converge in one direction (lower frequency side). Only the collected data are quantized in the quantization unit 12 and then output to the variable length coding (VLC) unit 13. The VLC unit 13 displays a frequent value as a small number of bits and a rare value as a large number of bits to reduce the total number of bits and then transmit the first-in-first-out (FIFO) memory 17. In addition, the quantized data is dequantized by the inverse quantization unit 14 and IDCT by the IDCT unit 15 and then output to the motion estimation / motion compensation (ME / MC) unit 16.

한편, 시간축으로 연속된 픽쳐들은 주로 화면의 중앙 부분에서 사람이나 물체의 움직임이 있기 때문에 움직임 추정 및 보상부(16)에서는 이러한 성질을 이용하여 시간축의 중복성을 제거한다. 즉, 화면의 변하지 않은 부분이나 움직였다 하더라도 비슷한 부분을 바로 전 픽쳐에서 가져와서 채움으로써 전송해야 할 데이터량을 큰 폭으로 줄일 수 있다.On the other hand, since pictures that are continuous on the time axis mainly move a person or an object in the center portion of the screen, the motion estimation and compensation unit 16 uses this property to remove the redundancy of the time axis. That is, the amount of data to be transmitted can be greatly reduced by taking and filling a similar portion from the previous picture even if it is not changed or moved.

예컨대, 상기 IDCT부(15)의 출력과 상기 움직임 추정 및 보상부(16)의 출력을 더해서 프레임 메모리에 저장하면 현재 입력되는 픽쳐의 움직임 추정시 프레임 메모리에 저장된 데이터가 바로 전 픽쳐가 된다.For example, when the output of the IDCT unit 15 and the output of the motion estimation and compensation unit 16 are added and stored in the frame memory, the data stored in the frame memory when the motion of the currently input picture is estimated becomes the previous picture.

이렇게 픽쳐 사이에서 가장 비슷한 블록을 찾는 일을 움직임 추정(Motion Estimation)이라 하며, 얼마만큼 움직였는가 하는 변위를 나타내는 것을 움직임 벡터(Motion vector ; MV)라 한다.Finding the most similar block among the pictures is called motion estimation and motion vector (MV) is used to represent the displacement of how much motion is moved.

그리고, 상기 움직임 보상 과정은 전방향(Forward), 후방향(Backword) 예측 (Prediction) 블록들을 이용하는데, 두 가지의 움직임 보상 프레임이 있다. P-프레임은 전방향 예측만으로 움직임 보상이 이루어지며 그 자체로 다음 P-프레임을 예측하는데 사용된다. 또한, B-프레임(양 방향에서 예측된 프레임)의 전방향 및 후방향 예측을 위해서도 사용된다. 그러나, B-프레임은 그 자체로서 예측을 위해 사용되지는 않는다.The motion compensation process uses forward and backward prediction blocks, and there are two motion compensation frames. P-frames are motion compensated only by forward prediction and are used to predict the next P-frame by itself. It is also used for forward and backward prediction of B-frames (frames predicted in both directions). However, B-frames are not used for prediction by themselves.

즉, I(Intra) 픽쳐는 임의의 화면을 압축 부호화할 때 기준이 되는 화면으로 원 신호를 블록마다 DCT 변환과 양자화 과정을 적용하여 공간 방향의 중복성만을 제거한다. P(Predicted) 픽쳐는 I, P-픽쳐로부터 원본 화면과 가장 가깝게 예측해 내는 것으로 이미 부호화된 I-픽쳐 또는 P-픽쳐와의 움직임 보상간 예측 오차 신호와 움직임 벡터는 매크로 블록마다 부호화되고, 예측 오차 신호는 블록마다 DCT 연산 후 양자화, VLC된다. B(Bi-Directional) 픽쳐는 이전 I-, P-픽쳐에서만 예측하여 화면을 구성하는 것, 그 다음 I-, P-픽쳐에서 역방향으로 예측하는 것, 이 두가지 방법(전방향, 후방향)을 평균하는 화면을 만들어 세가지 중 원본과 가장 비슷하게 예측된 화면을 선택하는 다소 복잡한 픽쳐이다.In other words, an I (Intra) picture is a reference picture when compressing and encoding an arbitrary picture, and removes only redundancy in a spatial direction by applying DCT transformation and quantization processes of the original signal for each block. P (Predicted) picture is predicted closest to the original picture from I, P-picture. Prediction error signal and motion vector between motion compensation with I-picture or P-picture already encoded are encoded per macroblock, and prediction error. The signal is quantized and VLC after a DCT operation per block. Bi-Directional (B) pictures are predicted only in the previous I- and P-pictures to construct the screen, and then I- and P-pictures are predicted in the reverse direction. It's a rather complex picture that creates an averaged picture and selects the predicted picture that most closely resembles the original.

이는 I 픽쳐는 그대로 DCT부(11)로 입력되어 DCT를 하고, I나 P 픽쳐는 움직임 추정 및 움직임 보상부(16)에서 움직임 보상을 한 후 현재 입력되는 신호와의 차이를 DCT부(11)로 출력하여 DCT를 한다.The I picture is input to the DCT unit 11 as it is to perform DCT, and the I or P picture is compensated for by the motion estimation and motion compensation unit 16, and then the difference between the current input signal and the DCT unit 11. Output to DCT.

이와 같이 상기 움직임 추정 및 보상부(16)는 연속되는 동화상의 전송에 있어서 현재의 프레임이 이전 프레임과 상당한 연관성이 있음을 이용한 것으로서, 화상 처리를 16×16 매크로 블록 단위로 나누어 주어진 탐색 영역내에서 이전 프레임의 픽셀들과 비교하여 가장 근사치의 움직임 벡터를 찾으며 여기서 구해진 움직임 벡터만으로도 원 영상의 상당 부분을 유사하게 복원시킬 수 있다.As described above, the motion estimation and compensator 16 utilizes the fact that the current frame is significantly associated with the previous frame in the transmission of successive moving images. The motion estimation and compensation unit 16 divides the image processing into units of 16 × 16 macroblocks in a given search area. Compared to the pixels of the previous frame to find the most close motion vector, the motion vector obtained here can similarly reconstruct a large part of the original image.

상기 움직임 벡터에 의해 복원된 영상은 특히 움직임이 적은 배경 화면등에서 효과가 커서 거의 원 영상에 가까운 화질을 얻을 수 있다. 그러나, 움직임이 급격히 변하는 부분에 있어서는 원 영상과 차이가 커지며 이런 경우 움직임 벡터를 사용하지 않고 인트라 코딩을 하거나 차분치를 보상하기 위해 추가 화소 정보를 코딩하여 보냄으로서 원 영상에 가까운 화질을 복원할 수 있게 한다. 그러므로 움직임 벡터를 얼마나 잘 찾느냐에 따라 압축율을 더 높일 수 있다.The image reconstructed by the motion vector has a great effect, especially on a background screen having a small movement, and thus an image quality almost close to the original image can be obtained. However, in the part where the motion changes drastically, the difference is larger than the original image. In this case, the image quality can be reconstructed close to the original image by sending additional pixel information to perform intra coding or compensate for the difference without using a motion vector. do. Therefore, the compression rate can be further increased depending on how well the motion vectors are found.

도 2는 일반적으로 사용하는 움직임 추정 방법으로서, f_code 값에 의해 탐색 영역이 결정되고 그 범위내에서 이전 프레임과의 차분치가 가장 적은 위치 벡터를 찾는다. 여기서, 상기 f_code 값은 엔코더의 능력에 따라 정해진다. 즉, f_code값이 클수록 탐색 영역이 넓어져 움직임이 빠른 움직임 벡터도 잘 찾을 수 있지만 계산량이 많아지기 때문에 엔코더의 성능이나 움직임 벡터의 빠르기를 고려하여 적절한 탐색 영역을 선택해야 한다.2 is a general motion estimation method, in which a search region is determined by a value of f_code, and the position vector having the smallest difference with the previous frame is found within the range. Here, the f_code value is determined according to the capability of the encoder. In other words, the larger the f_code value, the wider the search region, and thus the faster the motion vector can be found. However, since the computational amount increases, the appropriate search region should be selected in consideration of the encoder's performance or the speed of the motion vector.

예를 들면, 탐색 영역 변화에 따른 움직임 추정 계산량의 증가는 다음과 같다.For example, the increase of the motion estimation calculation amount according to the change of the search area is as follows.

f_code = 1일 때 탐색 범위 : x,y 각 방향으로 [-8 ∼ 7]Search range when f_code = 1: [-8 ∼ 7] in each direction of x, y

(각 픽셀당 16×16의 덧셈과 뺄셈 수행) × 16 × 16 = 65,536회의 덧셈, 뺄셈 수행 + 256회의 비교 수행.(16 × 16 addition and subtraction per pixel) × 16 × 16 = 65,536 additions, subtractions + 256 comparisons.

f_code = 2일 때 탐색 범위 : x,y 각 방향으로 [-16 ∼ 15]Search range when f_code = 2: [-16 ~ 15] in each direction of x and y

(각 픽셀당 16×16의 덧셈과 뺄셈 수행) × 32 × 32 = 262,114회의 덧셈, 뺄셈 수행 + 1024회의 비교 수행.(16 × 16 addition and subtraction per pixel) × 32 × 32 = 262,114 additions, subtractions + 1024 comparisons.

따라서, f_code 값이 1씩 증가할 때마다 계산량이 4배씩 증가함을 알 수 있다.Therefore, it can be seen that the computation amount increases by four times whenever the f_code value increases by one.

이와 같이 동영상 압축에 있어서 얼마나 효율적으로 움직임 벡터를 찾느냐하는 것이 압축율이나 화질에 영향을 크게 미친다. 특히 로우 비트레이트(Low bitrate)일수록 움직임 추정의 중요성은 더욱 커지며 보다 정확한 움직임 벡터를 찾기 위해서 탐색 영역을 넓혀야 한다. 그러나 탐색 영역을 넓히면 그만큼 계산량이 증가하는 문제가 발생한다.As such, how efficiently a motion vector is found in the video compression greatly affects the compression ratio and the image quality. In particular, the lower the bitrate, the greater the importance of motion estimation and the search area should be widened to find a more accurate motion vector. However, if the search area is widened, the amount of computation increases.

본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 이전에 구해진 주변 3개의 매크로 블록의 움직임 벡터중 중간 값을 기준으로 주어진 탐색 범위에서 움직임 벡터를 찾음으로써, 적은 탐색 영역에서도 보다 정확한 움직임 벡터를 찾는 움직임 추정 방법을 제공함에 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to find a motion vector in a given search range based on a median value of motion vectors of three neighboring macroblocks previously obtained, so that even in a small search area. The present invention provides a motion estimation method for finding an accurate motion vector.

도 1은 일반적인 MPEG 엔코더의 구성 블록도1 is a block diagram of a typical MPEG encoder

도 2는 종래의 움직임 추정 방법에서 움직임 벡터를 찾는 과정을 나타낸 도면2 is a diagram illustrating a process of finding a motion vector in a conventional motion estimation method.

도 3은 본 발명에 따른 움직임 추정 방법에서 현 매크로 블록의 움직임 벡터를 찾는 과정의 일실시예를 나타낸 도면3 is a diagram illustrating an embodiment of a process of finding a motion vector of a current macroblock in a motion estimation method according to the present invention;

도 4는 도 3의 움직임 추정 과정을 나타낸 흐름도4 is a flowchart illustrating a motion estimation process of FIG. 3.

도 5는 본 발명에 따른 움직임 추정 방법에서 현 매크로 블록의 움직임 벡터를 찾는 과정의 다른 실시예를 나타낸 도면5 is a view showing another embodiment of a process of finding a motion vector of a current macroblock in a motion estimation method according to the present invention;

도 6은 도 3의 움직임 추정 방법에 의한 실험 결과를 표로 나타낸 도면6 is a table showing experimental results by the motion estimation method of FIG. 3.

도 7은 도 5의 움직임 추정 방법에 의한 실험 결과를 표로 나타낸 도면FIG. 7 is a table showing experimental results by the motion estimation method of FIG. 5.

도면의 주요부분에 대한 부호의 설명Explanation of symbols for main parts of the drawings

11 : DCT부 12 : 양자화부11 DCT unit 12 quantization unit

13 : VLC부 14 : 역 양자화부13: VLC section 14: inverse quantization section

15 : IDCT부 16 : 움직임 추정 및 보상부15: IDCT unit 16: motion estimation and compensation unit

17 : FIFO17: FIFO

상기와 같은 목적을 달성하기 위한 본 발명에 따른 움직임 추정 방법은, 이미 구해진 다수개의 주변 매크로 블록의 움직임 벡터들의 중간값을 구하는 제 1 단계와, 상기 중간값을 기준으로 주어진 탐색 영역에서 현재 매크로 블록의 움직임 벡터를 구하여 움직임 추정을 수행하는 제 2 단계로 이루어짐을 특징으로 한다.According to an aspect of the present invention, there is provided a motion estimation method comprising: a first step of obtaining a median of motion vectors of a plurality of neighboring macroblocks already obtained, and a current macroblock in a given search region based on the median And a second step of performing a motion estimation by obtaining a motion vector of.

상기 제 1 단계는 현 매크로 블록과 가장 연관성이 많은 다수개의 이전 매크로 블록의 움직임 벡터들로 정의함을 특징으로 한다.The first step is characterized by defining the motion vectors of the plurality of previous macro blocks most relevant to the current macro block.

상기 제 1 단계의 다수개의 주변 매크로 블록의 움직임 벡터는 현 매크로 블록의 바로 전에 위치하는 매크로 블록의 움직임 벡터(MV1), 현 매크로 블록의 바로 위에 위치하는 매크로 블록의 움직임 벡터(MV2), 그 다음 매크로 블록의 움직임 벡터(MV3)로 정의됨을 특징으로 한다.The motion vectors of the plurality of neighboring macroblocks of the first step may include a motion vector MV1 of the macroblock immediately preceding the current macroblock, a motion vector MV2 of the macroblock located immediately above the current macroblock, and the following. It is characterized by being defined as the motion vector MV3 of the macro block.

상기 제 1 단계의 다수개의 주변 매크로 블록의 움직임 벡터는 현 매크로 블록의 바로 전에 위치하는 매크로 블록의 움직임 벡터(MV1), 현 매크로 블록의 바로 위에 위치하는 매크로 블록의 움직임 벡터(MV2), 현재 매크로 블록의 위치에 대응하는 이전 프레임의 움직임 벡터(MV3)로 정의됨을 특징으로 한다.The motion vectors of the plurality of neighboring macroblocks of the first step include the motion vector MV1 of the macroblock located immediately before the current macroblock, the motion vector MV2 of the macroblock located immediately above the current macroblock, and the current macro. Characterized in that it is defined as the motion vector (MV3) of the previous frame corresponding to the position of the block.

상기 제 2 단계는 상기 중간 값과 현재 위치의 값 중 이전 프레임과의 차분치가 적은 값을 기준으로 하여 주어진 탐색 영역에서 움직임 벡터를 찾음을 특징으로 한다.The second step is characterized in that a motion vector is found in a given search area based on a value of a difference between the intermediate value and the current position having a small difference between the previous frame.

상기 제 2 단계는 상기 중간값에 대한 SAD(Sum of Absolute Difference)과 현재 매크로블록의 SAD 값을 구한 후 그중 SAD 값이 작은 위치를 기준으로 주어진 탐색 영역에서 움직임 벡터를 찾음을 특징으로 한다.The second step is characterized by finding a SAD (Sum of Absolute Difference) for the intermediate value and the SAD value of the current macroblock and finding a motion vector in a given search region based on the position of the smallest SAD value.

본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.Other objects, features and advantages of the present invention will become apparent from the following detailed description of embodiments taken in conjunction with the accompanying drawings.

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

동영상 압축에 있어서 효율적인 움직임 추정은 동영상 압축율을 높이며 화질의 향상을 가져온다. 이때, 제한된 엔코더의 성능에서나 실시간 처리를 요하는 경우에 있어서는 적은 탐색 영역에서 효과적으로 실제 움직임 벡터를 찾아야 한다. 특히, 로우 비트레이트일수록 움직임 추정의 중요성은 더욱 커지며 이를 위해 보다 정확한 움직임 벡터를 찾아야 한다.Efficient motion estimation in video compression increases the video compression rate and improves the picture quality. At this time, in case of limited encoder performance or real time processing, the actual motion vector should be effectively found in a small search area. In particular, the lower the bitrate, the greater the importance of motion estimation and a more accurate motion vector must be found for this purpose.

따라서, 본 발명은 주변 매크로 블록의 움직임 벡터들은 상호 연관성을 가지고 있음을 이용하여 움직임 벡터를 찾는다.Accordingly, the present invention finds a motion vector by using the correlation vectors of neighboring macroblocks.

도 3은 본 발명에 따른 움직임 추정 방법의 실시예를 나타낸 것으로서, 현재 매크로 블록의 움직임 벡터를 구할 때 이웃하는 3개의 후보 벡터(MV1,MV2.MV3)로부터 중간값을 구한다. 상기 3개의 후보 벡터(MV1,MV2,MV3)는 이전에 이미 구해진 움직임 벡터로서, 현 매크로 블록의 바로 전 매크로 블록의 움직임 벡터(MV1), 현 매크로 블록의 바로 위에 위치하는 매크로 블록의 움직임 벡터(MV2), 그 다음 매크로 블록의 움직임 벡터(MV3)로서, 현 매크로 블록의 움직임 벡터와 가장 많은 연관성을 갖고 있다.3 illustrates an embodiment of a motion estimation method according to the present invention. When obtaining a motion vector of a current macroblock, a median value is obtained from three neighboring candidate vectors MV1 and MV2.MV3. The three candidate vectors MV1, MV2, and MV3 are previously obtained motion vectors, the motion vector MV1 of the immediately preceding macroblock of the current macroblock, and the motion vector of the macroblock located immediately above the current macroblock. MV2), the motion vector of the next macroblock (MV3), which has the most association with the motion vector of the current macroblock.

그리고 나서, 상기와 같은 3개의 후보 벡터(MV1,MV2,MV3)중에서 x 좌표의 중간값과 y 좌표의 중간값을 각각 찾는다. 예를 들어, MV1의 x,y 값이 {4,7}, MV2의 x,y 값이 {5,6}, MV3의 x,y 값이 {3,5}이라면, 중간값은 {4,6}가 된다. 상기 중간값에 대한 SAD(Sum of Absolute Difference)과 현재 매크로블록의 SAD 값을 구한 후 그중 SAD 값이 작은 위치를 기준으로 주어진 탐색 영역에서 움직임 벡터를 찾는다. 즉, 상기 중간 값과 현재 위치의 값 중 이전 프레임과의 차분치가 적은 값을 기준으로 하여 주어진 탐색 영역에서 움직임 벡터를 찾는다.Then, among the above three candidate vectors MV1, MV2, and MV3, the median of the x coordinate and the median of the y coordinate are found, respectively. For example, if the x, y value of MV1 is {4,7}, the x, y value of MV2 is {5,6}, and the x, y value of MV3 is {3,5}, the median value is {4, 6}. After calculating the SAD (Sum of Absolute Difference) for the intermediate value and the SAD value of the current macroblock, the motion vector is searched in the given search region based on the position of the smallest SAD value. That is, the motion vector is searched for in a given search area based on the value of the difference between the intermediate value and the current position and the previous frame.

이는 구해진 중간값의 움직임 방향이 현 매크로 블록의 움직임 방향과 반대이거나 움직임이 없는 정지 상태를 고려한 것으로, 움직임이 없거나 움직임 방향이 반대이면 현재 위치의 값을 기준으로 주어진 탐색 영역에서 움직임 벡터를 찾고, 움직임 방향이 비슷한 경우에는 중간값을 기준으로 주어진 탐색 영역에서 움직임 벡터를 찾는다.This takes into account the stationary state where the motion direction of the obtained intermediate value is opposite or no motion direction of the current macroblock.If there is no motion or the direction of motion is opposite, the motion vector is searched in the given search area based on the current position value. If the motion directions are similar, the motion vector is searched for in the given search area based on the median value.

여기서, 중간값을 기준으로 움직임 벡터를 찾을 때를 보면, 도 3에서와 같이 f_code 값은 그대로 유지된 채 탐색 영역만 중간값으로 찾은 기준점을 중심으로 변함을 알 수 있다. 이것은 움직임이 빠르고 탐색 영역이 적은 경우 효과가 크다.Here, when the motion vector is found based on the median value, as shown in FIG. 3, it can be seen that only the search region is changed around the reference point found as the median value while the f_code value is maintained as it is. This is effective when the movement is fast and the search area is small.

도 4는 도 3의 움직임 추정 과정을 흐름도로 나타낸 것이다.4 is a flowchart illustrating a motion estimation process of FIG. 3.

이와 같이 본 발명은 움직임이 비슷한 경우에는 움직임 탐색 영역을 기존의 0을 중심으로 주어진 탐색 범위에서 찾는 것보다 주변 블록의 움직임 벡터가 현재 블록의 움직임 벡터와 많은 연관성을 가지는 점을 이용하여 이전에 구해진 주변 3개의 움직임 벡터중 중간 값을 기준으로 주어진 탐색 범위에서 움직임 벡터를 찾음으로써 적은 탐색 영역에서도 보다 정확한 움직임 벡터를 찾아낼 수 있으며 특히, 로우 비트 레이트의 움직임이 많은 동화상 압축에 적용하면 좋은 화질을 얻을 수 있다.As described above, in the case of similar motions, the present invention was previously made by using the fact that the motion vector of the neighboring block has much correlation with the motion vector of the current block, rather than finding the motion search region in the given search range around the existing zero. By finding a motion vector in a given search range based on the median value of three neighboring motion vectors, it is possible to find a more accurate motion vector even in a small search range. You can get it.

도 5는 본 발명에 따른 움직임 추정 방법의 다른 실시예로서, 도 3과 다른점은 3번째 후보 벡터(MV3)의 정의로서, 도 5는 MV3를 현재 매크로 블록의 위치에 대응하는 이전 프레임의 움직임 벡터를 정의하였다. 그리고 나서, 상기 3개의 후보 벡터(MV1,MV2.MV3)로부터 중간값을 구하고, 상기 중간값에 대한 SAD과 현재 매크로블록의 SAD 값을 구한 후 그중 SAD 값이 작은 위치를 기준으로 주어진 탐색 영역에서 움직임 벡터를 찾는다. 이후 과정은 도 3과 동일하다.5 is another embodiment of a motion estimation method according to the present invention. The difference from FIG. 3 is the definition of the third candidate vector MV3, and FIG. 5 shows the motion of the previous frame corresponding to the position of the current macro block. Vectors were defined. Then, an intermediate value is obtained from the three candidate vectors (MV1, MV2.MV3), the SAD of the intermediate value and the SAD value of the current macroblock are calculated, and then, in the given search region based on the position of the smallest SAD value Find the motion vector. Since the process is the same as FIG.

이것은 현재 구하고자 하는 움직임 벡터가 이전 프레임의 대응하는 위치의 움직임 벡터와 가장 많은 연관성을 가짐을 이용한 것으로 실제 실험에 있어서도 도 3의 방법보다 도 5의 방법이 효율이 더 좋다는 것을 알 수 있다. 이는 도 6과 도 7을 보면 알 수 있다.This is because the motion vector to be obtained has the most correlation with the motion vector of the corresponding position of the previous frame. It can be seen that the method of FIG. 5 is more efficient than the method of FIG. This can be seen in FIGS. 6 and 7.

도 6과 도 7은 기존의 움직임 추정 방법과 본 발명에 따른 움직임 추정 방법에 의한 실험 결과를 표로 나타낸 것으로서, 실험 조건은 로우 비트레이트의 제한된 성능의 엔코더로 가정하였다. 여기서, 도 6은 도 3의 실험 결과이고, 도 7은 도 5의 실험 결과이다. 그러나, 도 5는 이전 프레임의 움직임 벡터를 저장하고 있어야 하므로 메모리의 공간을 차지하는 단점이 있다.6 and 7 show the results of experiments by the conventional motion estimation method and the motion estimation method according to the present invention as a table, and the experimental conditions are assumed to be encoders of limited performance with low bitrate. 6 is an experimental result of FIG. 3, and FIG. 7 is an experimental result of FIG. 5. However, FIG. 5 has a disadvantage of occupying space in the memory because it must store the motion vector of the previous frame.

본 발명은 제한된 성능을 갖는 엔코더에서 빠르게 움직이는 동화상의 압축에 적용할 때 큰 효과를 가지며, 특히 기존의 MPEG-2와 현재 진행중인 MPEG-4 모두에 적용할 수 있다.The present invention has a great effect when applied to the fast moving moving picture compression in the encoder having a limited performance, in particular can be applied to both the existing MPEG-2 and the current MPEG-4.

이상에서와 같이 본 발명에 따른 움직임 추정 방법에 의하면, 주변 움직임 벡터에 의해 구해진 새로운 탐색 영역을 이용하여 움직임 벡터를 구한 후 움직임 추정을 함으로써, 움직임이 빠른 동화상에서 움직임 추정 능력이 향상되었으며 향후 적은 계산량으로 빠르게 움직이는 움직임 벡터를 찾아야 하는 제품등에 응용할 수 있다.As described above, according to the motion estimation method according to the present invention, by estimating the motion vector using the new search region obtained by the neighboring motion vector, the motion estimation capability is improved in the fast moving image, and the amount of computation in the future is small. It can be applied to products that need to find fast moving motion vectors.

특히, 제한된 엔코더의 성능에서나 실시간 처리를 요하는 경우에 있어서는 적은 탐색 영역에서 움직임 벡터를 찾아야 하는데, 이 경우에도 보다 정확한 움직임 벡터를 찾아낼 수 있으며, 로우 비트 레이트의 움직임이 많은 동화상 압축에 적용하면 좋은 화질을 얻을 수 있다.In particular, when limited encoder performance or real-time processing is required, the motion vectors must be found in a small search area. In this case, more accurate motion vectors can be found. Good picture quality can be obtained.

Claims (6)

시간축의 중복성을 제거하기 위하여 움직임 벡터를 찾아 픽쳐 사이에서 가장 비슷한 블록을 찾는 움직임 추정 방법에 있어서,In the motion estimation method to find the most similar block between the pictures to find the motion vector to remove the redundancy of the time axis, 이미 구해진 다수개의 주변 매크로 블록의 움직임 벡터들의 중간값을 구하는 제 1 단계와,A first step of obtaining an intermediate value of motion vectors of a plurality of neighboring macroblocks already obtained; 상기 중간값을 기준으로 주어진 탐색 영역에서 현재 매크로 블록의 움직임 벡터를 구하여 움직임 추정을 수행하는 제 2 단계로 이루어짐을 특징으로 하는 움직임 추정 방법.And a second step of performing motion estimation by obtaining a motion vector of a current macroblock in a given search region based on the intermediate value. 제 1 항에 있어서, 상기 제 1 단계는The method of claim 1, wherein the first step 현 매크로 블록과 가장 연관성이 많은 다수개의 이전 매크로 블록의 움직임 벡터로부터 중간 값을 찾음을 특징으로 하는 움직임 추정 방법.A motion estimation method characterized by finding an intermediate value from motion vectors of a plurality of previous macro blocks most relevant to the current macro block. 제 1 항에 있어서, 상기 제 1 단계의 다수개의 주변 매크로 블록의 움직임 벡터는The method of claim 1, wherein the motion vectors of the plurality of neighboring macroblocks of the first step 현 매크로 블록의 바로 전에 위치하는 매크로 블록의 움직임 벡터(MV1), 현 매크로 블록의 바로 위에 위치하는 매크로 블록의 움직임 벡터(MV2), 그 다음 매크로 블록의 움직임 벡터(MV3)로 정의됨을 특징으로 하는 움직임 추정 방법.And a motion vector MV1 of the macro block located immediately before the current macro block, a motion vector MV2 of the macro block located directly above the current macro block, and a motion vector MV3 of the next macro block. Motion estimation method. 제 1 항에 있어서, 상기 제 1 단계의 다수개의 주변 매크로 블록의 움직임 벡터는The method of claim 1, wherein the motion vectors of the plurality of neighboring macroblocks of the first step 현 매크로 블록의 바로 전에 위치하는 매크로 블록의 움직임 벡터(MV1), 현 매크로 블록의 바로 위에 위치하는 매크로 블록의 움직임 벡터(MV2), 현재 매크로 블록의 위치에 대응하는 이전 프레임의 움직임 벡터(MV3)로 정의됨을 특징으로 하는 움직임 추정 방법.The motion vector MV1 of the macro block located immediately before the current macro block, the motion vector MV2 of the macro block located directly above the current macro block, and the motion vector MV3 of the previous frame corresponding to the position of the current macro block. Motion estimation method, characterized in that defined by. 제 1 항에 있어서, 상기 제 2 단계는The method of claim 1, wherein the second step 상기 중간 값과 현재 위치의 값 중 이전 프레임과의 차분치가 적은 값을 기준으로 하여 주어진 탐색 영역에서 움직임 벡터를 찾음을 특징으로 하는 움직임 추정 방법.And a motion vector is found in a given search region based on the value of the difference between the intermediate value and the current position and the previous frame. 제 1 항에 있어서, 상기 제 2 단계는The method of claim 1, wherein the second step 상기 중간값에 대한 SAD(Sum of Absolute Difference) 값과 현재 매크로블록의 SAD 값을 구한 후 그중 SAD 값이 작은 위치를 기준으로 주어진 탐색 영역에서 움직임 벡터를 찾음을 특징으로 하는 움직임 추정 방법.A method of estimating a motion vector in a given search region based on a position of a small SAD value after calculating a SAD value of the intermediate value and a SAD value of a current macroblock.
KR1019980020071A 1998-05-30 1998-05-30 Motion estimation method KR100382540B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980020071A KR100382540B1 (en) 1998-05-30 1998-05-30 Motion estimation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980020071A KR100382540B1 (en) 1998-05-30 1998-05-30 Motion estimation method

Publications (2)

Publication Number Publication Date
KR19990086890A true KR19990086890A (en) 1999-12-15
KR100382540B1 KR100382540B1 (en) 2005-09-20

Family

ID=37304755

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980020071A KR100382540B1 (en) 1998-05-30 1998-05-30 Motion estimation method

Country Status (1)

Country Link
KR (1) KR100382540B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000044735A (en) * 1998-12-30 2000-07-15 전주범 Motion estimator
KR100802207B1 (en) * 2006-07-18 2008-02-11 연세대학교 산학협력단 Prediction method and encoder for motion estimation of video

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0181068B1 (en) * 1995-11-08 1999-05-01 배순훈 Motion estimation apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000044735A (en) * 1998-12-30 2000-07-15 전주범 Motion estimator
KR100802207B1 (en) * 2006-07-18 2008-02-11 연세대학교 산학협력단 Prediction method and encoder for motion estimation of video

Also Published As

Publication number Publication date
KR100382540B1 (en) 2005-09-20

Similar Documents

Publication Publication Date Title
KR100897880B1 (en) Bi-directional predicting method for video coding/decoding
KR100681370B1 (en) Predicting motion vectors for fields of forward-predicted interlaced video frames
KR101384437B1 (en) Speculative start point selection for motion estimation iterative search
KR100739281B1 (en) Motion estimation method and appratus
KR100251548B1 (en) Apparatus of predicting motion for digital image and method thereof
JP2004048552A (en) Image encoder, image encoding method, image decoder, image decoding method and communication equipment
KR100680452B1 (en) Method and apparatus for updating motion vector memory
KR101407852B1 (en) Simple next search position selection for motion estimation iterative search
KR100560843B1 (en) Method and Apparatus for Determining Search Range for Adaptive Motion Vector for Use in Video Encoder
KR100597397B1 (en) Method For Encording Moving Picture Using Fast Motion Estimation Algorithm, And Apparatus For The Same
US6996181B2 (en) Motion estimation method by employing a stochastic sampling technique
JPH0846969A (en) System for encoding video signal
KR100382540B1 (en) Motion estimation method
JP2002335529A (en) Moving image encoding method and its device
KR100599935B1 (en) Fast Half-Pel searching Method on the base of SAD values according to integer-pel search and random variable corresponding each macro block
KR20020046059A (en) An optimization of motion estimation method and apparatus
KR100266161B1 (en) Method of predicting motion for digital image
KR0185841B1 (en) A motion extimator for a video coder
KR100240620B1 (en) Method and apparatus to form symmetric search windows for bidirectional half pel motion estimation
KR0174441B1 (en) Full motion image encoder by using adaptive motion compensation
KR100242653B1 (en) Intra-frame coding method and apparatus thereof
KR100635009B1 (en) Mothod and apparatus for motion estimation considering total moving of image
KR0174444B1 (en) Motion compensated apparatus for very low speed transmission
JPH10191347A (en) Motion detector, motion detecting method and storage medium
KR0178202B1 (en) Method for establishing the window in motion estimation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
N231 Notification of change of applicant
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20010828

Effective date: 20030130

Free format text: TRIAL NUMBER: 2001101002880; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20010828

Effective date: 20030130

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130325

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140318

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee