WO2005006767A1 - Simplified motion estimation method - Google Patents

Simplified motion estimation method Download PDF

Info

Publication number
WO2005006767A1
WO2005006767A1 PCT/IB2004/002239 IB2004002239W WO2005006767A1 WO 2005006767 A1 WO2005006767 A1 WO 2005006767A1 IB 2004002239 W IB2004002239 W IB 2004002239W WO 2005006767 A1 WO2005006767 A1 WO 2005006767A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
motion estimation
value
candidate
estimation method
Prior art date
Application number
PCT/IB2004/002239
Other languages
French (fr)
Inventor
Jean Gobert
Olivier Gay-Bellile
Original Assignee
Koninklijke Philips Electronics N.V.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics N.V. filed Critical Koninklijke Philips Electronics N.V.
Publication of WO2005006767A1 publication Critical patent/WO2005006767A1/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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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
    • H04N19/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]

Definitions

  • the present invention relates to a method of motion estimation for a device adapted to process a sequence of frames, a frame being divided into blocks of data samples, said motion estimation method comprising a step of computing a residual error block from a difference between a current block contained in a current frame and a candidate block contained in a reference frame, a motion vector defining a relative position, expressed in an integer number of data samples, of the candidate block in the reference frame compared with a block having the same position in said frame as the current block in the current frame, and a step of computing a distortion value of the candidate block from residual error block values.
  • the present invention relates to a predictive block-based encoding method comprising such a motion estimation method.
  • the present invention finally relates to a computer program product for implementing said motion estimation method.
  • This invention is, for example, relevant for products embedding a digital video encoder such as, for example, camcorders, mobile phones or personal digital assistants, such apparatus comprising an embedded camera able to acquire and to encode video data before sending it.
  • a conventional approach for motion estimation is to perform block matching between a current block and a set of several candidate blocks according to a distortion measure, and then to select the candidate block giving the smallest distortion.
  • Candidates are chosen thanks to a translation motion whose components can be either an integer or a non-integer number of samples.
  • the motion estimation comprises two successive steps: the first step searches for the best match with integer motion, and the second step is a sub-sample refinement around the best match position. The sub-sample refinement is done by generating a set of re-sampled references, interpolated from the original reference data, and then matching the current block with these re-sampled references.
  • the sub-sample refinement is a complex task, as it implies a lot of filtering and block matching operations.
  • the patent US 6,141,382 entitled “Using estimated distortion values", by R. Krishnamurthy gives a method of simplifying the sub-sample refinement. It discloses techniques for reducing the number of candidates to be tested in the sub-sample refinement step. However, it may be necessary to go further in complexity reduction, for low-cost or low-power implementations. It may also be difficult to obtain intermediary reference picture, for example when images are 1 bit per pixel.
  • the motion estimation method in accordance with the invention is characterized in that it further comprises the steps of: applying the steps of computing a residual error block and of computing a distortion value to a first set of candidate blocks and selecting a second set of locally close candidate blocks, containing at least the candidate block of the first set that has the smallest distortion value and two other candidate blocks, estimating a continuous distortion function from distortion values of the second set of candidate blocks and from components of the corresponding motions vectors, determining a component with sub-sample accuracy of a final motion vector corresponding to a minimum value of the estimated distortion function.
  • Such a motion estimation method avoids any block matching and re-sampled candidate generation for the refinement process, said refinement process comprising the three above-listed steps.
  • this sub-sample refinement is based on an analytical process.
  • the motion estimation process is thus simplified.
  • the sub-sample accuracy can be rounded to 1/2, 1/4, 1/8 or any other sub- sample accuracy required by the motion estimation method.
  • the present invention relates to a predictive block-based encoding method comprising such a motion estimation method.
  • the present invention also relates to a video encoder implementing said video encoding method.
  • Fig. 1 is a block diagram of a conventional video encoder
  • Fig. 2 is a block diagram showing the motion estimation method in accordance with the invention
  • Fig. 3 shows a set of locally close components of motion vectors
  • Fig. 4 shows an example of an estimated distortion function as a function of a component of a motion vector.
  • the present invention relates to a method of motion estimation for a device adapted to process a sequence of frames, a frame being divided into blocks of data samples.
  • Said device is, for example, an encoder adapted to encode said sequence of frames.
  • the present invention is more especially dedicated to the encoding of video frames. It can be used within MPEG-4 or H.264 video encoder, or any equivalent distortion-based video encoder. However, it will be apparent to a person skilled in the art that it is also applicable to the encoding of a sequence of audio frames or any other equivalent encoding.
  • the present invention is not limited to encoding but can be applied to other types of processing, such as for example, image stabilization wherein an average of the different data blocks of a video frame is computed in order to determine a global motion of said frame.
  • image stabilization process can be implemented in a camcorder, in a television receiver, or in a video decoder after the decoding of an image.
  • the motion estimation method may be implemented in handheld devices, such as mobile phones or embedded cameras, which have limited power, and that have to deal with the encoding of video sequences.
  • Fig. 1 depicts a conventional video encoder for encoding an input data block IN.
  • Said encoder comprises: a subtracter for delivering a main residual error block, a discrete cosine transform DCT unit (11) and a quantizing Q unit (12) for transforming and quantizing successively the main residual error block, a variable length coding VLC unit (13) for delivering a variable length coded data block from the quantized data block, - an inverse quantizing IQ unit (14) and inverse discrete cosine transform IDCT unit
  • Fig. 2 is a block diagram showing the motion estimation method in accordance with the invention.
  • Said method comprises the following steps.
  • a conventional block matching is first performed at integer positions, using a distortion measure D.
  • Said block matching comprises a step REB (22) of computing a residual error block from a difference between a current block Cur contained in a current frame and a candidate block Can contained in a reference frame.
  • a motion vector MV defines a relative position, expressed in an integer number of data samples, of the candidate block Can in the reference frame compared with a block Ref having the same position in said frame as the current block in the current frame.
  • the block matching comprises a step DC (23) of computing a distortion value of the candidate block from residual error block values.
  • This computing step is based, for example, on the computing of the mean square error mse according to a principle known to a person skilled in the art.
  • the computing step is based, as another example, on the computing of the mean absolute error mae.
  • the distortion value can be computed using other equivalent calculations. For example, it can be based on a sum of an entropy h of the residual error block and on the mean square error mse. Then, the present invention avoids any block matching and re-sampled candidate generation for the refinement process. It is here described in general context of correlation of "blocks" of samples of data in a n-dimensional space.
  • the data are sampled at integer values of coordinates [x 0 ,x 1 ,...x n _ 1 ].
  • the refinement process of the motion estimation method in accordance with the invention comprises a step STO/SEL (24) of applying the preceding steps to a set of candidate blocks.
  • the results are stored locally and a selection of a set of p locally close candidate blocks is done, said set containing at least the candidate block that has the smallest distortion value as given by the distortion computing step and two other candidate blocks.
  • the p locally close candidate blocks are preferably adjacent.
  • the motion vector of the candidate block j ( 0 ⁇ j ⁇ p ) of the set is denoted
  • the present invention is based on the likely continuity of the distortion function D[m 0 , m, , ... m n _, ] around its minimum.
  • the refinement process of the motion estimation method comprises a step EST (25) of computing an estimate E[m 0 ,m 1 ,...m n _ 1 ] of said distortion function from the p values of distortion D.
  • the estimate E is chosen as a continuous function of motion, defined for real values of motion vectors (so not restricted to integer values), which values are close to those of the distortion D for the p motion vectors of the set, and with the property that a final motion vector corresponding to a minimum value of the estimate E can be obtained.
  • This final motion vector [s 0 , s j , ... s n _, j .
  • Motion vector components are denoted x and y.
  • a conventional block matching is performed giving the best match on integer motion (x,y), with its associated distortion Dc.
  • the selected set contains in addition to the best match, its four neighbors, two in horizontal direction and two in vertical direction, as represented by the black dots in Fig. 3.
  • the distortion values corresponding to left and right neighbor vectors (x - 1, y) and (x + 1, y) are denoted Dl and Dr.
  • Dl and Dr The distortion values corresponding to left and right neighbor vectors (x - 1, y) and (x + 1, y) are denoted Dl and Dr.
  • Dl and Dr Depending on the type of the preliminary integer motion estimation, they may be already available.
  • a function E(x) is estimated as shown in Fig. 4 and the abscissa u of its minimum is computed.
  • the chosen estimation is a "smooth" function passing by the three reference points, such as for example, a second degree polynomial. In this case the abscissa u is obtained by
  • the best estimated sub-pixel motion vector is then (x + u, y + v). It is to be noted that, in the above-described case, the selection of p candidates and the following estimation is performed for each of the 2 dimensions. However, it will be apparent to a person skilled in the art, that the abscissa u and v of the minimum can be computed by using a two-dimensional function E(x,y) and by determining analytically its minimum. This two-dimensional function can be based on a paraboloid, i.e. O O O 0
  • E(x,y) c 0 x y + c,x y + c 2 xy +c 3 xy + c 4 x +c 5 y +c 6 x + c 7 y + c 8 and the selected set of p candidate blocks can contain, in addition to the best match, its eight adjacent neighbors. It is also to be noted that the function E(x) can be different from a second degree polynomial. It is, as another example, a third-degree polynomial and the selected set of p candidate blocks contains in addition to the best match, three other candidate blocks.
  • k candidate blocks are selected including the best match, where k is an integer, and a polynomial of degree m, where m is an integer lower than k-1 is estimated based on a regression algorithm according to a principle known to a person skilled in the art.
  • the motion estimation method comprises a last step RND (27) of rounding each component of the final motion vector to 1/2, 1/4 or 1/8 nearest values, in order to be compatible with further processing of motion estimation, like in video compression, where the motion vector is used in normative motion compensated prediction.
  • RND last step RND
  • the computation of the abscissa u according to equation (1) needs a division, which is costly.
  • the values of LogB are obtained by table lookup, except for LogB[2] that is a constant and can be pre-computed.
  • the logarithmic table returns values rounded to the nearest integer, so that the rest of computations can be made with integer arithmetic.
  • the base B is chosen so that values are not too small and then rounding does not introduce large quantization errors.
  • a second table may be used for exponentiation.
  • the motion estimation method in accordance with the invention can be implemented by means of items of hardware or software, or both.
  • Said hardware or software items can be implemented in several manners, such as by means of wired electronic circuits or by means of an integrated circuit that is suitable programmed, respectively.
  • the integrated circuit can be contained in an encoder.
  • the integrated circuit comprises a set of instructions.
  • said set of instructions contained, for example, in an encoder memory may cause the encoder to carry out the different steps of the motion estimation method.
  • the set of instructions may be loaded into the programming memory by reading a data carrier such as, for example, a disk.
  • a service provider can also make the set of instructions available via a communication network such as, for example, the Internet. Any reference sign in the following claims should not be construed as limiting the claim.

Landscapes

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

Abstract

The present invention relates to a method of motion estimation for a device adapted to process a sequence of frames, a frame being divided into blocks of data samples. Said motion estimation method comprises the steps of: computing (22) a residual error block from a difference between a current block (Cur) contained in a current frame and a candidate block (Can) contained in a reference frame, a motion vector (MV) defining a relative position, expressed in an integer number of data samples, of the candidate block in the reference frame compared with a block (Ref) having the same position in said frame as the current block in the current frame, computing (23) a distortion value of the candidate block from residual error block values, applying the preceding steps to a first set of candidate blocks and selecting (24) a second set of locally close candidate blocks, containing at least the candidate block of the first set that has the smallest distortion value and two other candidate blocks, estimating (25) a continuous distortion function from distortion values of the second set of candidate blocks and from components of the corresponding motions vectors, determining (26) a component with sub-sample accuracy of a final motion vector corresponding to a minimum value of the estimated distortion function.

Description

Simplified motion estimation method
FIELD OF THE INVENTION The present invention relates to a method of motion estimation for a device adapted to process a sequence of frames, a frame being divided into blocks of data samples, said motion estimation method comprising a step of computing a residual error block from a difference between a current block contained in a current frame and a candidate block contained in a reference frame, a motion vector defining a relative position, expressed in an integer number of data samples, of the candidate block in the reference frame compared with a block having the same position in said frame as the current block in the current frame, and a step of computing a distortion value of the candidate block from residual error block values. The present invention relates to a predictive block-based encoding method comprising such a motion estimation method. It also relates to the corresponding encoder. The present invention finally relates to a computer program product for implementing said motion estimation method. This invention is, for example, relevant for products embedding a digital video encoder such as, for example, camcorders, mobile phones or personal digital assistants, such apparatus comprising an embedded camera able to acquire and to encode video data before sending it.
BACKGROUND OF THE INVENTION A conventional approach for motion estimation is to perform block matching between a current block and a set of several candidate blocks according to a distortion measure, and then to select the candidate block giving the smallest distortion. Candidates are chosen thanks to a translation motion whose components can be either an integer or a non-integer number of samples. Usually, the motion estimation comprises two successive steps: the first step searches for the best match with integer motion, and the second step is a sub-sample refinement around the best match position. The sub-sample refinement is done by generating a set of re-sampled references, interpolated from the original reference data, and then matching the current block with these re-sampled references. The sub-sample refinement is a complex task, as it implies a lot of filtering and block matching operations. The patent US 6,141,382 entitled "Using estimated distortion values", by R. Krishnamurthy gives a method of simplifying the sub-sample refinement. It discloses techniques for reducing the number of candidates to be tested in the sub-sample refinement step. However, it may be necessary to go further in complexity reduction, for low-cost or low-power implementations. It may also be difficult to obtain intermediary reference picture, for example when images are 1 bit per pixel.
SUMMARY OF THE INVENTION It is an object of the invention to propose a motion estimation method, which is less complex than the one of the prior art. To this end, the motion estimation method in accordance with the invention is characterized in that it further comprises the steps of: applying the steps of computing a residual error block and of computing a distortion value to a first set of candidate blocks and selecting a second set of locally close candidate blocks, containing at least the candidate block of the first set that has the smallest distortion value and two other candidate blocks, estimating a continuous distortion function from distortion values of the second set of candidate blocks and from components of the corresponding motions vectors, determining a component with sub-sample accuracy of a final motion vector corresponding to a minimum value of the estimated distortion function. As a consequence, such a motion estimation method avoids any block matching and re-sampled candidate generation for the refinement process, said refinement process comprising the three above-listed steps. On the contrary, this sub-sample refinement is based on an analytical process. The motion estimation process is thus simplified. Moreover, thanks to the calculation of the real value of the minimum of the estimated distortion function, the sub-sample accuracy can be rounded to 1/2, 1/4, 1/8 or any other sub- sample accuracy required by the motion estimation method. The present invention relates to a predictive block-based encoding method comprising such a motion estimation method. The present invention also relates to a video encoder implementing said video encoding method. It finally relates to a computer program product comprising program instructions for implementing, when said program is executed by a processor, the motion estimation method in accordance with the invention. These and other aspects of the invention will be apparent from and will be elucidated with reference to the embodiments described hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS The present invention will now be described in more detail, by way of example, with reference to the accompanying drawings, wherein: Fig. 1 is a block diagram of a conventional video encoder, Fig. 2 is a block diagram showing the motion estimation method in accordance with the invention, - Fig. 3 shows a set of locally close components of motion vectors, and Fig. 4 shows an example of an estimated distortion function as a function of a component of a motion vector.
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a method of motion estimation for a device adapted to process a sequence of frames, a frame being divided into blocks of data samples. Said device is, for example, an encoder adapted to encode said sequence of frames. The present invention is more especially dedicated to the encoding of video frames. It can be used within MPEG-4 or H.264 video encoder, or any equivalent distortion-based video encoder. However, it will be apparent to a person skilled in the art that it is also applicable to the encoding of a sequence of audio frames or any other equivalent encoding. It is to be noted that the present invention is not limited to encoding but can be applied to other types of processing, such as for example, image stabilization wherein an average of the different data blocks of a video frame is computed in order to determine a global motion of said frame. Such an image stabilization process can be implemented in a camcorder, in a television receiver, or in a video decoder after the decoding of an image. The motion estimation method may be implemented in handheld devices, such as mobile phones or embedded cameras, which have limited power, and that have to deal with the encoding of video sequences.
Fig. 1 depicts a conventional video encoder for encoding an input data block IN. Said encoder comprises: a subtracter for delivering a main residual error block, a discrete cosine transform DCT unit (11) and a quantizing Q unit (12) for transforming and quantizing successively the main residual error block, a variable length coding VLC unit (13) for delivering a variable length coded data block from the quantized data block, - an inverse quantizing IQ unit (14) and inverse discrete cosine transform IDCT unit
(15) for delivering an auxiliary residual error block from the quantized data block, a motion compensation MC unit (16) for delivering a motion compensated data block to an adder and to the subtracter using a motion vector, the subtracter being adapted to subtract the motion compensated data block from the input data block, - an adder for summing the motion compensated data block and the auxiliary residual error block, a motion estimation ME unit (18) for finding, in a reference picture, a reference data block associated to the input data block, as well as its corresponding motion vector, and an external frame memory module MEM (17) to which the motion compensation and motion estimation units are coupled.
Fig. 2 is a block diagram showing the motion estimation method in accordance with the invention. Said method comprises the following steps. A conventional block matching is first performed at integer positions, using a distortion measure D. Said block matching comprises a step REB (22) of computing a residual error block from a difference between a current block Cur contained in a current frame and a candidate block Can contained in a reference frame. A motion vector MV defines a relative position, expressed in an integer number of data samples, of the candidate block Can in the reference frame compared with a block Ref having the same position in said frame as the current block in the current frame. The block matching comprises a step DC (23) of computing a distortion value of the candidate block from residual error block values. This computing step is based, for example, on the computing of the mean square error mse according to a principle known to a person skilled in the art. The computing step is based, as another example, on the computing of the mean absolute error mae. It will be apparent to a person skilled in the art that the distortion value can be computed using other equivalent calculations. For example, it can be based on a sum of an entropy h of the residual error block and on the mean square error mse. Then, the present invention avoids any block matching and re-sampled candidate generation for the refinement process. It is here described in general context of correlation of "blocks" of samples of data in a n-dimensional space. For example, n = 1 for sound samples, n = 2 for images, n = 3 for volumic data. The data are sampled at integer values of coordinates [x0,x1,...xn_1]. The refinement process of the motion estimation method in accordance with the invention comprises a step STO/SEL (24) of applying the preceding steps to a set of candidate blocks. The results are stored locally and a selection of a set of p locally close candidate blocks is done, said set containing at least the candidate block that has the smallest distortion value as given by the distortion computing step and two other candidate blocks. The p locally close candidate blocks are preferably adjacent. The motion vector of the candidate block j ( 0 < j < p ) of the set is denoted |m0 , mj , ... m^, j and its distortion Dj . The present invention is based on the likely continuity of the distortion function D[m0 , m, , ... mn_, ] around its minimum. The refinement process of the motion estimation method comprises a step EST (25) of computing an estimate E[m0,m1,...mn_1] of said distortion function from the p values of distortion D. The estimate E is chosen as a continuous function of motion, defined for real values of motion vectors (so not restricted to integer values), which values are close to those of the distortion D for the p motion vectors of the set, and with the property that a final motion vector corresponding to a minimum value of the estimate E can be obtained. Lets call this final motion vector [s 0 , s j , ... s n_, j . The refinement process of the motion estimation method comprises a step MVD (26) of determining this motion vector. It will be taken as the estimated motion vector with sub- sample accuracy. An example of such a determination is given in Fig. 3 with n = 2, for video images. Motion vector components are denoted x and y. A conventional block matching is performed giving the best match on integer motion (x,y), with its associated distortion Dc. The selected set contains in addition to the best match, its four neighbors, two in horizontal direction and two in vertical direction, as represented by the black dots in Fig. 3. The distortion values corresponding to left and right neighbor vectors (x - 1, y) and (x + 1, y) are denoted Dl and Dr. Depending on the type of the preliminary integer motion estimation, they may be already available. From Dl, Dr and Dc, a function E(x) is estimated as shown in Fig. 4 and the abscissa u of its minimum is computed. The chosen estimation is a "smooth" function passing by the three reference points, such as for example, a second degree polynomial. In this case the abscissa u is obtained by the formula:
Figure imgf000008_0001
Similarly, the distortion values corresponding to the top and bottom neighbor positions (x, y - 1) and (x, y + 1) are denoted Dt and Db and we obtain the ordinate v of the minimum of the function E(y) as follows: Dt -Db ~ 2(Dt + Db - 2Dc)
The best estimated sub-pixel motion vector is then (x + u, y + v). It is to be noted that, in the above-described case, the selection of p candidates and the following estimation is performed for each of the 2 dimensions. However, it will be apparent to a person skilled in the art, that the abscissa u and v of the minimum can be computed by using a two-dimensional function E(x,y) and by determining analytically its minimum. This two-dimensional function can be based on a paraboloid, i.e. O O O 0
E(x,y) = c0x y + c,x y + c2xy +c3xy + c4x +c5y +c6x + c7y + c8 and the selected set of p candidate blocks can contain, in addition to the best match, its eight adjacent neighbors. It is also to be noted that the function E(x) can be different from a second degree polynomial. It is, as another example, a third-degree polynomial and the selected set of p candidate blocks contains in addition to the best match, three other candidate blocks. As an alternative, k candidate blocks are selected including the best match, where k is an integer, and a polynomial of degree m, where m is an integer lower than k-1 is estimated based on a regression algorithm according to a principle known to a person skilled in the art. Advantageously, the motion estimation method comprises a last step RND (27) of rounding each component of the final motion vector to 1/2, 1/4 or 1/8 nearest values, in order to be compatible with further processing of motion estimation, like in video compression, where the motion vector is used in normative motion compensated prediction. In the case of a predictive block-based encoding method the final motion vector and its associated residual error block are then coded and transmitted.
The computation of the abscissa u according to equation (1) needs a division, which is costly. The present invention proposes a tabulated implementation in order to reduce this complexity. Let us consider the following parameters: num = abs[Dl - Dr] neg = 1 if (Dl < Dr), and 0 otherwise den = (Dt + Db - 2Dc) . We test first if the numerator num is null, in which case abscissa u is zero. In the following, the numerator num is assumed to be non-null. Remarking that the denominator den is always positive, we use a base B logarithm so that equation (1) becomes: LogB[abs(u)] = LogB[num] - LogB[den] - LogB[2] (2) and abs(u) = B o§B[num]-Lo§B[den]-L°sBf2] The values of LogB are obtained by table lookup, except for LogB[2] that is a constant and can be pre-computed. The logarithmic table returns values rounded to the nearest integer, so that the rest of computations can be made with integer arithmetic. The base B is chosen so that values are not too small and then rounding does not introduce large quantization errors. A second table may be used for exponentiation. The value of u is finally obtained by negating its absolute value if neg = 1. According to a first simplification of this tabulated implementation, and in order to reduce the number N of entries of the logarithmic table, we choose N and a base B that satisfy: B = 2 , N = 2 where b and n are integers, and compute the following parameter: num scalednum = • ^num_xp If the numerator num is already smaller than N, we choose num_xp = 0, else we choose the smallest value of num_xp for which the scaled numerator scalednum is smaller than N. As N is an integer power of 2, this operation can be simply done by successive tests of bits of the numerator num and a subsequent shift right operation by the value num_xp of bits. For better accuracy, a rounding constant may be added to the numerator num before the shift. Similar operations are performed on the denominator den, and equation (1) becomes: LogB[abs(u)] = LogB[scalednum] - LogB[scaledden] - LogB[2] + (num _ xp - den _ xp) x 2b (3) The multiplication by 2b can be implemented by a shift left of b bits. With this scheme, the logarithmic table width is determined by the largest value of its entries, i.e. by the value of the last table entry that is smaller than LogBfN) = 2b * n. The number of bits necessary to represent this number, which is the table word width, is the excess integer rounded value of b + log2(n). A second simplification can be implemented when we are not interested by the full precision of the abscissa u but by a rounded value to an integer number ru of sub-sample units. Let's take the example of 1/4 sample unit, although this is not limitative. The range interval of abs(u), being [0:1/2], the only possible values for ru are 0, 1 or 2, with the following decisions, implementing rounding: Ifabs(u) < l/8, ru = 0 If 1/8 < abs(u)< 3/8, ru = 1 If 3/8 < abs(u), ru = 2 As logarithm is a monotone growing function the tests condition can be rewritten in logarithmic domain. For example the condition tested in the first decision becomes: LogB(abs(u)) - LogB(l/8) < 0 The second term is constant and can be pre-computed. There is no more need of exponentiation table and ru is obtained by two subtractions and tests of sign bits. It is to be noted that the implementation of the division has been described in the case of a distortion function equal to a second-degree polynomial but that it stays applicable to any distortion function for which the component of the motion vector is the result of a division.
The motion estimation method in accordance with the invention can be implemented by means of items of hardware or software, or both. Said hardware or software items can be implemented in several manners, such as by means of wired electronic circuits or by means of an integrated circuit that is suitable programmed, respectively. The integrated circuit can be contained in an encoder. The integrated circuit comprises a set of instructions. Thus, said set of instructions contained, for example, in an encoder memory may cause the encoder to carry out the different steps of the motion estimation method. The set of instructions may be loaded into the programming memory by reading a data carrier such as, for example, a disk. A service provider can also make the set of instructions available via a communication network such as, for example, the Internet. Any reference sign in the following claims should not be construed as limiting the claim. It will be obvious that the use of the verb "to comprise" and its conjugations do not exclude the presence of any other steps or elements besides those defined in any claim. The word "a" or "an" preceding an element or step does not exclude the presence of a plurality of such elements or steps.

Claims

1 A method of motion estimation for a device adapted to process a sequence of frames, a frame being divided into blocks of data samples, said motion estimation method comprising the steps of: computing (22) a residual error block from a difference between a current block (Cur) contained in a current frame and a candidate block (Can) contained in a reference frame, a motion vector (MV) defining a relative position, expressed in an integer number of data samples, of the candidate block in the reference frame compared with a block (Ref) having the same position in said frame as the current block in the current frame, computing (23) a distortion value of the candidate block from residual error block values, applying the preceding steps to a first set of candidate blocks and selecting (24) a second set of locally close candidate blocks, containing at least the candidate block of the first set that has the smallest distortion value and two other candidate blocks, estimating (25) a continuous distortion function from distortion values (Dl,Dc,Dr) of the second set of candidate blocks and from components (x-l,x,x+l) of the corresponding motions vectors, determining (26) a component (u) with sub-sample accuracy of a final motion vector corresponding to a minimum value of the estimated distortion function.
2 A motion estimation method as claimed in claim 1, further comprising a step of rounding (27) the component of the final motion vector to values compatible with processing following the motion estimation.
3 A motion estimation method as claimed in claim 1, wherein the blocks of data samples are in a n-dimensional space, where n is an integer strictly higher than 1, and wherein the selection of the second set of candidate blocks and the following estimation is performed for each of the n dimensions.
4 A motion estimation method as claimed in claim 1, wherein the estimated distortion function is a second-degree polynomial function. 5 A motion estimation method as claimed in claim 1, wherein the component with sub-sample accuracy is the result of a division of a numerator by a denominator, the determining step comprising the sub-steps of: computing a logarithmic value of said component from a difference between a logarithmic value of an absolute value of the numerator and a logarithmic value of an absolute value of the denominator, the two last logarithmic values being derived from a lookup table, computing the component from a corresponding exponentiation of said difference and a sign of the division.
6 A motion estimation method as claimed in claim 5, wherein the lookup table comprises N entries, where N is a power of 2, the numerator and the denominator being divided by scaling factors, said scaling factors being a power of 2, in such a way that the scaled numerator and scaled denominator are smaller than N, the logarithmic value of the component being derived from a difference between a logarithmic value of an absolute value of the scaled numerator and a logarithmic value of an absolute value of the scaled denominator and from the scaling factors.
7 A motion estimation method as claimed in claim 1, wherein the component with sub-sample accuracy is the result of a division of a numerator by a denominator, the determining step comprising the sub-steps of: computing a logarithmic value of said component from a difference between a logarithmic value of an absolute value of the numerator and a logarithmic value of an absolute value of the denominator, the two last logarithmic values being derived from a lookup table, determining a rounded value of the component from a comparison of said difference with a predetermined value corresponding to a predetermined sub-sample accuracy.
8 A predictive block-based encoding method for encoding a sequence of frames, said encoding method comprising a motion estimation method as claimed in claim 1 for computing a motion vector to a desired accuracy, said encoding method further comprising a step of coding said motion vector and its associated residual error block. 9 An encoder for encoding a sequence of frames, said encoder comprising means for implementing the steps of the video encoding method as claimed in claim 8.
10 A computer program product comprising program instructions for implementing, when said program is executed by a processor, a motion estimation method as claimed in claim 1.
PCT/IB2004/002239 2003-07-09 2004-07-05 Simplified motion estimation method WO2005006767A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03300057 2003-07-09
EP03300057.1 2003-07-09

Publications (1)

Publication Number Publication Date
WO2005006767A1 true WO2005006767A1 (en) 2005-01-20

Family

ID=34043012

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2004/002239 WO2005006767A1 (en) 2003-07-09 2004-07-05 Simplified motion estimation method

Country Status (1)

Country Link
WO (1) WO2005006767A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008054688A1 (en) * 2006-10-30 2008-05-08 Hewlett-Packard Development Company, L.P. Method for decomposing a video sequence frame
EP2362655A1 (en) * 2010-02-10 2011-08-31 Telefonaktiebolaget L M Ericsson (Publ) Motion-vector estimation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0765088A2 (en) * 1995-09-22 1997-03-26 Tektronix, Inc. Fractional pixel motion estimation of video signals
US6141382A (en) * 1998-09-18 2000-10-31 Sarnoff Corporation Using estimated distortion values

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0765088A2 (en) * 1995-09-22 1997-03-26 Tektronix, Inc. Fractional pixel motion estimation of video signals
US6141382A (en) * 1998-09-18 2000-10-31 Sarnoff Corporation Using estimated distortion values

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008054688A1 (en) * 2006-10-30 2008-05-08 Hewlett-Packard Development Company, L.P. Method for decomposing a video sequence frame
US7756348B2 (en) 2006-10-30 2010-07-13 Hewlett-Packard Development Company, L.P. Method for decomposing a video sequence frame
CN101536528B (en) * 2006-10-30 2013-03-27 惠普开发有限公司 Method for decomposing a video sequence frame
EP2362655A1 (en) * 2010-02-10 2011-08-31 Telefonaktiebolaget L M Ericsson (Publ) Motion-vector estimation

Similar Documents

Publication Publication Date Title
US8705611B2 (en) Image prediction encoding device, image prediction encoding method, image prediction encoding program, image prediction decoding device, image prediction decoding method, and image prediction decoding program
EP0976251B1 (en) Method and arrangement for video coding
US6628711B1 (en) Method and apparatus for compensating for jitter in a digital video image
JP5044568B2 (en) Motion estimation using predictive guided decimation search
US7620108B2 (en) Integrated spatial-temporal prediction
US20060164543A1 (en) Video encoding with skipping motion estimation for selected macroblocks
KR20120118498A (en) An apparatus, a method and a computer program for video coding
US20050123039A1 (en) Motion estimation method for motion picture encoding and recording medium having program recorded thereon to implement the motion estimation method
WO2005120075A1 (en) Method of searching for a global motion vector.
JP5237814B2 (en) Multi-stage link method for adaptive motion vector sampling in video compression
JP4494803B2 (en) Improved noise prediction method and apparatus based on motion compensation, and moving picture encoding method and apparatus using the same
US8792549B2 (en) Decoder-derived geometric transformations for motion compensated inter prediction
US6996181B2 (en) Motion estimation method by employing a stochastic sampling technique
JP3769773B2 (en) Motion vector detection apparatus and detection method
Cherigui et al. Correspondence map-aided neighbor embedding for image intra prediction
EP1683361B1 (en) Power optimized collocated motion estimation method
WO2005006767A1 (en) Simplified motion estimation method
CN115550652A (en) Context-based image coding and decoding
US6332001B1 (en) Method of coding image data
JP3309519B2 (en) Motion vector detection device
Mishra et al. Comparative study of motion estimation techniques in video
JP6004852B2 (en) Method and apparatus for encoding and reconstructing pixel blocks
RU2701058C1 (en) Method of motion compensation and device for its implementation
CN116320483A (en) Motion compensation method, motion compensation device, electronic equipment and storage medium
van der Lem Implementation of realtime video compression, conform the MPEG standard, using a Transport Triggered Architecture

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase