KR100924642B1 - Motion estimation procedure using fast block matching algorithm - Google Patents

Motion estimation procedure using fast block matching algorithm Download PDF

Info

Publication number
KR100924642B1
KR100924642B1 KR1020070121185A KR20070121185A KR100924642B1 KR 100924642 B1 KR100924642 B1 KR 100924642B1 KR 1020070121185 A KR1020070121185 A KR 1020070121185A KR 20070121185 A KR20070121185 A KR 20070121185A KR 100924642 B1 KR100924642 B1 KR 100924642B1
Authority
KR
South Korea
Prior art keywords
local
block
local block
matching
complexity
Prior art date
Application number
KR1020070121185A
Other languages
Korean (ko)
Other versions
KR20090054495A (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 KR1020070121185A priority Critical patent/KR100924642B1/en
Publication of KR20090054495A publication Critical patent/KR20090054495A/en
Application granted granted Critical
Publication of KR100924642B1 publication Critical patent/KR100924642B1/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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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

하다마드 변환과 이의 확률 모델에 기반한 고속 부분 왜곡 제거 알고리즘을 이용한 움직임 추정 절차에 관하여 개시한다. 본 발명의 일 실시예에 따른 움직임 추정 절차는 움직임 추정을 위한 탐색 영역 내의 소정의 후보 위치에 대한 탐색 블록을 다수의 국부 블록으로 분할하고, 하다마드 변환을 이용하여 상기 다수의 국부 블록들 각각에 대한 국부 블록 복잡도를 계산하고, 상기 국부 블록 복잡도, 보다 구체적으로는 국부 블록 복잡도의 누적 분포 함수(CDF)를 이용하여 상기 소정의 후보 위치에 대한 예측 정합 에러를 구하며, 그리고 상기 탐색 영역 내의 모든 후보 위치 중에서 상기 예측 정합 에러가 작은 일부 후보 위치에 대해서만 정합 에러를 구하여 정합 블록을 선택한다. 본 발명의 실시예에 의하면, 하다마드 변환을 이용하여 국부 블록의 복잡도를 구할 수 있으며, 상기 국부 블록 복잡도의 누적 분포 함수를 이용하여 소정의 후보 위치에 대하여 정합 에러를 계산하지 않고서도 정합 에러를 정확하게 예측할 수가 있다.A motion estimation procedure using a fast partial distortion cancellation algorithm based on the Hadamard transform and its probability model is described. The motion estimation procedure according to an embodiment of the present invention divides a search block for a predetermined candidate position in a search region for motion estimation into a plurality of local blocks, and applies each of the plurality of local blocks using a Hadamard transform. Calculate a local block complexity, calculate a prediction match error for the predetermined candidate location using the local block complexity, more specifically, the local block complexity cumulative distribution function (CDF), and find all candidates in the search region. The matching block is selected by finding a matching error only for some candidate positions having the smallest prediction matching error among the positions. According to an embodiment of the present invention, the complexity of a local block can be obtained by using the Hadamard transform, and a matching error can be obtained without calculating a matching error for a predetermined candidate position by using the cumulative distribution function of the local block complexity. You can predict accurately.

Description

블록 정합 알고리즘을 이용하는 움직임 추정 방법{Motion estimation procedure using fast block matching algorithm}Motion estimation procedure using fast block matching algorithm

본 발명은 영상 코덱에 관한 것으로, 보다 구체적으로 영상 코덱에서 블록 정합 알고리즘(Block Matching Algorithm, BMA)을 이용하는 움직임 추정(Motion Estimation, ME) 절차에 관한 것이다.The present invention relates to an image codec, and more particularly, to a motion estimation (ME) procedure using a block matching algorithm (BMA) in an image codec.

엠펙(MPEG)-1, 2, 4 또는 H.264/AVC 등과 같은 동영상 압축 기술은 크게 움직임 추정 및 보상(Motion Estimation and Compensation, ME/MC) 절차, 이산 여현 변환(Discrete Cosine Transform, DCT)을 이용한 변환과 양자화 절차, 엔트로피 부호화 절차로 구성되는 기본구조를 가지고 있다. 이 중에서 움직임 추정 및 보상은 동영상이 가지는 특성, 즉 영상을 구성하는 성분간의 높은 공간적, 시간적 중복성을 이용하여 데이터를 압축하는 기술로써, 부호기의 복잡도 즉, 전체 부호화 시간에 가장 큰 영향을 미치는 기술 분야이다. 왜냐하면, 동영상에서 가장 많은 중복성을 가지고 있는 시간적 데이터의 중복성은 움직임 추정과 움직임 보상에 의하여 제거될 수 있기 때문이다. Video compression techniques such as MPEG-1, 2, 4 or H.264 / AVC can be used to significantly reduce the Motion Estimation and Compensation (ME / MC) procedure, Discrete Cosine Transform (DCT). It has a basic structure consisting of the transform, quantization, and entropy coding procedures. Among them, motion estimation and compensation is a technique of compressing data using characteristics of a video, that is, high spatial and temporal redundancy among components constituting an image. to be. This is because the redundancy of the temporal data having the most redundancy in the video can be eliminated by motion estimation and motion compensation.

움직임 추정 방법은 크게 화소 순환 알고리즘(Pixel Recursive Algorithm, PRA)과 블록 정합 알고리즘(Block Matching Algorithm, BMA)으로 나눌 수 있다. 이 중에서 데이터 흐름의 규칙성, 계산의 복잡도, 하드웨어 구현을 고려하여 대부분의 동영상 코텍 기술에서는 블록 정합 알고리즘을 널리 사용하고 있다. 블록 정합 알고리즘은 하나의 화면을 16×16 크기의 매크로블록(MB)이나 또는 이 보다 작은 임의의 크기의 탐색 블록(Searching Block)으로 나누어서 블록단위로 참조 프레임의 정해진 탐색 영역(Search Window)안에서 정합블록을 찾아내는 절차를 가리킨다. 이러한 블록 정합 알고리즘에 따라서 선택한 정합블록의 위치를 가리키는 값이 움직임 벡터이며, 동영상 부호화에서는 상기 정합블록과 현재 블록과의 차이값과 움직임 벡터만을 부호화하여 데이터의 중복성을 제거한다. The motion estimation method can be roughly divided into a pixel recursive algorithm (PRA) and a block matching algorithm (BMA). Among these, most video codec technologies use block matching algorithms in consideration of the regularity of data flow, computational complexity, and hardware implementation. The block matching algorithm divides a screen into 16 × 16 macroblocks (MB) or any smaller searching block (Searching Blocks) of smaller size and matches them in a defined search window of a reference frame in units of blocks. Refers to the procedure for finding a block. The value indicating the position of the matching block selected according to the block matching algorithm is a motion vector. In video encoding, only the difference value between the matching block and the current block and the motion vector are encoded to remove data redundancy.

블록 정합 알고리즘에서는 일반적으로 전탐색 알고리즘(Full Search Algorithm, FSA)을 사용한다. 전탐색 알고리즘이란 탐색 영역 내의 모든 좌표를 후보 위치(Candidate Point, CP)로 하여 정합 오차(Matching Error), 예컨대 현재 블록과 참조 프레임의 탐색 블록을 구성하는 모든 화소에 대한 차의 절대값의 합(Sum of Absolute Difference, SAD)을 계산한 후에, 정합 오차가 최소가 되는 후보 위치(CP)를 정합블록으로 선택하는 것을 말한다. 대부분의 동영상 부호화 표준에서는 이러한 전탐색 알고리즘을 사용하고 있으며, 전탐색 알고리즘은 베스트 정합블록을 찾을 수 있는 방법이다. 하지만, 전탐색 알고리즘은 계산량이 상당히 많고 또한 이를 구현하기 위한 시스템의 구성이 복잡하여, 실시간 부호화를 위한 어플리케이션에는 적용하기가 어려운 단점이 있다. The block matching algorithm generally uses a full search algorithm (FSA). The prescan algorithm is a matching error (eg, the sum of the absolute values of differences for all pixels constituting the search block of the current block and the reference frame) using all coordinates in the search area as candidate positions (CP). After calculating the Sum of Absolute Difference (SAD), the candidate position (CP) having the minimum matching error is selected as the matching block. Most video coding standards use this prescan algorithm, which is a way to find the best matching block. However, the pre-search algorithm has a large amount of calculation and a complicated system configuration for implementing it, which makes it difficult to apply to an application for real-time encoding.

따라서 실시간 어플리케이션 등을 위하여 이러한 전탐색 알고리즘에 따른 문 제점을 해결하기 위하여 여러 가지 새로운 알고리즘들이 제안되고 있다. 상기 새로운 알고리즘 중의 한 가지는 고속 블록 정합 알고리즘으로써, 탐색 영역 내의 모든 좌표가 아닌 일정한 패턴을 가지고서 일부 좌표만을 후보 위치(CP)로 하여 정합블록인지를 판단한다. 고속 블록 정합 알고리즘으로써, 예컨대 3단계 탐색 기법(Three Step Search, TSS), 새로운 3단계 탐색 기법(Net Three Step Search, NTSS), 4단계 탐색 기법(Four Step Search, FSS), 블록 기반 그래디언트 탐색 기법(Block-Based GraDient Search, BBGDS), 및 다이아몬드 탐색 기법(Diamond Search, DS) 등이 있다.Therefore, a number of new algorithms have been proposed to solve the problems caused by these prescan algorithms for real-time applications. One of the new algorithms is a fast block matching algorithm, and it is determined whether the matching block has a predetermined pattern instead of all the coordinates in the search area and only some coordinates are candidate positions CP. Fast block matching algorithms include, for example, Three Step Search (TSS), New Three Step Search (NTSS), Four Step Search (FSS), Block-based Gradient Search (Block-Based GraDient Search, BBGDS), and Diamond Search (DS).

전술한 종래의 블록 정합 알고리즘(전탐색 알고리즘 또는 고속 블록 정합 알고리즘)에서는 탐색 영역 내의 각 후보 위치(CP)에 대하여 정합 오차를 구한 다음에 상기 정합 오차가 최소가 되는 후보 위치를 정합블록으로 선택하였다. 그런데, 정합 오차, 예컨대 SAD를 실제로 구하는 것은 매크로블록이나 또는 소정 크기의 블록 내의 모든 화소에 대하여 오차를 구하는 과정을 포함하므로, 연산량이 많을 뿐만 아니라 처리 시간도 적지 않게 소요된다. 특히, 전탐색 알고리즘에서는 탐색 영역 내의 모든 후보 위치(CP)에 대하여 정합 오차를 계산해야 하기 때문에, 연산량의 증가로 실시간 어플리케이션에서는 적용하기가 쉽지 않다.In the above-described conventional block matching algorithm (pre-search algorithm or fast block matching algorithm), a matching error is obtained for each candidate position CP in the search area, and then a candidate position where the matching error is minimum is selected as the matching block. . However, actually obtaining the matching error, for example, SAD, involves calculating the error for all the pixels in the macroblock or the block of the predetermined size, so that the computational amount is large and the processing time is not too small. In particular, in the pre-search algorithm, the matching error must be calculated for all candidate positions (CP) in the search area, so it is not easy to apply in a real-time application due to the increase of the calculation amount.

따라서 본 발명이 해결하고자 하는 과제는 연산량을 최소화하여 처리 속도를 향상시킬 수 있으며, 특히 전탐색 알고리즘을 적용하는 경우에 처리 속도를 향상시 킴으로써 실시간 어플리케이션에 적용할 수 있는 블록 정합 알고리즘을 이용하는 움직임 추정 방법을 제공하는 것이다.Therefore, the problem to be solved by the present invention is to improve the processing speed by minimizing the amount of calculation, and in particular, the motion using the block matching algorithm that can be applied to real-time applications by improving the processing speed when applying the pre-scan algorithm It is to provide an estimation method.

본 발명이 해결하고자 하는 다른 과제는 탐색 영역 내의 일 부분, 특히 부분적인 왜곡(Partial Distotion)이 존재하는 부분에 대해서는 정합 오차에 대한 계산을 하지 않고서도 후보 위치(CP)에 포함되지 않도록 하여, 처리 속도를 향상시키고 실시간 어플리케이션에 적용할 수 있는 블록 정합 알고리즘을 이용하는 움직임 추정 방법을 제공하는 것이다.Another problem to be solved by the present invention is that a part of the search area, particularly a part in which partial distotion exists, is not included in the candidate position CP without calculating the matching error. It is to provide a motion estimation method using a block matching algorithm that can be applied to a real-time application to improve the speed.

상기한 과제를 해결하기 위한 본 발명의 일 실시예에 따른 움직임 추정 방법은 움직임 추정을 위한 탐색 영역 내의 소정의 후보 위치에 대한 매크로 블록을 다수의 국부 블록으로 분할하고, 하다마드 변환을 이용하여 상기 다수의 국부 블록들 각각에 대한 국부 블록 복잡도를 계산하는 단계 및 상기 국부 블록 복잡도가 큰 국부 블록부터 순서대로 부분 정합 에러의 합을 계산하고, 상기 부분 정합 에러의 합을 이용하여 상기 소정의 후보 위치가 정합 블록이 될 수 있는 지를 판단하는 단계를 포함한다. 이 경우에, 상기 부분 정합 에러의 합이 소정의 임계치 이상일 경우에는 상기 소정의 후보 위치가 정합 블록이 될 수 없는 것으로 판단할 수 있다.The motion estimation method according to an embodiment of the present invention for solving the above problems is to divide a macro block for a predetermined candidate position in a search region for motion estimation into a plurality of local blocks, and using the Hadamard transform Calculating a local block complexity for each of a plurality of local blocks; calculating a sum of partial matching errors in order from a local block having a large local block complexity; and using the sum of the partial matching errors, the predetermined candidate position. Determining whether can be a matching block. In this case, when the sum of the partial matching errors is equal to or greater than a predetermined threshold, it may be determined that the predetermined candidate position cannot be a matching block.

상기한 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 움직임 추정 방법은 움직임 추정을 위한 탐색 영역 내의 소정의 후보 위치에 대한 매크로 블록을 다수의 국부 블록으로 분할하고, 하다마드 변환을 이용하여 상기 다수의 국부 블록들 각각에 대한 국부 블록 복잡도를 계산하는 단계, 상기 국부 블록 복잡도를 이용하여 상기 소정의 후보 위치에 대한 예측 정합 에러를 구하는 단계, 및 상기 탐색 영역 내의 모든 후보 위치 중에서 상기 예측 정합 에러가 작은 일부 후보 위치에 대해서만 정합 에러를 구하여 정합 블록을 선택하는 단계를 포함한다.According to another aspect of the present invention, there is provided a motion estimation method by dividing a macroblock for a predetermined candidate position in a search region for motion estimation into a plurality of local blocks and using a Hadamard transform. Calculating a local block complexity for each of the plurality of local blocks, obtaining a prediction match error for the predetermined candidate location using the local block complexity, and predicting matching among all candidate locations in the search region Selecting a matching block by finding a matching error for only some candidate positions having a small error.

상기 실시예의 일 측면에 의하면, 상기 국부 블록의 복잡도는 수학식 (1)을 이용하여 구할 수 있다. 여기서, LBC(k)는 상기 매크로블록에 포함되는 k번째 국부 블록의 국부 블록 복잡도(LBC)를 나타낸다. SumAC(k)는 상기 k번째 국부 블록의 하다마드 변환 계수들에서 교류 성분(Alternate Component, AC)의 절대값의 합이고, DCLocal(k)는 상기 k번째 국부 블록의 하다마드 변환 계수들에서 직류 성분(Direct Component, DC)의 변환 계수를 의미한다. 그리고, DCMB 는 상기 매크로블록의 DC값으로 상기 매크로블록에 포함되는 모든 국부 블록 각각에 대한 직류 성분의 변환 계수들의 평균값을 나타낸다.According to an aspect of the embodiment, the complexity of the local block can be obtained using Equation (1). Here, LBC (k) represents a local block complexity (LBC) of the k-th local block included in the macroblock. SumAC (k) is the sum of the absolute values of Alternate Component (AC) in the Hadamard transform coefficients of the k-th local block, and DC Local (k) is the Hadamard transform coefficients of the k-th local block. The conversion coefficient of the direct component (DC). DC MB is a DC value of the macroblock and represents an average value of transform coefficients of a DC component for each of the local blocks included in the macroblock.

Figure 112007085008181-pat00001
(1)
Figure 112007085008181-pat00001
(One)

그리고 상기 예측 정합 에러를 구하는 단계는 상기 국부 블록 복잡도가 높은 국부 블록부터 낮은 국부 블록의 순서대로 순차적으로 정합 에러를 합산하여 부분 정합 에러를 계산하는 단계와 상기 국부 블록 복잡도의 누적 분포 함수와 상기 부분 정합 에러의 누적 분포 함수(Cumulative Distribution Function, CDF)의 유사성과 상관관계를 이용하여 상기 예측 정합 에러를 구하는 단계를 포함할 수 있다. 또한, 상기 부분 정합 에러는 식 (2)을 이용하여 구하고, 상기 예측 정합 에러는 식 (3)을 이용하여 구할 수 있다. 여기서, Partial SAD(k)는 국부 블록 복잡도가 내림차순으로 k번째인 국부 블록까지의 정합 에러의 합, fcur 및 fref는 각각 현재 프레임과 참조 프레임, i는 국부 블록(LB)의 수, x, y는 후보 움직임 벡터, j는 i번째 국부 블록에서의 후보 위치를 가리키고, Predictive SAD(k)는 국부 블록 복잡도가 내 림차순으로 k번째 국부 블록까지의 정합 에러의 합으로부터 예측된 예측 정합 에러, CDFLBC(k)는 국부 블록 복잡도의 누적 분포 함수, CDFpmSAD(k)는 이전의 최소 SAD의 누적 분포 함수, SADLB(k)는 k번째 국부 블록의 SAD, ω는 가중 인자(Weighting Factor)를 나타낸다.The calculating of the prediction matching error may include calculating a partial matching error by sequentially adding the matching errors in the order of the local block having a high local block complexity to a low local block, and accumulating a cumulative distribution function of the local block complexity and the partial. And calculating the predictive matching error using the similarity and correlation between the cumulative distribution function (CDF) of the matching error. In addition, the partial matching error can be obtained using Equation (2), and the prediction matching error can be obtained using Equation (3). Where Partial SAD (k) is the sum of matching errors up to the k-th local block in descending order of local block complexity, f cur and f ref are the current frame and the reference frame, i is the number of local blocks LB, x , y is the candidate motion vector, j is the candidate position in the i th local block, and Predictive SAD (k) is the predictive matching error predicted from the sum of the matching errors up to the k th local block in descending order of local block complexity. Where CDF LBC (k) is the cumulative distribution function of the local block complexity, CDF pmSAD (k) is the cumulative distribution function of the previous minimum SAD, SAD LB (k) is the SAD of the k-th local block, and ω is the weighting factor. ).

Figure 112007085008181-pat00002
(2)
Figure 112007085008181-pat00002
(2)

Figure 112007085008181-pat00003
(3)
Figure 112007085008181-pat00003
(3)

하다마드 변환과 그것의 확률 모델을 이용하는 고속 부분 왜곡 제거 알고리즘을 이용하는 본 발명의 실시예에 의하면, 하다마드 변환을 이용하여 국부 블록들 각각의 복잡도를 구하고, 국부 블록 복잡도의 CDF와 이전 최소 정합 에러, 예컨대 SAD를 이용하여 정합 에러를 정확하게 예측할 수 있다. 이러한 본 발명의 실시예에 의하면, 율-왜곡 성능을 저하시키지 않고서도 계산 복잡도의 감소 및 처리 속도의 향상을 가져올 수 있다.According to an embodiment of the present invention using a fast partial distortion elimination algorithm using a Hadamard transform and its probability model, the complexity of each local block is obtained using the Hadamard transform, and the CDF of the local block complexity and the previous minimum match error For example, SAD can be used to accurately predict matching errors. According to this embodiment of the present invention, it is possible to reduce the computational complexity and improve the processing speed without degrading the rate-distortion performance.

본 발명의 제1 실시예에서는 전탐색 알고리즘과 같이 탐색 영역 내의 모든 탐색 위치에 대하여 정합 에러를 계산한 다음 정합 블록을 선택하는 것이 아니라, 각 탐색 위치에 대하여 부분 정합 에러를 계산하고 계산된 부분 정합 에러가 소정의 임계치보다 큰 경우에는 나머지 국부 블록에 대한 추가적인 정합 에러는 계산하 지 않음으로써 계산량을 감소시켜서 처리 속도를 향상시킨다. 이를 위하여, 본 발명의 실시예에서는 탐색 블록을 다수의 국부 블록으로 분할하고, 각 국부 블록에서 정합 에러가 큰 국부 블록부터 순차적으로 부분 정합 에러를 계산한다. 국부 블록이 정합 에러가 큰지 여부는 각 국부 블록에 대하여 하다마드 변환(Hadamard Transform)을 적용하여 구한 국부 블록 복잡도를 이용하여 판정한다. 이하, 첨부도면을 참조하여 본 발명의 제1 실시예에 대하여 상세하게 설명한다.In the first embodiment of the present invention, like the pre-search algorithm, instead of calculating the matching error for all search positions in the search area and then selecting a matching block, the partial matching error is calculated for each search position and the calculated partial match is performed. If the error is larger than the predetermined threshold, additional matching errors for the remaining local blocks are not calculated, thereby reducing the amount of computation and improving processing speed. To this end, in an embodiment of the present invention, the search block is divided into a plurality of local blocks, and partial matching errors are sequentially calculated from local blocks having a large matching error in each local block. Whether a local block has a large matching error is determined using the local block complexity obtained by applying a Hadamard transform to each local block. Hereinafter, with reference to the accompanying drawings will be described in detail a first embodiment of the present invention.

도 1은 본 발명의 제1 실시예에 따른 움직임 추정 절차를 보여주는 흐름도이다. 도 1을 참조하면, 우선 움직임 추정을 위한 탐색 영역 내의 소정의 후보 위치(Candidate Position, CP)에 대한 탐색 블록을 다수의 국부 블록(Local Block, LB)으로 분할한 다음, 상기 국부 블록들에 대하여 하다마드 변환을 적용함으로써 상기 다수의 국부 블록들 각각에 대한 국부 블록 복잡도(Local Block Complexities, LBC)를 계산한다(S11).1 is a flowchart showing a motion estimation procedure according to a first embodiment of the present invention. Referring to FIG. 1, first, a search block for a predetermined candidate position (CP) in a search region for motion estimation is divided into a plurality of local blocks (LBs), and then, for the local blocks. By applying the Hadamard transform, Local Block Complexities (LBCs) for each of the plurality of local blocks are calculated (S11).

본 발명의 실시예에 의하면, 탐색 블록을 크기가 같은 다수의 국부 블록으로 분할하는 방법은 특별한 제한이 없다. 예를 들어, 도 2에 도시된 바와 같이, 탐색 블록이 매크로블록(16×16)인 경우에, 탐색 블록은 16개의 국부 블록으로 분할될 수 있으며, 각 국부 블록은 4×4의 크기를 갖거나(도 2의 (a) 참조) 또는 1×16의 크기를 가질 수 있다(도 2의 (b) 참조). 하지만, 본 발명의 실시예가 여기에만 한정되는 것은 아니다. According to an embodiment of the present invention, the method of dividing the search block into a plurality of local blocks having the same size is not particularly limited. For example, as shown in FIG. 2, when the search block is a macroblock 16 × 16, the search block may be divided into 16 local blocks, each local block having a size of 4 × 4. Or (see FIG. 2 (a)) or 1 × 16 (see FIG. 2 (b)). However, embodiments of the present invention are not limited thereto.

탐색 블록을 국부 블록으로 분할한 다음에는 각 국부 블록에 대한 국부 블록 복잡도를 계산하는데, 국부 블록 복잡도를 구하는 데는 순서 하다마드 변 환(Ordered Hadamard Transform)이 이용될 수 있다. 순서 하다마드 변환은 쉬프트(Shift), 덧셈, 및 뺄셈으로만 이루어져 있기 때문에 연산량이 적고 연산 속도가 빠른 장점이 있다. 국부 블록 복잡도를 계산하는데 이용하는 하다마드 변환의 행렬은 국부 블록의 크기에 따라서 달라질 수 있다. 수학식 1에는 도 2의 (a)의 예에서 적용될 수 있는 하다마드 변환식이 표시되어 있다. 수학식 1에서 X와 H는 각각 현재 매크로블록(탐색 블록)에서의 국부 블록 및 X의 하다마드 변환 계수(Transform Coefficients, TCs)를 나타낸다. 만일, 도 2의 (b)의 예에서는 1D 하다마드 변환식이 적용된다.After dividing the search block into local blocks, a local block complexity for each local block is calculated, and an ordered Hadamard transform can be used to calculate the local block complexity. Since the order Hadamard transformation consists only of shift, addition, and subtraction, it is advantageous in that the amount of computation is small and the computation speed is fast. The matrix of Hadamard transform used to calculate local block complexity may vary depending on the size of the local block. Equation 1 shows a Hadamard transform equation that can be applied in the example of FIG. In Equation 1, X and H represent Hadamard transform coefficients (TCs) of the local block and X in the current macroblock (search block), respectively. In the example of FIG. 2B, the 1D Hadamard transform equation is applied.

Figure 112007085008181-pat00004
Figure 112007085008181-pat00004

각 국부 블록의 하다마드 변환 계수는 탐색 순서(Search Order)를 판정하는데 이용된다. 수학식 2는 k번째 국부 블록의 국부 블록 복잡도(LBC)를 구하는 식이다. 수학식 2에서 SumAC(k)는 상기 k번째 국부 블록의 하다마드 변환 계수들에서 교류 성분(Alternate Component, AC)의 절대값의 합이고, DCLocal(k)는 상기 k번째 국부 블록의 하다마드 변환 계수들에서 직류 성분(Direct Component, DC)의 변환 계수를 의미한다. 그리고, DCMB 는 상기 매크로블록의 DC값 즉, 상기 매크로블록에 포함되는 모든 국부 블록 각각에 대한 직류 성분의 변환 계수들의 평균값을 나타낸다. 수학식 2를 참조하면, k번째 국부 블록 복잡도(LBC(k))는 교류 성분(AC)의 절대값의 합과 k번째 국부 블록의 직류 성분의 변환 계수와 현재 매크로블록의 DC값의 차의 합으로 나타낼 수 있다.The Hadamard transform coefficients of each local block are used to determine a Search Order. Equation 2 calculates a local block complexity (LBC) of the k-th local block. In Equation 2, SumAC (k) is the sum of absolute values of Alternate Component (AC) in the Hadamard transform coefficients of the k-th local block, and DC Local (k) is the Hadamard of the k-th local block. The conversion coefficient of the direct component (DC) in the conversion coefficients. And, DC MB represents the DC value of the macroblock, that is, the average value of the conversion coefficients of the DC component for each local block included in the macroblock. Referring to Equation 2, the k th local block complexity LBC (k) is the sum of the absolute value of the alternating current component AC and the difference between the transform coefficient of the direct current component of the k th local block and the DC value of the current macroblock. Can be represented as a sum.

Figure 112007085008181-pat00005
Figure 112007085008181-pat00005

계속해서 도 1을 참조하면, 국부 블록 복잡도(LBC)가 큰 국부 블록부터 순서대로 부분 정합 에러(Partial Matching Errors)의 합을 계산하고, 상기 부분 정합 에러의 합을 이용하여 정합 블록이 될 수 있는 지를 판단한다(S12). 부분 정합 에러는 예컨대, 탐색 블록이 아닌 국부 블록에 대한 차의 절대값의 합(Sum of Absolute Difference, SAD)일 수 있는데, 본 발명의 실시예가 여기에만 한정되는 것은 아니다. 그리고 본 발명의 실시예에서는 수학식 2에서 구한 LBC(k)가 가장 큰 국부 블록부터 순차적으로 k번째까지의 부분 정합 에러의 합을 구하여 해당 탐색 블록이 정합 블록이 될 수 있는지를 판단한다.Referring to FIG. 1, the sum of partial matching errors is sequentially calculated from a local block having a large local block complexity (LBC), and a matching block may be formed using the sum of the partial matching errors. It is determined (S12). The partial match error may be, for example, a sum of absolute difference (SAD) of the difference for the local block rather than the search block, but embodiments of the present invention are not limited thereto. In the embodiment of the present invention, the LBC (k) obtained in Equation 2 is obtained from the largest local block from the largest local block, and the k-th partial matching error is sequentially determined to determine whether the corresponding search block can be a matching block.

일반적으로, 국부 블록 복잡도가 크다는 것은 그 만큼 정합 에러가 크다는 것을 의미한다. 따라서 본 발명의 실시예에 의하면, 국부 블록 복잡도가 큰 블록부터 순차적으로 정합 에러를 구한 다음 이를 합산하여 부분 정합 에러를 구할 경우에, 정합 블록에 비하여 정합 에러가 큰 탐색 블록은 k가 작은 경우에도 부분 정합 에러의 합이 소정의 임계치를 초과할 수가 있다. 여기서, 소정의 임계치란 정합 블록이 될 수 있는 가능성을 판단하기 위한 기준값으로써, 예컨대 현재 후보 위치에 대한 계산 이전에 구한 최소 정합 에러나 이전 매크로블록에서의 최소(또는 평균) 정합 에러, 또는 임의의 선정한 소정의 정합 에러값이 될 수 있다. 그리고 본 발명의 실시예에 의하면, 부분 정합 에러가 소정의 임계치 이상이 되는 경우에는, 해당 매크로블록은 전체 정합 에러를 구할 필요도 없이 정합 블록이 아니라고 판정을 할 수가 있다. 따라서 본 발명의 실시예에서는 해당 후보 위치에 대한 SAD의 계산을 신속하게 할 수 있기 때문에(보다 정확하게 이야기 하면, 정합 에러가 큰 후보 위치에 대해서는 전체 매크로블록에 대한 SAD를 구할 필요가 없다), 보다 신속한 움직임 추정이 가능하다.In general, larger local block complexity means that matching errors are greater. Therefore, according to an embodiment of the present invention, when a matching error is sequentially obtained from a block having a high local block complexity and then summed up to obtain a partial matching error, a search block having a larger matching error compared to the matching block may have a small k. The sum of the partial match errors may exceed a predetermined threshold. Here, the predetermined threshold is a reference value for determining the possibility of becoming a matching block, for example, the minimum matching error obtained before calculation for the current candidate position or the minimum (or average) matching error in the previous macroblock, or any It may be a predetermined matching error value selected. According to the embodiment of the present invention, when the partial matching error is equal to or greater than a predetermined threshold, it is possible to determine that the macroblock is not a matching block without having to find the entire matching error. Therefore, in the embodiment of the present invention, since the calculation of the SAD for the candidate position can be performed quickly (more precisely, it is not necessary to obtain the SAD for the entire macroblock for candidate positions having a large matching error). Rapid motion estimation is possible.

본 발명의 제2 실시예는 하다마드 확률 모델(Hadamard Probability Model)을 적용하는 것으로서, 전탐색 알고리즘과 같이 탐색 영역 내의 모든 탐색 위치에 대하여 정합 에러를 계산한 다음 정합 블록을 선택하는 것이 아니라는 점에서 전술한 제1 실시예와 동일하다. 그러나 본 실시예에서는 정합 블록이 될 가능성이 높은 일부의 탐색 위치에 대해서만 정합 에러를 계산함으로써 계산량을 감소시켜서 처리 속도를 향상시킨다. 탐색 영역 내의 모든 탐색 위치 중에서 정합 블록이 될 가능성이 높은 탐색 위치를 선별하기 위하여, 본 발명의 실시예에서는 정합 블록이 될 가능성이 낮은 탐색 위치, 즉 탐색 영역에서 현재 블록과 상관성이 낮은 영역인 부분적인 왜곡을 후보 위치에서 제외시키고(Partial Distortion Elimination, PDE), 현재 블록과 상관성이 높은 나머지 탐색 위치에 대해서만 정합 에러를 계산한다. 그리고 본 발명의 실시예에서는 탐색 영역에서 각 탐색 위치가 현재 블록과 상관성이 높은지 또는 낮은지는 각 탐색 위치에 대한 예측 정합 에러를 이용하여 판단하며, 이러한 예측 정합 에러는 각 탐색 위치에 대응하는 탐색 블록을 다수의 국부 블록으로 분할한 다음 각 국부 블록에 대하여 하다마드 변환(Hadamard Transform)을 적용하여 구한 국부 블록 복잡도와 부분 정합 에러를 이용하여 구한다. 이하, 첨부도 면을 참조하여 본 발명의 제2 실시예에 대하여 상세하게 설명한다.The second embodiment of the present invention applies the Hadamard Probability Model, in that it does not select a matching block after calculating a matching error for all the search positions in the search area as in the pre-search algorithm. Same as the first embodiment described above. In this embodiment, however, the calculation error is reduced by calculating the matching error only for a part of the search positions that are likely to be the matching blocks, thereby improving the processing speed. In order to select a search position that is likely to be a matching block among all search positions in the search region, in an embodiment of the present invention, a search position that is less likely to be a matching block, that is, a portion having a low correlation with the current block in the search region. The conventional distortion is excluded from the candidate position (Partial Distortion Elimination, PDE), and the matching error is calculated only for the remaining search positions that are highly correlated with the current block. In an embodiment of the present invention, it is determined whether each search position in the search region has a high or low correlation with the current block by using a prediction match error for each search position, and the prediction match error corresponds to the search block corresponding to each search position. Is divided into a number of local blocks and then obtained using local block complexity and partial matching error obtained by applying a Hadamard transform to each local block. Hereinafter, with reference to the accompanying drawings, a second embodiment of the present invention will be described in detail.

도 3은 본 발명의 제2 실시예에 따른 움직임 추정 절차를 보여주는 흐름도이다. 도 3을 참조하면, 전술한 제1 실시예와 마찬가지로, 우선 움직임 추정을 위한 탐색 영역 내의 소정의 후보 위치(CP)에 대한 탐색 블록을 다수의 국부 블록(LB)으로 분할한 다음, 상기 국부 블록들에 대하여 하다마드 변환을 적용함으로써 상기 다수의 국부 블록들 각각에 대한 국부 블록 복잡도(LBC)를 계산한다(S21). 본 단계는 전술한 제1 실시예의 단계 S11과 실질적으로 동일하므로, 이에 대한 상세한 설명은 설명한다.3 is a flowchart illustrating a motion estimation procedure according to a second embodiment of the present invention. Referring to FIG. 3, like the first embodiment described above, first, a search block for a predetermined candidate position CP in a search region for motion estimation is divided into a plurality of local blocks LB, and then the local block. Local block complexity (LBC) for each of the plurality of local blocks is calculated by applying the Hadamard transform to the plurality of local blocks (S21). Since this step is substantially the same as step S11 of the above-described first embodiment, a detailed description thereof will be described.

그리고 단계 S21에서 구한 국부 블록 복잡도를 이용하여, 해당 후보 위치에 대한 예측 정합 에러를 계산한다(S22). 보다 구체적으로, 전체 국부 블록 복잡도(LBC)에서 복잡도의 내림차순, 즉 복잡도가 가장 큰 국부 블록부터 복잡도가 작은 국부 블록의 순서대로 국부 블록 복잡도의 누적 분포 함수(Cumulative Distribution Function, CDFLBC)와 최소 정합 에러, 예컨대 실제 최소 SAD의 누적 분배 함수(CDFmSAD) 사이의 유사성과 상관관계를 이용하여, 예측 정합 에러를 계산한다. 하다마드 변환을 이용하여 예측 정합 에러를 구하는 이러한 방법을 '하다마드 예측 모델(HPM)'이라고 할 수 있는데, HPM의 목적은 총 SAD를 빠르고 정확하게 예측하여 실제로 총 SAD를 계산하지 않고서도 정합 블록이 될 수 없는 후보 위치(Impossible CP)를 제거하는 것이다.The prediction matching error for the corresponding candidate position is calculated using the local block complexity obtained in step S21 (S22). More specifically, the minimum matching with the cumulative distribution function of the local block complexity (CDF LBC ) in descending order of complexity in the overall local block complexity ( LBC ), that is, from the largest local block to the smallest local block. The prediction match error is calculated using the similarity and correlation between the errors, eg, the cumulative distribution function (CDF mSAD ) of the actual minimum SAD. This method of calculating the prediction matching error using the Hadamard transform is called the Hadamard Prediction Model (HPM). The purpose of HPM is to predict the total SAD quickly and accurately so that the matching block can be generated without actually calculating the total SAD. It is to remove the candidate position (Impossible CP) that can not be.

예측 정합 에러를 구하기 위하여, 우선 수학식 3에서는 국부 블록 복잡도의 내림차순으로 k번째 국부 블록까지의 SAD의 합, 즉 부분 SAD(k)을 정의한다. 수학식 3에서 fcur 및 fref는 각각 현재 프레임과 참조 프레임, i는 국부 블록(LB)의 수를 가리키며, x, y는 후보 움직임 벡터(Candidate Motion Vector(MV)), j는 i번째 국부 블록에서의 후보 위치(CP)를 가리킨다.In order to find the prediction matching error, Equation 3 first defines the sum of the SADs up to the k th local block, that is, the partial SAD (k) in descending order of the local block complexity. In Equation 3, f cur and f ref denote the current frame and the reference frame, i denotes the number of local blocks LB, x and y denote Candidate Motion Vectors (MV), and j denotes the i th local. Indicates a candidate position (CP) in the block.

Figure 112007085008181-pat00006
Figure 112007085008181-pat00006

이상적인 경우, 예컨대 CDFmSAD를 알고 있는 경우라고 가정하면, 해당 후보 위치에서의 k번째 국부 블록에 대한 예측 SAD(Predictive SAD(k))는 수학식 4와 같다.Ideally, assuming, for example, that the CDF mSAD is known, the predictive SAD (k) for the k-th local block at the candidate position is given by Equation 4.

Figure 112007085008181-pat00007
Figure 112007085008181-pat00007

그런데, 현실적으로 CDFmSAD를 알 수가 없기 때문에, 다른 값을 이용하여 이를 추정한다. 예를 들어, 본 발명의 실시예에서는 CDFLBC와 이전의 최소 SAD의 누적 분포 함수(CDF of previous minimum SAD)를 이용하여 CDFmSAD를 추정한다. 수학식 5에는 이와 같은 방법으로 추정된 CDFmSAD를 구하는 일례가 정의되어 있다. 수학식 5에서 SADLB(k)는 k번째 국부 블록의 SAD를 나타내고, ω는 가중 인자(Weighting Factor)이다. 그리고 SADLB(k)는 안전한 마진(Safe Margin)을 위한 LB의 SAD이다.However, since CDF mSAD is not known in reality, it is estimated using another value. For example, in an embodiment of the present invention, CDF mSAD is estimated using a CDF LBC and a cumulative distribution function (CDF of previous minimum SAD). In Equation 5, an example of obtaining the CDF mSAD estimated by the above method is defined. In Equation 5, SAD LB (k) represents the SAD of the k-th local block, and ω is the weighting factor. And SAD LB (k) is the SAD of the LB for Safe Margin.

Figure 112007085008181-pat00008
Figure 112007085008181-pat00008

만일 현재의 후보 위치가 정합 블록이 되는 베스트 위치라면, 예측 SAD는 최소 SAD보다 큰 값이 되어서는 안된다. 그러나 실제 상황에서는 부정확한 예측 및/또는 CDFLBC와 CDFmSAD 사이의 비유사성으로 인하여, 예측 SAD는 최소 SAD보다 큰 값이 될 수도 있다. 이것은 비트율(bit-rate)을 증가시키는 원인이 된다. 반면, 현재의 후보 위치가 베스트 위치가 아닌 경우라면, 예측 SAD는 최소 SAD보다 작아서는 안된다. 그러나 실제의 경우에는 예측 SAD는 최소 SAD보다 작을 수도 있으며, 이것은 성능을 저하시키는 원인이 된다. 따라서 가중 인자는 정확한 예측을 위하여 반드시 필요하다.If the current candidate position is the best position to be the matching block, then the predicted SAD should not be greater than the minimum SAD. In practice, however, due to inaccurate prediction and / or dissimilarity between CDF LBC and CDF mSAD , the predicted SAD may be greater than the minimum SAD. This causes the bit-rate to increase. On the other hand, if the current candidate position is not the best position, the prediction SAD should not be smaller than the minimum SAD. In practice, however, the predicted SAD may be less than the minimum SAD, which causes performance degradation. Therefore, weighting factors are necessary for accurate prediction.

계속해서 도 3을 참조하면, 상기 탐색 영역 내의 모든 후보 위치 중에서 상기 예측 상기 정합 에러가 작은 일부 후보 위치에 대해서만 정합 에러를 구하여 정합 블록을 선택한다(S33). 예를 들어, 본 발명의 실시예의 일 측면에 의하면, 예측 정합 에러가 가장 작은 후보 위치를 정합 블록이 되는 것으로 판단하거나 또는 예측 정합 에러가 작은 몇 개의 후보 위치에 대하여, 실제 SAD를 계산해본 후에 실제 SAD가 가장 작은 후보 위치를 정합 블록이 되는 것으로 판단할 수도 있다.Referring to FIG. 3, a matching error is obtained by selecting a matching block only for some candidate positions having the smallest prediction error among all candidate positions in the search region (S33). For example, according to an aspect of an embodiment of the present invention, after determining the candidate position with the smallest prediction matching error as the matching block or after calculating the actual SAD for some candidate positions with the smallest prediction matching error, SAD may determine that the smallest candidate position is a matching block.

실험 결과(Experimental Results)Experimental Results

본 발명의 실시예에 따른 움직임 추정 절차의 성능을 평가하기 위하여, MPEG-4 최적화 모델(ISO/IEC JTC1/SC29/WG11 N3675, MPEG-4 MoMuSys-OM-2.0-010211 software Optimization Model ver. 2.0, Oct. 2000)에 대하여 여러 가지 실험을 하였다. 상기 실험에는 CIF 크기의 Akiyo(300프레임), Bus(150프레임), Football(90프레임), 및 Foreman(300프레임) 시퀀스가 이용되었다. 그리고 IPPP 구조와 32 탐색 범위(Search Range)가 사용되었으며, 가중 인자(ω)의 값은 0.95로 설정하였다. 표 1 및 표 2와 도 4에서, P1는 본 발명의 제1 실시예에 따른 경우(즉, 하다마드 변환만 사용한 경우)이며, P2는 본 발명의 제2 실시예에 따른 경우(하다마드 변환 및 하다마드 변환 모델을 함께 사용한 경우)이다. In order to evaluate the performance of the motion estimation procedure according to an embodiment of the present invention, MPEG-4 optimization models (ISO / IEC JTC1 / SC29 / WG11 N3675, MPEG-4 MoMuSys-OM-2.0-010211 software Optimization Model ver. 2.0, Oct. 2000) various experiments. The experiment used Cki-sized Akiyo (300 frames), Bus (150 frames), Football (90 frames), and Foreman (300 frames) sequences. The IPPP structure and 32 search ranges were used, and the weighting factor (ω) was set to 0.95. In Table 1 and Table 2 and Fig. 4, P1 is the case according to the first embodiment of the present invention (that is, when only the Hadamard transformation is used), and P2 is the case according to the second embodiment of the present invention (Hadamard transformation). And Hadamard transformation model).

표 1에는 모든 테스트 영상에 대한 평균 파워 신호 대 잡음비(Power Signal-to-Noise Ratio, PSNR)와 비트율(bite-rate)가 표시되어 있다. 표 1을 참조하면, 평균 PSNR과 비트율의 손실은 무시할 만하다는 것을 알 수 있다. 그리고 도 4에는 평균 율-왜곡률을 비교한 결과가 도시되어 있는데, 도 4를 참조하면, 평균 율-왜곡 성능의 관점에서 본 발명의 실시예와 전탐색 알고리즘(FSA)에 의할 경우가 거의 같다는 것을 알 수 있다.Table 1 shows the average power signal-to-noise ratio (PSNR) and bit-rate for all test images. Referring to Table 1, it can be seen that the loss of average PSNR and bit rate is negligible. 4 shows a result of comparing the average rate-distortion rate. Referring to FIG. 4, an embodiment of the present invention is almost identical to the case of the pre-scanning algorithm (FSA) in terms of average rate-distortion performance. It can be seen that.

Figure 112007085008181-pat00009
Figure 112007085008181-pat00009

표 2에는 고속 부분 왜곡 제거 알고리즘으로 널리 알려진 방법(J. N. Kim, S. C. Byun, and B. H. Ahn, "Fast full search motion estimation algorithm using early detection of impossible candidate vectors," IEEE transaction on Signal Processing, Vol. 50, No. 9, pp.2355-2365, Sept. 2002, 표 1, 표 2, 및 도 4에서 "Kim's"로 표시함)과 대비되도록 본 발명의 실시예에서의 요구되는 복잡도가 표시되어 있다. 표 2에서 'clock'의 'Ratio'는 더하기, 빼기, 곱하기, 나누기, 비교(Comparision), 및 쉬프트를 포함하는 동작비(operation Ratio)를 나타낸다. 그리고 FSA 및 PDE의 비(Ratio)는 총 국부 블록의 수에 기초한다. 표 2는 각 비트율에 대한 본 발명의 실시예에 따른 알고리즘의 성능 효율을 보여주고 있다.Table 2 shows widely known methods for fast partial distortion cancellation algorithms (JN Kim, SC Byun, and BH Ahn, "Fast full search motion estimation algorithm using early detection of impossible candidate vectors," IEEE transaction on Signal Processing, Vol. 50, No. 9, pp. 2355-2365, Sept. 2002, Table 1, Table 2, and 4, the complexity required in the embodiment of the present invention is indicated as contrasted with "Kim's". In Table 2, 'Ratio' of 'clock' represents an operation ratio including addition, subtraction, multiplication, division, comparison, and shift. And the ratio of FSA and PDE is based on the total number of local blocks. Table 2 shows the performance efficiency of the algorithm according to the embodiment of the present invention for each bit rate.

Figure 112007085008181-pat00010
Figure 112007085008181-pat00010

이상에서 상세하게 설명한 바와 같이, 본 발명의 실시예에서는 하다마드 변환과 그것의 확률 모델을 이용하는 고속 부분 왜곡 제거 알고리즘을 제공한다. 하다마드 변환은 국부 블록들 각각의 복잡도를 분석하는데 사용될 수 있다. 그리고 국부 블록 복잡도의 CDF와 이전 최소 정합 에러, 예컨대 SAD를 이용하여 정합 에러를 정확하게 예측할 수 있다. 이러한 본 발명의 실시예에 의하면, 율-왜곡 성능을 저하시키지 않고서도 전탐색 알고리즘을 사용하는 기존의 방법과 비교하여 평균 92.4%까지 계산의 복잡도를 감소시킬 수 있다.As described in detail above, an embodiment of the present invention provides a fast partial distortion elimination algorithm using a Hadamard transform and its probability model. The Hadamard transform can be used to analyze the complexity of each of the local blocks. The matching error can be accurately predicted using the local block complexity CDF and the previous minimum matching error, such as SAD. According to this embodiment of the present invention, it is possible to reduce the complexity of the calculation by an average of 92.4% compared with the conventional method using the prescan algorithm without degrading the rate-distortion performance.

도 1은 본 발명의 제1 실시예에 따른 움직임 추정 절차를 보여 주는 흐름도이다.1 is a flowchart showing a motion estimation procedure according to the first embodiment of the present invention.

도 2는 탐색 블록인 매크로블록을 국부 블록으로 분할하는 방법을 예시적으로 보여주는 도면이다.2 is a diagram illustrating a method of dividing a macroblock, which is a search block, into local blocks, by way of example.

도 3은 본 발명의 제2 실시예에 따른 움직임 추정 절차를 보여 주는 흐름도이다.3 is a flowchart showing a motion estimation procedure according to a second embodiment of the present invention.

도 4는 본 발명의 실시예에 따른 방법과 기존의 방법에 의할 경우에 테스트 영상에 대한 평균 율-왜곡을 보여 주는 그래프이다.Figure 4 is a graph showing the average rate-distortion of the test image when the method according to an embodiment of the present invention and the conventional method.

Claims (7)

움직임 추정을 위한 탐색 영역 내의 소정의 후보 위치에 대한 매크로 블록을 다수의 국부 블록으로 분할하고, 하다마드 변환을 이용하여 상기 다수의 국부 블록들 각각에 대한 국부 블록 복잡도를 계산하는 단계; 및Dividing a macroblock for a predetermined candidate position in a search region for motion estimation into a plurality of local blocks, and calculating a local block complexity for each of the plurality of local blocks using a Hadamard transform; And 상기 국부 블록 복잡도가 큰 국부 블록부터 순서대로 부분 정합 에러의 합을 계산하고, 상기 부분 정합 에러의 합을 이용하여 상기 소정의 후보 위치가 정합 블록이 될 수 있는 지를 판단하는 단계를 포함하는 움직임 추정 방법.Calculating a sum of partial matching errors in order from a local block having a large local block complexity, and determining whether the predetermined candidate position can be a matching block using the sum of the partial matching errors. Way. 제1항에 있어서, 상기 국부 블록의 복잡도는 수학식 (E-1)을 이용하여 구하는 것을 특징으로 하는 움직임 추정 방법.The motion estimation method of claim 1, wherein the complexity of the local block is obtained by using Equation (E-1).
Figure 112009045492984-pat00011
(E-1)
Figure 112009045492984-pat00011
(E-1)
여기서, LBC(k)는 상기 매크로블록에 포함되는 k번째 국부 블록의 국부 블록 복잡도(LBC)를 나타낸다. SumAC(k)는 상기 k번째 국부 블록의 하다마드 변환 계수들에서 교류 성분(Alternate Component, AC)의 절대값의 합이고, DCLocal(k)는 상기 k번째 국부 블록의 하다마드 변환 계수들에서 직류 성분(Direct Component, DC)의 변환 계수를 의미한다. 그리고, DCMB 는 상기 매크로블록의 DC값으로 상기 매크로블록에 포함되는 모든 국부 블록 각각에 대한 직류 성분의 변환 계수들의 평균값을 나타낸다.Here, LBC (k) represents a local block complexity (LBC) of the k-th local block included in the macroblock. SumAC (k) is the sum of the absolute values of Alternate Component (AC) in the Hadamard transform coefficients of the k-th local block, and DC Local (k) is the Hadamard transform coefficients of the k-th local block. The conversion coefficient of the direct component (DC). DC MB is a DC value of the macroblock and represents an average value of transform coefficients of a DC component for each of the local blocks included in the macroblock.
제1항에 있어서, 상기 부분 정합 에러의 합이 소정의 임계치 이상일 경우에는 상기 소정의 후보 위치가 정합 블록이 될 수 없는 것으로 판단하는 것을 특징으 로 하는 움직임 추정 방법.2. The method of claim 1, wherein if the sum of the partial matching errors is greater than or equal to a predetermined threshold, the candidate position is determined to be a matching block. 움직임 추정을 위한 탐색 영역 내의 소정의 후보 위치에 대한 매크로 블록을 다수의 국부 블록으로 분할하고, 하다마드 변환을 이용하여 상기 다수의 국부 블록들 각각에 대한 국부 블록 복잡도를 계산하는 단계;Dividing a macroblock for a predetermined candidate position in a search region for motion estimation into a plurality of local blocks, and calculating a local block complexity for each of the plurality of local blocks using a Hadamard transform; 상기 국부 블록 복잡도를 이용하여 상기 소정의 후보 위치에 대한 예측 정합 에러를 구하는 단계; 및Obtaining a prediction match error for the predetermined candidate position using the local block complexity; And 상기 탐색 영역 내의 모든 후보 위치 중에서 상기 예측 정합 에러가 작은 일부 후보 위치에 대해서만 정합 에러를 구하여 정합 블록을 선택하는 단계를 포함하는 움직임 추정 방법.And selecting a matching block by obtaining a matching error only for some candidate positions having the smallest prediction matching error among all candidate positions in the search region. 제4항에 있어서, 상기 국부 블록의 복잡도는 수학식 (E-2)을 이용하여 구하는 것을 특징으로 하는 움직임 추정 방법.The method of claim 4, wherein the complexity of the local block is obtained by using Equation (E-2).
Figure 112009045492984-pat00012
(E-2)
Figure 112009045492984-pat00012
(E-2)
여기서, LBC(k)는 상기 매크로블록에 포함되는 k번째 국부 블록의 국부 블록 복잡도(LBC)를 나타낸다. SumAC(k)는 상기 k번째 국부 블록의 하다마드 변환 계수들에서 교류 성분(Alternate Component, AC)의 절대값의 합이고, DCLocal(k)는 상기 k번째 국부 블록의 하다마드 변환 계수들에서 직류 성분(Direct Component, DC)의 변환 계수를 의미한다. 그리고, DCMB 는 상기 매크로블록의 DC값으로 상기 매크로블록에 포함되는 모든 국부 블록 각각에 대한 직류 성분의 변환 계수들의 평균값을 나타낸다.Here, LBC (k) represents a local block complexity (LBC) of the k-th local block included in the macroblock. SumAC (k) is the sum of the absolute values of Alternate Component (AC) in the Hadamard transform coefficients of the k-th local block, and DC Local (k) is the Hadamard transform coefficients of the k-th local block. The conversion coefficient of the direct component (DC). DC MB is a DC value of the macroblock and represents an average value of transform coefficients of a DC component for each of the local blocks included in the macroblock.
제5항에 있어서, 상기 예측 정합 에러를 구하는 단계는6. The method of claim 5, wherein obtaining the prediction match error 상기 국부 블록 복잡도가 높은 국부 블록부터 낮은 국부 블록의 순서대로 순차적으로 정합 에러를 합산하여 부분 정합 에러를 계산하는 단계; 및Calculating a partial match error by sequentially summing matching errors in the order of the local block having a high local block complexity and a low local block; And 상기 국부 블록 복잡도의 누적 분포 함수와 상기 부분 정합 에러의 누적 분포 함수(Cumulative Distribution Function, CDF)의 유사성과 상관관계를 이용하여 상기 예측 정합 에러를 구하는 것을 특징으로 하는 움직임 추정 방법.And estimating the predictive matching error using a similarity and correlation between the cumulative distribution function of the local block complexity and the cumulative distribution function (CDF) of the partial matching error. 제6항에 있어서, 상기 부분 정합 에러는 식 (E-3)을 이용하여 구하고, 상기 예측 정합 에러는 식 (E-4)를 이용하여 구하는 것을 특징으로 하는 움직임 추정 방법.The method of claim 6, wherein the partial matching error is obtained by using Equation (E-3), and the prediction matching error is obtained by using Equation (E-4).
Figure 112007085008181-pat00013
(E-3)
Figure 112007085008181-pat00013
(E-3)
Figure 112007085008181-pat00014
(E-4)
Figure 112007085008181-pat00014
(E-4)
여기서, Partial SAD(k)는 국부 블록 복잡도가 내림차순으로 k번째인 국부 블록까지의 정합 에러의 합, fcur 및 fref는 각각 현재 프레임과 참조 프레임, i는 국부 블록(LB)의 수, x, y는 후보 움직임 벡터, j는 i번째 국부 블록에서의 후보 위치를 가리키고, Where Partial SAD (k) is the sum of matching errors up to the k-th local block in descending order of local block complexity, f cur and f ref are the current frame and the reference frame, i is the number of local blocks LB, x , y is a candidate motion vector, j is a candidate position in the i th local block, Predictive SAD(k)는 국부 블록 복잡도가 내림차순으로 k번째 국부 블록까지의 정합 에러의 합으로부터 예측된 예측 정합 에러, CDFLBC(k)는 국부 블록 복잡도 의 누적 분포 함수, CDFpmSAD(k)는 이전의 최소 SAD의 누적 분포 함수, SADLB(k)는 k번째 국부 블록의 SAD, ω는 가중 인자(Weighting Factor)를 나타낸다.Predictive SAD (k) is the predictive matching error predicted from the sum of the matching errors up to the kth local block in descending order of local block complexity, CDF LBC (k) is the cumulative distribution function of local block complexity, and CDF pmSAD (k) is The cumulative distribution function of the minimum SAD, SAD LB (k) denotes the SAD of the k-th local block, and ω denotes the weighting factor.
KR1020070121185A 2007-11-27 2007-11-27 Motion estimation procedure using fast block matching algorithm KR100924642B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070121185A KR100924642B1 (en) 2007-11-27 2007-11-27 Motion estimation procedure using fast block matching algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070121185A KR100924642B1 (en) 2007-11-27 2007-11-27 Motion estimation procedure using fast block matching algorithm

Publications (2)

Publication Number Publication Date
KR20090054495A KR20090054495A (en) 2009-06-01
KR100924642B1 true KR100924642B1 (en) 2009-11-02

Family

ID=40986428

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070121185A KR100924642B1 (en) 2007-11-27 2007-11-27 Motion estimation procedure using fast block matching algorithm

Country Status (1)

Country Link
KR (1) KR100924642B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004056305A (en) 2002-07-17 2004-02-19 Matsushita Electric Ind Co Ltd Motion vector detecting method, motion vector detecting apparatus, and program
JP2007134755A (en) 2005-11-08 2007-05-31 Hitachi Ltd Moving picture encoder and image recording and reproducing device
KR20080048384A (en) * 2006-11-28 2008-06-02 한양대학교 산학협력단 Apparatus and method for the fast full search motion estimation using the partitioned search window

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004056305A (en) 2002-07-17 2004-02-19 Matsushita Electric Ind Co Ltd Motion vector detecting method, motion vector detecting apparatus, and program
JP2007134755A (en) 2005-11-08 2007-05-31 Hitachi Ltd Moving picture encoder and image recording and reproducing device
KR20080048384A (en) * 2006-11-28 2008-06-02 한양대학교 산학협력단 Apparatus and method for the fast full search motion estimation using the partitioned search window

Also Published As

Publication number Publication date
KR20090054495A (en) 2009-06-01

Similar Documents

Publication Publication Date Title
US20200014952A1 (en) Device and method for fast block-matching motion estimation in video encoders
RU2381630C2 (en) Method and device for determining block conformity quality
US8023562B2 (en) Real-time video coding/decoding
US8040948B2 (en) Method and system for coding moving image signals, corresponding computer program product
EP1228645B1 (en) Adaptive motion vector field coding
EP1024456A2 (en) Motion estimation using orthogonal transform-domain block matching
US5508744A (en) Video signal compression with removal of non-correlated motion vectors
Lengwehasarit et al. Probabilistic partial-distance fast matching algorithms for motion estimation
EP0894403A1 (en) Video encoder and decoder using motion-based segmentation and merging
KR20050119422A (en) Method and apparatus for estimating noise of input image based on motion compenstion and, method for eliminating noise of input image and for encoding video using noise estimation method, and recording medium for storing a program to implement the method
US20060164543A1 (en) Video encoding with skipping motion estimation for selected macroblocks
KR20040089163A (en) Method and Apparatus for Determining Search Range for Adaptive Motion Vector for Use in Video Encoder
KR20090079286A (en) Method and apparatus for estimating motion vector of moving images using fast full search block matching algorithm
Young et al. Automatic layout generation for CMOS operational amplifiers
KR20040062257A (en) Advanced method and apparatus for noise estimation based on motion compensation, and method and apparatus for encoding video using noise estimation based on motion compensation
KR100727988B1 (en) Method and apparatus for predicting DC coefficient in transform domain
KR100910209B1 (en) Apparatus and Method for the fast full search motion estimation using the partitioned search window
KR100924642B1 (en) Motion estimation procedure using fast block matching algorithm
KR100942778B1 (en) Method for searching motion vector and apparatus for the same
Semsarzadeh et al. Complexity modeling of the motion compensation process of the H. 264/AVC video coding standard
Lee Fast motion estimation based on adaptive search range adjustment and matching error prediction
KR100924641B1 (en) Fast block matching procedure for motion estimation
KR100413002B1 (en) Apparatus and method for block matching by using dispersed accumulate array in video coder
KR0128875B1 (en) Motion vector estimation method for an image having a large motion
Lee et al. Efficient motion estimation using edge-based binary block-matching and refinement based on motion vector correlation

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: 20121011

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130930

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141008

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151012

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee