Patent ID: 6414997
Filing Date: 2002-07-02
Classification: G06T,H04N

Abstract:
A method of motion estimation from common fields or pictures of successive images for video coders, the method comprising the steps of:dividing each picture of N lines and M columns to be subjected to motion estimation into a plurality (N/R)*(M/S) of reference macroblocks, each comprising R lines and S columns of pixels; defining for each of the reference macroblocks a set of P+Q+2*D predictor macroblocks comprising at least one luminance and at least one chrominance component disposed on a preceding picture, and wherein a) P predictors are generated using motion vectors associated to macroblocks preceding the reference macroblocks on the same picture according to a raster scanning, by projecting the motion vectors on a macroblock common to the reference macroblock and disposed on the preceding picture, b) Q predictors are generated using motion vectors associated to macroblocks following the reference macroblock on the preceding picture according to a raster scanning, by projecting the motion vectors on the macroblock common to the reference macroblock placed on the preceding picture, c) 2*D predictors are generated using the motion vectors associated to P and Q predictor macroblocks summed to integer and/or fraction quantities predefined in look-up tables addressed by an integer number associated to a field between a number C of available fields of an L1 norm with minimum P and Q values and the reference macroblock, d) a subsampling block is sequentially fed with predictor values of the P+Q+2*D macroblocks and with pixel values of the reference macroblock, e) calculating per each pair of macroblocks comprising only one among the P or Q or 2*D predictors and the reference macroblock, the L1 norm, the L1 norm being the sum of differences in absolute values between common pixels belonging to the pair of macroblocks, f) identifying a minimum value of the L1 norms and calculating x and y components of the motion vector associated to the reference macroblock as a difference between the common coordinates of a first pixel, according to a raster scanning of the reference macroblock, and the predictor with minimum distortion which minimizes a value of the norm L1, and â€ƒemploying a recursive procedure based on a correlation existing among motion vectors associated to macroblocks adjacent to the reference macroblock during a picture processing to reduce a total number of operations by: storing the motion vectors associated to all the macroblocks of a picture, overwriting them one by one with the motion vectors associated to corresponding macroblocks of a successive picture during the processing thereof, and as the motion vectors are calculated in succession following a raster type of scanning of the macroblocks, using the stored motion vectors already calculated, associated to the P macroblocks and the stored motion vectors associated to the Q macroblocks, noncommon to the P macroblocks adjacent to the reference macroblock during the processing of the current picture for addressing P+Q predictor values, generating two motion vectors for each macroblock of the field being processed, storable in two distinct output registers through two parallel recursive search estimators, each estimator being fed through multipliers with motion vectors read from a B number of memories containing (N/R)*(M/S) motion vectors, providing the motion vectors to the two estimators for multiplying by precalculated constants contained in a read only memory whose value depends on which of the B memories the motion vectors are read, from the I, P or B field being estimated, and on whether the estimation is carried out in relation to a preceding or successive field to the one currently under estimation, and periodically overwriting the B memories with the motion vector values calculated in succession for the macroblocks relative to the future fields to the field being estimated, corresponding to the enabling period of the B memories and according to the coding process specified in steps a-f.