KR100747587B1 - Motion estimation method and apparatus - Google Patents

Motion estimation method and apparatus Download PDF

Info

Publication number
KR100747587B1
KR100747587B1 KR1020060029892A KR20060029892A KR100747587B1 KR 100747587 B1 KR100747587 B1 KR 100747587B1 KR 1020060029892 A KR1020060029892 A KR 1020060029892A KR 20060029892 A KR20060029892 A KR 20060029892A KR 100747587 B1 KR100747587 B1 KR 100747587B1
Authority
KR
South Korea
Prior art keywords
macroblocks
scanning
motion vector
searching
search
Prior art date
Application number
KR1020060029892A
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 KR1020060029892A priority Critical patent/KR100747587B1/en
Application granted granted Critical
Publication of KR100747587B1 publication Critical patent/KR100747587B1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47JKITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
    • A47J27/00Cooking-vessels
    • A47J27/08Pressure-cookers; Lids or locking devices specially adapted therefor
    • A47J27/086Pressure-cookers; Lids or locking devices specially adapted therefor with built-in heating means
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47JKITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
    • A47J27/00Cooking-vessels
    • A47J27/56Preventing boiling over, e.g. of milk
    • A47J27/58Cooking utensils with channels or covers collecting overflowing liquid

Landscapes

  • Engineering & Computer Science (AREA)
  • Food Science & Technology (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A motion estimation method and an apparatus therefor are provided to predict the optimum value of a motion vector for pixels of a current block in a current picture in a process for performing motion estimation. The first scanning and searching unit scans a sub-set of specific macro blocks in a predetermined search region, and searches the optimum motion vector for all the scanned macro blocks(10,20). The second scanning and searching unit scans macro blocks in which N neighboring macro blocks previously encoded exist in a diagonal position among macro blocks which are not scanned in the search region, and searches the motion vector(30,40,50). The third scanning and searching unit scans macro blocks in which N neighboring macro blocks previously encoded exist in a horizontal-vertical position among the macro blocks which are not scanned in the search region, and searches the motion vector(60,70). The fourth scanning and searching unit scans all residual macro blocks among the macro blocks in the search region, and searches the motion vector(80,90).

Description

움직임 추정 방법 및 장치{Motion estimation method and apparatus}Motion estimation method and apparatus

도 1은 종래의 움직임 벡터의 공간적 메디안 예측 방법의 예를 보인 도면으로서, 1 is a diagram illustrating an example of a method for spatial median prediction of a conventional motion vector.

도 1a는 하나의 픽쳐를 매크로블록 셋트로 분할하고, 순차적으로 스캐닝하는 예를 보인 도면FIG. 1A illustrates an example of dividing a picture into a macroblock set and sequentially scanning

도 1b는 이미 계산된 움직임 벡터를 기반으로 공간적 메디안 예측을 수행하는 예를 보인 도면FIG. 1B illustrates an example of performing spatial median prediction based on a previously calculated motion vector

도 1c는 공간적 메디안 예측시 공간적 경계들의 예를 보인 도면1C shows an example of spatial boundaries in spatial median prediction

도 2는 본 발명에 따른 움직임 추정 장치의 일 실시예를 보인 블록도Figure 2 is a block diagram showing an embodiment of a motion estimation apparatus according to the present invention

도 3a 내지 도 3d는 본 발명에 따른 움직임 추정 방법의 과정을 보인 도면3A to 3D are views illustrating a process of the motion estimation method according to the present invention.

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

10 : 제1 스캐닝부 20 : 제1 MV 탐색부10: first scanning unit 20: first MV search unit

30 : 모드 전환 검출부 40 : 제2 스캐닝부30: mode switching detection unit 40: second scanning unit

50 : 제2 MV 탐색부 60 : 제3 스캐닝부50: second MV search unit 60: third scanning unit

70 : 제3 MV 탐색부 80 : 제4 스캐닝부70: third MV search unit 80: fourth scanning unit

90 : 제4 MV 탐색부90: fourth MV search unit

본 발명은 디지털 영상 압축에 관한 것으로서, 특히 고속 디지털 영상 부호화기에서의 움직임 추정(motion estimation) 방법 및 장치에 관한 것이다. The present invention relates to digital image compression, and more particularly, to a method and apparatus for motion estimation in a high speed digital image encoder.

디지털적으로 부호화된 영상 데이터(이하, 디지털 영상 데이터)를 전송하기 위해 요구되는 대역폭을 최소화하기 위해 디지털적으로 부호화되는 영상 데이터에 대한 다양한 종류의 영상 압축 알고리즘이 개발되고 있다. Various types of image compression algorithms for digitally encoded image data have been developed in order to minimize bandwidth required for transmitting digitally encoded image data (hereinafter, digital image data).

몇몇 멀티미디어 표준 단체들은 부호화/압축 오디오/비디오 데이터에 대한 규격을 제정 및 제안하고 있다. 가장 널리 알려지고 인정된 국제 규격들이 MPEG-1, MPEG-2를 포함하여 MPEG(Moving Pictures Expert Group)에 의해 제안되고 있고, H.261, H.263 규격을 포함하여 ITU-T(Telecommunication Standardization Sector of the International Telecommunication Union)에 의해 제안되고 있다. Several multimedia standards bodies have established and proposed standards for encoded / compressed audio / video data. The most widely known and recognized international standards are proposed by the Moving Pictures Expert Group (MPEG), including MPEG-1 and MPEG-2, and the Telecommunication Standardization Sector, including the H.261 and H.263 standards. of the International Telecommunication Union).

이들 모든 압축 알고리즘들은 주어진 비디오 시퀀스의 부호화 프레임들의 조합을 I-픽쳐와 P-픽쳐로서 사용한다. 하나의 I-픽쳐는 그 픽쳐에 포함되는 정보만을 사용하여 부호화되며, 'Intra-Coded' 또는, 'Intra' 픽쳐라 한다. 하나의 P-픽쳐는 이전 참조(또는 앵커) 픽쳐의 정보를 기반으로 움직임 보상된 예측(또는 움직임 추정)을 사용하여 부호화되며, 'Predictive' 또는 'Predicted' 픽쳐라 한다. 여기서 예측은 시간적 예측을 의미하고 있다. 즉 이들 부호화 알고리즘은 움직임으로 인해 변하는 시퀀스 픽쳐들을 부호화하기 위해 움직임 추정을 사용한다. 더욱 상세하게는, 현재 픽쳐를 매크로블록의 셋트로 분할한다. 즉, 시간적인 중복성 (Temporal Redundancy)을 제거하기 위해 각 픽쳐를 매크로블록 단위로 분할한 후 각 매크로블록에 대하여 움직임 추정을 수행한다.All these compression algorithms use a combination of encoded frames of a given video sequence as an I-picture and a P-picture. One I-picture is encoded using only information included in the picture, and is called an 'Intra-Coded' or 'Intra' picture. One P-picture is encoded using motion compensated prediction (or motion estimation) based on information of a previous reference (or anchor) picture and is called a 'Predictive' or 'Predicted' picture. Prediction here means temporal prediction. That is, these encoding algorithms use motion estimation to encode sequence pictures that change due to motion. More specifically, divide the current picture into a set of macroblocks. That is, to remove temporal redundancy, each picture is divided into macroblock units and motion estimation is performed on each macroblock.

상기 매크로블록들의 셋트는 사전 편집상의 순서(Lexicographic order)로 즉, 탑에서 바텀까지는 로우 단위로, 왼쪽에서 오른쪽까지는 매 로우 내에서 스캐닝되고 있다. 현재 매크로블록에 대해서, 하나의 움직임 벡터(MV)가 탐색(search)된다. 상기 움직임 벡터는 주어진 탐색 범위 내에서 현재 매크로블록의 픽셀들과 대응하는 앵커 픽쳐 내 픽셀들의 어레이의 비교를 기반으로, 앵커 픽쳐 내 원래 위치와 관련된 현재 픽처 내 매크로 블록의 위치를 설명한다. 즉, 상기 움직임 벡터는 현재 매크로블록과 가장 유사한 앵커 픽쳐 내 매크로 블록의 위치를 나타낸다. The set of macroblocks is scanned in pre-editary order, ie from top to bottom, in rows, and from left to right in every row. For the current macroblock, one motion vector (MV) is searched. The motion vector describes the position of the macroblock in the current picture relative to the original position in the anchor picture, based on a comparison of the pixels of the current macroblock with the corresponding pixels in the anchor picture within a given search range. That is, the motion vector represents the position of the macro block in the anchor picture most similar to the current macro block.

상기 탐색 범위의 특징(dimensions)은 상기 픽쳐의 움직임 속도와 해상도에 따라 달라진다. 그리고 최소 탐색 범위는 ㅁ7 픽셀들이고, 최대 탐색 범위는 ㅁ63 픽셀들이다. Dimensions of the search range vary depending on the motion speed and resolution of the picture. The minimum search range is m pixels and the maximum search range is 63 pixels.

일단 특정 매크로블록에 대한 움직임 벡터가 결정되면, 움직임 벡터에 의해 인지된(identified) 앵커 픽쳐 내 가장 유사한 매칭 매크로 블록의 픽셀 값들과 현재 매크로 블록의 픽셀 값들의 차가 부호화된다. 이러한 종류의 부호화를'Inter Coding'이라 한다. Once the motion vector for a particular macroblock is determined, the difference between the pixel values of the closest matching macroblock in the anchor picture identified by the motion vector and the pixel values of the current macroblock is encoded. This kind of coding is called 'Inter Coding'.

그런데 상기 예측과 관련한 문제가 Inter Coding 동안에 발생한다. 이 문제는 모드 전환 검출(subject change detection)이다. 만일 움직임 추정 과정 동안에 적당한 매크로블록 매치가 앵커 픽쳐(즉, 기 결정된 임계 메트릭을 초과하는 차 값)에서 검출되지 않는다면, 그 매크로 블록은 쓸모없게(ineffectively) 부호화된다. 만일 현재 픽쳐에서 그러한 매크로블록들이 너무 많다면, 현재 픽쳐의 부호화는 I-픽쳐로 지정되어야하고, 그 픽쳐는 인트라 픽쳐를 위한 부호화 기술로 부호화되어야 한다. However, a problem related to the prediction occurs during inter coding. This problem is subject change detection. If a suitable macroblock match is not detected in the anchor picture (i.e., the difference value exceeding a predetermined threshold metric) during the motion estimation process, the macroblock is encoded ineffectively. If there are too many such macroblocks in the current picture, the encoding of the current picture should be designated as an I-picture, and the picture should be encoded with an encoding technique for intra picture.

이 상황은 모드 전환 검출의 문제로서 자격이 주어진다. 가장 간단한 해결 방법은 기 정의된 많은 인터 부호화 프레임들을 부호화후 프레임들을 인트라 부호화하는 것이다. 그러나 이 방법에서 모드 변환은 강한 질적 열화를 초래한다. 적응적인 부호화 방법은 모드 전환의 검출에 기초하여, 인터 모드에서 인트라 모드로 부호화 모드를 스위칭하고 있다. 이것은 특히 고속 알고리즘에서 현재 프레임의 인터 코딩을 완료하여 부호화된 프레임의 화질 열화를 나타내기 전에 가능한 빨리 모드 전환을 검출하는 것이 중요하다. This situation is qualified as a matter of mode switchover detection. The simplest solution is to intra-code the frames after encoding many predefined inter-coded frames. However, in this method, mode conversion causes strong qualitative degradation. The adaptive coding method switches the coding mode from the inter mode to the intra mode based on the detection of the mode switch. This is especially important in fast algorithms to detect mode switching as soon as possible before completing intercoding of the current frame to indicate deterioration in the quality of the encoded frame.

상기 압축 규격들은 어떤 특별한 움직임 추정 알고리즘의 수행을 열거하지 않는다. 일반적으로, 다양한 수단이나 메트릭들이 현재 매크로블록과 관련된 가장 유사한 매치(즉, 최소 차/에러)를 구성하는 상기 앵커 프레임 내 픽셀 어레이의 위치를 계산하기 위해 이용되고, 제안되고 있다. 그리고 다양한 움직임 추정 알고리즘들이 앵커 픽쳐에서 가장 유사한(closest-matching) 매칭 매크로블록을 찾기 위해 이용되고 제안되고 있다. The compression specifications do not enumerate the performance of any particular motion estimation algorithm. In general, various means or metrics are used and proposed to calculate the position of the pixel array within the anchor frame making up the most similar match (ie, minimum difference / error) associated with the current macroblock. Various motion estimation algorithms have been used and proposed to find the closest-matching matching macroblock in the anchor picture.

ㅁK 픽셀들의 탐색 범위를 추정함에 있어서, (KxK) 후보 움직임 벡터들이 구해져야 한다. 즉 앵커 프레임의 주어진 탐색 범위 내에는 계산되어야하는 현재 매크로 블록의 '최적 매치'될 후보들인 수백개의 다른 매크로블록들이 있다. 계산된 각 움직임 벡터는 MSE(Means Square Error) 차 값 또는, SAD(Sum of Absolute Difference) 값을 산출할 것이다. 최소 MSE 또는 SAD 값은 갖는 움직임 벡터의 매크로블록이 부호화할 현재 매크로블록과 가장 유사한 앵커 픽쳐 내 매크로블록이다. 즉, 진짜(true)'최적 매치'가 된다. In estimating the search range of K pixels, (KxK) candidate motion vectors should be obtained. That is, within a given search range of an anchor frame, there are hundreds of other macroblocks that are candidates to be 'best match' of the current macroblock to be calculated. Each calculated motion vector will yield a Means Square Error (MSE) difference value or a Sum of Absolute Difference (SAD) value. The minimum MSE or SAD value is the macroblock in the anchor picture most similar to the current macroblock to be encoded by the macroblock of the motion vector having. That is, a true 'best match'.

그런데, 각 움직임 벡터를 구하는 과정은 많은 감산과 가산을 요구하고, 이것은 움직임 추정 탐색 엔진이 주어진 탐색 범위내에서 (KxK)개의 다른 움직임 벡터 값을 각각 계산하는 것을 완전히 실행 불가능하게 한다. 이 이론적인 '풀 탐색 알고리즘'은 항상 진짜 '최적 매치'를 만들어낸다. 하지만 그것은 실제 실행 관점에서는 실행이 불가능하기 때문에, 이것은 주어진 탐색 범위 내 움직임 벡터들의 풀 셋트의 서브 셋트만을 구하는 다른 더 실제적인 움직임 추정 알고리즘 즉, '고속 탐색 알고리즘'의 비교를 가능하게 하기 위해 참조나 벤치마크(benchmark)로 이용될 뿐이다. 이는 상기 고속 탐색 알고리즘이 풀 탐색 알고리즘보다 훨씬 빨리, 그리고 훨씬 더 적은 계산으로 실행되기 때문이다. However, the process of obtaining each motion vector requires a lot of subtraction and addition, which makes it completely impossible for the motion estimation search engine to calculate each (KxK) different motion vector values within a given search range. This theoretical 'full search algorithm' always produces a true 'best match'. However, since it is not feasible from an actual execution point of view, it is necessary to provide a comparison of other more realistic motion estimation algorithms, namely 'fast search algorithms', that yield only a subset of the full set of motion vectors within a given search range. It is only used as a benchmark. This is because the fast search algorithm runs much faster and with much less computation than the full search algorithm.

일반적으로, 움직임 추정 탐색 속도와 움직임 추정 탐색의 정확성(즉, 부호화된 디지털 영상 데이터의 결과로서 생기는 화질) 사이에는 트레이드-오프가 존재한다. 무엇보다 중요한(overarching) 목표는 요구되는 계산 노력과 계산 시간을 최소화하는 한편 실행을 최적화하는 움직임 추정 알고리즘(탐색 전략)을 발명하는 것이다. In general, there is a trade-off between the motion estimation search speed and the accuracy of the motion estimation search (i.e., the image quality resulting from the encoded digital image data). The overarching goal is to invent a motion estimation algorithm (search strategy) that optimizes execution while minimizing the computational effort and computation time required.

이점에 관해서는, 움직임 추정이 비용 함수의 최소화를 찾는 최적화된 문제에 대한 수학적인 방정식으로 고려될 수 있다. In this regard, motion estimation can be considered a mathematical equation for an optimized problem that seeks to minimize the cost function.

시작 포인트를 선택하는 것은 일반적인 최적 값 탐색 문제의 중요한 일이다. 상기 적절하게 선택된 시작 포인트는 그 일의 해결 속도와 그 마지막 결과의 질을 정의한다. 또한 하나의 매크로블록부터 공간적으로 이웃하는 매크로 블록까지 그리고, 하나의 프레임 내 임의의 매크로블록부터 다음 프레임 내 같은 매크로 블록까지는 벡터 상관이 있다. 만일 프레임 n에서, 움직임 오브젝트의 일부 예를 들어, 배우의 팔꿈치가 임의의 방향으로 3픽셀 이동하였다고 가정하면, 이웃하는 매크로블록에서 그 배우의 손이 같은 종류의 움직임을 가질 것이고, 양 매크로블록이 프레임 n+1에서 비슷한 벡터를 가질 것이라는 것을 합리적으로 추론할 수 있다. Choosing a starting point is an important part of the general optimal value search problem. The appropriately selected starting point defines the resolution of the work and the quality of the final result. There is also a vector correlation from one macroblock to spatially neighboring macroblocks and from any macroblock in one frame to the same macroblock in the next frame. If, at frame n, some of the moving objects, for example, the actor's elbow moved 3 pixels in any direction, the actor's hands would have the same kind of movement in neighboring macroblocks, and both macroblocks would We can reasonably infer that we will have a similar vector at frame n + 1.

이들 시간적, 공간적 상관은 불완전하며, 유감이지만 무시되어질 가능성이 있다. 하지만 예외적으로 이들 공간적, 시간적 상관에 종속하는 탐색 전략이 움직임 보상/움직임 부호화로부터 유용한 이익을 얻기 위하여 제공될 뿐이다. These temporal and spatial correlations are incomplete and regrettable but likely to be ignored. However, exceptionally, search strategies that depend on these spatial and temporal correlations are only provided to benefit from the motion compensation / motion coding.

상기 영상 시퀀스에 대한 시간적, 공간적 상관으로 인해, 임의의 블록의 움직임 벡터는 같은 영상 프레임 내 이웃하는 블록의 움직임 벡터에 크게 관련되어 있다. 만일 이웃하는 움직임 벡터들로부터 유용하고 충분한 정보를 얻을 수 있다면, 그 블록의 움직임 벡터를 찾는데 이용되는 전체 탐색 포인트들은 대단히 축소될 수 있을 수도 있다. 이 아이디어를 기반으로, 블록 움직임 추정에 대한 알고리즘 예를 들어, SBMA(Fast Stochastic Block Matching Algorithm), PSA(Prediction Search Algorithm), GPSA(Gray Prediction Search Algorithm) 등이 제안되고 있다. Due to the temporal and spatial correlation for the image sequence, the motion vectors of any block are highly related to the motion vectors of neighboring blocks in the same image frame. If useful and sufficient information can be obtained from neighboring motion vectors, the overall search points used to find the motion vector of the block may be greatly reduced. Based on this idea, algorithms for block motion estimation, for example, Fast Stochastic Block Matching Algorithm (SBMA), Prediction Search Algorithm (PSA), Gray Prediction Search Algorithm (GPSA), and the like have been proposed.

그리고 시작 포인트의 선택은 이웃하는 매크로블록들의 움직임 벡터의 분석을 기반으로 현재 매크로블록의 움직임 벡터의 예측에 의해 해결된다. 이 방법은 공간적 예측이라 한다. 그러나 일련의 매크로블록들을 통한 스캐닝에 대한 전통적 인 사전 편집상(Lexicographic)의 방법의 취급은 공간적 예측의 가능성을 제한한다. 사전 편집상의 방법이 사용되면, 몇몇 움직임 벡터들만이 현재 매크로블록 움직임 벡터 예측을 위해 이용될 수 있다. 정확하게는 현재 매크로블록의 상대적으로 위와 왼쪽에 위치하는 매크로블록들의 움직임 벡터들이 있다. 그래서 3개의 움직임 벡터가 예측을 위해 사용된다. The selection of the starting point is solved by the prediction of the motion vector of the current macroblock based on the analysis of the motion vector of the neighboring macroblocks. This method is called spatial prediction. However, the handling of the traditional Lexicographic method for scanning through a series of macroblocks limits the possibility of spatial prediction. If pre-editing methods are used, only some motion vectors can be used for current macroblock motion vector prediction. Precisely there are motion vectors of macroblocks located relatively above and to the left of the current macroblock. So three motion vectors are used for prediction.

1. 상기 매크로블록의 움직임 벡터가 현재 매크로블록의 왼쪽에 위치하는 경우.1. The motion vector of the macroblock is located to the left of the current macroblock.

2. 상기 매크로블록의 움직임 벡터가 현재 매크로블록의 위에 위치하는 경우. 2. The motion vector of the macroblock is located above the current macroblock.

3. 상기 매크로블록의 움직임 벡터가 현재 매크로블록의 위-오른쪽에 위치하는 경우.3. The motion vector of the macroblock is located above-right of the current macroblock.

게다가 메디안 필터(median filtration)는 각 구성 요소에 대해 수행되고, 그 결과로 얻어진 벡터는 현재 매크로블록의 최적 움직임 벡터 탐색을 위한 초기 근사값(approximation)으로서 사용된다. 이 방법을 공간적 메디안 예측이라 한다. 그러나 상기 공간적 메디안 예측 방법은 현재 매크로블록의 상대적으로 아래와 오른쪽에 위치하는 매크로 블록들은 고려에서 제외되고, 그렇게 얻어진 공간적 예측은 충분히 정정(correction)되지 않는 문제점이 있다.In addition, median filtration is performed for each component, and the resulting vector is used as an initial approximation for the search for the optimal motion vector of the current macroblock. This method is called spatial median prediction. However, the spatial median prediction method has a problem that macroblocks positioned relatively below and to the right of the current macroblock are excluded from consideration, and the spatial prediction thus obtained is not sufficiently corrected.

본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 움직임 추정을 수행하는 과정에서 요구되는 계산 시간과 계산 노력을 줄이는 단순 하고 다양한 실행 방법 및 장치를 제공하는 것이다. SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to provide a simple and various execution method and apparatus for reducing the computation time and computational effort required in performing the motion estimation.

본 발명의 다른 목적은 움직임 추정을 수행하는 과정에서 현재 픽쳐 내 현재 블록의 픽셀들에 대한 움직임 벡터의 최적 값의 강인한 예측 방법을 제공하는 것이다. Another object of the present invention is to provide a robust prediction method of an optimal value of a motion vector for pixels of a current block in a current picture in the course of performing motion estimation.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 움직임 추정 방법은, Motion estimation method according to the present invention for achieving the above object,

(a) 기 설정된 탐색 영역 내 특정 매크로블록들의 서브셋트를 스캐닝하고, 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 단계;(a) scanning a subset of specific macroblocks in a preset search area and searching for a motion vector for the scanned macroblocks;

(b) 상기 탐색 영역 내 스캐닝되지 않은 매크로블록들 중 대각선 위치에 이미 부호화된 N개의 이웃하는 매크로블록들이 존재하는 매크로블록들을 스캐닝하고, 대각선 통과(diagonal-cross) 예측 절차를 적용하여 상기 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 단계;(b) scanning the macroblocks having N neighboring macroblocks already encoded at a diagonal position among the unscanned macroblocks in the search region, and applying a diagonal-cross prediction procedure to the scanned Searching for motion vectors for macroblocks;

(c) 상기 탐색 영역 내 스캐닝되지 않은 매크로블록들 중 수평-수직 위치에 이미 부호화된 N개의 이웃하는 매크로블록들이 존재하는 매크로블록들을 스캐닝하고, 직선 통과(straight-cross) 예측 절차를 적용하여 상기 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 단계; 및 (c) scanning macroblocks having N neighboring macroblocks already encoded at a horizontal-vertical position among the unscanned macroblocks in the search region, and applying a straight-cross prediction procedure to the Searching for motion vectors for the scanned macroblocks; And

(d) 상기 탐색 영역 내 매크로블록들 중 모든 잔여 매크로블록들을 스캐닝하고, 링(ring) 예측 절차를 적용하여 상기 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 단계를 포함하여 이루어지는 것을 특징으로 한다. (d) scanning all remaining macroblocks among the macroblocks in the search region, and searching for a motion vector for the scanned macroblocks by applying a ring prediction procedure. .

상기 (b) 내지 (d) 단계 중 어느 하나의 단계는 해당 예측 절차를 적용하여 최적 움직임 벡터를 탐색하기 위한 시작값을 얻는 것을 특징으로 한다.In any one of the steps (b) to (d), a start value for searching for an optimal motion vector may be obtained by applying a corresponding prediction procedure.

본 발명에 따른 움직임 추정 장치는, 기 설정된 탐색 영역 내 특정 매크로블록들의 서브셋트를 스캐닝하고, 스캐닝된 모든 매크로블록들에 대한 최적의 움직임 벡터를 탐색하는 제1 스캐닝 및 탐색부; 상기 탐색 영역 내 스캐닝되지 않은 매크로블록들 중 대각선 위치에 이미 부호화된 N개의 이웃하는 매크로블록들이 존재하는 매크로블록들을 스캐닝하여 움직임 벡터를 탐색하는 제2 스캐닝 및 탐색부; 상기 탐색 영역 내 스캐닝되지 않은 매크로블록들 중 수평-수직 위치에 이미 부호화된 N개의 이웃하는 매크로블록들이 존재하는 매크로블록들을 스캐닝하여 움직임 벡터를 탐색하는 제3 스캐닝 및 탐색부; 및 상기 탐색 영역 내 매크로블록들 중 모든 잔여 매크로블록들을 스캐닝하여 움직임 벡터를 탐색하는 제4 스캐닝 및 탐색부를 포함하여 구성되는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a motion estimation apparatus comprising: a first scanning and searching unit configured to scan a subset of specific macroblocks in a preset search area and search for an optimal motion vector for all scanned macroblocks; A second scanning and searching unit for searching for a motion vector by scanning macroblocks in which N neighboring macroblocks already encoded at a diagonal position among the unscanned macroblocks in the search area are searched; A third scanning and searching unit for searching for a motion vector by scanning macroblocks having N neighboring macroblocks already encoded at a horizontal-vertical position among the unscanned macroblocks in the search region; And a fourth scanning and searching unit for searching for a motion vector by scanning all the remaining macroblocks among the macroblocks in the search region.

상기 제1 스캐닝 및 탐색부는 움직임 벡터 탐색 과정에서 구한 매칭 측정 함수를 이용하여 모드 전환을 검출하는 모드 전환 검출부를 더 포함하여 구성되며, 상기 모드 전환 검출 단계의 검출 결과에 따라 인터 모드에서 현재 프레임 부호화를 계속 수행하거나 아니면 인트라 모드로 전환하여 현재 프레임의 부호화를 수행하는 것을 특징으로 한다.The first scanning and searching unit further includes a mode switching detector for detecting a mode switching by using a matching measurement function obtained during a motion vector search process, and encoding the current frame in the inter mode according to the detection result of the mode switching detection step. Or continue to switch to intra mode or perform encoding of the current frame.

상기 제1 스캐닝 및 탐색부는 상기 탐색 영역 내 매크로블록들 중 이븐 로우들과 이븐 컬럼들에 해당하는 매크로블록들을 스캐닝하고, 스캐닝된 모든 매크로블록들에 대한 최적의 움직임 벡터를 탐색하는 것을 특징으로 한다.The first scanning and searching unit scans macroblocks corresponding to even rows and even columns among macroblocks in the search region, and searches for an optimal motion vector for all scanned macroblocks. .

상기 제2 스캐닝 및 탐색부는 상기 탐색 영역 내 매크로블록들 중 오드 로우 들과 오드 컬럼들에 해당하는 매크로블록들을 스캐닝하고, 대각선 통과(diagonal-cross) 예측 절차를 적용하여 상기 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 것을 특징으로 한다.The second scanning and searching unit scans macroblocks corresponding to odd rows and odd columns among macroblocks in the search region, and applies a diagonal-cross prediction procedure to the scanned macroblocks. It is characterized by searching for a motion vector.

상기 제3 스캐닝 및 탐색부는 상기 탐색 영역 내 매크로블록들 중 오드 로우들과 이븐 컬럼들에 해당하는 매크로블록들을 스캐닝하고, 직선 통과(straight-cross) 예측 절차를 적용하여 상기 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 것을 특징으로 한다.The third scanning and searching unit scans macroblocks corresponding to odd rows and even columns among macroblocks in the search region, and applies a straight-cross prediction procedure to the scanned macroblocks. It is characterized by searching for a motion vector.

상기 제4 스캐닝 및 탐색부는 상기 탐색 영역 내 매크로블록들 중 이븐 로우들과 오드 컬럼들에 해당하는 매크로블록들을 스캐닝하고, 링(ring) 예측 절차를 적용하여 상기 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 것을 특징으로 한다.The fourth scanning and searching unit scans macroblocks corresponding to even rows and odd columns among macroblocks in the search region, and applies a ring prediction procedure to the motion vector of the scanned macroblocks. It is characterized by searching for.

본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.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, with reference to the accompanying drawings illustrating the configuration and operation of the embodiment of the present invention, the configuration and operation of the present invention shown in the drawings and described by it will be described as at least one embodiment, By the technical spirit of the present invention described above and its core configuration and operation is not limited.

본 발명에 따른 움직임 추정 방법은 비디오 스트림들의 매우 빠른 처리를 목표하는 하는 부호화 시스템 특히, 멀티 채널 코덱들에서 가장 빠른 움직임 벡터 탐색 알고리즘들과 공동(jointly)으로 사용될 수 있다. The motion estimation method according to the present invention can be used jointly with the fastest motion vector search algorithms in coding systems, in particular multi-channel codecs, which target very fast processing of video streams.

본 발명에 따르면, 하기의 동작들은 매크로블록들의 셋트로 분할된 현재 프레임 픽쳐에 대해 수행된다. 상기 셋트에 M개의 로우(row)와 N개의 컬럼(column)이 있다고 가정하자. According to the invention, the following operations are performed on the current frame picture divided into a set of macroblocks. Suppose there are M rows and N columns in the set.

도 2는 본 발명에 따른 움직임 벡터 추정기의 일반적인 블록 구조로서, 제1 스캐닝부(10), 제1 MV 탐색부(20), 모드 변환 검출부(30), 제2 스캐닝부(40), 제2 MV 탐색부(50), 제3 스캐닝부(60), 제3 MV 탐색부(70), 제4 스캐닝부(80), 제4 MV 탐색부(90)를 포함하여 구성된다. 2 is a general block structure of a motion vector estimator according to the present invention, and includes a first scanning unit 10, a first MV search unit 20, a mode conversion detection unit 30, a second scanning unit 40, and a second The MV search unit 50, the third scanning unit 60, the third MV search unit 70, the fourth scanning unit 80, and the fourth MV search unit 90 are configured to be included.

도 3a 내지 도 3d는 본 발명에 따른 움직임 추정 과정의 예를 보인 도면으로서, 이미 처리된 매크로블록과 4 단계의 스캐닝 및 탐색동안 처리될 매크로블록과의 상호 위치를 보이고 있다. 도 3a 내지 도 3d에서 헤칭된 부분은 이전 단계에서 처리된 매크로블록들에 대응하며, 상기 매크로블록들에 대한 움직임 벡터는 이미 알고 있다. 그리고 헤칭되지 않은 부분은 처리될 매크로블록에 대응하며, 상기 매크로블록들에 대한 움직임 벡터는 본 발명에 종속된다. 상기 도 3b 내지 도 3d의 화살표는 가능한 예측 방향을 나타낸다. 3A to 3D show an example of a motion estimation process according to the present invention, and show mutual positions of macroblocks that have already been processed and macroblocks to be processed during four levels of scanning and searching. The parts hatched in Figs. 3A-3D correspond to the macroblocks processed in the previous step, and the motion vector for the macroblocks is already known. And the unhatched portion corresponds to the macroblock to be processed, and the motion vector for the macroblocks is dependent on the present invention. The arrows of FIGS. 3B-3D indicate possible prediction directions.

이와 같이 구성된 본 발명의 제1 MV 탐색부(20)는 넓은 탐색 영역 안에서 MV 탐색을 수행하고, 제2 MV 탐색부(50)는 대각선 예측으로 MV 탐색을 수행한다. 제3 MV 탐색부(70)는 교차(cross) 예측으로 MV 탐색을 수행하고, 제4 MV 탐색부(90)는 링(ring) 예측으로 MV 탐색을 수행한다. The first MV search unit 20 of the present invention configured as described above performs an MV search within a wide search area, and the second MV search unit 50 performs an MV search by diagonal prediction. The third MV search unit 70 performs the MV search by cross prediction, and the fourth MV search unit 90 performs the MV search by ring prediction.

본 발명의 기본은 매크로블록 스캐닝 순서의 변환이다. 그 전체 결과로서, 모든 매크로블록들은 분석되고, 모든 매크로블록에 대한 움직임 벡터는 찾아져야만 한다. The basis of the present invention is the conversion of the macroblock scanning order. As a whole result, all macroblocks are analyzed and the motion vectors for all macroblocks must be found.

그러나 전통적인 사전 편집상의 순서대신에 몇몇 기 정의된 순서들의 행렬(cortege)이 적용된다. 이들 순서들은 모든 매크로블록 셋트를 커버하나, 각 순서는 그 자신의 구체적인 특징을 갖는다.However, instead of the traditional pre-editing order, a cortege of some predefined orders is applied. These orders cover all macroblock sets, but each order has its own specific characteristics.

다음은 상기 매크로블록 셋트의 4단계 스캐닝 및 MV 탐색의 예를 보이고 있다.The following shows an example of four-step scanning and MV search of the macroblock set.

제1 단계에 있어서, 제1 스캐닝부(10)는 도 3a에서 보여지고 있는 것처럼 모든 이븐 로우와 이븐 컬럼을 통해 상기 매크로블록 셋트를 스캔한다. 즉, 픽쳐 내 이븐 로우와 이븐 컬럼에 있는 매크로블록들(즉 이븐 좌표값을 갖는 매크로블록들 예를 들어, (0,0),(0,2),...,(0,N-2),(2,0),...)만 스캔한다. In the first step, the first scanning unit 10 scans the macroblock set through all even rows and even columns as shown in FIG. 3A. That is, macroblocks in an even row and an even column in a picture (ie, macroblocks having even coordinate values, for example, (0,0), (0,2), ..., (0, N-2) ), (2,0), ...) only.

상기 제1 단계에서, 스캐닝된 현재 매크로블록들은 알려진(즉, 이미 계산된) 움직임 벡터를 갖는 어떠한 이웃 매크로블록도 가지지 않는다. In the first step, the scanned current macroblocks do not have any neighboring macroblocks with known (ie already calculated) motion vectors.

그러므로, 공간적 예측을 위한 기반이 없다. 그리고 움직임 벡터 탐색은 넓은 탐색 범위 내 제로 시작 포인트부터 탐색하는 제1 MV 탐색부(20)에 의해 수행된다. 그러면 상기 스캐닝된 각 매크로블록의 움직임 벡터가 구해진다. Therefore, there is no basis for spatial prediction. The motion vector search is performed by the first MV search unit 20 searching from a zero starting point within a wide search range. Then, the motion vector of each scanned macroblock is obtained.

상기 제1 단계가 끝난 후, 모드 변환 검출부(30)는 인터 모드에서 현재 프레임에 대한 부호화 품질을 추정한다. 그리고 상기 모드 전환에 대한 결정이 발생된다. 한편, SAD 값이 MV 탐색 동안 비용 함수(cost function)로 사용되었고, 제1 스캐닝부(10) 후 얻어진 잔여 에러들의 합 즉, SAD값이 인터 모드로 부호화 과정을 계속 수행할 것인지, 아니면 초기에(early) 인트라 모드로 부호화 과정으로 전환할 것인지를 결정하는 임계 기능으로서 사용된다. 만일 잔여 에러들의 합이 기 정의된 임계값을 넘어서면, 인트라 부호화 모드로의 전환이 수행되고, 그렇지 않으면 인터 부호화가 계속 수행된다. 상기 SAD는 매칭 측정 함수라 하기도 한다. After the first step is finished, the mode conversion detector 30 estimates the encoding quality of the current frame in the inter mode. And a decision on the mode switch is made. On the other hand, the SAD value is used as a cost function during the MV search, and the sum of the residual errors obtained after the first scanning unit 10, that is, whether the SAD value is to continue the encoding process in the inter mode or initially (early) Used as a threshold function for determining whether to switch to the encoding process in the intra mode. If the sum of the residual errors exceeds the predefined threshold, the transition to the intra encoding mode is performed, otherwise the inter encoding is continued. The SAD may also be referred to as a matching measurement function.

제2 단계에 있어서, 제2 스캐닝부(40)는 도 3b에서 보여지는 것처럼, 모든 오드 로우와 오드 컬럼들을 통해서 상기 매크로블록 셋트를 스캔한다. 즉, 픽쳐 내 오드 로우와 오드 컬럼에 있는 매크로블록들(예를 들어, (1,1),(1,3),...,(1,N-1),...)만 스캔한다. In the second step, the second scanning unit 40 scans the macroblock set through all odd row and odd columns, as shown in FIG. 3B. That is, only macroblocks (eg, (1,1), (1,3), ..., (1, N-1), ...) in an odd row and an odd column in a picture are scanned. .

상기 제2 단계에서, 스캐닝된 모든 현재 매크로블록(경계 매크로블록들을 제외)은 알려진(이미 계산된) 움직임 벡터들을 갖는 4개의 이웃하는 매크로블록들을 가지고 있다. 그들은 대각선 상에 위치하며, 소위 대각선 통과 예측 절차가 적용될 수 있다. 상기 대각선 통과 예측 절차의 예측 능력(quality)은 4면 커버리지(coverage) 때문에 전술한 중간 예측에 의해 산출된 것보다 더 좋다. In the second step, every scanned current macroblock (except boundary macroblocks) has four neighboring macroblocks with known (already calculated) motion vectors. They are located on a diagonal, so-called diagonal pass prediction procedure can be applied. The predictive quality of the diagonal pass prediction procedure is better than that calculated by the above-described intermediate prediction because of the four side coverage.

향상된 예측 능력은 예측된 포인트로부터 탐색 영역을 줄이는데 영향을 끼칠수 있다. 그리고 제2 MV 탐색부(50)는 상기 대각선 예측 방법으로 움직임 벡터 탐색을 수행한다. 일 예로, 제2 MV 탐색부(50)는 현재 매크로블록의 대각선 상에 위치한 움직임 벡터를 갖는 4개의 이웃하는 매크로블록 중 현재 매크로블록과 가장 유사한 매크로블록의 움직임 벡터를 현재 매크로 블록의 움직임 벡터로 결정할 수 있다. Improved prediction capability can affect reducing search area from predicted points. The second MV search unit 50 performs a motion vector search using the diagonal prediction method. For example, the second MV search unit 50 may use the motion vector of the macroblock most similar to the current macroblock among the four neighboring macroblocks having the motion vector located on the diagonal of the current macroblock as the motion vector of the current macroblock. You can decide.

제3 단계에 있어서, 상기 제3 스캐닝부(60)는 도 3c에서 보여지는 것처럼, 모든 오드 로우와 이븐 컬럼들을 통해 상기 매크로블록 셋트를 스캔한다. 즉, 픽쳐 내 오드 로우와 이븐 컬럼에 있는 매크로블록들(예를 들어, (1,0),(1,2),...,(1,N-2),...)만 스캔한다. In a third step, the third scanning unit 60 scans the macroblock set through all odd row and even columns, as shown in FIG. 3C. That is, only macroblocks (eg, (1,0), (1,2), ..., (1, N-2), ...) in odd-row and even columns in a picture are scanned. .

상기 제3 단계에서, 스캐닝된 모든 현재 매크로블록(경계 매크로블록들 제외)은 알고 있는(이미 계산된) 움직임 벡터들이 존재하는 4개의 이웃하는 매크로블록들을 가지고 있다. 이들은 현재 매크로블록의 수평-수직선상에 위치하고, 소위 크로스 예측 절차가 적용될 수 있다. 상기 크로스 예측 절차의 예측 능력(quality)은 4면의 커버리지에 더하여 좀 더 밀접한 이웃들이 있기 때문에 더 좋다. 상기 향상된 예측 능력은 예측 포인트로부터 탐색 영역을 줄이는데 영향을 끼칠수 있다. 그리고 상기 제3 MV 탐색부(70)는 크로스 예측 방법으로 움직임 벡터 탐색을 수행한다. 일 예로, 제3 MV 탐색부(70)는 현재 매크로블록의 수평-수직선 상(즉, 현재 매크로 블록의 바로 위,아래,좌,우)에 위치한 움직임 벡터를 갖는 4개의 이웃하는 매크로블록 중 현재 매크로블록과 가장 유사한 매크로블록의 움직임 벡터를 현재 매크로 블록의 움직임 벡터로 결정할 수 있다. In the third step, every scanned current macroblock (except boundary macroblocks) has four neighboring macroblocks with known (already calculated) motion vectors. These are currently located on the horizontal-vertical line of the macroblock, so-called cross prediction procedures can be applied. The predictive quality of the cross prediction procedure is better because there are more closely neighbors in addition to the coverage of the four sides. The improved prediction capability can affect reducing the search area from the prediction point. The third MV search unit 70 performs a motion vector search using a cross prediction method. For example, the third MV search unit 70 may present a current among four neighboring macroblocks having a motion vector located on a horizontal-vertical line of the current macroblock (ie, immediately above, below, left, and right of the current macroblock). The motion vector of the macroblock most similar to the macroblock may be determined as the motion vector of the current macroblock.

제4 단계에 있어서, 상기 제4 스캐닝부(80)는 도 3d에서 보여지는 것처럼, 모든 이븐 로우와 오드 컬럼들을 통해 상기 매크로블록 셋트를 스캔한다. 즉, 픽쳐 내 이븐 로우와 오드 컬럼에 있는 매크로블록들(예를 들어, (0,1),(0,3),...,(0,N-1),...)만 스캔한다. In the fourth step, the fourth scanning unit 80 scans the macroblock set through all even row and odd columns, as shown in FIG. 3D. That is, only macroblocks (eg, (0,1), (0,3), ..., (0, N-1), ...) in the even row and the odd columns in the picture are scanned. .

상기 제4 단계에서, 스캐닝된 모든 현재 매크로블록(경계 매크로블록들 제외)은 알고있는(이미 계산된) 움직임 벡터들이 존재하는 8개의 이웃하는 매크로블록들을 가지고 있다. 이들은 사방(around)에 위치하고, 소위 링 예측 절차가 적용 될 수 있다. 상기 링 예측 절차의 예측 능력(quality)은 모든 원형(all-round) 커버리지 때문에 더 좋다. 가능하게는, 가장 빠른 수행 때문에, 필요로 하는 링 이웃하는 매크로블록들의 움직임 벡터 일치(concordance)가 존재하면, 상기 현재 매크로블록의 움직임 벡터는 그 이상의 최적화없이 할당될 수 있다. 그래서, 상기 링 예측을 갖는 제2 MV 탐색부(90)는 움직임 탐색을 수행하거나, 다른 탐색없이 움직임 벡터 값을 할당한다. 즉, 제2 MV 탐색부(90)에서 최적의 움직임 벡터값은 8개의 이웃하는 매크로블록들의 움직임 벡터의 조합이 기 결정된 임계값을 넘어서면 어떠한 탐색없이 할당(assign)되고, 그렇지 않으면 기 결정된 탐색 영역은 8개의 이웃하는 매크로블록들의 움직임 벡터값의 조합(concordance)에 따라 감소된다. In the fourth step, every scanned current macroblock (except boundary macroblocks) has eight neighboring macroblocks with known (already calculated) motion vectors. They are located around, so-called ring prediction procedures can be applied. The predictive quality of the ring prediction procedure is better because of all all-round coverage. Probably, because of the fastest performance, if there is motion vector concordance of the ring neighboring macroblocks required, the motion vector of the current macroblock can be assigned without further optimization. Thus, the second MV search unit 90 having the ring prediction performs a motion search or assigns a motion vector value without any other search. That is, in the second MV search unit 90, the optimal motion vector value is assigned without any search if the combination of motion vectors of eight neighboring macroblocks exceeds a predetermined threshold value, otherwise the predetermined search is performed. The area is reduced according to the concordance of the motion vector values of the eight neighboring macroblocks.

이상에서와 같이 본 발명에 따른 움직임 추정 방법 및 장치에 의하면, 현재 부호화할 픽쳐를 매크로블록의 셋트로 분할하고, 다수의 단계를 통해 솎아내는 방식으로 해당 매크로블록을 스캔한 후 이미 부호화된 이웃하는 매크로블록의 움직임 벡터를 이용하여 스캐닝된 현재 매크로 블록의 움직임 탐색을 수행함으로써, 요구되는 계산 시간과 계산 노력을 줄이는 효과가 있다. As described above, according to the motion estimation method and apparatus according to the present invention, a neighboring image is already encoded after scanning the macroblock in a manner of dividing a picture to be encoded into a set of macroblocks and slicing through a plurality of steps. By performing the motion search of the current macroblock scanned using the motion vector of the macroblock, there is an effect of reducing the required computation time and computational effort.

이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 이탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.Those skilled in the art will appreciate that various changes and modifications can be made without departing from the spirit of the present invention.

따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다. Therefore, the technical scope of the present invention should not be limited to the contents described in the embodiments, but should be defined by the claims.

Claims (22)

(a) 기 설정된 탐색 영역 내 특정 매크로블록들의 서브셋트를 스캐닝하고, 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 단계;(a) scanning a subset of specific macroblocks in a preset search area and searching for a motion vector for the scanned macroblocks; (b) 상기 탐색 영역 내 스캐닝되지 않은 매크로블록들 중 대각선 위치에 이미 부호화된 N개의 이웃하는 매크로블록들이 존재하는 매크로블록들을 스캐닝하고, 대각선 통과(diagonal-cross) 예측 절차를 적용하여 상기 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 단계;(b) scanning the macroblocks having N neighboring macroblocks already encoded at a diagonal position among the unscanned macroblocks in the search region, and applying a diagonal-cross prediction procedure to the scanned Searching for motion vectors for macroblocks; (c) 상기 탐색 영역 내 스캐닝되지 않은 매크로블록들 중 수평-수직 위치에 이미 부호화된 N개의 이웃하는 매크로블록들이 존재하는 매크로블록들을 스캐닝하고, 직선 통과(straight-cross) 예측 절차를 적용하여 상기 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 단계; 및 (c) scanning macroblocks having N neighboring macroblocks already encoded at a horizontal-vertical position among the unscanned macroblocks in the search region, and applying a straight-cross prediction procedure to the Searching for motion vectors for the scanned macroblocks; And (d) 상기 탐색 영역 내 매크로블록들 중 모든 잔여 매크로블록들을 스캐닝하고, 링(ring) 예측 절차를 적용하여 상기 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 단계를 포함하여 이루어지는 것을 특징으로 하는 움직임 추정 방법.(d) scanning all remaining macroblocks among the macroblocks in the search region, and searching for a motion vector for the scanned macroblocks by applying a ring prediction procedure. Motion estimation method. 제 1 항에 있어서, The method of claim 1, 상기 N은 4인 것을 특징으로 하는 움직임 추정 방법.N is 4, the motion estimation method. 제 1 항에 있어서, The method of claim 1, 상기 (b) 내지 (d) 단계 중 어느 하나의 단계는 해당 예측 절차를 적용하여 최적 움직임 벡터를 탐색하기 위한 시작값을 얻는 것을 특징으로 하는 움직임 추정 방법.The motion estimation method of any one of steps (b) to (d), wherein a start value for searching for an optimal motion vector is obtained by applying a corresponding prediction procedure. 제 1 항에 있어서, 상기 (a) 단계는The method of claim 1, wherein step (a) 솎아내는(thinned out) 방식으로 매크로블록들의 서브셋트를 스캐닝하여 탐색 영역 내 모든 매크로블록에 대한 최적의 움직임 벡터를 탐색하는 것을 특징으로 하는 움직임 추정 방법.A method for motion estimation comprising: scanning a subset of macroblocks in a thinned out manner to find an optimal motion vector for all macroblocks in a search region. 제 1 항에 있어서, 상기 (a) 단계는The method of claim 1, wherein step (a) 움직임 벡터 탐색 과정에서 구한 매칭 측정 함수를 이용하여 모드 전환을 검출하는 모드 전환 검출 단계를 더 포함하여 이루어지며,And a mode change detection step of detecting a mode change by using a matching measurement function obtained in a motion vector search process. 상기 모드 전환 검출 단계의 검출 결과에 따라 상기 (b) 단계로 진행하여 인터 모드로 현재 프레임 부호화를 계속 수행하거나 아니면 인트라 모드로 전환하여 현재 프레임의 부호화를 수행하는 것을 특징으로 하는 움직임 추정 방법.According to the detection result of the mode change detection step, proceeding to the step (b) to continuously perform the current frame encoding in the inter mode or to switch to the intra mode to perform the encoding of the current frame. 제 5 항에 있어서, 상기 모드 전환 검출 단계는The method of claim 5, wherein the mode change detection step is performed. 상기 매칭 측정 함수와 기 결정된 임계값을 비교하여 인트라 모드로의 전환 여부를 판별하는 것을 특징으로 하는 움직임 추정 방법.And comparing the matching measurement function with a predetermined threshold value to determine whether to switch to an intra mode. 제 5 항에 있어서, 상기 매칭 측정 함수는6. The method of claim 5, wherein the matching measure function 현재 매크로블록의 픽셀값들과 탐색의 결과로서 얻어진 참조 매크로블록 내 대응하는 픽셀값들 사이의 차의 절대값의 합으로서 계산되는 것을 특징으로 하는 움직임 추정 방법.And calculated as the sum of the absolute values of the differences between the pixel values of the current macroblock and the corresponding pixel values in the reference macroblock obtained as a result of the search. 제 1 항에 있어서, 상기 (a) 단계는The method of claim 1, wherein step (a) 상기 탐색 영역 내 매크로블록들 중 이븐 로우들과 이븐 컬럼들에 해당하는 매크로블록들을 스캐닝하는 것을 특징으로 하는 움직임 추정 방법.And scanning macroblocks corresponding to even rows and even columns of the macroblocks in the search region. 제 1 항에 있어서, 상기 (b) 단계는 The method of claim 1, wherein step (b) 상기 탐색 영역 내 매크로블록들 중 오드 로우들과 오드 컬럼들에 해당하는 매크로블록들을 스캐닝하는 것을 특징으로 하는 움직임 추정 방법.And scanning macroblocks corresponding to odd rows and odd columns among macroblocks in the search region. 제 9 항에 있어서, The method of claim 9, 상기 (b) 단계에서 최적의 움직임 벡터를 탐색하기 위한 기 결정된 탐색 영역은 4개의 이웃하는 매크로블록들의 움직임 벡터값의 조합(concordance)에 따라 감소(diminish)되는 것을 특징으로 하는 움직임 추정 방법.The predetermined search region for searching for the optimal motion vector in step (b) is reduced according to the combination of motion vector values of four neighboring macroblocks. 제 1 항에 있어서, 상기 (c) 단계는The method of claim 1, wherein step (c) 상기 탐색 영역 내 매크로블록들 중 오드 로우들과 이븐 컬럼들에 해당하는 매크로블록들을 스캐닝하는 것을 특징으로 하는 움직임 추정 방법.And scanning macroblocks corresponding to odd rows and even columns among the macroblocks in the search region. 제 11 항에 있어서, The method of claim 11, 상기 (c) 단계에서 최적의 움직임 벡터를 탐색하기 위한 기 결정된 탐색 영역은 4개의 이웃하는 매크로블록들의 움직임 벡터값의 조합(concordance)에 따라 감소되는 것을 특징으로 하는 움직임 추정 방법.The predetermined search region for searching for the optimal motion vector in the step (c) is reduced according to the combination of the motion vector value of the four neighboring macroblocks. 제 1 항에 있어서, 상기 (d) 단계는The method of claim 1, wherein step (d) 상기 탐색 영역 내 매크로블록들 중 이븐 로우들과 오드 컬럼들에 해당하는 매크로블록들을 스캐닝하는 것을 특징으로 하는 움직임 추정 방법.And scanning macroblocks corresponding to even rows and odd columns of the macroblocks in the search region. 제 13 항에 있어서, The method of claim 13, 상기 (d) 단계에서 최적의 움직임 벡터를 탐색하기 위한 기 결정된 탐색 영역은 8개의 이웃하는 매크로블록들의 움직임 벡터값의 조합(concordance)에 따라 감소되는 것을 특징으로 하는 움직임 추정 방법.The predetermined search region for searching for the optimal motion vector in the step (d) is reduced according to the combination of the motion vector value of the eight neighboring macroblocks. 제 14 항에 있어서, The method of claim 14, 상기 (d) 단계에서 최적의 움직임 벡터값은 8개의 이웃하는 매크로블록들의 움직임 벡터의 조합이 기 결정된 임계값을 넘어서면 어떠한 탐색없이 할당(assign)되고, 그렇지 않으면 기 결정된 탐색 영역은 8개의 이웃하는 매크로블록들의 움직 임 벡터값의 조합(concordance)에 따라 감소되는 것을 특징으로 하는 움직임 추정 방법.In the step (d), an optimal motion vector value is assigned without any search if the combination of motion vectors of eight neighboring macroblocks exceeds a predetermined threshold, otherwise the predetermined search area is assigned to eight neighbors. The motion estimation method, characterized in that the reduced according to the convolution of the motion vector value of the macroblocks. 기 설정된 탐색 영역 내 특정 매크로블록들의 서브셋트를 스캐닝하고, 스캐닝된 모든 매크로블록들에 대한 최적의 움직임 벡터를 탐색하는 제1 스캐닝 및 탐색부;A first scanning and searching unit scanning a subset of specific macroblocks in a preset search area and searching for an optimal motion vector for all the scanned macroblocks; 상기 탐색 영역 내 스캐닝되지 않은 매크로블록들 중 대각선 위치에 이미 부호화된 N개의 이웃하는 매크로블록들이 존재하는 매크로블록들을 스캐닝하여 움직임 벡터를 탐색하는 제2 스캐닝 및 탐색부;A second scanning and searching unit for searching for a motion vector by scanning macroblocks in which N neighboring macroblocks already encoded at a diagonal position among the unscanned macroblocks in the search area are searched; 상기 탐색 영역 내 스캐닝되지 않은 매크로블록들 중 수평-수직 위치에 이미 부호화된 N개의 이웃하는 매크로블록들이 존재하는 매크로블록들을 스캐닝하여 움직임 벡터를 탐색하는 제3 스캐닝 및 탐색부; 및 A third scanning and searching unit for searching for a motion vector by scanning macroblocks having N neighboring macroblocks already encoded at a horizontal-vertical position among the unscanned macroblocks in the search region; And 상기 탐색 영역 내 매크로블록들 중 모든 잔여 매크로블록들을 스캐닝하여 움직임 벡터를 탐색하는 제4 스캐닝 및 탐색부를 포함하여 구성되는 것을 특징으로 하는 움직임 추정 장치.And a fourth scanning and searching unit for searching for a motion vector by scanning all the remaining macroblocks among the macroblocks in the search region. 제 16 항에 있어서, The method of claim 16, 상기 제2 내지 제4 스캐닝 및 탐색부는 각각 해당 예측 절차를 적용하여 최적 움직임 벡터를 탐색하기 위한 시작값을 얻는 것을 특징으로 하는 움직임 추정 장치.And the second to fourth scanning and searching units respectively obtain a starting value for searching for an optimal motion vector by applying a corresponding prediction procedure. 제 16 항에 있어서, 상기 제1 스캐닝 및 탐색부는The method of claim 16, wherein the first scanning and searching unit 움직임 벡터 탐색 과정에서 구한 매칭 측정 함수를 이용하여 모드 전환을 검출하는 모드 전환 검출부를 더 포함하여 구성되며, It further comprises a mode switching detector for detecting a mode switch using a matching measurement function obtained in the motion vector search process, 상기 모드 전환 검출 단계의 검출 결과에 따라 인터 모드에서 현재 프레임 부호화를 계속 수행하거나 아니면 인트라 모드로 전환하여 현재 프레임의 부호화를 수행하는 것을 특징으로 하는 움직임 추정 장치.And encoding the current frame by continuously performing the current frame encoding in the inter mode or by switching to the intra mode according to the detection result of the mode change detection step. 제 16 항에 있어서, 상기 제1 스캐닝 및 탐색부는The method of claim 16, wherein the first scanning and searching unit 상기 탐색 영역 내 매크로블록들 중 이븐 로우들과 이븐 컬럼들에 해당하는 매크로블록들을 스캐닝하고, 스캐닝된 모든 매크로블록들에 대한 최적의 움직임 벡터를 탐색하는 것을 특징으로 하는 움직임 추정 장치.And scanning macroblocks corresponding to even rows and even columns of the macroblocks in the search region, and searching for an optimal motion vector for all scanned macroblocks. 제 16 항에 있어서, 상기 제2 스캐닝 및 탐색부는The method of claim 16, wherein the second scanning and searching unit 상기 탐색 영역 내 매크로블록들 중 오드 로우들과 오드 컬럼들에 해당하는 매크로블록들을 스캐닝하고, 대각선 통과(diagonal-cross) 예측 절차를 적용하여 상기 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 것을 특징으로 하는 움직임 추정 장치.Scanning macroblocks corresponding to odd rows and odd columns among the macroblocks in the search region, and searching a motion vector for the scanned macroblocks by applying a diagonal-cross prediction procedure. A motion estimation device characterized by the above. 제 16 항에 있어서, 상기 제3 스캐닝 및 탐색부는The method of claim 16, wherein the third scanning and searching unit 상기 탐색 영역 내 매크로블록들 중 오드 로우들과 이븐 컬럼들에 해당하는 매크로블록들을 스캐닝하고, 직선 통과(straight-cross) 예측 절차를 적용하여 상기 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 것을 특징으로 하는 움직임 추정 장치.Scanning the macroblocks corresponding to odd rows and even columns among the macroblocks in the search region, and searching for a motion vector for the scanned macroblocks by applying a straight-cross prediction procedure. A motion estimation device characterized by the above. 제 16 항에 있어서, 상기 제4 스캐닝 및 탐색부는The method of claim 16, wherein the fourth scanning and searching unit 상기 탐색 영역 내 매크로블록들 중 이븐 로우들과 오드 컬럼들에 해당하는 매크로블록들을 스캐닝하고, 링(ring) 예측 절차를 적용하여 상기 스캐닝된 매크로블록들에 대한 움직임 벡터를 탐색하는 것을 특징으로 하는 움직임 추정 장치.Scanning macroblocks corresponding to even rows and odd columns of the macroblocks in the search region, and searching for a motion vector for the scanned macroblocks by applying a ring prediction procedure Motion estimation device.
KR1020060029892A 2006-03-31 2006-03-31 Motion estimation method and apparatus KR100747587B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060029892A KR100747587B1 (en) 2006-03-31 2006-03-31 Motion estimation method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060029892A KR100747587B1 (en) 2006-03-31 2006-03-31 Motion estimation method and apparatus

Publications (1)

Publication Number Publication Date
KR100747587B1 true KR100747587B1 (en) 2007-08-08

Family

ID=38602320

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060029892A KR100747587B1 (en) 2006-03-31 2006-03-31 Motion estimation method and apparatus

Country Status (1)

Country Link
KR (1) KR100747587B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929169B1 (en) * 2008-10-23 2009-12-01 한양대학교 산학협력단 Method for temporal error concealment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990020622A (en) * 1997-08-30 1999-03-25 전주범 Binary Shape Signal Coding Method
KR20040095398A (en) * 2003-04-28 2004-11-15 삼성전자주식회사 Method for determining reference picture, moving compensation method thereof and apparatus thereof
JP2005130509A (en) 2003-10-24 2005-05-19 Samsung Electronics Co Ltd Intra-prediction method and apparatus
KR20050117721A (en) * 2004-06-11 2005-12-15 경희대학교 산학협력단 Method of and apparatus for predict dc coefficient of video data unit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990020622A (en) * 1997-08-30 1999-03-25 전주범 Binary Shape Signal Coding Method
KR20040095398A (en) * 2003-04-28 2004-11-15 삼성전자주식회사 Method for determining reference picture, moving compensation method thereof and apparatus thereof
JP2005130509A (en) 2003-10-24 2005-05-19 Samsung Electronics Co Ltd Intra-prediction method and apparatus
KR20050117721A (en) * 2004-06-11 2005-12-15 경희대학교 산학협력단 Method of and apparatus for predict dc coefficient of video data unit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929169B1 (en) * 2008-10-23 2009-12-01 한양대학교 산학협력단 Method for temporal error concealment

Similar Documents

Publication Publication Date Title
KR100955152B1 (en) Multi-dimensional neighboring block prediction for video encoding
EP2091258B1 (en) An encoding/decoding method and device, a fractional pixel interpolation processing method and device
CN1177483C (en) Motion estimation algorithm
CN101088280B (en) Method and algorithm for detection of scene cuts or similar images in video images
US20150256850A1 (en) Continuous Block Tracking For Temporal Prediction In Video Encoding
KR101217627B1 (en) Method and apparatus for estimating motion vector based on block
KR100291493B1 (en) Moving vector processing device for video signal compression
US20090274213A1 (en) Apparatus and method for computationally efficient intra prediction in a video coder
CN101815215A (en) Selecting method for coding mode and a device thereof
JP2006254349A (en) Motion vector detecting method and apparatus, and computer program for executing motion vector detection processing on computer
RU2523920C2 (en) Motion vector predictive encoding method, motion vector predictive decoding method, moving picture encoding apparatus, moving picture decoding apparatus, and programmes thereof
US20070009037A1 (en) Apparatus for and method of decoding moving picture, and computer product
US20100290534A1 (en) Video Encoding Using Pixel Decimation
KR100747587B1 (en) Motion estimation method and apparatus
JP4516088B2 (en) Motion search method, motion search device, motion search program, and computer-readable recording medium recording the program
US10448047B2 (en) Encoder circuit and encoding method
JP2002247584A (en) Method and device for encoding image, program for image encoding processing, and recording medium for the program
JP4250598B2 (en) Motion compensation IP conversion processing apparatus and motion compensation IP conversion processing method
JP2009284058A (en) Moving image encoding device
KR100602148B1 (en) Method for motion picture encoding use of the a quarter of a pixel motion vector in mpeg system
KR100747544B1 (en) Motion estimation method and apparatus
JP5353719B2 (en) Moving picture coding apparatus, moving picture coding method, and moving picture coding program
JP2003032691A (en) Picture coding device corresponding to picture feature
KR101486850B1 (en) A fast full-search lossless motion estimation method using sequential rejection of impossible candidate block
WO1999044369A1 (en) Device and method for coding image

Legal Events

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

Payment date: 20120727

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130724

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140724

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150724

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160722

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee