KR20010052624A - Motion estimation - Google Patents

Motion estimation Download PDF

Info

Publication number
KR20010052624A
KR20010052624A KR1020007013845A KR20007013845A KR20010052624A KR 20010052624 A KR20010052624 A KR 20010052624A KR 1020007013845 A KR1020007013845 A KR 1020007013845A KR 20007013845 A KR20007013845 A KR 20007013845A KR 20010052624 A KR20010052624 A KR 20010052624A
Authority
KR
South Korea
Prior art keywords
pixel
horizontal
sum
pixel array
sums
Prior art date
Application number
KR1020007013845A
Other languages
Korean (ko)
Inventor
바크무츠키마이클
곤스테인빅토르
Original Assignee
요트.게.아. 롤페즈
코닌클리케 필립스 일렉트로닉스 엔.브이.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/287,161 external-priority patent/US6480629B1/en
Priority claimed from US09/287,165 external-priority patent/US6360015B1/en
Application filed by 요트.게.아. 롤페즈, 코닌클리케 필립스 일렉트로닉스 엔.브이. filed Critical 요트.게.아. 롤페즈
Publication of KR20010052624A publication Critical patent/KR20010052624A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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/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)

Abstract

현재 부호화되는 화상의 제 1 화소 어레이와 기준 화상의 탐색 영역의 복수의 제 2 화소 어레이간에 최상의 일치를 결정하는 방법으로서, 상기 제 1 및 제 2 화소 어레이들 각각은 복수의 행들 및 열들의 개개의 화소값들을 포함한다. 이 방법은 디지털 비디오 인코더의 움직임 추정 탐색 엔진에서 수행되도록 설계되고, 상기 제 1 화소 어레이의 행들의 개개의 화소값들의 합을 나타내는 한 세트의 수평합들(S1H내지 S16H)과 상기 제 1 화소 어레이의 열들의 개개의 화소값들의 합을 나타내는 한 세트의 수직합들(S1V내지 S16V)으로 구성된 상기 제 1 화소 어레이(M1)의 제 1 직교-합 유형을 제공하는 단계, 상기 복수의 제 2 화소 어레이 중 적어도 선택된 것들의 각각에 대해서 상기 각각의 제 2 화소 어레이의 행들의 개개의 화소값들의 합을 나타내는 한 세트의 수평합들(S1H내지 S16H)과 상기 각각의 제 2 화소 어레이의 열들의 개개의 화소값들의 합을 나타내는 한 세트의 수직합들(S1V내지 S16V)으로 각각이 구성된 복수의 제 2 화소 직교-합 유형을 제공하는 단계를 포함한다.A method of determining a best match between a first pixel array of a currently encoded picture and a plurality of second pixel arrays of a search area of a reference picture, the first and second pixel arrays each comprising a plurality of rows and columns Pixel values. The method is designed to be performed in a motion estimation search engine of a digital video encoder and comprises a set of horizontal sums (S 1H to S 16H ) representing the sum of the pixel values of the individual rows of the first pixel array, Providing a first orthogonal sum type of the first pixel array (M1) consisting of a set of vertical sums (S 1V to S 16V ) representing the sum of the individual pixel values of the columns of the pixel array, A set of horizontal sums (S 1H to S 16H ) representing the sum of the individual pixel values of the rows of each second pixel array for each of at least selected ones of the second pixel arrays Providing a plurality of second pixel orthogonal sum types each consisting of a set of vertical sums (S 1V to S 16V ) representing the sum of the individual pixel values of the columns of the pixel array.

Description

움직임 추정{Motion estimation}Motion estimation {Motion estimation}

일반적으로, MPEG 비디오 데이터 스트림의 부호화는 많은 단계를 필요로 한다. 이들 단계 중 제 1 단계는 각각의 화상을 매크로블록들로 분할하는 것으로 구성된다. 다음에, 이론적으로, MPEG 비디오 데이터 스트림에서 각각의 "논-인트라(non-intra)" 화상의 각각의 매크로블록은 앵커(anchor) 화상(들) 내에 현재의 매크로블록의 대응하는 위치의 명시된 수직 및 수평 탐색 범위 내에 위치한 모든 가능한 16x16 화소 어레이와 비교된다. 이 이론적인 "풀 탐색 알고리즘(full search algorithm)"(즉, 최상의 일치를 위해서 탐색 영역 내 모든 가능한 블록을 전부 탐색하는 것)은 최상의 일치를 생성하나, 예를 들면, NxN의 블록 크기 및 (N+2w) x (N+2w)의 탐색 영역에 대해서 필요하게 될 방대한 계산량 때문에 실시간 응용에서는 거의 사용되지 않는다. 왜곡 함수 MAE는 블록마다 (2w+1)2배로 계산되어야 하며, 이것은 방대한 계산량이 된다. 그 보다는 이 알고리즘은 훨씬 빠르고 훨씬 계산을 적게 하여 실행될 수 있는 서로 다른 보다 현실적인 움직임 추정 알고리즘들을 비교할 수 있게 하는 기준 또는 벤치마크로서만 사용된다. 이들 보다 현실적인 움직임 추정 알고리즘들을 일반적으로 "고속 탐색 알고리즘(fast search algorithm)"이라고 한다.In general, encoding an MPEG video data stream requires many steps. The first of these steps consists of dividing each picture into macroblocks. Next, theoretically, each macroblock of each " non-intra " picture in the MPEG video data stream has a specified vertical (vertical) of the corresponding position of the current macroblock in the anchor picture And all possible 16x16 pixel arrays located within the horizontal search range. This theoretical " full search algorithm " (i.e., searching all possible blocks in the search area for best match) produces the best match, e.g., NxN block size and N + 2w) x (N + 2w) because of the large amount of computation required for the search area. The distortion function MAE must be calculated (2w + 1) 2 times for each block, which is a large amount of computation. Rather, the algorithm is used only as a benchmark or benchmark that allows comparison of different, more realistic motion estimation algorithms that can be implemented much faster and with less computation. These more realistic motion estimation algorithms are generally referred to as " fast search algorithms ".

소정의 예측 모드에 있어서, 전술한 탐색 또는 "움직임 추정" 과정의 결과는 명시된 탐색 범위 내에서 앵커 화상 내에 가장 근접하게 일치하는 매크로블록(명시된 일치 기준에 따라)의 위치에 대응하는 움직임 벡터로 된다. 일단 예측 모드 및 움직임 벡터(들)가 결정되었으면, 가장 근접하게 일치하는 매크로블록의 화소값들은 현재의 매크로블록의 대응하는 화소들로부터 감하여지고, 결과로 나온 16x16 어레이의 차분 화소는 8x8 "블록들(blocks)"로 변환되고, 각각의 블록에 대해이산 코사인 변환(DCT, discrete cosine transform)이 수행되고, 그 결과로 나온 계수는 각각 양자화되고 허프만 부호화(매크로블록에 속하는 예측 유형, 움직임 벡터, 및 그 외 정보)되어 MPEG 비트 스트림을 발생한다. 또 다른 화상에서 적절한 매크로블록 일치가 전혀 검출되지 않거나, 현재의 화상이 인트라 또는 "I-" 화상이면, 상기 과정은 현재의 매크로블록의 실제 화소들에 대해 수행되며(즉, 임의의 다른 화상 내 화소들에 관하여 어떠한 차분도 취해지지 않음), 매크로블록은 "인트라" 매크로블록으로서 지정된다.In the predetermined prediction mode, the result of the above-described searching or " motion estimation " process is a motion vector corresponding to the position of the macroblock (according to the specified matching criterion) closest to the anchorperson within the specified search range . Once the prediction mode and motion vector (s) have been determined, the pixel values of the closest matching macroblock are subtracted from the corresponding pixels of the current macroblock and the resulting differential pixel of the 16x16 array is subtracted from the 8x8 "quot; blocks ", and a discrete cosine transform (DCT) is performed for each block, and the resulting coefficients are each quantized and transformed into Huffman coding (prediction type, motion vector, Other information) and generates an MPEG bit stream. If no appropriate macroblock matches are detected in another picture or if the current picture is an intra or " I- " picture, the process is performed on actual pixels of the current macroblock (i.e., No difference is taken with respect to the pixels), and the macroblock is designated as the " intra " macroblock.

모든 MPEG-2 예측 모드에 있어서, 움직임 추정의 기본적인 기술은 앵커 화상 내 소정의 16x16 화소 어레이와 현재의 매크로블록을 비교하는 것과, 명시된 메트릭에 따라 일치된 정도(quality)를 추정하는 것과, 탐색 범위 내에 위치한 이러한 모든 16x16 화소 어레이에 대해 이러한 과정을 반복하는 것으로 구성된다. 이러한 탐색을 수행하는 하드웨어 또는 소프트웨어는 보통 "탐색 엔진(search engine)"이라고 하며, 일치된 정도(quality)를 판정하는 많은 잘 공지된 기준이 존재한다. 가장 잘 공지된 기준 중에서, 매크로블록 내 각각의 256 화소의 절대 차분값과, 일치하는 앵커 화상 매크로블록 내 대응하는 화소와의 합으로 메트릭이 구성되는 최소 절대 에러(MAE, Minimum Absolute Error)와, 상기 화소 차분의 제곱들의 합으로 메트릭이 구성되는 최소 제곱 에러(MSE, Minimum Square Error)가 있다. 어느 것이든, 대응하는 합이 가장 작은 값을 갖는 일치를 명시된 탐색 위치 내에서의 최상의 일치로서 선택함으로써 현재의 매크로블록에 대한 그 일치의 수평 및 수직 위치는 움직임 벡터를 구성한다. 그럼에도 불구하고, 결과로 나온 최소 합이 너무 큰 것으로 보이면, 현재의 매크로블록에 있어서 적합한 일치는 존재하지 않으며, 이것은 인트라 매크로블록으로서 코드화된다. 본 발명의 목적상, 상기 2가지 기준 어느 것, 또는 임의의 다른 적합한 기술이 사용될 수 있다.In all MPEG-2 prediction modes, the basic technique of motion estimation is to compare a given 16x16 pixel array in an anchor image with the current macroblock, estimate the matched quality according to the specified metric, Lt; RTI ID = 0.0 > 16x16 < / RTI > The hardware or software that performs such searches is commonly referred to as a " search engine ", and there are many well-known criteria for determining the matched quality. Among the best known standards, a minimum absolute error (MAE) in which a metric is composed of a sum of absolute difference values of 256 pixels in a macroblock and corresponding pixels in a matching anchor picture macro block, And a minimum square error (MSE) in which the metric is constructed by summing the squares of the pixel differences. Either way, the horizontal and vertical position of the match for the current macroblock constitutes a motion vector by selecting the match with the smallest value as the best match in the specified search position. Nevertheless, if the resulting minimum sum appears to be too large, then there is no suitable match in the current macroblock, which is coded as an intra macroblock. For the purposes of the present invention, either of the two criteria, or any other suitable technique may be used.

여러 가지 고속 탐색 알고리즘은 탐색 영역 내의 소정 서브세트의 후보 움직임 벡터 위치들에만 왜곡 함수(예를 들면, MAE 함수)를 평가함으로써 전체 계산량(effort)을 감소시킨다. 이들 알고리즘은 왜곡 측정치가 최상의 일치 예측 방향으로 단조 감소한다는 가정에 근거한다. 이러한 가정이 항상 맞는 것은 아니더라도, 훨씬 덜 계산하여 차선의 최적 움직임 벡터를 찾을 수 있다.Various fast search algorithms reduce the overall effort by evaluating a distortion function (e.g., a MAE function) only on a certain subset of candidate motion vector locations within the search area. These algorithms are based on the assumption that the distortion measure monotonically decreases to the best match prediction direction. Although this assumption is not always true, it is much less computable to find the optimal motion vector of the lane.

움직임 추정에 가장 일반적으로 사용되는 방식은 일반적으로 몇몇의 처리단계로 나누어지는 하이브리드(hybrid) 방식이다. 먼저, 영상은 화소 평균화에 의해서 데시메이트(decimate)된다. 다음에, 보다 적은 수의 화소에 대해 작용하는 고속 탐색 알고리즘을 수행하여, 최상의 일치에 접근하는 결과를 생성한다. 이어서, 구한 움직임 벡터 주위의 작은 탐색 영역에서 풀 탐색 알고리즘을 수행한다. 하프-펠(half-pel) 벡터가 필요하다면(MPEG-2에서처럼), 별도의 단계로서 하프-펠 탐색이 수행되거나 제한된 풀 탐색에 결합된다.The most commonly used method for motion estimation is a hybrid approach, generally divided into several processing steps. First, the image is decimated by pixel averaging. Next, a fast search algorithm that operates on a smaller number of pixels is performed, yielding the result of approaching the best match. Then, a full search algorithm is performed in a small search area around the obtained motion vector. If a half-pel vector is required (as in MPEG-2), half-pel search is performed as a separate step or combined into a limited full search.

움직임 추정에 대해 하이브리드 방식에서 달성될 수 있는 상당한 감축에도 불구하고, 여전히 MAE를 계산하는 매 반복마다 방대한 계산량이 수행되어야 한다. 움직임 블록 크기가 16x16인 MPEG-2 HDTV와 같은 요망되는 응용에서 바람직한 것으로 매 블록 오프셋에 대해 매 클럭 사이클마다 왜곡 함수를 계산해야 한다고 할 때, 왜곡 함수 계산 유닛(DFCU, distortion function computational unit)은 MAE를 생성하기 위해서 비트폭이 8부터 시작하여(움직임 추정에 8비트 휘도 데이터가 사용됨) 증가하는 많은 간단한 회로들로 구성될 것이다. 이 수는 DFCU당, 8부터 시작하여 비트폭이 증가하는 총 757개의 회로들에 있어서, 256개의 감산 회로들, 256개의 절대값 계산 회로들, 증가하는 비트폭의 255개의 합산 회로들의 합과 같을 것이다.Despite significant reductions that can be achieved in the hybrid approach to motion estimation, a large amount of computation must still be performed for each iteration of computing the MAE. For a desired application such as an MPEG-2 HDTV with a motion block size of 16x16, it is desirable to calculate a distortion function every clock cycle for each block offset. The distortion function computational unit (DFCU) (8-bit luminance data is used for motion estimation) starting from 8 to produce a < / RTI > This number is equal to the sum of 255 subtracting circuits, 256 absolute summing circuits, and 255 summing circuits of increasing bit width, for a total of 757 circuits starting at 8 per DFCU and increasing in bit width will be.

화상 해상도에 따라서, 실제 시스템에 있어서는 상기 극히 복잡한 많은 장치들이 필요하게 될 것이다. DFCU의 하드웨어를 재사용하기 위해서 DFCU 내의 소수의 회로들을 사용하는 것이 가능하지만 처리시간을 증가시킬 것이며 HDTV와 같은 요구되는 응용에서는 수락될 수 없을 수도 있다. 이 경우 향상된 병렬 처리로 보상하기 위해서는 간단히 DFCU 수를 증가시켜야 할 것이다.Depending on the image resolution, many of these extremely complex devices will be required in an actual system. It is possible to use a small number of circuits in the DFCU to reuse the hardware of the DFCU, but it may increase processing time and may not be acceptable in the required applications such as HDTV. In this case, the number of DFCUs simply needs to be increased to compensate for the improved parallelism.

움직임 추정에 대한 하이브리드 방식에서 제 1 단계(대략 탐색)는 보통 상당히 정확한 일치를 생성하기 위해서 가장 큰 탐색 영역을 커버해야 하기 때문에 하드웨어 이용면에서 가장 요구되는 단계이다.In the hybrid approach to motion estimation, the first step (roughly search) is usually the most demanding step in terms of hardware usage, since it has to cover the largest search area to produce a fairly accurate match.

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

도 1a는 데시메이트되지 않은 16x16 매크로블록에 대한 32-직교 합 유형을 도시하는 도면.Figure 1a shows a 32-orthogonal type for a 16x16 macroblock that is not decimated.

도 1b는 2:1 데시메이트된 16x16 매크로블록을 나타내는 8x8 매크로블록에 대한 16-직교 합 유형을 도시하는 도면.Figure IB shows a 16-orthogonal type for 8x8 macroblocks representing 16x16 macroblocks that are 2: 1 decimated.

도 2는 본 발명의 바람직한 실시예에 따라 최상의 일치 추정을 함께 도시하는 흐름도 및 그래프.Figure 2 is a flow chart and graph illustrating the best match estimations together in accordance with a preferred embodiment of the present invention.

도 3은 수평 움직임 추정 탐색에서 직교-합 갱신의 맥락에서, 본 발명의 바람직한 구현의 기본 방법을 도시하는 도면.3 illustrates a basic method of a preferred implementation of the present invention in the context of orthogonal sum updating in a horizontal motion estimation search;

도 4는 본 발명의 실시예를 구성하는 직교-합 생성기의 블록도.4 is a block diagram of an orthogonal sum generator that constitutes an embodiment of the present invention;

도 5는 본 발명의 방법을 사용하여 예시적인 수평 움직임 추정 탐색에서 RAM 동작 시퀀스를 도시하는 도면.Figure 5 illustrates a RAM operation sequence in an exemplary horizontal motion estimation search using the method of the present invention.

도 6은 본 발명의 실시예를 구성하는 움직임 추정 탐색 엔진의 블록도.6 is a block diagram of a motion estimation search engine constituting an embodiment of the present invention;

전술한 바에 기초하여, 현재 이 기술 분야에서는 움직임 추정량 및 복잡도 또는 움직임 추정을 수행하는데 필요한 DFCU 하드웨어를 감소시키며 적당한 비용으로 현저한 화질 개선을 제공하는 것으로서, 움직임 추정을 수행할 수 있는 속도를 향상시키는 움직임 추정 방법에 대한 필요성이 존재한다. 독립 청구범위에 규정한 본 발명은 이 기술에서 이러한 필요성을 충족시킨다. 종속 청구범위는 이점이 있는 실시예를 정의한다.Based on the foregoing, there is presently a need in the art to provide a method and apparatus that reduces the DFCU hardware required to perform motion estimation and complexity or motion estimation, and provides significant picture quality improvements at a reasonable cost, There is a need for estimation methods. The invention, as defined in the independent claims, fulfills this need in the art. Dependent claims define advantageous embodiments.

요약하여, 본 발명의 방법은 현재의 매크로블록과 탐색 영역에 배열된 화소들의 개개의 휘도 값들을 비교하기보다는 매크로블록의 고유한 유형(signature)들을 비교함으로써 최상의 일치를 찾는다. 상기 방법은 모든 고속 탐색 알고리즘에서 기초로 하고 있는 것과 동일한 가정, 즉, 왜곡 측정치는 최상의 일치 예측방향으로 단조 감소한다는 가정에 기초한다.In summary, the method of the present invention finds the best match by comparing the unique types of macroblocks rather than comparing the individual brightness values of the pixels arranged in the search area with the current macroblock. The method is based on the assumption that the same hypothesis is based on all the fast search algorithms, i.e., the distortion measure monotonically decreases to the best match prediction direction.

본 발명은 복수의 행 및 열의 개개의 화소값들을 가지며 현재 부호화되는 화상 내의 제 1 화소 어레이와 복수의 행 및 열의 개개의 화소값들을 가지며 기준 화상의 탐색 영역 내의 복수의 제 2 화소 어레이간 최상의 일치를 결정하는 방법을 포함한다. 이 방법은 디지털 비디오 인코더의 움직임 추정 탐색 엔진에서 수행되도록 설계되고, 상기 제 1 화소 어레이의 행들의 개개의 화소값들의 합을 나타내는 한 세트의 수평합과 상기 제 1 화소 어레이의 열들의 개개의 화소값들의 합을 나타내는 한 세트의 수직합으로 구성된 상기 제 1 화소 어레이의 제 1 직교-합 유형을 제공하는 단계, 상기 복수의 제 2 화소 어레이 중 적어도 선택된 것들의 각각에 대해서, 상기 각각의 제 2 화소 어레이의 행들의 개개의 화소값들의 합을 나타내는 한 세트의 수평합과 상기 각각의 제 2 화소 어레이의 열들의 개개의 화소값들의 합을 나타내는 한 세트의 수직합으로 각각이 구성된 복수의 제 2 화소 직교-합 유형을 제공하는 단계, 및 상기 제 1 화소 어레이와 상기 제 2 화소 어레이간 최상의 일치를 결정하기 위해서 상기 제 2 직교-합 유형 각각과 상기 제 1 직교-합 유형을 비교하는 단계를 포함한다. 개시된 실시예에서, 제 1 및 제 2 화소 어레이는, 예를 들면, MPEG-2 표준인 MPEG 표준에 의해 정해진 구조를 갖는 데시메이트되거나 데시메이트되지 않은 매크로블록이다.The present invention relates to an image processing apparatus having a first pixel array having individual pixel values of a plurality of rows and columns and having pixel values of a plurality of rows and columns in an image to be currently encoded, Quot; is < / RTI > The method is designed to be performed in a motion estimation search engine of a digital video encoder and comprises a set of horizontal sum representing the sum of pixel values of each of the rows of the first pixel array, Providing a first orthogonal sum type of the first pixel array consisting of a set of vertical sums representing a sum of values for each of the plurality of second pixel arrays, A plurality of first and second pixel arrays each comprising a set of horizontal summations representing the sum of the pixel values of the rows of the pixel array and a set of vertical summations representing the sum of pixel values of the columns of each second pixel array, Pixel orthogonal-sum type, and to determine a best match between the first pixel array and the second pixel array, And comparing the first orthogonal sum type with each of the orthogonal sum types. In the disclosed embodiment, the first and second pixel arrays are decimated or non-decimated macroblocks having a structure defined by, for example, the MPEG standard, the MPEG-2 standard.

본 발명은 본 발명의 방법을 구현하는, 예를 들면, 디지털 비디오 인코더의 움직임 추정 탐색 엔진 등의 장치를 포함한다.The present invention includes an apparatus, such as a motion estimation search engine of a digital video encoder, for implementing the method of the present invention.

바람직한 실시예에서, 본 발명의 방법 및 장치는 직교-합을 생성하도록 이전에 계산된(사용할 수 있는) 합들을 로컬 메모리에 저장하고 광범하게 재사용함으로써 필요 계산을 크게 감소시키고 움직임 추정 탐색을 현저히 가속화함으로써 움직임 추정 탐색 엔진의 필요 하드웨어를 현저히 감소시킨다. 또한, 로컬 메모리는 현재 사용할 수 있는 기술에서 필요로 하는 시프트 레지스터 매트릭스로서 구현되는 것과는 반대로 효과적으로 RAM, 예를 들면, DRAM 또는 SRAM일 수 있다. 그러나, 이것이 본 발명의 특징 중 한 특징에서 신규하고 현재 바람직한 특징을 구성할지라도, 이것은 이하 완전하고 명백하게 되는 바와 같이, 광의로 보아, 그 자체가 본 발명의 필수 특징은 아니다.In a preferred embodiment, the method and apparatus of the present invention significantly reduces the required computation and significantly accelerates motion estimation search by storing and widely reusing previously computed (usable) sums in local memory to produce orthogonal sum Thereby significantly reducing the required hardware of the motion estimation search engine. In addition, the local memory may be effectively a RAM, for example a DRAM or an SRAM, as opposed to being implemented as a shift register matrix required in presently available technology. However, although this is novel and presently preferred in one aspect of the features of the present invention, this is not necessarily an essential feature of the present invention in its broadest sense, as will be apparent from the following description.

본 발명의 이들 및 다른 목적, 특징, 및 이점은 첨부한 도면에 관련하여 취한 다음의 상세한 설명으로부터 쉽게 이해될 것이다.These and other objects, features, and advantages of the present invention will be readily understood from the following detailed description taken in conjunction with the accompanying drawings.

요약하여, 본 발명의 움직임 추정 방법은 일반적으로 다음의 단계로 구성된다. 먼저, 현재의 매크로블록의 각각의 행 및 열의 개개의 화소값들을 합하여, 그 매크로블록의 콘텐트의 유일한 패턴 또는 "유형(signature)"을 나타내는 한 세트의 직교-합을 생성한다. 다음에, 그 매크로블록의 결과적인 직교-합 유형은 기준 또는 앵커(anchor) 화상(들)의 규정된 탐색 영역 내 각각의 매크로블록 크기의 화소 어레이의 대응하는 직교-합 유형들과 비교되고, 규정된 일치 기준 또는 탐색 메트릭, 예를 들면, 최소 절대 에러(MAE) 왜곡 함수에 따라 최상의 일치를 찾는다. 통계적으로, 상이한 콘텐트를 갖는 매크로블록들이 동일한 유형을 가질 경우는 거의 발생하지 않기 때문에, 일치가 오류일 확률은 낮다. 게다가, 직교 합들은 라인(행) 또는 열당 평균 휘도 크기를 나타내기 때문에, 탐색 영역 내 매크로블록 원점의 작은 스텝 증분은 대역폭 제한된 필터링된 비디오에 대한 크기의 큰 점프를 야기하진 않을 것이다. 이러한 이유로, 직교 합 세트들의 일치에 근거하여 계산된 왜곡 측정치는 종래 기술의 탐색방법에서 뿐만 아니라 최상 일치 예측 방향으로 단조 감소한다고 결론지을 수 있다.In summary, the motion estimation method of the present invention generally comprises the following steps. First, the individual pixel values of each row and column of the current macroblock are summed to produce a set of orthogonal sums representing a unique pattern or " signature " of the content of the macroblock. Next, the resulting orthogonal sum type of the macroblock is compared with the corresponding orthogonal sum types of pixel arrays of each macroblock size in the specified search area of the reference or anchor picture (s) And finds the best match according to the specified match criterion or search metric, e.g., a minimum absolute error (MAE) distortion function. Statistically, since macroblocks with different content rarely occur when they have the same type, the probability of matching is low. In addition, the small step increments of the macroblock origin in the search area will not cause a large jump in magnitude for the bandwidth limited filtered video, since orthogonals represent the average luminance magnitude per line (row) or column. For this reason, it can be concluded that the distortion measure calculated based on the agreement of the orthogonal sum sets monotonously decreases not only in the search method of the prior art but also in the best match prediction direction.

도 1a 및 도 1b를 참조하여, 본 발명의 움직임 추정 방법의 특정예를 기술한다. 특히, 도 1a에서, 데시메이트되지 않은 16x16 매크로블록(M1)의 각 행(1H-16H) 및 각 열(1V-16V)에 대해서 개개의 화소(휘도) 값들을 합산하여, 데시메이트되지 않은 16x16 매크로블록(M1)의 직교-합 유형을 구성하는 한 세트의 직교-합 S1H내지 S16H(수평 합)과 S1V내지 S16V(수직 합)을 생성한다. 도 1b에서, 8x8 매크로블록(M1')의 각 행(1H-8H) 및 각 열(1V-8V)에 대해서 개개의 화소(휘도) 값들을 합산하여, 8x8 매크로블록(M1')의 직교-합 유형을 구성하는 한 세트의 직교-합 S1H내지 S8H(수평 합)과 S1V내지 S8V(수직 합)을 생성한다. 8x8 매크로블록(M1')은 수평 및 수직으로 2:1 데시메이트된 매크로블록(M1)을 구성한다.A specific example of the motion estimation method of the present invention will be described with reference to Figs. 1A and 1B. In particular, in Fig. 1A, the individual pixel (luminance) values are summed for each row (1H-16H) and each column (1V-16V) of the decimated 16x16 macroblocks M1, To produce a set of orthogonal sums S 1H to S 16H (horizontal sum) and S 1V to S 16V (vertical sum) that constitute the orthogonal sum type of the macroblock M 1 . In Fig. 1B, the individual pixel (luminance) values are summed for each row 1H-8H and each column 1V-8V of the 8x8 macroblock M1 ' To produce a set of orthogonal sums S 1H to S 8H (horizontal sum) and S 1V to S 8V (vertical sum) that make up the sum type. The 8x8 macroblock M1 'constitutes a macroblock M1 decimated horizontally and vertically by 2: 1.

도 2에서, 본 발명의 움직임 추정 방법은 다음과 같이 수행된다. 특히, 최상의 일치 추정 과정은, 기준 또는 앵커 화상의 명시된 탐색 영역(탐색 영역 매크로블록(SAM)) 내 각각의 매크로블록의 직교-합 유형을 현재의 코드화된 매크로블록(CM)의 직교-합 유형과 비교하고(일치 추정(ME)), 이어서 예를 들면, MAE, MSE, 또는 임의의 다른 적합한 메트릭 등 명시된 일치 기준(탐색 메트릭)에 따라 현재의 매크로블록의 직교-합 세트와 가장 큰 상관도를 갖는 기준(탐색 영역) 매크로블록을 최상의 일치(BM)로서 선택함으로써 수행된다. 도 2의 하측부분에 도시한 그래프는 직교-합 세트의 요소들의 크기(M)를 도시한 것이다.2, the motion estimation method of the present invention is performed as follows. In particular, the best match estimation process may be performed by comparing the orthogonal sum type of each macroblock in the specified search area (search area macroblock (SAM)) of the reference or anchor picture with the orthogonal sum type of the current coded macroblock (CM) (The ME), and then the maximum correlation with the orthogonal-sum set of the current macroblock according to the specified matching criterion (search metric), such as MAE, MSE, or any other suitable metric, (Search area) macroblock having the best match (BM). The graph shown in the lower portion of Fig. 2 shows the magnitude (M) of the elements of the orthogonal sum set.

왜곡 함수 계산 유닛(DFCU)의 큰 복잡도에 기인하여, 움직임 추정 탐색은 통상 적어도 초기에는 데시메이트된 비디오(즉, 데시메이트된 매크로블록)에 대해 수행된다. 예를 들면, 도 1a에 도시한 데시메이트되지 않은 매크로블록에 대해 직교-합 세트를 생성하는 경우, 16x16 매크로블록의 직교-합 유형을 나타내는 합의 개수는 32(2x16)인 반면, 도 1b에 도시한 2:1 데시메이트된 매크로블록에 대해 직교-합을 생성하는 경우에 8x8 매크로블록의 직교-합 유형을 나타내는 합의 개수는 16(2x8)로 줄어든다. 2N 개수(numbers)에 대해 왜곡 함수를 평가하는 것은 N2 개수에 대해 왜곡 함수가 평가될 것을 필요로하는 종래의 기술에 비해 DFCU의 필요한 계산을 감소시킬 것이다. 예를 들면, 도 1a에 도시한 데시메이트되지 않은 16x16 매크로블록의 경우, 왜곡 함수는 8배 미만의 개수(256/32)에 대해 평가되어야 하며, 도 1b에 도시한 데시메이트된 8x8 매크로블록의 경우, 왜곡 함수는 4배 미만의 개수(64/16)에 대해 평가되어야 한다.Due to the large complexity of the distortion function computation unit (DFCU), the motion estimation search is typically performed for at least initially decimated video (i.e., decimated macroblock). For example, when generating an orthogonal sum set for the non-decimated macroblocks shown in FIG. 1A, the number of sums representing the orthogonal sum type of 16x16 macroblocks is 32 (2x16) When generating an orthogonal sum for a 2: 1 decimated macroblock, the number of sums representing the orthogonal sum type of the 8x8 macroblock is reduced to 16 (2x8). Evaluating the distortion function for 2N numbers will reduce the required computation of the DFCU compared to the prior art that requires the distortion function to be evaluated for the number of N2. For example, for the non-decimated 16x16 macroblock shown in FIG. 1A, the distortion function should be evaluated for a number less than 8 (256/32), and the decimated 8x8 macroblock shown in FIG. , The distortion function should be evaluated for a number less than four times (64/16).

전술한 바와 같이, DFCU의 계산 복잡도가 움직임 추정 회로(탐색 엔진)의 비용에 주요 요인이다. 그러나, 본 발명의 움직임 추정 방법은 DFCU의 비용 및 복잡도에 극적인 감소를 제공하기 때문에, 움직임 추정 탐색에 있어 데시메이트되지 않은 또는 로우 레벨의 데시메이트된 비디오로 시작하는 것이 훨씬 더 실제적이됨으로써, 움직임 추정 탐색 정확성, 및 결국에는 화질을 향상시킨다. 이에 관련하여, 본 발명의 움직임 추정 방법은 움직임 추정의 단(stage) 수를 상당히 감소시킬 뿐만 아니라, 데시메이션 단이 모두 제거되어 필요한 특별한 비디오 필터링 회로를 제거할 수 있게 한다. 이러한 하드웨어 감축에 의해서, 탐색 처리는 어쩌면 적당한 비용으로 화질을 상당히 개선하는 데시메이트되지 않은 비디오로 시작될 수도 있다.As described above, the computational complexity of the DFCU is a major factor in the cost of the motion estimation circuit (search engine). However, since the motion estimation method of the present invention provides a dramatic reduction in the cost and complexity of the DFCU, it becomes much more practical to start with a decimated video that is not decimated or low-level in the motion estimation search, Estimated search accuracy, and eventually image quality. In this regard, the motion estimation method of the present invention not only significantly reduces the number of stages of motion estimation, but also eliminates all of the decimation stages to eliminate the special video filtering circuitry required. With this hardware reduction, the search process may begin with a video that is not decimated, which can significantly improve image quality at reasonable cost.

본 발명의 움직임 추정 방법으로 실현되는 또 다른 이점은 크게 향상된 동작속도이다. 통상, 실제로 단일 클럭 사이클 내에서 결과를 얻을 가능성을 제외하고, 배열된 휘도 크기들을 비교하기 위해서는 복수의 논리단이 필요하다. 이러한 이유로, 시스템 클럭 주파수를 줄여야 하거나 시스템은 논리 자원들을 이용하여 파이프라인으로 되어야 한다. 본 발명의 움직임 추정 방법은 단일 클럭 사이클 내에 쉽게 달성되는 직교-합의 계산을 동시에 할 수 있게 함에 따라 MAE 계산이 극적으로 감소된다.Another advantage realized by the motion estimation method of the present invention is greatly improved motion speed. Usually, a plurality of logical stages are required to compare the arranged luminance magnitudes, except in practice the possibility of obtaining results within a single clock cycle. For this reason, the system clock frequency must be reduced or the system must be pipelined using logical resources. The motion estimation method of the present invention dramatically reduces the MAE computation by allowing simultaneous computation of the orthogonal sum to be achieved within a single clock cycle.

이들 이점 외에도, 본 발명은 상이한 메모리들로부터 기원하는 데이터에 대해 수행되는 계산들간 교차-통신(cross-communication)를 크게 감소시킨다. 이것은 움직임 추정에 앞서 어떤 하드웨어 구조에서 매우 유익할 수 있는 것으로 중간 결과(직교-합)를 미리 계산하여 저장할 수 있게 한다.In addition to these advantages, the present invention greatly reduces cross-communication between calculations performed on data originating from different memories. This allows pre-computation and storage of intermediate results (orthogonal sum) that can be very beneficial in some hardware structures prior to motion estimation.

도 3을 참조하여 본 발명의 바람직한 실시예의 기본 원리를 설명한다. 특히, 수평 탐색의 이전 반복 중에 수평(직교) 합(OSOLD)이 계산된 이전 8 화소 매크로블록에 관하여 우측으로 1화소만큼 이동된 8화소 매크로블록에 대해 수평(직교) 합(OSNEW)를 계산하기 위해서, 다음 식(1)이 사용된다.The basic principle of a preferred embodiment of the present invention will be described with reference to Fig. In particular, the horizontal (perpendicular to) the sum horizontal (perpendicular to) the sum (OS NEW) for the 8 pixel macroblocks shifted to right by one pixel with respect to (OS OLD) is calculated before 8 pixel macroblocks during a previous iteration of the horizontal navigation For calculation, the following equation (1) is used.

OSNEW= OSOLD- a0+ an0(1)OS NEW = OS OLD - a 0 + a n0 (1)

여기서 a0는 이전 매크로블록의 수평 원점이었던 화소의 화소값이고, an0는 "새로운" 매크로블록, 즉 이전 매크로블록에 관하여 우측으로 1화소만큼 이동된 매크로블록의 수평 원점인 화소의 화소값이다.Where a 0 is the pixel value of the pixel that was the horizontal origin of the previous macroblock and a n0 is the pixel value of the pixel that is the horizontal origin of the macroblock moved by one pixel to the right with respect to the " .

예를 들면, 이전 매크로블록의 수평 원점을 an-1로 표기된 화소이고 따라서 우측으로 1화소만큼 이동된 매크로블록의 수평 원점을 an으로 표기한 화소라고 하면, 식(1)을 사용하여 OSNEW= OSOLD- an-1+ an+7이 된다.For example, if the horizontal origin of the previous macroblock is a n-1 pixel and the horizontal origin of the macroblock moved by one pixel to the right is represented by a n , NEW = OS OLD - a n-1 + a n + 7 .

즉, 이전 매크로블록에 포함되지 않았던 새로운 매크로블록에 포함된 유일한 화소가 화소 an+7이기 때문에, 우측으로 1화소 이동에 기인하여, 이의 값은 OSNEW를 계산할 때 이전에 계산된 직교-합 OSOLD에 더해져야 하며, 새로운 매크로블록에는 포함되어 있지 않지만 이전 매크로블록에 포함되었던 유일한 화소가 화소 an-1이기 때문에, 우측으로 1화소 이동에 기인하여, 이의 값은 OSNEW를 계산할 때 이전에 계산된 직교 합 OSOLD로부터 감해져야 한다.That is, since the only the pixels included in the new macroblocks that were not included in the previous macroblock pixel a n + 7, due to the one pixel moves to the right, and its value is calculated before calculating the OS NEW quadrature-sum because be added to the OS oLD and, although not included in the new macroblock is the only pixels the pixel a n-1 that were part of the previous macro-block, due to the one pixel moves to the right, and its value prior to calculating the OS nEW Must be subtracted from the calculated orthogonal OS OLD .

마찬가지로, 화소 탐색이 우측으로 1화소 추가 이동을 진행하여, 이전 매크로블록의 수평 원점은 an으로 표기되는 화소가 되고 우측으로 1화소만큼 이동된 "새로운" 매크로블록의 수평 원점은 an+1로 표기된 화소가 되므로, 식(1)을 사용하여, OSNEW= OSOLD- an-1+ an+7이 된다.Similarly, the pixel search advances to the right by one pixel, the horizontal origin of the previous macroblock becomes a pixel denoted by a n , and the horizontal origin of the " new " macroblock shifted by one pixel to the right is a n + 1 (1), OS NEW = OS OLD - a n - 1 + a n + 7 is obtained.

즉, 이전 매크로블록에 포함되지 않았던 새로운 매크로블록에 포함된 유일한 화소가 화소 an+7이기 때문에, 우측으로 1화소 추가 이동에 기인하여, 이의 값은 OSNEW를 계산할 때 이전에 계산된 직교 합 OSOLD에 더해져야 하며, 새로운 매크로블록에는 포함되어 있지 않지만 이전 매크로블록에 포함되었던 유일한 화소가 화소 an-1이기 때문에, 우측으로 1화소 추가 이동에 기인하여, 이의 값은 OSNEW를 계산할 때 이전에 계산된 직교 합 OSOLD로부터 감해져야 한다.That is, since the only the pixels included in the new macroblocks that were not included in the previous macroblock pixel a n + 7, due to the one pixel further movement to the right, its value is the sum of orthogonal calculated previously in calculating the OS NEW because be added to the OS oLD and, although not included in the new macroblock is the only pixels the pixel a n-1 that were part of the previous macro-block, due to the one pixel further movement to the right, and its value prior to calculating the OS nEW Lt; RTI ID = 0.0 > OLD . ≪ / RTI >

직교 합 OSNEW값을 갱신하는 이러한 과정은 기준 화상의 탐색 영역 내의 수평 탐색 범위의 경계에 도달할 때까지 수평 탐색 동안 각각의 추가 1화소 이동마다 반복되고, 그 경계에서 탐색 영역의 해당 행에 대한 수평 탐색이 완료된다.This process of updating the orthogonal OS NEW value is repeated for each additional one pixel shift during the horizontal search until it reaches the boundary of the horizontal search range in the search area of the reference picture, The horizontal search is completed.

도 4에서, 본 발명의 실시예를 구성하는 직교-합 생성기(20)의 블록도를 볼 수 있다. 우선, 8x8 매크로블록의 예를 사용하여 본 발명을 기술할지라도, 본 발명은 어떤 특정한 크기나 구조의 매크로블록 또는 화소 어레이로 제한되지 않음을 알아야 할 것이다. 본 발명의 방법의 다른 하드웨어 구현이 관련 기술에 통상의 지식을 가진 자에게 쉽게 명백할 것이며 광의로 본 발명에 포괄됨을 알지라도 본 발명의 움직임 추정 방법을 도 2에 도시한 직교-합 생성기(20)와 관련하여 설명하도록 한다.4, a block diagram of an orthogonal-sum generator 20 that constitutes an embodiment of the present invention can be seen. First, although the present invention is described using the example of 8x8 macroblocks, it should be understood that the present invention is not limited to macroblocks or pixel arrays of any particular size or structure. Although other hardware implementations of the method of the present invention will be readily apparent to those of ordinary skill in the art and are broadly encompassed by the present invention, the motion estimation method of the present invention may be applied to the orthogonal-sum generator 20 ).

먼저, 도 1a, 도 1b 및 도 2를 참조하여 전술한 방식으로, 상기 매크로블록의 행들의 개개의 화소(휘도) 값들의 합을 나타내는 한 세트의 수평 합들, 및 그 매크로블록의 열들의 개개의 화소값들의 합을 나타내는 한 세트의 수직 합들을 계산함으로써 현재 부호화되는 매크로블록의 모든 직교-합 유형이 계산된다.First, a set of horizontal sums representing the sum of the individual pixel (luminance) values of the rows of the macroblock and a set of horizontal sums representing the sum of the individual (luminance) values of the rows of the macroblock in the manner described above with reference to Figs. 1A, 1B and 2 All orthogonal sum types of the currently encoded macroblocks are calculated by calculating a set of vertical sums representing the sum of pixel values.

두 번째, 기준 화상(앵커) 메모리(도시되지 않음)에 저장된 기준 화상의 명시된 탐색 영역 내 명시된 원점을 갖는 매크로블록화된 초기 기준 화상 어레이(매크로블록)에 대한 화소값들을 로컬 메모리(22)(예를 들면, DRAM, SRAM, 또는 시프트 레지스터 매트릭스)에 로딩/기입함으로써 초기화 과정이 수행된다. 앵커 메모리는 바람직하게는 이의 출력이 수직으로 항상 인접하게 되도록 구성된다. 예를 들면, 앵커 메모리의 출력들이 라인(행) 1, 2, 3, 및 4로부터 화소들을 출력한다면, 밑으로 1화소 수직이동에 의해 앵커 메모리는 라인(행) 2, 3, 4 및 5로부터 화소들을 출력하게 될 것이다. 이것은 예를 들면, 여기 참고로 개시내용을 포함시키는 미공개 국제출원 PCT/IB99/00989에 개시된 방법을 사용하여 앵커 메모리 크기를 증가시킴이 없이 이 메모리를 적합하게 분할함으로써 달성될 수 있다.Second, the pixel values for the macroblocked initial reference picture array (macroblock) having the specified origin in the specified search area of the reference picture stored in the reference picture (anchor) memory (not shown) are stored in the local memory 22 For example, a DRAM, an SRAM, or a shift register matrix). The anchor memory is preferably configured such that its output is always vertically adjacent. For example, if the outputs of the anchor memory output pixels from lines 1, 2, 3, and 4, the anchor memory may be moved from the lines (rows) 2, 3, 4, and 5 Pixels. This can be accomplished, for example, by suitably dividing this memory without increasing the anchor memory size using the method disclosed in the undisclosed international application PCT / IB99 / 00989 which includes the disclosure herein.

초기화 절차 동안, 초기 매크로블록 크기의 기준 화소 어레이에 대한 수평 합의 세트들 전체는 각각이 로컬 메모리(22)의 각각의 데이터 출력들에 감산(-) 입력이 결합된 한 세트의 병렬 수평 합 수정기 회로(25)에 축적됨과 동시에(바람직하게), 초기 기준 화소 어레이의 각 열에 대한 수직 합들은 4입력 수직 합 가산기 회로(27)에 의해 출력되고 이와 같이 하여 계산된 수직 합들은 연속적으로 시프트 레지스터(29)로 로딩된다.During the initialization procedure, the entire set of horizontal sums for the reference pixel array of the initial macroblock size are each stored in a set of parallel horizontal summation registers, each of which is coupled to the respective data outputs of the local memory 22 with a subtraction (- The vertical sums for each column of the initial reference pixel array are output by the four input vertical sum adder circuit 27 and the vertical sums calculated in this manner are successively stored in the shift register 29).

이러한 초기화 과정이 완료된 후에, 본 발명의 움직임 추정 탐색방법은 다음과 같이 동작한다. 특히, 기준화로의 명시된 탐색 영역을 통해 수평 방향으로 화소단위로 움직임 추정 탐색이 진행됨에 따라(이하 "수평 탐색"이라 함), 결과적인 기준 화소 어레이는 초기 기준 화소 어레이에 관하여 우측으로 1화소만큼 대응하여 이동될 것이다.After this initialization process is completed, the motion estimation search method of the present invention operates as follows. In particular, as the motion estimation search progresses on a pixel-by-pixel basis in the horizontal direction (hereinafter referred to as " horizontal search ") through the specified search region of the reference pixel, the resulting reference pixel array is shifted by one pixel Will be moved accordingly.

탐색 영역 내 각각의 1화소 이동 후에, 로컬 메모리(22)로부터 로컬 메모리(22)의 i번째 열의 각각의 행 내에 저장된 화소값들이 읽혀져 각각의 수평 합 수정기 회로(25)의 감산 입력에 인가되고, 기준 화상의 탐색 영역의 (N+i)번째 열에 대응하는 화소값은 이로부터 방금 읽혀진 화소값들을 대치하도록 로컬 메모리(22)의 i번 째 열의 각각의 행들에 기입되며, 여기서 i=1 내지 N이고, N은 초기 기준 화소 어레이의 수평 크기(즉, 코드화된 매크로블록의 수평 크기)이다. 바람직하게, N에 도달한 후에, 메모리 어드레싱 목적으로 i는 다시 카운트 값 1로 될 것이고 다시 N에 도달할 때까지 1씩 증가될 것이며, 수평 탐색 범위의 경계(초기 기준 화소 어레이의 수평 원점부터 잰 것)에 도달할 때까지 사이클이 반복되고 이와 같이 하여 수평 탐색이 종료된다. 이에 관련하여, 모듈로-8(modulo-8) 어드레스 카운터(도시되지 않음) 또는 그 외 다른 적합한 메카니즘을 이러한 기능을 수행할 목적으로 이용할 수 있다.After each pixel shift in the search area, the pixel values stored in the respective rows of the i-th column of the local memory 22 are read from the local memory 22 and applied to the subtraction inputs of the respective horizontal summation circuits 25 , The pixel value corresponding to the (N + i) -th column of the search area of the reference picture is written into each row of the i-th column of the local memory 22 so as to replace the pixel values just read from it, where i = N, and N is the horizontal size of the initial reference pixel array (i.e., the horizontal size of the coded macroblock). Preferably, after reaching N, i will again be the count value 1 for memory addressing purposes and will be incremented by one until it reaches N again, and the boundary of the horizontal search range (measured from the horizontal origin of the initial reference pixel array The cycle is repeated until the horizontal search is ended in this way. In this regard, a modulo-8 address counter (not shown) or any other suitable mechanism may be used for the purpose of performing this function.

기준 화상의 탐색 영역의 (N+i)번째 열에 대응하는 화소값들(이하 간단히 "새로운 화소값(new pixel values)"이라 함) 또한 각각의 수평 합 수정기 회로(25)의 가산(+) 입력과 수직 합 가산기 회로(27)의 각각의 회로들에 동시에 인가된다. 예로서, 로컬 메모리(22)가 DRAM이면, 전술한 메모리 독출 및 기입 동작은 독출-수정-기입 동작을 통해 단일 메모리 클럭 사이클 동안 수행될 수 있다.Pixel values (hereinafter simply referred to as " new pixel values ") corresponding to the (N + i) -th column of the search area of the reference image are also added (+) of each horizontal summation circuit 25, Input and the vertical summation adder circuit 27, respectively. By way of example, if the local memory 22 is a DRAM, the above-described memory read and write operations may be performed during a single memory clock cycle through a read-modify-write operation.

독출한 화소값과 새로운 화소값을 수신하였을 때, 각각의 수평 합 수정기 회로(25)는 이의 가산 입력에서 수신한 새로운 화소값을 이전에 축적된 수평합에 더하고, 감산 입력에서 수신된 독출 화소값을 이전에 축적된 수평합에서 감산하여, 결과로 나온 합을 "새로운(new)" 수평합으로써 출력한다. 즉, 수평 합 수정기 회로(25)의 출력에서 출력된 수평합의 세트는 이전 반복의 기준 화소 어레이로부터 1화소만큼 이동된 "새로운" 기준 화소 어레이에 대한 수평합의 세트를 구성할 것이다.When receiving the read pixel value and the new pixel value, each horizontal summing circuit 25 adds the new pixel value received at its summation input to the previously accumulated horizontal sum, Subtracts the value from the previously accumulated horizontal sum, and outputs the resulting sum as a " new " horizontal sum. That is, the set of horizontal sums output at the output of the horizontal summing circuit 25 will constitute a set of horizontal sums for the " new " reference pixel array shifted by one pixel from the reference pixel array of the previous iteration.

또한, 각각의 1화소 이동 후에, 시프트 레지스터(29)는 우측으로 1워드만큼 수평으로 시프트되므로, 레지스터의 마지막 단에 저장된 수직합은 폐기되고, 나머지 수직 합들은 우측으로 1단만큼 시프트된다. 새로운 화소값을 수신하였을 때, 수직 합 가산기 회로(27)는 시프트 레지스터(29)(N-워드 시프트 레지스터임)의 제 1 단에 로딩되는 "새로운" 수직합을 출력에서 생성하여 우측으로 시프트되었던 이전 수직합을 대치한다. 시프트 레지스터(29)의 출력들에 나타나는 결과적인 세트의 수직 합들은 이전 반복의 기준 화소 어레이로부터 1화소만큼 이동된 "새로운" 기준 화소 어레이에 대한 수직합의 세트를 구성한다.Further, after each pixel shift, the shift register 29 is horizontally shifted by one word to the right, so that the vertical sum stored at the last stage of the register is discarded, and the remaining vertical sums are shifted by one stage to the right. When receiving the new pixel value, the vertical sum adder circuit 27 generates at the output a " new " vertical sum that is loaded into the first stage of the shift register 29 (which is a N-word shift register) Replace the previous vertical sum. The resulting set of vertical sums appearing at the outputs of the shift register 29 constitute a set of vertical summations for the " new " reference pixel array shifted by one pixel from the reference pixel array of the previous iteration.

전술한 과정은 수평 탐색이 종료될 때까지 기준 화상의 탐색 영역을 통해 수평 탐색 동안 각각의 1화소 이동후에 반복된다.The above-described process is repeated after each pixel shift during the horizontal search through the search area of the reference picture until the horizontal search is terminated.

도 5를 참조하여, 본 발명의 실시예에 따른 수평 탐색을 위한 메모리 독출/기입 동작 시퀀스를 설명한다. 원은 활성 어드레스를 나타내며, 사각형은 비활성 어드레스를 나타낸다. (+) 기호가 있는 열은 RAM 입력(화소 번호)을 나타내며 (-) 기호가 있는 열은 RAM 출력(화소 번호)을 나타낸다. 특히, 탐색되는 기준 화상 탐색 영역의 각각의 행에 대해 첫 번째 8개의 수평으로 인접한 화소(1 내지 8)가 로컬 메모리(22)의 4개의 각각의 행(섹션)에 저장됨과 동시에 대응하는 수평 합 수정기 회로(25)에 축적된다. 이 때, 수평합 수정기 회로(25)에 의해 출력된 수평합은 초기 기준 화소 어레이(매크로블록)에 대한 유효한 수평합이다. 이어서, 각각의 단일의 화소 이동마다, 기준 화상의 탐색 영역을 통한 수평 탐색이 진행됨에 따라, 어드레스 카운터는 화소 i를 지정하도록 1씩 증분되며, 여기서 i=1 내지 8이고, 카운트값은 카운트 끝값(8)에 도달한 후에 반복한다. 그럼으로써, 로컬 메모리(22)의 각 행에 대한 이전 화소값이 로컬 메모리(22) 내 현재 어드레스된 위치로부터 읽혀져 각각의 수평합 수정기 회로(25)의 감산(-)입력에 인가하게 되고, 로컬 메모리(22)의 각각의 행에 대한 새로운 화소값이 로컬 메모리(22) 내 현재 어드레스된 위치에 기입되는 것과 동시에 각각의 수평 합 수정기 회로(25)의 가산(+) 입력 및 4-입력 수직 합 가산기 회로로(27)의 각각의 입력에 인가된다. 따라서, 각각의 단일 화소 이동후에, 갱신된 전체 세트의 수평합은 수평 합 수정기 회로(25)에 의해 출력될 것이며, 갱신된 전체 세트의 수직합은 시프트 레지스터(29)에 의해 출력될 것이다.Referring to FIG. 5, a memory read / write operation sequence for horizontal search according to an embodiment of the present invention will be described. The circle represents the active address, and the rectangle represents the inactive address. A column with a (+) sign indicates RAM input (pixel number), and a column with a minus sign indicates RAM output (pixel number). In particular, for each row of the searched reference image search area, the first eight horizontally adjacent pixels 1-8 are stored in each of the four respective rows (sections) of the local memory 22, and at the same time the corresponding horizontal sum And is stored in the modifying circuit 25. At this time, the horizontal sum output by the horizontal summing circuit 25 is a valid horizontal sum for the initial reference pixel array (macroblock). Then, for each single pixel shift, as the horizontal search through the search area of the reference picture progresses, the address counter is incremented by one to designate pixel i, where i = 1 to 8 and the count value is the count end value (8). Thus, the previous pixel value for each row of the local memory 22 is read from the currently addressed position in the local memory 22 and applied to the subtract (-) input of each horizontal summation circuit 25, At the same time that a new pixel value for each row of the local memory 22 is written to the currently addressed location in the local memory 22, the sum (+) input of each horizontal summation circuit 25 and the 4- And applied to each input of the vertical sum adder circuit 27. Thus, after each single pixel shift, the updated total set of horizontal sums will be output by the horizontal summation circuit 25, and the updated vertical sum of the entire set will be output by the shift register 29. [

예를 들면, 도 5에 도시된 것으로 알 수 있는 바와 같이, 제 1 8개의 화소가 로컬 메모리(22)의 적합한 행에 기입된 후에, 기준 화소 어레이는 우측으로 1화소만큼 이동될 것이고, 화소 번호 1이 로컬 메모리(22)로부터 읽혀지고 화소 번호 9로 대치될 것이며, 다음에, 기준 화소 어레이는 우측으로 1화소만큼 이동될 것이고 화소 번호 2는 로컬 메모리(22)로부터 읽혀지고 화소 번호 10으로 대치될 것이며, 다음에, 기준 화소 어레이는 우측으로 1화소만큼 이동될 것이고, 화소 번호 3은 로컬 메모리(22)로부터 읽혀지고 화소번호 11로 대치될 것이며, 다음에, 기준 화소 어레이는 우측으로 1화소만큼 이동될 것이고 화소번호 4는 로컬 메모리(22)로부터 읽혀지고 화소번호 12로 대치될 것이며, 다음에, 기준 화소 어레이는 우측으로 1화소만큼 이동될 것이고 화소 번호 5는 로컬 메모리(22)로부터 읽혀지고 화소번호 13으로 대치될 것이며, 다음에, 기준 화소 어레이는 우측으로 1화소만큼 이동될 것이며 화소 번호 6이 로컬 메모리(22)로부터 읽혀지고 화소번호 14로 대치될 것이며, 다음에 기준 화소 어레이는 우측으로 1화소만큼 이동될 것이며 화소 번호 7이 로컬 메모리(22)로부터 읽혀지고 화소번호 15로 대치될 것이며, 다음에, 기준 화소 어레이는 우측으로 1화소만큼 이동될 것이며 화소 번호 8이 로컬 메모리(22)로부터 읽혀지고 화소번호 16으로 대치될 것이며, 다음에, 기준 화소 어레이는 우측으로 1화소만큼 이동될 것이며 화소 번호 9가 로컬 메모리(22)로부터 읽혀지고 화소번호 17로 대치될 것이며, 다음에, 기준 화소 어레이는 우측으로 1화소만큼 이동될 것이며 화소 번호 10이 로컬 메모리(22)로부터 읽혀지고 화소번호 18로 대치될 것이며, 마지막으로 기준 화소 어레이는 우측으로 1화소만큼 이동될 것이며 화소 번호 11이 로컬 메모리(22)로부터 읽혀지고 화소번호 19로 대치되는 등이 될 것이다.5, after the first eight pixels are written to the appropriate row of the local memory 22, the reference pixel array will be shifted by one pixel to the right, and the pixel number < RTI ID = 0.0 > 1 will be read from local memory 22 and replaced with pixel number 9 and then the reference pixel array will be shifted by one pixel to the right and pixel number 2 will be read from local memory 22 and replaced with pixel number 10 The reference pixel array will be shifted by one pixel to the right and pixel number 3 will be read from local memory 22 and replaced by pixel number 11 and then the reference pixel array will be shifted to the right by one pixel Pixel number 4 will be read from local memory 22 and replaced by pixel number 12 and then the reference pixel array will be shifted by one pixel to the right and pixel number 5 Will be read from local memory 22 and replaced with pixel number 13 and then the reference pixel array will be shifted by one pixel to the right and pixel number 6 will be read from local memory 22 and replaced by pixel number 14 , Then the reference pixel array will be moved by one pixel to the right and pixel number 7 will be read from local memory 22 and replaced by pixel number 15 and then the reference pixel array will be shifted by one pixel to the right Pixel number 8 will be read from local memory 22 and replaced by pixel number 16 and then the reference pixel array will be shifted by one pixel to the right and pixel number 9 is read from local memory 22 and pixel number 17 The reference pixel array will then be shifted by one pixel to the right, pixel number 10 is read from the local memory 22, 18, and finally the reference pixel array will be shifted by one pixel to the right and pixel number 11 will be read from local memory 22 and replaced with pixel number 19, and so on.

도 6에서, 본 발명의 구현예를 구성하는 필드 기반 움직임 추정 탐색 엔진(40)의 블록도를 볼 수 있다. 도시된 바와 같이, 탐색 엔진(40)은 필드 1 직교-합 발생기(20a)(도 2에 도시된 것과 같음) 및 병렬 필드 2 직교-합 발생기(20b)(도 2에 도시한 것과 같음)를 포함한다. 필드 1 직교-합 발생기(20a)는 수평 탐색 동작 동안 필드 1 기준 화소 어레이의 각각의 1화소 이동시 필드 1 앵커 메모리(45)로부터 4개의 새로운 화소를 병렬 라인(44)을 통해 수신하며, 필드 2 직교-합 발생기(20b)는 수평 탐색 동작 동안 필드 2 기준 화소 어레이의 각각의 1화소 이동시 필드 2 앵커 메모리(47)로부터 4개의 새로운 화소를 병렬 라인(46)을 통해 수신한다. 필드 1 직교-합 발생기(50a)는 필드 1 코드화된 화상 메모리(52)로부터, 현재 부호화되는 필드 1 매크로블록(즉, 코드화된 매크로블록)의 화소들을 수신하며, 필드 2 직교-합 발생기(50b)는 필드 2 코드화된 화상 메모리(54)로부터, 필드 2 코드화된 매크로블록의 화소들을 수신한다. 필드 1 직교-합 발생기(50a)는 필드 1 코드화된 매크로블록의 직교-합 유형을 나타내는 직교 합의 세트 전체(수평 및 수직 모두)를 그 출력에서 생성하며, 필드 2 직교-합 발생기(50b)는 필드 2 코드화된 매크로블록의 직교-합 유형을 나타내는 직교 합의 세트 전체를 그 출력에서 생성한다.In FIG. 6, a block diagram of a field-based motion estimation search engine 40 that constitutes an embodiment of the present invention can be seen. As shown, the search engine 40 includes a field 1 orthogonal-sum generator 20a (as shown in Figure 2) and a parallel field 2 orthogonal-sum generator 20b (as shown in Figure 2) . The field 1 orthogonal sum generator 20a receives four new pixels from the field one anchor memory 45 on the parallel line 44 during each one pixel shift of the field one reference pixel array during the horizontal search operation and the field one The orthogonal generator 20b receives four new pixels from the field 2 anchor memory 47 via the parallel line 46 during each one pixel shift of the field 2 reference pixel array during the horizontal search operation. The field 1 orthogonal sum generator 50a receives the pixels of the currently field 1 macroblock to be coded (i.e., coded macroblock) from the field 1 coded picture memory 52, and the field 2 orthogonal-sum generator 50b Receives the pixels of the field 2 coded macro block from the field 2 coded image memory 54. [ The field 1 orthogonal sum generator 50a generates at its output the entire orthogonal sum set (both horizontal and vertical) representing the orthogonal sum type of the field 1 coded macroblocks, and the field 2 orthogonal sum generator 50b generates The entire set of orthonormal expressions representing the orthogonal sum type of the field 2 coded macroblock is generated at its output.

도 6에서 계속하여, 탐색 엔진(40)은 한 세트의 입력에서는 현재의 기준 화소 어레이의 직교-합 유형을 수신하고 또 다른 세트의 입력에서는 필드 1 코드화된 매크로블록의 직교-합 유형을 수신하고, 이어서 규정된 탐색 메트릭(예를 들면, MAE)에 따라, 필드 1 앵커 메모리(45)의 명시된 탐색 영역으로부터 기준 화소 어레이들 중 어느 것이 코드화된 매크로블록에 대한 최상의 일치를 구성하는지 판정하여, "필드 1 움직임 벡터(Field 1 Motion Vector)"로서 결과를 출력하는 필드 1 최상의 일치 추정기(60)를 더 포함한다. 마찬가지로, 탐색 엔진(40)은 한 세트의 입력에서는 현재의 기준 화소 어레이의 직교-합 유형을 입력하고 또 다른세트의 입력에서는 필드 2 코드화된 매크로블록의 직교-합 유형을 입력하며, 이어서 규정된 탐색 메트릭(예를 들면, MAE)에 따라, 필드 2 앵커 메모리(47)의 명시된 탐색 영역으로부터 기준 화소 어레이들 중 어느 것이 코드화된 매크로블록에 대한 최상의 일치를 구성하는지 판정하여, "필드 2 움직임 벡터(Field 2 Motion Vector)"로서 결과를 출력하는 필드 2 최상의 일치 추정기(60)를 더 포함한다. 보다 효율적인 설계 구현을 위해서, 탐색 엔진 RAM들이 양 필드에 대해 동일한 방식으로 제어되기 때문에 이들 RAM들을 결합하여 양 필드용의 데이터를 저장할 수 있음을 쉽게 알 것이다.Continuing with Fig. 6, the search engine 40 receives the orthogonal sum type of the current reference pixel array in one set of inputs and the orthogonal sum type of the field 1 coded macroblock in the other set of inputs , Then determines which of the reference pixel arrays constitutes the best match for the coded macroblock from the specified search area of the field 1 anchor memory 45, according to the prescribed search metric (e.g., MAE) Field 1 best match estimator 60 that outputs the result as " Field 1 Motion Vector ". Similarly, the search engine 40 inputs the orthogonal sum type of the current reference pixel array in one set of inputs and the orthogonal sum type of the field 2 coded macroblocks in the other set of inputs, According to the search metric (e.g., MAE), it is determined which of the reference pixel arrays from the specified search area of the field 2 anchor memory 47 constitutes the best match for the coded macroblock, Field 2 best match estimator 60 that outputs the result as a " Field 2 Motion Vector ". For a more efficient design implementation, it will be readily seen that these RAMs can be combined to store data for both fields since the search engine RAMs are controlled in the same way for both fields.

전술한 바와 같이, DFCU의 계산 복잡도는 움직임 추정 회로(탐색 엔진)의 비용의 주요 요인이다. 그러나, 본 발명의 움직임 추정 방법은 DFCU의 비용 및 복잡도를 극적으로 감축시키기 때문에, 움직임 추정 탐색에 있어 데시메이트되지 않은 또는 로우 레벨의 데시메이트된 비디오로 시작하는 것이 훨씬 보다 실제적으로 됨으로써 움직임 추정 탐색 정확도, 및 결국에는 화질을 극적으로 향상시킨다. 이와 관련하여, 본 발명의 움직임 추정 방법은 움직임 추정의 단(stage) 수를 상당히 감소시킬 뿐만 아니라, 데시메이션 단이 모두 제거되어 필요한 특별한 비디오 필터링 회로를 제거할 수 있게 한다. 이러한 하드웨어 감축에 의해서, 탐색 처리는 어쩌면 적당한 비용으로 화질을 상당히 개선하는 데시메이트되지 않은 비디오로 시작될 수도 있다.As described above, the computational complexity of the DFCU is a major factor in the cost of the motion estimation circuit (search engine). However, since the motion estimation method of the present invention dramatically reduces the cost and complexity of the DFCU, it becomes much more practical to start with decimated video that is not decimated or low-level in the motion estimation search, Accuracy, and eventually dramatically improves picture quality. In this regard, the motion estimation method of the present invention not only significantly reduces the number of stages of motion estimation, but also removes all of the decimation stages to eliminate the special video filtering circuitry required. With this hardware reduction, the search process may begin with a video that is not decimated, which can significantly improve image quality at reasonable cost.

본 발명의 움직임 추정 방법으로 실현되는 또 다른 이점은 크게 향상된 동작속도이다. 통상, 실제로 단일 클럭 사이클 내에 결과를 얻을 가능성을 제외하고, 배열된 휘도 크기들을 비교하기 위해서는 복수의 논리단이 필요하다. 이러한 이유로, 시스템 클럭 주파수를 줄여야 하거나 시스템은 논리 자원들을 이용하여 파이프라인으로 되어야 한다.Another advantage realized by the motion estimation method of the present invention is greatly improved motion speed. Usually, a plurality of logical stages are required to compare the arranged luminance magnitudes, except in practice the possibility of obtaining results within a single clock cycle. For this reason, the system clock frequency must be reduced or the system must be pipelined using logical resources.

이들 이점 외에도, 본 발명의 바람직한 실시예는 전술한 직교-합 블록 일치를 사용하여 움직임 추정 방법을 크게 가속화한다. 더구나, 본 발명은 현재 이용되는 기술에 비해 다음의 3가지 현저한 이점을 달성한다.In addition to these advantages, the preferred embodiment of the present invention greatly accelerates the motion estimation method using the orthogonal-sum block matching described above. Furthermore, the present invention achieves the following three significant advantages over currently available techniques.

(1) 직교-합 계산에서 상당한 하드웨어 감축. 얻을 수 있는 합들 사용하여 앵커 화상 내 매크로블록 이동으로 직교 합들이 갱신되어 새로운(갱신된) 직교 합들이 생성되므로, 계산 하드웨어를 현저히 덜 요하는 훨씬 적은 계산량(effort)이 가능하게 된다.(1) substantial hardware reduction in orthogonal summing. As the macroblock moves within the anchor picture using the available sums, the orthogates are updated to produce new (updated) orthogonals, thus allowing much less computational effort that requires significantly less computational hardware.

(2) 직교 합을 생성하는 가산기 회로의 긴 체인이 제거됨으로써 동작속도가 상당히 가속화된다.(2) the operating speed is significantly accelerated by removing the long chain of adder circuits that produce orthogonal sum.

(3) 본 발명은 비교하기 위해 모든 엔진 메모리의 출력을 즉시 이용할 수 있는 것을 필요로하는 것으로 현재 이용할 수 있는 기술에서 필요로 하는 바와 같이 탐색 데이터를 저장하기 위해서 대규모의 레지스터 매트릭스를 사용하기보다는 탐색 데이터를 저장하는데 RAM을 사용할 수 있도록 함으로써 상당한 비용 감축을 제공한다.(3) The present invention requires that the output of all engine memories be immediately available for comparison, and that rather than using a large-scaled register matrix to store the search data as required by presently available techniques, It provides significant cost savings by allowing the use of RAM to store data.

(4) 신규한 구성으로 인해, 본 발명에 따른 움직임 추정 탐색 엔진은 최신의 메모리 기술을 사용하여 단일 실리콘 소자에 집적된 논리 및 메모리로 구현됨으로써, 특히 넓은 내부 버스 폭에 의해 시스템 성능이 향상될 수 있다.(4) Due to the novel structure, the motion estimation search engine according to the present invention can be implemented in logic and memory integrated in a single silicon device using the latest memory technology, .

본 발명의 바람직한 실시예는, 복수의 움직임 추정 탐색 반복의 각각 동안 수평 탐색 방향으로 기준 화소 어레이가 1화소만큼 이동되는 움직임 추정 탐색 동안에, 기준 화소 어레이의 수평 행에 포함된 N개의 화소의 값들의 합을 나타내는 수평 합을 갱신하는 RAM-기반 탐색 엔진으로 요약될 수 있다. RAM-기반 탐색 엔진은 기준 화소 어레이의 어떤 이동에 앞서 기준 화소 어레이의 수평 행에 포함된 N 화소의 값들을 축적하여 수평 합을 생성하며, 다음 식,A preferred embodiment of the present invention is characterized in that during a motion estimation search in which the reference pixel array is shifted by one pixel in the horizontal search direction during each of a plurality of motion estimation search iterations, the values of N pixels included in the horizontal row of the reference pixel array And a RAM-based search engine that updates the horizontal sum representing the sum. The RAM-based search engine accumulates the values of the N pixels included in the horizontal row of the reference pixel array prior to any movement of the reference pixel array to generate a horizontal sum,

OSNEW= OSOLD- a0+ an0 OS NEW = OS OLD - a 0 + a n0

여기서, OSNEW는 수평 방향으로 1화소만큼 기준 화소 어레이의 최종 이동 후의 새로운 수평 합이고, OSOLD는 수평 방향으로 1화소만큼 기준 화소 어레이의 최종 이동 전의 수평합이며, a0는 수평 방향으로 1화소만큼 기준 화소 어레이의 최종 이동 전에 기준 화소 어에리의 수평 원점이었던 화소의 화소값이고, an0는 수평 방향으로 1화소만큼 기준 화소 어레이의 최종 이동의 결과로서 기준 화소 어레이의 이전 위치에 관하여 우측으로 1화소만큼 기준 화소 어레이가 이동된 후의 기준 화소 어레이의 수평 원점인 화소의 화소값인, 상기 식을 사용하여 새로운 수평 합을 계산함으로써 수평합을 갱신하는 수평 합 수정기 회로를 포함한다.Here, OS NEW is a new horizontal sum after the final movement of the reference pixel array by one pixel in the horizontal direction, OS OLD is the horizontal sum of the reference pixel array before the final movement by one pixel in the horizontal direction, and a 0 is 1 Pixel is the pixel value of the pixel that was the horizontal origin of the reference pixel ery before the last movement of the reference pixel array by pixels and a n0 is the pixel value of the right pixel of the reference pixel array as a result of the final movement of the reference pixel array by one pixel in the horizontal direction Which is a pixel value of a pixel which is the horizontal origin of the reference pixel array after the reference pixel array is shifted by one pixel, by updating the horizontal sum by calculating a new horizontal sum using the above equation.

본 발명의 바람직한 실시예를 상세히 기술하였으나, 기 기술 분야에 숙련된 사람들에게 나타날 수 있는 본 명세서에 교시된 기본 발명적 개념의 많은 변경들 및/또는 변형들은 첨부된 청구범위에 정한 바와 같은 본 발명의 범위 내에 속할 것임을 명백히 알 것이다. 예를 들면, 본 발명을 디지털 비디오 인코더에 적용할 수 있는 것으로 기술하였지만, 본 발명은 어떤 특정 응용에 한정되는 것이 아니며, 예를 들면, 텔레비전 또는 다른 화상 디스플레이 시스템의 요건을 수용하도록 수신된 화상을 부호화하는 것이 필요할 때 텔레비전의 디코더부분이나 그 외 화상 디스플레이 시스템에 사용될 수 있음을 명백히 알 것이다. 청구범위에서, 괄호 내 임의의 참조 부호는 청구범위를 한정하는 것으로 해석되지 않을 것이다. "포함하는(comprising)"이라는 말은 청구범위에 열거된 것들 이외의 구성요소나 단계들의 존재를 제외시키는 것은 아니다. 구성 요소 앞의 선행사 "한(a 또는 an)"은 이러한 복수의 구성 요소들의 존재를 제외시키는 것이 아니다. 본 발명은 몇몇 구별되는 구성요소를 포함하는 하드웨어, 및 적합하게 프로그램된 컴퓨터에 의해 구현될 수 있다. 몇몇 수단을 열거한 장치 청구항에서, 이들 수단 몇몇은 하나의 동일한 하드웨어로 실현될 수 있다.Although the preferred embodiments of the present invention have been described in detail, many changes and / or modifications of the basic inventive concept as taught by those skilled in the art may be made by those skilled in the art, It will be within the scope of the present invention. For example, although the present invention has been described as being applicable to digital video encoders, the present invention is not limited to any particular application and may include, for example, receiving a received image to accommodate the requirements of a television or other image display system It will be apparent that when coding is needed, it can be used in the decoder portion of a television or other image display system. In the claims, any reference signs in parentheses shall not be construed as limiting the claim. The word " comprising " does not exclude the presence of elements or steps other than those listed in a claim. The ancestor " a or an " preceding an element does not exclude the presence of such plurality of elements. The present invention may be implemented by means of hardware, including some distinctive components, and by means of a suitably programmed computer. In a device claim enumerating some means, some of these means may be realized in one and the same hardware.

Claims (14)

복수의 행들 및 열들의 개개의 화소값들을 갖는 제 1 화소 어레이, 및 복수의 행들 및 열들의 개개의 화소값들을 갖는 제 2 화소 어레이를 비교하는 방법에 있어서,A method of comparing a first pixel array having individual pixel values of a plurality of rows and columns and a second pixel array having individual pixel values of a plurality of rows and columns, 제 1 세트의 수평합들을 생성하기 위해 상기 제 1 화소 어레이의 각 행의 개개의 화소값들의 개개의 화소값들을 합하는 단계,Summing individual pixel values of individual pixel values of each row of the first pixel array to produce a first set of horizontal sums, 제 1 세트의 수직합들을 생성하기 위해 상기 제 1 화소 어레이의 각 열의 개개의 화소값들의 개개의 화소값들을 합하는 단계,Summing individual pixel values of individual pixel values of each column of the first pixel array to produce a first set of vertical sums, 제 2 세트의 수평합들을 생성하기 위해 상기 제 2 화소 어레이의 각 행의 개개의 화소값들의 개개의 화소 값들을 합하는 단계,Summing individual pixel values of individual pixel values of each row of the second pixel array to produce a second set of horizontal sums, 제 2 세트의 수직합들을 생성하기 위해 상기 제 2 화소 어레이의 각 열의 개개의 화소값들의 개개의 화소 값들을 합하는 단계로서,Summing individual pixel values of individual pixel values of each column of the second pixel array to produce a second set of vertical summations, 상기 제 1 세트의 수평합들과 상기 제 1 세트의 수직합들은 제 1 세트의 직교 합들(orthogonal sums)을 포함하고,Wherein the first set of horizontal sums and the first set of vertical sums comprise a first set of orthogonal sums, 상기 제 2 세트의 수평합들과 상기 제 2 세트의 수직합들은 제 2 세트의 직교 합들을 포함하는, 상기 제 2 화소 어레이의 각 열의 개개의 화소값들의 개개의 화소 값들을 합하는 단계,Summing individual pixel values of individual pixel values of each column of the second pixel array, wherein the second set of horizontal sums and the second set of vertical sums comprise a second set of orthogonal sums, 상기 제 1 및 제 2 세트의 직교 합들을 비교하는 단계를 포함하는, 제 1 및 제 2 화소 어레이 비교 방법.And comparing the first and second sets of orthogonals. ≪ RTI ID = 0.0 > 11. < / RTI > 제 1 항에 있어서, 상기 제 1 화소 어레이는 현재 부호화되는 화상의 데시메이트되지 않은(undecimated) 매크로블록을 구비하며, 상기 제 2 화소 어레이는 기준 화상의 탐색 영역에 데시메이트되지 않은 매크로블록을 구비하는, 제 1 및 제 2 화소 어레이 비교 방법.2. The apparatus of claim 1, wherein the first pixel array comprises undecimated macroblocks of an image to be currently coded, and the second pixel array comprises macroblocks that are not decimated in a search region of a reference image The first and second pixel array comparison methods. 제 1 항에 있어서, 상기 제 1 화소 어레이는 현재 부호화되는 화상의 데시메이트된 매크로블록을 구비하며, 상기 제 2 화소 어레이는 기준 화상의 탐색 영역에 데시메이트된 매크로블록을 구비하는, 제 1 및 제 2 화소 어레이 비교 방법.2. The apparatus of claim 1, wherein the first pixel array comprises decimated macroblocks of the currently encoded picture, and the second pixel array comprises macroblocks decimated in a search region of a reference picture. A second pixel array comparison method. 제 1 항에 있어서, 상기 제 1 합산 단계는 움직임 추정 탐색 동안 기준 화소 어레이의 수평 행에 포함된 N개의 화소들의 값들의 합을 나타내는 수평합을 갱신하는 단계를 포함하며, 상기 갱신 단계는,2. The method of claim 1, wherein the first summing step includes updating a horizontal sum indicating a sum of values of N pixels included in a horizontal row of a reference pixel array during a motion estimation search, 상기 수평합을 계산하는 단계,Calculating the horizontal sum, 상기 기준 화소 어레이를 수평 방향으로 1화소만큼 이동시키는 단계, 및Moving the reference pixel array horizontally by one pixel, and 이전에 계산된 수평합에 새로운 화소값을 더하고, 상기 이동 단계 후에 상기 기준 화소 어레이의 수평행에 더 이상 포함되지 않는 이전 화소값을 상기 이전에 계산된 수평합에서 감산함으로써 새로운 수평합을 생성하도록 상기 수평합을 갱신하는 단계를 포함하는, 제 1 및 제 2 화소 어레이 비교 방법.To add a new pixel value to the previously calculated horizontal sum and to subtract the previous pixel value that is no longer included in the horizontal line of the reference pixel array after the shifting step from the previously calculated horizontal sum to generate a new horizontal sum And updating the horizontal sum. ≪ RTI ID = 0.0 > 11. < / RTI > 제 4 항에 있어서, 수평 탐색 범위의 경계에 도달할 때까지 상기 이동 단계 및 갱신 단계를 반복하는 단계를 더 포함하는, 제 1 및 제 2 화소 어레이 비교 방법.5. The method of claim 4, further comprising repeating the moving and updating steps until a boundary of the horizontal search range is reached. 제 4 항에 있어서,5. The method of claim 4, 상기 계산 단계는 상기 이동 단계를 수행하기 전에 상기 기준 화소 어레이의 수평행에 포함된 상기 N개의 화소들의 값들을 축적하는 수평합 수정기 회로(25)를 사용함으로써 수행되며,The calculating step is performed by using a horizontal summing circuit 25 for accumulating the values of the N pixels included in the horizontal line of the reference pixel array before performing the shifting step, 상기 수평합을 갱신하는 단계는 다음 식,The step of updating the horizontal sum may comprise: OSNEW= OSOLD- a0+ an0 OS NEW = OS OLD - a 0 + a n0 여기서, OSNEW는 새로운 수평 합이고, OSOLD는 상기 이동 단계의 최종 반복 이전의 수평합이고, a0는 상기 이동 단계의 최종 반복 이전에 상기 기준 화소 어레이의 수평 원점이었던 상기 화소의 화소값이며, an0는 상기 이동 단계의 최종 반복의 결과로서 상기 기준 화소 어레이가 상기 기준 화소 어레이의 이전 위치에 대해 우측으로 1화소만큼 이동된 후의 상기 기준 화소 어레이의 수평 원점인 상기 화소의 화소값인, 상기 식을 사용하여 상기 새로운 수평 합을 계산하기 위해 상기 수평합 수정기 회로(25)를 사용함으로써 수행되는, 제 1 및 제 2 화소 어레이 비교 방법.Where OS NEW is a new horizontal sum, OS OLD is the horizontal sum before the last iteration of the shifting step, and a 0 is the pixel value of the pixel that was the horizontal origin of the reference pixel array before the final iteration of the shifting step and a n0 is the pixel value of the pixel which is the horizontal origin of the reference pixel array after the reference pixel array is shifted by one pixel to the right with respect to the previous position of the reference pixel array as a result of the final iteration of the shifting step, Is performed by using the horizontal summation circuit (25) to calculate the new horizontal sum using the above equation. 제 1 항에 있어서, 기준 화소 어레이의 각각의 N개의 행들에 대한 수평합을 생성하고 동시에 기준 화상의 규정된 탐색 영역의 수평 움직임 추정 탐색의 각각의 반복마다 상기 기준 화소 어레이의 각각의 M개의 열들에 대한 수직합을 생성하는 단계를 더 포함하며, 상기 방법은,2. The method of claim 1 further comprising: generating a horizontal sum for each N rows of the reference pixel array and for each iteration of a horizontal motion estimation search of a defined search area of a reference picture, And generating a vertical sum for < RTI ID = 0.0 > (a) 메모리(22)의 N개의 행들 각각에 M개의 개개의 화소값들을 저장하고, 상기 메모리(22)의 M개의 열들 각각에 N개의 개개의 화소값들을 저장함으로써 상기 기준 화소 어레이의 초기 위치에 대응하는 초기 화소값들을 저장하는 단계,(a) storing M individual pixel values in each of the N rows of the memory 22 and storing N individual pixel values in each of the M columns of the memory 22, Storing initial pixel values corresponding to the pixel values, (b) 상기 기준 화소 어레이의 상기 초기 위치의 N개의 행들 각각에 대한 상기 수평합을 계산하고 상기 계산된 수평합들 각각을 저장하는 단계,(b) calculating the horizontal sum for each of the N rows of the initial position of the reference pixel array and storing each of the calculated horizontal sums, (c) 상기 기준 화소 어레이의 상기 초기 위치의 M개의 열들 각각에 대한 상기 수직합을 계산하고, 상기 계산된 수직합들을 시프트 레지스터(29)에 저장하는 단계,(c) calculating the vertical sum for each of the M columns of the initial position of the reference pixel array, and storing the calculated vertical sums in a shift register (29) (d) 수평 방향으로 1화소만큼 상기 기준 화소 어레이를 이동시키는 단계,(d) moving the reference pixel array by one pixel in the horizontal direction, (e) 상기 이동 단계에 응답하여,(e) in response to the moving step, i) 상기 수평 방향으로 1화소만큼 이동된 후에 상기 기준 화소 어레이의 최종 열에 대응하는 상기 기준 화소 어레이 각각의 N개의 행들에 대해 하나씩, N개의 새로운 화소값들을 제공하는 단계,i) providing N new pixel values, one for each of the N rows of each of the reference pixel arrays corresponding to the last column of the reference pixel array after being shifted by one pixel in the horizontal direction, ii) 새로운 수직합을 생성하기 위해 상기 N개의 새로운 화소값들을 합하고, 상기 새로운 수직합을 상기 시프트 레지스터(29)에 인가하며, 상기 이전에 저장된 수직합을 상기 움직임 추정 탐색의 수평 방향으로 1워드만큼 시프트시켜, 제 1 저장된 수직합은 폐기되고 상기 새로운 수직합은 최종 저장된 수직합의 이전 저장위치에 저장하는 단계,ii) summing the N new pixel values to generate a new vertical sum, applying the new vertical sum to the shift register (29), adding the previously stored vertical sum to one word in the horizontal direction of the motion estimation search So that the first stored vertical sum is discarded and the new vertical sum stored at a previous storage location of the last stored vertical sum, iii) 한 세트의 M개의 새로운 수직합들을 상기 시프트 레지스터(29)로부터 출력하는 단계,iii) outputting a set of M new vertical summations from the shift register 29, iv) 상기 이전에 계산된 수평합에 상기 N개의 새로운 화소값들 각각을 더하고, 상기 수평 방향으로 1화소만큼 이동된 후에 상기 기준 화소 어레이의 M개의 열들에 더 이상 포함되지 않는 각각의 이전 화소값을 각각의 N개의 행들에 대해 상기 이전에 계산된 수평합에서 감산함으로써, 한 세트의 N개의 새로운 수평합들을 생성하도록 상기 수평합들 각각을 갱신하는 단계, 및iv) adding each of the N new pixel values to the previously calculated horizontal sum, and adding each previous pixel value that is no longer included in M columns of the reference pixel array after shifting by one pixel in the horizontal direction Updating each of the horizontal sums to produce a set of N new horizontal sums by subtracting the horizontal sum from the previously calculated horizontal sum for each N rows, v) 상기 한 세트의 N개의 새로운 수평합들을 출력하는 단계를 더 포함하는, 제 1 및 제 2 화소 어레이 비교 방법.v) outputting the set of N new horizontal sums. < RTI ID = 0.0 > 11. < / RTI > 제 7 항에 있어서, 상기 단계(b)는 상기 메모리(22)의 N개의 행 각각에 대응하는 N개의 수평 합 수정기 회로들(25)을 사용하여 수행됨으로써, 상기 수평 합 수정기 회로들(25) 각각은 상기 메모리(22)의 각각의 행에 저장된 M개의 개개의 화소값들의 값들을 축적하는, 제 1 및 제 2 화소 어레이 비교 방법.8. The method of claim 7, wherein step (b) is performed using N horizontal summing circuits (25) corresponding to each of the N rows of the memory (22) 25) accumulates the values of the M individual pixel values stored in each row of the memory (22). 현재 인코딩되는 화상의 제 1 화소 어레이와 기준 화상의 탐색 영역의 복수의 제 2 화소 어레이들간의 최상의 일치를 결정하기 위한 방법으로서, 상기 제 1 및 제 2 화소 어레이들은 복수의 행 및 열의 개개의 화소값들을 포함하는, 상기 최상의 일치 결정 방법에 있어서,A method for determining a best match between a first pixel array of a currently encoded image and a plurality of second pixel arrays of a search region of a reference image, the first and second pixel arrays comprising a plurality of pixels Values, the method comprising: 상기 제 1 화소 어레이의 행들의 개개의 화소값들의 합들을 나타내는 한 세트의 수평합들과 상기 제 1 화소 어레이의 열들의 개개의 화소값들의 합들을 나타내는 한 세트의 제 1 수직합들로 구성된 상기 제 1 화소 어레이의 제 1 직교-합 유형(signature)을 제공하는 단계,And a set of first vertical sums representing a set of horizontal sums representing sums of individual pixel values of the rows of the first pixel array and a sum of individual pixel values of the columns of the first pixel array. Providing a first orthogonal sum signature of the first pixel array, 복수의 제 2 직교-합 유형들로서, 상기 복수의 제 2 화소 어레이들 중 적어도 선택된 어레이들의 각각에 대해, 상기 각각의 제 2 화소 어레이들의 행들의 개개의 화소값들의 합들을 나타내는 한 세트의 수평합들과 상기 각각의 제 2 화소 어레이들의 열들의 개개의 화소값들의 합들을 나타내는 한 세트의 수직합들로 구성되는 각각의 상기 복수의 제 2 화소 직교-합 유형들을 제공하는 단계, 및A plurality of second orthogonal sum types, for each of at least selected ones of the plurality of second pixel arrays, a set of horizontal sums representing the sum of the pixel values of the respective rows of the respective second pixel arrays Providing a respective one of said plurality of second pixel orthogonality types consisting of a set of vertical sums representing the sum of the pixel values of the respective columns of pixels and the respective pixel values of the columns of each second pixel array, 상기 제 1 및 상기 제 2 화소 어레이들간의 최상의 일치를 결정하기 위해서 상기 제 2 직교-합 유형들 각각과 상기 제 1 직교-합 유형을 비교하는 단계를 포함하는, 최상의 일치 결정 방법.Sum type and each of the second orthogonal sum types to determine a best match between the first and second pixel arrays. 현재 인코딩되는 화상의 제 1 화소 어레이와 기준 화상의 탐색 영역의 복수의 제 2 화소 어레이들간의 최상의 일치를 결정하기 위한 움직임 추정 장치로서, 상기 제 1 및 제 2 화소 어레이들은 복수의 행 및 복수의 열의 개개의 화소값들을 포함하는, 상기 움직임 추정 장치에 있어서,A motion estimation apparatus for determining a best match between a first pixel array of an image to be currently encoded and a plurality of second pixel arrays of a search region of a reference picture, the first and second pixel arrays comprising a plurality of rows and a plurality The motion estimation apparatus comprising pixel values of individual columns, 상기 제 1 화소 어레이의 행들의 개개의 화소값들의 합들을 나타내는 한 세트의 수평합들과 상기 제 1 화소 어레이의 열들의 개개의 화소값들의 합들을 나타내는 한 세트의 제 1 수직합들로 구성된 상기 제 1 화소 어레이의 제 1 직교-합 유형(signature)을 제공하며, 복수의 제 2 직교-합 유형들로서, 상기 복수의 제 2 화소 어레이들 중 적어도 선택된 어레이들의 각각에 대해 상기 각각의 제 2 화소 어레이들의 행들의 개개의 화소값들의 합들을 나타내는 한 세트의 수평합들과 상기 각각의 제 2 화소 어레이들의 열들의 개개의 화소값들의 합들을 나타내는 한 세트의 수직합들로 구성되는 각각의 상기 복수의 제 2 화소 직교-합 유형들을 제공하는 수단, 및And a set of first vertical sums representing a set of horizontal sums representing sums of individual pixel values of the rows of the first pixel array and a sum of individual pixel values of the columns of the first pixel array. A plurality of second orthogonal sum types for each of the at least selected arrays of the plurality of second pixel arrays, each of the plurality of second orthogonal sum types providing a first orthogonal sum signature of the first pixel array, Each of said plurality comprising a set of horizontal sums representing sums of individual pixel values of rows of arrays and a set of vertical sums representing sums of individual pixel values of columns of each second pixel array, Means for providing second pixel orthogonal sum types of pixels, and 상기 제 1 및 상기 제 2 화소 어레이들간의 최상의 일치를 결정하기 위해서 상기 제 2 직교-합 유형들 각각과 상기 제 1 직교-합 유형을 비교하는 수단을 포함하는, 움직임 추정 장치.Means for comparing each of said second orthogonal sum types with said first orthogonal sum type to determine a best match between said first and said second pixel arrays. 제 10 항에 있어서, 상기 제 1 및 제 2 화소 어레이들은 MPEG 표준에 의해 규정된 구조를 갖는 각각의 매크로블록들인, 움직임 추정 장치.11. The apparatus of claim 10, wherein the first and second pixel arrays are respective macroblocks having a structure defined by an MPEG standard. 제 10 항에 있어서, 움직임 추정 탐색 동안 기준 화소 어레이의 수평 행에 포함된 N개의 화소들의 값들의 합을 나타내는 수평합을 갱신하는 회로(20)를 더 구비하며, 상기 갱신회로(20)는,11. The apparatus of claim 10, further comprising a circuit (20) for updating a horizontal sum indicating a sum of values of N pixels included in a horizontal row of a reference pixel array during a motion estimation search, 상기 수평합을 계산하는 수단,Means for calculating the horizontal sum, 수평 방향으로 1화소만큼 상기 기준 화소 어레이를 이동시키는 수단, 및Means for moving the reference pixel array by one pixel in the horizontal direction, and 이전에 계산된 수평합에 새로운 화소값을 더하고, 상기 수평 방향으로 1화소만큼 상기 기준 화소를 이동한 후에 상기 기준 화소 어레이의 수평행에 더 이상 포함되지 않는 이전 화소값을 상기 이전에 계산된 수평합에서 감산함으로써 새로운 수평합을 생성하도록 상기 수평합을 갱신하는 수단(25)을 포함하는, 움직임 추정 장치.Adding a new pixel value to a previously calculated horizontal sum, moving a reference pixel by one pixel in the horizontal direction, and then adding a previous pixel value that is no longer contained in the horizontal line of the reference pixel array to the previously calculated horizontal And means (25) for updating the horizontal sum to produce a new horizontal sum by subtracting from the sum. 제 10 항에 있어서, 기준 화소 어레이의 각각의 N개의 행들에 대한 수평합을 생성하는 것과 동시에 기준 화상의 규정전 탐색 영역의 수평 움직임 추정 탐색의 각각의 반복에 대해 상기 기준 화소 어레이의 각각의 M개의 열들에 대한 수직합을 생성하는 회로(20)를 더 구비하며, 상기 갱신회로(20)는,11. The method of claim 10, further comprising generating a horizontal sum for each N rows of the reference pixel array, and for each iteration of the horizontal motion estimation search of the pre- Further comprising a circuit (20) for generating a vertical sum for the plurality of columns, the update circuit (20) 메모리(22)의 N개의 행들 각각에 M개의 개개의 화소값들을 저장하고 상기 메모리(22)의 M개의 열들 각각에 N개의 개개의 화소값들을 저장함으로써 상기 기준 화소 어레이의 초기 위치에 대응하는 초기 화소값들을 저장하는 상기 메모리(22),Storing the M individual pixel values in each of the N rows of the memory 22 and storing N individual pixel values in each of the M columns of the memory 22 so that an initial The memory (22) for storing pixel values, 상기 기준 화소 어레이의 상기 초기 위치의 N개의 행들 각각에 대한 수평합을 계산하고 상기 계산된 수평합들 각각을 저장하는 수단(25),Means (25) for calculating a horizontal sum for each of the N rows of the initial position of the reference pixel array and for storing each of the calculated horizontal sums, 상기 기준 화소 어레이의 상기 초기 위치의 M개의 열들 각각에 대해 상기 수직합을 계산하는 수단(27),Means (27) for calculating the vertical sum for each of the M columns of the initial position of the reference pixel array, 상기 계산된 수직합들을 저장하는 시프트 레지스터(29),A shift register 29 for storing the calculated vertical sums, 수평 방향으로 1화소만큼 상기 기준 화소 어레이를 이동시키는 수단,Means for moving the reference pixel array by one pixel in the horizontal direction, 상기 수평 방향으로 1화소만큼의 상기 기준 화소 어레이의 각 이동에 응답하여,In response to each movement of the reference pixel array by one pixel in the horizontal direction, i) 상기 수평 방향으로 1화소만큼 이동된 후에 상기 기준 화소 어레이의 최종 열에 대응하는 상기 기준 화소 어레이 각각의 N개의 행들에 대해 하나씩, N개의 새로운 화소값들을 제공하고,i) providing N new pixel values, one for each of the N rows of each of the reference pixel arrays corresponding to the last column of the reference pixel array, after shifting by one pixel in the horizontal direction, ii) 새로운 수직합을 생성하기 위해 상기 N개의 새로운 화소값들을 합하고, 상기 새로운 수직합을 상기 시프트 레지스터(29)에 인가하며, 상기 이전에 저장된 수직합을 상기 움직임 추정 탐색의 수평 방향으로 1워드만큼 시프트시켜, 제 1 저장된 수직합은 폐기되고 상기 새로운 수직합은 최종 저장된 수직합의 이전 저장위치에 저장하고,ii) summing the N new pixel values to generate a new vertical sum, applying the new vertical sum to the shift register (29), adding the previously stored vertical sum to one word in the horizontal direction of the motion estimation search So that the first stored vertical sum is discarded and the new vertical sum is stored in the previous storage position of the last stored vertical sum, iii) 한 세트의 M개의 새로운 수직합들을 상기 시프트 레지스터(29)로부터 출력하고,iii) outputting a set of M new vertical summations from the shift register 29, iv) 상기 이전에 계산된 수평합에 상기 N개의 새로운 화소값들 각각을 더하고, 상기 수평 방향으로 1화소만큼 이동된 후에 상기 기준 화소 어레이의 M개의 열들에 더 이상 포함되지 않는 각각의 이전 화소값을 각각의 N개의 행들에 대해 상기 이전에 계산된 수평합에서 감산함으로써, 한 세트의 N개의 새로운 수평합들을 생성하도록 상기 수평합들 각각을 갱신하며,iv) adding each of the N new pixel values to the previously calculated horizontal sum, and adding each previous pixel value that is no longer included in M columns of the reference pixel array after shifting by one pixel in the horizontal direction For each of the N rows, from the previously calculated horizontal sum, thereby generating a set of N new horizontal sums, v) 상기 한 세트의 N개의 새로운 수평합들을 출력하기 위한 수단(25, 27, 29)을 포함하는, 움직임 추정 장치.v) means (25, 27, 29) for outputting the set of N new horizontal sums. 제 10 항에 있어서, 복수의 각각의 상기 움직임 추정 탐색을 반복하는 동안 수평 탐색 방향으로 상기 기준 화소 어레이가 1화소만큼 이동되는 움직임 추정 탐색 동안, 기준 화소 어레이의 수평행에 포함된 N개의 화소들의 값들의 합을 나타내는 수평 합을 갱신하는 회로(20)를 더 구비하며, 상기 갱신 회로(20)는 상기 기준 화소 어레이의 어떤 이동에 앞서 기준 화소 어레이의 수평 행에 포함된 N개의 화소들의 값들을 축적하여 상기 수평합을 생성하며, 다음 식,11. The method of claim 10, further comprising: during a motion estimation search in which the reference pixel array is shifted by one pixel in the horizontal search direction while repeating a plurality of the motion estimation searches, (20) for updating the horizontal sum indicating the sum of the values of the reference pixel array, wherein the updating circuit (20) updates the values of N pixels included in the horizontal row of the reference pixel array prior to any movement of the reference pixel array Accumulate to generate the horizontal sum, OSNEW= OSOLD- a0+ an0 OS NEW = OS OLD - a 0 + a n0 여기서, OSNEW는 상기 수평 방향으로 1화소만큼 상기 기준 화소 어레이의 최종 이동 후의 상기 새로운 수평 합이고, 상기 OSOLD는 수평 방향으로 1화소만큼 상기 기준 화소 어레이의 최종 이동 전의 상기 수평합이고, a0는 상기 수평 방향으로 1화소만큼 상기 기준 화소 어레이의 최종 이동 전에 상기 기준 화소 어레이의 수평 원점이었던 상기 화소의 화소값이며, an0는 상기 수평 방향으로 1화소만큼 상기 기준 화소 어레이의 최종 이동의 결과로서 상기 기준 화소 어레이가 상기 기준 화소 어레이의 이전 위치에 대해 우측으로 1화소만큼 이동된 후의 상기 기준 화소 어레이의 수평 원점인 상기 화소의 화소값인, 상기 식을 사용하여 상기 새로운 수평 합을 계산함으로써 상기 수평합을 갱신하는 수평 합 수정기 회로(25)를 포함하는, 움직임 추정 장치.Wherein OS NEW is the new horizontal sum after the last movement of the reference pixel array by one pixel in the horizontal direction, OS OLD is the horizontal sum before the final movement of the reference pixel array by one pixel in the horizontal direction, and a 0 is the pixel value of the pixel which was the horizontal origin of the reference pixel array before the final movement of the reference pixel array by one pixel in the horizontal direction, and a n0 is the pixel value of the last movement of the reference pixel array by one pixel in the horizontal direction. Which is the pixel value of the pixel that is the horizontal origin of the reference pixel array after the reference pixel array is shifted by one pixel to the right with respect to the previous position of the reference pixel array as a result And a horizontal summation circuit (25) for updating the horizontal sum.
KR1020007013845A 1999-04-06 2000-03-21 Motion estimation KR20010052624A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US09/287,161 1999-04-06
US09/287,161 US6480629B1 (en) 1999-04-06 1999-04-06 Motion estimation method using orthogonal-sum block matching
US09/287,165 US6360015B1 (en) 1999-04-06 1999-04-06 RAM-based search engine for orthogonal-sum block match motion estimation system
US09/287,165 1999-04-06
PCT/EP2000/002583 WO2000064182A1 (en) 1999-04-06 2000-03-21 Motion estimation

Publications (1)

Publication Number Publication Date
KR20010052624A true KR20010052624A (en) 2001-06-25

Family

ID=26964301

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007013845A KR20010052624A (en) 1999-04-06 2000-03-21 Motion estimation

Country Status (5)

Country Link
EP (1) EP1086591A1 (en)
JP (1) JP2002542737A (en)
KR (1) KR20010052624A (en)
CN (1) CN1201589C (en)
WO (1) WO2000064182A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030103567A1 (en) * 2001-12-03 2003-06-05 Riemens Abraham Karel Motion compensation and/or estimation
ES2636947T3 (en) * 2002-08-08 2017-10-10 Godo Kaisha Ip Bridge 1 Decoding procedure of moving images
CN100340116C (en) * 2005-01-21 2007-09-26 浙江大学 Motion estimating method with graded complexity
CN100393136C (en) * 2005-06-13 2008-06-04 北京北大方正电子有限公司 Method for searching active image series motion vector
FR2972828A1 (en) * 2011-03-18 2012-09-21 Norbert Beyrard Method for compressing e.g. digital mammography image, involves defining projections by sets of terms obtained by addition of values of light intensity of pixels on gray and color scales, along alignments oriented by projection directions
US8829409B2 (en) * 2012-10-10 2014-09-09 Thermo Fisher Scientific Inc. Ultra-high speed imaging array with orthogonal readout architecture

Also Published As

Publication number Publication date
WO2000064182A1 (en) 2000-10-26
EP1086591A1 (en) 2001-03-28
JP2002542737A (en) 2002-12-10
CN1201589C (en) 2005-05-11
CN1314052A (en) 2001-09-19

Similar Documents

Publication Publication Date Title
JP4528441B2 (en) Hierarchical motion estimation processing and apparatus using block matching method and integrated projection method
US20070071101A1 (en) Systolic-array based systems and methods for performing block matching in motion compensation
KR101578052B1 (en) Motion estimation device and Moving image encoding device having the same
KR100486249B1 (en) Motion estimation apparatus and method for scanning a reference macroblock window in a search area
EP0679034B1 (en) Apparatus and method for detecting motion vectors
US7020201B2 (en) Method and apparatus for motion estimation with all binary representation
US5682209A (en) Motion estimation using limited-time early exit with prequalification matrices and a predicted search center
EP1431917A2 (en) Motion estimation engine with parallel interpolation and search hardware
KR20010052630A (en) Motion estimation
US20050276330A1 (en) Method and apparatus for sub-pixel motion estimation which reduces bit precision
JP3655651B2 (en) Data processing device
WO1997022083A1 (en) Method and apparatus for motion estimation in a video signal
US5696836A (en) Motion estimation processor architecture for full search block matching
US6687299B2 (en) Motion estimation method and apparatus for interrupting computation which is determined not to provide solution
US8135224B2 (en) Generating image data
US20050123039A1 (en) Motion estimation method for motion picture encoding and recording medium having program recorded thereon to implement the motion estimation method
EP1472881B1 (en) Unit for and method of estimating a current motion vector
US6360015B1 (en) RAM-based search engine for orthogonal-sum block match motion estimation system
KR20010052624A (en) Motion estimation
Jung et al. Efficient multilevel successive elimination algorithms for block matching motion estimation
US20020168008A1 (en) Method and apparatus for coding moving pictures
Ramachandran et al. FPGA implementation of a novel, fast motion estimation algorithm for real-time video compression
JP4178562B2 (en) Motion vector detection apparatus and method
US20040179604A1 (en) Motion vector selection based on a preferred point
KR100359091B1 (en) Motion estimation device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application