A half pixel motion estimator, wherein a first search window having a constant size is formed with pixels stored in a previous buffer, and a first motion estimation is performed on the first window generating an integer vector and absolute errors, and a second search window having a constant size is formed by centering candidate blocks determined by an integer pixel motion vector, a second motion vector is outputted by comparing pixels of a reference block having a constant size to half pixels generated by interpolating the integer pixels in the second search window. The half pixel motion estimator comprises an interpolator, which performs an operation for couples of pixels inputted at a previous clock and couples of pixels inputted at a current clock to generate half pixels, in which the pixel couples in horizontal direction on the second search window are sequentially inputted in vertical direction; and a half pixel motion estimating unit. In the half pixel motion estimating unit:... |
Citations|
| US4937666 | Dec 4, 1989 | Jun 26, 1990 | Bell Communications Research, Inc. | Circuit implementation of block matching algorithm with fractional precision | | US5355168 | Oct 29, 1992 | Oct 11, 1994 | Victor Company of Japan, Ltd. | High precision motion compensation apparatus | | US5398079 | Jan 27, 1993 | Mar 14, 1995 | General Instrument Corporation | Half-pixel interpolation for a motion compensated digital video system | | US5461423 | Nov 4, 1993 | Oct 24, 1995 | Sony Corporation | Apparatus for generating a motion vector with half-pixel precision for use in compressing a digital motion picture signal | | US5488419 | Mar 15, 1993 | Jan 30, 1996 | Matsushita Electric Industrial Co., Ltd. | Video compression coding and decoding with automatic sub-pixel frame/field motion compensation | | US5489949 | Dec 13, 1993 | Feb 6, 1996 | Samsung Electronics Co., Ltd. | Method and apparatus for motion estimation | | US5493344 | May 9, 1994 | Feb 20, 1996 | Samsung Electronics Co., Ltd. | Motion vector estimation method and apparatus having half-pixel accuracy | | US5510856 | Dec 30, 1994 | Apr 23, 1996 | Daewoo Electronics Co., Ltd. | Apparatus for determining motion vectors | | US5583580 | Sep 18, 1995 | Dec 10, 1996 | Daewoo Electronics Co., Ltd. | Method and apparatus for detecting motion vectors based on hierarchical motion estimation | | US5587741 | Jul 21, 1994 | Dec 24, 1996 | Daewoo Electronics Co., Ltd. | Apparatus and method for detecting motion vectors to half-pixel accuracy |
Referenced by|
| US6031582 | Dec 19, 1997 | Feb 29, 2000 | Kabushiki Kaisha Toshiba | System and method for estimating motion vector in macro block | | US6473461 | Apr 4, 2000 | Oct 29, 2002 | Microsoft Corporation | Half-pixel motion estimation in motion video signal encoding | | US6996181 | Mar 18, 2002 | Feb 7, 2006 | Electronics and Telecommunications Research Institute | Motion estimation method by employing a stochastic sampling technique | | US7302648 | Jul 10, 2002 | Nov 27, 2007 | Apple Inc. | Method and apparatus for resizing buffered windows | | US7616689 | Oct 1, 2004 | Nov 10, 2009 | Tandberg Telecom AS | Calculation of interpolated pixel values | | US7792191 | Mar 8, 2002 | Sep 7, 2010 | Lambert Everest Ltd. | Device and method for performing half-pixel accuracy fast search in video coding |
Claims1. A half pixel motion estimator, wherein a first motion estimation is performed on a first search window formed onto pixels stored in a previous frame buffer to generate an integer pixel motion vector and a first absolute error, and a second motion estimation is performed by comparing pixels of a reference block with half pixels generated by interpolating integer pixels on a second search window formed around candidate blocks determined by the integer pixel motion vector to generate a final motion vector, said half pixel motion estimator comprising: - an interpolator for receiving a couple of pixels adjacent in horizontal direction on the second search window in a sequentially inputted vertical direction, and generating the half pixels from a couple of pixels received at a previous clock and a couple of pixels received at a current clock; and
- half pixel motion estimating means for receiving the pixels of the reference block and one vertical line delayed pixels of the reference block in vertical direction sequentially, obtaining a second absolute errors from the half pixels provided from said interpolator and the pixels received therein, comparing the first absolute error and the second absolute errors, and providing the sum of the integer pixel motion vector and a half pixel motion vector having a minimum absolute error or the integer pixel motion vector as the final motion vector according to the comparison result,
- wherein said interpolator comprises:
- delaying means for latching the couple of pixels received from the second search window at the previous clock in order to delay the couple of pixels by one clock;
- diagonal half pixel generating means for generating half pixels of diagonal direction by adding and shifting twice the couple of pixels delayed in said delaying means, the couple of pixels received at the current clock, and a certain binary digit;
- vertical half pixel generating means for generating half pixels of vertical direction by adding and shifting once a second pixel among the couple of pixels delayed in said delaying means, a second pixel among the couple of pixels received at the current clock, and a certain binary digit; and
- horizontal half pixel generating means for generating half pixels of horizontal direction by adding and shifting once a couple of pixels received at the current clock, and a certain binary digit.
2. The half pixel motion estimator of claim 1, wherein the delaying means is embodied with a latch. 3. The half pixel motion estimator of claim 1, wherein said diagonal half pixel generating means comprises an adder for adding four pixels of the second search window to a binary digit "10"; a shifter for shifting twice the outputs from the adder; and a latch for temporarily storing outputs from the shifter. 4. The half pixel motion estimator of claim 1, wherein said vertical half pixel generating means comprises an adder for adding two pixels of the second search window to a binary digit "1"; a shifter for shifting once the outputs from the adder; and a latch for temporarily storing outputs from the shifter. 5. The half pixel motion estimator of claim 1, wherein said horizontal half pixel generating means comprises an adder for adding two pixels of the second search window to a binary digit "1"; a shifter for shifting once the outputs from the adder; and a latch for temporarily storing outputs from the shifter. 6. The half pixel motion estimator of claim 1, wherein said half pixel motion estimating means comprises: - first delaying means for delaying a current pixel of the reference block by one clock;
- second delaying means for delaying the pixels of the one vertical line-delayed pixels of the reference block by one clock;
- a plurality of processing elements for receiving the current pixel of the reference block, an one clock delayed pixels from the first delaying means, the one vertical line delayed pixels of the reference block, an one vertical line and one clock delayed pixels from the second delaying means, and outputs from the interpolator, and providing absolute errors for each pixel therefrom;
- a plurality of accumulators for accumulating and adding the absolute errors from said processing elements, and storing the second absolute errors for the half pixel motion vector therein when operations for whole pixels of the reference block are completed; and
- comparing and selecting means for comparing respectively the second absolute errors outputted from said accumulators to the first absolute error generated by a first motion estimation, outputting the integer pixel motion vector if the first absolute error generated by the first motion estimation is the minimum absolute error, and outputting the sum of the half pixel motion vector and integer pixel motion vector if one of the second absolute errors from said accumulators is the minimum absolute error.
7. The half pixel motion estimator of claim 6, wherein said first delaying means is embodied with a latch. 8. The half pixel motion estimator of claim 6, wherein said second delaying means is embodied with a latch. 9. The half pixel motion estimator of claim 6, wherein said processing elements comprise: - a first processing element for outputting an absolute error of the pixels by performing operation for one clock-delayed current pixel of the reference block and the half pixels of diagonal direction inputted at the same clock;
- a second processing element for outputting an absolute error of the pixels by performing operation for one clock-delayed current pixel of the reference block and the half pixels of vertical direction inputted at the same clock;
- a third processing element for outputting an absolute error of the pixels by performing operation for the current pixel of the reference block and the half pixels of diagonal direction inputted at the same clock;
- a fourth processing element for outputting an absolute error of the pixels by performing operation for the current pixel of the reference block and the half pixels of vertical direction inputted at the same clock;
- a fifth processing element for outputting an absolute error of the pixels by performing operation for the current pixel of the reference block and the half pixels of horizontal direction inputted at the same clock;
- a sixth processing element for outputting an absolute error of the pixels by performing operation for one vertical line-delayed pixel of the reference block and the half pixels of diagonal direction inputted at the same clock;
- a seventh processing element for outputting an absolute error of the pixels by performing operation for one vertical line-delayed pixel of the reference block and the half pixels of horizontal direction inputted at the same clock; and
- an eighth processing element for outputting an absolute error of the pixels by performing operation for one vertical line-delayed and one clock-delayed pixel of the reference block and the half pixels of diagonal direction inputted at the same clock.
10. The half pixel motion estimator of claim 9, wherein said processing elements comprise a subtracter for subtracting the pixels of the reference block and the half pixels from the interpolator to generate errors; a latch for temporarily storing said errors; and an absolute value calculator for generating absolute errors for stored in the latch errors. |