KR100359091B1 - Motion estimation device - Google Patents

Motion estimation device Download PDF

Info

Publication number
KR100359091B1
KR100359091B1 KR10-1998-0049474A KR19980049474A KR100359091B1 KR 100359091 B1 KR100359091 B1 KR 100359091B1 KR 19980049474 A KR19980049474 A KR 19980049474A KR 100359091 B1 KR100359091 B1 KR 100359091B1
Authority
KR
South Korea
Prior art keywords
search
output
data
level
outputting
Prior art date
Application number
KR10-1998-0049474A
Other languages
Korean (ko)
Other versions
KR20000032857A (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-1998-0049474A priority Critical patent/KR100359091B1/en
Publication of KR20000032857A publication Critical patent/KR20000032857A/en
Application granted granted Critical
Publication of KR100359091B1 publication Critical patent/KR100359091B1/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

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

Abstract

본 발명은 움직임 추정 장치에 관한 것으로, 현재 프레임의 각 매크로 블록의 움직임을 상기 매크로 블록에 대응하는 이전 프레임의 탐색영역과 비교하여 추정할 때, 각 프레임에 대해 계층적으로 탐색하는 움직임 추정 장치에 있어서, 현재 프레임 데이터와 이전 프레임 데이터를 저장하는 메모리; 메모리로부터 매크로 블록 데이터를 소정 크기의 블록단위로 독출하고, 탐색 영역 데이터를 독출하여 독출된 데이터들의 정합 정도를 나타내는 정합기준값을 출력하는 기본 탐색 유닛; 중간레벨 또는 하위레벨인 경우 기본 탐색유닛의 출력값을 매크로 블록의 전 영역에 대해 가산하여 저장하는 부분 정합기준값 저장수단; 기본 탐색 유닛의 출력값과 부분 정합 기준값 저장수단의 출력값중 하나를 선택하여 출력하는 제1멀티플렉서; 제1멀티플렉서의 출력값을 순차적으로 비교하여 탐색영역내에서 가장 작은 정합기준값을 갖는 탐색점의 인덱스를 출력하는 비교기; 하위레벨을 탐색하는 경우 현재 처리중인 매크로 블록의 인접 매크로 블록중 움직임 벡터값을 이미 알고있는 매크로 블록에 대한 움직임 벡터들의 중간값을 저장하는 인접움직임 벡터 저장부; 비교기의 출력과 인접움직임 벡터 저장부의 출력중 하나를 출력하는 제2멀티플렉서; 및 제2멀티플렉서에서 출력되는 인덱스에 해당하는 메모리의 어드레스를 발생하는 어드레스 발생부를 포함함을 특징으로한다.The present invention relates to a motion estimation apparatus. When the motion of each macroblock of a current frame is estimated by comparing with a search region of a previous frame corresponding to the macroblock, the present invention provides a motion estimation apparatus for hierarchically searching for each frame. A memory for storing current frame data and previous frame data; A basic search unit which reads macro block data from a memory in blocks of a predetermined size, reads search area data, and outputs a matching reference value indicating a matching degree of the read data; Partial matching reference value storage means for adding and storing the output value of the basic search unit for all areas of the macro block in the case of the intermediate level or the lower level; A first multiplexer for selecting and outputting one of an output value of the basic search unit and an output value of the partial matching reference value storing means; A comparator for sequentially comparing output values of the first multiplexer and outputting an index of a search point having the smallest matching reference value in the search area; A neighboring motion vector storage unit for storing a median value of motion vectors of a macroblock that already knows a motion vector value among neighboring macroblocks of a macroblock currently being processed when searching for a lower level; A second multiplexer for outputting one of an output of a comparator and an output of an adjacent motion vector storage unit; And an address generator for generating an address of a memory corresponding to an index output from the second multiplexer.

Description

움직임 추정 장치Motion estimation device

본 발명은 움직임 추정 장치에 관한 것이다.The present invention relates to a motion estimation apparatus.

더욱 더 치열해지는 현 사회에서 좀 더 정확한 정보의 전달과 공유를 위하여 점점 중요시되는 수단이 영상통신이다. 특히 실시간 동영상은 좀 더 정확하고 사실적인 정보의 전달매체로 사용된다. 실시간 디지털 텔레비젼, 동영상 스토리지 디바이스, 동영상 원격회의, 영상 전화기 등은 영상을 정보전달 매개체로서 현장감을 살릴 수 있게 한 것들이다. 이들 동영상 칩을 구현하는데 있어서 가장 많은 계산량을 필요로하는 것이 동영상 부호화를 위한 움직임 추정(Motion Estimation)부분이다. 움직임 추정은 종종 칩의 전 처리 파워의 50%까지도 차지한다.In today's increasingly fierce society, video communications is an increasingly important means for the delivery and sharing of more accurate information. In particular, real-time video is used as a medium for transmitting more accurate and realistic information. Real-time digital television, video storage devices, video teleconferencing, video telephony, and the like have enabled video to be alive as an information delivery medium. It is the motion estimation part for video coding that requires the most computation amount in implementing these video chips. Motion estimation often accounts for up to 50% of the chip's preprocessing power.

지금까지 제안된 여러가지 움직임 추정 알고리즘중 전역 탐색기법(Full Search Block Matching Algorithm)의 경우 실시간 구현시 매우 큰 계산량으로 인해 칩 크기가 현저히 커지는 단점이 있다. 이런 단점을 보완하기위하여 여러 가지 탐색 알고리즘이 제안되어 왔다. 하지만 이런 고속 탐색 알고리즘들은 계산량에는 큰 이득을 주었으나 전역 탐색기법에 비해 성능이 많이 떨어진다.Among the various motion estimation algorithms proposed so far, the Full Search Block Matching Algorithm has a disadvantage in that the chip size is significantly increased due to a large amount of computation in real time implementation. Various search algorithms have been proposed to compensate for this drawback. However, these fast search algorithms have a large gain in computational performance, but are much worse than the global search method.

고속 탐색 알고리즘들중 계층적 탐색 알고리즘은 계산량이 현저히 줄어듦에도 불구하고 성능은 전역 탐색에 비해 크게 떨어지지 않는다. 계층적 탐색 알고리즘의 경우, 각 단계마다 처리하는 매크로 블록의 크기와 탐색 영역의 크기가 서로 다르다. 일반적으로, 움직임 추정 알고리즘을 구현할 때, 시스톨릭 어레이 (Systolic Array)를 사용하게되는데, 시스톨릭 어레이의 크기는 처리하는 블록과 탐색영역의 크기에 따라 결정된다.Among the fast search algorithms, hierarchical search algorithms do not degrade much compared to global search even though the computational amount is significantly reduced. In the case of the hierarchical search algorithm, the size of the macroblock to be processed and the size of the search area are different for each step. In general, when implementing a motion estimation algorithm, a systolic array is used, and the size of the systolic array is determined by the size of a block and a search region to be processed.

예를 들어, 3단 계층적 탐색 알고리즘을 생각해보자. 우선 매크로 블록의 크기가 16x16인 경우, 상위 계층에서는 가로, 세로가 각각 1/4씩 줄어든 영상을 이용하여 4x4블록 단위로 ±p0영역에 대해 탐색을 수행한다. 이전 프레임의 탐색 영역의후보 블록들 중 현재 프레임에서 현재 처리중인 블록과 가장 유사한 블록을 찾는다. 중간 계층에서는 상위계층에서 찾아진 위치를 초기점으로하여 다시 매크로 블록을 가로, 세로 각각 1/2씩 줄인 영상을 이용하여 8x8블록 단위로 ±p1영역에 대해서 탐색을 다시 수행한다. 마찬가지 방법으로 중간계층에서는 이렇게 상위계층에서 찾아진 위치를 초기점으로하여 마지막으로 하위레벨에서 16x16 크기의 매크로블록 단위로 ±p2영역에 대해 탐색을 수행하여 최종 움직임 벡터를 구하게된다. 따라서, 계층적 탐색 알고리즘은 상술한 바와 같이 각 단계마다 서로 다른 크기의 블록이 사용되며, 이들 블록을 위해 3가지 서로 다른 크기의 시스톨릭 어레이들이 필요하다.For example, consider a three-stage hierarchical search algorithm. First, when the size of the macroblock is 16x16, the upper layer searches for the ± p 0 region in units of 4x4 blocks by using an image of which the width and the length are each reduced by 1/4. Among the candidate blocks of the search area of the previous frame, the block most similar to the block currently being processed in the current frame is found. In the middle layer, the search is performed again on the ± p 1 region in units of 8x8 blocks by using the image of the macro block reduced by 1/2 each in the horizontal and vertical direction using the position found in the upper layer as the initial point. In the same way, the middle layer finds the final motion vector by searching the ± p 2 region in units of 16x16 macroblocks at the lower level with the initial position as the initial point. Thus, the hierarchical search algorithm uses blocks of different sizes for each step, as described above, and requires three different sizes of systolic arrays for these blocks.

그러나, 계층적 탐색은 순차적으로 수행되므로, 어느 한 시점에서 살펴보면 하나의 시스톨릭 어레이만 동작하고 나머지들은 아무런 작업도 수행하지 않는다. 따라서 이 구조는 필요이상의 시스톨릭 어레이를 사용하여 칩 면적을 증가시키는 문제점이 있다.However, since the hierarchical search is performed sequentially, at any point in time, only one systolic array operates and the others do nothing. Therefore, this structure has a problem of increasing the chip area by using more systolic arrays than necessary.

본 발명이 이루고자하는 기술적 과제는 움직임 추정시 최소 크기의 탐색 블록과 탐색 영역을 처리하는 최소의 크기를 가지는 시스톨릭 어레이로 이루어진 하나의 기본 탐색 단위를 반복적으로 이용하여 움직임 벡터를 찾는 움직임 추정 장치를 제공하는데 있다.An object of the present invention is to provide a motion estimation apparatus for finding a motion vector by repeatedly using one basic search unit consisting of a minimum size search block and a systolic array having a minimum size for processing a search area. To provide.

도 1은 본 발명에 사용되는 계층적 탐색 알고리즘의 계층도를 도시한 것이다.1 illustrates a hierarchical diagram of a hierarchical search algorithm used in the present invention.

도 2는 현재 탐색중인 매크로 블록의 인접 매크로 블록들을 도시한 것이다.2 illustrates adjacent macro blocks of a macro block currently being searched for.

도 3은 기본 탐색 유닛의 상세도이다.3 is a detailed view of the basic search unit.

도 4는 기본 탐색 유닛을 상위레벨에 적용하는 경우를 도시한 것이다.4 illustrates a case where the basic search unit is applied to a higher level.

도 5는 기본 탐색 유닛을 중간레벨에 적용하는 경우를 도시한 것이다.5 shows a case where the basic search unit is applied to an intermediate level.

도 6은 기본 탐색 유닛을 하위레벨에 적용하는 경우를 도시한 것이다.6 shows a case where the basic search unit is applied to a lower level.

도 7은 중간레벨과 하위레벨의 탐색시 발생하는 부분 MAD를 저장하는 수단을 도시한 것이다.7 shows a means for storing a partial MAD that occurs during the search of the intermediate and lower levels.

도 8은 본 발명에 따른 움직임 추정 장치에 대한 블록도이다.8 is a block diagram of a motion estimation apparatus according to the present invention.

상기 기술적 과제를 이루기위한, 본 발명은 원 영상을 하위레벨 영상, 원 영상에 대해 각각 가로, 세로로 1/2 크기인 영상을 중간레벨 영상 및 원 영상에 대해 각각 가로, 세로로 1/4 크기인 영상을 상위레벨 영상으로하여 현재 프레임의 각 매크로 블록의 움직임을 상기 매크로 블록에 대응하는 이전 프레임의 탐색영역과 비교하여 추정할 때, 상기 상위 레벨로부터 상기 하위 레벨까지 계층적으로 탐색하는 움직임 추정 장치에 있어서, 현재 프레임 데이터와 이전 프레임 데이터를 저장하는 메모리; 상기 메모리로부터 상기 매크로 블록 데이터를 소정 크기의 블록단위로 독출하고, 상기 탐색 영역 데이터를 독출하여 독출된 데이터들의 정합 정도를 나타내는 정합기준값을 출력하는 기본 탐색 유닛; 상기 중간레벨 또는 하위레벨을 탐색하는 경우 상기 기본 탐색유닛의 출력값을 상기 매크로 블록의 전 영역에 대해 가산하여 저장하는 부분 정합기준값 저장수단; 탐색 레벨에 따라 상기 기본 탐색 유닛의 출력값과 상기 부분 정합 기준값 저장수단의 출력값중 하나를 선택하여 출력하는 제1멀티플렉서; 상기 제1멀티플렉서로부터 출력되는 값을 순차적으로 비교하여 상기 탐색영역내에서 가장 작은 정합기준값을 갖는 탐색점의 인덱스를 출력하는 비교기; 상기 하위레벨을 탐색하는 경우 현재 처리중인 매크로 블록의 인접 매크로 블록중 움직임 벡터값을 이미 알고있는 매크로 블록에 대한 움직임 벡터들의 중간값을 저장하는 인접움직임 벡터 저장부; 탐색 레벨에 따라 상기 비교기의 출력과 상기 인접움직임 벡터 저장부의 출력중 하나를 출력하는 제2멀티플렉서; 및 상기 제2멀티플렉서에서 출력되는 인덱스에 해당하는 상기 메모리의 어드레스를 발생하여 상기 메모리에 출력하는 어드레스 발생부를 포함함을 특징으로한다.In order to achieve the above technical problem, the present invention provides a lower-level image and a half-size vertically and horizontally, respectively, with respect to the middle-level and original images. A motion estimation for hierarchically searching from the upper level to the lower level when estimating the motion of each macroblock of the current frame by comparing the searched image with the search region of the previous frame corresponding to the macroblock. An apparatus, comprising: a memory for storing current frame data and previous frame data; A basic search unit which reads the macro block data from the memory in block units of a predetermined size, reads the search region data, and outputs a matching reference value indicating a matching degree of the read data; Partial matching reference value storing means for adding and storing the output value of the basic search unit to all regions of the macro block when searching the intermediate level or the lower level; A first multiplexer for selecting and outputting one of an output value of the basic search unit and an output value of the partial matching reference value storing means according to the search level; A comparator for sequentially comparing the values output from the first multiplexer and outputting an index of a search point having the smallest matching reference value in the search area; An adjacent motion vector storage unit for storing a median value of motion vectors for a macro block that already knows a motion vector value among neighboring macroblocks of a macroblock currently being processed when the lower level is searched; A second multiplexer outputting one of an output of the comparator and an output of the adjacent motion vector storage unit according to a search level; And an address generator for generating an address of the memory corresponding to the index output from the second multiplexer and outputting the address to the memory.

이하에서 첨부된 도면을 참조하여 본 발명을 실시예를 보다 상세히 설명하기로 한다. 도 1은 본 발명에 사용되는 계층적 탐색 알고리즘(Hierarchical Search Block Matching Algorithm by using 3 candidates and Spatial correlation, 이하 HSBMA3S라 함)의 계층도를 도시한 것이다. 도 1에 따른 알고리즘은 상위(100), 중간(102) 및 하위 레벨(104)로 구성된다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. FIG. 1 illustrates a hierarchical diagram of a hierarchical search block matching algorithm by using 3 candidates and spatial correlation (hereinafter referred to as HSBMA3S). The algorithm according to FIG. 1 is composed of upper 100, middle 102 and lower levels 104.

하위레벨(104)의 영상은 원 영상이고, 중간레벨(102)의 영상은 원 영상에 대해 가로, 세로로 각각 1/2 크기의 영상이다. 상위레벨(100)의 영상은 중간레벨 (102)의 영상을 서브샘플링한 것으로 원 영상에 대해 가로, 세로가 각각 1/4인 영상이다. 이러한 영상에 대해 먼저, 상위레벨(100)에서 전역 탐색을 수행하고, 중간레벨(102)과 하위레벨(104)에서는 이전 레벨에서 얻은 움직임 벡터를 초기점으로 각각 순차적으로 부분 탐색을 수행하여 좀 더 세밀하게 조정한 후 최종 움직임 벡터를 얻게된다.The image of the lower level 104 is an original image, and the image of the intermediate level 102 is an image having a size of 1/2 each of the width and length of the original image. The image of the upper level 100 is a subsampling of the image of the intermediate level 102. The image of the upper level 100 is 1/4 in the width and length of the original image. First, global search is performed at the upper level 100, and partial search is performed sequentially at the intermediate level 102 and the lower level 104 by sequentially performing the motion vectors obtained from the previous level as initial points. After fine tuning, you get the final motion vector.

상위레벨(100)에서는 가로, 세로 각각 원 영상의 1/4크기인 영상을 이용하여 탐색을 수행한다. 가로, 세로 각각 1/4씩 줄어든 4x4크기의 블록단위로 탐색영역의 크기도 가로, 세로 각각 1/4씩 줄인 수평/수직 ±4화소 영역에 대해서 전역 탐색을 수행한다. 정합 기준(Matching Criterion)은 평균 절대값 차(Mean Absolute Difference, 이하 MAD라 함)이다. 상위레벨(100)의 탐색 후, MAD가 최소인 두 점을 중간 레벨(102)의 탐색을 위한 움직임 벡터 후보로 선택한다.In the upper level 100, a search is performed using an image having a size of 1/4 of the original image, horizontally and vertically. The global search is performed on the horizontal / vertical ± 4 pixel areas in which the size of the search area is also reduced by 1/4 each in the horizontal and vertical blocks by 4x4 blocks. Matching Criterion is Mean Absolute Difference (hereinafter referred to as MAD). After the search of the upper level 100, two points having the minimum MAD are selected as motion vector candidates for the search of the middle level 102.

중간레벨(102)에서는 가로, 세로 각각 원 영상의 1/2 크기인 영상을 이용하여 탐색한다. 중간레벨(102)에서는 총 3개의 움직임 벡터 후보에 대해서, 각각의움직임 벡터 후보를 초기 탐색점으로하여 8x8크기의 블록 단위로 수평/수직 ±2 화소 크기의 부분 탐색을 수행한다. 3개의 초기 탐색점중 2개는 상위레벨(100)에서 MAD를 정합기준으로하여 선택된 것이고, 나머지 하나는 하위레벨(104)에서 움직임 벡터들의 공간적 상관관계(Spatial Correlation)를 이용하여 선택된다. 중간레벨 (102)의 3개의 후보 탐색점에 대해서 탐색을 수행하여 최소 MAD를 가지는 점을 각각 하나씩 얻게되면, 그 중에 MAD가 최소인 한 점을 하위레벨(104)에서의 초기 탐색점으로 선택한다.In the intermediate level 102, the image is searched using an image that is 1/2 the size of the original image. In the intermediate level 102, a partial search of a horizontal / vertical ± 2 pixel size is performed on a total of three motion vector candidates in blocks of 8x8 size using each motion vector candidate as an initial search point. Two of the three initial search points are selected based on the matching criteria of the MAD at the upper level 100, and the other one is selected using the spatial correlation of the motion vectors at the lower level 104. When each of the three candidate search points of the intermediate level 102 is searched to obtain one point having the minimum MAD, one point having the minimum MAD is selected as the initial search point at the lower level 104. .

도 2는 하위레벨(104)로부터 중간레벨(102)의 3개의 후보 탐색점중 하나를 얻는 것을 설명하기위한 도면으로, 하위레벨(104)에서 현재 처리중인 매크로 블록의 인접 매크로 블록들을 도시한 것이다. 인접 매크로 블록들은 각각 NMV0, NMV1, NMV2이다. 이들 매크로 블록들은 시간적으로 우선 처리되어있어서 이미 최종 움직임 벡터들(NMV0x, NMV0y), (NMV1x, NMV1y), (NMV2x, NMV2y)을 알고있는 블록들이다. 이들의 움직임 벡터들의 x, y성분을 각각 따로 중간값(median)을 취해 하나의 후보로 결정한다.FIG. 2 is a diagram illustrating obtaining one of three candidate search points of the intermediate level 102 from the lower level 104 and showing adjacent macro blocks of the macro block currently being processed at the lower level 104. . Adjacent macro blocks are NMV0, NMV1 and NMV2, respectively. These macro blocks according to the priority in terms of time already a final motion vector (x NMV0, NMV0 y), (x NMV1, NMV1 y), (x NMV2, NMV2 y) are known to block. The x and y components of these motion vectors are taken as medians and determined as one candidate.

이렇게 얻어진 움직임 벡터 후보를 1/2로 크기를 줄여서 중간 레벨에서의 초기 탐색점으로 사용한다.The motion vector candidate thus obtained is reduced to 1/2 to be used as the initial search point at the intermediate level.

하위레벨(104)에서는 원 영상을 그대로 이용하여 중간 레벨(102)에서 얻어진점을 중심으로 16x16 크기의 블록단위로 수평/수직 ±2 화소의 부분탐색을 수행하여 최종 움직임 벡터를 하나 결정하게 된다.In the lower level 104, the final motion vector is determined by performing partial search of horizontal / vertical ± 2 pixels in units of 16 × 16 blocks based on the points obtained in the intermediate level 102 using the original image as it is.

상술한 HSBMA3S를 하드웨어로 구현하는 본 발명은 시스톨릭 어레이를 기반으로한다. 시스톨릭 어레이는 MAD를 계산하기 위한 간단한 연산(뺄셈, 절대값, 덧셈)을 수행하는 처리 단위(Processing Element, 이하 PE라 함)들의 배열이다. 일반적으로 PE의 개수는 움직임 추정 알고리즘에서 처리하는 매크로 블록의 크기 또는 탐색 영역의 크기와 비례한다. 예를 들어, 전역 탐색의 경우 16x16 매크로블록 단위로 처리할 경우 256개의 PE가 사용되며 움직임 추정 칩의 대부분을 PE가 차지하게 되어 칩 사이즈가 커지게 된다. HSBMA3S 알고리즘은 3개의 레벨로 이루어져 있고 각각의 레벨마다 처리하는 블록의 크기와 탐색 영역의 크기가 서로 다르다. 따라서 각 레벨에 적합한 서로 다른 시스톨릭 어레이가 필요하게 된다. 본 발명에서는 모든 레벨에서 공통적으로 사용할 수 있는 하나의 시스톨릭 어레이로 기본 탐색 유닛 (Basic Searching Unit, 이하 BSU라 함)을 두어 이를 반복적으로 사용함으로써 움직임 추정을 수행한다. 그리고 BSU 또한 5개의 PE로 이루어진 구조이므로 칩 전체에서 PE가 차지하는 비율은 미미하다.The present invention, which implements the above-described HSBMA3S in hardware, is based on a systolic array. A systolic array is an array of processing elements (hereinafter referred to as PEs) that perform simple operations (subtraction, absolute value, addition) to calculate MAD. In general, the number of PEs is proportional to the size of the macro block or the size of the search region processed by the motion estimation algorithm. For example, in the case of global search, 256 PEs are used when the 16x16 macroblock is processed, and the majority of the motion estimation chips are occupied by PE, thereby increasing the chip size. The HSBMA3S algorithm consists of three levels, each of which has a different block size and a different search area. Thus, different systolic arrays are required for each level. In the present invention, motion estimation is performed by using a basic search unit (hereinafter referred to as BSU) as one systolic array that can be commonly used at all levels and repeatedly using the same. And since BSU is also composed of five PEs, the proportion of PE in the chip is minimal.

HSBMA3S는 상위 레벨, 중간 레벨, 하위 레벨에서 처리하는 블록의 크기와 탐색 영역의 크기가 서로 다르다. 상위 레벨에서는 4x4 크기의 블록에 대해서 수평/수직 ±4 화소 탐색을 수행하고, 중간 레벨에서는 8x8 크기의 블록에 대해서 ±2 화소 탐색, 하위 레벨에서는 16x16 크기의 블록에 대해서 ±2 화소 탐색을 수행한다. 각 레벨에서 처리하는 블록의 크기 중 가장 작은 크기와 탐색 영역의 크기 중가장 작은 것을 택하여 4x4 크기의 블록에 대해서 ±2 화소 탐색을 수행할 수 있는 BSU를 둔다. BSU를 각 레벨에서 반복적으로 사용함으로써 탐색을 수행하게 된다.HSBMA3S differs in the size of the block that is processed at the upper, middle, and lower levels and the size of the search area. At the upper level, horizontal / vertical ± 4 pixel search is performed for 4x4 block, at the lower level, ± 2 pixel search is performed for 8x8 block, and at the lower level, ± 2 pixel search is performed for 16x16 block. . The smallest of the size of blocks processed at each level and the smallest of the size of the search area are selected, and a BSU capable of performing a ± 2 pixel search on a 4x4 size block is provided. The search is performed by repeatedly using the BSU at each level.

도 3은 BSU의 상세도이다. BSU는 4x4 크기의 블록에 대하여 ±2 화소의 탐색을 수행하는 시스톨릭 어레이다. 도 3에 따르면, BSU는 5개의 PE(PE0, PE1, PE2, PE3, PE4), 복수의 플립플롭(DFF) 및 멀티플렉서(MUX)로 구성된다.3 is a detail view of the BSU. The BSU is a systolic array that performs a search of ± 2 pixels for a 4x4 block. According to FIG. 3, a BSU is composed of five PEs PE0, PE1, PE2, PE3, PE4, a plurality of flip-flops DFF, and a multiplexer MUX.

BSU가 4x4 크기의 블록에 대하여 ±2 화소의 탐색을 수행하기 위해서는 다음의 표 1 및 표 2와 같이 현재 프레임의 4x4 크기의 기준 블록 데이터와 이전 프레임의 8x8 크기의 탐색 영역 데이터들이 필요하다.In order for the BSU to search ± 2 pixels on a 4x4 block, reference block data of 4x4 size of the current frame and 8x8 size of search area data of the previous frame are required as shown in Table 1 and Table 2 below.

기준 블록 데이터는 C 포트를 통해, 탐색 영역 데이터는 P와 P'의 두 개의 포트로 나뉘어 BSU로 입력된다. 탐색영역 데이터는 상기 두 포트에 동시에 입력되며, 실질적으로 PE에 입력되는 순서는 '리셋'단자에 연결된 DFF들과 MUX들에 의해 결정된다. 탐색 영역 데이터가 두 포트를 통해서 나누어서 동시에 입력하는 이유는 데이터의 공급을 원활히 하여 PE의 효율성을 극대화하기 위함이다. 탐색 영역 데이터 64개중 왼쪽 네 개 열의 데이터 32개는 P 포트를 통해서 오른쪽 네 개 열의 데이터 32개는 P' 포트를 통해 동시에 입력된다.The reference block data is input to the BSU through the C port, and the search region data is divided into two ports, P and P '. Search area data is simultaneously input to the two ports, and the order of input to the PE is determined by the DFFs and the MUXs connected to the 'reset' terminal. The reason why the search area data is input through the two ports at the same time is to maximize the efficiency of the PE by smoothly supplying the data. 32 data in the left four columns of 64 search area data are inputted simultaneously through the P port through the P port.

BSU에 입력된 기준 블록 데이터는 각 플립플롭(DFF)을 거쳐서 5개의 PE에 순차적으로 공급되고, 탐색 영역 데이터는 5개의 PE에 브로드캐스팅된다. PE0는 P를, PE4는 P'을, 나머지 PE들(PE1, PE2, PE3)은 각 MUX를 통해 P와 P'중 적절한 데이터를 선택하여 공급받게 된다. PE는 4x4 크기의 블록 데이터에 대한 MAD를 계산하기위한 연산을 담당한다.Reference block data input to the BSU is sequentially supplied to five PEs through each flip-flop DFF, and search area data is broadcast to five PEs. PE0 is P, PE4 is P ', and the remaining PEs (PE1, PE2, PE3) are supplied with the appropriate data selected from P and P' through each MUX. The PE is responsible for calculating the MAD for 4x4 block data.

BSU는 ±2 화소, 즉 수평/수직 5개씩 25개의 탐색점에 대한 탐색을 행별로 순차적으로 수행한다. 5개의 PE는 하나의 행의 5개의 탐색점에 각각 할당되어 그 탐색점에서의 MAD를 계산한다. 한번에 하나의 행씩 5개의 행에 위치하는 탐색점들에 대한 탐색을 수행하면 하나의 기본 탐색 단위인 4x4 크기의 블록에 대한 ±2 화소의 탐색을 마치게 된다. 각각의 PE에 입력되는 기준 블록 데이터와 탐색 영역 데이터는 표 3과 같다. 표에서는 9번째 클럭 사이클(CC)까지만 나타낸 것이다.The BSU sequentially searches 25 search points of ± 2 pixels, that is, 5 horizontally and vertically, row by row. Five PEs are each assigned to five search points in one row to calculate the MAD at that search point. Searching for search points located in five rows, one row at a time, completes the search of ± 2 pixels for a 4x4 block, which is one basic search unit. Reference block data and search area data input to each PE are shown in Table 3. The table only shows the 9th clock cycle (CC).

여기서, RD는 기준 블록 데이터이고, SD는 탐색 영역 데이터이다.Here, RD is reference block data and SD is search region data.

기준 블록 데이터와 탐색 영역 데이터는 각각 행별로 차례대로 입력되며 P'을 통해 입력되는 탐색 영역 데이터는 C와 P를 통해 입력되는 데이터들보다 네 클럭 늦게 입력된다. 기준 블록 데이터는 C 포트를 통해 16 클럭마다 반복되어 재입력되며, 탐색 영역 데이터들은 16개의 데이터가 입력되고 나면 한 행씩 밑의 데이터가 16개 입력되는 방식으로 진행된다.The reference block data and the search region data are input in sequence for each row, and the search region data input through P 'is input four clocks later than the data input through C and P. The reference block data is repeatedly inputted every 16 clocks through the C port, and the search area data proceeds in a manner of inputting 16 pieces of data below one row after 16 data are input.

하나의 PE에서 4x4 블록에 대한 MAD를 계산하는데 16CC이 걸리고, 5개의 PE에서 동시에 5개의 탐색점들에 대한 탐색이 수행하므로, ±2 화소, 25개의 탐색점들에 대한 탐색을 수행하는 데는 총 16x5=80CC이 소요된다.It takes 16CC to calculate the MAD for a 4x4 block in one PE, and the search for 5 search points at the same time in 5 PEs, so ± 2 pixels, the search for 25 search points is total. 16x5 = 80CC is required.

도 4는 BSU을 상위레벨에 적용하는 경우를 도시한 것이다. 상위 레벨은 4x4 크기의 블록에 대하여 ±4화소 탐색을 수행한다. 처리하는 블록의 크기는 BSU가 처리하는 블록의 크기와 동일하나 탐색 영역의 크기는 다르다. 따라서, BSU를 이용하여 탐색을 수행하기 위해서 도 4와 같이 탐색점들을 네 영역으로 나누어 처리한다. BSU는 한번에 ±2화소, 즉 수평/수직 5개씩 25개 탐색점들에 대한 탐색을 수행하므로 탐색점들을 25개씩 나누어 순차적으로 처리한다.4 illustrates a case where the BSU is applied to a higher level. The higher level performs a ± 4 pixel search on a 4x4 block. The size of the block to be processed is the same as the size of the block to be processed by the BSU, but the size of the search area is different. Therefore, in order to perform a search using a BSU, search points are divided into four areas as shown in FIG. 4. Since the BSU performs the search for 25 search points at ± 2 pixels, that is, 5 horizontally and 5 vertically, the BSU processes 25 search points sequentially.

도 5는 BSU을 중간레벨에 적용하는 경우를 도시한 것이다. 도시된 바에 따르면, 중간 레벨은 8x8 크기의 블록에 대하여 ±2 화소 부분탐색을 수행한다. 탐색 영역의 크기는 BSU가 처리하는 것과 동일하고 처리하는 블록의 크기는 다르다. BSU를 이용하여 탐색을 수행하기 위해서 도시된 바와 같이 처리하는 블록을 네 개의 4x4 크기의 블록으로 나누어 순차적으로 처리한다. 이때 BSU에서 계산된 MAD는 8x8 블록에 대한 완전한 MAD가 아니라 4x4 블록에 대한 부분 MAD이다. 부분 MAD들을 저장하여 완전한 MAD를 구하는 추가 하드웨어가 필요하다.5 shows a case where the BSU is applied to the intermediate level. As shown, the intermediate level performs ± 2 pixel subscanning for an 8x8 block. The size of the search area is the same as that handled by the BSU and the size of the blocks to be processed is different. In order to perform the search using the BSU, the processing block is divided into four 4x4 size blocks and processed sequentially. In this case, the MAD calculated in the BSU is not a complete MAD for an 8x8 block but a partial MAD for a 4x4 block. You need additional hardware to store partial MADs to obtain a complete MAD.

도 6은 BSU을 하위레벨에 적용하는 경우를 도시한 것이다. 도시된 바에 따르면, 하위 레벨에서는 16x16 크기의 블록에 대하여 ±2 화소 부분 탐색을 수행한다. 중간 레벨과 마찬가지로 처리하는 탐색 영역의 크기는 BSU가 처리하는 크기와 동일하고 처리하는 블록의 크기는 서로 다르다. 중간 레벨에서와 같은 방법으로 처리하는 블록을 16 개의 4x4 크기의 블록으로 나누어 순차적으로 처리한다. 여기서도 완전한 MAD를 구하기 위한 하드웨어를 사용한다.6 shows a case where BSU is applied to a lower level. As shown, at a lower level, a ± 2 pixel partial search is performed on a 16 × 16 block. Like the intermediate level, the size of the search area to be processed is the same as the size of the BSU to be processed, and the sizes of the blocks to be processed are different. The blocks processed in the same way as in the middle level are divided into 16 4x4 blocks and processed sequentially. Again, we use the hardware to get the complete MAD.

도 7은 중간레벨과 하위레벨의 탐색시 발생하는 부분 MAD를 저장하는 수단을 도시한 것이다. 중간 레벨과 하위 레벨에서는 처리하는 블록을 4x4 크기의 블록으로 나누어 처리하기 때문에 이러한 모듈이 사용된다. 도시된 바에 따르면, 부분 MAD 저장수단은 25개의 쉬프트 레지스터(700)와 덧셈기(702)로 이루어져 있다. BSU는 한번에 ±2 화소의 탐색, 즉 25개 점에 대한 탐색을 수행하므로 각각의 탐색점들에서 얻어진 부분 MAD를 저장할 공간으로 25개의 쉬프트 레지스터(700)가 사용된다. 탐색영역이 ±p2라면, 쉬프트 레지스터(700)의 개수는 (2p2+1)2개가 필요하다. 16x16 블록에 대한 완전한 MAD는 16 비트이므로 각각의 레지스터의 크기는 16비트가 된다. 중간 레벨과 하위 레벨 처리 시 BSU에서 계산된 4x4 블록에 대한 부분 MAD들은 차례대로 이전에 저장된 값들과 덧셈기(702)에서 더해져서 쉬프트 레지스터(700)에 저장된다. 중간 레벨에서는 네 개의 부분 MAD들을 더해서 8x8 블록에 대한 완전한 MAD를 구할 수 있으며 하위 레벨에서는 열 여섯 개의 부분 MAD들을 더해서 16x16 블록에 대한 완전한 MAD를 구할 수 있다.7 shows a means for storing a partial MAD that occurs during the search of the intermediate and lower levels. This module is used at the intermediate and lower levels because the processing block is divided into 4x4 blocks. As shown, the partial MAD storage means consists of 25 shift registers 700 and an adder 702. Since the BSU performs a search of ± 2 pixels at one time, that is, a search for 25 points, 25 shift registers 700 are used as a space for storing a partial MAD obtained at each search point. If the search area is ± p 2 , the number of shift registers 700 is required to be (2p 2 +1) two . The complete MAD for a 16x16 block is 16 bits, so each register is 16 bits in size. The partial MADs for the 4x4 block computed at the BSU during the intermediate and lower level processing are in turn added to the previously stored values and the adder 702 and stored in the shift register 700. At the middle level, four partial MADs can be added to get a complete MAD for an 8x8 block, and at a lower level, sixteen partial MADs can be added to get a complete MAD for a 16x16 block.

도 8은 본 발명에 따른 움직임 추정 장치에 대한 블록도이다. 도 8에 따른 움직임 추정 장치는 기본 탐색 유닛(800), 제1MUX(802), 비교기(804), 제2MUX(806), 어드레스 발생부(808), 인접 움직임 벡터 저장부(810), 부분 MAD 저장부(812) 및 메모리(814)를 포함한다.8 is a block diagram of a motion estimation apparatus according to the present invention. The motion estimation apparatus according to FIG. 8 includes a basic search unit 800, a first MUX 802, a comparator 804, a second MUX 806, an address generator 808, an adjacent motion vector storage unit 810, and a partial MAD. Storage 812 and memory 814.

기본 탐색 유닛(800)은 상술한 바와 같이 현재 프레임의 블록 데이터와 탐색영역의 데이터의 정합기준값인 MAD를 출력한다. 제1MUX(802)는 상위레벨 탐색인 경우 기본 탐색 유닛의 MAD를 출력하고, 중·하위레벨이면 도 7에 도시된 바와 같은 부분 MAD 저장부(812)의 MAD를 출력한다. 비교기(804)는 입력되는 MAD를 순차적으로 비교하여 가장 작은 MAD를 갖는 탐색점의 인덱스를 출력한다. 제2MUX(806)는 상위 또는 중간레벨이면 비교기(804)에서 출력되는 인덱스를 출력하며, 하위레벨이면인접 움직임 벡터 저장부(810)에서 출력되는 인덱스를 출력한다. 인접 움직임 벡터 저장부(810)는 중간레벨의 초기 탐색점으로 사용되는 움직임 벡터 후보 3개중 하나를 인접 움직임 벡터들로부터 구할 때, 현재 처리중인 매크로 블록에 인접한 블록의 움직임 벡터들을 저장하고, 저장된 값들로부터 중간값을 구하며 그에 해당하는 탐색점의 인덱스를 출력한다. 어드레스 발생부(808)는 제2MUX(806)의 출력 인덱스에 따라 다음 레벨의 초기 탐색점을 계산하고, 탐색영역 데이터를 기본 탐색 유닛 (800)으로 가져올 수 있도록 적절한 어드레스를 발생한다. 또한 하위레벨의 탐색인 경우 출력 인덱스로부터 움직임 벡터를 구한다. 메모리(814)는 발생된 어드레스에 해당하는 데이터들을 기본 탐색 유닛(800)에 출력한다.As described above, the basic search unit 800 outputs MAD, which is a matching reference value between the block data of the current frame and the data of the search area. The first MUX 802 outputs the MAD of the basic search unit in the case of the upper level search, and outputs the MAD of the partial MAD storage unit 812 as shown in FIG. 7 in the middle and the lower level. The comparator 804 sequentially compares the input MADs and outputs an index of a search point having the smallest MAD. The second MUX 806 outputs an index output from the comparator 804 when the upper level or the middle level is output, and outputs an index output from the adjacent motion vector storage unit 810 when the level is lower. The neighbor motion vector storage unit 810 stores motion vectors of a block adjacent to a macroblock currently being processed when one of three motion vector candidates used as initial search points of an intermediate level is obtained from neighbor motion vectors, and stored values. Get the median from and print the index of the corresponding search point. The address generator 808 calculates an initial search point of the next level according to the output index of the second MUX 806, and generates an appropriate address so that the search area data can be brought to the basic search unit 800. Also, in the case of low level search, the motion vector is obtained from the output index. The memory 814 outputs data corresponding to the generated address to the basic search unit 800.

본 발명은 최소 크기의 탐색 블록과 탐색 영역을 처리하는 최소의 크기를 가지는 시스톨릭 어레이로 이루어진 하나의 기본 탐색 단위를 반복적으로 이용하여 매크로 블록의 MAD를 계산하므로 처리속도가 빠르고, 칩 사이즈를 작게할 수 있다.The present invention calculates the MAD of a macro block repeatedly by using one basic search unit composed of a minimum size search block and a systolic array having a minimum size to process a search area, thereby increasing processing speed and reducing chip size. can do.

Claims (3)

원 영상을 하위레벨 영상, 원 영상에 대해 각각 가로, 세로로 1/2 크기인 영상을 중간레벨 영상 및 원 영상에 대해 각각 가로, 세로로 1/4 크기인 영상을 상위레벨 영상으로하여 현재 프레임의 각 매크로 블록의 움직임을 상기 매크로 블록에 대응하는 이전 프레임의 탐색영역과 비교하여 추정할 때, 상기 상위 레벨로부터 상기 하위 레벨까지 계층적으로 탐색하는 움직임 추정 장치에 있어서,The current frame with the original image as the lower level image and the image with 1/2 size horizontally and vertically for the original image, and the image with the horizontal level and 1/4 size horizontally and vertically for the original image respectively as the upper level image. A motion estimation apparatus for hierarchically searching from the upper level to the lower level when estimating the motion of each macroblock in comparison with a search region of a previous frame corresponding to the macroblock, 현재 프레임 데이터와 이전 프레임 데이터를 저장하는 메모리;A memory for storing current frame data and previous frame data; 상기 메모리로부터 상기 매크로 블록 데이터를 소정 크기의 블록단위로 독출하고, 상기 탐색 영역 데이터를 독출하여 독출된 데이터들의 정합 정도를 나타내는 정합기준값을 출력하는 기본 탐색 유닛;A basic search unit which reads the macro block data from the memory in block units of a predetermined size, reads the search region data, and outputs a matching reference value indicating a matching degree of the read data; 상기 중간레벨 또는 하위레벨을 탐색하는 경우 상기 기본 탐색유닛의 출력값을 상기 매크로 블록의 전 영역에 대해 가산하여 저장하는 부분 정합기준값 저장수단;Partial matching reference value storing means for adding and storing the output value of the basic search unit to all regions of the macro block when searching the intermediate level or the lower level; 탐색 레벨에 따라 상기 기본 탐색 유닛의 출력값과 상기 부분 정합 기준값 저장수단의 출력값중 하나를 선택하여 출력하는 제1멀티플렉서;A first multiplexer for selecting and outputting one of an output value of the basic search unit and an output value of the partial matching reference value storing means according to the search level; 상기 제1멀티플렉서로부터 출력되는 값을 순차적으로 비교하여 상기 탐색영역내에서 가장 작은 정합기준값을 갖는 탐색점의 인덱스를 출력하는 비교기;A comparator for sequentially comparing the values output from the first multiplexer and outputting an index of a search point having the smallest matching reference value in the search area; 상기 하위레벨을 탐색하는 경우 현재 처리중인 매크로 블록의 인접 매크로 블록중 움직임 벡터값을 이미 알고있는 매크로 블록에 대한 움직임 벡터들의 중간값을 저장하는 인접움직임 벡터 저장부;An adjacent motion vector storage unit for storing a median value of motion vectors for a macro block that already knows a motion vector value among neighboring macroblocks of a macroblock currently being processed when the lower level is searched; 탐색 레벨에 따라 상기 비교기의 출력과 상기 인접움직임 벡터 저장부의 출력중 하나를 출력하는 제2멀티플렉서; 및A second multiplexer outputting one of an output of the comparator and an output of the adjacent motion vector storage unit according to a search level; And 상기 제2멀티플렉서에서 출력되는 인덱스에 해당하는 상기 메모리의 어드레스를 발생하여 상기 메모리에 출력하는 어드레스 발생부를 포함함을 특징으로하는 움직임 추정 장치.And an address generator for generating an address of the memory corresponding to the index output from the second multiplexer and outputting the address to the memory. 제1항에 있어서, 상기 기본 탐색 유닛은The method of claim 1, wherein the basic search unit 상기 매크로 블록 데이터를 순차적으로 지연시키는 복수의 제1지연기;A plurality of first delayers for sequentially delaying the macro block data; 상기 탐색영역 데이터를 소정 간격의 인덱스에 대응하여 독출하고, 소정 선택신호에 따라 각 독출된 데이터중 하나를 선택하여 출력하는 복수의 멀티플렉서;A plurality of multiplexers for reading the search area data corresponding to indexes of a predetermined interval, and selecting and outputting one of the read data according to a predetermined selection signal; 상기 멀티플렉서들이 소정 클럭마다 순환되면서 순차적으로 동일한 독출 데이터를 출력하도록 상기 선택신호를 출력하는 복수의 제2지연기; 및A plurality of second delayers outputting the selection signal to sequentially output the same read data while the multiplexers are cycled every predetermined clock; And 상기 지연기들의 출력과 상기 멀티플렉서들의 출력의 정합기준값을 계산하는 복수의 처리단위(PE)를 구비함을 특징으로하는 움직임 추정 장치.And a plurality of processing units (PEs) for calculating a matching reference value between the outputs of the delayers and the outputs of the multiplexers. 제1항에 있어서, 상기 부분 정합기준값 저장수단은The method of claim 1, wherein the partial matching reference value storing means 상기 기본 탐색 유닛의 출력값을 이전에 저장된 값들과 더하는 덧셈기; 및An adder for adding the output value of the basic search unit with previously stored values; And 상기 탐색영역 데이터 수만큼의 크기를 갖고 상기 덧셈기의 출력을 순차적으로 저장하는 쉬프트 레지스터 어레이를 구비함을 특징으로하는 움직임 추정 장치.And a shift register array having a size equal to the number of search area data and sequentially storing the output of the adder.
KR10-1998-0049474A 1998-11-18 1998-11-18 Motion estimation device KR100359091B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-1998-0049474A KR100359091B1 (en) 1998-11-18 1998-11-18 Motion estimation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-1998-0049474A KR100359091B1 (en) 1998-11-18 1998-11-18 Motion estimation device

Publications (2)

Publication Number Publication Date
KR20000032857A KR20000032857A (en) 2000-06-15
KR100359091B1 true KR100359091B1 (en) 2003-01-24

Family

ID=19558794

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0049474A KR100359091B1 (en) 1998-11-18 1998-11-18 Motion estimation device

Country Status (1)

Country Link
KR (1) KR100359091B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040008359A (en) * 2002-07-18 2004-01-31 삼성전자주식회사 Method for estimating motion using hierarchical search and apparatus thereof and image encoding system using thereof
KR100534207B1 (en) * 2002-12-09 2005-12-08 삼성전자주식회사 Device and method for motion estimating of video coder
KR100508975B1 (en) 2003-05-20 2005-08-17 주식회사 팬택 Motion estimation method using multilevel successive elimination altorithm
KR100970726B1 (en) * 2003-10-04 2010-07-16 삼성전자주식회사 Method of hierarchical motion estimation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960003702A (en) * 1994-07-12 1996-02-23 김창현 Automatic feeding and mixing of milk powder and water
US5594504A (en) * 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine
KR970004888A (en) * 1995-06-28 1997-01-29 Block motion estimation method
KR970019671A (en) * 1995-09-15 1997-04-30 배순훈 Motion Vector Detection Method Using Hierarchical Motion Estimation
KR970032163A (en) * 1995-11-27 1997-06-26 채수익 Motion Estimation System of Image Compression System
KR970057889A (en) * 1995-12-23 1997-07-31 양승택 Block Matched Motion Estimator Using Linear Shortened Array Structure

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594504A (en) * 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine
KR960003702A (en) * 1994-07-12 1996-02-23 김창현 Automatic feeding and mixing of milk powder and water
KR970004888A (en) * 1995-06-28 1997-01-29 Block motion estimation method
KR970019671A (en) * 1995-09-15 1997-04-30 배순훈 Motion Vector Detection Method Using Hierarchical Motion Estimation
KR970032163A (en) * 1995-11-27 1997-06-26 채수익 Motion Estimation System of Image Compression System
KR970057889A (en) * 1995-12-23 1997-07-31 양승택 Block Matched Motion Estimator Using Linear Shortened Array Structure

Also Published As

Publication number Publication date
KR20000032857A (en) 2000-06-15

Similar Documents

Publication Publication Date Title
Lai et al. A data-interlacing architecture with two-dimensional data-reuse for full-search block-matching algorithm
US5838828A (en) Method and apparatus for motion estimation in a video signal
US7782957B2 (en) Motion estimation circuit and operating method thereof
EP1120747A2 (en) Motion estimator
KR100273629B1 (en) Motion vector estimating appparatus with high speed and method of destmating motion vector
KR101578052B1 (en) Motion estimation device and Moving image encoding device having the same
US20050238102A1 (en) Hierarchical motion estimation apparatus and method
US6366317B1 (en) Motion estimation using intrapixel logic
JPH04294469A (en) Correlative device
US5793443A (en) Motion vector detection circuit
KR20010052630A (en) Motion estimation
KR100416444B1 (en) Motion vector selection method and image processing device performing this method
He et al. Design of fast motion estimation algorithm based on hardware consideration
US6160850A (en) Motion estimator employing a three-step hierachical search block-matching algorithm
KR100359091B1 (en) Motion estimation device
Baglietto et al. Parallel implementation of the full search block matching algorithm for motion estimation
Ho et al. A high performance hardware architecture for multi-frame hierarchical motion estimation
Liu et al. A frame-level FSBM motion estimation architecture with large search range
US20050089099A1 (en) Fast motion estimating apparatus
US6931066B2 (en) Motion vector selection based on a preferred point
Berns et al. A flexible motion estimation chip for variable size block matching
KR0178302B1 (en) Motion estimation processor based on the bidirectional parallel pipe line structure
De Vos et al. VLSI architectures for the full-search blockmatching algorithm
Hanssens et al. Parallel processor for motion estimation
US6968011B2 (en) Motion vector detecting device improved in detection speed of motion vectors and system employing the same devices

Legal Events

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

Payment date: 20100929

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee