KR20070061214A - Low cost motion estimation device and motion estimation method - Google Patents

Low cost motion estimation device and motion estimation method Download PDF

Info

Publication number
KR20070061214A
KR20070061214A KR1020060065770A KR20060065770A KR20070061214A KR 20070061214 A KR20070061214 A KR 20070061214A KR 1020060065770 A KR1020060065770 A KR 1020060065770A KR 20060065770 A KR20060065770 A KR 20060065770A KR 20070061214 A KR20070061214 A KR 20070061214A
Authority
KR
South Korea
Prior art keywords
sampling
mode
motion
similarity
motion vector
Prior art date
Application number
KR1020060065770A
Other languages
Korean (ko)
Other versions
KR100801974B1 (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 US11/545,296 priority Critical patent/US20070133689A1/en
Publication of KR20070061214A publication Critical patent/KR20070061214A/en
Application granted granted Critical
Publication of KR100801974B1 publication Critical patent/KR100801974B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

An inexpensive motion estimation apparatus and a motion estimation method are provided to reduce hardware cost and minimize hardware complexity while minimizing deterioration of picture quality and decrease the quantity of calculations. A motion estimation apparatus includes a sampling unit(102), a block segmentation/address generation unit(104), and a motion calculation unit(105). The sampling unit samples block-based video data to generate sampling blocks. The block segmentation/address generation unit segments the sampled data into sampling sub-blocks and generates an address for motion estimation. The motion calculation unit calculates a motion for each sub-block by using an estimation function.

Description

저비용 움직임 추정 장치 및 움직임 추정 방법{Low Cost Motion Estimation Device and Motion Estimation Method} Low Cost Motion Estimation Device and Motion Estimation Method

도 1은 일반적인 영상 압축 장치의 구조의 하나를 도시한 블록도.1 is a block diagram showing one structure of a general video compression apparatus.

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

도 3은 본 발명에 따른 2:1 셈플링 과정을 도시한 개념도.3 is a conceptual diagram illustrating a 2: 1 sampling process according to the present invention.

도 4는 본 발명에 따라 참조 블록을 형성하는 탐색영역을 도시한 메모리 맵.4 is a memory map illustrating a search region for forming a reference block in accordance with the present invention.

도 5는 H.264 포맷의 블록 그룹핑을 도시한 블록도.5 is a block diagram illustrating block grouping in H.264 format.

도 6은 본 발명의 일실시예에 따른 움직임 추정 방법을 도시한 흐름도.6 is a flowchart illustrating a motion estimation method according to an embodiment of the present invention.

도 7은 MPEG4 포맷의 경우의 움직임 계산 방법의 일실시예를 도시한 흐름도.7 is a flowchart showing an embodiment of a motion calculation method in the case of MPEG4 format.

도 8은 H.264 포맷의 경우의 움직임 계산 방법의 일실시예를 도시한 흐름도. 8 is a flowchart illustrating an embodiment of a motion calculation method in the case of H.264 format.

도 9는 본 발명의 일실시예에 따른 움직임 추정 장치에 내장되는 프로세싱 구조의 회로도.9 is a circuit diagram of a processing structure embedded in a motion estimation apparatus according to an embodiment of the present invention.

도 10은 종래 기술에 따른 움직임 추정장치를 도시한 블록도.10 is a block diagram showing a motion estimation apparatus according to the prior art.

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

102 : 2:1 샘플링 블록(2:1 Sampling block) 102: 2: 1 Sampling Block

103 : 메모리(Memory)103: Memory

104 : 블록분할 어드레스 생성(Address Generation for Block Division)104: Address Generation for Block Division

105 : SAD 연산부(SAD Calulation)105: SAD calculation unit (SAD Calulation)

106 : 최적모드결정 블록 (Optimized Mode Decision)106: Optimized Mode Decision

본 발명의 목적은 영상데이터를 압축 알고리즘을 이용하여 이를 하드웨어로 구현하기 위한 VLSI(Very Large Scale Integration) 설계 분야에 관한 것으로, 특히, 영상압축 알고리즘을 구현한 VLSI에 적용될 수 있는 움직임 추정 장치 및 움직임 추정 방법에 관한 것이다. An object of the present invention relates to the field of VLSI (Very Large Scale Integration) design for implementing the image data in hardware using a compression algorithm, in particular, a motion estimation apparatus and motion that can be applied to VLSI implementing the image compression algorithm It is about an estimation method.

H.264는 국제적인 동영상 표준 제정 그룹인 ITU의 VCEG과 ISO의 MPEG이 공동으로 개발하고 있는 표준이다. 이 표준은 매우 높은 압축율을 주요 기술적 목표로 하고 있으며, 저장매체, 인터넷, 위성방송 등의 거의 모든 전송미디어 및 다양한 동영상 해상도의 환경에서 사용될 수 있는 범용 동영상 부호화 기술이다. 전통적으로 ITU의 국제 표준은 유선 통신 매체를 기반으로 한 H.261, H.263 등의 동영상 부호화 표준을 제정하여 왔으며, MPEG은 저장매체나 방송매체에서의 동영상 처리를 위한 MPEG-1, MPEG-2 등을 표준으로 제정하였다. MPEG은 또한 멀티미디어 전반에 걸친 부호 표준인 MPEG-4에서 객체 기반 동영상 부호를 중요한 특징으로 하는 다양한 기능과 고압축율을 실현한 MPEG-4 동영상 표준 제정을 완료하였다. ITU의 VCEG 그룹에서는 MPEG-4 동영상 표준 제정 이후에도 계속 H.26L이라는 이름으로 고압축 율의 동영상 표준을 제정하여 왔는데, MPEG에서의 공식적인 비교 실험에서, 비슷한 기능의 MPEG-4 동영상 표준(advanced simple profile)보다 압축률의 측면에서 큰 우위성을 나타내었다. 이에 따라 MPEG은 H.26L을 기반으로 ITU VCEG 그룹과 공동으로 JVT 동영상 표준인 H.264/AVC를 개발하기로 하였다. H.264 is a standard that is jointly developed by VCEG of ITU and MPEG of ISO, a group of international video standards. The standard has a very high compression ratio as the main technical goal. It is a general purpose video encoding technology that can be used in almost all transmission media such as storage media, Internet, satellite broadcasting, and various video resolutions. Traditionally, ITU's international standards have established video coding standards such as H.261 and H.263, which are based on wired communication media. MPEG is MPEG-1 and MPEG- for video processing in storage media and broadcasting media. 2 etc. were established as a standard. MPEG also completed the development of the MPEG-4 video standard, which realizes various functions and high compression ratios, which are important features of object-based video coding in MPEG-4, a multimedia standard coding standard. ITU's VCEG group has been developing a high compression video standard under the name of H.26L since the MPEG-4 video standard was established. In an official comparison experiment in MPEG, the MPEG-4 video standard (advanced simple profile) It showed a greater advantage in terms of compression ratio. Accordingly, MPEG decided to develop H.264 / AVC, a JVT video standard, in collaboration with ITU VCEG Group based on H.26L.

H.264/AVC은 다양한 우수한 특성들을 가지고 있지만, 그 중 최적 부호화 모드의 결정 방법이 성능 개선에 크게 기여한다. 최적 부호화 모드 결정 모듈은 부호화의 기본 단위인 매크로블록의 부호화 모드를 결정하는 부분으로서, 움직임 추정이 그 핵심에 위치하고 있다. H.264 / AVC has various excellent characteristics, but the method of determining the optimal coding mode among them contributes greatly to the performance improvement. The optimal coding mode determination module is a part for determining an encoding mode of a macroblock which is a basic unit of encoding, and motion estimation is located at the core thereof.

그 특징으로는, 매크로블록을 다양한 모양의 부블록들로 나누어질 수 있으며, 각 부블록이 별도의 움직임 벡터을 가질 수 있다. 또한 한장의 참조영상만을 사용하는 기존의 움직임 추정 방법과는 달리 다수의 참조영상을 사용할 수 있도록 허용함으로써 상당한 압축 효율을 얻을 수 있도록 하였다. As a feature, a macroblock may be divided into subblocks of various shapes, and each subblock may have a separate motion vector. In addition, unlike conventional motion estimation method using only one reference image, a large number of reference images can be used to obtain a significant compression efficiency.

그러나, 이러한 특징들은 계산량의 증가를 가져온다. 따라서, H.264/AVC에서의 움직임 추정 알고리즘은 예측 오차의 측면과 계산량의 측면을 잘 고려하여 설계되어야 한다. However, these features lead to an increase in the amount of computation. Therefore, the motion estimation algorithm in H.264 / AVC should be designed in consideration of the side of prediction error and the side of calculation.

도 10에 도시한 바와 같은 종래의 기술은 움직임 추정의 알고리즘을 이용하여 VLSI로 구현시 부가 메모리를 사용하여 구현 함으로써, 많은 면적과 전력소비가 생기는 문제점이 있다. The conventional technique as shown in FIG. 10 has a problem in that a large area and power consumption are generated by implementing an additional memory when implementing the VLSI using an algorithm of motion estimation.

움직임 추정(Motion Estimation)은 많은 계산량이 필요한 부분으로 지금까지 많은 알고리즘 및 하드웨어 구조가 연구되어져 왔다. 종래의 발명은 영상의 화질은 저하시키지 않고 움직임 추정 생략(Motion Estimation Skip)알고리즘을 이용한 혼합형 움직임 추정을 제안하였으며, 움직임 추정의 정상적인 동작 전에 이전 매크로블럭과 현재블럭의 위와 위 오른쪽 매크로블럭의 움직임벡터(Motion Vector)를 입력으로 하여 이중에 중간 값을 선택하는 움직임 벡터 예측(Motion Vector Prediction) 과정을 수행하여 움직임 벡터 예측 값(Motion Vector Predictor value)을 구한다. Motion Estimation requires a lot of computation, and many algorithms and hardware structures have been studied so far. The conventional invention proposed a hybrid motion estimation using a motion estimation skipping algorithm without degrading the image quality, and before the normal operation of the motion estimation, the motion vector of the previous and the right macroblocks above and above the current block. A Motion Vector Prediction value is obtained by performing a Motion Vector Prediction process of selecting an intermediate value among them as a Motion Vector.

구해진 예측 벡터를 통하여 움직임 보상(Motion Compensation)을 수행하여 SADmcp(Sum Absolute of Difference Motion Compensation Prediction)값을 구하게 된다. 위와 동시에 이전 매크로 블록과 위 및 위 오른쪽 매크로블럭 에서부터 SAD 값을 입력으로부터 최대 SAD값을 구하게 된다. 이때 구해진 SAD값을 SADmax라고 하면 이전에 구해진 SADmcp와 SADmax를 비교하여 SADmcp가 작으면 움직임 추정을 생략한다. A motion compensation (SADmcp) value is obtained by performing motion compensation through the obtained prediction vector. At the same time, the maximum SAD value is obtained from the input of the SAD value from the previous macro block and the upper and upper right macro blocks. At this time, if the obtained SAD value is SADmax, the previously estimated SADmcp and SADmax are compared. If SADmcp is small, motion estimation is omitted.

이 방법은 MPEG-4 표준에 준거한 방식으로 16x16 매크로 블록단위로 움직임 추정을 하기 때문에 부블럭 분할 방식보다 화질이 저하되, 움직임 추정 생략 모드는 부가적인 회로로 인해서 전력소모가 많아지는 단점이 있다. In this method, the motion estimation is performed in 16x16 macroblock units based on the MPEG-4 standard, so the image quality is lower than the sub-block division method, and the motion estimation skip mode has a disadvantage in that power consumption is increased due to additional circuits. .

종래기술의 문제점은 방대한 연산을 필요로하기 때문에 동영상 부호화기에서는 실시간 구현에 어려움이 있다. 또한 내부에 부가 메모리를 구현하므로써 면적과 전력소비에 문제점이 있다. 아울러 영상의 종류 및 응용분야 따라서 고정된 알고리즘을 사용하므로써 불필요한 연산량을 필요로 하며 영상의 종류에 따라서 적합한 움직임 추정 알고리즘을 사용하는데 제한이 있다. The problem of the prior art is that it requires a large amount of computation, it is difficult to implement a real time in the video encoder. In addition, there are problems in area and power consumption by implementing additional memory inside. In addition, by using a fixed algorithm according to the type and application of the image, an unnecessary amount of computation is required, and there is a limitation in using a motion estimation algorithm suitable for the type of the image.

본 발명은 상기 문제점들을 해결하기 위하여 안출된 것으로서, 하드웨어 코스트를 줄일 수 있는 움직임 추정 장치 및 움직임 추정 방법을 제공하는데 그 목적이 있다.The present invention has been made to solve the above problems, and an object thereof is to provide a motion estimation apparatus and a motion estimation method that can reduce hardware cost.

또한, 본 발명은 연산량을 줄일 수 있는 움직임 추정 장치 및 움직임 추정 방법을 제공하는데 다른 목적이 있다.Another object of the present invention is to provide a motion estimation apparatus and a motion estimation method capable of reducing the amount of computation.

상기 목적을 달성하기 위한 본 발명의 움직임 추정 장치는, 블록 단위 영상 데이터에 대한 셈플링을 수행하여 셈플링 블록을 생성하기 위한 셈플링부; 상기 셈플링된 데이터를 셈플링 서브 블록으로 분할하고, 움직임 추정 연산을 위한 어드레스를 생성하기 위한 블록 분할/어드레스 생성부; 및 각 서브블록 단위로 추정 함수를 이용하여 움직임을 연산하기 위한 움직임 연산부를 포함하는 것을 특징으로 한다.In accordance with another aspect of the present invention, there is provided a motion estimation apparatus comprising: a sampling unit for generating a sampling block by performing sampling on block unit image data; A block division / address generator for dividing the sampled data into a sampling subblock and generating an address for a motion estimation operation; And a motion calculating unit for calculating a motion by using an estimation function in each subblock unit.

상기 목적을 달성하기 위한 본 발명의 움직임 추정 방법은, 소정 블록 단위의 영상 데이터를 셈플링하여 셈플링 블록을 생성하는 단계; 상기 셈플링 블록을 다수개의 셈플링 서브 블록으로 분할하는 단계; 외부에서 특정한 참조 블록에 대하여 각 움직임 벡터로 지정되는 영역과 상기 각 셈플링 서브 블록의 유사도를 산 출하는 단계; 및 상기 다수개의 셈플링 서브 블록에 각각에 대하여 각 움직임 벡터에 대한 상기 유사도들을 취합하여 상기 입력 받은 영상 데이터에 대한 움직임 벡터를 결정하는 단계를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a motion estimation method, comprising: generating a sampling block by sampling image data in a predetermined block unit; Dividing the sampling block into a plurality of sampling subblocks; Calculating a similarity degree between an area designated by each motion vector and each sampling subblock with respect to a specific reference block from the outside; And determining the motion vector for the received image data by combining the similarities for each motion vector with respect to each of the plurality of sampling subblocks.

H.264표준에서는 다양한 모양의 부블록들로 나누어 부호화 함으로써 우수한 성능 및 압축 효율을 얻을 수 있었으나 이러한 특징은 계산량의 증가를 가져온다. 본 발명에서는 화질의 저하를 최소화 하면서 하드웨어로 구현시 하드웨어 복잡도를 최소화 하는 움직임 추정 알고리즘 및 최적의 부블럭 분할 기법을 제안하였다. In the H.264 standard, excellent performance and compression efficiency can be obtained by dividing the subblocks into various shapes, but this feature increases the computational complexity. In the present invention, a motion estimation algorithm and an optimal sub-block partitioning method are proposed to minimize hardware complexity when implementing the hardware while minimizing degradation of image quality.

이하, 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention.

(실시예)(Example)

도 1은 일반적인 동영상 부호화 장치의 블록도를 도시한다. 도 1을 참조하면, 동영상 부호화 장치는 트랜스폼/퀀타이져(Transform/Quantizer)(110), 디퀀타이져/역트랜스폼(Dequantizer/Inverse transform)(131), 디블록킹(Deblocking) 필터(133), 픽쳐 재현부(135), 움직임 보상 예측부(Motion compensated predictor)(137), 인트라(Intra) 예측부(139), 움직임 추정 장치(Motion estimator)(100), 감산부(170) 및 엔트로피(Entropy) 코딩부(190)를 포함한다. 1 is a block diagram of a general video encoding apparatus. Referring to FIG. 1, a video encoding apparatus may include a transform / quantizer 110, a dequantizer / inverse transform 131, and a deblocking filter 133. ), Picture reproduction unit 135, motion compensated predictor 137, intra predictor 139, motion estimator 100, subtractor 170, and entropy Entropy) coding unit 190 is included.

16x16 화소로 이루어진 매크로 블록 단위로 영상 데이터가 동영상 부호화 장치로 입력된다. 트랜스폼/퀀타이져(110)는 입력 매크로 블록을 소정 방식에 따라 변환한 후 양자화한다. 대표적인 영상 변환 기법으로는 DCT(Discrete Cosing Transform)이 있다.Image data is input to a video encoding apparatus in units of macroblocks of 16x16 pixels. The transform / quantizer 110 converts the input macroblocks according to a predetermined method and then quantizes them. A representative image transformation technique is DCT (Discrete Cosing Transform).

디퀀타이져/역트랜스폼(131)는 트랜스폼/퀀타이져(110)로부터 변환 후 양자화된 영상 데이터를 입력받아 역양자화 및 역변환한다. 디블록킹 필터(133)는 디퀀타이져/역트랜스폼(131)로부터 역양자화 및 역변환된 영상 데이터를 입력받아 블록킹(blocking) 효과를 제거하기 위한 필터링을 수행한다.The dequantizer / inverse transform 131 receives inverse quantized image data after transformation from the transform / quantizer 110 and inverse quantizes and inverse transforms. The deblocking filter 133 receives inverse quantized and inversely transformed image data from the dequantizer / inverse transform 131 and performs filtering to remove a blocking effect.

픽쳐 재현부(135)는 필터링된 영상 데이터를 디블록킹 필터(133)로부터 입력받아 픽쳐(picture) 단위로 영상을 재현하여 저장한다. 픽쳐는 프레임 단위의 영상이거나 필드 단위의 영상이다. 픽쳐 재현부(135)는 다수의 픽쳐를 저장할 수 있는 버퍼(도시되지 않음)를 구비한다. 버퍼에 저장된 다수의 픽쳐는 움직임 추정을 위해 제공되는 픽쳐로서 이하에서는 참조 픽쳐라 한다.The picture reproducing unit 135 receives the filtered image data from the deblocking filter 133 and reproduces and stores the image in picture units. The picture is an image in a frame unit or an image in a field unit. The picture reproducing unit 135 includes a buffer (not shown) capable of storing a plurality of pictures. The plurality of pictures stored in the buffer are pictures provided for motion estimation, hereinafter referred to as reference pictures.

움직임 추정 장치(100)는 픽쳐 재현부(135)에 저장된 적어도 하나의 참조 픽쳐를 제공받아 본 발명에 따라 입력 매크로 블록의 움직임 추정을 수행하여 모션 벡터, 참조 픽쳐를 나타내는 인덱스 및 블록 모드를 포함한 모션 데이터를 출력한다.The motion estimation apparatus 100 receives at least one reference picture stored in the picture reproducing unit 135 and performs motion estimation of an input macro block according to the present invention to perform motion data including a motion vector, an index indicating a reference picture, and a block mode. Outputs

움직임 보상 예측부(137)는 움직임 추정 장치(150)로부터 입력된 모션 데이터에 따라, 픽쳐 재현부(135)에 저장된 다수의 참조 픽쳐들 중 움직임 추정에 이용된 참조 픽쳐로부터, 입력 매크로 블록에 대응하는 매크로 블록을 추출하여 출력한 다.The motion compensation predictor 137 corresponds to an input macro block from a reference picture used for motion estimation among a plurality of reference pictures stored in the picture reproducing unit 135 according to the motion data input from the motion estimation device 150. Extract and output the macro block.

감산부(170)는 입력 매크로 블록을 픽쳐간 예측 부호화하는 경우, 움직임 보상 예측부(137)로부터 입력 매크로 블록에 대응하는 참조 픽쳐 내의 매크로 블록을 입력받아 입력 매크로 블록과의 차분 연산을 수행하여 잔차 신호(residue signal)를 출력한다.The subtractor 170 receives the macroblock in the reference picture corresponding to the input macroblock from the motion compensation predictor 137 and performs a difference operation with the input macroblock when the input macroblock is predictively encoded between the pictures. Output a signal.

감산부(170)로부터 출력된 잔차 신호는 다시 트랜스폼/퀀타이져(110)에 의해 변환 및 양자화되고, 엔트로피 코딩부(190)에 의해 엔트로피 부호화되어 출력 비트 스트림이 생성된다. 인트라 예측부(139)는 참조 픽쳐를 이용하여 픽쳐간 예측 부호화가 아닌 픽쳐내 예측 부호화를 수행한다.The residual signal output from the subtractor 170 is transformed and quantized by the transform / quantizer 110 and entropy coded by the entropy coding unit 190 to generate an output bit stream. The intra prediction unit 139 performs intra picture prediction coding, not inter picture prediction coding, using the reference picture.

한편, 전술한 동영상 부호화 장치에 의해 생성된 비트 스트림을 복호화하는 동영상 복호부(decoder)(130)는 디퀀타이져/역트랜스폼(131), 디블록킹 필터(133), 픽쳐 재현부(135), 움직임 보상 예측부(137) 및 인트라 예측부(139)를 포함한다.On the other hand, the video decoder 130 for decoding the bit stream generated by the video encoding apparatus described above is a dequantizer / inverse transform 131, the deblocking filter 133, the picture reproduction unit 135, The motion compensation predictor 137 and the intra predictor 139 are included.

본 발명은 도 1의 구성들 중 움직임 추정 장치(100)에 대한 개선 기술을 제공하기 위한 것으로, 도 1의 동영상 부호화 뿐만 아니라 움직임 추정 장치가 필요한 다른 구조의 동영상 부호화 장치에도 적용될 수 있다.The present invention is to provide an improvement technique for the motion estimation apparatus 100 among the components of FIG. 1, and may be applied to a video encoding apparatus having another structure requiring a motion estimation apparatus as well as the video encoding of FIG. 1.

본 발명의 일실시예에 따른 움직임 추정 장치는, 도 2에 도시한 바와 같이, 블록 단위 영상 데이터에 대한 셈플링을 수행하여 셈플링 블록을 생성하기 위한 셈플링부(102); 상기 셈플링부에서 셈플링된 데이터를 저장하기 위한 셈플링 메모리(103); 상기 셈플링된 데이터를 셈플링 서브 블록으로 분할하고, 움직임 추정 연산을 위한 어드레스를 생성하기 위한 블록 분할/어드레스 생성부(104); 각 서브블록 단위로 추정 함수를 이용하여 움직임을 연산하기 위한 움직임 연산부(105); 및 동영상 압축에 최적의 블록 그룹핑 모드를 결정하기 위한 최적 모드 결정부(106)로 이루어진다.According to an embodiment of the present invention, a motion estimation apparatus includes a sampling unit 102 for generating a sampling block by performing sampling on block unit image data; A sampling memory (103) for storing the data sampled by the sampling section; A block division / address generation unit (104) for dividing the sampled data into a sampling subblock and generating an address for a motion estimation operation; A motion calculator 105 for calculating a motion by using an estimation function in each subblock unit; And an optimal mode determiner 106 for determining an optimal block grouping mode for moving picture compression.

상기 셈플링부(102)에서는 16x16 단위의 영상 데이터를 가로축 및 세로축에 대하여 2:1 셈플링하여 8x8 단위의 셈플링 블록을 생성한다. 즉, 셈플링부(102)는 다양한 블록모드의 복잡도를 연산량을 감소하기 위하여 도 3에 도시한 바와 같이 원영상을 2:1 샘플링을 하여 1/4로 데이터를 줄인 후 이를 상기 셈플링 메모리(103)에 저장한다. 따라서, 상기 셈플링 메모리(103)는 종래 기술에 따른 움직임 추정 장치의 입력 블록을 저장하는 메모리에 비하여 그 크기가 1/4로 줄어든 것을 알 수 있다.The sampling unit 102 generates a 8x8 sampling block by 2: 1 sampling 16x16 image data on a horizontal axis and a vertical axis. That is, the sampling unit 102 reduces the data to 1/4 by performing a 2: 1 sampling of the original image, as shown in FIG. 3, in order to reduce the computational complexity of the various block modes. ). Accordingly, it can be seen that the sampling memory 103 is reduced to 1/4 in size compared with a memory for storing an input block of a motion estimation apparatus according to the prior art.

상기 블록분할/어드레스 생성부(104)는 상기 8x8 단위의 셈플링 블록을 4개의 4x4 단위의 셈플링 서브 블록으로 분할한다. 이때, 상기 4x4 단위의 셈플링 서브 블록을 이루는 각 픽셀들은 2:1 셈플링된 것들이므로, 원래의 영상 데이터의 8x8 모드의 데이터에 대응한다. 또한, 상기 블록분할/어드레스 생성부(104)는 압축 모드에 따라 움직임 벡터로 주어지는 참조 블록에서의 픽셀 리딩 위치를 지정한다. The block division / address generating unit 104 divides the 8x8 unit sampling block into four 4x4 unit sampling subblocks. In this case, since each pixel of the 4x4-sampling subblock is 2: 1 sampled, the pixels correspond to 8x8 mode data of the original image data. In addition, the block division / address generator 104 designates a pixel reading position in a reference block given as a motion vector according to the compression mode.

상기 움직임 연산부(105)는 분할된 4x4 단위의 셈플링 서브 블록과 참조 블록에 대한 SAD 연산을 수행한다. 경우에 따라서는 SSD 연산을 수행하도록 구현할 수도 있다.The motion calculator 105 performs SAD operation on the divided 4x4 unit of the sampling subblock and the reference block. In some cases, an SSD operation may be implemented.

상기 최적 모드 결정부(106)는 압축 모드가 H.264인 경우, H.264 표준이 규 정하는 4개의 블록 그룹핑 모드 중 하나를 선택하기 위한 것으로, H.264 표준 모드를 지원하지 않는 장치의 경우에는 생략할 수도 있다.The optimal mode determiner 106 selects one of four block grouping modes defined by the H.264 standard when the compression mode is H.264, and the device does not support the H.264 standard mode. May be omitted.

이하, 도시한 움직임 추정 장치에서 수행되는 움직임 추정 방법에 대하여 설명하겠다.Hereinafter, a motion estimation method performed in the illustrated motion estimation apparatus will be described.

도 6에 도시한 바와 같은 움직임 추정 방법은, 소정 블록 단위의 영상 데이터를 셈플링하여 셈플링 블록을 생성하는 단계(S100); 상기 셈플링 블록을 다수개의 셈플링 서브 블록으로 분할하는 단계(S120); 외부에서 특정한 참조 블록에 대하여 각 움직임 벡터로 지정되는 영역과 상기 각 셈플링 서브 블록의 유사도를 산출하는 단계; 및 상기 다수개의 셈플링 서브 블록에 각각에 대하여 각 움직임 벡터에 대한 상기 유사도들을 취합하여 상기 입력 받은 영상 데이터에 대한 움직임 벡터를 결정하는 단계(S800)를 포함한다.As shown in FIG. 6, the motion estimation method includes: generating a sampling block by sampling image data in a predetermined block unit (S100); Dividing the sampling block into a plurality of sampling subblocks (S120); Calculating a similarity degree between an area designated by each motion vector and each sampling subblock with respect to a specific reference block from the outside; And determining the motion vector for the received image data by combining the similarities for each motion vector with respect to each of the plurality of sampling subblocks (S800).

도시한 움직임 추정 방법은 압축 모드를 MPEG4 포맷과 H.264 포맷을 선택적으로 적용할 수 있도록 구현한 것이다. 따라서, 도시한 상기 각 셈플링 서브 블록의 유사도를 산출하는 단계는, 압축 모드 설정을 판단하는 단계(S140); MPEG4 포맷에서의 유사도 산출 단계(S200); 및 H.264 포맷에서의 유사도 산출 단계(S400)로 이루어진다.The illustrated motion estimation method implements the compression mode to selectively apply the MPEG4 format and the H.264 format. Accordingly, the calculating of the similarity of each of the illustrated sub-blocks may include determining a compression mode setting (S140); A similarity calculation step (S200) in the MPEG4 format; And a similarity calculating step (S400) in the H.264 format.

도면의 상기 셈플링 서브 블록의 유사도 산출 단계(S200, S400)에서는 SAD 함수를 실행시키는 것으로 도시되었지만, 구현에 따라서는 SSD 함수가 실행될 수도 있다.Although similarity calculating steps S200 and S400 of the sampling sub-blocks in the figure are illustrated as executing the SAD function, the SSD function may be executed depending on the implementation.

본 실시예의 움직임 추정 장치는 16x16 단위의 영상 데이터를 입력받으므로, 상기 셈플링 블록 생성 단계(100)에서는 16x16 단위의 영상 데이터를 8x8 단위로 셈플링하고, 상기 셈플링 블록 분할 단계(S120)에서는 8x8 단위 셈플링 데이터를 4개의 4x4 단위 셈플링 서브 블록으로 분할한다.Since the motion estimation apparatus of the present embodiment receives image data of 16 × 16 units, the sampling block generation step 100 samples 16 × 16 unit image data by 8 × 8 units, and in the sampling block division step S120. The 8x8 unit sampling data is divided into four 4x4 unit sampling subblocks.

이제, 압축 모드가 MPEG4 포맷인 경우의 움직임 연산 단계(S200)에 대하여 도 7을 참조하여 보다 상세히 살펴보겠다.Now, the motion calculation step S200 when the compression mode is the MPEG4 format will be described in detail with reference to FIG. 7.

4개의 셈플링 서브 블록에 대하여 각각 SAD를 연산하는 프로세싱 엘리먼트를 4개를 구비하는 경우에는, 도시한 바와 같이 각 서브 블록에 대한 SAD를 계산하는 과정(S222, S224, S226, S228)이 동시에 병렬적으로 수행된다. When four processing elements for calculating SADs for each of four sampling subblocks are provided, the processes of calculating SADs for each subblock (S222, S224, S226, and S228) are simultaneously parallel as shown. Is performed as

MPEG4 모드의 경우 16x16 단위의 영상 데이터에 대하여 SAD를 계산하도록 되어 있으므로, 도 7의 경우 비록 4개의 8x8 영상 데이터에 대하여 각각 SAD를 계산하지만, 이는 4개의 프로세싱 엘리먼트를 이용한 병렬 처리를 위한 것으로 실질적으로는 16x16 단위의 영상 데이터에 대하여 SAD의 계산과 동일하도록 참조 블록의 어드레스가 정해진다.In the case of MPEG4 mode, since SAD is calculated for 16x16 image data, in FIG. 7, although SAD is calculated for four 8x8 image data, this is for parallel processing using four processing elements. The reference block is addressed so as to be equal to the calculation of SAD with respect to the image data of 16 × 16 units.

즉, S210 단계 또는 S280 단계에 따라 움직임 벡터가 정해지면, 어드레스 생성부는 정해진 움직임 벡터에 따라 셈플링 서브 블록의 각 픽셀에 대응하는 참조 블록의 픽섹의 어드레스를 산출하고, 각 프로세싱 엘리먼트는 대응되는 각 픽셀을 사용하여 SAD 연산을 수행한다.That is, when the motion vector is determined according to the step S210 or the step S280, the address generator calculates the address of the pixel of the reference block corresponding to each pixel of the sampling subblock according to the determined motion vector, and each processing element corresponds to the corresponding angle. Perform SAD operations using pixels.

따라서, 일단 움직임 벡터가 설정되는 설정된 움직임 벡터에 대한 SAD 계산 이 4번 수행되고, 도시한 움직임 벡터 결정 단계(S800)는, 하나의 움직임 벡터에 대하여 상기 4개의 셈플링 서브 블록에 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택한다.Therefore, once the SAD calculation is performed four times for the set motion vector in which the motion vector is set, the step S800 of determining the motion vector illustrated in FIG. A summation process is performed on all motion vectors to select a motion vector having the highest similarity.

이제, 압축 모드가 H.264 포맷인 경우의 움직임 연산 단계(S400)에 대하여 도 8을 참조하여 보다 상세히 살펴보겠다.Now, the motion calculation step (S400) when the compression mode is the H.264 format will be described in more detail with reference to FIG. 8.

H.264 모드에서는 16x16, 16x8, 8x16, 8x8로 정의되는 4개의 블록 그룹핑 모드가 존재하며, 입력 영상 데이터에 대하여 모든 블록 그룹핑 모드에 대한 SAD 연산을 수행하고 그 중 가장 효율이 높은 블록 그룹핑 모드를 선택하게 된다.In the H.264 mode, there are four block grouping modes defined as 16x16, 16x8, 8x16, and 8x8.SAD operation is performed on all block grouping modes on the input image data, and the most efficient block grouping mode is selected. Will be chosen.

4개의 셈플링 서브 블록에 대하여 각각 SAD를 연산하는 프로세싱 엘리먼트를 4개를 구비하는 경우에는, 도시한 바와 같이 각 서브 블록에 대한 SAD를 계산하는 과정(S422, S424, S426, S228)이 동시에 병렬적으로 수행되며, 상기 4개의 SAD 연산 결과로부터 4개의 블록 그룹핑 모드에 따른 SAD 취합 과정(S432, S434, S436, S438)이 동시에 병렬적으로 수행된다.When four processing elements for calculating SADs for each of four sampling subblocks are provided, the processes of calculating SADs for each subblock (S422, S424, S426, and S228) are parallel at the same time. The SAD aggregation process (S432, S434, S436, S438) according to the four block grouping modes is simultaneously performed in parallel from the four SAD calculation results.

도 6의 움직임 벡터 결정 단계(S400)는, 16x16 모드에서의 유사도를 계산하는 16x16 단계; 16x8 모드에서의 유사도를 계산하는 16x8 단계; 8x16 모드에서의 유사도를 계산하는 8x16 단계; 및 8x8 모드에서의 유사도를 계산하는 8x8 단계를 포함할 수 있다. 여기서 도 8에 도시한 바와 같이, 상기 16x16 단계는 각 셈플링 서브 블록들에 대한 SAD 계산 과정(S422, S424, S426, S228) 및 16x16 모드에서의 SAD 취합 과정(S432)으로 이루어지며, 상기 16x8 단계는 각 셈플링 서브 블록들에 대한 SAD 계산 과정(S422, S424, S426, S228) 및 16x8 모드에서의 SAD 취합 과정(S434)으로 이루어지며, 상기 8x16 단계는 각 셈플링 서브 블록들에 대한 SAD 계산 과정(S422, S424, S426, S228) 및 8x16 모드에서의 SAD 취합 과정(S436)으로 이루어지며, 상기 8x8 단계는 각 셈플링 서브 블록들에 대한 SAD 계산 과정(S422, S424, S426, S228) 및 8x8 모드에서의 SAD 취합 과정(S438)으로 이루어진다.The motion vector determining step S400 of FIG. 6 includes: a 16x16 step of calculating the similarity in the 16x16 mode; A 16x8 step of calculating the similarity in the 16x8 mode; An 8x16 step of calculating the similarity in the 8x16 mode; And an 8x8 step of calculating the similarity in the 8x8 mode. As shown in FIG. 8, the 16x16 step includes a SAD calculation process (S422, S424, S426, S228) for each of the sampling subblocks, and an SAD aggregation process (S432) in the 16x16 mode. The step consists of the SAD calculation process (S422, S424, S426, S228) for each of the sampling sub-blocks and the SAD aggregation process (S434) in the 16x8 mode, wherein the 8x16 step is SAD for each of the sampling sub-blocks. Computation process (S422, S424, S426, S228) and SAD aggregation process (S436) in the 8x16 mode, the 8x8 step is SAD calculation process for each of the sampling sub-blocks (S422, S424, S426, S228) And an SAD aggregation process (S438) in the 8x8 mode.

16x16 단계에서는, 하나의 움직임 벡터에 대하여 상기 4개의 셈플링 서브 블록 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하는 과정을 수행하며 MPEG4 포맷의 경우와 거의 유사함을 알 수 있다.In step 16x16, the similarity of each of the four sampling subblocks is summed with respect to one motion vector for all motion vectors, and the motion vector having the largest similarity is selected. It is almost similar.

상기 16x8 단계에서는, 상기 4개의 셈플링 서브 블록들을 16x8 모드를 위한 2개의 집합으로 구분하고, 하나의 움직임 벡터에 대하여 제1 집합에 속하는 2개의 셈플링 서브 블록 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하고, 하나의 움직임 벡터에 대하여 제2 집합에 속하는 2개의 셈플링 서브 블록 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하고, 상기 선택된 2 움직임 벡터들에 대한 유사도들을 합산하는 과정을 수행한다.In the 16x8 step, the four sampling subblocks are divided into two sets for the 16x8 mode, and the similarity of each of the two sampling subblocks belonging to the first set is summed for one motion vector. A motion vector having the highest similarity is selected by performing the motion vector, and the similarity of each of the two sampling subblocks belonging to the second set with respect to one motion vector is added to all motion vectors. Selects a large motion vector and adds similarities for the selected two motion vectors.

상기 8x16 단계에서는, 상기 4개의 셈플링 서브 블록들을 8x16 모드를 위한 2개의 집합으로 구분하고, 하나의 움직임 벡터에 대하여 제1 집합에 속하는 2개의 셈플링 서브 블록 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하고, 하나의 움직임 벡터에 대하 여 제2 집합에 속하는 2개의 셈플링 서브 블록 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하고, 상기 선택된 2 움직임 벡터들에 대한 유사도들을 합산하는 과정을 수행한다.In step 8x16, the four sampling subblocks are divided into two sets for the 8x16 mode, and the similarities of the two sampling subblocks belonging to the first set are summed with respect to one motion vector. A motion vector having the most similarity is selected by performing the motion vector, and the similarity of each of the two sampling subblocks belonging to the second set is summed for all the motion vectors. A process of selecting a motion vector having a high similarity and summing similarities for the selected two motion vectors is performed.

상기 8x8 단계에서는, 하나의 움직임 벡터에 대하여 하나의 셈플링 서브 블록의 유사도들 구하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하는 작업을 각 셈플링 서브 블록에 대하여 수행하고, 각 셈플링 서브 블록에 대해 선택된 움직임 벡터들에 대한 유사도들을 합산하는 과정을 수행한다. In step 8x8, a process of obtaining similarities of one sampling subblock with respect to one motion vector is performed for all motion vectors, and a motion vector having the largest similarity is selected for each sampling subblock. Next, the similarity of the selected motion vectors for each sampling subblock is added.

H.264 포맷의 경우 도 6의 움직임 벡터 결정 단계(S800)는, MPEG4 포맷의 경우에는 블록 그룹핑 모드에 따라 다른 방식으로 4개의 서브 블록에 대한 SAD 계산(S422, S424, S426, S228) 결과를 취합하게 된다.In the case of the H.264 format, the step of determining the motion vector of FIG. 6 (S800) determines the results of SAD calculation (S422, S424, S426, S228) for four sub-blocks in a different manner according to the block grouping mode in the MPEG4 format. Will be collected.

도 8의 경우 각 셈플링 서브 블록에 대한 SAD를 계산하기 위해 설정된 움직임 벡터에 대한 참조 블록의 어드레싱은, 모든 셈플링 서브 블록에 대하여 전체 참조 블록에 대하여 이루어지므로, S410 단계 및 S480 단계에서 이루어지는 움직임 벡터 설정은 MPEG4의 경우보다 넓은 폭으로 이루어지며, S432, S434 및 S436 단계에서 취합하지 않고 스킵(skip)하는 움직임 벡터 설정값이 있을 수 있다. In the case of FIG. 8, since the addressing of the reference block for the motion vector set to calculate the SAD for each sampling subblock is performed for all the reference blocks for all the sampling subblocks, the movements made in steps S410 and S480 are performed. The vector setting has a wider width than that of MPEG4, and there may be a motion vector setting value that is skipped without being collected in steps S432, S434, and S436.

도 9a 및 9b는 SAD연산을 수행하는 프로세싱 엘리먼트들의 구성을 나타낸 것이다. 도 9a에 도시한 프로세싱 구조는 하나의 셈플링 서브 블록에 대한 SAD 연산을 수행하는 구조만을 도시한 것인데, 본 실시예에서는 8x8 분할 원영상을 2:1 셈 플링한 4x4 크기의 셈플링 서브 블록에 대하여 SAD 연산을 수행하므로 4개의 프로세싱 엘리먼트(200, 201, 202, 203) 및 하나의 합산기/비교기(300)로 구현된다. 9A and 9B show a configuration of processing elements for performing SAD operation. The processing structure shown in FIG. 9A illustrates only a structure for performing SAD operations on one sampling sub-block. In this embodiment, a 4x4-sampling sub-block in which the 8 × 8 split original image is 2: 1 sampled The SAD operation is performed on the four processing elements 200, 201, 202, and 203 and one summer / comparator 300.

도 1의 움직임 연산부(105)는 도 9a의 프로세싱 구조 하나만을 포함할 수도 있지만, 보다 속도를 높이기 위해 분할된 각 셈플링 서브 블록에 대한 SAD를 계산하기 위한 도 9a의 프로세싱 구조를 하나씩 모두 4개를 구비하여, 동시에 4개의 셈플링 서브 블록에 대한 SAD를 계산하도록 구현할 수도 있다.Although the motion calculating unit 105 of FIG. 1 may include only one processing structure of FIG. 9A, all four processing structures of FIG. 9A, one for calculating SAD for each divided sub-block, are added to increase the speed. It may be implemented to calculate the SAD for the four sampling sub-blocks at the same time.

도 9b는 하나의 프로세싱 엘리먼트(201)의 세부 구조를 도시한 것으로, 도시한 구조는 SAD 연산을 위해 현재 화면 프레임 이전의 프레임 2개를 비교대상으로 삼고 있으며, 보다 연산 속도를 높이기 위해, 짝수번과 홀수번의 두 비교대상 프레임에 대한 SAD 연산을 동시에 수행한다. FIG. 9B illustrates a detailed structure of one processing element 201. The illustrated structure uses two frames before the current screen frame as a comparison target for SAD operation. SAD operations are performed on two frames of comparison and odd number of frames simultaneously.

구체적으로, R은 현재데이터 입력이며, S0와 S1은 이전프레임데이터의 입력이며 입력은 홀수번과 짝수번이 교대로 입력을 한다. 프로세싱 엘리먼트의 입력을 2개를 사용하여 홀수번과 짝수번을 교대로 입력하여 입력되는 데이터의 속도보다 내부에서 프로세싱되는 속도를 2배로 처리하는 구조를 가지며 초기값을 셋팅하는 시간을 제외한 나머지 시간에서는 프로세싱의 효율은 100%를 가지는 특징이 있다. Specifically, R is the current data input, S0 and S1 are the input of the previous frame data, and the input is an odd number and even number input alternately. Using the input of two processing elements, odd and even numbers are alternately inputted so that the internal processing speed is doubled than the speed of the input data.The rest of the time except for setting the initial value The efficiency of the processing is characterized by having 100%.

또한, SAD을 구하기 위하여 4개의 프르세싱 엘리먼트를 사용하여 SAD를 구한다. Psum_in은 중간의 임시 SAD를 저장하는 값으로 PE_0, PE_1, PE_3의 중간 SAD값을 저장하여 현재의 값과 누적을 하여 SAD를 연산을 한다.In addition, the SAD is obtained by using four processing elements to obtain the SAD. Psum_in is a value that stores an intermediate temporary SAD, and stores an intermediate SAD value of PE_0, PE_1, and PE_3, and accumulates the current value to calculate SAD.

살펴본 바와 같이 본 실시예에 따라 제안된 움직임 추정 장치 및 방법은 4개 의 셈플링 서브 블록에 대한 SAD(Sum Absoluted Difference)값을 동시에 계산을 하여 모드에 따라서 최적의 조건을 선택하므로 연산시간을 단축시킬 수 있으며, 입력되는 영상도 2:1 샘플링 방법을 이용하여 연산량 및 메모리 소요량을 1/4 이하로 줄일 수 있음을 알 수 있다. As described above, the proposed motion estimation apparatus and method simultaneously calculates SAD (Sum Absoluted Difference) values for four sampling subblocks and selects an optimal condition according to a mode, thereby reducing computation time. It can be seen that the amount of computation and memory requirements can be reduced to less than 1/4 using the 2: 1 sampling method.

이상, 본 발명을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명은 상기 실시예에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형이 가능하다.The present invention has been described in detail with reference to preferred embodiments, but the present invention is not limited to the above embodiments, and various modifications can be made by those skilled in the art within the scope of the technical idea of the present invention. Do.

상기 구성의 본 발명에 따른 움직임 추정 장치 및 움직임 추정 방법을 실시함에 의해, 하드웨어 코스트 및/또는 연산량을 줄일 수 있는 효과가 있다.By implementing the motion estimation apparatus and the motion estimation method according to the present invention of the above configuration, it is possible to reduce the hardware cost and / or calculation amount.

즉, 본 발명은 블록분할을 이용하여 프로세싱 엘리먼트를 4개만 사용 하여 각각의 부블럭에 대한 SAD를 연산함에 따라, 움직임 벡터를 계산하는 알고리즘 및 구조를 제안하였으며 구현된 알고리즘 및 구조는 하드웨어 비용이 기존의 방법보다 1/4이하로 줄어드는 효과가 있다. That is, the present invention proposes an algorithm and a structure for calculating a motion vector by calculating the SAD for each subblock using only four processing elements using block partitioning. Less than 1/4 of the method is effective.

나아가, 본 발명은 4개의 프로세싱 엘리먼트를 가지고 각각의 모드에 대해서 연산을 수행하므로 적은 하드웨어 코스트를 가지고 H.264 움직임 추정을 구현하였으며 이는 저전력이 필요한 휴대멀티미디어 단말기등에 핵심 코아로 사용될 수 있는 효과도 있다.Furthermore, the present invention implements H.264 motion estimation with low hardware cost because it performs calculation for each mode with four processing elements, which can be used as a core core for portable multimedia terminals requiring low power. .

또한, 본 발명은 분할된 셈플링 서브 블록에 대한 SAD연산을 동시에 수행하 여 연산시간을 단축시킬 수 있는 효과도 있다.In addition, the present invention has the effect that the operation time can be shortened by simultaneously performing the SAD operation on the divided sampling sub-blocks.

Claims (16)

블록 단위 영상 데이터에 대한 셈플링을 수행하여 셈플링 블록을 생성하기 위한 셈플링부;A sampling unit for generating a sampling block by performing sampling on the block unit image data; 상기 셈플링된 데이터를 셈플링 서브 블록으로 분할하고, 움직임 추정 연산을 위한 어드레스를 생성하기 위한 블록 분할/어드레스 생성부; 및A block division / address generator for dividing the sampled data into a sampling subblock and generating an address for a motion estimation operation; And 각 서브 블록 단위로 움직임 추정 함수를 이용하여 움직임을 연산하기 위한 움직임 연산부Motion calculator for calculating motion by using motion estimation function for each sub block 를 포함하는 움직임 추정 장치.Motion estimation apparatus comprising a. 제1항에 있어서, The method of claim 1, 상기 셈플링부에서 셈플링된 데이터를 저장하기 위한 셈플링 메모리를 더 포함하는 움직임 추정 장치.And a sampling memory for storing the data sampled by the sampling unit. 제1항에 있어서, The method of claim 1, 동영상 압축에 최적의 블록 그룹핑 모드를 결정하기 위한 최적 모드 결정부Optimal Mode Determination Unit for Determining the Best Block Grouping Mode for Video Compression 를 더 포함하는 움직임 추정 장치.Motion estimation device further comprising. 제1항에 있어서, The method of claim 1, 상기 셈플링부는 16x16 단위의 영상 데이터를 8x8 단위의 셈플링 블록으로 셈플링하고,The sampling unit samples 16x16 image data into 8x8 sampling blocks. 상기 블록 분할/어드레스 생성부는 상기 8x8 단위의 셈플링 블록을 4x4 단위의 셈플링 서브 블록 4개로 분할하는 것을 특징으로 하는 움직임 추정 장치.And the block division / address generator divides the 8x8 sampling block into four sampling subblocks of 4x4. 제1항에 있어서, 상기 움직임 추정 함수는,The method of claim 1, wherein the motion estimation function, SAD 함수, SATD 함수 및 SSD 함수 중 어느 하나인 것을 특징으로 하는 움직임 추정 장치. Motion estimation apparatus, characterized in that any one of the SAD function, SATD function and SSD function. 제1항에 있어서, 상기 움직임 연산부는,The method of claim 1, wherein the motion calculator, 각 셈플링 서브 블록 데이터와 움직임 추정을 위한 참조 영상 데이터의 유사도을 계산하기 위한 4개의 프로세싱 구조를 포함하는 것을 특징으로 하는 움직임 추정 장치.And four processing structures for calculating the similarity between the respective sampling sub-block data and the reference image data for motion estimation. 제1항에 있어서, 상기 움직임 연산부는,The method of claim 1, wherein the motion calculator, 하나의 움직임 벡터에 대하여 상기 4개의 셈플링 서브 블록에 각각의 유사도들을 합산하여 가장 유사도가 큰 움직임 벡터를 선택하는 것을 특징으로 하는 움직임 추정 장치.And a motion vector having the highest similarity is selected by adding the similarities to the four sampling subblocks with respect to one motion vector. 제1항에 있어서, 상기 움직임 연산부는,The method of claim 1, wherein the motion calculator, 16x16 모드에서의 유사도를 계산하는 16x16 단계;A 16x16 step of calculating the similarity in the 16x16 mode; 16x8 모드에서의 유사도를 계산하는 16x8 단계;A 16x8 step of calculating the similarity in the 16x8 mode; 8x16 모드에서의 유사도를 계산하는 8x16 단계;An 8x16 step of calculating the similarity in the 8x16 mode; 8x8 모드에서의 유사도를 계산하는 8x8 단계; 및An 8x8 step of calculating the similarity in the 8x8 mode; And 상기 4 유사도 계산 단계의 결과에 따라, 최적의 모드를 결정하는 단계Determining an optimal mode according to the result of the four similarity calculation steps 를 수행하는 것을 특징으로 하는 움직임 추정 장치.Motion estimation apparatus, characterized in that for performing. 제1항에 있어서, 상기 움직임 연산부는,The method of claim 1, wherein the motion calculator, 설정된 모드가 MPEG4 모드인지 H.264 모드인지를 판단하여, Determines whether the set mode is MPEG4 mode or H.264 mode, MPEG4 모드로 판단하면, Judging by the MPEG4 mode, 하나의 움직임 벡터에 대하여 상기 4개의 셈플링 서브 블록 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하는 단계를 수행하며,Performing a process of summing similarities of each of the four sampling subblocks with respect to one motion vector for all motion vectors to select a motion vector having the highest similarity, H.264 모드로 판단하면,Judging by the H.264 mode, 16x16 모드에서의 유사도를 계산하는 16x16 단계;A 16x16 step of calculating the similarity in the 16x16 mode; 16x8 모드에서의 유사도를 계산하는 16x8 단계;A 16x8 step of calculating the similarity in the 16x8 mode; 8x16 모드에서의 유사도를 계산하는 8x16 단계;An 8x16 step of calculating the similarity in the 8x16 mode; 8x8 모드에서의 유사도를 계산하는 8x8 단계; 및An 8x8 step of calculating the similarity in the 8x8 mode; And 상기 4 유사도 계산 단계의 결과에 따라, 최적의 모드를 결정하는 단계Determining an optimal mode according to the result of the four similarity calculation steps 를 수행하는 것을 특징으로 하는 움직임 추정 장치.Motion estimation apparatus, characterized in that for performing. 소정 블록 단위의 영상 데이터를 셈플링하여 셈플링 블록을 생성하는 단계;Generating a sampling block by sampling image data in a predetermined block unit; 상기 셈플링 블록을 다수개의 셈플링 서브 블록으로 분할하는 단계; Dividing the sampling block into a plurality of sampling subblocks; 외부의 특정한 참조 블록에 대하여 각 움직임 벡터로 지정되는 영역과 상기 각 셈플링 서브 블록의 유사도을 산출하는 단계; 및Calculating a similarity degree between an area designated by each motion vector and each sampling subblock with respect to an external specific reference block; And 상기 다수개의 셈플링 서브 블록에 각각에 대하여 각 움직임 벡터에 대한 상기 유사도들을 취합하여 상기 입력 받은 영상 데이터에 대한 움직임 벡터를 결정하는 단계Determining the motion vector for the received image data by combining the similarities for each motion vector with respect to each of the plurality of sampling subblocks. 를 포함하는 움직임 추정 방법.Motion estimation method comprising a. 제10항에 있어서, The method of claim 10, 상기 셈플링 블록 생성 단계에서는 16x16 단위의 영상 데이터를 8x8 단위로 셈플링하고,In the generating of the sampling block, 16x16 image data is sampled in 8x8 units. 상기 셈플링 블록 분할 단계에서는 8x8 단위 셈플링 데이터를 4개의 4x4 단위 셈플링 서브 블록으로 분할하는 것을 특징으로 하는 움직임 추정 방법.In the step of partitioning the sampling block, the 8x8 unit sampling data is divided into four 4x4 unit sampling subblocks. 제10항에 있어서,The method of claim 10, 상기 셈플링 서브 블록의 유사도 산출 단계에서는 SAD 함수 또는 SSD 함수가 실행되는 것을 특징으로 하는 움직임 추정 방법.And a SAD function or an SSD function are executed in the similarity calculation step of the sampling sub-block. 제11항에 있어서, 상기 움직임 벡터 결정 단계는,The method of claim 11, wherein the determining of the motion vector comprises: 하나의 움직임 벡터에 대하여 상기 4개의 셈플링 서브 블록에 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하는 것을 특징으로 하는 움직임 추정 방법.A method of estimating a motion vector having the highest similarity is performed by performing a process of adding similarities to the four sampling sub-blocks for one motion vector for all motion vectors. 제11항에 있어서, 상기 움직임 벡터 결정 단계는,The method of claim 11, wherein the determining of the motion vector comprises: 16x16 모드에서의 유사도를 계산하는 16x16 단계;A 16x16 step of calculating the similarity in the 16x16 mode; 16x8 모드에서의 유사도를 계산하는 16x8 단계;A 16x8 step of calculating the similarity in the 16x8 mode; 8x16 모드에서의 유사도를 계산하는 8x16 단계;An 8x16 step of calculating the similarity in the 8x16 mode; 8x8 모드에서의 유사도를 계산하는 8x8 단계; 및An 8x8 step of calculating the similarity in the 8x8 mode; And 상기 4 유사도 계산 단계의 결과에 따라, 최적의 모드를 결정하는 단계Determining an optimal mode according to the result of the four similarity calculation steps 를 포함하는 것을 특징으로 하는 움직임 추정 방법.Motion estimation method comprising a. 제11항에 있어서, 상기 움직임 벡터 결정 단계에서는,The method of claim 11, wherein in the motion vector determination step, 설정된 모드가 MPEG4 모드인지 H.264 모드인지를 판단하여, Determines whether the set mode is MPEG4 mode or H.264 mode, MPEG4 모드로 판단하면, Judging by the MPEG4 mode, 하나의 움직임 벡터에 대하여 상기 4개의 셈플링 서브 블록 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도이 큰 움직임 벡터를 선택하는 단계를 수행하며,Performing a process of summing similarities of each of the four sampling subblocks with respect to one motion vector for all motion vectors to select a motion vector having the highest similarity, H.264 모드로 판단하면,Judging by the H.264 mode, 16x16 모드에서의 유사도를 계산하는 16x16 단계;A 16x16 step of calculating the similarity in the 16x16 mode; 16x8 모드에서의 유사도를 계산하는 16x8 단계;A 16x8 step of calculating the similarity in the 16x8 mode; 8x16 모드에서의 유사도를 계산하는 8x16 단계;An 8x16 step of calculating the similarity in the 8x16 mode; 8x8 모드에서의 유사도를 계산하는 8x8 단계; 및An 8x8 step of calculating the similarity in the 8x8 mode; And 상기 4 유사도 계산 단계의 결과에 따라, 최적의 모드를 결정하는 단계Determining an optimal mode according to the result of the four similarity calculation steps 를 수행하는 것을 특징으로 하는 움직임 추정 방법.The motion estimation method, characterized in that for performing. 제14항 또는 제15항에 있어서, The method according to claim 14 or 15, 상기 16x16 단계에서는, In the 16x16 step, 하나의 움직임 벡터에 대하여 상기 4개의 셈플링 서브 블록 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하며,Summing similarities of each of the four sampling subblocks with respect to one motion vector with respect to all motion vectors to select a motion vector having the highest similarity, 상기 16x8 단계에서는,In the 16x8 step, 상기 4개의 셈플링 서브 블록들을 16x8 모드를 위한 2개의 집합으로 구분하고, 하나의 움직임 벡터에 대하여 제1 집합에 속하는 2개의 셈플링 서브 블록 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하고, 하나의 움직임 벡터에 대하여 제2 집합에 속하는 2개의 셈플링 서브 블록 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하고, 상기 선택된 2 움직임 벡터들에 대한 유사도들을 합산하며,A process of dividing the four sampling subblocks into two sets for a 16x8 mode and summing similarities of each of the two sampling subblocks belonging to the first set with respect to one motion vector is performed for all motion vectors. A motion vector having the largest similarity is selected, and a process of summing similarities of each of two sampling subblocks belonging to the second set with respect to one motion vector is performed for all motion vectors. Select and sum similarities for the selected two motion vectors, 상기 8x16 단계에서는,In the 8x16 step, 상기 4개의 셈플링 서브 블록들을 8x16 모드를 위한 2개의 집합으로 구분하고, 하나의 움직임 벡터에 대하여 제1 집합에 속하는 2개의 셈플링 서브 블록 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하고, 하나의 움직임 벡터에 대하여 제2 집합에 속하는 2개의 셈플링 서브 블록 각각의 유사도들을 합산하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하고, 상기 선택된 2 움직임 벡터들에 대한 유사도들을 합산하며,The four sampling subblocks are divided into two sets for an 8x16 mode, and the similarity of each of the two sampling subblocks belonging to the first set with respect to one motion vector is performed for all motion vectors. A motion vector having the largest similarity is selected, and a process of summing similarities of each of two sampling subblocks belonging to the second set with respect to one motion vector is performed for all motion vectors. Select and sum similarities for the selected two motion vectors, 상기 8x8 단계에서는,In the 8x8 step, 하나의 움직임 벡터에 대하여 하나의 셈플링 서브 블록의 유사도들 구하는 과정을 모든 움직임 벡터에 대하여 수행하여 가장 유사도가 큰 움직임 벡터를 선택하는 작업을 각 셈플링 서브 블록에 대하여 수행하고, 각 셈플링 서브 블록에 대해 선택된 움직임 벡터들에 대한 유사도들을 합산하는 것을 특징으로 하는 움직임 추정 방법.A process of finding similarities of one sampling subblock with respect to one motion vector is performed for all motion vectors, and a motion vector having the largest similarity is selected for each sampling subblock, and each sampling subblock is performed. And adding similarities for the selected motion vectors for the block.
KR1020060065770A 2005-12-08 2006-07-13 Low Cost Motion Estimation Device and Motion Estimation Method KR100801974B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/545,296 US20070133689A1 (en) 2005-12-08 2006-10-10 Low-cost motion estimation apparatus and method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20050119475 2005-12-08
KR1020050119475 2005-12-08

Publications (2)

Publication Number Publication Date
KR20070061214A true KR20070061214A (en) 2007-06-13
KR100801974B1 KR100801974B1 (en) 2008-02-12

Family

ID=38357152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060065770A KR100801974B1 (en) 2005-12-08 2006-07-13 Low Cost Motion Estimation Device and Motion Estimation Method

Country Status (1)

Country Link
KR (1) KR100801974B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8139643B2 (en) 2007-12-17 2012-03-20 Electronics And Telecommunications Research Institute Motion estimation apparatus and method for moving picture coding
US8200035B2 (en) 2007-10-04 2012-06-12 Samsung Electronics Co., Ltd. Method and apparatus for correcting quantized coefficients in decoder

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4193406B2 (en) 2002-04-16 2008-12-10 三菱電機株式会社 Video data conversion apparatus and video data conversion method
KR100565066B1 (en) * 2004-02-11 2006-03-30 삼성전자주식회사 Method for interpolating frame with motion compensation by overlapped block motion estimation and frame-rate converter using thereof
KR100587562B1 (en) * 2004-04-13 2006-06-08 삼성전자주식회사 Method for motion estimation of video frame, and video encoder using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8200035B2 (en) 2007-10-04 2012-06-12 Samsung Electronics Co., Ltd. Method and apparatus for correcting quantized coefficients in decoder
US8139643B2 (en) 2007-12-17 2012-03-20 Electronics And Telecommunications Research Institute Motion estimation apparatus and method for moving picture coding

Also Published As

Publication number Publication date
KR100801974B1 (en) 2008-02-12

Similar Documents

Publication Publication Date Title
JP5081305B2 (en) Method and apparatus for interframe predictive coding
US9462272B2 (en) Intra prediction method and apparatus
KR101448440B1 (en) Speculative start point selection for motion estimation iterative search
EP2824931B1 (en) Video encoder and method for interprediction at boundaries of tiles
US20110176614A1 (en) Image processing device and method, and program
US20060120455A1 (en) Apparatus for motion estimation of video data
US20190098319A1 (en) Method and apparatus for motion compensation prediction
KR20120042910A (en) Template matching for video coding
US20120076207A1 (en) Multiple-candidate motion estimation with advanced spatial filtering of differential motion vectors
KR20050045746A (en) Method and device for motion estimation using tree-structured variable block size
JP5795525B2 (en) Image encoding method, image decoding method, image encoding device, image decoding device, image encoding program, and image decoding program
JP2009531980A (en) Method for reducing the computation of the internal prediction and mode determination process of a digital video encoder
US20190230379A1 (en) Method and device for intra-prediction
US8144766B2 (en) Simple next search position selection for motion estimation iterative search
US20070133689A1 (en) Low-cost motion estimation apparatus and method thereof
WO2011064673A1 (en) Method of and apparatus for encoding video frames, method of and apparatus for decoding video frames
JP2006025429A (en) Coding method and circuit device for executing this method
WO2004056125A1 (en) Video encoding with skipping motion estimation for selected macroblocks
US20230328280A1 (en) Method and device for intra-prediction
US7433407B2 (en) Method for hierarchical motion estimation
US20090028241A1 (en) Device and method of coding moving image and device and method of decoding moving image
JP2010258739A (en) Image processing apparatus, method and program
KR100801974B1 (en) Low Cost Motion Estimation Device and Motion Estimation Method
JP2009260421A (en) Moving image processing system, encoding device, encoding method, encoding program, decoding device, decoding method and decoding program
KR100723840B1 (en) Apparatus for motion estimation of image data

Legal Events

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

Payment date: 20110104

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20111208

Year of fee payment: 20