WO2009056752A1 - Method and system for estimating future motion of image elements from the past motion in a video coder - Google Patents

Method and system for estimating future motion of image elements from the past motion in a video coder Download PDF

Info

Publication number
WO2009056752A1
WO2009056752A1 PCT/FR2008/051932 FR2008051932W WO2009056752A1 WO 2009056752 A1 WO2009056752 A1 WO 2009056752A1 FR 2008051932 W FR2008051932 W FR 2008051932W WO 2009056752 A1 WO2009056752 A1 WO 2009056752A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
motion estimation
block
vector
pixels
Prior art date
Application number
PCT/FR2008/051932
Other languages
French (fr)
Inventor
Pierre Larbier
Marc Baillavoine
Original Assignee
Ateme Sa
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 Ateme Sa filed Critical Ateme Sa
Publication of WO2009056752A1 publication Critical patent/WO2009056752A1/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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/513Processing of motion vectors
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the invention relates to a method and system for estimating the future motion of picture elements from the movement in a video encoder.
  • the current video encoders make it possible to generate video sequences, composed of Intra-frame images, called I-frames, coded without reference to the preceding images and thus to the past, of images predicted with respect to the past images, these predicted images being designated P-images, and hybrid predicted images, designated B-images, which are predicted both from previous images, past images, and from subsequent images, future images.
  • I-frames Intra-frame images
  • B-images hybrid predicted images
  • a considered image of rank n is cut into blocks, typically 16 ⁇ 16 pixels.
  • motion estimation algorithms make it possible to determine the motion vector, designated motion vector, of B n
  • a known technique is to initialize the estimation search from a point x ', y' (coordinates of a block of pixels) of the image of rank m defining with the corresponding point (x, y) of the image of rank n a candidate motion vector, hereinafter referred to as the candidate, which is considered to be a reasonable approximation of motion.
  • the positions tested of the candidate are limited to a neighborhood of this candidate, defining for example a zone of 4x4 pixels. If the approximation is correct, the displacement of a block is also determined by testing at most 16 positions.
  • a candidate may, for example, be either the median
  • the direct vector it is in fact the predictor vector used for bidirectional images.
  • the motion vector B n (x, y) of the current image of a co-localized block B m (x, y) of the same position x, y in the future reference image vector designated mvCol in FIG. 1, referenced in the past reference image.
  • mvCol vector designated mvCol in FIG. 1, referenced in the past reference image.
  • a candidate vector for the motion vector of the block of the current image B n (x, y) referenced in the future reference image is deduced by weighting the respective temporal distances.
  • past and future reference images according to the relation:
  • tp represents the temporal distance separating the current image from the past reference image
  • tf represents the time distance separating the future reference image from the current image
  • the direct vector is, moreover, a predicted motion vector.
  • a candidate vector mvLlbissu of the motion estimation passed between a block of the current image B n (x, y) referenced with respect to the reference image passed, by the vector mvLo for example, corresponding to the block Bp ( x ', y') on the image of past reference, weighted by the respective time distances of the past and future reference images respectively, according to the relationship
  • tf and tp denote the temporal distances separating the current image from the future reference image respectively from the past reference image.
  • the present invention in particular, relates to the implementation of a method for predicting the future movement of image elements or blocks of image pixels from past motion vectors that are available at level of a video encoder, at the moment when the latter is searching for future motion vectors.
  • the invention also relates to a video encoder in which the implementation of a motion predictor module makes the integration of a module superfluous future motion estimator, whose integration and operating cost is high.
  • an object of the present invention is also the implementation of video coders intended for consumer equipment with a limited bandwidth, presenting a clear gain in equipment complexity and in manufacturing cost, while allowing a function to be provided. prediction of future motion, in the absence, however, of implementation of future motion estimation module.
  • the motion estimation method of an image element contained in the current image of a video sequence, this current image being preceded, in the coding order, by at least one future reference image, in which for this current image and for the future reference image, there is available a field of motion estimation vectors passed from each block of pixels constituting these images with respect to this past reference image, which conforms to to the object of the present invention, is remarkable in that following the calculation of at least one movement vector passed (mvLo) of at least one block of pixels (Bc) of the current image referenced in this past reference image, it includes at least one motion prediction step of this block of pixels of the current image to this image reference, by linear combination of this past motion estimation vector (mvLo) and at least one motion estimation vector passed from a block of pixels of the current image (Bc) through of this linear combination, to generate a predicted motion estimation vector (mvL ⁇ B) of this block of pixels of the current image referenced in the future reference image.
  • the video coder which is the subject of the present invention comprises at least one input memory for storing a video stream, a read module for the input memory and an encoding module delivering, via a port of input-output, an encoded video stream comprising motion estimation vectors of successive images constituting this video stream.
  • the aforementioned coding module includes a past motion estimation module delivering, for each current image, a set of past motion estimation vectors associated with a block of pixels of each successive image, excluding any module of estimation of future movement towards a future reference image.
  • the video encoder according to the invention is remarkable in that the coding module includes, at least, connected to the past motion estimation module, a storage memory of the motion estimation vectors, a motion predictor module of at least one block of pixels from this current image to this future reference image, by linear combination of a past motion estimation vector (mvLo) of a block of pixels of the current image referenced in this reference image past and at least one movement estimation vector passed from a block of pixels of the future reference image deduced from the block of pixels of the current image via this linear combination, to generate a vector predicted motion estimation (mvL ⁇ B) of this block of pixels of the current image, referenced in the future reference image.
  • a storage memory of each of the predicted motion estimation vectors (mvL x B) is provided, which is connected to the input-output port.
  • the motion estimation method of an image element and the corresponding video encoder are capable of being implemented in the industrial field of coders and video coding, digital cameras or others.
  • FIG. 1a represents, purely by way of illustration, a flowchart of the essential steps for implementing the method that is the subject of the present invention
  • FIG. 1b represents, for purely illustrative purposes, a time diagram illustrating the procedure for implementing the steps of the method that is the subject of the present invention, as illustrated in FIG. Figure Ic represents a purely illustrative implementation detail of the prediction step
  • FIG. 2a represents, for purely illustrative purposes, a complete flowchart of the steps enabling the implementation of the method that is the subject of the present invention in a nonlimiting preferred mode of implementation
  • FIG. 1a represents, purely by way of illustration, a flowchart of the essential steps for implementing the method that is the subject of the present invention
  • FIG. 1b represents, for purely illustrative purposes, a time diagram illustrating the procedure for implementing the steps of the method that is the subject of the present invention, as illustrated in FIG. Figure Ic represents a purely illustrative implementation detail of
  • FIG. 2b represents, in a purely illustrative manner, an implementation detail of the step of calculating the past motion estimation vector (mvLoP) of a block of pixels of the future reference image, deduced from FIG. current image via a linear combination
  • FIG. 3 represents, by way of illustration, a temporal diagram of a process for processing the appearance in an image prior to the current image of a fortuitous image element, Hé to this image element, when, for example, the displacement of this image element revealing this fortuitous image element such as the backdrop
  • FIG. 4a and FIG. 4b represent, in the form of functional blocks, the general architecture of a video encoder, in accordance with the subject of the present invention
  • 5 represents a comparison diagram of the signal-to-noise ratio SPNR expressed in logarithmic base, measured in dB, for different video flow rate values expressed in kb / s, for a conventional video coding incorporating a future motion estimation, respectively for a video coding according to the method object of the present invention, in the absence of future motion estimation, but replaced by a prediction of future motion.
  • a current image denoted Pc
  • at least one past reference image denoted by Pp
  • at least one future reference image denoted Pf
  • the method which is the subject of the invention is implemented in a video coder in which, for the current image Pc and for the future reference image Pf, there is a field of motion estimation vectors passed from each block of pixels, such as the current block Bc shown in Figure 1b, vis-à-vis the reference image passed Pp.
  • the past motion vector field of each block of pixels is denoted ⁇ mvLo ⁇ and in FIG. 1b the increasing time axis t is represented from left to right and the y and x axes contained in a plane of each image are vertically represented in respectively orthogonal to the plane of the sheet.
  • step A for each current block of pixels, the current image Bc of a past motion estimation vector, denoted mvLo, is available.
  • the above-mentioned motion estimation vector makes it possible to reference the current block Bc of the current image in the past reference image Pp.
  • the block of pixels Bc the current image corresponds, by projection of motion, to the block of pixels Bcfp in the reference image passed Pp.
  • step A is followed by a step of predicting the movement of each block of pixels of the current image towards the future reference image Pf.
  • the aforementioned prediction step is advantageously carried out by linear combination of the motion estimation vector passed mvLo and of at least one motion estimation vector passed from the block of motion.
  • pixels, denoted Bcf, of the future reference image Pf, the aforementioned reference pixel block Bcf of the future reference image being deduced from the block of pixels of the current image Bc by means of the aforementioned linear combination, for generating a predicted motion estimation vector, the vector mvL, b, relating to each of the blocks of pixels of the current image referenced in the future reference image Pf.
  • the aforementioned linear combination includes at least the weighted inversion of the passed motion estimation vector, mvLo, of the block of pixels of the current image referenced with respect to the past reference image, designated block Bc in Figure Ib, to generate the predicted motion estimation vector mvL ⁇ B shown in Figure Ib.
  • the coefficient k of the aforementioned term performs the weighting of the amplitude of the vector mvLO pro rata of the time intervals tfc and tcp separating the future reference image from the current image respectively the image current of the passed reference image and the minus sign executes the 180 ° rotation of the motion estimation vector passed mvLo in order to perform the prediction of the movement of the current block Bc to the block Bcf referenced in the image of future reference Pf.
  • a specific treatment can then being executed on the block Bcf in the future reference image Pf, from the motion estimation vector passed from the aforementioned block referenced in the passed reference image Pf, via the motion estimation vector past, noted mvLoP in Figure la and Figure 1b.
  • the motion estimation vector predicts mvL, B can then result from the implementation of a linear combination processing process, this processing process occurring between the motion estimation vectors passed mvLoet mvLoP as represented in FIG. 1b.
  • the representative linear combination of this process of treatment is represented in FIG. 1a by the relation (2): wvZ, B-f (mvLoP, mvLo)
  • FIG. 2a A more detailed description of a specific, non-limiting embodiment of the method that is the subject of the invention will now be given with reference to FIG. 2a and FIGS. 2b and 2c.
  • the mode of implementation of FIG. 2a corresponds in fact to a specific implementation of step B of FIG.
  • step B comprising a sub-step B 1 consisting of executing the relation ( 2) previously cited to perform the weighted inversion of the motion estimation vector passed mvLoet of a substep B2 corresponding to the calculation of the motion estimation vector passed mvLoP of the pixel block Bcf in the future reference image Pf
  • the sub-calculation step B2 can be reduced to a simple call of the corresponding motion estimation vector stored and available in the coder. video above.
  • the linear combination mentioned above includes, in the substep B3, calculating the difference of position between the position in the reference image Pp of the P1 end.
  • motion estimation vector passed rnvLoP of the pixel block of the current image Bcf referenced in the future reference image Pf with respect to the reference image passed Pf, to generate the corresponding block of pixels Bcfp, and the position, in the same reference frame passed Pp, of the end P2 of the motion estimation vector passed mvLO of the block of pixels Bcp of the current image referenced in the reference image passed Pp.
  • 'EJP mvLoP 1 - (mvLo - mvl 1 B) in aforementioned step B3 is then followed by a validation step of motion estimation vector predicted MVL x B on inferiority criterion the magnitude of the difference vector of motion estimation passed, vector P 1 P 2 , to a threshold value S.
  • the step of validating the motion estimation vector predicted at the substep B4 is represented by the relation (4): ⁇ s
  • step A step B constituted by its sub-steps B1, B2, B3, B4 and B5 of FIG. 2a.
  • the method which is the subject of the invention includes at least, after calculation of the vector motion estimation passed mvLodu block of pixels Bc of the current image referenced in the reference image passed Pp, a first test step, denoted BOl, of the validity of the motion estimation vector passed mvLo.
  • the above-mentioned test step may advantageously consist of the application of a criterion of an interframe coding efficiency greater than the intratrame coding efficiency.
  • the application of the aforementioned test makes it possible to check whether the motion estimation vector has a meaning in the sense of the reference image and the evolution of the context, taking into account the estimated movement. It can be implemented from metrics of the sum of the absolute values of the different current and previous metric images applied to the variance and brightness of the pixels of the pixel blocks Bc and Bcfp previously described in the description.
  • a known technique for performing the aforementioned BOl test can consist in comparing the variance of the block with the sum of the absolute values of the differences (SAD) between the current block Bc and the corresponding block referenced by the motion estimation vector in the image.
  • a second test step B02 is called to verify the significance of the motion represented by the motion estimation vector passed mvLo.
  • the significance of the aforementioned motion is a function of the contrast variance of the pixel block of the image Bc. It is estimated, indeed, that if the variance of the block is small, the motion estimation vector found for this block does not represent the movement of the block, because motion estimation processes can not validly operate from a block or block area with low variance.
  • the test step B02 is represented by the relation (6): significant mvLo?
  • the weighted inversion sub step B1 is then called, followed by the substep B2.
  • the substep B2 is then followed by the substeps B3 and B4 including the substep B3 for calculating the motion estimation difference vector P 1 P 2 previously described in the description. and the test B4 in connection with FIG. 2a.
  • the method in the embodiment described, also includes a third test step BO1. for checking the similarity of the block of pixels of the current image Bc with respect to neighboring blocks.
  • the similarity test performed in the BOI test step l consists in comparing the light characteristics of the aforementioned blocks, in order to discriminate the existence of at least one similar neighboring block.
  • the test step BOl 1 is noted by the relation (7):
  • the predicted motion estimation vector of the similar neighboring block is allocated to the pixel block of the image current Bc. Otherwise, in the absence of a similar neighboring block, a null motion estimation vector is allocated to the block of pixels of the current image Bc.
  • step B04 the allocation operation of the predicted motion estimation vector of the neighboring block similar to the current block Bc is noted according to relation (8): / TIvL 1 - / wvProperty
  • test step B02 on a negative response to the second step of testing the significant character of the movement represented by the motion estimation vector passed mvLo, test step B02, the method which is the subject of the invention includes a fourth test step, denoted B021 consisting in checking the validity of the motion estimation vector of the block of pixels co-located on the future reference image Pf, on the criterion of efficiency the interframe coding greater than the efficiency intratrame coding.
  • step B021 the validity test step is noted according to relation (10):
  • the predicted motion estimation vector is allocated the direct vector from the collocation to the step B05.
  • step B05 the allocation operation is represented by the relation (11):
  • the calculation of the above-mentioned motion estimation vector mvLoP is capable of making the block of pixels Bc of the current image Pc correspond to a fictitious block of pixels Bcf, which does not correspond exactly to a block of pixels of the aforementioned future reference image Pf, the aforementioned block Bcf then corresponding to a plurality of adjacent blocks, and in particular to a plurality of adjacent block areas, themselves adjacent to the lines of delimiting the adjacent blocks considered in the plane of the future reference image Pf.
  • the abovementioned adjacent blocks are denoted by Bal, Ba2, Ba3 and
  • the step of calculating the positional difference of the end Pl of the motion estimation vector passed mvLoP in the past reference image is executed by weighting the areas occupied by the block of pixels of the current image in the future reference image Pf.
  • the aforesaid estimation process consists of starting from the block of pixels pointed by the predicted motion estimation vector mvL x B in the future reference image Pf allows for estimating this motion estimation vector as a pseudo-vector, barycentre common surfaces between the next block referenced to the sum of the adjacent physical blocks Bal, Ba2, Ba3 and Ba4 as shown in Figure 2c.
  • -mvA designates the movement estimation vector passed from the Bal block in the future reference image
  • MvB denotes the motion estimation vector passed from the block Ba2 in the image of future reference
  • MvC denotes the movement estimation vector passed from block Ba3 in the future reference image
  • MvD denotes the motion estimation vector passed from block Ba4 in the future reference image
  • these standards may correspond to MPEG2 or H.264 standards.
  • the current image is a B-type image designated as image B 12, which is predicted with respect to the past reference image Pf and the future reference image Pf.
  • Block 1 in the current frame represents the designated Object A in the passed reference picture.
  • This block is present in all the successive images.
  • This block being accelerated, the weighted inversion of the vector mvLo, as described in step BI of FIG. 2b for example, generates the vector ItIvL 1 B which does not result in the good block, because of the global translation of Object A.
  • the above-mentioned vector THvL 1 B results in a neighboring block, which belongs to the same object, and therefore follows the same movement.
  • the distance "Ad” is then measured according to the process described in step B3 of FIG. 2a, this distance being of course measured in the reference image passed Pp.
  • the motion difference vector passed P x P 1 -Ad represents the distance traveled in the image plane. by the picture element between the future reference picture and the current picture B 12.
  • the validation step of the motion estimation vector predicts mvL ⁇ B advantageously comprises a step of correcting the vector by adding, in the future reference image Pf, a motion estimation vector of correction, noted Ad. equipollent to the motion estimation difference vector P 1 P 2 .
  • the aforesaid operation may consist in putting back the motion estimation difference vector passed by vector summation to the end of the predicted vector mvL x B to form the finally retained predicted vector, TtIvL 1 as previously described in step B5 of Figure 2b.
  • the vector predicted mv £ thus generated perfectly represents the movement of the block between the future reference image Pf and the current image, the image B 12.
  • FIG. 3 Another example of a remarkable treatment process of the method which is the subject of the invention will now be given in connection with the same FIG. 3 in the case of an appearance, in at least one image prior to the current image, or in the image noted Bl I in FIG. 3, of a fortuitous picture element linked to the picture element, that is to say to Object A and therefore to at least one block of pixels of the latter presenting the accelerated movement previously cited.
  • Block 2 on the current image B 12 represents an appearance in the previous image, but the block designated Bloc 2 mentioned above does not exist on the last reference image, because it is in fact masked by the object A.
  • the current image B 12 is not predicted with respect to the previous image, image BI l, and it exists nevertheless on the future reference image, image Pf .
  • the method that is the subject of the invention then makes it possible to analyze the surrounding blocks in order to find a similar block, as represented in FIG. 2b in step BOl 1. .
  • the background being united it is then easy to find a similar block of pixels, such as the pixel block shown striated in Figure 3 above, and having a valid motion estimation vector.
  • the block designated Bloc 2 is assigned the motion estimation vector of the similar block, as represented in step B 04 of FIG. Figure 2b.
  • Block 1 Since the above-mentioned Block 2 has a correct motion estimation vector, the block of pixels designated Block 1 then has, because of the bound nature of these blocks, a correct motion estimation vector, without, however, executing any estimate of future movement as such.
  • the aforementioned process then consists in discriminating, in the current image B 12 in the vicinity of the fortuitous image element, a similar neighboring image element and then in allocating to the fortuitous image element an estimation vector predicted motion pattern, designated mvL x s * in FIG. 3, equips the predicted motion estimation vector mvL x s of the similar neighbor image element.
  • the predicted motion estimation vector allocated to the fortuitous image element is thus directly deduced from the predicted motion estimation vector mvL ⁇ s' and thus allocated to the image element containing at least one block of pixels. presenting in the image plane an accelerated movement.
  • FIGS. 4a and 4b A more detailed description of a video encoder, in accordance with the subject of the present invention, will now be given in connection with FIGS. 4a and 4b.
  • the video coder comprises, in a conventional manner, at least one input memory, denoted EM, receiving the video stream, a read module of the input memory noted RM and a coding module noted CM.
  • the input memory EM and the read module RM are modules of conventional architecture, which, for this reason, will not be described in detail.
  • the coding module CM also comprises, in a conventional manner, a past motion estimation module and a memory of the set of past motion vectors, the set ⁇ mvLo ⁇ previously mentioned in the description.
  • the coding module CM includes a past motion estimation module delivering for each current picture a set of past motion estimation vectors each associated with a block of motion. pixels of each successive image, excluding any future motion estimation module to a future reference image.
  • the coding module CM includes, at least, connected to the past motion estimation module, a storage memory of the set of past motion estimation vectors, vectors
  • the aforementioned coding module includes a PM module that predicts the movement of at least one block of pixels from the current image to the future reference image Pf.
  • the PM module predicting the movement of at least one block of pixels from the current image to the future reference image operates by linear combination of a motion estimation vector passed mvL0 of a block of pixels. of the current image referenced in the reference image passed Pp and at least one motion estimation vector passed vector mvLo of a block of pixels, the block Bcf of the future reference image, deduced from the block of pixels of the current image Bc above via the linear combination mentioned above.
  • the motion predictor module PM makes it possible to generate a predicted motion estimation vector of the block of pixels of the current image referenced in the future reference image Pf.
  • the predicted motion estimation vector n. is other than the motion estimation vector mvL x B.
  • the motion predictor module PM is further connected to a storage memory of each of the predicted motion estimation vectors forming a set of predicted motion estimation vectors ⁇ mvL x ⁇ .
  • the aforementioned storage memory is connected to the input / output port denoted I / O in order to deliver a coded video stream and including motion estimation vectors of the successive images constituting the coded video stream.
  • the motion predictor module PM operates in accordance with the method that is the subject of the invention as described above with reference to FIGS. 1a, 1b, 2a, 2b, 2c and 3.
  • a weighted inversion module A of the motion estimation vector passed mvLo comprises a weighted inversion module A of the motion estimation vector passed mvLo. It furthermore includes a module for calculating the difference in position between the position in the reference image Pp of the end P1 of the movement estimation vector passed from the block of pixels of the current image referenced in FIG. passed reference image Pp and the position, in the same past reference image, of the end P2 of the motion estimation vector mvLo of the block of pixels of the current image referenced in the reference image passed Pp to generate the vector P 1 P 2 past motion estimation difference, as described previously in the description.
  • the module for calculating the aforementioned difference in position bears the reference B.
  • the predicted motion estimation module PM comprises in in addition to a comparison module of the motion estimation difference vector passed to a threshold value, according to the relation (4) previously mentioned in the description. This comparison module is referenced C, D in Figure 4b.
  • the motion predictor module PM also comprises a validity test module of each motion estimation vector passed on the criterion of interframe coding efficiency greater than the coding efficiency. intratram, a motion significantness test module represented by each motion estimation vector passed mvLo and a dedicated calculation module of the barycenter of motion estimation vectors passed in the passed reference image Pp, by weighting of surfaces occupied by the block of pixels of the current image in the future reference image, as described in connection with Figure 2c.
  • the invention also covers a computer program product comprising a sequence of instructions stored on a storage medium and executable by a computer or by the dedicated calculation unit of a video encoder as shown in FIG. 4b, in accordance with the subject of the present invention, this product being the computer program being remarkable in that, during the execution of the instructions constituting it, this program implements the motion estimation method of an image element contained in the current image of a video sequence, as well as as described previously in the description in conjunction with Figures la, Ib, 2a, 2b, 2c and 3.
  • the above-mentioned computer program is implemented in modular form in the aforementioned PM predictor module.
  • the aforementioned computer program object of the invention is then advantageously implemented in modular form in the aforementioned predictor module, in the form of separate software modules bearing the references A, B, C, D, E, F, G previously mentioned in the description.
  • FIG. 5 it is indicated that the method and the video coder Objects of the present invention make it possible to eliminate the implementation of a future motion estimation module in video codecs which are very expensive to implement.

Landscapes

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

Abstract

A method of estimating the motion of an image element contained in the current image (Pc) of a video sequence preceded by a past reference image (Pp) and followed by a future reference image (Pf)- Following the calculation (A) of at least one past motion estimation vector (I) of a block of pixels (Bc) of the current image, referenced in the past reference image (Pp), a step (B) is executed for predicting the motion of the block of pixels (Bc) towards the future reference image (Pf) by linear combination of the past motion estimation vector (II) and of at least one past motion estimation vector (III) of a block of pixels (Bcf) of the future reference image (Pf) deduced from the block of pixels (Bc) by the linear combination, so as to generate a predicted motion estimation vector (IV).

Description

Procédé et système d'estimation de mouvement futur d'éléments d'image à partir du mouvement passé dans un codeur vidéo Method and system for estimating the future motion of picture elements from the movement in a video encoder
L'invention est relative à un procédé et à un système d'estimation de mouvement futur d'éléments d'image à partir du mouvement passé dans un codeur vidéo.The invention relates to a method and system for estimating the future motion of picture elements from the movement in a video encoder.
Les codeurs vidéo actuels permettent d'engendrer des séquences vidéo, composées d'images Intra-trame, dites images I, codées sans référence aux images précédentes et donc au passé, d'images prédites par rapport aux images passées, ces images prédites étant désignées images P, et d'images prédites hybrides, désignées images B, qui sont prédites à la fois par rapport aux images précédentes, images du passé, et par rapport aux images suivantes, images du futur.The current video encoders make it possible to generate video sequences, composed of Intra-frame images, called I-frames, coded without reference to the preceding images and thus to the past, of images predicted with respect to the past images, these predicted images being designated P-images, and hybrid predicted images, designated B-images, which are predicted both from previous images, past images, and from subsequent images, future images.
Afin de prédire les images successives les unes par rapport aux autres, une image considérée de rang n est découpée en blocs, typiquement de 16x16 pixels. Pour chaque bloc Bn (x,y) d'image de rang n, x et y désignant les coordonnées du bloc dans cette image, on recherche dans la ou les images précédentes et/ou suivantes de rang m, m e [n-p ; n+q] le bloc Bm (x',y') qui présente le plus de similarité avec le bloc d'image considéré Bn (x,y). On rappelle que la notion de similarité est établie par comparaison de valeurs de chrominance et/ou luminance des pixels constitutifs des blocs Bn (x,y) et Bn, (x',y').In order to predict the successive images relative to each other, a considered image of rank n is cut into blocks, typically 16 × 16 pixels. For each block B n (x, y) of image of rank n, x and y denoting the coordinates of the block in this image, we search in the previous and / or following images of rank m, me [np; n + q] the block B m (x ', y') which has the most similarity with the considered image block B n (x, y). It is recalled that the notion of similarity is established by comparison of chrominance values and / or luminance of the constituent pixels of the blocks B n (x, y) and B n , (x ', y').
En l'absence de mouvement du bloc Bn (x,y) et de l'élément d'image contenant ce dernier, ce bloc conserve, dans l'image de rang m, la même position que dans l'image de rang n, x =x' et y = y'.In the absence of movement of the block B n (x, y) and the image element containing the latter, this block retains, in the image of rank m, the same position as in the image of rank n , x = x 'and y = y'.
En présence de mouvement, des algorithmes d'estimation de mouvement permettent de déterminer le vecteur de déplacement, désigné vecteur mouvement, de Bn In the presence of motion, motion estimation algorithms make it possible to determine the motion vector, designated motion vector, of B n
(x,y) à Bm (x\y*). De très nombreux algorithmes d'estimation de mouvement sont connus de l'état de la technique. L'utilisation de ces derniers dépend de contraintes matérielles ou techniques d'équipements, telles que bande passante, taille mémoire disponible, etc. Pour une description plus détaillée du processus d'estimation de mouvement, on pourra utilement se reporter à l'article publié par Hye-Yeon Cheong, Alexis Michael Tourapis « Fast motion estimation within H.264 codée », IEEE International Conférence on Multimedial Expo 2003.(x, y) to B m (x \ y * ). Many motion estimation algorithms are known from the state of the art. The use of these depends on hardware or technical equipment constraints, such as bandwidth, available memory size, etc. For a more detailed description of the motion estimation process, it is useful to refer to the article published by Hye-Yeon Cheong, Alexis Michael Tourapis "Fast motion estimation within coded H.264", IEEE International Conference on Multimedial Expo 2003.
Dans le but d'accélérer les algorithmes d'estimation de mouvement, une technique connue consiste à initialiser Ia recherche d'estimation à partir d'un point x', y' (coordonnées d'un bloc de pixels) de l'image de rang m définissant avec le point correspondant (x, y) de l'image de rang n un vecteur mouvement candidat, désigné ci- après candidat, dont on estime qu'il est une approximation raisonnable du mouvement.In order to speed up the motion estimation algorithms, a known technique is to initialize the estimation search from a point x ', y' (coordinates of a block of pixels) of the image of rank m defining with the corresponding point (x, y) of the image of rank n a candidate motion vector, hereinafter referred to as the candidate, which is considered to be a reasonable approximation of motion.
Les positions testées du candidat sont limitées à un voisinage de ce candidat, définissant par exemple une zone de 4x4 pixels. Si l'approximation est correcte, on détermine aussi le déplacement d'un bloc en testant au maximum 16 positions.The positions tested of the candidate are limited to a neighborhood of this candidate, defining for example a zone of 4x4 pixels. If the approximation is correct, the displacement of a block is also determined by testing at most 16 positions.
Dans le cas des images P, un candidat peut, par exemple, être soit le médianIn the case of P-images, a candidate may, for example, be either the median
(ou le vecteur mouvement candidat moyen) des vecteurs mouvement des blocs qui l'entourent, soit le vecteur mouvement du bloc situé au même endroit dans l'image précédente, ou encore le vecteur nul. D'autres définitions du vecteur mouvement candidat peuvent être retenues.(or the average candidate motion vector) motion vectors of the blocks that surround it, either the movement vector of the block located at the same place in the previous image, or the null vector. Other definitions of the candidate movement vector can be retained.
Plusieurs candidats peuvent être retenus pour la recherche. Les critères de choix de l'élimination des candidats non retenus sont le plus souvent établis en raison de contraintes relatives à la présence de calcul nécessaire. Ainsi, dans le codeur de référence de la norme H264, intitulée ITU-T RecSeveral candidates may be selected for research. The criteria for choosing the elimination of unsuccessful candidates are most often established due to constraints on the presence of necessary calculation. Thus, in the reference coder of the H264 standard, entitled ITU-T Rec
H.264 ISO/IEC 14496-10 Advanced Video Coding, plusieurs candidats sont successivement testés puis éliminés ou conservés pour le calcul d'un vecteur mouvement final.H.264 ISO / IEC 14496-10 Advanced Video Coding, several candidates are successively tested and then eliminated or preserved for the calculation of a final motion vector.
Actuellement, toutes les normes de codage vidéo récentes mises en œuvre disposent, pour effectuer le codage effectif du vecteur mouvement, d'un prédicteur de mouvement. Celui-ci est sensé constituer une approximation du mouvement et le vecteur mouvement effectivement codé dan le flux de séquences d'images vidéo est la différence entre le vecteur mouvement final, dernier candidat trouvé par l'estimation de mouvement et le vecteur mouvement prédit, issu de ce prédicteur. Toutefois, le vecteur mouvement prédit est très souvent utilisé comme candidat dans un but d'économie de coût de calcul.Currently, all the recent video coding standards implemented have, for effective coding of the motion vector, a motion predictor. This one is supposed to constitute an approximation of the movement and the vector motion actually encoded in the flow of sequences of video images is the difference between the final motion vector, last candidate found by the estimation of movement and the vector motion predicted, resulting of this predictor. However, the predicted motion vector is very often used as a candidate for computational cost saving purposes.
Pour une description plus détaillée de la mise en œuvre des vecteurs mouvement candidat et prédit, on pourra utilement se reporter à Ia recommandation ITU-T Rec H.264 ISO/IEC 14496-10 Advanced Video Coding, paragraphe 8.4.1.For a more detailed description of the implementation of the candidate and predicted motion vectors, reference may be made to Recommendation ITU-T Rec. H.264 ISO / IEC 14496-10 Advanced Video Coding, paragraph 8.4.1.
A titre d'exemple illustratif, différents candidats usuellement utilisés dans la recherche de vecteurs mouvement futurs, tel que recommandés par la recommandation H. 264 précitée, sont décrits ci-après :As an illustrative example, various candidates usually used in the search for future motion vectors, as recommended by the aforementioned recommendation H. 264, are described below:
-le vecteur direct : c'est en fait le vecteur prédicteur utilisé pour les images bidirectionnelles. Pour le calculer, on prend en compte le vecteur mouvement Bn (x,y) de l'image courante d'un bloc co-localisé Bm (x,y) de même position x, y dans l'image de référence future, vecteur désigné mvCol sur la figure 1, référencé dans l'image de référence passée. A partir du vecteur mouvement du bloc co-localisé mvCol, on déduit un vecteur candidat pour le vecteur mouvement du bloc de l'image courante Bn (x,y) référencé dans l'image de référence future, par pondération des distances temporelles respectives des images de référence passée et future selon la relation :-the direct vector: it is in fact the predictor vector used for bidirectional images. To calculate it, we take into account the motion vector B n (x, y) of the current image of a co-localized block B m (x, y) of the same position x, y in the future reference image , vector designated mvCol in FIG. 1, referenced in the past reference image. From the motion vector of the co-located block mvCol, a candidate vector for the motion vector of the block of the current image B n (x, y) referenced in the future reference image is deduced by weighting the respective temporal distances. past and future reference images according to the relation:
— r—* - mvCol x tf mvLla= —
Figure imgf000005_0001
où tp représente la distance temporelle séparant l'image courante de l'image de référence passée ; tf représente la distance temporelle séparant l'image de référence future de l'image courante.
- r- * - mvCol x tf mvLla = -
Figure imgf000005_0001
where tp represents the temporal distance separating the current image from the past reference image; tf represents the time distance separating the future reference image from the current image.
Pour une description plus détaillée du vecteur direct, on pourra utilement se reporter à la recommandation H.264 précédemment citée, paragraphe 8.4.1.2.2.For a more detailed description of the direct vector, reference may be made to the above-mentioned recommendation H.264, paragraph 8.4.1.2.2.
On indique également que dans la recommandation H.264 précitée, le vecteur direct est, en outre, un vecteur mouvement prédit.It is also indicated that in the aforementioned recommendation H.264, the direct vector is, moreover, a predicted motion vector.
-un vecteur candidat mvLlbissu de l'estimation de mouvement passé entre un bloc de l'image Bn (x,y) courante référencé par rapport à l'image de référence passée, par le vecteur mvLo par exemple, correspondant au bloc Bp (x',y') sur l'image de référence passée, pondéré par les distances temporelles respectives des images de référence passée et future respectivement, selon la relation
Figure imgf000006_0001
a candidate vector mvLlbissu of the motion estimation passed between a block of the current image B n (x, y) referenced with respect to the reference image passed, by the vector mvLo for example, corresponding to the block Bp ( x ', y') on the image of past reference, weighted by the respective time distances of the past and future reference images respectively, according to the relationship
Figure imgf000006_0001
Dans cette relation, tf et tp désignent les distances temporelles séparant l'image courante de l'image de référence future respectivement de l'image de référence passée.In this relation, tf and tp denote the temporal distances separating the current image from the future reference image respectively from the past reference image.
-le vecteur nul mvo , colinéaire à l'axe temporel.the zero vector mvo, collinear with the time axis.
La présente invention a, en particulier, pour objet la mise en œuvre d'un procédé permettant de prédire le mouvement futur d'éléments d'images ou de blocs de pixels d'images à partir des vecteurs de mouvement passé dont on dispose, au niveau d'un codeur vidéo, au moment où ce dernier recherche les vecteurs mouvement futur.The present invention, in particular, relates to the implementation of a method for predicting the future movement of image elements or blocks of image pixels from past motion vectors that are available at level of a video encoder, at the moment when the latter is searching for future motion vectors.
En particulier, grâce à la mise en œuvre du procédé, objet de la présente invention, l'invention a également pour objet un codeur vidéo dans lequel la mise en œuvre d'un module prédicteur de mouvement rend superflue l'intégration d'un module estimateur de mouvement futur, dont le coût d'intégration et d'exploitation s'avère élevé.In particular, thanks to the implementation of the method, object of the present invention, the invention also relates to a video encoder in which the implementation of a motion predictor module makes the integration of a module superfluous future motion estimator, whose integration and operating cost is high.
En conséquence, un objet de la présente invention est également la mise en œuvre de codeurs vidéo destinés aux équipements grand public à bande passante limitée, présentant un gain manifeste en complexité d'équipement et en coût de fabrication, bien que permettant de fournir une fonction de prédiction de mouvement futur, en l'absence toutefois d'implantation de module d'estimation de mouvement futur.Consequently, an object of the present invention is also the implementation of video coders intended for consumer equipment with a limited bandwidth, presenting a clear gain in equipment complexity and in manufacturing cost, while allowing a function to be provided. prediction of future motion, in the absence, however, of implementation of future motion estimation module.
Le procédé d'estimation de mouvement d'un élément d'image contenu dans l'image courante d'une séquence vidéo, cette image courante étant précédée, dans l'ordre de codage, par au moins une image de référence future, dans lequel on dispose, pour cette image courante et pour l'image de référence future, d'un champ de vecteurs d'estimation de mouvement passé de chaque bloc de pixels constitutifs de ces images vis-à-vis de cette image de référence passée, conforme à l'objet de la présente invention, est remarquable en ce que suite au calcul d'au moins vecteur de mouvement passé (mvLo) d'au moins un bloc de pixels (Bc) de l'image courante référencé dans cette image de référence passée, il inclut au moins une étape de prédiction de mouvement de ce bloc de pixels de l'image courante vers cette image de référence future, par combinaison linéaire de ce vecteur d'estimation de mouvement passé (mvLo ) et d'au moins un vecteur d'estimation de mouvement passé d'un bloc de pixels de l'image courante (Bc) par l'intermédiaire de cette combinaison linéaire, pour engendrer un vecteur d'estimation de mouvement prédit (mvL^B ) de ce bloc de pixels de l'image courante référencé dans l'image de référence future.The motion estimation method of an image element contained in the current image of a video sequence, this current image being preceded, in the coding order, by at least one future reference image, in which for this current image and for the future reference image, there is available a field of motion estimation vectors passed from each block of pixels constituting these images with respect to this past reference image, which conforms to to the object of the present invention, is remarkable in that following the calculation of at least one movement vector passed (mvLo) of at least one block of pixels (Bc) of the current image referenced in this past reference image, it includes at least one motion prediction step of this block of pixels of the current image to this image reference, by linear combination of this past motion estimation vector (mvLo) and at least one motion estimation vector passed from a block of pixels of the current image (Bc) through of this linear combination, to generate a predicted motion estimation vector (mvL ^ B) of this block of pixels of the current image referenced in the future reference image.
Le codeur vidéo objet de la présente invention comporte au moins une mémoire d'entrée de mémorisation d'un flux vidéo, un module de lecture de la mémoire d'entrée et un module de codage délivrant, par l'intermédiaire d'un port d'entrée-sortie, un flux vidéo codé comportant des vecteurs d'estimation de mouvement des images successives constituant ce flux vidéo.The video coder which is the subject of the present invention comprises at least one input memory for storing a video stream, a read module for the input memory and an encoding module delivering, via a port of input-output, an encoded video stream comprising motion estimation vectors of successive images constituting this video stream.
Le module de codage précité inclut un module d'estimation de mouvement passé délivrant, pour chaque image courante, un ensemble de vecteurs d'estimation de mouvement passé associés à un bloc de pixels de chaque image successive, à l'exclusion de tout module d'estimation de mouvement futur vers une image de référence future.The aforementioned coding module includes a past motion estimation module delivering, for each current image, a set of past motion estimation vectors associated with a block of pixels of each successive image, excluding any module of estimation of future movement towards a future reference image.
Le codeur vidéo selon l'invention est remarquable en ce que le module de codage inclut au moins, connectés au module d'estimation de mouvement passé, une mémoire de stockage des vecteurs d'estimation du mouvement passé, un module prédicteur de mouvement d'au moins un bloc de pixels de cette image courante vers cette image de référence future, par combinaison linéaire d'un vecteur d'estimation de mouvement passé (mvLo ) d'un bloc de pixels de l'image courante référencé dans cette image de référence passée et d'au moins un vecteur d'estimation de mouvement passé d'un bloc de pixels de l'image de référence future déduit du bloc de pixels de l'image courante par l'intermédiaire de cette combinaison linéaire, pour engendrer un vecteur d'estimation de mouvement prédit (mvL}B ) de ce bloc de pixels de l'image courante, référencé dans l'image de référence future. Une mémoire de stockage de chacun des vecteurs d'estimation de mouvement prédit (mvLxB ) est prévue, laquelle est reliée au port d'entrée-sortie.The video encoder according to the invention is remarkable in that the coding module includes, at least, connected to the past motion estimation module, a storage memory of the motion estimation vectors, a motion predictor module of at least one block of pixels from this current image to this future reference image, by linear combination of a past motion estimation vector (mvLo) of a block of pixels of the current image referenced in this reference image past and at least one movement estimation vector passed from a block of pixels of the future reference image deduced from the block of pixels of the current image via this linear combination, to generate a vector predicted motion estimation (mvL } B) of this block of pixels of the current image, referenced in the future reference image. A storage memory of each of the predicted motion estimation vectors (mvL x B) is provided, which is connected to the input-output port.
Le procédé d'estimation de mouvement d'un élément d'image et le codeur vidéo correspondant sont susceptibles d'être mis en œuvre dans le domaine industriel des codeurs et du codage vidéo, les caméras numériques ou autres.The motion estimation method of an image element and the corresponding video encoder are capable of being implemented in the industrial field of coders and video coding, digital cameras or others.
Ils seront mieux compris à la lecture de la description et à l'observation des dessins ci-après dans lesquels : la figure la représente, à titre purement illustratif, un organigramme des étapes essentielles de mise en œuvre du procédé objet de la présente invention ; - la figure Ib représente, à titre purement illustratif, un diagramme temporel illustrant le mode opératoire permettant la mise en œuvre des étapes du procédé objet de la présente invention, tel qu'illustré en figure la ; la figure Ic représente à titre purement illustratif un détail de mise en œuvre de l'étape de prédiction ; - la figure 2a représente, à titre purement illustratif, un organigramme complet des étapes permettant la mise en œuvre du procédé objet de la présente invention dans un mode de mise en œuvre préférentiel non limitatif ; la figure 2b représente, de manière purement illustrative, un détail de mise en œuvre de l'étape de calcul du vecteur d'estimation de mouvement passé (mvLoP) d'un bloc de pixels de l'image de référence future, déduit de l'image courante par l'intermédiaire d'une combinaison linéaire ; la figure 3 représente, à titre illustratif, un diagramme temporel d'un processus de traitement de l'apparition dans une image antérieure à l'image courante d'un élément d'image fortuit, Hé à cet élément d'image, lors, par exemple, du déplacement de cet élément d'image révélant cet élément d'image fortuit tel que le fond de scène ; la figure 4a et la figure 4b représentent, sous forme de blocs fonctionnels, l'architecture générale d'un codeur vidéo, conforme à l'objet de la présente invention ; - la figure 5 représente un diagramme comparatif du rapport signal à bruit SPNR exprimé en base logarithmique, mesuré en dB, pour différentes valeurs de débit du flux vidéo exprimé en kb/s, pour un codage vidéo classique incorporant une estimation de mouvement futur, respectivement pour un codage vidéo selon le procédé objet de la présente invention, en l'absence d'estimation de mouvement futur, mais remplacée par une prédiction de mouvement futur.They will be better understood by reading the description and by observing the following drawings in which: FIG. 1a represents, purely by way of illustration, a flowchart of the essential steps for implementing the method that is the subject of the present invention; FIG. 1b represents, for purely illustrative purposes, a time diagram illustrating the procedure for implementing the steps of the method that is the subject of the present invention, as illustrated in FIG. Figure Ic represents a purely illustrative implementation detail of the prediction step; FIG. 2a represents, for purely illustrative purposes, a complete flowchart of the steps enabling the implementation of the method that is the subject of the present invention in a nonlimiting preferred mode of implementation; FIG. 2b represents, in a purely illustrative manner, an implementation detail of the step of calculating the past motion estimation vector (mvLoP) of a block of pixels of the future reference image, deduced from FIG. current image via a linear combination; FIG. 3 represents, by way of illustration, a temporal diagram of a process for processing the appearance in an image prior to the current image of a fortuitous image element, Hé to this image element, when, for example, the displacement of this image element revealing this fortuitous image element such as the backdrop; FIG. 4a and FIG. 4b represent, in the form of functional blocks, the general architecture of a video encoder, in accordance with the subject of the present invention; FIG. 5 represents a comparison diagram of the signal-to-noise ratio SPNR expressed in logarithmic base, measured in dB, for different video flow rate values expressed in kb / s, for a conventional video coding incorporating a future motion estimation, respectively for a video coding according to the method object of the present invention, in the absence of future motion estimation, but replaced by a prediction of future motion.
Une description plus détaillée du procédé d'estimation de mouvement d'un élément d'image contenu dans l'image courante d'une séquence vidéo, objet de la présente invention, sera maintenant donnée en liaison avec les figures la, Ib et les figures suivantes.A more detailed description of the motion estimation method of an image element contained in the current image of a video sequence, object of the present invention, will now be given in connection with FIGS. 1a, 1b and the figures. following.
En référence aux figures précitées, on considère une image courante, notée Pc, précédée par au moins une image de référence passée, notée Pp et suivie par au moins une image de référence future, notée Pf.With reference to the above figures, a current image, denoted Pc, preceded by at least one past reference image, denoted by Pp and followed by at least one future reference image, denoted Pf, is considered.
Le procédé objet de l'invention est mis en œuvre dans un codeur vidéo dans lequel on dispose pour l'image courante Pc et pour l'image de référence future Pf d'un champ de vecteurs d'estimation de mouvement passé de chaque bloc de pixels, tels que le bloc courant Bc représenté en figure 1 b, vis-à-vis de l'image de référence passée Pp.The method which is the subject of the invention is implemented in a video coder in which, for the current image Pc and for the future reference image Pf, there is a field of motion estimation vectors passed from each block of pixels, such as the current block Bc shown in Figure 1b, vis-à-vis the reference image passed Pp.
Sur la figure la, le champ de vecteurs de mouvement passé de chaque bloc de pixels est noté { mvLo } et sur la figure Ib l'axe des temps croissant t est représenté de gauche à droite et les axes y et x contenus dans un plan de chaque image sont représentés verticalement dans le respectivement orthogonalement au plan de la feuille.In FIG. 1a, the past motion vector field of each block of pixels is denoted {mvLo} and in FIG. 1b the increasing time axis t is represented from left to right and the y and x axes contained in a plane of each image are vertically represented in respectively orthogonal to the plane of the sheet.
En référence aux figures précitées, on dispose à l'étape A, pour chaque bloc courant de pixels de l'image courante Bc d'un vecteur d'estimation de mouvement passé, noté mvLo. Conformément à la technique classique de traitement d'images, le vecteur d'estimation de mouvement précité permet de référencer le bloc courant Bc de l'image courante dans l'image de référence passée Pp. On comprend en particulier que le bloc de pixels Bc l'image courante correspond, par projection de mouvement, au bloc de pixels Bcfp dans l'image de référence passée Pp. Il en est de même pour tout bloc de pixels de l'image de référence future Pf vis-à-vis de l'image de référence passée Pp. En référence à la figure 1 a, l'étape A est suivie d'une étape de prédiction du mouvement de chaque bloc de pixels de l'image courante vers l'image de référence future Pf.With reference to the above figures, in step A, for each current block of pixels, the current image Bc of a past motion estimation vector, denoted mvLo, is available. In accordance with the conventional image processing technique, the above-mentioned motion estimation vector makes it possible to reference the current block Bc of the current image in the past reference image Pp. It is particularly understood that the block of pixels Bc the current image corresponds, by projection of motion, to the block of pixels Bcfp in the reference image passed Pp. The same is true for any block of pixels of the future reference image Pf with respect to the reference image passed Pp. With reference to FIG. 1a, step A is followed by a step of predicting the movement of each block of pixels of the current image towards the future reference image Pf.
L'étape de prédiction précitée, selon un aspect remarquable du procédé objet de l'invention, est avantageusement exécutée par combinaison linéaire du vecteur d'estimation de mouvement passé mvLo et d'au moins un vecteur d'estimation de mouvement passé du bloc de pixels, noté Bcf, de l'image de référence future Pf, le bloc de pixels Bcf précité de l'image de référence future étant déduit du bloc de pixels de l'image courante Bc par l'intermédiaire de la combinaison linéaire précitée, pour engendrer un vecteur d'estimation de mouvement prédit, le vecteur mvL, b , relatif à chacun des blocs de pixels de l'image courante référencé dans l'image de référence future Pf.The aforementioned prediction step, according to a remarkable aspect of the method which is the subject of the invention, is advantageously carried out by linear combination of the motion estimation vector passed mvLo and of at least one motion estimation vector passed from the block of motion. pixels, denoted Bcf, of the future reference image Pf, the aforementioned reference pixel block Bcf of the future reference image being deduced from the block of pixels of the current image Bc by means of the aforementioned linear combination, for generating a predicted motion estimation vector, the vector mvL, b, relating to each of the blocks of pixels of the current image referenced in the future reference image Pf.
En référence à la figure la, on indique que la combinaison linéaire précitée inclut au moins l'inversion pondérée du vecteur d'estimation de mouvement passé, mvLo , du bloc de pixels de l'image courante référencé vis-à-vis de l'image de référence passée, bloc désigné Bc sur la figure Ib, pour engendrer le vecteur d'estimation de mouvement prédit mvLλB représenté en figure Ib.With reference to FIG. 1a, it is indicated that the aforementioned linear combination includes at least the weighted inversion of the passed motion estimation vector, mvLo, of the block of pixels of the current image referenced with respect to the past reference image, designated block Bc in Figure Ib, to generate the predicted motion estimation vector mvL λ B shown in Figure Ib.
Ainsi, en référence aux figures la et Ib, on comprend que la combinaison linéaire précitée comprend au moins un terme donné par la relation (1): wvZ, B = k mvLo k = -tfc/tcpThus, with reference to FIGS. 1a and 1b, it is understood that the aforementioned linear combination comprises at least one term given by the relation (1): wvZ, B = k mvLo k = -tfc / tcp
Dans la relation précédente, on comprend que le que le coefficient k du terme précité exécute la pondération de l'amplitude du vecteur mvLO au prorata des intervalles temporels tfc et tcp séparant l'image de référence future de l'image courante respectivement l'image courante de l'image de référence passée et le signe moins exécute la rotation à 180° du vecteur d'estimation de mouvement passé mvLo en vue d'effectuer la prédiction du mouvement du bloc courant Bc vers le bloc Bcf référencé dans l'image de référence future Pf.In the previous relation, it is understood that the coefficient k of the aforementioned term performs the weighting of the amplitude of the vector mvLO pro rata of the time intervals tfc and tcp separating the future reference image from the current image respectively the image current of the passed reference image and the minus sign executes the 180 ° rotation of the motion estimation vector passed mvLo in order to perform the prediction of the movement of the current block Bc to the block Bcf referenced in the image of future reference Pf.
Ainsi qu'on l'a en outre représenté en figure Ib, un traitement spécifique peut ensuite être exécuté sur Ie bloc Bcf dans l'image de référence future Pf, à partir du vecteur d'estimation de mouvement passé du bloc précité référencé dans l'image de référence passée Pf, par l'intermédiaire du vecteur d'estimation de mouvement passé, noté mvLoP sur la figure la et la figure 1 b. On comprend, dans ces conditions, que le vecteur d'estimation de mouvement prédit mvL,B peut alors résulter de la mise en œuvre d'un processus de traitement par combinaison linéaire, ce processus de traitement intervenant entre les vecteurs d'estimation de mouvement passé mvLoet mvLoP tel que représenté en figure Ib. La combinaison linéaire représentative de ce processus de traitement est représentée sur la figure 1 a par la relation (2): wvZ, B - f ( mvLoP , mvLo )As furthermore shown in FIG. 1b, a specific treatment can then being executed on the block Bcf in the future reference image Pf, from the motion estimation vector passed from the aforementioned block referenced in the passed reference image Pf, via the motion estimation vector past, noted mvLoP in Figure la and Figure 1b. It is understood, in these conditions, that the motion estimation vector predicts mvL, B can then result from the implementation of a linear combination processing process, this processing process occurring between the motion estimation vectors passed mvLoet mvLoP as represented in FIG. 1b. The representative linear combination of this process of treatment is represented in FIG. 1a by the relation (2): wvZ, B-f (mvLoP, mvLo)
Une description plus détaillée d'un mode de mise en œuvre spécifique non limitatif du procédé, objet de l'invention, sera maintenant donnée en liaison avec la figure 2a et les figures 2b et 2c. Le mode de mise en œuvre de la figure 2a correspond en fait à une mise en œuvre spécifique de l'étape B de la figure la.A more detailed description of a specific, non-limiting embodiment of the method that is the subject of the invention will now be given with reference to FIG. 2a and FIGS. 2b and 2c. The mode of implementation of FIG. 2a corresponds in fact to a specific implementation of step B of FIG.
À l'observation de la figure 2a, on comprend qu'on retrouve la mise en œuvre de l'étape A de la figure la, cette dernière étant alors suivie de l'étape B comportant une sous étape Bl consistant à exécuter la relation (2) précédemment citée pour exécuter l'inversion pondérée du vecteur d'estimation de mouvement passé mvLoet d'une sous étape B2 correspondant au calcul du vecteur d'estimation de mouvement passé mvLoP du bloc de pixels Bcf dans l'image de référence future Pf. On rappelle que lors de la mise en œuvre du procédé objet de l'invention dans un codeur vidéo, la sous-étape de calcul B2 peut être réduite à un simple appel du vecteur d'estimation de mouvement correspondant mémorisé et disponible dans le codeur vidéo précité.With the observation of FIG. 2a, it is understood that the implementation of step A of FIG. 1a is again found, the latter then being followed by step B comprising a sub-step B 1 consisting of executing the relation ( 2) previously cited to perform the weighted inversion of the motion estimation vector passed mvLoet of a substep B2 corresponding to the calculation of the motion estimation vector passed mvLoP of the pixel block Bcf in the future reference image Pf It will be recalled that during the implementation of the method that is the subject of the invention in a video coder, the sub-calculation step B2 can be reduced to a simple call of the corresponding motion estimation vector stored and available in the coder. video above.
Selon un aspect remarquable du procédé objet de l'invention, la combinaison linéaire précédemment mentionnée inclut, à la sous-étape B3, le calcul de la différence de position entre la position dans l'image de référence passée Pp de l'extrémité Pl du vecteur d'estimation de mouvement passé rnvLoP du bloc de pixels de l'image courante Bcf référencé dans l'image de référence future Pf vis-à-vis de l'image de référence passée Pf, pour engendrer le bloc de pixels correspondant Bcfp, et la position, dans la même image de référence passée Pp, de l'extrémité P2 du vecteur d'estimation de mouvement passé mvLO du bloc de pixels Bcp de l'image courante référencé dans l'image de référence passée Pp .According to a remarkable aspect of the method which is the subject of the invention, the linear combination mentioned above includes, in the substep B3, calculating the difference of position between the position in the reference image Pp of the P1 end. motion estimation vector passed rnvLoP of the pixel block of the current image Bcf referenced in the future reference image Pf with respect to the reference image passed Pf, to generate the corresponding block of pixels Bcfp, and the position, in the same reference frame passed Pp, of the end P2 of the motion estimation vector passed mvLO of the block of pixels Bcp of the current image referenced in the reference image passed Pp.
Le calcul réalisé à la sous étape B3 permet ainsi d'engendrer un vecteur PxP2 différence d'estimation de mouvement passé, selon Ia relation (3):The calculation carried out in the sub-step B3 thus makes it possible to generate a vector P x P 2 difference of past motion estimation, according to the relation (3):
'EJP1 = mvLoP - (mvLo - MvL1B) La sous étape B3 précitée est alors suivie d'une étape de validation du vecteur d'estimation de mouvement prédit mvLxB sur critère d'infériorité de l'amplitude du vecteur différence d'estimation de mouvement passé, vecteur P1P2 , à une valeur de seuil S. 'EJP mvLoP 1 = - (mvLo - mvl 1 B) in aforementioned step B3 is then followed by a validation step of motion estimation vector predicted MVL x B on inferiority criterion the magnitude of the difference vector of motion estimation passed, vector P 1 P 2 , to a threshold value S.
L'étape de validation du vecteur d'estimation de mouvement prédit à la sous étape B4 est représentée par la relation (4):
Figure imgf000012_0001
<s
The step of validating the motion estimation vector predicted at the substep B4 is represented by the relation (4):
Figure imgf000012_0001
<s
Sur réponse positive au test de la sous étape B4, le vecteur d'estimation de mouvement prédit finalement retenu, noté mvLx , est le vecteur mvLx B sans autre correction. Au contraire, sur réponse négative au test de la sous étape B4 une réactualisation du vecteur d'estimation de mouvement passé mvLo est alors appelée pour correction du vecteur d'estimation de mouvement prédit mvLxB , ainsi qu'il sera décrit de manière plus détaillée ultérieurement dans la description.On positive response to the test of the substep B4, the predicted motion estimation vector finally retained, denoted mvL x , is the vector mvL x B without further correction. On the contrary, on a negative response to the test of the substep B4, a reactualization of the motion estimation vector passed mvLo is then called for correction of the predicted motion estimation vector mvL x B, as will be described more detailed later in the description.
Un mode de mise en œuvre préférentiel non limitatif du procédé objet de l'invention sera maintenant décrit en liaison avec la figure 2b et la figure 2c.A nonlimiting preferred mode of implementation of the method which is the subject of the invention will now be described with reference to FIG. 2b and FIG. 2c.
Sur la figure 2b, les mêmes éléments que ceux précédemment décrits en liaison avec les figures précédentes portent les mêmes références. Ainsi, à l'observation de la figure 2b on retrouve bien entendu l'étape A, l'étape B constituée par ses sous étapes Bl, B2, B3, B4 et B5 de la figure 2a.In Figure 2b, the same elements as previously described in connection with the previous figures have the same references. Thus, on the observation of FIG. 2b, there is of course step A, step B constituted by its sub-steps B1, B2, B3, B4 and B5 of FIG. 2a.
En outre, ainsi qu'on l'a représenté sur la figure 2b précitée, et préalablement à l'opération d'inversion pondérée exécutée à la sous étape B l, le procédé objet de l'invention inclut au moins, après calcul du vecteur d'estimation de mouvement passé mvLodu bloc de pixels Bc de l'image courante référencé dans l'image de référence passée Pp, une première étape de test, notée BOl, de la validité du vecteur d'estimation de mouvement passé mvLo .In addition, as shown in FIG. 2b above, and before the weighted inversion operation executed in sub-step B 1, the method which is the subject of the invention includes at least, after calculation of the vector motion estimation passed mvLodu block of pixels Bc of the current image referenced in the reference image passed Pp, a first test step, denoted BOl, of the validity of the motion estimation vector passed mvLo.
L'étape de test précitée est représentée par la relation (5) : Validité mvLo ?The above test step is represented by relation (5): Validity mvLo?
L'étape de test précitée peut avantageusement consister en l'application d'un critère d'une efficacité de codage intertrame supérieure à l'efficacité de codage intratrame. L'application du test précité permet de vérifier si le vecteur d'estimation de mouvement passé a un sens au sens de l'image de référence et de l'évolution du contexte, compte tenu du mouvement estimé. Il peut être mis en œuvre à partir de métriques de la somme des valeurs absolues des différentes images courantes et précédentes, métriques appliquées à la variance et à la luminosité des pixels des blocs de pixels Bc et Bcfp précédemment décrits dans la description. Une technique connue pour effecteur le test BOl précité peut consister à comparer la variance du bloc à la somme des valeurs absolues des différences (SAD) entre le bloc courant Bc et le bloc correspondant référencé par le vecteur d'estimation de mouvement dans l'image de référence passée Pp. Pour une description plus détaillée de ce mode opératoire, on pourra se reporter à l'article Optimizing INTRA/INTER Coding Mode Décisions de Yen-Kuang Chen, Anthony Vetro, Huifang Sun and S. Y. Kung Princeton University and Mitsubishi Electric ITA, 23 octobre 1997.The above-mentioned test step may advantageously consist of the application of a criterion of an interframe coding efficiency greater than the intratrame coding efficiency. The application of the aforementioned test makes it possible to check whether the motion estimation vector has a meaning in the sense of the reference image and the evolution of the context, taking into account the estimated movement. It can be implemented from metrics of the sum of the absolute values of the different current and previous metric images applied to the variance and brightness of the pixels of the pixel blocks Bc and Bcfp previously described in the description. A known technique for performing the aforementioned BOl test can consist in comparing the variance of the block with the sum of the absolute values of the differences (SAD) between the current block Bc and the corresponding block referenced by the motion estimation vector in the image. Pp. For a more detailed description of this procedure, refer to Optimizing INTRA / INTER Coding Mode Decisions by Yen-Kuang Chen, Anthony Vetro, Huifang Sun and SY Kung Princeton University and Mitsubishi Electric ITA. , October 23, 1997.
Ainsi, on indique que, si la métrique présente une valeur inférieure à une valeur de variance donnée, l'on procède à un codage intertrame. Sinon, on retient le codage intratrame.Thus, it is indicated that, if the metric has a value less than a given variance value, interframe coding is carried out. Otherwise, we retain the intratrame coding.
En référence à la figure 2b précitée, sur réponse positive à la première étape de test BOl une deuxième étape de test B02 est appelée visant à vérifier le caractère significatif du mouvement représenté par le vecteur d'estimation de mouvement passé mvLo .With reference to FIG. 2b above, on a positive response to the first step test BO1 a second test step B02 is called to verify the significance of the motion represented by the motion estimation vector passed mvLo.
Le caractère significatif du mouvement précité est fonction de la variance en termes de contraste du bloc de pixels de l'image Bc. On estime, en effet, que si la variance du bloc est faible, le vecteur d'estimation de mouvement trouvé pour ce bloc ne représente pas le mouvement du bloc, car les processus d'estimation de mouvement ne peuvent valablement opérer à partir d'un bloc ou d'une zone de bloc à faible variance. L'étape de test B02 est représentée par la relation (6) : mvLo significatif ?The significance of the aforementioned motion is a function of the contrast variance of the pixel block of the image Bc. It is estimated, indeed, that if the variance of the block is small, the motion estimation vector found for this block does not represent the movement of the block, because motion estimation processes can not validly operate from a block or block area with low variance. The test step B02 is represented by the relation (6): significant mvLo?
Sur réponse positive à la deuxième étape de test B02, la sous étape d'inversion pondérée Bl est alors appelée, suivie de la sous étape B2.On positive response to the second test step B02, the weighted inversion sub step B1 is then called, followed by the substep B2.
En référence à la figure 2b et à la figure 2a, la sous-étape B2 est alors suivie des sous étape B3 et B4 incluant la sous étape B3 de calcul du vecteur différence d'estimation de mouvement P1P2 précédemment décrite dans la description et le test B4 en liaison avec la figure 2a.With reference to FIG. 2b and FIG. 2a, the substep B2 is then followed by the substeps B3 and B4 including the substep B3 for calculating the motion estimation difference vector P 1 P 2 previously described in the description. and the test B4 in connection with FIG. 2a.
Sur réponse positive au test B4, la sous étape B5 de correction du vecteur de mouvement prédit mvLxB est alors appelée.On positive response to the B4 test, the substep B5 motion vector correction predicts mvL x B is then called.
En outre, ainsi qu'il apparaît de même sur la figure 2b, sur réponse négative à la première de l'étape de test de validité BOl, le procédé, dans le mode de réalisation décrit, inclut également une troisième étape de test BOl 1 de vérification de la similarité du bloc de pixels de l'image courante Bc vis-à-vis des blocs voisins.Furthermore, as it also appears in FIG. 2b, on a negative response to the first of the validity test step BO1, the method, in the embodiment described, also includes a third test step BO1. for checking the similarity of the block of pixels of the current image Bc with respect to neighboring blocks.
De manière plus spécifique, on indique que le test de similarité exécuté à l'étape de test BOI l consiste à comparer les caractéristiques lumineuses des blocs précités, afin de discriminer l'existence d'au moins un bloc voisin similaire. Sur la figure 2B, l'étape de test BOl 1 est notée par la relation (7):More specifically, it is indicated that the similarity test performed in the BOI test step l consists in comparing the light characteristics of the aforementioned blocks, in order to discriminate the existence of at least one similar neighboring block. In FIG. 2B, the test step BOl 1 is noted by the relation (7):
Similarité avec blocs voisins ?Similarity with neighboring blocks?
Sur réponse positive au test réalisé à l'étape BO 1 1 le vecteur d'estimation de mouvement prédit du bloc voisin similaire est alloué au bloc de pixels de l'image courante Bc. Sinon, en l'absence de bloc voisin similaire un vecteur d'estimation de mouvement nul est alloué au bloc de pixels de l'image courante Bc.On positive response to the test performed in step BO 1 1, the predicted motion estimation vector of the similar neighboring block is allocated to the pixel block of the image current Bc. Otherwise, in the absence of a similar neighboring block, a null motion estimation vector is allocated to the block of pixels of the current image Bc.
À l'étape B04, l'opération d'allocation du vecteur d'estimation de mouvement prédit du bloc voisin similaire au bloc courant Bc est notée selon la relation (8): /TIvL1 — /wvFoisinageIn step B04, the allocation operation of the predicted motion estimation vector of the neighboring block similar to the current block Bc is noted according to relation (8): / TIvL 1 - / wvProperty
À l'étape B03 l'opération d'allocation du vecteur de mouvement nul est notée selon la relation (9): mvLx = mVoIn step B03, the allocation operation of the zero motion vector is noted according to relation (9): mvL x = mVo
De même, ainsi que représenté sur la figure 2b, sur réponse négative à la deuxième étape de test du caractère significatif du mouvement représenté par le vecteur d'estimation de mouvement passé mvLo , étape de test B02, le procédé objet de l'invention inclut une quatrième étape de test, notée B021 consistant à vérifier la validité du vecteur d'estimation de mouvement du bloc de pixels co-localisé sur l'image de référence future Pf, sur critère d'une efficacité le codage intertrame supérieure à l'efficacité de codage intratrame.Similarly, as shown in FIG. 2b, on a negative response to the second step of testing the significant character of the movement represented by the motion estimation vector passed mvLo, test step B02, the method which is the subject of the invention includes a fourth test step, denoted B021 consisting in checking the validity of the motion estimation vector of the block of pixels co-located on the future reference image Pf, on the criterion of efficiency the interframe coding greater than the efficiency intratrame coding.
À l'étape B021, l'étape de test de validité est notée selon la relation (10):In step B021, the validity test step is noted according to relation (10):
Validité mvCol ?Validity mvCol?
Sur réponse positive à l'étape de test de vérification B021, au vecteur d'estimation de mouvement prédit est alloué le vecteur direct issu de la colocalisation à l'étape notée B05.On a positive response to the verification test step B021, the predicted motion estimation vector is allocated the direct vector from the collocation to the step B05.
À l'étape B05 précitée l'opération d'allocation est représentée par la relation (11):In the above-mentioned step B05, the allocation operation is represented by the relation (11):
^vZ1 = mvDirect^ vZ 1 = mvDirect
Au contraire, sur réponse négative au test de vérification B021, un retour à l'appel de l'étape du troisième test de similarité avec des blocs voisins exécuté à l'étape de test BO 1 1 est exécuté.On the contrary, on a negative response to the verification test B021, a return to the call of the step of the third similarity test with neighboring blocks executed in the test step BO 1 1 is executed.
Une description plus détaillée du mode de mise en œuvre spécifique de la sous étape B2 de calcul du vecteur d'estimation de mouvement passé du bloc courant Bcf, référencé dans l'image de référence future Pf, sera maintenant donnée en liaison avec la figure 2c.A more detailed description of the specific implementation mode of the sub-step B2 for calculating the motion estimation vector passed from the current block Bcf, referenced in the future reference image Pf, will now be given in connection with with Figure 2c.
D'une manière générale, on indique que le calcul du vecteur d'estimation de mouvement passé mvLoP précité est susceptible de faire correspondre au bloc de pixels Bc de l'image courante Pc un bloc de pixels Bcf fictif, lequel ne correspond pas exactement à un bloc de pixels de l'image de référence future Pf précitée, le bloc Bcf précédemment mentionné correspondant alors à une pluralité de blocs adjacents, et, en particulier, à une pluralité de zones de blocs adjacents, elles-mêmes adjacentes sur les lignes de délimitation des blocs adjacents considérés dans le plan de l'image de référence future Pf. Sur la figure 2c, les blocs adjacents précités sont notés Bal, Ba2, Ba3 etIn general, it is indicated that the calculation of the above-mentioned motion estimation vector mvLoP is capable of making the block of pixels Bc of the current image Pc correspond to a fictitious block of pixels Bcf, which does not correspond exactly to a block of pixels of the aforementioned future reference image Pf, the aforementioned block Bcf then corresponding to a plurality of adjacent blocks, and in particular to a plurality of adjacent block areas, themselves adjacent to the lines of delimiting the adjacent blocks considered in the plane of the future reference image Pf. In FIG. 2c, the abovementioned adjacent blocks are denoted by Bal, Ba2, Ba3 and
Ba4.Ba4.
Dans cette hypothèse, l'étape de calcul de la différence de position de l'extrémité Pl du vecteur d'estimation de mouvement passé mvLoP dans l'image de référence passée est exécuté par pondération des surfaces occupées par le bloc de pixels de l'image courante dans l'image de référence future Pf. Ainsi, le processus d'estimation précité consiste à partir du bloc de pixels pointé par le vecteur d'estimation de mouvement prédit mvLxB dans l'image de référence future Pf permet d'estimer ce vecteur d'estimation de mouvement comme un pseudo-vecteur, barycentre des surfaces communes entre le bloc suivant référencé par rapport à la somme des blocs physiques adjacents Bal,Ba2, Ba3 et Ba4 tel que représenté en figure 2c.In this case, the step of calculating the positional difference of the end Pl of the motion estimation vector passed mvLoP in the past reference image is executed by weighting the areas occupied by the block of pixels of the current image in the future reference image Pf. Thus, the aforesaid estimation process consists of starting from the block of pixels pointed by the predicted motion estimation vector mvL x B in the future reference image Pf allows for estimating this motion estimation vector as a pseudo-vector, barycentre common surfaces between the next block referenced to the sum of the adjacent physical blocks Bal, Ba2, Ba3 and Ba4 as shown in Figure 2c.
Le vecteur d'estimation de mouvement passé mvLoP vérifie alors la relation (12) : r ^ n (Sa * mvA + Sb * mvB + Sc * mvC + Sd * mvD) mvLOP = -The motion estimation vector passed mvLoP then verifies the relation (12): r ^ n (Sa * mvA + Sb * mvB + Sc * mvC + Sd * mvD) mvLOP = -
(Sa + Sb + Sc + Sd)(Sa + Sb + Sc + Sd)
Dans la relation précédente, —mvA désigne le vecteur d'estimation de mouvement passé du bloc Bal dans l'image de référence future ;In the previous relation, -mvA designates the movement estimation vector passed from the Bal block in the future reference image;
— mvB désigne le vecteur d'estimation de mouvement passé du bloc Ba2 dans l'image de référence future ;MvB denotes the motion estimation vector passed from the block Ba2 in the image of future reference;
— mvC désigne le vecteur d'estimation de mouvement passé du bloc Ba3 dans l'image de référence future ;MvC denotes the movement estimation vector passed from block Ba3 in the future reference image;
— mvD désigne le vecteur d'estimation de mouvement passé du bloc Ba4 dans l'image de référence future ;MvD denotes the motion estimation vector passed from block Ba4 in the future reference image;
—Sa, Sb, Sc, Sd, désigne respectivement les surfaces adjacentes du bloc de pixels réellement pointé par le vecteur d'estimation de mouvement prédit mvL{ B .-Sa, Sb, Sc, Sd, respectively designate the adjacent surfaces of the block of pixels actually pointed by the predicted motion estimation vector mvL { B.
Une description plus détaillée d'un mode de mise en œuvre spécifique du procédé objet de l'invention dans une situation particulière dans laquelle un déplacement de balayage de scène à vitesse sensiblement constante d'une caméra de prises de vue munie d'un codeur vidéo et pour un élément d'image contenant au moins un bloc de pixels présentant, dans le plan 'image, un mouvement accéléré, ce bloc de pixels et l'élément de d'image correspondant étant solidaires et parcourant dans le plan image, entre deux images distinctes, une distance croissante avec le temps sera maintenant donnée en liaison avec la figure 3.A more detailed description of a specific mode of implementation of the method which is the subject of the invention in a particular situation in which a scene scanning motion at a substantially constant speed of a video camera equipped with a video coder and for an image element containing at least one block of pixels having, in the image plane, an accelerated movement, this block of pixels and the corresponding image element being integral and traversing in the image plane, between two separate images, an increasing distance over time will now be given in connection with Figure 3.
Sur la figure précitée, on considère une succession d'images encodées par un codeur vidéo respectant une norme où l'insertion d'images bidirectionnelles est autorisée, ces normes pouvant correspondre aux normes MPEG2 ou H.264.In the above figure, consider a succession of images encoded by a video encoder respecting a standard where the insertion of bidirectional images is allowed, these standards may correspond to MPEG2 or H.264 standards.
On suppose que l'image en cours, l'image courante, est une image de type B désignée image B 12, laquelle est prédite par rapport à l'image de référence passée Pf et à l'image de référence future Pf.It is assumed that the current image, the current image, is a B-type image designated as image B 12, which is predicted with respect to the past reference image Pf and the future reference image Pf.
On suppose que l'estimation de mouvement passé a été réalisée entre l'image courante Bl 2 et l'image de référence passée Pp et a permis d'obtenir les champs de vecteurs d'estimation de mouvement correspondant, ainsi que décrit précédemment dans la description.It is assumed that the past motion estimate has been made between the current image B1 2 and the past reference image Pp and has made it possible to obtain the corresponding motion estimation vector fields, as described previously in FIG. description.
On suppose ainsi que la caméra vidéo effectue un déplacement de balayage de scène, dit « travelling » en anglais, à vitesse constante, un point parcourant la même distance entre deux images successives, ainsi que représenté sur la figure 3 par le bloc inférieur strié par exemple. Pour illustrer le mode de mise en œuvre du procédé objet de l'invention, on considère sur la figure 3 précitée un bloc de pixels représenté en grisé sur l'image courante B 12 et désigné Bloc 1.It is thus assumed that the video camera performs a scene scanning movement, called "traveling" in English, at a constant speed, a point traveling the same distance between two successive images, as represented in FIG. 3 by the lower block streaked by example. To illustrate the mode of implementation of the method which is the subject of the invention, it is considered in FIG. 3 above a block of pixels represented in gray on the current image B 12 and designated Block 1.
Le Bloc 1 dans l'image courante représente l'objet désigné Objet A dans l'image de référence passée.Block 1 in the current frame represents the designated Object A in the passed reference picture.
Ce bloc est présent dans toutes les images successives. Ce bloc étant accéléré, l'inversion pondérée du vecteur mvLo , telle que décrite à l'étape B I de la figure 2b par exemple, engendre le vecteur ItIvL1B qui n'aboutit pas au bon bloc, en raison de la translation globale de l'Objet A. En revanche, le vecteur THvL1B précité aboutit à un bloc voisin, lequel appartient au même objet, et qui suit donc le même mouvement.This block is present in all the successive images. This block being accelerated, the weighted inversion of the vector mvLo, as described in step BI of FIG. 2b for example, generates the vector ItIvL 1 B which does not result in the good block, because of the global translation of Object A. On the other hand, the above-mentioned vector THvL 1 B results in a neighboring block, which belongs to the same object, and therefore follows the same movement.
En appliquant le processus de calcul du vecteur d'estimation de mouvement passé mvLoP au bloc considéré de l'image de référence future Pf, on trouve le vecteur mvLoP précité, lequel représente le mouvement global de l'Objet A dans l'image de référence future Pf et l'image de référence passée Pp.Applying the process of calculating the motion estimation vector passed mvLoP to the block of the future reference image Pf, we find the vector mvLoP mentioned above, which represents the global movement of the object A in the reference image. future Pf and the reference image passed Pp.
Ainsi que représenté en figure 3 on mesure alors la distance « Ad » selon le processus décrit à l'étape B3 de la figure de 2a, cette distance étant bien entendu mesurée dans l'image de référence passée Pp.As shown in FIG. 3, the distance "Ad" is then measured according to the process described in step B3 of FIG. 2a, this distance being of course measured in the reference image passed Pp.
Selon un aspect remarquable du procédé objet de l'invention, dans sa mise en œuvre telle que décrite en liaison avec la figure 3, le vecteur différence d'estimation de mouvement passé PxP1 - Ad représente la distance parcourue dans le plan image par l'élément d'image entre l'image de référence future et l'image courante B 12.According to a remarkable aspect of the method that is the subject of the invention, in its implementation as described with reference to FIG. 3, the motion difference vector passed P x P 1 -Ad represents the distance traveled in the image plane. by the picture element between the future reference picture and the current picture B 12.
Dans ces conditions, l'étape de validation du vecteur d'estimation de mouvement prédit mvLλB comporte avantageusement une étape de correction du vecteur par adjonction, dans l'image de référence future Pf, d'un vecteur d'estimation de mouvement de correction, noté Ad . équipollent au vecteur différence d'estimation de mouvement P1P2 . L'opération précitée peut consister à reporter le vecteur différence d'estimation de mouvement passé par sommation vectorielle à l'extrémité du vecteur prédit mvLxB afin de former le vecteur prédit finalement retenu, TtIvL1 ainsi que décrit précédemment à l'étape B5 de la figure 2b. Dans ces conditions, le vecteur prédit mv£, ainsi engendré représente parfaitement le mouvement du bloc entre l'image de référence future Pf et l'image courante, l'image B 12. Finalement, le procédé de codage de la présente invention met en œuvre une combinaison linéaire de la forme générale vérifiant la relation (13) :Under these conditions, the validation step of the motion estimation vector predicts mvL λ B advantageously comprises a step of correcting the vector by adding, in the future reference image Pf, a motion estimation vector of correction, noted Ad. equipollent to the motion estimation difference vector P 1 P 2 . The aforesaid operation may consist in putting back the motion estimation difference vector passed by vector summation to the end of the predicted vector mvL x B to form the finally retained predicted vector, TtIvL 1 as previously described in step B5 of Figure 2b. Under these conditions, the vector predicted mv £ thus generated perfectly represents the movement of the block between the future reference image Pf and the current image, the image B 12. Finally, the coding method of the present invention implements a linear combination of the general form satisfying relation (13):
TTIvL1B = k mvLo + ε P1P2
Figure imgf000019_0001
S ε = 1, sinon. Cette relation se ramène ainsi à une combinaison linéaire des vecteurs estimation de mouvement passé mvLo du bloc courant Bc référencé vis-à-vis de l'image de référence passée Pp et du vecteur estimation de mouvement passé mvLoP du bloc courant Bc référencé par le vecteur d'estimation de mouvement prédit mvLxB dans l'image de référence future Pf de la forme TTIvL1B = kmvLo + ε (mvLop - ( mvLo - TnVL1B )).
TTIvL 1 B = k mvLo + ε P 1 P 2
Figure imgf000019_0001
S ε = 1, otherwise. This relation is thus reduced to a linear combination of the motion estimation vectors passed mvLo of the current block Bc referenced with respect to the past reference image Pp and the motion estimation vector passed mvLoP of the current block Bc referenced by the vector motion estimation predicts mvL x B in the future reference image Pf of the form TTIvL 1 B = kmvLo + ε (mvLop - (mvLo - TnVL 1 B)).
Un autre exemple de processus de traitement remarquable du procédé objet de l'invention sera maintenant donné en liaison avec la même figure 3 dans le cas d'une apparition, dans au moins une image antérieure à l'image courante, soit dans l'image notée Bl I sur la figure 3, d'un élément d'image fortuit liés à l'élément d'image c'est-à- dire à l'Objet A et donc à au moins un au bloc de pixels de ce dernier présentant le mouvement accéléré précédemment cité.Another example of a remarkable treatment process of the method which is the subject of the invention will now be given in connection with the same FIG. 3 in the case of an appearance, in at least one image prior to the current image, or in the image noted Bl I in FIG. 3, of a fortuitous picture element linked to the picture element, that is to say to Object A and therefore to at least one block of pixels of the latter presenting the accelerated movement previously cited.
En référence à la figure 3, on comprend que le bloc désigné Bloc 2 sur l'image courante B 12 représente une apparition dans l'image précédente, mais le bloc désigné Bloc 2 précité n'existe pas sur l'image de référence passée, car il est en fait masqué par l'Objet A. Toutefois l'image courante B 12 n'est pas prédite par rapport à l'image précédente, image B I l, et il existe toutefois sur l'image de référence future, image Pf. Pour assurer un traitement correct du Bloc 2 dont l'apparence est fortuite, le procédé objet de l'invention permet alors d'analyser les blocs alentours afin de trouver un bloc similaire, ainsi que représenté à la figure 2b à l'étape BOl 1.With reference to FIG. 3, it will be understood that the block designated Block 2 on the current image B 12 represents an appearance in the previous image, but the block designated Bloc 2 mentioned above does not exist on the last reference image, because it is in fact masked by the object A. However the current image B 12 is not predicted with respect to the previous image, image BI l, and it exists nevertheless on the future reference image, image Pf . In order to ensure a correct treatment of the Bloc 2, the appearance of which is fortuitous, the method that is the subject of the invention then makes it possible to analyze the surrounding blocks in order to find a similar block, as represented in FIG. 2b in step BOl 1. .
Dans ce but, on rappelle ainsi que décrit précédemment dans la description, que l'on met en œuvre exclusivement des métriques qui sont déjà calculées dans le codeur, métrique telle que la variance du bloc de pixels considéré, sa luminosité, sa couleur par exemple.For this purpose, it is recalled as previously described in the description, that it implements only metrics that are already calculated in the metric encoder such as the variance of the pixel block considered, its brightness, its color for example .
Dans le cas présent, le fond étant uni, il est alors facile de trouver un bloc de pixels similaire, tel que le bloc de pixels représenté strié sur la figure 3 précitée, et disposant d'un vecteur d'estimation de mouvement valide.In this case, the background being united, it is then easy to find a similar block of pixels, such as the pixel block shown striated in Figure 3 above, and having a valid motion estimation vector.
Ainsi qu'il est représenté en figure 2b, sur réponse positive au test de similarité BOI l, on affecte alors au bloc désigné Bloc 2 le vecteur d'estimation de mouvement du bloc similaire, ainsi que représenté à l'étape B 04 de la figure 2b.As shown in FIG. 2b, on a positive response to the similarity test BOI 1, then the block designated Bloc 2 is assigned the motion estimation vector of the similar block, as represented in step B 04 of FIG. Figure 2b.
Le Bloc 2 précité disposant d'un vecteur d'estimation de mouvement correct, le bloc de pixels désigné Bloc 1 dispose alors, en raison du caractère lié de ces blocs, un vecteur d'estimation de mouvement correct, sans toutefois n'exécuter aucune estimation de mouvement futur en tant que telle.Since the above-mentioned Block 2 has a correct motion estimation vector, the block of pixels designated Block 1 then has, because of the bound nature of these blocks, a correct motion estimation vector, without, however, executing any estimate of future movement as such.
Le mode opératoire décrit précédemment en liaison avec la figure 3 peut-être résumé de la manière ci-après lorsqu'aucun élément d'image similaire à l'élément d'image fortuit n'existe dans l'image de référence passée Pp.The procedure described above in connection with FIG. 3 can be summarized as follows when no picture element similar to the fortuitous picture element exists in the passed reference picture Pp.
Le processus précité consiste alors au moins à discriminer, dans l'image courante B 12 au voisinage de l'élément d'image fortuit un élément d'image voisin similaire puis à allouer à l'élément d'image fortuit un vecteur d'estimation de mouvement prédit, désigné mvLxs* sur la figure 3, équipollent au vecteur d'estimation de mouvement prédit mvLxs de l'élément d'image voisin similaire.The aforementioned process then consists in discriminating, in the current image B 12 in the vicinity of the fortuitous image element, a similar neighboring image element and then in allocating to the fortuitous image element an estimation vector predicted motion pattern, designated mvL x s * in FIG. 3, equips the predicted motion estimation vector mvL x s of the similar neighbor image element.
Le vecteur d'estimation de mouvement prédit alloué à l'élément d'image fortuit est ainsi directement déduit du vecteur d'estimation de mouvement prédit mvL{s' et ainsi alloué à l'élément d'image contenant au moins un bloc de pixels présentant dans le plan image un mouvement accéléré. Une description plus détaillée d'un codeur vidéo, conforme à l'objet de la présente invention, sera maintenant donnée en liaison avec les figures 4a et 4b.The predicted motion estimation vector allocated to the fortuitous image element is thus directly deduced from the predicted motion estimation vector mvL { s' and thus allocated to the image element containing at least one block of pixels. presenting in the image plane an accelerated movement. A more detailed description of a video encoder, in accordance with the subject of the present invention, will now be given in connection with FIGS. 4a and 4b.
Ainsi que représenté sur la figure 4a, le codeur vidéo objet de l'invention comporte, de manière classique, au moins une mémoire d'entrée, notée EM, recevant le flux vidéo, un module de lecture de la mémoire d'entrée noté RM et un module de codage noté CM.As represented in FIG. 4a, the video coder according to the invention comprises, in a conventional manner, at least one input memory, denoted EM, receiving the video stream, a read module of the input memory noted RM and a coding module noted CM.
La mémoire d'entrée EM et le module de lecture RM sont des modules d'architecture classique, lesquels, pour cette raison, ne seront pas décrits en détail.The input memory EM and the read module RM are modules of conventional architecture, which, for this reason, will not be described in detail.
En ce qui concerne le module de codage CM, on indique que celui-ci comprend également, de manière classique, un module d'estimation de mouvement passé et une mémoire de l'ensemble des vecteurs de mouvement passé, l'ensemble { mvLo } précédemment mentionné dans la description.With regard to the coding module CM, it is indicated that it also comprises, in a conventional manner, a past motion estimation module and a memory of the set of past motion vectors, the set {mvLo} previously mentioned in the description.
Les deux éléments précités sont également des éléments d'architecture classique, lesquels, pour cette raison, ne seront pas décrits en détail. Toutefois, selon un aspect remarquable du codeur vidéo objet de l'invention, le module de codage CM inclut un module d'estimation de mouvement passé délivrant pour chaque image courante un ensemble de vecteurs d'estimation de mouvement passé associé chacun à un bloc de pixels de chaque image successive, à l'exclusion de tout module d'estimation de mouvement futur vers une image de référence future. En outre, ainsi que représenté en figure 4b, le module de codage CM inclut au moins, connecté au module d'estimation de mouvement passé, une mémoire de stockage de l'ensemble des vecteurs d'estimation de mouvement passé, vecteursThe two aforementioned elements are also elements of conventional architecture, which, for this reason, will not be described in detail. However, according to a remarkable aspect of the video coder which is the subject of the invention, the coding module CM includes a past motion estimation module delivering for each current picture a set of past motion estimation vectors each associated with a block of motion. pixels of each successive image, excluding any future motion estimation module to a future reference image. In addition, as represented in FIG. 4b, the coding module CM includes, at least, connected to the past motion estimation module, a storage memory of the set of past motion estimation vectors, vectors
{ mvLo }, et portant la référence MMPO.{mvLo}, with the reference MMPO.
Ainsi que représenté en outre en figure 4b, le module de codage précité inclut un module PM prédicteur de mouvement d'au moins un bloc de pixels de l'image courante vers l'image de référence future Pf.As further shown in FIG. 4b, the aforementioned coding module includes a PM module that predicts the movement of at least one block of pixels from the current image to the future reference image Pf.
Bien entendu, le module PM prédicteur de mouvement d'au moins un bloc de pixels de l'image courante vers l'image de référence future opère par combinaison linéaire d'un vecteur d'estimation de mouvement passé mvLo d'un bloc de pixels de l'image courante référencé dans l'image de référence passée Pp et d'au moins un vecteur d'estimation de mouvement passé vecteur mvLo d'un bloc de pixels, le bloc Bcf de l'image de référence future, déduit du bloc de pixels de l'image courante Bc précitée par l'intermédiaire de la combinaison linéaire précédemment mentionnée. Ainsi, le module prédicteur de mouvement PM permet d'engendrer un vecteur d'estimation de mouvement prédit du bloc de pixels de l'image courante référencée dans l'image de référence future Pf. Le vecteur d'estimation de mouvement prédit précité n'est autre que le vecteur d'estimation de mouvement mvLxB .Of course, the PM module predicting the movement of at least one block of pixels from the current image to the future reference image operates by linear combination of a motion estimation vector passed mvL0 of a block of pixels. of the current image referenced in the reference image passed Pp and at least one motion estimation vector passed vector mvLo of a block of pixels, the block Bcf of the future reference image, deduced from the block of pixels of the current image Bc above via the linear combination mentioned above. Thus, the motion predictor module PM makes it possible to generate a predicted motion estimation vector of the block of pixels of the current image referenced in the future reference image Pf. The predicted motion estimation vector n. is other than the motion estimation vector mvL x B.
Enfin, au module prédicteur de mouvement PM est en outre connectée une mémoire de stockage de chacun des vecteurs d'estimation de mouvement prédit formant un ensemble de vecteurs d'estimation de mouvement prédit { mvLx }.Finally, the motion predictor module PM is further connected to a storage memory of each of the predicted motion estimation vectors forming a set of predicted motion estimation vectors {mvL x }.
La mémoire de stockage précitée est connectée au port d'entrée-sortie notée I/O afin de délivrer un flux vidéo codé et comportant des vecteurs d'estimation de mouvement des images successives constituant le flux vidéo codé. Bien entendu, le module prédicteur de mouvement PM opère conformément au procédé objet de l'invention tel que décrit précédemment en liaison avec les figures la, Ib, 2a, 2b, 2c et 3.The aforementioned storage memory is connected to the input / output port denoted I / O in order to deliver a coded video stream and including motion estimation vectors of the successive images constituting the coded video stream. Of course, the motion predictor module PM operates in accordance with the method that is the subject of the invention as described above with reference to FIGS. 1a, 1b, 2a, 2b, 2c and 3.
Dans ce but il comporte un module A d'inversion pondérée du vecteur d'estimation de mouvement passé mvLo . Il inclut en outre un module de calcul de la différence de position entre la position dans l'image de référence passée Pp de l'extrémité Pl du vecteur d'estimation de mouvement passé du bloc de pixels de l'image courante référencée dans l'image de référence passée Pp et la position, dans la même image de référence passée, de l'extrémité P2 du vecteur d'estimation de mouvement mvLo du bloc de pixels de l'image courante référencée dans l'image de référence passée Pp pour engendrer le vecteur P1P2 différence d'estimation de mouvement passé, ainsi que décrit précédemment dans la description.For this purpose it comprises a weighted inversion module A of the motion estimation vector passed mvLo. It furthermore includes a module for calculating the difference in position between the position in the reference image Pp of the end P1 of the movement estimation vector passed from the block of pixels of the current image referenced in FIG. passed reference image Pp and the position, in the same past reference image, of the end P2 of the motion estimation vector mvLo of the block of pixels of the current image referenced in the reference image passed Pp to generate the vector P 1 P 2 past motion estimation difference, as described previously in the description.
Sur la figure 4b, le module de calcul de la différence de position précitée porte la référence B. Le module d'estimation de mouvement prédit PM comporte en outre un module de comparaison du vecteur différence d'estimation de mouvement passé à une valeur de seuil, selon la relation (4) précédemment citée dans la description. Ce module de comparaison porte la référence C, D sur la figure 4b.In FIG. 4b, the module for calculating the aforementioned difference in position bears the reference B. The predicted motion estimation module PM comprises in in addition to a comparison module of the motion estimation difference vector passed to a threshold value, according to the relation (4) previously mentioned in the description. This comparison module is referenced C, D in Figure 4b.
Enfin, ainsi que représenté également sur la figure 4b, le module prédicteur de mouvement PM comporte en outre un module de test de validité de chaque vecteur d'estimation de mouvement passé sur critère d'efficacité de codage intertrame supérieure à l'efficacité de codage intratrame, un module de test du caractère significatif du mouvement représenté par chaque vecteur d'estimation de mouvement passé mvLo et un module de calcul dédié du barycentre des vecteurs d'estimation de mouvement passé dans l'image de référence passée Pp, par pondération des surfaces occupées par le bloc de pixels de l'image courante dans l'image de référence future, ainsi que décrit en liaison avec la figure 2c.Finally, as also shown in FIG. 4b, the motion predictor module PM also comprises a validity test module of each motion estimation vector passed on the criterion of interframe coding efficiency greater than the coding efficiency. intratram, a motion significantness test module represented by each motion estimation vector passed mvLo and a dedicated calculation module of the barycenter of motion estimation vectors passed in the passed reference image Pp, by weighting of surfaces occupied by the block of pixels of the current image in the future reference image, as described in connection with Figure 2c.
Sur la figure 4b, les modules de test de validité, de test de caractère significatif et de calcul dédié du barycentre portent respectivement la référence E, F, G. L'invention couvre également un produit de programme d'ordinateur comportant une suite d'instructions mémorisées sur un support de mémorisation et exécutable par un ordinateur ou par l'unité de calcul dédiée d'un codeur vidéo tel que représenté en figure 4b, conformément à l'objet de la présente invention, ce produit le programme d'ordinateur étant remarquable en ce que, lors de l'exécution des instructions constitutives de celui-ci, ce programme met en œuvre le procédé d'estimation de mouvement d'un élément d'image contenu dans l'image courante d'une séquence vidéo, ainsi que décrit précédemment dans la description en liaison avec les figures la, Ib, 2a, 2b, 2c et 3.In FIG. 4b, the validity test, the significance test and the dedicated calculation modules of the center of gravity respectively bear the reference E, F, G. The invention also covers a computer program product comprising a sequence of instructions stored on a storage medium and executable by a computer or by the dedicated calculation unit of a video encoder as shown in FIG. 4b, in accordance with the subject of the present invention, this product being the computer program being remarkable in that, during the execution of the instructions constituting it, this program implements the motion estimation method of an image element contained in the current image of a video sequence, as well as as described previously in the description in conjunction with Figures la, Ib, 2a, 2b, 2c and 3.
Ainsi qu'on l'a en outre représenté en figure 4a et 4b, le programme d'ordinateur précité est implanté sous forme modulaire dans le module prédicteur PM précité. Le programme d'ordinateur précédemment mentionné objet de l'invention est alors avantageusement implanté sous forme modulaire dans le module prédicteur précité, sous forme des modules logiciels distincts portant les références A, B, C, D, E, F, G précédemment mentionnées dans la description. Enfin, en référence à la figure 5, on indique que le procédé et le codeur vidéo objets de la présente invention permettent de supprimer Pimplémentation d'un module d'estimation de mouvement futur dans les codeurs vidéo très coûteux à mettre en œuvre.As furthermore shown in FIGS. 4a and 4b, the above-mentioned computer program is implemented in modular form in the aforementioned PM predictor module. The aforementioned computer program object of the invention is then advantageously implemented in modular form in the aforementioned predictor module, in the form of separate software modules bearing the references A, B, C, D, E, F, G previously mentioned in the description. Finally, with reference to FIG. 5, it is indicated that the method and the video coder Objects of the present invention make it possible to eliminate the implementation of a future motion estimation module in video codecs which are very expensive to implement.
Sur la figure précitée, on a représenté la mesure de distorsion due au codage d'un flux vidéo représenté par le PSNR (Peak Signal to Noise Ratio) rapport signal à bruit dans le cas d'un codage classique, avec estimation de mouvement futur et dans le cas de la suppression de cette dernière et son remplacement par une prédiction future selon le procédé objet de la présente invention.In the above figure, there is shown the distortion measurement due to the coding of a video stream represented by the PSNR (Peak Signal to Noise Ratio) signal-to-noise ratio in the case of a conventional coding, with estimation of future motion and in the case of the removal of the latter and its replacement by a future prediction according to the method object of the present invention.
On peut, en effet, constater sur la figure 5 que, malgré cette suppression, mais grâce à la mise en œuvre du module prédicteur PM en lieu et place de ce dernier, la dégradation de qualité du flux vidéo est tout à fait marginale, tout au plus de l'ordre de quelques centièmes de dB dans l'un et l'autre cas. It can indeed be seen in FIG. 5 that, despite this deletion, but thanks to the implementation of the PM predictor module instead of the latter, the quality degradation of the video stream is quite marginal, while at most of the order of a few hundredths of a dB in either case.

Claims

REVENDICATIONS
1. Procédé d'estimation de mouvement d'un élément d'image contenu dans l'image courante d'une séquence vidéo, ladite image courante étant précédée, dans l'ordre de codage, par au moins une image de référence passée et suivie par au moins une image de référence future, dans lequel on dispose, pour ladite image courante et pour ladite image de référence future, d'un champ de vecteurs d'estimation de mouvement passé de chaque bloc de pixels constitutif de ces images vis-à-vis de ladite image de référence passée, caractérisé en ce que, suite au calcul d'au moins un vecteur d'estimation de mouvement passé (mvLo ) d'au moins un bloc de pixels (Bc) de l'image courante référencé dans ladite image de référence passée, ledit procédé inclut au moins une étape de prédiction du mouvement dudit au moins un bloc de pixels de l'image courante vers ladite image de référence future, par combinaison linéaire dudit vecteur d'estimation de mouvement passé ( mvLo ) et d'au moins un vecteur d'estimation de mouvement passé d'un bloc de pixels (Bcf) de l'image de référence future, déduit dudit bloc de pixels de l'image courante (Bc) par l'intermédiaire de ladite combinaison linéaire, pour engendrer un vecteur d'estimation de mouvement prédit ( MvL1B) dudit au moins un bloc de pixels de l'image courante référencé dans ladite image de référence fututre (Bcf). A method for estimating the motion of an image element contained in the current image of a video sequence, said current image being preceded, in the coding order, by at least one reference image passed and followed by at least one future reference image, in which, for said current image and for said future reference image, there is a field of motion estimation vectors passed from each block of pixels constituting these images vis-à-vis -vis of said past reference image, characterized in that, following the calculation of at least one past motion estimation vector (mvLo) of at least one block of pixels (Bc) of the current image referenced in said passed reference image, said method includes at least one step of predicting the movement of said at least one block of pixels from the current image to said future reference image, by linear combination of said past motion estimation vector (mvLo) and at least one motion estimation vector passed from a block of pixels (Bcf) of the future reference image, derived from said block of pixels of the current image (Bc) via said linear combination , to generate a predicted motion estimation vector (MvL 1 B) of said at least one block of pixels of the current image referenced in said fututre reference image (Bcf).
2. Procédé selon la revendication 1, caractérisé en ce que ladite combinaison linéaire inclut au moins : l'inversion pondérée dudit vecteur d'estimation de mouvement passé ( mvLo ) dudit au moins un bloc de pixels de l'image courante (Bc) référencé vis-à-vis de ladite image de référence passée (Bcp) pour engendrer ledit vecteur d'estimation de mouvement prédit (mvLxB). 2. Method according to claim 1, characterized in that said linear combination includes at least: the weighted inversion of said past motion estimation vector (mvLo) of said at least one block of pixels of the current image (Bc) referenced to said past reference image (Bcp) for generating said predicted motion estimation vector (mvL x B).
3. Procédé selon la revendication 2, caractérisé en ce que ladite combinaison linéaire inclut en outre :The method of claim 2, characterized in that said linear combination further includes:
-le calcul de la différence de position entre la position, dans l'image de référence passée, de l'extrémité (Pj) du vecteur d'estimation de mouvement passécalculating the difference in position between the position, in the past reference image, of the end (Pj) of the past motion estimation vector
( mvLo ) dudit au moins un bloc de pixels de l'image courante référencé dans l'image de référence future (Bcf) vis-à-vis de l'image de référence passée (Bcfp) et la position, dans la même image de référence passée, de l'extrémité (P2) du vecteur d'estimation de mouvement passé (mvLo ) dudit au moins un bloc de pixels de l'image courante référencé dans l'image de référence passée (Bcp), pour engendrer un vecteur (PiP2) différence d'estimation de mouvement passé ;(mvLo) of said at least one block of pixels of the current image referenced in the future reference image (Bcf) with respect to the past reference image (Bcfp) and the position, in the same image of past reference, of the end (P 2 ) of the vector past motion estimation (mvLo) of said at least one block of pixels of the current image referenced in the past reference image (Bcp), for generating a vector (PiP 2 ) past motion estimation difference;
-la validation dudit vecteur d'estimation de mouvement prédit { mvL{B), sur critère d'infériorité de l'amplitude dudit vecteur différence (P1P2 ) d'estimation de mouvement passé à une valeur de seuil.the validation of said predicted motion estimation vector (mvL { B), on the inferiority criterion of the amplitude of said difference vector (P 1 P 2 ) of motion estimation passed to a threshold value.
4. Procédé selon l'une des revendications 2 ou 3, caractérisé en ce que, préalablement à ladite inversion pondérée, ledit procédé inclut au moins, après calcul dudit au moins un vecteur d'estimation de mouvement passé ( mvLo ) d'au moins un bloc de pixels de l'image courante référencé dans ladite image de référence passée,4. Method according to one of claims 2 or 3, characterized in that, prior to said weighted inversion, said method includes at least, after calculation of said at least one past motion estimation vector (mvLo) of at least a block of pixels of the current image referenced in said passed reference image,
-une première étape de test de validité dudit vecteur d'estimation de mouvement passé, sur critère d'une efficacité de codage Intertrame supérieure à l'efficacité de codage Intratrame ; et, sur réponse positive à ladite première étape de test de validité, -une deuxième étape de test du caractère significatif du mouvement représenté par le ledit vecteur d'estimation de mouvement passé ( mvLo ), le caractère significatif du mouvement étant fonction de la variance en termes de contraste dudit bloc de pixels de l'image courante et, sur réponse positive à ladite deuxième étape de test, -l'appel de ladite inversion pondérée.a first step of testing the validity of said passed motion estimation vector, on the criterion of an Intertrame coding efficiency higher than the Intratrame coding efficiency; and, on a positive response to said first validity test step, a second step of testing the significance of the motion represented by said past motion estimation vector (mvLo), the significant character of the movement being a function of the variance in terms of contrast of said block of pixels of the current image and, on a positive response to said second test step, the call of said weighted inversion.
5. Procédé selon la revendication 3 ou 4, caractérisé en ce que l'étape de calcul de la différence de position inclut une étape d'estimation, à partir dudit au moins un bloc en pixels de l'image référencée dans l'image de référence future (Bcf), dudit vecteur d'estimation de mouvement passé (mvLo )dans ladite image de référence passée, par pondération des surfaces occupées par ledit bloc de pixels de l'image courante dans ladite image de référence future.5. Method according to claim 3 or 4, characterized in that the step of calculating the position difference includes an estimation step, from said at least one block in pixels of the image referenced in the image of future reference (Bcf) of the past movement estimation vector (mvLo) in said past reference image by weighting the areas occupied by said pixel block of the current picture in said future reference image.
6. Procédé selon la revendication 4 ou 5, caractérisé en ce que, sur réponse négative à ladite première étape de test de validité, ledit procédé inclut en outre une troisième étape de test de similarité dudit au moins un bloc de pixels de l'image courante vis-à-vis des blocs voisins, le test de similarité consistant à comparer les caractéristiques lumineuses desdits blocs, afin de discriminer l'existence d'au moins un bloc voisin similaire, le vecteur d'estimation de mouvement prédit dudit bloc voisin similaire étant alloué audit bloc de pixels de l'image courante sur existence dudit bloc voisin similaire et un vecteur d'estimation de mouvement nul étant alloué audit bloc de l'image courante, sinon. 6. Method according to claim 4 or 5, characterized in that, on a negative response to said first validity test step, said method further includes a third similarity test step of said at least one block of pixels of the image. common to neighboring blocks, the similarity test of comparing the light characteristics of said blocks, in order to discriminate the existence of at least one similar neighbor block, the predicted motion estimation vector of said similar neighbor block being allocated to said pixel block of the current image on existence of said similar neighbor block and a zero motion estimation vector being allocated to said block of the current image, otherwise.
7. Procédé selon les revendications 4 et 6, caractérisé en ce que, sur réponse négative à ladite deuxième étape de test du caractère significatif du mouvement représenté par ledit vecteur d'estimation de mouvement passé ( mvLo ), ledit procédé inclut une quatrième étape de test de validité du vecteur d'estimation de mouvement du bloc de pixels colocalisé sur ladite image de référence future, sur critère d'une efficacité de codage Intertrame supérieure à l'efficacité de codage Intratrame, au vecteur d'estimation de mouvement prédit étant alloué le vecteur direct, issu de la colocalisation, sur réponse positive à ladite quatrième étape de test de validité et un retour à l'appel de l'étape du troisième test de similarité avec les blocs de pixels voisins étant exécuté, sinon. 7. Method according to claims 4 and 6, characterized in that, on a negative response to said second step of testing the significance of the movement represented by said past motion estimation vector (mvLo), said method includes a fourth step of validity test of the motion estimation vector of the pixel block colocalised on said future reference image, on the criterion of an Intertrame coding efficiency higher than the Intratrame coding efficiency, the predicted motion estimation vector being allocated the direct vector, resulting from the collocation, on a positive response to said fourth validity test step and a call return of the step of the third similarity test with the neighboring pixel blocks being executed, if not.
8. Procédé selon l'une des revendications 3 à 7, caractérisé en ce que, pour un déplacement de balayage de scène à vitesse sensiblement constante d'une caméra de prise de vues et pour un élément d'image contenant au moins un bloc de pixels présentant, dans le plan image, un mouvement accéléré, ledit bloc de pixels et ledit élément d'image parcourant dans le plan image entre deux images distinctes une distance croissante avec le temps, ledit vecteur (P1^P2 ) différence d'estimation de mouvement passé représente la distance parcourue dans le plan image par ledit élément d'image entre ladite image de référence future et ladite image courante.8. Method according to one of claims 3 to 7, characterized in that for a scene scanning motion at a substantially constant speed of a camera and for a picture element containing at least one block of pixels having, in the image plane, an accelerated movement, said block of pixels and said picture element traversing in the image plane between two distinct images an increasing distance with time, said vector (P 1 ^ P 2 ) difference of past motion estimate represents the distance traveled in the image plane by said image element between said future reference image and said current image.
9. Procédé selon les revendications 3 et 8, caractérisé en ce que ladite étape de validation dudit vecteur d'estimation de mouvement prédit [MvL1B) comporte une étape de correction dudit vecteur par adjonction, dans ladite image de référence future, d'un vecteur d'estimation de mouvement de correction équipollent audit vecteur d'estimation de mouvement différence ( PxP0 ).9. Method according to claims 3 and 8, characterized in that said step of enabling said predicted motion estimation vector [MvL 1 B) comprises a step of correcting said vector by adding, in said future reference image, a correction motion estimation vector equipollent to said difference motion estimation vector (P x P 0 ).
10. Procédé selon les revendications 6, 8 et 9, caractérisé en ce que, sur apparition dans au moins une image antérieure à ladite image courante, d'un élément d'image fortuit, lié audit élément d'image et audit au moins un bloc de pixels de ce dernier présentant un mouvement accéléré, aucun élément d'image similaire audit élément d'image fortuit n'existant dans ladite image de référence passée, ledit procédé consiste au moins à :10. Method according to claims 6, 8 and 9, characterized in that, on appearance in at least one image prior to said current image, a fortuitous image element, linked to said image element and at least one auditing block of pixels of the latter having an accelerated movement, no picture element similar to said fortuitous image element not existing in said passed reference image, said method consists of at least:
-discriminer, dans ladite image courante, au voisinage dudit élément d'image fortuit, un élément d'image voisin similaire ; -allouer audit élément d'image fortuit un vecteur d'estimation de mouvement prédit {mvLxs') équipollent au vecteur d'estimation de mouvement prédit-discriminating, in said current image, in the vicinity of said fortuitous image element, a similar neighbor image element; -allocating to said fortuitous image element a predicted motion estimation vector (mvL x s') equipping to the predicted motion estimation vector
(MvL1S )dudit élément d'image voisin similaire ;(MvL 1 S) of said similar neighbor picture element;
-déduire directement dudit vecteur d'estimation de mouvement prédit (/TIvL1S') alloué audit élément d'image fortuit un vecteur d'estimation de mouvement prédit homologue alloué audit élément d'image contenant au moins un bloc de pixels présentant, dans le plan image, un mouvement accéléré.directly deduce from said predicted motion estimation vector (/ TIvL 1 S ') allocated to said fortuitous image element a predicted homologous motion estimation vector allocated to said image element containing at least one block of pixels having, in the image plane, an accelerated movement.
11. Codeur vidéo comportant au moins une mémoire d'entrée de mémorisation d'un flux vidéo, un module de lecture de la mémoire d'entrée et un module de codage délivrant par l'intermédiaire d'un port d'entrée-sortie vidéo (I/O) un flux codé comportant des vecteurs d'estimation de mouvement des images successives constituant ledit flux vidéo, ledit module de codage incluant un module d'estimation de mouvement passé délivrant pour chaque image courante un ensemble de vecteurs d'estimation de mouvement passé associés chacun à un bloc de pixels de chaque image successive, à l'exclusion de tout module d'estimation de mouvement futur vers une image de référence future, caractérisé en ce que ledit module de codage inclut au moins connectés audit module d'estimation de mouvement passé,A video encoder comprising at least one video stream storage input memory, an input memory read module, and an encoder module outputting via a video input / output port. (I / O) a coded stream comprising motion estimation vectors of the successive images constituting said video stream, said coding module including a past motion estimation module delivering for each current image a set of vectors of estimation of past motion each associated with a block of pixels of each successive image, excluding any future motion estimation module to a future reference image, characterized in that said encoding module includes at least one connected to said module of motion estimate passed,
-une mémoire de stockage desdits vecteurs d'estimation du mouvement passé ;a storage memory of said motion estimation vectors passed;
-un module prédicteur de mouvement d'au moins un bloc de pixels de ladite image courante vers ladite image de référence future, par combinaison linéaire d'un vecteur d'estimation de mouvement passé (mvLo ) d'un bloc de pixels de l'image courante référencé dans ladite image de référence passée et d'au moins un vecteur d'estimation de mouvement passé d'un bloc de pixels (Bcf) de l'image de référence future, déduit dudit bloc de pixels de l'image courante (Bc) par l'intermédiaire de ladite combinaison linéaire, pour engendrer un vecteur d'estimation de mouvement prédit (mvLxB) de ce bloc de pixels de l'image courante, référencé dans ladite image de référence future ;a motion predictor module of at least one block of pixels from said current image to said future reference image, by linear combination of a past motion estimation vector (mvLo) of a block of pixels of the current image referenced in said past reference image and at least one motion estimation vector passed from a block of pixels (Bcf) of the future reference image, derived from said block of pixels of the current image ( Bc) via said linear combination, to generate a vector predicted motion estimation (mvL x B) of this block of pixels of the current image, referenced in said future reference image;
-une mémoire de stockage de chacun desdits vecteurs d'estimation de mouvement prédit ( mvLxB), reliée audit port d'entrée-sortie (I/O). a storage memory of each of said predicted motion estimation vectors (mvL x B), connected to said input / output port (I / O).
12. Codeur vidéo selon la revendication 11, caractérisé en ce que ledit module prédicteur de mouvement inclut au moins un module d'inversion pondérée dudit vecteur d'estimation de mouvement passé (mvLo ).Video encoder according to claim 11, characterized in that said motion predictor module includes at least one weighted inversion module of said passed motion estimation vector (mvLo).
13. Codeur vidéo selon la revendication 12, caractérisé en ce qu'il inclut en outre -un module de calcul de la différence de position entre la position, dans l'image de référence passée, de l'extrémité (Pl) du vecteur d'estimation passéVideo encoder according to claim 12, characterized in that it furthermore includes a module for calculating the difference in position between the position, in the passed reference image, of the end (P 1) of the vector of estimate passed
(mvLop ) du bloc de pixels de l'image courante référencé dans l'image de référence future vis-à-vis de l'image de référence passée et la positon, dans la même image de référence passée ( mvLo ) du bloc de pixels de l'image courante référencé dans l'image de référence passée, pour engendrer un vecteur (P1P2 ) différence d'estimation de mouvement passé ;(mvLop) of the block of pixels of the current image referenced in the future reference image with respect to the past reference image and the position, in the same reference image passed (mvLo) of the block of pixels of the current image referenced in the passed reference image, for generating a vector (P 1 P 2 ) difference of past motion estimation;
-des moyens de comparaison du vecteur différence (PiP2 ) d'estimation de mouvement passé à une valeur de seuil.means for comparing the difference vector (PiP 2 ) with motion estimation passed to a threshold value.
14. Codeur vidéo selon la revendication 12, caractérisé en ce que celui-ci inclut en outre :Video encoder according to claim 12, characterized in that it further includes:
-un module de test de validité de chaque vecteur d'estimation de mouvement passé, sur critère d'efficacité de codage Intertrame supérieure à l'efficacité de codage Intratrame ;a validity test module of each passed motion estimation vector, based on Intertrame coding efficiency criteria higher than the Intratrame coding efficiency;
-un module de test du caractère significatif du mouvement représenté par chaque vecteur d'estimation de mouvement passé (mvLo ) ;a module for testing the significant character of the movement represented by each past motion estimation vector (mvLo);
-un module de calcul dédié du barycentre des vecteurs d'estimation de mouvement passé ( mvLoP ) dans ladite image de référence passée, par pondération des surfaces occupées par le bloc de pixels de l'image courante dans l'image de référence future. a dedicated calculation module of the barycentre of the motion estimation vectors passed (mvLoP) in said passed reference image, by weighting the areas occupied by the block of pixels of the current image in the future reference image.
15. Produit de programme d'ordinateur comportant une suite d'instructions mémorisées sur un support de mémorisation et exécutables par un ordinateur ou l'unité de calcul dédiée d'un codeur vidéo, caractérisé en ce que lors de l'exécution des dites instructions, ledit programme met en œuvre le procédé d'estimation de mouvement d'un élément d'image contenu dans l'image courante d'une séquence vidéo selon l'une des revendications 1 à 10. 15. Computer program product comprising a sequel of instructions stored on a storage medium and executable by a computer or dedicated computing unit of a video encoder, characterized in that during the execution of said instructions, said program implements the method for estimating of motion of an image element contained in the current image of a video sequence according to one of claims 1 to 10.
PCT/FR2008/051932 2007-10-29 2008-10-27 Method and system for estimating future motion of image elements from the past motion in a video coder WO2009056752A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0707586A FR2923125B1 (en) 2007-10-29 2007-10-29 METHOD AND SYSTEM FOR ESTIMATING FUTURE MOVEMENT OF IMAGE ELEMENTS FROM MOVEMENT IN VIDEO ENCODER
FR0707586 2007-10-29

Publications (1)

Publication Number Publication Date
WO2009056752A1 true WO2009056752A1 (en) 2009-05-07

Family

ID=39708869

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2008/051932 WO2009056752A1 (en) 2007-10-29 2008-10-27 Method and system for estimating future motion of image elements from the past motion in a video coder

Country Status (2)

Country Link
FR (1) FR2923125B1 (en)
WO (1) WO2009056752A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0863674A2 (en) * 1997-03-07 1998-09-09 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
US20020075956A1 (en) * 1997-03-27 2002-06-20 Haskell Barin Geoffry Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US20040001546A1 (en) * 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US20060209961A1 (en) * 2005-03-18 2006-09-21 Samsung Electronics Co., Ltd. Video encoding/decoding method and apparatus using motion prediction between temporal levels

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0863674A2 (en) * 1997-03-07 1998-09-09 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
US20020075956A1 (en) * 1997-03-27 2002-06-20 Haskell Barin Geoffry Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US20040001546A1 (en) * 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US20060209961A1 (en) * 2005-03-18 2006-09-21 Samsung Electronics Co., Ltd. Video encoding/decoding method and apparatus using motion prediction between temporal levels

Also Published As

Publication number Publication date
FR2923125B1 (en) 2010-10-22
FR2923125A1 (en) 2009-05-01

Similar Documents

Publication Publication Date Title
EP3225029B1 (en) Image encoding method and equipment for implementing the method
US20080172384A1 (en) Epipolar geometry-based motion estimation for multi-view image and video coding
FR2891685A1 (en) Video sequence`s current image multiple reference motion estimating method for video coder/decoder, involves obtaining reduced lists of reference images by selecting certain reference images in initial list of reference images
EP2810436B1 (en) Encoding and decoding by means of selective inheritance
FR2944938A1 (en) METHOD AND DEVICE FOR CORRECTING ERRORS.
FR2891686A1 (en) Gradual video sequence transition detecting method for video coder/decoder, involves calculating criteria indicating if one distance is greater than another distance and making decision on image belongingness to transition based on criteria
FR2920632A1 (en) METHOD AND DEVICE FOR DECODING VIDEO SEQUENCES WITH ERROR MASKING
WO2010146314A1 (en) Encoding motion vectors using competition between predictors
EP1603341A1 (en) Method and device for image interpolation systems using motion estimation and compensation
FR3040849A1 (en) METHOD FOR COMPRESSING A VIDEO DATA STREAM
EP1297710B1 (en) Device and method for motion-compensated recursive filtering of video images prior to coding and corresponding coding system
Wang et al. Complexity reduction and performance improvement for geometry partitioning in video coding
Valenzise et al. Motion prediction of depth video for depth-image-based rendering using don't care regions
WO2009056752A1 (en) Method and system for estimating future motion of image elements from the past motion in a video coder
FR2975856A1 (en) IMAGE ENCODING AND DECODING METHOD, IMAGE ENCODING AND DECODING DEVICE AND CORRESPONDING COMPUTER PROGRAMS
WO2010070247A1 (en) Video coding based on global movement compensation
Salmistraro et al. Distributed multi-hypothesis coding of depth maps using texture motion information and optical flow
WO2015044581A1 (en) Video encoding and decoding by inheritance of a field of motion vectors
EP1241894A1 (en) Method of coding digital images based on error concealment
WO2016051083A1 (en) Method of transcoding video data with fusion of coding units, computer program, transcoding module and telecommunications equipment associated therewith
Brites et al. Epipolar geometry-based side information creation for multiview Wyner–Ziv video coding
EP1714498A1 (en) Method for determining the optimal prediction direction for video intra-prediction coding
FR3022723A1 (en) METHOD FOR SELECTING AT LEAST ONE ENCODING PARAMETER IN A VIDEO ENCODER UNDER ADDITIONAL REGULARITY CONSTRAINTS
Brites et al. Multiview side information creation for efficient Wyner–Ziv video coding: Classifying and reviewing
WO2010086562A1 (en) Method and device for encoding images using separate encoding modes, decoding method and device, and corresponding computer programs

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08845992

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08845992

Country of ref document: EP

Kind code of ref document: A1