EP2041726A2 - Procede de codage de parametres d'animation d'un avatar, procede de decodage, signal et dispositifs correspondants - Google Patents

Procede de codage de parametres d'animation d'un avatar, procede de decodage, signal et dispositifs correspondants

Info

Publication number
EP2041726A2
EP2041726A2 EP07803948A EP07803948A EP2041726A2 EP 2041726 A2 EP2041726 A2 EP 2041726A2 EP 07803948 A EP07803948 A EP 07803948A EP 07803948 A EP07803948 A EP 07803948A EP 2041726 A2 EP2041726 A2 EP 2041726A2
Authority
EP
European Patent Office
Prior art keywords
translation
character
parameter
animation
segment
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
Application number
EP07803948A
Other languages
German (de)
English (en)
Inventor
David Cailliere
Gildas Belay
Gaspard Breton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of EP2041726A2 publication Critical patent/EP2041726A2/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/20Three-dimensional [3D] animation
    • G06T13/40Three-dimensional [3D] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame

Definitions

  • the present invention generally relates to the field of virtual reality, and more specifically to the encoding of avatar animation parameters.
  • avatar animation parameters offer two great standards offer a structure to animate a character in three dimensions, or avatar.
  • This standard defines for avatars a hierarchical articular structure called skeleton, composed of segments. Each segment of the skeleton of an avatar is associated with a portion of the geometric envelope of the avatar. This association corresponds in fact to a segmentation of the avatar into removable elements, which allows to animate the avatar by applying transformations of the type translation, rotation or scaling on these different elements of the same skeleton, or articulated chain. The part of the geometric envelope of the avatar attached to a segment then follows the movement of this segment, either rigidly or elastically using a technique called "skinning". Today most of the computer graphics tools for creating avatars implement the typical skeleton defined by the HAnim standard.
  • the second standard is the MPEG4 BBA standard, based on the English "Motion Picture Expert Group 4 Bone Based Animation", which takes the foundations of the HAnim standard, in particular the segmentation of avatars into removable elements.
  • the MPEG4 BBA standard does not define a typical skeleton, it offers more flexibility because it allows to build, respecting the principle of the HAnim standard, any skeleton, for example an animal skeleton.
  • the MPEG4 BBA standard itself includes a derived standard, the MPEG4 BAP standard, according to the English "Motion Picture Expert Group 4 Body Animation Parameter", which defines frozen animation parameters associated with the standard skeleton of the HAnim standard. .
  • This derived standard is therefore again less flexible than the MPEG4 BBA standard, which is not limited to a single skeleton and allows different animation parameters to be defined for a given skeleton.
  • the standard HAnim has put in place constraints on the topology of the typical skeleton, and defined a pose of rest of the avatars before animation. This principle is also taken up by the MPEG4 BBA standard.
  • articulation levels are defined between the segments of the standard skeletons. These articulation levels have a very precise dimensioning and positioning in the space, which makes it possible to define for each skeleton a rest position. In this rest position, all the animation parameters as defined in HAnim, MPEG4 BAP or MPEG4 BBA have a reference value. Thus, for example, the translation value of a segment of the standard skeleton in its rest position is initialized to the null vector.
  • the animation of an avatar is then translated by a succession of transformations made from this position of rest of the skeleton type of the avatar.
  • the animation parameters of the different segments of the standard skeleton are expressed in local references to these segments.
  • the skeletal scaling parameters, as well as the skeleton related rotation parameters are expressed independently of the global three dimensional Cartesian coordinate system in which the avatar geometry is defined.
  • the skeletal translation parameters even expressed in the local landmarks to the skeleton segments, are not totally independent of the scene in which the avatar moves. Indeed the lengths of translation vectors are not expressed relative to the skeleton, but in a system of absolute units of measurement.
  • the use of the articulation levels of the HAnim standard allows, for all avatars built according to the rules of these levels, to be animated with the same animation stream compatible with this standard.
  • animation streams containing animation parameters are often encoded separately from the morphological data of the characters.
  • the morphological data of the avatars and the animation parameters are dissociated so that they can be encoded and streamed separately, which raises many difficulties in terms of implementation.
  • the animation parameters are not totally independent of the morphology of the character to be animated.
  • translation movements are generally weaker when performed by a small character, than when they are performed by a larger character.
  • the object of the present invention is to overcome the drawbacks of the prior art by providing methods and devices for coding and decoding, making it possible to express the animation data of an avatar independently of the dimensions of the scene in which it is located. find.
  • the invention proposes a method for coding animation parameters of a character with which morphological values are associated, said animation parameters comprising a translation parameter associated with at least a portion of said character, characterized in that that to encode an intrinsic translation of said part of said character by a translation vector, said translation parameter contains a value which is a function of said vector and one of said morphological values.
  • the intrinsic translations to the character to be animated are differentiated from those which are extrinsic to him, such as for example a translation due to a displacement. in an elevator.
  • the translation parameters encoding intrinsic translations are expressed, by this method, relative to the skeleton of the character, based on anthropomorphic measurements calculated on the skeleton.
  • This makes it possible to encode animation streams separately from the morphology data of the avatars while respecting, in the implementation of the animation, the morphology of the character to be animated.
  • the coding according to the invention makes it possible to keep, for the same flow of animation, when changing the character to be animated, realistic translations with respect to the dimensions of the new character, since one takes into account the intrinsic character. translations that are related to this new character.
  • the method according to the invention is not limited to encoding human characters, but can be used on any type of animated object for which translation parameters are associated with parts of this object. object.
  • the word "character” is indeed used in this application in the sense of any articulated object subject to animation.
  • a parameter among said animation parameters makes it possible to determine whether said translation parameter encodes an intrinsic translation to said character or an extrinsic translation to said character. This makes it possible to encode in the same animation flow, the movements relating to the three-dimensional scene in which the character evolves, or extrinsic movements, and movements relating to the character, or intrinsic movements.
  • said morphological values are lengths of segments of the skeleton of said character
  • said translation parameter is associated with a segment of the skeleton of said character
  • said translation parameter contains a value that is proportional to said vector and inversely proportional to the length of said segment.
  • the translation vector associated with a segment of the character is normalized by the length of this segment. This allows to fine-code the intrinsic translations to the character to animate, using a plurality of its morphological parameters.
  • the invention also relates to a method for decoding animation parameters of a character with which morphological values are associated, said animation parameters comprising a translation parameter associated with at least a part of said character, characterized in that for decoding an intrinsic translation of said part of said character, the value of said translation parameter is multiplied by a factor of one of said morphological values.
  • said morphological values are lengths of segments of the skeleton of said character, said translation parameter being associated with a segment of the skeleton of said character, and for decoding an intrinsic translation of a segment.
  • said method comprises the steps of: - Calculation of the length of said segment, - Obtaining an estimate of the value of said translation in a system of absolute units of measurement, by multiplying the value of said translation parameter by a factor proportional to the length of said previously calculated segment.
  • the invention also relates to a signal conveying animation parameters of a character to which are associated morphological values, said animation parameters comprising a translation parameter containing a translation information of said part of said character in the form of a value included in said translation parameter, characterized in that said value has been evaluated according to one of said morphological values when said translation is intrinsic to the character.
  • said signal conveys a parameter making it possible to determine whether said translation is an intrinsic translation to the character or an extrinsic translation to the character.
  • the invention also relates to a device for coding animation parameters of a character with which morphological values are associated, characterized in that it comprises means adapted to implement the coding method according to the invention.
  • the invention further relates to a device for decoding animation parameters of a character with which are associated morphological values, characterized in that it comprises means adapted to implement the decoding method according to the invention.
  • the decoding method, as well as the signal and the devices, have advantages similar to those of the coding method according to the invention.
  • the invention also relates to a computer program comprising instructions for implementing the previously presented methods, when these are executed on a computer.
  • FIG. 1 represents an avatar on which a standard skeleton of the HAnim standard is applied
  • FIG. 2 is a diagram illustrating the uses of the coding method and the decoding method according to the invention on a stream of successive transformations
  • FIG. 3 illustrates steps of the coding method according to the invention
  • FIG. 4 illustrates steps of the decoding method according to the invention.
  • the coding method and the decoding method according to the invention use the MPEG 4 BBA standard for encoding and decoding animation parameters determined from an avatar A represented in FIG. Figure 1. It should be noted that although these animation parameters are determined from the avatar A, they are then reused to animate other avatars having the same skeleton type as the avatar A, as described here. -after.
  • This embodiment has the advantage of using without modifications of parameters an existing standard, but other embodiments, for example incorporating additional parameters to an existing standard encoding animation parameters, are conceivable.
  • the use of the methods according to the invention is not limited to characters having the standard skeleton defined by the HAnim standard. Indeed, the methods according to the invention can be used on any type of avatar, with morphological criteria potentially different from the lengths of the typical skeleton segment, for example the height or the width of the avatar.
  • FIG. 1 In the rest position defined by this standard. It is composed of segments and levels of articulation, which allow the animation of the geometry of the avatar.
  • the movements of the left forearm of the avatar A are calculated from the transformations applied on the segment B k
  • the movements of the right leg of the avatar A are calculated from the transformations applied on the segment Bi.
  • N k and Ni respectively corresponding to the left elbow and the right knee of the avatar, are associated rotation parameters respectively corresponding to the left forearm and the right leg of the avatar.
  • the coding and decoding of the animation of the avatar A, or other avatars having the same standard skeleton, are performed by the coding and decoding methods according to the invention according to the steps E1 to E4 shown in FIG. 2.
  • Avatar A undergoes a succession of transformations TR 0 to TR n over time.
  • a first step E1 of the coding method according to the invention the successive transformations TR j of the avatar are coded in an animation stream composed of successive "SBBone" structures for each segment B 1 of the skeleton of the avatar A.
  • Each "SBBone” structure whose nomenclature is defined by the MPEG4 BBA standard and reproduced in Appendix 1, encodes the transformations of a segment identified by the "bonelD" number with respect to its rest position specified by the standard HAnim.
  • the values of the animation parameters of the "SBBone" structure of Annex 1 correspond to the initial values of the transformation parameters in relation to the idle position of the avatar. These animation parameters are expressed in the local coordinate system at segment B 1 , the origin of this local coordinate system being defined by the "center” parameter. This origin corresponds in fact to a level of articulation of the skeleton type.
  • the parameter "rotation” for example is (0 0 1 0) which indicates a rotation of zero angle with respect to the axis (0 0 1) in this local coordinate system.
  • the animation stream processed by the coding method according to the invention contains only transformations intrinsic to the avatar, extrinsic transformations. to the character being encoded separately in a file in BIFS format, according to the English "Blnary Format for Scenes", which encodes the global parameters of the MPEG4 scene to be animated.
  • an additional parameter is for example added to the "SBBone" structures of an animation stream, making it possible to determine whether the "translation" parameter of a "SBBone” structure encodes an intrinsic translation
  • a single animation stream is thus used to code extrinsic and intrinsic transformations to the avatar A, the "translation" parameter then being modified in the manner described in FIG. step E2 only for translations intrinsic to the avatar.
  • a second step E2 of the coding method according to the invention the values of the translation parameters of the animation stream obtained in the step E1 are modified in order to take into account the relative nature of the intrinsic translations of the avatar A.
  • each "SBBone" structure of the animation stream is processed according to the steps a1 to a3 of FIG.
  • Step ai is the reading of the "endpoint" parameter of the "SBBone" structure considered, encoding the animation parameters of a segment B 1 .
  • This parameter "endpoint” contains the coordinates of the end of the segment B 1 which is not the origin of the local coordinate system to the segment B 1 .
  • the next step a2 is the calculation of the length L 1 of the segment B 1 . This length is determined by calculating the norm of the vector contained in the "endpoint" parameter previously read.
  • the following step a3 is the modification of the translation value T 1 contained in the parameter "translation”, which expresses a translation in a system of absolute measurement units, to replace it with a translation value TN 1 relative to the avatar A, and more precisely to the segment B 1 .
  • the relative translation value TN 1 corresponds in fact to the normalization of the absolute translation value T 1 by the length of the segment B 1 , according to the following equation:
  • K is a normalization factor.
  • the normalization factor K simply makes it possible to express TN 1 on a scale of between 0 and 10 for example. It is the same for all segments B 1 and is fixed in advance by the users of the methods according to the invention. In this way no specific parameter is needed to encode the normalization factor K in the animation stream.
  • E1 and E2 are performed in a coding device, for example in a software module of an animation engine.
  • This coding device then binary code the animation parameters thus modified in a stream in BIFS format, in order to compress the animation data in a standard way.
  • the animation designer adapts the "endpoint" fields of the "SBBone" structures of avatar A to the skeleton of other avatars having the same type skeleton. Indeed, the translation parameters being coded in a relative manner, only the fields "endpoint" coding the length of the segments of the new avatars are to be modified.
  • the coding device then creates other BIFS streams corresponding to the animation parameters of these other avatars.
  • the animation streams thus obtained in the form of BIFS files at the end of the step E2 are transmitted on a communication network to an animation engine remote from the previous one, separately from the data.
  • the information signals corresponding to these animation streams thus convey animation parameters, for which the translation parameters take into account the morphological values of the characters to be animated.
  • these information signals only transmit intrinsic animation parameters to the avatars and the morphological values taken into account are the lengths of the segments of the typical skeleton of these avatars.
  • the information signals transmit both intrinsic animation parameters to the avatars, and extrinsic animation parameters to the avatars.
  • the information signals also each convey a parameter indicating the intrinsic or extrinsic nature of the transmitted translation parameters.
  • a third step E3 it is assumed that the remote animation engine receives morphological data from a new avatar different from the avatar A, but having the same type skeleton, as well as the associated BIFS animation stream. It should be noted that the steps E3 and E4 described below, however, can be transposed to the case where the animation engine receives morphological data from the avatar A and the animation stream corresponding to the avatar A. Indeed the BIFS animation stream received in both cases is the same, only the values of the fields "endpoint" are different, since they depend on the avatar to animate.
  • the BIFS animation stream received in step E3 is decompressed by the remote client.
  • the decoding method according to the invention is then used to perform an animation of the new avatar, from the data that have been decompressed from the previously transmitted BIFS file.
  • the decoding method according to the invention is implemented in a specific module of the remote animation engine. For this purpose, each "SBBone" structure corresponding to a segment B ', of the typical skeleton of the new avatar in the file, is processed according to the decoding steps b1 to b3 of FIG. 4:
  • Step b1 is the reading of the "endpoint" parameter of the "SBBone" structure considered, encoding the animation parameters of the segment B ',.
  • the next step b2 is the calculation of the length L ', the segment B' ,. This length is determined by calculating the norm of the vector contained in the "endpoint" parameter previously read.
  • the next step b3 is the modification of the relative translation value TN 1 contained in the "translation" parameter, to replace it with a corresponding translation value T 'expressed in a system of absolute measurement units.
  • step E3 The data thus decoded at the end of step E3 comply with the MPEG4 BBA standard for encoding the animation parameters of the new avatar.
  • Step E4 is the reading of the data decoded in step E3 by the remote animation engine, and the animation of the new avatar with the animation parameters contained in these data.
  • These animation parameters respect the morphology of the new avatar, while having been designed from a different initial Avatar A.
  • the translation parameters of the pelvis of the new avatar when it works are adapted to its dimensions.
  • SBBonej #% NDT SFSBBoneNode, SF3DNode, SF2DNode eventIN MF3DNode addChildren eventIN MF3DNode removeChildren exposedField SFInt32 bonelD 0 exposedField MFInt32 skinCoordlndex [] exposedField MFFIoat skinCoordWeight [] exposedField SFVec3f endpoint 001 exposedField SFInt32 falloff 1 exposedField MFFIoat sectionPosition [] exposedField MFFIoat sectionlnner [] exposedField MFFIoat sectionOuter [] exposedField SFInt32 rotationOrderO exposedField MFNode children [] exposedField SFVec3f center 000 exposedField SFRotation rotation 0010 exposedField SFVec3f translation 000 exposedField SFVec3f scale 111 exposedField SFRotation scaleOrientation 0010 exposedField

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)

Abstract

L'invention concerne un procédé de codage de paramètres d'animation d'un personnage (A) auquel sont associées des valeurs morphologiques, lesdits paramètres d'animation comprenant un paramètre de translation associé à au moins une partie dudit personnage (A), caractérisé en ce que pour coder une translation intrinsèque de ladite partie dudit personnage (A) par un vecteur de translation, ledit paramètre de translation contient une valeur qui est fonction dudit vecteur et d'une desdites valeurs morphologiques.

Description

Procédé de codage de paramètres d'animation d'un avatar, procédé de décodage, signal et dispositifs correspondants
La présente invention concerne de manière générale le domaine de la réalité virtuelle, et plus précisément le codage de paramètres d'animation d'avatars. Actuellement deux grands standards proposent une structure permettant d'animer un personnage en trois dimensions, ou avatar.
Le premier est la norme HAnim, d'après l'anglais Humanoid Animation, elle-même issue de la norme VRML, d'après l'anglais "Virtual Reality Modelling Language". Cette norme définit pour les avatars une structure articulaire hiérarchique appelée squelette, composée de segments. A chaque segment du squelette d'un avatar est associé une partie de l'enveloppe géométrique de l'avatar. Cette association correspond en fait à une segmentation de l'avatar en éléments amovibles, ce qui permet d'animer l'avatar en appliquant des transformations du type translation, rotation ou mise à l'échelle sur ces différents éléments d'un même squelette, ou chaîne articulée. La partie de l'enveloppe géométrique de l'avatar rattachée à un segment suit alors le mouvement de ce segment, de façon soit rigide, soit élastique grâce à une technique appelée "skinning". Aujourd'hui la plupart des outils d'infographie permettant de créer des avatars implémentent le squelette type défini par la norme HAnim.
Le second standard est la norme MPEG4 BBA, d'après l'anglais "Motion Picture Expert Group 4 Bone Based Animation", qui reprend les fondements de la norme HAnim, en particulier la segmentation des avatars en éléments amovibles. Mais la norme MPEG4 BBA ne définit pas de squelette type, elle offre plus de souplesse car elle permet de construire, en respectant le principe de la norme HAnim, n'importe quel squelette, par exemple un squelette d'animal.
La norme MPEG4 BBA comprend elle-même une norme dérivée, la norme MPEG4 BAP, d'après l'anglais "Motion Picture Expert Group 4 Body Animation Parameter", qui définit des paramètres d'animation figés associés au squelette type de la norme HAnim. Cette norme dérivée est donc à nouveau moins souple que la norme MPEG4 BBA, qui ne se limite pas à un seul squelette et permet de définir différents paramètres d'animation pour un squelette donné. Pour assurer la compatibilité d'une animation entre des avatars différents, la norme HAnim a mis en place des contraintes sur la topologie du squelette type, et a défini une pose de repos des avatars avant animation. Ce principe est également repris par la norme MPEG4 BBA.
Ainsi, pour que l'échange de données d'animation entre plusieurs squelettes types définis par la norme HAnim soit possible, des niveaux d'articulation sont définis entre les segments des squelettes types. Ces niveaux d'articulation ont un dimensionnement et un positionnement très précis dans l'espace, ce qui permet de définir pour chaque squelette une position de repos. Dans cette position de repos, tous les paramètres d'animation tels que définis dans les normes HAnim, MPEG4 BAP ou MPEG4 BBA, ont une valeur de référence. Ainsi par exemple la valeur de translation d'un segment du squelette type dans sa position de repos est initialisée au vecteur nul.
L'animation d'un avatar se traduit alors par une succession de transformations effectuées à partir de cette position de repos du squelette type de l'avatar. Les paramètres d'animation des différents segments du squelette type sont exprimés dans des repères locaux à ces segments. Ainsi les paramètres de mise à l'échelle du squelette, ainsi que les paramètres de rotation liés au squelette, sont exprimés indépendamment du repère cartésien global en trois dimensions dans lequel la géométrie de l'avatar est définie. Cependant, les paramètres de translation du squelette, même exprimés dans les repères locaux aux segments du squelette, ne sont pas totalement indépendants de la scène dans laquelle évolue l'avatar. En effet les longueurs des vecteurs de translation ne sont pas exprimées relativement au squelette, mais dans un système d'unités de mesure absolues. Elles sont en effet exprimées en mètres dans la norme HAnim, en millimètre dans la norme MPEG4 BAP, et dans la norme MPEG4 BBA aucune unité de mesure n'est préconisée pour les paramètres de translation. Cette disparité des définitions des unités des vecteurs de translation dans les différentes normes n'est pas pratique pour le concepteur d'animations de personnages en trois dimensions.
En outre, l'utilisation des niveaux d'articulation de la norme HAnim permet, pour tous les avatars construits en respectant les règles de ces niveaux, d'être animés avec le même flux d'animation compatible avec cette norme. Cependant, les flux d'animation contenant les paramètres d'animation sont souvent codés de manière séparée des données morphologiques des personnages. Ainsi dans la norme MPEG4 les données morphologiques des avatars et les paramètres d'animation sont dissociés, afin de pouvoir être codés et mis en flux séparément, ce qui soulève de nombreuses difficultés en terme d'implémentation. En effet, les paramètres d'animation ne sont pas totalement indépendants de la morphologie du personnage à animer. Notamment les mouvements de translations sont en général plus faibles lorsqu'ils sont effectués par un personnage de petite taille, que lorsqu'ils sont effectués par un personnage de plus grande taille.
La présente invention a pour but de résoudre les inconvénients de la technique antérieure en fournissant des procédés et des dispositifs de codage et de décodage, permettant d'exprimer les données d'animation d'un avatar indépendamment des dimensions de la scène dans laquelle il se trouve. A cette fin, l'invention propose un procédé de codage de paramètres d'animation d'un personnage auquel sont associées des valeurs morphologiques, lesdits paramètres d'animation comprenant un paramètre de translation associé à au moins une partie dudit personnage, caractérisé en ce que pour coder une translation intrinsèque de ladite partie dudit personnage par un vecteur de translation, ledit paramètre de translation contient une valeur qui est fonction dudit vecteur et d'une desdites valeurs morphologiques.
Dans le procédé de codage selon l'invention, on différencie les translations intrinsèques au personnage à animer, comme par exemple une translation du bassin du personnage lorsqu'il marche, de celles qui lui sont extrinsèques, comme par exemple une translation due à un déplacement dans un ascenseur. Les paramètres de translation codant des translations intrinsèques sont exprimés, par ce procédé, relativement au squelette du personnage, en se basant sur des mesures anthropomorphiques calculées sur le squelette. Cela permet de coder des flux d'animation séparément des données de morphologie des avatars tout en respectant, dans la mise en œuvre de l'animation, la morphologie du personnage à animer. En effet, le codage selon l'invention permet de garder, pour un même flux d'animation, lorsqu'on change le personnage à animer, des translations réalistes par rapport aux dimensions du nouveau personnage, puisque l'on tient compte du caractère intrinsèque des translations qui sont relatives à ce nouveau personnage.
Il est de plus à noter que le procédé selon l'invention n'est pas limité au codage de personnages humains, mais est utilisable sur n'importe quel type d'objet animé pour lequel des paramètres de translation sont associés à des parties de cet objet. Le mot "personnage" est en effet utilisé dans cette demande au sens de tout objet articulé soumis à une animation.
Selon une caractéristique préférée du procédé de codage selon l'invention, un paramètre parmi lesdits paramètres d'animation permet de déterminer si ledit paramètre de translation code une translation intrinsèque audit personnage ou une translation extrinsèque audit personnage. Ceci permet de coder dans le même flux d'animation, les mouvements relatifs à la scène en trois dimensions dans laquelle évolue le personnage, ou mouvements extrinsèques, et les mouvements relatifs au personnage, ou mouvements intrinsèques. Selon une caractéristique préférée du procédé de codage selon l'invention, lesdites valeurs morphologiques sont des longueurs de segments du squelette dudit personnage, ledit paramètre de translation est associé à un segment du squelette dudit personnage, et pour coder une translation intrinsèque dudit segment par un vecteur de translation, ledit paramètre de translation contient une valeur qui est proportionnelle audit vecteur et inversement proportionnelle à la longueur dudit segment.
Dans cette caractéristique du procédé de codage, le vecteur de translation associé à un segment du personnage est normalisé par la longueur de ce segment. Ceci permet de coder de manière fine les translations intrinsèques au personnage à animer, en utilisant une pluralité de ses paramètres morphologiques.
L'invention concerne aussi un procédé de décodage de paramètres d'animation d'un personnage auquel sont associées des valeurs morphologiques, lesdits paramètres d'animation comprenant un paramètre de translation associé à au moins une partie dudit personnage, caractérisé en ce que pour décoder une translation intrinsèque de ladite partie dudit personnage, la valeur dudit paramètre de translation est multipliée par un facteur d'une desdites valeurs morphologiques.
Selon une caractéristique préférée du procédé de décodage selon l'invention, lesdites valeurs morphologiques sont des longueurs de segments du squelette dudit personnage, ledit paramètre de translation étant associé à un segment du squelette dudit personnage, et pour décoder une translation intrinsèque d'un segment du squelette dudit personnage, ledit procédé comprend les étapes de: - Calcul de la longueur dudit segment, - Obtention d'une estimation de la valeur de ladite translation dans un système d'unités de mesure absolues, par multiplication de la valeur dudit paramètre de translation par un facteur proportionnel à la longueur dudit segment précédemment calculée. L'invention concerne encore un signal véhiculant des paramètres d'animation d'un personnage auquel sont associées des valeurs morphologiques, lesdits paramètres d'animation comprenant un paramètre de translation contenant une information de translation de ladite partie dudit personnage sous la forme d'une valeur incluse dans ledit paramètre de translation, caractérisé en ce que ladite valeur a été évaluée en fonction d'une desdites valeurs morphologiques lorsque ladite translation est intrinsèque au personnage.
Selon une caractéristique préférée du signal selon l'invention, ledit signal véhicule un paramètre permettant de déterminer si ladite translation est une translation intrinsèque au personnage ou une translation extrinsèque au personnage.
L'invention concerne également un dispositif de codage de paramètres d'animation d'un personnage auquel sont associées des valeurs morphologiques, caractérisé en ce qu'il comporte des moyens adaptés à mettre en œuvre le procédé de codage selon l'invention.
L'invention concerne de plus un dispositif de décodage de paramètres d'animation d'un personnage auquel sont associées des valeurs morphologiques, caractérisé en ce qu'il comporte des moyens adaptés à mettre en œuvre le procédé de décodage selon l'invention. Le procédé de décodage, ainsi que le signal et les dispositifs, présentent des avantages analogues à ceux du procédé de codage selon l'invention.
L'invention concerne encore un programme d'ordinateur comportant des instructions de mise en œuvre des procédés précédemment présentés, lorsque ceux-ci sont exécutés sur un ordinateur. D'autres caractéristiques et avantages apparaîtront à la lecture d'un mode de réalisation préféré décrit en référence aux figures dans lesquelles :
- la figure 1 représente un avatar sur lequel est appliqué un squelette type de la norme HAnim, - la figure 2 est un diagramme illustrant les utilisations du procédé de codage et du procédé de décodage suivant l'invention sur un flux de transformations successives,
- la figure 3 illustre des étapes du procédé de codage selon l'invention,
- la figure 4 illustre des étapes du procédé de décodage selon l'invention.
Selon un mode de réalisation de l'invention, le procédé de codage et le procédé de décodage selon l'invention utilisent la norme MPEG 4 BBA pour le codage et le décodage de paramètres d'animation déterminés à partir d'un avatar A représenté à la figure 1. Il est à noter que bien que ces paramètres d'animation soient déterminés à partir de l'avatar A, ils sont ensuite réutilisés pour animer d'autres avatars ayant le même squelette type que l'avatar A, comme décrit ci-après.
Ce mode de réalisation a l'avantage d'utiliser sans modifications de paramètres une norme existante, mais d'autres de modes de réalisation, par exemple intégrant des paramètres supplémentaires à une norme existante de codage de paramètres d'animation, sont envisageables. De plus l'utilisation des procédés selon l'invention n'est pas limitée à des personnages ayant le squelette type défini par la norme HAnim. En effet les procédés selon l'invention sont utilisables sur tout type d'avatar, avec des critères morphologiques potentiellement différents des longueurs de segment du squelette type, par exemple la hauteur ou la largeur de l'avatar.
On associe à l'avatar A à animer un squelette type défini par la norme HAnim. Ce squelette est représenté à la figure 1 dans la position de repos définie par cette norme. Il est composé de segments et de niveaux d'articulation, qui permettent l'animation de la géométrie de l'avatar. Ainsi les mouvements de l'avant-bras gauche de l'avatar A sont calculés à partir des transformations appliquées sur le segment Bk, et les mouvements de la jambe droite de l'avatar A sont calculés à partir des transformations appliquées sur le segment Bi. Aux niveaux d'articulation Nk et Ni correspondants respectivement au coude gauche et au genou droit de l'avatar, sont associés les paramètres de rotation correspondant respectivement à l'avant-bras gauche et à la jambe droite de l'avatar.
Le codage et le décodage de l'animation de l'avatar A, ou d'autres avatars ayant le même squelette type, sont effectués par les procédés de codage et de décodage selon l'invention suivant les étapes E1 à E4 représentées à la figure 2.
L'avatar A subit une succession de transformations TR0 à TRn au cours du temps.
Dans une première étape E1 du procédé de codage suivant l'invention, les transformations successives TRj de l'avatar sont codées dans un flux d'animation composé de structures "SBBone" successives pour chaque segment B1 du squelette de l'avatar A. Chaque structure "SBBone", dont la nomenclature est définie par la norme MPEG4 BBA et reproduite à l'Annexe 1 , code les transformations d'un segment identifié par le numéro "bonelD" par rapport à sa position de repos spécifiée par la norme HAnim.
Les valeurs des paramètres d'animation de la structure "SBBone" de l'Annexe 1 correspondent aux valeurs initiales des paramètres de transformation par rapport à la position de repos de l'avatar. Ces paramètres d'animation sont exprimés dans le repère local au segment B1, l'origine de ce repère local étant défini par le paramètre "center". Cette origine correspond en fait à un niveau d'articulation du squelette type. Le paramètre "rotation" par exemple vaut (0 0 1 0) se qui indique une rotation d'angle nul par rapport à l'axe (0 0 1 ) dans ce repère local.
Il est à noter que dans ce mode de réalisation selon l'invention, le flux d'animation traité par le procédé de codage selon l'invention ne contient que des transformations intrinsèques à l'avatar, les transformations extrinsèques au personnage étant codées séparément dans un fichier au format BIFS, d'après l'anglais "Blnary Format for Scènes", qui code les paramètres globaux de la scène MPEG4 à animer.
Dans une variante de réalisation de l'invention, un paramètre supplémentaire est par exemple ajouté aux structures "SBBone" d'un flux d'animation, permettant de déterminer si le paramètre "translation" d'une structure "SBBone" code une translation intrinsèque ou extrinsèque à l'avatar A. Dans cette variante, un seul flux d'animation est ainsi utilisé pour coder des transformations extrinsèques et intrinsèques à l'avatar A, le paramètre "translation" n'étant alors modifié de la manière décrite à l'étape E2 que pour les translations intrinsèques à l'avatar.
Ainsi qu'indiqué plus haut, dans le mode de réalisation principal de l'invention décrit ici, aucun paramètre supplémentaire n'est ajouté à la norme MPEG4 BBA. Dans cette première étape E1 donc, le codage des paramètres d'animation dans le flux d'animation est effectué en respectant la norme MPEG4 BBA dans la signification de chacun des paramètres d'animation.
Dans une seconde étape E2 du procédé de codage selon l'invention, les valeurs des paramètres de translation du flux d'animation obtenu à l'étape E1 sont modifiées afin de tenir compte de la nature relative des translations intrinsèques de l'avatar A. Pour cela, chaque structure "SBBone" du flux d'animation est traitée suivant les étapes ai à a3 de la figure 3:
- L'étape ai est la lecture du paramètre "endpoint" de la structure "SBBone" considérée, codant les paramètres d'animation d'un segment B1. Ce paramètre "endpoint" contient les coordonnées de l'extrémité du segment B1 qui n'est pas l'origine du repère local au segment B1.
- L'étape suivante a2 est le calcul de la longueur L1 du segment B1. Cette longueur est déterminée en calculant la norme du vecteur contenu dans le paramètre "endpoint" précédemment lu. - L'étape suivante a3 est la modification de la valeur de translation T1 contenue dans le paramètre "translation", qui exprime une translation dans un système d'unités de mesure absolues, pour la remplacer par une valeur de translation TN1 relative à l'avatar A, et plus précisément au segment B1. La valeur de translation relative TN1 correspond en fait à la normalisation de la valeur de translation absolue T1 par la longueur du segment B1, selon l'équation suivante:
où K est un facteur de normalisation. Le facteur de normalisation K permet simplement d'exprimer TN1 sur une échelle comprise entre 0 et 10 par exemple. Il est le même pour tous les segments B1 et est fixé à l'avance par les utilisateurs des procédés selon l'invention. De cette manière aucun paramètre spécifique n'est nécessaire pour coder le facteur de normalisation K dans le flux d'animation. Le codage des paramètres d'animation de l'avatar A selon les étapes
E1 et E2 est effectué dans un dispositif de codage, par exemple dans un module logiciel d'un moteur d'animation. Ce dispositif de codage code ensuite binairement les paramètres d'animation ainsi modifiés dans un flux au format BIFS, afin de compresser les données d'animation de façon standard. Afin de pouvoir réutiliser ces paramètres d'animation pour d'autres avatars de même squelette type que l'avatar A, le concepteur de l'animation adapte les champs "endpoint" des structures "SBBone" de l'avatar A au squelette d'autres avatars ayant le même squelette type. En effet, les paramètres de translation étant codés de manière relative, seuls les champs "endpoint" codant la longueur des segments des nouveaux avatars sont à modifier. Le dispositif de codage crée alors d'autres flux BIFS correspondant aux paramètres d'animation de ces autres avatars.
Les flux d'animations ainsi obtenus sous forme de fichiers BIFS à la fin de l'étape E2 sont transmis sur un réseau de communication, à un moteur d'animation distant du précédent, de manière séparée des données morphologiques de l'avatar A, et éventuellement d'autres avatars. Les signaux d'information correspondant à ces flux d'animation véhiculent donc des paramètres d'animation, pour lesquels les paramètres de translation tiennent compte des valeurs morphologiques des personnages à animer. Dans ce mode de réalisation de l'invention, ces signaux d'information ne transmettent que des paramètres d'animation intrinsèques aux avatars et les valeurs morphologiques prises en compte sont les longueurs des segments du squelette type de ces avatars.
En variante, les signaux d'information transmettent à la fois des paramètres d'animation intrinsèques aux avatars, et des paramètres d'animation extrinsèques aux avatars. Dans ce cas les signaux d'information véhiculent également chacun un paramètre indiquant la nature intrinsèque ou extrinsèque des paramètres de translation transmis.
Dans une troisième étape E3, on suppose que le moteur d'animation distant reçoit des données morphologiques d'un nouvel avatar différent de l'avatar A, mais présentant le même squelette type, ainsi que le flux d'animation BIFS associé. Il est à noter que les étapes E3 et E4 décrites ci- après sont toutefois transposables au cas où le moteur d'animation reçoit des données morphologiques de l'avatar A et le flux d'animation correspondant à l'avatar A. En effet le flux d'animation BIFS reçu dans les deux cas est le même, seul les valeurs des champs "endpoint" sont différentes, puisqu'elles dépendent de l'avatar à animer.
Le flux d'animation BIFS reçu à l'étape E3 est décompressé par le client distant. Le procédé de décodage selon l'invention est alors utilisé pour effectuer une animation du nouvel avatar, à partir des données qui ont été décompressées à partir du fichier BIFS transmis précédemment. Le procédé de décodage selon l'invention est implémenté dans un module spécifique du moteur d'animation distant. Pour cela chaque structure "SBBone" correspondant à un segment B', du squelette type du nouvel avatar dans le fichier, est traitée suivant les étapes de décodage b1 à b3 de la figure 4:
- L'étape b1 est la lecture du paramètre "endpoint" de la structure "SBBone" considérée, codant les paramètres d'animation du segment B',.
- L'étape suivante b2 est le calcul de la longueur L', du segment B',. Cette longueur est déterminée en calculant la norme du vecteur contenu dans le paramètre "endpoint" précédemment lu. - L'étape suivante b3 est la modification de la valeur de translation relative TN1 contenue dans le paramètre "translation", pour la remplacer par une valeur de translation T', correspondante exprimée dans un système d'unités de mesure absolues. La valeur de translation T', est calculée selon l'équation suivante: T1 =JZiUU
K où K est le facteur de normalisation utilisé à l'étape E2. Les données ainsi décodées à la fin de l'étape E3 respectent la norme MPEG4 BBA pour le codage des paramètres d'animation du nouvel avatar.
L'étape E4 est la lecture des données décodées à l'étape E3 par le moteur d'animation distant, et l'animation du nouvel avatar avec les paramètres d'animation contenus dans ces données. Ces paramètres d'animation respectent la morphologie du nouvel avatar, tout en ayant été conçus à partir d'un avatar initial A différent. Ainsi les paramètres de translation du bassin du nouvel avatar lorsqu'il marche sont adaptés à ses dimensions. ANNEXE 1
SBBonej #%NDT=SFSBBoneNode, SF3DNode, SF2DNode eventIN MF3DNode addChildren eventIN MF3DNode removeChildren exposedField SFInt32 bonelD 0 exposedField MFInt32 skinCoordlndex [] exposedField MFFIoat skinCoordWeight [] exposedField SFVec3f endpoint 001 exposedField SFInt32 falloff 1 exposedField MFFIoat sectionPosition [] exposedField MFFIoat sectionlnner [] exposedField MFFIoat sectionOuter [] exposedField SFInt32 rotationOrderO exposedField MFNode children [] exposedField SFVec3f center 000 exposedField SFRotation rotation 0010 exposedField SFVec3f translation 000 exposedField SFVec3f scale 111 exposedField SFRotation scaleOrientation 0010 exposedField SFInt32 ikChainPosition 0 exposedField MFFIoat ikYawLimit [] exposedField MFFIoat ikPitchLimit [] exposedField MFFIoat ikrollLimit [] exposedField MFFIoat ikTxLimit [] exposedField MFFIoat ikTyLimit [] exposedField MFFIoat ikTzLimit []

Claims

REVENDICATIONS
1. Procédé de codage de paramètres d'animation d'un personnage (A) auquel sont associées des valeurs morphologiques (L1), lesdits paramètres d'animation comprenant un paramètre de translation associé à au moins une partie dudit personnage (A), caractérisé en ce que pour coder une translation intrinsèque de ladite partie dudit personnage (A) par un vecteur de translation, ledit paramètre de translation contient une valeur (TN1) qui est fonction dudit vecteur et d'une desdites valeurs morphologiques (L1).
2. Procédé de codage selon la revendication 1 , caractérisé en ce qu'un paramètre parmi lesdits paramètres d'animation permet de déterminer si ledit paramètre de translation code une translation intrinsèque audit personnage (A) ou une translation extrinsèque audit personnage (A).
3. Procédé de codage selon la revendication 1 ou 2, dans lequel lesdites valeurs morphologiques (L1) sont des longueurs de segments (B1) du squelette dudit personnage (A), et dans lequel ledit paramètre de translation est associé à un segment (B1) du squelette dudit personnage (A), caractérisé en ce que pour coder une translation intrinsèque dudit segment (B1) par un vecteur de translation, ledit paramètre de translation contient une valeur (TN1) qui est proportionnelle audit vecteur et inversement proportionnelle à la longueur dudit segment.
4. Procédé de décodage de paramètres d'animation d'un personnage auquel sont associées des valeurs morphologiques (L',), lesdits paramètres d'animation comprenant un paramètre de translation associé à au moins une partie dudit personnage, caractérisé en ce que pour décoder une translation intrinsèque de ladite partie dudit personnage, la valeur dudit paramètre de translation est multipliée par un facteur d'une desdites valeurs morphologiques (L',).
5. Procédé de décodage selon la revendication 4, dans lequel lesdites valeurs morphologiques (L',) sont des longueurs de segments (B',) du squelette dudit personnage, ledit paramètre de translation étant associé à un segment (B',) du squelette dudit personnage, et dans lequel pour décoder une translation intrinsèque d'un segment (B',) du squelette dudit personnage, ledit procédé comprend les étapes de:
- Calcul (b2) de la longueur (L',) dudit segment (B',),
- Obtention (b3) d'une estimation de la valeur (T',) de ladite translation dans un système d'unités de mesure absolues, par multiplication de la valeur dudit paramètre de translation par un facteur proportionnel à la longueur (L',) dudit segment (B',) précédemment calculée.
6. Signal véhiculant des paramètres d'animation d'un personnage (A) auquel sont associées des valeurs morphologiques (L,), lesdits paramètres d'animation comprenant un paramètre de translation contenant une information de translation de ladite partie dudit personnage (A) sous la forme d'une valeur (TN,) incluse dans ledit paramètre de translation, caractérisé en ce que ladite valeur (TN,) a été évaluée en fonction d'une desdites valeurs morphologiques (L,) lorsque ladite translation est intrinsèque au personnage (A).
7. Signal selon la revendication 6, caractérisé en ce qu'il véhicule un paramètre permettant de déterminer si ladite translation est une translation intrinsèque au personnage ou une translation extrinsèque au personnage (A).
8. Dispositif de codage de paramètres d'animation d'un personnage (A) auquel sont associées des valeurs morphologiques (L1), caractérisé en ce qu'il comporte des moyens adaptés à mettre en œuvre un procédé selon l'une quelconque des revendications 1 à 3.
9. Dispositif de décodage de paramètres d'animation d'un personnage auquel sont associées des valeurs morphologiques (L',), caractérisé en ce qu'il comporte des moyens adaptés à mettre en œuvre un procédé selon la revendication 4 ou 5 .
10. Programme d'ordinateur comportant des instructions pour mettre en œuvre le procédé selon l'une quelconque des revendications 1 à 3, lorsqu'il est exécuté sur un ordinateur.
1 1. Programme d'ordinateur comportant des instructions pour mettre en œuvre le procédé selon la revendication 4 ou 5, lorsqu'il est exécuté sur un ordinateur.
EP07803948A 2006-06-27 2007-06-26 Procede de codage de parametres d'animation d'un avatar, procede de decodage, signal et dispositifs correspondants Withdrawn EP2041726A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0652668A FR2902914A1 (fr) 2006-06-27 2006-06-27 Procede de codage de parametres d'animation d'un avatar, procede de decodage, signal et dispositifs correspondants
PCT/FR2007/051532 WO2008001008A2 (fr) 2006-06-27 2007-06-26 Procede de codage de parametres d'animation d'un avatar, procede de decodage, signal et dispositifs correspondants

Publications (1)

Publication Number Publication Date
EP2041726A2 true EP2041726A2 (fr) 2009-04-01

Family

ID=37891939

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07803948A Withdrawn EP2041726A2 (fr) 2006-06-27 2007-06-26 Procede de codage de parametres d'animation d'un avatar, procede de decodage, signal et dispositifs correspondants

Country Status (4)

Country Link
US (1) US20090315898A1 (fr)
EP (1) EP2041726A2 (fr)
FR (1) FR2902914A1 (fr)
WO (1) WO2008001008A2 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101328054B1 (ko) * 2011-08-09 2013-11-08 엘지전자 주식회사 실감 진동을 발생시키는 영상표시장치 및 실감 진동 구현방법
JP6832712B2 (ja) * 2017-01-13 2021-02-24 任天堂株式会社 振動制御システム、振動制御装置、振動制御プログラムおよび振動制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2248909A1 (fr) * 1996-03-15 1997-09-25 Zapa Digital Arts Ltd. Objets graphiques informatiques programmables
US6545682B1 (en) * 2000-05-24 2003-04-08 There, Inc. Method and apparatus for creating and customizing avatars using genetic paradigm
US6697072B2 (en) * 2001-03-26 2004-02-24 Intel Corporation Method and system for controlling an avatar using computer vision
US20040130566A1 (en) * 2003-01-07 2004-07-08 Prashant Banerjee Method for producing computerized multi-media presentation
US7333111B2 (en) * 2003-04-25 2008-02-19 Honda Giken Kogyo Kabushiki Kaisha Joint component framework for modeling complex joint behavior

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2008001008A2 *

Also Published As

Publication number Publication date
US20090315898A1 (en) 2009-12-24
WO2008001008A2 (fr) 2008-01-03
FR2902914A1 (fr) 2007-12-28
WO2008001008A3 (fr) 2008-03-20

Similar Documents

Publication Publication Date Title
US11727603B2 (en) Adaptive distance based point cloud compression
Würmlin et al. 3D video fragments: Dynamic point samples for real-time free-viewpoint video
US11704853B2 (en) Techniques for feature-based neural rendering
JP4108935B2 (ja) 3次元生成シーンにおける回転および垂線の符号化方法およびシステム
CN111937041A (zh) 通过提供几何代理进行视频编码
Würmlin et al. 3D Video Recorder: a System for Recording and Playing Free‐Viewpoint Video
AU753876B2 (en) Method and system for predictive encoding of arrays of data
CN102860007A (zh) 对使用计算机图形呈现至少一个图像的数据进行编码的方法和设备及其对应的解码方法和设备
TW202220440A (zh) Gpcc平面模式及緩衝器簡化
US20250232483A1 (en) Method, apparatus, and medium for point cloud coding
CN118318451A (zh) 用于点云编解码的方法、装置和介质
CN119278627A (zh) 高效的映射坐标创建和传输
EP2041726A2 (fr) Procede de codage de parametres d'animation d'un avatar, procede de decodage, signal et dispositifs correspondants
CN119946304A (zh) 一种动态高斯泼溅的编解码方法、装置和系统
EP1004206B1 (fr) Signal d'animation d'une scene graphique, procede et dispositif correspondants
Kováč et al. Lossless encoding of 3D human head model textures
KR102925517B1 (ko) 모바일로 실시간 3차원 데이터를 처리하는 방법 및 이를 위한 장치
Capin et al. Efficient network transmission of virtual human bodies
Burgos et al. MPEG 3D graphics representation
Chang et al. Video Realistic avatar for virtual face-to-face conferencing
CN120091119A (zh) 全息视频播放方法、装置、计算机设备及存储介质
HK40079084A (en) Animation processing method, apparatus, device, storage medium and product
CN120835149A (zh) 编码方法、解码方法、装置及电子设备
TW202611869A (zh) 將動畫資料映射至用於擴展實境(xr)媒體通訊對話的化身格式
WO2021160955A1 (fr) Procédé et dispositif de traitement de données de vidéo multi-vues

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: 20081217

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 MT NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA HR MK RS

DAX Request for extension of the european patent (deleted)
GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

RIC1 Information provided on ipc code assigned before grant

Ipc: G06T 9/00 20060101AFI20110412BHEP

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: 20110922