WO2004112398A1 - Method and device for encoding and decoding a video image sequence - Google Patents

Method and device for encoding and decoding a video image sequence Download PDF

Info

Publication number
WO2004112398A1
WO2004112398A1 PCT/EP2004/006237 EP2004006237W WO2004112398A1 WO 2004112398 A1 WO2004112398 A1 WO 2004112398A1 EP 2004006237 W EP2004006237 W EP 2004006237W WO 2004112398 A1 WO2004112398 A1 WO 2004112398A1
Authority
WO
WIPO (PCT)
Prior art keywords
sequence
image
sub
images
coefficients
Prior art date
Application number
PCT/EP2004/006237
Other languages
French (fr)
Inventor
Sébastien BRANGOULO
Patrick Gioia
Nathalie Laurent
Original Assignee
France Telecom
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom filed Critical France Telecom
Publication of WO2004112398A1 publication Critical patent/WO2004112398A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/649Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding the transform being applied to non rectangular image segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding

Definitions

  • the present invention relates to a method and a device for coding and decoding image sequences.
  • the invention lies in the field of the adaptation over time of the coefficients obtained on a mesh of an image, the coefficients being produced by second generation wavelet transforms.
  • DCT discrete cosine transformation
  • a video sequence is processed so as to remove the spatial and temporal redundancies of the images of the sequence.
  • the coded sequence more particularly according to the MPEG-4 type coding, then consists of a set of I / B / P images.
  • the I images called Intra images are encoded in the same way as still images and serve as a reference for the other images in the sequence.
  • the images P called predicted images contain two types of information: error information compensated for movement and motion vectors representative of the movement relative to a previous image. These two pieces of information are deduced from one or more preceding images which can be of type I or of type P.
  • the images B called bidirectional images also contain these two pieces of information but are the latter are now based on two references, namely a reference to an image before image B during the reproduction of the video sequence and a reference to an image after image B during the reproduction of the video sequence, the anterior and posterior images can be of type I or type P.
  • MPEG-4 or ITU-T / H263 encodings are now considered to have reached their limits, in particular because of the structure of rigid blocks of fixed size which are used as support for all the calculations and encoding operations. This is all the more true when the images and / or sequences of images are highly compressed.
  • Wavelet transforms are a very simple mathematical tool for breaking down functions in a hierarchical diagram. Briefly, the wavelet transforms make it possible to decompose a function into an approximation function and another function of details which influences the original function at various scales. The wavelet transforms are thus adapted to a multiresolution analysis of an image for example.
  • the aim of the invention is to solve the problems of the prior art by proposing a method of coding a sequence of video images, the sequence of video images being broken down into sub-sequences of video images, a mesh being performed on the images of the video sequence, coefficients being determined for each image from at least one wavelet transform, characterized in that the method comprises the steps of:
  • the invention proposes a device for coding a sequence of video images, the sequence of video images being broken down into sub-sequences of video images, a mesh being made on the images of the video sequence, coefficients being determined for each image from at least one wavelet transform, characterized in that the device comprises:
  • the data signal representative of the video image sequence is of reduced size without degrading the quality of the video image sequence when it is decoded.
  • Associating a part of a mesh of an image with a sub-sequence of video images avoids having to transmit for each video image of the sequence of video images said part of the mesh.
  • the part of the mesh is the topology of the mesh and the transformation of the images into coefficients is carried out by transforming the geometry of the meshes of each of the images of the video sub-sequence into coefficients from transforms into second generation wavelets.
  • the information representative of the transformed coefficients ′ is the coefficients of at least one reference image of the video image sub-sequence and for each other image of the video image sub-sequence, the information is representative of the difference between the coefficients of each other image and the coefficients of the reference image.
  • a predetermined number of reference images is associated with a sub-sequence of video images as a function of the number of images contained in the sub-sequence of video images.
  • information is inserted into the data signal to differentiate the coefficients of the at least one reference image from the other coefficients.
  • the coefficients of the at least one reference image are easily identifiable during the decoding of the sequence of video images.
  • the mesh is a regular mesh.
  • At least two different types of wavelet transforms are applied to at least two different regions of at least one image of the video sub-sequence.
  • the overall coding of the video image sequence is thus optimized by adapting the coding by wavelet transforms to regions of the image with different characteristics, and by using, if necessary, several types of distinct wavelet transforms for coding. of the same image from the video sequence.
  • the video image sub-sequences in the video image sequence are determined by comparison of differences in image coefficients of the video sequence at a predetermined threshold.
  • the video image sub-sequences in the video image sequence are determined by comparing the signal-to-noise ratio between an image and a motion compensated image with respect to a predetermined threshold.
  • the invention also relates to a method of decoding a data signal representative of a sequence of video images, characterized in that the method comprises the steps of:
  • the invention proposes a device for decoding a data signal representative of a sequence of video images, characterized in that the device comprises:
  • the invention also relates to a data signal representative of a sequence of video images, characterized in that the sequence of video images is divided into video sub-sequences, the signal comprising for each sub-sequence of video images information representative of the coefficients of the images of the sub-sequence of video images and information representative of part of a mesh of an image of the sequence of video images.
  • the information representative of the coefficients of the images of the sub-sequence of video images consist of the coefficients of at least one reference image of the sub-sequence of video images and for each other image of the sub-sequence of video images of the difference between the coefficients of each other image and the coefficients of the reference image and in that the signal comprises at least one predetermined piece of information identifying the coefficients of the at least one reference image of the sub -sequence of video images.
  • the part of the mesh is the topology of the mesh of an image of the sequence of video images and the coefficients of the images of the sub-sequence of video images are coefficients of a transform into wavelets of second generation of the geometry of the meshes of each of the images of the sub-sequence of video images.
  • the invention also relates to the computer program stored on an information medium, said program comprising instructions making it possible to implement the coding method and / or the decoding method described above, when they are loaded and executed by a computer system.
  • FIG. . 1 shows a device implementing the invention
  • Fig. 2 represents the algorithm for coding image sequences according to a first embodiment of the invention
  • Fig. 3 represents the algorithm for meshing an image and for determining a type of second generation wavelet transform to be applied to at least part of an image according to the invention
  • Fig. 4a represents the algorithm for determining, according to a second embodiment, video sub-sequences from the video image sequence as well as the reference images, in these video sub-sequences, used for coding the other images of their sub - respective video sequence
  • FIG. . 1 shows a device implementing the invention
  • Fig. 2 represents the algorithm for coding image sequences according to a first embodiment of the invention
  • Fig. 3 represents the algorithm for meshing an image and for determining a type of second generation wavelet transform to be applied to at least part of an image according to the invention
  • Fig. 4a represents the algorithm for determining, according to a second embodiment, video sub-sequences
  • FIG. 4b represents the coding algorithm according to a second embodiment of the other video images of each video sub-sequence with respect to their respective reference image;
  • Figs 5a and 5b show examples of image sequences in which sub-sequences of images are determined according to the first and second embodiments;
  • Fig. 6 shows the decoding algorithm according to the invention of a data signal representative of a sequence of video images.
  • Wavelet transforms are constructed from an irregular subdivision of the analysis space, and are based on a weighted and averaged interpolation method. These wavelets are particularly well suited for analyzes on compact supports and on intervals. They retain the properties of first generation wavelets, namely good time-frequency localization and good calculation speed. Second generation wavelets transforms have a number of properties. Like the first generation wavelet transforms, they form a base of Riez on L (R) as well as a uniform base for a wide variety of function spaces. Like the first generation wavelet transforms, the coefficients of decomposition on the uniform basis are known or can simply be determined. Wavelet transforms are either orthogonal or bi-orthogonal.
  • the wavelet transforms and their dual models have local properties in space and frequency.
  • the frequency localization properties result directly from the regularity of the wavelet transform for the high frequencies and from the number of zero polynomial moments for the low frequencies.
  • the second generation wavelet transforms can also be used in multiresolution analysis. Second-wavelet transforms also have fundamental properties that first-generation wavelets do not have.
  • Second generation wavelet transforms can be defined on arbitrary domains, such as curves, surfaces or manifolds.
  • the transforms into second generation wavelets allow analysis on curves and surfaces.
  • Second generation wavelet transforms allow the use of algorithms suitable for irregular data samples.
  • This method allows a reconstruction, by simple operations on lines and columns of an analysis matrix to separate the signal to be processed into even and odd samples, to predict the odd samples according to the even samples. Once the prediction has been made, the signal is updated in order to preserve the initial properties. This algorithm can be repeated as many times as necessary.
  • This device 10 is suitable for coding a digital signal consisting of a video sequence and / or for decoding a digital signal consisting of a video sequence previously coded according to the invention.
  • the device 10 is for example a microcomputer. It can also be a means of viewing video image sequences such as a television set or any other device for coding and / or decoding video image sequences.
  • the device 10 includes a communication bus to which a central unit is connected
  • a read-only memory 102 a random access memory 103, a screen 104, a keyboard 114, a hard disk 108, a CD / CD player / recorder, a communication interface with a communication network 113, a memory card.
  • input output 106 connected to an image sequence capture means 107 such as a camera.
  • the hard disk 108 stores the programs implementing the invention, as well as the data processed according to the invention. These programs can also be read via the compact disc or received via the communication network 113, or even memorized in read-only memory 102. More generally, the programs according to the present invention are memorized in a storage means. This storage means can be read by a computer or a microprocessor 100. This storage means is integrated or not into the device, and can be removable. When the device 10 is powered up, the programs according to the present invention are transferred into the random access memory 103 which then contains the executable code of the invention as well as the variables necessary for the implementation of the invention. The device 10 can receive data to be processed from a peripheral device 107, such as a digital camcorder, or any other means of acquiring or storing data.
  • a peripheral device 107 such as a digital camcorder, or any other means of acquiring or storing data.
  • the device 10 can also receive data to be processed from a remote device via the communication network 113 and / or transmit a data signal comprising the data coded according to the invention to a remote device via the same communication network 113.
  • the communication network 113 is for example an Internet type network or a telephone telecommunication network by which a videoconference type communication is established between two devices 10.
  • the communication network 113 can also be a Hertzian or satellite broadcasting network. video information encoded according to the present invention.
  • the device 10 includes a screen 104 capable of reproducing the sequences of video images decoded according to the invention and / or the sequences of video images to be processed according to the invention.
  • the device 10 also includes a keyboard 114 serving as a user interface.
  • Fig. 2 represents the algorithm for coding video image sequences according to a first embodiment of the invention.
  • the processor 100 of the device 10 reads from the read-only memory 102, the program instructions corresponding to steps E200 to E214 in FIG. 2 and loads them into RAM 103 to execute them.
  • step E200 the processor 100 takes the first image II of a video sequence I to be coded and determines a mesh of the latter.
  • a mesh is a graph representation of the image. The determination of the mesh will be explained later in more detail with reference to FIG. 3.
  • the video sequence is for example stored on a CD disc included in the player 109 or received via the input / output interface 106 of an image capture device 107 or also received from the communication network 113 by via the communication interface 112.
  • the video sequence I is for example the sequence of video images shown in FIG. 5a. This sequence of video images I is in our example made up of seventeen images denoted II to 117.
  • the processor 100 in step E201 determines the coefficients of transformation into second generation wavelets from the mesh. For this, we apply the wavelet transform using the Lifting technique on all the positions of the vertices defining the geometry of the mesh.
  • the second generation wavelet transform is performed for a predetermined number of resolution levels.
  • the lifting technique is similar to that described in the document by Wim Sweldens, entitled “The lifting Scheme: A construction of second generation wavelets”.
  • wavelet transforms are applied to different parts of the image to be processed.
  • a wavelet transform known as Butterfly wavelets is assigned to the texture areas
  • a wavelet transform known as Loop wavelets is assigned to the contours of natural objects
  • a wavelet transform known as Catmull-Clark wavelets is assigned to the contours of unnatural objects
  • a wavelet transform known as affine wavelets is assigned to singularities.
  • step E202 the processor 100 stores in step E202 the coefficients of the wavelet transform of the first image II in the random access memory 103. These coefficients are then considered as reference coefficients.
  • This image II in FIG. 5a is marked with a letter R representative of its reference image function.
  • the processor 100 in the next step E203 takes the next image 12 of the video sequence I to be coded and determines a mesh of the latter. The determination of a mesh will be explained later with reference to FIG. 3. The mesh thus determined, the processor 100 in step E204 determines the coefficients of the second generation wavelet transform from the mesh. For this, we apply the wavelet transform for a predetermined number of resolution levels using the Lifting technique on the set of vertex positions defining the geometry of the mesh of the image being processed.
  • the processor 100 reads in step E205 the reference coefficients stored in step E202 of the wavelet transform of the first image II in the random access memory 103.
  • the processor 100 then performs in step E206 the difference between the reference coefficients of image II and the coefficients of the second generation wavelet transform determined for image 12 in step E204.
  • the difference is calculated for each coefficient corresponding to an identical or similar vertex of the same surface in the two images II and 12.
  • the processor 100 checks in step E207 if the calculated differences are less than a predetermined threshold.
  • the difference between each coefficient can be used for this verification or an average of the differences can also be used.
  • This threshold is either predetermined and fixed, or modifiable by the user via the keyboard 114 of the device 10.
  • step E207 the processor 100 goes to step E207 and checks whether part of the mesh of the second image 12 has moved with respect to the mesh of the reference image II. This corresponds to a movement of an object in the video sequence. If so, the processor 100 codes this movement and stores it in step E210. It should be noted that steps E209 and E210 may also not be performed by the processor 100 in the algorithm as described.
  • the processor 100 stores in step E211 the differences in coefficients calculated at step E206 in the random access memory 103.
  • the processor 100 checks whether there are other images in the video sequence I to be coded. In our example, seventeen images are to be coded and the processor then returns to step E203.
  • the processor 100 performs in the same manner as that previously described the steps E203, E204, E205, E206, E207, E209, E210, E211 and E212.
  • the processor 100 also performs the same operations for the image 16 which, in our example, corresponds to a change of plane.
  • the difference between the coefficients of the second generation wavelet transform of the images II to 16 being greater than the threshold noted Threshold at step E207, the processor 100 goes to step E208.
  • the processor 100 in step E208 checks whether other reference coefficients exist in the random access memory 103.
  • step E202 In our case, only the reference coefficients of the second generation wavelet transform of image II are stored.
  • the processor 100 then goes to step E202 and stores in this step the coefficients of the second generation wavelet transform of the image 16 determined in step E204.
  • the reference coefficients used subsequently correspond to the coefficients of image 16.
  • the processor 100 performs in the same manner as that previously described the steps E203, E204, E205, E206, E207, E209, E210, E211 and E212 for the images 17 to 19.
  • image 110 corresponds to a change of plane.
  • the processor 100 goes to step E208.
  • the processor 100 in step E208 checks whether other reference coefficients exist in the random access memory 103.
  • the reference coefficients of image II are also stored in the random access memory 103.
  • the processor goes to step E205, reads them and performs in step E206 the difference between the reference coefficients of the image
  • step E207 the processor 100 checks in step E207 if the calculated differences are less than a predetermined threshold.
  • a predetermined threshold The advantage of keeping in memory the coefficients of the different reference images, in this case II and 16, is based on the fact that if the video sequence returns to a previous scene in a relatively short time, the stored reference coefficients do not do not need to be recalculated, which saves a considerable amount of time. Similarly, when inserting the reference coefficients into the data signal, these will only be inserted once. A simple indicator in the data signal will indicate which coefficients in the data signal should be considered as reference coefficients for each video sub-sequence. According to our example, image 110 corresponds to a new plane in the video sequence. The test of step E207 is therefore negative. The processor then returns to step E205.
  • the processor 100 performs in the same manner as that previously described the steps E203, E204, E205, E206, E207, E209, E210, E211 and E212 for the images 111 to I17.
  • the processor 100 has stored in random access memory 103 the coefficients of the wavelet transform of the images II, 16 and 110 as well as a part of their respective meshes. This part is representative of the connectivity of the vertices, the edges and the faces determining the topology of the mesh.
  • the processor 100 has stored in RAM 103 the differences between the coefficients of the wavelet transform of images 12 to 15 and the coefficients of the wavelet transform of image II, the differences between the coefficients of the wavelet transform of images 17 to 19 and the coefficients of the wavelet transform of image 16 and the differences between the coefficients of the wavelet transform of images II 1 to 117 and the coefficients of the wavelet transform of image 110.
  • the video sequence of FIG. 5a has been subdivided into three video sub-sequences denoted S1 to S3.
  • Each video sub-sequence is associated with at least part of a mesh and the coefficients of the second generation wavelet transform of a reference image in the video sub-sequence, the difference between the coefficients of the second generation wavelets of each other image of the video sub-sequence and the coefficients of the wavelet transform of the reference image.
  • the difference can be calculated between the coefficients of the second generation wavelet transform of an image of the video sub-sequence I and the coefficients of the wavelet transform of the following image. All the images II to 117 having been processed, the processor 100 in step E212 goes to step E213.
  • step E213 the processor 100 codes the coefficients as well as the differences in coefficients obtained previously. These coefficients and their differences are for example preferably coded according to a Zerotree type technique. This technique is for example described in the publication "Embedded Image Coding Using Zerotree of Wavelet Coefficients" by J.M Shapiro IEEE Transcations on signal Processing, Vol 41, NO 12, December 1993.
  • each coefficient of a sub-band has four coefficients in the lower sub-band. Thanks to this structure, if a coefficient at a given low resolution sub-band is insignificant compared to a predetermined threshold, all the coefficients of the same orientation in the same spatial position at higher frequency sub-bands are also insignificant vis-à-vis this same predetermined threshold.
  • a null symbol tree is then defined starting at a root which is also null and referenced as an end of block. Thus, many coefficients at higher frequency sub-bands can be deleted. This algorithm is interesting in the sense that coding can stop at any point. It also allows precise encoding in relation to a given bit rate.
  • coding can also be done using the EBCOT (Embedded Block Coding with Optimized Truncation of the embedded bit-stream) type method.
  • EBCOT Embedded Block Coding with Optimized Truncation of the embedded bit-stream
  • step E214 puts the coded coefficients in the form of a data or bitstream signal.
  • the coded coefficients are for example transmitted in order of priority.
  • the data is transmitted in the form: packet number / header including inter alia the number of coefficients in the packet, information representative of the area of the image concerned, the number of bit planes used to code the image , the type of wavelet transform used to code certain areas of the image, information on the mesh such as the topology thereof as well as predetermined fields indicating that the coefficients according to these predetermined fields are image coefficients of reference according to the invention.
  • Other fields indicate also the reference image used when calculating the differences in coefficients of the other images of the video sub-sequences.
  • the signal is in the form of consecutive packets, each packet header comprising a packet start field, the packet number in question, the type of wavelet transform used, a reference image field making it possible to indicate that the coefficients of the packet are coefficients of reference images and are therefore not differences of coefficients between two images, a buffer number field indicating, when a sequence or a sub-sequence comprises a plurality of reference images, the image of reference having been used during the coding of the coefficients included in the subsequence.
  • the package number field contains a package identifier assigned in order according to the size of the package.
  • the standard wavelet transform field indicates whether the wavelet transform applied to the image area from which the packet comes is for example a wavelet transform of Loop, Butterfly, Catmull-Clark or even a wavelet transform of affine type, or any other type chosen according to the area of the image considered.
  • the mesh field is used to transmit the mesh topology of each reference image.
  • the data signal includes information indicating the reference image used for coding at least one other image, the reference image being part of a group of reference images encoded in the data signal.
  • Fig. 3 represents the algorithm for meshing an image and for determining a type of second generation wavelet transform to be applied to at least part of an image according to the invention.
  • the mesh as described in the present algorithm is performed for each of the images to be coded.
  • step E300 the processor 100 performs a regular and dense mesh of the image, that is to say that the image is subdivided for example into triangular surfaces.
  • the density of this mesh is predetermined. It can also be adapted according to the image sequence or the image to be coded.
  • This loop corresponds to the realization from the regular and dense mesh of an optimal mesh by fusion of the triangles of the mesh on predetermined distortion rate criteria and according to the different properties of the different areas of the image.
  • This optimal mesh gives an irregular subdivision of the image and nevertheless allows the use of second generation wavelet transforms on it.
  • the processor 100 in step E301 thus optimizes the triangles of the dense mesh, merges the neighboring triangles as a function of predetermined distortion rate criteria and permutes the edges of the merged triangles of the mesh.
  • This determination of the mesh is according to a particular mode in accordance with that as described in the article by M Lounsbery, T DeRose, J Warren entitled “Multiresolution Analysis for Surfaces of Arbitrary Topological Type”.
  • the processor 100 quantifies the nodes of the new triangles formed. This operation carried out, the processor 100 goes to the next step E303 which consists in verifying that a mesh has not returned during the optimization step E301.
  • step E304 the processor 100 quantifies the nodes of the new triangles formed.
  • the processor 100 checks in step E305 whether the loop made up of steps E301 to 305 has been carried out a predetermined number of times and, if not, reiterates this loop again.
  • the determination of the mesh can be carried out in the opposite manner to that previously described.
  • a first mesh coarse can be applied on the image, then, one divides the meshes into four meshes, for example until obtaining a semi-regular final mesh.
  • This method is more particularly described in the publication by P Gioia "Reducing the number of wavelet coefficients by géometry partioning" Computational geometry, Theory and Applications Vol 14, 1999, pp 25-48.
  • step E306 which consists of carrying out edge management operations.
  • the management of the edges consists in the application of a homeomorphism of the mesh to a torus according to the so-called periodization method.
  • the management of the edges consists in performing a symmetry of the data by extending the diagonals situated at the borders and which are not oriented in one of the directions of the mesh.
  • a semi-adaptive hierarchical mesh is produced.
  • the processor 100 determines in the image in step E307 zones of distinct nature. These areas are non-limiting areas of singularity, areas of texture, areas of contours of natural or unnatural objects.
  • zones are determined from the characteristics of the mesh and more particularly from the density of the latter around a point and of a region around this point. If at a point of the mesh, the density of mesh is important and around this one, the mesh is empty. This point is then considered as an isolated singularity. If at a point of the mesh, the density of mesh is important and around this one, the mesh is also dense. This area is then considered to be a texture area. If at a point of the mesh the density of mesh is important and around it and the density of mesh is strong according to a particular direction, this zone is then regarded as a zone of contour. The differentiation of a natural contour from an unnatural contour is carried out by analyzing the particular direction of the mesh. Indeed, natural objects have more uncertain contours than the contours of non-natural objects. The direction of unnatural contours is therefore more uniform than that of unnatural contours. The determination of the zones being carried out, the processor 100 goes to step
  • a wavelet transform known as Butterfly wavelets is assigned to the texture areas
  • a wavelet transform known as Loop wavelets is assigned to the texture areas.
  • contours of natural objects a wavelet transform known as Catmull-Clark wavelets is assigned to the contours of unnatural objects and finally a wavelet transform known as affine wavelets is assigned to singularities .
  • the algorithm of FIG. 4a determines, according to a second embodiment, the video sub-sequences among the video sequence, as well as the reference images in these video sub-sequences used to encode the other images of their respective video sub-sequences.
  • the video sequence is not subdivided into video sub-sequences as a function of a comparison of differences in transform coefficients in second generation wavelets at a predetermined threshold.
  • the video sequence is subdivided into video sub-sequences as a function of the comparison of PSNR (signal to noise ratio) between a compensated image in movement and the original image with respect to a predetermined threshold S.
  • PSNR signal to noise ratio
  • step E400 the processor 100 initializes the variables i and k to the value 1.
  • the variable i is a variable associated with the current image.
  • the variable k is a variable associated with the subsequences of the sequence of images.
  • the processor 100 in the next step E401, reads the first image 121 of the video sequence.
  • the video sequence is for example stored on a CD disc included in the player 109 or received via the input / output interface
  • the video sequence is for example the video sequence shown in FIG. 5b. This video sequence is in our example made up of seventeen images denoted 121 to 137.
  • step E402 the processor 100 assigns to the variable DEB (Ic) the value of the variable i.
  • the variable Deb (k) corresponds to a variable representative of the start of a video sub-sequence.
  • step E404 which consists in reading the next image of the video sequence, in this case the image 122.
  • the processor 100 determines in step E405 the movement between the previous image 121 and the image 122. This determination of movement is for example performed by performing block matching, or block matching, between the two images.
  • step E406 the processor 100 calculates the motion compensated image of the current image 122.
  • Steps E405 and E406 preferentially use the motion compensation method as described in the document Joint final Committee Draft of Joint Video Specification (ITU-T Rec H.264 ISO / IEC 14496-10 AVC) Thomas Wiegand, Klagenfurt, July 22, 2002.
  • step E407 which consists in calculating the PSNR between the image compensated in movement and the current image 122.
  • step E408 the processor 100 compares the PSNR previously calculated with a predetermined threshold S.
  • the image 122 is part of the same sequence as the image 121, which in our example is the case. There is little movement between the images. No plan change in the video sequence has taken place.
  • the processor 100 then goes to step E409.
  • the processor 100 assigns the variable End (k) representative of the end of a video sub-sequence to the current value of i, that is to say the value 2.
  • step E410 the processor checks in step E410 whether the last image of the video sequence has been processed, which is not the case in our example. The processor 100 then returns to step E403.
  • the processor 100 will reiterate the loop made up of steps E403 to E410 as long as the calculated PSNR is greater than the threshold S.
  • the loop made up of steps E403 to E410 is repeated for the images 123 to 126.
  • step E411 the processor 100 assigns to the variable End (k) representative of the end of a video sub-sequence the current value of i, that is to say the value 6.
  • the first video sub-sequence S21 thus consists of the images 121 to 125.
  • step E412 the processor checks in step E412 if the last image of the video sequence has been processed, which is not the case in our example.
  • the processor 100 goes to step E413, increments the variable k by one unit and then returns to step E402.
  • step E402 the processor 100 then assigns to the variable DEB (k) the value of the variable i.
  • the processor 100 then goes to step E404 which consists in reading the next image of the video sequence, in this case the image 127.
  • the processor 100 determines in step E405 the movement between the previous image 126 and the image 127.
  • step E406 the processor 100 calculates the motion-compensated image of the current image 127.
  • step E407 which consists in calculating the PSNR between the image compensated in movement and the current image 127.
  • step E408 the processor 100 compares the PSNR previously calculated with a predetermined threshold S. If the PSNR is greater than the threshold S, the image 127 is part of the same sequence as the image 126, which in our example is the case. There is little movement between the images. No plan change in the video sequence has taken place. The processor 100 then goes to step E409.
  • the processor 100 assigns the variable End (k) representative of the end of a video sub-sequence to the current value of i, that is to say the value 7.
  • the processor 100 will reiterate the loop made up of steps E403 to E410 as long as the PSNR is greater than the threshold S.
  • the loop made up of steps E403 to E410 is repeated for the images 126 to 129.
  • the processor 100 compares the PSNR calculated between the image compensated in movement and the current image 130, the latter according to our example is lower than the threshold S. The processor 100 therefore passes to step E411.
  • step E411 the processor 100 assigns to the variable End (k) representative of the end of the second video sub-sequence the current value of i, that is to say the value 10.
  • the second video sub-sequence S22 thus consists of images 126 to 129.
  • step E412 the processor checks in step E412 if the last image of the video sequence has been processed, which is not the case in our example.
  • the processor 100 goes to step E413, increments the variable k by one unit and then returns to step E402.
  • the processor 100 performs the same operations for the images 131 to 137 as those previously described. They will not be re-described.
  • the last video sub-sequence then consists of steps 130 to 137.
  • step E410 When the processor 100 has processed the image 137, the test of step E410 turns out to be positive. The processor therefore proceeds to the next step E414.
  • the processor 100 at this stage initializes the variable k to the value 1.
  • the processor 100 determines in step E415 the size denoted Size (k) of the current sub-sequence, in this case the sub-sequence S21.
  • the size is determined from the End (k) and Deb (k) variables previously determined.
  • the processor 100 compares in step E416 the size determined with a predetermined value T. Indeed, according to the invention, two different processing operations are carried out according to the size of the sub-sequence processed.
  • the size of the sequence S21 is equal to five images. This being less than T, the processor goes to step E417.
  • the processor 100 determines the reference image of the subsequence.
  • the reference image is here taken as the image placed in the middle of the video sub-sequence. This is particularly interesting because the variations between the different images of the sub-sequence are thus reduced. According to this embodiment, the difference between the images of the sub-sequence and the reference image is less. Fewer bits are then required to code these differences.
  • image 123 is then the reference image.
  • step E420 the processor 100 checks in step E420 whether all of the previously determined subsequences have been processed. According to our example, the test is negative and the processor 100 returns to step E420.
  • the processor 100 similarly performs steps E415 to 417 for the second sub-sequence S22, and the image 128 is then the reference image.
  • the processor 100 determines a size of eight images and considers this size as greater than the threshold T. The test of step E416 is therefore negative. The processor 100 therefore goes to step E418.
  • step E418, the processor 100 determines the number M of reference images necessary for optimal coding of the sub-sequence.
  • This number M is determined as a function of the number of images contained in the sub-sequence and by example, from a table stored in the read-only memory 102.
  • M is considered to be equal to two.
  • a limited number of images is considered in the video sequence and the video sub-sequence.
  • the number of images in a video sub-sequence is much greater and a reference image is determined for a much greater number of images.
  • the processor 100 goes to step E419 and determines the reference images in the sub-sequence S23 by cutting the sub-sequence S23 into M sub-parts so equidistant and chooses the central image of each sub-part as the reference image of the sub-part.
  • the sub-sequence S23 is formed of the two sub-parts denoted S'23 and S "23 and the image 131 is the reference image of the sub-part S'23 while the image 136 is the reference image of subpart S "23.
  • the processor 100 checks whether all the sub-sequences have been processed and then proceeds to step E500 of FIG. 4b.
  • the algorithm of FIG. 4b codes according to a second embodiment the other video images of each video sub-sequence with respect to their respective reference image.
  • the processor 100 of the device 10 reads from the read-only memory 102, the program instructions corresponding to steps E500 to E523 of FIG. 4b and loads them into RAM 103 to execute them.
  • the processor 100 initializes the variable k representative of the sub-sequence to be processed at the value 1.
  • the processor checks in the next step E501 if the current subsequence comprises several reference images. According to our example, the sub-sequence S1 has only one reference image, image 123. The processor then goes to step E502. At this stage, the processor 100 reads the reference image of the sub-sequence being processed, in this case the image 123.
  • the processor 100 then performs in step E503 a mesh on the reference image and the determination of the type of wavelet transform to be applied to areas of the image according to the algorithm of FIG. 3 previously described. This operation carried out, the processor 100 determines in step E504 the coefficients of the second generation wavelet transform from the mesh determined in the previous step. For this, we apply the wavelet transform, for a predetermined number of resolution levels, using the Lifting technique on all the positions of the vertices defining the geometry of the mesh of the image being processed.
  • a wavelet transform known as Butterfly wavelets is assigned to texture areas
  • a wavelet transform known as Loop wavelets is assigned to natural object contours
  • a wavelet transform known as Catmull-Clark wavelets is assigned to the contours of unnatural objects
  • a wavelet transform known as affine wavelets is assigned to singularities.
  • step E505 the processor 100 checks in step E505 if there are other images in the sub-sequence being processed. We check more precisely if the subsequence consists of a single image. According to our example, the subsequence consists of a plurality of images. The processor 100 then goes to step E506.
  • step E506 the processor 100 determines the position of the next image to be processed in the sub-sequence.
  • This image is for example the neighboring image preceding the reference image of the sub-sequence.
  • step E507 the image which is at the position previously determined, in this case the image 122.
  • the processor 100 then performs in step E508 a mesh on the reference image in accordance with the algorithm of FIG. 3 previously described.
  • the processor 100 determines in step E509 the second generation wavelet transform coefficients from the mesh determined in the previous step. For this, we apply the wavelet transform, for a predetermined number of resolution levels, using the Lifting technique on all the positions of the vertices defining the geometry of the mesh of the image being processed. It should be noted that, as before, different types of wavelet transform are applied to different parts of the image to be processed.
  • the images of a sub-sequence are similar.
  • the determination of a wavelet transform type for the images other than the reference image of a video sub-sequence may, according to a variant, not be carried out.
  • the areas determined for the reference image are then considered to be identical for the other images.
  • the processor 100 performs in step E510 the difference between the coefficients of the second generation wavelet transform determined for image 122 in step E509 and the reference coefficients of image 123.
  • the difference is calculated for each coefficient corresponding to an identical or similar vertex of the same surface in the two images 123 and 122.
  • the difference of the coefficients for the image 122 is stored in the random access memory 103.
  • the processor 100 checks in step E511 whether the position of the image of the sub-sequence being processed corresponds to the position of the image of the start of the sub-sequence. According to our example in FIG. 5b, the test is negative.
  • the processor 100 decrements the value of the variable Pos by one unit in step E512.
  • the processor 100 then performs steps E507 to E510 for the image 121 in the same manner as that previously described for the image 122.
  • step E513 the processor 100 determines the position of the next image to be processed in the sub-sequence.
  • This image is for example the next neighboring image 124 of the reference image of the video sub-sequence.
  • the processor 100 reads, at step E514, the image which is at the position previously determined, in this case the image 124.
  • the processor 100 then performs in step E515 a mesh on the reference image in accordance with the algorithm of FIG. 3 previously described. This operation carried out, the processor 100 determines in step E516 the coefficients of the second generation wavelet transform from the mesh determined in the previous step.
  • the processor 100 performs in step E517 the difference between the reference coefficients of image 123 and the coefficients of the second generation wavelet transform determined for image 124 in step E516.
  • the difference of the coefficients for the image 124 is memorized in the random access memory 103.
  • the processor 100 checks in step E518 if the position of the image of the sub-sequence being processed corresponds to the position the end frame of the subsequence. According to our example in FIG. 5b, the test is negative.
  • the processor 100 increments the value of the variable Pos by one unit in step E519.
  • the processor 100 then performs steps E514 to E517 for the image 125 in the same manner as that previously described for the image 124.
  • the processor 100 checks at this stage if other video sub-sequences in the video sequence are to be processed.
  • Sub-sequence S22 is then processed.
  • the processor 100 returns to step E501 and performs steps E501 to E520 in the same manner as that previously described.
  • the processor 100 When the processor 100 has processed all of the images of the sub-sequence S22, it processes, according to our example, the sub-sequence S23.
  • sub-sequence S23 comprises more than one reference image.
  • the test of step E501 is therefore positive.
  • the processor 100 then performs the following operations, not shown.
  • the processor 100 takes the reference image 131 of the sub-part S ′ 23 of the sub-sequence S23, performs a mesh of the latter and determines the coefficients of the second generation wavelet transform of the latter.
  • the processor 100 reads each of the other images 130, 132 and 133 of the sub-part
  • the processor 100 takes the reference image 136 of the sub-part S "23 of the sub-sequence S23, performs a mesh thereof and determines the coefficients of the second generation wavelet transform of the latter.
  • the processor 100 takes each of the other images 134, 135 and 137 of the sub-part S "23 of the sub-sequence S23, performs a mesh of these, determines the coefficients of the second generation wavelet transform of these. ci and make the difference between the coefficients of the reference image of the subpart
  • step E521 the processor 100 codes the coefficients as well as the differences in coefficients obtained previously. These coefficients and their differences are for example coded according to a Zerotree type technique previously described or the coding can also be carried out using the EBCOT type method. Once this has been done, the processor 100 goes to step E522 and puts the coded coefficients in the form of a data or bitstream signal.
  • the coded coefficients are for example transmitted in order of priority.
  • the data is transmitted in the form: packet number / header including inter alia the number of coefficients in the packet, information representative of the area of the image concerned, the number of bit planes used to code the image , the type of wavelet transform used to code certain areas of the image, information on the mesh such as the topology thereof as well as flags indicating that the coefficients contained in the packet comprising a flag or the coefficients placed between two flags are the coefficients of a reference image according to the invention.
  • the signal is in the form of consecutive packets, each packet header comprising a packet start field, the packet number in question, the type of wavelet transform used, a reference image field making it possible to indicate that the coefficients of the packet are reference image coefficients and are therefore not differences in coefficients between two images, a buffer number field indicating the number of the reference image having been used for coding the coefficients when a subsequence includes a plurality of reference images.
  • the data signal further includes markers representative of the start and / or end of each determined video sub-sequence.
  • the data signal further comprises for each other image, the number of the reference image on which each other image depends.
  • the data signal thus formed is similar to that previously described with reference to FIG. 2. It will not be further explained.
  • Fig. 6 shows the decoding algorithm according to the invention of a data signal representative of a sequence of video images.
  • the processor 100 of the device 10 reads from the read-only memory 102, the program instructions corresponding to steps E600 to E610 of FIG. 5 and loads them into random access memory 103 to execute them.
  • step E600 the processor 100 of the device 10 determines in the data signal at least one field identifying coefficients associated with a reference image in the data signal.
  • the data signal to be processed comes from a peripheral device 107, such as a digital camcorder or any other means of acquiring or storing data.
  • the data signal to be processed can also come from a remote device via the communication network 113.
  • the communication network 113 is for example an Internet type network or a telephone telecommunication network by which a videoconference type communication is established between two devices 10.
  • the communication network 113 can also be a Hertzian or satellite broadcasting network of coded video information according to the present invention.
  • the determined identifier, the processor 100, at this same step, reads from the data signal, the coefficients identified by the marker.
  • the processor 100 determines in step E601 from the information contained in a predetermined field of the data signal the type of wavelet transform used to code certain areas of the image. Indeed, and according to a preferred mode, different types of wavelet transforms are applied to different parts of the image to be processed as a function of these.
  • a wavelet transform known as Butterfly wavelets is assigned to the texture areas
  • a wavelet transform known as Loop wavelets is assigned to the texture areas.
  • contours of natural objects a wavelet transform known as Catmull-Clark wavelets is assigned to the contours of unnatural objects and finally a wavelet transform known as affine wavelets is assigned to singularities .
  • the types of wavelet transforms applied during the determined coding the processor 100 performs in step E602 the transforms into inverse second generation wavelets corresponding to the determined types for the corresponding coefficients. This step performed, the processor 100 reads in step E603 in the data signal to be processed and more particularly in the field of the mesh shape, the topology of the mesh of the image.
  • the processor 100 reconstructs the image in step E604 and transfers it for example to a display means such as the screen 104.
  • the processor 100 in step E605 determines the coefficients in the data signal of another image than a reference image.
  • This image is an image contained in the same video sub-sequence as that comprising the reference image, the coefficients of which were read previously in step E600.
  • the processor 100 reads from the data signal the coefficients according to those read in step E600. These coefficients consecutive to the coefficients read in step E600 are then the coefficients of another image.
  • step E606 the processor 100 makes the difference between the coefficients determined in step E600 and the coefficients determined in step E605.
  • the processor 100 determines in step E607 from the information contained in the data signal the type of wavelet transform used to code certain areas of the image being processed. Indeed, and according to a preferred mode, different types of wavelet transforms are applied to different parts of the image to be processed as a function of these. However, it should be noted that this step is in many cases unnecessary. Indeed, during coding, the sequence of images has been divided into sub-sequences of images, the images of a sub-sequence of images are little different and thus the type or types of wavelet transforms used to code certain areas of the image being processed are identical to those determined in step E601 for the reference image of the same video sub-sequence. The processor 100 then performs in step E608 the transforms into inverse second generation wavelets corresponding to the types determined for the corresponding coefficients.
  • the processor 100 reconstructs the image in step E609 and transfers it for example to a display means such as the screen 104.
  • the reference image With only the mesh of an image, called the reference image, it is possible to reconstruct a set of images from it. This greatly reduces the amount of information needed to encode a video sequence and therefore the size of the data signal.
  • step E610 the processor 100 checks in step E610 if coefficients representative of other images are present in the data signal and associated with the reference image determined in step E600. If so, the processor 100 returns to step E605 and repeats the steps
  • the processor 100 determines in the data signal a new marker identifying coefficients associated with a reference image in the data signal, the processor 100 returns to step E600 and performs the same operations with the coefficients of the new reference image than those described above.
  • the algorithm as described corresponds to a decoding algorithm conforming to the coding algorithm as described with reference to FIG. 2.
  • the reference images are no longer the images of the beginnings of sub-sequences and the other images are no longer following the reference images.
  • the processor 100 in addition to the steps of the previously described decoding algorithm must identify the reference images used for coding the other images. For example, the data signal is searched for markers representative of the start and / or end of video sub-sequences and the coefficients included between these markers are considered as the coefficients of the other video images of the sub-sequence. According to another alternative embodiment, the processor 100 searches in the data signal, for each other image, the number of the reference image on which each other image depends.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The invention relates to a method for encoding a video image sequence, during which: the image sequence is split into video image sub-sequences; a meshing is carried out on the images of the video sequence, and; the coefficients are determined for each image starting from at least one transformation into wavelets. The invention is characterized in that the method comprises the steps of associating a portion of the meshing of an image to each video sub-sequence and of forming a data signal containing the portion of the associated meshing and of the information representative of the coefficients. The invention also relates to an encoding device, and to the associated method and device for decoding.

Description

PROCEDE ET DISPOSITIF DE CODAGE ET DE DECODAGE D'UNE SEQUENCE D'IMAGES VIDEO METHOD AND DEVICE FOR ENCODING AND DECODING A SEQUENCE OF VIDEO IMAGES
La présente invention concerne un procédé et un dispositif de codage et de décodage de séquences d'images.The present invention relates to a method and a device for coding and decoding image sequences.
Plus précisément, l'invention se situe dans le domaine de l'adaptation dans le temps des coefficients obtenus sur un maillage d'une image, les coefficients étant produits par des transformées en ondelettes de seconde génération.More precisely, the invention lies in the field of the adaptation over time of the coefficients obtained on a mesh of an image, the coefficients being produced by second generation wavelet transforms.
Plusieurs techniques de codage d'images sont connues à ce jour, comme par exemple les techniques de transformation en cosinus discrets (DCT) basées sur des structures de blocs, telles que celles proposées par les organismes de normalisation ISO/MPEG acronyme de International Standardization Organization /Moving Picture Expert Group et/ou ITU-T acronyme de International Télécommunication Union - Télécommunication Standardization Sector.Several image coding techniques are known to date, such as for example discrete cosine transformation (DCT) techniques based on block structures, such as those proposed by the ISO / MPEG standardization bodies acronym for International Standardization Organization. / Moving Picture Expert Group and / or ITU-T acronym for International Télécommunication Union - Télécommunication Standardization Sector.
Selon ces standards de codage vidéo, une séquence vidéo est traitée de manière à supprimer les redondances spatiales et temporelles des images de la séquence. La séquence codée, plus particulièrement selon le codage de type MPEG-4, est alors constituée d'un ensemble d'images I/B/P. Les images I, appelées images Intra sont codées de la même façon que des images fixes et servent de référence aux autres images de la séquence. Les images P, appelées images prédites contiennent deux types d'informations : une information d'erreur compensée en mouvement et des vecteurs de mouvements représentatifs du mouvement relatif à une image précédente. Ces deux informations sont déduites d'une ou de plusieurs images précédentes qui peuvent être de type I ou de type P. Les images B, appelées images bidirectionnelles contiennent aussi ces deux informations mais sont ces dernières sont basées maintenant sur deux références, à savoir une référence à une image antérieure à l'image B lors de la reproduction de la séquence vidéo et une référence à une image postérieure à l'image B lors de la reproduction de la séquence vidéo, les images antérieures et postérieures pouvant être de type I ou de type P.According to these video coding standards, a video sequence is processed so as to remove the spatial and temporal redundancies of the images of the sequence. The coded sequence, more particularly according to the MPEG-4 type coding, then consists of a set of I / B / P images. The I images, called Intra images are encoded in the same way as still images and serve as a reference for the other images in the sequence. The images P, called predicted images contain two types of information: error information compensated for movement and motion vectors representative of the movement relative to a previous image. These two pieces of information are deduced from one or more preceding images which can be of type I or of type P. The images B, called bidirectional images also contain these two pieces of information but are the latter are now based on two references, namely a reference to an image before image B during the reproduction of the video sequence and a reference to an image after image B during the reproduction of the video sequence, the anterior and posterior images can be of type I or type P.
Les techniques de codage utilisant des structures de blocs conduisent à l'apparition de forts effets, ou artefacts, qui réduisent fortement la qualité visuelle de la restitution de l'image. Les codages de type MPEG-4 ou ITU-T/H263 sont désormais considérés comme ayant atteint leurs limites, notamment à cause de la structure de blocs rigides de taille fixe qui sont utilisés comme support de l'ensemble des calculs et opérations de codage. Ceci est d'autant plus vrai lorsque les images et/ou séquences d'images sont fortement compressées.Coding techniques using block structures lead to the appearance of strong effects, or artifacts, which greatly reduce the visual quality of the image reproduction. MPEG-4 or ITU-T / H263 encodings are now considered to have reached their limits, in particular because of the structure of rigid blocks of fixed size which are used as support for all the calculations and encoding operations. This is all the more true when the images and / or sequences of images are highly compressed.
D'autres techniques de codage d'images utilisent à la place des transformées en cosinus discrets des transformées en ondelettes. Les transformées en ondelettes sont un outil mathématique très simple pour décomposer les fonctions dans un schéma hiérarchique. Succinctement, les transformées en ondelettes permettent de décomposer une fonction en une fonction d'approximation et une autre fonction de détails qui influence la fonction originale à diverses échelles. Les transformées en ondelettes sont ainsi adaptées à une analyse multirésolution d'une image par exemple.Other image coding techniques instead use discrete cosine transforms wavelet transforms. Wavelet transforms are a very simple mathematical tool for breaking down functions in a hierarchical diagram. Briefly, the wavelet transforms make it possible to decompose a function into an approximation function and another function of details which influences the original function at various scales. The wavelet transforms are thus adapted to a multiresolution analysis of an image for example.
De la même façon que les techniques de codage utilisant des transformées en cosinus discrets, les techniques de codage utilisant les transformées en ondelettes génèrent, lorsque les images et/ou séquences d'images sont fortement compressées, un effet de sur-oscillation ou « ringing » en terminologie anglo-saxonne donnant à l'image restituée un aspect flou.In the same way as coding techniques using discrete cosine transforms, coding techniques using wavelet transforms generate, when the images and / or image sequences are highly compressed, an over-oscillation or "ringing" effect. »In Anglo-Saxon terminology giving the rendered image a blurred aspect.
Afin de réduire la quantité d'informations transmises, il est connu de ne pas transmettre certaines informations d'une image dans une séquence d'images si celles- ci sont peu différentes de celles de l'image précédente. Ces techniques créent aussi une dégradation des images reconstruites. Il a été en effet constaté qu'avec une telle technique, la qualité des images reconstruites se dégrade dans le temps.In order to reduce the amount of information transmitted, it is known not to transmit certain information of an image in a sequence of images if these are little different from that of the previous image. These techniques also create degradation of the reconstructed images. It has in fact been observed that with such a technique, the quality of the reconstructed images deteriorates over time.
L'invention a pour but de résoudre les problèmes de l'art antérieur en proposant un procédé de codage d'une séquence d'images vidéo, la séquence d'images vidéo étant décomposée en sous-séquences d'images vidéo, un maillage étant effectué sur les images de la séquence vidéo, des coefficients étant déterminés pour chaque image à partir d'au moins une transformée en ondelettes, caractérisé en ce que le procédé comporte les étapes de :The aim of the invention is to solve the problems of the prior art by proposing a method of coding a sequence of video images, the sequence of video images being broken down into sub-sequences of video images, a mesh being performed on the images of the video sequence, coefficients being determined for each image from at least one wavelet transform, characterized in that the method comprises the steps of:
- association d'une partie du maillage d'une image à chaque sous-séquence vidéo,- association of part of the mesh of an image with each video sub-sequence,
- formation d'un signal de données comprenant la partie du maillage associée et des informations représentatives des coefficients.- formation of a data signal comprising the part of the associated mesh and information representative of the coefficients.
Corrélativement, l'invention propose un dispositif de codage d'une séquence d'images vidéo, la séquence d'images vidéo étant décomposée en sous-séquences d'images vidéo, un maillage étant effectué sur les images de la séquence vidéo, des coefficients étant déterminés pour chaque image à partir d'au moins une transformée en ondelettes, caractérisé en ce que le dispositif comporte :Correlatively, the invention proposes a device for coding a sequence of video images, the sequence of video images being broken down into sub-sequences of video images, a mesh being made on the images of the video sequence, coefficients being determined for each image from at least one wavelet transform, characterized in that the device comprises:
- des moyens d'association d'une partie du maillage d'une image à chaque sous- séquence vidéo,means for associating part of the mesh of an image with each video sub-sequence,
- des moyens de formation d'un signal de données comprenant la partie du maillage associée et des informations représentatives des coefficients.- Means for forming a data signal comprising the part of the associated mesh and information representative of the coefficients.
Ainsi, le signal de données représentatif de la séquence d'images vidéo est de taille réduite sans dégrader pour autant la qualité de la séquence d'images vidéo lorsqu'elle sera décodée. Associer une partie d'un maillage d'une image à une sous- séquence d'images vidéo évite d'avoir à transmettre pour chaque image vidéo de la séquence d'images vidéo ladite partie du maillage.Thus, the data signal representative of the video image sequence is of reduced size without degrading the quality of the video image sequence when it is decoded. Associating a part of a mesh of an image with a sub-sequence of video images avoids having to transmit for each video image of the sequence of video images said part of the mesh.
Plus précisément, la partie du maillage est la topologie du maillage et la transformée des images en coefficients est effectuée en transformant la géométrie des maillages de chacune des images de la sous-séquence vidéo en coefficients à partir de transformées en ondelettes de seconde génération.More precisely, the part of the mesh is the topology of the mesh and the transformation of the images into coefficients is carried out by transforming the geometry of the meshes of each of the images of the video sub-sequence into coefficients from transforms into second generation wavelets.
Ainsi, en associant une partie d'un maillage d'une image et plus précisément la topologie du maillage à une sous-séquence d'images vidéo on évite d'avoir à transmettre pour chaque image vidéo de la séquence d'images vidéo la topologie de son maillage. Ainsi, les images de la sous-séquence vidéo variant peu, l'inclusion des coefficients de chaque image de la sous-séquence avec seulement une seule topologie garantit lors du décodage de la séquence d'images vidéo une bonne qualité de restitution de la séquence d'images décodées. Plus précisément, les informations représentatives des coefficients transformés' sont les coefficients d'au moins une image de référence de la sous-séquence d'images vidéo et pour chaque autre image de la sous-séquence d'images vidéo, les informations sont représentatives de la différence entre les coefficients de chaque autre image et les coefficients de l'image de référence. Ainsi, en incluant dans le signal de données la différence entre les coefficients de chaque autre image et les coefficients de l'image de référence, le nombre de bits nécessaires au codage de la séquence d'images vidéo est réduit. Les sous-séquences d'images vidéo étant constituées d'une suite d'images ne présentant que peu de variations entre elles, les différences sont alors minimes et peuvent donc ainsi être représentées sur moins de bits.Thus, by associating part of a mesh of an image and more precisely the topology of the mesh with a sub-sequence of video images, we avoid having to transmit for each video image of the sequence of video images the topology of its mesh. Thus, the images of the video sub-sequence varying little, the inclusion of the coefficients of each image of the sub-sequence with only one topology guarantees, when decoding the sequence of video images, good quality of reproduction of the sequence. decoded images. More precisely, the information representative of the transformed coefficients ′ is the coefficients of at least one reference image of the video image sub-sequence and for each other image of the video image sub-sequence, the information is representative of the difference between the coefficients of each other image and the coefficients of the reference image. Thus, by including in the data signal the difference between the coefficients of each other image and the coefficients of the reference image, the number of bits necessary for coding the sequence of video images is reduced. Since the video image sub-sequences are made up of a series of images exhibiting only few variations between them, the differences are then minimal and can therefore be represented on fewer bits.
Avantageusement, on associe à une sous-séquence d'images vidéo un nombre prédéterminé d'images de référence en fonction du nombre d'images contenues dans la sous-séquence d'images vidéo.Advantageously, a predetermined number of reference images is associated with a sub-sequence of video images as a function of the number of images contained in the sub-sequence of video images.
Ainsi, lorsqu'une sous-séquence d'images est relativement longue, plusieurs images de référence permettent de former des sous-parties de sous-séquences d'images vidéo. Les différences entre les coefficients dans ces sous-parties restent minimes et peuvent donc ainsi être représentées sur moins de bits.Thus, when a sub-sequence of images is relatively long, several reference images make it possible to form sub-parts of sub-sequences of video images. The differences between the coefficients in these subparts remain minimal and can therefore be represented on fewer bits.
Préférentiellement, on insère dans le signal de données des informations pour différencier les coefficients de l'au au moins une image de référence des autres coefficients.Preferably, information is inserted into the data signal to differentiate the coefficients of the at least one reference image from the other coefficients.
Ainsi, les coefficients de l'au moins une image de référence sont aisément identifiables lors du décodage de la séquence d'images vidéo.Thus, the coefficients of the at least one reference image are easily identifiable during the decoding of the sequence of video images.
Plus précisément, le maillage est un maillage régulier.More precisely, the mesh is a regular mesh.
Avantageusement, au moins deux types différents de transformées en ondelettes sont appliqués sur au moins deux régions différentes d'au moins une image de la sous- séquence vidéo.Advantageously, at least two different types of wavelet transforms are applied to at least two different regions of at least one image of the video sub-sequence.
En effet, les différents types de transformées en ondelettes existantes présentent des propriétés de codage distinctes. On exploite ces différentes propriétés en appliquant à différentes régions d'une image, le type de tranformée en ondelettes dont les propriétés sont les mieux adaptées au contenu de chacune des régions de l'image.In fact, the different types of wavelet transforms that exist have distinct coding properties. We exploit these different properties by applying to different regions of an image, the type of wavelet transform whose properties are best suited to the content of each of the regions of the image.
On optimise ainsi le codage global de la séquence d'images vidéo en adaptant le codage par des transformées en ondelettes à des régions de l'image de caractéristiques différentes, et en utilisant, si nécessaire, plusieurs types de transformées en ondelettes distinctes pour le codage d'une même image de la séquence vidéo.The overall coding of the video image sequence is thus optimized by adapting the coding by wavelet transforms to regions of the image with different characteristics, and by using, if necessary, several types of distinct wavelet transforms for coding. of the same image from the video sequence.
Plus précisément, les sous-séquences d'images vidéo dans la séquence d'images vidéo sont déterminées par comparaison de différences de coefficients d'images de la séquence vidéo à un seuil prédéterminé. En variante, les sous-séquences d'images vidéo dans la séquence d'images vidéo sont déterminées par comparaison du rapport signal bruit entre une image et une image compensée en mouvement par rapport à un seuil prédéterminé.More precisely, the video image sub-sequences in the video image sequence are determined by comparison of differences in image coefficients of the video sequence at a predetermined threshold. Alternatively, the video image sub-sequences in the video image sequence are determined by comparing the signal-to-noise ratio between an image and a motion compensated image with respect to a predetermined threshold.
L'invention concerne aussi un procédé de décodage d'un signal de données représentatif d'une séquence d'images vidéo, caractérisé en ce que le procédé comporte les étapes de :The invention also relates to a method of decoding a data signal representative of a sequence of video images, characterized in that the method comprises the steps of:
- détermination dans le signal de données, d'images d'une sous-séquence d'images vidéo,- determination in the data signal, of images of a sub-sequence of video images,
- obtention des coefficients des images de la sous-séquence d'images vidéo à partir d'informations contenues dans le signal de données, - transformation des coefficients obtenus selon une transformée inverse de transformée en ondelettes,- obtaining the coefficients of the images of the sub-sequence of video images from information contained in the data signal, - transformation of the coefficients obtained according to an inverse transform of transform into wavelets,
- reconstruction de chacune des images de la sous-séquence vidéo à partir des coefficients transformés et d'une partie du maillage associée à la sous-séquence d'images vidéo et contenue dans le signal de données. Corrélativement, l'invention propose un dispositif de décodage d'un signal de données représentatif d'une séquence d'images vidéo, caractérisé en ce que le dispositif comporte :- reconstruction of each of the images of the video sub-sequence from the transformed coefficients and of a part of the mesh associated with the sub-sequence of video images and contained in the data signal. Correlatively, the invention proposes a device for decoding a data signal representative of a sequence of video images, characterized in that the device comprises:
- des moyens de détermination dans le signal de données, d'images d'une sous-séquence d'images vidéo, - des moyens de transformation des coefficients des images de la sous- séquence vidéo obtenus à partir du signal de données selon une transformée en ondelettes, - des moyens de reconstruction de chacune des images de la sous-séquence vidéo à partir des coefficients transformés et d'une partie du maillage associée à la sous-séquence d'images vidéo et contenue dans le signal de données.- means for determining in the data signal, images of a sub-sequence of video images, - means for transforming the coefficients of the images of the video sub-sequence obtained from the data signal according to a transform in wavelets, means of reconstruction of each of the images of the video sub-sequence from the transformed coefficients and of a part of the mesh associated with the sub-sequence of video images and contained in the data signal.
L'invention concerne aussi un signal de données représentatif d'une séquence d'images vidéo, caractérisé en ce que la séquence d'images vidéo est divisée en sous- séquences vidéo, le signal comportant pour chaque sous-séquence d'images vidéo des informations représentatives des coefficients des images de la sous-séquence d'images vidéo et des informations représentatives d'une partie d'un maillage d'une image de la séquence d'images vidéo. Plus précisément, les informations représentatives des coefficients des images de la sous-séquence d'images vidéo sont constituées des coefficients d'au moins une image de référence de la sous-séquence d'images vidéo et pour chaque autre image de la sous-séquence d'images vidéo de la différence entre les coefficients de chaque autre image et les coefficients de l'image de référence et en ce que le signal comporte au moins une information prédéterminée identifiant les coefficients de l'au moins une image de référence de la sous-séquence d'images vidéo.The invention also relates to a data signal representative of a sequence of video images, characterized in that the sequence of video images is divided into video sub-sequences, the signal comprising for each sub-sequence of video images information representative of the coefficients of the images of the sub-sequence of video images and information representative of part of a mesh of an image of the sequence of video images. More specifically, the information representative of the coefficients of the images of the sub-sequence of video images consist of the coefficients of at least one reference image of the sub-sequence of video images and for each other image of the sub-sequence of video images of the difference between the coefficients of each other image and the coefficients of the reference image and in that the signal comprises at least one predetermined piece of information identifying the coefficients of the at least one reference image of the sub -sequence of video images.
Plus précisément, la partie du maillage est la topologie du maillage d'une image de la séquence d'images vidéo et les coefficients des images de la sous-séquence d'images vidéo sont des coefficients d'une transformée en ondelettes de seconde génération de la géométrie des maillages de chacune des images de la sous-séquence d'images vidéo.More precisely, the part of the mesh is the topology of the mesh of an image of the sequence of video images and the coefficients of the images of the sub-sequence of video images are coefficients of a transform into wavelets of second generation of the geometry of the meshes of each of the images of the sub-sequence of video images.
Les avantages du décodeur et du signal de données étant identiques à ceux mentionnés pour le codeur, ceux-ci ne seront pas rappelés.The advantages of the decoder and the data signal being identical to those mentioned for the coder, these will not be recalled.
L'invention concerne aussi le programme d'ordinateur stocké sur un support d'informations, ledit programme comportant des instructions permettant de mettre en œuvre le procédé de codage et/ou le procédé de décodage précédemment décrits, lorsqu'ils sont chargés et exécutés par un système informatique.The invention also relates to the computer program stored on an information medium, said program comprising instructions making it possible to implement the coding method and / or the decoding method described above, when they are loaded and executed by a computer system.
Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels: la Fig. 1 représente un dispositif mettant en œuvre l'invention; la Fig. 2 représente l'algorithme de codage de séquences d'images selon un premier mode de réalisation de l'invention ; la Fig. 3 représente l'algorithme de maillage d'une image et de détermination d'un type de transformée en ondelettes de seconde génération à appliquer sur au moins une partie d'une image selon l'invention ; la Fig. 4a représente l'algorithme de détermination, selon un second mode de réalisation, de sous-séquences vidéo parmi la séquence d'images vidéo ainsi que les images de référence, dans ces sous-séquences vidéo, utilisées pour coder les autres images de leur sous-séquence vidéo respective, la Fig. 4b représente l'algorithme de codage selon un second mode de réalisation des autres images vidéo de chaque sous-séquence vidéo par rapport à leur image de référence respective ; les Figs 5a et 5b représentent des exemples de séquences d'images dans lesquelles sont déterminées des sous-séquences d'images selon les premier et second modes de réalisation ; la Fig. 6 représente l'algorithme de décodage selon l'invention d'un signal de données représentatif d'une séquence d'images vidéo.The characteristics of the invention mentioned above, as well as others, will appear more clearly on reading the following description of an exemplary embodiment, said description being made in relation to the accompanying drawings, among which: FIG. . 1 shows a device implementing the invention; Fig. 2 represents the algorithm for coding image sequences according to a first embodiment of the invention; Fig. 3 represents the algorithm for meshing an image and for determining a type of second generation wavelet transform to be applied to at least part of an image according to the invention; Fig. 4a represents the algorithm for determining, according to a second embodiment, video sub-sequences from the video image sequence as well as the reference images, in these video sub-sequences, used for coding the other images of their sub - respective video sequence, FIG. 4b represents the coding algorithm according to a second embodiment of the other video images of each video sub-sequence with respect to their respective reference image; Figs 5a and 5b show examples of image sequences in which sub-sequences of images are determined according to the first and second embodiments; Fig. 6 shows the decoding algorithm according to the invention of a data signal representative of a sequence of video images.
Nous allons, dans un premier temps, décrire les fondements des transformées en ondelettes dites de seconde génération. Ces transformées en ondelettes ont été introduites par W. Dahmen dans un article « Décomposition of refinable spaces and applications to operator équations » Numer. Algor., N° 5 1993, pp 229-245, par J.M Carnicer, W Dahmen et JM. PENA dans un article « Local décomposition of refinable spaces » Appl Comp. Harm. Anal. 3, 1996, pp 127-153 puis développées par Wim Sweldens dans un document intitulé « The lifting Scheme : A construction of second génération wavelets », SIAM Journal of Mathematical analysis, Nov 1996.We will first describe the foundations of the so-called second generation wavelet transforms. These wavelet transforms were introduced by W. Dahmen in an article “Decomposition of refinable spaces and applications to operator equations” Numer. Algor., N ° 5 1993, pp 229-245, by J.M Carnicer, W Dahmen and JM. PENA in an article “Local decomposition of refinable spaces” Appl Comp. Harm. Anal. 3, 1996, pp 127-153 then developed by Wim Sweldens in a document entitled "The lifting Scheme: A construction of second generation wavelets", SIAM Journal of Mathematical analysis, Nov 1996.
Ces transformées en ondelettes sont construites à partir d'une subdivision irrégulière de l'espace d'analyse, et sont basées sur une méthode d'interpolation pondérée et moyennée. Ces ondelettes sont particulièrement bien adaptées pour les analyses sur des supports compacts et sur les intervalles. Elles conservent les propriétés des ondelettes de première génération, à savoir une bonne localisation temps fréquence et une bonne rapidité de calcul. Les transformées en ondelettes de seconde génération disposent d'un certain nombre de propriétés. Comme les transformées en ondelettes de première génération, elles forment une base de Riez sur L (R) ainsi qu'une base uniforme pour une grande variété d'espaces de fonctions. Comme les transformées en ondelettes de première génération, les coefficients de décomposition sur la base uniforme sont connus ou peuvent être simplement déterminés. Les transformées en ondelettes sont soit orthogonales, soit bi-orthogonales. Comme les transformées en ondelettes de première génération, les transformées en ondelettes ainsi que leurs duales ont des propriétés locales dans l'espace et en fréquence. Les propriétés de localisation en fréquence découlent directement de la régularité de la transformée en ondelette pour les hautes fréquences et du nombre de moments polynomiaux nuls pour les basses fréquences. Comme les transformées en ondelettes de première génération, les transformées en ondelettes de seconde génération peuvent aussi être utilisées en analyse multirésolution. Les transformées en ondelettes de seconde génération disposent en outre des propriétés fondamentales dont ne disposent pas les transformées en ondelettes de première génération.These wavelet transforms are constructed from an irregular subdivision of the analysis space, and are based on a weighted and averaged interpolation method. These wavelets are particularly well suited for analyzes on compact supports and on intervals. They retain the properties of first generation wavelets, namely good time-frequency localization and good calculation speed. Second generation wavelets transforms have a number of properties. Like the first generation wavelet transforms, they form a base of Riez on L (R) as well as a uniform base for a wide variety of function spaces. Like the first generation wavelet transforms, the coefficients of decomposition on the uniform basis are known or can simply be determined. Wavelet transforms are either orthogonal or bi-orthogonal. Like the first generation wavelet transforms, the wavelet transforms and their dual models have local properties in space and frequency. The frequency localization properties result directly from the regularity of the wavelet transform for the high frequencies and from the number of zero polynomial moments for the low frequencies. Like the first generation wavelet transforms, the second generation wavelet transforms can also be used in multiresolution analysis. Second-wavelet transforms also have fundamental properties that first-generation wavelets do not have.
Les transformées en ondelettes de seconde génération peuvent être définies sur des domaines arbitraires, tels que les courbes, les surfaces ou les variétés. Les transformées en ondelettes de seconde génération permettent l'analyse sur des courbes et des surfaces.Second generation wavelet transforms can be defined on arbitrary domains, such as curves, surfaces or manifolds. The transforms into second generation wavelets allow analysis on curves and surfaces.
Les transformées en ondelettes de seconde génération permettent l'utilisation d'algorithmes adaptés à des échantillons de données irréguliers.Second generation wavelet transforms allow the use of algorithms suitable for irregular data samples.
L'analyse multirésolution et l'application de ces transformées en ondelettes de seconde génération sur un intervalle borné, et en particulier sur un maillage triangulaire sont présentées dans un article de M Lounsbery, T DeRose, J Warren intitulé « Multirésolution Analysis for Surfaces of Arbitrary Topological Type » ACM Transactions on Graphics, 1994. Cette analyse multirésolution est intimement liée au processus de subdivision récursive. Les surfaces d'objets à trois dimensions ou d'images d'une séquence vidéo sont représentées par un maillage polyédrique. Le maillage est une surface linéaire par morceaux, se composant par exemple de faces triangulaires. La représentation des surfaces par un maillage triangulaire permet de compresser, d'éditer, de transférer efficacement des séquences d'images vidéo. Quand on décrit un maillage, et plus particulièrement un maillage triangulaire, celui-ci est composé de deux parties. Une première partie représentant la connectivité des sommets, des arêtes et des faces déterminant la topologie du maillage et une seconde partie comprenant l'ensemble des positions des sommets définissant ainsi la géométrie du maillage. Le document de Wim Sweldens, intitulé « The lifting Scheme : A construction of second génération wavelets », SIAM Journal of Mathematical analysis, Volume 29, number 2, pp 511-546, 1998 décrit une méthode de transformation généralisée permettant de calculer les coefficients de ces transformées en ondelettes sans avoir à utiliser les produits de convolution ainsi que les transformées de Fourier. Ainsi, c'est un excellent outil pour la construction des transformées en ondelettes de seconde génération en ce sens que la transformation de Fourier n'est plus nécessaire. Cette méthode permet une reconstruction, par de simples opérations sur des lignes et des colonnes d'une matrice d'analyse de séparer le signal à traiter en échantillons pairs et impairs, de prédire les échantillons impairs en fonction des échantillons pairs. La prédiction réalisée, on met à jour le signal afin de préserver les propriétés initiales. Cet algorithme peut être réitéré autant de fois que nécessaire.The multiresolution analysis and the application of these second generation wavelet transforms over a bounded interval, and in particular on a triangular mesh are presented in an article by M Lounsbery, T DeRose, J Warren entitled “Multiresolution Analysis for Surfaces of Arbitrary Topological Type ”ACM Transactions on Graphics, 1994. This multiresolution analysis is intimately linked to the recursive subdivision process. The surfaces of three-dimensional objects or images of a video sequence are represented by a polyhedral mesh. The mesh is a linear surface in pieces, consisting for example of triangular faces. The representation of the surfaces by a triangular mesh makes it possible to compress, edit, efficiently transfer sequences of video images. When one describes a mesh, and more particularly a triangular mesh, this one is made up of two parts. A first part representing the connectivity of the vertices, edges and faces determining the topology of the mesh and a second part comprising all the positions of the vertices thus defining the geometry of the mesh. The document by Wim Sweldens, entitled "The lifting Scheme: A construction of second generation wavelets", SIAM Journal of Mathematical analysis, Volume 29, number 2, pp 511-546, 1998 describes a generalized transformation method for calculating the coefficients of these transformed into wavelets without having to use convolution products as well as Fourier transforms. Thus, it is an excellent tool for the construction of second generation wavelet transforms in the sense that the Fourier transformation is no longer necessary. This method allows a reconstruction, by simple operations on lines and columns of an analysis matrix to separate the signal to be processed into even and odd samples, to predict the odd samples according to the even samples. Once the prediction has been made, the signal is updated in order to preserve the initial properties. This algorithm can be repeated as many times as necessary.
Nous allons maintenant décrire en référence à la Fig. 1 un dispositif de codage et/ou de décodage mettant en œuvre l'invention. Ce dispositif 10 est adapté à coder un signal numérique constitué d'une séquence vidéo et/ou à décoder un signal numérique constitué d'une séquence vidéo préalablement codée selon l'invention.We will now describe with reference to FIG. 1 a coding and / or decoding device implementing the invention. This device 10 is suitable for coding a digital signal consisting of a video sequence and / or for decoding a digital signal consisting of a video sequence previously coded according to the invention.
Le dispositif 10 est par exemple un micro-ordinateur. Il peut aussi être un moyen de visualisation de séquences d'images vidéo tel qu'un téléviseur ou tout autre dispositif de codage et/ou de décodage de séquences d'images vidéo. Le dispositif 10 comporte un bus de communication auquel sont reliés une unité centraleThe device 10 is for example a microcomputer. It can also be a means of viewing video image sequences such as a television set or any other device for coding and / or decoding video image sequences. The device 10 includes a communication bus to which a central unit is connected
100, une mémoire morte 102, une mémoire vive 103, un écran 104, un clavier 114, un disque dur 108, un lecteur/enregistreur de disque compact ou CD, une interface de communication avec un réseau de communication 113, une carte d'entrée sortie 106 reliée à un moyen de capture de séquence d'images 107 tel qu'une caméra.100, a read-only memory 102, a random access memory 103, a screen 104, a keyboard 114, a hard disk 108, a CD / CD player / recorder, a communication interface with a communication network 113, a memory card. input output 106 connected to an image sequence capture means 107 such as a camera.
Le disque dur 108 mémorise les programmes mettant en œuvre l'invention, ainsi que les données traitées selon l'invention. Ces programmes peuvent aussi être lus par l'intermédiaire du disque compact ou reçus via le réseau de communication 113, ou encore mémorisés en mémoire morte 102. De manière plus générale, les programmes selon la présente invention sont mémorisés dans un moyen de stockage. Ce moyen de stockage est lisible par un ordinateur ou un microprocesseur 100. Ce moyen de stockage est intégré ou non au dispositif, et peut être amovible. Lors de la mise sous tension du dispositif 10, les programmes selon la présente invention sont transférés dans la mémoire vive 103 qui contient alors le code exécutable de l'invention ainsi que les variables nécessaires à la mise en œuvre de l'invention. Le dispositif 10 peut recevoir des données à traiter depuis un dispositif périphérique 107, tel qu'un caméscope numérique, ou tout autre moyen d'acquisition ou de stockage de données.The hard disk 108 stores the programs implementing the invention, as well as the data processed according to the invention. These programs can also be read via the compact disc or received via the communication network 113, or even memorized in read-only memory 102. More generally, the programs according to the present invention are memorized in a storage means. This storage means can be read by a computer or a microprocessor 100. This storage means is integrated or not into the device, and can be removable. When the device 10 is powered up, the programs according to the present invention are transferred into the random access memory 103 which then contains the executable code of the invention as well as the variables necessary for the implementation of the invention. The device 10 can receive data to be processed from a peripheral device 107, such as a digital camcorder, or any other means of acquiring or storing data.
Le dispositif 10 peut également recevoir des données à traiter, depuis un dispositif distant via le réseau de communication 113 et/ou transmettre un signal de données comprenant les données codées selon l'invention à destination d'un dispositif distant par l'intermédiaire du même réseau de communication 113.The device 10 can also receive data to be processed from a remote device via the communication network 113 and / or transmit a data signal comprising the data coded according to the invention to a remote device via the same communication network 113.
Le réseau de communication 113 est par exemple un réseau de type Internet ou un réseau de télécommunication téléphonique par lequel une communication de type visioconférence est établie entre deux dispositifs 10. Le réseau de communication 113 peut aussi être un réseau de diffusion Hertzien ou satellite d'informations vidéo codées selon la présente invention.The communication network 113 is for example an Internet type network or a telephone telecommunication network by which a videoconference type communication is established between two devices 10. The communication network 113 can also be a Hertzian or satellite broadcasting network. video information encoded according to the present invention.
Le dispositif 10 comporte un écran 104 apte à reproduire les séquences d'images vidéo décodées selon l'invention et/ou les séquences d'images vidéo à traiter selon l'invention. Le dispositif 10 comporte aussi un clavier 114 servant d'interface utilisateur.The device 10 includes a screen 104 capable of reproducing the sequences of video images decoded according to the invention and / or the sequences of video images to be processed according to the invention. The device 10 also includes a keyboard 114 serving as a user interface.
Par l'intermédiaire de ce clavier 114, l'utilisateur peut sélectionner certains paramètres de l'invention et/ou activer les programmes selon l'invention.Via this keyboard 114, the user can select certain parameters of the invention and / or activate the programs according to the invention.
La Fig. 2 représente l'algorithme de codage de séquences d'images vidéo selon un premier mode de réalisation de l'invention. Au lancement de l'application, le processeur 100 du dispositif 10 lit à partir de la mémoire morte 102, les instructions du programme correspondant aux étapes E200 à E214 de la Fig. 2 et les charge en mémoire vive 103 pour les exécuter.Fig. 2 represents the algorithm for coding video image sequences according to a first embodiment of the invention. When the application is launched, the processor 100 of the device 10 reads from the read-only memory 102, the program instructions corresponding to steps E200 to E214 in FIG. 2 and loads them into RAM 103 to execute them.
A l'étape E200, le processeur 100 prend la première image II d'une séquence vidéo I à coder et détermine un maillage de celle-ci. Un maillage est une représentation sous forme graphe de l'image. La détermination du maillage sera explicitée ultérieurement plus en détail en regard de la Fig. 3.In step E200, the processor 100 takes the first image II of a video sequence I to be coded and determines a mesh of the latter. A mesh is a graph representation of the image. The determination of the mesh will be explained later in more detail with reference to FIG. 3.
La séquence vidéo est par exemple mémorisée sur un disque CD compris dans le lecteur 109 ou reçue par l'intermédiaire de l'interface entrée/sortie 106 d'un dispositif de capture d'images 107 ou encore reçue du réseau de communication 113 par l'intermédiaire de l'interface de communication 112. La séquence vidéo I est par exemple la séquence d'images vidéo représentée en Fig. 5a. Cette séquence d'images vidéo I est dans notre exemple constituée de dix-sept images notées II à 117.The video sequence is for example stored on a CD disc included in the player 109 or received via the input / output interface 106 of an image capture device 107 or also received from the communication network 113 by via the communication interface 112. The video sequence I is for example the sequence of video images shown in FIG. 5a. This sequence of video images I is in our example made up of seventeen images denoted II to 117.
Le maillage ainsi déterminé, le processeur 100 à l'étape E201 détermine les coefficients de transformée en ondelettes de seconde génération à partir du maillage. Pour cela, on applique la transformée en ondelettes en utilisant la technique de Lifting sur l'ensemble des positions des sommets définissant la géométrie du maillage. La transformée en ondelettes de seconde génération est effectuée pour un nombre prédéterminé de niveaux de résolution. La technique de Lifting est semblable à celle telle que décrite dans le document de Wim Sweldens, intitulé « The lifting Scheme : A construction of second génération wavelets ».The mesh thus determined, the processor 100 in step E201 determines the coefficients of transformation into second generation wavelets from the mesh. For this, we apply the wavelet transform using the Lifting technique on all the positions of the vertices defining the geometry of the mesh. The second generation wavelet transform is performed for a predetermined number of resolution levels. The lifting technique is similar to that described in the document by Wim Sweldens, entitled "The lifting Scheme: A construction of second generation wavelets".
Il est à remarquer que, dans un mode particulier, comme cela sera décrit en référence à la Fig. 3, différents types de transformées en ondelettes sont appliqués sur différentes parties de l'image à traiter. A titre d'exemple, une transformée en ondelettes connue sous le nom d' ondelettes de Butterfly est affectée aux zones de texture, une transformée en ondelettes connue sous le nom d'ondelettes de Loop est affectée aux zones de contours d'objets naturels, une transformée en ondelettes connue sous le nom d'ondelletes de Catmull-Clark est affectée aux zones de contours d'objets non naturels et enfin une transformée en ondelettes connue sous le nom d'ondelettes affines est affectées aux singularités.It should be noted that, in a particular mode, as will be described with reference to FIG. 3, different types of wavelet transforms are applied to different parts of the image to be processed. For example, a wavelet transform known as Butterfly wavelets is assigned to the texture areas, a wavelet transform known as Loop wavelets is assigned to the contours of natural objects, a wavelet transform known as Catmull-Clark wavelets is assigned to the contours of unnatural objects and finally a wavelet transform known as affine wavelets is assigned to singularities.
Cette opération effectuée, le processeur 100 mémorise à l'étape E202 les coefficients de la transformée en ondelettes de la première image II dans la mémoire vive 103. Ces coefficients sont alors considérés comme des coefficients de référence. Cette image II en Fig. 5a est marquée d'une lettre R représentative de sa fonction d'image de référence.This operation carried out, the processor 100 stores in step E202 the coefficients of the wavelet transform of the first image II in the random access memory 103. These coefficients are then considered as reference coefficients. This image II in FIG. 5a is marked with a letter R representative of its reference image function.
Le processeur 100 à l'étape suivante E203 prend l'image suivante 12 de la séquence vidéo I à coder et détermine un maillage de celle-ci. La détermination d'un maillage sera explicité ultérieurement en regard de la Fig. 3. Le maillage ainsi déterminé, le processeur 100 à l'étape E204 détermine les coefficients de la transformée en ondelettes de seconde génération à partir du maillage. Pour cela, on applique la transformée en ondelettes pour un nombre prédéterminé de niveaux de résolution en utilisant la technique de Lifting sur l'ensemble des positions des sommets définissant la géométrie du maillage de l'image en cours de traitement.The processor 100 in the next step E203 takes the next image 12 of the video sequence I to be coded and determines a mesh of the latter. The determination of a mesh will be explained later with reference to FIG. 3. The mesh thus determined, the processor 100 in step E204 determines the coefficients of the second generation wavelet transform from the mesh. For this, we apply the wavelet transform for a predetermined number of resolution levels using the Lifting technique on the set of vertex positions defining the geometry of the mesh of the image being processed.
Il est à remarquer que, comme précédemment, différents types de transformées en ondelettes sont appliqués sur différentes parties de l'image à traiter. Cette opération effectuée, le processeur 100 lit à l'étape E205 les coefficients de référence mémorisés à l'étape E202 de la transformée en ondelettes de la première image II dans la mémoire vive 103.It should be noted that, as previously, different types of wavelet transforms are applied to different parts of the image to be processed. This operation performed, the processor 100 reads in step E205 the reference coefficients stored in step E202 of the wavelet transform of the first image II in the random access memory 103.
Le processeur 100 effectue alors à l'étape E206 la différence entre les coefficients de référence de l'image II et les coefficients de la transformée en ondelettes de seconde génération déterminés pour l'image 12 à l'étape E204. Bien entendu la différence est calculée pour chaque coefficient correspondant à un sommet identique ou similaire d'une même surface dans les deux images II et 12.The processor 100 then performs in step E206 the difference between the reference coefficients of image II and the coefficients of the second generation wavelet transform determined for image 12 in step E204. Of course, the difference is calculated for each coefficient corresponding to an identical or similar vertex of the same surface in the two images II and 12.
La différence calculée, le processeur 100 vérifie à l'étape E207 si les différences calculées sont inférieures à un seuil prédéterminé. La différence entre chaque coefficient peut être utilisée pour cette vérification ou une moyenne des différences peut aussi être utilisée. Ce seuil est soit prédéterminé et fixé, soit modifiable par l'utilisateur par l'intermédiaire du clavier 114 du dispositif 10.The calculated difference, the processor 100 checks in step E207 if the calculated differences are less than a predetermined threshold. The difference between each coefficient can be used for this verification or an average of the differences can also be used. This threshold is either predetermined and fixed, or modifiable by the user via the keyboard 114 of the device 10.
Dans l'affirmative, le processeur 100 passe à l'étape E207 et vérifie si une partie du maillage de la seconde image 12 s'est déplacée par rapport au maillage de l'image de référence II. Ceci correspond à un mouvement d'un objet dans la séquence vidéo. Dans l'affirmative, le processeur 100 code ce déplacement et mémorise celui-ci à l'étape E210. Il est à remarquer que les étapes E209 et E210 peuvent aussi ne pas être effectuées par le processeur 100 dans l'algorithme tel que décrit.If so, the processor 100 goes to step E207 and checks whether part of the mesh of the second image 12 has moved with respect to the mesh of the reference image II. This corresponds to a movement of an object in the video sequence. If so, the processor 100 codes this movement and stores it in step E210. It should be noted that steps E209 and E210 may also not be performed by the processor 100 in the algorithm as described.
Si un faible déplacement existe ou si aucune partie du maillage de la seconde image 12 ne s'est déplacée par rapport au maillage de l'image de référence II, le processeur 100 mémorise à l'étape E211 les différences de coefficients calculées à l'étape E206 dans la mémoire vive 103.If a small displacement exists or if no part of the mesh of the second image 12 has moved with respect to the mesh of the reference image II, the processor 100 stores in step E211 the differences in coefficients calculated at step E206 in the random access memory 103.
Cette opération effectuée, le processeur 100 vérifie s'il existe d'autres images dans la séquence vidéo I à coder. Dans notre exemple, dix-sept images sont à coder et le processeur retourne alors à l'étape E203.This operation carried out, the processor 100 checks whether there are other images in the video sequence I to be coded. In our example, seventeen images are to be coded and the processor then returns to step E203.
Le processeur 100 effectue de la même manière que celle précédemment décrite les étapes E203, E204, E205, E206, E207, E209, E210, E211 et E212.The processor 100 performs in the same manner as that previously described the steps E203, E204, E205, E206, E207, E209, E210, E211 and E212.
Il en est de même pour les images 13 à 15. Les différences des coefficients entre chacune de ces images avec les coefficients de référence sont ainsi mémorisées. Le processeur 100 effectue aussi les mêmes opérations pour l'image 16 qui, dans notre exemple, correspond à un changement de plan. La différence entre les coefficients de la transformée en ondelettes de seconde génération des images II à 16 étant supérieure au seuil noté Seuil à l'étape E207, le processeur 100 passe à l'étape E208.It is the same for images 13 to 15. The differences of the coefficients between each of these images with the reference coefficients are thus memorized. The processor 100 also performs the same operations for the image 16 which, in our example, corresponds to a change of plane. The difference between the coefficients of the second generation wavelet transform of the images II to 16 being greater than the threshold noted Threshold at step E207, the processor 100 goes to step E208.
Le processeur 100 à l'étape E208 vérifie si d'autres coefficients de référence existent dans la mémoire vive 103.The processor 100 in step E208 checks whether other reference coefficients exist in the random access memory 103.
Dans notre cas, seuls les coefficients de référence de la transformée en ondelettes de seconde génération de l'image II sont mémorisés. Le processeur 100 passe alors à l'étape E202 et mémorise à cette étape les coefficients de la transformée en ondelettes de seconde génération de l'image 16 déterminés à l'étape E204.In our case, only the reference coefficients of the second generation wavelet transform of image II are stored. The processor 100 then goes to step E202 and stores in this step the coefficients of the second generation wavelet transform of the image 16 determined in step E204.
Les coefficients de référence utilisés par la suite correspondent alors aux coefficients de l'image 16.The reference coefficients used subsequently correspond to the coefficients of image 16.
Le processeur 100 effectue de la même manière que celle précédemment décrite les étapes E203, E204, E205, E206, E207, E209, E210, E211 et E212 pour les images 17 à 19.The processor 100 performs in the same manner as that previously described the steps E203, E204, E205, E206, E207, E209, E210, E211 and E212 for the images 17 to 19.
Dans notre exemple, l'image 110 correspond à un changement de plan. La différence entre les coefficients de la transformée en ondelettes de seconde génération des images 110 et 16 étant supérieure au seuil à l'étape E207, le processeur 100 passe à l'étape E208.In our example, image 110 corresponds to a change of plane. The difference between the coefficients of the second generation wavelet transform of the images 110 and 16 being greater than the threshold at step E207, the processor 100 goes to step E208.
Le processeur 100 à l'étape E208 vérifie si d'autres coefficients de référence existent dans la mémoire vive 103.The processor 100 in step E208 checks whether other reference coefficients exist in the random access memory 103.
Dans notre exemple, les coefficients de référence de l'image II sont aussi mémorisés dans la mémoire vive 103. Le processeur passe à l'étape E205, lit ceux-ci et effectue à l'étape E206 la différence entre les coefficients de référence de l'imageIn our example, the reference coefficients of image II are also stored in the random access memory 103. The processor goes to step E205, reads them and performs in step E206 the difference between the reference coefficients of the image
II et les coefficients de la transformée en ondelettes de seconde génération déterminés pour l'image 110 à l'étape E204.II and the coefficients of the second generation wavelet transform determined for image 110 in step E204.
La différence calculée, le processeur 100 vérifie à l'étape E207 si les différences calculées sont inférieures à un seuil prédéterminé. L'intérêt de garder en mémoire les coefficients des différentes images de référence, en l'occurrence II et 16, repose sur le fait qui si la séquence vidéo revient sur une scène précédente dans un temps relativement court, les coefficients de référence mémorisés n'ont pas besoin d'être recalculés, ce qui apporte un gain de temps non négligeable. De même, lors de l'insertion des coefficients de référence dans le signal de données, ceux-ci ne seront insérés qu'une seule fois. Un simple indicateur dans le signal de données indiquera quels coefficients dans le signal de données devront être considérés comme coefficients de référence pour chaque sous-séquence vidéo. Selon notre exemple, l'image 110 correspond à un nouveau plan dans la séquence vidéo. Le test de l'étape E207 est donc négatif. Le processeur retourne alors à l'étape E205.The calculated difference, the processor 100 checks in step E207 if the calculated differences are less than a predetermined threshold. The advantage of keeping in memory the coefficients of the different reference images, in this case II and 16, is based on the fact that if the video sequence returns to a previous scene in a relatively short time, the stored reference coefficients do not do not need to be recalculated, which saves a considerable amount of time. Similarly, when inserting the reference coefficients into the data signal, these will only be inserted once. A simple indicator in the data signal will indicate which coefficients in the data signal should be considered as reference coefficients for each video sub-sequence. According to our example, image 110 corresponds to a new plane in the video sequence. The test of step E207 is therefore negative. The processor then returns to step E205.
Le processeur 100 effectue de la même manière que celle précédemment décrite les étapes E203, E204, E205, E206, E207, E209, E210, E211 et E212 pour les images 111 à I17.The processor 100 performs in the same manner as that previously described the steps E203, E204, E205, E206, E207, E209, E210, E211 and E212 for the images 111 to I17.
Ainsi, selon l'exemple de la Fig. 5a, le processeur 100 a mémorisé en mémoire vive 103 les coefficients de la transformée en ondelettes des images II, 16 et 110 ainsi qu'une partie de leurs maillages respectifs. Cette partie est représentative de la connectivité des sommets, des arêtes et des faces déterminant la topologie du maillage.Thus, according to the example of FIG. 5a, the processor 100 has stored in random access memory 103 the coefficients of the wavelet transform of the images II, 16 and 110 as well as a part of their respective meshes. This part is representative of the connectivity of the vertices, the edges and the faces determining the topology of the mesh.
Toujours selon l'exemple de la Fig. 5a, le processeur 100 a mémorisé en mémoire vive 103 les différences entre les coefficients de la transformée en ondelettes des images 12 à 15 et les coefficients de la transformée en ondelettes de l'image II, les différences entre les coefficients de la transformée en ondelettes des images 17 à 19 et les coefficients de la transformée en ondelettes de l'image 16 et les différences entre les coefficients de la transformée en ondelettes des images II 1 à 117 et les coefficients de la transformée en ondelettes de l'image 110.Still according to the example of FIG. 5a, the processor 100 has stored in RAM 103 the differences between the coefficients of the wavelet transform of images 12 to 15 and the coefficients of the wavelet transform of image II, the differences between the coefficients of the wavelet transform of images 17 to 19 and the coefficients of the wavelet transform of image 16 and the differences between the coefficients of the wavelet transform of images II 1 to 117 and the coefficients of the wavelet transform of image 110.
Ainsi, la séquence vidéo de la Fig. 5a a été subdivisée en trois sous-séquences vidéo notées Sl à S3. A chaque sous-séquence vidéo, sont associés au moins une partie d'un maillage et les coefficients de la transformée en ondelettes de seconde génération d'une image de référence dans la sous-séquence vidéo, la différence entre les coefficients de la transformée en ondelettes de seconde génération de chaque autre image de la sous-séquence vidéo et les coefficients de la transformée en ondelettes de l'image de référence. II est à remarquer qu'en variante, la différence peut être calculée entre les coefficients de la transformée en ondelettes de seconde génération d'une image de la sous-séquence vidéo I et les coefficients de la transformée en ondelettes de l'image suivante. Toutes les images II à 117 ayant été traitées, le processeur 100 à l'étape E212 passe à l'étape E213.Thus, the video sequence of FIG. 5a has been subdivided into three video sub-sequences denoted S1 to S3. Each video sub-sequence is associated with at least part of a mesh and the coefficients of the second generation wavelet transform of a reference image in the video sub-sequence, the difference between the coefficients of the second generation wavelets of each other image of the video sub-sequence and the coefficients of the wavelet transform of the reference image. It should be noted that, as a variant, the difference can be calculated between the coefficients of the second generation wavelet transform of an image of the video sub-sequence I and the coefficients of the wavelet transform of the following image. All the images II to 117 having been processed, the processor 100 in step E212 goes to step E213.
A l'étape E213, le processeur 100 code les coefficients ainsi que les différences de coefficients obtenus précédemment. Ces coefficients ainsi que leurs différences sont par exemple codés préférentiellement selon une technique de type Zerotree. Cette technique est par exemple décrite dans la publication « Embedded Image Coding Using Zerotree of Wavelet Coefficients » de J.M Shapiro IEEE Transcations on signal Processing, Vol 41, NO 12, décembre 1993.In step E213, the processor 100 codes the coefficients as well as the differences in coefficients obtained previously. These coefficients and their differences are for example preferably coded according to a Zerotree type technique. This technique is for example described in the publication "Embedded Image Coding Using Zerotree of Wavelet Coefficients" by J.M Shapiro IEEE Transcations on signal Processing, Vol 41, NO 12, December 1993.
En effet, dans la transformée en ondelettes, chaque coefficient d'une sous bande a quatre coefficients dans la sous bande inférieure. Grâce à cette structure, si un coefficient à une sous-bande de basse résolution donnée est insignifiant par rapport à un seuil prédéterminé, tous les coefficients de la même orientation dans la même position spaciale à des sous-bandes de fréquence plus hautes sont aussi insignifiants vis-à-vis de ce même seuil prédéterminé. Un arbre de symboles nuls est alors défini commençant à une racine elle aussi nulle et référencée comme une fin de bloc. Ainsi, beaucoup de coefficients à des sous-bandes de fréquence plus hautes peuvent être effacés. Cet algorithme est intéressant en ce sens que le codage peut s'arrêter à n'importe quel point. Il autorise aussi un encodage précis par rapport à un débit donné.Indeed, in the wavelet transform, each coefficient of a sub-band has four coefficients in the lower sub-band. Thanks to this structure, if a coefficient at a given low resolution sub-band is insignificant compared to a predetermined threshold, all the coefficients of the same orientation in the same spatial position at higher frequency sub-bands are also insignificant vis-à-vis this same predetermined threshold. A null symbol tree is then defined starting at a root which is also null and referenced as an end of block. Thus, many coefficients at higher frequency sub-bands can be deleted. This algorithm is interesting in the sense that coding can stop at any point. It also allows precise encoding in relation to a given bit rate.
Alternativement, le codage peut aussi être effectué en utilisant la méthode de type EBCOT (Embedded Block Coding with Optimized Truncation of the embedded bit-stream). Cette méthode est décrite dans la publication de D Taubman « High performance scalable Image compression with EBCOT » IEEE Transactions on ImageAlternatively, coding can also be done using the EBCOT (Embedded Block Coding with Optimized Truncation of the embedded bit-stream) type method. This method is described in the publication by D Taubman "High performance scalable Image compression with EBCOT" IEEE Transactions on Image
Processing Vol 9, NO 7, Juillet 2000.Processing Vol 9, NO 7, July 2000.
Cette opération réalisée, le processeur 100 passe à l'étape E214 et met les coefficients codés sous forme d'un signal de données ou bitstream.Once this has been done, the processor 100 goes to step E214 and puts the coded coefficients in the form of a data or bitstream signal.
Les coefficients codés sont par exemple transmis par ordre de priorité. Les données sont transmises sous la forme : numéro de paquet/en-tête comprenant entre autres le nombre de coefficients dans le paquet, des informations représentatives de la zone de l'image concernée, le nombre de plans de bits utilisés pour coder l'image, le type de transformée en ondelettes utilisée pour coder certaines zones de l'image, des informations sur le maillage telles que la topologie de celui-ci ainsi que des champs prédéterminés indiquant que les coefficients suivant ces champs prédéterminés sont des coefficients d'images de référence selon l'invention. D'autres champs indiquent aussi l'image de référence utilisée lors du calcul des différences de coefficients des autres images des sous-séquences vidéo.The coded coefficients are for example transmitted in order of priority. The data is transmitted in the form: packet number / header including inter alia the number of coefficients in the packet, information representative of the area of the image concerned, the number of bit planes used to code the image , the type of wavelet transform used to code certain areas of the image, information on the mesh such as the topology thereof as well as predetermined fields indicating that the coefficients according to these predetermined fields are image coefficients of reference according to the invention. Other fields indicate also the reference image used when calculating the differences in coefficients of the other images of the video sub-sequences.
Préférentiellement, le signal est sous forme de paquets consécutifs, chaque entête de paquet comprenant un champ début de paquet, le numéro de paquet en question, le type de transformée en ondelettes utilisé, un champ image de référence permettant d'indiquer que les coefficients du paquet sont des coefficients d'images de référence et ne sont donc pas des différences de coefficients entre deux images, un champ numéro de buffer indiquant, lorsqu'une séquence ou une sous-séquence comprend une pluralité d'images de référence, l'image de référence ayant été utilisée lors du codage des coefficients compris dans la sous-séquence.Preferably, the signal is in the form of consecutive packets, each packet header comprising a packet start field, the packet number in question, the type of wavelet transform used, a reference image field making it possible to indicate that the coefficients of the packet are coefficients of reference images and are therefore not differences of coefficients between two images, a buffer number field indicating, when a sequence or a sub-sequence comprises a plurality of reference images, the image of reference having been used during the coding of the coefficients included in the subsequence.
Le champ numéro de paquet contient un identifiant du paquet attribué par ordre suivant la taille du paquet.The package number field contains a package identifier assigned in order according to the size of the package.
Le champ en-tête d'informations comprend les sous-champs suivant :The information header field includes the following sub-fields:
- le nombre de coefficients dans le paquet ; - la zone de l'image considérée représentée à partir de la topologie du maillage ;- the number of coefficients in the package; - the zone of the image considered represented from the topology of the mesh;
- le nombre de plans de bits utilisés pour le codage des coefficients en question.- the number of bit plans used for coding the coefficients in question.
Le champ type de transformée en ondelettes indique si la transformée en ondelettes appliquée à la zone de l'image dont le paquet est issu est par exemple une transformée en ondelettes de Loop, de Butterfly, de Catmull-Clark ou encore une transformée en ondelettes de type affine, ou de tout autre type choisi en fonction de la zone de l'image considérée.The standard wavelet transform field indicates whether the wavelet transform applied to the image area from which the packet comes is for example a wavelet transform of Loop, Butterfly, Catmull-Clark or even a wavelet transform of affine type, or any other type chosen according to the area of the image considered.
Le champ maillage permet quant à lui de transmettre la topologie du maillage de chaque image de référence.The mesh field is used to transmit the mesh topology of each reference image.
Il est à remarquer qu'en variante, le signal de données comporte des informations indiquant l'image de référence ayant servi au codage d'au moins une autre image, l'image de référence faisant partie d'un groupe d'images de référence codées dans le signal de données. La Fig. 3 représente l'algorithme de maillage d'une image et de détermination d'un type de transformée en ondelettes de seconde génération à appliquer sur au moins une partie d'une image selon l'invention. Au lancement de l'application, le processeur 100 du dispositif 10 lit à partir de la mémoire morte 102, les instructions du programme correspondant aux étapes E300 à E308 de la Fig. 3 et les charge en mémoire vive 103 pour les exécuter.It should be noted that, as a variant, the data signal includes information indicating the reference image used for coding at least one other image, the reference image being part of a group of reference images encoded in the data signal. Fig. 3 represents the algorithm for meshing an image and for determining a type of second generation wavelet transform to be applied to at least part of an image according to the invention. When the application is launched, the processor 100 of the device 10 reads from the read-only memory 102, the program instructions corresponding to steps E300 to E308 of FIG. 3 and loads them into RAM 103 to execute them.
Le maillage tel que décrit dans le présent algorithme est effectué pour chacune des images à coder.The mesh as described in the present algorithm is performed for each of the images to be coded.
A l'étape E300, le processeur 100 effectue un maillage régulier et dense de l'image, c'est-à-dire que l'image est subdivisée par exemple en surfaces triangulaires. La densité de ce maillage est prédéterminée. Elle peut aussi être adaptée en fonction de la séquence d'image ou de l'image à coder. Cette étape réalisée, le processeur 100 effectue la boucle constituée des étapesIn step E300, the processor 100 performs a regular and dense mesh of the image, that is to say that the image is subdivided for example into triangular surfaces. The density of this mesh is predetermined. It can also be adapted according to the image sequence or the image to be coded. Once this step has been completed, the processor 100 performs the loop consisting of the steps
E301 à E305. Cette boucle correspond à la réalisation à partir du maillage régulier et dense d'un maillage optimal par fusion des triangles du maillage sur des critères de débit distorsion prédéterminés et en fonction des différentes propriétés des différentes zones de l'image. Ce maillage optimal donne une subdivision irrégulière de l'image et permet néanmoins l'emploi des transformées en ondelettes de seconde génération sur celui-ci.E301 to E305. This loop corresponds to the realization from the regular and dense mesh of an optimal mesh by fusion of the triangles of the mesh on predetermined distortion rate criteria and according to the different properties of the different areas of the image. This optimal mesh gives an irregular subdivision of the image and nevertheless allows the use of second generation wavelet transforms on it.
Le processeur 100 à l'étape E301 optimise ainsi les triangles du maillage dense, fusionne les triangles voisins en fonction de critères débit distorsion prédéterminés et permute les arêtes des triangles fusionnés du maillage. Cette détermination du maillage est selon un mode particulier conforme à celle telle que décrite dans l'article de M Lounsbery, T DeRose, J Warren intitulé « Multiresolution Analysis for Surfaces of Arbitrary Topological Type ».The processor 100 in step E301 thus optimizes the triangles of the dense mesh, merges the neighboring triangles as a function of predetermined distortion rate criteria and permutes the edges of the merged triangles of the mesh. This determination of the mesh is according to a particular mode in accordance with that as described in the article by M Lounsbery, T DeRose, J Warren entitled "Multiresolution Analysis for Surfaces of Arbitrary Topological Type".
A l'étape suivante E302, le processeur 100 quantifie les nœuds des nouveaux triangles formés. Cette opération effectuée, le processeur 100 passe à l'étape suivante E303 qui consiste à vérifier qu'une maille ne s'est pas retournée pendant l'étape d'optimisation E301.In the next step E302, the processor 100 quantifies the nodes of the new triangles formed. This operation carried out, the processor 100 goes to the next step E303 which consists in verifying that a mesh has not returned during the optimization step E301.
A l'étape suivante E304, le processeur 100 quantifie les nœuds des nouveaux triangles formés. Le processeur 100 vérifie ensuite à l'étape E305 si la boucle constituée des étapes E301 à 305 a été réalisée un nombre prédéterminé de fois et dans la négative réitère une nouvelle fois cette boucle.In the next step E304, the processor 100 quantifies the nodes of the new triangles formed. The processor 100 then checks in step E305 whether the loop made up of steps E301 to 305 has been carried out a predetermined number of times and, if not, reiterates this loop again.
Il est à remarquer ici qu'en variante, la détermination du maillage peut être effectuée de la façon inverse que celle précédemment décrite. Un premier maillage grossier peut être appliqué sur l'image, ensuite, on subdivise les mailles en quatre mailles, par exemple jusqu'à obtenir un maillage final semi-régulier. Cette méthode est plus particulièrement décrite dans la publication de P Gioia « Reducing the number of wavelet coefficients by géométrie partioning » Computational geometry, Theory and Applications Vol 14, 1999, pp 25-48.It should be noted here that, as a variant, the determination of the mesh can be carried out in the opposite manner to that previously described. A first mesh coarse can be applied on the image, then, one divides the meshes into four meshes, for example until obtaining a semi-regular final mesh. This method is more particularly described in the publication by P Gioia "Reducing the number of wavelet coefficients by géometry partioning" Computational geometry, Theory and Applications Vol 14, 1999, pp 25-48.
Dans l'affirmative, le processeur 100 passe à l'étape E306 qui, consiste à effectuer des opérations de gestion des bords. La gestion des bords consiste en l'application d'un homéomorphisme du maillage à un tore selon la méthode dite de périodisation. En variante, la gestion des bords consiste à effectuer une symétrie des données en prolongeant les diagonales situées aux frontières et qui ne sont pas orientées dans l'une des directions du maillage.If so, the processor 100 goes to step E306 which consists of carrying out edge management operations. The management of the edges consists in the application of a homeomorphism of the mesh to a torus according to the so-called periodization method. As a variant, the management of the edges consists in performing a symmetry of the data by extending the diagonals situated at the borders and which are not oriented in one of the directions of the mesh.
Ainsi, un maillage hiérarchique semi-adaptatif est réalisé. Cette étape effectuée, le processeur 100 détermine dans l'image à l'étape E307 des zones de nature distinctes. Ces zones sont de manière non limitative des zones de singularité, des zones de texture, des zones de contours d'objets naturels ou non naturels.Thus, a semi-adaptive hierarchical mesh is produced. This step carried out, the processor 100 determines in the image in step E307 zones of distinct nature. These areas are non-limiting areas of singularity, areas of texture, areas of contours of natural or unnatural objects.
Ces zones sont déterminées à partir des caractéristiques du maillage et plus particulièrement de la densité de celui-ci autour d'un point et d'une région autour de ce point. Si à un point du maillage, la densité de maillage est importante et autour de celui-ci, le maillage est vide. Ce point est alors considéré comme une singularité isolée. Si à un point du maillage, la densité de maillage est importante et autour de celui-ci, le maillage est aussi dense. Cette zone est alors considérée comme une zone de texture. Si à un point du maillage la densité de maillage est importante et autour de celui-ci et la densité de maillage est forte selon une direction particulière, cette zone est alors considérée comme une zone de contour. La différenciation d'un contour naturel d'un contour non naturel est effectuée en analysant la direction particulière du maillage. En effet, les objets naturels ont des contours plus incertains que les contours des objets non naturels. La direction des contours non naturels est donc plus uniforme que celle des contours non naturels. La détermination des zones étant effectuée, le processeur 100 passe à l'étapeThese zones are determined from the characteristics of the mesh and more particularly from the density of the latter around a point and of a region around this point. If at a point of the mesh, the density of mesh is important and around this one, the mesh is empty. This point is then considered as an isolated singularity. If at a point of the mesh, the density of mesh is important and around this one, the mesh is also dense. This area is then considered to be a texture area. If at a point of the mesh the density of mesh is important and around it and the density of mesh is strong according to a particular direction, this zone is then regarded as a zone of contour. The differentiation of a natural contour from an unnatural contour is carried out by analyzing the particular direction of the mesh. Indeed, natural objects have more uncertain contours than the contours of non-natural objects. The direction of unnatural contours is therefore more uniform than that of unnatural contours. The determination of the zones being carried out, the processor 100 goes to step
E308 et affecte à chaque zone déterminée un type de transformée en ondelettes adapté.E308 and assigns to each specific zone a suitable type of wavelet transform.
A titre d'exemple, une transformée en ondelettes connue sous le nom d'ondelettes de Butterfly est affectée aux zones de texture, une transformée en ondelettes connue sous le nom d'ondelettes de Loop est affectée aux zones de contours d'objets naturels, une transformée en ondelettes connue sous le nom d'ondelletes de Catmull-Clark est affectée aux zones de contours d'objets non naturels et enfin une transformée en ondelettes connue sous le nom d'ondelettes affines est affectées aux singularités. L'algorithme de la Fig. 4a détermine, selon un second mode de réalisation, les sous-séquences vidéo parmi la séquence vidéo, ainsi que les images de référence dans ces sous-séquences vidéo utilisées pour coder les autres images de leurs sous- séquences vidéo respectives.For example, a wavelet transform known as Butterfly wavelets is assigned to the texture areas, a wavelet transform known as Loop wavelets is assigned to the texture areas. contours of natural objects, a wavelet transform known as Catmull-Clark wavelets is assigned to the contours of unnatural objects and finally a wavelet transform known as affine wavelets is assigned to singularities . The algorithm of FIG. 4a determines, according to a second embodiment, the video sub-sequences among the video sequence, as well as the reference images in these video sub-sequences used to encode the other images of their respective video sub-sequences.
Dans ce second mode de réalisation, la séquence vidéo n'est pas subdivisée en sous-séquences vidéo en fonction d'une comparaison de différences de coefficients de transformée en ondelettes de seconde génération à un seuil prédéterminé. Dans ce second mode, la séquence vidéo est subdivisée en sous-séquences vidéo en fonction de la comparaison de PSNR (ratio signal sur bruit) entre une image compensée en mouvement et l'image originale par rapport à un seuil prédéterminé S. Au lancement de l'application, le processeur 100 du dispositif 10 lit à partir de la mémoire morte 102, les instructions du programme correspondant aux étapes E400 à E421 de la Fig. 4a et les charge en mémoire vive 103 pour les exécuter.In this second embodiment, the video sequence is not subdivided into video sub-sequences as a function of a comparison of differences in transform coefficients in second generation wavelets at a predetermined threshold. In this second mode, the video sequence is subdivided into video sub-sequences as a function of the comparison of PSNR (signal to noise ratio) between a compensated image in movement and the original image with respect to a predetermined threshold S. At the launch of the application, the processor 100 of the device 10 reads from the read-only memory 102, the program instructions corresponding to steps E400 to E421 of FIG. 4a and loads them into RAM 103 to execute them.
A l'étape E400, le processeur 100 initialise les variables i et k à la valeur 1. La variable i est une variable associée à l'image courante. La variable k est une variable associée aux sous-séquences de la séquence d'images.In step E400, the processor 100 initializes the variables i and k to the value 1. The variable i is a variable associated with the current image. The variable k is a variable associated with the subsequences of the sequence of images.
Le processeur 100, à l'étape suivante E401, lit la première image 121 de la séquence vidéo. La séquence vidéo est par exemple mémorisée sur un disque CD compris dans le lecteur 109 ou reçue par l'intermédiaire de l'interface entrée/sortieThe processor 100, in the next step E401, reads the first image 121 of the video sequence. The video sequence is for example stored on a CD disc included in the player 109 or received via the input / output interface
106 d'un dispositif de capture d'images 107 ou encore reçue du réseau de communication 113 par l'intermédiaire de l'interface de communication 112. La séquence vidéo est par exemple la séquence vidéo représentée en Fig. 5b. Cette séquence vidéo est dans notre exemple constituée de dix-sept images notées 121 à 137.106 of an image capture device 107 or also received from the communication network 113 via the communication interface 112. The video sequence is for example the video sequence shown in FIG. 5b. This video sequence is in our example made up of seventeen images denoted 121 to 137.
A l'étape E402, le processeur 100 affecte à la variable DEB(Ic) la valeur de la variable i. La variable Deb(k) correspond à une variable représentative du début d'une sous-séquence vidéo.In step E402, the processor 100 assigns to the variable DEB (Ic) the value of the variable i. The variable Deb (k) corresponds to a variable representative of the start of a video sub-sequence.
Le processeur 100 passe ensuite à l'étape E404 qui consiste à lire l'image suivante de la séquence vidéo, en l'occurrence l'image 122.The processor 100 then goes to step E404 which consists in reading the next image of the video sequence, in this case the image 122.
Le processeur 100 détermine ensuite à l'étape E405 le mouvement entre l'image précédente 121 et l'image 122. Cette détermination de mouvement est par exemple effectuée en effectuant de l'appariement de blocs, ou block matching, entre les deux images.The processor 100 then determines in step E405 the movement between the previous image 121 and the image 122. This determination of movement is for example performed by performing block matching, or block matching, between the two images.
Ensuite, à l'étape E406, le processeur 100 calcule l'image compensée en mouvement de l'image courante 122. Les étapes E405 et E406 utilisent préférentiellement la méthode de compensation de mouvement telle que décrite dans le document Joint final Committee Draft of Joint Vidéo Spécification (ITU-T Rec H.264 ISO/IEC 14496-10 AVC) Thomas Wiegand, Klagenfurt, 22 juillet 2002.Then, in step E406, the processor 100 calculates the motion compensated image of the current image 122. Steps E405 and E406 preferentially use the motion compensation method as described in the document Joint final Committee Draft of Joint Video Specification (ITU-T Rec H.264 ISO / IEC 14496-10 AVC) Thomas Wiegand, Klagenfurt, July 22, 2002.
Le processeur 100 passe ensuite à l'étape E407 qui consiste à calculer le PSNR entre l'image compensée en mouvement et l'image courante 122.The processor 100 then goes to step E407 which consists in calculating the PSNR between the image compensated in movement and the current image 122.
Ce calcul effectué, à l'étape E408, le processeur 100 compare le PSNR précédemment calculé à un seuil S prédéterminé.This calculation carried out, in step E408, the processor 100 compares the PSNR previously calculated with a predetermined threshold S.
Si le PSNR est supérieur au seuil S, l'image 122 fait partie de la même séquence que l'image 121, ce qui dans notre exemple est le cas. Il n'existe que peu de mouvement entre les images. Aucun changement de plan dans la séquence vidéo n'est intervenu. Le processeur 100 passe alors à l'étape E409.If the PSNR is greater than the threshold S, the image 122 is part of the same sequence as the image 121, which in our example is the case. There is little movement between the images. No plan change in the video sequence has taken place. The processor 100 then goes to step E409.
Le processeur 100, à cette étape, affecte à la variable Fin(k) représentative de la fin d'une sous-séquence vidéo la valeur courante de i, soit la valeur 2.The processor 100, at this stage, assigns the variable End (k) representative of the end of a video sub-sequence to the current value of i, that is to say the value 2.
Cette étape réalisée, le processeur vérifie à l'étape E410 si la dernière image de la séquence vidéo a été traitée, ce qui n'est pas le cas dans notre exemple. Le processeur 100 retourne alors à l'étape E403.Once this step has been completed, the processor checks in step E410 whether the last image of the video sequence has been processed, which is not the case in our example. The processor 100 then returns to step E403.
Le processeur 100 va réitérer la boucle constituée des étapes E403 à E410 tant que le PSNR calculé est supérieur au seuil S.The processor 100 will reiterate the loop made up of steps E403 to E410 as long as the calculated PSNR is greater than the threshold S.
Dans notre exemple, la boucle constituée des étapes E403 à E410 est réitérée pour les images 123 à 126.In our example, the loop made up of steps E403 to E410 is repeated for the images 123 to 126.
Lorsque le processeur 100 compare le PSNR calculé entre l'image compensée en mouvement et l'image courante 126, celui-ci est selon notre exemple inférieur au seuil S. Le processeur 100 passe donc à l'étape E411.When the processor 100 compares the PSNR calculated between the image compensated in movement and the current image 126, the latter is according to our example below the threshold S. The processor 100 therefore goes to step E411.
A l'étape E411, le processeur 100 affecte à la variable Fin(k) représentative de la fin d'une sous-séquence vidéo la valeur courante de i, soit la valeur 6. La première sous-séquence vidéo S21 est ainsi constituée des images 121 à 125.In step E411, the processor 100 assigns to the variable End (k) representative of the end of a video sub-sequence the current value of i, that is to say the value 6. The first video sub-sequence S21 thus consists of the images 121 to 125.
Cette étape réalisée, le processeur vérifie à l'étape E412 si la dernière image de la séquence vidéo a été traitée, ce qui n'est pas le cas dans notre exemple. Le processeur 100 passe à l'étape E413, incrémente la variable k d'une unité et retourne alors à l'étape E402.This step carried out, the processor checks in step E412 if the last image of the video sequence has been processed, which is not the case in our example. The processor 100 goes to step E413, increments the variable k by one unit and then returns to step E402.
A l'étape E402, le processeur 100 affecte ensuite à la variable DEB(k) la valeur de la variable i. Le processeur 100 passe ensuite à l'étape E404 qui consiste à lire l'image suivante de la séquence vidéo, en l'occurrence l'image 127.In step E402, the processor 100 then assigns to the variable DEB (k) the value of the variable i. The processor 100 then goes to step E404 which consists in reading the next image of the video sequence, in this case the image 127.
Le processeur 100 détermine ensuite à l'étape E405 le mouvement entre l'image précédente 126 et l'image 127.The processor 100 then determines in step E405 the movement between the previous image 126 and the image 127.
Ensuite, à l'étape E406, le processeur 100 calcule l'image compensée en mouvement de l'image courante 127.Then, in step E406, the processor 100 calculates the motion-compensated image of the current image 127.
Le processeur 100 passe ensuite à l'étape E407 qui consiste à calculer le PSNR entre l'image compensée en mouvement et l'image courante 127.The processor 100 then goes to step E407 which consists in calculating the PSNR between the image compensated in movement and the current image 127.
Ce calcul effectué, à l'étape E408, le processeur 100 compare le PSNR précédemment calculé à un seuil S prédéterminé. Si le PSNR est supérieur au seuil S, l'image 127 fait partie de la même séquence que l'image 126, ce qui dans notre exemple est le cas. Il n'existe que peu de mouvement entre les images. Aucun changement de plan dans la séquence vidéo n'est intervenu. Le processeur 100 passe alors à l'étape E409.This calculation carried out, in step E408, the processor 100 compares the PSNR previously calculated with a predetermined threshold S. If the PSNR is greater than the threshold S, the image 127 is part of the same sequence as the image 126, which in our example is the case. There is little movement between the images. No plan change in the video sequence has taken place. The processor 100 then goes to step E409.
Le processeur 100, à cette étape, affecte à la variable Fin(k) représentative de la fin d'une sous-séquence vidéo la valeur courante de i, soit la valeur 7.The processor 100, at this stage, assigns the variable End (k) representative of the end of a video sub-sequence to the current value of i, that is to say the value 7.
Le processeur 100 va réitérer la boucle constituée des étapes E403 à E410 tant que le PSNR est supérieur au seuil S.The processor 100 will reiterate the loop made up of steps E403 to E410 as long as the PSNR is greater than the threshold S.
Dans notre exemple, la boucle constituée des étapes E403 à E410 est réitérée pour les images 126 à 129. Lorsque le processeur 100 compare le PSNR calculé entre l'image compensée en mouvement et l'image courante 130, celui-ci selon notre exemple est inférieur au seuil S. Le processeur 100 passe donc à l'étape E411.In our example, the loop made up of steps E403 to E410 is repeated for the images 126 to 129. When the processor 100 compares the PSNR calculated between the image compensated in movement and the current image 130, the latter according to our example is lower than the threshold S. The processor 100 therefore passes to step E411.
A l'étape E411, le processeur 100 affecte à la variable Fin(k) représentative de la fin de la seconde sous-séquence vidéo la valeur courante de i, soit la valeur 10. La seconde sous-séquence vidéo S22 est ainsi constituée des images 126 à 129.In step E411, the processor 100 assigns to the variable End (k) representative of the end of the second video sub-sequence the current value of i, that is to say the value 10. The second video sub-sequence S22 thus consists of images 126 to 129.
Cette étape réalisée, le processeur vérifie à l'étape E412 si la dernière image de la séquence vidéo a été traitée, ce qui n'est pas le cas dans notre exemple. Le processeur 100 passe à l'étape E413, incrémente la variable k d'une unité et retourne alors à l'étape E402. Le processeur 100 effectue les mêmes opérations pour les images 131 à 137 que celles précédemment décrites. Elles ne seront pas re-décrites.This step carried out, the processor checks in step E412 if the last image of the video sequence has been processed, which is not the case in our example. The processor 100 goes to step E413, increments the variable k by one unit and then returns to step E402. The processor 100 performs the same operations for the images 131 to 137 as those previously described. They will not be re-described.
La dernière sous-séquence vidéo est alors constituée des étapes 130 à 137.The last video sub-sequence then consists of steps 130 to 137.
Lorsque le processeur 100 a traité l'image 137, le test de l'étape E410 s'avère positif. Le processeur passe donc à l'étape suivante E414.When the processor 100 has processed the image 137, the test of step E410 turns out to be positive. The processor therefore proceeds to the next step E414.
Le processeur 100 à cette étape initialise la variable k à la valeur 1.The processor 100 at this stage initializes the variable k to the value 1.
Cette opération réalisée, le processeur 100 détermine à l'étape E415 la taille notée Taille(k) de la sous-séquence courante, en l'occurrence la sous-séquence S21. La taille est déterminée à partir des variables Fin(k) et Deb(k) déterminées précédemment.This operation performed, the processor 100 determines in step E415 the size denoted Size (k) of the current sub-sequence, in this case the sub-sequence S21. The size is determined from the End (k) and Deb (k) variables previously determined.
Le processeur 100 compare ensuite à l'étape E416 la taille déterminée à une valeur prédéterminée T. En effet, selon l'invention, deux traitements différents sont effectués selon la taille de la sous-séquence traitée.The processor 100 then compares in step E416 the size determined with a predetermined value T. Indeed, according to the invention, two different processing operations are carried out according to the size of the sub-sequence processed.
Dans notre exemple, la taille de la séquence S21 est égale à cinq images. Ceci étant inférieur à T, le processeur passe à l'étape E417.In our example, the size of the sequence S21 is equal to five images. This being less than T, the processor goes to step E417.
A cette étape, le processeur 100 détermine l'image de référence de la sous- séquence. L'image de référence est ici prise comme l'image placée au milieu de la sous-séquence vidéo. Ceci est particulièrement intéressant car les variations entre les différentes images de la sous-séquence sont ainsi réduites. Selon ce mode de réalisation, la différence entre les images de la sous-séquence et l'image de référence est moindre. Moins de bits sont alors nécessaires pour coder ces différences.At this stage, the processor 100 determines the reference image of the subsequence. The reference image is here taken as the image placed in the middle of the video sub-sequence. This is particularly interesting because the variations between the different images of the sub-sequence are thus reduced. According to this embodiment, the difference between the images of the sub-sequence and the reference image is less. Fewer bits are then required to code these differences.
Selon notre exemple, l'image 123 est alors l'image de référence.According to our example, image 123 is then the reference image.
Cette opération réalisée, le processeur 100 vérifie à l'étape E420 si toutes les sous-séquences précédemment déterminées ont été traitées. Selon notre exemple, le test est négatif et le processeur 100 retourne à l'étapeOnce this has been done, the processor 100 checks in step E420 whether all of the previously determined subsequences have been processed. According to our example, the test is negative and the processor 100 returns to step
E415.E415.
Le processeur 100 effectue de la même façon les étapes E415 à 417 pour la seconde sous-séquence S22, et l'image 128 est alors l'image de référence.The processor 100 similarly performs steps E415 to 417 for the second sub-sequence S22, and the image 128 is then the reference image.
Pour la sous-séquence S23, le processeur 100 détermine une taille de huit images et considère cette taille comme supérieure au seuil T. Le test de l'étape E416 est donc négatif. Le processeur 100 passe donc à l'étape E418.For the sub-sequence S23, the processor 100 determines a size of eight images and considers this size as greater than the threshold T. The test of step E416 is therefore negative. The processor 100 therefore goes to step E418.
A l'étape E418, le processeur 100 détermine le nombre M d'images de références nécessaires à un codage optimal de la sous-séquence. Ce nombre M est déterminé en fonction du nombre d'images contenues dans la sous-séquence et par exemple, à partir d'une table mémorisée dans la mémoire morte 102. A titre d'exemple, pour huit images, M est considéré comme égal à deux. Il est à remarquer que pour des raisons de simplification, un nombre restreint d'images est considéré dans la séquence vidéo et la sous-séquence vidéo. Bien entendu, dans une réalisation pratique, le nombre d'images dans une sous-séquence vidéo est beaucoup plus important et une image de référence est déterminée pour un nombre beaucoup plus important d'images.In step E418, the processor 100 determines the number M of reference images necessary for optimal coding of the sub-sequence. This number M is determined as a function of the number of images contained in the sub-sequence and by example, from a table stored in the read-only memory 102. By way of example, for eight images, M is considered to be equal to two. It should be noted that for reasons of simplification, a limited number of images is considered in the video sequence and the video sub-sequence. Of course, in a practical embodiment, the number of images in a video sub-sequence is much greater and a reference image is determined for a much greater number of images.
Le nombre d'images de référence pour une sous-séquence étant déterminé, le processeur 100 passe à l'étape E419 et détermine les images de référence dans la sous- séquence S23 en découpant la sous-séquence S23 en M sous-parties de manière équidistante et choisit l'image centrale de chaque sous-partie comme image de référence de la sous-partie. Selon notre exemple, la sous-séquence S23 est formée des deux sous-parties notées S'23 et S"23 et l'image 131 est l'image de référence de la sous-partie S'23 tandis que l'image 136 est l'image de référence de la sous-partie S"23.The number of reference images for a sub-sequence having been determined, the processor 100 goes to step E419 and determines the reference images in the sub-sequence S23 by cutting the sub-sequence S23 into M sub-parts so equidistant and chooses the central image of each sub-part as the reference image of the sub-part. According to our example, the sub-sequence S23 is formed of the two sub-parts denoted S'23 and S "23 and the image 131 is the reference image of the sub-part S'23 while the image 136 is the reference image of subpart S "23.
Cette opération effectuée, le processeur 100 vérifie si toutes les sous-séquences ont été traitées et passe ensuite à l'étape E500 de la Fig. 4b.Once this operation has been carried out, the processor 100 checks whether all the sub-sequences have been processed and then proceeds to step E500 of FIG. 4b.
L'algorithme de la Fig. 4b code selon un second mode de réalisation les autres images vidéo de chaque sous-séquence vidéo par rapport à leur image de référence respective.The algorithm of FIG. 4b codes according to a second embodiment the other video images of each video sub-sequence with respect to their respective reference image.
Au lancement de l'application, le processeur 100 du dispositif 10 lit à partir de la mémoire morte 102, les instructions du programme correspondant aux étapes E500 à E523 de la Fig. 4b et les charge en mémoire vive 103 pour les exécuter.When the application is launched, the processor 100 of the device 10 reads from the read-only memory 102, the program instructions corresponding to steps E500 to E523 of FIG. 4b and loads them into RAM 103 to execute them.
Le processeur 100 initialise la variable k représentative de la sous-séquence à traiter à la valeur 1.The processor 100 initializes the variable k representative of the sub-sequence to be processed at the value 1.
Le processeur vérifie à l'étape suivante E501 si la sous-séquence courante comporte plusieurs images de référence. Selon notre exemple, la sous-séquence Sl ne comporte qu'une seule image de référence, l'image 123. Le processeur passe alors à l'étape E502. A cette étape, le processeur 100 lit l'image de référence de la sous-séquence en cours de traitement, en l'occurrence l'image 123.The processor checks in the next step E501 if the current subsequence comprises several reference images. According to our example, the sub-sequence S1 has only one reference image, image 123. The processor then goes to step E502. At this stage, the processor 100 reads the reference image of the sub-sequence being processed, in this case the image 123.
Le processeur 100 effectue ensuite à l'étape E503 un maillage sur l'image de référence et la détermination de type de transformée en ondelettes à appliquer sur des zones de l'image conformément à l'algorithme de la Fig. 3 précédemment décrit. Cette opération réalisée, le processeur 100 détermine à l'étape E504 les coefficients de la transformée en ondelettes de seconde génération à partir du maillage déterminé à l'étape précédente. Pour cela, on applique la transformée en ondelettes, pour un nombre prédéterminé de niveaux de résolution, en utilisant la technique de Lifting sur l'ensemble des positions des sommets définissant la géométrie du maillage de l'image en cours de traitement.The processor 100 then performs in step E503 a mesh on the reference image and the determination of the type of wavelet transform to be applied to areas of the image according to the algorithm of FIG. 3 previously described. This operation carried out, the processor 100 determines in step E504 the coefficients of the second generation wavelet transform from the mesh determined in the previous step. For this, we apply the wavelet transform, for a predetermined number of resolution levels, using the Lifting technique on all the positions of the vertices defining the geometry of the mesh of the image being processed.
Il est à remarquer que, comme précédemment, différents types de transformée en ondelettes sont appliqués sur différentes parties de l'image à traiter.It should be noted that, as before, different types of wavelet transform are applied to different parts of the image to be processed.
A titre d'exemple, une transformée en ondelettes connue sous le nom d'ondelertes de Butterfly est affectée aux zones de texture, une transformée en ondelettes connue sous le nom d'ondelettes de Loop est affectée aux zones de contours d'objets naturels, une transformée en ondelettes connue sous le nom d'ondelletes de Catmull-Clark est affectée aux zones de contours d'objets non naturels et enfin une transformée en ondelettes connue sous le nom d'ondelettes affines est affectées aux singularités.For example, a wavelet transform known as Butterfly wavelets is assigned to texture areas, a wavelet transform known as Loop wavelets is assigned to natural object contours, a wavelet transform known as Catmull-Clark wavelets is assigned to the contours of unnatural objects and finally a wavelet transform known as affine wavelets is assigned to singularities.
Cette opération effectuée, le processeur 100 vérifie à l'étape E505 s'il existe d'autres images dans la sous-séquence en cours de traitement. On vérifie plus précisément si la sous-séquence est constituée d'une seule image. Selon notre exemple, la sous-séquence est constituée d'une pluralité d'images. Le processeur 100 passe alors à l'étape E506.This operation carried out, the processor 100 checks in step E505 if there are other images in the sub-sequence being processed. We check more precisely if the subsequence consists of a single image. According to our example, the subsequence consists of a plurality of images. The processor 100 then goes to step E506.
A l'étape E506, le processeur 100 détermine la position de l'image suivante à traiter dans la sous-séquence. Cette image est par exemple l'image voisine précédent l'image de référence de la sous-séquence.In step E506, the processor 100 determines the position of the next image to be processed in the sub-sequence. This image is for example the neighboring image preceding the reference image of the sub-sequence.
Cette opération réalisée, le processeur 100 lit à l'étape E507 l'image qui est à la position précédemment déterminée, en l'occurrence l'image 122.Once this operation has been carried out, the processor 100 reads in step E507 the image which is at the position previously determined, in this case the image 122.
Le processeur 100 effectue ensuite à l'étape E508 un maillage sur l'image de référence conformément à l'algorithme de la Fig. 3 précédemment décrit.The processor 100 then performs in step E508 a mesh on the reference image in accordance with the algorithm of FIG. 3 previously described.
Cette opération réalisée, le processeur 100 détermine à l'étape E509 les coefficients de transformée en ondelettes de seconde génération à partir du maillage déterminé à l'étape précédente. Pour cela, on applique la transformée en ondelettes, pour un nombre prédéterminé de niveaux de résolution, en utilisant la technique de Lifting sur l'ensemble des positions des sommets définissant la géométrie du maillage de l'image en cours de traitement. II est à remarquer que, comme précédemment, différents types de transformée en ondelettes sont appliqués sur différentes parties de l'image à traiter.Once this has been done, the processor 100 determines in step E509 the second generation wavelet transform coefficients from the mesh determined in the previous step. For this, we apply the wavelet transform, for a predetermined number of resolution levels, using the Lifting technique on all the positions of the vertices defining the geometry of the mesh of the image being processed. It should be noted that, as before, different types of wavelet transform are applied to different parts of the image to be processed.
Il est à remarquer ici que les images d'une sous-séquence sont similaires. La détermination d'un type de transformée en ondelettes pour les images autres que l'image de référence d'une sous-séquence vidéo peut, selon une variante, ne pas être effectuée. Les zones déterminées pour l'image de référence sont alors considérées comme identiques pour les autres images.It should be noted here that the images of a sub-sequence are similar. The determination of a wavelet transform type for the images other than the reference image of a video sub-sequence may, according to a variant, not be carried out. The areas determined for the reference image are then considered to be identical for the other images.
Le processeur 100 effectue à l'étape E510 la différence entre les coefficients de la transformée en ondelettes de seconde génération déterminés pour l'image 122 à l'étape E509 et les coefficients de référence de l'image 123. Bien entendu, la différence est calculée pour chaque coefficient correspondant à un sommet identique ou similaire d'une même surface dans les deux images 123 et 122. La différence des coefficients pour l'image 122 est mémorisée dans la mémoire vive 103.The processor 100 performs in step E510 the difference between the coefficients of the second generation wavelet transform determined for image 122 in step E509 and the reference coefficients of image 123. Of course, the difference is calculated for each coefficient corresponding to an identical or similar vertex of the same surface in the two images 123 and 122. The difference of the coefficients for the image 122 is stored in the random access memory 103.
Cette opération effectuée, le processeur 100 vérifie à l'étape E511 si la position de l'image de la sous-séquence en cours de traitement correspond à la position de l'image du début de la sous-séquence. Selon notre exemple de la Fig. 5b, le test est négatif. Le processeur 100 décrémente la valeur de la variable Pos d'une unité à l'étape E512.This operation performed, the processor 100 checks in step E511 whether the position of the image of the sub-sequence being processed corresponds to the position of the image of the start of the sub-sequence. According to our example in FIG. 5b, the test is negative. The processor 100 decrements the value of the variable Pos by one unit in step E512.
Le processeur 100 effectue alors les étapes E507 à E510 pour l'image 121 de la même manière que celle précédemment décrite pour l'image 122.The processor 100 then performs steps E507 to E510 for the image 121 in the same manner as that previously described for the image 122.
L'image 121 correspondant à la première image de la sous-séquence S21, le processeur 100 passe de l'étape E511 à l'étape E513.The image 121 corresponding to the first image of the sub-sequence S21, the processor 100 passes from step E511 to step E513.
A l'étape E513, le processeur 100 détermine la position de l'image suivante à traiter dans la sous-séquence. Cette image est par exemple l'image voisine suivante 124 de l'image de référence de la sous-séquence vidéo.In step E513, the processor 100 determines the position of the next image to be processed in the sub-sequence. This image is for example the next neighboring image 124 of the reference image of the video sub-sequence.
Cette opération réalisée, le processeur 100 lit, à l'étape E514, l'image qui est à la position précédemment déterminée, en l'occurrence l'image 124.Once this has been done, the processor 100 reads, at step E514, the image which is at the position previously determined, in this case the image 124.
Le processeur 100 effectue ensuite à l'étape E515 un maillage sur l'image de référence conformément à l'algorithme de la Fig. 3 précédemment décrit. Cette opération réalisée, le processeur 100 détermine à l'étape E516 les coefficients de la transformée en ondelettes de seconde génération à partir du maillage déterminé à l'étape précédente.The processor 100 then performs in step E515 a mesh on the reference image in accordance with the algorithm of FIG. 3 previously described. This operation carried out, the processor 100 determines in step E516 the coefficients of the second generation wavelet transform from the mesh determined in the previous step.
Il est à remarquer que, comme précédemment, différents types de transformée en ondelettes sont appliqués sur différentes parties de l'image à traiter. Le processeur 100 effectue à l'étape E517 la différence entre les coefficients de référence de l'image 123 et les coefficients de la transformée en ondelettes de seconde génération déterminés pour l'image 124 à l'étape E516. La différence des coefficients pour l'image 124 est mémorisée dans la mémoire vive 103. Cette opération effectuée, le processeur 100 vérifie à l'étape E518 si la position de l'image de la sous-séquence en cours de traitement correspond à la position de l'image de fin de la sous-séquence. Selon notre exemple de la Fig. 5b, le test est négatif. Le processeur 100 incrémente la valeur de la variable Pos d'une unité à l'étape E519. Le processeur 100 effectue alors les étapes E514 à E517 pour l'image 125 de la même manière que celle précédemment décrite pour l'image 124.It should be noted that, as before, different types of wavelet transform are applied to different parts of the image to be processed. The processor 100 performs in step E517 the difference between the reference coefficients of image 123 and the coefficients of the second generation wavelet transform determined for image 124 in step E516. The difference of the coefficients for the image 124 is memorized in the random access memory 103. This operation carried out, the processor 100 checks in step E518 if the position of the image of the sub-sequence being processed corresponds to the position the end frame of the subsequence. According to our example in FIG. 5b, the test is negative. The processor 100 increments the value of the variable Pos by one unit in step E519. The processor 100 then performs steps E514 to E517 for the image 125 in the same manner as that previously described for the image 124.
L'image 125 correspondant à la dernière image de la sous-séquence S21, le processeur 100 passe de l'étape E518 à l'étape E520.The image 125 corresponding to the last image of the sub-sequence S21, the processor 100 passes from step E518 to step E520.
Le processeur 100 vérifie à cette étape si d'autres sous-séquences vidéo dans la séquence vidéo sont à traiter.The processor 100 checks at this stage if other video sub-sequences in the video sequence are to be processed.
Selon notre exemple de la Fig. 5b, deux sous-séquences S22 et S23 doivent être traitées. Le processeur 100 passe alors à l'étape E523 et incrémente alors la variable k d'une unité.According to our example in FIG. 5b, two subsequences S22 and S23 must be processed. The processor 100 then goes to step E523 and then increments the variable k by one unit.
La sous-séquence S22 est alors traitée. Le processeur 100 retourne à l'étape E501 et effectue les étapes E501 à E520 de la même manière que celle précédemment décrite.Sub-sequence S22 is then processed. The processor 100 returns to step E501 and performs steps E501 to E520 in the same manner as that previously described.
Lorsque le processeur 100 a traité l'ensemble des images de la sous-séquence S22, celui-ci traite selon notre exemple la sous-séquence S23.When the processor 100 has processed all of the images of the sub-sequence S22, it processes, according to our example, the sub-sequence S23.
Il est à remarquer que la sous-séquence S23 comporte plus d'une image de référence. Le test de l'étape E501 est donc positif. Le processeur 100 effectue alors les opérations suivantes non représentées.It should be noted that the sub-sequence S23 comprises more than one reference image. The test of step E501 is therefore positive. The processor 100 then performs the following operations, not shown.
Le processeur 100 prend l'image de référence 131 de la sous-partie S '23 de la sous-séquence S23, effectue un maillage de celle-ci et détermine les coefficients de la transformée en ondelettes de seconde génération de celle-ci. Le processeur 100 lit chacune des autres images 130, 132 et 133 de la sous-partieThe processor 100 takes the reference image 131 of the sub-part S ′ 23 of the sub-sequence S23, performs a mesh of the latter and determines the coefficients of the second generation wavelet transform of the latter. The processor 100 reads each of the other images 130, 132 and 133 of the sub-part
S'23 de la sous-séquence S23, effectue un maillage de celles-ci, détermine les coefficients de la transformée en ondelettes de seconde génération de celles-ci et effectue la différence entre les coefficients de l'image de référence de la sous-partie S'23 de la sous-séquence S23 et leurs coefficients respectifs. Le processeur 100 prend l'image de référence 136 de la sous-partie S"23 de la sous-séquence S23, effectue un maillage de celle-ci et détermine les coefficients de la transformée en ondelettes de seconde génération de celle-ci.S'23 of the sub-sequence S23, meshes them, determines the coefficients of the second generation wavelet transform of these and performs the difference between the coefficients of the reference image of the sub- part S'23 of the sub-sequence S23 and their respective coefficients. The processor 100 takes the reference image 136 of the sub-part S "23 of the sub-sequence S23, performs a mesh thereof and determines the coefficients of the second generation wavelet transform of the latter.
Le processeur 100 prend chacune des autres images 134, 135 et 137 de la sous- partie S "23 de la sous-séquence S23, effectue un maillage de celles-ci, détermine les coefficients de la transformée en ondelettes de seconde génération de celles-ci et effectue la différence entre les coefficients de l'image de référence de la sous-partieThe processor 100 takes each of the other images 134, 135 and 137 of the sub-part S "23 of the sub-sequence S23, performs a mesh of these, determines the coefficients of the second generation wavelet transform of these. ci and make the difference between the coefficients of the reference image of the subpart
S"23 de la sous-séquence S23 et leurs coefficients respectifs.S "23 of the subsequence S23 and their respective coefficients.
Ces opérations réalisées, toutes les sous-séquences ont été traitées. Le processeur 100 passe à l'étape E521.Once these operations have been carried out, all the sub-sequences have been processed. The processor 100 goes to step E521.
A l'étape E521, le processeur 100 code les coefficients ainsi que les différences de coefficients obtenus précédemment. Ces coefficients ainsi que leurs différences sont par exemple codés selon une technique de type Zerotree précédemment décrite ou le codage peut aussi être effectué en utilisant la méthode de type EBCOT. Cette opération réalisée, le processeur 100 passe à l'étape E522 et met les coefficients codés sous forme d'un signal de données ou bitstream.In step E521, the processor 100 codes the coefficients as well as the differences in coefficients obtained previously. These coefficients and their differences are for example coded according to a Zerotree type technique previously described or the coding can also be carried out using the EBCOT type method. Once this has been done, the processor 100 goes to step E522 and puts the coded coefficients in the form of a data or bitstream signal.
Les coefficients codés sont par exemple transmis par ordre de priorité. Les données sont transmises sous la forme : numéro de paquet/en-tête comprenant entre autres le nombre de coefficients dans le paquet, des informations représentatives de la zone de l'image concernée, le nombre de plans de bits utilisés pour coder l'image, le type de transformée en ondelettes utilisé pour coder certaines zones de l'image, des informations sur le maillage telles que la topologie de celui-ci ainsi que des drapeaux indiquant que les coefficients contenus dans le paquet comprenant un drapeau ou les coefficients placés entre deux drapeaux sont les coefficients d'une image de référence selon l'invention.The coded coefficients are for example transmitted in order of priority. The data is transmitted in the form: packet number / header including inter alia the number of coefficients in the packet, information representative of the area of the image concerned, the number of bit planes used to code the image , the type of wavelet transform used to code certain areas of the image, information on the mesh such as the topology thereof as well as flags indicating that the coefficients contained in the packet comprising a flag or the coefficients placed between two flags are the coefficients of a reference image according to the invention.
Préférentiellement, le signal est sous forme de paquets consécutifs, chaque entête de paquet comprenant un champ début de paquet, le numéro de paquet en question, le type de transformée en ondelettes utilisé, un champ image de référence permettant d'indiquer que les coefficients du paquet sont des coefficients d'images de références et ne sont donc pas des différences de coefficients entre deux images, un champ numéro de buffer indiquant le numéro de l'image de référence ayant été utilisée pour le codage des coefficients lorsqu'une sous-séquence comprend une pluralité d'images de référence. En variante, le signal de données comporte en outre des marqueurs représentatifs du début et/ou de la fin de chaque sous-séquence vidéo déterminée.Preferably, the signal is in the form of consecutive packets, each packet header comprising a packet start field, the packet number in question, the type of wavelet transform used, a reference image field making it possible to indicate that the coefficients of the packet are reference image coefficients and are therefore not differences in coefficients between two images, a buffer number field indicating the number of the reference image having been used for coding the coefficients when a subsequence includes a plurality of reference images. Alternatively, the data signal further includes markers representative of the start and / or end of each determined video sub-sequence.
Selon une autre variante de réalisation, le signal de données comporte en outre pour chaque autre image, le numéro de l'image de référence dont dépend chaque autre image.According to another alternative embodiment, the data signal further comprises for each other image, the number of the reference image on which each other image depends.
Le signal de données ainsi formé est similaire à celui précédemment décrit en référence à la Fig. 2. Il ne sera pas plus explicité.The data signal thus formed is similar to that previously described with reference to FIG. 2. It will not be further explained.
La Fig. 6 représente l'algorithme de décodage selon l'invention d'un signal de données représentatif d'une séquence d'images vidéo. Au lancement de l'application, le processeur 100 du dispositif 10 lit à partir de la mémoire morte 102, les instructions du programme correspondant aux étapes E600 à E610 de la Fig. 5 et les charge en mémoire vive 103 pour les exécuter.Fig. 6 shows the decoding algorithm according to the invention of a data signal representative of a sequence of video images. When the application is launched, the processor 100 of the device 10 reads from the read-only memory 102, the program instructions corresponding to steps E600 to E610 of FIG. 5 and loads them into random access memory 103 to execute them.
A l'étape E600, le processeur 100 du dispositif 10 détermine dans le signal de données au moins un champ identifiant des coefficients associés à une image de référence dans le signal de données.In step E600, the processor 100 of the device 10 determines in the data signal at least one field identifying coefficients associated with a reference image in the data signal.
Il est à remarquer que le signal de données à traiter provient d'un dispositif périphérique 107, tel qu'un caméscope numérique ou de tout autre moyen d'acquisition ou de stockage de données.It should be noted that the data signal to be processed comes from a peripheral device 107, such as a digital camcorder or any other means of acquiring or storing data.
Le signal de données à traiter peut aussi provenir d'un dispositif distant via le réseau de communication 113. Le réseau de communication 113 est par exemple un réseau de type Internet ou un réseau de télécommunication téléphonique par lequel une communication de type visioconférence est établie entre deux dispositifs 10.The data signal to be processed can also come from a remote device via the communication network 113. The communication network 113 is for example an Internet type network or a telephone telecommunication network by which a videoconference type communication is established between two devices 10.
Le réseau de communication 113 peut aussi être un réseau de diffusion Hertzien ou satellite d'informations vidéo codées selon la présente invention. L'identifiant déterminé, le processeur 100, à cette même étape, lit dans le signal de données, les coefficients identifiés par le marqueur.The communication network 113 can also be a Hertzian or satellite broadcasting network of coded video information according to the present invention. The determined identifier, the processor 100, at this same step, reads from the data signal, the coefficients identified by the marker.
Cette opération effectuée, le processeur 100 détermine à l'étape E601 à partir des informations contenues dans un champ prédéterminé du signal de données le type de transformée en ondelettes utilisé pour coder certaines zones de l'image. En effet, et selon un mode préférentiel, différents types de transformées en ondelettes sont appliqués sur différentes parties de l'image à traiter en fonction de celles-ci.This operation performed, the processor 100 determines in step E601 from the information contained in a predetermined field of the data signal the type of wavelet transform used to code certain areas of the image. Indeed, and according to a preferred mode, different types of wavelet transforms are applied to different parts of the image to be processed as a function of these.
A titre d'exemple, une transformée en ondelettes connue sous le nom d'ondelettes de Butterfly est affectée aux zones de texture, une transformée en ondelettes connue sous le nom d'ondelettes de Loop est affectée aux zones de contours d'objets naturels, une transformée en ondelettes connue sous le nom d'ondelettes de Catmull-Clark est affectée aux zones de contours d'objets non naturels et enfin une transformée en ondelettes connue sous le nom d'ondelettes affines est affectée aux singularités. Les types de transformées en ondelettes appliqués lors du codage déterminé, le processeur 100 effectue à l'étape E602 les transformées en ondelettes de seconde génération inverses correspondant aux types déterminés pour les coefficients correspondants. Cette étape réalisée, le processeur 100 lit à l'étape E603 dans le signal de données à traiter et plus particulièrement dans le champ forme du maillage, la topologie du maillage de l' image.For example, a wavelet transform known as Butterfly wavelets is assigned to the texture areas, a wavelet transform known as Loop wavelets is assigned to the texture areas. contours of natural objects, a wavelet transform known as Catmull-Clark wavelets is assigned to the contours of unnatural objects and finally a wavelet transform known as affine wavelets is assigned to singularities . The types of wavelet transforms applied during the determined coding, the processor 100 performs in step E602 the transforms into inverse second generation wavelets corresponding to the determined types for the corresponding coefficients. This step performed, the processor 100 reads in step E603 in the data signal to be processed and more particularly in the field of the mesh shape, the topology of the mesh of the image.
A partir des informations obtenues aux étapes E602 et E603, le processeur 100 reconstruit l'image à l'étape E604 et transfère celle-ci par exemple à un moyen de visualisation tel que l'écran 104.From the information obtained in steps E602 and E603, the processor 100 reconstructs the image in step E604 and transfers it for example to a display means such as the screen 104.
Le processeur 100 à l'étape E605 détermine les coefficients dans le signal de données d'une autre image qu'une image de référence. Cette image est une image contenue dans la même sous-séquence vidéo que celle comprenant l'image de référence dont les coefficients ont été lus précédemment à l'étape E600. Par exemple, le processeur 100 lit dans le signal de données les coefficients suivant ceux lus à l'étape E600. Ces coefficients consécutifs aux coefficients lus à l'étape E600 sont alors les coefficients d'une autre image.The processor 100 in step E605 determines the coefficients in the data signal of another image than a reference image. This image is an image contained in the same video sub-sequence as that comprising the reference image, the coefficients of which were read previously in step E600. For example, the processor 100 reads from the data signal the coefficients according to those read in step E600. These coefficients consecutive to the coefficients read in step E600 are then the coefficients of another image.
Cette opération effectuée, à l'étape E606, le processeur 100 effectue la différence entre les coefficients déterminés à l'étape E600 et les coefficients déterminés à l'étape E605.This operation carried out in step E606, the processor 100 makes the difference between the coefficients determined in step E600 and the coefficients determined in step E605.
Cette opération effectuée, le processeur 100 détermine à l'étape E607 à partir des informations contenues dans le signal de données le type de transformée en ondelettes utilisé pour coder certaines zones de l'image en cours de traitement. En effet, et selon un mode préférentiel, différents types de transformées en ondelettes sont appliqués sur différentes parties de l'image à traiter en fonction de celles-ci. Il est néanmoins à remarquer que cette étape est dans beaucoup de cas non nécessaire. En effet, lors du codage, la séquence d'images a été divisée en sous-séquences d'images, les images d'une sous-séquence d'images sont peu différentes et ainsi le ou les types de transformées en ondelettes utilisés pour coder certaines zones de l'image en cours de traitement sont identiques à celles déterminées à l'étape E601 pour l'image de référence de la même sous-séquence vidéo. Le processeur 100 effectue ensuite à l'étape E608 les transformées en ondelettes de seconde génération inverses correspondant aux types déterminés pour les coefficients correspondants.This operation carried out, the processor 100 determines in step E607 from the information contained in the data signal the type of wavelet transform used to code certain areas of the image being processed. Indeed, and according to a preferred mode, different types of wavelet transforms are applied to different parts of the image to be processed as a function of these. However, it should be noted that this step is in many cases unnecessary. Indeed, during coding, the sequence of images has been divided into sub-sequences of images, the images of a sub-sequence of images are little different and thus the type or types of wavelet transforms used to code certain areas of the image being processed are identical to those determined in step E601 for the reference image of the same video sub-sequence. The processor 100 then performs in step E608 the transforms into inverse second generation wavelets corresponding to the types determined for the corresponding coefficients.
A partir des informations obtenues aux étapes E603 et E608, le processeur 100 reconstruit l'image à l'étape E609 et transfère celle-ci par exemple à un moyen de visualisation tel que l'écran 104.From the information obtained in steps E603 and E608, the processor 100 reconstructs the image in step E609 and transfers it for example to a display means such as the screen 104.
Ainsi, il est à remarquer que selon l'invention, avec seulement le maillage d'une image, dite image de référence, il est possible de reconstruire un ensemble d'images à partir de celui-ci. Ceci réduit très fortement la quantité d'informations nécessaires pour coder une séquence vidéo et donc la taille du signal de données.Thus, it should be noted that according to the invention, with only the mesh of an image, called the reference image, it is possible to reconstruct a set of images from it. This greatly reduces the amount of information needed to encode a video sequence and therefore the size of the data signal.
Cette opération réalisée, le processeur 100 vérifie à l'étape E610 si des coefficients représentatifs d'autres images sont présents dans le signal de données et associés à l'image de référence déterminée à l'étape E600. Dans l'affirmative, le processeur 100 retourne à l'étape E605 et réitère les étapesThis operation performed, the processor 100 checks in step E610 if coefficients representative of other images are present in the data signal and associated with the reference image determined in step E600. If so, the processor 100 returns to step E605 and repeats the steps
E605 à E610 précédemment décrites tant que d'autres coefficients représentatifs d'autres images sont présents dans le signal de données.E605 to E610 previously described as long as other coefficients representative of other images are present in the data signal.
Si par contre, le processeur 100 détermine dans le signal de données un nouveau marqueur identifiant des coefficients associés à une image de référence dans le signal de données, le processeur 100 retourne à l'étape E600 et effectue les mêmes opérations avec les coefficients de la nouvelle image de référence que celles décrites précédemment.If on the other hand, the processor 100 determines in the data signal a new marker identifying coefficients associated with a reference image in the data signal, the processor 100 returns to step E600 and performs the same operations with the coefficients of the new reference image than those described above.
Il est à remarquer que l'algorithme tel que décrit correspond à un algorithme de décodage conforme à l'algorithme de codage tel que décrit en référence à la Fig. 2. Lorsque les données ont été codées conformément à l'algorithme de codage tel que décrit en référence aux Figs. 4a et 4b, les images de référence ne sont plus les images des débuts de sous-séquences et les autres images ne sont plus à la suite des images de référence.It should be noted that the algorithm as described corresponds to a decoding algorithm conforming to the coding algorithm as described with reference to FIG. 2. When the data has been coded in accordance with the coding algorithm as described with reference to Figs. 4a and 4b, the reference images are no longer the images of the beginnings of sub-sequences and the other images are no longer following the reference images.
Le processeur 100 en sus des étapes de l'algorithme de décodage précédemment décrit doit identifier les images de référence utilisées pour le codage des autres images. Par exemple, on recherche dans le signal de données des marqueurs représentatifs du début et/ou de la fin de sous-séquences vidéo et on considère les coefficients compris entre ces marqueurs comme les coefficients des autres images vidéo de la sous-séquence. Selon une autre variante de réalisation, le processeur 100 recherche dans le signal de données, pour chaque autre image, le numéro de l'image de référence dont dépend chaque autre image.The processor 100 in addition to the steps of the previously described decoding algorithm must identify the reference images used for coding the other images. For example, the data signal is searched for markers representative of the start and / or end of video sub-sequences and the coefficients included between these markers are considered as the coefficients of the other video images of the sub-sequence. According to another alternative embodiment, the processor 100 searches in the data signal, for each other image, the number of the reference image on which each other image depends.
Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits ici, mais englobe, bien au contraire, toute variante à la portée de l'homme du métier. Of course, the present invention is not limited to the embodiments described here, but encompasses, quite the contrary, any variant within the reach of ordinary skill in the art.

Claims

REVENDICATIONS
1) Procédé de codage d'une séquence d'images vidéo, la séquence d'images vidéo étant décomposée en sous-séquences d'images vidéo, un maillage (E200, E203) étant effectué sur les images de la séquence vidéo, le maillage étant composé d'informations de topologie et de géométrie, caractérisé en ce que le procédé comporte les étapes de :1) Method for coding a sequence of video images, the sequence of video images being broken down into sub-sequences of video images, a mesh (E200, E203) being performed on the images of the video sequence, the mesh being composed of topology and geometry information, characterized in that the method comprises the steps of:
- association (E214, E521) des informations de topologie d'une image d'une sous-séquence d'images vidéo à l'ensemble des images vidéo de la sous-séquence d'images vidéo,- association (E214, E521) of the topology information of an image of a sub-sequence of video images with all of the video images of the sub-sequence of video images,
- transformations, pour chaque image de la sous-séquence d'images vidéo, des informations de géométrie du maillage de l'image de la sous-séquence d'images en coefficients à partir d'au moins une transformée en ondelettes,transformations, for each image of the sub-sequence of video images, of geometry information of the mesh of the image of the sub-sequence of images into coefficients from at least one wavelet transform,
- formation (E214, E521) d'un signal de données comprenant les informations de topologie associées et des informations représentatives des coefficients.- Formation (E214, E521) of a data signal comprising the associated topology information and information representative of the coefficients.
2) Procédé de codage selon la revendication 1, caractérisé en ce que la transformée en ondelettes est une transformée en ondelettes de seconde génération.2) Coding method according to claim 1, characterized in that the wavelet transform is a second generation wavelet transform.
3) Procédé de codage selon la revendication 2, caractérisé en ce que les informations représentatives des coefficients transformés sont les coefficients d'au moins une image de référence de la sous-séquence et pour chaque autre image de la sous-séquence d'images vidéo, les informations représentatives des coefficients transformés sont la différence entre les coefficients de chaque autre image et les coefficients de l'image de référence.3) Coding method according to claim 2, characterized in that the information representative of the transformed coefficients are the coefficients of at least one reference image of the sub-sequence and for each other image of the sub-sequence of video images , the information representative of the transformed coefficients is the difference between the coefficients of each other image and the coefficients of the reference image.
4) Procédé de codage selon la revendication 2, caractérisé en ce que à une sous- séquence d'images vidéo est associé (E418) un nombre prédéterminé d'images de référence en fonction du nombre d'images contenues dans la sous-séquence d'images vidéo.4) Coding method according to claim 2, characterized in that with a sub-sequence of video images is associated (E418) a predetermined number of reference images as a function of the number of images contained in the sub-sequence d 'video images.
5) Procédé de codage selon la revendication 3, caractérisé en ce que le procédé comporte en outre une étape d'insertion dans le signal de données d'informations pour différencier les coefficients d'au moins une image de référence des autres coefficients. 6) Procédé de codage selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le maillage est un maillage régulier.5) Coding method according to claim 3, characterized in that the method further comprises a step of inserting information data into the signal to differentiate the coefficients of at least one reference image from the other coefficients. 6) Coding method according to any one of claims 1 to 5, characterized in that the mesh is a regular mesh.
7) Procédé de codage selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'au moins deux types différents de transformées en ondelettes sont appliqués sur au moins deux régions différentes d'au moins une image de la sous- séquence vidéo.7) Coding method according to any one of claims 1 to 6, characterized in that at least two different types of wavelet transforms are applied to at least two different regions of at least one image of the video sub-sequence .
8) Procédé de codage selon l'une quelconque des revendications 2 à 7, caractérisé en ce que les sous-séquences d'images vidéo dans la séquence d'images vidéo sont déterminées par comparaison (E207) de différences de coefficients d'images de la séquence vidéo à un seuil prédéterminé.8) Coding method according to any one of claims 2 to 7, characterized in that the video image sub-sequences in the video image sequence are determined by comparison (E207) of differences in image coefficients of the video sequence at a predetermined threshold.
9) Procédé de codage selon l'une quelconque des revendications 2 à 7, caractérisé en ce que les sous-séquences d'images vidéo dans la séquence d'images vidéo sont déterminées par comparaison (E408) du rapport signal bruit entre une image et une image compensée en mouvement par rapport à un seuil prédéterminé.9) Coding method according to any one of claims 2 to 7, characterized in that the video image sub-sequences in the video image sequence are determined by comparison (E408) of the signal-to-noise ratio between an image and a compensated image in motion with respect to a predetermined threshold.
10) Procédé de décodage d'un signal de données représentatif d'une séquence d'images vidéo, caractérisé en ce que le procédé comporte les étapes de :10) Method for decoding a data signal representative of a sequence of video images, characterized in that the method comprises the steps of:
- détermination ( E600, E610) dans le signal de données, d'images d'une sous-séquence d'images vidéo,- determination (E600, E610) in the data signal, of images of a sub-sequence of video images,
- obtention (E600, E605, E606) des coefficients des images de la sous- séquence d'images vidéo à partir d'informations contenues dans le signal de données, - transformation (E602, E608) des coefficients obtenus selon une transformée en ondelettes inverse,- obtaining (E600, E605, E606) of the coefficients of the images of the sub-sequence of video images from information contained in the data signal, - transformation (E602, E608) of the coefficients obtained according to an inverse wavelet transform ,
- reconstruction (E604, E609) de chacune des images de la sous-séquence vidéo à partir des coefficients transformés et d'une partie du maillage associée à la sous-séquence d'images vidéo et contenue dans le signal de données.- reconstruction (E604, E609) of each of the images of the video sub-sequence from the transformed coefficients and of a part of the mesh associated with the sub-sequence of video images and contained in the data signal.
11) Procédé de décodage selon la revendication 10, caractérisé en ce que la partie du maillage associée à la sous-séquence d'images vidéo est la topologie du maillage de la sous-séquence d'images vidéo. 12) Procédé de décodage selon la revendication 10 ou 11, caractérisé en ce que des coefficients, dits coefficients d'une image de référence sont obtenus par une lecture du signal de données et que des coefficients dits coefficients des autres images sont obtenus en effectuant une différence entre des informations contenues dans le signal de données et les coefficients de l'image de référence.11) A decoding method according to claim 10, characterized in that the part of the mesh associated with the sub-sequence of video images is the topology of the mesh of the sub-sequence of video images. 12) A decoding method according to claim 10 or 11, characterized in that coefficients, called coefficients of a reference image are obtained by reading the data signal and that coefficients called coefficients of other images are obtained by performing a difference between information contained in the data signal and the coefficients of the reference image.
13) Procédé de décodage selon l'une quelconque des revendications 10 à 12, caractérisé en ce qu'il comporte en outre une étape de détermination (E601), à partir d'informations contenues dans le signal de données, d'au moins un type de transformée en ondelettes inverse de seconde génération à appliquer à au moins une partie des coefficients des images de la sous-séquence d'images vidéo.13) decoding method according to any one of claims 10 to 12, characterized in that it further comprises a step of determining (E601), from information contained in the data signal, of at least one type of second generation inverse wavelet transform to be applied to at least part of the image coefficients of the video image sub-sequence.
14) Dispositif de codage d'une séquence d'images vidéo, la séquence d'images vidéo étant décomposée en sous-séquences d'images vidéo, un maillage (E200, E203) étant effectué sur les images de la séquence vidéo, caractérisé en ce que le dispositif comporte :14) Device for coding a sequence of video images, the sequence of video images being broken down into sub-sequences of video images, a mesh (E200, E203) being carried out on the images of the video sequence, characterized in what the device includes:
- des moyens d'association (E214, E521) des informations de topologie d'une image d'une sous-séquence d'images vidéo à l'ensemble des images vidéo de la sous- séquence d'images vidéo,means of association (E214, E521) of topology information of an image of a sub-sequence of video images with all of the video images of the sub-sequence of video images,
- des moyens de transformations, pour chaque image de la sous-séquence d'images vidéo, des informations de géométrie du maillage de l'image de la sous- séquence d'images en coefficients à partir d'au moins une transformée en ondelettes,means for transforming, for each image of the sub-sequence of video images, information on the geometry of the mesh of the image of the sub-sequence of images into coefficients from at least one wavelet transform,
- des moyens de formation (E214, E521) d'un signal de données comprenant les informations de topologie associées et des informations représentatives des coefficients.- Means for forming (E214, E521) a data signal comprising the associated topology information and information representative of the coefficients.
15) Dispositif de décodage d'un signal de données représentatif d'une séquence d'images vidéo, caractérisé en ce que le dispositif comporte :15) Device for decoding a data signal representative of a sequence of video images, characterized in that the device comprises:
- des moyens de détermination dans le signal de données, d'images d'une sous-séquence d'images vidéo, - des moyens de transformation des coefficients des images de la sous- séquence vidéo obtenus à partir du signal de données selon une transformée en ondelettes inverse, des moyens de reconstruction de chacune des images de la sous-séquence vidéo à partir des coefficients transformés et d'une partie du maillage associée à la sous-séquence d'images vidéo et contenue dans le signal de données.- means for determining in the data signal, images of a sub-sequence of video images, - means for transforming the coefficients of the images of the video sub-sequence obtained from the data signal according to a transform in reverse wavelets, means of reconstruction of each of the images of the video sub-sequence from the transformed coefficients and of a part of the mesh associated with the sub-sequence of video images and contained in the data signal.
16) Signal de données représentatif d'une séquence d'images vidéo, un maillage étant effectué sur les images de la séquence d'images vidéo, le maillage étant composé d'informations de topologie et de géométrie, caractérisé en ce que la séquence d'images vidéo est divisée en sous-séquences d'images vidéo, le signal comporte pour chaque sous-séquence d'images vidéo des informations représentatives des coefficients des images de la sous-séquence d'images vidéo et des informations de topologie du maillage de la sous-séquence d'images vidéo.16) Data signal representative of a sequence of video images, a mesh being made on the images of the sequence of video images, the mesh being composed of topology and geometry information, characterized in that the sequence d video images is divided into video image sub-sequences, the signal comprises for each video image sub-sequence information representative of the coefficients of the images of the video image sub-sequence and of topology information of the mesh of the video image sub-sequence.
17) Signal selon la revendication 16, caractérisé en ce que les informations représentatives des coefficients des images de la sous-séquence d'images vidéo sont constituées des coefficients d'au moins une image de référence de la sous-séquence d'images vidéo et pour chaque autre image de la sous-séquence d'images vidéo de la différence entre les coefficients de chaque autre image et les coefficients de l'image de référence et en ce que le signal comporte au mois une information prédéterminée identifiant les coefficients de chaque image de référence de la sous-séquence d'images vidéo.17) Signal according to claim 16, characterized in that the information representative of the coefficients of the images of the sub-sequence of video images consist of the coefficients of at least one reference image of the sub-sequence of video images and for each other image of the video image sub-sequence of the difference between the coefficients of each other image and the coefficients of the reference image and in that the signal includes at least one predetermined piece of information identifying the coefficients of each image of reference of the sub-sequence of video images.
18) Signal de données selon la revendication 16 ou 17, caractérisé en ce que les coefficients des images de la sous-séquence d'images vidéo sont des coefficients d'une transformée en ondelettes de seconde génération de la géométrie des maillages de chacune des images de la sous-séquence d'images vidéo.18) Data signal according to claim 16 or 17, characterized in that the coefficients of the images of the sub-sequence of video images are coefficients of a second generation wavelet transform of the mesh geometry of each of the images of the video image sub-sequence.
19) Programme d'ordinateur stocké sur un support d'informations, ledit programme comportant des instructions permettant de mettre en œuvre le procédé de codage selon l'une quelconque des revendications 1 à 9, lorsqu'il est chargé et exécuté par un système informatique.19) Computer program stored on an information medium, said program comprising instructions making it possible to implement the coding method according to any one of claims 1 to 9, when it is loaded and executed by a computer system .
20) Programme d'ordinateur stocké sur un support d'informations, ledit programme comportant des instructions permettant de mettre en œuvre le procédé de décodage selon l'une quelconque des revendications 10 à 13, lorsqu'il est chargé et exécuté par un système informatique. 20) Computer program stored on an information medium, said program comprising instructions making it possible to implement the method of decoding according to any one of claims 10 to 13, when it is loaded and executed by a computer system.
PCT/EP2004/006237 2003-06-12 2004-06-08 Method and device for encoding and decoding a video image sequence WO2004112398A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0307083 2003-06-12
FR0307083A FR2856228A1 (en) 2003-06-12 2003-06-12 Video image sequence encoding method, involves associating topology of mesh of video images with each video sub-sequence and forming data signal having associated topology and information representing coefficients of image

Publications (1)

Publication Number Publication Date
WO2004112398A1 true WO2004112398A1 (en) 2004-12-23

Family

ID=33484385

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2004/006237 WO2004112398A1 (en) 2003-06-12 2004-06-08 Method and device for encoding and decoding a video image sequence

Country Status (2)

Country Link
FR (1) FR2856228A1 (en)
WO (1) WO2004112398A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012048052A1 (en) * 2010-10-05 2012-04-12 General Instrument Corporation Method and apparatus for feature based video coding
WO2012125532A1 (en) * 2011-03-11 2012-09-20 General Instrument Corporation Method and apparatus for spatial scalability for hevc
WO2020233483A1 (en) * 2019-05-22 2020-11-26 腾讯科技(深圳)有限公司 Video coding method and video decoding method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999064944A2 (en) * 1998-06-08 1999-12-16 Microsoft Corporation Compression of time-dependent geometry
US20020003906A1 (en) * 1998-06-18 2002-01-10 Wenjun Zeng Joint coding method for images and videos with multiple arbitrarily shaped segments or objects

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999064944A2 (en) * 1998-06-08 1999-12-16 Microsoft Corporation Compression of time-dependent geometry
US20020003906A1 (en) * 1998-06-18 2002-01-10 Wenjun Zeng Joint coding method for images and videos with multiple arbitrarily shaped segments or objects

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
DELOGNE P: "PICTURE CODING A TUTORIAL INTRODUCTION", REVUE HF, SOC. BELGE DES ING. DES TELECOMM. & D'ELECTRONIQUE. OPHAIN, BE, vol. 15, no. 3 / 4, 1991, pages 41 - 74, XP000307852, ISSN: 0035-3248 *
KHODAKOVSKY A ET AL: "PROGRESSIVE GEOMETRY COMPRESSION", COMPUTER GRAPHICS. SIGGRAPH 2000 CONFERENCE PROCEEDINGS. NEW ORLEANS, LA, JULY 23 - 28, 2000, COMPUTER GRAPHICS PROCEEDINGS. SIGGRAPH, NEW YORK, NY: ACM, US, 23 July 2000 (2000-07-23), pages 271 - 278, XP001003565, ISBN: 1-58113-208-5 *
LOUNSBERY M ET AL: "MULTIRESOLUTION ANALYSIS FOR SURFACES OF ARBITRARY TOPOLOGICAL TYPE", ACM TRANSACTIONS ON GRAPHICS, ASSOCIATION FOR COMPUTING MACHINERY, NEW YORK, US, vol. 16, no. 1, 1997, pages 34 - 73, XP000686202, ISSN: 0730-0301 *
MARQUANT G: "THESE REPRESENTATION PAR MAIILAGE ADAPTATIF DEFORMABLE POUR LA MANIPULATION ET LA COMMUNICATION D'OBJETS VIDEO", THESE L'UNIVERSITE DE RENNES, XX, XX, no. 2453, 2000, pages 5 - 17,19-77,79-163,165-267,269-2-96, XP001059069 *
MURAT TEKALP A ET AL: "FACE AND 2-D MESH ANIMATION IN MPEG-4", SIGNAL PROCESSING. IMAGE COMMUNICATION, ELSEVIER SCIENCE PUBLISHERS, AMSTERDAM, NL, vol. 15, January 2000 (2000-01-01), pages 387 - 421, XP000885371, ISSN: 0923-5965 *
SHAMIR A ET AL: "Multi-resolution dynamic meshes with arbitrary deformations", PROCEEDINGS VISUALIZATION 2000. VIS 2000. SALT LAKE CITY, UT, OCT. 8 - 13, 2000, ANNUAL IEEE CONFERENCE ON VISUALIZATION, LOS ALAMITOS, CA: IEEE COMP. SOC, US, 8 October 2000 (2000-10-08), pages 423 - 430,583, XP010524632, ISBN: 0-7803-6478-3 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012048052A1 (en) * 2010-10-05 2012-04-12 General Instrument Corporation Method and apparatus for feature based video coding
US9532059B2 (en) 2010-10-05 2016-12-27 Google Technology Holdings LLC Method and apparatus for spatial scalability for video coding
WO2012125532A1 (en) * 2011-03-11 2012-09-20 General Instrument Corporation Method and apparatus for spatial scalability for hevc
WO2020233483A1 (en) * 2019-05-22 2020-11-26 腾讯科技(深圳)有限公司 Video coding method and video decoding method

Also Published As

Publication number Publication date
FR2856228A1 (en) 2004-12-17

Similar Documents

Publication Publication Date Title
EP2777269B1 (en) Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs
EP2991351B1 (en) Procedure for decoding of images
FR2894421A1 (en) METHOD AND DEVICE FOR DECODING A VIDEO STREAM CODE FOLLOWING A HIERARCHICAL CODING
WO2008110719A1 (en) Method for encoding data representative of a multi-dimensional texture, encoding device and corresponding decoding method and device, signal and software
WO2004112398A1 (en) Method and device for encoding and decoding a video image sequence
WO2020058594A1 (en) Methods and devices for coding and decoding a data stream representing at least one image
EP1574068B1 (en) Wavelet image-encoding method and corresponding decoding method
WO2006053842A1 (en) Method of coding wavelet-coded images with data rate control and corresponding coding device and computer program
FR2872972A1 (en) METHOD AND DEVICE FOR VIDEO TRANSMISSION BETWEEN A SERVER AND A CLIENT
EP3520416B1 (en) Method for encoding an image and associated decoding method, devices, terminal equipment and computer programs
WO2020002796A1 (en) Methods and devices for coding and decoding a data stream representing at least one image
WO2020002795A1 (en) Methods and devices for coding and decoding a data stream representing at least one image
EP3854088A1 (en) Methods and devices for encoding and decoding a data stream representing at least one image
FR3143246A1 (en) Method and device for coding and decoding images.
WO2024121109A1 (en) Method and device for coding and decoding images
FR2848765A1 (en) Digital image JPEG signal data configuration determination procedure determines minimum data rate reduction for resolution as function of signal quality
WO2024121107A1 (en) Method and device for encoding and decoding images
WO2020058595A1 (en) Methods and devices for encoding and decoding a data stream representing at least one image
FR2776411A1 (en) Method and device for coding and decoding sequence of digital image data
FR2773927A1 (en) Digital image signal encoding and decoding technique for signal compression
FR2766033A1 (en) Compressed data coding-decoding method

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

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

AL Designated countries for regional patents

Kind code of ref document: A1

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

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