EP1800263A2 - Method for locally decoding a bit stream of wavelet coefficients - Google Patents
Method for locally decoding a bit stream of wavelet coefficientsInfo
- Publication number
- EP1800263A2 EP1800263A2 EP05792261A EP05792261A EP1800263A2 EP 1800263 A2 EP1800263 A2 EP 1800263A2 EP 05792261 A EP05792261 A EP 05792261A EP 05792261 A EP05792261 A EP 05792261A EP 1800263 A2 EP1800263 A2 EP 1800263A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- wavelet
- orientation
- coefficient
- coefficients
- wavelet coefficient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
Definitions
- the field of the invention is that of encoding images and objects in at least three dimensions. More precisely, the invention relates to the transmission of data representative of three-dimensional scenes or 3D objects, as well as their decoding, with a view to their subsequent reconstruction on a display screen. It can for example be used for the transmission of images or multimedia scenes via the Internet.
- the invention finds particular applications in the field of adaptive representation of scenes (or scene objects) in three dimensions (3D) represented by meshes.
- the general principle of this technique is to develop a homeomorphism between an object to be encoded (such as a 3D mesh for example) and a simple mesh (more generally called “basic mesh") in a base of particular functions, called wavelets of second generation.
- a mesh is therefore represented by a series of coefficients that correspond to the coordinates in a wavelet basis of a parameterization of this mesh by a simple polyhedron.
- an object coded according to such a technique is presented as the union of the two following elements: the basic mesh, which generally has few facets, and represents a coarse version of the object to be encoded; the wavelet coefficients, which are triplets of real numbers assigned simultaneously to a specific area of the base mesh and to a given subdivision level of this mesh. These wavelet coefficients represent the refinements to be made to the zone with which they are associated to converge towards the geometry of the initial object.
- wavelet coefficient encoding techniques are known for their transmission to the display terminal, among which the so-called "zero-tree" coding technique presents particularly interesting results in terms of compression.
- Such a technique consists in describing a coding order of the wavelet coefficients, which is predetermined and known in advance of the transmitter and receiver terminals (for example of a server and a client display terminal). It thus makes it possible, during the transmission of wavelet coefficients, to avoid transmitting information relating to the ranges of coefficients which are not significant for the coding of the object under consideration. The cancellation of the non-significant coefficients thus makes it possible to reach a satisfactory level of compression.
- the zero-tree coding techniques advantageously exploit the fact that the wavelet coefficients have, at the finest levels of detail, a smaller amplitude than the wavelet coefficients associated with the coarser subdivision levels.
- Such "zero-tree" encodings are generally coupled to a coding
- bit plane which allows, when transmitting the coefficients, to transmit the most significant bits of each coefficient first. This satisfies the progressivity requirements of the coding technique.
- the "zero-tree" coding / decoding algorithm also called SPIHT algorithm (for "Set Partitioning in Hierarchical Trees") makes it possible to obtain a global binary representation. of the set of wavelet coefficients, which contains sort bits and bits from the binary representation of the coefficients.
- this SPIHT algorithm Applied to the coding of two-dimensional wavelet images, this SPIHT algorithm, during decoding, reconstructs the hierarchy of the pixels of the image and distributes the bits as they are extracted from the bitstream.
- the SPIHT algorithm originally developed for two-dimensional image coding, has recently been applied to second-generation wavelet coefficients as described in the "Progressive" publications.
- the inventors of the present patent application have established that its adaptation to the second generation wavelets retained this requirement; thus, in the case of partial or adaptive transmission of the data, the decoding of some wavelet coefficients requires storage in memory of the entire hierarchy of the mesh associated with the 3D object or the multimedia scene that is to be reconstructed.
- the SPIHT algorithm applied to 3D objects coded by wavelet second generation, therefore has severe limitations in the case where it is desired to perform adaptive decoding of the transmitted object.
- adaptive decoding proves particularly interesting for many applications, such as, for example, adaptive "streaming" of geographic terrain (in French "streaming”).
- a user interactively visits a virtual geographical area, transmitted by a server over a communication network, such as the Internet for example.
- the server transmits to the display terminal only the data that may be seen by the latter.
- the relevance of the data is determined in particular according to the point of view of the user, his position in the virtual scene, or a specific request sent by the latter to the server, ...
- Another disadvantage of the SPIHT algorithm of the prior art, in the context of the coding of 3D objects by second generation wavelets, is of algorithmic order.
- the two phases of the reconstruction of a scene or a 3D object, from a bit stream (or "bitstream"), to obtain a 3D mesh are as follows : “zero-tree” decoding, which, from the bit stream of data, produces wavelet coefficients; and the inverse wavelet transform, which, from the wavelet coefficients extracted from the bit stream, produces a 3D mesh.
- the wavelet coefficients 15, after "zero-tree" decoding are stored in a cache 10, accompanied by a location information, expressed for example in the form of barycentric coordinates.
- F, A, B, C a facet of the basic mesh on which is the vertex indexing the wavelet coefficient
- A, B and C are barycentric coordinates of the vertex on the facet F.
- 3D is therefore that the reconstruction process 11 is dependent on the stopping of the decoding process 13. In other words, it is not possible to carry out an adaptive reconstruction of the only portion of the 3D object likely to interest the user as the entire bit stream 14 has not been decoded 13.
- Such a SPIHT technique does not allow particular adaptive visualization in real time objects or 3D scenes.
- an object of the invention is to provide a decoding technique of a data stream representative of a 3D object that allows reconstruction of the 3D object faster than according to the prior art, in particular the SPIHT algorithm.
- An objective of the invention is in particular to propose such a decoding technique that allows an adaptive visualization in real time of a 3D object.
- Another object of the invention is to provide such a decoding technique that allows space saving in memory size compared to prior techniques. More precisely, an object of the invention is to propose such a decoding technique that does not require storing in an intermediate structure the entirety of the decoded data before the beginning of the reconstruction phase of the representation of the 3D object.
- the invention also aims to provide such a decoding technique that allows a partial reconstruction of the 3D object, according to the wishes of a user.
- Another object of the invention is to propose such a decoding technique that makes it possible to decode a bit stream of wavelet coefficients by a process independent of the reconstruction of the representation of the 3D object or the associated multimedia scene.
- such a method implements the following steps: determining an orientation of an edge carrying said vertex indexing said wavelet coefficient, called the orientation of said wavelet coefficient; determining, according to said orientation, location information in said base mesh of at least one descendant of said wavelet coefficient, distinct location rules being associated with each orientation, so as to extract from said data stream at least some of said wavelet coefficients, each associated with location information.
- the invention is based on a completely new and inventive approach to the decoding of a bit stream containing wavelet coefficients, allowing the reconstruction of a 3D object or a multimedia scene.
- the invention proposes, as the decoding of the bitstream, to determine, for each wavelet coefficient, location information of its descendants, or son. In this way, these coefficients can be directly used during the reconstruction of the 3D object. It is therefore no longer necessary to have decoded the entire bit stream to be able to have the location information associated with each of the wavelet coefficients, and thus to begin the reconstruction of the representation of the 3D object, by applying the wavelet coefficients decoded at the basic mesh.
- the location information associated with the wavelet coefficients and their descendants is thus calculated during the decoding, as a function of the orientation of the edge of the base mesh that carries the vertex indexing the wavelet coefficient.
- we determine the orientation of a parent wavelet coefficient and we deduce what is the calculation rule to be applied to determine the location information of one of his descendants, as more in detail later in this document. Since such decoding makes it possible to directly access the wavelet coefficients of the bit stream, associated with information making it possible to locate them in the basic mesh, the invention makes it possible to carry out an adaptive reconstruction in real time of the object. 3D thus coded.
- said method implements a step of modifying said affine base, so that said information of localization expressed in said modified affine base satisfies said at least one criterion.
- such a decoding method also comprises, for said at least one descendant, a subsequent step of reducing said location information.
- Such a reduction step makes it possible, on the one hand, to have uniqueness of the location information of a wavelet coefficient at the output of the decoding method and, on the other hand, to reduce as much as possible the memory space occupied by this location information.
- said wavelet coefficients are coded according to a zero-tree type technique, in said bit stream.
- said location information comprises four parameters (F (n), A (n), B (n), C (n)), where F (n) is a facet of said base mesh on which is said vertex indexing said coefficient of wavelets, and wherein A (n), B (n) and C (n) are integer multiples of barycentric coordinates of said vertex on said facet F (n).
- the affine base in which the location information is expressed thus corresponds to the facet of the mesh in which the barycentric coordinates of the vertex indexing the wavelet coefficient are expressed.
- such a decoding method comprises a preliminary step of initialization of said location information, during which said parameters (F (n), A (n), B (n) , C (n)) the value zero.
- a (n) 2 * A (m) + l
- a (n) 2 * A (m) + l
- C (n) 2 * C (m) -2; where m denotes the index of said wavelet coefficient and n denotes the index of said descendant.
- said location information does not satisfy said at least one predetermined criterion if said vertex indexing said wavelet coefficient is located on an edge of said basic mesh.
- said location information does not satisfy said at least one predetermined criterion if at least one of the parameters A (n), B (n) and C (n) of said wavelet coefficient is negative. Indeed, when a vertex is located on an edge of the mesh, at least one of its barycentric coordinates is negative.
- said parameters A (n), B (n) and C (n) are divided by two, as long as said parameters A (n), B (n) and C (n) are all peers.
- such a decoding method also comprises, for each of said wavelet coefficients extracted from said data stream, a subsequent step of storage in a cache of said wavelet coefficient and said associated reduced location information, so as to what said stored wavelet coefficients may be used during a step of reconstructing said at least three-dimensional object implementing an inverse wavelet transform.
- the wavelet coefficients associated with information for locating them in the basic mesh are stored directly in the cache.
- such a decoding method is implemented in the context of an algorithm for sorting the wavelet coefficients of said data stream of SPIHT type ("Set Partitioning In Hierarchical Trees", in French “partitioning of sets in hierarchical trees ").
- the invention also relates to a device for decoding a data stream representative of an object having at least three dimensions, said object being associated with a basic mesh consisting of a set of facets defined by a set vertices and edges, and coefficients in a wavelet basis corresponding to local modifications of said basic mesh, said wavelet coefficients, each wavelet coefficient being indexed by a vertex of said basic mesh, said train of data comprising at least some of said wavelet coefficients.
- such a decoding device implements the following means: means for determining an orientation of an edge carrying said vertex indexing said coefficient of wavelets, referred to as the orientation of said wavelet coefficient; means for determining, according to said orientation, location information in said basic mesh of at least one descendant of said wavelet coefficient, distinct location rules being associated with each orientation, so as to extract said data stream at least some of said wavelet coefficients, each associated with location information.
- the invention also relates to a terminal for restoring an object to at least three dimensions, said object being associated with a basic mesh consisting of a set of facets defined by a set of vertices and edges, and coefficients in a wavelet basis corresponding to local modifications of said basic mesh, called wavelet coefficients, each wavelet coefficient being indexed by a vertex of said basic mesh, said terminal comprising means for receiving a data stream representative of said object comprising at least some of said wavelet coefficients.
- such a restitution terminal implements the following means: means for determining an orientation of an edge carrying said vertex indexing said coefficient of wavelets, referred to as the orientation of said wavelet coefficient; means for determining, according to said orientation, a location information in said base mesh of at least one descendant of said wavelet coefficient, distinct location rules being associated with each orientation, and in that said terminal includes means for cache storage of said wavelet coefficients , each associated with location information, and means for reconstructing said at least three-dimensional object implementing an inverse wavelet transform.
- the invention further relates to a computer program product comprising program code instructions recorded on a medium usable in a computer, and for decoding a data stream representative of an object having at least three dimensions, said object being associated with a basic mesh consisting of a set of facets defined by a set of vertices and edges, and coefficients in a wavelet basis corresponding to local modifications of said basic mesh, called wavelet coefficients each wavelet coefficient being indexed by a vertex of said base mesh, said data stream comprising at least some of said wavelet coefficients.
- such a computer program product comprises computer readable programming means for performing, for at least some wavelet coefficients of said data stream: a step of determining an orientation of an edge carrying said vertex indexing said wavelet coefficient, referred to as the orientation of said wavelet coefficient; a step of determining, according to said orientation, location information in said base mesh of at least one descendant of said wavelet coefficient, distinct location rules being associated with each orientation, so as to extract from said train at least some of said wavelet coefficients, each associated with location information.
- FIG. 2 illustrates, according to the prior art, the hierarchical structure of an image in the context of the SPIHT algorithm for the coding of two-dimensional images
- FIG. 3 describes, according to the invention, the hierarchical structure of a mesh in the context of the application of the SPIHT algorithm to the coding of semi-regular meshes (associated with 3D objects)
- FIG. 4 presents a flowchart of the SPIHT algorithm of the prior art
- FIG. 5 illustrates the different steps implemented in the method of decoding a bit stream according to the invention
- Figure 6 illustrates the notion of orientation, as defined and used throughout this document. 7. Description of an embodiment of the invention
- the general principle of the invention is based on the direct determination, during the decoding of a bit stream, of the location information associated with a wavelet coefficient and its descendants, as a function of the orientation, in the basic mesh. , of the edge with which the father coefficient is associated.
- FIGS. 2 and 4 the technique of the SPIHT algorithm, presented by A. Said and WA Pearlman in "A New, Fast, and Efficient Coded Image". Based on Set Partitioning in Hierarchical Trees "for the coding of 2D images.
- Figure 2 shows the hierarchical structure of a two-dimensional image used in the SPIHT algorithm of the prior art.
- a tree structure, or tree defines the spatial relationships in the hierarchical pyramid associated with the image.
- Figure 2 shows such a tree in the case of a pyramid constructed by recursively dividing the 2D image into 4 subbands.
- Each node of the tree corresponds to a pixel of the image and is identified by the coordinates of the pixel in the image. His direct descendants correspond to pixels of the same spatial position in the next level of sophistication of the pyramid.
- the tree is defined in such a way that each node has either no descendants or four descendants, which always form a group of adjacent 2x2 pixels.
- the arrows are oriented from the parent node to its four sons.
- the pixels of the highest level of the pyramid form the roots of the tree, and are also grouped into sets of 2x2 adjacent pixels.
- the pixel referenced 201 of the level of subdivision 20 of the image has four son pixels referenced 211 to 214 in the next level of subdivision 21.
- the son referenced 212 itself has four descendants referenced 221 to 224 in the level of next subdivision of the hierarchical pyramid.
- FIG. 4 presents a flow diagram of the SPIHT decoding algorithm of the bit stream (or "bitstream"), making it possible, for a 2D image, to pass from the bitstream to a set of wavelet coefficients.
- bitstream or "bitstream”
- the detailed algorithm can be found in the article by A. Said and WA Pearlman in “A New, Fast, and Efficient Image Coded Based on Partitioning in Hierarchical Trees” (IEEE Trans. 6 (3), June 1996).
- the principle of this algorithm is based on the use and management of three ordered lists, in which the relevance information relating to each pixel of the image is stored; these three lists are: the list LIS 41 of non-significant sets (List of Insignificant Sets); the LIP 40 list of non-significant pixels (List of Insignificant Pixels); the LSP 42 list of significant pixels (List of Significant Pixels).
- the LSP 42 is initialized to the empty list, the LIS 41 and the LIP 40 are initialized to all the roots of the hierarchy of FIG. 2.
- the LIP list 40 is then scanned for all the pixels that are not significant for rendering the image, and 401 is determined if, taking into account the relevance threshold associated with this level of subdivision, the coefficient d wavelet associated with one of these pixels must now be considered relevant. In the negative 402, this pixel is left in the LIP 40 list.
- the value of the wavelet coefficient is sent, and the pixel is moved in the list LSP 42.
- the LIS 41 list of sets of non-significant pixels.
- the wavelet coefficient associated with a pixel When the wavelet coefficient associated with a pixel is considered relevant, its direct descendants are searched in the hierarchy to determine whether or not they are equally relevant, and therefore decide whether to move 413, 412 in the hierarchy.
- LSP 42 or LIP 40 list When the wavelet coefficient associated with a pixel is considered relevant, its direct descendants are searched in the hierarchy to determine whether or not they are equally relevant, and therefore decide whether to move 413, 412 in the hierarchy.
- LSP 42 or LIP 40 list When the wavelet coefficient associated with a pixel is considered relevant, its direct descendants are searched in the hierarchy to determine whether or not they are equally relevant, and therefore decide whether to move 413, 412 in the hierarchy.
- LSP 42 or LIP 40 list When the wavelet coefficient associated with a pixel is considered relevant, its direct descendants are searched in the hierarchy to determine whether or not they are equally relevant, and therefore decide whether to move 413, 412 in the hierarchy.
- the set of wavelet coefficients associated with the pixels of the LSP list 42 are extracted, and sent 420 in the form of refinement bits, to be used during the reconstruction of the image.
- the present invention is in the context of the application of this SPIHT algorithm to 3D objects encoded by meshes and wavelets of second generation (it is recalled that a wavelet is called "second generation” if it is a wavelet allowing the coding of semi-regular meshes, as opposed to the classical wavelets which encode the pixels of a 2D image).
- FIG. 3 illustrates the hierarchical structure used in this framework for meshing.
- Each wavelet coefficient is associated bijectively with an edge of the base mesh, and is indexed by the vertex forming the middle of this edge.
- the middle of each edge is therefore associated with a wavelet coefficient, which is the root of a subtree.
- Each edge of the base mesh is the parent of four edges of the same orientation (i.e. parallel to it) in the directly adjacent refined mesh in the hierarchical subdivision order.
- the wavelet coefficient associated with the vertex C, middle of [IJ], has four descendants, or sons, which are respectively associated with the following vertices:
- a wavelet coefficient of index n in the coefficient table is identified, in such a hierarchical mesh, by four parameters, given by four functions F (n), A (n), B (n) and C (n).
- the first function indicates a facet of the base mesh on which is the vertex indexing the coefficient.
- the other three coefficients A (n), B (n) and C (n) are the smallest integer multiples of the barycentric coordinates of this vertex on the facet F (n).
- the basic mesh is a mesh having few facets and which is intended to be refined according to the information carried by the coefficients of wavelets.
- the invention consists in modifying this algorithm so that each time that a test is made on the descendants of a coefficient of wavelets, one proceeds in the manner next: if at least one of the descendants does not exist in the cache 10 of FIG. 1, it is created in memory and it is assigned location information in the base mesh, which is determined according to the algorithm presented below in connection with FIG.
- these coefficients can thus be directly used during the 3D reconstruction. Indeed, as soon as these wavelet coefficients are extracted from the bitstream and decoded, they are directly registered in the cache 10, so that they are directly usable for the reconstruction 11 of the 3D object 12. Thanks to the using a "zero-tree" coding technique, only part of the bitstream 14 corresponding to the visually relevant areas of the 3D object 12 can be decoded from a user's point of view. In particular, the client user can ask a server to send him only the bits of bitstream 14 corresponding to the subtrees, or "zero-tree", whose root is a visible edge of the mesh zone which interested.
- the cache 10 then contains only the wavelet coefficients 15 relevant for the reconstruction 11.
- the location information associated with the wavelet coefficients takes the form of the quadruplet
- the invention consists, during the decoding of the bit stream, in performing tests on the progeny of the wavelet coefficients, in order to locate the entire hierarchy as a function of the quadruplets (F, A, B, C) of the descendants. It thus makes it possible to perform the maintenance of the cache 10, and the association of the wavelet coefficients with their barycentric coordinates. In other words, the invention makes it possible to directly manage the hierarchy of wavelet coefficients in a cache used for the reconstruction.
- FIG. 5 The different steps of the decoding algorithm of the invention are now presented in greater detail in connection with FIG.
- a bit stream which contains at least the zero-tree encoded wavelet coefficients associated with a multimedia scene or a 3D object (for example a relief of field, or a 3D avatar evolving in a virtual environment).
- the steps of FIG. 5 are repeated for each of the subtrees or "zero-trees" that one wishes to decode. For example, we first look at a first subtree, whose root is a parent node of the basic mesh, index m.
- a first initialization step referenced 50 the new coordinates F (n), A (n), B (n) and C (n) are initialized to 0, where n is the index of the descendant of the node m. whose coordinates are to be determined.
- a second referenced orientation step 51 the orientation of the wavelet coefficient indexed by the node of index m is determined according to the formula:
- the mesh comprises three types of distinct edges: the edges referenced 60, which are parallel to (KJ), and whose orientation is 1; the referenced edges 61, which are parallel to (JI), and whose orientation is 2; the edges referenced 62, which are parallel to (KI), and whose orientation is 3.
- the coordinates of the first son C 0 are calculated according to the formulas:
- a (n) 2 * A (m) -1
- the coordinates of the third son C 2 are calculated according to the formulas:
- a (n) 2 * A (m) -1
- a (n) 2 * A (m) -1
- a wavelet coefficient has less than four descendants, for example if it is located on one edge of the mesh. It can be determined that one is on an edge of the mesh if the parent edge of level 0 is traversed only once in the basic mesh.
- the first son C 0 of the wavelet coefficient C of level j is indexed by the level vertex (j + 1) which has the mother edge [aC], where C is the middle of the ridge [ab].
- the second son C 1 of C is indexed by the level vertex (j + 1) which has the mother edge [bC].
- C belongs to at least 6 level faces (J + I) 5 , two of which have for their only intersection with the mother vertex [ab] the vertex C. These two faces have two potentially mother edges which do not contain C
- the third son C 2 is such that abC 2 is oriented in the same direction as KJI.
- the fourth son C 3 is such that abC 3 is oriented in the other direction.
- this affine base change step 53 the objective of this affine base change step 53 is to find a face F of the mesh in which all the associated barycentric coordinates A, B and C are positive or zero.
- Each affine base being associated with one face of the mesh, an affine base change therefore amounts to effecting a face change.
- a (n), B (n) and C (n) are indeed the smallest integer multiples of the barycentric coordinates ⁇ , ⁇ and ⁇ , which makes it possible to on the one hand, to have uniqueness of the output solution 55 of the algorithm of FIG. 5, and on the other hand, to reduce as much as possible the memory space occupied by these coordinates (for example in the cache 10 ).
- the algorithm of FIG. 5 can be reiterated for each of the subtrees of the bitstream that it is desired to decode. It makes it possible to follow the coordinates of the wavelet coefficients and their descendants during the course of the SPIHT type algorithm of FIG. 4, so as to minimize the memory space used and the management of the processes using a single memory cache .
- the invention is particularly applicable to the decoding of binary trains representative of terrain reliefs, as part of the transmission and reconstruction of large virtual environments. It is recalled that, in this context, various topographic surveys are carried out, which make it possible to construct the basic mesh, and aerial photographs are used to determine the texture to be associated with this basic mesh, with a view to determining the coefficients of gravity. wavelet.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
The invention concerns a method for decoding a data stream representing an object with at least three dimensions, associated with a basic mesh consisting of an assembly of facets defined by an assembly of vertices and ridges, and with wavelet coefficients corresponding to the local modifications of the basic mesh, indexed each by a vertex of the basic mesh. The invention is characterized in that, for at least some wavelet coefficients of the data stream, the method includes the following steps: determining an orientation of a ridge bearing the vertex indexing the wavelet coefficients, called orientation of the wavelet coefficient; determining, based on the orientation, an information for locating in the basic mesh at least one child of the wavelet coefficient, distinct locating rules being associated with each orientation, so as to extract a data stream of at least some of the wavelet coefficients, associated each with a locating information.
Description
Procédé de décodage local d'un train binaire de coefficients d'ondelettes. 1. Domaine de l'inventionMethod for local decoding of a bitstream of wavelet coefficients 1. Field of the invention
Le domaine de l'invention est celui du codage d'images et d'objets à au moins trois dimensions. Plus précisément, l'invention concerne la transmission de données représentatives de scènes tridimensionnelles ou d'objets 3D, ainsi que leur décodage, en vue de leur reconstruction ultérieure sur un écran de visualisation. Elle peut par exemple être utilisée pour la transmission d'images ou de scènes multimédia via le réseau Internet.The field of the invention is that of encoding images and objects in at least three dimensions. More precisely, the invention relates to the transmission of data representative of three-dimensional scenes or 3D objects, as well as their decoding, with a view to their subsequent reconstruction on a display screen. It can for example be used for the transmission of images or multimedia scenes via the Internet.
L'invention trouve notamment des applications dans le domaine de la représentation adaptative de scènes (ou d'objets de scène) en trois dimensions (3D) représentées par des maillages.The invention finds particular applications in the field of adaptive representation of scenes (or scene objects) in three dimensions (3D) represented by meshes.
Elle s'inscrit plus particulièrement dans le cadre du décodage et de la représentation d'objets d'une scène graphique codés par maillages au moyen de méthodes dites "à ondelettes", mettant notamment en œuvre des ondelettes de 2ème génération, présentées dans le document de Wim Sweldens, intitulé "The Lifting Scheme : A Construction of Second Génération Wavelets" (en français, "Le procédé d'élévation : une construction des ondelettes de deuxième génération"), SIAM Journal on Mathematical Analysis, Volume 29, number 2, pp 511-546, 1998. 2. Solutions de l'art antérieurIt fits more particularly in the framework of the decoding and the representation of objects of a graphic scene coded by meshes by means of methods known as "wavelet", putting in particular implemented wavelets of 2nd generation, presented in the Wim Sweldens, entitled "The Lifting Scheme: A Construction of Second Generation Wavelets" (in English, "The Elevation Process: A Construction of Second Generation Wavelets"), SIAM Journal on Mathematical Analysis, Volume 29, Number 2 , pp. 511-546, 1998. 2. Solutions of the prior art
On rappelle que les méthodes de codage dites "à ondelettes" permettent de représenter un maillage comme une succession de détails ajoutés à un maillage de base. La théorie générale de cette technique est notamment décrite dans l'article de M. Lounsbery, T. DeRose et J. Warren, "Multiresolution Analysis for Surfaces of Arbitrary Topological Type" (ACM Transaction on Graphics, Vol. 16, No.1, pp. 34-73, Janvier 1997).It is recalled that the so-called "wavelet" coding methods make it possible to represent a mesh as a succession of details added to a basic mesh. The general theory of this technique is described in particular in the article by M. Lounsbery, T. DeRose and J. Warren, "Multiresolution Analysis for Surfaces of Arbitrary Topological Type" (ACM Transaction on Graphics, Vol.16, No.1, pp. 34-73, January 1997).
Le principe général de cette technique consiste à développer un homéomorphisme entre un objet à coder (tel qu'un maillage 3D par exemple) et un maillage simple (plus généralement appelé "maillage de base") dans une base de fonctions particulières, appelées ondelettes de deuxième génération.
Selon cette technique, un maillage est donc représenté par une suite de coefficients qui correspondent aux coordonnées dans une base d'ondelettes d'une paramétrisation de ce maillage par un polyèdre simple.The general principle of this technique is to develop a homeomorphism between an object to be encoded (such as a 3D mesh for example) and a simple mesh (more generally called "basic mesh") in a base of particular functions, called wavelets of second generation. According to this technique, a mesh is therefore represented by a series of coefficients that correspond to the coordinates in a wavelet basis of a parameterization of this mesh by a simple polyhedron.
Ainsi, un objet codé selon une telle technique se présente comme l'union des deux éléments suivants : le maillage de base, qui comporte généralement peu de facettes, et représente une version grossière de l'objet à coder ; les coefficients d'ondelettes, qui sont des triplets de réels affectés simultanément à une zone précise du maillage de base et à un niveau de subdivision donné de ce maillage. Ces coefficients d'ondelettes représentent les raffinements à apporter à la zone à laquelle ils sont associés pour converger vers la géométrie de l'objet initial.Thus, an object coded according to such a technique is presented as the union of the two following elements: the basic mesh, which generally has few facets, and represents a coarse version of the object to be encoded; the wavelet coefficients, which are triplets of real numbers assigned simultaneously to a specific area of the base mesh and to a given subdivision level of this mesh. These wavelet coefficients represent the refinements to be made to the zone with which they are associated to converge towards the geometry of the initial object.
Pour pouvoir reconstruire une représentation de l'objet codé sur un terminal de visualisation, il est nécessaire de transmettre à ce dernier, d'une part le maillage de base, et d'autre part les coefficients d'ondelettes associés.In order to be able to reconstruct a representation of the object coded on a display terminal, it is necessary to transmit to the latter, on the one hand, the basic mesh, and on the other hand the associated wavelet coefficients.
On connaît plusieurs techniques de codage des coefficients d'ondelettes, en vue de leur transmission vers le terminal de visualisation, parmi lesquelles la technique de codage dite de "zero-tree" présente des résultats particulièrement intéressants en termes de compression. Une telle technique consiste à décrire un ordre de codage des coefficients d'ondelettes, qui est prédéterminé et connu à l'avance des terminaux émetteur et récepteur (par exemple d'un serveur et d'un terminal de visualisation client). Elle permet donc, lors de la transmission de coefficients d'ondelettes, d'éviter de transmettre des informations relatives aux plages de coefficients non- significatifs pour le codage de l'objet considéré. L'annulation des coefficients non- significatifs permet ainsi d'atteindre un niveau de compression satisfaisant.Several wavelet coefficient encoding techniques are known for their transmission to the display terminal, among which the so-called "zero-tree" coding technique presents particularly interesting results in terms of compression. Such a technique consists in describing a coding order of the wavelet coefficients, which is predetermined and known in advance of the transmitter and receiver terminals (for example of a server and a client display terminal). It thus makes it possible, during the transmission of wavelet coefficients, to avoid transmitting information relating to the ranges of coefficients which are not significant for the coding of the object under consideration. The cancellation of the non-significant coefficients thus makes it possible to reach a satisfactory level of compression.
Les techniques de codage par "zero-tree" exploitent avantageusement le fait que les coefficients d'ondelettes présentent, aux niveaux de détail les plus fins,
une amplitude plus faible que les coefficients d'ondelettes associés aux niveaux de subdivision plus grossiers.The zero-tree coding techniques advantageously exploit the fact that the wavelet coefficients have, at the finest levels of detail, a smaller amplitude than the wavelet coefficients associated with the coarser subdivision levels.
De tels codages par "zero-trees" sont généralement couplés à un codageSuch "zero-tree" encodings are generally coupled to a coding
"par plan de bits", qui permet, lors de la transmission des coefficients, de transmettre les bits les plus significatifs de chaque coefficient en premier. On satisfait ainsi aux exigences de progressivité de la technique de codage."bit plane", which allows, when transmitting the coefficients, to transmit the most significant bits of each coefficient first. This satisfies the progressivity requirements of the coding technique.
Pour une description plus détaillée des techniques par "zero-trees", on pourra se référer aux articles de Jérôme M. Shapiro, "Embedded Image CodingFor a more detailed description of zero-tree techniques, reference may be made to Jerome M. Shapiro's articles, Embedded Image Coding.
Using Zerotrees of Wavelet Coefficients" (IEEE Trans. Sig. Proc. 41(12), Dec.1993) et de A. Said, W. A. Pearlman, "A New, Fast, and Efficient ImageUsing Zerotrees of Wavelet Coefficients (IEEE Trans., Sig., Proc 41 (12), Dec.1993) and A. Said, W. A. Pearlman, "A New, Fast, and Efficient Image.
Codée Based on Set Partitioning in Hierarchical Trees" (IEEE Trans. Cire.Coded Based on Partitioning in Hierarchical Trees "(IEEE Trans.
Système. For Video Tech., 6(3), Juin 1996).System. For Video Tech., 6 (3), June 1996).
Comme exposé dans ce dernier article de A. Said et W. A. Pearlman, l'algorithme de codage/décodage par "zero-tree", encore appelé algorithme SPIHT (pour "Set Partitioning in Hierarchical Trees") permet d'obtenir une représentation binaire globale de l'ensemble des coefficients d'ondelettes, qui contient des bits de tri et des bits provenant de la représentation binaire des coefficients. Appliqué au codage d'images bidimensionnelles par ondelettes, cet algorithme SPIHT, lors du décodage, reconstruit la hiérarchie des pixels de l'image et distribue les bits au fur et à mesure de leur extraction du train binaire, ou "bitstream".As explained in this last article by A. Said and WA Pearlman, the "zero-tree" coding / decoding algorithm, also called SPIHT algorithm (for "Set Partitioning in Hierarchical Trees") makes it possible to obtain a global binary representation. of the set of wavelet coefficients, which contains sort bits and bits from the binary representation of the coefficients. Applied to the coding of two-dimensional wavelet images, this SPIHT algorithm, during decoding, reconstructs the hierarchy of the pixels of the image and distributes the bits as they are extracted from the bitstream.
L'algorithme SPIHT, initialement développé pour le codage d'images bidimensionnelles, a récemment été appliqué aux coefficients d'ondelettes de deuxième génération, ainsi que décrit dans les publications "ProgressiveThe SPIHT algorithm, originally developed for two-dimensional image coding, has recently been applied to second-generation wavelet coefficients as described in the "Progressive" publications.
Geometry Compression" (SIGGRAPH 2000 proceedings) par A. Khodakovsky, P. Schrôder et W. Sweldens, et "Hierarchical Coding of 3D Models with SubdivisionGeometry Compression "(SIGGRAPH 2000 proceedings) by A. Khodakovsky, P. Schröder and W. Sweldens, and" Hierarchical Coding of 3D Models with Subdivision
Surfaces" (IEEE ICIP 2000 Proceedings) par F. Moran et N. Garcia.Surfaces "(IEEE ICIP 2000 Proceedings) by F. Moran and N. Garcia.
On obtient ainsi, pour des ondelettes de deuxième génération, un train binaire présentant le même type de format que pour des ondelettes classiques, utilisées pour le codage d'images bidimensionnelles. 3. Inconvénients de l'art antérieur
Tel que présenté initialement dans le cadre du codage par ondelettes classiques d'images 2D, par A. Said et W. A. Pearlman dans l'article cité ci- dessus, l'algorithme SPIHT nécessite de tenir en mémoire un tableau de la taille de l'image à reconstruire, c'est-à-dire contenant autant d'éléments que de coefficients d' ondelettes. Les inventeurs de la présente demande de brevet ont établi que son adaptation aux ondelettes de deuxième génération conservait cette exigence ; ainsi, dans le cas de transmission partielle ou adaptative des données, le décodage de quelques coefficients d'ondelettes nécessite le stockage en mémoire de toute la hiérarchie du maillage associé à l'objet 3D ou à la scène multimédia que l'on souhaite reconstruire.Thus, for second generation wavelets, a bit stream having the same type of format as for conventional wavelets used for the coding of two-dimensional images is obtained. 3. Disadvantages of prior art As initially presented in the framework of conventional wavelet coding of 2D images, by A. Said and WA Pearlman in the article cited above, the SPIHT algorithm requires keeping in memory a table of the size of the image to be reconstructed, that is to say containing as many elements as coefficients of wavelets. The inventors of the present patent application have established that its adaptation to the second generation wavelets retained this requirement; thus, in the case of partial or adaptive transmission of the data, the decoding of some wavelet coefficients requires storage in memory of the entire hierarchy of the mesh associated with the 3D object or the multimedia scene that is to be reconstructed.
L'algorithme SPIHT, appliqué aux objets 3D codés par ondelettes de deuxième génération, présente donc de sévères limitations dans le cas où l'on souhaite réaliser un décodage adaptatif de l'objet transmis.The SPIHT algorithm, applied to 3D objects coded by wavelet second generation, therefore has severe limitations in the case where it is desired to perform adaptive decoding of the transmitted object.
Or un tel décodage adaptatif s'avère particulièrement intéressant pour de nombreuses applications, telles que par exemple le "streaming" adaptatif de terrain géographique (en français "lecture en continu"). Dans une telle application, un utilisateur visite de manière interactive une zone géographique virtuelle, transmise par un serveur sur un réseau de communication, tel que le réseau Internet par exemple. En fonction de la zone visitée par l'utilisateur, le serveur ne transmet au terminal de restitution que les données susceptibles d'être vues par ce dernier. La pertinence des données est notamment déterminée en fonction du point de vue de l'utilisateur, de sa position dans la scène virtuelle, ou d'une requête spécifique adressée par ce dernier au serveur, ...However, such adaptive decoding proves particularly interesting for many applications, such as, for example, adaptive "streaming" of geographic terrain (in French "streaming"). In such an application, a user interactively visits a virtual geographical area, transmitted by a server over a communication network, such as the Internet for example. Depending on the area visited by the user, the server transmits to the display terminal only the data that may be seen by the latter. The relevance of the data is determined in particular according to the point of view of the user, his position in the virtual scene, or a specific request sent by the latter to the server, ...
Un premier inconvénient de l'algorithme SPIHT de l'art antérieur, dans le cadre du codage d'objets 3D par ondelettes de deuxième génération, réside donc dans la nécessité de devoir tenir en mémoire la totalité de la hiérarchie du "zero- tree". En effet, un décodage partiel du train binaire nécessite de créer en mémoire la totalité de la structure hiérarchique, alors même qu'une partie de cette structure est destinée à ne contenir que des zéros, seule une partie de la scène codée dans le train binaire étant visible par, ou d'intérêt pour, l'utilisateur.
Un autre inconvénient de l'algorithme SPIHT de l'art antérieur, dans le cadre du codage d'objets 3D par ondelettes de deuxième génération, est d'ordre algorithmique.A first disadvantage of the SPIHT algorithm of the prior art, as part of the coding of 3D objects by second-generation wavelets, therefore lies in the need to keep in memory the whole hierarchy of the "zero tree". . Indeed, a partial decoding of the bitstream requires creating in memory the whole of the hierarchical structure, even though part of this structure is intended to contain only zeros, only part of the scene encoded in the bit stream being visible to, or of interest to, the user. Another disadvantage of the SPIHT algorithm of the prior art, in the context of the coding of 3D objects by second generation wavelets, is of algorithmic order.
En effet, lors d'une transmission adaptative, les deux phases de la reconstruction d'une scène ou d'un objet 3D, à partir d'un train binaire (ou "bitstream"), pour obtenir un maillage 3D, sont les suivantes : le décodage "zero-tree", qui, à partir du train binaire de données, produit des coefficients d'ondelettes ; et la transformée en ondelettes inverse, qui, à partir des coefficients d'ondelettes extraits du train binaire, produit un maillage 3D.Indeed, during an adaptive transmission, the two phases of the reconstruction of a scene or a 3D object, from a bit stream (or "bitstream"), to obtain a 3D mesh, are as follows : "zero-tree" decoding, which, from the bit stream of data, produces wavelet coefficients; and the inverse wavelet transform, which, from the wavelet coefficients extracted from the bit stream, produces a 3D mesh.
De façon classique, et comme illustré en figure 1, les coefficients d'ondelettes 15, après décodage "zero-tree", sont stockés dans un cache 10, accompagnés d'une information de localisation, exprimée par exemple sous la forme de coordonnées barycentriques (F, A, B, C), où F est une facette du maillage de base sur laquelle se trouve le sommet indexant le coefficient d'ondelettes, et où A, B et C sont des coordonnées barycentriques du sommet sur la facette F. Cette information de localisation permet au processus de reconstruction 11 d'intégrer le coefficient d'ondelettes correspondant dans la représentation 3D 12 de façon indépendante. Un inconvénient de la technique SPIHT de l'art antérieur pour les objetsIn a conventional manner, and as illustrated in FIG. 1, the wavelet coefficients 15, after "zero-tree" decoding, are stored in a cache 10, accompanied by a location information, expressed for example in the form of barycentric coordinates. (F, A, B, C), where F is a facet of the basic mesh on which is the vertex indexing the wavelet coefficient, and where A, B and C are barycentric coordinates of the vertex on the facet F. This location information enables the reconstruction process 11 to integrate the corresponding wavelet coefficient into the 3D representation 12 independently. A disadvantage of the SPIHT technique of the prior art for objects
3D est donc que le processus de reconstruction 11 est dépendant de l'arrêt du processus de décodage 13. En d'autres termes, il n'est pas possible de réaliser une reconstruction adaptative de la seule portion de l'objet 3D susceptible d'intéresser l'utilisateur tant que l'intégralité du train binaire 14 n'a pas été décodée 13. Une telle technique SPIHT ne permet donc notamment pas une visualisation adaptative en temps réel d'objets ou de scènes 3D.3D is therefore that the reconstruction process 11 is dependent on the stopping of the decoding process 13. In other words, it is not possible to carry out an adaptive reconstruction of the only portion of the 3D object likely to interest the user as the entire bit stream 14 has not been decoded 13. Such a SPIHT technique does not allow particular adaptive visualization in real time objects or 3D scenes.
4. Objectifs de l'invention4. Objectives of the invention
L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur.
Plus précisément, un objectif de l'invention est de fournir une technique de décodage d'un train de données représentatives d'un objet 3D qui permette une reconstruction de l'objet 3D plus rapide que selon les techniques antérieures, notamment l'algorithme SPIHT. Un objectif de l'invention est notamment de proposer une telle technique de décodage qui permette une visualisation adaptative et en temps réel d'un objet 3D.The invention particularly aims to overcome these disadvantages of the prior art. More specifically, an object of the invention is to provide a decoding technique of a data stream representative of a 3D object that allows reconstruction of the 3D object faster than according to the prior art, in particular the SPIHT algorithm. . An objective of the invention is in particular to propose such a decoding technique that allows an adaptive visualization in real time of a 3D object.
Un autre objectif de l'invention est de fournir une telle technique de décodage qui permette un gain de place en taille mémoire par rapport aux techniques antérieures. Plus précisément, un objectif de l'invention est de proposer une telle technique de décodage qui ne nécessite pas de stocker dans une structure intermédiaire l'intégralité des données décodées avant le début de la phase de reconstruction de la représentation de l'objet 3D.Another object of the invention is to provide such a decoding technique that allows space saving in memory size compared to prior techniques. More precisely, an object of the invention is to propose such a decoding technique that does not require storing in an intermediate structure the entirety of the decoded data before the beginning of the reconstruction phase of the representation of the 3D object.
L'invention a encore pour objectif de fournir une telle technique de décodage qui permette une reconstruction partielle de l'objet 3D, en fonction de souhaits d'un utilisateur.The invention also aims to provide such a decoding technique that allows a partial reconstruction of the 3D object, according to the wishes of a user.
Un autre objectif de l'invention est de proposer une telle technique de décodage qui permette de décoder un train binaire de coefficients d'ondelettes par un processus indépendant de la reconstruction de la représentation de l'objet 3D ou de la scène multimédia associés.Another object of the invention is to propose such a decoding technique that makes it possible to decode a bit stream of wavelet coefficients by a process independent of the reconstruction of the representation of the 3D object or the associated multimedia scene.
5. Caractéristiques essentielles de l'invention5. Essential characteristics of the invention
Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de décodage d'un train de données représentatives d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit train de données comprenant au moins certains desdits coefficients d'ondelettes.
Selon l'invention, pour au moins certains coefficients d'ondelettes dudit train de données, un tel procédé met en œuvre les étapes suivantes : détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes ; détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, de façon à extraire dudit train de données au moins certains desdits coefficients d'ondelettes, associés chacun à une information de localisation.These objectives, as well as others that will appear later, are achieved by means of a method of decoding a data stream representative of an object having at least three dimensions, said object being associated with a mesh base consisting of a set of facets defined by a set of vertices and edges, and coefficients in a wavelet basis corresponding to local modifications of said basic mesh, called wavelet coefficients, each coefficient of wavelet being indexed by a vertex of said base mesh, said data stream comprising at least some of said wavelet coefficients. According to the invention, for at least some wavelet coefficients of said data stream, such a method implements the following steps: determining an orientation of an edge carrying said vertex indexing said wavelet coefficient, called the orientation of said wavelet coefficient; determining, according to said orientation, location information in said base mesh of at least one descendant of said wavelet coefficient, distinct location rules being associated with each orientation, so as to extract from said data stream at least some of said wavelet coefficients, each associated with location information.
Ainsi, l'invention repose sur une approche tout à fait nouvelle et inventive du décodage d'un train binaire contenant des coefficients d'ondelettes, permettant la reconstruction d'un objet 3D ou d'une scène multimédia. En effet, l'invention propose, au fur et à mesure du décodage du train binaire, de déterminer, pour chaque coefficient d'ondelettes, une information de localisation de ses descendants, ou fils. De cette façon, ces coefficients peuvent être directement utilisés lors de la reconstruction de l'objet 3D. Il n'est donc plus nécessaire d'avoir décodé l'intégralité du train binaire pour pouvoir disposer des informations de localisation associées à chacun des coefficients d'ondelettes, et donc commencer la reconstruction de la représentation de l'objet 3D, en appliquant les coefficients d'ondelettes décodés au maillage de base.Thus, the invention is based on a completely new and inventive approach to the decoding of a bit stream containing wavelet coefficients, allowing the reconstruction of a 3D object or a multimedia scene. Indeed, the invention proposes, as the decoding of the bitstream, to determine, for each wavelet coefficient, location information of its descendants, or son. In this way, these coefficients can be directly used during the reconstruction of the 3D object. It is therefore no longer necessary to have decoded the entire bit stream to be able to have the location information associated with each of the wavelet coefficients, and thus to begin the reconstruction of the representation of the 3D object, by applying the wavelet coefficients decoded at the basic mesh.
Les informations de localisation associées aux coefficients d'ondelettes et à leurs descendants sont ainsi calculées lors du décodage, en fonction de l'orientation de l'arête du maillage de base qui porte le sommet indexant le coefficient d'ondelettes. En d'autres termes, on détermine l'orientation d'un coefficient d'ondelettes parent, et on en déduit quelle est la règle de calcul à appliquer pour déterminer l'information de localisation de l'un de ses descendants, comme exposé plus en détail dans la suite de ce document.
Un tel décodage permettant d'accéder de manière directe aux coefficients d'ondelettes du train binaire, associés à une information permettant de les localiser dans le maillage de base, l'invention permet de réaliser une reconstruction adaptative et en temps réel de l'objet 3D ainsi codé. En outre, contrairement aux techniques de l'art antérieur, il n'est plus nécessaire, selon l'invention, de disposer d'une structure intermédiaire volumineuse dans laquelle stocker l'intégralité de la hiérarchie de codage de l'objet 3D. On peut se contenter de ne décoder que les portions d'intérêt du train binaire, et de stocker dans un cache les seuls coefficients d'ondelettes décodés, associés à une information de localisation, en vue de la reconstruction de l'objet 3D.The location information associated with the wavelet coefficients and their descendants is thus calculated during the decoding, as a function of the orientation of the edge of the base mesh that carries the vertex indexing the wavelet coefficient. In other words, we determine the orientation of a parent wavelet coefficient, and we deduce what is the calculation rule to be applied to determine the location information of one of his descendants, as more in detail later in this document. Since such decoding makes it possible to directly access the wavelet coefficients of the bit stream, associated with information making it possible to locate them in the basic mesh, the invention makes it possible to carry out an adaptive reconstruction in real time of the object. 3D thus coded. In addition, unlike the techniques of the prior art, it is no longer necessary, according to the invention, to have a large intermediate structure in which to store the entire coding hierarchy of the 3D object. It is sufficient to decode only the portions of interest of the bit stream, and to store in cache the only decoded wavelet coefficients, associated with location information, for the reconstruction of the 3D object.
Préférentiellement, pour ledit au moins un descendant, si ladite information de localisation exprimée dans une base affine ne satisfait pas au moins un critère prédéterminé, ledit procédé met en œuvre une étape de modification de ladite base affine, de façon à ce que ladite information de localisation exprimée dans ladite base affine modifiée satisfasse ledit au moins un critère.Preferably, for said at least one descendant, if said location information expressed in an affine base does not satisfy at least one predetermined criterion, said method implements a step of modifying said affine base, so that said information of localization expressed in said modified affine base satisfies said at least one criterion.
Selon une caractéristique avantageuse de l'invention, un tel procédé de décodage comprend également, pour ledit au moins un descendant, une étape ultérieure de réduction de ladite information de localisation.According to an advantageous characteristic of the invention, such a decoding method also comprises, for said at least one descendant, a subsequent step of reducing said location information.
Une telle étape de réduction permet d'une part, d'avoir unicité de l'information de localisation d'un coefficient d'ondelettes en sortie du procédé de décodage, et d'autre part, de réduire autant que faire se peut, la place mémoire occupée par cette information de localisation. Avantageusement, lesdits coefficients d'ondelettes sont codés selon une technique de type zero-tree, dans ledit train binaire.Such a reduction step makes it possible, on the one hand, to have uniqueness of the location information of a wavelet coefficient at the output of the decoding method and, on the other hand, to reduce as much as possible the memory space occupied by this location information. Advantageously, said wavelet coefficients are coded according to a zero-tree type technique, in said bit stream.
Comme indiqué précédemment dans ce document, une telle technique de type "zero-tree" permet en effet d'atteindre des résultats satisfaisants en termes de compression des coefficients à transmettre. De manière préférentielle, pour un coefficient d'ondelettes d'indice n,
ladite information de localisation comprend quatre paramètres (F(n), A(n), B(n), C(n)), où F(n) est une facette dudit maillage de base sur laquelle se trouve ledit sommet indexant ledit coefficient d'ondelettes, et où A(n), B(n) et C(n) sont des multiples entiers de coordonnées barycentriques dudit sommet sur ladite facette F(n).As indicated previously in this document, such a zero-tree type technique makes it possible to achieve satisfactory results in terms of compression of the coefficients to be transmitted. Preferably, for a wavelet coefficient of index n, said location information comprises four parameters (F (n), A (n), B (n), C (n)), where F (n) is a facet of said base mesh on which is said vertex indexing said coefficient of wavelets, and wherein A (n), B (n) and C (n) are integer multiples of barycentric coordinates of said vertex on said facet F (n).
La base affine dans laquelle est exprimée l'information de localisation correspond donc à la facette du maillage dans laquelle sont exprimés les coordonnées barycentriques du sommet indexant le coefficient d'ondelettes.The affine base in which the location information is expressed thus corresponds to the facet of the mesh in which the barycentric coordinates of the vertex indexing the wavelet coefficient are expressed.
Selon une caractéristique avantageuse de l'invention, un tel procédé de décodage comprend une étape préliminaire d'initialisation de ladite information de localisation, au cours de laquelle on affecte auxdits paramètres (F(n), A(n), B(n), C(n)) la valeur zéro.According to an advantageous characteristic of the invention, such a decoding method comprises a preliminary step of initialization of said location information, during which said parameters (F (n), A (n), B (n) , C (n)) the value zero.
De manière avantageuse, ladite orientation dudit coefficient d'ondelettes d'indice n est donnée par la formule : Orientation = (!(A(n)%2))+2*(!(B(n)%2))+3*(!(C(n)%2)) où % est l'opérateur du reste de la division euclidienne, ! est l'opérateur de négation booléenne, et où A(n), B(n) et C(n) sont les coordonnées barycentriques (ou des multiples de ces coordonnées) du coefficient d'ondelettes d'indice n dans la facette F(n) du maillage. Préférentiellement, ladite information de localisation desdits descendants dudit coefficient d'ondelettes est déterminée selon les formules suivantes (où l'indice n désigne le coefficient d'ondelettes père et m, son descendant) : pour un premier descendant dudit coefficient d'ondelettes : si l'orientation dudit coefficient d'ondelettes vaut 1 : F(n)=F(m)Advantageously, said orientation of said wavelet coefficient of index n is given by the formula: Orientation = (! (A (n)% 2)) + 2 * (! (B (n)% 2)) + 3 * (! (C (n)% 2)) where% is the operator of the rest of the Euclidean division,! is the Boolean negation operator, and where A (n), B (n) and C (n) are the barycentric coordinates (or multiples of these coordinates) of the wavelet coefficient of index n in the facet F ( n) the mesh. Preferably, said location information of said descendants of said wavelet coefficient is determined according to the following formulas (where the index n denotes the father wavelet coefficient and m, its descendant): for a first descendant of said wavelet coefficient: the orientation of said wavelet coefficient is 1: F (n) = F (m)
A(n)=2*A(m) B(n)=2*B(m)+l C(n)=2*C(m)-l ; si l'orientation dudit coefficient d'ondelettes vaut 2 : F(n)=F(m)
A(n)=2*A(m)-lA (n) = 2 * A (m) B (n) = 2 * B (m) + 1 C (n) = 2 * C (m) -1; if the orientation of said wavelet coefficient is 2: F (n) = F (m) A (n) = 2 * A (m) -l
B(n)=2*B(m)B (n) = 2 * B (m)
C(n)=2*C(m)+l ; si l'orientation dudit coefficient d'ondelettes vaut 3 : F(n)=F(m)C (n) = 2 * C (m) + 1; if the orientation of said wavelet coefficient is 3: F (n) = F (m)
A(n)=2*A(m)+lA (n) = 2 * A (m) + l
B(n)=2*B(m)-lB (n) = 2 * B (m) -l
C(n)=2*C(m) ; pour un deuxième descendant dudit coefficient d'ondelettes : - si l'orientation dudit coefficient d'ondelettes vaut 1 :C (n) = 2 * C (m); for a second descendant of said wavelet coefficient: if the orientation of said wavelet coefficient is 1:
F(n)=F(m)F (n) = F (m)
A(n)=2*A(m)A (n) = 2 * A (m)
B(n)=2*B(m)-lB (n) = 2 * B (m) -l
C(n)=2*C(m)+l; - si l'orientation dudit coefficient d'ondelettes vaut 2 :C (n) = 2 * C (m) + l; if the orientation of said wavelet coefficient is 2:
F(n)=F(m)F (n) = F (m)
A(n)=2*A(m)+lA (n) = 2 * A (m) + l
B(n)=2*B(m)B (n) = 2 * B (m)
C(n)=2*C(m)-l ; - si l'orientation dudit coefficient d'ondelettes vaut 3 :C (n) = 2 * C (m) -1; if the orientation of said wavelet coefficient is 3:
F(n)=F(m)F (n) = F (m)
A(n)=2*A(m)-lA (n) = 2 * A (m) -l
B(n)=2*B(m)+lB (n) = 2 * B (m) + l
C(n)=2*C(m) ; pour un troisième descendant dudit coefficient d'ondelettes : si l'orientation dudit coefficient d'ondelettes vaut 1 :C (n) = 2 * C (m); for a third descendant of said wavelet coefficient: if the orientation of said wavelet coefficient is 1:
F(n)=F(m)F (n) = F (m)
A(n)=2*A(m)+2A (n) = 2 * A (m) 2
B(n)=2*B(m)-l C(n)=2*C(m)-l;
si l'orientation dudit coefficient d'ondelettes vaut 2 :B (n) = 2 * B (m) -1 C (n) = 2 * C (m) -1; if the orientation of said wavelet coefficient is 2:
F(n)= F(m)F (n) = F (m)
A(n)=2*A(m)-lA (n) = 2 * A (m) -l
B(n)=2*B(m)+2 C(n)=2*C(m)-l si l'orientation dudit coefficient d'ondelettes vaut 3 :B (n) = 2 * B (m) + 2 C (n) = 2 * C (m) -1 if the orientation of said wavelet coefficient is 3:
F(n)= F(m)F (n) = F (m)
A(n)=2*A(m)-lA (n) = 2 * A (m) -l
B(n)=2*B(m)-l C(n)=2*C(m)+2 pour un quatrième descendant dudit coefficient d'ondelettes, s'il existe : si l'orientation dudit coefficient d'ondelettes vaut 1 :B (n) = 2 * B (m) -l C (n) = 2 * C (m) +2 for a fourth descendant of said wavelet coefficient, if it exists: if the orientation of said wavelet coefficient is 1:
F(n)= F(m)F (n) = F (m)
A(n)=2*A(m)-2 B(n)=2*B(m)+lA (n) = 2 * A (m) -2 B (n) = 2 * B (m) + 1
C(n)=2*C(m)+l ; si l'orientation dudit coefficient d'ondelettes vaut 2 :C (n) = 2 * C (m) + 1; if the orientation of said wavelet coefficient is 2:
F(n)= F(m)F (n) = F (m)
A(n)=2*A(m)+l B(n)=2*B(m)-2A (n) = 2 * A (m) + 1 B (n) = 2 * B (m) -2
C(n)=2*C(m)+l; si l'orientation dudit coefficient d'ondelettes vaut 3 :C (n) = 2 * C (m) + l; if the orientation of said wavelet coefficient is 3:
F(n)= F(m)F (n) = F (m)
A(n)=2*A(m)+l B(n)=2*B(m)+lA (n) = 2 * A (m) + 1 B (n) = 2 * B (m) + 1
C(n)=2*C(m)-2 ; où m désigne l'indice dudit coefficient d'ondelettes et n désigne l'indice dudit descendant.C (n) = 2 * C (m) -2; where m denotes the index of said wavelet coefficient and n denotes the index of said descendant.
Selon une caractéristique avantageuse de l'invention, ladite information de localisation ne satisfait pas ledit au moins un critère prédéterminé si ledit sommet
indexant ledit coefficient d'ondelettes est situé sur un bord dudit maillage de base.According to an advantageous characteristic of the invention, said location information does not satisfy said at least one predetermined criterion if said vertex indexing said wavelet coefficient is located on an edge of said basic mesh.
Ainsi, ladite information de localisation ne satisfait pas ledit au moins un critère prédéterminé si l'un au moins des paramètres A(n), B(n) et C(n) dudit coefficient d'ondelettes est négatif. En effet, lorsqu'un sommet est situé sur un bord du maillage, l'une au moins de ses coordonnées barycentriques est négative.Thus, said location information does not satisfy said at least one predetermined criterion if at least one of the parameters A (n), B (n) and C (n) of said wavelet coefficient is negative. Indeed, when a vertex is located on an edge of the mesh, at least one of its barycentric coordinates is negative.
Préférentiellement, lors de ladite étape de réduction de ladite information de localisation, on divise lesdits paramètres A(n), B(n) et C(n) par deux, tant que lesdits paramètres A(n), B(n) et C(n) sont tous pairs.Preferably, during said step of reducing said location information, said parameters A (n), B (n) and C (n) are divided by two, as long as said parameters A (n), B (n) and C (n) are all peers.
De cette façon, on détermine les plus petits multiples entiers des coordonnées barycentriques du coefficient d'ondelettes d'indice n.In this way, the smallest integer multiples of the barycentric coordinates of the wavelet coefficient of index n are determined.
De manière avantageuse, un tel procédé de décodage comprend également, pour chacun desdits coefficients d'ondelettes extraits dudit train de données, une étape ultérieure de stockage dans un cache dudit coefficient d'ondelettes et de ladite information de localisation réduite associée, de façon à ce que lesdits coefficients d'ondelettes stockés puissent être utilisés lors d'une étape de reconstruction dudit objet à au moins trois dimensions mettant en œuvre une transformée en ondelettes inverse.Advantageously, such a decoding method also comprises, for each of said wavelet coefficients extracted from said data stream, a subsequent step of storage in a cache of said wavelet coefficient and said associated reduced location information, so as to what said stored wavelet coefficients may be used during a step of reconstructing said at least three-dimensional object implementing an inverse wavelet transform.
On stocke ainsi directement dans le cache, au fur et à mesure de leur décodage, les coefficients d'ondelettes associés à une information permettant de les localiser dans le maillage de base. On peut donc procéder, à partir des informations de ce cache, à la reconstruction adaptative et en temps réel d'une représentation de l'objet 3D ou de la scène multimédia considérée, sans qu'il soit nécessaire d'avoir préalablement décodé l'intégralité du train binaire.Thus, as soon as they are decoded, the wavelet coefficients associated with information for locating them in the basic mesh are stored directly in the cache. One can proceed, from the information of this cache, to the adaptive reconstruction and in real time of a representation of the 3D object or the multimedia scene considered, without it being necessary to have previously decoded the the entire binary train.
De manière préférentielle, un tel procédé de décodage est mis en œuvre dans le cadre d'un algorithme de tri des coefficients d'ondelettes dudit train de données de type SPIHT (« Set Partitioning In Hierarchical Trees », en français « partitionnement d'ensembles dans des arbres hiérarchiques »).Preferably, such a decoding method is implemented in the context of an algorithm for sorting the wavelet coefficients of said data stream of SPIHT type ("Set Partitioning In Hierarchical Trees", in French "partitioning of sets in hierarchical trees ").
L'invention concerne aussi un dispositif de décodage d'un train de données représentatives d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble
de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit train de données comprenant au moins certains desdits coefficients d'ondelettes.The invention also relates to a device for decoding a data stream representative of an object having at least three dimensions, said object being associated with a basic mesh consisting of a set of facets defined by a set vertices and edges, and coefficients in a wavelet basis corresponding to local modifications of said basic mesh, said wavelet coefficients, each wavelet coefficient being indexed by a vertex of said basic mesh, said train of data comprising at least some of said wavelet coefficients.
Selon l'invention, pour au moins certains coefficients d'ondelettes dudit train de données, un tel dispositif de décodage met en œuvre les moyens suivants : des moyens de détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes ; des moyens de détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, de façon à extraire dudit train de données au moins certains desdits coefficients d'ondelettes, associés chacun à une information de localisation.According to the invention, for at least some wavelet coefficients of said data stream, such a decoding device implements the following means: means for determining an orientation of an edge carrying said vertex indexing said coefficient of wavelets, referred to as the orientation of said wavelet coefficient; means for determining, according to said orientation, location information in said basic mesh of at least one descendant of said wavelet coefficient, distinct location rules being associated with each orientation, so as to extract said data stream at least some of said wavelet coefficients, each associated with location information.
L'invention concerne également un terminal de restitution d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit terminal comprenant des moyens de réception d'un train de données représentatives dudit objet comprenant au moins certains desdits coefficients d'ondelettes. Selon l'invention, pour au moins certains coefficients d'ondelettes dudit train de données, un tel terminal de restitution met en œuvre les moyens suivants : des moyens de détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes ; - des moyens de détermination, en fonction de ladite orientation, d'une
information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, et en ce que ledit terminal comprend des moyens de stockage dans un cache desdits coefficients d'ondelettes, associés chacun à une information de localisation, et des moyens de reconstruction dudit objet à au moins trois dimensions mettant en œuvre une transformée en ondelettes inverse.The invention also relates to a terminal for restoring an object to at least three dimensions, said object being associated with a basic mesh consisting of a set of facets defined by a set of vertices and edges, and coefficients in a wavelet basis corresponding to local modifications of said basic mesh, called wavelet coefficients, each wavelet coefficient being indexed by a vertex of said basic mesh, said terminal comprising means for receiving a data stream representative of said object comprising at least some of said wavelet coefficients. According to the invention, for at least some wavelet coefficients of said data stream, such a restitution terminal implements the following means: means for determining an orientation of an edge carrying said vertex indexing said coefficient of wavelets, referred to as the orientation of said wavelet coefficient; means for determining, according to said orientation, a location information in said base mesh of at least one descendant of said wavelet coefficient, distinct location rules being associated with each orientation, and in that said terminal includes means for cache storage of said wavelet coefficients , each associated with location information, and means for reconstructing said at least three-dimensional object implementing an inverse wavelet transform.
L'invention concerne encore un produit programme d'ordinateur comprenant des instructions de code de programme enregistrées sur un support utilisable dans un ordinateur, et destinées au décodage d'un train de données représentatives d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit train de données comprenant au moins certains desdits coefficients d'ondelettes.The invention further relates to a computer program product comprising program code instructions recorded on a medium usable in a computer, and for decoding a data stream representative of an object having at least three dimensions, said object being associated with a basic mesh consisting of a set of facets defined by a set of vertices and edges, and coefficients in a wavelet basis corresponding to local modifications of said basic mesh, called wavelet coefficients each wavelet coefficient being indexed by a vertex of said base mesh, said data stream comprising at least some of said wavelet coefficients.
Selon l'invention, un tel produit programme d'ordinateur comprend des moyens de programmation lisibles par ordinateur pour effectuer, pour au moins certains coefficients d'ondelettes dudit train de données : une étape de détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes ; une étape détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, de façon à extraire dudit train de données au moins certains desdits coefficients d'ondelettes, associés chacun à une information de localisation. 6. Liste des figures
D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : - la figure 1, déjà décrite en relation avec l'art antérieur, présente un synoptique du processus de décodage d'un train binaire et de reconstruction de la représentation 3D de l'objet associé ; la figure 2 illustre, selon l'art antérieur, la structure hiérarchique d'une image dans le cadre de l'algorithme SPIHT pour le codage d'images bidimensionnelles ; la figure 3 décrit, selon l'invention, la structure hiérarchique d'un maillage dans le cadre de l'application de l'algorithme SPIHT au codage de maillages semi-réguliers (associés à des objets 3D) ; la figure 4 présente un organigramme de l'algorithme SPIHT de l'art antérieur ; la figure 5 illustre les différentes étapes mises en œuvre dans le procédé de décodage d'un train binaire selon l'invention ; la figure 6 illustre la notion d'orientation, telle qu'elle est définie et utilisée dans l'ensemble de ce document. 7. Description d'un mode de réalisation de l'inventionAccording to the invention, such a computer program product comprises computer readable programming means for performing, for at least some wavelet coefficients of said data stream: a step of determining an orientation of an edge carrying said vertex indexing said wavelet coefficient, referred to as the orientation of said wavelet coefficient; a step of determining, according to said orientation, location information in said base mesh of at least one descendant of said wavelet coefficient, distinct location rules being associated with each orientation, so as to extract from said train at least some of said wavelet coefficients, each associated with location information. 6. List of figures Other features and advantages of the invention will appear more clearly on reading the following description of a preferred embodiment, given as a simple illustrative and nonlimiting example, and the appended drawings, among which: FIG. 1, already described in relation with the prior art, presents a block diagram of the process of decoding a bit stream and reconstructing the 3D representation of the associated object; FIG. 2 illustrates, according to the prior art, the hierarchical structure of an image in the context of the SPIHT algorithm for the coding of two-dimensional images; FIG. 3 describes, according to the invention, the hierarchical structure of a mesh in the context of the application of the SPIHT algorithm to the coding of semi-regular meshes (associated with 3D objects); FIG. 4 presents a flowchart of the SPIHT algorithm of the prior art; FIG. 5 illustrates the different steps implemented in the method of decoding a bit stream according to the invention; Figure 6 illustrates the notion of orientation, as defined and used throughout this document. 7. Description of an embodiment of the invention
Le principe général de l'invention repose sur la détermination directe, lors du décodage d'un train binaire, des informations de localisation associées à un coefficient d'ondelettes et à ses descendants, en fonction de l'orientation, dans le maillage de base, de l'arête à laquelle est associé le coefficient père. Afin de mieux comprendre ce principe, on rappelle tout d'abord, en relation avec les figures 2 et 4, la technique de l'algorithme SPIHT, présentée par A. Said et W. A. Pearlman dans "A New, Fast, and Efficient Image Codée Based on Set Partitioning in Hierarchical Trees" (IEEE Trans. Cire. Système. For Video Tech., 6(3), Juin 1996) pour le codage d'images 2D.
La figure 2 présente la structure hiérarchique d'une image bidimensionnelle utilisée dans l'algorithme SPIHT de l'art antérieur. Une structure arborescente, ou arbre, définit les relations spatiales dans la pyramide hiérarchique associée à l'image. La figure 2 présente un tel arbre dans le cas d'une pyramide construite par subdivision récursive de l'image 2D en 4 sous-bandes. Chaque nœud de l'arbre correspond à un pixel de l'image et est identifié par les coordonnées du pixel dans l'image. Ses descendants directs correspondent aux pixels de même position spatiale dans le niveau de raffinement suivant de la pyramide. L'arbre est défini de façon telle que chaque nœud ait, soit aucun descendant, soit quatre descendants, qui forment toujours un groupe de 2x2 pixels adjacents. Sur la figure 2, les flèches sont orientées du nœud parent vers ses quatre fils. Les pixels du niveau le plus élevé de la pyramide forment les racines de l'arbre, et sont également groupés en ensembles de 2x2 pixels adjacents.The general principle of the invention is based on the direct determination, during the decoding of a bit stream, of the location information associated with a wavelet coefficient and its descendants, as a function of the orientation, in the basic mesh. , of the edge with which the father coefficient is associated. In order to better understand this principle, we first recall, in relation with FIGS. 2 and 4, the technique of the SPIHT algorithm, presented by A. Said and WA Pearlman in "A New, Fast, and Efficient Coded Image". Based on Set Partitioning in Hierarchical Trees "for the coding of 2D images. Figure 2 shows the hierarchical structure of a two-dimensional image used in the SPIHT algorithm of the prior art. A tree structure, or tree, defines the spatial relationships in the hierarchical pyramid associated with the image. Figure 2 shows such a tree in the case of a pyramid constructed by recursively dividing the 2D image into 4 subbands. Each node of the tree corresponds to a pixel of the image and is identified by the coordinates of the pixel in the image. His direct descendants correspond to pixels of the same spatial position in the next level of sophistication of the pyramid. The tree is defined in such a way that each node has either no descendants or four descendants, which always form a group of adjacent 2x2 pixels. In Figure 2, the arrows are oriented from the parent node to its four sons. The pixels of the highest level of the pyramid form the roots of the tree, and are also grouped into sets of 2x2 adjacent pixels.
Ainsi, le pixel référencé 201 du niveau de subdivision 20 de l'image a quatre pixels-fils référencés 211 à 214 dans le niveau de subdivision suivant 21. Le fils référencé 212 a lui-même quatre descendants référencés 221 à 224 dans le niveau de subdivision suivant de la pyramide hiérarchique.Thus, the pixel referenced 201 of the level of subdivision 20 of the image has four son pixels referenced 211 to 214 in the next level of subdivision 21. The son referenced 212 itself has four descendants referenced 221 to 224 in the level of next subdivision of the hierarchical pyramid.
La figure 4 présente un organigramme de l'algorithme SPIHT de décodage du train binaire (ou "bitstream"), permettant, pour une image 2D, de passer du train binaire à un ensemble de coefficients d'ondelettes. L'algorithme détaillé peut être trouvé dans l'article de A. Said et W. A. Pearlman dans "A New, Fast, and Efficient Image Codée Based on Set Partitioning in Hierarchical Trees" (IEEE Trans. Cire. Système. For Video Tech., 6(3), Juin 1996).FIG. 4 presents a flow diagram of the SPIHT decoding algorithm of the bit stream (or "bitstream"), making it possible, for a 2D image, to pass from the bitstream to a set of wavelet coefficients. The detailed algorithm can be found in the article by A. Said and WA Pearlman in "A New, Fast, and Efficient Image Coded Based on Partitioning in Hierarchical Trees" (IEEE Trans. 6 (3), June 1996).
Le principe de cet algorithme repose sur l'utilisation et la gestion de trois listes ordonnées, dans lesquelles sont stockées les informations de pertinence relatives à chaque pixel de l'image ; ces trois listes sont: la liste LIS 41 des ensembles non-significatifs (List of Insignificant Sets) ; la liste LIP 40 des pixels non-significatifs (List of Insignificant Pixels) ;
la liste LSP 42 des pixels significatifs (List of Significant Pixels). A l'initialisation, la LSP 42 est initialisée à la liste vide, la LIS 41 et la LIP 40 sont initialisées à toutes les racines de la hiérarchie de la figure 2.The principle of this algorithm is based on the use and management of three ordered lists, in which the relevance information relating to each pixel of the image is stored; these three lists are: the list LIS 41 of non-significant sets (List of Insignificant Sets); the LIP 40 list of non-significant pixels (List of Insignificant Pixels); the LSP 42 list of significant pixels (List of Significant Pixels). At initialization, the LSP 42 is initialized to the empty list, the LIS 41 and the LIP 40 are initialized to all the roots of the hierarchy of FIG. 2.
A un niveau de subdivision donné, on parcourt donc la liste LIP 40 de tous les pixels non significatifs pour le rendu de l'image, et on détermine 401 si, compte tenu du seuil de pertinence associé à ce niveau de subdivision, le coefficient d'ondelettes associé à l'un de ces pixels doit être désormais considéré comme pertinent. Dans la négative 402, on laisse ce pixel dans la liste LIP 40.At a given subdivision level, the LIP list 40 is then scanned for all the pixels that are not significant for rendering the image, and 401 is determined if, taking into account the relevance threshold associated with this level of subdivision, the coefficient d wavelet associated with one of these pixels must now be considered relevant. In the negative 402, this pixel is left in the LIP 40 list.
Dans l'affirmative 403, on envoie la valeur du coefficient d'ondelettes, et on déplace le pixel dans la liste LSP 42.In the affirmative 403, the value of the wavelet coefficient is sent, and the pixel is moved in the list LSP 42.
On procède de même pour la liste LIS 41 des ensembles de pixels non- significatifs. Lorsque le coefficient d'ondelettes associé à un pixel est considéré comme pertinent, on scrute 410 ses descendants directs dans la hiérarchie pour déterminer 411 s'ils sont ou non également pertinents, et donc décider s'ils doivent être déplacés 413, 412 dans la liste LSP 42 ou LIP 40.The same is true for the LIS 41 list of sets of non-significant pixels. When the wavelet coefficient associated with a pixel is considered relevant, its direct descendants are searched in the hierarchy to determine whether or not they are equally relevant, and therefore decide whether to move 413, 412 in the hierarchy. LSP 42 or LIP 40 list.
L'ensemble des coefficients d'ondelettes associés aux pixels de la liste LSP 42 sont extraits, et envoyés 420 sous forme de bits de raffinement, pour être utilisés lors de la reconstruction de l'image.The set of wavelet coefficients associated with the pixels of the LSP list 42 are extracted, and sent 420 in the form of refinement bits, to be used during the reconstruction of the image.
La présente invention s'inscrit dans le contexte de l'application de cet algorithme SPIHT aux objets 3D codés par maillages et ondelettes de deuxième génération (on rappelle qu'une ondelette est dite "de deuxième génération" s'il s'agit d'une ondelette permettant le codage de maillages semi-réguliers, par opposition aux ondelettes classiques qui codent les pixels d'une image 2D).The present invention is in the context of the application of this SPIHT algorithm to 3D objects encoded by meshes and wavelets of second generation (it is recalled that a wavelet is called "second generation" if it is a wavelet allowing the coding of semi-regular meshes, as opposed to the classical wavelets which encode the pixels of a 2D image).
La figure 3 illustre la structure hiérarchique utilisée dans ce cadre pour le codage de maillages. Chaque coefficient d'ondelettes est associé de manière bijective à une arête du maillage de base, et est indexé par le sommet formant le milieu de cet arête. Dans le maillage de base, le milieu de chaque arête est donc associé à un coefficient d'ondelettes, qui est la racine d'un sous-arbre.
Chaque arête du maillage de base est le parent de quatre arêtes de même orientation (c'est-à-dire qui lui sont parallèles) dans le maillage raffiné directement adjacent dans l'ordre de subdivision hiérarchique.Figure 3 illustrates the hierarchical structure used in this framework for meshing. Each wavelet coefficient is associated bijectively with an edge of the base mesh, and is indexed by the vertex forming the middle of this edge. In the basic mesh, the middle of each edge is therefore associated with a wavelet coefficient, which is the root of a subtree. Each edge of the base mesh is the parent of four edges of the same orientation (i.e. parallel to it) in the directly adjacent refined mesh in the hierarchical subdivision order.
Ainsi, sur la figure 3, le coefficient d'ondelettes associé au sommet C, milieu de [IJ], a quatre descendants, ou fils, qui sont respectivement associés aux sommets suivants:Thus, in FIG. 3, the wavelet coefficient associated with the vertex C, middle of [IJ], has four descendants, or sons, which are respectively associated with the following vertices:
C0, milieu de [CJ] ; C1, milieu de [IC] ; C2, milieu de [MN] ; - C3, milieu de [GH].C 0 , middle of [CJ]; C 1 , middle of [IC]; C 2 , middle of [MN]; - C 3 , middle of [GH].
Dans un mode de réalisation particulier de l'invention, auquel on se limitera dans toute la suite de ce document, un coefficient d'ondelettes d'indice n dans la table des coefficients est repéré, dans un tel maillage hiérarchique, par quatre paramètres, donnés par quatre fonctions F(n), A(n), B(n) et C(n). La première fonction indique une facette du maillage de base sur laquelle se trouve le sommet indexant le coefficient. Les trois autres coefficients A(n), B(n) et C(n) sont les plus petits multiples entiers des coordonnées barycentriques de ce sommet sur la facette F(n). On choisit en effet de travailler avec des coordonnées entières, par souci de simplification, et on ne manipule donc pas toujours les coordonnées barycentriques, qui peuvent être des nombres décimaux. Par abus de langage, on parlera indifféremment dans la suite de ce document de coordonnées barycentriques ou des plus petits multiples entiers de ces coordonnées.In a particular embodiment of the invention, which will be limited throughout the rest of this document, a wavelet coefficient of index n in the coefficient table is identified, in such a hierarchical mesh, by four parameters, given by four functions F (n), A (n), B (n) and C (n). The first function indicates a facet of the base mesh on which is the vertex indexing the coefficient. The other three coefficients A (n), B (n) and C (n) are the smallest integer multiples of the barycentric coordinates of this vertex on the facet F (n). We choose indeed to work with whole coordinates, for the sake of simplification, and we therefore do not always manipulate the barycentric coordinates, which can be decimal numbers. By misuse of language, one will speak indifferently in the continuation of this document of barycentric coordinates or smaller integer multiples of these coordinates.
Le maillage de base est un maillage comportant peu de facettes et qui est destiné à être raffiné en fonction de l'information portée par les coefficients d'ondelettes.The basic mesh is a mesh having few facets and which is intended to be refined according to the information carried by the coefficients of wavelets.
Pour pouvoir appliquer l'algorithme SPIHT aux objets 3D codés par ondelettes de deuxième génération, il convient de remplacer la hiérarchie de la figure 2 par celle de la figure 3, et de remplacer la notion de pixel par celle de coefficient d'ondelettes, ou de sommet du maillage indexant ce coefficient. C'est dans ce contexte que s'inscrit la présente invention.
Afin d'éviter les inconvénients de l'algorithme SPIHT adapté au codage d'objets 3D mentionnés au début de ce document (lenteur et non-adaptativité de la reconstruction, liées à la nécessité de stocker l'intégralité de la hiérarchie de l'objet 3D dans un cache avant de pouvoir commencer la reconstruction), l'invention consiste à modifier cet algorithme de telle façon qu'à chaque fois qu'un test est fait sur les descendants d'un coefficient d'ondelettes, on procède de la manière suivante : si l'un au moins des descendants n'existe pas dans le cache 10 de la figure 1, on le crée en mémoire et on lui affecte une information de localisation dans le maillage de base, que l'on détermine selon l'algorithme présenté ci-dessous en relation avec la figure 5.In order to be able to apply the SPIHT algorithm to the second generation wavelet-coded 3D objects, it is necessary to replace the hierarchy of FIG. 2 by that of FIG. 3, and to replace the notion of pixel by that of wavelet coefficient, or of the mesh indexing this coefficient. This is the context of the present invention. In order to avoid the disadvantages of the SPIHT algorithm adapted to the coding of 3D objects mentioned at the beginning of this document (slow and non-adaptive reconstruction, related to the need to store the entire hierarchy of the object 3D in a cache before being able to begin the reconstruction), the invention consists in modifying this algorithm so that each time that a test is made on the descendants of a coefficient of wavelets, one proceeds in the manner next: if at least one of the descendants does not exist in the cache 10 of FIG. 1, it is created in memory and it is assigned location information in the base mesh, which is determined according to the algorithm presented below in connection with FIG.
Ces coefficients peuvent ainsi être directement utilisés lors de la reconstruction 3D. En effet, dès que ces coefficients d'ondelettes sont extraits du train binaire et décodés, ils sont directement inscrits dans le cache 10, de sorte qu'ils sont directement utilisables pour la reconstruction 11 de l'objet 3D 12. Grâce à l'utilisation d'une technique de codage par "zero-tree", on peut ne décoder qu'une partie du train binaire 14, correspondant aux zones visuellement pertinentes de l'objet 3D 12 compte tenu du point de vue d'un utilisateur. Notamment, l'utilisateur client peut demander à un serveur de ne lui envoyer que les parties du train binaire 14 correspondant aux sous-arbres, ou "zero-tree", qui ont pour racine une arête visible de la zone du maillage qui l'intéresse. Une telle technique est par exemple décrite dans demande de brevet internationale publiée sous le numéro WO 03/009234 intitulée "Procédé de codage par ondelettes d'un objet maillé à au moins deux dimensions permettant une transmission adaptative de coefficients d'ondelettes, signal, système et dispositifs correspondants" au nom des mêmes demandeurs que la présente demande de brevet.These coefficients can thus be directly used during the 3D reconstruction. Indeed, as soon as these wavelet coefficients are extracted from the bitstream and decoded, they are directly registered in the cache 10, so that they are directly usable for the reconstruction 11 of the 3D object 12. Thanks to the using a "zero-tree" coding technique, only part of the bitstream 14 corresponding to the visually relevant areas of the 3D object 12 can be decoded from a user's point of view. In particular, the client user can ask a server to send him only the bits of bitstream 14 corresponding to the subtrees, or "zero-tree", whose root is a visible edge of the mesh zone which interested. Such a technique is for example described in international patent application published under the number WO 03/009234 entitled "Wavelet coding method of an at least two-dimensional meshed object allowing adaptive transmission of wavelet coefficients, signal, system and corresponding devices "on behalf of the same applicants as the present patent application.
Le cache 10 ne contient alors que les coefficients d'ondelettes 15 pertinents pour la reconstruction 11.The cache 10 then contains only the wavelet coefficients 15 relevant for the reconstruction 11.
Il n'est donc plus nécessaire d'attendre que tout le train binaire 14 soit décodé 13 pour commencer la phase de reconstruction 11, de sorte qu'il est possible d'envisager des applications en temps réel.
Dans le mode de réalisation de l'invention décrit ci-après, l'information de localisation associée aux coefficients d'ondelettes prend la forme du quadrupletIt is therefore no longer necessary to wait for all the bitstream 14 to be decoded 13 to begin the reconstruction phase 11, so that it is possible to envisage real-time applications. In the embodiment of the invention described hereinafter, the location information associated with the wavelet coefficients takes the form of the quadruplet
(F, A, B, C), où F est la face du maillage sur laquelle se trouve le coefficient, et(F, A, B, C), where F is the face of the mesh on which the coefficient is, and
(A5B5C) sont les plus petits multiples entiers de ses coordonnées barycentriques sur cette face.(A 5 B 5 C) are the smallest integer multiples of its barycentric coordinates on this face.
L'invention consiste, lors du décodage du train binaire, à réaliser des tests sur la descendance des coefficients d'ondelettes, pour repérer la totalité de la hiérarchie en fonction des quadruplets (F, A, B, C) des descendants. Elle permet donc de réaliser la maintenance du cache 10, et de l'association des coefficients d'ondelettes avec leurs coordonnées barycentriques. En d'autres termes, l'invention permet de gérer directement la hiérarchie des coefficients d'ondelettes dans un cache utilisé pour la reconstruction.The invention consists, during the decoding of the bit stream, in performing tests on the progeny of the wavelet coefficients, in order to locate the entire hierarchy as a function of the quadruplets (F, A, B, C) of the descendants. It thus makes it possible to perform the maintenance of the cache 10, and the association of the wavelet coefficients with their barycentric coordinates. In other words, the invention makes it possible to directly manage the hierarchy of wavelet coefficients in a cache used for the reconstruction.
On présente désormais plus en détail, en relation avec la figure 5, les différentes étapes de l'algorithme de décodage de l'invention. On reçoit, en entrée de cet algorithme, des portions d'un train binaire, qui contient au moins les coefficients d'ondelettes encodés par "zero-tree", associés à une scène multimédia ou à un objet 3D (par exemple un relief de terrain, ou un avatar 3D évoluant dans un environnement virtuel). On réitère les étapes de la figure 5 pour chacun des sous-arbres ou "zero-tree" que l'on souhaite décoder. On s'intéresse par exemple tout d'abord à un premier sous-arbre, dont la racine est un nœud parent du maillage de base, d'indice m.The different steps of the decoding algorithm of the invention are now presented in greater detail in connection with FIG. At the input of this algorithm, we receive portions of a bit stream, which contains at least the zero-tree encoded wavelet coefficients associated with a multimedia scene or a 3D object (for example a relief of field, or a 3D avatar evolving in a virtual environment). The steps of FIG. 5 are repeated for each of the subtrees or "zero-trees" that one wishes to decode. For example, we first look at a first subtree, whose root is a parent node of the basic mesh, index m.
Lors d'une première étape d'initialisation référencée 50, on initialise les nouvelles coordonnées F(n), A(n), B(n) et C(n) à 0, où n est l'indice du descendant du nœud m dont on cherche à déterminer les coordonnées. Lors d'une deuxième étape d'orientation référencée 51, on détermine l'orientation du coefficient d'ondelette indexé par le nœud d'indice m selon la formule :In a first initialization step referenced 50, the new coordinates F (n), A (n), B (n) and C (n) are initialized to 0, where n is the index of the descendant of the node m. whose coordinates are to be determined. In a second referenced orientation step 51, the orientation of the wavelet coefficient indexed by the node of index m is determined according to the formula:
Orientation = (!(A(m)%2))+2*(!(B(m)%2))+3*(!(C(m)%2)) où % est l'opérateur du reste de la division euclidienne et ! l'opérateur de négation booléenne.
On rappelle que la notion d'orientation, telle qu'elle est utilisée et définie dans l'ensemble de ce document, est fonction de l'orientation de l'arête du maillage dont le milieu est le sommet indexant le coefficient d'ondelettes considéré. En se référant à la figure 6, qui illustre un maillage de base, l'orientation d'une arête est décrite par l'ordre des sommets KJI du maillage de base. Comme illustré sur cette figure, le maillage comprend trois types d'arêtes distinctes: les arêtes référencées 60, qui sont parallèles à (KJ), et dont l'orientation vaut 1 ; les arêtes référencées 61, qui sont parallèles à (JI), et dont l'orientation vaut 2 ; les arêtes référencées 62, qui sont parallèles à (KI), et dont l'orientation vaut 3.Orientation = (! (A (m)% 2)) + 2 * (! (B (m)% 2)) + 3 * (! (C (m)% 2)) where% is the operator of the remainder of Euclidean division and! the Boolean negation operator. It is recalled that the notion of orientation, as used and defined throughout this document, is a function of the orientation of the edge of the mesh whose middle is the vertex indexing the coefficient of wavelets considered . Referring to Figure 6, which illustrates a basic mesh, the orientation of an edge is described by the order of the KJI vertices of the base mesh. As illustrated in this figure, the mesh comprises three types of distinct edges: the edges referenced 60, which are parallel to (KJ), and whose orientation is 1; the referenced edges 61, which are parallel to (JI), and whose orientation is 2; the edges referenced 62, which are parallel to (KI), and whose orientation is 3.
Après détermination de l'orientation du coefficient d'ondelette C d'indice m, on calcule 52 les coordonnées des fils C0, C1, C2 et C3 de ce coefficient dans la structure hiérarchique de la figure 3.After determining the orientation of the wavelet coefficient C of index m, the coordinates of the wires C 0 , C 1 , C 2 and C 3 of this coefficient are calculated in the hierarchical structure of FIG.
Les coordonnées du premier fils C0 sont calculées selon les formules :The coordinates of the first son C 0 are calculated according to the formulas:
F(n)=F(m)F (n) = F (m)
A(n)=2*A(m)A (n) = 2 * A (m)
B(n)=2*B(m)+1 C(n)=2*C(m)-1 , si l'orientation du coefficient C vaut 1 ,B (n) = 2 * B (m) +1 C (n) = 2 * C (m) -1, if the orientation of the coefficient C is 1,
F(n)=F(m)F (n) = F (m)
A(n)=2*A(m)-1A (n) = 2 * A (m) -1
B(n)=2*B(m)B (n) = 2 * B (m)
C(n)=2*C(m)+1, si l'orientation du coefficient C vaut 2, - F(n)=F(m)C (n) = 2 * C (m) +1, if the orientation of the coefficient C is 2, - F (n) = F (m)
A(n)=2*A(m)+1A (n) = 2 * A (m) 1
B(n)=2*B(m)-1B (n) = 2 * B (m) -1
C(n)=2*C(m), si l'orientation du coefficient C vaut 3.C (n) = 2 * C (m), if the orientation of the coefficient C is 3.
Les coordonnées du deuxième fils C1 sont calculées selon les formules : - F(n)=F(m)
A(n)=2*A(m)The coordinates of the second son C 1 are calculated according to the formulas: F (n) = F (m) A (n) = 2 * A (m)
B(n)=2*B(m)-1B (n) = 2 * B (m) -1
C(n)=2*C(m)+1, si l'orientation du coefficient C vaut 1,C (n) = 2 * C (m) +1, if the orientation of the coefficient C is 1,
F(n)=F(m) A(n)=2*A(m)+1F (n) = F (m) A (n) = 2 * A (m) +1
B(n)=2*B(m)B (n) = 2 * B (m)
C(n)=2*C(m)-1 , si l'orientation du coefficient C vaut 2,C (n) = 2 * C (m) -1, if the orientation of the coefficient C is 2,
F(n)=F(m)F (n) = F (m)
A(n)=2*A(m)-1 B(n)=2*B(m)+1A (n) = 2 * A (m) -1 B (n) = 2 * B (m) +1
C(n)=2*C(m), si l'orientation du coefficient C vaut 3.C (n) = 2 * C (m), if the orientation of the coefficient C is 3.
Les coordonnées du troisième fils C2 sont calculées selon les formules :The coordinates of the third son C 2 are calculated according to the formulas:
F(n)=F(m)F (n) = F (m)
A(n)=2*A(m)+2 B(n)=2*B(m)-1A (n) = 2 * A (m) + 2 B (n) = 2 * B (m) -1
C(n)=2*C(m)-1 , si l'orientation du coefficient C vaut 1 ,C (n) = 2 * C (m) -1, if the orientation of the coefficient C is 1,
F(n)=F(m)F (n) = F (m)
A(n)=2*A(m)-1A (n) = 2 * A (m) -1
B(n)=2*B(m)+2 C(n)=2*C(m)-1 , si l'orientation du coefficient C vaut 2,B (n) = 2 * B (m) + 2 C (n) = 2 * C (m) -1, if the orientation of the coefficient C is 2,
F(n)=F(m)F (n) = F (m)
A(n)=2*A(m)-1A (n) = 2 * A (m) -1
B(n)=2*B(m)-1B (n) = 2 * B (m) -1
C(n)=2*C(m)+2, si l'orientation du coefficient C vaut 3. Les coordonnées du quatrième fils C3, s'il existe, sont calculées selon les formules :C (n) = 2 * C (m) +2, if the orientation of the coefficient C is 3. The coordinates of the fourth son C 3 , if it exists, are calculated according to the formulas:
F(n)=F(m)F (n) = F (m)
A(n)=2*A(m)-2A (n) = 2 * A (m) -2
B(n)=2*B(m)+1 C(n)=2*C(m)+1, si l'orientation du coefficient C vaut 1,
F(n)=F(m) A(n)=2*A(m)+1 B(n)=2*B(m)-2B (n) = 2 * B (m) +1 C (n) = 2 * C (m) +1, if the orientation of the coefficient C is 1, F (n) = F (m) A (n) = 2 * A (m) +1 B (n) = 2 * B (m) -2
C(n)=2*C(m)+1 , si l'orientation du coefficient C vaut 2, - F(n)=F(m)C (n) = 2 * C (m) +1, if the orientation of the coefficient C is 2, - F (n) = F (m)
A(n)=2*A(m)+1 B(n)=2*B(m)+1A (n) = 2 * A (m) +1 B (n) = 2 * B (m) +1
C(n)=2*C(m)-2, si l'orientation du coefficient C vaut 3.C (n) = 2 * C (m) -2, if the orientation of the coefficient C is 3.
Il est en effet possible qu'un coefficient d'ondelettes ait moins de quatre descendants, par exemple s'il est situé sur un bord du maillage. On peut déterminer que l'on est sur un bord du maillage si l'arête-mère de niveau 0 n'est parcourue qu'une seule fois dans le maillage de base.It is indeed possible that a wavelet coefficient has less than four descendants, for example if it is located on one edge of the mesh. It can be determined that one is on an edge of the mesh if the parent edge of level 0 is traversed only once in the basic mesh.
On rappelle, en relation avec la figure 6, que le premier fils C0 du coefficient d'ondelettes C de niveau j est indexé par le sommet de niveau (j+1) qui a pour arête mère [aC], où C est le milieu de l'arête [ab]. Le deuxième fils C1 de C est indexé par le sommet de niveau (j+1) qui a pour arête mère [bC].Referring to FIG. 6, the first son C 0 of the wavelet coefficient C of level j is indexed by the level vertex (j + 1) which has the mother edge [aC], where C is the middle of the ridge [ab]. The second son C 1 of C is indexed by the level vertex (j + 1) which has the mother edge [bC].
En outre, C appartient à au moins 6 faces de niveau (J+I)5 dont deux ont pour seule intersection avec l'arête-mère [ab] le sommet C. Ces deux faces ont deux arêtes potentiellement mères qui ne contiennet pas C. Le troisième fils C2 est tel que abC2 est orienté dans le même sens que KJI. Le quatrième fils C3 est tel que abC3 est orienté dans l'autre sens.In addition, C belongs to at least 6 level faces (J + I) 5 , two of which have for their only intersection with the mother vertex [ab] the vertex C. These two faces have two potentially mother edges which do not contain C The third son C 2 is such that abC 2 is oriented in the same direction as KJI. The fourth son C 3 is such that abC 3 is oriented in the other direction.
Après détermination des coordonnées barycentriques (à un multiple près) des descendants du coefficient d'ondelettes d'indice m, on teste le signe de ces coordonnées. Si A(n)<0 ou B(n)<0 ou C(n)<0, on doit procéder à un changement de base affine 53, pour les exprimer sur une facette du maillage où ces coordonnées barycentriques seront non-négatives. On procède selon l'algorithme suivant :After determination of the barycentric coordinates (to a multiple) of the descendants of the wavelet coefficient of index m, the sign of these coordinates is tested. If A (n) <0 or B (n) <0 or C (n) <0, we must proceed to an affine base change 53, to express them on a facet of the mesh where these barycentric coordinates will be non-negative. We proceed according to the following algorithm:
Pour chaque face F' voisine de F(n) sur le maillage de base et tant que A(n)<0 ou B(n)<0 ou C(n)<0 Calculer F'(n), A'(n), B'(n) et C'(n) comme décrit dans la suite
Si A'(n)>0 et B'(n)>0 et C(n)>0 {For each face F 'close to F (n) on the base mesh and as long as A (n) <0 or B (n) <0 or C (n) <0 Calculate F' (n), A '(n) ), B '(n) and C' (n) as described in the following If A '(n)> 0 and B'(n)> 0 and C (n)> 0 {
F(n)=F(n)F (n) = F (n)
C(n)=C'(n) C (n) = C '(n)
} } Le calcul de F'(n), A'(n), B'(n) et C'(n) est réalisé quant à lui de la manière suivante : Soient FOa[O], FOa[I] et F0a[2] les sommets de F(n) et soient FOb[O], FOb[I] et F0b[2] les sommets de F. F'(n)=F Si A(n)+B(n)+C(n)==1 { ind1 =2*(A(n)==1 )+3*(B(n)==1 )+4*(C(n)==1 )-2 ind2=(F0a[ind1]==F0b[0])+2*(F0a[ind1]==F0b[1])+3*(F0a[ind1]==F0b[2]) si ind2==1}} The computation of F '(n), A' (n), B '(n) and C' (n) is realized in the following way: Let FOa [O], FOa [I] and F0a [2] the vertices of F (n) and let FOb [O], FOb [I] and F0b [2] be the vertices of F. F '(n) = F If A (n) + B (n) + C (n) == 1 {ind1 = 2 * (A (n) == 1) + 3 * (B (n) == 1) + 4 * (C (n) == 1) -2 ind2 = (F0a [ind1] == F0b [0]) + 2 * (F0a [ind1] == F0b [1]) + 3 * (F0a [ind1] == F0b [2]) if ind2 == 1
AXn)=I BXn)=O CXn)=O si ind2==2AXn) = I BXn) = O CXn) = O if ind2 == 2
AXn)=O BXn)=I CXn)=O si ind2==3 AXn)=OAXn) = O BXn) = I CXn) = O if ind2 == 3 AXn) = O
BXn)=O CXn)=I } sinon { si (F0a[0]==F0b[0] et F0a[1 ]==F0b[2]) { Aχn)=A(n)
BW≈Cfn) CI(n)=B(n)BXn) = O CXn) = I} else {if (F0a [0] == F0b [0] and F0a [1] == F0b [2]) {Aχn) = A (n) BW≈Cfn) C I (n) = B (n)
} si F0a[0]==F0b[1] et F0a[1 ]==F0b[0] { 5 A'(n)=B(n);} if F0a [0] == F0b [1] and F0a [1] == F0b [0] {5 A '(n) = B (n);
BI(n)=A(n); C'(n)=C(n);B I (n) = A (n); C '(n) = C (n);
} si F0a[0]==F0b[2] et F0a[1 ]==F0b[1] { 10 A'(n)=C(n);} if F0a [0] == F0b [2] and F0a [1] == F0b [1] {10 A '(n) = C (n);
BI(n)=B(n); CI(n)=A(n);B I (n) = B (n); C I (n) = A (n);
} si F0a[1 ]==F0b[0] et F0a[2]==F0b[2] { 15 A'(n)=B(n);} if F0a [1] == F0b [0] and F0a [2] == F0b [2] {15 A '(n) = B (n);
BI(n)=A(n); C'(n)=C(n);B I (n) = A (n); C '(n) = C (n);
} si F0a[1 ]==F0b[2] et F0a[2]==F0b[1] { 20 A'(n)=A(n);} if F0a [1] == F0b [2] and F0a [2] == F0b [1] {20 A '(n) = A (n);
BW≈Cfn); CI(n)=B(n);BW≈Cfn); C I (n) = B (n);
} si F0a[1 ]==F0b[1] et F0a[2]==F0b[0] { 25 A'(n)=C(n);} if F0a [1] == F0b [1] and F0a [2] == F0b [0] {25 A '(n) = C (n);
BI(n)=B(n); CI(n)=A(n);B I (n) = B (n); C I (n) = A (n);
} si F0a[0]==F0b[0] et F0a[2]==F0b[1] { 30 A'(n)=A(n);
BW≈Cfn); CI(n)=B(n);} if F0a [0] == F0b [0] and F0a [2] == F0b [1] {30 A '(n) = A (n); BW≈Cfn); C I (n) = B (n);
} si F0a[0]==F0b[2] et F0a[2]==F0b[0] { A(n)=C(n);} if F0a [0] == F0b [2] and F0a [2] == F0b [0] {A (n) = C (n);
BI(n)=B(n); CI(n)=A(n);B I (n) = B (n); C I (n) = A (n);
} si F0a[0]==F0b[1] et F0a[2]==F0b[2] { A'(n)=B(n);} if F0a [0] == F0b [1] and F0a [2] == F0b [2] {A '(n) = B (n);
BI(n)=A(n);B I (n) = A (n);
C'(n)=C(n); }C '(n) = C (n); }
} Ainsi, l'objectif de cette étape 53 de changement de base affine est de trouver une face F du maillage dans laquelle toutes les coordonnées barycentriques A, B et C associées sont positives ou nulles. Chaque base affine étant associée à une face du maillage, un changement de base affine revient donc à effectuer un changement de face. Par ce changement, on cherche à exprimer les coordonnées d'un point du maillage en fonction des sommets d'une autre face à laquelle il appartient, de façon à ce que toutes ces coordonnées soient positives ou nulles.Thus, the objective of this affine base change step 53 is to find a face F of the mesh in which all the associated barycentric coordinates A, B and C are positive or zero. Each affine base being associated with one face of the mesh, an affine base change therefore amounts to effecting a face change. By this change, we try to express the coordinates of a point of the mesh according to the vertices of another face to which it belongs, so that all these coordinates are positive or zero.
Enfin, au cours d'une étape référencée 54 de réduction des coordonnées, on procède à l'opération suivante tant que A(n), B(n) et C(n) sont tous pairs : A(n) :=A(n)/2Finally, during a referenced step 54 for reducing the coordinates, the following operation is carried out as long as A (n), B (n) and C (n) are all even: A (n): = A ( n) / 2
B(n) :=B(n)/2B (n): = B (n) / 2
C(n) :=C(n)/2C (n): = C (n) / 2
En d'autres termes, si l'on désigne par α, β et γ les véritables coordonnées barycentriques d'un sommet du maillage, on a, par définition : α + β + γ = 1. Selon l'invention, on travaille lors du décodage avec des composantes, que l'on
pourrait qualifier de coordonnées barycentriques étendues A(n), B(n) et C(n), qui sont telles que : A(n) + B(n) + C(n) = 2\ où j est un entier positif. Ainsi, on a :In other words, if we denote by α, β and γ the true barycentric coordinates of a vertex of the mesh, we have, by definition: α + β + γ = 1. According to the invention, we work during decoding with components, which one could be termed extended barycentric coordinates A (n), B (n) and C (n), which are such that: A (n) + B (n) + C (n) = 2 \ where j is a positive integer. Thus, we have:
A(n)= 2fαA (n) = 2 f α
B(n)= 2'β C(n)= 2'γ, ce qui permet de manipuler les coordonnées sous forme de valeurs entières sans perdre en précision.B (n) = 2'β C (n) = 2'γ, which makes it possible to manipulate the coordinates in the form of integer values without losing in precision.
Lors de l'étape de réduction 54 des coordonnées, on vérifie que A(n), B(n) et C(n) sont bien les plus petits multiples entiers des coordonnées barycentriques α, β et γ, ce qui permet, d'une part, d'avoir unicité de la solution en sortie 55 de l'algorithme de la figure 5, et d'autre part, de réduire autant que faire se peut, la place mémoire occupée par ces coordonnées (par exemple dans le cache 10).During the reduction step 54 of the coordinates, it is verified that A (n), B (n) and C (n) are indeed the smallest integer multiples of the barycentric coordinates α, β and γ, which makes it possible to on the one hand, to have uniqueness of the output solution 55 of the algorithm of FIG. 5, and on the other hand, to reduce as much as possible the memory space occupied by these coordinates (for example in the cache 10 ).
L'algorithme de la figure 5 peut être réitéré pour chacun des sous-arbres du train binaire que l'on souhaite décoder. Il permet de suivre les coordonnées des coefficients d'ondelettes et de leurs descendants au cours du déroulement de l'algorithme de type SPIHT de la figure 4, de façon à minimiser l'espace mémoire utilisé et la gestion des processus utilisant un cache mémoire unique.The algorithm of FIG. 5 can be reiterated for each of the subtrees of the bitstream that it is desired to decode. It makes it possible to follow the coordinates of the wavelet coefficients and their descendants during the course of the SPIHT type algorithm of FIG. 4, so as to minimize the memory space used and the management of the processes using a single memory cache .
L'invention s'applique tout particulièrement au décodage de trains binaires représentatifs de reliefs de terrains, dans le cadre de la transmission et de la reconstruction de grands environnements virtuels. On rappelle que, dans ce contexte, on procède à divers relevés topographiques, qui permettent de construire le maillage de base, et des photographies aériennes sont utilisées pour déterminer la texture à associer à ce maillage de base, en vue de la détermination des coefficients d'ondelettes.
The invention is particularly applicable to the decoding of binary trains representative of terrain reliefs, as part of the transmission and reconstruction of large virtual environments. It is recalled that, in this context, various topographic surveys are carried out, which make it possible to construct the basic mesh, and aerial photographs are used to determine the texture to be associated with this basic mesh, with a view to determining the coefficients of gravity. wavelet.
Claims
1. Procédé de décodage d'un train de données représentatives d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit train de données comprenant au moins certains desdits coefficients d'ondelettes, caractérisé en ce que, pour au moins certains coefficients d'ondelettes dudit train de données, ledit procédé met en œuvre les étapes suivantes : détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes ; - détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, de façon à extraire dudit train de données au moins certains desdits coefficients d'ondelettes, associés chacun à une information de localisation.A method of decoding a data stream representative of an object of at least three dimensions, said object being associated with a base mesh consisting of a set of facets defined by a set of vertices and edges, and coefficients in a wavelet basis corresponding to local modifications of said basic mesh, said wavelet coefficients, each wavelet coefficient being indexed by a vertex of said basic mesh, said data stream comprising at least some of said coefficients wavelet pattern, characterized in that, for at least some wavelet coefficients of said data stream, said method implements the following steps: determining an orientation of an edge carrying said vertex indexing said wavelet coefficient, called the orientation of said wavelet coefficient; determination, according to said orientation, of location information in said basic mesh of at least one descendant of said wavelet coefficient, distinct location rules being associated with each orientation, so as to extract from said train of data at least some of said wavelet coefficients, each associated with location information.
2. Procédé de décodage selon la revendication 1, caractérisé en ce que, pour ledit au moins un descendant, si ladite information de localisation exprimée dans une base affine ne satisfait pas au moins un critère prédéterminé, ledit procédé met en œuvre une étape de modification de ladite base affine, de façon à ce que ladite information de localisation exprimée dans ladite base affine modifiée satisfasse ledit au moins un critère.2. Decoding method according to claim 1, characterized in that, for said at least one descendant, if said location information expressed in an affine base does not satisfy at least one predetermined criterion, said method implements a modification step of said affine base, so that said location information expressed in said modified affine base satisfies said at least one criterion.
3. Procédé de décodage selon l'une quelconque des revendications 1 et 2, caractérisé en ce qu'il comprend également, pour ledit au moins un descendant, une étape ultérieure de réduction de ladite information de localisation. 3. decoding method according to any one of claims 1 and 2, characterized in that it also comprises, for said at least one descendant, a subsequent step of reducing said location information.
4. Procédé de décodage selon l'une quelconque des revendications 1 à 3, caractérisé en ce que lesdits coefficients d'ondelettes sont codés selon une technique de type zero-tree, dans ledit train binaire.4. Decoding method according to any one of claims 1 to 3, characterized in that said wavelet coefficients are encoded according to a zero-tree technique, in said bit stream.
5. Procédé de décodage selon l'une quelconque des revendications 1 à 4, caractérisé en ce que, pour un coefficient d'ondelettes d'indice n, ladite information de localisation comprend quatre paramètres F(n), A(n), B(n), C(n), où F(n) est une facette dudit maillage de base sur laquelle se trouve ledit sommet indexant ledit coefficient d'ondelettes, et où A(n), B(n) et C(n) sont des multiples entiers de coordonnées barycentriques dudit sommet sur ladite facette F(n).5. Decoding method according to any one of claims 1 to 4, characterized in that, for a wavelet coefficient of index n, said location information comprises four parameters F (n), A (n), B (n), C (n), where F (n) is a facet of said base mesh on which is said vertex indexing said wavelet coefficient, and where A (n), B (n) and C (n) are integer multiples of barycentric coordinates of said vertex on said facet F (n).
6. Procédé de décodage selon la revendication 5, caractérisé en ce qu'il comprend une étape préliminaire d'initialisation de ladite information de localisation, au cours de laquelle on affecte auxdits paramètres F(n), A(n), B(n), C(n) la valeur zéro.6. Decoding method according to claim 5, characterized in that it comprises a preliminary step of initialization of said location information, during which said parameters F (n), A (n), B (n) are assigned to ), C (n) the value zero.
7. Procédé de décodage selon l'une quelconque des revendications 5 et 6, caractérisé en ce que ladite orientation dudit coefficient d'ondelettes d'indice n est donnée par la formule :7. decoding method according to any one of claims 5 and 6, characterized in that said orientation of said wavelet coefficient index n is given by the formula:
Orientation = (!(A(n)%2))+2*(!(B(n)%2))+3*(!(C(n)%2)) où % est l'opérateur du reste de la division euclidienne et ! est l'opérateur de négation booléenne.Orientation = (! (A (n)% 2)) + 2 * (! (B (n)% 2)) + 3 * (! (C (n)% 2)) where% is the operator of the remainder of Euclidean division and! is the Boolean negation operator.
8. Procédé de décodage selon l'une quelconque des revendications 5 à 7, caractérisé en ce que ladite information de localisation desdits descendants dudit coefficient d'ondelettes est déterminée selon les formules suivantes : pour un premier descendant dudit coefficient d'ondelettes : si l'orientation dudit coefficient d'ondelettes vaut 1 :8. decoding method according to any one of claims 5 to 7, characterized in that said location information of said descendants of said wavelet coefficient is determined according to the following formulas: for a first descendant of said coefficient of wavelets: if orientation of said wavelet coefficient is 1:
F(n)=F(m) A(n)=2*A(m)F (n) = F (m) A (n) = 2 * A (m)
B(n)=2*B(m)+lB (n) = 2 * B (m) + l
C(n)=2*C(m)-l ; si l'orientation dudit coefficient d'ondelettes vaut 2 :C (n) = 2 * C (m) -1; if the orientation of said wavelet coefficient is 2:
F(n)=F(m) A(n)=2*A(m)-l B(n)=2*B(m)F (n) = F (m) A (n) = 2 * A (m) -1 B (n) = 2 * B (m)
C(n)=2*C(m)+l ; si l'orientation dudit coefficient d'ondelettes vaut 3 :C (n) = 2 * C (m) + 1; if the orientation of said wavelet coefficient is 3:
F(n)=F(m) A(n)=2*A(m)+lF (n) = F (m) A (n) = 2 * A (m) + 1
B(n)=2*B(m)-lB (n) = 2 * B (m) -l
C(n)=2*C(m) ; pour un deuxième descendant dudit coefficient d'ondelettes : si l'orientation dudit coefficient d'ondelettes vaut 1 : F(n)=F(m)C (n) = 2 * C (m); for a second descendant of said wavelet coefficient: if the orientation of said wavelet coefficient is 1: F (n) = F (m)
A(n)=2*A(m)A (n) = 2 * A (m)
B(n)=2*B(m)-lB (n) = 2 * B (m) -l
C(n)=2*C(m)+l; si l'orientation dudit coefficient d'ondelettes vaut 2 : F(n)=F(m)C (n) = 2 * C (m) + l; if the orientation of said wavelet coefficient is 2: F (n) = F (m)
A(n)=2*A(m)+lA (n) = 2 * A (m) + l
B(n)=2*B(m)B (n) = 2 * B (m)
C(n)=2*C(m)-l ; si l'orientation dudit coefficient d'ondelettes vaut 3 : F(n)=F(m)C (n) = 2 * C (m) -1; if the orientation of said wavelet coefficient is 3: F (n) = F (m)
A(n)=2*A(m)-lA (n) = 2 * A (m) -l
B(n)=2*B(m)+lB (n) = 2 * B (m) + l
C(n)=2*C(m) ; pour un troisième descendant dudit coefficient d'ondelettes : - si l'orientation dudit coefficient d'ondelettes vaut 1 :C (n) = 2 * C (m); for a third descendant of said wavelet coefficient: if the orientation of said wavelet coefficient is 1:
F(n)=F(m)F (n) = F (m)
A(n)=2*A(m)+2A (n) = 2 * A (m) 2
B(n)=2*B(m)-lB (n) = 2 * B (m) -l
C(n)=2*C(m)-l; - si l'orientation dudit coefficient d'ondelettes vaut 2 : F(n)= F(m)C (n) = 2 * C (m) -l; if the orientation of said wavelet coefficient is 2: F (n) = F (m)
A(n)=2*A(m)-lA (n) = 2 * A (m) -l
B(n)=2*B(m)+2B (n) = 2 * B (m) 2
C(n)=2*C(m)-l - si l'orientation dudit coefficient d'ondelettes vaut 3 :C (n) = 2 * C (m) -1 - if the orientation of said wavelet coefficient is 3:
F(n)= F(m)F (n) = F (m)
A(n)=2*A(m)-lA (n) = 2 * A (m) -l
B(n)=2*B(m)-lB (n) = 2 * B (m) -l
C(n)=2*C(m)+2 - pour un quatrième descendant dudit coefficient d'ondelettes, s'il existe : si l'orientation dudit coefficient d'ondelettes vaut 1 :C (n) = 2 * C (m) +2 - for a fourth descendant of said wavelet coefficient, if it exists: if the orientation of said wavelet coefficient is 1:
F(n)= F(m)F (n) = F (m)
A(n)=2*A(m)-2A (n) = 2 * A (m) -2
B(n)=2*B(m)+l C(n)=2*C(m)+l ; si l'orientation dudit coefficient d'ondelettes vaut 2 :B (n) = 2 * B (m) + 1 C (n) = 2 * C (m) + 1; if the orientation of said wavelet coefficient is 2:
F(n)= F(m)F (n) = F (m)
A(n)=2*A(m)+lA (n) = 2 * A (m) + l
B(n)=2*B(m)-2 C(n)=2*C(m)+l; si l'orientation dudit coefficient d'ondelettes vaut 3 :B (n) = 2 * B (m) -2 C (n) = 2 * C (m) + 1; if the orientation of said wavelet coefficient is 3:
F(n)= F(m)F (n) = F (m)
A(n)=2*A(m)+lA (n) = 2 * A (m) + l
B(n)=2*B(m)+l C(n)=2*C(m)-2 ; où m désigne l'indice dudit coefficient d'ondelettes et n désigne l'indice dudit descendant.B (n) = 2 * B (m) + 1 C (n) = 2 * C (m) -2; where m denotes the index of said wavelet coefficient and n denotes the index of said descendant.
9. Procédé de décodage selon l'une quelconque des revendications 1 à 8, caractérisé en ce que ladite information de localisation ne satisfait pas ledit au moins un critère prédéterminé si ledit sommet indexant ledit coefficient d'ondelettes est situé sur un bord dudit maillage de base.9. decoding method according to any one of claims 1 to 8, characterized in that said location information does not satisfy said at least one predetermined criterion if said vertex indexing said coefficient wavelet is located on an edge of said basic mesh.
10. Procédé de décodage selon la revendication 9, caractérisé en ce que ladite information de localisation ne satisfait pas ledit au moins un critère prédéterminé si l'un au moins des paramètres A(n), B(n) et C(n) dudit coefficient d'ondelettes est négatif.10. Decoding method according to claim 9, characterized in that said location information does not satisfy said at least one predetermined criterion if at least one of the parameters A (n), B (n) and C (n) of said wavelet coefficient is negative.
11. Procédé de décodage selon l'une quelconque des revendications 3 et 5 à 10, caractérisé en ce que, lors de ladite étape de réduction de ladite information de localisation, on divise lesdits paramètres A(n), B(n) et C(n) par deux, tant que lesdits paramètres A(n), B(n) et C(n) sont tous pairs. 11. Decoding method according to any one of claims 3 and 5 to 10, characterized in that, during said step of reducing said location information, said parameters A (n), B (n) and C are divided (n) in pairs, as long as said parameters A (n), B (n) and C (n) are all even.
12. Procédé de décodage selon l'une quelconque des revendications 1 à 11, caractérisé en ce qu'il comprend également, pour chacun desdits coefficients d'ondelettes extraits dudit train de données, une étape ultérieure de stockage dans un cache dudit coefficient d'ondelettes et de ladite information de localisation réduite associée, de façon à ce que lesdits coefficients d'ondelettes stockés puissent être utilisés lors d'une étape de reconstruction dudit objet à au moins trois dimensions mettant en œuvre une transformée en ondelettes inverse.12. decoding method according to any one of claims 1 to 11, characterized in that it also comprises, for each of said wavelet coefficients extracted from said data stream, a subsequent step of storage in a cache of said coefficient of wavelet and associated reduced location information so that said stored wavelet coefficients can be used in a step of reconstructing said at least three dimensional object implementing an inverse wavelet transform.
13. Procédé de décodage selon l'une quelconque des revendications 1 à 12, caractérisé en ce qu'il est mis en œuvre dans le cadre d'un algorithme de tri des coefficients d'ondelettes dudit train de données de type SPIHT (« Set Partitioning In Hierarchical Trees », en français « partitionnement d'ensembles dans des arbres hiérarchiques »).13. decoding method according to any one of claims 1 to 12, characterized in that it is implemented in the context of an algorithm for sorting the wavelet coefficients of said data stream type SPIHT ("Set Partitioning In Hierarchical Trees ", in French" partitioning sets in hierarchical trees ").
14. Dispositif de décodage d'un train de données représentatives d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit train de données comprenant au moins certains desdits coefficients d'ondelettes, caractérisé en ce que, pour au moins certains coefficients d'ondelettes dudit train de données, ledit dispositif met en œuvre les moyens suivants : des moyens de détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes ; des moyens de détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, de façon à extraire dudit train de données au moins certains desdits coefficients d'ondelettes, associés chacun à une information de localisation. Apparatus for decoding a data stream representative of an object of at least three dimensions, said object being associated with a base mesh consisting of a set of facets defined by a set of vertices and edges, and coefficients in a wavelet basis corresponding to local modifications of said basic mesh, said wavelet coefficients, each wavelet coefficient being indexed by a vertex of said basic mesh, said data stream comprising at least some of said coefficients wavelet, characterized in that, for at least some wavelet coefficients of said data stream, said device implements the following means: means for determining an orientation of an edge carrying said vertex indexing said wavelet coefficient, called orienting said wavelet coefficient; means for determining, according to said orientation, location information in said basic mesh of at least one descendant of said wavelet coefficient, distinct location rules being associated with each orientation, so as to extract said data stream at least some of said wavelet coefficients, each associated with location information.
15. Terminal de restitution d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit terminal comprenant des moyens de réception d'un train de données représentatives dudit objet comprenant au moins certains desdits coefficients d'ondelettes, caractérisé en ce que, pour au moins certains coefficients d'ondelettes dudit train de données, ledit terminal met en œuvre les moyens suivants : des moyens de détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes ; des moyens de détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, et en ce que ledit terminal comprend des moyens de stockage dans un cache desdits coefficients d'ondelettes, associés chacun à une information de localisation, et des moyens de reconstruction dudit objet à au moins trois dimensions mettant en œuvre une transformée en ondelettes inverse. 15. Terminal for restoring an object to at least three dimensions, said object being associated with a basic mesh consisting of a set of facets defined by a set of vertices and edges, and coefficients in a base d wavelets corresponding to local modifications of said basic mesh, called wavelet coefficients, each wavelet coefficient being indexed by a vertex of said basic mesh, said terminal including means for receiving a data stream representative of said object comprising at least some of said wavelet coefficients, characterized in that, for at least some wavelet coefficients of said data stream, said terminal implements the following means: means for determining an orientation of an edge carrying said vertex indexing said wavelet coefficient, referred to as the orientation of said wavelet coefficient; means for determining, according to said orientation, location information in said basic mesh of at least one descendant of said wavelet coefficient, distinct location rules being associated with each orientation, and that said terminal includes storage means in a cache said wavelet coefficients, each associated with location information, and means for reconstructing said at least three-dimensional object implementing an inverse wavelet transform.
16. Produit programme d'ordinateur comprenant des instructions de code de programme enregistrées sur un support utilisable dans un ordinateur, et destinées au décodage d'un train de données représentatives d'un objet à au moins trois dimensions, ledit objet étant associé à un maillage de base constitué d'un ensemble de facettes définies par un ensemble de sommets et d'arêtes, et à des coefficients dans une base d'ondelettes correspondant à des modifications locales dudit maillage de base, dits coefficients d'ondelettes, chaque coefficient d'ondelettes étant indexé par un sommet dudit maillage de base, ledit train de données comprenant au moins certains desdits coefficients d'ondelettes, ledit produit programme d'ordinateur comprenant des moyens de programmation lisibles par ordinateur pour effectuer, pour au moins certains coefficients d'ondelettes dudit train de données : une étape de détermination d'une orientation d'une arête portant ledit sommet indexant ledit coefficient d'ondelettes, appelée orientation dudit coefficient d'ondelettes ; une étape détermination, en fonction de ladite orientation, d'une information de localisation dans ledit maillage de base d'au moins un descendant dudit coefficient d'ondelettes, des règles de localisation distinctes étant associées à chaque orientation, de façon à extraire dudit train de données au moins certains desdits coefficients d'ondelettes, associés chacun à une information de localisation. 16. A computer program product comprising program code instructions recorded on a medium usable in a computer, and for decoding a data stream representative of an object of at least three dimensions, said object being associated with a base mesh consisting of a set of facets defined by a set of vertices and edges, and coefficients in a wavelet basis corresponding to local modifications of said basic mesh, called wavelet coefficients, each coefficient of wavelet being indexed by a vertex of said basic mesh, said data stream comprising at least some of said wavelet coefficients, said computer program product including computer readable programming means for performing, for at least some of said coefficients of wavelets of said data stream: a step of determining an orientation of an edge carrying said vertex indexing said wavelet coefficient, referred to as the orientation of said wavelet coefficient; a step of determining, according to said orientation, location information in said base mesh of at least one descendant of said wavelet coefficient, distinct location rules being associated with each orientation, so as to extract from said train at least some of said wavelet coefficients, each associated with location information.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0410875A FR2876821A1 (en) | 2004-10-14 | 2004-10-14 | METHOD FOR LOCALLY DECODING A BINARY TRAIN OF WAVELET COEFFICIENTS |
PCT/EP2005/054951 WO2006040270A2 (en) | 2004-10-14 | 2005-09-30 | Method for locally decoding a bit stream of wavelet coefficients |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1800263A2 true EP1800263A2 (en) | 2007-06-27 |
Family
ID=34949931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP05792261A Withdrawn EP1800263A2 (en) | 2004-10-14 | 2005-09-30 | Method for locally decoding a bit stream of wavelet coefficients |
Country Status (4)
Country | Link |
---|---|
US (1) | US8086054B2 (en) |
EP (1) | EP1800263A2 (en) |
FR (1) | FR2876821A1 (en) |
WO (1) | WO2006040270A2 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100053153A1 (en) * | 2007-02-01 | 2010-03-04 | France Telecom | Method of coding data representative of a multidimensional texture, coding device, decoding method and device and corresponding signal and program |
US8635357B2 (en) * | 2009-09-08 | 2014-01-21 | Google Inc. | Dynamic selection of parameter sets for transcoding media data |
EP2749023A4 (en) * | 2011-08-25 | 2016-04-06 | Thomson Licensing | Hierarchical entropy encoding and decoding |
WO2014062934A1 (en) * | 2012-10-19 | 2014-04-24 | Visa International Service Association | Digital broadcast methods using secure meshes and wavelets |
CN105066905B (en) * | 2015-07-20 | 2018-01-12 | 中国科学院上海光学精密机械研究所 | Wavelet transform profilometry noise restraint method |
EP4002285A1 (en) * | 2017-10-13 | 2022-05-25 | Dassault Systèmes | Method for creating an animation summarizing a design process of a three-dimensional object |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2781908B1 (en) * | 1998-08-03 | 2000-09-29 | France Telecom | METHOD OF CODING A MESH WITH A REDUCED NUMBER OF FACETS, PROCESS FOR RECONSTRUCTION AND CORRESPONDING APPLICATIONS |
US6438266B1 (en) * | 1998-08-27 | 2002-08-20 | Lucent Technologies Inc. | Encoding images of 3-D objects with improved rendering time and transmission processes |
US6995761B1 (en) * | 2000-01-14 | 2006-02-07 | California Institute Of Technology | Compression of 3D surfaces using progressive geometry |
FR2817066B1 (en) * | 2000-11-21 | 2003-02-07 | France Telecom | WAVES CODING METHOD OF A THREE-DIMENSIONAL OBJECT OR SCENE MESH, CODING AND DECODING DEVICES, CORRESPONDING SIGNAL SYSTEM AND STRUCTURE |
FR2827409B1 (en) | 2001-07-10 | 2004-10-15 | France Telecom | WAVELLET-BASED IMAGE CODING PROCESS ALLOWING ADAPTIVE TRANSMISSION OF WAVELLET COEFFICIENTS, SYSTEM SIGNAL AND CORRESPONDING DEVICES |
KR100492517B1 (en) * | 2002-03-07 | 2005-06-03 | 장형수 | Manufacturing apparatus for bast fibers paper using bast fibers extracted from paper mulberry tree, manufacturing methode of the same and bast fibers paper thereby |
-
2004
- 2004-10-14 FR FR0410875A patent/FR2876821A1/en active Pending
-
2005
- 2005-09-30 US US11/665,136 patent/US8086054B2/en not_active Expired - Fee Related
- 2005-09-30 EP EP05792261A patent/EP1800263A2/en not_active Withdrawn
- 2005-09-30 WO PCT/EP2005/054951 patent/WO2006040270A2/en active Application Filing
Non-Patent Citations (1)
Title |
---|
See references of WO2006040270A2 * |
Also Published As
Publication number | Publication date |
---|---|
FR2876821A1 (en) | 2006-04-21 |
WO2006040270A2 (en) | 2006-04-20 |
US8086054B2 (en) | 2011-12-27 |
US20080193027A1 (en) | 2008-08-14 |
WO2006040270A3 (en) | 2006-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1101200B1 (en) | Selective mesh refinement | |
EP1457023B1 (en) | Method for transmitting objects between a server and a client terminal using cache management, corresponding transmission, server and terminal. | |
WO2006040270A2 (en) | Method for locally decoding a bit stream of wavelet coefficients | |
WO2013121140A1 (en) | Method for encoding a holographic pattern, and corresponding encoding device and computer program | |
EP1405268A1 (en) | Method of wavelet coding a mesh object | |
EP1340195B1 (en) | Wavelet-based mesh coding method | |
EP2135221A1 (en) | Method for encoding data representative of a multi-dimensional texture, encoding device and corresponding decoding method and device, signal and software | |
WO2006094919A1 (en) | Method of transmitting content display data between a server and at least one client terminal, and corresponding server, terminal and computer program | |
WO2006027470A2 (en) | Vector graphics, in particular geographic maps publishing | |
EP3994890A1 (en) | Method and device for coding a digital hologram sequence | |
EP1393573A1 (en) | Methods and devices for encoding and decoding images using nested meshes, programme, signal and corresponding uses | |
EP1116185B1 (en) | Method for compressing and encoding three-dimensional meshed network | |
EP1101199A1 (en) | Simplifying and coding a source meshing | |
EP1574068B1 (en) | Wavelet image-encoding method and corresponding decoding method | |
WO2004114669A2 (en) | Method of representing a sequence of pictures using 3d models, and corresponding devices and signal | |
EP1110409B1 (en) | Method for estimating motion between two images | |
Hakami | Wavelet based multimedia data compression techniques | |
EP1141899A1 (en) | Method for simplifying a source mesh, taking into account the local curvature and the local geometry, and corresponding uses | |
EP4078959A1 (en) | Method for encoding a digital image in order to compress same | |
FR2817697A1 (en) | Video data processing technique creates hierarchical segmented movement field |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20070406 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR |
|
DAX | Request for extension of the european patent (deleted) | ||
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: ORANGE |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20170401 |