KR20020044848A - Apparatus and method for block matching by using dispersed accumulate array in video coder - Google Patents

Apparatus and method for block matching by using dispersed accumulate array in video coder Download PDF

Info

Publication number
KR20020044848A
KR20020044848A KR1020000074066A KR20000074066A KR20020044848A KR 20020044848 A KR20020044848 A KR 20020044848A KR 1020000074066 A KR1020000074066 A KR 1020000074066A KR 20000074066 A KR20000074066 A KR 20000074066A KR 20020044848 A KR20020044848 A KR 20020044848A
Authority
KR
South Korea
Prior art keywords
candidate
sad
slice
candidates
block
Prior art date
Application number
KR1020000074066A
Other languages
Korean (ko)
Other versions
KR100413002B1 (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 KR10-2000-0074066A priority Critical patent/KR100413002B1/en
Publication of KR20020044848A publication Critical patent/KR20020044848A/en
Application granted granted Critical
Publication of KR100413002B1 publication Critical patent/KR100413002B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks

Abstract

PURPOSE: A block matching device is provided to use a dispersed accumulate array while estimating a motion in motion picture compression, thereby reducing calculations of a block matching algorithm. CONSTITUTION: A present/previous block memory(10) stores a present block and a previous block. A slice candidate extractor(20) performs an SAD(Sum of Absolute Difference) by slices of each candidate by the previous block, and extracts a candidate for the present block. A motion vector decider(40) decides a motion vector by using the extracted candidate. The slice candidate extractor comprises as follows. A candidate slice SAD calculator(21) calculates portions of SADs of predetermined candidates, and calculates a final SAD of the candidates. A candidate comparison extractor(22) removes candidates having a lower probability of being motion vectors by using the calculated SAD, and extracts a candidate having the lowest MAD(Mean Absolute Difference) value for finally-remaining candidates.

Description

동영상 부호화기의 확산누적배열을 이용한 블록정합 장치 및 그 방법{Apparatus and method for block matching by using dispersed accumulate array in video coder}Apparatus and method for block matching by using dispersed accumulate array in video coder}

본 발명은 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치 및 그 방법에 관한 것으로, 특히 동영상 압축에서 움직임 추정시 확산누적배열을 이용하여 블록정합 알고리즘의 연산량을 줄이기에 적당하도록 한 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치 및 그 방법에 관한 것이다.The present invention relates to a block matching apparatus and a method using a spreading accumulation array of a video encoder, and more particularly, to a spreading accumulation of a video encoder which is suitable to reduce the computational amount of a block matching algorithm by using a spreading accumulation array in motion estimation. A block matching device using an array and a method thereof.

최근 수년 동안 동영상 부호화에 관한 관심이 고조되어 H.26x, MPEG(Moving Picture Export Group, 통합계 동영상압축의 국제표준)-1, MPEG-2, MPEG-4와 같은 표준안들이 많이 제정되었다.In recent years, interest in video encoding has been raised, and many standards such as H.26x, MPEG (Moving Picture Export Group) -1, MPEG-2, and MPEG-4 have been enacted.

이들 표준안들은 영상 전화, 디지털 방송, 고화질 TV 등의 다양한 응용에 적용되고 있으며, 영상 부호화 방식으로 대부분 복합 움직임 보상/이산여현부호화 방식을 채택하고 있다. 그리고 움직임 보상은 연속된 영상 사이의 중복성을 효과적으로 줄여 많은 양의 디지털 데이터를 압축시켜줌으로써 그 중요도가 매우 높다. 특히 MPEG에서의 움직임 보상은 각 프레임의 부호화 방법(P-화면 또는 B-화면)에 따라 다르게 수행된다.These standards are applied to various applications such as video telephony, digital broadcasting, and high-definition TV. Most of them adopt complex motion compensation / discrete cod coding as video coding. Motion compensation is very important because it effectively compresses large amounts of digital data by effectively reducing redundancy between successive images. In particular, motion compensation in MPEG is performed differently according to the encoding method (P-picture or B-picture) of each frame.

예를 들어, 현재 프레임이 P-화면일 경우에는 단방향 예측이 적용되고, B-화면에서는 단방향 및 양방향 예측이 적용된다. 따라서 움직임 보상의 중요성은 높아지고, 부호화기에서는 16*16화소 크기인 매크로블록 단위의 움직임 보상 모드가 필요하다.For example, when the current frame is a P-picture, unidirectional prediction is applied, and in B-picture, unidirectional and bidirectional prediction are applied. Therefore, the importance of motion compensation increases, and the encoder requires a motion compensation mode in units of macroblocks having a size of 16x16 pixels.

따라서 이의 하드웨어(H/W) 구현을 위해서는 화소 신호를 저장하는 프레임메모리가 필요하고, 이 메모리에 신호를 저장하고 움직임 벡터만큼 위치를 이동시켜 신호를 읽어내는 과정 및 움직임 보상과 모드결정에 대한 고려가 필요하다.Therefore, in order to implement the hardware (H / W), a frame memory for storing the pixel signal is required, and the process of reading the signal by storing the signal in this memory and moving the position by the motion vector, and considering the motion compensation and mode decision Is needed.

아울러 동영상 부호화기에서 움직임 보상 모드를 결정하기 위해서는 순방향, 역방향 및 양방향의 예측을 수행해야 하고, 현재 프레임의 부호화 방법에 따라 이들 중에 최소의 오차를 제공하는 모드를 결정해야 한다. 이의 실시간 하드웨어 구현을 위해서는 할당된 매크로블록 시간 동안 3가지 예측 작업이 동시에 이루어져야 한다.In addition, in order to determine a motion compensation mode in a video encoder, forward, backward, and bidirectional predictions must be performed, and a mode providing a minimum error among them according to a coding method of a current frame must be determined. For this real-time hardware implementation, three prediction tasks must be performed simultaneously during the allocated macroblock time.

MPEG 동영상 부호화기에서는 영상 데이터의 처리 단위가 기본적으로 16*16화소 크기인 매크로블록 단위로 이루어진다. 이때 움직임 보상과 관련된 과정은 부호화기에서 국부적으로 복호화된 매크로블록 데이터를 다음 프레임을 위해 메모리에 쓰는 과정과, 현재 매크로블록의 예측을 위해 프레임 메모리로부터 데이터를 읽어내는 과정, 그리고 읽혀진 데이터를 이용하여 적절한 예측들을 수행하고 최소 예측오차를 가지는 모드를 결정하는 과정 등이 포함된다.In the MPEG video encoder, the processing unit of the image data is basically a macroblock unit having a size of 16 * 16 pixels. At this time, the process related to motion compensation includes writing the locally decoded macroblock data into the memory for the next frame, reading the data from the frame memory for prediction of the current macroblock, and using the read data. Performing predictions and determining the mode having the least prediction error.

즉, 매크로블록에 할당된 클럭의 수가 M이라고 할 때, 이 기간동안 프레임 메모리에 1 매크로블록의 데이터의 읽기와 쓰기가 수행되어야 한다. 이를 위한 일반적인 방법(추후에 자세히 설명함)으로는 초기 M/2 클럭 동안 읽기를 수행하고, 나머지 M/2 클럭 동안 읽기 또는 쓰기를 수행하는 방법을 생각할 수 있다.That is, when the number of clocks allocated to the macroblocks is M, reading and writing data of one macroblock to the frame memory must be performed during this period. A common way to do this (described in more detail later) is to read during the initial M / 2 clock and read or write for the remaining M / 2 clock.

그러나 양방향 예측을 허용하는 B-화면에서는 순방향/역방향의 예측을 위한 데이터를 읽어 각각의 예측오차를 구하고, 두 가지 예측의 평균인 양방향 예측 데이터를 얻고 이에 대한 예측오차도 구해야 한다. 따라서 이러한 경우에는 단순히매크로블록에 할당된 클럭을 전반부와 후반부로 나누어 처리할 경우 양방향 예측을 위한 처리가 복잡해진다.However, in a B-screen that allows bidirectional prediction, each prediction error is obtained by reading data for forward / reverse prediction, and bidirectional prediction data, which is an average of two predictions, must be obtained. Therefore, in this case, if the clock allocated to the macroblock is divided into the first half and the second half, the processing for bidirectional prediction becomes complicated.

도 1은 일반적인 동영상 부호화기(1)의 블록구성도이다.1 is a block diagram of a general video encoder 1.

이에 도시된 바와 같이, 현재 영상과 이전 영상에 대한 데이터를 매크로블록으로 저장하는 프레임 메모리(2)와; 상기 프레임 메모리(2)에서 얻어지는 이전 영상을 이용하여 입력 영상의 움직임을 추정하는 움직임 추정부(3)와; 상기 움직임 추정부(3)에서 얻어지는 움직임 벡터를 이용하여 상기 프레임 메모리(2)에 저장된 이전 영상으로부터 현재 처리될 블록의 예측 값을 얻어내는 움직임 보상부(4)를 포함하여 구성된다.As shown therein, a frame memory 2 for storing data for a current image and a previous image as a macroblock; A motion estimator (3) for estimating the motion of the input image using the previous image obtained from the frame memory (2); And a motion compensator 4 for obtaining a predicted value of a block to be currently processed from a previous image stored in the frame memory 2 by using the motion vector obtained from the motion estimator 3.

이와 같이 구성된 일반적인 동영상 부호화기(1)는, 먼저 움직임 추정부(3)에서 입력 영상과 예측을 수행하기 위해 프레임 메모리(2)에 저장되어 있는 이전 영상을 이용한다. 그래서 프레임 메모리(2)에 저장된 이전 영상을 이용하여 현재 영상의 움직임 추정을 수행한다.The general video encoder 1 configured as described above first uses the previous image stored in the frame memory 2 to perform prediction with the input image in the motion estimator 3. Thus, motion estimation of the current image is performed using the previous image stored in the frame memory 2.

따라서 동영상 부호화기에서 일반적인 부호화기의 움직임 추정 알고리즘 중 블록정합방식은 현재 프레임내의 블록과 비슷한 영역을 가지는 이전프레임과의 정합척도를 사용하여 최종적으로 움직임 벡터를 찾는 것이다. 그래서 움직임 추정부(3)에서는 각각의 프레임에서 블록정보를 받아서 움직임 벡터를 추정하게 된다.Therefore, the block matching method among motion estimation algorithms of the general encoder in the video encoder is to finally find the motion vector using the matching scale with the previous frame having a similar area as the block in the current frame. Therefore, the motion estimator 3 estimates a motion vector by receiving block information in each frame.

이때 얻어지는 움직임 벡터는 움직임 보상부(4)에 입력되며, 움직임 보상부(4)는 그 움직임 벡터를 이용하여 프레임 메모리(2)에 저장된 이전 영상으로부터 현재 처리할 블록의 움직임 보상 예측 값을 추출한다.The motion vector obtained at this time is input to the motion compensator 4, and the motion compensator 4 extracts the motion compensation prediction value of the block to be processed currently from the previous image stored in the frame memory 2 using the motion vector. .

그리고 부호화를 위한 기본단위는 휘도신호 기준으로 16*16화소의 매크로블록이 되고, 이 단위로 움직임 추정과 움직임 보상 및 모드 결정이 이루어진다.The basic unit for encoding is a macroblock of 16 * 16 pixels based on the luminance signal, and motion estimation, motion compensation, and mode determination are performed in this unit.

한편 입력영상의 연속적인 프레임 사이의 높은 시간상 유사성으로 인하여 움직임 보상(Motion Compensation)은 비디오 압축분야에서 오랜 동안 널리 사용되어져 왔다. 움직임 보상은 시간상의 인접한 두 프레임간에 존재하는 정보의 중복성을 억제하는 방법으로서 두 단계로 나누어진다.On the other hand, motion compensation has been widely used in the video compression field for a long time due to the high temporal similarity between successive frames of the input image. Motion compensation is divided into two steps as a method of suppressing redundancy of information existing between two adjacent frames in time.

먼저 움직임 추정(Motion Estimation)을 하여 두 프레임간의 움직임 정보를 생성하고, 현재 프레임과 움직임 예측 프레임(Motion Predicted Frame) 사이의 차등정보를 부호화하는 오차 예측 코딩(Prediction Error Coding)으로 나누어진다.First, motion estimation is performed to generate motion information between two frames, and divided into error prediction coding for encoding differential information between a current frame and a motion predicted frame.

움직임 추정방식 중 가장 많이 사용하는 방식은 블록 정합 방식(Block Matching Algorithm, BMA)이다. 블록 정합 방식은 연속적으로 입력되어지는 두 프레임 사이에서 현재프레임의 각각의 블록(일반적으로 가로 16, 세로 16 픽셀)이 이전프레임에서 가장 유사한 블록을 찾는 알고리즘이다.The most commonly used method of motion estimation is a block matching algorithm (BMA). Block matching is an algorithm in which each block (usually 16 pixels wide and 16 pixels wide) of the current frame finds the most similar block in the previous frame between two consecutive frames.

검색시간과 연산량을 줄이기 위해서 현재 프레임 주변의 최대 탐색 영역(M(N)+2w)내의 영역만을 탐색하도록 제한을 둔다. 그리고 정합 척도(matching criterion)를 사용하여, 최대 탐색 영역내의 블록 중 가장 유사한 블록의 상대적인 위치를 움직임 벡터(motion vector)로 설정한다.In order to reduce the searching time and the amount of computation, the search is limited to searching only the area within the maximum search area M (N) + 2w around the current frame. Then, using a matching criterion, the relative position of the most similar block among the blocks in the maximum search area is set as a motion vector.

도 2는 종래 블록정합을 이용한 움직임 추정부의 상세블록도이다.2 is a detailed block diagram of a motion estimation unit using conventional block matching.

이에 도시된 바와 같이, 현재 블록과 이전 블록을 저장하는 현재/이전 블록메모리(5)와; 상기 이전 블록에 대해 SAD(Sum of Absolute Difference)/MAD(Mean Absolute Difference)를 수행하여 현재 블록에 대한 후보를 추출하는 SAD/MAD 후보추출부(6)와; 상기 SAD/MAD 후보추출부(6)에서 추출된 후보를 이용하여 움직임벡터를 결정하는 움직임벡터 결정부(7)로 구성된다.As shown therein, a current / previous block memory 5 for storing a current block and a previous block; A SAD / MAD candidate extracting unit 6 for extracting a candidate for the current block by performing a sum of absolute difference (SAD) / mean absolute difference (MAD) on the previous block; The motion vector determination unit 7 determines a motion vector by using the candidate extracted by the SAD / MAD candidate extraction unit 6.

그래서 종래의 블록정합방법에서는 미리 설정되어있는 후보들에 대하여 SAD값을 구하고 난 다음 각각의 MAD를 구하여 가장 낮은 값을 가지는 후보가 움직임벡터가 되도록 한다.Therefore, in the conventional block matching method, after obtaining SAD values for preset candidates, each MAD is obtained so that the candidate having the lowest value becomes a motion vector.

도 3은 도 2에 사용되는 탐색영역 내에서의 이전/현재 프레임의 구성도이다.3 is a configuration diagram of a previous / current frame in a search area used in FIG. 2.

움직임 추정의 정확도를 평가하기 위해서 일반적으로 MAD(mean absolute difference)를 사용하며, 이는 다음의 수학식 1과 같다.In order to evaluate the accuracy of motion estimation, a mean absolute difference (MAD) is generally used, which is expressed by Equation 1 below.

여기서 M과 N은 블록의 가로와 세로의 화소수이며, It(i,j)은 시점 t에서의 프레임 내의 좌표 (i,j)의 밝기값이다. 그래서 It(i,j)는 현재프레임의 한 점을 나타내고, It-1(i,j)은 이전프레임에서의 임의의 점을 나타내게 된다. 따라서 MAD(x,y)는 현재프레임을 기준점으로 (x,y) 만큼 떨어져 위치한 지점의 화면 밝기 차이가 된다.Where M and N are the number of horizontal and vertical pixels of the block, and I t (i, j) is the brightness value of the coordinate (i, j) in the frame at time t. Thus, I t (i, j) represents one point of the current frame, and I t-1 (i, j) represents any point in the previous frame. Therefore, MAD (x, y) becomes the screen brightness difference at the point located (x, y) away from the current frame.

그리고 가로 k, 세로 l 만큼 이동한 위치에서의 블록 (k, l)에서의 MAD는 다음의 수학식 2와 같다.And the MAD in the block (k, l) at the position moved by the horizontal k, vertical l is the following equation (2).

여기서 i는 1 내지 16의 값을 갖고, j 또한 1 내지 16의 값을 갖는다. 그리고 k와 l은 현재 위치에서 오른쪽으로 w, 왼쪽으로 w 만큼 이동한 값이다. MAD(k-1)(x,y)는 가로와 세로의 화소수 M과 N을 곱한 값인 256으로 MAD(x,y)를 나눈 값이다.I has a value of 1 to 16, and j also has a value of 1 to 16. K and l are the values shifted from the current position to the right by w and left by w. MAD (k-1) (x, y) is a value obtained by dividing MAD (x, y) by 256, which is a product of horizontal and vertical pixels M and N.

또한 하드웨어 구현을 위해서 제산기(divider) 사용을 줄이기 위해 SAD(Sum of Absolute Difference)가 사용된다. SAD는 MAD와의 차이점이 총 픽셀값을 나누지 않는 것이다. 이러한 SAD는 다음의 수학식 3과 같다.In addition, Sum of Absolute Difference (SAD) is used to reduce the use of dividers for hardware implementation. SAD differs from MAD in that it does not divide the total pixel value. This SAD is as shown in Equation 3 below.

즉, SAD(k,l)(x,y)는 이전프레임에 있는 값과 현재 프레임에 있는 값들의 차이에 절대치를 누적한 값으로, MAD를 총 픽셀값인 256으로 나누지 않은 값이다.In other words, SAD (k, l) (x, y) is an absolute value accumulated between the difference between the value in the previous frame and the value in the current frame, and MAD is not divided by the total pixel value of 256.

그리고 움직임 벡터(Motion Vector, MV)는 검색영역 내에서 MAD 값이 가장 낮은 위치의 좌표값이 되므로, 다음의 수학식 4와 같이 된다.Since the motion vector (MV) becomes the coordinate value of the position where the MAD value is the lowest in the search region, the following equation (4) is obtained.

여기서 arg는 argument 함수이며, (x,y)는 가변적인 작은 그룹을 의미하며, (k,l)은 고정 값이며, min은 최소값이다. 따라서 MV(k,l)은 MAD가 가장 작은 값을 가지는 곳의 (x,y) 위치를 MV로 가정한다는 의미를 갖는다.Where arg is an argument function, (x, y) is a small group that is variable, (k, l) is a fixed value, and min is a minimum value. Therefore, MV (k, l) means that the position (x, y) where MAD has the smallest value is assumed to be MV.

이러한 종래의 블록정합알고리즘(BMA) 중 전역탐색 블록정합 알고리즘(full search BMA)은 탐색영역의 모든 위치를 검색하므로 가장 좋은 성능을 가지고 있지만, H.261과 MPEG-1 비디오 부호화기에서 전체 연산량의 60% ~ 70%를 차지하므로 하드웨어/소프트웨어 구현시 문제점을 안고 있다.Among the conventional block matching algorithms (BMAs), the full search BMA has the best performance because it searches all positions of the search area, but the H.261 and MPEG-1 video coders have 60% of the total throughput. It takes from 70% to 70%, which causes problems in hardware / software implementation.

이전 프레임의 임의의 위치의 MAD를 연산하기 위해서 2*M*N의 가산과 감산이 필요하다. 만약 연산량을 줄이기 위해 탐색영역을 w로 제한을 한다면, 현재 프레임의 고정 블록과 이전 프레임 탐색영역 내의 탐색해야 될 위치는 (2w+1)2이 된다. 만약 블록의 크기가 정방향 16의 크기이고, 탐색 영역 w가 7이면, 이론적으로 총 57600번의 가산, 감산이 필요하여, 방대한 하드웨어/소프트웨어 처리구조가 필요한 문제점이 있었다.Addition and subtraction of 2 * M * N are needed to compute the MAD of any position of the previous frame. If the search area is limited to w to reduce the amount of computation, the position to be searched in the fixed block of the current frame and the previous frame search area is (2w + 1) 2 . If the size of the block is 16 in the forward direction and the search area w is 7, theoretically, a total of 57600 additions and subtractions are required, which requires a large hardware / software processing structure.

이러한 연산량의 단점을 보완하기 위해서 전역을 탐색하지 않고 일부 영역을 탐색하여 연산량을 줄이면서 전역 탐색에 가까운 성능을 가지는 고속 탐색 블록 정합 알고리즘(partial search BMA)들이 제안이 되고 있다.In order to compensate for the shortcomings of the calculation amount, fast search block matching algorithms (partial search BMAs) which have a performance close to the global search while reducing the calculation amount by searching some regions without searching the whole area have been proposed.

블록의 가로 크기 M, 세로크기 N이라 가정하면, 한 후보의 최종적인 MAD를 위해서 M*N의 감산과 M*N-1의 가산이 필요하다. 그래서 크기가 16인 정방형의 블록일 경우 256번 감산과 255번의 가산이 필요하다. 따라서 전역탐색 정합알고리즘보다 연산량이 월등하게 적은 고속 탐색 정합알고리즘이라도 한 후보를 계산하기 위해서 고정적으로 할당된 2*M*N의 연산이 필요하게 된다.Assuming that the block has a horizontal size M and a vertical size N, it is necessary to subtract M * N and add M * N-1 for the final MAD of a candidate. So, for a square block of size 16, 256 subtractions and 255 additions are required. Therefore, even in the fast search matching algorithm, which has much less computation than the global search matching algorithm, a fixedly allocated 2 * M * N operation is required to calculate one candidate.

다시 정리하면, 움직임 벡터를 구하기 위해서 수학식 3에서처럼 각각의 후보들은 MN의 감산과 MN-1의 가산을 처리한 후 최종 MAD값이 나오게 된다. 그리고 전역 탐색인 경우 (2w+1)2의 후보에 대하여 계산을 한 후 가장 낮은 값을 가지는 후보의 위치가 움직임 벡터가 되며, 부분 탐색인 경우 미리 정해진 구조의 후보들에 대하여 계산을 하고 점점 범위를 좁혀가며 탐색을 하면서 가장 낮은 값을 가지는 후보가 최종 움직임 벡터가 되는 것이다.In summary, each candidate processes the subtraction of MN and the addition of MN-1 to obtain a final MAD value, as shown in Equation 3, to obtain a motion vector. In the case of global search, the position of the candidate having the lowest value becomes the motion vector after calculating the candidate of (2w + 1) 2 , and in the case of the partial search, the candidates of the predetermined structure are calculated and the range is gradually increased. As you narrow down the search, the candidate with the lowest value becomes the final motion vector.

도 4는 도 2를 이용한 고속블록정합에서 스텝감소방식의 탐색 예를 보인 도면이고, 도 5는 도 2를 이용한 고속블록정합에서 스텝증가방식의 탐색 예를 보인 도면이다.4 is a diagram illustrating an example of searching for a step reduction method in fast block matching using FIG. 2, and FIG. 5 is a diagram illustrating an example of searching for a step increment method in fast block matching using FIG. 2.

그래서 도 4는 중간의 위치를 중심으로 탐색거리의 반인 w/2 만큼 줄여가면서, 대칭적인 8 방향에 대하여, 가장 낮은 MAD(=SAD)를 찾아가는 Three Step Search 방식이다.Thus, FIG. 4 is a three step search method for finding the lowest MAD (= SAD) in the symmetrical eight directions while reducing the w / 2 half of the search distance from the middle position.

또한 도 5는 탐색모델을 3x3인 정방형 구조를 사용하여 9개의 후보 중 가장 낮은 후보로 이동시켜가면서 스텝을 증가시켜 나가는 방식이다.In addition, Figure 5 is a method of increasing the step while moving the search model to the lowest candidate of the nine candidates using a square structure of 3x3.

따라서 움직임벡터는 탐색 방식에 따라 미리 정해진 후보 각각에 대하여 MAD를 계산하고 난 후 서로 비교함으로써 최종 MAD를 찾을 수 있게 된다.Therefore, the motion vector can find the final MAD by calculating the MAD for each of the predetermined candidates according to a search method and then comparing them with each other.

도 6은 도 2에 의한 탐색영역내 모든 후보들의 SAD 추이를 보인 그래프이다.FIG. 6 is a graph illustrating SAD trends of all candidates in the search region shown in FIG. 2.

그래서 각각의 후보들은 M*N의 SAD를 수행하였으며(x축), MV의 최종 SAD값은 972이다(y축). x축은 256(=M*N)에 위치한 225(=(2w+1)2)개의 값들의 최종 SAD값들이다. 그리고 각각의 선들은 (k,l) 블록을 누적시킨 값이다. Lowest SAD는 현재블록과 이전블록의 차이가 가장 적은 부분으로, 이를 움직임벡터로 결정하게 된다. 후보들의 추이가 급변하는 부분(Abrupt SAD change)에 의해 SAD는 커지게 된다. 즉, 이전블록과 현재블록을 비교하여 화면밝기의 차이가 날 때 SAD는 커지게 된다.Thus, each candidate performed S * of M * N (x-axis), and the final SAD value of MV is 972 (y-axis). The x-axis is the final SAD of 225 (= (2w + 1) 2 ) values located at 256 (= M * N). Each line is a cumulative value of (k, l) blocks. Lowest SAD is the smallest difference between the current block and the previous block, which is determined as a motion vector. The SAD becomes large due to an abrupt SAD change of the candidates. That is, the SAD increases when the screen brightness is different by comparing the previous block with the current block.

실험결과 각각의 후보들의 추이는 급변하고(Abrupt SAD change) 서로 교차되면서 선형성을 확보하지 못한 것을 알 수 있다. 이러한 환경에서는 최종 SAD를 구하기 전까지 후보를 제거할 정확한 기준을 찾기 어려운 문제점이 있게 된다.As a result of the experiment, it can be seen that the trend of each candidate is suddenly changed (Abrupt SAD change) and intersected with each other, thereby failing to secure linearity. In this environment, it is difficult to find the exact criteria for removing candidates until the final SAD is obtained.

또한 SAD 추이의 선형성이 확보되지 못하는 경우는 두 프레임 사이의 동일 위치의 픽셀값들의 차이의 증감이 불규칙적으로 발생되는 경우이며, 주로 급격한 움직임이 있어서 두 프레임 사이에 새로운 물체가 발생하거나 소멸할 때, 선형성의 감소가 일어나게 된다.In addition, when the linearity of the SAD trend is not secured, the increase or decrease of the difference between the pixel values at the same position between two frames occurs irregularly. There is a decrease in linearity.

종래 기술에서는 이러한 후보추이들의 급변과 선형성의 미확보 문제를 해결하지 못하였다.The prior art has not solved the problem of sudden change and linearity of these candidate trends.

이에 본 발명은 상기와 같은 종래의 제반 문제점을 해소하기 위해 제안된 것으로, 본 발명의 목적은 동영상 압축에서 움직임 추정시 확산누적배열을 이용하여 블록정합 알고리즘의 연산량을 줄일 수 있는 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치 및 그 방법을 제공하는 데 있다.Accordingly, the present invention has been proposed to solve the conventional problems as described above, and an object of the present invention is to spread the cumulative accumulation of a video encoder that can reduce the computational amount of the block matching algorithm by using the diffusion accumulation array during motion estimation in video compression. A block matching device using an array and a method thereof are provided.

도 1은 일반적인 동영상 부호화기의 블록구성도이고,1 is a block diagram of a typical video encoder.

도 2는 종래 블록정합을 이용한 움직임 추정부의 상세블록도이며,2 is a detailed block diagram of a motion estimation unit using conventional block matching;

도 3은 도 2에 사용되는 탐색영역 내에서의 이전/현재 프레임의 구성도이고,3 is a configuration diagram of a previous / current frame in a search area used in FIG.

도 4는 도 2를 이용한 고속블록정합에서 스텝감소방식의 탐색 예를 보인 도면이며,4 is a diagram illustrating an example of a step reduction method in fast block matching using FIG. 2;

도 5는 도 2를 이용한 고속블록정합에서 스텝증가방식의 탐색 예를 보인 도면이고,FIG. 5 is a diagram illustrating a search example of a step increment method in fast block matching using FIG. 2.

도 6은 도 2에 의한 탐색영역내 모든 후보들의 SAD 추이를 보인 그래프이며,FIG. 6 is a graph showing SAD trends of all candidates in the search region shown in FIG.

도 7은 본 발명에 의한 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치의 블록구성도이고,7 is a block diagram of a block matching apparatus using spread accumulation array of a video encoder according to the present invention;

도 8은 도 7에서 슬라이스별 후보추출부의 상세블록도이며,FIG. 8 is a detailed block diagram of a candidate extracting unit for each slice in FIG. 7.

도 9는 본 발명에 의한 동영상 부호화기의 확산누적배열을 이용한 블록정합 방법을 보인 흐름도이고,9 is a flowchart illustrating a block matching method using spread accumulation array of a video encoder according to the present invention;

도 10은 본 발명에서 사용하는 베이어 디더의 각 임계값 행렬을 보인 표이며,10 is a table showing each threshold matrix of the Bayer dither used in the present invention,

도 11은 종래 기술에 의한 순차누적방식과 본 발명에 의한 확산누적방식의 2차원 공간 샘플링을 비교한 도면이고,11 is a view comparing two-dimensional spatial sampling of a sequential accumulation method according to the prior art and a diffusion accumulation method according to the present invention.

도 12는 본 발명을 적용한 탐색영역내 모든 후보들의 SAD 추이를 보인 그래프이며,12 is a graph showing the SAD trend of all candidates in the search region to which the present invention is applied.

도 13은 본 발명을 적용한 초기/최종 슬라이스간의 움직임 벡터 간의 거리 예를 보인 표이고,13 is a table showing an example of the distance between the motion vectors between the initial / final slice to which the present invention is applied,

도 14는 종래 기술과 본 발명에 의한 슬라이스 구성 차이를 보인 도면이며,14 is a view showing a difference in slice configuration according to the prior art and the present invention,

도 15는 본 발명을 적용한 각 슬라이스에서의 SAD 추이를 보인 그래프이고,15 is a graph showing the SAD trend in each slice to which the present invention is applied,

도 16은 종래 기술들과 본 발명에 의한 각 블록정합 방식의 성능을 비교한 표이며,16 is a table comparing the performance of each block matching scheme according to the prior art and the present invention,

도 17은 종래 기술들과 본 발명에 의한 각 블록정합 방식의 소요시간을 비교한 표이다.17 is a table comparing the time required for each block matching method according to the prior art and the present invention.

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

10 : 현재/이전 블록메모리 20 : 슬라이스별 후보추출부10: current / previous block memory 20: candidate extracting unit for each slice

21 : 후보 슬라이스별 SAD 계산부 22 : 후보 비교추출부21: SAD calculation unit for each candidate slice 22: Candidate comparison extractor

31 : 메모리 32 : 위치생성부31: memory 32: location generator

33 : SAD 계산부 34 : 비교부33: SAD calculation unit 34: comparison unit

40 : 움직임벡터 결정부40: motion vector determiner

이하, 상기와 같은 본 발명, 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치 및 그 방법의 기술적 사상에 따른 일실시예를 첨부한 도면에 의거 설명하면 다음과 같다.Hereinafter, a block matching apparatus using a diffusion accumulation array of a video encoder and a method according to the technical spirit of the method will be described with reference to the accompanying drawings.

도 7은 본 발명에 의한 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치의 블록구성도이다.7 is a block diagram of a block matching device using a spread accumulation array of a video encoder according to the present invention.

이에 도시된 바와 같이, 현재 블록과 이전 블록을 저장하는 현재/이전 블록메모리(10)와; 이전 블록에 의한 각 후보의 슬라이스별 SAD(Sum of Absolute Difference)를 수행하여 현재 블록에 대한 후보를 추출하는 슬라이스별 후보추출부 (20)와; 상기 슬라이스별 후보추출부(20)에서 추출된 후보를 이용하여 움직임벡터를 결정하는 움직임벡터 결정부(40)를 포함하여 구성된다.As shown therein, a current / previous block memory 10 for storing a current block and a previous block; A candidate extractor 20 for each slice extracting a candidate for the current block by performing SAD (Sum of Absolute Difference) for each slice of each candidate by the previous block; And a motion vector determiner 40 for determining a motion vector using the candidate extracted by the slice candidate extractor 20.

상기에서 슬라이스별 후보추출부(20)는, 미리 지정되어 있는 후보들의 SAD의 일부분을 계산하여 후보들의 최종 SAD를 계산하는 후보슬라이스별 SAD 계산부(21)와; 상기 후보슬라이스별 SAD 계산부(21)에서 계산된 SAD를 이용하여 슬라이스별로 움직임벡터로서의 가능성이 낮은 후보들을 제거시키고 최종적으로 남아있는 후보들에 대하여 가장 낮은 MAD 값을 갖는 후보를 추출하는 후보 비교추출부(22)를 포함하여 구성된다.The candidate extractor 20 for each slice may include: a candidate slice-specific SAD calculator 21 for calculating a final SAD of candidates by calculating a portion of SADs of candidates previously designated; A candidate comparison extractor which removes candidates having low probability as a motion vector for each slice by using the SAD calculated by the candidate slice SAD calculator 21 and extracts candidates having the lowest MAD value for the remaining candidates. It comprises a 22.

도 8은 도 7에서 슬라이스별 후보추출부의 상세블록도이다.FIG. 8 is a detailed block diagram of a candidate extractor for each slice in FIG. 7.

이에 도시된 바와 같이, 누적 순서를 저장하는 메모리(31)와; 상기메모리(31)에 저장된 누적 순서를 사용하여 마스크의 위치와 누적화소의 위치를 생성하는 위치생성부(32)와; 상기 위치생성부(32)에서 생성된 위치에 해당되는 값들을 사용하여 SAD를 구하는 SAD 계산부(33)와; 상기 SAD 계산부(33)에서 구해진 후보들 사이의 SAD를 비교하여 가능성이 낮은 후보들을 탈락시키는 비교부(34)를 포함하여 구성된다.As shown therein, a memory 31 for storing the accumulation order; A position generator 32 for generating a position of a mask and a position of an accumulated pixel using the accumulation order stored in the memory 31; A SAD calculator (33) for calculating SAD using values corresponding to the position generated by the position generator (32); And a comparison unit 34 for comparing the SADs among the candidates obtained by the SAD calculation unit 33 and dropping candidates with low probability.

상기에서 메모리(31)는, 확산누적방식을 사용한 누적 순서를 저장한다.In the above, the memory 31 stores the accumulation order using the diffusion accumulation method.

상기에서 확산누적방식은, 베이어 디더(Bayer Dither) 행렬을 사용한다.In the diffusion accumulation method, a Bayer Dither matrix is used.

도 9는 본 발명에 의한 동영상 부호화기의 확산누적배열을 이용한 블록정합 방법을 보인 흐름도이다.9 is a flowchart illustrating a block matching method using spread accumulation arrays of a video encoder according to the present invention.

이에 도시된 바와 같이, 후보위치를 저장하고 후보, 슬라이스를 초기화하는 제 1 단계(ST11)(ST12)와; 상기 제 1 단계 후 후보에 대하여 슬라이스별 SAD를 계산하여 마지막 후보까지 계산했는지 판별하는 제 2 단계(ST13)(ST14)와; 상기 마지막 후보까지 계산하지 않았으면 후보를 증가시킨 다음 상기 제 2 단계로 리턴하는 제 3 단계(ST15)와; 상기 마지막 후보까지 계산했으면, 높은 SAD를 가지는 후보들을 탈락시키고 마지막 슬라이스에 도달했는지 판별하는 제 4 단계(ST16)(ST17)와; 상기 마지막 슬라이스에 도달하지 않았으면 슬라이스를 증가시킨 다음 상기 제 2 단계로 리턴하는 제 5 단계(ST18)와; 상기 마지막 슬라이스에 도달하였으면, 남아 있는 후보 중 가장 낮은 SAD를 추출하는 제 6 단계(ST19)를 포함하여 수행한다.As shown therein, a first step (ST11) (ST12) of storing candidate positions and initializing candidates and slices; A second step (ST13) (ST14) for calculating whether the SAD for each slice is calculated for the candidate after the first step and calculating the final candidate; A third step ST15 of incrementing a candidate and returning to the second step if the last candidate has not been calculated; A fourth step (ST16) (ST17) of dropping candidates having a high SAD and determining whether the last slice has been reached once the last candidate has been calculated; A fifth step (ST18) of incrementing a slice and returning to the second step if the last slice has not been reached; If the last slice is reached, a sixth step ST19 of extracting the lowest SAD among remaining candidates is performed.

상기에서 제 1 단계는, 확산누적방식을 사용하여 후보위치를 결정한다.In the first step, the candidate position is determined using a diffusion accumulation method.

상기에서 확산누적방식은, 베이어 디더(Bayer Dither) 행렬을 사용한다.In the diffusion accumulation method, a Bayer Dither matrix is used.

이와 같이 구성된 본 발명에 의한 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치 및 그 방법의 동작을 첨부한 도면에 의거 상세히 설명하면 다음과 같다.Referring to the accompanying drawings, the operation of the block matching device and the method using the diffusion cumulative array of the video encoder according to the present invention configured as described above will be described in detail as follows.

먼저 SAD누적의 추이를 선형에 가깝게 만든다면 최종 MAD를 예측할 수 있을 것이다. 최종 MAD를 예측한다는 것은 움직임 벡터도 알 수 있다는 것을 의미한다. 따라서 본 발명에서는 도 6에 나타나있는 추이곡선을 직선에 가깝게 만드는 방식을 제안한다.First, if we make the trend of the SAD accumulation close to linear, we can predict the final MAD. Predicting the final MAD means that the motion vector can also be known. Therefore, the present invention proposes a method of making the transition curve shown in FIG. 6 close to a straight line.

도 7은 본 발명에 의한 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치의 블록구성도이다.7 is a block diagram of a block matching device using a spread accumulation array of a video encoder according to the present invention.

그래서 현재/이전 블록메모리(10)는 현재 프레임과 이전 프레임의 매크로블록을 저장한다.Thus, the current / previous block memory 10 stores macroblocks of the current frame and the previous frame.

슬라이스별 후보추출부(20)는 이전 블록에 의한 각 후보의 슬라이스별 SAD를 수행하여 현재 블록에 대한 후보를 추출한다.The candidate extractor 20 for each slice extracts candidates for the current block by performing slice-specific SADs of the candidates of the previous block.

움직임벡터 결정부(40)는 슬라이스별 후보추출부(20)에서 추출된 후보를 이용하여 움직임벡터를 결정한다.The motion vector determiner 40 determines the motion vector using the candidate extracted by the candidate extractor 20 for each slice.

그리고 슬라이스별 후보추출부(20)는 후보슬라이스별 SAD 계산부(21)와 후보 비교추출부(22)를 구비한다.The candidate extractor 20 for each slice includes a SAD calculator 21 and a candidate comparison extractor 22 for each candidate slice.

후보슬라이스별 SAD 계산부(21)는 미리 지정되어 있는 후보들의 SAD의 일부분을 계산하여 후보들의 최종 SAD를 계산한다.The candidate slice-specific SAD calculator 21 calculates a part of the SADs of the candidates that are specified in advance and calculates the final SADs of the candidates.

후보 비교추출부(22)는 후보슬라이스별 SAD 계산부(21)에서 계산된 SAD를 이용하여 슬라이스별로 움직임벡터로서의 가능성이 낮은 후보들을 제거시키고 최종적으로 남아있는 후보들에 대하여 가장 낮은 MAD 값을 갖는 후보를 추출한다.The candidate comparison extractor 22 removes candidates with low likelihood as a motion vector for each slice by using the SAD calculated by the candidate slice-specific SAD calculator 21 and has the lowest MAD value for the remaining candidates. Extract

따라서 미리 지정되어 있는 후보들의 SAD의 일부분을 계산하여 후보들의 최종 SAD를 계산하여, 움직임 벡터로서의 가능성이 낮은 후보들을 제거를 시킨다. 그리고 남아있는 후보들에 대하여 동일한 방법으로 SAD 계산을 하면서 동일한 방식으로 후보들을 제거시킨다. 그리고 최종적으로 남아있는 후보들에 대하여 가장 낮은 MAD 값을 가지는 후보의 위치가 움직임 벡터가 되는 것이다.Accordingly, the final SAD of the candidates is calculated by calculating a portion of the SADs of the candidates previously designated, thereby eliminating candidates that are unlikely as motion vectors. The candidates are removed in the same manner while the SAD calculation is performed on the remaining candidates in the same manner. The position of the candidate having the lowest MAD value for the remaining candidates becomes a motion vector.

도 8은 도 7에서 슬라이스별 후보추출부의 상세블록도이다.FIG. 8 is a detailed block diagram of a candidate extractor for each slice in FIG. 7.

메모리(31)는 베이어 디더 행렬을 사용한 확산누적방식의 누적 순서를 저장한다.The memory 31 stores a cumulative order of a diffusion accumulation method using a Bayer dither matrix.

위치생성부(32)는 메모리(31)에 저장된 누적 순서를 사용하여 마스크의 위치와 누적화소의 위치를 생성한다.The position generator 32 generates the position of the mask and the position of the accumulated pixel using the accumulation order stored in the memory 31.

SAD 계산부(33)는 위치생성부(32)에서 생성된 위치에 해당되는 값들을 사용하여 SAD를 구한다.The SAD calculator 33 calculates the SAD using values corresponding to the position generated by the position generator 32.

비교부(34)는 SAD 계산부(33)에서 구해진 후보들 사이의 SAD를 비교하여 가능성이 낮은 후보들을 탈락시킨다.The comparison unit 34 compares the SADs among the candidates obtained by the SAD calculation unit 33 and eliminates candidates having low probability.

따라서 현재 프레임에서 블록과 이전 프레임에서 동일한 위치 근처의 탐색영역내의 값들을 사용하여 블록 정합에 들어간다. 움직임 벡터로서의 가능성이 낮은 각 후보들의 제거를 위해서 일부분의 SAD 값을 구하는데 있어서, 최종 SAD를 추정을 하기 위해 각 후보의 SAD의 증가 추이를 선형적으로 만들기 위하여 누적 순서를저장하고 있는 2차원 메모리(31)를 사용한다. 그리고 이 메모리(31)를 사용하여 마스크의 위치와 누적화소의 위치를 생성한다. 그리고 생성된 위치에 해당되는 값들을 사용하여 부분 SAD를 구한다. 그리고 각 후보들 사이의 SAD를 비교함으로써 가능성이 낮은 후보들을 탈락시킨다.Thus, a block match is entered using the values in the search area near the same position in the block and the previous frame in the current frame. Two-dimensional memory that stores the cumulative order to linearly increase the SAD of each candidate for estimating the final SAD in estimating the final SAD in order to estimate the final SAD. (31) is used. The memory 31 is used to generate the position of the mask and the position of the cumulative pixel. The partial SAD is obtained using the values corresponding to the generated position. And by comparing SADs between the candidates, candidates with low probability are eliminated.

도 9는 본 발명에 의한 동영상 부호화기의 확산누적배열을 이용한 블록정합 방법을 보인 흐름도이다.9 is a flowchart illustrating a block matching method using spread accumulation arrays of a video encoder according to the present invention.

그래서 먼저 베이어 디더 행렬을 사용한 확산누적방식으로 후보위치를 저장한다.So, first, the candidate positions are stored in a diffusion accumulation method using a Bayer dither matrix.

그리고 후보, 슬라이스를 초기화한다.The candidate and the slice are initialized.

후보에 대하여 슬라이스별 SAD를 계산하여 마지막 후보까지 계산하고, 높은 SAD를 가지는 후보들을 탈락시킨다. 이를 마지막 슬라이스까지 수행하여 남아 있는 후보 중 가장 낮은 SAD를 추출하게 된다.SAD per slice is calculated for the candidate to the last candidate, and candidates with high SAD are dropped. This is done to the last slice to extract the lowest SAD of the remaining candidates.

이러한 본 발명의 동작을 좀더 상세히 설명한다.This operation of the present invention will be described in more detail.

SAD의 누적시 종래의 왼쪽 상단에서 오른쪽 하단으로의 일반적인 순차적 누적방식(Sequential Accumulate Method)이 아닌, 확산누적방식(Dispersed Accumul-ate Method)을 제안한다.When accumulating SAD, we propose a distributed accumulate method rather than a conventional sequential accumulate method from the upper left to the lower right.

확산누적방식은 기본적으로 이진화(halftoning)에서 사용되는 베이어 디더 행렬(Bayer Dither Matrix)을 사용한다. 이 행렬은 정방형태로 구성이 되어 있으며, 행렬내의 인접한 값들은 거리 상으로 가장 먼 위치에 있다.The diffusion accumulation method basically uses the Bayer Dither Matrix, which is used in halftoning. The matrix is composed of squares, with adjacent values in the matrix at the furthest distance.

도 10은 본 발명에서 사용하는 베이어 디더의 각 임계값 행렬을 보인 표이다. 여기서 마스크(Mask)는 순서를 기억하기 위한 메모리로서,는 가로 4, 세로 4의 값을 저장하는 메모리이다.10 is a table showing each threshold matrix of the Bayer dither used in the present invention. The mask is a memory for storing the order. Wow Is a memory that stores values of 4 and 4 horizontally.

확산누적방식의 MAD는 다음의 수학식 8로 표현되어진다. s는 현 슬라이스(slice)의 위치이며, S는 총 슬라이스의 수이다. Mmask, Nmask는 베이어 디더 행렬의 가로, 세로 크기가 된다.The MAD of the cumulative accumulation method is expressed by Equation 8 below. s is the position of the current slice and S is the total number of slices. M mask and N mask are the horizontal and vertical sizes of the Bayer dither matrix.

수학식 5에서 x축 상대좌표 imask, y축 상대좌표 jmask는 다음의 수학식 6 및 수학식 7과 같이 정의되어진다.In Equation 5, the x-axis relative coordinate i mask and the y-axis relative coordinate j mask are defined as in Equations 6 and 7 below.

그리고 총 슬라이스의 수인 S는 다음의 수학식 8과 같다.And S, the total number of slices, is expressed by Equation 8 below.

S = Mmask* Nmask S = M mask * N mask

따라서 scur은 마스크내의 화소 위치, dcur은 4x4 마스크들의 위치이며,최종MAD인 MAD(k,l)(x,y)는 다음의 수학식 8과 같이 정의되어진다.Therefore, s cur is a pixel position in the mask, d cur is a position of 4x4 masks, and the final MAD MAD (k, l) (x, y) is defined as in Equation 8 below.

그래서 본 발명에서는 탐색영역내의 마스크에 의해 정해진 위치에 해당되는 값들의 차를 누적시킴으로써 선형성을 확보하여, 최종 MAD를 예측할 수 있는 토대를 마련한다.Therefore, in the present invention, the linearity is secured by accumulating the difference between the values corresponding to the positions determined by the mask in the search region, thereby providing a foundation for predicting the final MAD.

도 11은 종래 기술에 의한 순차누적방식과 본 발명에 의한 확산누적방식의 2차원 공간 샘플링을 비교한 도면이다.FIG. 11 is a view comparing two-dimensional spatial sampling of a progressive accumulation method according to the prior art and a diffusion accumulation method according to the present invention.

그래서 도 11에서는 두 프레임간에 M*3의 화소를 비교하여 SAD를 누적시켰을 경우, 종래 기술과 본 발명에 의한 방식의 화소참조위치의 차이를 보여주고 있다.11 illustrates the difference between the pixel reference position of the conventional technique and the present invention when SAD is accumulated by comparing pixels of M * 3 between two frames.

종래의 순차누적방식은 왼쪽 상단에서 오른쪽 하단으로 순차적으로 현재프레임과 이전프레임의 픽셀값들을 감산하여 값들을 누적시키는 방식이다. 그리고 본 발명에서 제안하는 확산누적방식은 2차원 공간상에 서로 인접하지 않은 위치에 해당되는 값들의 차를 누적시키는 방식이다.The conventional sequential accumulation method accumulates the values by subtracting pixel values of the current frame and the previous frame sequentially from the upper left to the lower right. In addition, the diffusion accumulation method proposed in the present invention is a method of accumulating the difference between values corresponding to positions which are not adjacent to each other in a two-dimensional space.

따라서 순차누적방식에서 현재프레임 내의 임의의 위치로 물체가 이동을 하였을 경우, 이전프레임과 현재프레임의 각각의 픽셀 사이에는 차이가 발생하게 된다. 그러면 도 6에서와 같은 급격한 SAD의 변화(Abrupt SAD change)가 생긴다.Therefore, when the object moves to an arbitrary position in the current frame in the progressive accumulation method, a difference occurs between each pixel of the previous frame and the current frame. Then, an abrupt SAD change occurs as shown in FIG. 6.

반면에 본 발명에 의하면 2차원 공간상 균일한 샘플링을 수행하여 종래 기술에 의한 급격한 SAD 변화들이 누적추이곡선에 일정간격으로 분할되기 때문에 선형성을 확보할 수 있게 된다.On the other hand, according to the present invention, since the SAD changes according to the prior art are divided at regular intervals in the cumulative trend curve by performing uniform sampling in two-dimensional space, linearity can be secured.

도 12는 본 발명을 적용한 탐색영역내 모든 후보들의 SAD 추이를 보인 그래프이다. 즉, 도 6에서와 동일한 블록에 대하여 본 발명을 사용한 결과를 도 12에 나타내었다. 이를 보면, 추이곡선들은 초기 0에서부터 최종 SAD까지 급격한 변화 없이 선형적으로 증가한 것을 알 수 있다.12 is a graph showing the SAD trend of all candidates in the search region to which the present invention is applied. That is, the results of using the present invention for the same block as in FIG. 6 are shown in FIG. From this, it can be seen that the trend curves increased linearly without a sudden change from the initial zero to the final SAD.

도 12에서 x축(x축은 수학식 3에서 i,j의 증가, 즉 도 6에서의 감산되어지는 화소의 수이다.)의 255(= MN)에서 가장 낮은 값을 가지는 후보가 움직임 벡터(MV)가 된다. 이때 SAD의 값은 962이다. 도 12에서 후보의 수는 (2w+1)2이며, 이 각각의 후보들의 SAD 증가 추이는 선형성이 존재하게 되므로, 계산량이 적은 x축의 왼쪽 부분의 임의의 값에서도 MAD가 낮은 후보들이 최종적으로 적은 값을 가질 확률이 큼을 알 수 있다.In FIG. 12, the candidate having the lowest value at 255 (= MN) of the x-axis (the x-axis is an increase in i, j, that is, the number of pixels to be subtracted in FIG. 6) is represented by the motion vector (MV). ) At this time, the value of SAD is 962. In FIG. 12, the number of candidates is (2w + 1) 2 , and the trend of increasing SAD of each candidate becomes linearity, and thus, candidates having low MAD are finally fewer at any value on the left side of the x-axis with less computation. We can see that the probability of having a value is high.

따라서 각각의 후보들에 대하여 수학식 9를 사용하여 SAD를 구하면서, 낮은 값을 가지는 후보는 계속 SAD의 증가 추이를 파악을 하고, 상대적으로 높은 값을 가지는 후보들은 탈락시켜 계산량을 줄이게 된다. 여기서 SAD 값이 높다는 것은 현재프레임과 이전프레임 블록간의 차이인 픽셀값들의 차이가 크다라는 것을 의미하고, 또한 픽셀값인 화면밝기 차이가 크다라는 것을 의미한다.Therefore, while obtaining SAD using Equation 9 for each candidate, the candidate having a low value keeps track of an increase in SAD, and the candidates having a relatively high value are eliminated to reduce the calculation amount. Here, the high SAD value means that the difference between pixel values, which is the difference between the current frame and the previous frame block, is large, and the difference in screen brightness, which is the pixel value, is large.

슬라이스는 M개의 화소를 누적할 때마다 슬라이스가 1씩 증가한다. 따라서 슬라이스는 1에서 N까지 증가한다.A slice increments by 1 every time M pixels are accumulated. Thus the slice increases from 1 to N.

도 13은 본 발명을 적용한 초기/최종 슬라이스간의 움직임 벡터 간의 거리예를 보인 표로서, 초기 슬라이스(Slice 1)와 최종 슬라이스(Slice 16)에서 SADMIN값을 가지는 두 움직임벡터 사이의 유클리디안 거리를 나타낸 것으로, 다음의 수학식 10과 같이 표현할 수 있다.FIG. 13 is a table showing an example of a distance between motion vectors between an initial / final slice to which the present invention is applied, and an Euclidean distance between two motion vectors having a SAD MIN value in an initial slice (Slice 1) and a final slice (Slice 16). It can be expressed as shown in Equation 10 below.

또한 도 13은 총 131,340 블록에 대하여 각각의 거리에 대하여 비율을 산출한 것이다. 이를 보면, 평균적으로 62%의 블록들에서 초기 슬라이스(Slice 1)의 움직임벡터의 위치가 최종 슬라이스(Slice 16)와 동일하다는 결과를 보여준다. 부연하면 도 12의 XM지점(전역탐색 MAD 연산량의 1/16)에서의 최소값을 가지는 후보가 XM*N지점에서도 최소값을 가질 확률이 평균 62%정도 되는 것을 의미한다.13 is a ratio for each distance for a total of 131,340 blocks. This shows that, on average, the position of the motion vector of the initial slice (Slice 1) is the same as the final slice (Slice 16) in 62% of the blocks. Of 12 When added, the candidate having the minimum value of X at the point M (full search 1/16 of the MAD operation amount) means that the average of 62% probability that the minimum value in X M * N points.

그리고 상관도 등을 분석한 결과 XM이상(슬라이스 2 이상)의 지점에서는 도 13의 확률보다 더 높아짐을 파악할 수 있다.As a result of analyzing the correlation, it can be seen that the point higher than X M (slice 2 or higher) is higher than the probability of FIG. 13.

따라서 이렇게 선형성이 확보되면, 현재프레임과 이전프레임의 모든 화소 즉 MN의 화소에 대해 감산하고 그리고 결과값을 가산하는 기존의 방식과는 달리 적은 계산량으로 최종 MAD가 낮은 후보들을 예측할 수 있게 된다.Therefore, if the linearity is secured, unlike the conventional method of subtracting all pixels of the current frame and the previous frame, that is, the pixels of the MN, and adding the result value, it is possible to predict candidates having a low final MAD with a small calculation amount.

다시 정리하면 종래의 방식은 최종 MAD의 값을 비교하여 넓은 영역에서 좁은 영역으로 범위를 줄여가며 제일 낮은 SAD값을 찾는 방식이며, 본 발명에 의한 방식은 2차원 공간의 위치에 있는 화소들의 차이를 누적시키므로 선형성을 유지하여 최종 MAD를 예측을 하여 가능성이 낮은 후보를 제거시키며 계산량을 줄이는 동시에 많은 후보의 가능성을 초기에 예측하여 움직임이 큰 블록에서도 정확한 움직임 벡터를 추출할 수 있는 것이다.In summary, the conventional method finds the lowest SAD value by reducing the range from a wide area to a narrow area by comparing the final MAD value, and the method according to the present invention detects the difference between pixels in the two-dimensional space. By accumulating, linearity is maintained to predict the final MAD, eliminating candidates with low probability, reducing computation, and predicting the probability of many candidates early, so that accurate motion vectors can be extracted even in blocks with large movements.

도 14는 종래 기술과 본 발명에 의한 슬라이스 구성 차이를 보인 도면으로서, 종래 기술과 본 발명에 의한 각각 SAD 비교하는 영역에 대해 설명한 것이다.14 is a view showing the difference between the slice configuration according to the prior art and the present invention, and will be described for the area to be compared SAD according to the prior art and the present invention.

종래 방식은 가장 최종 SAD을 사용하므로 각각의 후보들은 MN 만큼의 화소들의 차이를 누적시킨 결과로서 비교하는 것이므로, 도 6의 가장 오른쪽 부분의 후보들 중 가장 낮은 후보를 선출하는 것과 같은 의미를 갖는다. 그리고 구조상으로 보면 도 14의 (a)종래 기술에서 가장 상단의 영역이 된다.Since the conventional method uses the most final SAD, each candidate is compared as a result of accumulating the difference of pixels as much as MN, and thus has the same meaning as selecting the lowest candidate among the candidates in the rightmost part of FIG. 6. In terms of structure, the uppermost region is shown in the related art of FIG.

반면에 본 발명은 SAD 증가의 추이를 살펴가며 후보들을 제거하는 것이고, 이는 도 14의 (b)에 나타내었다.On the other hand, the present invention looks at the trend of increasing SAD and removes candidates, which is shown in FIG.

여기서 슬라이스는 총 16개로 구성이 되어있으며, 이 슬라이스에는 도 15의 슬라이스 1(S1)에서 슬라이스 16(S16)이라고 명시되어 있는 세로선에 걸쳐있는 후보들이 도 14의 각각의 슬라이스에서의 후보들이 된다.In this case, a total of 16 slices are formed, and candidates in each slice of FIG. 14 are candidates that span a vertical line designated as slice 16 (S16) to slice 1 (S1) of FIG. 15.

도 15는 본 발명을 적용한 각 슬라이스에서의 SAD 추이를 보인 그래프이다.15 is a graph showing the SAD trend in each slice to which the present invention is applied.

본 방식을 기본적으로 사용하여 고속 블록 정합 알고리즘을 제안하였고 기존의 알고리즘들과 비교한 결과 SAD를 구하기 위해 사용한 계산은 30% ~ 60%가 감소되었으며, 계산시간도 30%정도 감소가 되었다. 그리고 화질면에서도 전역탐색 블록정합방식에 가까운 성능을 가졌다.By using this method, we proposed a fast block matching algorithm, and compared with the previous algorithms, the calculations used to calculate SAD were reduced by 30% to 60% and the computation time was also reduced by 30%. In terms of image quality, it has a performance close to that of the global search block matching method.

이처럼 본 발명은 동영상 압축에서 움직임 추정시 확산누적배열을 이용하여블록정합 알고리즘의 연산량을 줄이게 되는 것이다.As described above, the present invention reduces the amount of computation of the block matching algorithm by using the diffusion accumulation array in motion estimation in motion picture compression.

이상에서 본 발명의 바람직한 실시예를 설명하였으나, 본 발명은 다양한 변화와 변경 및 균등물을 사용할 수 있다. 본 발명은 상기 실시예를 적절히 변형하여 동일하게 응용할 수 있음이 명확하다. 따라서 상기 기재 내용은 하기 특허청구범위의 한계에 의해 정해지는 본 발명의 범위를 한정하는 것이 아니다.Although the preferred embodiment of the present invention has been described above, the present invention may use various changes, modifications, and equivalents. It is clear that the present invention can be applied in the same manner by appropriately modifying the above embodiments. Accordingly, the above description does not limit the scope of the invention as defined by the limitations of the following claims.

이상에서 살펴본 바와 같이, 본 발명에 의한 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치 및 그 방법은 동영상 압축에서 움직임 추정시 확산누적배열을 이용하여 블록정합 알고리즘의 연산량을 줄일 수 있는 효과가 있게 된다.As described above, the block matching apparatus and the method using the spread accumulation array of the video encoder according to the present invention can reduce the amount of computation of the block matching algorithm by using the spread accumulation array during motion estimation in video compression. .

또한 본 발명은 SAD의 증가추이가 선형성을 유지함으로써 계산량의 1/16 또는 1/8만으로도 후보들 중 어떤 후보들이 최종 MAD에 가까운지 예측할 수 있고, SAD의 값이 높은 후보들은 제거시키고 낮은 후보들은 계속 SAD를 증가시키면서 움직임 벡터를 찾을 수 있게 된다.In addition, the present invention can predict which candidates are close to the final MAD with 1/16 or 1/8 of the calculation amount by maintaining the linearity of the SAD. As we increase SAD, we can find motion vectors.

이러한 본 발명은 H.261, H.263, MPEG-1, MPEG-2, MPEG-4 등에서 사용하는 고속 블록정합 알고리즘을 적용한 결과, 전역탐색방법보다 1/20, 기존의 고속블록정합방식보다 30% ~ 60% 정도의 적은 계산량으로 전역탐색에 가까운 성능의 결과를 얻을 수 있는 효과가 있었다. 따라서 본 발명은 비디오 부호화기에서 계산량이 많은 블록정합 부분에서 적은 계산량으로 전역탐색 또는 부분탐색(or 고속) 블록정합 알고리즘에 가까운 성능을 가질 수 있는 토대를 마련하였다.The present invention is a result of applying the fast block matching algorithm used in H.261, H.263, MPEG-1, MPEG-2, MPEG-4, etc., 1/20 of the global search method, 30 than the conventional fast block matching method. With a small calculation amount of about% ~ 60%, the result of the performance close to the global search was obtained. Accordingly, the present invention has laid the foundation for having a performance close to that of the global search or partial search (or fast) block matching algorithm with a small amount of computation in a block matching portion having a large amount of computation in a video encoder.

제안방식의 성능을 분석하기 위하여 각각 특색이 다르고 널리 사용되는 4종류의 비트-스트림을 사용하였으며, 기존의 논문들 중 많은 논문들이 널리 알려진 고속 탐색 알고리즘과 비교하였다. 따라서 본 발명에서도 기본적인 고속블록탐색 알고리즘인 TSS, NTSS, BBGDS, FSS, 2DLOG와 성능비교를 하였다.In order to analyze the performance of the proposed method, we used four types of bit-streams, each with different characteristics, and many of the existing papers compared with the well-known fast search algorithm. Therefore, the present invention also compared the performance with the basic fast block search algorithm TSS, NTSS, BBGDS, FSS, 2DLOG.

도 16은 종래 기술들과 본 발명에 의한 각 블록정합 방식의 성능을 비교한 표이다. 그래서 종래의 블록정합 알고리즘들(FS, TSS, NTSS, BBGDS, FSS, 2DLOG)과 본 발명에서 제안한 방식(proposed)에서의 평균 MAD와 SAD 수식의 사용횟수를 비교하였다. 평균 MAD는 기존의 고속 블록탐색 알고리즘보다 결과가 우수하고 전역탐색방식에 근접하는 결과를 보여주고 있으며, 다양한 입력영상에 대하여, SAD의 횟수는 종래 알고리즘의 평균보다 20% ~ 64%로 줄어든 효과가 있음을 알 수 있다.16 is a table comparing the performance of each block matching scheme according to the prior art and the present invention. Thus, the average number of times of using the MAD and SAD equations in the proposed block matching algorithms (FS, TSS, NTSS, BBGDS, FSS, 2DLOG) and the proposed method are compared. The average MAD shows better results than the existing fast block search algorithms and shows a result closer to the global search method. For various input images, the number of SADs is reduced by 20% to 64% than the average of the conventional algorithm. It can be seen that.

도 17은 종래 기술들과 본 발명에 의한 각 블록정합 방식의 소요시간을 비교한 표이다. 도 17에서는 실제 알고리즘 수행시 소요시간을 비교한 것이다. 동일한 환경에서 동일한 조건으로 최적화를 시킨 후 각각의 블록정합방법들의 평균 수행시간을 조사하여 도 17에 나타내었다. 전역탐색방법(FS)보다 5.6배, 종래의 고속블록정합 알고리즘(TSS, NTSS, BBGDS, FSS, 2DLOG)에 비해 본 발명(proposed)은 20% ~ 33% 정도의 시간이 단축된 효과가 있음을 알 수 있다.17 is a table comparing the time required for each block matching method according to the prior art and the present invention. In FIG. 17, the time required for performing the actual algorithm is compared. After optimization under the same conditions under the same conditions, the average execution time of each block matching method is investigated and shown in FIG. 17. Compared to the global search method (FS), 5.6 times, compared to the conventional fast block matching algorithms (TSS, NTSS, BBGDS, FSS, 2DLOG), the present invention (proposed) has a 20% to 33% time reduction effect. Able to know.

Claims (8)

현재 블록과 이전 블록을 저장하는 현재/이전 블록메모리와;A current / previous block memory for storing a current block and a previous block; 이전 블록에 의한 각 후보의 슬라이스별 SAD를 수행하여 현재 블록에 대한 후보를 추출하는 슬라이스별 후보추출부와;A candidate extractor for each slice extracting a candidate for the current block by performing SAD for each candidate of the previous block; 상기 슬라이스별 후보추출부에서 추출된 후보를 이용하여 움직임벡터를 결정하는 움직임벡터 결정부를 포함하여 구성된 것을 특징으로 하는 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치.And a motion vector determiner configured to determine a motion vector by using the candidate extracted by the candidate extractor for each slice. 제 1 항에 있어서, 상기 슬라이스별 후보추출부는,The method of claim 1, wherein the candidate extract for each slice, 미리 지정되어 있는 후보들의 SAD의 일부분을 계산하여 후보들의 최종 SAD를 계산하는 후보슬라이스별 SAD 계산부와;A candidate slice-specific SAD calculator for calculating a final SAD of candidates by calculating a portion of SADs of candidates previously designated; 상기 후보슬라이스별 SAD 계산부에서 계산된 SAD를 이용하여 슬라이스별로 움직임벡터로서의 가능성이 낮은 후보들을 제거시키고 최종적으로 남아있는 후보들에 대하여 가장 낮은 MAD 값을 갖는 후보를 추출하는 후보 비교추출부를 포함하여 구성된 것을 특징으로 하는 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치.A candidate comparison extractor which removes candidates having low probability as a motion vector for each slice and extracts candidates having the lowest MAD value for the remaining candidates by using the SAD calculated by the candidate SAD calculator. A block matching device using spread accumulation array of a video encoder. 제 1 항에 있어서, 상기 슬라이스별 후보추출부는,The method of claim 1, wherein the candidate extract for each slice, 누적 순서를 저장하는 메모리와;A memory for storing the accumulation order; 상기 메모리에 저장된 누적 순서를 사용하여 마스크의 위치와 누적화소의 위치를 생성하는 위치생성부와;A position generator for generating positions of masks and positions of accumulated pixels using the accumulated order stored in the memory; 상기 위치생성부에서 생성된 위치에 해당되는 값들을 사용하여 SAD를 구하는 SAD 계산부와;A SAD calculator which calculates SAD using values corresponding to positions generated by the position generator; 상기 SAD 계산부에서 구해진 후보들 사이의 SAD를 비교하여 가능성이 낮은 후보들을 탈락시키는 비교부를 포함하여 구성된 것을 특징으로 하는 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치.And a comparator which compares SADs among candidates obtained by the SAD calculator to drop candidates with low probability. 제 3 항에 있어서, 상기 메모리는,The method of claim 3, wherein the memory, 확산누적방식을 사용한 누적 순서를 저장하는 것을 특징으로 하는 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치.A block matching device using a spreading accumulation array of a video encoder, characterized by storing a cumulative order using a spreading accumulation method. 제 4 항에 있어서, 상기 확산누적방식은,The method of claim 4, wherein the diffusion accumulation method, 베이어 디더 행렬을 사용하는 것을 특징으로 하는 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치.A block matching device using spread accumulation array of a video encoder, characterized by using a Bayer dither matrix. 후보위치를 저장하고 후보, 슬라이스를 초기화하는 제 1 단계와;A first step of storing candidate positions and initializing candidates and slices; 상기 제 1 단계 후 후보에 대하여 슬라이스별 SAD를 계산하여 마지막 후보까지 계산했는지 판별하는 제 2 단계와;A second step of determining whether or not the final candidate is calculated by calculating the SAD for each slice of the candidate after the first step; 상기 마지막 후보까지 계산하지 않았으면 후보를 증가시킨 다음 상기 제 2단계로 리턴하는 제 3 단계와;A third step of increasing the candidate and then returning to the second step if the last candidate has not been calculated; 상기 마지막 후보까지 계산했으면, 높은 SAD를 가지는 후보들을 탈락시키고 마지막 슬라이스에 도달했는지 판별하는 제 4 단계와;A fourth step of, once calculating the last candidate, dropping candidates having a high SAD and determining whether the last slice has been reached; 상기 마지막 슬라이스에 도달하지 않았으면 슬라이스를 증가시킨 다음 상기 제 2 단계로 리턴하는 제 5 단계와;A fifth step of incrementing a slice and then returning to the second step if the last slice has not been reached; 상기 마지막 슬라이스에 도달하였으면, 남아 있는 후보 중 가장 낮은 SAD를 추출하는 제 6 단계를 포함하여 수행하는 것을 특징으로 하는 동영상 부호화기의 확산누적배열을 이용한 블록정합 방법.And a sixth step of extracting the lowest SAD from the remaining candidates when the last slice is reached. 제 6 항에 있어서, 상기 제 1 단계는,The method of claim 6, wherein the first step, 확산누적방식을 사용하여 후보위치를 결정하는 것을 특징으로 하는 동영상 부호화기의 확산누적배열을 이용한 블록정합 방법.A block matching method using spread accumulation array of a video encoder, wherein the candidate position is determined using a spread accumulation method. 제 7 항에 있어서, 상기 확산누적방식은,The method of claim 7, wherein the diffusion accumulation method, 베이어 디더 행렬을 사용하는 것을 특징으로 하는 동영상 부호화기의 확산누적배열을 이용한 블록정합 방법.A block matching method using a diffuse accumulation array of a video encoder, using a Bayer dither matrix.
KR10-2000-0074066A 2000-12-07 2000-12-07 Apparatus and method for block matching by using dispersed accumulate array in video coder KR100413002B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0074066A KR100413002B1 (en) 2000-12-07 2000-12-07 Apparatus and method for block matching by using dispersed accumulate array in video coder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0074066A KR100413002B1 (en) 2000-12-07 2000-12-07 Apparatus and method for block matching by using dispersed accumulate array in video coder

Publications (2)

Publication Number Publication Date
KR20020044848A true KR20020044848A (en) 2002-06-19
KR100413002B1 KR100413002B1 (en) 2003-12-31

Family

ID=27680162

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0074066A KR100413002B1 (en) 2000-12-07 2000-12-07 Apparatus and method for block matching by using dispersed accumulate array in video coder

Country Status (1)

Country Link
KR (1) KR100413002B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100986719B1 (en) * 2008-07-30 2010-10-11 재단법인서울대학교산학협력재단 computation reduction methode for H.264/AVC motion estimation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100986719B1 (en) * 2008-07-30 2010-10-11 재단법인서울대학교산학협력재단 computation reduction methode for H.264/AVC motion estimation

Also Published As

Publication number Publication date
KR100413002B1 (en) 2003-12-31

Similar Documents

Publication Publication Date Title
US8406303B2 (en) Motion estimation using prediction guided decimated search
KR100683849B1 (en) Decoder having digital image stabilization function and digital image stabilization method
JP4001400B2 (en) Motion vector detection method and motion vector detection device
KR100275694B1 (en) Hierarchical search block matching method by using multiple motion vector candidates
EP1389016B1 (en) Improved motion estimation and block matching pattern
US5786860A (en) High speed block matching for bi-directional motion vector estimation
US20070092007A1 (en) Methods and systems for video data processing employing frame/field region predictions in motion estimation
KR20010082934A (en) Motion estimation method and device
EP1859627B1 (en) Global motion estimation
KR100994768B1 (en) Motion estimation method for encoding motion image, and recording medium storing a program to implement thereof
KR20070033345A (en) How to retrieve global motion vector
KR20050097936A (en) Efficient predictive image parameter estimation
US8379712B2 (en) Image search methods for reducing computational complexity of motion estimation
US9225994B2 (en) Global motion estimation using reduced frame lines
KR19980036073A (en) Motion vector detection method and apparatus
EP2153659A1 (en) Post processing of motion vectors using sad for low bit rate video compression
KR100413002B1 (en) Apparatus and method for block matching by using dispersed accumulate array in video coder
JP4537136B2 (en) Motion estimation method, motion estimation device, and program
Lee et al. Fast half-pixel motion estimation based on directional search and a linear model
KR100628333B1 (en) Method and device for providing selective motion estimation for fast video encoding
KR100208984B1 (en) Moving vector estimator using contour of object
KR100924641B1 (en) Fast block matching procedure for motion estimation
JP2008072608A (en) Apparatus and method for encoding image
KR100924642B1 (en) Motion estimation procedure using fast block matching algorithm
KR970003099B1 (en) Motion vector estimating apparatus considering covered/uncovered region

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
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: 20081202

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee