text: the present invention , at least in its preferred embodiments , provides a novel fast multi - frame selection scheme that requires significantly reduced computational cost while achieving similar visual quality and bit - rate as the full selection process . instead of searching through all the possible reference frames , the proposed scheme tries to select only a few representative frames for motion estimation . this is very useful for real - time applications . accurate prediction can efficiently reduce the degree of error between the original image and the predicted image . for this reason , quarter - pixel translational motion estimation / compensation is adopted in h . 264 for better compression performance . between two consecutive frames , the object motion may be an integer pixel motion , a half - pixel motion , or a quarter - pixel motion , ⅛ - pixel motion , 1 / 16 - pixel motion etc . typically , sub - pixel motion estimation algorithms use interpolation to predict the sub - pixel shift of texture relative to the sampling grid . suppose an object has edges aligned perfectly with the sensor boundaries at a particular time instant such that the object edge is clear and sharp . we will describe this object as having “ integer - pixel location ”. when the object undergoes an integer - pixel translational motion , the object will look exactly the same in the two consecutive frames except that one is a translation to another . and the moved object can be predicted perfectly by integer - pixel motion estimation . when the object 100 undergoes a half - pixel motion , the edges may be blurred as shown in fig1 a . we will describe this object as having “ half - pixel location ”. the original zero - pixel - wide ( sharp ) object edge now becomes one pixel - wide ( blurred ). the pixel at the blurred object edges 106 may have only half the intensity of the original object , which can lead to difficulty in motion estimation . in particular , the block on the right 102 in fig1 a can be predicted perfectly by block 100 using half - pixel motion estimation . however , block 100 cannot be predicted perfectly by block 102 . similarly , when the object 100 undergoes a quarter - pixel motion , the edges may be blurred as shown in fig1 b . we will describe this object as having “ quarter - pixel location ”. the zero - pixel - wide ( sharp ) object edge becomes one - pixel - wide ( blurred ). the pixels at the blurred edges may have ¾ ( 108 ) or ¼ ( 110 ) of the intensity . again , the blurred “ quarter - pixel location ” object 104 can be predicted perfectly from the sharp “ integer - pixel location ” object 100 using quarter - pixel motion estimation , but not vice versa . in general , the objects can be classified into sub - pixel location classes , namely “ integer - pixel location ”, “ half - pixel location ” and “ quarter - pixel location ”. the edge ( and probably texture ) details in the three classes are different . the advantage of multi - frame me is that it can further reduce the temporal redundancy in the video sequences by considering more than one reference frames . the best match is usually found by minimizing the cost function : j ( m , λ motion )= sad ( s , c ( m ))+ λ motion · r ( m − p ) ( 1 ) with m =( m x , m y ) t being the motion vector , p =( p x , p y ) t being the prediction for the motion vector and λ motion being the lagrange multiplier . the term r ( m − p ) represents the bits used to encode the motion information and are obtained by table - lookup . the sad ( sum of absolute differences ) is computed as : sad ⁡ ( s , c ⁡ ( m ) ) = ∑ x = 1 , y = 1 b , b ⁢  s ⁡ [ x , y ] - c ⁡ [ x - m x , y - m y ]  ( 2 ) with b = 16 , 8 or 4 and s being the original video signal and c being the coded video signal . there are basically two types of temporal redundancy that can be captured by using multiple reference frames but not the traditional single frames . the first type of redundancy is related to short - term memory . suppose the current frame is frame t . sometimes , objects may be distorted or absent in frame t - 1 , but well represented in frames t - 2 to t - 5 . an example is the blinking of an eye , which is a very fast motion . if multiple reference frames are allowed , the motion estimation and compensation can be significantly better than just a single reference frame . however , in our experiments , we observe that the previous reference frame ( i . e . frame t - 1 ) still has the highest probability of being selected among the five possible reference frames . the second type is the sub - pixel movement of textures described above . textures and objects with different version of “ sub - pixel locations ” (“ integer - pixel ”, “ half - pixel ” and “ quarter - pixel ”) may occur in successive video frames . in our experiments , we observe that there is a great tendency for the cost function to be especially small when the same shifted version of texture is used to do the motion estimation and compensation . in other words , the optimal reference frame tends to be the one with the same sub - pixel location as the current frame . the more reference frames used , the higher the probability for the current image to find a reference frame with the same sub - pixel location . probably this is the reason why it has been suggested that sub - pixel motion compensation is more important in single - frame me / mc than in multi - frame me / mc . nevertheless , multi - frame motion estimation together with sub - pixel accuracy motion estimation is a strong combination to tackle the sub - pixel movement of texture and edges . however , it is difficult to determine accurately the current sub - pixel location class a priori . we also observe that when there is more than one frame with the same sub - pixel location , the one closer to the current frame is usually better . as a result , the motion estimation speed can be increased by estimating the type of shifted version of texture (“ sub - pixel location ”) in the frame buffer . for example in fig2 , the black square means collocated macroblocks in frame t and the multiple reference frames . so if the macroblock at frame t - 1 and frame t - 2 show the same shifting characteristics , then we can drop the redundant one ( frame t - 2 ) and reduce motion estimation complexity . suppose we need to perform multi - frame motion estimation for frame t , as shown in fig2 . in the proposed fast multi - frame motion estimation ( fmfme ) algorithm , each macroblock ( e . g ., macroblock 200 ) in the reference frames ( frames t - 5 to t - 1 ) is assumed to have a sub - pixel location . before performing motion estimation for the current macroblock ( with black frame ) in frame t ( 202 ), the motion vectors of all the collocated macroblocks in frames t - 1 to t - 5 will be examined . if two or more macroblocks have the same sub - pixel location , only one frame is enabled for motion estimation . the sub - pixel location of two macroblocks are considered the same if both the x and y components of the sub - pixel location are equal . the process will enable the frame with smallest temporal distance ( closest ) to the current frame . motion estimation is then performed on the immediate past frame ( i . e . frame t - 1 ( 204 )), as this is the most likely frame to be the best . after the motion estimation process , the sub - pixel motion vectors obtained are added to the sub - pixel locations of the “ dominant ” reference macroblocks ( with maximum overlapping area ) to obtain the sub - pixel location of the current macroblock . so for fig2 if we assume frame t - 3 ( 206 ) is chosen to be the reference frame for the black ( current ) macroblock in frame t , the sub - pixel location of the current macroblock in frame t is obtained by adding its sub - pixel motion vector to the sub - pixel position of black macroblock in frame t - 3 . several early termination checks are then performed . if the best sad with respect to frame t - 1 is smaller than a threshold t 1 , we consider it “ good enough ” and would skip the motion estimation for other reference frames . if the current macroblock is sufficiently flat such that there is no strong texture inside the macroblock , we would also skip the multi - frame motion estimation because multi - frame motion estimation in such cases tends to have little performance gain over single - frame motion estimation . to determine the flatness of the macroblock , 4 × 4 hadamard transform is performed for every 4 × 4 sub - block inside the macroblock . if all the ac coefficients of the 4 × 4 sub - blocks are equal to zero , we would consider the macroblock is sufficiently flat . otherwise , motion estimation is performed on the enabled reference frames . there is also a sub - pixel location refreshing mechanism . our sub - pixel location estimation of the macroblocks may not be 100 % accurate , especially with potential error drifting over many frames . the accumulation of error can affect the performance of fmfme . therefore , refreshing of sub - pixel location is necessary . we observe in our experiments that , for texture at integer - pixel , half - pixel or quarter - pixel locations , only the textures at integer - pixel location can give a large sad reduction when it is interpolated / filtered into half pixel type texture for half - pixel motion estimation . when this occurs , we reset the sub - pixel location of the reference macroblock to be integer - pixel , and update the current sub - pixel location if appropriate . this refreshing can help to suppress the propagation of error . here is how our refreshing mechanism works . during the motion estimation between the current and reference frame , the best sad obtained using integer - pixel and half - pixel motion estimation is compared . if the half - pixel me gives 50 % reduction in sad compared with the integer - pixel me , the sub - pixel location type of the reference macroblock will be updated to be of integer - pixel . fig3 shows the flow chart 300 of the proposed algorithm . the proposed fmfme was tested on four qcif ( 176 × 144 ) sequences , “ akiyo ”, “ coastguard ”, “ stefan ” and “ foreman ”, with constant quantization factor , qp = 16 and t 1 = 512 . the proposed scheme was implemented in the h . 264 reference software tml9 . 0 . pmvfast was used for fast motion estimation . table 1 below gives the results of psnr ( peak signal - to - reconstructed image measure ), bit rate and complexity reduction of the proposed fmfme in the testing sequences . the computational cost using a powerful performance analyzer in term of number of clock cycles is used . compared with the full search ( fs ) multi - frame selection scheme in h . 264 , the proposed fmfme can reduce computational cost by 53 % ( equivalent complexity of performing pmvfast on 2 . 6 frames instead of 5 reference frames ) with negligibly small psnr degradation ( 0 . 02 db ) and fewer bits ( 0 . 10 %) on the average . fig4 shows a graph 400 the psnr comparison for “ coastguard ”. the fast motion estimation process of embodiments of the present invention is mainly targeted for fast , low - delay and low cost software and hardware implementation of h . 264 , or mpeg4 avc , or avs , or related video coding standards or methods . possible applications include digital cameras , digital camcorders , digital video recorders , set - top boxes , personal digital assistants ( pda ), multimedia - enabled cellular phones ( 2 . 5 g , 3 g , and beyond ), video conferencing systems , video - on - demand systems , wireless lan devices , bluetooth applications , web servers , video streaming server in low or high bandwidth applications , video transcoders ( converter from one format to another ), and other visual communication systems , etc . while several aspects of the present invention have been described and depicted herein , alternative aspects may be effected by those skilled in the art to accomplish the same objectives . accordingly , it is intended by the appended claims to cover all such alternative aspects as fall within the true spirit and scope of the invention .