EP0315673A1 - Process and device for temporal interpolation of images - Google Patents
Process and device for temporal interpolation of imagesInfo
- Publication number
- EP0315673A1 EP0315673A1 EP88905206A EP88905206A EP0315673A1 EP 0315673 A1 EP0315673 A1 EP 0315673A1 EP 88905206 A EP88905206 A EP 88905206A EP 88905206 A EP88905206 A EP 88905206A EP 0315673 A1 EP0315673 A1 EP 0315673A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- pixel
- interpolated
- vector
- value
- speed vector
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
- H04N7/0135—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
- H04N7/014—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes involving the use of motion vectors
Definitions
- the invention relates to a method of temporal interpolation of images making it possible to reconstruct the luminance values of the pixels of a missing image in a series of images representing the same object.
- a method can be used, for example, for transmission of video images at very low bit rate, consisting in transmitting only certain frames, with coding reducing the information bit rate, and in restoring the frames not transmitted, by interpolation. from the transmitted and decoded frames. It can also be used for converting a series of video images from a standard having a frequency of 50 Hz to a standard having a frequency of 60 Hz, or vice versa. For such a conversion, most of the frames must be interpolated from the frames available at the frequency of 50 Hz, since the instants of shooting at the frequency of 60 Hz do not coincide, with the instants of shooting at the frequency of 50 Hz.
- the purpose of the interpolation is therefore to determine a luminance value L (IX, IY, T j ) for each pixel of a frame to be interpolated corresponding to an instant T j , from the luminance values L (IX, IY, T a ) and L (IX, IY, T b ) of the pixels of two known frames corresponding to instants T a and T b such that T j . is between T a and T b .
- the pixels of the frames are identified by the coordinates (IX, IY) of their center in an ortho-normalized reference which is common for all the frames.
- a first class of temporal interpolation methods is based on a simulated linear interpolation. pie consisting in calculating, for each pixel to be interpolated, a linear combination of two luminance values of the pixels having homologous coordinates (IX, IY) in the two known frames corresponding to the instants T a and T b , weighted by the durations T b -T j and T j -T a , according to the formula:
- the homologous coordinates are exactly identical if the two frames T a and T b have the same parity, and are identical to the nearest half-line if they have different parities.
- This class of methods allows good restitution of the fixed zones in a series of frames, because then the luminance values used for the interpolation effectively correspond to the same point of the object represented by the series of frames.
- the moving areas are poorly reproduced and are all the more blurred as the speed of the movement is higher.
- This vector translates an elementary translation of the pixel, which does not necessarily correspond to the speed of the object represented but corresponds to the variations in luminance of the pixels representing this object.
- These second class methods then consist in calculating an interpolated luminance value for each pixel, taking into account two displacements of opposite directions respectively in the two known frames. These two displacements are in the direction of the speed vector associated with the pixel to be interpolated, and have respectively a modulus proportional to the time interval separating the frame to be interpolated and the known frame considered.
- Each interpolated luminance value is therefore calculated according to the formula:
- Zurich Seminar on Digital Communications consists in associating with each pixel to interpolate the speed vector estimated for the pixel having the same coordinates in the first known frame. This association is always more or less inaccurate since in moving areas these two pixels do not represent the same point on the moving object. This association is only exact insofar as neighboring points of the moving object have the same velocity vector, which is not necessarily the case, especially if the object shown is rotated. The fidelity of image restitution therefore varies, in moving areas, depending on the type of movement of these areas.
- a second known method described by M. Bierling and R.
- Thoma in: Motion compensating field interpolation using a hierachically structured displacement estimator consists in estimating a speed vector for each pixel of each frame to be interpolated, independently for each frame to be interpolated. This estimate is made from the same pair of known images, for all the frames to be interpolated corresponding to instants between T a and T b , but it takes account of the duration of the time intervals separating the frame to be interpolated and the known images, therefore the speed vector associated with each pixel to be interpolated has a much more precise value than that associated by the method described above. The fidelity of restitution of the frames in the moving areas is therefore made independent of the type of movement. On the other hand, this second method has the drawback of multiplying the computation time necessary for the estimation of the speed vectors, since it is proportional to the number of frames to be interpolated comprised between the two known frames.
- the object of the invention is to propose a temporal interpolation method providing good fidelity of restitution of the frames in the moving areas, whatever the type of movement, without requiring a significant computation time for the estimation of the vectors. pixel speeds of the frames to be interpolated.
- the object of the invention is a method belonging to the second class and which essentially consists in estimating a speed vector for each pixel of a single frame which is called motion-carrying frame, which can be one of the two known frames, and then to determine, in each of the frames to be interpolated, the pixels known as child pixels, which have a speed vector equal to the speed vector of a pixel called parent pixel corresponding to the same point of the object represented by the sequence of frames, this point being assumed to move with the same speed vector during the time interval from T a to T b .
- the method according to the invention is also applicable to images which are not interlaced frames.
- a method of temporal interpolation of images for determining a value of interpolated luminance for each pixel of an image called image to interpolate, from the luminance values of the pixels of a first and of d 'a second image called known images, taken at times T a and T b respectively, T j being between T a and T b ; consisting in: associating the values of the components of a speed vector with each pixel of the image to be interpolated, said pixel to be interpolated;
- FIG. 3 shows a flowchart illustrating the method according to the invention
- FIG. 12 and 15 show the block diagram of an exemplary embodiment of a device for implementing the method according to the invention
- a frame to be interpolated is to be interpolated from a first and a second known frame called respectively frame T a and frame T b because they correspond to an instant Ta which precedes T j and to an instant T b which follows T j ,
- All these frames are identified in the same ortho-normed reference frame PXY having the dimensions of a pixel as units. Points having identical (X, Y) coordinates are differentiated by the instants corresponding to the frames where these points are located. In what follows, we will distinguish points and pixels, each grid point has infinitely small dimensions while each pixel has finite dimensions determined by the characteristics of the sampling.
- the known frames are supplied by a source of video signals such as than a conventional television camera followed by a conventional analog-to-digital converter.
- Each pixel is identified by the coordinates of its center and is represented by a dotted square.
- Each has a luminance value equal to the average of the luminances of all the points contained in this pixel.
- T a and T b two points M a and M b having coordinates which are homologous to those of M j and which are each the center of a pixel represented by a dotted square.
- the first class of known methods consists in calculating the luminance value of the pixel to be interpolated, by linearly combining the luminance values of the pixels centered on M b and on M a . There is an error due to the fact that in the frame T b the object represented is displaced, with respect to the frame T j , in the direction, and in the direction of the vector while.
- the second class of known methods consists in calculating an interpolated luminance value from the luminance values of a point B of the frame T b and a point A of the frame T a , determined by taking into account a translation of the object in the frames T a and T b , with respect to the frame T j .
- the point A is deduced from M a per a translation - (T j -T a ) and point B is deduced from
- Points A and B are called, in what follows, basic points of the temporal interpolation.
- the method according to the invention is based on the same assumption.
- FIG. 2 illustrates the step of the method according to the invention consisting in associating a speed vector to a pixel to be interpolated, centered on a point F j of the frame to be interpolated T j .
- there is only one frame T j to be interpolated but in other cases there may be several frames to be interpolated, corresponding to times between T a and T b .
- the associated speed vectors are deduced from the speed vectors of the pixels of a single frame T i , called the frame carrying the motion, corresponding to an instant between T a and T b or can be T a or T b .
- the calculations necessary to determine the speed vectors of the pixels of the carrier frame are carried out only once regardless of the number of frames to be interpolated between the instants T a and
- Each pixel of the frame T i carrying motion is considered to be the father of a single pixel, called the child pixel, in the frame to be interpolated T j , these two pixels being supposed to represent the same point of the moving object.
- This point of the moving object has a speed vector which is known in the frame T i . This point is supposed to keep this same speed vector at all times between T a and T b while it is represented by a series of pixels having different coordinates and which are all the children of the same pixel father of the frame T i .
- the method according to the invention consists in determining in each frame to interpolate T j , the center of a child pixel corresponding to a father pixel given in the frame T i carrying the movement, then in assigning to this child pixel an equal speed vector at the velocity vector of its parent pixel, or of one of its parent pixels.
- a pixel G centered on the point C i of the frame T i has for vector speed a vector known. It has a child pixel H in the frame T j , which corresponds approximately to it by a vector translation (T i -T j ) from a point C j having, in the frame T j , coordinates homologous to those of the point C i in the frame T i .
- This translation makes a point E j correspond exactly to point C j .
- the point E j does not coincide with the center of a pixel.
- the method then consists in taking as pixel son the pixel of the frame T i having a center F j closest to the point E j , by taking the nearest integer value for each of the coordinates.
- the speed vector of the father pixel G is then associated with this child pixel H.
- a pixel of the frame to be interpolated T j can be the child pixel of several parent pixels simultaneously. For example, if two parent pixels have respectively two non-collinear velocity vectors, it may happen that the two translation vectors corresponding to these velocity vectors converge in the same child pixel.
- the carrier frame T i considered is the frame T a or the frame T b .
- the estimation of the speed vectors of its pixels can consist of calculating, by a known process, the elementary translation undergone for each point of the object between the screen T a and the frame T b , deducing therefrom an elementary translation vector (DX, DY) for each pixel of the frame T b , then calculate a velocity vector for each of these pixels, according to the formula: - (3)
- FIG. 3 represents a flow diagram of the essential steps of the method according to the invention, whatever the variant of implementation which is considered.
- This flowchart represents the steps of the time interpolation method of a single frame to be interpolated, corresponding to the instant T j .
- the same steps are to be carried out.
- FIG. 3 does not mention the step of determining the speed vectors of the Dixels of the Spotifyeuse frame T i because it is a step which is carried out only once for all the frames to be interpolated situated between the two known traces corresponding to the instants T a and T b .
- the frame for which the estimation of the speed vectors is carried out can be the frame T a or the frame T b or a frame whose luminance values are unknown but which corresponds to an instant T i between T a and T b .
- it can be constituted by one of the frames to be interpolated, the main thing being to use a speed estimation method making it possible to obtain an exact value of the components of the speed vector for each pixel of this frame.
- Many methods of speed estimation can be used.
- Those carrying out the determination by block of pixels or pixel by pixel are more suitable than those carrying out the determination by extraction of the characteristics of the frame, because they allow to obtain a denser velocity vector field and therefore greater precision for each of the pixels.
- the method according to the invention comprises two main phases.
- a first phase consists in scanning the pixels of the carrier frame T i and in determining a child pixel, if there is one, in the frame to be interpolated T j , for each pixel of the carrier frame.
- a second phase then consists in successively scanning all the pixels of the frame to be interpolated T j ; to associate a speed vector to each pixel of this frame to be interpolated, as a function of the speed vector of the father pixel or of the parent pixels corresponding to the pixel to be interpolated considered, if there is at least one father pixel; determining, for each pixel to be interpolated, two base points of the temporal interpolation, in the two known frames T a and T b ; determining the luminance of these two base points by spatial interpolation in the two known frames T a and T b , when the base points are not the pixel centers of these known frames; and finally to determine an interpolated luminance value, for the pixel to be interpolated considered, by linearly combining the luminance values of the two base points in accordance with formula (2).
- FIG. 4 represents a flowchart of the first phase of a first variant implementation of the method according to the invention.
- the case where a pixel to be interpolated has several parent pixels is treated by selecting the parent pixel which is the best.
- the criterion is the value of a function called The DFD which is equal to the absolute value of the difference in the luminance values of the two base points A and B.
- the selection of the best parent pixel consists in comparing the values of the DFD function obtained by associating with the pixel to be interpolated the velocity vector of each of the parent pixels successively.
- the parent pixel considered to be the best is the one whose speed vector gives a minimum value to the DFD function.
- the case of an orphan pixel that is to say having no father pixel in the frame carrying the movement, is treated by determining a speed vector interpolated from the vectors velocity associated with the neighboring pixels in the frame to be entered, insofar as they are not orphans.
- the value of the DFD function is used as a criterion to detect pixels which are orphaned.
- this variant consists in associating a zero speed vector.
- the first phase of the first variant begins with an initialization of a memory M2 intended to store the minimum value of the DFD function determined for each pixel of the frame to be interpolated T j . it is initialized with a constant value equal to 255 which corresponds to the maximum value of the luminance of the frames and therefore also of the DFD.
- the series of frames considered is in fact constituted by a series of interlaced frames, each frame being considered as an independent frame. Each frame comprises a number M of pixels per line and a number N of lines.
- Memory M2 has a capacity of MxN bytes.
- the coordinates (IX, IY) designate the center C i of a pixel of the frame T i carrying the movement, and which can be a parent pixel. Then the vector IX, IY, T i ), which is the speed vector of this pixel, is read in a memory MI at an address corresponding to the coordinates of this pixel.
- the memory MI is a memory having a capacity of M ⁇ N cells and which is loaded beforehand with the values of the components of the speed vector of all the pixels of the motion-carrying frame used for the interpolation of the missing frames in the interval T a , T b .
- the coordinates of the center F j of a child pixel are determined by taking the integer part of the components of the vector: (0,5; 0,5) where (0,5; 0,5) makes it possible to find the integer value closest to the components, and not only the whole part of these; and or is a frame parity correction vector, having as components: (0.5; 0.5) if the frames T i and T j are frames having the same parity;
- the pixel to be interpolated centered on the point F j is a child pixel of the pixel of coordinate (IX, IY) in the frame T i .
- the method then consists in determining the coordinates of two basic interpolation points tem porelle, B and A, in the frames T b and T a respectively, according to the formulas:
- the vector is a vector of frame parity correction, having as components:
- the vector has analogous components as a function of the parity of the frame constituting the screen T j and the parity of the frame constituting the frame T b .
- the first phase of the first variant then consists in calculating the luminance values
- L ( , T a ) and L ( T b ) at points A and B according to a calculation method which will be detailed later and which consists of a spatial interpolation combining the luminance values of four pixels closest to point A, respectively of point B, when these points do not correspond not at the pixel centers of frame T a and frame T b . Then it consists in calculating the value of the DFD function, which is equal to the absolute value of the difference in luminances, at points A and B determined for this speed vector V.
- the value of the DFD function is compared with a fixed threshold value equal to 7 in this example. If the DFD function is less than the threshold value, this means that the coordinate pixel (IX, IY) in the carrier frame constitutes a parent pixel for the pixel to be interpolated centered on the point F j .
- the process consists then to read in the memory M2 a value DFD 'at an address corresponding to the components of the vector j . If the value DFD which has just been found for the parent pixel with coordinate (IX, IY) in the frame T i , is less than the value DFD 'read in the memory M2, this means that the parent pixel which comes to be found is better because its speed vector makes the value of the DFD function smaller.
- Its speed vector is therefore chosen to be associated with the child pixel centered on the point F j .
- This speed vector is written into a memory M1 at an address corresponding to the child pixel, that is to say corresponding to the components of the vector.
- the memory M1 is a memory of MxN cells intended to store the value of the components of an associated speed vector, for each pixel to be interpolated.
- the value of the DFD function which has just been calculated is written in the memory M2 at the address corresponding to the child pixel, in place of the previous DFD 'value which corresponds to another parent pixel or which is equal to the initialization value.
- the value of the DFD function read from the memory M2 is equal to the initialization value of the memory M2, c ' i.e. 255.
- the coordinate pixel (IX, IY) in the frame T i is not considered as a parent pixel, and the first phase continues with a test of the value reached by the coordinate IX.
- the pixel of coordinate (IX, IY) in the frame T i is a father pixel which is not better than a father pixel found previously and having supplied the value DFD 'which has just been read in the memory M2, it is therefore to be rejected.
- the first phase continues with the test on the IX coordinate.
- the preceding operations are repeated from the incrementation of IX. If IX has reached its maximum value, the first phase continues with a test relating to the IY coordinate. If the latter has not reached its maximum value N, the preceding operations are repeated from the increment of IY, until IY reaches N. The first phase, of the first variant, is then completed, and then begins the second phase of this first variant.
- FIG. 5 represents a flow diagram of the operations for calculating the luminance values L ( t, T a ) and of
- FIG. 6 illustrates this calculation method for the luminance value L , T a ).
- the point A does not coincide with the center of a pixel of the frame T a but is located between the centers G1, G2, G3, G4 of four pixels.
- the spatial interpolation of the luminance value at point A firstly consists in determining the integer part of the components of the vector to constitute the coordinates (XG a , YG a ) of the point G1.
- the coordinates of the point G2 are then (XG a + 1, YG a ).
- the coordinates of point G3 are then (XG a , YG a +1).
- the coordinates of point G4 are then (XG a + 1, YG a +1).
- the point G4 constitutes the reference point for the interpolation.
- the method then consists in reading from the memory MA luminance values: L (XG a , YG a ),
- the F, T a ) L (XG a + 1, YG a +1). (1- ⁇ X a ) (1- ⁇ Y a ) + L (XG a , YG a +1) . ⁇ X a . (1- ⁇ Y a )
- the calculation of the luminance value L ( , T b ) is carried out according to a sequence of operations quite similar.
- FIG. 7 represents the flowchart of the second phase of the first variant of the implementation of the method according to the invention.
- This second phase begins with an initialization at zero of a coordinate IY ', then an incrementation of one unit of this coordinate and an initialization at zero of a second coordinate IX'.
- the coordinates (IX ', IY') are the coordinates of the center of a pixel of the frame to be interpolated Tj.
- the method consists in incrementing the coordinate IX 'and in reading the value DFD (IX', IY ') stored in the memory M2 at an address corresponding to the coordinates (IX', IY ').
- the value read is compared with a threshold value equal to the value 255 having served to initialize the memory M2 and which is equal to the maximum value of the luminance.
- a speed vector is calculated by interpolating between the speed vectors of four pixels neighboring the orphan pixel, insofar as they are not themselves orphan pixels.
- This computation is carried out by reading in the memory M2 the values of the function DFD and by reading in the memory M1 the components of the speed vector for the four neighboring points whose coordinates are: (IX ', IY'-1), (IX'-1, IY'), (IX '+ 1, IY'), (IX ', IY' + 1)
- V IX ', IY' (A 00 . V (IX ', IY') +
- a 01 1 otherwise.
- the speed vector interpolated S constitutes a suitable estimate of the speed vector of the orphan pixel considered. It can therefore be associated with this orphan pixel.
- the method then consists in calculating the value of the interpolated luminance of the orphan pixel considered, L (IX ', IY', T j ) according to formula (9).
- the interpolated speed vector is not suitable and cannot be associated with the orphan pixel considered.
- a zero speed vector is associated with the orphan pixel.
- the two basic points of the temporal interpolation, A and B then have the same coordinates (IX ', IY') as the center of the pixel to be interpolated, therefore the vectors and are both equal and have components (IX ', IY').
- the luminance values L ( 1 a ) and L ( T b ) are then determined without spatial interpolation in the frames T a and T b , since IX 'and IY' are integer values. They are read in the memories MA and MB respectively at the addresses corresponding to (IX ', IY'). Then the interpolated luminance value
- an interpolated luminance value L (IX ', IY', T j ) has been calculated, this value is supplied, for example, to a memory of the frame storing the interpolated values of the frame T j in awaiting use of these luminance values. Then the value of the coordinate IX 'is compared with its maximum value M to determine whether it has reached this maximum value. If it has not reached it, the previous operations are repeated from the increment of IX '. If it has reached its maximum value, the value of the second coordinate IY 'is compared with its maximum value N. If it has not reached its maximum value, the preceding operations are repeated from the incrementation of IY'. If it has reached its maximum value, this means that all the pixels to be interpolated have been scanned and that, consequently, the temporal interpolation processing of the frame T j is finished.
- FIG. 8 represents a flowchart of the first phase of the method according to the invention, according to a second variant of implementation, making it possible to simplify the calculations and to delete the memory M2 because this variant does not use the DFD function.
- the first pha begins with an initialization of the memory M1 with the value (255, 255) which constitutes the maximum value of the components of the speed vector associated with each pixel to be interpolated.
- the ordinate IY of the pixels of the frame carrying the movement T i is initialized to zero. Then this ordinate IY is incremented by one, and the abscissa IX of the pixels of the frame carrying the movement T i is initialized to zero. Then this abscissa is incremented by one.
- the value of the components of the speed vector IX, IY, T i ) is read in the memory MI then is used to calculate the components of the vector and the components of the vector j . Then this speed vector is written in the memory M1 at the address corresponding to the components of the vector j , that is to say at the address corresponding to the coordinates of the child pixel.
- the value of the coordinate IX is compared with its maximum value M. If this is not reached the preceding operations are repeated from the incrementation of IX. If it is reached, the value of the IY coordinate is compared with its maximum value N. If this is reached, the first phase is ended and a second phase begins. If IY has not reached its maximum value N, the preceding operations are repeated from the increment of IY.
- FIG. 9 represents a flowchart of the second phase of the second variant of implementation of the method according to the invention.
- This second phase begins with an initialization at zero of the coordinate IY 'of the pixels to be interpolated. Then it consists of incrementing the coordinate IY 'and initializing the coordinate IX' to zero. Then it consists in incrementing the coordinate IX ′ by one and reading the speed vector V (IX ′, IY ′, T j ) in the memory M1 at an address corresponding to the coordinates (IX ′, IY ′). The components of this speed vector are each compared with the value 255 which is the initial value loaded into the memory M1.
- An interpolated velocity vector T is calculated by an interpola spatial map from the speed vectors of four neighboring pixels of the orphan pixel.
- the absence of use of the DFD function does not prevent detection of whether a pixel to be interpolated is an orphan pixel or not, thanks to the initialization of the memory M1 with the value (255,255) which allows to discriminate the velocity vector values which do not exist.
- the first phase does not distinguish the best parent pixel when a pixel to be interpolated has several parent pixels, therefore the associated speed vector is that corresponding to the last found parent pixel, for a given pixel to interpolate, when it has several fathers pixels.
- the velocity vector (IX ', IY', T j ) has components other than 255, this means that the pixel to be interpolated has an associated velocity vector which was determined during the first phase.
- the method then consists in calculating the vectors B and A according to formulas (5) and (6) for the speed vector read in the memory M1 or for the speed vector interpolated, associated with the pixel (IX ', IY'). Then it consists in calculating the luminance values L ( , T a ) and L , T b ). When the speed vector is not zero, this calculation is carried out by spatial interpolation in the frames T a and T b respectively, according to the flow diagram represented in FIG. 5 and described previously. When the speed vector is zero, these two luminance values are read from the memories MA and MB at the address corresponding to (IX ', IY').
- the method consists in calculating the interpolated luminance value L (IX ', IY', T j ), according to formula (10).
- the interpolated luminance value is then supplied, for example, to a frame memory to be stored while waiting for use on the interpolated frame T j .
- FIG. 10 represents a flow diagram of the first phase of the method according to the invention for a third variant of implementation of this method.
- This third variant of implementation does not require no calculation of the DFD function and does not require an M2 memory, as does the second variant. Compared with the second variant, it has the advantage of allowing the interpolated luminance values to be stored without having an additional frame memory, since this third variant makes it possible to reuse the memory M1 for storing the interpolated luminance values.
- this third variant instead of storing in the memory M1 the speed vectors associated with the child pixels as the parent pixels of the frame carrying the motion are scanned, it consists of calculating and store in M1 the interpolated luminance values corresponding to these child pixels.
- all that remains is to calculate an interpolated luminance value for each orphan pixel only.
- the value of the components of the speed vectors of the neighboring pixels not being stored it is not possible to use an interpolation to calculate a speed vector to be associated with each orphan pixel.
- the speed vector associated with the orphan pixel is then taken zero.
- the first phase of this third variant begins with an initialization of the memory M1 with the value 255 which corresponds to the maximum value of the luminance and which is therefore easy to discriminate in order to detect the orphan pixels, these being discriminable by the fact that the corresponding value of the luminance, stored in the memory M1, remains equal to 255 at the end of the first phase of the process. It also begins with an initialization of the IY coordinate to zero. Then it consists of incrementing IY by one unit and initializing the coordinate IX to zero. It then consists of incrementing the IX coordinate by one, then reading the speed vector (IX, IY, T i ) in the memory MI; then calculate the vectors according to formulas (4) to (6).
- the first phase then consists in testing the value of the coordinate IX to detect if it has reached its maximum value M. If the value M is not reached, it consists in repeating the previous operations from the incrementation of IX. When IX has reached the maximum value M, it consists in comparing the value of the coordinate IY with its maximum value N. If IY has reached the value N, the first phase is terminated. Otherwise, the previous operations are repeated from the increment of the IY coordinate.
- FIG. 11 represents a flowchart of the second phase of the third variant of implementation of the method according to the invention.
- This second phase consists first of all in initializing to zero the coordinate IY 'of a pixel of the frame to be interpolated T j ; then to increment this coordinate IY 'by one unit and to initialize to zero a second coordinate IX'. Then it consists in incrementing the coordinate IX 'of a unit; reading the luminance value stored in the memory M1 at the address corresponding to the coordinates (IX ', IY'); and to compare this luminance value with the value 255 which is the value loaded initially in the memory M1.
- the luminance value is other than 255, this means that a luminance value was determined during the first phase, for the pixel to be interpolated with coordinates (IX ', IY'). If the luminance value is equal to 255, this means that this pixel to be interpolated has no parent pixel in the frame carrying the movement T i . In this case, a zero speed vector is assigned to this orphan pixel, and the vectors F and have components equal to those of the vector carrying the center of the pixel to be interpolated, that is to say (IX ', IY').
- the luminance values of the two basic points of the temporal interpolation, L ( A, T a ) and L ( , T b ) are read in the memories MA and MB at the address corresponding to (IX ', IY'). Then an interpolated luminance value L (IX ', IY', T j ) is calculated according to formula (9). Finally, the interpolated luminance value is written into the memory M1 at the address corresponding to the coordinates (IX ', IY') to be stored there while waiting for the luminance values of the interpolated frame T j to be used . At the end of the processing of all the pixels of the frame to be interpolated, the memory M1 will be filled with the interpolated luminance values. The memory M1 therefore plays the role of the memory of the additional frame which was necessary to store the interpolated luminance values according to the first and the second variant of implementation, described above.
- FIG. 12 represents the block diagram of a first part of a device for implementing the method according to the invention, in accordance with the first variant described above.
- This first part comprises: an input terminal 1; a multiplexing device 2; a motion estimation device 3; a sequencer 4; a memory 5 called memory MI; a device 7 for calculating the vector ; an address and data bus, 9; a computing device 10; a memory MA, for storing the luminance values of the frame corresponding to the instant T a ; a memory MB for storing the luminance values of the frame corresponding to the instant T b ; and calculation means 5a, for associating a speed vector with each pixel to be interpolated having at least one parent pixel.
- These calculation means 5a comprise: a device 6 for calculating the vector ; a device 8 for calculating the vector ; a device 10 for calculating
- the multiplexing device 2 has an input connected to the input terminal 1 of the interpolation device to receive a series of luminance values corresponding to a series of known frames constituted by frames of conventional television frames. These luminance values are provided, for example, by a television camera and an analog-to-digital converter.
- the device 2 has an output connected to the bus 9, which is a data, address and command bus, for transmitting the luminance values either to the memory MA or to the memory MB.
- the frame corresponding to time T a is assumed to precede the frame corresponding to time T b , but during the processing of a series of frames memories MA and MB are used alternately to store the frame the most recent.
- the sequencer 4 supplies control signals to all of this exemplary embodiment and in particular to the device 2, in synchronism with the luminance values applied to the input terminal 1.
- the motion estimation device 3 has an input -output connected to bus 9 to enable it to control the reading of luminance values in the memories MA and MB, and the writing of the values of the components of the speed vector of the pixels of the frame T i in the memory MI.
- the device 3 is produced, for example, in accordance with the description of US Pat. No. 4,383,272. It provides an estimate of motion constituted by the components of a speed vector for each pixel of a frame corresponding to an instant T i between the instants T a and the instants T b , as a function of the luminance values of the known frames at the instants T a and T b ,
- the memory MI has an address input connected to an output of the sequencer 4 to receive an address constituted by the coordinates (IX, IY) of a pixel of the frame carrying the movement T i .
- the sequencer 4 provides a series of coordinates corresponding to the usual scanning order of a frame of the television frame. This series of coordinates is also provided at a first input of the computing device 7.
- a second input of the computing device 7 is connected to a data output of the memory MI to receive the value of the components of the speed vector (IX, IY, T i ) read in the MI memory at the address (IX, IY). The value of these components is also applied to an input of the computing device 6, to an input of the computing device 8, and to a first input of the multiplexer 18.
- the calculation devices 6, 7, and 8 operate in parallel to determine the components of the vectors, respectively.
- j PB For each pixel of coordinates (IX, IY) in the frame T i carrying the movement, the computing device 7 determines the center F j of a child pixel, if there is one; the calculation devices 6 and 8 determine the coordinates of the base points A and B for a temporal interpolation, with a view to calculating a luminance value for the child pixel.
- Devices 6 and 8 respectively provide the components of the vector and vector to an input of the computing device 10 and to an input of the computing device 11.
- the calculation device 10 has an output and an input connected respectively to an address input and to a data output of the memory MA, for controlling in the memory MA the reading of the luminance values necessary for a spatial interpolation from the pixels neighboring point A in frame T a .
- the device 11 has an output and an input linked respectively to an address input and to a data output of the memory MB to read there the luminance values necessary for a spatial interpolation between the pixels neighboring point B in the frame T b .
- the luminance values L (PX, T a ) and L ( F ⁇ f, T b ) calculated respectively by devices 10 and 11 are applied respectively to two inputs of the subtractor 14 to calculate a value of the DFD function.
- Subtractor 14 provides an algebraic value whose absolute value constitutes the value of the DFD function. This is applied to a first input of the multiplexer 17 and to first inputs of the comparators 15 and 16.
- a second input of the comparator 15 receives a value DFD 'of the DFD function read in the memory M2 at an address constituted by the components of the vector ⁇ ie corresponding to the child pixel being processed.
- the comparator 16 has a second input receiving a threshold value: 7.
- the comparators 15 and 16 each have an output connected to an input of the AND logic gate 19 to validate the latter when the value of the DFD function supplied by the subtractor 14 is less than the threshold value 7 and less than the value DFD 'read from the memory M2.
- the door 19 has an output connected to a control input of the multiplexer 17 and to a control input of the multiplexer 18.
- the second input of the multiplexer 17 is connected to the data output the memory M2.
- the first and second input of the multiplexer 18 are respectively connected to the data output of the memory MI providing the vector (IX, IY, T i ), and to an output of the memory M1 providing the value of the components of a speed vector read at the address constituted by the components j
- the memories M1 and M2 each have an address input connected to the output of the computing device 7 to receive the value of the components of the vector. PF j .
- the sequencer 4 controls in the memories M1 and M2, a reading at the address constituted by the components of the vector PF j . This reading allows to know the value DFD 'of the DFD function and the value of the components of the speed vector previously found if the pixel centered on the point F j has at least one parent pixel having been determined previously.
- the signal supplied by the output of the gate 19 controls the multiplexers 17 and 18 to transmit respectively the value of the DFD function supplied by the subtractor 14 and the speed vector supplied by the output of the memory MI.
- the multiplexers 17 and 18 respectively transmit the value DFD' provided by the memory M2 and the speed vector supplied by the memory M1.
- the output of the multiplexer 17 and the output of the multiplexer 18 are respectively connected to data inputs of the memories M2 and M1.
- the sequencer 4 commands a write in these memories to write the value of the DFD function transmitted by the multiplexer 17 and the speed vector transmitted by the multiplexer T8.
- the content of memories M2 and M1 is therefore renewed when a better parent pixel is detected.
- An initialization device 20 has two outputs connected respectively to the address input and to the data input of the memory M2 to provide it with a series of address values making it possible to write the value 255 at all the addresses during an initialization phase preceding the processing of each frame.
- the device 20 and the memory M2 are controlled by the sequencer 4 to carry out this writing.
- the address input and the data input of the memory M2 are connected on the other hand to an input terminal 26 and to an input terminal 28 which are connected to the second part of this exemplary embodiment.
- the data output of the memory M2 and the data output of the memory M1 are connected respectively to two output terminals 27 and 30, connected to the second part of this exemplary embodiment.
- FIG. 13 represents a more detailed block diagram of the calculation devices 6, 7, 8, 10 and 11.
- the device 6 comprises a multiplier 61, a device 62 for correcting parity of frames, and an adder 63.
- a second input of the multiplier 61 permanently receives the value - (T j -T a ).
- An output of the multiplier 61 is connected to an input of the device 62 to provide it with the value of the components of a vector: -V. (T j -T a ).
- the device 62 adds to the value of these components, the value of the components of the vector Z which is a function of the parity of the frame being interpolated and of the frame T a .
- the device 62 is connected, by links not shown, to outputs of the sequencer 4 supplying control signals which are functions of the parity of these two frames.
- the device 62 can consist of adders and a read only memory storing the value of the components of the vector Z, this read-only memory receiving an address constituted by the control signals supplied by the sequencer 4.
- the adder 63 has: an input connected to the output of the device 62; another input connected to the output of the computing device 7 to receive the value of the components of the vector ; and an output constituting the output of the device 6, output providing the value of the components of the vector
- the calculation device 8 has a structure very similar to that of the calculation device 6. It includes a multiplier 81, a device for correcting parity of frames, and an adder 83.
- the multiplier 81 receives the value (T b -T j ) instead of the value - (T j -T a ), and the device 82 adds the value of the components of the vector b , instead of the value of the components of the vector a
- the value of the components of the vector T is a function of the parity of the frame T j and the frame T b .
- the device 82 is connected to the sequencer
- the calculation device 7 comprises a multiplier 71, a subtractor 72, a device 73 for parity correction of frames, and a device 74 for calculating the nearest whole value (VEPP) of a value.
- a first input of the multiplier 71 constitutes the input of the device 7 receiving the value of the components of the vector 7 (IX, IY, T i ).
- a second input of the multiplier 71 permanently receives the value (T i -T j ).
- An output of the multiplier 71 is connected to a first input. of the subtractor 72 and provides it with the value of the components of the vector V. (T i -T j ).
- a second input of the subtractor 12 receives the coordinates (IX, IY) supplied by the sequencer 4 and constituting the components of the vector PC j .
- An exit from the subtractor 72 supplies an input to the device 73 with the value of the components of the vector calculated in accordance with the formula (4).
- the device 73 adds to the value of these components the value of the components of the vector which is function of the parity of the frame T j and the frame T i .
- the device 73 can be constituted like the devices 62 and 82. It is connected to outputs of the sequencer 4 by links not shown providing it with control signals depending on the parity of the frames T j and T i . An output of the device 73 is connected to an input of the device 74.
- the device 74 adds 0.5 to each of the components of the vector supplied by the output of the device 73 and then takes the whole part of the sum obtained.
- the device 74 can consist of two adders each adding the constant value 0.5. The whole part is extracted by setting the bits making up the fractional part to 0.
- An output of the device 74 constitutes the output of the device 7 and provides the value of two components constituting the vector j
- the value of these components is used in particular as address value for the memories M1 and M2, during the writing in these memories of the value of the function DFD and of the components of the speed vector, corresponding to the child pixel centered on the point F j .
- the calculation devices 10 and 11 have a similar structure, but the device 10 is coupled to the memory MA while the device: 1 is coupled to the memory MB.
- the device 10 comprises: a device
- An input of the device 101 constitutes the input of the device 10, and is also connected to a first input of the subtractor 103.
- An output of the device 101 is connected to a first input of the adder 102 and to an input of the computing device 104 addresses, to provide them with the value of the components (XG a , YG a ) obtained by taking the integer part of the value of the components of the vector
- the device 101 can be constituted like the device 74.
- the adder 102 has a second input permanently receiving the value of the components of a vector (1,1), and has an output connected to a second input of the subtractor 103.
- An output of the subtractor 103 is connected to a terminal d input 106 of the calculation device 105 to provide it with the value of the relative coordinates of the point A: ( ⁇ X a , ⁇ Y a ).
- the calculation device 105 has a second input terminal 108 connected to a data output from the memory MA and has an output terminal 107 constituting the output of the device 10 and connected to the first input of the subtractor 14 to supply it with the value of luminance L (PA, T a ).
- the address calculation device 104 has an input connected to the output of the device 101 for receiving the coordinates (XG a , YG a ) and has an output connected to an address input of the memory MA.
- the device 104 supplies four successive addresses to the memory MA under the action of a clock signal supplied by the sequencer 4 which commands four successive readings in the memory A to read the luminance values stored at addresses constituted by the coordinates : (XG a + 1, YG a +1); (XG a , YG a +1); (XG a + 1, YG a ); (XG a , YG a ).
- the device 103 can consist of four registers, four adders, and a multiplexer, controlled by control signals supplied by the sequencer 4.
- the calculation device 11 comprises: a device 111 for calculating the most integer value close to the components of a vector; a device 112 for calculating addresses; an adder 113; a subtractor 114; and a computing device 115, having functions analogous to the functions of elements 101 to 105 of the computing device 10.
- FIG. 14 represents the block diagram of an exemplary embodiment of the calculation device 105. It comprises: six registers, 120 to 123 and 133, 135; eight multipliers, 124 to 131; an adder 132; and two subtractors 134 and 136.
- the device 105 implements formula (8).
- the input terminal 106 is connected to inputs of registers 120 to 123 which respectively store the four pairs of coordinates applied to the input terminal 106.
- the input terminal 108 is connected to inputs of registers 133 and 135 which store the values ⁇ X a and ⁇ Y a respectively .
- the outputs of registers 120 to 123 are respectively connected to first inputs of multipliers 124, 126, 128, 130.
- the output of register 133 is connected to: a first input of subtractor 134, a second input of multiplier 126, and a second , input of the multiplier 130.
- the output of the multipliers 124, 126, 128, 130 is connected respectively to a first input of the multiplier 125, of the multiplier 127, of the multiplier 129, and of the multiplier 131.
- the output of the register 135 is connected to a second input of multiplier 129, a second input of multiplier 131, and a first input of subtractor 136.
- the subtractor 134 has a second input permanently receiving the value 1 and has an output connected to a second input of multiplier 124 and to a second input of multiplier 128.
- Subtractor 136 has a second input permanently receiving value 1 and has an output connected to a second input of the multiplier 125 and to a second input of the multiplier 127.
- the outputs of the multipliers 125, 127, 129, 131, are respectively connected to four inputs of the adder 132.
- a fifth input of the adder 132 receives permanently the value 0.5.
- An output of the adder 132 is connected to the output terminal 107.
- Subtractors 134 and 136 respectively supply the values ⁇ X a -1 and ⁇ Y a -1. Multipliers
- Multipliers 124 and 125 calculate the first term of formula (8).
- Multipliers 126 and 127 calculate the second term.
- Multipliers 128 and 129 calculate the third term.
- Multipliers 130 and 131 calculate the fourth term.
- the adder 132 adds up these four terms and the constant term 0.5.
- FIG. 15 represents the block diagram of the second part of the exemplary embodiment of a device for the implementation of the first variant of the method according to the invention.
- This second part corresponds to the second phase of the process. It notably comprises calculation means 5b for determining a speed vector interpolated from the speed vectors of the pixels neighboring the pixel to be interpolated when the latter has no parent pixel or else when its parent pixels have not been validated.
- calculation means 49 for associating a zero speed vector with the pixel to be interpolated when the interpolated speed vector is not validated, and to determine the luminance values L ( PA, T a ) and L ( PB, T b ) of the two base points A and B, as a function of the speed vector associated with the pixel to be interpolated; and calculating means 50 for calculating an interpolated luminance value, as a function of the luminance values of the two base points.
- the calculation means 5b include: an address generator 31; two registers, 32 and 33; a comparator 34; a multiplexer 35, with two inputs and one output; and a calculating device 36 for calculating an interpolated speed vector
- An output of the address generator 31 and an output terminal 58 of the computing device 36 are connected to the input terminal 28 of the computing means 5a, which is connected to the address inputs of the memories M1 and M2.
- the address generator 31 provides a series of addresses constituted by coordinates (IX ′, IY ′) corresponding to a systematic scanning of all the pixels to be interpolated from the frame T j . Each of these addresses makes it possible to read a DFD value (IX ', IY') of the DFD function in the memory M2 and a speed vector (IX ', IY') in the memory M1, corresponding to a pixel to be interpolated.
- a data input from register 32 and an input terminal 57 of the calculation device 36 are connected to the output terminal 27 of the calculation means 5a, which receives the value DFD (IX ', IY') read in the memory M2 .
- a data input from register 33 and an input terminal 56 of the calculation device 36 are connected to the output terminal 30 of the calculation means 5a, which supplies the value of the components of the speed vector V (IX ', IY') read in memory M1.
- the value DFD (IX ', IY') stored in the register 32 is compared with a threshold value, 255, by the comparator 34.
- An output of the comparator 34 is connected to a control input of the multiplexer 35.
- An output of the register 33 is connected to a first input of the multiplexer 35.
- An output terminal 59 of the calculation device 36 supplies the value of the components of a speed vector interpolated to a second input of the multiple xer 35.
- An output of the multiplexer 35 constitutes an output of the means 5b and is connected to a first input of the calculation means 49 to supply a speed vector Vt
- the comparator 34 controls the multiplexer 35 so that it transmits the value of the components of the vector stored in register 33, because this speed vector is suitable.
- the value of the DFD function is equal to 255, this means that the pixel to be interpolated has no parent pixel, therefore it is necessary to determine a speed vector by interpolation from the speed vectors of the neighboring pixels.
- the comparator 34 then controls the multiplexer 35 so that it transmits the value of the components of the interpolated speed vector T supplied by the calculation device 36.
- FIG. 16 A block diagram of the computing device 36 is shown in FIG. 16. It comprises: an address generator 150; ten registers, 151 to 154 and 165 to 168; five comparators 156 to 159; four multipliers, 161 to 164; two adders 170 and 171; a divider 172; and a multiplexer 173, with two inputs and one output.
- the address generator 150 has an input connected to the input terminal 60 to receive the sequence of coordinates (IX'.IY ') of each pixel of the frame to be interpolated T j , and it has an output connected to the terminal 58 to successively supply four values coordinates (IX '', IY '') for each pixel to be interpolated.
- the registers 151 to 154 each have a data input connected to the input terminal 56 for receiving and storing the values of the DFD function read in the memory M2 and corresponding to the four neighboring points respectively.
- the registers 165 to 168 each have a data input connected to the input terminal 57 to receive the value of the components of the speed vectors read in the memory M1 and corresponding respectively to the four neighboring points.
- the registers 151 to 154 have outputs connected respectively to first inputs of the comparators 156 to 159.
- the comparators 156 to 159 have second inputs receiving a constant value equal to 255 and have outputs connected respectively to first inputs of the multipliers 161 to 164 and respectively to four inputs of the adder 170.
- the comparators 156 to 159 each supply a logic signal of value 1 when the value applied to their first input is less than 255 and a value of zero when the value applied to their first input is equal to 255.
- the values of these logic signals are added by the adder 170.
- the output of the adder 170 is connected to a first input of the divider 172 and to a control input of the multiplexer 173.
- the outputs of registers 165 to 168 are respectively connected to second inputs of the multipliers 161 to 164.
- the multipliers 161 to 164 multiply the values of the components of the speed vectors by the values of the logic signals supplied respectively by the comparators 156 to 159, and provide the result on outputs connected respectively to four inputs of the adder 171.
- the output of the adder 171 is connected to a second input e of the divider 172.
- An output of the divider 172 provides the value of the components of an interpolated speed vector according to formula (10).
- An output of the multiplexer 173 is connected to the output terminal 59 of the calculation device 36.
- the value which it provides on its output controls the multiplexer 173 so that it transmits the value of the components of the interpolated vector. If the value of the sum calculated by the adder 170 is equal to 0, that is to say if the four neighboring pixels do not have validated parent pixels, the value 0 applied to the control input of the multiplexer 173 commands the transmission of a zero vector to constitute the vector T supplied by the computing device 36.
- the computing means 49 include two halves calculating in parallel the luminance values of the base points A and B and the value of the DFD function, respectively for the speed vector vt provided by the calculation means 5b and for a zero speed vector. These two calculations in parallel make it possible to save time when finally it turns out that the speed vector provided by the calculation means 5b is not validated because the corresponding DFD has a value greater than threshold 7.
- These calculation means 49 comprise: a calculation device 37 for calculating the vector for the velocity vector T a calculating device 38 for calculating a vector for the velocity vector ; a calculating device 41 for calculating a luminance value L ( T a ) for the velocity vector ; a calculating device 42 for calculating a luminance value L ( PBT b ) for the velocity vector; a device 43 reading L ( PA, T a ) at the address (IX ', IY') in the memory MA and a device 44 for reading L ( , T b ) at the address (IX ', IY') in the memory MB, which corresponds to a zero speed vector; a subtractor 45 and a subtractor 46 for determining respectively the value of the DFD function for the speed vector and for a zero speed vector; a comparator 48; and a multiplexer 47 with eight inputs and four outputs.
- the calculation device 37 is similar to the calculation device 6 described above and shown in FIG. 13.
- the calculation device 38 is similar to the calculation device 8 described above and shown in FIG. 13.
- the calculation devices 41 and 42 are respectively similar to the calculation devices 10 and 11 described above and represented in FIG. 13.
- the reading devices 43 and 44 each have an input-output connected to the bus 9. They have a very simple structure made up of buffer registers controlled by signals supplied by sequencer 4, and routed by links not shown.
- the calculation devices 37 and 38 each have their input which is connected to the first input of the calculation means 49 to receive the value of the components of the vector Tj.
- the outputs of the calculation 37 and 38 are respectively connected to the inputs of the calculation devices 41 and 42.
- the output of the device 41 is connected to a first input of the subtractor 45 and to an input marked ai of the multiplexer 47.
- the output of the device 42 is connected to a second input of the subtractor 45 and to an input denoted b1 of the multiplexer 47.
- the output of the device 43 is connected to a first input of the subtractor 46 and to an input denoted a2 of the multiplexer 47.
- the output of the device 44 is connected to a second input of the subtractor 46 and to an input denoted b2 of the multiplexer 47.
- the output of the subtractor 45 is connected to a first input of the comparator 48 and to an input marked d1 of the multiplexer 47.
- the output of the subtractor 46 is connected to an input marked d2 of the multiplexer 47.
- the multiplexer 47 also has: an input marked d connected to the first input of the calculation means 49 to receive the vector ⁇ an input denoted c2 which receives a zero speed vector; four outputs denoted a, b, c, d constituting respectively a first, a second, a third and a fourth output of the calculation means 49; and a control input connected to the output of comparator 48.
- Subtractor 45 calculates the value of the DFD function for the pixel to be interpolated, with the vector Tt as associated velocity vector.
- the value of the DFD function is compared with the threshold value, 7, by the comparator 48. If the value of the DFD function is less than or equal to 7, the multiplexer 47 transmits the information applied to the inputs a1, b1, c1, d1, respectively to outputs a, b, c, d. If the value of the DFD function corresponding to the vector V is greater lower than the threshold value, 7, the multiplexer 47 is controlled to transmit the information present on inputs a2, b2, c2, d2 respectively to outputs a, b, c, d.
- the first and the second output of the calculation means 49 respectively provide a luminance value L , T a ), L ( , T b ), corresponding to the speed vector selected to be associated with the pixel to be interpolated; the second and the third output of the calculation means 49 respectively supply the speed vector which is used to constitute the vector V (IX ′, IY ′, T i ) associated with the pixel to be interpolated, and the value of the DFD function corresponding to this pixel to be interpolated (IX ', IY', T i ).
- the third and fourth outputs of the calculation means 49 are respectively connected to the input terminals 26 and 29 of the calculation means 5a for recording the associated speed vector and the value of the DFD function in the memories M1 and M2 at the address constituted by the coordinates (IX ', IY'). This speed vector and this value of the DFD function will thus be available later to calculate interpolated speed vectors for orphan pixels.
- the calculation means 50 have two inputs connected respectively to the first and to the second output of the calculation means 49 to receive the two luminance values of the base points A and B corresponding to the pixel to be interpolated.
- the calculation means 50 comprise two multipliers 51 and 52 and an adder 53.
- the multiplier 51 has: a first input connected to the first output of the means 49; a second input receiving a constant value equal to T -T; and an output connected to a first input of the adder 53.
- the multiplier 52 has: a first input connected to the second output of the means 49; a second input receiving a constant value equal to and one output connected to one second input of the adder 53.
- the adder 53 has an output connected to the output terminal 51 of the time interpolation device to provide it with an interpolated luminance value L (IX ′, IY ′, T i ) corresponding to the pixel at interpolate, with coordinates (IX ', IY', T i ), and calculated according to formula (9).
- These luminance values can be used in real time, as they are calculated, or else be stored in a memory of the frame, not shown.
- the invention is applicable in real time, in particular to devices for changing the standard for television frames, and for the restitution of frames transmitted at very low bit rate with the suppression of a certain number of frames.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Television Systems (AREA)
- Ultra Sonic Daignosis Equipment (AREA)
- Apparatus For Radiation Diagnosis (AREA)
- Closed-Circuit Television Systems (AREA)
- Image Processing (AREA)
Abstract
The invention concerns a process for reconstituting the luminance values of a field (Tj) from the luminance values of the pixels of two known fields (Ta, Tb). It consists essentially in estimating a velocity vector (V) for each pixel (6) of a single field (Ti) corresponding to an instant Ti between Ta and Tb, or being Ta or Tb; determining successively for each pixel (G) of this image (Ti), called the pixel father, the co-ordinate of the centre (Fj) of a pixel to be interpolated (H), called the pixel son, corresponding to the centre (Cj) of the pixel father by a translation of which the vector is a function of the velocity vector (V) of the pixel father multiplied by the time Ti-Tj; associating successively with each pixel to be interpolated (H) a velocity vector constituted by the velocity vector (V) of its pixel father (G); determining in the two known fields (Ta, Tb) the co-ordinates and then the luminance of two points (A, B) corresponding to the centre (Fj) of the pixel to be interpolated (H) by a translation, in the plane of one of the known images (Ta, Tb), of which translation the vector is a function of the velocity vector associated with the pixel to be interpolated multiplied respectively by the durations Tj-Ta and Tb-Tj; determining a luminance valve for the pixel to be interpolated (H) by calculating a linear combination of the luminance values of these two points (A, B). Application to changes in the standard of television images and to the reconstitution of missing images in the low-output transmission of images with the elimination of certain images.
Description
Procédé et dispositif d'interpolation temporelle d'images. Method and device for temporal interpolation of images.
L'invention concerne un procédé d'interpolation temporelle d'images permettant de reconstituer les valeurs de luminance des pixels d'une image manquante dans une suite d'images représentant un même objet. Un tel procédé est utilisable, par exemple, pour une transmission d'images vidéo à très bas débit, consistant à ne transmettre que certaines trames, avec un codage réduisant le débit d'informations, et à restituer les trames non transmises, par une interpolation à partir des trames transmises et décodées. Il est utilisable aussi pour la conversion d'une suite d'images vidéo d'un standard ayant une fréquence de 50 Hz vers un standard ayant une fréquence de 60 Hz, ou réciproquement. Pour une telle conversion, la plupart des trames doivent être in- terpolées à partir des trames disponibles à la fréquence de 50 Hz, car les instants de prise de vue à la fréquence de 60 Hz ne coïncident pas, avec les instants de prise de vue à la fréquence de 50 Hz.The invention relates to a method of temporal interpolation of images making it possible to reconstruct the luminance values of the pixels of a missing image in a series of images representing the same object. Such a method can be used, for example, for transmission of video images at very low bit rate, consisting in transmitting only certain frames, with coding reducing the information bit rate, and in restoring the frames not transmitted, by interpolation. from the transmitted and decoded frames. It can also be used for converting a series of video images from a standard having a frequency of 50 Hz to a standard having a frequency of 60 Hz, or vice versa. For such a conversion, most of the frames must be interpolated from the frames available at the frequency of 50 Hz, since the instants of shooting at the frequency of 60 Hz do not coincide, with the instants of shooting at the frequency of 50 Hz.
L'interpolation a donc pour but de déterminer une valeur de luminance L(IX,IY,Tj) pour chaque pixel d'une trame à interpoler correspondant à un instant Tj, à partir des valeurs de luminance L(IX,IY,Ta) et L(IX,IY,Tb) des pixels de deux trames connues correspondant à des instants Ta et Tb tels que Tj. est compris entre Ta et Tb. Les pixels des trames sont repérés par les coordonnées (IX, IY) de leur centre dans un repère ortho-normé qui est commun pour toutes les trames.The purpose of the interpolation is therefore to determine a luminance value L (IX, IY, T j ) for each pixel of a frame to be interpolated corresponding to an instant T j , from the luminance values L (IX, IY, T a ) and L (IX, IY, T b ) of the pixels of two known frames corresponding to instants T a and T b such that T j . is between T a and T b . The pixels of the frames are identified by the coordinates (IX, IY) of their center in an ortho-normalized reference which is common for all the frames.
Une première classe de procédés d'interpolation temporelle est basée sur une interpolation linéaire sim
pie consistant à calculer, pour chaque pixel à interpoler, une combinaison linéaire de deux valeurs de luminance des pixels ayant des coordonnées homologues (IX, IY) dans les deux trames connues correspondant aux instants Ta et Tb , pondérées par les durées Tb-Tj et Tj-Ta , selon la formule :A first class of temporal interpolation methods is based on a simulated linear interpolation. pie consisting in calculating, for each pixel to be interpolated, a linear combination of two luminance values of the pixels having homologous coordinates (IX, IY) in the two known frames corresponding to the instants T a and T b , weighted by the durations T b -T j and T j -T a , according to the formula:
L(IX,IY,Tj) . L(IX,IY,Ta) + . L(IX,IY,T. )
L (IX, IY, T j ). L (IX, IY, T a ) +. L (IX, IY, T.)
Les coordonnées homologues sont exactement identiques si les deux trames Ta et Tb ont la même parité, et sont identiques à une demi-ligne près si elles ont des parités différentes.The homologous coordinates are exactly identical if the two frames T a and T b have the same parity, and are identical to the nearest half-line if they have different parities.
Cette classe de procédés permet une bonne restitution des zones fixes dans une suite de trames, car alors les valeurs de luminance utilisées pour l'interpolation correspondent effectivement à un même point de l'objet représenté par la suite de trames. Par contre, les zones en mouvement sont mal restituées et sont d'autant plus floues que la vitesse du mouvement est plus élevée. Une seconde classe de procédés prend en compte le mouvement de l'objet représenté par les deux trames connues. Ces procédés consistent à supposer que chaque point d'un objet en mouvement représenté par la suite de trames se déplace de la première trame connue à la seconde trame connue par une translation élémentaire à vitesse constante. Des procédés connus permettent de déterminer un vecteur vitesse
Y = (VX,VY) pour chaque pixel de la trame à interpoler. Ce vecteur traduit une translation élémentaire du pixel, qui ne correspond pas forcément à la vitesse de l'objet représenté mais correspond aux variations de luminance des pixels représentant cet objet.
Ces procédés de la seconde classe consistent ensuite à calculer une valeur de luminance interpolée pour chaque pixel, en tenant compte de deux déplacements de sens opposés respectivement dans les deux trames connues. Ces deux déplacements sont dans la direction du vecteur vitesse associé au pixel à interpoler, et ont respectivement un module proportionnel à l'intervalle de temps séparant la trame à interpoler et la trame connue considérée. Chaque valeur de luminance interpolée est donc calculée selon la formule :This class of methods allows good restitution of the fixed zones in a series of frames, because then the luminance values used for the interpolation effectively correspond to the same point of the object represented by the series of frames. On the other hand, the moving areas are poorly reproduced and are all the more blurred as the speed of the movement is higher. A second class of processes takes into account the movement of the object represented by the two known frames. These methods consist in supposing that each point of a moving object represented by the sequence of frames moves from the first known frame to the second known frame by an elementary translation at constant speed. Known methods make it possible to determine a speed vector Y = (VX, VY) for each pixel of the frame to be interpolated. This vector translates an elementary translation of the pixel, which does not necessarily correspond to the speed of the object represented but corresponds to the variations in luminance of the pixels representing this object. These second class methods then consist in calculating an interpolated luminance value for each pixel, taking into account two displacements of opposite directions respectively in the two known frames. These two displacements are in the direction of the speed vector associated with the pixel to be interpolated, and have respectively a modulus proportional to the time interval separating the frame to be interpolated and the known frame considered. Each interpolated luminance value is therefore calculated according to the formula:
L(IX,IY,Tj) =L (IX, IY, T j ) =
L(IX-VX .(Tj-Ta),IY-VY .(Tj-Ta),Ta)L (IX-VX. (T j -T a ), IY-VY. (T j -T a ), T a )
L(IX+VX .(Tb-Tj),IY+VY .(Tb-Tj),Tb)
L (IX + VX. (T b -T j ), IY + VY. (T b -T j ), T b )
Cette classe de procédés permet de restituer de façon plus précise les zones en mouvement, aussi bien que les zones fixes des trames à interpoler. Mais la mise en oeuvre de cette classe de procédés comporte une difficulté importante qui est la détermination d'un vecteur vitesse à associer à chaque pixel à interpoler. Un premier procédé connu, décrit par H.C. Bergman dans : Motion Adaptive Frame Interpolation 1984 InternationalThis class of processes makes it possible to reproduce more precisely the moving areas, as well as the fixed areas of the frames to be interpolated. However, the implementation of this class of methods involves an important difficulty which is the determination of a speed vector to be associated with each pixel to be interpolated. A first known process, described by H.C. Bergman in: Motion Adaptive Frame Interpolation 1984 International
Zurich Seminar on Digital Communications, consiste associer à chaque pixel à interpoler le vecteur vitesse estimé pour le pixel ayant les mêmes coordonnées dans la première trame connue. Cette association est toujours plus ou moins inexacte puisque dans les zones en mouvement ces deux pixels ne représentent pas un même point de l'objet en mouvement. Cette association n'est exacte que dans la mesure où des points voisins de l'objet en mouvement ont le même vecteur vitesse, ce qui n'est pas
forcément le cas, notamment si l'objet représenté subit une rotation. La fidélité de restitution des images varie donc, dans les zones en mouvement, en fonction du type de mouvement de ces zones. Un second procédé connu, décrit par M. Bierling et R. Thoma dans : Motion compensating field interpolation using a hierachically structured displacement estimator, consiste à estimer un vecteur vitesse pour chaque pixel de chaque trame à interpoler, indépendamment pour chaque trame à interpoler. Cette estimation est faite à partir du même couple d'images connues, pour toutes les trames à interpoler correspondant à des instants compris entre Ta et Tb , mais elle tient compte de la durée des intervalles de temps séparant la trame à interpoler et les images connues, par conséquent le vecteur vitesse associé à chaque pixel à interpoler a une valeur beaucoup plus précise que celle associée par le procédé décrit précédemment. La fidélité de restitution des trames dans les zones en mouvement est donc rendue indépendante du type de mouvement. Par contre, ce second procédé a pour inconvénient de multiplier le temps de calcul nécessaire pour l'estimation des vecteurs vitesses, puisqu'il est proportionnel au nombre de trames à interpoler comprises entre les deux trames connues.Zurich Seminar on Digital Communications, consists in associating with each pixel to interpolate the speed vector estimated for the pixel having the same coordinates in the first known frame. This association is always more or less inaccurate since in moving areas these two pixels do not represent the same point on the moving object. This association is only exact insofar as neighboring points of the moving object have the same velocity vector, which is not necessarily the case, especially if the object shown is rotated. The fidelity of image restitution therefore varies, in moving areas, depending on the type of movement of these areas. A second known method, described by M. Bierling and R. Thoma in: Motion compensating field interpolation using a hierachically structured displacement estimator, consists in estimating a speed vector for each pixel of each frame to be interpolated, independently for each frame to be interpolated. This estimate is made from the same pair of known images, for all the frames to be interpolated corresponding to instants between T a and T b , but it takes account of the duration of the time intervals separating the frame to be interpolated and the known images, therefore the speed vector associated with each pixel to be interpolated has a much more precise value than that associated by the method described above. The fidelity of restitution of the frames in the moving areas is therefore made independent of the type of movement. On the other hand, this second method has the drawback of multiplying the computation time necessary for the estimation of the speed vectors, since it is proportional to the number of frames to be interpolated comprised between the two known frames.
Le but de l'invention est de proposer un procédé d'interpolation temporelle fournissant une bonne fidélité de restitution des trames dans les zones en mouvement, quel que soit le type de mouvement, sans nécessiter un temps de calcul important pour l'estimation des vecteurs vitesses des pixels des trames à interpoler.The object of the invention is to propose a temporal interpolation method providing good fidelity of restitution of the frames in the moving areas, whatever the type of movement, without requiring a significant computation time for the estimation of the vectors. pixel speeds of the frames to be interpolated.
L'objet de l'invention est un procédé appartenant à la seconde classe et qui consiste essentiellement à estimer un vecteur vitesse pour chaque pixel d'une
trame unique qui est appelée trame porteuse du mouvement, qui peut être l'une des deux trames connues, puis à déterminer, dans chacune des trames à interpoler, les pixels dits pixels fils, qui ont un vecteur vitesse égal au vecteur vitesse d'un pixel dit pixel père correspondant à un même point de l'objet représenté par la suite de trames, ce point étant supposé se déplacer avec le même vecteur vitesse pendant l'intervalle de temps de Ta à Tb. Naturellement le procédé selon l'invention est applicable aussi à des images qui ne sont pas des trames entrelacées.The object of the invention is a method belonging to the second class and which essentially consists in estimating a speed vector for each pixel of a single frame which is called motion-carrying frame, which can be one of the two known frames, and then to determine, in each of the frames to be interpolated, the pixels known as child pixels, which have a speed vector equal to the speed vector of a pixel called parent pixel corresponding to the same point of the object represented by the sequence of frames, this point being assumed to move with the same speed vector during the time interval from T a to T b . Naturally, the method according to the invention is also applicable to images which are not interlaced frames.
Selon l'invention, un procédé d'interpolation temporelle d'images, pour déterminer une valeur de lumi- nance interpolée pour chaque pixel d'une image dite image à interpoler, à partir des valeurs de luminance des pixels d'une première et d'une seconde image dites images connues, prises à des instants Ta et Tb respectivement, Tj étant compris entre Ta et Tb ; consistant à : - associer les valeurs des composantes d'un vecteur vitesse à chaque pixel de l'image à interpoler, dit pixel à interpoler ;According to the invention, a method of temporal interpolation of images, for determining a value of interpolated luminance for each pixel of an image called image to interpolate, from the luminance values of the pixels of a first and of d 'a second image called known images, taken at times T a and T b respectively, T j being between T a and T b ; consisting in: associating the values of the components of a speed vector with each pixel of the image to be interpolated, said pixel to be interpolated;
- déterminer dans les deux images connues les coordonnées de deux points appelés points de base de l'interpolation temporelle, chacun de ces deux points correspondant au centre du pixel à interpoler, par une translation dans le plan de l'une des images connues, translation dont le vecteur est fonction du vecteur vitesse associé au pixel à interpoler, multiplié respectivement par les durées Tj-Ta et Tb-Tj ;- determine in the two known images the coordinates of two points called base points of the temporal interpolation, each of these two points corresponding to the center of the pixel to be interpolated, by a translation in the plane of one of the known images, translation whose vector is a function of the speed vector associated with the pixel to be interpolated, multiplied respectively by the durations T j -T a and T b -T j ;
- déterminer la valeur de luminance de chacun des deux points de base par une interpolation spatiale entre des pixels voisins de chacun de ces points de base, respectivement dans les deux images connues ;
- déterminer une valeur de luminance pour le pixel à interpoler, en calculant une combinaison linéaire des deux valeurs de luminance des points de base,' pondérées par les durées Tj-Ta et Tb-Tj respectivement ; est caractérisé en ce que, pour associer les composantes d'un vecteur vitesse à chaque pixel à interpoler, il consiste à :- determining the luminance value of each of the two base points by spatial interpolation between pixels neighboring each of these base points, respectively in the two known images; - determining a luminance value for the pixel to be interpolated, by calculating a linear combination of the two luminance values of the base points, 'weighted by the durations T j -T a and T b -T j respectively; is characterized in that, to associate the components of a speed vector with each pixel to be interpolated, it consists in:
- estimer par un procédé classique les composantés d'un vecteur vitesse pour chaque pixel d'une seule image, dite porteuse du mouvement, correspondant à un instant Ti. compris entre Ta et Tb , ou étant Ta ou- Estimate by a conventional process the components of a speed vector for each pixel of a single image, called the carrier of the movement, corresponding to an instant T i . between T a and T b , or being T a or
Tb;T b ;
- déterminer, successivement pour chaque pixel de l'image porteuse, dit pixel père, les coordonnées du centre d'un pixel à interpoler, dit pixel fils, correspondant au centre du pixel père par une translation dont le vecteur est fonction du vecteur vitesse du pixel père, multiplié par la durée Ti-Tj ; - associer, successivement à chaque pixel à interpoler, un vecteur vitesse constitué par le vecteur vitesse de son pixel père ou de l'un de ses pixels pères, s'il existe au moins un pixel père pour ce pixel à interpoler. L'invention sera mieux comprise et d'autres détails apparaîtront à l'aide de la description ci- dessous et des figures l'accompagnant :- successively determining for each pixel of the carrier image, known as the father pixel, the coordinates of the center of a pixel to be interpolated, known as the child pixel, corresponding to the center of the father pixel by a translation whose vector is a function of the speed vector of the parent pixel, multiplied by the duration T i -T j ; - successively associating each pixel to be interpolated with a speed vector consisting of the speed vector of its parent pixel or one of its parent pixels, if there is at least one parent pixel for this pixel to be interpolated. The invention will be better understood and other details will appear with the aid of the description below and the accompanying figures:
- la figure 1 illustre le principe de la seconde classe de procédés connus ; - la figure 2 illustre le procédé selon l'invention ;- Figure 1 illustrates the principle of the second class of known methods; - Figure 2 illustrates the method according to the invention;
- la figure 3 représente un organigramme illustrant le procédé selon l'invention ;- Figure 3 shows a flowchart illustrating the method according to the invention;
- les figures 4 et 7 représentent deux organi
grammes illustrant une première variante de mise en oeuvre du procédé selon l'invention ;- Figures 4 and 7 show two organi grams illustrating a first variant implementation of the method according to the invention;
- la figure 5 représente une partie de cet organigramme ; - la figure 6 illustre le calcul réalisé conformément à l'organigramme de la figure 5 ;- Figure 5 shows a part of this flowchart; - Figure 6 illustrates the calculation performed in accordance with the flow diagram of Figure 5;
- les figures 8 et 9 représentent un organigramme d'une deuxième variante de la mise en oeuvre du procédé selon l'invention ; - les figures 10 et 11 représentent un organigramme d'une troisième variante de la mise en oeuvre du procédé selon l'invention ;- Figures 8 and 9 show a flow diagram of a second variant of the implementation of the method according to the invention; - Figures 10 and 11 show a flow diagram of a third variant of the implementation of the method according to the invention;
- les figures 12 et 15 représentent le schéma synoptique d'un exemple de réalisation d'un dispositif pour la mise en oeuvre du procédé selon l'invention ;- Figures 12 and 15 show the block diagram of an exemplary embodiment of a device for implementing the method according to the invention;
- les figures 13, 14, 16 représentent un schéma synoptique plus détaillé de trois parties de cet exemple de réalisation.- Figures 13, 14, 16 show a more detailed block diagram of three parts of this embodiment.
Dans l'exemple représenté sur la figure 1, une trame à interpoler, appelée trame Tj car elle correspond à un instant Tj , est à interpoler à partir d'une première et d'une seconde trame connues appelées respectivement trame Ta et trame Tb car elles corres^pondent à un instant Ta qui précède Tj et à un instant Tb qui suit Tj, Toutes ces trames sont repérées dans un même repère ortho-normé PXY ayant pour unités les dimensions d'un pixel. Des points ayant des coordonnées (X, Y) identiques sont différenciés par les instants correspondant aux trames où sont situés ces points. Dans ce qui suit, on distinguera les points et les pixels, chaque point de trame a des dimensions infiniment petites alors que chaque pixel a des dimensions finies déterminées par les caractéristiques de l'échantillonnage. Les trames connues sont fournies par une source de signaux vidéo telle
qu'une caméra de télévision classique suivie d'un convertisseur analogique-numérique classique. Chaque pixel est repéré par les coordonnées de son centre et il est représenté par un carré en pointillé. Chacun a une valeur de luminance égale à la moyenne des luminances de tous les points contenus dans ce pixel. Par hypothèse, chaque pixel à interpoler, centré sur un point Mj dans la trame à interpoler Tj , possède un vecteur vitesse associé
Il existe alors dans les trames connues Ta et Tb deux points Ma et Mb ayant des coordonnées homologes à celles de Mj et qui sont chacun le centre d'un pixel représenté par un carré en pointillés.In the example shown in FIG. 1, a frame to be interpolated, called frame T j because it corresponds to an instant T j , is to be interpolated from a first and a second known frame called respectively frame T a and frame T b because they correspond to an instant Ta which precedes T j and to an instant T b which follows T j , All these frames are identified in the same ortho-normed reference frame PXY having the dimensions of a pixel as units. Points having identical (X, Y) coordinates are differentiated by the instants corresponding to the frames where these points are located. In what follows, we will distinguish points and pixels, each grid point has infinitely small dimensions while each pixel has finite dimensions determined by the characteristics of the sampling. The known frames are supplied by a source of video signals such as than a conventional television camera followed by a conventional analog-to-digital converter. Each pixel is identified by the coordinates of its center and is represented by a dotted square. Each has a luminance value equal to the average of the luminances of all the points contained in this pixel. By assumption, each pixel to be interpolated, centered on a point M j in the frame to be interpolated T j , has an associated speed vector There then exist in the known frames T a and T b two points M a and M b having coordinates which are homologous to those of M j and which are each the center of a pixel represented by a dotted square.
La première classe de procédés connus consiste à calculer la valeur de luminance du pixel à interpoler, en combinant linéairement les valeurs de luminance des pixels centrés sur Mb et sur Ma . Il y a une erreur due au fait que dans la trame Tb l'objet représenté est déplacée, par rapport à la trame Tj , dans la direction, et dans le sens du vecteur
tandis que. dans la trame Ta au contraire, l'objet représenté est déplacé, dans la direction et dans le sens opposé au vecteur
La seconde classe de procédés connus consiste à calculer une valeur de luminance interpolée à partir des valeurs de luminance d'un point B de la trame Tb et d'un point A de la trame Ta , déterminés en tenant compte d'une translation de l'objet dans les trames Ta et Tb , par rapport à la trame Tj . Le point A est déduit de Ma per une translation -
(Tj-Ta) et le point B est déduit deThe first class of known methods consists in calculating the luminance value of the pixel to be interpolated, by linearly combining the luminance values of the pixels centered on M b and on M a . There is an error due to the fact that in the frame T b the object represented is displaced, with respect to the frame T j , in the direction, and in the direction of the vector while. in the frame T a on the contrary, the object represented is moved, in the direction and in the direction opposite to the vector The second class of known methods consists in calculating an interpolated luminance value from the luminance values of a point B of the frame T b and a point A of the frame T a , determined by taking into account a translation of the object in the frames T a and T b , with respect to the frame T j . The point A is deduced from M a per a translation - (T j -T a ) and point B is deduced from
Mb par une translation :
(Tb-Tj), car tout point d'un objet représenté par la suite de trames est supposé garder une vitesse constante entre les instants Ta et Tb .M b by a translation: (T b -T j ), because any point of an object represented by the sequence of frames is supposed to keep a constant speed between the instants T a and T b .
Les points A et B sont appelés, dans ce qui suit, points de base de l'interpolation temporelle. Le procédé selon l'invention est basé sur la même hypothèse.
La figure 2 illustre l'étape du procédé selon l'invention consistant à associer un vecteur vitesse
à un pixel à interpoler, centré sur un point Fj de la trame à interpoler Tj . Dans cet exemple, il n'y a qu'une seule trame Tj à interpoler, mais dans d'autres cas il peut y avoir plusieurs trames à interpoler, correspondant à des instants compris entre Ta et Tb . Pour toutes les trames à interpoler entre Ta et Tb , les vecteurs vitesses associés sont déduits des vecteurs vitesses des pixels d'une unique trame Ti , appelée trame porteuse du mouvement, correspondant à un instant compris entre Ta et Tb ou pouvant être Ta ou Tb . Les calculs nécessaires pour déterminer les vecteurs vitesses des pixels de la trame porteuse sont réalisés une seule fois quel que soit le nombre des trames à interpoler entre les instants Ta etPoints A and B are called, in what follows, basic points of the temporal interpolation. The method according to the invention is based on the same assumption. FIG. 2 illustrates the step of the method according to the invention consisting in associating a speed vector to a pixel to be interpolated, centered on a point F j of the frame to be interpolated T j . In this example, there is only one frame T j to be interpolated, but in other cases there may be several frames to be interpolated, corresponding to times between T a and T b . For all the frames to be interpolated between T a and T b , the associated speed vectors are deduced from the speed vectors of the pixels of a single frame T i , called the frame carrying the motion, corresponding to an instant between T a and T b or can be T a or T b . The calculations necessary to determine the speed vectors of the pixels of the carrier frame are carried out only once regardless of the number of frames to be interpolated between the instants T a and
Tb .T b .
Chaque pixel de la trame Ti porteuse de mouvement est considéré comme le père d'un pixel unique, appelé pixel fils, dans la trame à interpoler Tj , ces deux pixels étant supposés représenter un même point de l'objet en mouvement. Ce point de l'objet en mouvement a un vecteur vitesse qui est connu dans la trame Ti . Ce point est supposé garder ce même vecteur vitesse à tous les instants compris entre Ta et Tb alors qu'il est représenté par une suite de pixels ayant des coordonnées différentes et qui sont tous les fils d'un même pixel père de la trame Ti . Le procédé selon l'invention consiste à déterminer dans chaque trame à interpoler Tj , le centre d'un pixel fils correspondant à un pixel père donné dans la trame Ti porteuse du mouvement, puis à attribuer à ce pixel fils un vecteur vitesse égal au vecteur vitesse de son pixel père, où de l'un de ses pixels pères.
Par exemple, sur la figure 2, un pixel G centré sur le point Ci de la trame Ti a pour vecteur vitesse un vecteur
connu. Il a un pixel fils H dans la trame Tj , qui lui correspond approximativement par une translation de vecteur
.(Ti-Tj) à partir d'un point Cj ayant, dans la trame Tj , des coordonnées homologues à celles du point Ci dans la trame Ti . Cette translation fait correspondre exactement un point Ej au point Cj . En général, le point Ej ne coïncide pas avec le centre d'un pixel. Le procédé consiste alors à prendre comme pixel fils le pixel de la trame Ti ayant un centre Fj le plus proche du point Ej , en prenant la valeur entière la plus proche pour chacune des coordonnées. Le vecteur vitesse
du pixel père G est alors associé à ce pixel fils H.Each pixel of the frame T i carrying motion is considered to be the father of a single pixel, called the child pixel, in the frame to be interpolated T j , these two pixels being supposed to represent the same point of the moving object. This point of the moving object has a speed vector which is known in the frame T i . This point is supposed to keep this same speed vector at all times between T a and T b while it is represented by a series of pixels having different coordinates and which are all the children of the same pixel father of the frame T i . The method according to the invention consists in determining in each frame to interpolate T j , the center of a child pixel corresponding to a father pixel given in the frame T i carrying the movement, then in assigning to this child pixel an equal speed vector at the velocity vector of its parent pixel, or of one of its parent pixels. For example, in FIG. 2, a pixel G centered on the point C i of the frame T i has for vector speed a vector known. It has a child pixel H in the frame T j , which corresponds approximately to it by a vector translation (T i -T j ) from a point C j having, in the frame T j , coordinates homologous to those of the point C i in the frame T i . This translation makes a point E j correspond exactly to point C j . In general, the point E j does not coincide with the center of a pixel. The method then consists in taking as pixel son the pixel of the frame T i having a center F j closest to the point E j , by taking the nearest integer value for each of the coordinates. The speed vector of the father pixel G is then associated with this child pixel H.
Il est à remarquer que certains pixels de la trame Ti porteuse du mouvement n'ont pas de pixels fils, par exemple les pixels situés en bordure de la trame porteuse n'ont pas de pixels fils lorsque le vecteur vitesse
est dirigé vers l'intérieur de la trame porteuse. Il est à remarquer aussi qu'un pixel de la trame à interpoler Tj peut être le pixel fils de plusieurs pixels pères simultanément. Par exemple, si deux pixels pères ont respectivement deux vecteurs vitesses non colinéaires, il peut arriver que les deux vecteurs de translation
correspondant à ces vecteurs vitesses convergent dans un même pixel fils. Ces cas particuliers sont traités différemment selon trois variantes de mise en oeuvre du procédé selon l'invention, qui seront décrites plus loin.It should be noted that certain pixels of the frame T i carrying the movement do not have child pixels, for example the pixels located at the edge of the carrier frame do not have child pixels when the speed vector is directed towards the inside of the carrier frame. It should also be noted that a pixel of the frame to be interpolated T j can be the child pixel of several parent pixels simultaneously. For example, if two parent pixels have respectively two non-collinear velocity vectors, it may happen that the two translation vectors corresponding to these velocity vectors converge in the same child pixel. These particular cases are treated differently according to three alternative embodiments of the method according to the invention, which will be described later.
Dans un cas particulier, la trame porteuse Ti considérée est la trame Ta ou la trame Tb . Si par exempie, la trame porteuse considérée est la trame Tb , l'estimation des vecteurs vitesses de ses pixels peut
consister à calculer, par un procédé connu, la translation élémentaire subie pour chaque point de l'objet entre la tramée Ta et la trame Tb , en déduire un vecteur translation élémentaire (DX,DY) pour chaque pixel de la trame Tb , puis calculer un vecteur vitesse
pour chacun de ces pixels, selon la formule : - (3)
La figure 3 représente un organigramme des étapes essentielles du procédé selon l'invention, quelle que soit la variante de mise en oeuvre qui est considérée. Cet organigramme représente les étapes du procédé d'interpolation temporelle d'une seule trame à interpoler, correspondant à l'instant Tj . Pour chaque trame à interpoler comprise aussi dans l'intervalle (Ta , Tb) les mêmes étapes sont à réaliser. La figure 3 ne mentionne pas l'étape de détermination des vecteurs vitesses des Dixels de la trame Dorteuse Ti car c'est une étaoe qui est réalisée une seule fois pour toutes les trames à interpoler situées entre les deux traces connues correspondant aux instants Ta et Tb . La trame pour laquelle l'estimation des vecteurs vitesses est réalisée peut être la trame Ta ou la trame Tb ou une trame dont les valeurs de luminance sont inconnues mais qui correspond à un instant Ti compris entre Ta et Tb . Par exemple elle peut être constituée par l'une des trames à interpoler, l'essentiel étant d'utiliser un procédé d'estimation de vitesse permettant d'obtenir une valeur exacte des composantes du vecteur vitesse peur chaque pixel de cette trame. De nombreux procédés d'estimation de vitesse peuvent être utilisés. Ceux qui réalisent la détermination par bloc de pixels ou pixel par pixel conviennent mieux que ceux réalisant la détermination par extraction des caractéristiques de la trame, car ils
permettent d'obtenir un champ de vecteurs vitesse plus dense et donc une plus grande précision pour chacun des pixels. Par exemple, il est possible d'appliquer le procédé d'estimation de vitesse décrit par : NETRAVALL et ROBBINS dans le brevet US 4 383 272.In a particular case, the carrier frame T i considered is the frame T a or the frame T b . If, for example, the carrier frame considered is the frame T b , the estimation of the speed vectors of its pixels can consist of calculating, by a known process, the elementary translation undergone for each point of the object between the screen T a and the frame T b , deducing therefrom an elementary translation vector (DX, DY) for each pixel of the frame T b , then calculate a velocity vector for each of these pixels, according to the formula: - (3) FIG. 3 represents a flow diagram of the essential steps of the method according to the invention, whatever the variant of implementation which is considered. This flowchart represents the steps of the time interpolation method of a single frame to be interpolated, corresponding to the instant T j . For each frame to be interpolated also included in the interval (T a , T b ) the same steps are to be carried out. FIG. 3 does not mention the step of determining the speed vectors of the Dixels of the Dorteuse frame T i because it is a step which is carried out only once for all the frames to be interpolated situated between the two known traces corresponding to the instants T a and T b . The frame for which the estimation of the speed vectors is carried out can be the frame T a or the frame T b or a frame whose luminance values are unknown but which corresponds to an instant T i between T a and T b . For example, it can be constituted by one of the frames to be interpolated, the main thing being to use a speed estimation method making it possible to obtain an exact value of the components of the speed vector for each pixel of this frame. Many methods of speed estimation can be used. Those carrying out the determination by block of pixels or pixel by pixel are more suitable than those carrying out the determination by extraction of the characteristics of the frame, because they allow to obtain a denser velocity vector field and therefore greater precision for each of the pixels. For example, it is possible to apply the speed estimation method described by: NETRAVALL and ROBBINS in US patent 4,383,272.
Comme mentionné sur la figure 3, le procédé selon l'invention comporte deux phases principales. Une première phase consiste à balayer les pixels de la trame porteuse Ti et à déterminer un pixel fils, s'il en existe un, dans la trame à interpoler Tj , pour chaque pixel de la trame porteuse. Lorsque tous les pixels de la trame porteuse ont été balayés, une deuxième phase consiste ensuite à balayer successivement tous les pixels de la trame à interpoler Tj ; à associer un vecteur vitesse
à chaque pixel de cette trame à interpoler, en fonction du vecteur vitesse du pixel père ou des pixels pères correspondant au pixel à interpoler considéré, s'il existe au moins un pixel père ; à déterminer, pour chaque pixel à interpoler, deux points de base de l'ïnterpolation temporelle, dans les deux trames connues Ta et Tb ; à déterminer la luminance de ces deux points de base par une interpolation spatiale dans les deux trames connues Ta et Tb , lorsque les points de base ne sont pas les centres de pixels de ces trames connues ; et enfin à déterminer une valeur de luminance interpolée, pour le pixel à interpoler considéré, en combinant linéairement les valeurs de luminance des deux points de base conformément à la formule (2).As mentioned in FIG. 3, the method according to the invention comprises two main phases. A first phase consists in scanning the pixels of the carrier frame T i and in determining a child pixel, if there is one, in the frame to be interpolated T j , for each pixel of the carrier frame. When all the pixels of the carrier frame have been scanned, a second phase then consists in successively scanning all the pixels of the frame to be interpolated T j ; to associate a speed vector to each pixel of this frame to be interpolated, as a function of the speed vector of the father pixel or of the parent pixels corresponding to the pixel to be interpolated considered, if there is at least one father pixel; determining, for each pixel to be interpolated, two base points of the temporal interpolation, in the two known frames T a and T b ; determining the luminance of these two base points by spatial interpolation in the two known frames T a and T b , when the base points are not the pixel centers of these known frames; and finally to determine an interpolated luminance value, for the pixel to be interpolated considered, by linearly combining the luminance values of the two base points in accordance with formula (2).
La figure 4 représente un organigramme de la première phase d'une première variante de mise en oeuvre du procédé selon l'invention. Dans cette variante, le cas où un pixel à interpoler possède plusieurs pixels pères est traité en sélectionnant le pixel père qui est le meilleur. Le critère est la valeur d'une fonction appe
lée DFD qui est égale à la valeur absolue de la différence des valeurs de luminance des deux points de base A et B. La sélection du meilleur pixel père consiste à comparer entre elles les valeurs de la fonction DFD obtenues en associant au pixel à interpoler le vecteur vitesse de chacun des pixels pères successivement. Le pixel père considéré comme le meilleur, est celui dont le vecteur vitesse donne une valeur minimale à la fonction DFD. D'autre part, selon cette première variante, le cas d'un pixel orphelin, c'est-à-dire n'ayant aucun pixel père dans la trame porteuse du mouvement, est traité en déterminant un vecteur vitesse interpolé à partir des vecteurs vitesse associés aux pixels voisins dans la trame à int erpole r, dans la mesure où il s ne sont pas orphelins. La valeur de la fonction DFD est utilisée comme critère pour détecter les pixels qui sont orphelins. Dans le cas où il n'est pas possible non plus d'associer un vecteur vitesse cette variante consiste à associer un vecteur vitesse nul.FIG. 4 represents a flowchart of the first phase of a first variant implementation of the method according to the invention. In this variant, the case where a pixel to be interpolated has several parent pixels is treated by selecting the parent pixel which is the best. The criterion is the value of a function called The DFD which is equal to the absolute value of the difference in the luminance values of the two base points A and B. The selection of the best parent pixel consists in comparing the values of the DFD function obtained by associating with the pixel to be interpolated the velocity vector of each of the parent pixels successively. The parent pixel considered to be the best, is the one whose speed vector gives a minimum value to the DFD function. On the other hand, according to this first variant, the case of an orphan pixel, that is to say having no father pixel in the frame carrying the movement, is treated by determining a speed vector interpolated from the vectors velocity associated with the neighboring pixels in the frame to be entered, insofar as they are not orphans. The value of the DFD function is used as a criterion to detect pixels which are orphaned. In the case where it is not possible either to associate a speed vector this variant consists in associating a zero speed vector.
La première phase de la première variante débute par une initialisation d'une mémoire M2 destinée à stocker la valeur minimale de la fonction DFD déterminée pour chaque pixel de la trame à interpoler Tj . elle est initialisée avec une valeur constante égale à 255 qui correspond à la valeur maximale de la luminance des trames et donc aussi de la DFD. La suite des trames considérée est constituée en fait par une suite de trames entrelacées, chaque trame étant considérée comme une trame indépendante. Chaque trame comporte un nombre M de pixels par ligne et un nombre N de lignes. La mémoire M2 a une capactié de MxN octets.The first phase of the first variant begins with an initialization of a memory M2 intended to store the minimum value of the DFD function determined for each pixel of the frame to be interpolated T j . it is initialized with a constant value equal to 255 which corresponds to the maximum value of the luminance of the frames and therefore also of the DFD. The series of frames considered is in fact constituted by a series of interlaced frames, each frame being considered as an independent frame. Each frame comprises a number M of pixels per line and a number N of lines. Memory M2 has a capacity of MxN bytes.
Puis la coordonnée IY est initialisée à zéro. Puis elle est incrémentée d'une unité et la coordonnée
IX est initialisée à zéro. Puis la coordonnée IX est incrémentée d'une unité. Les coordonnées (IX, IY) désignent le centre Ci d'un pixel de la trame Ti porteuse du mouvement, et qui peut être un pixel père. Puis le vecteur
IX,IY,Ti), qui est le vecteur vitesse de ce pixel, est lu dans une mémoire MI à une adresse correspondant aux coordonnées de ce pixel. La mémoire MI est une mémoire ayant une capacité de MxN cellules et qui est chargée préalablement avec les valeurs des composantés du vecteur vitesse de tous les pixels de la trame porteuse de mouvement utilisée pour l'interpolation des trames manquantes dans l'intervalle Ta , Tb .Then the IY coordinate is initialized to zero. Then it is incremented by one and the coordinate IX is initialized to zero. Then the IX coordinate is incremented by one. The coordinates (IX, IY) designate the center C i of a pixel of the frame T i carrying the movement, and which can be a parent pixel. Then the vector IX, IY, T i ), which is the speed vector of this pixel, is read in a memory MI at an address corresponding to the coordinates of this pixel. The memory MI is a memory having a capacity of M × N cells and which is loaded beforehand with the values of the components of the speed vector of all the pixels of the motion-carrying frame used for the interpolation of the missing frames in the interval T a , T b .
Puis les coordonnées d'un point Ej correspondant au point Cj sont déterminées selon la formule :
=
j -
V(IX,IY).(Ti-Tj) (4)Then the coordinates of a point E j corresponding to point C j are determined according to the formula: = d - V (IX, IY). (T i -T j ) (4)
Puis les coordonnées du centre Fj d'un pixel fils sont déterminées en prenant la partie entière des composantes du vecteur :
(0,5 ; 0,5) où (0,5 ; 0,5) permet de trouver la valeur entière la plus proche des composantes, et pas seulement la partie entière de celles-ci ; et où
est un vecteur de correction de parité de trames, ayant pour composantes : (0,5 ; 0,5) si les trames Ti et Tj sont des trames ayant la même parité ;Then the coordinates of the center F j of a child pixel are determined by taking the integer part of the components of the vector: (0,5; 0,5) where (0,5; 0,5) makes it possible to find the integer value closest to the components, and not only the whole part of these; and or is a frame parity correction vector, having as components: (0.5; 0.5) if the frames T i and T j are frames having the same parity;
(0,5 ; 0) si la trame Ti est une trame impaire et la trame Tj est une trame paire ;(0.5; 0) if the frame T i is an odd frame and the frame T j is an even frame;
(0,5 ; 1) si la trame Ti est une trame paire et si la trame Tj est une trame imoaire.(0.5; 1) if the frame T i is an even frame and if the frame T j is a pictorial frame.
Le pixel à interpoler centré sur le point Fj est un pixel fils du pixel de coordonnée (IX, IY) dans la trame Ti . Le procédé consiste ensuite à déterminer les coordonnées de deux points de base d'interpolation tem
porelle, B et A, dans les trames Tb et Ta respectivement, selon les formules :The pixel to be interpolated centered on the point F j is a child pixel of the pixel of coordinate (IX, IY) in the frame T i . The method then consists in determining the coordinates of two basic interpolation points tem porelle, B and A, in the frames T b and T a respectively, according to the formulas:
Dans lesquelles le vecteur est un vecteur de
correction de parité de trames, ayant pour composantes : In which the vector is a vector of frame parity correction, having as components:
(0 ; 0) si la trame Ta et la trame Tj sont des trames ayant la même parité ;(0; 0) if the frame T a and the frame T j are frames having the same parity;
(0 ; 0,5) si la trame Ta est une trame impaire et si la trame Tj est une trame paire ;(0; 0.5) if the frame T a is an odd frame and if the frame T j is an even frame;
(0 ; -0,5) si la trame Ta est une trame paire et si la trame Tj est une trame impaire.(0; -0.5) if the frame T a is an even frame and if the frame T j is an odd frame.
Le vecteur
a des composantes analogues en fonction de la parité de la trame constituant la tramée Tj et de la parité de la trame constituant la trame Tb .The vector has analogous components as a function of the parity of the frame constituting the screen T j and the parity of the frame constituting the frame T b .
La première phase de la première variante consiste ensuite à calculer les valeurs de luminance,The first phase of the first variant then consists in calculating the luminance values,
L(
,Ta) et L(
Tb) aux points A et B selon un procédé de calcul qui sera détaillé plus loin et qui consiste en une interpolation spatiale combinant les valeurs de luminance de quatre pixels les plus proches du point A, respectivement du point B, lorsque ces points ne correspondent pas aux centres de pixels de la trame Ta et de la trame Tb . Puis elle consiste à calculer la valeur de la fonction DFD, qui est égale à la valeur absolue de la différence des luminances, aux points A et B déterminés pour ce vecteur vitesse
V.L ( , T a ) and L ( T b ) at points A and B according to a calculation method which will be detailed later and which consists of a spatial interpolation combining the luminance values of four pixels closest to point A, respectively of point B, when these points do not correspond not at the pixel centers of frame T a and frame T b . Then it consists in calculating the value of the DFD function, which is equal to the absolute value of the difference in luminances, at points A and B determined for this speed vector V.
Puis la valeur de la fonction DFD est comparée à une valeur de seuil fixée égale à 7 dans cet exemple. Si la fonction DFD est inférieure à la valeur de seuil, cela signifie que le pixel de coordonnée (IX, IY) dans la trame porteuse constitue un pixel père pour le pixel à interpoler centré sur le point Fj . Le procédé consiste
alors à lire dans la mémoire M2 une valeur DFD' à une adresse correspondant aux composantes du vecteur
j . Si la valeur DFD qui vient d'être trouvée pour le pixel père de coordonnée (IX, IY) dans la trame Ti , est infé- rieure à la valeur DFD' lue dans la mémoire M2, cela signifie que le pixel père qui vient d'être trouvé est meilleur car son vecteur vitesse rend plus petite la valeur de la fonction DFD. Son vecteur vitesse est donc retenu pour être associé au pixel fils centré sur le point Fj . Ce vecteur vitesse est inscrit dans une mémoire M1 à une adresse correspondant au pixel fils, c'est-à-dire correspondant aux composantes du vecteur
La mémoire M1 est une mémoire de MxN cellules destinée à stocker la valeur des composantes d'un vecteur vitesse associé, pour chaque pixel à interpoler. En outre la valeur de la fonction DFD qui vient d'être calculée est inscrite dans la mémoire M2 à l'adresse correspondant au pixel fils, à la place de la précédente valeur DFD' qui correspond à un autre pixel père ou qui est égale à la valeur d'initialisation.Then the value of the DFD function is compared with a fixed threshold value equal to 7 in this example. If the DFD function is less than the threshold value, this means that the coordinate pixel (IX, IY) in the carrier frame constitutes a parent pixel for the pixel to be interpolated centered on the point F j . The process consists then to read in the memory M2 a value DFD 'at an address corresponding to the components of the vector j . If the value DFD which has just been found for the parent pixel with coordinate (IX, IY) in the frame T i , is less than the value DFD 'read in the memory M2, this means that the parent pixel which comes to be found is better because its speed vector makes the value of the DFD function smaller. Its speed vector is therefore chosen to be associated with the child pixel centered on the point F j . This speed vector is written into a memory M1 at an address corresponding to the child pixel, that is to say corresponding to the components of the vector. The memory M1 is a memory of MxN cells intended to store the value of the components of an associated speed vector, for each pixel to be interpolated. In addition, the value of the DFD function which has just been calculated is written in the memory M2 at the address corresponding to the child pixel, in place of the previous DFD 'value which corresponds to another parent pixel or which is equal to the initialization value.
Il est à noter que dans le cas où le pixel fils n'avait pas déjà un ou plusieurs autres pixels pères, la valeur de la fonction DFD lue dans la mémoire M2 est égale à la valeur d'initialisation de la mémoire M2, c'est-à-dire 255.It should be noted that in the case where the child pixel did not already have one or more other parent pixels, the value of the DFD function read from the memory M2 is equal to the initialization value of the memory M2, c ' i.e. 255.
Dans le cas où la valeur calculée de la fonction DFD est supérieure à 7, alors le pixel de coordonnée (IX, IY) dans la trame Ti n'est pas considérée comme un pixel père, et la première phase se poursuit par un test de la valeur atteinte par la coordonnée IX.In the case where the calculated value of the DFD function is greater than 7, then the coordinate pixel (IX, IY) in the frame T i is not considered as a parent pixel, and the first phase continues with a test of the value reached by the coordinate IX.
Si la valeur de la fonction DFD calculée est supérieure à la valeur DFD' lue dans la mémoire M2, cela signifie que le pixel de coordonnée (IX, IY) dans la
trame Ti est un pixel père qui n'est pas meilleur qu'un pixel père trouvé précédemment et ayant fourni la valeur DFD' qui vient d'être lue dans la mémoire M2 , il est donc à rejeter. La première phase se poursuit par le test portant sur la coordonnée IX.If the value of the calculated DFD function is greater than the value DFD 'read in the memory M2, this means that the pixel of coordinate (IX, IY) in the frame T i is a father pixel which is not better than a father pixel found previously and having supplied the value DFD 'which has just been read in the memory M2, it is therefore to be rejected. The first phase continues with the test on the IX coordinate.
Si la coordonnée IX n'a pas atteint sa valeur maximale qui est M, les opérations précédentes sont réitérées à partir de l'incrémentation de IX. Si IX a atteint sa valeur maximale, la première phase se poursuit par un test portant sur la coordonnée IY. Si cette dernière n'a pas atteint sa valeur maximale N, les opérations précédentes sont réitérées à partir de l'incrémentation de IY, jusqu'à ce que IY atteigne N. La première phase, de la première variante, est alors terminée, et commence alors la deuxième phase de cette première variante.If the coordinate IX has not reached its maximum value which is M, the preceding operations are repeated from the incrementation of IX. If IX has reached its maximum value, the first phase continues with a test relating to the IY coordinate. If the latter has not reached its maximum value N, the preceding operations are repeated from the increment of IY, until IY reaches N. The first phase, of the first variant, is then completed, and then begins the second phase of this first variant.
La figure 5 représente un organigramme des opérations de calcul des valeurs de luminance L (
t, Ta) et deFIG. 5 represents a flow diagram of the operations for calculating the luminance values L ( t, T a ) and of
L(
PB,Tb) par interpolation spatiale ians les trames Ta et Tb resoectivement. La figure 6 illustre ce procédé de calcul pour la valeur de luminance L
,Ta). En général, le point A ne coïncide pas avec le centre d'un pixel de la trame Ta mais est situé entre les centres G1, G2, G3, G4 de quatre pixels. L'interpolation spatiale de la valeur de luminance au point A consiste tout d'abord à déterminer la partie entière des composantes du vecteur
pour constituer les coordonnées (XGa,YGa) du point G1. Les coordonnées du point G2 sont alors (XGa+1,YGa). Les coordonnées du point G3 sont alors (XGa,YGa+1). Les coordonnées du point G4 sont alors (XGa+1,YGa+1). Dans cet exemple de mise en oeuvre, le point G4 constitue le point de référence pour l'interpolation. Le procédé consiste ensuite à déterminer des coordonnées (ΔXa,ΔYa) pour le point A, relativement au point de référence G4. Ces coordonnées relatives sont données par la formule
(ΔXa, ΔYa) = (XGa,YGa) + (1,1) -
(7)L ( PB, T b ) by spatial interpolation in the frames T a and T b resoectively. Figure 6 illustrates this calculation method for the luminance value L , T a ). In general, the point A does not coincide with the center of a pixel of the frame T a but is located between the centers G1, G2, G3, G4 of four pixels. The spatial interpolation of the luminance value at point A firstly consists in determining the integer part of the components of the vector to constitute the coordinates (XG a , YG a ) of the point G1. The coordinates of the point G2 are then (XG a + 1, YG a ). The coordinates of point G3 are then (XG a , YG a +1). The coordinates of point G4 are then (XG a + 1, YG a +1). In this example of implementation, the point G4 constitutes the reference point for the interpolation. The method then consists in determining coordinates (ΔX a , ΔY a ) for point A, relative to the reference point G4. These relative coordinates are given by the formula (ΔX a , ΔY a ) = (XG a , YG a ) + (1.1) - (7)
Le procédé consiste ensuite à lire dans la mémoire MA des valeurs de luminance : L(XGa, YGa ),The method then consists in reading from the memory MA luminance values: L (XG a , YG a ),
L(XGa+1,YGa), L(XGa,YGa+1), L(XGa+1,YGa+1), correspondant aux pixels centrés sur les points G1 à G4, à des adresses correspondant aux coordonnées de ces points G1 à G4. Puis la valeur de luminance L(
,Ta) est calculée selon la formule :L (XG a + 1, YG a ), L (XG a , YG a +1), L (XG a + 1, YG a +1), corresponding to the pixels centered on the points G1 to G4, at corresponding addresses at the coordinates of these points G1 to G4. Then the luminance value L ( , T a ) is calculated according to the formula:
L
F ,Ta) = L(XGa+1,YGa+1).(1-ΔXa)(1-ΔYa) + L(XGa,YGa+1).ΔXa.(1-ΔYa)The F, T a ) = L (XG a + 1, YG a +1). (1-ΔX a ) (1-ΔY a ) + L (XG a , YG a +1) .ΔX a . (1-ΔY a )
+ L(XGa+1,YGa).(1-ΔXa).ΔYa (8)+ L (XG a + 1, YG a ). (1-ΔX a ) .ΔY a (8)
+ L(XGa.YGa).ΔXa.ΔYa.+0,5+ L (XGa.YG a ) .ΔX a .ΔY a . + 0.5
Le calcul de la valeur de luminance L(
,Tb) est réalisée selon une suite d'opérations tout à fait analogue.The calculation of the luminance value L ( , T b ) is carried out according to a sequence of operations quite similar.
La figure 7 représente l'organigramme de la seconde phase de la première variante de la mise en oeuvre du procédé selon l'invention. Cette seconde phase commence par une initialisation à zéro d'une coordonnée IY', puis une incrémentation d'une unité de cette coordonnée et une initialisation à zéro d'une seconde coordonnée IX'. Les coordonnées (IX', IY') sont les coordonnées du centre d'un pixel de la trame à interpoler Tj. Puis le procédé consiste à incrémenter la coordonnée IX' et à lire la valeur DFD (IX', IY') stockée dans la mémoire M2 à une adresse correspondant aux coordonnées (IX',IY'). La valeur lue est comparée à une valeur de seuil égale à la valeur 255 ayant servie à initialiser la mémoire M2 et qui est égale à la valeur maximale de la luminance.FIG. 7 represents the flowchart of the second phase of the first variant of the implementation of the method according to the invention. This second phase begins with an initialization at zero of a coordinate IY ', then an incrementation of one unit of this coordinate and an initialization at zero of a second coordinate IX'. The coordinates (IX ', IY') are the coordinates of the center of a pixel of the frame to be interpolated Tj. Then the method consists in incrementing the coordinate IX 'and in reading the value DFD (IX', IY ') stored in the memory M2 at an address corresponding to the coordinates (IX', IY '). The value read is compared with a threshold value equal to the value 255 having served to initialize the memory M2 and which is equal to the maximum value of the luminance.
Si la valeur lue n'est pas égale à 255, cela signifie qu'une valeur de la fonction DFD a été calculée précédemment pour ce pixel à interpoler, parce qu'il est le pixel fils d'un pixel de la trame porteuse de mouve
ment Ti. Un vecteur vitesse lui a donc été associé précédemment, au cours de la première phase du procédé. Ce vecteur vitesse est lu dans la mémoire M1 à l'adresse correspondant aux coordonnées (IX', IY') puis est utilisé pour calculer les vecteurs
et
conformément aux équations (5) et (6). Ces vecteurs
et
déterminent deux points de base A et B pour l'interpolation temporelle. Ils sont utilisés pour calculer les valeurs de luminance L
,Ta) et L( ,Tb ) par une interpolation
spatiale dans les trames Ta et Tb , conformément à l'organigramme représenté sur la figure 5 et décrit précédemment.If the value read is not equal to 255, this means that a value of the DFD function was previously calculated for this pixel to be interpolated, because it is the child pixel of a pixel of the motion-carrying frame. ment T i . A speed vector was therefore associated with it previously, during the first phase of the process. This speed vector is read in the memory M1 at the address corresponding to the coordinates (IX ', IY') and is then used to calculate the vectors and according to equations (5) and (6). These vectors and determine two base points A and B for the temporal interpolation. They are used to calculate the luminance values L , T a ) and L (, T b ) by an interpolation spatial in the frames T a and T b , in accordance with the flow diagram represented in FIG. 5 and described previously.
Si la valeur de la fonction DFD lue dans la mémoire M2 est restée égale à la valeur d'initialisation, 255, cela signifie que la première phase du procédé n'a jamais détecté le pixel de coordonnées (IX', IY') comme pixel fils d'un pixel père situé dans la trame porteuse du mouvement Ti. Le pixel à interpoler, de coordonnées (IX', IY') est donc un pixel orphelin et il est nécessaire de lui associer un vecteur vitesse par un autre moyen. Selon cette première variante, un vecteur vitesse est calculé en interpolant entre les vecteurs vitesse de quatre pixels voisins du pixel orphelin, dans la mesure où ils ne sont pas eux-mêmes des pixels orphelins. Ce calcul est réalisé en lisant dans la mémoire M2 les valeurs de la fonction DFD et en lisant dans la mémoire M1 les composantes du vecteur vitesse
pour les quatre points voisins dont les coordonnées sont : (IX',IY'-1), (IX'-1,IY'), (IX'+1,IY'), (IX',IY'+1)If the value of the DFD function read from the memory M2 remained equal to the initialization value, 255, this means that the first phase of the process has never detected the pixel of coordinates (IX ', IY') as a pixel son of a father pixel located in the carrier frame of the movement T i . The pixel to be interpolated, with coordinates (IX ', IY') is therefore an orphan pixel and it is necessary to associate a speed vector with it by another means. According to this first variant, a speed vector is calculated by interpolating between the speed vectors of four pixels neighboring the orphan pixel, insofar as they are not themselves orphan pixels. This computation is carried out by reading in the memory M2 the values of the function DFD and by reading in the memory M1 the components of the speed vector for the four neighboring points whose coordinates are: (IX ', IY'-1), (IX'-1, IY'), (IX '+ 1, IY'), (IX ', IY' + 1)
Puis la valeur du vecteur vitesse interpolée
est calculée selon la formule :
Then the value of the interpolated speed vector is calculated according to the formula:
V IX',IY')= (A00.
V(IX',IY') +
V IX ', IY') = (A 00 . V (IX ', IY') +
A01.
IX'-1,IY') + A10.V(IX'+1,IY') + A11
V(IX',IY'))
avec A00 = 0 si DFD(IX',IY'-1) = 255At 01 . IX'-1, IY ') + A 10 .V (IX' + 1, IY ') + A 11 V (IX ', IY')) with A 00 = 0 if DFD (IX ', IY'-1) = 255
A00 = 1 sinon.A 00 = 1 otherwise.
A01 : 0 si DFD(IX'-1,IY') = 255A 01 : 0 if DFD (IX'-1, IY ') = 255
A01 = 1 sinon. A10 = 0 si DFD(IX'+1,IY') = 255A 01 = 1 otherwise. A 10 = 0 if DFD (IX '+ 1, IY') = 255
A10 = 1 sinon.A 10 = 1 otherwise.
A11 = 0 si DFD(IX',IY'+1) = 255A 11 = 0 if DFD (IX ', IY' + 1) = 255
A11 = 1 sinon.A 11 = 1 otherwise.
Et
V (IX',IY') = (0,0) si A00 = A01 = A10 = A11 : 0, c'est-à-dire si les 4 pixels voisins sont aussi des pixels orphelins.And V (IX ', IY') = (0,0) if A 00 = A 01 = A 10 = A 11 : 0, that is to say if the 4 neighboring pixels are also orphan pixels.
Les vecteurs
et
sont ensuite calculés conformément aux formules (5) et (6) dans lesquelles le vecteur
est constitué par le vecteur interpolé
Puis les valeurs de luminance L(
A,Ta) et L(
,Tb) sont déterminées ensuite par une interpolation spatiale dans les trames Ta et Tb, conformément à l'organigramme de la figure 5 décrit précédemment. Puis 1= valeur de la fonction DFD est calculée pour les points de base A et B ainsi déterminés.Vectors and are then calculated according to formulas (5) and (6) in which the vector consists of the interpolated vector Then the luminance values L ( A, T a ) and L ( , T b ) are then determined by a spatial interpolation in the frames T a and T b , in accordance with the flow diagram of FIG. 5 described above. Then 1 = value of the DFD function is calculated for the base points A and B thus determined.
Si cette valeur de la fonction DFD est inférieure à la valeur de seuil, 7, cela signifie que le vecteur vitesse interpolé
S constitue une estimation convenable du vecteur vitesse du pixel orphelin considéré. Il peut donc être associé à ce pixel orphelin. Le procédé consiste alors à calculer la valeur de la luminance interpolée du pixel orphelin considéré, L(IX' ,IY' ,Tj) selon la formule (9).If this value of the DFD function is less than the threshold value, 7, this means that the speed vector interpolated S constitutes a suitable estimate of the speed vector of the orphan pixel considered. It can therefore be associated with this orphan pixel. The method then consists in calculating the value of the interpolated luminance of the orphan pixel considered, L (IX ', IY', T j ) according to formula (9).
Si la valeur de la fonction DFD est supérieure à la valeur de seuil, cela signifie que le vecteur vitesse interpolé ne convient pas et ne peut être associé au pixel orphelin considéré. En dernier recours, un vecteur vitesse nul est associé au pixel orphelin. Les deux points de base de l'interpolation temporelle, A et B,
ont alors les mêmes coordonnées (IX', IY') que le centre du pixel à interpoler, par conséquent les vecteurs
et sont tous les deux égaux et ont pour composantes (IX', IY'). Les valeurs de luminance L (
1a ) et L(
Tb) sont ensuite déterminées sans interpolation spatiale dans les trames Ta et Tb , car IX' et IY' sont des valeurs entières. Elles sont lues dans les mémoires MA et MB respectivement aux adresses correspondant à (IX', IY'). Puis la valeur de luminance interpoléeIf the value of the DFD function is greater than the threshold value, this means that the interpolated speed vector is not suitable and cannot be associated with the orphan pixel considered. As a last resort, a zero speed vector is associated with the orphan pixel. The two basic points of the temporal interpolation, A and B, then have the same coordinates (IX ', IY') as the center of the pixel to be interpolated, therefore the vectors and are both equal and have components (IX ', IY'). The luminance values L ( 1 a ) and L ( T b ) are then determined without spatial interpolation in the frames T a and T b , since IX 'and IY' are integer values. They are read in the memories MA and MB respectively at the addresses corresponding to (IX ', IY'). Then the interpolated luminance value
L(IX' ,IY' ,Tj) est calculée selon la formuleL (IX ', IY', T j ) is calculated according to the formula
Linterpolée=
The interpolated =
Chaque fois qu'une valeur de luminance interpolée L(IX' ,IY' ,Tj) a été calculée, cette valeur est fournie, par ex-emple, à une mémoire de la trame stockant les valeurs interpolées de la trame Tj en attendant une utilisation de ces valeurs de luminance. Puis la valeur de la coordonnée IX' est comparée à sa valeur maximale M pour déterminer si elle a atteint cette valeur maximale. Si elle ne l'a pas atteinte les opérations précédentes sont réitérées à partir de l'incrémentation de IX'. Si elle a atteint sa valeur maximale, la valeur de la seconde coordonnée IY' est comparée à sa valeur maximale N. Si elle n'a pas atteint sa valeur maximale, les opérations précédentes sont réitérées à partir de l'incrémentation de IY'. Si elle a atteint sa valeur maximale, cela signifie que tous les pixels à interpoler ont été balayés et que, par conséquent, le traitement d'interpolation temporelle de la trame Tj est terminée.Whenever an interpolated luminance value L (IX ', IY', T j ) has been calculated, this value is supplied, for example, to a memory of the frame storing the interpolated values of the frame T j in awaiting use of these luminance values. Then the value of the coordinate IX 'is compared with its maximum value M to determine whether it has reached this maximum value. If it has not reached it, the previous operations are repeated from the increment of IX '. If it has reached its maximum value, the value of the second coordinate IY 'is compared with its maximum value N. If it has not reached its maximum value, the preceding operations are repeated from the incrementation of IY'. If it has reached its maximum value, this means that all the pixels to be interpolated have been scanned and that, consequently, the temporal interpolation processing of the frame T j is finished.
La figure 8 représente un organigramme de la première phase du procédé selon l'invention, selon une deuxième variante de mise en oeuvre, permettant de simplifier les calculs et de supprimer la mémoire M2 car cette variante n'utilise pas la fonction DFD. La première pha
se débute par une initialisation de la mémoire M1 avec la valeur (255, 255) qui constitue la valeur maximale des composantes du vecteur vitesse associé à chaque pixel à interpoler. En outre l'ordonnée IY des pixels de la trame porteuse du mouvement Ti est initialisée à zéro. Puis cette ordonnée IY est incrémentée d'une unité, et l'abscisse IX des pixels de la trame porteuse du mouvement Ti est initialisée à zéro. Puis cette abscisse est incrémentée d'une unité. La valeur des composantes du vecteur vitesse
IX,IY,Ti) est lue dans la mémoire MI puis est utilisée pour calculer les composantes du vecteur
et les composantes du vecteur
j . Puis ce vecteur vitesse est inscrit dans la mémoire M1 à l'adresse correspondant aux composantes du vecteur
j,
c'est-à-dire à l'adresse correspondant aux coordonnées du pixel fils.FIG. 8 represents a flowchart of the first phase of the method according to the invention, according to a second variant of implementation, making it possible to simplify the calculations and to delete the memory M2 because this variant does not use the DFD function. The first pha begins with an initialization of the memory M1 with the value (255, 255) which constitutes the maximum value of the components of the speed vector associated with each pixel to be interpolated. In addition, the ordinate IY of the pixels of the frame carrying the movement T i is initialized to zero. Then this ordinate IY is incremented by one, and the abscissa IX of the pixels of the frame carrying the movement T i is initialized to zero. Then this abscissa is incremented by one. The value of the components of the speed vector IX, IY, T i ) is read in the memory MI then is used to calculate the components of the vector and the components of the vector j . Then this speed vector is written in the memory M1 at the address corresponding to the components of the vector j , that is to say at the address corresponding to the coordinates of the child pixel.
Puis la valeur de la coordonnée IX est comparée à sa valeur maximale M. Si celle-ci n'est pas atteinte les opérations précédentes sont réitérées à partir de l'incrémentation de IX. Si elle est atteinte, la valeur de la coordonnée IY est comparée à sa valeur maximale N. Si celle-ci est atteinte, la première phase est terminée et une seconde phase commence. Si IY n'a pas atteint sa valeur maximale N, les opérations précédentes sont réitérées à partir de l'incrémentation de IY.Then the value of the coordinate IX is compared with its maximum value M. If this is not reached the preceding operations are repeated from the incrementation of IX. If it is reached, the value of the IY coordinate is compared with its maximum value N. If this is reached, the first phase is ended and a second phase begins. If IY has not reached its maximum value N, the preceding operations are repeated from the increment of IY.
La figure 9 représente un organigramme de la seconde phase de la seconde variante de mise en oeuvre duprocédé selon l'invention. Cette seconde phase commence par une initialisation à zéro de la coordonnée IY' des pixels à interpoler. Puis elle consiste à incrémenter la coordonnée IY' et à initialiser à zéro la coordonnée IX'. Puis elle consiste à incrémenter d'une unité la coordonnée IX' et à lire le vecteur vitesse V(IX' ,IY' ,Tj) dans la mémoire M1 à une adresse correspondant aux coordonnées (IX' ,IY').
Les composantes de ce vecteur vitesse sont comparées chacune à la valeur 255 qui est la valeur initiale chargée dans la mémoire M1. Si les composantes du vecteur vitesse sont égales à leur valeur initiale, cela signifie qu'aucun vecteur vitesse n'a été associé au pixel de coordonnées (IX', IY'). Celui-ci est donc un pixel orphelin et il est nécessaire de déterminer d'une autre façon le vecteur vitesse à associer à ce pixel. Un vecteur vitesse interpolé T est calculé par une interpola
tion spatiale à partir des vecteurs vitesse de quatre pixels voisins du pixel orphelin. Les vecteurs vitesse de ces quatre pixels voisins sont lus dans la mémoire M1 puis sont combinés linéairement conformément à l'équation (9) mais en prenant : A00 = 0 si
(IX'-1,IY') = (255,255)FIG. 9 represents a flowchart of the second phase of the second variant of implementation of the method according to the invention. This second phase begins with an initialization at zero of the coordinate IY 'of the pixels to be interpolated. Then it consists of incrementing the coordinate IY 'and initializing the coordinate IX' to zero. Then it consists in incrementing the coordinate IX ′ by one and reading the speed vector V (IX ′, IY ′, T j ) in the memory M1 at an address corresponding to the coordinates (IX ′, IY ′). The components of this speed vector are each compared with the value 255 which is the initial value loaded into the memory M1. If the components of the speed vector are equal to their initial value, this means that no speed vector has been associated with the pixel of coordinates (IX ', IY'). This is therefore an orphan pixel and it is necessary to determine in another way the speed vector to be associated with this pixel. An interpolated velocity vector T is calculated by an interpola spatial map from the speed vectors of four neighboring pixels of the orphan pixel. The speed vectors of these four neighboring pixels are read from memory M1 and then are combined linearly in accordance with equation (9) but taking: A 00 = 0 if (IX'-1, IY ') = (255,255)
A00 = 1 sinon.A 00 = 1 otherwise.
A01 : 0 si
(IX'-1,IY') = (255,255)At 01 : 0 if (IX'-1, IY ') = (255,255)
A01 = 1 sinon.A01 = 1 otherwise.
A10 = 0 si
IX'+1,IY') = (255,255) A10 = 1 sinon.A 10 = 0 if IX '+ 1, IY') = (255,255) A10 = 1 otherwise.
A 11 = 0 si
VIX',IY'+1) = (255,255)A 11 = 0 if VIX ', IY' + 1) = (255,255)
A11 = 1 sinon.A 11 = 1 otherwise.
Et
'IX',IY') = (0,0) si A00 = A01 = A10 = A11 = 0, c'est-à-dire si les quatre pixels voisins sont eux aussi des pixels orphelins.And 'IX', IY ') = (0,0) if A 00 = A 01 = A 10 = A 11 = 0, that is to say if the four neighboring pixels are also orphan pixels.
Il est à remarquer que l'absence d'utilisation de la fonction DFD n'empêche pas de détecter si un pixel à interpoler est un pixel orphelin ou non, grâce à l'initialisation de la mémoire M1 avec la valeur (255,255) qui permet de discriminer les valeurs de vecteur vitesse qui n'existent pas. Par contre, la première phase ne distingue pas le meilleur pixel père lorsqu'un pixel à interpoler possède plusieurs pixels pères, par conséquent le vecteur vitesse associé est celui correspondant au dernier pixel père trouvé, pour un pixel à interpoler donné, lorsqu'il a plusieurs pixels pères.
Lorsque le vecteur vitesse
(IX' ,IY' ,Tj) a des composantes différentes de 255, cela signifie que le pixel à interpoler a un vecteur vitesse associé qui a été déterminé au cours de la première phase. Le procédé consiste ensuite à calculer les vecteurs
B
et
A selon les formules (5) et (6) pour le vecteur vitesse lu dans la
mémoire M1 ou pour le vecteur vitesse
interpolé, associé au pixel (IX', IY'). Puis il consiste à calculer les valeurs de luminance L(
,Ta) et L
,Tb). Lorsque le vecteur vitesse n'est pas nul ce calcul est réalisé par une interpolation spatiale dans les trames Ta et Tb respectivement, selon l'organigramme représenté sur la figure 5 et décrit précédemment. Lorsque le vecteur vitesse est nul, ces deux valeurs de luminance sont lues dans les mémoires MA et MB à l'adresse correspondant à (IX', IY'). Puis le procédé consiste à calculer la valeur de luminance interpolée L(IX' ,IY' ,Tj ) , selon la formule (10). La valeur de luminance interpolée est ensuite fournie, par exemple, à une mémoire de trames pour être stockée en attendant une utilisation le la trame interpolée Tj .It should be noted that the absence of use of the DFD function does not prevent detection of whether a pixel to be interpolated is an orphan pixel or not, thanks to the initialization of the memory M1 with the value (255,255) which allows to discriminate the velocity vector values which do not exist. On the other hand, the first phase does not distinguish the best parent pixel when a pixel to be interpolated has several parent pixels, therefore the associated speed vector is that corresponding to the last found parent pixel, for a given pixel to interpolate, when it has several fathers pixels. When the velocity vector (IX ', IY', T j ) has components other than 255, this means that the pixel to be interpolated has an associated velocity vector which was determined during the first phase. The method then consists in calculating the vectors B and A according to formulas (5) and (6) for the speed vector read in the memory M1 or for the speed vector interpolated, associated with the pixel (IX ', IY'). Then it consists in calculating the luminance values L ( , T a ) and L , T b ). When the speed vector is not zero, this calculation is carried out by spatial interpolation in the frames T a and T b respectively, according to the flow diagram represented in FIG. 5 and described previously. When the speed vector is zero, these two luminance values are read from the memories MA and MB at the address corresponding to (IX ', IY'). Then the method consists in calculating the interpolated luminance value L (IX ', IY', T j ), according to formula (10). The interpolated luminance value is then supplied, for example, to a frame memory to be stored while waiting for use on the interpolated frame T j .
Puis la valeur de la coordonnée IX' est comparée à sa valeur maximale M. Si la valeur maximale n'est pas atteinte, les opérations précédentes sont réitérées à partir de l'incrémentation de IX'. Sinon la valeur de la coordonnée IY' est comparée à sa valeur maximale N. Si cette valeur maximale n'est pas atteinte, les opérations précédentes sont réitérées à partir de l'incrémentation de IY'. Lorsque IY' a atteint la valeur maximale N, le traitement d'interpolation de la trame Tj est terminé. La figure 10 représente un organigramme de la première phase du procédé selon l'invention pour une troisième variante de mise en oeuvre de ce procédé.Then the value of the coordinate IX 'is compared with its maximum value M. If the maximum value is not reached, the preceding operations are repeated from the incrementation of IX'. Otherwise the value of the coordinate IY 'is compared with its maximum value N. If this maximum value is not reached, the preceding operations are repeated from the incrementation of IY'. When IY 'has reached the maximum value N, the interpolation processing of the frame T j is terminated. FIG. 10 represents a flow diagram of the first phase of the method according to the invention for a third variant of implementation of this method.
Cette troisième variante de mise en oeuvre ne nécessite
pas de calcul de la fonction DFD et ne nécessite pas de mémoire M2 , de même que la seconde variante. Elle présente, par rapport à la seconde variante, l'avantage de permettre un stockage des valeurs de luminance interpolées sans avoir une mémoire de la trame supplémentaire, car cette troisième variante permet de réutiliser la mémoire M1 pour le stockage des valeurs de luminance interpolées. Au cours de la première phase, dans cette troisième variante, au lieu de stocker dans la mémoire M1 les vecteurs vitesses associés aux pixels fils au fur et à mesure du balayage des pixels pères de la trame porteuse du mouvement, elle consiste à calculer et à stocker dans M1 les valeurs de luminance interpolées correspondant à ces pixels fils. Ainsi, au cours de la deuxième phase il ne reste plus qu'à calculer une valeur de luminance interpolée pour chaque pixel orphelin seulement. La valeur des composantes des vecteurs vitesse des pixels voisins n'étant pas stockée, il n'est pas possible d'utiliser une interpolation pour calculer un vecteur vitesse à associer à chaque pixel orphelin. Le vecteur vitesse associé au pixel orphelin est alors pris nul.This third variant of implementation does not require no calculation of the DFD function and does not require an M2 memory, as does the second variant. Compared with the second variant, it has the advantage of allowing the interpolated luminance values to be stored without having an additional frame memory, since this third variant makes it possible to reuse the memory M1 for storing the interpolated luminance values. During the first phase, in this third variant, instead of storing in the memory M1 the speed vectors associated with the child pixels as the parent pixels of the frame carrying the motion are scanned, it consists of calculating and store in M1 the interpolated luminance values corresponding to these child pixels. Thus, during the second phase, all that remains is to calculate an interpolated luminance value for each orphan pixel only. The value of the components of the speed vectors of the neighboring pixels not being stored, it is not possible to use an interpolation to calculate a speed vector to be associated with each orphan pixel. The speed vector associated with the orphan pixel is then taken zero.
La première phase de cette troisième variante débute par une initialisation de la mémoire M1 avec la valeur 255 qui correspond à la valeur maximale de la luminance et qui est donc facile à discriminer pour détecter les pixels orphelins, ceux-ci étant discriminables par le fait que la valeur correspondante de la luminance, stockée dans la mémoire M1 , reste égale à 255 à la fin de la première phase du procédé. Elle débute aussi par une initialisation de la coordonnée IY à zéro. Puis elle consiste à incrémenter IY d'une unité et à initialiser à zéro la coordonnée IX. Elle consiste ensuite à incrémenter d'une unité la coordonnée IX, puis
à lire le vecteur vitesse (IX,IY,Ti) dans la mémoire MI ; puis à calculer les vecteurs
selon les formules (4) à (6). Puis elle consiste à calculer les valeurs de luminance L(
,Ta) et L(
,Tb) par une interpolation spatiale dans les trames Ta et Tb , conformément à l'organigramme de la figure 5 décrit précédemment. Puis elle consiste à calculer la valeur de luminance interpolée L( j
,Tj), correspondant au pixel fils centré sur le point Fj, selon la formule (10) ; à écrire cette valeur de luminance dans la mémoire M1 à une adresse correspondant aux composantes du vecteur
The first phase of this third variant begins with an initialization of the memory M1 with the value 255 which corresponds to the maximum value of the luminance and which is therefore easy to discriminate in order to detect the orphan pixels, these being discriminable by the fact that the corresponding value of the luminance, stored in the memory M1, remains equal to 255 at the end of the first phase of the process. It also begins with an initialization of the IY coordinate to zero. Then it consists of incrementing IY by one unit and initializing the coordinate IX to zero. It then consists of incrementing the IX coordinate by one, then reading the speed vector (IX, IY, T i ) in the memory MI; then calculate the vectors according to formulas (4) to (6). Then it consists in calculating the luminance values L ( , T a ) and L ( , T b ) by a spatial interpolation in the frames T a and T b , in accordance with the flow diagram of FIG. 5 described above. Then it consists in calculating the interpolated luminance value L ( j , T j ), corresponding to the child pixel centered on the point F j , according to formula (10); to write this luminance value in the memory M1 at an address corresponding to the components of the vector
La première phase consiste ensuite à tester la valeur de la coordonnée IX pour détecter si elle a atteint sa valeur maximale M. Si la valeur M n'est pas atteinte, elle consiste à réitérer les opérations précédentes à partir de l'incrémentation de IX. Lorsque IX a atteint la valeur maximale M, elle consiste à comparer la valeur de la coordonnée IY à sa valeur maximale N. Si IY a atteint la valeur N, la première phase est terminée. Sinon, les opérations précédentes sont réitérées à partir de l'incrémentation de la coordonnée IY.The first phase then consists in testing the value of the coordinate IX to detect if it has reached its maximum value M. If the value M is not reached, it consists in repeating the previous operations from the incrementation of IX. When IX has reached the maximum value M, it consists in comparing the value of the coordinate IY with its maximum value N. If IY has reached the value N, the first phase is terminated. Otherwise, the previous operations are repeated from the increment of the IY coordinate.
La figure 11 représente un organigramme de la seconde phase de la troisième variante de mise en oeuvre du procédé selon l'invention. Cette seconde phase consiste tout d'abord à initialiser à zéro la coordonnée IY' d'un pixel de la trame à interpoler Tj ; puis à incrémenter cette coordonnée IY' d'une unité et à initialiser à zéro une seconde coordonnée IX' . Puis elle consiste à incrémenter la coordonnée IX' d'une unité ; à lire la valeur de luminance stockée dans la mémoire M1 à l'adresse correspondant aux coordonnées (IX', IY') ; et à comparer cette valeur de luminance à la valeur 255 qui est la valeur chargée initialement dans la mémoire M1.
Si la valeur de luminance est différente de 255 cela signifie qu'une valeur de luminance a été déterminée au cours de la première phase, pour le pixel à interpoler de coordonnées (IX', IY'). Si la valeur de luminance est égale à 255, cela signifie que ce pixel à interpoler n'a pas de pixel père dans la trame porteuse du mouvement Ti. Dans ce cas, un vecteur vitesse nul est attribué à ce pixel orphelin, et les vecteurs
F et
ont des composantes égales à celles du vecteur portant le centre du pixel à interpoler, c'est-à-dire (IX', IY'). Ensuite les valeurs de luminance des deux points de base de l'interpolation temporelle, L(
A,Ta) et L(
,Tb ) sont lues dans les mémoires MA et MB à l'adresse correspondant à (IX', IY'). Puis une valeur de luminance interpolée L(IX' ,IY' ,Tj) est calculée selon la formule (9). Enfin, la valeur de luminance interpolée est inscrite dans la mémoire M1 à l'adresse correspondant aux coordonnées (IX', IY') pour y être stttkée en attendant une utilisation des valeurs de luminance de la trame interpolée Tj . A la fin du traitement ce tous les pixels de la trame à interpoler, la mémoire M1 sera remplie par les valeurs de luminance interpolées. La mémoire M1 joue donc le rôle de la mémoire de la trame supplémentaire qui était nécessaire pour stocker les valeurs de luminance interpolées selon la première et la deuxième variante de mise en oeuvre, décrites précédemment.FIG. 11 represents a flowchart of the second phase of the third variant of implementation of the method according to the invention. This second phase consists first of all in initializing to zero the coordinate IY 'of a pixel of the frame to be interpolated T j ; then to increment this coordinate IY 'by one unit and to initialize to zero a second coordinate IX'. Then it consists in incrementing the coordinate IX 'of a unit; reading the luminance value stored in the memory M1 at the address corresponding to the coordinates (IX ', IY'); and to compare this luminance value with the value 255 which is the value loaded initially in the memory M1. If the luminance value is other than 255, this means that a luminance value was determined during the first phase, for the pixel to be interpolated with coordinates (IX ', IY'). If the luminance value is equal to 255, this means that this pixel to be interpolated has no parent pixel in the frame carrying the movement T i . In this case, a zero speed vector is assigned to this orphan pixel, and the vectors F and have components equal to those of the vector carrying the center of the pixel to be interpolated, that is to say (IX ', IY'). Then the luminance values of the two basic points of the temporal interpolation, L ( A, T a ) and L ( , T b ) are read in the memories MA and MB at the address corresponding to (IX ', IY'). Then an interpolated luminance value L (IX ', IY', T j ) is calculated according to formula (9). Finally, the interpolated luminance value is written into the memory M1 at the address corresponding to the coordinates (IX ', IY') to be stored there while waiting for the luminance values of the interpolated frame T j to be used . At the end of the processing of all the pixels of the frame to be interpolated, the memory M1 will be filled with the interpolated luminance values. The memory M1 therefore plays the role of the memory of the additional frame which was necessary to store the interpolated luminance values according to the first and the second variant of implementation, described above.
Puis cette seconde phase consiste à comparer la valeur de la coordonnée IX' à sa valeur maximale M. Si IX' n'a pas atteint sa valeur maximale, la deuxième phase consiste ensuite à réitérer les opérations précédentes à partir de l'incrémentation de IX'. Si IX' a atteint sa valeur maximale, la seconde phase consiste ensuite à comparer la valeur de la coordonnée IY' à sa valeur maximale M. Si IY' n'a pas atteint sa valeur N,
les opérations précédentes sont réitérées à partir de l'incrémentation de IY'. Si IY' a atteint sa valeur maximale, le traitement de tous les pixels à interpoler est terminé. La figure 12 représente le schéma synoptique d'une première partie d'un dispositif pour la mise en oeuvre du procédé selon l'invention, conformément à la première variante décrite précédemment. Cette première partie comporte : une borne d'entrée 1 ; un dispositif de multiplexage 2 ; un dispositif d'estimation de mouvement 3 ; un séquenceur 4 ; une mémoire 5 dite mémoire MI ; un dispositif 7 de calcul du vecteur
; un bus d'adresses et de données, 9 ; un dispositif 10 de calcul ; une mémoire MA, pour stocker les valeurs de luminance de la trame correspondant à l'instant Ta ; une mémoire MB pour stocker les valeurs de luminance de la trame correspondant à l'instant Tb ; et des moyens de calcul 5a, pour associer un vecteur vitesse à chaque pixel à interpoler ayant au moins un pixel père. Ces moyens de calcul 5a comportent : un dispositif 6 de calcul du vecteur
; un dispositif 8 de calcul du vecteur
; un dispositif 10 de calcul deThen this second phase consists in comparing the value of the coordinate IX 'with its maximum value M. If IX' has not reached its maximum value, the second phase then consists in repeating the previous operations starting from the incrementation of IX '. If IX 'has reached its maximum value, the second phase then consists in comparing the value of the coordinate IY' with its maximum value M. If IY 'has not reached its value N, the preceding operations are repeated from the increment of IY '. If IY 'has reached its maximum value, the processing of all the pixels to be interpolated is terminated. FIG. 12 represents the block diagram of a first part of a device for implementing the method according to the invention, in accordance with the first variant described above. This first part comprises: an input terminal 1; a multiplexing device 2; a motion estimation device 3; a sequencer 4; a memory 5 called memory MI; a device 7 for calculating the vector ; an address and data bus, 9; a computing device 10; a memory MA, for storing the luminance values of the frame corresponding to the instant T a ; a memory MB for storing the luminance values of the frame corresponding to the instant T b ; and calculation means 5a, for associating a speed vector with each pixel to be interpolated having at least one parent pixel. These calculation means 5a comprise: a device 6 for calculating the vector ; a device 8 for calculating the vector ; a device 10 for calculating
L ( , T
a) ; un dispositif 11 de calcul de L(
,Tb) ; un soustracteur 14 ; deux comparateurs 15 et 16 ; deux multïplexeurs, 17 et 18, à deux entrées et une sortie ; une porte logique ET 19 ; un dispositif d'initialisation 20 ; une mémoire M1 pour stocker les vecteurs vitesse associés aux pixels à interpoler ; et une mémoire M2 pour stocker les valeurs de la' fonction DFD.L (, T a ); a device 11 for calculating L ( , T b ); a subtractor 14; two comparators 15 and 16; two multiplexers, 17 and 18, with two inputs and one output; an AND logic gate 19; an initialization device 20; a memory M1 for storing the speed vectors associated with the pixels to be interpolated; and a memory M2 for storing the values of the DFD function.
Le dispositif de multiplexage 2 possède une entrée reliée à la borne d'entrée 1 du dispositif d'interpolation pour recevoir une suite de valeurs de luminance correspondant à une suite de trames connues constituée par des trames de trames de télévision classique. Ces
valeurs de luminance sont fournies, par exemple, par une caméra de télévision et un convertisseur analogique- numérique. Le dispositif 2 possède une sortie reliée au bus 9, qui est un bus de données, d'adresses, et de commandes, pour transmettre les valeurs de luminance soit à la mémoire MA soit à la mémoire MB. Dans l'exemple considéré, la trame correspondant à l'instant Ta est supposée précéder la trame correspondant à l'instant Tb , mais lors du traitement d'une suite de trames les mémoires MA et MB sont utilisées alternativement pour stocker la trame la plus récente.The multiplexing device 2 has an input connected to the input terminal 1 of the interpolation device to receive a series of luminance values corresponding to a series of known frames constituted by frames of conventional television frames. These luminance values are provided, for example, by a television camera and an analog-to-digital converter. The device 2 has an output connected to the bus 9, which is a data, address and command bus, for transmitting the luminance values either to the memory MA or to the memory MB. In the example considered, the frame corresponding to time T a is assumed to precede the frame corresponding to time T b , but during the processing of a series of frames memories MA and MB are used alternately to store the frame the most recent.
Le séquenceur 4 fournit des signaux de commande à l'ensemble de cet exemple de réalisation et notamment au dispositif 2, en synchronisme avec les valeurs de luminance appliquées à la borne d'entrée 1. Le dispositif 3 d'estimation de mouvement possède une entrée-sortie reliée au bus 9 pour lui permettre de commander la lecture d.e valeurs de luminance dans les mémoires MA et MB, et l'écriture des valeurs des composantes du vecteur vitesse des pixels de la trame Ti dans la mémoire MI.The sequencer 4 supplies control signals to all of this exemplary embodiment and in particular to the device 2, in synchronism with the luminance values applied to the input terminal 1. The motion estimation device 3 has an input -output connected to bus 9 to enable it to control the reading of luminance values in the memories MA and MB, and the writing of the values of the components of the speed vector of the pixels of the frame T i in the memory MI.
Le dispositif 3 est réalisé, par exemple, conformément à la description du brevet US n° 4 383 272. Il fournit une estimation de mouvement constituée par les composantes d'un vecteur vitesse pour chaque pixel d'une trame correspondant à un instant Ti compris entre les instants Ta et les instants Tb , en fonction des valeurs de luminance des trames connues aux instants Ta et Tb ,The device 3 is produced, for example, in accordance with the description of US Pat. No. 4,383,272. It provides an estimate of motion constituted by the components of a speed vector for each pixel of a frame corresponding to an instant T i between the instants T a and the instants T b , as a function of the luminance values of the known frames at the instants T a and T b ,
La mémoire MI possède une entrée d'adresse reliée à une sortie du séquenceur 4 pour recevoir une adresse constituée par les coordonnées (IX, IY) d'un pixel de la trame porteuse du mouvement Ti . Le séquenceur 4 fournit une suite de coordonnées correspondant à l'ordre de balayage habituel d'une trame de la trame de télévision. Cette suite de coordonnées est fournie aussi à une première
entrée du dispositif de calcul 7. Une seconde entrée du dispositif de calcul 7 est reliée à une sortie de données de la mémoire MI pour recevoir la valeur des composantes du vecteur vitesse
(IX, IY,Ti) lue dans la mémoire MI à l'adresse (IX, IY). La valeur de ces composantes est appliquée aussi à une entrée du dispositif de calcul 6, à une entrée du dispositif de calcul 8, et à une première entrée du multiplexeur 18.The memory MI has an address input connected to an output of the sequencer 4 to receive an address constituted by the coordinates (IX, IY) of a pixel of the frame carrying the movement T i . The sequencer 4 provides a series of coordinates corresponding to the usual scanning order of a frame of the television frame. This series of coordinates is also provided at a first input of the computing device 7. A second input of the computing device 7 is connected to a data output of the memory MI to receive the value of the components of the speed vector (IX, IY, T i ) read in the MI memory at the address (IX, IY). The value of these components is also applied to an input of the computing device 6, to an input of the computing device 8, and to a first input of the multiplexer 18.
Les dispositifs de calcul 6, 7, et 8 fonctionnent en parallèle pour déterminer respectivement les composantes des vecteurs
j PB . Pour chaque pixel de coordonnées (IX, IY) dans la trame Ti porteuse du mouvement, le dispositif de calcul 7 détermine le centre Fj d'un pixel fils, s'il en existe un ; les dispositifs de calcul 6 et 8 déterminent les coordonnées des points de base A et B pour une interpolation temporelle, en vue de calculer une valeur de luminance pour le pixel fils. Les dispositifs 6 et 8 fournissent respectivement les composantes du vecteur
et du vecteur
à une entrée du dispositif de calcul 10 et à une entrée du dispositif de calcul 11.The calculation devices 6, 7, and 8 operate in parallel to determine the components of the vectors, respectively. j PB. For each pixel of coordinates (IX, IY) in the frame T i carrying the movement, the computing device 7 determines the center F j of a child pixel, if there is one; the calculation devices 6 and 8 determine the coordinates of the base points A and B for a temporal interpolation, with a view to calculating a luminance value for the child pixel. Devices 6 and 8 respectively provide the components of the vector and vector to an input of the computing device 10 and to an input of the computing device 11.
Le dispositif de calcul 10 possède une sortie et une entrée reliées respectivement à une entrée d'adresse et à une sortie de données de la mémoire MA, pour commander dans la mémoire MA la lecture des valeurs de luminance nécessaires pour une interpolation spatiale à partir des pixels voisins du point A dans la trame Ta. De même, le dispositif 11 possède une sortie et une entrée reliée respectivement à une entrée d'adresse et à une sortie de données de la mémoire MB pour y lire les valeurs de luminance nécessaires pour une interpolation spatiale entre les pixels voisins du point B dans la trame Tb . Les valeurs de luminance L
(PX,Ta) et L(
Fïf,Tb) calculées respectivement par les dispositifs 10 et 11
sont appliquées respectivement à deux entrées du soustracteur 14 pour calculer une valeur de la fonction DFD. Le soustracteur 14 fournit une valeur algébrique dont la valeur absolue constitue la valeur de la fonction DFD. Celle-ci est appliquée à une première entrée du multiplexeur 17 et à des premières entrées des comparateurs 15 et 16. Une seconde entrée du comparateur 15 reçoit une valeur DFD' de la fonction DFD lue dans la mémoire M2 à une adresse constituée par les composantes du vecteur
^ c'est-à-dire correspondant au pixel fils en cours de traitement. Le comparateur 16 possède une seconde entrée recevant une valeur de seuil : 7. Les comparateurs 15 et 16 ont chacun une sortie reliée à une entrée de la porte logique ET 19 pour valider celle-ci lorsque la valeur de la fonction DFD fournie par le soustracteur 14 est inférieure à la valeur de seuil 7 et inférieure à la valeur DFD' lue dans la mémoire M2.The calculation device 10 has an output and an input connected respectively to an address input and to a data output of the memory MA, for controlling in the memory MA the reading of the luminance values necessary for a spatial interpolation from the pixels neighboring point A in frame T a . Likewise, the device 11 has an output and an input linked respectively to an address input and to a data output of the memory MB to read there the luminance values necessary for a spatial interpolation between the pixels neighboring point B in the frame T b . The luminance values L (PX, T a ) and L ( Fïf, T b ) calculated respectively by devices 10 and 11 are applied respectively to two inputs of the subtractor 14 to calculate a value of the DFD function. Subtractor 14 provides an algebraic value whose absolute value constitutes the value of the DFD function. This is applied to a first input of the multiplexer 17 and to first inputs of the comparators 15 and 16. A second input of the comparator 15 receives a value DFD 'of the DFD function read in the memory M2 at an address constituted by the components of the vector ^ ie corresponding to the child pixel being processed. The comparator 16 has a second input receiving a threshold value: 7. The comparators 15 and 16 each have an output connected to an input of the AND logic gate 19 to validate the latter when the value of the DFD function supplied by the subtractor 14 is less than the threshold value 7 and less than the value DFD 'read from the memory M2.
La porte 19 possède une sortie reliée à une entrée de commande du multiplexeur 17 et à une entrée de commande du multiplexeur 18. La seconde entrée du multiplexeur 17 est reliée à la sortie de données la mémoire M2. La première et la seconde entrée du multiplexeur 18 sont reliées respectivement à la sortie de données de la mémoire MI fournissant le vecteur
(IX, IY, Ti), et à une sortie de la mémoire M1 fournissant la valeur des composantes d'un vecteur vitesse lu à l'adresse constituée par les composantes
j The door 19 has an output connected to a control input of the multiplexer 17 and to a control input of the multiplexer 18. The second input of the multiplexer 17 is connected to the data output the memory M2. The first and second input of the multiplexer 18 are respectively connected to the data output of the memory MI providing the vector (IX, IY, T i ), and to an output of the memory M1 providing the value of the components of a speed vector read at the address constituted by the components j
Les mémoires M1 et M2 possèdent chacune une entrée d'adresse reliée à la sortie du dispositif de calcul 7 pour recevoir la valeur des composantes du vecteur
PFj . Dans un premier temps le séquenceur 4 commande dans les mémoires M1 et M2 , une lecture à l'adresse constituée par les composantes du vecteur
PFj. Cette lecture permet de connaître la valeur DFD' de la
fonction DFD et la valeur des composantes du vecteur vitesse trouvée précédemment si le pixel centré sur le point Fj a au moins un pixel père ayant été déterminé précédemment. Si la valeur de la fonction DFD fournie par le soustracteur 14, pour le pixel père de coordonnées (IX, IY), est inférieure à 7 et inférieure à la valeur DFD' déterminée pour un autre pixel père trouvé précédemment, alors le signal fourni par la sortie de la porte 19 commande les multiplexeurs 17 et 18 pour transmettre respectivement la valeur de la fonction DFD fournie par le soustracteur 14 et le vecteur vitesse fourni par la sortie de la mémoire MI.The memories M1 and M2 each have an address input connected to the output of the computing device 7 to receive the value of the components of the vector. PF j . Firstly, the sequencer 4 controls in the memories M1 and M2, a reading at the address constituted by the components of the vector PF j . This reading allows to know the value DFD 'of the DFD function and the value of the components of the speed vector previously found if the pixel centered on the point F j has at least one parent pixel having been determined previously. If the value of the DFD function provided by the subtractor 14, for the parent pixel with coordinates (IX, IY), is less than 7 and less than the value DFD 'determined for another parent pixel found previously, then the signal supplied by the output of the gate 19 controls the multiplexers 17 and 18 to transmit respectively the value of the DFD function supplied by the subtractor 14 and the speed vector supplied by the output of the memory MI.
Si la valeur de la fonction DFD fournie par la sortie du soustracteur 14 est supérieure à 7 ou bien est supérieure à la valeur DFD' lue dans la mémoire M2, alors les multiplexeurs 17 et 18 transmettent respectivement la valeur DFD' fournie par la mémoire M2 et le vecteur vitesse fourni par la mémoire M1. La sortie du multiplexeur 17 et la sortie du multiplexeur 18 sont reliées respectivement à des entrées de données des mémoires M2 et M1.If the value of the DFD function provided by the output of the subtractor 14 is greater than 7 or is greater than the value DFD 'read in the memory M2, then the multiplexers 17 and 18 respectively transmit the value DFD' provided by the memory M2 and the speed vector supplied by the memory M1. The output of the multiplexer 17 and the output of the multiplexer 18 are respectively connected to data inputs of the memories M2 and M1.
Dans un second temps, le séquenceur 4 commande une écriture dans ces mémoires pour inscrire la valeur de la fonction DFD transmise par le multiplexeur 17 et le vecteur vitesse transmis par le multiplexeur T8. Le contenu des mémoires M2 et M1 est donc renouvelle lorsqu'un meilleur pixel père est détecté.In a second step, the sequencer 4 commands a write in these memories to write the value of the DFD function transmitted by the multiplexer 17 and the speed vector transmitted by the multiplexer T8. The content of memories M2 and M1 is therefore renewed when a better parent pixel is detected.
Un dispositif d'initialisation 20 possède deux sorties reliées respectivement à l'entrée d'adresse et à l'entrée de données de la mémoire M2 pour lui fournir une suite de valeurs d'adresse permettant d'inscrire la valeur 255 à toutes les adresses pendant une phase d'initialisation précédant le traitement de chaque
trame. Pendant cette phase d'initialisation, le dispositif 20 et la mémoire M2 sont commandés par le séquenceur 4 pour réaliser cette écriture. L'entrée d'adresse et l'entrée de données de la mémoire M2 sont reliées d'autre part à une borne d'entrée 26 et à une borne d'entrée 28 qui sont reliées à la seconde partie de cet exemple de réalisation. La sortie de données de la mémoire M2 et la sortie de données de la mémoire M1 sont reliées respectivement à deux bornes de sorties 27 et 30, reliées à la seconde partie de cet exemple de réalisation. L'entrée d'adresse et l'entrée de données de la mémoire M1 sont reliées respectivement à la borne d'entrée 28 et à une borne d'entrée 29, reliées à la seconde partie de cet exemple de réalisation. La figure 13 représente un schéma synoptique plus détaillé des dispositifs de calcul 6, 7, 8, 10 et 11. Le dispositif 6 comporte un multiplicateur 61, un dispositif 62 de correction de parité de trames, et un additionneur 63. L'entrée du dispositif 6, recevant la valeur des composantes du vecteur
(IX, IY, Ti), est reliée à une première entrée du multiplicateur 61. Une seconde entrée du multiplicateur 61 reçoit en permanence la valeur -(Tj-Ta). Une sortie du multiplicateur 61 est reliée à une entrée du dispositif 62 pour lui fournir la valeur des composantes d'un vecteur :
-V.(Tj-Ta).An initialization device 20 has two outputs connected respectively to the address input and to the data input of the memory M2 to provide it with a series of address values making it possible to write the value 255 at all the addresses during an initialization phase preceding the processing of each frame. During this initialization phase, the device 20 and the memory M2 are controlled by the sequencer 4 to carry out this writing. The address input and the data input of the memory M2 are connected on the other hand to an input terminal 26 and to an input terminal 28 which are connected to the second part of this exemplary embodiment. The data output of the memory M2 and the data output of the memory M1 are connected respectively to two output terminals 27 and 30, connected to the second part of this exemplary embodiment. The address input and the data input of the memory M1 are connected respectively to the input terminal 28 and to an input terminal 29, connected to the second part of this exemplary embodiment. FIG. 13 represents a more detailed block diagram of the calculation devices 6, 7, 8, 10 and 11. The device 6 comprises a multiplier 61, a device 62 for correcting parity of frames, and an adder 63. The input of the device 6, receiving the value of the components of the vector (IX, IY, T i ), is connected to a first input of the multiplier 61. A second input of the multiplier 61 permanently receives the value - (T j -T a ). An output of the multiplier 61 is connected to an input of the device 62 to provide it with the value of the components of a vector: -V. (T j -T a ).
Le dispositif 62 additionne à la valeur de ces composantes, la valeur des composantes du vecteur Z qui
est fonction de la parité de la trame en cours d'interoolation et de la trame Ta. Le dispositif 62 est relié, par des liaisons non représentées, à des sorties du séquenceur 4 fournissant des signaux de commande fonctions de la parité de ces deux trames. Le dispositif 62 peut être constitué d'additionneurs et d'une mémoire morte stockant la valeur des composantes du vecteur Z , cette
mémoire morte recevant une adresse constituée par les signaux de commande fournis par le séquenceur 4. L'additionneur 63 possède : une entrée reliée à la sortie du dispositif 62 ; une autre entrée reliée à la sortie du dispositif de calcul 7 pour recevoir la valeur des composantes du vecteur
; et une sortie constituant la sortie du dispositif 6, sortie fournissant la valeur des composantes du vecteur
The device 62 adds to the value of these components, the value of the components of the vector Z which is a function of the parity of the frame being interpolated and of the frame T a . The device 62 is connected, by links not shown, to outputs of the sequencer 4 supplying control signals which are functions of the parity of these two frames. The device 62 can consist of adders and a read only memory storing the value of the components of the vector Z, this read-only memory receiving an address constituted by the control signals supplied by the sequencer 4. The adder 63 has: an input connected to the output of the device 62; another input connected to the output of the computing device 7 to receive the value of the components of the vector ; and an output constituting the output of the device 6, output providing the value of the components of the vector
Le dispositif de calcul 8 a une structure très semblable à celle du dispositif de calcul 6. Il comporte un multiplicateur 81, un dispositif 32 de correction de parité de trames, et un additionneur 83. Le multiplicateur 81 reçoit la valeur (Tb-Tj) au lieu de la valeur -(Tj-Ta), et le dispositif 82 additionne la valeur des composantes du vecteur
b , au lieu de la valeur des composantes du vecteur
a La valeur des composantes du vecteur
T est fonction de la parité de la trame Tj et de la trame Tb. Le dispositif 82 est relié au séquenceurThe calculation device 8 has a structure very similar to that of the calculation device 6. It includes a multiplier 81, a device for correcting parity of frames, and an adder 83. The multiplier 81 receives the value (T b -T j ) instead of the value - (T j -T a ), and the device 82 adds the value of the components of the vector b , instead of the value of the components of the vector a The value of the components of the vector T is a function of the parity of the frame T j and the frame T b . The device 82 is connected to the sequencer
4 par des liaisons non représentées, fournissant des signaux de commande fonction de la parité de ces trames. Le dispositif de calcul 7 comporte un multiplicateur 71, un soustracteur 72, un dispositif 73 de correction de parité de trames, et un dispositif 74 de calcul de la valeur entière la plus proche (VEPP) d'une valeur. Une première entrée du multiplicateur 71 constitue l'entrée du dispositif 7 recevant la valeur des composantes du vecteur
7 (IX,IY,Ti). Une seconde entrée du multiplicateur 71 reçoit en permanence la valeur (Ti-Tj). Une sortie du multiplicateur 71 est reliée à une première entrée. du soustracteur 72 et lui fournit la valeur des composantes du vecteur
V . (Ti-Tj). Une seconde entrée du soustracteur 12 reçoit les coordonnées (IX, IY) fournies par le séquenceur 4 et constituant les composantes du vecteur PCj. Une sortie du soustracteur
72 fournit à une entrée du dispositif 73 la valeur des composantes du vecteur calculée conformément à la
formule (4).4 by links not shown, providing control signals as a function of the parity of these frames. The calculation device 7 comprises a multiplier 71, a subtractor 72, a device 73 for parity correction of frames, and a device 74 for calculating the nearest whole value (VEPP) of a value. A first input of the multiplier 71 constitutes the input of the device 7 receiving the value of the components of the vector 7 (IX, IY, T i ). A second input of the multiplier 71 permanently receives the value (T i -T j ). An output of the multiplier 71 is connected to a first input. of the subtractor 72 and provides it with the value of the components of the vector V. (T i -T j ). A second input of the subtractor 12 receives the coordinates (IX, IY) supplied by the sequencer 4 and constituting the components of the vector PC j . An exit from the subtractor 72 supplies an input to the device 73 with the value of the components of the vector calculated in accordance with the formula (4).
Le dispositif 73 ajoute à la valeur de ces composantés la valeur des composantes du vecteur qui est
fonction de la parité de la trame Tj et de la trame Ti. Le dispositif 73 peut être constitué comme les dispositifs 62 et 82. Il est relié à des sorties du séquenceur 4 par des liaisons non représentées lui fournissant des signaux de commande fonction de la parité des trames Tj et Ti. Une sortie du dispositif 73 est reliée à une entrée du dispositif 74.The device 73 adds to the value of these components the value of the components of the vector which is function of the parity of the frame T j and the frame T i . The device 73 can be constituted like the devices 62 and 82. It is connected to outputs of the sequencer 4 by links not shown providing it with control signals depending on the parity of the frames T j and T i . An output of the device 73 is connected to an input of the device 74.
Le dispositif 74 additionne 0,5 à chacune des composantes du vecteur fourni par la sortie du dispositif 73 puis prend la partie entière de la somme obtenue. Le dispositif 74 peut être constitué de deux additionneurs additionnant chacun la valeur constante 0,5. La partie entière est extraite en mettant à 0 les bits constituant la partie fractionnaire. Une sortie du dispositif 74 constitue la sortie du dispositif 7 et fournit la valeur de deux composantes constituant le vecteur j La valeur de ces composantes est utilisée notamment
comme valeur d'adresse pour les mémoires M1 et M2 , lors de l'écriture dans ces mémoires de la valeur de la fonction DFD et des composantes du vecteur vitesse, correspondant au pixel fils centré sur le point Fj .The device 74 adds 0.5 to each of the components of the vector supplied by the output of the device 73 and then takes the whole part of the sum obtained. The device 74 can consist of two adders each adding the constant value 0.5. The whole part is extracted by setting the bits making up the fractional part to 0. An output of the device 74 constitutes the output of the device 7 and provides the value of two components constituting the vector j The value of these components is used in particular as address value for the memories M1 and M2, during the writing in these memories of the value of the function DFD and of the components of the speed vector, corresponding to the child pixel centered on the point F j .
Les dispositifs de calcul 10 et 11 ont une structure analogue, mais le dispositif 10 est couplé à la mémoire MA alors que le dispositif : 1 est couplé à la mémoire MB. Le dispositif 10 comporte : un dispositifThe calculation devices 10 and 11 have a similar structure, but the device 10 is coupled to the memory MA while the device: 1 is coupled to the memory MB. The device 10 comprises: a device
101 de calcul de la valeur entière la plus proche de la valeur des composantes d'un vecteur ; un additionneur101 for calculating the integer value closest to the value of the components of a vector; an adder
102 ; un soustracteur 103 ; un dispositif de calcul d'adresse 104 ; et un dispositif de calcul 105 qui met
en oeuvre la formule (8) et qui sera décrit plus en détails en se référant à la figure 14.102; a subtractor 103; an address calculating device 104; and a computing device 105 which puts using formula (8) and which will be described in more detail with reference to FIG. 14.
Une entrée du dispositif 101 constitue l'entrée du dispositif 10, et est reliée aussi à une première entrée du soustracteur 103. Une sortie du dispositif 101 est reliée à une première entrée de l'additionneur 102 et à une entrée du dispositif 104 de calcul d'adresses, pour leur fournir la valeur des composantes (XGa,YGa) obtenues en prenant la partie entière de la valeur des composantes du vecteur
Le dispositif 101 peut être constitué comme le dispositif 74.An input of the device 101 constitutes the input of the device 10, and is also connected to a first input of the subtractor 103. An output of the device 101 is connected to a first input of the adder 102 and to an input of the computing device 104 addresses, to provide them with the value of the components (XG a , YG a ) obtained by taking the integer part of the value of the components of the vector The device 101 can be constituted like the device 74.
L'additionneur 102 possède une seconde entrée recevant, en permanence la valeur des composantes d'un vecteur (1,1), et possède une sortie reliée à une seconde entrée du soustracteur 103. Une sortie du soustracteur 103 est reliée à une borne d'entrée 106 du dispositif de calcul 105 pour lui fournir la valeur des coordonnées relatives du point A : (ΔXa, ΔYa). Le dispositif de calcul 105 possède une seconde borne d'entrée 108 reliée à une sortie de données de la mémoire MA et possède une borne de sortie 107 constituant la sortie du dispositif 10 et reliée à la première entrée du soustracteur 14 pour lui fournir la valeur de luminance L(PA,T
a). Le dispositif 104 de calcul d'adresses possède une entrée reliée à la sortie du dispositif 101 pour recevoir les coordonnées (XGa,YGa) et possède une sortie reliée à une entrée d'adresse de la mémoire MA. Le dispositif 104 fournit quatre adresses successives à la mémoire MA sous l'action d'un signal d'horloge fourni par le séquenceur 4 qui commande quatre lecture successives dans la mémoire A pour lire les valeurs de luminance stockées à des adresses constituées par les coordonnées : (XGa+1,YGa+1) ; (XGa,YGa+1) ; (XGa+1,YGa) ;
(XGa, YGa). Le dispositif 103 peut être constitué de quatre registres, de quatre additionneurs, et d'un multiplexeur, commandés par des signaux de commande fournis par le séquenceur 4. Le dispositif de calcul 11 comprend : un dispositif 111 de calcul de la valeur entière la plus proche des composantes d'un vecteur ; un dispositif 112 de calcul d'adresses ; un additionneur 113 ; un soustracteur 114 ; et un dispositif de calcul 115, ayant des fonctions analogues aux fonctions des éléments 101 à 105 du dispositif de calcul 10.The adder 102 has a second input permanently receiving the value of the components of a vector (1,1), and has an output connected to a second input of the subtractor 103. An output of the subtractor 103 is connected to a terminal d input 106 of the calculation device 105 to provide it with the value of the relative coordinates of the point A: (ΔX a , ΔY a ). The calculation device 105 has a second input terminal 108 connected to a data output from the memory MA and has an output terminal 107 constituting the output of the device 10 and connected to the first input of the subtractor 14 to supply it with the value of luminance L (PA, T a ). The address calculation device 104 has an input connected to the output of the device 101 for receiving the coordinates (XG a , YG a ) and has an output connected to an address input of the memory MA. The device 104 supplies four successive addresses to the memory MA under the action of a clock signal supplied by the sequencer 4 which commands four successive readings in the memory A to read the luminance values stored at addresses constituted by the coordinates : (XG a + 1, YG a +1); (XG a , YG a +1); (XG a + 1, YG a ); (XG a , YG a ). The device 103 can consist of four registers, four adders, and a multiplexer, controlled by control signals supplied by the sequencer 4. The calculation device 11 comprises: a device 111 for calculating the most integer value close to the components of a vector; a device 112 for calculating addresses; an adder 113; a subtractor 114; and a computing device 115, having functions analogous to the functions of elements 101 to 105 of the computing device 10.
La figure 14 représente le schéma synoptique d'un exemple de réalisation du dispositif de calcul 105. Il comporte : six registres, 120 à 123 et 133, 135 ; huit multiplicateurs, 124 à 131 ; un additionneur 132 ; et deux soustracteurs 134 et 136. Le dispositif 105 met en oeuvre la formule (8). La borne d'entrée 106 est reliée à des entrées des registres 120 à 123 qui stockent respectivement les quatre paires de coordonnées appliquées à la borne d'entrée 106. La borne d'entrée 108 est reliée à des entrées des registres 133 et 135 qui stockent respectivement les valeurs ΔXa et ΔYa . Les sorties des registres 120 à 123 sont reliées respectivement à des premières entrées des multiplicateurs 124, 126, 128, 130. La sortie du registre 133 est reliée à : une première entrée du soustracteur 134, une seconde entrée du multiplicateur 126, et une seconde, entrée du multiplicateur 130. La sortie des multiplicateurs 124, 126, 128, 130 est reliée respectivement à une première entrée du multiplicateur 125, du multiplicateur 127, du multiplicateur 129, et du multiplicateur 131. La sortie du registre 135 est reliée à une seconde entrée du multiplicateur 129, à une seconde entrée du multiplicateur 131, et à une première entrée du soustracteur 136. Le
soustracteur 134 possède une seconde entrée recevant en permanence la valeur 1 et possède une sortie reliée à une seconde entrée du multiplicateur 124 et à une seconde entrée du multiplicateur 128. Le soustracteur 136 possède une seconde entrée recevant en permanence la valeur 1 et possède une sortie reliée à une seconde entrée du multiplicateur 125 et à une seconde entrée du multiplicateur 127. Les sorties des multiplicateurs 125, 127, 129, 131, sont reliées respectivement à quatre entrées de l'additionneur 132. Une cinquième entrée de l'additionneur 132 reçoit en permanence la valeur 0,5. Une sortie de l'additionneur 132 est reliée à la borne de sortie 107.FIG. 14 represents the block diagram of an exemplary embodiment of the calculation device 105. It comprises: six registers, 120 to 123 and 133, 135; eight multipliers, 124 to 131; an adder 132; and two subtractors 134 and 136. The device 105 implements formula (8). The input terminal 106 is connected to inputs of registers 120 to 123 which respectively store the four pairs of coordinates applied to the input terminal 106. The input terminal 108 is connected to inputs of registers 133 and 135 which store the values ΔX a and ΔY a respectively . The outputs of registers 120 to 123 are respectively connected to first inputs of multipliers 124, 126, 128, 130. The output of register 133 is connected to: a first input of subtractor 134, a second input of multiplier 126, and a second , input of the multiplier 130. The output of the multipliers 124, 126, 128, 130 is connected respectively to a first input of the multiplier 125, of the multiplier 127, of the multiplier 129, and of the multiplier 131. The output of the register 135 is connected to a second input of multiplier 129, a second input of multiplier 131, and a first input of subtractor 136. The subtractor 134 has a second input permanently receiving the value 1 and has an output connected to a second input of multiplier 124 and to a second input of multiplier 128. Subtractor 136 has a second input permanently receiving value 1 and has an output connected to a second input of the multiplier 125 and to a second input of the multiplier 127. The outputs of the multipliers 125, 127, 129, 131, are respectively connected to four inputs of the adder 132. A fifth input of the adder 132 receives permanently the value 0.5. An output of the adder 132 is connected to the output terminal 107.
Les soustracteurs 134 et 136 fournissent respectivement les valeurs ΔXa-1 et ΔYa-1. Les multiplicateursSubtractors 134 and 136 respectively supply the values ΔX a -1 and ΔY a -1. Multipliers
124 et 125 calculent le premier terme de la formule (8). Les multiplicateurs 126 et 127 calculent le second terme. Les multiplicateurs 128 et 129 calculent le troisième terme. Les multiplicateurs 130 et 131 calculent le quatrième terme. L'additionneur 132 fait la somme de ces quatre termes et du terme constant 0,5.124 and 125 calculate the first term of formula (8). Multipliers 126 and 127 calculate the second term. Multipliers 128 and 129 calculate the third term. Multipliers 130 and 131 calculate the fourth term. The adder 132 adds up these four terms and the constant term 0.5.
La figure 15 représente le schéma synoptique de la seconde partie de l'exemple de réalisation d'un dispositif pour la mise en oeuvre de la première variante du procédé selon l'invention. Cette seconde partie correspond à la seconde phase du procédé. Elle comporte notamment des moyens de calcul 5b pour déterminer un vecteur vitesse interpolé à partir des vecteurs vitesse des pixels voisins du pixel à interpoler lorsque celui- ci n'a pas de pixel père ou bien lorsque ses pixels pères n'ont pas été validés.FIG. 15 represents the block diagram of the second part of the exemplary embodiment of a device for the implementation of the first variant of the method according to the invention. This second part corresponds to the second phase of the process. It notably comprises calculation means 5b for determining a speed vector interpolated from the speed vectors of the pixels neighboring the pixel to be interpolated when the latter has no parent pixel or else when its parent pixels have not been validated.
Elle comporte en outre : des moyens de calcul 49 pour associer un vecteur vitesse nul au pixel à interpoler lorsque le vecteur vitesse interpolé n'est pas
validé, et pour déterminer les valeurs de luminance L(
PA,
Ta) et L(
PB,Tb ) des deux points de base A et B, en fonction du vecteur vitesse associé au pixel à interpoler ; et des moyens de calcul 50 pour calculer une valeur de luminance interpolée, en fonction des valeurs de luminance des deux points de base.It further comprises: calculation means 49 for associating a zero speed vector with the pixel to be interpolated when the interpolated speed vector is not validated, and to determine the luminance values L ( PA, T a ) and L ( PB, T b ) of the two base points A and B, as a function of the speed vector associated with the pixel to be interpolated; and calculating means 50 for calculating an interpolated luminance value, as a function of the luminance values of the two base points.
Les moyens de calcul 5b comportent : un générateur d'adresses 31 ; deux registres, 32 et 33 ; un comparateur 34 ; un multiplexeur 35, à deux entrées et une sortie ; et un dispositif de calcul 36 pour calculer un vecteur vitesse interpolée
The calculation means 5b include: an address generator 31; two registers, 32 and 33; a comparator 34; a multiplexer 35, with two inputs and one output; and a calculating device 36 for calculating an interpolated speed vector
Une sortie du générateur d'adresses 31 et une borne de sortie 58 du dispositif de calcul 3 6 sont reliées à la borne d'entrée 28 des moyens de calcul 5a, qui est reliée aux entrées d'adresses des mémoires M1 et M2. Le générateur d'adresses 31 fournit une suite d'adresses constituées par des coordonnées (IX', IY') correspondant à un balayage systématique de tous les pixels à interpoler de la trame Tj. Chacune de ces adresses permet de lire une valeur DFD(IX',IY') de la fonction DFD dans la mémoire M2 et un vecteur vitesse
(IX',IY') dans la mémoire M1, correspondant à un pixel à interpoler. Une entrée de données du registre 32 et une borne d'entrée 57 du dispositif de calcul 36 sont reliées à la borne de sortie 27 des moyens de calcul 5a, qui reçoit la valeur DFD(IX',IY') lue dans la mémoire M2. Une entrée de données du registre 33 et une borne d'entrée 56 du dispositif de calcul 36 sont reliées à la borne de sortie 30 des moyens de calcul 5a, qui fournit la valeur des composantes du vecteur vitesse
V(IX',IY') lu dans la mémoire M1.An output of the address generator 31 and an output terminal 58 of the computing device 36 are connected to the input terminal 28 of the computing means 5a, which is connected to the address inputs of the memories M1 and M2. The address generator 31 provides a series of addresses constituted by coordinates (IX ′, IY ′) corresponding to a systematic scanning of all the pixels to be interpolated from the frame T j . Each of these addresses makes it possible to read a DFD value (IX ', IY') of the DFD function in the memory M2 and a speed vector (IX ', IY') in the memory M1, corresponding to a pixel to be interpolated. A data input from register 32 and an input terminal 57 of the calculation device 36 are connected to the output terminal 27 of the calculation means 5a, which receives the value DFD (IX ', IY') read in the memory M2 . A data input from register 33 and an input terminal 56 of the calculation device 36 are connected to the output terminal 30 of the calculation means 5a, which supplies the value of the components of the speed vector V (IX ', IY') read in memory M1.
La valeur DFD(IX',IY') stockée dans le registre 32 est comparée à une valeur de seuil, 255, par le comparateur 34. Une sortie du comparateur 34 est reliée à
une entrée de commande du multiplexeur 35. Une sortie du registre 33 est reliée à une première entrée du multiplexeur 35. Une borne de sortie 59 du dispositif de calcul 36 fournit la valeur des composantes d'un vecteur vitesse interpolé à une seconde entrée du multiple
xeur 35. Une sortie du multiplexeur 35 constitue une sortie des moyens 5b et est reliée à une première entrée des moyens de calcul 49 pour fournir un vecteur vitesse Vt
Lorsque la valeur de la fonction DFD fournie par le registre 32 est inférieure à la valeur de seuil 255, le comparateur 34 commande le multiplexeur 35 pour qu'il transmette la valeur des composantes du vecteur
stockée dans le registre 33, car ce vecteur vitesse convient. Lorsque la valeur de la fonction DFD est égale à 255, cela signifie que le pixel à interpoler n'a pas de pixel père, par conséquent il est nécessaire de déterminer un vecteur vitesse par une interpolation à partir des vecteurs vitesses des pixels voisins. Le comparateur 34 commande alors le multiplexeur 35 pour qu'il transmette la valeur des composantes du vecteur vitesse interpolé T fournie par le dispositif de calcul 36.
The value DFD (IX ', IY') stored in the register 32 is compared with a threshold value, 255, by the comparator 34. An output of the comparator 34 is connected to a control input of the multiplexer 35. An output of the register 33 is connected to a first input of the multiplexer 35. An output terminal 59 of the calculation device 36 supplies the value of the components of a speed vector interpolated to a second input of the multiple xer 35. An output of the multiplexer 35 constitutes an output of the means 5b and is connected to a first input of the calculation means 49 to supply a speed vector Vt When the value of the DFD function supplied by the register 32 is less than the threshold value 255, the comparator 34 controls the multiplexer 35 so that it transmits the value of the components of the vector stored in register 33, because this speed vector is suitable. When the value of the DFD function is equal to 255, this means that the pixel to be interpolated has no parent pixel, therefore it is necessary to determine a speed vector by interpolation from the speed vectors of the neighboring pixels. The comparator 34 then controls the multiplexer 35 so that it transmits the value of the components of the interpolated speed vector T supplied by the calculation device 36.
Un schéma synoptique du dispositif de calcul 36 est représenté sur la figure 16. Il comporte : un générateur d'adresses 150 ; dix registres, 151 à 154 et 165 à 168 ; cinq comparateurs 156 à 159 ; quatre multiplicateurs, 161 à 164 ; deux additionneurs 170 et 171 ; un diviseur 172 ; et un multiplexeur 173, à deux entrées et une sortie. Le générateur d'adresses 150 possède une entrée reliée à la borne d'entrée 60 pour recevoir la suite des coordonnées (IX'.IY') de chaque pixel de la trame à interpoler Tj , et il possède une sortie reliée à la borne de sortie 58 pour fournir successivement quatre valeurs
de coordonnées (IX'',IY'') pour chaque pixel à interpoler. Chaque paire de coordonnées (IX'',IY'') correspondant à un pixel voisin du pixel à interpoler, sur la même colonne ou sur la même ligne de la trame, et constitue une adresse de lecture pour lire dans la mémoire M1 les vecteurs vitesse associés à ces pixels voisins, s'ils ont un vecteur vitesse associé, et pour lire dans la mémoire M2 les valeurs de la fonction DFD correspondant à ces pixels voisins et permettant de savoir s'ils ont un pixel père ou non.A block diagram of the computing device 36 is shown in FIG. 16. It comprises: an address generator 150; ten registers, 151 to 154 and 165 to 168; five comparators 156 to 159; four multipliers, 161 to 164; two adders 170 and 171; a divider 172; and a multiplexer 173, with two inputs and one output. The address generator 150 has an input connected to the input terminal 60 to receive the sequence of coordinates (IX'.IY ') of each pixel of the frame to be interpolated T j , and it has an output connected to the terminal 58 to successively supply four values coordinates (IX '', IY '') for each pixel to be interpolated. Each pair of coordinates (IX '', IY '') corresponding to a pixel close to the pixel to be interpolated, on the same column or on the same line of the frame, and constitutes a reading address for reading the vectors from the memory M1 speed associated with these neighboring pixels, if they have an associated speed vector, and to read in the memory M2 the values of the DFD function corresponding to these neighboring pixels and making it possible to know whether they have a parent pixel or not.
Les registres 151 à 154 ont chacun une entrée de données reliée à la borne d'entrée 56 pour recevoir et stocker les valeurs de la fonction DFD lues dans la mémoire M2 et correspondant aux quatre points voisins respectivement. Les registres 165 à 168 ont chacun une entrée de données reliée à la borne d'entrée 57 pour recevoir la valeur des composantes des vecteurs vitesse lue dans la mémoire M1 et correspondant respectivement aux quatre points voisins. Les registres 151 à 154 ont des sorties reliées respectivement à des premières entrées des comparateurs 156 à 159. Les comparateurs 156 à 159 ont des secondes entrées recevant une valeur constante égale à 255 et ont des sorties reliées respectivement à des premières entrées des multiplicateurs 161 à 164 et respectivement à quatre entrées de l'additionneur 170. Les comparateurs 156 à 159 fournissent chacun un signal logique de valeur 1 lorsque la valeur appliquée à leur première entrée est inférieure à 255 et une valeur zéro lorsque la valeur appliquée à leur première entrée est égale à 255. Les valeurs de ces signaux logiques sont additionnées par l'additionneur 170. La sortie de l'additionneur 170 est reliée à une première entrée du diviseur 172 et à une entrée de commande du multiplexeur 173.
Les sorties des registres 165 à 168 sont reliées respectivement à des secondes entrées des multiplicateurs 161 à 164. Les multiplicateurs 161 à 164 multiplient les valeurs des composantes des vecteurs vitesse par les valeurs des signaux logiques fournies respectivement par les comparateurs 156 à 159, et fournissent le résultat sur des sorties reliées respectivement à quatre entrées de l'additionneur 171. La sortie de l'additionneur 171 est reliée à une seconde entré e du diviseur 172. Une sortie du diviseur 172 fournit la valeur des composantes d'un vecteur vitesse interpolé conformément à la formule (10). Une sortie du multiplexeur 173 est reliée à la borne de sortie 59 du dispositif de calcul 36. Lorsque la somme calculée par l'additionneur 170 n'est pas nulle, la valeur qu'il fournit sur sa sortie commande le multiplexeur 173 pour qu'il transmette la valeur des composantes du vecteur interpolé. Si la valeur de la somme calculée par l'additionneur 170 est égale à 0, c'est-à-dire si les quatre pixels voisins n'ont pas de pixels pères validés, la valeur 0 appliquée à l'entrée de commande du multiplexeur 173 commande la transmission d'un vecteur nul pour constituer le vecteur T fourni par le dispositif de calcul 36. Les moyens de calcul 49, de la seconde partie de l'exemple de réalisation dont le schéma synoptique est représenté sur la figure 15, comportent deux moitiés calculant en parallèle les valeurs de luminance des points de base A et B et la valeur de la fonction DFD, respectivement pour le vecteur vitesse vt fourni par les
moyens de calcul 5b et pour un vecteur vitesse nul. Ces deux calculs en parallèle permettent de gagner du temps lorsque finalement il s'avère que le vecteur vitesse fourni par les moyens de calcul 5b n'est pas validé car
la DFD correspondante a une valeur supérieure au seuil 7.The registers 151 to 154 each have a data input connected to the input terminal 56 for receiving and storing the values of the DFD function read in the memory M2 and corresponding to the four neighboring points respectively. The registers 165 to 168 each have a data input connected to the input terminal 57 to receive the value of the components of the speed vectors read in the memory M1 and corresponding respectively to the four neighboring points. The registers 151 to 154 have outputs connected respectively to first inputs of the comparators 156 to 159. The comparators 156 to 159 have second inputs receiving a constant value equal to 255 and have outputs connected respectively to first inputs of the multipliers 161 to 164 and respectively to four inputs of the adder 170. The comparators 156 to 159 each supply a logic signal of value 1 when the value applied to their first input is less than 255 and a value of zero when the value applied to their first input is equal to 255. The values of these logic signals are added by the adder 170. The output of the adder 170 is connected to a first input of the divider 172 and to a control input of the multiplexer 173. The outputs of registers 165 to 168 are respectively connected to second inputs of the multipliers 161 to 164. The multipliers 161 to 164 multiply the values of the components of the speed vectors by the values of the logic signals supplied respectively by the comparators 156 to 159, and provide the result on outputs connected respectively to four inputs of the adder 171. The output of the adder 171 is connected to a second input e of the divider 172. An output of the divider 172 provides the value of the components of an interpolated speed vector according to formula (10). An output of the multiplexer 173 is connected to the output terminal 59 of the calculation device 36. When the sum calculated by the adder 170 is not zero, the value which it provides on its output controls the multiplexer 173 so that it transmits the value of the components of the interpolated vector. If the value of the sum calculated by the adder 170 is equal to 0, that is to say if the four neighboring pixels do not have validated parent pixels, the value 0 applied to the control input of the multiplexer 173 commands the transmission of a zero vector to constitute the vector T supplied by the computing device 36. The computing means 49, of the second part of the exemplary embodiment, the block diagram of which is shown in FIG. 15, include two halves calculating in parallel the luminance values of the base points A and B and the value of the DFD function, respectively for the speed vector vt provided by the calculation means 5b and for a zero speed vector. These two calculations in parallel make it possible to save time when finally it turns out that the speed vector provided by the calculation means 5b is not validated because the corresponding DFD has a value greater than threshold 7.
Ces moyens de calcul 49 comportent : un dispositif de calcul 37 pour calculer le vecteur
pour le vecteur vitesse
T un dispositif de calcul 38 pour calculer un vecteur
pour le vecteur vitesse
; un dispositif de calcul 41 pour calculer une valeur de luminance L(
Ta) pour le vecteur vitesse
; un dispositif de calcul 42 pour calculer une valeur de luminance L(
PBTb) pour le vecteur vitesse ; un dispositif 43
de lecture de L (
PA, Ta) à l'adresse (IX', IY') dans la mémoire MA et un dispositif 44 de lecture de L(
,Tb) à l'adresse (IX', IY') dans la mémoire MB, ce qui correspond à un vecteur vitesse nul ; un soustracteur 45 et un soustracteur 46 pour déterminer respectivement la valeur de la fonction DFD pour le vecteur vitesse
et pour un vecteur vitesse nul ; un comparateur 48 ; et un multiplexeur 47 à huit entrées et quatre sorties.These calculation means 49 comprise: a calculation device 37 for calculating the vector for the velocity vector T a calculating device 38 for calculating a vector for the velocity vector ; a calculating device 41 for calculating a luminance value L ( T a ) for the velocity vector ; a calculating device 42 for calculating a luminance value L ( PBT b ) for the velocity vector; a device 43 reading L ( PA, T a ) at the address (IX ', IY') in the memory MA and a device 44 for reading L ( , T b ) at the address (IX ', IY') in the memory MB, which corresponds to a zero speed vector; a subtractor 45 and a subtractor 46 for determining respectively the value of the DFD function for the speed vector and for a zero speed vector; a comparator 48; and a multiplexer 47 with eight inputs and four outputs.
Le dispositif de calcul 37 est semblable au dispositif de calcul 6 décrit précédemment et représenté sur la figure 13. Le dispositif de calcul 38 est semblable au dispositif de calcul 8 décrit précédemment et représenté sur la figure 13. Les dispositifs de calcul 41 et 42 sont respectivement semblables aux dispositifs de calcul 10 et 11 décrits précédemment et représentés sur la figure 13. Les dispositifs de lecture 43 et 44 ont chacun une entrée-sortie reliée au bus 9. Ils ont une structure très simple constituée de registres tampons commandés par des signaux fournis par le séquenceur 4, et acheminés par des liaisons non représentées.The calculation device 37 is similar to the calculation device 6 described above and shown in FIG. 13. The calculation device 38 is similar to the calculation device 8 described above and shown in FIG. 13. The calculation devices 41 and 42 are respectively similar to the calculation devices 10 and 11 described above and represented in FIG. 13. The reading devices 43 and 44 each have an input-output connected to the bus 9. They have a very simple structure made up of buffer registers controlled by signals supplied by sequencer 4, and routed by links not shown.
Les dispositifs de calcul 37 et 38 ont chacun leur entrée qui est reliée à la première entrée des moyens de calcul 49 pour recevoir la valeur des composantes du vecteur Tj. Les sorties des dispositifs de
calcul 37 et 38 sont reliées respectivement aux entrées des dispositifs de calcul 41 et 42. La sortie du dispositif 41 est reliée à une première entrée du soustracteur 45 et à une entrée notée ai du multiplexeur 47. La sortie du dispositif 42 est reliée à une seconde entrée du soustracteur 45 et à une entrée notée b1 du multiplexeur 47. La sortie du dispositif 43 est reliée à une première entrée du soustracteur 46 et à une entrée notée a2 du multiplexeur 47. La sortie du dispositif 44 est reliée à une seconde entrée du soustracteur 46 et à une entrée notée b2 du multiplexeur 47.The calculation devices 37 and 38 each have their input which is connected to the first input of the calculation means 49 to receive the value of the components of the vector Tj. The outputs of the calculation 37 and 38 are respectively connected to the inputs of the calculation devices 41 and 42. The output of the device 41 is connected to a first input of the subtractor 45 and to an input marked ai of the multiplexer 47. The output of the device 42 is connected to a second input of the subtractor 45 and to an input denoted b1 of the multiplexer 47. The output of the device 43 is connected to a first input of the subtractor 46 and to an input denoted a2 of the multiplexer 47. The output of the device 44 is connected to a second input of the subtractor 46 and to an input denoted b2 of the multiplexer 47.
La sortie du soustracteur 45 est reliée à une première entrée du comparateur 48 et à une entrée notée d1 du multiplexeur 47. La sortie du soustracteur 46 est reliée à une entrée notée d2 du multiplexeur 47. Le multiplexeur 47 possède en outre : une entrée notée d reliée à la première entrée des moyens de calcul 49 pour recevoir le vecteur Υ une entrée notée c2 qui reçoit
un vecteur vitesse nul ; quatre sorties notées a, b, c, d constituant respectivement une première, une deuxième, une troisième et une quatrième sortie des moyens de calcul 49 ; et une entrée de commande reliée à la sortie du comparateur 48.The output of the subtractor 45 is connected to a first input of the comparator 48 and to an input marked d1 of the multiplexer 47. The output of the subtractor 46 is connected to an input marked d2 of the multiplexer 47. The multiplexer 47 also has: an input marked d connected to the first input of the calculation means 49 to receive the vector Υ an input denoted c2 which receives a zero speed vector; four outputs denoted a, b, c, d constituting respectively a first, a second, a third and a fourth output of the calculation means 49; and a control input connected to the output of comparator 48.
Le soustracteur 45 calcule la valeur de la fonction DFD pour le pixel à interpoler, avec le vecteur Tt
comme vecteur vitesse associé. La valeur de la fonction DFD est comparée à la valeur de seuil, 7, par le comparateur 48. Si la valeur de la fonction DFD est inférieure ou égale à 7, le multiplexeur 47 transmet les informations appliquées aux entrées a1, b1, c1, d1, respectivement vers les sorties a, b, c, d. Si la valeur de la fonction DFD correspondant au vecteur V est supé
rieure à la valeur de seuil, 7, le multiplexeur 47 est commandé pour transmettre les informations présentes
sur les entrées a2, b2, c2, d2 respectivement vers les sorties a, b, c, d.Subtractor 45 calculates the value of the DFD function for the pixel to be interpolated, with the vector Tt as associated velocity vector. The value of the DFD function is compared with the threshold value, 7, by the comparator 48. If the value of the DFD function is less than or equal to 7, the multiplexer 47 transmits the information applied to the inputs a1, b1, c1, d1, respectively to outputs a, b, c, d. If the value of the DFD function corresponding to the vector V is greater lower than the threshold value, 7, the multiplexer 47 is controlled to transmit the information present on inputs a2, b2, c2, d2 respectively to outputs a, b, c, d.
Ainsi la première et la seconde sortie des moyens de calcul 49 fournissent respectivement une valeur de luminance L
,Ta), L(
,Tb), correspondant au vecteur vitesse retenu pour être associé au pixel à interpoler ; la seconde et la troisième sortie des moyens de calcul 49 fournissent respectivement le vecteur vitesse qui est retenu pour constituer le vecteur V(IX' ,IY' ,Ti) associé au pixel à interpoler, et la valeur de la fonction DFD correspondant à ce pixel à interpoler (IX' ,IY' ,Ti).Thus the first and the second output of the calculation means 49 respectively provide a luminance value L , T a ), L ( , T b ), corresponding to the speed vector selected to be associated with the pixel to be interpolated; the second and the third output of the calculation means 49 respectively supply the speed vector which is used to constitute the vector V (IX ′, IY ′, T i ) associated with the pixel to be interpolated, and the value of the DFD function corresponding to this pixel to be interpolated (IX ', IY', T i ).
La troisième et la quatrième sortie des moyens de calcul 49 sont reliées respectivement aux bornes d'entrée 26 et 29 des moyens de calcul 5a pour l'inscription du vecteur vitesse associé et de la valeur de la fonction DFD dans les mémoires M1 et M2 à l'adresse constituée par les coordonnées (IX', IY'). Ce vecteur vitesse et cette valeur de la fonction DFD seront ainsi disponibles ultérieurement pour calculer des vecteurs vitesse interpolés pour des pixels orphelins.The third and fourth outputs of the calculation means 49 are respectively connected to the input terminals 26 and 29 of the calculation means 5a for recording the associated speed vector and the value of the DFD function in the memories M1 and M2 at the address constituted by the coordinates (IX ', IY'). This speed vector and this value of the DFD function will thus be available later to calculate interpolated speed vectors for orphan pixels.
Les moyens de calcul 50 possèdent deux entrées reliées respectivement à la première et à la seconde sortie des moyens de calcul 49 pour recevoir les deux valeurs de luminance des points de base A et B correspondant au pixel à interpoler. Les moyens de calcul 50 comportent deux multiplicateurs 51 et 52 et un additionneur 53. Le multiplicateur 51 possède : une première entrée reliée à la première sortie des moyens 49 ; une seconde entrée recevant une valeur constante égale à
T -T ; et une sortie reliée à une première entrée de l'adiitionneur 53. Le multiplicateur 52 possède : une première entrée reliée à la deuxième sortie des moyens 49 ; une seconde entrée recevant une valeur constante
égale à et une sortie reliée à une seconde
entrée de l'additionneur 53. L'additionneur 53 possède une sortie reliée à la borne de sortie 51 du dispositif d'interpolation temporelle pour lui fournir une valeur de luminance interpolée L(IX' ,IY' ,Ti) correspondant au pixel à interpoler, de coordonnées (IX' ,IY' ,Ti), et calculée selon la formule (9). Ces valeurs de luminance peuvent être utilisées en temps réel, au fur et à mesure de leur calcul, ou bien être stockées dans une mémoire de la trame, non représentée.The calculation means 50 have two inputs connected respectively to the first and to the second output of the calculation means 49 to receive the two luminance values of the base points A and B corresponding to the pixel to be interpolated. The calculation means 50 comprise two multipliers 51 and 52 and an adder 53. The multiplier 51 has: a first input connected to the first output of the means 49; a second input receiving a constant value equal to T -T; and an output connected to a first input of the adder 53. The multiplier 52 has: a first input connected to the second output of the means 49; a second input receiving a constant value equal to and one output connected to one second input of the adder 53. The adder 53 has an output connected to the output terminal 51 of the time interpolation device to provide it with an interpolated luminance value L (IX ′, IY ′, T i ) corresponding to the pixel at interpolate, with coordinates (IX ', IY', T i ), and calculated according to formula (9). These luminance values can be used in real time, as they are calculated, or else be stored in a memory of the frame, not shown.
L'invention ne se limite pas aux exemples de réalisation décrits ci-dessus, de nombreuses variantes sont à la portée de l'homme de l'art. Notamment il est à la portée de l'homme de l'art de modifier l'exemple de réalisation décrit précédemment pour mettre en oeuvre la deuxième et la troisième variante du procédé, décrites précédemment.The invention is not limited to the embodiments described above, many variants are within the reach of ordinary skill in the art. In particular, it is within the reach of those skilled in the art to modify the embodiment described above to implement the second and third variants of the method, described above.
L ' invention est applicable en temps réel notamment aux dispositifs de changement de standard pour des trames de télévision, et à la restitution de trames transmises à très bas débit avec suppression d'un certain nombre de trames.
The invention is applicable in real time, in particular to devices for changing the standard for television frames, and for the restitution of frames transmitted at very low bit rate with the suppression of a certain number of frames.
Claims
1. Procédé d'interpolation temporelle d'images, pour déterminer une valeur de luminance interpolée pour chaque pixel d'une image (Tj) dite image à interpoler, à partir des valeurs de luminance des pixels d'une première et d'une seconde image dites images connues (Ta ,1. A method of temporal interpolation of images, to determine an interpolated luminance value for each pixel of an image (T j ) said image to be interpolated, from the luminance values of the pixels of a first and of a second image called known images (T a ,
Tb), prises à des instants Ta et Tb respectivement, Tj étant compris entre Ta et Tb ; consistant à :T b ), taken at times T a and T b respectively, T j being between T a and T b ; consists in :
- associer les valeurs des composantes d'un vecteur vitesse à chaque pixel (H) de l'image à interpoler (Tj), dit pixel à interpoler ;- associate the values of the components of a speed vector with each pixel (H) of the image to be interpolated (T j ), said pixel to be interpolated;
- déterminer dans les deux images connues (Ta ,- determine in the two known images (T a ,
Tb) les coordonnées de deux points (A, B) appelées points de base de l'interpolation temporelle, chacun de ces deux points correspondant au centre (Fj) du pixel à interpoler (H), par une translation dans le plan de l'une des images connues (Ta , Tb), translation dont le vecteur est fonction du vecteur vitesse associé au pixel à interpoler (H), multiplié respectivement par les durées Tj-Ta et Tb-Tj ; - déterminer la valeur de luminance de chacun des deux points de base (A, B) par une interpolation spatiale entre des pixels voisins de chacun de ces points de base (A, B), respectivement dans les deux images connues (Ta , Tb) ; - déterminer une valeur de luminance pour le pixel à interpoler (H), en calculant une combinaison linéaire des deux valeurs de luminance des points de baseT b ) the coordinates of two points (A, B) called base points of the temporal interpolation, each of these two points corresponding to the center (F j ) of the pixel to be interpolated (H), by a translation in the plane of one of the known images (T a , T b ), translation whose vector is a function of the speed vector associated with the pixel to be interpolated (H), multiplied respectively by the durations T j -T a and T b -T j ; - determine the luminance value of each of the two base points (A, B) by spatial interpolation between neighboring pixels of each of these base points (A, B), respectively in the two known images (T a , T b ); - determine a luminance value for the pixel to be interpolated (H), by calculating a linear combination of the two luminance values of the base points
(A, B), pondérées par les durées Tj-Ta et Tb-Tj respectivement ; caractérisé en ce que, pour associer les composantes d'un vecteur vitesse à chaque pixel à interpoler (H), il consiste à : - estimer par un procédé classique les composantes d'un vecteur vitesse pour chaque pixel (G) d'une seule image (Ti), dite porteuse du mouvement, correspondant à un instant Ti compris entre Ta et Tb , ou étant Ta ou Tb ;(A, B), weighted by the durations T j -T a and T b -T j respectively; characterized in that, to associate the components of a speed vector with each pixel to be interpolated (H), it consists in: - estimate by a conventional process the components of a speed vector for each pixel (G) of a single image (T i ), called the carrier of the movement, corresponding to an instant T i between T a and T b , or being T a or T b ;
- déterminer, successivement pour chaque pixel- determine, successively for each pixel
(G) de l'image porteuse (Ti), dit pixel père, les coordonnées du centre (Fj) d'un pixel à interpoler (H), dit pixel fils, correspondant au centre (Cj) du pixel père par une translation dont le vecteur est fonction du vecteur vitesse i du pixel père, multiplié par la durée(G) of the carrier image (T i ), said father pixel, the coordinates of the center (F j ) of a pixel to be interpolated (H), said child pixel, corresponding to the center (C j ) of the father pixel by a translation whose vector is a function of the speed vector i of the parent pixel, multiplied by the duration
Ti-Tj ;T i -T j ;
- associer, successivement à chaque pixel à interpoler (H), un vecteur vitesse constitué par le vecteur vitesse de son pixel père (G) ou de l'un de ses pixels pères, s'il existe au moins un pixel père pour ce pixel à interpoler (H).- associate, successively with each pixel to be interpolated (H), a speed vector constituted by the speed vector its parent pixel (G) or one of its parent pixels, if there is at least one parent pixel for this pixel to be interpolated (H).
2. Procédé selon la revendication 1, caractérisé en ce que pour déterminer les coordonnées du centre (Fj) d'un pixel fils (H) correspondant à un pixel père donné (G), il consiste à :2. Method according to claim 1, characterized in that to determine the coordinates of the center (F j ) of a child pixel (H) corresponding to a given father pixel (G), it consists in:
- déterminer les coordonnées d'un point (Ej) de l'image à interpoler (Tj) correspondant au centre (Ci) du pixel père (G), par une translation dont le vecteur est égal au vecteur vitesse du pixel père multiplié par la durée Ti-Tj ;- determine the coordinates of a point (E j ) of the image to be interpolated (T j ) corresponding to the center (C i ) of the parent pixel (G), by a translation whose vector is equal to the speed vector of the parent pixel multiplied by the duration T i -T j ;
- puis à déterminer le pixel (H) de l'image à interpoler (Tj), dont le centre (Fj) est le plus proche du point (Ej) ainsi déterminé, ce pixel constituant alors le pixel fils du pixel père donné (G).- then to determine the pixel (H) of the image to be interpolated (T j ), whose center (F j ) is closest to the point (E j ) thus determined, this pixel then constituting the child pixel of the parent pixel given (G).
3. Procédé selon la revendication 1, appliqué à des images constituées par des trames d'images de télévision, caractérisé en ce que pour déterminer les coordonnées du centre (Fj) d'un pixel fils correspondant au centre (Cj) d'un pixel père donné, il consiste à : - déterminer les coordonnées d'un point (Ej) de la trame à interpoler (Tj) correspondant au centre (Ci) du pixel père (G), par une translation dont le vecteur est égal au vecteur vitesse du pixel père multiplié par la durée Ti-Tj , en décalant l'une des coordonnées du point (Ej) de l'image à interpoler correspondant au centre (Cj) du pixel père (G), d'une valeur égale à 0 ou -0,5 ou +0,5 pixel, en fonction de la parité de la trame constituant l'image à interpoler (Tj) et de la parité de la trame constituant l'image porteuse de mouvement (Ti) ;3. Method according to claim 1, applied to images consisting of television image frames, characterized in that to determine the coordinates of the center (F j ) of a child pixel corresponding to the center (C j ) of a given parent pixel, it consists of: - determine the coordinates of a point (E j ) of the frame to be interpolated (T j ) corresponding to the center (C i ) of the father pixel (G), by a translation whose vector is equal to the speed vector of the multiplied father pixel by the duration T i -T j , by shifting one of the coordinates of the point (E j ) of the image to be interpolated corresponding to the center (C j ) of the parent pixel (G), by a value equal to 0 or -0.5 or +0.5 pixels, depending on the parity of the frame constituting the image to be interpolated (T j ) and the parity of the frame constituting the motion-carrying image (T i );
- puis à déterminer le pixel (H) de l'image à interpoler (Tj), dont le centre (Fj) est le plus proche du point (Ej) ainsi déterminé, ce pixel constituant alors le pixel fils du pixel père donné (G) ; et en ce que pour déterminer dans les deux images connues (Ta , Tb) les coordonnées des deux points de base (A, B), il consiste en outre à décaler l'une de s coordonnées de ces deux points (A, B) de 0 ou -0,5 ou +0,5 pixel, en fonction des parités des deux trames constituant les deux images connues (Ta , Tb), et de la parité de la trame constituant l'image à interpoler- then to determine the pixel (H) of the image to be interpolated (T j ), whose center (F j ) is closest to the point (E j ) thus determined, this pixel then constituting the child pixel of the parent pixel given (G); and in that in order to determine in the two known images (T a , T b ) the coordinates of the two base points (A, B), it also consists in shifting one of s coordinates of these two points (A, B) of 0 or -0.5 or +0.5 pixels, depending on the parities of the two frames constituting the two known images (T a , T b ), and the parity of the frame constituting the image to be interpolated
(Tj).(T j ).
4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que pour chaque pixel à interpoler (H) ayant au moins un pixel père, il consiste en outre à valider le vecteur vitesse du pixel père (G), en calculant la valeur, appellée DFD du pixel à interpoler, de la différence des luminances des deux points de base (A, B) de l'interpolation temporelle ; et en vérifiant que la DFD est inférieure à une valeur de seuil fixée ; et en ce que, si le vecteur vitesse d'aucun pixel père n'est validé, ou si le pixel à interpoler n'a aucun pixel père, il consiste en outre : - à associer au pixel à interpoler un vecteur vitesse interpolé en fonction des vecteurs vitesses associés aux pixels voisins du pixel à interpoler, si la DFD du pixel à interpoler, calculée pour le vecteur vitesse interpolé, est inférieure à une valeur de seuil fixée ;4. Method according to one of claims 1 to 3, characterized in that for each pixel to be interpolated (H) having at least one parent pixel, it also consists in validating the speed vector of the parent pixel (G), by calculating the value, called DFD of the pixel to be interpolated, of the difference in the luminances of the two base points (A, B) of the temporal interpolation; and verifying that the DFD is less than a fixed threshold value; and in that, if the speed vector of no parent pixel is not validated, or if the pixel to be interpolated has no parent pixel, it also consists: - Associating with the pixel to be interpolated an interpolated speed vector as a function of the speed vectors associated with the neighboring pixels of the pixel to be interpolated, if the DFD of the pixel to be interpolated, calculated for the interpolated speed vector, is less than a fixed threshold value;
- sinon, à associer au pixel à interpoler un vecteur vitesse nul.- otherwise, to associate with the pixel to be interpolated a zero speed vector.
5. Procédé selon la revendication 4, caractérisé en ce que, lorsqu'un pixel à interpoler (H) a plusieurs pixels pères (G), le vecteur vitesse associé à ce pixel à interpoler est constitué par le vecteur vitesse du pixel père tel que la DFD du pixel à interpoler soit minimale.5. Method according to claim 4, characterized in that, when a pixel to be interpolated (H) has several parent pixels (G), the speed vector associated with this pixel to be interpolated is constituted by the speed vector of the parent pixel such that the DFD of the pixel to be interpolated is minimal.
6. Procédé selon la revendication 1, caractérisé en ce que, lorsqu' un pixel à interpoler (H) a plusieurs pixels pères (G), le vecteur vitesse associé à ce pixel à interpoler est constitué par le vecteur vitesse du pixel père ayant été déterminé en dernier.6. Method according to claim 1, characterized in that, when a pixel to be interpolated (H) has several parent pixels (G), the speed vector associated with this pixel to be interpolated is constituted by the speed vector of the parent pixel having been determined last.
7. Procédé selon la revendication 1, caractérisé en ce qu'il consiste en outre, pour chaque pixel à interpoler (H) n'ayant pas de pixel père à lui associer un vecteur vitesse interpolé en fonction des vecteurs vitesses associés aux pixels voisins du pixel à interpoler, s'il y a des pixels voisins ayant un vecteur vitesse associé ; sinon, à lui associer un vecteur vitesse nul.7. Method according to claim 1, characterized in that it further consists, for each pixel to be interpolated (H) having no parent pixel, to associate with it a speed vector interpolated as a function of the speed vectors associated with the neighboring pixels of the pixel to be interpolated, if there are neighboring pixels having an associated speed vector; otherwise, to associate it with a zero speed vector.
8. Procédé selon la revendication 1, caractérisé en ce qu'il consiste en outre, pour chaque pixel à interpoler (H) n'ayant pas de pixel père (G) à lui associer un vecteur vitesse nul.8. Method according to claim 1, characterized in that it also consists, for each pixel to be interpolated (H) having no parent pixel (G), to associate therewith a zero speed vector.
9. Dispositif d'interpolation temporelle d'images, pour la mise en oeuvre du procédé selon la revendication 1 , recevant une suite de valeurs de luminance représentant respectivement les pixels d'une première image connue (Ta) prise à un instant Ta et les pixels d'une seconde image connue (Tb) prise à un instant Tb ; recevant une suite de valeurs représentant respectivement les composantes du vecteur vitesse des pixels d'une troisième image (Ti), dite image porteuse du mouvement, correspondant à un instant Ti compris entre Ta et Tb ou pouvant être Ta ou Tb ; et fournissant une suite de valeurs de luminance interpolées représentant la luminance des pixels d'une image à interpoler (Tj) correspondant à un instant Tj compris entre Ta et Tb ; caractérisé en ce qu'il comporte :9. Device for temporal interpolation of images, for implementing the method according to claim 1, receiving a series of luminance values representing respectively the pixels of a first known image (T a ) taken at an instant T a and the pixels of a second known image (T b ) taken at an instant T b ; receiving a series of values representing respectively the components of the speed vector of the pixels of a third image (T i ), called the image carrying motion, corresponding to an instant T i between T a and T b or which can be T a or T b ; and providing a series of interpolated luminance values representing the luminance of the pixels of an image to be interpolated (T j ) corresponding to an instant T j between T a and T b ; characterized in that it comprises:
- une première et une seconde mémoire (MA, MB) pour stocker respectivement les valeurs de luminance de la première et de la seconde image connue (Ta , Tb) ; - des premiers moyens de calcul (7) pour calculer, pour chaque pixel de l'image porteuse (Ti), dit pixel père (G), les coordonnées du centre (Fj) d'un pixel, dit pixel fils (H), s i tué dans l'image à interpoler (Tj) et dont le centre (Fj) correspond au centre (Cj) du pixel père par une translation dont le vecteur est fonction du vecteur vitesse du pixel père (G), multiplié par la durée Ti-Tj ;- a first and a second memory (MA, MB) for storing respectively the luminance values of the first and of the second known image (T a , T b ); - first calculation means (7) for calculating, for each pixel of the carrier image (T i ), called the father pixel (G), the coordinates of the center (F j ) of a pixel, called the child pixel (H ), if killed in the image to be interpolated (T j ) and whose center (F j ) corresponds to the center (C j ) of the parent pixel by a translation whose vector is a function of the speed vector of the parent pixel (G), multiplied by the duration T i -T j ;
- des deuxièmes moyens de calcul (5a, 5b) pour associer à chaque pixel (H) de l'image à interpoler (Tj), dit pixel à interpoler, un vecteur vitesse qui est le vecteur vitesse de son pixel père (G) ou de l'un de ses pixels pères, s'il en exite au moin un ;- second calculation means (5a, 5b) for associating with each pixel (H) of the image to be interpolated (T j ), said pixel to be interpolated, a speed vector which is the speed vector of its parent pixel (G) or one of its parent pixels, if there is at least one;
- des troisièmes moyens (49) pour calculer les coordonnées, dans les deux images connues (Ta , Tb) respectivement, de deux points (A, B) appelés points de base de l'interpolation temporelle, chacun de ces deux points (A, B) correspondant au centre du pixel à interpoler (H), par une translation dont le vecteur est fonction de vecteur vitesse associé au pixel à interpoler, multiplié respectivement par les durées Tj-Ta et Tb-Tj ; - et des quatrièmes moyens (50) pour calculer les valeurs de luminance des deux points de base (A, B) et en déduire une valeur de luminance pour le pixel à interpoler (H), en calculant une combinaison linéaire de deux valeurs de luminance des deux points de base, pondérées par les durées Tj-Ta et Tb-Tj respectivement.- third means (49) for calculating the coordinates, in the two known images (T a , T b ) respectively, of two points (A, B) called base points of the temporal interpolation, each of these two points ( A, B) corresponding to the center of the pixel to be interpolated (H), by a translation whose vector is a function of speed vector associated with the pixel to be interpolated, multiplied respectively by the durations T j -T a and T b -T j ; - and fourth means (50) for calculating the luminance values of the two base points (A, B) and deducing therefrom a luminance value for the pixel to be interpolated (H), by calculating a linear combination of two luminance values of the two base points, weighted by the durations T j -T a and T b -T j respectively.
10. Dispositif selon la revendication 9, pour la mise en oeuvre du procédé selon la revendication 2, caractérisé en ce que les premiers moyens de calcul (7) comportent :10. Device according to claim 9, for implementing the method according to claim 2, characterized in that the first calculation means (7) comprise:
- un multiplicateur (71) pour calculer un vecteur en multipliant le vecteur vitesse du pixel père (G), par la durée Ti-Tj ;- a multiplier (71) for calculating a vector by multiplying the speed vector of the parent pixel (G), by the duration T i -T j ;
- un soustracteur (72) pour soustraire, au vecteur calculé par le multiplicateur (71), un vecteur ayant pour composantes les coordonnées (IX,IY) du centre ( C j ) du pixel père (G) ;- a subtractor (72) for subtracting, from the vector calculated by the multiplier (71), a vector having as components the coordinates (IX, IY) of the center (C j ) of the parent pixel (G);
- un dispositif (74) pour calculer la valeur entière la plus proche de chacune des composantes du vecteur calculé par le soustracteur (72) ; chacune constituant une coordonnée du centre (Fj) du pixel fils (H).- a device (74) for calculating the integer value closest to each of the components of the vector calculated by the subtractor (72); each constituting a coordinate of the center (F j ) of the child pixel (H).
11. Dispositif selon la revendication 10, pour la mise en oeuvre du procédé selon la revendication 3, caractérisé en ce qu'il comporte en outre un dispositif (73) de correction de parité de trames, pour additionner un vecteur de correction au vecteur calculé par le soustracteur (72), intercalé entre le soustracteur (72) et le dispositif (74) pour calculer la valeur entière la plus proche de chaque composante ; le dispositif de correction (73) étant commandé en fonction de la parité des trames correspondant aux instants Ti et Tj .11. Device according to claim 10, for implementing the method according to claim 3, characterized in that it further comprises a device (73) for parity correction of frames, for adding a correction vector to the calculated vector by the subtractor (72), interposed between the subtractor (72) and the device (74) to calculate the integer value closest to each component; the correction device (73) being controlled as a function of the parity of the frames corresponding to the instants T i and T j .
12. Dispositif selon la revendication 9, pour la mise en oeuvre du procédé selon la revendication 4, caractérisé en ce que les deuxièmes moyens de calcul (5a, 5b) comportent : - deux premiers dispositifs de calcul (6, 8) pour calculer les coordonnées, dans les deux images connues (Ta , Tb) respectivement, de deux points (A, B) appelés points de base de l'interpolation temporelle, à parti des coordonnées du pixel à interpoler (H), par une translation fonction du vecteur vitesse d'un pixel père12. Device according to claim 9, for implementing the method according to claim 4, characterized in that the second calculation means (5a, 5b) comprise: - two first calculation devices (6, 8) to calculate the coordinates, in the two known images (T a , T b ) respectively, of two points (A, B) called base points of the temporal interpolation, starting coordinates of the pixel to be interpolated (H), by a translation function of the speed vector of a parent pixel
(G) du pixel à interpoler, s'il existe au moins un pixel père, et en fonction des durées Tj-Ta et Tb-Tj respectivement ; - deux deuxièmes dispositifs de calcul (10, 11) pour calculer les valeurs de luminance des deux points de base (A, B) par une interpolation spatiale respectivement dans les deux images connues (Ta , Tb );(G) of the pixel to be interpolated, if there is at least one parent pixel, and as a function of the durations T j -T a and T b -T j respectively; - two second calculation devices (10, 11) for calculating the luminance values of the two base points (A, B) by spatial interpolation respectively in the two known images (T a , T b );
- un soustracteur (14) pour calculer la valeur absolue, appelée DFD du pixel à interpoler de la différence, des deux valeurs de luminance calculées par les deuxièmes dispositifs de calcul (10, 11) ;- a subtractor (14) for calculating the absolute value, called the DFD of the pixel to be interpolated of the difference, of the two luminance values calculated by the second calculation devices (10, 11);
- un premier comparateur (16) pour comparer la valeur de DFD à une valeur de seuil prédéterminée, et valider le vecteur vitesse du pixel père considéré si la valeur de DFD est inférieure à la valeur de seuil ;- a first comparator (16) for comparing the value of DFD with a predetermined threshold value, and validating the speed vector of the father pixel considered if the value of DFD is less than the threshold value;
- une première mémoire (M1) pour stocker un vecteur vitesse associé, pour chaque pixel à interpoler ;- a first memory (M1) for storing an associated speed vector, for each pixel to be interpolated;
- des moyens de calcul (5b) pour associer à un pixel à interpoler, un vecteur vitesse interpolé à partir de vecteurs vitesses associés à des pixels voisins, et lus dans la première mémoire (M1), lorsque le pixel à interpoler n'a aucun pixel père dont le vecteur vitesse est validé. - calculation means (5b) for associating with a pixel to be interpolated, a speed vector interpolated from speed vectors associated with neighboring pixels, and read in the first memory (M1), when the pixel to be interpolated has no parent pixel whose velocity vector is validated.
13. Dispositif selon la revendication 12, pour la mise en oeuvre du procédé selon la revendication 5, caractérisé en ce que les deuxièmes moyens de calcul (5a, 5b) comportent en outre :13. Device according to claim 12, for implementing the method according to claim 5, characterized in that the second calculation means (5a, 5b) further comprise:
- une seconde mémoire (M2) pour stocker une valeur de DFD pour chaque pixel à interpoler ; - un second comparateur (15) pour comparer chaque valeur de DFD calculée pour un pixel à interpoler, avec une valeur de DFD stockée précédemment pour le même pixel à interpoler ; - des moyens (4, 18) pour incrire dans la première mémoire (M1) le vecteur vitesse d'un pixel père (G) d'un pixel à interpoler (H), si la valeur de DFD calculée pour ce vecteur vitesse est inférieure à celle stockée dans la seconde mémoire (M2) à l'adresse correspondant à ce pixel à interpoler (H) ;- a second memory (M2) for storing a DFD value for each pixel to be interpolated; - a second comparator (15) for comparing each calculated DFD value for a pixel to be interpolated, with a previously stored DFD value for the same pixel to be interpolated; - means (4, 18) for writing into the first memory (M1) the speed vector of a father pixel (G) of a pixel to be interpolated (H), if the DFD value calculated for this speed vector is lower to that stored in the second memory (M2) at the address corresponding to this pixel to be interpolated (H);
- des moyens (4, 17) pour inscrire dans la seconde mémoire (M2) la valeur de DFD calculée pour ce vecteur vitesse, à l'adresse correspondant au pixel à interpoler (H). - Means (4, 17) for writing into the second memory (M2) the value of DFD calculated for this speed vector, at the address corresponding to the pixel to be interpolated (H).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR8707814A FR2616248B1 (en) | 1987-06-04 | 1987-06-04 | METHOD FOR TEMPORAL INTERPOLATION OF IMAGES AND DEVICE FOR CARRYING OUT SAID METHOD |
FR8707814 | 1987-06-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
EP0315673A1 true EP0315673A1 (en) | 1989-05-17 |
Family
ID=9351724
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP88401315A Expired - Lifetime EP0294282B1 (en) | 1987-06-04 | 1988-05-31 | Method for the temporal interpolation of pictures, and apparatus for carrying out this method |
EP88905206A Pending EP0315673A1 (en) | 1987-06-04 | 1988-05-31 | Process and device for temporal interpolation of images |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP88401315A Expired - Lifetime EP0294282B1 (en) | 1987-06-04 | 1988-05-31 | Method for the temporal interpolation of pictures, and apparatus for carrying out this method |
Country Status (7)
Country | Link |
---|---|
EP (2) | EP0294282B1 (en) |
JP (1) | JP3161467B2 (en) |
AT (1) | ATE91580T1 (en) |
DE (1) | DE3882285T2 (en) |
ES (1) | ES2041816T3 (en) |
FR (1) | FR2616248B1 (en) |
WO (1) | WO1988010046A1 (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2645383B1 (en) * | 1989-03-31 | 1997-06-27 | Thomson Consumer Electronics | METHOD AND DEVICE FOR TEMPORAL INTERPOLATION OF IMAGES WITH CORRECTED MOTION COMPENSATION |
FR2653629B1 (en) * | 1989-10-20 | 1995-07-07 | Europ Rech Electr Lab | MOTION COMPENSATION DEVICE AND TELEVISION RECEIVER COMPRISING SUCH A DEVICE. |
FR2673795B1 (en) * | 1991-03-05 | 1993-05-07 | Thomson Csf | METHOD AND APPARATUS FOR SUITABLE INTERPOLATION OF SUB-BAND SIGNALS FOR INTER-IMAGE COMPATIBLE CODING OF TELEVISION SIGNALS. |
ATE162037T1 (en) * | 1991-05-24 | 1998-01-15 | British Broadcasting Corp | VIDEO IMAGE PROCESSING |
FR2702915B1 (en) * | 1993-03-16 | 1995-04-21 | Thomson Csf | Method for converting movement information between two time frequencies in a moving image transmission network. |
DE4407101A1 (en) * | 1994-03-03 | 1995-09-14 | Siemens Ag | Method for converting the format of image sequences present in a first pixel grid into a second pixel grid |
GB2311183A (en) * | 1996-03-13 | 1997-09-17 | Innovision Plc | Gradient based motion estimation |
FR2773038B1 (en) * | 1997-12-24 | 2000-02-25 | Thomson Multimedia Sa | METHOD AND DEVICE FOR INTERPOLATING IMAGES FROM MPEG-ENCODED VIDEO DATA |
GB2350005B (en) | 1999-03-17 | 2003-01-08 | Canon Kk | Image processing apparatus |
US8374465B2 (en) | 2002-02-28 | 2013-02-12 | Entropic Communications, Inc. | Method and apparatus for field rate up-conversion |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3144050C2 (en) * | 1981-11-03 | 1983-09-29 | Deutsche Forschungs- und Versuchsanstalt für Luft- und Raumfahrt e.V., 5000 Köln | Method for the transmission and reproduction of video scenes, in particular aerial photo scenes, with a reduced frame rate |
JPS6126382A (en) * | 1984-07-17 | 1986-02-05 | Kokusai Denshin Denwa Co Ltd <Kdd> | Animation frame rate conversion system with use of moving quantity |
GB2165417B (en) * | 1984-09-07 | 1988-02-10 | British Broadcasting Corp | Measurement and correction of film unsteadiness in a video signal |
-
1987
- 1987-06-04 FR FR8707814A patent/FR2616248B1/en not_active Expired - Lifetime
-
1988
- 1988-05-31 DE DE88401315T patent/DE3882285T2/en not_active Expired - Lifetime
- 1988-05-31 ES ES198888401315T patent/ES2041816T3/en not_active Expired - Lifetime
- 1988-05-31 EP EP88401315A patent/EP0294282B1/en not_active Expired - Lifetime
- 1988-05-31 AT AT88401315T patent/ATE91580T1/en not_active IP Right Cessation
- 1988-05-31 WO PCT/FR1988/000271 patent/WO1988010046A1/en not_active Application Discontinuation
- 1988-05-31 EP EP88905206A patent/EP0315673A1/en active Pending
- 1988-05-31 JP JP50486988A patent/JP3161467B2/en not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
See references of WO8810046A1 * |
Also Published As
Publication number | Publication date |
---|---|
FR2616248B1 (en) | 1992-04-24 |
JP3161467B2 (en) | 2001-04-25 |
JPH01503830A (en) | 1989-12-21 |
FR2616248A1 (en) | 1988-12-09 |
WO1988010046A1 (en) | 1988-12-15 |
EP0294282B1 (en) | 1993-07-14 |
ATE91580T1 (en) | 1993-07-15 |
DE3882285T2 (en) | 1993-10-28 |
ES2041816T3 (en) | 1993-12-01 |
DE3882285D1 (en) | 1993-08-19 |
EP0294282A1 (en) | 1988-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0128789B1 (en) | Method for realising a geometrical tranformation on a video picture, and device for carrying out this method | |
EP0022713B1 (en) | Device for coding and decoding a digital videophone signal | |
EP0321356B1 (en) | Multiple prediction method for estimating the movement of points in an electronic image | |
FR2594281A1 (en) | APPARATUS FOR ESTIMATING NOISE IN SIGNALS HAVING REDUNDANT INTERVALS | |
FR2480547A1 (en) | DIGITAL CIRCUIT FOR MEASURING SHADING EFFECTS AND SETTING ERRORS IN TELEVISION CAMERAS | |
EP0091363A2 (en) | Video picture background generating apparatus | |
EP0294282B1 (en) | Method for the temporal interpolation of pictures, and apparatus for carrying out this method | |
FR2523390A1 (en) | IMAGE INFORMATION MASKING APPARATUS | |
US5214751A (en) | Method for the temporal interpolation of images and device for implementing this method | |
EP0143010A1 (en) | Method and device for detecting moving television picture elements for digital data flow compression television systems with conditional replenishment | |
EP0412003B1 (en) | Device for transforming a movement information into a movement detection signal with desired number of lines and field frequency for a high definition television receiver | |
FR2587499A1 (en) | VISUALIZATION SYSTEM ON A MATRIX DATA DISPLAY SCREEN IN POLAR COORDINATES | |
EP0135405A1 (en) | Method and device for detecting moving television picture points for digital data flow compression television systems with conditional replenishment | |
FR2589302A1 (en) | INFRARED THERMOGRAPHY SYSTEM WITH IMPROVED SENSITIVITY BY PROGRESSIVE AMOUNTING OF IMAGE LINES | |
FR2535561A1 (en) | VIDEO SIGNAL PROCESSING SYSTEM | |
EP0286192B1 (en) | Method and device for estimating the motion in a sequence of pictures | |
EP0123573B1 (en) | Method for the adaptive coding and decoding of a television picture, and device for carrying out such a method | |
EP0843867B1 (en) | Method for processing a noisy digital image source sequence | |
EP0690623A1 (en) | Method of and device for inserting asynchronous data into a digital signal | |
EP0424269A1 (en) | Movement compensation device and television receiver containing such a device | |
EP0127525A1 (en) | Method and apparatus for coding at a small cost data flow for television systems with conditional replenishment | |
EP0391760A1 (en) | Device for converting the frame rate for a high definition television receiver, and coded television motion detection method | |
EP0419315B1 (en) | Method for motion detection desired field frequency and line number, and apparatus for carrying out this method | |
FR2717648A1 (en) | Method and device for estimating motion between television images of a sequence of images. | |
FR2689354A1 (en) | Recursive procedure for improving degraded video image - has movement detector to determine necessary digital image processing to compensate for movement during image acquisition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 19890107 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT CH DE GB IT LI NL SE |
|
XX | Miscellaneous (additional remarks) |
Free format text: VERFAHREN ABGESCHLOSSEN INFOLGE VERBINDUNG MIT 88401315.2/0294282 (EUROPAEISCHE ANMELDENUMMER/VEROEFFENTLICHUNGSNUMMER) VOM 28.12.89. |