Encoding and decoding methods, system, and related apparatus

By sorting, segmenting, and geometrically transforming the basic 3D mesh sequence to generate a second sequence and encoding the transformation information, the problem of low transmission and storage efficiency of the basic 3D mesh sequence is solved, achieving more efficient data transmission and storage.

WO2026011825A1PCT designated stage Publication Date: 2026-01-15HUAWEI TECH CO LTD

Patent Information

Application Number
PCT/CN2025/083152
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-12
Filing Date
2025-03-18
Publication Date
2026-01-15

AI Technical Summary

Technical Problem

The transmission and storage efficiency of basic 3D mesh sequences is low, mainly because the low temporal correlation results in a large amount of encoded data.

Method used

A second basic 3D mesh sequence is generated by sorting, segmenting, and geometrically transforming the basic 3D mesh sequence. The transformation information is then encoded into the bitstream to change the encoding order and reduce the prediction residual, thereby reducing the pseudo-encoding length.

Benefits of technology

It improves the transmission and storage efficiency of basic 3D mesh sequences, reduces the amount of data through more accurate inter-frame prediction, and enhances transmission and storage efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025083152_15012026_PF_FP_ABST
    Figure CN2025083152_15012026_PF_FP_ABST
Patent Text Reader

Abstract

The embodiments of the present application relate to the technical field of media. Disclosed are encoding and decoding methods, a system, and a related apparatus, which are used for improving the transmission efficiency and / or storage efficiency of a basic three-dimensional mesh sequence. The encoding method comprises: on the basis of a first basic three-dimensional mesh sequence, obtaining a second basic three-dimensional mesh sequence and conversion information, wherein the first basic three-dimensional mesh sequence is used for generating at least one first synthetic three-dimensional mesh, the length to be subjected to encoding of the second basic three-dimensional mesh sequence is less than said length of the first basic three-dimensional mesh sequence, and the conversion information indicates how to obtain the first basic three-dimensional mesh sequence on the basis of the second basic three-dimensional mesh sequence; and encoding the second basic three-dimensional mesh sequence and the conversion information into a bit stream.
Need to check novelty before this filing date? Find Prior Art

Description

Encoding and decoding methods, systems and related devices

[0001] This application claims priority to Chinese Patent Application No. 202410937452.6, filed on July 12, 2024, entitled “Encoding / Decoding Method, System and Related Apparatus”, the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of media technology, and in particular to encoding and decoding methods, systems and related apparatus. Background Technology

[0003] A 3D mesh is a three-dimensional geometric model composed of triangles, quadrilaterals, or polygons. It has wide applications in computer games, animation, virtual reality, and other fields, and can be used to represent volumetric video, digital humans, and computer graphics (CG) content. The large amount of raw data in 3D meshes puts immense pressure on transmission and storage, thus requiring efficient encoding and decoding technologies to enable their transmission and storage.

[0004] A base 3D mesh is a 3D mesh generated based on native 3D meshes or 3D asset data. The temporal relationship between consecutive frames in a base 3D mesh sequence is discontinuous during generation, resulting in low temporal correlation between base 3D meshes within the sequence. This leads to a relatively high bitrate (or a relatively large amount of encoded data) in the base 3D mesh sequence, placing significant pressure on transmission and / or storage.

[0005] Improving the transmission and / or storage efficiency of basic 3D mesh sequences is a technical problem that needs to be solved. Summary of the Invention

[0006] This application provides encoding / decoding methods, systems, and related apparatus for improving the transmission and / or storage efficiency of basic three-dimensional mesh sequences. To achieve the above objectives, this application adopts the following technical solution:

[0007] In a first aspect, this application provides an encoding method, comprising: obtaining a second basic three-dimensional mesh sequence and transformation information based on a first basic three-dimensional mesh sequence, wherein the first basic three-dimensional mesh sequence is used to generate at least one first synthetic three-dimensional mesh, the intended encoding length of the second basic three-dimensional mesh sequence is less than the intended encoding length of the first basic three-dimensional mesh sequence, and the transformation information indicates how to obtain the first basic three-dimensional mesh sequence based on the second basic three-dimensional mesh sequence; and encoding the second basic three-dimensional mesh sequence and the transformation information into a bitstream.

[0008] The method provided in this application adds an operation to obtain a second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence before encoding the first basic three-dimensional mesh sequence, so as to reduce the intended encoding length of the basic three-dimensional mesh sequence, thereby reducing the intended encoding length of the basic three-dimensional mesh sequence and improving the transmission efficiency and / or storage efficiency of the basic three-dimensional mesh sequence.

[0009] In one possible implementation, the basic three-dimensional meshes in the first basic three-dimensional mesh sequence can be sorted to obtain the second basic three-dimensional mesh sequence.

[0010] In one possible implementation, the conversion information includes conversion method information, which indicates (at the encoding end) that the method of obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is sorting, or that the conversion method information indicates (at the decoding end) that the method of obtaining the first basic three-dimensional mesh sequence based on the second basic three-dimensional mesh sequence is sorting.

[0011] The method provided in this application sorts the basic three-dimensional mesh sequence before encoding it. The purpose of this method is to change the encoding order between the basic three-dimensional meshes to reduce the prediction residuals of some of the basic three-dimensional meshes, thereby reducing the pseudo-encoding length of the basic three-dimensional mesh sequence and thus improving the transmission efficiency and / or storage efficiency of the basic three-dimensional mesh sequence.

[0012] In one possible implementation, the basic three-dimensional meshes in the first basic three-dimensional mesh sequence can be divided and sorted to obtain the second basic three-dimensional mesh sequence.

[0013] In one possible implementation, the conversion information includes conversion method information, which indicates (at the encoding end) that the method for obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is segmentation and sorting, or that the conversion method information indicates (at the decoding end) that the method for obtaining the first basic three-dimensional mesh sequence based on the second basic three-dimensional mesh sequence is sorting and merging.

[0014] The method provided in this application, in addition to sorting, further segments the basic 3D mesh sequence before encoding it. This can further reduce the intended encoding length of the basic 3D mesh sequence (exemplary reason: after segmentation, the basic 3D mesh has more similarity to other basic 3D meshes, which can reduce the corresponding prediction residual), thereby further reducing the intended encoding length of the basic 3D mesh sequence, and thus further improving the transmission efficiency and / or storage efficiency of the basic 3D mesh sequence.

[0015] In one possible implementation, the basic three-dimensional meshes in the first basic three-dimensional mesh sequence can be geometrically transformed and sorted to obtain the second basic three-dimensional mesh sequence.

[0016] In one possible implementation, the conversion information includes conversion method information, which indicates (at the encoding end) that the method for obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is geometric transformation and sorting; or, the conversion method information indicates (at the decoding end) that the method for obtaining the first basic three-dimensional mesh sequence based on the second basic three-dimensional mesh is sorting and geometric transformation.

[0017] The method provided in this application, in addition to sorting, performs a geometric transformation on the basic three-dimensional meshes in the basic three-dimensional mesh sequence before encoding the basic three-dimensional mesh sequence. This can further reduce the pseudo-encoding length of the basic three-dimensional mesh sequence (exemplary reason: after geometric transformation, the basic three-dimensional meshes have more similarity to other basic three-dimensional meshes, which can reduce the corresponding prediction residuals), thereby further reducing the pseudo-encoding length of the basic three-dimensional mesh sequence, and thus further improving the transmission efficiency and / or storage efficiency of the basic three-dimensional mesh sequence.

[0018] In one possible implementation, the transformation information further includes parameter information, which indicates the operating parameters of the geometric transformation.

[0019] It is understandable that the conversion information, including parameter information, enables the decoding end to reconstruct the basic 3D mesh after geometric transformation based on the parameter information.

[0020] In one possible implementation, the transformation information includes mapping information, which indicates the mapping relationship between the base three-dimensional meshes in the first base three-dimensional mesh sequence and the base three-dimensional meshes in the second base three-dimensional mesh sequence.

[0021] It is understandable that the conversion information, including the mapping information, enables the decoding end to reconstruct the converted basic 3D mesh sequence based on the mapping information.

[0022] In one possible implementation, the aforementioned second basic three-dimensional mesh sequence can be encoded into a bitstream based on the second synthetic three-dimensional mesh, wherein the second synthetic three-dimensional mesh is obtained based on the basic three-dimensional mesh in the second basic three-dimensional mesh sequence.

[0023] Compared to encoding that uses only the preceding basic 3D grid in the current basic 3D grid sequence for inter-frame prediction, using the second synthetic 3D grid sequence for inter-frame prediction can make inter-frame prediction more accurate, thereby further improving the transmission efficiency and / or storage efficiency of the basic 3D grid sequence.

[0024] In one possible implementation, the aforementioned conversion information further includes reference 3D mesh information, which is used to indicate that the reference 3D mesh of the base 3D mesh in the third base 3D mesh sequence is a synthetic 3D mesh obtained based on the base 3D mesh in the third base 3D mesh sequence.

[0025] Compared to encoding that uses only the preceding basic 3D grid in the current basic 3D grid sequence for inter-frame prediction, using the second synthetic 3D grid sequence for inter-frame prediction can make inter-frame prediction more accurate, thereby further improving the transmission efficiency and / or storage efficiency of the basic 3D grid sequence.

[0026] In one possible implementation, the transformation information further includes transformation identification information, which indicates that the third basic three-dimensional mesh sequence was obtained through transformation.

[0027] It is understandable that the conversion information, including the conversion identifier information, enables the decoding end to reconstruct the converted basic 3D mesh sequence based on the conversion identifier information.

[0028] In one possible implementation, synthetic information can be generated, which indicates how to generate the at least one first synthetic 3D mesh based on the first basic 3D mesh sequence. The synthetic information is then encoded into the bitstream.

[0029] It is understandable that the decoding end can synthesize a first synthetic 3D mesh based on the basic 3D mesh using the synthesized information.

[0030] Secondly, this application provides a decoding method, which includes: obtaining a third basic three-dimensional mesh sequence and conversion information from a bitstream, wherein the conversion information indicates how to obtain a fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence, wherein the fourth basic three-dimensional mesh sequence is used to generate at least one first synthetic three-dimensional mesh, and the proposed encoding length of the third basic three-dimensional mesh sequence is less than the proposed encoding length of the fourth basic three-dimensional mesh sequence; and obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence according to the conversion information.

[0031] In one possible implementation, the basic three-dimensional meshes in the third basic three-dimensional mesh sequence can be sorted according to the above-mentioned transformation information to obtain the fourth basic three-dimensional mesh sequence.

[0032] In one possible implementation, the basic three-dimensional meshes in the third basic three-dimensional mesh sequence can be merged and sorted according to the above-mentioned transformation information to obtain the fourth basic three-dimensional mesh sequence.

[0033] In one possible implementation, the fourth basic three-dimensional mesh sequence can be obtained by geometrically transforming and sorting the basic three-dimensional meshes in the third basic three-dimensional mesh sequence based on the above transformation information.

[0034] In one possible implementation, the aforementioned parameter information is used to indicate the operational parameters of the aforementioned geometric transformation.

[0035] In one possible implementation, the transformation information includes mapping information used to indicate the mapping relationship between the base three-dimensional meshes in the third base three-dimensional mesh sequence and the base three-dimensional meshes in the fourth base three-dimensional mesh sequence.

[0036] In one possible implementation, the aforementioned transformation information also includes transformation method information, which indicates that the method for obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence is sorting.

[0037] In one possible implementation, the aforementioned transformation information also includes transformation method information, which indicates that the method for obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence is merging and sorting.

[0038] In one possible implementation, the transformation information also includes transformation method information, which indicates that the method of obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence is geometric transformation and sorting.

[0039] In one possible implementation, the above-mentioned bitstream can be decoded based on the second synthetic three-dimensional mesh to obtain a third basic three-dimensional mesh sequence, wherein the second synthetic three-dimensional mesh is obtained based on the basic three-dimensional mesh in the third basic three-dimensional mesh sequence.

[0040] In one possible implementation, the aforementioned conversion information further includes reference 3D mesh information, which is used to indicate that the reference 3D mesh of the base 3D mesh in the third base 3D mesh sequence is a synthetic 3D mesh obtained based on the base 3D mesh in the third base 3D mesh sequence.

[0041] In one possible implementation, the transformation information further includes transformation identification information, which indicates that the third basic three-dimensional mesh sequence was obtained through transformation.

[0042] In one possible implementation, at least one first synthetic three-dimensional mesh can be generated based on the aforementioned fourth basic three-dimensional mesh sequence.

[0043] In one possible implementation, synthesis information can be obtained based on the bitstream, which is used to indicate how to generate the at least one first synthesized three-dimensional mesh based on the fourth basic three-dimensional mesh sequence; and at least one first synthesized three-dimensional mesh is generated according to the fourth basic three-dimensional mesh sequence.

[0044] Thirdly, this application provides an encoding apparatus, comprising: a conversion unit and an encoding unit. The conversion unit is configured to obtain a second basic three-dimensional mesh sequence and conversion information based on a first basic three-dimensional mesh sequence, wherein the first basic three-dimensional mesh sequence is used to generate at least one first synthetic three-dimensional mesh, the intended encoding length of the second basic three-dimensional mesh sequence is less than the intended encoding length of the first basic three-dimensional mesh sequence, and the conversion information indicates how to obtain the first basic three-dimensional mesh sequence based on the second basic three-dimensional mesh sequence. The encoding unit is configured to encode the second basic three-dimensional mesh sequence and the conversion information into a bitstream.

[0045] In one possible implementation, the conversion unit is specifically used to sort the basic three-dimensional meshes in the first basic three-dimensional mesh sequence to obtain the second basic three-dimensional mesh sequence.

[0046] In one possible implementation, the conversion unit is specifically used to: divide and sort the basic three-dimensional meshes in the first basic three-dimensional mesh sequence to obtain the second basic three-dimensional mesh sequence.

[0047] In one possible implementation, the transformation unit is specifically used to: perform geometric transformation and sorting on the basic three-dimensional meshes in the first basic three-dimensional mesh sequence to obtain the second basic three-dimensional mesh sequence.

[0048] In one possible implementation, the transformation information further includes parameter information, which indicates the operating parameters of the geometric transformation.

[0049] In one possible implementation, the transformation information includes mapping information, which indicates the mapping relationship between the base three-dimensional meshes in the first base three-dimensional mesh sequence and the base three-dimensional meshes in the second base three-dimensional mesh sequence.

[0050] In one possible implementation, the conversion information further includes conversion method information, which indicates that the method for obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is sorting.

[0051] In one possible implementation, the aforementioned transformation information also includes transformation method information, which indicates that the method for obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is segmentation and sorting.

[0052] In one possible implementation, the transformation information further includes transformation method information, which indicates that the method of obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is geometric transformation and sorting.

[0053] In one possible implementation, the encoding unit is specifically used to: encode the second basic three-dimensional mesh sequence into a bitstream based on the second synthetic three-dimensional mesh, wherein the second synthetic three-dimensional mesh is obtained based on the basic three-dimensional mesh in the second basic three-dimensional mesh sequence.

[0054] In one possible implementation, the aforementioned conversion information further includes reference 3D mesh information, which is used to indicate that the reference 3D mesh of the base 3D mesh in the third base 3D mesh sequence is a synthetic 3D mesh obtained based on the base 3D mesh in the third base 3D mesh sequence.

[0055] In one possible implementation, the transformation information further includes transformation identification information, which indicates that the third basic three-dimensional mesh sequence was obtained through transformation.

[0056] In one possible implementation, the encoding unit is further configured to: generate synthetic information, which indicates how to generate the first or more first synthetic three-dimensional meshes based on the first basic three-dimensional mesh sequence.

[0057] In one possible implementation, the encoding unit is also used to: encode the above-mentioned synthetic information into the above-mentioned bitstream.

[0058] Fourthly, this application provides a decoding apparatus, comprising: a decoding unit and a conversion unit. The decoding unit is configured to obtain a third basic three-dimensional mesh sequence and conversion information from a bitstream, wherein the conversion information indicates how to obtain a fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence, the fourth basic three-dimensional mesh sequence being used to generate at least one first synthetic three-dimensional mesh, and the intended encoding length of the third basic three-dimensional mesh sequence being less than the intended encoding length of the fourth basic three-dimensional mesh sequence. The conversion unit is configured to obtain the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence according to the conversion information.

[0059] In one possible implementation, the conversion unit is specifically used to: sort the basic three-dimensional meshes in the third basic three-dimensional mesh sequence according to the above conversion information to obtain the fourth basic three-dimensional mesh sequence.

[0060] In one possible implementation, the conversion unit is specifically used to: merge and sort the basic three-dimensional meshes in the third basic three-dimensional mesh sequence according to the above conversion information to obtain the fourth basic three-dimensional mesh sequence.

[0061] In one possible implementation, the conversion unit is specifically used to: perform geometric transformation and sorting on the basic three-dimensional meshes in the third basic three-dimensional mesh sequence according to the above conversion information to obtain the fourth basic three-dimensional mesh sequence.

[0062] In one possible implementation, the aforementioned parameter information is used to indicate the operational parameters of the aforementioned geometric transformation.

[0063] In one possible implementation, the transformation information includes mapping information used to indicate the mapping relationship between the base three-dimensional meshes in the third base three-dimensional mesh sequence and the base three-dimensional meshes in the fourth base three-dimensional mesh sequence.

[0064] In one possible implementation, the aforementioned transformation information also includes transformation method information, which indicates that the method for obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence is sorting.

[0065] In one possible implementation, the aforementioned transformation information also includes transformation method information, which indicates that the method for obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence is merging and sorting.

[0066] In one possible implementation, the transformation information also includes transformation method information, which indicates that the method of obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence is geometric transformation and sorting.

[0067] In one possible implementation, the decoding unit is specifically used to: decode the above-mentioned bitstream based on the second synthesized three-dimensional grid to obtain a third basic three-dimensional grid sequence, wherein the second synthesized three-dimensional grid is obtained based on the basic three-dimensional grid in the third basic three-dimensional grid sequence.

[0068] In one possible implementation, the aforementioned conversion information further includes reference 3D mesh information, which is used to indicate that the reference 3D mesh of the base 3D mesh in the third base 3D mesh sequence is a synthetic 3D mesh obtained based on the base 3D mesh in the third base 3D mesh sequence.

[0069] In one possible implementation, the transformation information further includes transformation identification information, which indicates that the third basic three-dimensional mesh sequence was obtained through transformation.

[0070] In one possible implementation, the decoding unit is further configured to: acquire synthesis information based on the bitstream, the synthesis information being used to indicate how to generate the at least one first synthetic three-dimensional mesh based on the fourth basic three-dimensional mesh sequence.

[0071] In one possible implementation, the decoding unit is also used to generate at least one first synthetic three-dimensional mesh based on the aforementioned fourth basic three-dimensional mesh sequence.

[0072] Fifthly, this application also provides an encoding device, comprising: at least one processor, which, when the at least one processor executes program code or instructions, implements the method described in the first aspect or any possible implementation thereof.

[0073] Optionally, the device may further include at least one memory for storing the program code or instructions.

[0074] In a sixth aspect, this application also provides a decoding apparatus, comprising: at least one processor, which, when executing program code or instructions, implements the method described in the second aspect above or any possible implementation thereof.

[0075] Seventhly, this application also provides a bitstream including a second basic three-dimensional mesh sequence and transformation information. The second basic three-dimensional mesh sequence and the transformation information are obtained based on a first basic three-dimensional mesh sequence. The first basic three-dimensional mesh sequence is used to generate at least one first synthetic three-dimensional mesh, the intended encoding length of the second basic three-dimensional mesh sequence is less than the intended encoding length of the first basic three-dimensional mesh sequence, and the transformation information indicates how to obtain the first basic three-dimensional mesh sequence based on the second basic three-dimensional mesh sequence.

[0076] In one possible implementation, the second basic three-dimensional mesh sequence is obtained by sorting the basic three-dimensional meshes in the first basic three-dimensional mesh sequence.

[0077] In one possible implementation, the second basic three-dimensional mesh sequence is obtained by dividing and sorting the basic three-dimensional meshes in the first basic three-dimensional mesh sequence.

[0078] In one possible implementation, the second basic 3D mesh sequence can be obtained by geometrically transforming and sorting the basic 3D meshes in the first basic 3D mesh sequence.

[0079] In one possible implementation, the transformation information further includes parameter information, which indicates the operating parameters of the geometric transformation.

[0080] In one possible implementation, the conversion information further includes conversion method information, which indicates that the method for obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is sorting.

[0081] In one possible implementation, the aforementioned transformation information also includes transformation method information, which indicates that the method for obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is segmentation and sorting.

[0082] In one possible implementation, the transformation information further includes transformation method information, which indicates that the method of obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is geometric transformation and sorting.

[0083] In one possible implementation, the aforementioned conversion information further includes reference 3D mesh information, which is used to indicate that the reference 3D mesh of the base 3D mesh in the second base 3D mesh sequence is a synthetic 3D mesh obtained based on the base 3D mesh in the second base 3D mesh sequence.

[0084] In one possible implementation, the transformation information further includes transformation identification information, which indicates that the third basic three-dimensional mesh sequence was obtained through transformation.

[0085] In one possible implementation, the bitstream may further include synthesis information indicating how to generate the at least one first synthesized 3D mesh based on the first basic 3D mesh sequence. The synthesis information is then encoded into the bitstream.

[0086] Eighthly, this application also provides a bitstream storage method, which includes: acquiring and storing the bitstream obtained by the method described in the first aspect or any possible implementation thereof, or acquiring and storing the bitstream described in the seventh aspect or any possible implementation thereof.

[0087] Ninthly, this application also provides a bitstream storage device, which is used to acquire and store the bitstream obtained by the method described in the first aspect or any possible implementation thereof, or to acquire and store the bitstream in the seventh aspect or any possible implementation thereof.

[0088] In a tenth aspect, this application also provides a code stream transmission method, the method comprising: acquiring and transmitting a code stream obtained by the method described in the first aspect or any possible implementation thereof, or acquiring and transmitting a code stream described in the seventh aspect or any possible implementation thereof.

[0089] Eleventhly, this application also provides a bitstream transmission apparatus for acquiring and transmitting a bitstream obtained by the method described in the first aspect or any possible implementation thereof, or for acquiring and transmitting a bitstream described in the seventh aspect or any possible implementation thereof.

[0090] In a twelfth aspect, this application also provides a computer-readable storage medium storing a bitstream obtained by the method described in the first aspect or any possible implementation thereof, or storing a bitstream described in the seventh aspect or any possible implementation thereof.

[0091] In a thirteenth aspect, this application also provides a chip, including: an input interface, an output interface, and at least one processor. Optionally, the chip further includes a memory. The at least one processor is used to execute code in the memory, and when the at least one processor executes the code, the chip implements the method described in the first aspect or any possible implementation thereof.

[0092] Alternatively, the chip described above can also be an integrated circuit.

[0093] In a fourteenth aspect, this application also provides a computer-readable storage medium for storing a computer program that includes methods for implementing the first aspect above or any possible implementation thereof.

[0094] In a fifteenth aspect, this application also provides a computer program product containing instructions that, when run on a computer, cause the computer to implement the method described in the first aspect or any possible implementation thereof.

[0095] In a sixteenth aspect, this application also provides an encoding and decoding system, characterized in that it includes: the encoding device described in the third aspect or any possible implementation thereof, and the decoding device described in the fourth aspect or any possible implementation thereof.

[0096] The encoding / decoding apparatus, computer storage medium, computer program product, and chip provided in this application are all used to execute the encoding / decoding method provided above. Therefore, the beneficial effects they can achieve can be referred to the beneficial effects in the encoding / decoding method provided above, and will not be repeated here. Attached Figure Description

[0097] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of the embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0098] Figure 1 is an exemplary block diagram of an encoding / decoding system provided in an embodiment of this application;

[0099] Figure 2 is an exemplary block diagram of the apparatus provided in an embodiment of this application;

[0100] Figure 3 is a schematic diagram of a basic three-dimensional mesh generation process provided in an embodiment of this application;

[0101] Figure 4 is a flowchart illustrating an encoding method provided in an embodiment of this application;

[0102] Figure 5 is a schematic diagram of a conversion process provided in an embodiment of this application;

[0103] Figure 6 is a schematic diagram of another conversion process provided in an embodiment of this application;

[0104] Figure 7 is a schematic diagram of another conversion process provided in an embodiment of this application;

[0105] Figure 8 is a schematic diagram of another conversion process provided in an embodiment of this application;

[0106] Figure 9 is a schematic diagram of another conversion process provided in an embodiment of this application;

[0107] Figure 10 is a schematic diagram of another conversion process provided in an embodiment of this application;

[0108] Figure 11 is a schematic diagram of another conversion process provided in an embodiment of this application;

[0109] Figure 12 is a flowchart illustrating a decoding method provided in an embodiment of this application;

[0110] Figure 13 is a schematic diagram of another conversion process provided in an embodiment of this application;

[0111] Figure 14 is a schematic diagram of a synthetic mesh generation process provided in an embodiment of this application;

[0112] Figure 15 is a schematic diagram of an encoding device provided in an embodiment of this application;

[0113] Figure 16 is a schematic diagram of a decoding device provided in an embodiment of this application;

[0114] Figure 17 is a schematic diagram of the structure of the encoding and decoding system provided in an embodiment of this application;

[0115] Figure 18 is a schematic diagram of the structure of a chip provided in an embodiment of this application;

[0116] Figure 19 is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0117] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of the embodiments of this application.

[0118] In this article, the term "and / or" is merely a description of the relationship between related objects, indicating that there can be three relationships. For example, A and / or B can represent three situations: A exists alone, A and B exist simultaneously, and B exists alone.

[0119] The terms "first" and "second," etc., in the specification and drawings of the embodiments of this application are used to distinguish different objects or to distinguish different treatments of the same object, rather than to describe a specific order of objects.

[0120] Furthermore, the terms "comprising" and "having," and any variations thereof, used in the description of the embodiments of this application are intended to cover non-exclusive inclusion. For example, a manner, method, system, product, or device that includes a series of steps or units is not limited to the steps or units listed, but may optionally include other steps or units not listed, or may optionally include other steps or units inherent to these manner, method, product, or device.

[0121] It should be noted that in the description of the embodiments of this application, the words "exemplarily" or "for example" are used to indicate examples, illustrations, or explanations. Any embodiment or design scheme described as "exemplarily" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design schemes. Specifically, the use of the words "exemplarily" or "for example" is intended to present the relevant concepts in a specific manner.

[0122] Data encoding and decoding comprises two parts: data encoding and data decoding. Data encoding is performed on the source side (or commonly referred to as the encoder side) and typically involves processing (e.g., compressing) the raw data to reduce the amount of data required to represent it (thus enabling more efficient storage and / or transmission). Data decoding is performed on the destination side (or commonly referred to as the decoder side) and typically involves performing the inverse processing relative to the encoder side to reconstruct the original data. The "encoding and decoding" of data in the embodiments of this application should be understood as either "encoding" or "decoding" of the data. The encoding and decoding parts are also collectively referred to as encoding and decoding (codec).

[0123] In lossless data encoding, the original data can be reconstructed, meaning the reconstructed original data has the same quality as the original data (assuming no transmission loss or other data loss during storage or transmission). In lossy data encoding, further compression is performed through quantization to reduce the amount of data required to represent the original data, but the decoder cannot completely reconstruct the original data, meaning the quality of the reconstructed original data is lower or worse than the quality of the original data.

[0124] This application's embodiments can be applied to video data and other data requiring compression / decompression. The following description uses video data encoding (hereinafter referred to as video encoding) as an example to illustrate this application's embodiments. Other types of data (such as image data, audio data, integer data, and other data requiring compression / decompression) can be referred to the following description, and will not be repeated in this application's embodiments. It should be noted that, compared to video encoding, the encoding methods for audio data and integer data do not require dividing the data into blocks; instead, the data can be directly encoded.

[0125] Video coding generally refers to the processing of image sequences or 3D mesh sequences that form videos, video sequences, or video sequences. In the field of video coding, the terms "picture," "frame," or "image" can be used synonymously.

[0126] Several video coding standards fall under the category of "lossy hybrid video coding and decoding" (i.e., combining spatial and temporal prediction in the pixel domain with 2D transform coding in the transform domain for applying quantization). Each image in a video sequence is typically segmented into a set of non-overlapping blocks, which are usually encoded at the block level. In other words, the encoder typically processes the video at the block (video block) level, for example, generating prediction blocks through spatial (intra-frame) prediction and temporal (inter-frame) prediction; subtracting the prediction blocks from the current block (the block currently being processed / to be processed) to obtain residual blocks; transforming and quantizing the residual blocks in the transform domain to reduce the amount of data to be transmitted (compressed), while the decoder applies the inverse processing relative to the encoder to the encoded or compressed blocks to reconstruct the current block for representation. Additionally, the encoder needs to repeat the decoder's processing steps so that the encoder and decoder generate the same predictions (e.g., intra-frame and inter-frame predictions) and / or reconstruct pixels for processing, i.e., encoding subsequent blocks.

[0127] Figure 1 is an exemplary block diagram of a codec system 10 provided in an embodiment of this application, such as a video codec system 10 (or simply codec system 10) that can utilize the technology of the embodiments of this application. The video encoder 20 (or simply encoder 20) and video decoder 30 (or simply decoder 30) in the video codec system 10 represent devices, etc., that can be used to perform various technologies according to the various examples described in the embodiments of this application.

[0128] As shown in Figure 1, the encoding and decoding system 10 includes a decoding device 12, which provides encoded image data 21, such as encoded images, to an encoding device 14 for decoding the encoded image data 21.

[0129] The decoding device 12 includes an encoder 20, and optionally may include an image source 16, a preprocessor (or preprocessing unit) 18 such as an image preprocessor, and a communication interface (or communication unit) 22.

[0130] Image source 16 may include or may be any type of image capture device for capturing real-world images, and / or any type of image generation device, such as a computer graphics processor for generating computer animation images or any type of device for acquiring and / or providing real-world images, computer-generated images (e.g., screen content, virtual reality (VR) images, and / or any combination thereof (e.g., augmented reality (AR) images). The image source may be any type of memory or storage device storing any of the images described above.

[0131] To distinguish the processing performed by the preprocessor (or preprocessing unit) 18, the image (or image data) 17 may also be referred to as the raw image (or raw image data) 17.

[0132] The preprocessor 18 receives the raw image data 17 and preprocesses it to obtain a preprocessed image (or preprocessed image data) 19. For example, the preprocessing performed by the preprocessor 18 may include cropping, color format conversion (e.g., from RGB to YCbCr), color correction, or noise reduction. It is understood that the preprocessing unit 18 may be an optional component.

[0133] The video encoder (or encoder) 20 is used to receive preprocessed image data 19 and provide encoded image data 21.

[0134] The communication interface 22 in the decoding device 12 can be used to: receive encoded image data 21 and send encoded image data 21 (or other arbitrarily processed version) to another device such as the encoding device 14 or any other device through the communication channel 13 for storage or direct reconstruction.

[0135] Encoding device 14 includes decoder 30, and optionally may include communication interface (or communication unit) 28, post-processor (or post-processing unit) 32 and display device 34.

[0136] The communication interface 28 in the encoding device 14 is used to receive encoded image data 21 (or other arbitrary processed version) directly from the decoding device 12 or from any other decoding device such as a storage device, for example, the storage device is an encoded image data storage device, and provides the encoded image data 21 to the decoder 30.

[0137] Communication interfaces 22 and 28 can be used to send or receive encoded image data (or encoded data 21) through a direct communication link between the decoding device 12 and the encoding device 14, such as a direct wired or wireless connection, or through any type of network, such as a wired network, a wireless network or any combination thereof, any type of private network and public network or any combination thereof.

[0138] For example, the communication interface 22 can be used to encapsulate the encoded image data 21 into a suitable format such as a message, and / or process the encoded image data using any type of transmission encoding or processing, so as to transmit it on a communication link or communication network.

[0139] Communication interface 28 corresponds to communication interface 22. For example, it can be used to receive transmitted data and process the transmitted data using any type of corresponding transmission decoding or processing and / or decapsulation to obtain encoded image data 21.

[0140] Both communication interface 22 and communication interface 28 can be configured as a one-way communication interface or a two-way communication interface as indicated by the arrow pointing from the decoding device 12 to the corresponding communication channel 13 of the encoding device 14 in FIG1, and can be used to send and receive messages, etc., to establish a connection, confirm and exchange any other information related to the communication link and / or data transmission such as encoded image data transmission, etc.

[0141] Video decoder (or decoder) 30 is used to receive encoded image data 21 and provide decoded image data (or decoded image data) 31.

[0142] The post-processor 32 is used to post-process the decoded image data 31 (also known as the reconstructed image data) to obtain post-processed image data 33. The post-processing performed by the post-processing unit 32 may include, for example, color format conversion (e.g., from YCbCr to RGB), color adjustment, trimming or resampling, or any other processing to generate the decoded image data 31 for display by the display device 34, etc.

[0143] Display device 34 is used to receive post-processed image data 33 to display the image to a user or viewer. Display device 34 can be or includes any type of display for representing the reconstructed image, such as an integrated or external display screen or monitor. For example, the display screen may include a liquid crystal display (LCD), an organic light emitting diode (OLED) display, a plasma display, a projector, a micro LED display, a liquid crystal on silicon (LCoS), a digital light processor (DLP), or any other type of display screen.

[0144] The encoding / decoding system 10 also includes a training engine 25, which is used to train the encoder 20 (especially the entropy coding unit 270 in the encoder 20) or the decoder 30 (especially the entropy decoding unit 304 in the decoder 30) to entropy encode the image block to be encoded according to the estimated probability distribution obtained. For a detailed description of the training engine 25, please refer to the following method test example.

[0145] Although Figure 1 illustrates the decoding device 12 and the encoding device 14 as independent devices, device embodiments may also include both the decoding device 12 and the encoding device 14, or the functions of both the decoding device 12 and the encoding device 14, i.e., simultaneously including the decoding device 12 or its corresponding functions and the encoding device 14 or its corresponding functions. In these embodiments, the decoding device 12 or its corresponding functions and the encoding device 14 or its corresponding functions may be implemented using the same hardware and / or software, or by separate hardware and / or software, or any combination thereof.

[0146] As described, the presence and (precise) division of different units or functions in the decoding device 12 and / or encoding device 14 shown in Figure 1 may vary depending on the actual device and application, which is obvious to those skilled in the art.

[0147] Please refer to Figure 2, which is an exemplary block diagram of the device 200 provided in the embodiment of this application. The device 200 can be used as any one or both of the decoding device 12 and encoding device 14 in Figure 1.

[0148] The processor 202 in device 200 may be a central processing unit. Alternatively, the processor 202 may be any other type of device or multiple devices, existing or to be developed in the future, capable of manipulating or processing information. While the disclosed implementation may be implemented using a single processor, such as the processor 202 shown in the figure, using more than one processor is faster and more efficient.

[0149] In one implementation, the memory 204 in device 200 may be a read-only memory (ROM) device or a random access memory (RAM) device. Any other suitable type of storage device may be used as memory 204. Memory 204 may include code and data 206 accessed by processor 202 via bus 212. Memory 204 may also include an operating system 208 and an application program 210, which includes at least one program that allows processor 202 to perform the methods described herein. For example, application program 210 may include applications 1 to N, and also includes a video encoding / decoding application that performs the methods described herein.

[0150] Device 200 may also include one or more output devices, such as display 218. In one example, display 218 may be a touch-sensitive display that combines a display with a touch-sensitive element that can be used to sense touch input. Display 218 may be coupled to processor 202 via bus 212.

[0151] Although bus 212 in device 200 is described herein as a single bus, bus 212 may include multiple buses. Furthermore, auxiliary storage may be directly coupled to other components of device 200 or accessed via a network, and may include a single integrated unit such as a memory card or multiple units such as multiple memory cards. Therefore, device 200 can have a wide variety of configurations.

[0152] For some basic 3D meshes, such as blendshape animation meshes, 3D meshes from multiple keyframe animations with a large temporal span, and multiple similar 3D meshes in the same scene, the original arrangement order has low temporal correlation. Existing technologies directly perform dynamic mesh encoding and decoding on such 3D mesh sequences, which is limited by the inter-frame prediction effect, resulting in low transmission and / or storage efficiency. The method provided in this application embodiment can perform efficient mesh encoding and decoding on 3D meshes with low temporal correlation.

[0153] The method provided in this application embodiment can obtain the bitstream at the decoding end, obtain the decoded three-dimensional mesh sequence through decoding, and then convert it into a three-dimensional mesh sequence consistent with the original input order based on the conversion information, which is the required fourth basic three-dimensional mesh.

[0154] The basic 3D mesh in this embodiment of the application will be described below with reference to Figure 3. As shown in Figure 3, the 3D mesh includes a visible 3D mesh (a 3D mesh used for display or rendering) and a basic 3D mesh. The visible 3D mesh includes a composite 3D mesh and a native 3D mesh. The native 3D mesh is a visible 3D mesh constructed based on images or generated based on acquisition devices. The composite 3D mesh is a visible 3D mesh synthesized based on the basic 3D mesh. The basic 3D mesh is a 3D mesh selected / fused from the native 3D mesh, or generated based on data from the basic 3D mesh, used to synthesize the composite 3D mesh.

[0155] The base 3D mesh can be selected / blended from native 3D meshes or generated based on 3D asset data. The base 3D mesh can be used to synthesize 3D meshes. Base 3D meshes include, but are not limited to, blendshape animation meshes. 3D asset data includes, but is not limited to, captured images from various perspectives, skeletal animation data, and 3D model data. Synthesized 3D meshes include, but are not limited to, facial animation meshes and cloth meshes.

[0156] The method for selecting / merging the base 3D mesh from the native 3D mesh can be any approach that can be conceived by those skilled in the art. This application does not limit this approach.

[0157] For example, a base 3D mesh can be generated by extracting fixed meshes. This can be done by extracting certain native 3D meshes at intervals from multiple native 3D meshes as the base 3D mesh.

[0158] For example, a fusion method can be used to generate a base 3D mesh. This involves weighted fusion of two or more native 3D meshes to obtain a base 3D mesh.

[0159] For example, a basic 3D mesh can be generated through construction. This can be achieved by moving vertex positions or changing connectivity relationships on top of a native 3D mesh.

[0160] The method for synthesizing a basic 3D mesh can be any approach that can be conceived by those skilled in the art. This application does not limit this approach in its embodiments.

[0161] For example, a 3D mesh generation algorithm can be used to obtain a synthetic 3D mesh based on the differences between multiple basic 3D meshes. This can be achieved by linearly weighting the differences between multiple basic 3D meshes.

[0162] For example, a 3D mesh animation generation algorithm (such as the blendshape generation algorithm) can be used to obtain a synthetic 3D mesh based on a basic 3D mesh.

[0163] The method for generating a basic three-dimensional mesh based on 3D asset data can employ any approach that can be conceived by those skilled in the art. This application does not limit this approach.

[0164] For example, a series of basic 3D meshes can be directly synthesized from images collected from various perspectives in 3D asset data.

[0165] For example, a basic 3D mesh can be obtained from 3D asset data through methods such as animation generation, baking, and direct mesh editing.

[0166] Figure 4 illustrates an encoding method provided in an embodiment of this application. As shown in Figure 4, the method includes:

[0167] S401. Obtain the second basic three-dimensional mesh sequence and transformation information based on the first basic three-dimensional mesh sequence.

[0168] The aforementioned first basic 3D mesh sequence is used to generate at least one synthetic 3D mesh.

[0169] The proposed encoding length of the second basic three-dimensional mesh sequence is less than the proposed encoding length of the first basic three-dimensional mesh sequence.

[0170] The fact that the proposed encoding length of the second basic 3D mesh sequence is less than the proposed encoding length of the first basic 3D mesh sequence specifically means that:

[0171] Assuming the same encoding algorithm is used to encode the first basic 3D mesh sequence and the second basic 3D mesh sequence, the size of the storage space occupied by the encoded data obtained by encoding the second basic 3D mesh sequence (the length of the encoded data) is smaller than the size of the storage space occupied by the encoded data obtained by encoding the first basic 3D mesh sequence (the length of the encoded data).

[0172] The aforementioned conversion information can indicate how to obtain the first basic three-dimensional mesh sequence based on the second basic three-dimensional mesh sequence. Optionally, it can also indicate how to obtain the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence. For the latter, the decoding end can infer how to obtain the first basic three-dimensional mesh sequence based on the second basic three-dimensional mesh. In this embodiment, the former is used as an example for explanation, but it is applicable to the latter and will not be described again.

[0173] In one possible implementation, the first basic 3D mesh sequence can be transformed to obtain the second basic 3D mesh sequence.

[0174] The information provided includes the conversion method.

[0175] In one possible implementation, the aforementioned transformation information is used to indicate that the method for obtaining the second basic 3D mesh sequence based on the first basic 3D mesh sequence is sorting, which can also be called a one-to-one transformation or one-to-one mapping.

[0176] In one possible implementation, the aforementioned transformation information is used to indicate that the method for obtaining the second basic 3D mesh sequence based on the first basic 3D mesh sequence is segmentation and sorting, which can also be called one-to-many transformation or one-to-many mapping.

[0177] In one possible implementation, the aforementioned transformation information is used to indicate that the method for obtaining the second basic 3D mesh sequence based on the first basic 3D mesh sequence is geometric transformation and sorting, which can also be called many-to-one transformation or many-to-one mapping.

[0178] In one possible implementation, the basic 3D meshes in the first basic 3D mesh sequence can be sorted to obtain the second basic 3D mesh sequence. Since only the 3D meshes in the basic 3D mesh sequence are sorted, the number of basic 3D meshes in the basic 3D mesh sequences before and after sorting is the same.

[0179] As shown in Figure 5, the order of the basic three-dimensional mesh 1-2 in the first basic three-dimensional mesh sequence can be changed from 2 to 3 to obtain the basic three-dimensional mesh 2-3 in the second basic three-dimensional mesh sequence.

[0180] As shown in Figure 5, the order of the basic three-dimensional meshes 1-51 in the first basic three-dimensional mesh sequence can be changed from 51 to 4 to obtain the basic three-dimensional meshes 2-4 in the second basic three-dimensional mesh sequence.

[0181] As shown in Figure 5, the order of the basic three-dimensional meshes 1-52 in the first basic three-dimensional mesh sequence can be changed from 52 to 30 to obtain the basic three-dimensional meshes 2-30 in the second basic three-dimensional mesh sequence.

[0182] Sorting refers to adjusting the order of basic 3D meshes in a basic 3D mesh sequence based on their correlation, so as to map / convert a first basic 3D mesh sequence with low temporal correlation to a second basic 3D mesh sequence with higher temporal correlation. As shown in Figure 5, each basic 3D mesh in the first basic 3D mesh sequence is an independent 3D mesh model, and the original arrangement does not satisfy temporal continuity. Encoding according to the first basic 3D mesh sequence results in poor encoding performance. However, after sorting, the second basic 3D mesh sequence has higher temporal continuity, and the encoding performance is improved accordingly.

[0183] As shown in Figure 6, the first basic three-dimensional mesh sequence includes basic three-dimensional mesh 1-1, basic three-dimensional mesh 1-2, basic three-dimensional mesh 1-3, basic three-dimensional mesh 1-4 and basic three-dimensional mesh 1-5.

[0184] The second basic 3D mesh sequence can be obtained by sorting the basic 3D meshes in the first basic 3D mesh sequence, as follows:

[0185] The order of the basic 3D mesh 1-3 in the basic 3D mesh sequence is changed from 3 to 1 to obtain the basic 3D mesh 2-1;

[0186] The order of the basic 3D meshes 1-5 in the basic 3D mesh sequence is changed from 5 to 2 to obtain basic 3D mesh 2-2;

[0187] By changing the order of the basic 3D meshes 1-4 in the basic 3D mesh sequence from 4 to 3, we obtain the basic 3D meshes 2-3;

[0188] The order of the basic 3D mesh 1-1 in the basic 3D mesh sequence is changed from 1 to 4 to obtain the basic 3D mesh 2-4;

[0189] The order of the basic 3D mesh 1-2 in the basic 3D mesh sequence is changed from 2 to 5 to obtain basic 3D mesh 2-5.

[0190] As can be seen from Figure 6, the one-to-one transformation only changes the order of the basic 3D meshes in the basic 3D mesh sequence, and does not change the number of basic 3D meshes.

[0191] The specific implementation of the basic 3D mesh sorting can be any method that can be conceived by those skilled in the art, and the embodiments of this application do not limit the specific implementation of the basic 3D mesh sorting. The purpose of basic 3D mesh sorting is to change the encoding order of the basic 3D mesh to reduce the basic 3D mesh prediction residual, making the basic 3D mesh prediction residual smaller, thereby reducing the bit rate.

[0192] It is understood that the basic 3D mesh sequence is generally encoded by inter-frame prediction. Encoding the basic 3D mesh sequence by inter-frame prediction requires encoding the different 3D mesh data between adjacent basic 3D meshes in the basic 3D mesh sequence. However, the method provided in this application can reduce the data size of the different 3D mesh data between adjacent 3D meshes in the 3D mesh sequence by sorting the 3D mesh sequence.

[0193] For example, the basic 3D mesh sequence 1 includes basic 3D mesh 1, basic 3D mesh 2, and basic 3D mesh 3.

[0194] The size of the different 3D mesh data between base 3D mesh 1 and base 3D mesh 2 is 900 megabytes.

[0195] The size of the different 3D mesh data between the basic 3D mesh 2 and the basic 3D mesh 3 is 500 megabytes.

[0196] The size of the different 3D mesh data between the basic 3D mesh 1 and the basic 3D mesh 3 is 400 megabytes.

[0197] Since basic 3D mesh 1 and basic 3D mesh 2 are adjacent in basic 3D mesh sequence 1, and basic 3D mesh 2 and basic 3D mesh 3 are adjacent in basic 3D mesh sequence 1, the encoding method of basic 3D mesh sequence 1 needs to encode the different 3D mesh data between basic 3D mesh 1 and basic 3D mesh 2 and the different 3D mesh data between basic 3D mesh 2 and basic 3D mesh 3. Therefore, the total size of the different 3D mesh data that needs to be encoded is 1400 megabytes (900 megabytes + 500 megabytes).

[0198] However, if the order of basic 3D mesh sequence 1 is reversed to obtain basic 3D mesh sequence 2, since basic 3D mesh 1 and basic 3D mesh 3 are adjacent in basic 3D mesh sequence 2, and basic 3D mesh 3 and basic 3D mesh 2 are adjacent in basic 3D mesh sequence 2, the encoding method of basic 3D mesh sequence 2 needs to encode the different 3D mesh data between basic 3D mesh 1 and basic 3D mesh 3 and the different 3D mesh data between basic 3D mesh 3 and basic 3D mesh 2. Therefore, the total size of the different 3D mesh data that needs to be encoded is 900 megabytes (400 megabytes + 500 megabytes).

[0199] This shows that sorting the basic 3D mesh sequence can reduce the amount of data required for encoding the basic 3D mesh sequence, thereby improving the transmission efficiency and / or storage efficiency of the basic 3D mesh sequence.

[0200] For example, the three-dimensional meshes in a three-dimensional mesh sequence can be sorted according to the similarity between the underlying three-dimensional meshes.

[0201] For example, a basic 3D mesh can be selected from the first basic 3D mesh sequence as the first basic 3D mesh in the second basic 3D mesh sequence; the basic 3D mesh with the highest similarity to the first basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining N-1 unselected basic 3D meshes in the first basic 3D mesh sequence as the second basic 3D mesh in the second basic 3D mesh sequence; the basic 3D mesh with the highest similarity to the second basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining N-2 unselected basic 3D meshes in the first basic 3D mesh sequence as the third basic 3D mesh in the second basic 3D mesh sequence; ..., the 3D mesh with the highest similarity to the (M-2)th 3D mesh in the second basic 3D mesh sequence can be selected from the remaining 2 unselected basic 3D meshes in the first basic 3D mesh sequence as the (M-1)th basic 3D mesh in the second basic 3D mesh sequence; and the basic 3D mesh with the highest similarity to the (M-1)th basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining 1 unselected basic 3D meshes in the first basic 3D mesh sequence as the Mth basic 3D mesh in the second basic 3D mesh sequence.

[0202] For example, one basic 3D mesh can be selected from the first basic 3D mesh sequence as the first basic 3D mesh in the second basic 3D mesh sequence; the basic 3D mesh with the highest similarity to the first basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining N-1 unselected basic 3D meshes in the first basic 3D mesh sequence as the second basic 3D mesh; the basic 3D mesh with the highest similarity to the first basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining N-2 unselected basic 3D meshes in the first basic 3D mesh sequence as the third basic 3D mesh in the second basic 3D mesh sequence; ..., the basic 3D mesh with the highest similarity to the first basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining 2 unselected basic 3D meshes in the first basic 3D mesh sequence as the (M-1)th basic 3D mesh in the second basic 3D mesh sequence; and the basic 3D mesh with the highest similarity to the first 3D mesh in the second basic 3D mesh sequence can be selected from the remaining 1 unselected basic 3D meshes in the first basic 3D mesh sequence as the Mth basic 3D mesh in the second basic 3D mesh sequence.

[0203] For example, the basic 3D meshes in the basic 3D mesh sequence can be sorted according to the distances between them. These distances can be the distances between vertices, such as the sum of the L2 distances of all vertices, or the average of the L1 distances.

[0204] For example, a basic 3D mesh can be selected from the first basic 3D mesh sequence as the first basic 3D mesh in the second basic 3D mesh sequence; the basic 3D mesh closest to the first basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining N-1 unselected basic 3D meshes in the first basic 3D mesh sequence as the second basic 3D mesh in the second basic 3D mesh sequence; the basic 3D mesh closest to the second basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining N-2 unselected basic 3D meshes in the first basic 3D mesh sequence as the third basic 3D mesh in the second basic 3D mesh sequence; ..., the basic 3D mesh closest to the (M-2)th basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining 2 unselected basic 3D meshes in the first basic 3D mesh sequence as the (M-1)th basic 3D mesh in the second basic 3D mesh sequence; and the basic 3D mesh closest to the (M-1)th basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining 1 unselected basic 3D meshes in the first basic 3D mesh sequence as the Mth basic 3D mesh in the second basic 3D mesh sequence.

[0205] For example, one basic 3D mesh can be selected from the first basic 3D mesh sequence as the first basic 3D mesh in the second basic 3D mesh sequence; the basic 3D mesh closest to the first basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining N-1 unselected basic 3D meshes in the first basic 3D mesh sequence as the second basic 3D mesh; the basic 3D mesh closest to the first basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining N-2 unselected basic 3D meshes in the first basic 3D mesh sequence as the third basic 3D mesh in the second basic 3D mesh sequence, and so on. The basic 3D mesh closest to the first basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining 2 unselected basic 3D meshes in the first basic 3D mesh sequence as the (M-1)th basic 3D mesh in the second basic 3D mesh sequence; and the basic 3D mesh closest to the first basic 3D mesh in the second basic 3D mesh sequence can be selected from the remaining 1 unselected basic 3D meshes in the first basic 3D mesh sequence as the Mth basic 3D mesh in the second basic 3D mesh sequence.

[0206] As another example, the underlying 3D meshes in the underlying 3D mesh sequence can be sorted according to the variance of the underlying 3D mesh vertices.

[0207] This application does not limit the specific implementation of how to select a basic three-dimensional mesh from the first basic three-dimensional mesh sequence as the first basic three-dimensional mesh in the second basic three-dimensional mesh sequence.

[0208] For example, the first basic 3D mesh in the first basic 3D mesh sequence can be used as the first basic 3D mesh in the second basic 3D mesh sequence.

[0209] For example, a basic 3D mesh can be randomly selected from the first basic 3D mesh sequence as the first basic 3D mesh in the second basic 3D mesh sequence.

[0210] For example, the similarity between any two basic 3D meshes in the first basic 3D mesh sequence can be calculated, and then the basic 3D mesh with the highest average similarity in the first basic 3D mesh sequence can be used as the first basic 3D mesh in the second basic 3D mesh sequence.

[0211] For example, the distance between any two basic 3D meshes in the first basic 3D mesh sequence can be calculated, and then the basic 3D mesh with the smallest average distance in the first basic 3D mesh sequence can be used as the first basic 3D mesh in the second basic 3D mesh sequence.

[0212] For example, the basic 3D mesh that is closest to or has the highest similarity to the preset basic 3D mesh in the first basic 3D mesh sequence can be used as the first basic 3D mesh in the second basic 3D mesh sequence. The preset 3D mesh can be the base 3D mesh of any basic 3D mesh in the first basic 3D mesh sequence.

[0213] Alternatively, the basic 3D mesh sequence can be sorted by following these steps:

[0214] (1) First, sort all the first basic 3D mesh sequences according to distance or similarity. The minimum value can be selected as the first frame and added to the sorted frame set.

[0215] (2) Next, select the frame with the smallest distance to the previous frame or a certain frame in the sorted frames as the next frame, and add this frame to the set of sorted frames. When selecting the frame with the smallest distance, you can first perform geometric transformation on some frames, and then select the frame with the smallest distance.

[0216] (3) Repeat step (2) until all frames are sorted.

[0217] (4) The three-dimensional mesh sequence generated according to (3) is the second basic three-dimensional mesh sequence, and transformation information is generated based on the three-dimensional mesh sequences before and after sorting.

[0218] In one possible implementation, the basic three-dimensional meshes in the first basic three-dimensional mesh sequence are divided and sorted to obtain the second basic three-dimensional mesh sequence.

[0219] As shown in Figure 7, the basic three-dimensional mesh 1-1 and basic three-dimensional mesh 1-2 in the first basic three-dimensional mesh sequence can be geometrically transformed to obtain basic three-dimensional mesh 2-1.

[0220] It can be seen that multiple different basic 3D meshes can be transformed into the same basic 3D mesh through geometric transformation.

[0221] As shown in Figure 8, the first basic three-dimensional mesh sequence includes basic three-dimensional mesh 1-1, basic three-dimensional mesh 1-2, basic three-dimensional mesh 1-3, basic three-dimensional mesh 1-4, basic three-dimensional mesh 1-5 and basic three-dimensional mesh 1-6.

[0222] Geometric transformations can be performed on the six basic 3D meshes in the first basic 3D mesh sequence to obtain three geometrically transformed basic 3D meshes, specifically:

[0223] Geometric transformations are performed on the basic 3D mesh 1-1 and basic 3D mesh 1-3 to obtain basic 3D mesh 2-2.

[0224] Geometric transformations are performed on the basic 3D meshes 1-2 and 1-4 to obtain the basic 3D mesh 2-3.

[0225] Geometric transformations are performed on the basic 3D meshes 1-5 and 1-6 to obtain the basic 3D mesh 2-1.

[0226] The three basic 3D meshes obtained from geometric transformations can be sorted to obtain a second basic 3D mesh sequence, specifically:

[0227] Use the basic 3D mesh 2-1 as the first basic 3D mesh in the second basic 3D mesh sequence;

[0228] Use the basic 3D mesh 2-2 as the second basic 3D mesh in the second basic 3D mesh sequence;

[0229] The basic 3D mesh 2-3 is used as the third basic 3D mesh in the second basic 3D mesh sequence.

[0230] For example, the geometric transformation described above is at least one of translation, rotation, or scaling; that is, the geometric transformation can be one or any combination of translation, rotation, scaling, etc. It is understood that the object of the geometric transformation operation is the base 3D mesh in the base 3D mesh sequence.

[0231] In one possible implementation, the transformation information further includes parameter information, which indicates the operating parameters of the geometric transformation.

[0232] For example, when the geometric transformation is a translation, the parameter information may include the object being operated on and the corresponding translation parameters.

[0233] For example, when the geometric transformation is translation, the object of operation in the parameter information is the basic 3D mesh 1-2, and the translation parameters are translation 2 in the x direction, translation 1 in the y direction, and translation -1 in the z direction.

[0234] For example, when the geometric transformation is a rotation, the parameter information may include the object being manipulated and the corresponding rotation parameters.

[0235] For example, when the geometric transformation is rotation, the object of operation in the parameter information is the basic 3D mesh 1-1, and the rotation parameters are 20° rotation in the x direction, 40° rotation in the y direction, and -20° rotation in the z direction.

[0236] For example, when the geometric transformation is scaling, the parameter information may include the object being operated on and the corresponding scaling parameters.

[0237] For example, when the geometric transformation is scaling, the object of operation in the parameter information is the basic 3D mesh 1-1, and the scaling parameters are 20% scaling in the x direction, 60% scaling in the y direction, and 120% scaling in the z direction.

[0238] In one possible implementation, the aforementioned parameter information is used to indicate how to obtain the geometrically transformed base 3D mesh based on the base 3D mesh in the first base 3D mesh sequence, that is, to indicate how to obtain the geometrically transformed base 3D mesh based on the base 3D mesh before the geometric transformation.

[0239] For example, if the basic 3D mesh 1-1 is translated by 2 units in the x direction, 1 unit in the y direction, and -1 unit in the z direction to obtain the basic 3D mesh 2-1, then the parameter information can be: basic 3D mesh 1-1, translation parameters are translation 2 in the x direction, translation 1 in the y direction, and translation -1 in the z direction.

[0240] In another possible implementation, the above parameter information is used to indicate how to obtain the base 3D mesh in the first base 3D mesh sequence based on the base 3D mesh after geometric transformation, that is, to indicate how to obtain the base 3D mesh before geometric transformation based on the base 3D mesh after geometric transformation.

[0241] For example, basic 3D mesh 1-1 is obtained by translating 2 units in the x direction, 1 unit in the y direction, and -1 unit in the z direction to get basic 3D mesh 2-1. Then, basic 3D mesh 2-1 needs to be translated -2 ​​units in the x direction, -1 units in the y direction, and 1 unit in the z direction to get basic 3D mesh 1-1. The parameter information can be: basic 3D mesh 2-1, translation parameters are translation -2 units in the x direction, translation -1 units in the y direction, and translation 1 unit in the z direction.

[0242] In one possible implementation, the order of operations between geometric transformation and sorting is variable. One implementation is to perform geometric transformation first and then sort, while another is to sort first and then perform geometric transformation. For example, in the first basic 3D mesh sequence "1, 2, 3, 4, 5, 6", geometric transformation of 3 yields 4', and then sorting yields the second basic 3D mesh sequence "4, 2, 1, 6, 5" (where 4' also corresponds to 3). If sorting is performed first, then geometric transformation occurs: the first basic 3D mesh sequence "1, 2, 3, 4, 5, 6" is sorted to obtain "3, 4, 2, 1, 6, 5", then 3 is geometrically transformed to obtain 4', finally resulting in the second basic 3D mesh sequence "4, 2, 1, 6, 5". Note that the transformation information is inconsistent in this case, and the corresponding decoding ends differ.

[0243] In one possible implementation, the basic three-dimensional meshes in the first basic three-dimensional mesh sequence can be geometrically transformed and sorted to obtain the second basic three-dimensional mesh sequence.

[0244] The second basic three-dimensional mesh obtained by dividing the first basic three-dimensional mesh can be called a sub-mesh, that is, the first basic three-dimensional mesh in the above-mentioned first basic three-dimensional mesh sequence can be divided into sub-meshes.

[0245] As shown in Figure 9, the basic three-dimensional mesh 1-1 in the first basic three-dimensional mesh sequence can be divided into basic three-dimensional mesh 2-1, basic three-dimensional mesh 2-2 and basic three-dimensional mesh 2-3.

[0246] As shown in Figure 10, the first basic three-dimensional mesh sequence includes basic three-dimensional mesh 1-1, basic three-dimensional mesh 1-2 and basic three-dimensional mesh 1-3.

[0247] The three basic 3D meshes in the first basic 3D mesh sequence described above can be divided into six basic 3D meshes, specifically:

[0248] Divide the basic 3D mesh 1-1 into basic 3D mesh 2-3 and basic 3D mesh 2-6;

[0249] Divide the basic 3D mesh 1-2 into basic 3D mesh 2-2 and basic 3D mesh 2-5;

[0250] The basic 3D mesh 1-3 is divided into basic 3D mesh 2-1 and basic 3D mesh 2-4.

[0251] The six basic 3D meshes obtained from the segmentation can be sorted to obtain a second basic 3D mesh sequence, specifically:

[0252] Use the basic 3D mesh 2-1 as the first basic 3D mesh in the second basic 3D mesh sequence;

[0253] Use the basic 3D mesh 2-2 as the second basic 3D mesh in the second basic 3D mesh sequence;

[0254] Use the basic 3D mesh 2-3 as the 3rd basic 3D mesh in the second basic 3D mesh sequence;

[0255] Use the basic 3D mesh 2-4 as the 4th basic 3D mesh in the second basic 3D mesh sequence;

[0256] Use the basic 3D mesh 2-5 as the 5th basic 3D mesh in the second basic 3D mesh sequence;

[0257] The basic 3D mesh 2-6 is used as the 6th basic 3D mesh in the second basic 3D mesh sequence.

[0258] In one possible implementation, the order of splitting and sorting is variable. One feasible approach is to split first and then sort, while another feasible approach is to sort first and then split.

[0259] In one possible implementation, the transformation information includes mapping information, which indicates the mapping relationship between the base three-dimensional meshes in the first base three-dimensional mesh sequence and the base three-dimensional meshes in the second base three-dimensional mesh sequence.

[0260] In one possible implementation, the aforementioned conversion information further includes reference 3D mesh information, which is used to indicate that the reference 3D mesh of the base 3D mesh in the second base 3D mesh sequence is a synthetic 3D mesh obtained based on the base 3D mesh in the second base 3D mesh sequence.

[0261] In one possible implementation, the transformation information further includes transformation identification information, which indicates that the second basic three-dimensional mesh sequence was obtained by transformation through another basic three-dimensional mesh (i.e., the first basic three-dimensional mesh).

[0262] Table 1 shows one possible implementation of the conversion information. As shown in Table 1, the conversion information may include a first indicator bit, conversion identification information, conversion method information, mapping relationship, reference 3D mesh information, parameter information, and synthesis information.

[0263] The first indicator bit is used to indicate whether the current bitstream contains conversion identifier information.

[0264] Table 1

[0265] As shown in Table 2, the above transformation information can also be a two-dimensional array. In special cases, when there is a one-dimensional array that is sequential, it can be represented by one dimension; or it can be a tree or table structure.

[0266] Table 2

[0267] As shown in Table 2, the first basic 3D mesh in the first basic 3D mesh sequence is transformed into the sixth basic 3D mesh in the second basic 3D mesh sequence; the second basic 3D mesh in the first basic 3D mesh sequence is transformed into the first basic 3D mesh in the second basic 3D mesh sequence; the third basic 3D mesh in the first basic 3D mesh sequence is transformed into the fifth basic 3D mesh in the second basic 3D mesh sequence; the fourth basic 3D mesh in the first basic 3D mesh sequence is transformed into the second basic 3D mesh in the second basic 3D mesh sequence; and the fifth basic 3D mesh in the first basic 3D mesh sequence is transformed into the third basic 3D mesh in the second basic 3D mesh sequence. The 6th basic 3D mesh in the first basic 3D mesh sequence is transformed into the 9th basic 3D mesh in the second basic 3D mesh sequence; the 7th basic 3D mesh in the first basic 3D mesh sequence is transformed into the 4th basic 3D mesh in the second basic 3D mesh sequence; the 8th basic 3D mesh in the first basic 3D mesh sequence is transformed into the 10th basic 3D mesh in the second basic 3D mesh sequence; the 9th basic 3D mesh in the first basic 3D mesh sequence is transformed into the 8th basic 3D mesh in the second basic 3D mesh sequence; the 10th basic 3D mesh in the first basic 3D mesh sequence is transformed into the 7th basic 3D mesh in the second basic 3D mesh sequence.

[0268] The specific method for determining the conversion information is not limited in the embodiments of this application. For example, the conversion information can be determined by sorting or retrieval. In addition, since the conversion changes the order of the first basic three-dimensional mesh sequence, the reference frame of the current three-dimensional mesh can be determined at the same time as the conversion information, and the reference frame selection result can be encoded into the bitstream.

[0269] The specific method for retrieving and determining conversion information may include: first, selecting a starting frame, then, based on this frame and according to rules such as distance, retrieving corresponding frames of one or more frames from the basic three-dimensional mesh sequence, and recording the retrieval results; then continuing the retrieval until all frames have been retrieved, and generating conversion information based on the retrieval results.

[0270] S402, Encode the second basic three-dimensional mesh sequence and transformation information into a bitstream.

[0271] In one possible implementation, the aforementioned second basic three-dimensional mesh sequence can be encoded into a bitstream.

[0272] The specific implementation of encoding the above-mentioned second basic three-dimensional mesh sequence into the code stream can adopt any implementation method that can be conceived by those skilled in the art, and the embodiments of this application do not limit it.

[0273] For example, a basic 3D mesh sequence can be losslessly encoded into a bitstream.

[0274] For example, a basic 3D mesh sequence can be lossily encoded into a bitstream.

[0275] For example, an encoder can be used to encode the second basic 3D mesh sequence and encode the encoding result into the bitstream; the encoding algorithm can be a dynamic mesh coding and decoding algorithm, such as the method in the Moving Picture Experts Group (MPEG) 3D mesh coding (VDMC) standard. Typically, the encoding algorithm includes vertex position encoding and connectivity encoding.

[0276] The connectivity of a 3D mesh, i.e., the index values ​​of the three vertices contained in each triangle, can be encoded using lossy or lossless algorithms such as EdgeBreaker (an algorithm for compressing 3D triangular meshes, outputting triangles as a set of topological symbols) and Tube Feature Aggregation Network (TFAN). For example, the EdgeBreaker algorithm uses a finite set of state symbols ("CLERS") to identify each triangle based on its relative position to the currently encoded set of triangles, thus completing the traversal encoding of all triangles. In the process of traversing all triangles, the traversal order of all vertices can be further obtained, which is used for subsequent encoding of vertex coordinates and other attribute information.

[0277] The vertex positions of a 3D mesh, i.e., the 3D coordinates of the vertices contained in each triangle, can be determined using motion vector prediction, differential prediction, or the vertex position compression algorithm adopted by the MPEG VDMC standard.

[0278] In one possible implementation, the aforementioned second basic 3D mesh sequence can be encoded into a bitstream based on a synthetic 3D mesh. Here, the synthetic 3D mesh is obtained from the basic 3D meshes in the second basic 3D mesh sequence.

[0279] For example, when encoding the above-mentioned second basic three-dimensional mesh sequence into the bitstream, the synthesized three-dimensional mesh can be used as a reference frame in the encoding.

[0280] For example, when encoding the basic 3D meshes 2-3 in the second basic 3D mesh sequence described above, the synthetic 3D mesh 1 can be used as the reference frame. When encoding the basic 3D meshes 2-4 in the second basic 3D mesh sequence described above, the synthetic 3D mesh 2 can be used as the reference frame. When encoding the basic 3D meshes 2-5 in the second basic 3D mesh sequence described above, the synthetic 3D mesh 3 can be used as the reference frame.

[0281] In one possible implementation, a synthetic 3D mesh can be generated based on the base 3D mesh in the second base 3D mesh sequence.

[0282] In one possible implementation, a synthetic 3D mesh can be generated from the base 3D meshes in the second base 3D mesh sequence.

[0283] In one possible implementation, synthetic information can be generated.

[0284] The aforementioned synthetic information is used to indicate how to generate at least one synthetic 3D mesh based on the aforementioned first basic 3D mesh sequence.

[0285] In one possible implementation, the synthetic information can be determined based on the method used to generate the synthetic 3D mesh.

[0286] For example, if a weighted basic 3D mesh is used to generate a synthetic 3D mesh, then the synthetic information consists of the weights of the basic 3D mesh and the index of the basic 3D mesh.

[0287] For example, if a 3D mesh generation algorithm (such as an animation generation algorithm for blendshape 3D meshes) is used to generate a synthetic 3D mesh, then the synthetic information is the basis function and / or weight value corresponding to the 3D mesh generation algorithm.

[0288] In one possible implementation, synthetic information can be generated and encoded into the bitstream. This synthetic information indicates how to generate the at least one synthetic 3D mesh based on the first basic 3D mesh sequence.

[0289] In one possible implementation, the above conversion step may no longer be a separate process, but rather a frame conversion module is added to each frame's encoding method. Specifically, the basic 3D mesh of each frame is converted, and the resulting basic 3D mesh is encoded to obtain the encoding result before proceeding to the next step of decoding.

[0290] As shown in Figure 11, the basic three-dimensional grids in the first basic three-dimensional grid sequence can be frame-converted individually to obtain the basic three-dimensional grids in the second basic grid sequence. Then, the basic three-dimensional grids in the second basic grid sequence can be frame-coded individually to obtain the sub-bitstream corresponding to each basic three-dimensional grid in the second basic grid sequence.

[0291] The encoding methods used for the above-mentioned conversion information may include direct encoding to the bitstream or entropy encoding and encoding to the bitstream.

[0292] The method provided in this application embodiment adds a conversion to the basic three-dimensional mesh sequence before encoding it, thereby reducing the intended encoding length of the basic three-dimensional mesh sequence and thus improving the transmission efficiency and / or storage efficiency of the basic three-dimensional mesh sequence.

[0293] The method provided in this application embodiment constructs a second basic three-dimensional grid sequence with stronger temporal continuity for some first basic three-dimensional grid sequences with low correlation in the original arrangement order through a transformation method. It can be encoded by a dynamic grid encoding and decoding algorithm, which greatly improves the efficiency of inter-frame encoding. On the above test sequence, the bit rate can be reduced by 50% under the condition of the same quality.

[0294] Figure 12 illustrates a decoding method provided in an embodiment of this application. As shown in Figure 12, the method includes:

[0295] S1201. Obtain the third basic three-dimensional mesh sequence and transformation information from the bitstream.

[0296] In one possible implementation, conversion information can be obtained based on the bitstream. The bitstream is then three-dimensionally decoded to obtain a third basic three-dimensional mesh sequence.

[0297] The aforementioned transformation information indicates how to obtain the fourth basic three-dimensional mesh sequence based on the aforementioned third basic three-dimensional mesh sequence.

[0298] In one possible implementation, the third basic 3D mesh sequence corresponds to the second basic 3D mesh sequence, and the fourth basic 3D mesh sequence corresponds to the first basic 3D mesh sequence. The aforementioned transformation information indicates how to obtain the second basic 3D mesh sequence based on the aforementioned first basic 3D mesh sequence.

[0299] It is understandable that, since the third basic 3D mesh sequence corresponds to the second basic 3D mesh sequence and the fourth basic 3D mesh sequence corresponds to the first basic 3D mesh sequence, by obtaining the second basic 3D mesh sequence based on the first basic 3D mesh sequence, it is possible to determine how to obtain the fourth basic 3D mesh sequence based on the third basic 3D mesh sequence.

[0300] The aforementioned fourth basic three-dimensional mesh sequence is used to generate at least one synthetic three-dimensional mesh.

[0301] The proposed encoding length of the third basic three-dimensional mesh sequence is less than that of the fourth basic three-dimensional mesh sequence.

[0302] The fact that the proposed encoding length of the third basic 3D mesh sequence is less than that of the fourth basic 3D mesh sequence specifically means:

[0303] Assuming the same encoding algorithm is used to encode the third basic 3D mesh sequence and the fourth basic 3D mesh sequence, the size of the storage space occupied by the encoded data obtained by encoding the third basic 3D mesh sequence (or the length of the encoded data) is smaller than the size of the storage space occupied by the encoded data obtained by encoding the fourth basic 3D mesh sequence (or the length of the encoded data).

[0304] In one possible implementation, the aforementioned transformation information also includes transformation method information, which indicates that the method for obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence is sorting.

[0305] In one possible implementation, the aforementioned transformation information also includes transformation method information, which indicates that the method for obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence is merging and sorting.

[0306] In one possible implementation, the transformation information also includes transformation method information, which indicates that the method of obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence is geometric transformation and sorting.

[0307] In one possible implementation, the transformation information includes mapping information, which indicates the mapping relationship between the base 3D meshes in the third base 3D mesh sequence and the base 3D meshes in the fourth base 3D mesh sequence.

[0308] In one possible implementation, the transformation information further includes transformation identification information, which indicates that the third basic three-dimensional mesh sequence was obtained through transformation.

[0309] In one possible implementation, the aforementioned parameter information is used to indicate the operational parameters of the aforementioned geometric transformation.

[0310] In one possible implementation, the aforementioned conversion information further includes reference 3D mesh information, which is used to indicate that the reference 3D mesh of the base 3D mesh in the third base 3D mesh sequence is a synthetic 3D mesh obtained based on the base 3D mesh in the third base 3D mesh sequence.

[0311] In one possible implementation, the above-mentioned bitstream can be decoded based on the synthesized three-dimensional mesh to obtain a third basic three-dimensional mesh sequence, wherein the above-mentioned synthesized three-dimensional mesh is obtained from the basic three-dimensional mesh in the third basic three-dimensional mesh sequence.

[0312] For example, a synthetic 3D mesh can be used as a reference frame to decode the above bitstream to obtain a third basic 3D mesh sequence.

[0313] In one possible implementation, the reference frame for the base 3D mesh in the third base mesh sequence can be either a preceding base 3D mesh in the third base mesh sequence or a synthesized 3D mesh. For example, a synthesized 3D mesh synthesized based on synthesis information.

[0314] For example, when acquiring the bitstream, the reference frame of the current base 3D mesh to be decoded is determined based on the reference 3D mesh information as either the preceding base 3D mesh or the synthesized 3D mesh.

[0315] If the reference frame for the current base 3D mesh to be decoded is a preceding base 3D mesh, then the preceding base 3D mesh is directly used as the reference frame for decoding. If the reference frame for the current base 3D mesh to be decoded is a composite 3D mesh, then the preceding base 3D mesh is directly used as the reference frame for decoding. Otherwise, the composite 3D mesh is used as the reference frame for decoding.

[0316] In one possible implementation, a synthetic 3D mesh can be generated based on the synthetic information.

[0317] For example, by combining the weights and indices of the base 3D mesh with the synthetic information, a weighted base 3D mesh can be used to generate a synthetic 3D mesh.

[0318] For example, if the synthetic information is the basis function and / or weight value corresponding to the 3D mesh generation algorithm, then the 3D mesh generation algorithm can be used to generate a synthetic 3D mesh.

[0319] The method provided in this application can provide more accurate reference frame selection for decoding, especially for 3D mesh sequences with low temporal correlation. Even after conversion, there is still a problem that some reference frames and the current frame to be encoded are quite different. For example, in blendshape compression, there are some intermediate shapes and combined shapes, which usually have a high degree of similarity to some basic 3D meshes generated by blendshape animation. However, in order to improve fidelity, the details of the basic 3D mesh are modified compared to the basic 3D mesh generated by blendshape animation. Therefore, the synthetic 3D mesh generated by the basic 3D mesh with specific weights can be used as the reference frame in decoding to encode and decode intermediate shapes and combined shapes, which can achieve higher compression efficiency.

[0320] S1202. Based on the transformation information, obtain the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence.

[0321] In one possible implementation, the basic three-dimensional meshes in the third basic three-dimensional mesh sequence can be sorted according to the above-mentioned transformation information to obtain the fourth basic three-dimensional mesh sequence.

[0322] As shown in Figure 6, according to the conversion information, the basic 3D mesh 1-1 in the first basic 3D mesh sequence is converted into the basic 3D mesh 2-4 in the second basic 3D mesh sequence. Since the first basic 3D mesh corresponds one-to-one with the fourth basic 3D mesh, and the second basic 3D mesh corresponds one-to-one with the third basic 3D mesh, the basic 3D mesh 1-1 in the first basic 3D mesh sequence is equivalent to the basic 3D mesh 4-1 in the fourth basic 3D mesh sequence, and the basic 3D mesh 2-4 in the second basic 3D mesh sequence is equivalent to the basic 3D mesh 3-4 in the third basic 3D mesh sequence. Therefore, by sorting, the sorting of the basic 3D mesh 3-4 in the third basic 3D mesh sequence can be changed from 4 to 1 to obtain the basic 3D mesh 4-1 in the fourth basic 3D mesh sequence.

[0323] Referring to Figure 6, similarly, the fourth basic 3D mesh sequence is obtained by sorting the basic 3D meshes in the third basic 3D mesh sequence according to the above transformation information, specifically as follows:

[0324] The order of the basic 3D mesh 3-5 in the third basic 3D mesh sequence is changed from 5 to 2 to obtain the basic 3D mesh 4-2 in the fourth basic 3D mesh sequence.

[0325] The order of the basic 3D mesh 3-1 in the third basic 3D mesh sequence is changed from 1 to 3 to obtain the basic 3D mesh 4-3 in the fourth basic 3D mesh sequence.

[0326] The basic 3D mesh 3-3 in the third basic 3D mesh sequence is ordered from 3 to 4 to obtain the basic 3D mesh 4-4 in the fourth basic 3D mesh sequence.

[0327] The order of the basic 3D mesh 3-2 in the third basic 3D mesh sequence is changed from 2 to 5 to obtain the basic 3D mesh 4-5 in the fourth basic 3D mesh sequence.

[0328] In one possible implementation, the fourth basic three-dimensional mesh sequence can be obtained by geometrically transforming and sorting the basic three-dimensional meshes in the third basic three-dimensional mesh sequence based on the above transformation information.

[0329] As shown in Figure 8, according to the conversion information, the encoding end performs geometric transformations on basic 3D meshes 1-1 and 1-3 to obtain basic 3D mesh 2-2. Geometric transformations are then performed on basic 3D meshes 1-2 and 1-4 to obtain basic 3D mesh 2-3. Finally, geometric transformations are performed on basic 3D meshes 1-5 and 1-6 to obtain basic 3D mesh 2-1.

[0330] Then the decoding end can obtain the basic three-dimensional mesh 3-1 corresponding to the basic three-dimensional mesh 2-1, the basic three-dimensional mesh 3-2 corresponding to the basic three-dimensional mesh 2-2, and the basic three-dimensional mesh 3-3 corresponding to the basic three-dimensional mesh 2-3 through decoding.

[0331] Based on the transformation information, the six basic three-dimensional meshes in the third basic three-dimensional mesh sequence are geometrically transformed to obtain three basic three-dimensional meshes, specifically:

[0332] Geometric transformations of the basic 3D mesh 3-1 yield basic 3D meshes 4-5 and 4-6.

[0333] Geometric transformations of the basic 3D mesh 3-2 yield basic 3D mesh 4-1 and basic 3D mesh 4-3.

[0334] Geometric transformations of the basic 3D mesh 3-3 yield basic 3D mesh 4-2 and basic 3D mesh 4-4.

[0335] The six basic 3D meshes obtained from the geometric transformation can be sorted according to the transformation information to obtain the fourth basic 3D mesh sequence mentioned above, specifically:

[0336] The basic 3D mesh 4-1, which corresponds to the basic 3D mesh 1-1, is taken as the first basic 3D mesh in the fourth basic 3D mesh sequence;

[0337] The basic 3D mesh 4-2, which corresponds to the basic 3D mesh 1-2, is taken as the second basic 3D mesh in the fourth basic 3D mesh sequence;

[0338] The basic 3D mesh 4-3, which corresponds to the basic 3D mesh 1-3, is taken as the 3rd basic 3D mesh in the fourth basic 3D mesh sequence;

[0339] The basic 3D mesh 4-4, which corresponds to the basic 3D mesh 1-4, is taken as the 4th basic 3D mesh in the fourth basic 3D mesh sequence;

[0340] The basic 3D meshes 4-5, which correspond to the basic 3D meshes 1-5, are taken as the 5th basic 3D mesh in the fourth basic 3D mesh sequence;

[0341] The basic 3D meshes 4-6, which correspond to the basic 3D meshes 1-6, are taken as the 6th basic 3D mesh in the fourth basic 3D mesh sequence.

[0342] In one possible implementation, the basic three-dimensional mesh in the third basic three-dimensional mesh sequence can be geometrically transformed based on the parameter information in the above transformation information.

[0343] In one possible implementation, if the encoding end uses a scheme of geometric transformation followed by sorting, then the decoding end uses sorting followed by geometric transformation. If the encoding end uses a scheme of sorting followed by geometric transformation, then the decoding end uses geometric transformation followed by sorting.

[0344] In one possible implementation, the basic three-dimensional meshes in the third basic three-dimensional mesh sequence can be merged and sorted according to the above-mentioned transformation information to obtain the fourth basic three-dimensional mesh sequence.

[0345] As shown in Figure 10, according to the conversion information, the encoding end divides the basic 3D mesh 1-1 into basic 3D mesh 2-3 and basic 3D mesh 2-6; divides the basic 3D mesh 1-2 into basic 3D mesh 2-2 and basic 3D mesh 2-5; and divides the basic 3D mesh 1-3 into basic 3D mesh 2-1 and basic 3D mesh 2-4.

[0346] The decoding end can then obtain the basic three-dimensional mesh 3-1 corresponding to the basic three-dimensional mesh 2-1, the basic three-dimensional mesh 3-2 corresponding to the basic three-dimensional mesh 2-2, the basic three-dimensional mesh 3-3 corresponding to the basic three-dimensional mesh 2-3, the basic three-dimensional mesh 3-4 corresponding to the basic three-dimensional mesh 2-4, the basic three-dimensional mesh 3-5 corresponding to the basic three-dimensional mesh 2-5, and the basic three-dimensional mesh 3-6 corresponding to the basic three-dimensional mesh 2-6.

[0347] Then, the six basic three-dimensional meshes in the above third basic three-dimensional mesh sequence can be merged into three basic three-dimensional meshes, specifically:

[0348] Merge basic 3D mesh 3-3 and basic 3D mesh 3-6 into basic 3D mesh 4-1;

[0349] Merge basic 3D mesh 3-2 and basic 3D mesh 3-5 into basic 3D mesh 4-2;

[0350] Merge the basic 3D mesh 3-1 and basic 3D mesh 3-4 into basic 3D mesh 4-3.

[0351] The three merged basic 3D meshes can be sorted according to the transformation information to obtain the fourth basic 3D mesh sequence mentioned above, specifically:

[0352] The basic 3D mesh 4-1, which corresponds to the basic 3D mesh 1-1, is taken as the first 3D mesh in the fourth basic 3D mesh sequence;

[0353] The basic 3D mesh 4-2, which corresponds to the basic 3D mesh 1-2, is taken as the second 3D mesh in the fourth basic 3D mesh sequence;

[0354] The basic 3D mesh 4-3, which corresponds to the basic 3D mesh 1-3, is taken as the 3rd 3D mesh in the fourth basic 3D mesh sequence.

[0355] In one possible implementation, if the encoding end uses a scheme of first splitting and then sorting, the decoding end uses a scheme of first mapping and then merging. If the encoding end uses a scheme of first sorting and then splitting, the decoding end uses a scheme of first merging and then sorting.

[0356] In one possible implementation, the aforementioned transformation information includes a first identifier and a second identifier of the aforementioned basic three-dimensional mesh.

[0357] In one possible implementation, if a target base mesh exists in the third base 3D mesh sequence, a fourth base 3D mesh sequence can be obtained based on the transformation information from the third base 3D mesh sequence. The target base mesh is a base 3D mesh with a different first and second identifier. Specifically:

[0358] The order of the basic three-dimensional mesh 3-1 in the third basic three-dimensional mesh sequence is changed from 1 to 3 to obtain the basic three-dimensional mesh 4-3 in the fourth basic three-dimensional mesh sequence;

[0359] The basic 3D mesh 3-2 in the third basic 3D mesh sequence is ordered from 2 to 5 to obtain the basic 3D mesh 4-5 in the fourth basic 3D mesh sequence.

[0360] The basic 3D mesh 3-3 in the third basic 3D mesh sequence is ordered by changing the order from 3 to 4 to obtain the basic 3D mesh 4-4 in the fourth basic 3D mesh sequence.

[0361] The order of the basic 3D meshes 3-4 in the third basic 3D mesh sequence is changed from 4 to 1 to obtain the basic 3D mesh 4-1 in the fourth basic 3D mesh sequence.

[0362] The basic 3D meshes 3-5 in the third basic 3D mesh sequence are ordered from 5 to 2 to obtain the basic 3D mesh 4-2 in the fourth basic 3D mesh sequence.

[0363] In one possible implementation, the basic three-dimensional mesh can be output according to the sequence number of the basic three-dimensional mesh in the fourth basic three-dimensional mesh sequence mentioned above.

[0364] For example, the basic 3D mesh 4-1 is numbered 5, the basic 3D mesh 4-2 is numbered 3, the basic 3D mesh 4-3 is numbered 1, the basic 3D mesh 4-4 is numbered 2, and the basic 3D mesh 4-5 is numbered 4.

[0365] Obtain the basic 3D mesh 4-1. Since the index of the basic 3D mesh 4-1 is 5, and since the basic 3D mesh with index 4 has not been output yet, the basic 3D mesh 4-1 will not be output. The basic 3D mesh 4-1 can be stored in the storage unit first.

[0366] Obtain the basic 3D mesh 4-2. Since the index of the basic 3D mesh 4-2 is 3, and since the basic 3D mesh with index 2 has not been output yet, the basic 3D mesh 4-2 will not be output. The basic 3D mesh 4-2 can be stored in the storage unit first.

[0367] Obtain the basic 3D mesh 4-3. Since the index of the basic 3D mesh 4-3 is 1, output the basic 3D mesh 4-3.

[0368] Obtain the basic 3D mesh 4-4. Since the index of the basic 3D mesh 4-4 is 2 and the basic 3D mesh with index 1 has already been output, output the basic 3D mesh 4-4.

[0369] Since the basic 3D mesh with index 2 has been output, the basic 3D mesh 4-2 with index 3 can be read from the storage unit and output.

[0370] Obtain the basic 3D mesh 4-5. Since the index of the basic 3D mesh 4-4 is 4 and the basic 3D mesh with index 3 has already been output, output the basic 3D mesh 4-5.

[0371] Since the basic 3D mesh with serial number 4 has been output, the basic 3D mesh with serial number 5, 4-1, can be read from the storage unit and output.

[0372] The index of the fourth basic 3D mesh is related to the transformation. For example, during the transformation, the index of the basic 3D mesh before the transformation can be assigned to the basic 3D mesh after the transformation. If the index of basic 3D mesh 1-4 is 4, and basic 3D mesh 1-4 is transformed into basic 3D mesh 2-3, then the index of basic 3D mesh 2-3 will also be 4.

[0373] In one possible implementation, the above conversion step can no longer be a separate post-processing step, but rather a frame conversion module can be added to each frame's decoding process. Specifically, each frame's basic 3D mesh is frame-decoded, and the resulting basic 3D mesh in the third basic mesh sequence is converted to obtain the basic 3D mesh in the fourth basic 3D mesh sequence before proceeding to the next decoding step. The conversion and encoding at the decoding end in this implementation can be either to first convert the first basic 3D mesh sequence and then encode it, or to use frame-level encoding, i.e., obtaining the converted first frame, performing frame encoding, then continuing to convert and encode the second frame, then continuing to convert and encode the third frame, until all frames are encoded.

[0374] As shown in Figure 13, the sub-code stream corresponding to the basic three-dimensional grid in the second basic three-dimensional grid sequence can be frame-decoded separately to obtain the basic three-dimensional grid in the corresponding third basic three-dimensional grid sequence. Then, the basic three-dimensional grid in the third basic three-dimensional grid sequence can be frame-converted separately to obtain the basic three-dimensional grid in the fourth basic three-dimensional grid sequence.

[0375] The frame conversion module can perform one-to-one, one-to-many, and many-to-one conversions. For example, the frame conversion of basic 3D meshes 3-1, 3-2, 3-3, 3-4, 3-5, and 3-6 aims to obtain basic 3D meshes 4-1 and 4-2.

[0376] First, we can obtain basic 3D mesh 4-1 from basic 3D mesh 3-1, obtain basic 3D mesh 4-2 from basic 3D mesh 3-4, obtain basic 3D mesh 4-1 from basic 3D mesh 3-2, and then merge the obtained basic 3D mesh 4-1 into the basic 3D mesh 4-1 obtained from basic 3D mesh 3-1. Then, we can obtain basic 3D mesh 4-1 from basic 3D mesh 3-3 and merge the obtained basic 3D mesh 4-1 into the 3D mesh 1 obtained from basic 3D mesh 3-1. Finally, we can obtain basic 3D mesh 4-2 from basic 3D mesh 3-5 and merge the obtained basic 3D mesh 4-2 into the 3D mesh 2 obtained from basic 3D mesh 3-3. Finally, we can obtain basic 3D mesh 4-2 from basic 3D mesh 3-6 and merge the obtained basic 3D mesh 4-2 into the 3D mesh 2 obtained from basic 3D mesh 3-4.

[0377] The encoding scheme corresponding to the frame conversion module can use the bitstream structure shown in Table 1, or it can adopt another bitstream structure shown in Table 3.

[0378] Table 3

[0379] In one possible implementation, the transformation doesn't involve explicitly changing the order of the third basic 3D mesh sequence using a mapping module. Instead, it achieves an implicit mapping by detecting whether a 3D mesh is output. The specific implementation is as follows: First, frame-by-frame decoding is performed, checking if the third basic 3D mesh is the output basic 3D mesh. If not, the current basic 3D mesh is stored, and decoding proceeds to the next frame. If it is, the current basic 3D mesh is output as the basic 3D mesh in the fourth basic 3D mesh sequence, and the previously stored basic 3D mesh is checked for output. This completes all decoding. The result is that the output basic 3D mesh is the desired fourth basic 3D mesh sequence, with the same order as the first basic 3D mesh sequence. For example, the first basic 3D mesh sequence is: basic 3D mesh 1, basic 3D mesh 2, basic 3D mesh 3, and basic 3D mesh 4. The encoding end converts this sequence to: basic 3D mesh 2, basic 3D mesh 4, basic 3D mesh 1, and basic 3D mesh 3. The decoding end decodes each frame. When decoding basic 3D mesh 2 and basic 3D mesh 4, the basic 3D meshes are not output. Instead, the decoding results of basic 3D mesh 2 and basic 3D mesh 4 are stored in the basic 3D mesh storage. When decoding basic 3D mesh 1, it is detected that basic 3D mesh 1 should be output, then the basic 3D meshes are stored, and basic 3D mesh 2 is output. Then, basic 3D mesh 3 is decoded, basic 3D mesh 3 is detected and output, and basic 3D meshes are stored again, and basic 3D mesh 4 is output. The effect achieved is that the output fourth basic 3D mesh sequence is: basic 3D mesh 1, basic 3D mesh 2, basic 3D mesh 3, and basic 3D mesh 4, which is consistent with the first basic 3D mesh sequence.

[0380] In one possible implementation, at least one synthetic three-dimensional mesh can be generated based on the aforementioned fourth basic three-dimensional mesh sequence.

[0381] As shown in Figure 14, a synthetic three-dimensional mesh can be obtained based on the basic three-dimensional mesh 4-1, basic three-dimensional mesh 4-2, ..., basic three-dimensional mesh 4-N in the above-mentioned fourth basic three-dimensional mesh sequence.

[0382] In one possible implementation, synthesis information can be obtained based on the bitstream, which is used to indicate how to generate the at least one synthetic 3D mesh based on the fourth basic 3D mesh sequence; and at least one synthetic 3D mesh can be generated based on the fourth basic 3D mesh sequence.

[0383] For example, synthesis information can be obtained based on the bitstream, and at least one synthesized 3D mesh can be generated according to the aforementioned fourth basic 3D mesh sequence. The synthesis information can indicate that the synthesized 3D mesh satisfies:

[0384] Where F(i) is the synthesized 3D mesh, Basemesh is the shape of the base 3D mesh, which is usually a neutral shape, and w i It represents the weights; blendshape is based on a 3D mesh.

[0385] This application also provides an encoding method, the method comprising:

[0386] The encoder transforms the first basic 3D mesh sequence to obtain the second basic 3D mesh sequence and encodes the transformation information into the bitstream.

[0387] The transformation steps can include a one-to-one transformation of basic 3D meshes from a first basic 3D mesh sequence to a second basic 3D mesh sequence; a many-to-one transformation of multiple basic 3D meshes in the first basic 3D mesh sequence to a single basic 3D mesh; and a one-to-many transformation of a single basic 3D mesh in the first basic 3D mesh sequence to multiple basic 3D meshes. The transformation object can be the first basic 3D mesh sequence, its sub-basic 3D meshes, or geometric transformations of the first basic 3D mesh sequence. The method for determining the transformation information can be sorting or retrieval. Since the transformation changes the order of the first basic 3D mesh sequence, the reference frame of the current basic 3D mesh can be determined simultaneously when determining the transformation information, and the reference frame selection result can be encoded into the bitstream.

[0388] The encoder encodes the second basic 3D mesh sequence and encodes the result into the bitstream.

[0389] This application also provides a decoding method, the method comprising:

[0390] The decoder receives the bitstream and performs decoding. The decoding algorithm should correspond to the encoding algorithm described above.

[0391] The decoder transforms the third basic 3D grid sequence based on the transformation information obtained from the bitstream to obtain the fourth basic 3D grid sequence. The order of the fourth basic 3D grid sequence is consistent with that of the first basic 3D grid sequence. The transformation at the decoding end and the transformation at the encoding end are in one-to-one correspondence, but it can also include one-to-one transformation, one-to-many transformation, and many-to-one transformation.

[0392] The specific implementation method is as follows:

[0393] Parse the conversion identifier information in the conversion information to determine whether to perform a conversion;

[0394] Parse the conversion method information in the conversion information to determine the conversion type;

[0395] The order of the third basic 3D mesh sequence is changed according to this index;

[0396] Based on the transformation information, perform the corresponding basic 3D mesh merging operation or geometric transformation, or directly obtain the fourth basic 3D mesh.

[0397] This application embodiment also provides an encoder, which is used for:

[0398] The encoder transforms the first basic 3D mesh sequence to obtain the second basic 3D mesh sequence, and encodes the transformation information into the bitstream;

[0399] The encoder encodes the second basic three-dimensional mesh sequence to obtain the encoded bitstream;

[0400] Optionally, the encoder can also be used to: generate a synthetic 3D mesh based on a base 3D mesh, the synthetic 3D mesh being used for inter-frame prediction in encoding, and to encode the synthetic information into the bitstream.

[0401] This application also provides an encoder, the decoder being used for:

[0402] The decoder decodes the decoded bitstream in the bitstream to obtain the third basic three-dimensional mesh sequence;

[0403] Based on the conversion information obtained from the bitstream, the third basic three-dimensional mesh sequence is converted to obtain the fourth basic three-dimensional mesh sequence.

[0404] Optionally, the decoder can also be used to generate a synthetic 3D mesh based on the base 3D mesh and the synthetic information obtained from the bitstream, and the synthetic 3D mesh can be used for inter-frame prediction in decoding.

[0405] The encoding device used to perform the above encoding method will now be described with reference to Figure 15.

[0406] It is understood that, in order to achieve the above-mentioned functions, the encoding device includes hardware and / or software modules corresponding to the execution of each function. Based on the algorithm steps of the various examples described in conjunction with the embodiments disclosed herein, the embodiments of this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in a hardware-driven or software-driven manner depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application in conjunction with the embodiments, but such implementation should not be considered beyond the scope of the embodiments of this application.

[0407] This application embodiment can divide the encoding device into functional modules according to the above method example. For example, each function can be divided into its own functional modules, or two or more functions can be integrated into one processing module. The integrated modules can be implemented in hardware. It should be noted that the module division in this embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods.

[0408] With each functional module divided according to its corresponding function, Figure 15 shows a possible schematic diagram of the encoding device involved in the above embodiments. This device can be an electronic device, a module applied to an electronic device (such as a processor, chip, or chip system), or a logic node, logic module, or software that can implement all or part of the functions of an electronic device. As shown in Figure 15, the encoding device 1500 may include a conversion unit 1501 and an encoding unit 1502.

[0409] The conversion unit 1501 is used to obtain a second basic three-dimensional mesh sequence and conversion information based on a first basic three-dimensional mesh sequence. The first basic three-dimensional mesh sequence is used to generate at least one synthetic three-dimensional mesh. The proposed encoding length of the second basic three-dimensional mesh sequence is less than the proposed encoding length of the first basic three-dimensional mesh sequence. The conversion information indicates how to obtain the first basic three-dimensional mesh sequence based on the second basic three-dimensional mesh sequence.

[0410] Encoding unit 1502 is used to encode the aforementioned second basic three-dimensional mesh sequence and transformation information into a bitstream.

[0411] In one possible implementation, the conversion unit 1501 is specifically used to sort the basic three-dimensional meshes in the first basic three-dimensional mesh sequence to obtain the second basic three-dimensional mesh sequence.

[0412] In one possible implementation, the conversion unit 1501 is specifically used to: divide and sort the basic three-dimensional meshes in the first basic three-dimensional mesh sequence to obtain the second basic three-dimensional mesh sequence.

[0413] In one possible implementation, the conversion unit 1501 is specifically used to: perform geometric transformation and sorting on the basic three-dimensional meshes in the first basic three-dimensional mesh sequence to obtain the second basic three-dimensional mesh sequence.

[0414] In one possible implementation, the transformation information further includes parameter information, which indicates the operating parameters of the geometric transformation.

[0415] In one possible implementation, the transformation information includes mapping information, which indicates the mapping relationship between the base three-dimensional meshes in the first base three-dimensional mesh sequence and the base three-dimensional meshes in the second base three-dimensional mesh sequence.

[0416] In one possible implementation, the conversion information further includes conversion method information, which indicates that the method for obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is sorting.

[0417] In one possible implementation, the aforementioned transformation information also includes transformation method information, which indicates that the method for obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is segmentation and sorting.

[0418] In one possible implementation, the transformation information further includes transformation method information, which indicates that the method of obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is geometric transformation and sorting.

[0419] In one possible implementation, the encoding unit 1502 is specifically used to: encode the above-mentioned second basic three-dimensional mesh sequence into a bitstream based on the synthetic three-dimensional mesh, wherein the synthetic three-dimensional mesh is obtained from the basic three-dimensional mesh in the second basic three-dimensional mesh sequence.

[0420] In one possible implementation, the aforementioned conversion information further includes reference 3D mesh information, which is used to indicate that the reference 3D mesh of the base 3D mesh in the third base 3D mesh sequence is a synthetic 3D mesh obtained based on the base 3D mesh in the third base 3D mesh sequence.

[0421] In one possible implementation, the transformation information further includes transformation identification information, which indicates that the third basic three-dimensional mesh sequence was obtained through transformation.

[0422] In one possible implementation, the encoding unit 1502 is further configured to: generate synthetic information, which indicates how to generate the at least one synthetic three-dimensional mesh based on the first basic three-dimensional mesh sequence.

[0423] In one possible implementation, the encoding unit 1502 is further configured to: encode the above-mentioned synthetic information into the above-mentioned bitstream.

[0424] The decoding device used to perform the above decoding method will be described below with reference to Figure 16.

[0425] It is understood that, in order to achieve the above-mentioned functions, the decoding device includes hardware and / or software modules that perform the respective functions. Based on the algorithm steps of the examples described in the embodiments disclosed herein, the embodiments of this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application in conjunction with the embodiments, but such implementation should not be considered beyond the scope of the embodiments of this application.

[0426] This application embodiment can divide the decoding device into functional modules according to the above method example. For example, each function can be divided into its own functional modules, or two or more functions can be integrated into one processing module. The integrated modules can be implemented in hardware. It should be noted that the module division in this embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods.

[0427] With each functional module corresponding to its respective function, Figure 16 shows a possible schematic diagram of the decoding device involved in the above embodiments. This device can be an electronic device, a module applied to an electronic device (such as a processor, chip, or chip system), or a logic node, logic module, or software that can implement all or part of the functions of an electronic device. As shown in Figure 16, the decoding device 1600 may include a decoding unit 1601 and a conversion unit 1602.

[0428] The decoding unit 1601 is used to obtain a third basic three-dimensional mesh sequence and conversion information from the bitstream. The conversion information indicates how to obtain a fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence. The fourth basic three-dimensional mesh sequence is used to generate at least one synthetic three-dimensional mesh. The proposed coding length of the third basic three-dimensional mesh sequence is less than the proposed coding length of the fourth basic three-dimensional mesh sequence.

[0429] The conversion unit 1602 is used to obtain the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence according to the conversion information.

[0430] In one possible implementation, the conversion unit 1602 is specifically used to: sort the basic three-dimensional meshes in the third basic three-dimensional mesh sequence according to the above conversion information to obtain the fourth basic three-dimensional mesh sequence.

[0431] In one possible implementation, the conversion unit 1602 is specifically used to: merge and sort the basic three-dimensional meshes in the third basic three-dimensional mesh sequence according to the above conversion information to obtain the fourth basic three-dimensional mesh sequence.

[0432] In one possible implementation, the conversion unit 1602 is specifically used to: perform geometric transformation and sorting on the basic three-dimensional meshes in the third basic three-dimensional mesh sequence according to the above conversion information to obtain the fourth basic three-dimensional mesh sequence.

[0433] In one possible implementation, the aforementioned parameter information is used to indicate the operational parameters of the aforementioned geometric transformation.

[0434] In one possible implementation, the transformation information includes mapping information used to indicate the mapping relationship between the base three-dimensional meshes in the third base three-dimensional mesh sequence and the base three-dimensional meshes in the fourth base three-dimensional mesh sequence.

[0435] In one possible implementation, the aforementioned transformation information also includes transformation method information, which indicates that the method for obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence is sorting.

[0436] In one possible implementation, the aforementioned transformation information also includes transformation method information, which indicates that the method for obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence is merging and sorting.

[0437] In one possible implementation, the transformation information also includes transformation method information, which indicates that the method of obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence is geometric transformation and sorting.

[0438] In one possible implementation, the decoding unit 1601 is specifically used to: decode the above-mentioned bitstream based on the synthesized three-dimensional grid to obtain a third basic three-dimensional grid sequence, wherein the above-mentioned synthesized three-dimensional grid is obtained from the basic three-dimensional grid in the third basic three-dimensional grid sequence.

[0439] In one possible implementation, the aforementioned conversion information further includes reference 3D mesh information, which is used to indicate that the reference 3D mesh of the base 3D mesh in the third base 3D mesh sequence is a synthetic 3D mesh obtained based on the base 3D mesh in the third base 3D mesh sequence.

[0440] In one possible implementation, the transformation information further includes transformation identification information, which indicates that the third basic three-dimensional mesh sequence was obtained through transformation.

[0441] In one possible implementation, the decoding unit 1601 is further configured to: acquire synthesis information based on the bitstream, the synthesis information being used to indicate how to generate the at least one synthetic three-dimensional mesh based on the fourth basic three-dimensional mesh sequence.

[0442] In one possible implementation, the decoding unit 1601 is further configured to: generate at least one synthetic three-dimensional mesh based on the aforementioned fourth basic three-dimensional mesh sequence.

[0443] Figure 17 shows a schematic diagram of an encoding / decoding system 1700, which can be applied to a mesh encoding / decoding scenario. This system is used to execute any of the encoding or decoding methods provided in the embodiments of this application. The encoding end of the encoding / decoding system 1700 includes an encoding device 1701 and a decoding device 1702.

[0444] The encoding device 1701 is used at the encoding end of the encoding and decoding system. The encoding end can also be called the cloud side or the server end. Therefore, the encoding device 1701 can also be called the cloud side device or the server end device.

[0445] The encoding device 1701 may include an encoding module and an encapsulation module.

[0446] The encoding module is used to convert and encode the input first basic three-dimensional mesh sequence to obtain a compressed bitstream.

[0447] The encapsulation module is used to encapsulate and package information such as the basic 3D mesh code stream to obtain the transport stream and send the transport stream.

[0448] Decoding device 1702 is used at the decoding end of the encoding and decoding system. The decoding end can also be called the end-side / client end. Therefore, decoding device 1701 can also be called end-side device or client end device.

[0449] The decoding device 1702 includes a decapsulation module and a decoding module.

[0450] The decapsulation module is used to receive the transport stream and parse out the third-level basic 3D mesh code stream from it.

[0451] The decoding module is used to decode and reconstruct the fourth basic 3D mesh sequence from the third basic 3D mesh bitstream, and it can perform rendering or storage operations on the end side.

[0452] Figure 18 shows a schematic diagram of the structure of a chip 1800. The chip 1800 can be the chip of the above-mentioned encoding or decoding device, and the chip 1800 includes one or more processors 1801 and interface circuits 1802.

[0453] Optionally, the aforementioned chip 1800 may also include a bus 1803.

[0454] The processor 1801 may be an integrated circuit chip with signal processing capabilities. In its implementation, the steps of the above encoding / decoding method can be completed by the integrated logic circuitry in the processor 1801 or by software instructions.

[0455] Optionally, the processor 1801 described above can be a general-purpose processor, a digital signal processing (DSP) processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the various methods and steps disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor, etc.

[0456] The interface circuit 1802 can be used to send or receive data, instructions or information. The processor 1801 can use the data, instructions or other information received by the interface circuit 1802 to process the data, instructions or other information, and can send the processed information out through the interface circuit 1802.

[0457] Optionally, the chip may also include memory, which may include read-only memory and random access memory, providing operation instructions and data to the processor. A portion of the memory may also include non-volatile random access memory (NVRAM).

[0458] Optionally, the memory stores executable software modules or data structures, and the processor can execute corresponding operations by calling the operation instructions stored in the memory (which may be stored in the operating system).

[0459] Optionally, the chip can be used in the encoding or decoding apparatus involved in the embodiments of this application. Optionally, the interface circuit 1802 can be used to output the execution result of the processor 1801. For the encoding and decoding methods provided in one or more embodiments of this application, please refer to the foregoing embodiments, which will not be repeated here.

[0460] It should be noted that the functions of the processor 1801 and the interface circuit 1802 can be implemented through hardware design, software design, or a combination of hardware and software; no restrictions are imposed here.

[0461] Figure 19 is a schematic diagram of an electronic device provided in an embodiment of this application. This electronic device can be an encoding device or a decoding device, a chip or functional module in the encoding device, or a chip or functional module in the decoding device. For ease of explanation, Figure 19 only shows the main components of the electronic device, including a processor 1901, a memory 1902, a control circuit 1903, and an input / output device 1904. The processor 1901 is mainly used to process communication protocols and communication data, execute software programs, and process the data of the software programs. The memory 1902 is mainly used to store software programs and data. The control circuit 1903 is mainly used for power supply and the transmission of various electrical signals. The input / output device 1904 is mainly used to receive user input data and output data to the user.

[0462] When the electronic device is a processor 1901, the control circuit 1903 can be a motherboard, and the memory 1902 includes storage media such as hard disks, RAM, and ROM. The processor 1901 can include a baseband processor 1901 and a central processing unit (CPU). The baseband processor is mainly used to process communication protocols and communication data, while the CPU is mainly used to control the entire electronic device, execute software programs, and process data from the software programs. Input / output devices 1904 include displays, keyboards, and mice. The control circuit 1903 can further include or be connected to transceiver circuits or transceivers, such as network cable interfaces, for sending or receiving data or signals, such as for data transmission and communication with other devices. Furthermore, it can also include an antenna for transmitting and receiving wireless signals for data / signal transmission with other devices.

[0463] This application also provides an encoding device, which includes at least one processor. When the at least one processor executes program code or instructions, it implements the above-mentioned related method steps to implement the encoding method in the above embodiments.

[0464] Optionally, the device may further include at least one memory for storing the program code or instructions.

[0465] This application also provides a decoding device, which includes at least one processor. When the at least one processor executes program code or instructions, it implements the above-mentioned related method steps to achieve the decoding method in the above embodiments.

[0466] Optionally, the device may further include at least one memory for storing the program code or instructions.

[0467] This application also provides a computer storage medium storing computer instructions. When the computer instructions are executed on a communication device, the communication device performs the aforementioned method steps to implement the encoding and decoding method in the above embodiments.

[0468] This application also provides a computer program product that, when run on a computer, causes the computer to perform the aforementioned steps to implement the encoding / decoding method described in the above embodiments.

[0469] This application also provides an encoding apparatus, which may specifically be a chip, integrated circuit, component, or module. Specifically, the apparatus may include a connected processor and a memory for storing instructions, or the apparatus may include at least one processor for fetching instructions from external memory. When the apparatus is running, the processor can execute the instructions to cause the chip to perform the encoding methods in the above-described method embodiments.

[0470] This application also provides a decoding device, which may specifically be a chip, integrated circuit, component, or module. Specifically, the device may include a connected processor and a memory for storing instructions, or the device may include at least one processor for fetching instructions from external memory. When the device is running, the processor can execute instructions to cause the chip to perform the decoding methods in the above-described method embodiments.

[0471] This application also provides a bitstream including a second basic 3D mesh sequence and transformation information. The mesh sequence is used to generate at least one synthetic 3D mesh, the proposed encoding length of the second basic 3D mesh sequence is less than the proposed encoding length of the first basic 3D mesh sequence, and the transformation information indicates how to obtain the first basic 3D mesh sequence based on the second basic 3D mesh sequence.

[0472] In one possible implementation, the second basic three-dimensional mesh sequence is obtained by sorting the basic three-dimensional meshes in the first basic three-dimensional mesh sequence.

[0473] In one possible implementation, the second basic three-dimensional mesh sequence is obtained by dividing and sorting the basic three-dimensional meshes in the first basic three-dimensional mesh sequence.

[0474] In one possible implementation, the second basic 3D mesh sequence can be obtained by geometrically transforming and sorting the basic 3D meshes in the first basic 3D mesh sequence.

[0475] In one possible implementation, the transformation information further includes parameter information, which indicates the operating parameters of the geometric transformation.

[0476] In one possible implementation, the conversion information further includes conversion method information, which indicates that the method for obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is sorting.

[0477] In one possible implementation, the aforementioned transformation information also includes transformation method information, which indicates that the method for obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is segmentation and sorting.

[0478] In one possible implementation, the transformation information further includes transformation method information, which indicates that the method of obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence is geometric transformation and sorting.

[0479] In one possible implementation, the aforementioned conversion information further includes reference 3D mesh information, which is used to indicate that the reference 3D mesh of the base 3D mesh in the second base 3D mesh sequence is a synthetic 3D mesh obtained based on the base 3D mesh in the second base 3D mesh sequence.

[0480] In one possible implementation, the transformation information further includes transformation identification information, which indicates that the third basic three-dimensional mesh sequence was obtained through transformation.

[0481] In one possible implementation, the bitstream may further include synthesis information indicating how to generate the at least one synthetic 3D mesh based on the first basic 3D mesh sequence. The synthesis information is then encoded into the bitstream.

[0482] This application also provides an encoding / decoding system, which includes any of the encoding and decoding devices described in this application.

[0483] This application also provides a bitstream storage method, which includes: acquiring and storing the bitstream obtained by the above encoding and decoding method.

[0484] This application also provides a bitstream storage device for acquiring and storing bitstreams obtained by the above-described encoding and decoding methods.

[0485] This application also provides a bitstream transmission method, which includes: acquiring and transmitting the bitstream obtained by the above encoding and decoding method.

[0486] This application also provides a bitstream transmission device for acquiring and transmitting bitstreams obtained by the above-described encoding and decoding methods.

[0487] This application also provides a computer-readable storage medium storing the bitstream obtained by the above-described encoding / decoding method.

[0488] In this embodiment, the device, computer storage medium, computer program product or chip are all used to execute the corresponding methods provided above. Therefore, the beneficial effects that can be achieved can be referred to the beneficial effects of the corresponding methods provided above, and will not be repeated here.

[0489] It should be understood that in the various embodiments of this application, the order of the above-mentioned methods does not imply the order of execution. The execution order of each method should be determined by its function and internal logic, and should not constitute any limitation on the implementation of the embodiments of this application.

[0490] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the embodiments of this application.

[0491] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working methods of the systems, devices, and units described above can be referred to the corresponding methods in the foregoing method embodiments, and will not be repeated here.

[0492] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of the units described above is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.

[0493] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0494] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0495] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of this application, essentially, or the parts that contribute to the prior art, or parts of the technical solutions, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0496] The above description is merely a specific implementation of the embodiments of this application, but the protection scope of the embodiments of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in the embodiments of this application should be included within the protection scope of the embodiments of this application. Therefore, the protection scope of the embodiments of this application should be determined by the protection scope of the claims.

Claims

An encoding method, characterized in that, include: A second basic 3D mesh sequence and transformation information are obtained based on a first basic 3D mesh sequence. The first basic 3D mesh sequence is used to generate at least one first synthetic 3D mesh. The pseudo-encoding length of the second basic 3D mesh sequence is less than the pseudo-encoding length of the first basic 3D mesh sequence. The transformation information indicates how to obtain the first basic 3D mesh sequence based on the second basic 3D mesh sequence. The second basic 3D mesh sequence and the transformation information are encoded into a bitstream. The method according to claim 1, characterized in that, The process of obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence includes: The second basic three-dimensional mesh sequence is obtained by sorting the basic three-dimensional meshes in the first basic three-dimensional mesh sequence. The method according to claim 1, characterized in that, The process of obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence includes: The second basic three-dimensional mesh sequence is obtained by dividing and sorting the basic three-dimensional meshes in the first basic three-dimensional mesh sequence. The method according to claim 1, characterized in that, The process of obtaining the second basic three-dimensional mesh sequence based on the first basic three-dimensional mesh sequence includes: The second basic three-dimensional mesh sequence is obtained by performing geometric transformations and sorting the basic three-dimensional meshes in the first basic three-dimensional mesh sequence. The method according to claim 4, characterized in that, The transformation information includes parameter information, which indicates the operating parameters of the geometric transformation. The method according to any one of claims 2 to 5, characterized in that, The conversion information includes mapping information, which is used to indicate the mapping relationship between the basic three-dimensional meshes in the first basic three-dimensional mesh sequence and the basic three-dimensional meshes in the second basic three-dimensional mesh sequence. The method according to claim 1, characterized in that, The conversion information includes conversion method information, which indicates that the method for obtaining the second basic 3D mesh sequence based on the first basic 3D mesh sequence is any one of the following: Sort; Splitting and sorting; Geometric transformations and sorting; Alternatively, the conversion method information is used to indicate that the method for obtaining the first basic three-dimensional mesh sequence based on the second basic three-dimensional mesh sequence is any of the following: Sort; Sort and merge; Sorting and geometric transformations. The method according to any one of claims 1 to 7, characterized in that, Encoding the second basic 3D mesh sequence into a bitstream includes: The second basic 3D mesh sequence is encoded into the bitstream based on the second synthetic 3D mesh, wherein the second synthetic 3D mesh is obtained based on the basic 3D mesh in the second basic 3D mesh sequence. The method according to claim 8, characterized in that, The conversion information also includes reference 3D mesh information, which is used to indicate that the reference 3D mesh of the basic 3D mesh in the second basic 3D mesh sequence is a synthetic 3D mesh obtained based on the basic 3D mesh in the second basic 3D mesh sequence. The method according to claim 1, characterized in that, The conversion information includes conversion identification information, which indicates that the second basic three-dimensional mesh sequence was obtained through conversion. The method according to any one of claims 1 to 10, characterized in that, The method further includes: Generate synthesis information, which indicates how to generate the at least one first synthesized 3D mesh based on the first basic 3D mesh sequence; The synthesized information is encoded into the bitstream. A decoding method, characterized in that, include: A third basic 3D mesh sequence and transformation information are obtained from the bitstream. The transformation information indicates how to obtain a fourth basic 3D mesh sequence based on the third basic 3D mesh sequence. The fourth basic 3D mesh sequence is used to generate at least one first synthetic 3D mesh. The proposed coding length of the third basic 3D mesh sequence is less than the proposed coding length of the fourth basic 3D mesh sequence. The fourth basic three-dimensional mesh sequence is obtained based on the transformation information and the third basic three-dimensional mesh sequence. The method according to claim 12, characterized in that, The step of obtaining the fourth basic 3D mesh sequence based on the third basic 3D mesh sequence according to the transformation information includes: The fourth basic three-dimensional mesh sequence is obtained by sorting the basic three-dimensional meshes in the third basic three-dimensional mesh sequence according to the transformation information. The method according to claim 12, characterized in that, The step of obtaining the fourth basic 3D mesh sequence based on the third basic 3D mesh sequence according to the transformation information includes: The basic three-dimensional meshes in the third basic three-dimensional mesh sequence are sorted and merged according to the transformation information to obtain the fourth basic three-dimensional mesh sequence. The method according to claim 12, characterized in that, The step of obtaining the fourth basic 3D mesh sequence based on the third basic 3D mesh sequence according to the transformation information includes: The fourth basic three-dimensional mesh sequence is obtained by sorting and geometrically transforming the basic three-dimensional meshes in the third basic three-dimensional mesh sequence according to the transformation information. The method according to claim 15, characterized in that, The transformation information includes parameter information, which indicates the operating parameters of the geometric transformation. The method according to any one of claims 13 to 16, characterized in that, The conversion information includes mapping information, which is used to indicate the mapping relationship between the basic three-dimensional meshes in the third basic three-dimensional mesh sequence and the basic three-dimensional meshes in the fourth basic three-dimensional mesh sequence. The method according to any one of claims 12 to 17, characterized in that, The conversion information includes conversion method information, which indicates that the method for obtaining the fourth basic three-dimensional mesh sequence based on the third basic three-dimensional mesh sequence is any one of the following: Sort; Sort and merge; Sorting and geometric transformations; Alternatively, the conversion method information is used to indicate that the method for obtaining the third basic three-dimensional mesh sequence based on the fourth basic three-dimensional mesh sequence is any of the following: Sort; Splitting and sorting; Geometric transformations and sorting. The method according to any one of claims 12 to 18, characterized in that, The step of obtaining the third basic 3D mesh sequence from the bitstream includes: The code stream is decoded based on the second synthetic 3D mesh to obtain a third basic 3D mesh sequence, wherein the second synthetic 3D mesh is obtained based on the basic 3D mesh in the third basic 3D mesh sequence. The method according to claim 19, characterized in that, The conversion information also includes reference 3D mesh information, which is used to indicate that the reference 3D mesh of the basic 3D mesh in the third basic 3D mesh sequence is a synthetic 3D mesh obtained based on the basic 3D mesh in the third basic 3D mesh sequence. The method according to claim 12, characterized in that, The conversion information also includes conversion identification information, which is used to indicate that the third basic three-dimensional mesh sequence was obtained through conversion. The method according to any one of claims 12 to 21 is characterized in that, The method further includes: At least one first synthetic three-dimensional mesh is generated based on the fourth basic three-dimensional mesh sequence. The method according to claim 22, characterized in that, The step of generating at least one first synthetic 3D mesh based on the fourth basic 3D mesh includes: Based on the bitstream, synthetic information is obtained, which is used to indicate how to generate the at least one first synthetic 3D mesh based on the fourth basic 3D mesh sequence; Based on the synthetic information, at least one first synthetic 3D mesh is generated according to the fourth basic 3D mesh sequence. An encoding device, characterized in that, It includes at least one processor and a memory, wherein the at least one processor executes a program or instructions stored in the memory to cause the encoding device to implement the method of any one of claims 1 to 11. A decoding device, characterized in that, It includes at least one processor and a memory, wherein the at least one processor executes a program or instructions stored in the memory to cause the decoding device to implement the method of any one of claims 12 to 23. An encoding / decoding system, characterized in that, include: The encoding device according to claim 24 and the decoding device according to claim 25. A method for storing bitstreams, characterized in that, include: Acquire and store the bitstream obtained by the method of any one of claims 1 to 11. A bitstream storage device, characterized in that, The apparatus is used to acquire and store the bitstream obtained by the method of any one of claims 1 to 11. A method for transmitting a bitstream, characterized in that, include: Acquire and transmit the bitstream obtained by the method of any one of claims 1 to 11. A code stream transmission device, characterized in that, The apparatus is used to acquire and transmit the bitstream obtained by the method of any one of claims 1 to 11. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a bitstream obtained by the method as described in any one of claims 1 to 23. A computer-readable storage medium, characterized in that, Used to store a computer program that, when the computer program is run on a computer or processor, causes the computer or processor to perform the method of any one of claims 1 to 23, 27 or 29. A computer program product, characterized in that, The computer program product includes instructions that, when executed on a computer or processor, cause the computer or processor to perform the method of any one of claims 1 to 23, 27 or 29. A bitstream, characterized in that, The bitstream includes a second basic 3D mesh sequence and transformation information, the transformation information indicating how to obtain a first basic 3D mesh sequence based on the second basic 3D mesh sequence, the first basic 3D mesh sequence being used to generate at least one first synthetic 3D mesh, and the proposed coding length of the second basic 3D mesh sequence being less than the proposed coding length of the first basic 3D mesh sequence.

Citation Information

Patent Citations

  • Registering and compression method of three-dimensional grid sequence

    CN103927746A

  • Gradual change method of three-dimensional mesh model sequence

    CN104881894A

  • Connectivity information encoding method and apparatus for encoding grid representations

    CN117897729A

  • Motion field coding and decoding in dynamic grid compression

    CN118251700A

  • Multiple mesh encoding using motion tracking data of objects

    US20190236809A1

Cited By

  • Method for obtaining three-dimensional body by gridding two-dimensional seismic reflection data

    CN121679689A