Avatar parametric texture bitstream format

The method addresses the lack of flexibility in MPEG standards by providing a bitstream-based solution for streaming and animating avatar representations, enabling efficient and flexible animation of diverse avatar parameters.

WO2026153772A1PCT designated stage Publication Date: 2026-07-23INTERDIGITAL CE PATENT HOLDINGS SAS
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
INTERDIGITAL CE PATENT HOLDINGS SAS
Filing Date
2026-01-05
Publication Date
2026-07-23

AI Technical Summary

Technical Problem

Current MPEG standards lack a flexible mechanism for streaming and animating avatar representations, particularly for diverse avatar animation parameters, which are essential for video teleconferencing and other applications requiring efficient streaming of avatar animation parameters.

Method used

A method for signaling and decoding parametric texture information in an avatar animation texture unit, involving the generation and decoding of a bitstream that includes avatar animation data, with specific syntax structures for mapping and animating avatars, using a processor to implement these methods.

Benefits of technology

Enables efficient streaming and animation of avatar representations across networks, allowing for flexible mapping and animation of diverse avatar parameters, enhancing the flexibility and realism of avatar animations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2026050050_23072026_PF_FP_ABST
    Figure EP2026050050_23072026_PF_FP_ABST
Patent Text Reader

Abstract

The present principles generally relate to the storage and transmission of avatar texture animation data. Parametric texture weights are signaled in an avatar animation texture unit of a bitstream. Tha avatar animation texture unit comprises an index for identifying a texture parameter in a target avatar texture set and a weight associated with the texture parameter. A bitstream is generated that comprises animation data for animating the avatar at a receiver, including the avatar animation texture unit.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Docket No. 2025P00003WQ AVATAR PARAMETRIC TEXTURE BITSTREAM FORMAT

[0002] CROSS REFERENCE TO RELATED APPLICATIONS

[0003] This application claims the priority to European Application No.25305042.1, filed on 14 January 2025, which is incorporated herein by reference in its entirety.

[0004] 1. Technical Field

[0005] The present principles generally relate to the storage and transmission of the parameters of avatar parametric textures.

[0006] 2. Background

[0007] The present section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present principles that are described and / or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present principles. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.

[0008] The current effort in MPEG for the streaming of avatar animation is limited to animation of volumetric meshes. Volumetric meshes are animated by pre-computing correspondences to a template (shadow mesh) for every single frame of the volumetric sequence. A shadow mesh is a mesh that contains a lower fidelity than the volumetric mesh. The correspondences between the two are performed in such a way that each vertex of the volumetric mesh maps to a polygon of the shadow mesh. The objective of the shadow mesh is to provide additional semantical information to the volumetric mesh, e.g., skeletal structure and lower polygon mesh representation, permitting the transferring of animations of the shadow mesh onto the dependent volumetric mesh.

[0009] At the application side, the volumetric mesh follows the motion of the shadow mesh as a result of the mapping between the two meshes. This behavior is achieved by defining a correspondence schema. For example, in a glTF file, the correspondence schema is defined according to the following syntax defined in ISO / IEC 23090-14:2023, “Information Technology -Coded Representation of Immersive Media - Part 14: Scene Description”:Docket No. 2025P00003WQ

[0010]

[0011] Table 1: Definition of MPEG mesh linking extension

[0012] The “MPEG mesh linking” extension is dependent on circular buffers (“MPEG buffer circular”) and timed accessors (“MPEG accessor timed”) to produce timed animations that are dependent on the shadow mesh. The following parameters have to be transmitted to the decoder. The “correspondence” provides a reference to the accessor that describes the buffer where the correspondence between a dependent mesh and a shadow mesh is established. The “mesh”provides a reference to a mesh in the list of meshes that are referred to as “shadow mesh” and to which the correspondences are established. The “pose” provides a reference to the accessor that describes the buffer that contains the transformation matrices of all the nodes of the dependent mesh to be re-animated. The “weights” provides a reference to the accessor that describes the buffer where the morph targets weights of the shadow mesh associated with the dependent mesh is available.

[0013] A mechanism for structuring the parameters of avatar parameter textures generated by a capturing device in a bitstream format that can be used to store, load, and stream this information to a receiver to animate the texture of a corresponding digital representation loaded by the receiver is lacking.

[0014] A parametric texture is a function which, given a set of parameters, returns a texture. An example of a parametric texture is provided in WO2024256340. Parametric textures are based on a set of weights weighty For example:

[0015] texture = clamp(textureBase + ^iweighti X textureTargeti)

[0016] where textureBase is a texture, textureTargetiaretexture displacements and clamp() is a function which ensures that the values of the combination are within a valid range. Textures can be combined in other ways using a set of weights. Embodiments described herein apply to any parametric texture based on a set of weights.Docket No. 2025P00003WQ

[0017] 3. Summary

[0018] The following presents a simplified summary of the present principles to provide a basic understanding of some aspects of the present principles. This summary is not an extensive overview of the present principles. It is not intended to identify key or critical elements of the present principles. The following summary merely presents some aspects of the present principles in a simplified form as a prelude to the more detailed description provided below.

[0019] In an embodiment, a method for signaling parametric texture information in an avatar animation texture unit is provided wherein a number of parametric texture weights signaled in the avatar animation texture unit is signaled, and for each parametric texture weight signaled, an index is signaled for identifying a texture parameter in a texture set and a weight associated with the texture parameter. A bitstream is generated that comprises avatar animation data for animating the avatar at a receiver, including the avatar animation texture unit.

[0020] In another embodiment, a method for decoding parametric texture information from a bitstream is provided wherein the bitstream comprises avatar animation data for animating an avatar and at least one avatar animation texture unit. The method comprises decoding from the at least one avatar animation texture unit, a number of parametric texture weights signaled in the avatar animation texture unit, decoding from the at least one avatar animation texture unit, for each parametric texture weight, an index for identifying a texture parameter in a texture set and a weight associated with the texture parameter; and animating the avatar by applying for each signaled parametric texture weights, the weight to the texture parameter associated with the weight.

[0021] In an embodiment, an apparatus is provided which comprises one or more processors configured to implement the method according to any one of the embodiments described herein.

[0022] In another embodiment, the present principles relate to a method comprising obtaining, from a bitstream, texture parameters and mapping texture parameters. The method further comprises applying the texture parameters to a target avatar texture according to mapping texture parameters and rendering the target avatar. In an embodiment the mapping texture parameters are sent in the header of the bitstream. In another embodiment, the textureDocket No. 2025P00003WQ

[0023] parameters have a given value and values of the texture parameters different from the given value are encoded in the bitstream.

[0024] The present principles also relate to a device comprising a processor configured to implement the method above.

[0025] The present principles also relate to a method comprising obtaining texture parameters of source avatar. Mapping texture parameters from the source avatar to a target avatar are also obtained and the texture parameters and the mapping texture parameters are encoded in a bitstream.

[0026] The present principles also relate to a device comprising a processor configured to implement the method above.

[0027] 4. Brief Description of Drawings

[0028] The present disclosure will be better understood, and other specific features and advantages will emerge upon reading the following description, the description making reference to the annexed drawings wherein:

[0029] - Figure 1 illustrates a method 10 for decoding avatar parameters according to the present principles;

[0030] - Figure 2 illustrates a method 20 for encoding avatar parameters according to the present principles;

[0031] - Figure 3 shows an example architecture of a device which may be configured to implement methods according to embodiments of the present principles;

[0032] - Figure 4 shows an example of an embodiment of the syntax of a stream when the data are transmitted over a packet-based transmission protocol,

[0033] - Figure 5 illustrates a method 50 for signaling avatar texture parameters according to an embodiment;

[0034] - Figure 6 illustrates a method 60 for decoding avatar texture parameters according to an embodiment.

[0035] 5. Detailed description of embodiments

[0036] The present principles will be described more fully hereinafter with reference to the accompanying figures, in which examples of the present principles are shown. The presentDocket No. 2025P00003WQ

[0037] principles may, however, be embodied in many alternate forms and should not be construed as limited to the examples set forth herein. Accordingly, while the present principles are susceptible to various modifications and alternative forms, specific examples thereof are shown by way of examples in the drawings and will herein be described in detail. It should be understood, however, that there is no intent to limit the present principles to the particular forms disclosed, but on the contrary, the disclosure is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present principles as defined by the claims.

[0038] The terminology used herein is for the purpose of describing particular examples only and is not intended to be limiting of the present principles. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises", "comprising," "includes" and / or "including" when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. Moreover, when an element is referred to as being "responsive" or "connected" to another element, it can be directly responsive or connected to the other element, or intervening elements may be present. In contrast, when an element is referred to as being "directly responsive" or "directly connected" to other element, there are no intervening elements present. As used herein the term "and / or" includes any and all combinations of one or more of the associated listed items and may be abbreviated as" / ".

[0039] It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element without departing from the teachings of the present principles.

[0040] Although some of the diagrams include arrows on communication paths to show a primary direction of communication, it is to be understood that communication may occur in the opposite direction to the depicted arrows.

[0041] Some examples are described with regard to block diagrams and operational flowcharts in which each block represents a circuit element, module, or portion of code which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that in other implementations, the function(s) noted in the blocks mayDocket No. 2025P00003WQ

[0042] occur out of the order noted. For example, two blocks shown in succession may, in fact, be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending on the functionality involved.

[0043] Reference herein to “in accordance with an example” or “in an example” means that a particular feature, structure, or characteristic described in connection with the example can be included in at least one implementation of the present principles. The appearances of the phrase in accordance with an example” or “in an example” in various places in the specification are not necessarily all referring to the same example, nor are separate or alternative examples necessarily mutually exclusive of other examples.

[0044] Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims. While not explicitly described, the present examples and variants may be employed in any combination or sub-combination.

[0045] The “MPEG mesh linking” extension is dependent on circular buffers (“MPEG buffer circular”) and timed accessors (“MPEG accessor timed”) to produce timed animations that are dependent on the shadow mesh. In the MPEG mesh linking extension, the following integer correspondence, mesh, pose and weights are defined. Correspondence provides a reference to the accessor that describes the buffer where the correspondence between a dependent mesh and a shadow mesh is established. Mesh provides a reference to a mesh in the list of meshes that are referred to as “shadow mesh” and to which the correspondences are established. Poseprovides a reference to the accessor that describes the buffer, that contains the transformation matrices of all the nodes of the dependent mesh to be re-animated. Weights provides a reference to the accessor that describes the buffer where the morph targets weights of the shadow mesh associated with the dependent mesh is available.

[0046] A problem arises when one needs to animate avatar representations and stream its animation parameters over the network, either for reenactment or driving other avatar representations that are supported on other platforms. The current solution in MPEG lacks the flexibility for such modality and only focuses on a very niche use case of dynamic mesh sequences.

[0047] Avatar representation arrived with rich properties, able to provide realistic renderings, simplistic animations and easy parametrizations that allow users to personalize and animate their characters freely. Embodiments described herein relates to the animation parameters, such as skeletal joints animations, blendshapes, keypoints, texure parameters and more sophisticatedDocket No. 2025P00003WQ

[0048] controller mechanisms. The increased demand for video teleconferencing solutions requires efficient solutions for streaming of a diverse range of technologies, and MPEG has yet to provide an efficient solution for the problem for the streaming of avatar animation parameters.

[0049] Embodiments described herein provides for mapping two different avatar representations and to drive the animation of a target avatar over the network based on the animation of a source avatar using a streaming protocol. Some embodiments provides for streaming correspondence and animation data related to an avatar representation format, allowing mapping different avatar parametric textures.

[0050] An avatar animation bitstream is composed of a sequence of avatar animation units (AAUs), which may also be referred to as NAL units. The data types used for the definition of different fields in the syntax structures defined in Tables 2 to 16 are as follows: uimsbf: Unsigned integer with most significant bit first; vlc8: Variable length character string. Contains string data stored as a character array encoded in UTF-8; boolean: A single bit that represents a Boolean value; float: A 32-bit floating point value represented according to the IEEE 754 specification.

[0051] Figure 1 illustrates a method 10 for decoding avatar parameters according to the present principles. At step 11, parameters of a source avatar parameters and parameters of a target avatar are obtained from at least a source. At step 12, the parameters of the source avatar parameters are mapped to the parameters of the target avatar. At step 13, a target avatar is generated and may be rendered.

[0052] Figure 2 illustrates a method 20 for encoding avatar parameters according to the present principles. At step 21, parameters of a source avatar parameters and parameters of a target avatar are obtained from at least a source. At step 22, the parameters of the source avatar parameters are mapped to the parameters of the target avatar. At step 23, the mapped parameters and the source avatar parameters are encoded in a data stream.

[0053] The general syntax structure for an AAU is shown the following tables. Each animation unit contains a header and a payload. An AAU header contains at least a field that indicates the unit type. The contents of the payload depend on the type of the unit. In one embodiment, the framing of the units may be done by signaling the unit (or the unit’s pay load) length / size in bytes in the AAU header. In another embodiment, the framing of the AAU is done externally through a separate framing mechanism.Docket No. 2025P00003WQ

[0054]

[0055] Table 2: Syntax of avatar_animation_unit()

[0056] The syntax structure of the AAU header is as detailed in the following table:

[0057]

[0058] Table 3: Syntax of aau_header()

[0059] The aau headerQ syntax construct contains the following syntax elements:

[0060] • aau_unit_type: indicates the type of the AAU. The possible values are described in the following table.

[0061] • aau_unit_length: indicates the size of the AAU payload in bytes.

[0062]

[0063] Table 4: Avatar Animation Unit type codes and corresponding payloads The aau_payload() is defined as shown in the following table. As can be seen from the definition, depending on the value of auh type in the aau headerQ syntex construct, the payload content will be different.

[0064]

[0065] Docket No. 2025P00003WQ

[0066]

[0067] Table 5: Syntax of aau_payload()

[0068] The aau_payload() syntax construct contains the following syntax elements:

[0069] • aau_timestamp: is the timestamp of the AAU in ticks. The timestamp in seconds can be calculated as timestamp / timescale, where timescale is signalled in the configuration AAU.

[0070] • ByteAlignment: is a padding with up to seven bits set to 0 for the AAU payload to be byte-aligned.

[0071] A target avatar configuration AAU is an AAU whose auh_type field is set to AAU TARGET. The payload of such AAU is defined as shown in Table 1.

[0072]

[0073] Table 6: Syntax of aau target unitO

[0074] The aau config unitQ syntax construct contains the following syntax elements:

[0075] • acu avatar id: is an integer identifying the avatar to animate. In some embodiments, this field may not be present. In some embodiments, this field may be replaced by two fields encoding a string, the first one being the length of the string and the second one the characters of the string.

[0076] • acu lod id: is an integer identifying the Level Of Detail (LOD) of the avatar to animate.

[0077] In some embodiments, this field may not be present.Docket No. 2025P00003WQ

[0078] • acu skeleton id: is an integer identifying the skeleton of the avatar to animate. In some embodiments, this field may be named "acujointset index". In some embodiments, this field may not be present.

[0079] • acu_controller_set_id: is an integer identifying the controller set of the avatar to animate. In some embodiments, this field may not be present.

[0080] • acu_keypoint_set_id: is an integer identifying the keypoint set of the avatar to animate.

[0081] In some embodiments, this field may not be present.

[0082] • acu texture set id: is an integer identifying the texture of the avatar to animate. In some embodiments, this field may not be present.

[0083] In another embodiment, the target avatar information may alternatively be signaled as part of the information in a configuration AAU similar to the one defined in the following subsection.

[0084] A configuration AAU is an AAU whose auh_type field is set to AAU_CONFIG. The payload of such AAU is defined as shown in Table 2.

[0085] <

[0086] <

[0087] <

[0088]

[0089] Docket No. 2025P00003WQ

[0090] <

[0091] <

[0092] <

[0093]

[0094] Table 7: Syntax of aau config unitp

[0095] The aau_config_unit() syntax construct contains the following syntax elements:

[0096] • acu_profile_length: is the number of characters in the profile string signalled by acu animati on_profil e.

[0097] • acu_animation_profile: is a character string with the name of the profile that generated stream conforms to.

[0098] • acu_timescale: is the number of ticks per second.

[0099] • acu_control_precision_minusl: plus 1 specifies the size in bytes of the target avatar index in control AAUs. The value of this field shall be greater than 0 and smaller than or equal to 3.

[0100] • acu_controller_correspondence_flag: is a flag indicating whether controller correspondence information is signalled in this configuration AAU. Value 0 indicates that no correspondence information is present. Value 1 indicates that controller correspondence information is present in the configuration AAU.

[0101] • acu_target_controller_index[i] : is the index of the target controller corresponding to the source avatar’s i-th controller.

[0102] • acu_morph_target_correspondence_flag: is a flag indicating whether morph target correspondence information is signalled in this configuration AAU. Value 0 indicates that no correspondence information is present. Value 1 indicates that morph target correspondence information is present in the configuration AAU.

[0103] • acu_target_morph target_index[i] : is the index of the target morph target corresponding to the source avatar’s i-th morph target.

[0104] • acujoint_correspondence_flag: is a flag indicating whether joint correspondence information is signaled in this configuration AAU. Value 0 indicates that noDocket No. 2025P00003WQ

[0105] correspondence information is present. Value 1 indicates that joint correspondence information is present in the configuration AAU.

[0106] • acu_target J oint_index[i] : is the index of the target avatar skeleton j oint corresponding to the source avatar’s i-th joint.

[0107] • acu keypoint correspondence flag: is a flag indicating whether keypoint correspondence information is signalled in this configuration AAU. Value 0 indicates that no correspondence information is present. Value 1 indicates that keypoint correspondence information is present in the configuration AAU.

[0108] • acu_target_keypoint_index[i]: is the index of the target keypoint corresponding to the source avatar’s i-th key point, acu keypoint correspondence flag: is a flag indicating whether keypoint correspondence information is signalled in this configuration AAU. Value 0 indicates that no correspondence information is present. Value 1 indicates that keypoint correspondence information is present in the configuration AAU.

[0109] • acu_target_keypoint_index[i]: is the index of the target keypoint corresponding to the source avatar’s i-th keypoint.

[0110] • acu_keypoint2d_correspondence_flag: is a flag indicating whether 2D keypoint correspondence information is signalled in this configuration AAU. Value 0 indicates that no correspondence information is present. Value 1 indicates that 2D keypoint correspondence information is present in the configuration AAU.

[0111] • acu_target_keypoint2d_index[i]: is the index of the target 2D keypoint corresponding to the source avatar’s i-th 2D keypoint.

[0112] • acu_texture_correspondence_flag: is a flag indicating whether texture correspondence information is signaled in this configuration AAU. Value 0 indicates that no correspondence information is present. Value 1 indicates that texture correspondence information is present in the configuration AAU.

[0113] • acu_target_texture_index[i] : is the index of the target texture corresponding to the source avatar’s i-th texture.

[0114] • acu_reserved_correspondence_flags: are reserved flags for the correspondences of future avatar components.

[0115] • acu_reserved_unspecified_flags: are flags for unspecified features.

[0116] In another embodiment, the configuration AAU may explicitly signal the index of the source component (controller, morph target, joint, keypoint or keypoint 2D) in addition to the index of the target component (same). The corresponding syntax for this is shown in Table 3, where the syntax element acu_source_<component>_index[i] indicates the i-th index of a source component signalled in the control AAU and acu_target_<component>_index[i] indicates the corresponding remove avatar component index.

[0117]

[0118] Docket No. 2025P00003WQ

[0119] <

[0120] <

[0121] <

[0122] <

[0123] <

[0124] <

[0125]

[0126] Docket No. 2025P00003WQ

[0127] T able 8 : Syntax of aau_config_unitO with explicit signaling of source indices In another embodiment, in addition to the information signaled in the previous two embodiments, the configuration AAU may include information on the target avatar instead of having a separate AAU type for that information. An example configuration AAU based on this embodiment is as follows.

[0128] <

[0129] <

[0130] <

[0131] <

[0132]

[0133] Docket No. 2025P00003WQ

[0134] <

[0135] <

[0136]

[0137] T able 9: Syntax of aau_config_unit() without explicit signaling of source indices A control AAU is an AAU whose aau_unit_type field is set to AAU_CONTROL. The payload of such AAU is defined as shown below.

[0138] <

[0139]

[0140] Table 10: Syntax of aau control unit

[0141] The aau_control_unit() syntax construct contains the following syntax elements: • atu controller count minusl : plus 1 indicates the number of controller weights present in the control AAU.

[0142] • atu_controller_index[i] : is the index of the i-th source controller whose weight is signalled in the control AAU.

[0143] • atu_control_weight[i] : is the weight to be applied for the target controller corresponding to the i-th source controller in the control AAU.

[0144] A morph target AAU is an AAU whose auh_type field is set to AAU_MORPH. The payload of such AAU is defined below:

[0145] <

[0146]

[0147] Docket No. 2025P00003WQ

[0148]

[0149] Table 11: Syntax of aau morph unitO

[0150] The aau_morph_unit() syntax construct contains the following syntax elements: • amu morph target count minusl : plus 1 indicates the number of morph targets whose weights are signalled in this morph target AAU.

[0151] • amu morph traget index [i]: is the index of the i-th morph target whose weight is signalled in the control AAU.

[0152] amu morph traget_weight[i] :

[0153] Joint Transform Avatar Animation Unit

[0154] A joint transform AAU is an AAU whose auh_type field is set to AAU_JOINT. The payload of such AAU is defined as shown below:

[0155] <

[0156]

[0157] Table 12: Syntax of aau joint unit()

[0158] The aaujoint_unit() syntax construct contains the following syntax elements:

[0159] • ajujoint count minusl: plus 1 indicate the number of joint transformations signalled in the joint transform AAU.

[0160] • aju_sourcejoint_index[i]: indicates the source joint index for the i-th joint signalled in the joint transform AAU.

[0161] • ajujoint transform[i]: is the transformation matrix for the target joint corresponding to the source joint whose index is signalled by the field aju_sourcejoint_index[i]. In some embodiments, the ajujoint transform[i] field may be replaced by an encoding of optional translation, rotation and scale, as presented below:

[0162] <

[0163]

[0164] Docket No. 2025P00003WQ

[0165] aju _joint_translation_flag[i] ; if (ajujoint_translation_flag[i]) {

[0166] aju Joint_translation[i] ;

[0167] }

[0168] aju _joint_rotation_flag[i] ; if (ajujoint_rotation_flag[i]) {

[0169] aj u J oint rotation [i] ;

[0170] }

[0171] aju_joint_scale_flag[i] ; if (ajujoint_scale_flag[i]) {

[0172] ajujoint_scale[i];

[0173] }

[0174]

[0175]

[0176] Table 13: Syntax of aau joint unit() with translation, rotation and scale

[0177] • ajujoint_translation_flag[i]: is a flag indicating whether a translation is signalled for the i-th joint.

[0178] • ajujoint_translation[i]: is the translation for the target joint corresponding to the source joint whose index is signalled by the field aju_sourcejoint_index[i].

[0179] • ajujoint_rotation_flag[i]: is a flag indicating whether a rotation is signalled for the i- th joint.

[0180] • ajujoint_ rotation [i]: is the rotation for the target joint corresponding to the source joint whose index is signalled by the field aju_sourcejoint_index[i].

[0181] • ajujoint_scale_flag[i] : is a flag indicating whether a scale is signalled for the i-th joint.

[0182] • ajujoint_scale[i]: is the scale for the target joint corresponding to the source joint whose index is signalled by the field aju_sourcejoint_index[i].

[0183] Keypoint avatar animation unit

[0184] A keypoint AAU is an AAU whose auh_type field is set to AAU_KEYPOINT. The payload of such AAU is defined as shown below:

[0185] <

[0186]

[0187] Table 14: Syntax of aau_keypoint_unit()

[0188] The aau keypoint unitQ syntax construct contains the following syntax elements: • aku keypoint count minusl: plus 1 indicates the number of keypoint transformations signalled in the kypoint transform AAU.

[0189] • aku_source_keypoint_index[i] : indicates the source keypoint index for the i-th key point signalled in the keypoint transform AAU.Docket No. 2025P00003WQ

[0190] • aku_keypoint_transform[i] : is the transformation matrix for the target keypoint corresponding to the source keypoint whose index is signalled by the field aku_source_keypoint_index[i] .

[0191] In some embodiments, the aku_keypoint_transform[i] field may be replaced by an encoding of optional translation, rotation, and scale, as presented below:

[0192] <

[0193]

[0194] Table 15: Syntax of aau_keypoint_unit() with translation, rotation and scale

[0195] • aku_keypoint_translation_flag[i]: is a flag indicating whether a translation is signalled for the i-th keypoint.

[0196] • aku_keypoint_translation[i]: is the translation for the target keypoint corresponding to the source keypoint whose index is signalled by the field aku_source_keypoint_index[i], • aku_keypoint_rotation_flag[i] : is a flag indicating whether a rotation is signalled for the i-th keypoint.

[0197] • aku_keypoint_ rotation [i] : is the rotation for the target keypoint corresponding to the source keypoint whose index is signalled by the field aku_source_keypoint_index[i], • aku_keypoint_scale_flag[i] : is a flag indicating whether a scale is signalled for the i-th keypoint.

[0198] • aku_keypoint_scale[i]: is the scale for the target keypoint corresponding to the source keypoint whose index is signalled by the field aku_source_keypoint_index[i], A 2D keypoint AAU is an AAU whose auh_type field is set to AAU_KEYP0INT2D. The payload of such AAU is defined as shown below:

[0199]

[0200] Docket No. 2025P00003WQ

[0201] <

[0202]

[0203] Table 16: Syntax of aau_keypoint2d_unit()

[0204] The aau_keypoint2d_unit() syntax construct contains the following syntax elements:

[0205] • ak2u_keypoint2d_count_minusl: plus 1 indicate the number of 2D key point transformations signalled in the joint transform AAU.

[0206] • ak2u_source_keypoint2d_index[i]: indicates the source 2D keypoint index for the i-th 2D keypoint signalled in the 2D keypoint transform AAU.

[0207] • ak2u_keypoint2d_transform[i] : is the transformation matrix for the target 2D keypoint corresponding to the source 2D keypoint whose index is signalled by the field ak2u_source_keypoint2d_index[i] .

[0208] In some embodiments, the ak2u_keypoint2d_transform[i] field may be replaced by an encoding of optional translation, rotation, and scale, as presented in below:

[0209] <

[0210]

[0211] Table 17: Syntax of aau_keypoint2d_unit() with translation, rotation and scale • ak2u_keypoint2d_translation_flag[i]: is a flag indicating whether a translation is signalled for the i-th 2D keypoint.

[0212] • ak2u_keypoint2d_translation[i]: is the translation for the target 2D keypoint corresponding to the source 2D keypoint whose index is signaled by the field ak2u_source_keypoint2d_index[i] .

[0213] • ak2u_keypoint2d_rotation_flag[i] : is a flag indicating whether a 2D rotation is signaled for the i-th 2D keypoint.Docket No. 2025P00003WQ

[0214] • ak2u_keypoint2d_rotation [i] : is the rotation for the target 2D keypoint corresponding to the source 2D keypoint whose index is signaled by the field ak2u_source_keypoint2d_index[i] .

[0215] • ak2u_keypoint2d_scale_flag[i]: is a flag indicating whether a scale is signaled for the i-th 2D keypoint.

[0216] • ak2u_keypoint2d_scale[i]: is the scale for the target 2D keypoint corresponding to the source 2D keypoint whose index is signaled by the field ak2u_source_keypoint2d_index[i] .

[0217] A control AAU is an AAU whose aau_unit_type field is set to AAU_Texture. The payload of such AAU is defined as shown below:

[0218] <

[0219]

[0220] Table 18: Syntax of aau texture unitQ

[0221] The aau_texture_unit() syntax construct contains the following syntax elements: • atu texture count minusl: plus 1 indicates the number of parametric texture weights present in the control AAU.

[0222] • atu_texture_index[i] : is the index of the i-th source texture parameter whose weight is signalled in the control AAU.

[0223] • atu_texture_weight[i] : is the weight to be applied for the target texture parameter corresponding to the i-th source texture parameter in the control AAU.

[0224] Figure 3 shows an example architecture of a device 30 which may be configured to implement methods according to embodiments of the present principles. The device is linked with other devices via their bus 31 and / or via I / O interface 36.

[0225] Device 30 comprises following elements that are linked together by a data and address bus 31 :D

[0226] - a processor 32 (or CPU), which is, for example, a DSP (or Digital Signal Processor); - a ROM (or Read Only Memory) 33;

[0227] - a RAM (or Random Access Memory) 34;

[0228] - a storage interface 35;Docket No. 2025P00003WQ

[0229] - an I / O interface 36 for reception of data to transmit, from an application; and

[0230] - a power supply (not represented in Figure 2), e.g. a battery.

[0231] In accordance with an example, the power supply is external to the device. In each of mentioned memory, the word « register » used in the specification may correspond to area of small capacity (some bits) or to very large area (e.g. a whole program or large amount of received or decoded data). The ROM 33 comprises at least a program and parameters. The ROM 33 may store algorithms and instructions to perform techniques in accordance with present principles. When switched on, the CPU 32 uploads the program in the RAM and executes the corresponding instructions.

[0232] The RAM 34 comprises, in a register, the program executed by the CPU 32 and uploaded after switch-on of the device 30, input data in a register, intermediate data in different states of the method in a register, and other variables used for the execution of the method in a register.

[0233] The implementations described herein may be implemented in, for example, a method or a process, an apparatus, a computer program product, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method or a device), the implementation of features discussed may also be implemented in other forms (for example a program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end-users.

[0234] Device 30 is linked, for example via bus 31 to a set of sensors 37 and to a set of rendering devices 38. Sensors 37 may be, for example, cameras, microphones, temperature sensors, Inertial Measurement Units, GPS, hygrometry sensors, IR or UV light sensors or wind sensors. Rendering devices 38 may be, for example, displays, speakers, vibrators, heat, fan, etc.

[0235] In accordance with examples, the device 30 is configured to implement a method according to any of the embodiments described herein , and belongs to a set comprising: a mobile device;Docket No. 2025P00003WQ

[0236] - a communication device;

[0237] - a game device;

[0238] - a tablet (or tablet computer);

[0239] - a laptop;

[0240] - a still picture camera;

[0241] - a video camera.

[0242] Figure 4 shows an example of an embodiment of the syntax of a stream when the data are transmitted over a packet-based transmission protocol. Figure 4 shows an example structure 4 of an avatar animation stream encoding avatar animation data related to an avatar representation format, according to embodiments described herein. The stream is composed of a sequence of avatar animation units (AAUs). The structure 4 illustrates an example of an avatar animation unit, and comprises a header part 41 (AAU header). For example, the header part comprises at least a field that indicates the unit type, for example the AAU TEXTURE.. The structure 4 comprises a payload 42. The contents of the payload depend on the type of the unit. The payload may comprise the syntax elements described above according to any of the embodiments described above.

[0243] Figure 5 illustrates an example of a method 50 for signaling parametric texture data for avatar animation, according to an embodiment. The method 50 provides for signaling in NAL units structure of a bitstream the parameters of avatar parameter textures generated by a capturing device. The parameters of the avatar parameter textures generated by a capturing device are then structured in a bitsteam format that can be used to store, load and stream to a receiver to animate the texture of a corresponding digital representation loaded by the receiver. For example, the animation data is signaled using the signaling described in any of the embodiments above. For example, parametric texture data is signaled in an avatar animation texture unit. At 51, a number of parametric texture weights signaled in the avatar animation texture unit is signaled. At 52, for each parametric texture weight signaled, an index is signaled in the avatar animation texture unit, the index allows to identify a texture parameter in a texture set of the avatar to animate at the receiver. Also, a weight associated with the texture parameter is signaled. At 53, a bitstream that comprises avatar animation data for animating the avatar at a receiver is generated, the bitstream including the avatar animation texture unit. In someDocket No. 2025P00003WQ

[0244] variants, other data can be signaled in the bitstream. For example, in an embodiment, the bitstream comprises an identifer indicating the texture set to be used for animating the avatar at the receiver. In another embodiment, the bitstream comprises syntax elements indicating a correspondence between a target texture parameter in the texture set and a souce texture parameter.

[0245] Figure 6 illustrates an example of a method 60 for animating an avatar using parametric texture data according to an embodiment. At 61, a bitstream is received that comprises avatar animation data for animating the avatar, the bitstream is structured in NAL units, including an avatar animation texture unit. For example, the animation data is signaled using the signaling described in any of the embodiments above. At 62, a number of parametric texture weights signaled in the avatar animation texture unit is decoded from the avatar animation texture unit. At 63, for each parametric texture weight, an index is decoded from the avatar animation texture unit. The index allows identifying a texture parameter in a texture set of the avatar to animate. A weight associated with the texture parameter is also decoded. At 64, the avatar is animted by applying for each parametric texture weights, the weight to the texture parameter associated with the weight.

[0246] In some variants, other data can be signaled in the bitstream. For example, in an embodiment, an identifer is decoded that indicates the texture set to be used for animating the avatar at the receiver. In another embodiment, syntax elements indicating a correspondence between a target texture parameter in the texture set and a souce texture parameter are decoded from the bitstream.

[0247] The implementations described herein may be implemented in, for example, a method or a process, an apparatus, a computer program product, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method or a device), the implementation of features discussed may also be implemented in other forms (for example a program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, forDocket No. 2025P00003WQ

[0248] example, Smartphones, tablets, computers, mobile phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end-users.

[0249] The implementations described herein may be implemented in, for example, a method or a process, an apparatus, a computer program product, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method or a device), the implementation of features discussed may also be implemented in other forms (for example a program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, Smartphones, tablets, computers, mobile phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end-users.

[0250] Implementations of the various processes and features described herein may be embodied in a variety of different equipment or applications, particularly, for example, equipment or applications associated with data encoding, data decoding, view generation, texture processing, and other processing of images and related texture information and / or depth information. Examples of such equipment include an encoder, a decoder, a post-processor processing output from a decoder, a pre-processor providing input to an encoder, a video coder, a video decoder, a video codec, a web server, a set-top box, a laptop, a personal computer, a cell phone, a PDA, and other communication devices. As should be clear, the equipment may be mobile and even installed in a mobile vehicle.

[0251] Additionally, the methods may be implemented by instructions being performed by a processor, and such instructions (and / or data values produced by an implementation) may be stored on a processor-readable medium such as, for example, an integrated circuit, a software carrier or other storage device such as, for example, a hard disk, a compact diskette (“CD”), an optical disc (such as, for example, a DVD, often referred to as a digital versatile disc or a digital video disc), a random access memory (“RAM”), or a read-only memory (“ROM”). The instructions may form an application program tangibly embodied on a processor-readable medium. Instructions may be, for example, in hardware, firmware, software, or a combination. Instructions may be found in, for example, an operating system, a separate application, or a combination of the two. A processor may be characterized, therefore, as, for example, both aDocket No. 2025P00003WQ

[0252] device configured to carry out a process and a device that includes a processor-readable medium (such as a storage device) having instructions for carrying out a process. Further, a processor-readable medium may store, in addition to or in lieu of instructions, data values produced by an implementation.

[0253] As will be evident to one of skill in the art, implementations may produce a variety of signals formatted to carry information that may be, for example, stored or transmitted. The information may include, for example, instructions for performing a method, or data produced by one of the described implementations. For example, a signal may be formatted to carry as data the rules for writing or reading the syntax of a described embodiment, or to carry as data the actual syntax-values written by a described embodiment. Such a signal may be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries may be, for example, analog or digital information. The signal may be transmitted over a variety of different wired or wireless links, as is known. The signal may be stored on a processor-readable medium.

[0254] A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, elements of different implementations may be combined, supplemented, modified, or removed to produce other implementations. Additionally, one of ordinary skill will understand that other structures and processes may be substituted for those disclosed and the resulting implementations will perform at least substantially the same function(s), in at least substantially the same way(s), to achieve at least substantially the same result(s) as the implementations disclosed. Accordingly, these and other implementations are contemplated by this application.

Claims

Docket No. 2025P00003WQCLAIMS1. A method comprising:- signaling in an avatar animation texture unit, a number of parametric texture weights signaled in the avatar animation texture unit;- signaling, in the avatar animation texture unit, for each parametric texture weight signaled, an index for identifying a texture parameter in a texture set and a weight associated with the texture parameter; and- generating a bitstream comprising avatar animation data for animating the avatar at a receiver, including the avatar animation texture unit.

2. A method, comprising:- obtaining a bitstream comprising avatar animation data for animating an avatar, the bitstream including at least one avatar animation texture unit;decoding from the at least one avatar animation texture unit, a number of parametric texture weights signaled in the at least one avatar animation texture unit;- decoding from the at least one avatar animation texture unit, for each parametric texture weight, an index for identifying a texture parameter in a texture set and a weight associated with the texture parameter; and- animating the avatar by applying for each signaled parametric texture weights, the weight to the texture parameter associated with the weight.

3. The method of claim 1 or 2, wherein the at least one avatar animation texture unit is an avatar animation unit that comprises a header comprising a field indicating a type of the avatar animation unit and wherein the type of the avatar animation unit is AAU TEXTURE.

4. The method of any one of claims 1-3, wherein the bitstream further comprises at least one syntax element indicating a correspondence between a target texture parameter in the texture set and a souce texture parameter.

5. The methd of claim 4, wherein the at least one syntax element comprises a list of indices wherein an index at rank i in the list identifies a target texture parameter in the texture set which is in correspondence with a i-th source texture parameter.26Docket No. 2025P00003WQ6. The method of claim 4, wherein the at least one syntax element comprises a list of pairs of indices comprising a first index and a second index, wherein for a pair of indices at rank i in the list, the first index of the pair identifies the source texture parameter and the second index identifies the target texture parameter in the texture set which is in correspondence with the source texture parameter.

7. The method of any one of claims 4-6, wherein the bitstream comprises a texture correspondence flag indicating whether texture correspondence information is signaled in the bitstream, and wherein the at least one syntax element is signaled in the bitstream depending on a value of the texture correspondence flag.

8. The method of any one of claims 4-7, wherein the at least one syntax element is signaled in an avatar animation configuration unit, and wherein the avatar animation configuration unit further comprises information on a target avatar.

9. The method of any one of claims 1-8, wherein the bitstream further comprises a syntax element indicating a bit precision for signaling the index for identifying a texture parameter in the texture set.

10. The method of any one of claims 1-9, wherein the bitstream comprises an identifer indicating the texture set to be used for animating the avatar.

11. An apparatus comprising one or more processors configured to:- signal in an avatar animation texture unit, a number of parametric texture weights signaled in the avatar animation texture unit;- signal, in the avatar animation texture unit, for each parametric texture weight signaled, an index for identifying a texture parameter in a texture set and a weight associated with the texture parameter; and- generate a bitstream comprising avatar animation data for animating the avatar at a receiver, including the avatar animation texture unit.

12. An apparatus comprising one or more processors configured to:- obtain a bitstream comprising avatar animation data for animating an avatar, the bitstream including at least one avatar animation texture unit;decode from the at least one avatar animation texture unit, a number of parametric texture weights signaled in the at least one avatar animation texture unit;Docket No. 2025P00003WQ- decode from the at least one avatar animation texture unit, for each parametric texture weight, an index for identifying a texture parameter in a texture set and a weight associated with the texture parameter; and- animate the avatar by applying for each signaled parametric texture weights, the weight to the texture parameter associated with the weight.

13. The apparatus of claim 11 or 12, wherein the at least one avatar animation texture unit is an avatar animation unit that comprises a header comprising a field indicating a type of the avatar animation unit and wherein the type of the avatar animation unit is AAU TEXTURE.

14. The apparatus of any one of claims 11-13, wherein the bitstream further comprises at least one syntax element indicating a correspondence between a target texture parameter in the texture set and a souce texture parameter.

15. The apparatus of claim 14, wherein the at least one syntax element comprises a list of indices wherein an index at rank i in the list identifies a target texture parameter in the texture set which is in correspondence with a i-th source texture parameter.

16. The apparatus of claim 14, wherein the at least one syntax element comprises a list of pairs of indices comprising a first index and a second index, wherein for a pair of indices at rank i in the list, the first index of the pair identifies the source texture parameter and the second index identifies the target texture parameter in the texture set which is in correspondence with the source texture parameter.

17. The apparatus of any one of claims 14-16, wherein the bitstream comprises a texture correspondence flag indicating whether texture correspondence information is signaled in the bitstream, and wherein the at least one syntax element is signaled in the bitstream depending on a value of the texture correspondence flag.

18. The apparatus of any one of claims 14-17, wherein the at least one syntax element is signaled in an avatar animation configuration unit, and wherein the avatar animation configuration unit further comprises information on a target avatar.

19. The apparatus of any one of claims 11-18, wherein the bitstream further comprises a syntax element indicating a bit precision for signaling the index for identifying a texture parameter in the texture set.Docket No. 2025P00003WQ20. The apparatus of any one of claims 11-19, wherein the bitstream comprises an identifer indicating the texture set to be used for animating the avatar.

21. A non-transitory computer-readable medium storing instructions that, when executed by a processor, perform the method according to any of claims 1-10.

22. A data stream comprising avatar animation data including at least one one avatar animation texture unit, the at least one avatar animation texture unit comprises an indication of a number of parametric texture weights signaled in the at least one avatar animation texture unit, and for each parametric texture weight signaled, an index for identifying a texture parameter in a texture set and a weight associated with the texture parameter.