Encoding method, decoding method, and related equipment
The proposed encoding and decoding method for three-dimensional meshes addresses the inflexibility of fixed encoding methods by using target identifier information to select between video and entropy encoding schemes, improving adaptability and efficiency.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-11
- Publication Date
- 2026-03-13
AI Technical Summary
The flexibility of displacement encoding in three-dimensional mesh encoding is relatively poor due to the use of fixed encoding methods, such as video encoders, which limits the adaptability to different encoding demands.
An encoding and decoding method that includes determining a base mesh bitstream and performing displacement coding on vertex displacements using either a video encoding scheme or an entropy encoding scheme, based on target identifier information, to enhance flexibility.
This approach improves the flexibility of displacement encoding by allowing different encoding methods to be employed according to specific demands, enhancing the adaptability and efficiency of the encoding process.
Smart Images

Figure 2026508892000001_ABST
Abstract
Description
Technical Field
[0001] (Cross - reference to related applications) This application claims the priority of Chinese Patent Application No. 202310262637.7, filed in China on March 17, 2023, and the entire content of the said application is incorporated herein by reference.
[0002] This application belongs to the field of three - dimensional mesh encoding technology, and specifically relates to an encoding processing method, a decoding processing method, and related devices.
Background Art
[0003] In the three - dimensional mesh encoding process, displacement is obtained by calculating the distance between the reconstructed mesh and the original mesh vertices, representing the distance from the vertices of the reconstructed mesh to the closest adjacent points on the original input mesh, and aiming to improve the quality of the mesh. Currently, generally, a fixed encoding method is adopted for displacement encoding, for example, a video encoder is adopted for displacement encoding. Therefore, in the related technology, the flexibility of displacement encoding is relatively poor.
Summary of the Invention
Problems to be Solved by the Invention
[0004] Embodiments of this application provide an encoding processing method, a decoding processing method, and related devices that can solve the problem that the flexibility of displacement encoding is relatively poor.
Means for Solving the Problems
[0005] According to a first aspect, an encoding processing method used on the encoding side is provided, and this method includes: Determining a base mesh bitstream based on the mesh to be encoded; The method involves performing displacement coding on a first vertex displacement to obtain a displacement bitstream, wherein the first vertex displacement is obtained by adjusting the displacement order of a reconstructed base mesh obtained by reconstructing it based on the base mesh bitstream according to the displacement information, the displacement information is obtained based on subdivision and deformation processing of the first mesh, and the first mesh is obtained based on mesh simplification and mesh parameterization of the mesh to be coded. The method involves generating a target bitstream based on a texture map to be encoded corresponding to a mesh to be encoded, the base mesh bitstream, and the displacement bitstream, wherein the target bitstream includes target identifier information, the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme.
[0006] According to a second aspect, a decoding processing method used on the decoding side is provided, and this method is: Receiving a target bitstream, wherein the target bitstream includes a displacement bitstream and target identifier information, and the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme. The target decryption method is determined based on the aforementioned target identifier information, This includes decoding the displacement bitstream according to the target decoding scheme to obtain a third vertex displacement.
[0007] According to a third aspect, an encoding processing device used on the encoding side is provided, and this device is A first processing module for determining the base mesh bitstream based on the mesh to be encoded, A first encoding module for performing displacement encoding on a first vertex displacement and obtaining a displacement bitstream, wherein the first vertex displacement is obtained by adjusting the displacement order on a reconstructed base mesh obtained by reconstructing it based on the base mesh bitstream according to the displacement information, the displacement information is obtained based on subdivision and deformation processing on the first mesh, and the first mesh is obtained based on mesh simplification and mesh parameterization on the mesh to be encoded, A generation module for generating a target bitstream based on a texture map to be encoded corresponding to a mesh to be encoded, the base mesh bitstream, and the displacement bitstream, wherein the target bitstream includes target identifier information, the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme.
[0008] According to the fourth aspect, a decoding apparatus used on the decoding side is provided, and this apparatus is A receiving module for receiving a target bitstream, wherein the target bitstream includes a displacement bitstream and target identifier information, and the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme. A decision module for determining a target decryption method based on the aforementioned target identifier information, It includes a first decoding module for decoding the displacement bitstream according to the target decoding scheme to obtain a third vertex displacement.
[0009] According to the fifth aspect, an encoding processing method used on the encoding side is provided, and this method is Determining the base mesh bitstream based on the mesh to be encoded, The process includes performing displacement coding on the first vertex displacement to obtain a displacement bitstream, wherein the displacement coding method is an entropy coding method.
[0010] According to the sixth aspect, an encoding processing method used on the decoding side is provided, and this method is Obtaining the target bitstream, This includes performing entropy decoding on the target bitstream to obtain vertex displacement.
[0011] According to the seventh aspect, an encoding processing device used on the encoding side is provided, and this device is A second processing module for determining the base mesh bitstream based on the mesh to be encoded, The system includes a second coding module for performing displacement coding on a first vertex displacement to obtain a displacement bitstream, wherein the displacement coding method is an entropy coding method.
[0012] According to the eighth aspect, an encoding processing device used on the decoding side is provided, and this device is A retrieval module for obtaining the target bitstream, The system includes a second decoding module for performing entropy decoding on the target bitstream to obtain vertex displacement.
[0013] According to the ninth aspect, an electronic device is provided, which includes a processor and a memory, the memory storing a program or instruction that can be run on the processor, and when the program or instruction is executed by the processor, it realizes a step of the method according to the first aspect, or when the program or instruction is executed by the processor, it realizes a step of the method according to the second aspect, or when the program or instruction is executed by the processor, it realizes a step of the method according to the fifth aspect, or when the program or instruction is executed by the processor, it realizes a step of the method according to the sixth aspect.
[0014] According to the tenth aspect, an electronic device is provided, which includes a processor and a communication interface, wherein, When the electronic device is the encoding side, the processor determines a base mesh bitstream based on the mesh to be encoded, performs displacement encoding on a first vertex displacement to obtain a displacement bitstream, wherein the first vertex displacement is obtained by adjusting the displacement order on a reconstructed base mesh obtained by reconstructing it based on the base mesh bitstream according to the displacement information, the displacement information is obtained based on a subdivision and deformation process on the first mesh, the first mesh is obtained based on mesh simplification and mesh parameterization on the mesh to be encoded, and generates a target bitstream based on the texture map to be encoded, the base mesh bitstream and the displacement bitstream corresponding to the mesh to be encoded, wherein the target bitstream includes target identifier information, and the target identifier information is used to indicate that the encoding method of the displacement bitstream is a video encoding method or an entropy encoding method. When the electronic device is the decoding side, the communication interface is used to receive a target bitstream, the target bitstream includes a displacement bitstream and target identifier information, the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme, and the processor is used to determine a target decoding scheme based on the target identifier information, decode the displacement bitstream according to the target decoding scheme, and obtain a third vertex displacement. Or, When the electronic device is the encoding side, the processor is used to determine a base mesh bitstream based on the mesh to be encoded, perform displacement coding on the first vertex displacement, and obtain a displacement bitstream, wherein the displacement coding method is an entropy coding method. When the electronic device is the decoding side, the processor is used to acquire the target bitstream, perform entropy decoding on the target bitstream, and obtain the vertex displacement.
[0015] According to the eleventh aspect, a video codec system is provided, which includes an encoding device and a decoding device, wherein the encoding device may be used to perform the steps of the encoding method described in the first aspect, and the decoding device may be used to perform the steps of the decoding method described in the second aspect. Alternatively, the encoding device may be used to perform the steps of the encoding method described in the fifth embodiment, and the decoding device may be used to perform the steps of the decoding method described in the sixth embodiment.
[0016] According to the twelfth aspect, a readable storage medium is provided, the readable storage medium storing a program or instruction, and when the program or instruction is executed by a processor, a step of the method according to the first aspect is realized, or a step of the method according to the second aspect is realized, or a step of the method according to the fifth aspect is realized, or a step of the method according to the sixth aspect is realized.
[0017] According to the thirteenth aspect, a chip is provided, the chip including a processor and a communication interface, the communication interface being coupled with the processor, the processor being used to run a program or instructions and to implement a step of the method according to the first aspect, or a step of the method according to the second aspect, or a step of the method according to the fifth aspect, or a step of the method according to the sixth aspect.
[0018] According to a fourteenth aspect, a computer program / program product is provided, the computer program / program product is stored in a storage medium, and the computer program / program product is executed by at least one processor to implement the steps of the method according to the first aspect, or to implement the steps of the method according to the second aspect, or to implement the steps of the method according to the fifth aspect, or to implement the steps of the method according to the sixth aspect.
Advantages of the Invention
[0019] In the embodiments of the present application, target identifier information for instructing the encoding method of the displacement bit stream is set in the target bit stream, so that displacement encoding can be performed by adopting different displacement encoding methods according to different demands, thereby improving the flexibility of displacement encoding.
Brief Description of the Drawings
[0020] [Figure 1] It is a conventional encoding framework diagram. [Figure 2] It is a conventional decoding framework diagram. [Figure 3] It is a flowchart of an encoding processing method according to an embodiment of the present application. [Figure 4] It is an exemplary diagram of a mesh simplification operation in an encoding processing method according to an embodiment of the present application. [Figure 5] It is an exemplary diagram of a subdivision process in an encoding processing method according to an embodiment of the present application. [Figure 6] It is an exemplary diagram of an encoding framework in an encoding processing method according to an embodiment of the present application. [Figure 7] It is a flowchart of a decoding processing method according to an embodiment of the present application. [Figure 8] It is an exemplary diagram of a decoding framework in a decoding processing method according to an embodiment of the present application. [Figure 9]This is a structural diagram of an encoding apparatus according to an embodiment of this application. [Figure 10] This is a structural diagram of a decoding apparatus according to an embodiment of the present application. [Figure 11] This is a structural diagram of a communication device according to an embodiment of this application. [Figure 12] This is a structural diagram of an electronic device according to an embodiment of this application. [Modes for carrying out the invention]
[0021] The following clearly describes the technical concepts in the embodiments of this application, linking them to the drawings of the embodiments. Clearly, the embodiments described are only some, not all, embodiments of this application. All other embodiments obtained by those skilled in the art based on the embodiments of this application are all within the scope of protection of this application.
[0022] The terms "first," "second," etc., used in the specification and claims of this application are intended to distinguish similar subjects and not to describe a specific order or sequence. It should be understood that these terms are interchangeable where appropriate, so that the embodiments of this application may be carried out in an order other than those illustrated or described herein, and that the subjects distinguished by "first" and "second" are generally of the same kind and do not limit the number of subjects; for example, the first subject may be one or more. Furthermore, "or" in the specification and claims indicates at least one of the connected subjects; for example, "A or B" covers three solutions: solution 1: including A but not B, solution 2: including B but not A, and solution 3: including both A and B. The letter " / " generally indicates that the preceding and succeeding related subjects are in an "or" relationship.
[0023] The term “instruction” in the specification and claims of this application may be an explicit instruction or an implicit instruction. An explicit instruction may be understood as the sender explicitly notifying the recipient of the operation or requested outcome that must be performed in the instruction sent by the sender, while an implicit instruction may be understood as the recipient making a judgment based on the instruction sent by the sender and determining the operation or requested outcome that must be performed based on the judgment.
[0024] The codec side corresponding to the mesh codec method in the embodiments of this application may be a terminal, which may also be called terminal equipment or user equipment (UE), and the terminal may be terminal-side equipment such as a mobile phone, tablet personal computer, laptop computer (or notebook computer), personal digital assistant (PDA), palmtop computer, netbook, ultra-mobile personal computer (UMPC), mobile internet device (MID), wearable device, or vehicle user equipment (VUE), or pedestrian user equipment (PUE), and wearable devices include smartwatches, wristbands, earphones, glasses, etc. It should be noted that the embodiments of this application do not limit the specific type of terminal.
[0025] To facilitate understanding, the following describes some aspects of the embodiments of this application.
[0026] 1. Visual Volumetric Video-based Coding (V3C) standard.
[0027] The V3C standard provides a method for encoding and decoding various three-dimensional media using video or image encoding techniques. Specifically, it converts three-dimensional media content from a three-dimensional representation to multiple two-dimensional representations (called V3C components) using methods such as projection before encoding, and then encodes the two-dimensional representations using existing video or image encoding techniques. V3C components mainly include occupancy components, geometric components, and attribute components. Occupancy components can indicate which regions in the two-dimensional representation are associated with the data in the three-dimensional representation, geometric components represent information related to the three-dimensional data and its position in space, and attribute components can provide attribute information corresponding to vertices, such as material and texture. Furthermore, the components also contain information on how to reconstruct the three-dimensional model using these components, which is called atlas information.
[0028] Atlas information is used to relate all components, and additional information reconstructed from two dimensions to three dimensions is also included in the atlas components. The atlas consists of multiple basic units, which are called patches. Each patch represents a single region in the available two-dimensional components and contains the information necessary to project this region into three-dimensional space.
[0029] 2. Video-based dynamic mesh coding (VDMC).
[0030] VDMC is a standard developed by the Moving Picture Experts Group (MPEG) for compressing three-dimensional meshes. Its main idea is to compress three-dimensional meshes by utilizing the existing V3C standard. However, because there is connection information that needs to be encoded in the three-dimensional mesh, its specific encoding flow differs slightly from V3C. It requires extending the grammatical meaning and decoding operations on the decoding side of the V3C standard to support the decoding and reconstruction of three-dimensional meshes. The codec framework related to VDMC is shown in Figures 1 and 2.
[0031] The overall encoding framework, as shown in Figure 1, first simplifies the input mesh using a simplification module, then generates new texture coordinates for the mesh through mesh parameterization, and then performs subdivision and deformation on the parameterized mesh. Specifically, it inserts new vertices into the mesh according to a specific subdivision method and calculates the distance (called displacement information) from the vertices of the subdivided mesh to the nearest adjacent point on the input mesh. Subsequently, the vertex positions of the parameterized mesh, i.e., the mesh before subdivision deformation, are adjusted according to the displacement information. The adjusted mesh is called the base mesh and is sent to the base mesh encoding module. Using the existing base mesh encoding module, it is compressed using the existing mesh encoder. In inter-frame mode, motion vectors can also be generated for each vertex of the base mesh based on the reference frame, and the base mesh module only needs to compress the motion vectors. After encoding the base mesh, it is reconstructed, and the order of displacements is adjusted based on the vertex order of the reconstructed base mesh. Subsequently, the vertex displacement information after reordering is first subjected to wavelet transformation, the transformed coefficients (or wavelet coefficients) are quantized, and the quantized coefficients are arranged in a two-dimensional image according to a specific scan order. The two-dimensional image is then encoded using a video encoder. The reconstructed displacement information is then applied to the subdivided base mesh to obtain a reconstructed subdivided deformation mesh. This mesh, along with the original input mesh and its corresponding texture map, is input to the corresponding texture map transformation module to obtain a texture map corresponding to the reconstructed mesh, and this texture map is similarly encoded using a video encoder. Parameters used in the encoding process, such as the video encoder type, mesh encoder type, transformation parameters, and quantization parameters, are communicated to the decoding side via auxiliary information.
[0032] The overall decoding framework, as shown in Figure 2, involves the decoding side first multiplexing the received bitstream into its various parts, obtaining the base mesh bitstream, displacement bitstream, texture map bitstream, and atlas bitstream. The base mesh bitstream is decoded using a mesh decoder indicated by the atlas information to obtain the base mesh. The displacement bitstream and texture map bitstream are decoded by a video decoder. For the displacement portion, after video decoding, a displacement decoding module is needed to extract the displacement from the image, perform steps such as inverse quantization and inverse transform, and then apply it to the subdivided base mesh to obtain the deformed mesh reconstructed by the decoding side. The texture map is the texture map corresponding to the deformed mesh reconstructed after decoding. Subsequent applications or rendering modules process the reconstructed deformed mesh and the texture map obtained by decoding as input.
[0033] In the following sections, the encoding processing method according to the embodiments of this application will be described in detail with reference to several embodiments and their application scenarios, accompanied by drawings.
[0034] Referring to Figure 3, an embodiment of the present application provides an encoding processing method, which, as shown in Figure 3, includes the following:
[0035] Step 301, determine the base mesh bitstream based on the mesh to be encoded. Step 302: Displacement coding is performed on the first vertex displacement to obtain a displacement bitstream. The first vertex displacement is obtained by adjusting the displacement order of the reconstructed base mesh, which is obtained by reconstructing the base mesh bitstream according to the displacement information. The displacement information is obtained based on subdivision and deformation processing of the first mesh. The first mesh is obtained based on mesh simplification and mesh parameterization of the mesh to be coded. Step 303, a target bitstream is generated based on the texture map to be encoded corresponding to the mesh to be encoded, the base mesh bitstream, and the displacement bitstream, the target bitstream including target identifier information, the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme.
[0036] In embodiments of this application, determining the base mesh bitstream based on the mesh to be encoded may include the following flow:
[0037] The mesh to be encoded is subjected to mesh simplification and mesh parameterization to obtain the first mesh. Subdivision and deformation processes are performed on the first mesh to obtain displacement information and a second mesh after adjusting the vertex positions of the first mesh. The second mesh is subjected to compression encoding and processing to obtain the base mesh bitstream.
[0038] Selectively, mesh simplification involves simplifying the currently input mesh to be encoded into a base mesh with a relatively small number of points and faces, while preserving the shape of the original mesh as much as possible. The focus of mesh simplification is on the simplification operation and the corresponding error metric. One feasible mesh simplification operation, as shown in Figure 4, merges the vertices at both ends of an edge into a single vertex and removes the connection between these two vertices. This process is repeated throughout the mesh according to certain rules to reduce the number of faces and vertices of the mesh to target values.
[0039] During the simplification process, a certain error metric can be selected to optimize the simplification result. For example, the sum of the coefficients of the equations of all adjacent faces of a vertex can be selected as the error metric for that vertex, and the error metric for a corresponding edge is the sum of the error metrics of the two vertices on that edge. In other words, the error resulting from the merger of an edge is the sum of the distances from the merged vertex to all adjacent planes of the two original vertices of the edge.
[0040] After determining the simplification operation and the corresponding error metric, mesh simplification is started iteratively. First, the error for each edge is obtained by calculating the vertex error of the initial mesh. Then, each edge is arranged in ascending order of error, and the edge with the smallest error is selected and merged each time. Simultaneously, the vertex position after merging is calculated, and the errors of all edges associated with the merged vertex are updated. That is, the order of the edges is updated, ensuring that each iteration is based on the global error metric. Through iteration, the faces of the mesh are simplified to the number required to satisfy irreversible coding.
[0041] Regarding mesh parameterization, the texture coordinates are primarily regenerated for the simplified mesh to obtain the initial mesh. The specific algorithm for parameterizing the mesh may be set according to the actual needs, for example, the Isocharts algorithm, which uses spectral analysis to achieve stretch-driven 3D mesh parameterization, UV unwrapping, slicing, and packing the 3D mesh into a 2D texture region.
[0042] For subdivision, displacement vector information is generated by applying the input 3D mesh. The input 2D curve (represented by a 2D polyline) is called the "original" curve. First, it is downsampled to generate a basic curve / polyline, which is called the "simplified" curve. Then, the subdivision plan is applied to the polyline obtained by simplification to generate the "subdivision" curve. After that, the subdivided polyline is deformed to obtain a better approximation of the original curve. That is, geometric displacement vectors are calculated for each vertex of the subdivided mesh so that the shape of the subdivided curve is as close as possible to the shape of the original curve. These geometric displacement vectors are the geometric displacement vector information output from this module. A similar deformation process is applied to the attribute information corresponding to the vertices to obtain the corresponding attribute displacement vectors.
[0043] The subdivision deformation process takes the parameterized mesh as input. This step first subdivides the input mesh, and the subdivision scheme can be arbitrarily selected. One possible scheme is the midpoint subdivision scheme, which subdivides each triangle into four sub-triangles in each iteration of the subdivision process, as shown in Figure 5. A new vertex is introduced at the center of each side, and because the connection relationship between geometric information and attribute information is generally different, the subdivision of geometric information and attribute information is performed independently.
[0044]
number
[0045]
number
[0046] For the subdivided mesh, finding the nearest adjacent point (including points on the original mesh surface) for each point in the original input mesh can be accelerated using data structures such as kdTree. By calculating the distance between the geometric coordinates of each vertex in the subdivided mesh and the nearest adjacent point in the original input mesh, a displacement vector of the geometric coordinates of each vertex in the subdivided mesh is obtained. This module then transmits the generated displacement vector to a subsequent module for encoding.
[0047] Regarding the generated displacement vector, it resides in the same global coordinate system as the input mesh. One possible optimization method is to transform it into a local coordinate system, where the local coordinate system of each vertex is defined by the normal vector of the vertex on the subdivided mesh. The advantage of this approach is that the normal component of the geometric displacement vector has a more significant impact on the quality of the reconstructed mesh than the two tangent components, allowing for larger quantization parameters to be set for the tangent components.
[0048] The process of performing compression encoding on the base mesh may be understood as inputting the base mesh (i.e., the second mesh) into the base mesh compression module and performing compression encoding. This compression encoding mainly has two different modes: in-frame mode and inter-frame mode. In in-frame mode, the base mesh compression module encodes and reconstructs the input three-dimensional mesh using an existing static mesh encoder. In inter-frame mode, the base mesh compression module calculates the motion vectors between the input mesh vertices and the reference frame mesh vertices, encodes the motion vectors, and reconstructs the current frame base mesh based on the reconstructed motion vectors and the reference frame mesh. Here, the base mesh compression module outputs a compressed bitstream and transmits the reconstructed base mesh as an output to the displacement sequence adjustment module, which performs vertex displacement adjustment on the reconstructed base mesh based on the displacement information to obtain the first vertex displacement.
[0049] With respect to displacement coding, the embodiments of this application provide two coding schemes: a video coding scheme and an entropy coding scheme.
[0050] Selectively, in the embodiments of this application, the first vertex displacement may be encoded using any one video encoder, in which case it is necessary to encode the type information of the video encoder in the auxiliary information. The first vertex displacement may be encoded using any entropy coding algorithm, such as Context-based Adaptive Binary Arithmetic Coding (CABAC). At the same time, because the statistical properties between different levels and components of the displacement may differ, the context in which different entropy coding is assigned to each subdivision level or component may yield better performance.
[0051] Selectively, the target identifier information may implicitly or explicitly indicate the encoding scheme of the displacement bitstream.
[0052] In the embodiments of this application, target identifier information that indicates the encoding scheme of the displacement bitstream is set in the target bitstream, thereby improving the flexibility of displacement coding by employing different displacement encoding schemes according to different needs.
[0053] Selectively, in some embodiments, when the encoding scheme is an entropy encoding scheme, displacement encoding is performed on the first vertex displacement to obtain a displacement bitstream. Displacement processing is performed on the first vertex displacement to obtain a second vertex displacement, the second vertex displacement is input to an entropy encoder, displacement encoding is performed, and the displacement bitstream is obtained. This includes one of the following: inputting the first vertex displacement into an entropy encoder, performing displacement encoding, and obtaining the displacement bitstream.
[0054] In the embodiments of this application, the displacement processing may include wavelet transform and coefficient quantization. It should be understood that when the displacement coding scheme is a video coding scheme, the corresponding displacement processing further includes a two-dimensional array, i.e., arranging the coefficients after coefficient quantization in a two-dimensional image, and finally using a video encoder to encode the two-dimensional image to obtain a displacement bitstream.
[0055] One selective arrangement method is to traverse the wavelet coefficients in order from low frequency to high frequency.
[0056]
number
[0057] It should be understood that the embodiments of this application are not limited to array sequences, and other array sequences, such as zigzag sequence or raster sequence, may be used. The encoder may also explicitly specify the array sequence in the bitstream.
[0058] It should be explained that in the embodiments of this application, displacement processing may be performed, or displacement coding may be performed directly without displacement processing. Here, by increasing the compression efficiency of subsequent displacement coding after displacement processing, the size of the target bitstream can be reduced.
[0059] In some embodiments, selectively, a target bitstream is generated based on the texture map to be encoded corresponding to the mesh to be encoded, the base mesh bitstream, and the displacement bitstream. The process involves encoding auxiliary information and obtaining an auxiliary information bitstream, wherein the auxiliary information is used to assist the decoding process on the decoding side. The process involves performing a texture transformation based on the mesh to be encoded, the texture map to be encoded corresponding to the mesh to be encoded, obtaining a target texture map, performing compression encoding on the target texture map, and obtaining a texture map bitstream. This includes mixing the base mesh bitstream, the displacement bitstream, the auxiliary information bitstream, and the texture map bitstream to obtain the target bitstream.
[0060] In the embodiments of this application, displacement reconstruction is performed based on the displacement bitstream to obtain the reconstructed displacement, the deformed mesh is reconstructed based on the reconstructed displacement and the reconstructed base mesh to obtain the reconstructed deformed mesh, and a texture map transformation is performed on the texture map to be encoded based on the reconstructed deformed mesh and the mesh to be encoded to obtain the target texture map, and then compression encoding is performed on the target texture map to obtain the texture map bitstream. Finally, the base mesh bitstream, the displacement bitstream, the auxiliary information bitstream, and the texture map bitstream are stream-mixed to obtain the target bitstream.
[0061] In some embodiments, the auxiliary information selectively includes at least one of the following: a first encoded information corresponding to the base mesh bitstream; a second encoded information corresponding to the texture map bitstream; an encoding scheme for the displacement bitstream; and processing parameters for performing displacement processing on the first vertex displacement.
[0062] In the embodiments of this application, the first encoded information may include information such as the encoder type, the second encoded information may include information such as the encoder type, and the encoding method for the displacement bitstream may be a video encoding method or an entropy encoding method. The processing parameters may include at least one of a transformation parameter, a quantization parameter, and an array parameter.
[0063] Selectively, a transformation may be applied to the displacement vector that reduces the correlation between the data points. One such selective transformation is the linear wavelet transform, the definition of which is shown in Equation 2.
[0064]
number
[0065]
number
[0066] The transformed displacement vector, i.e., the wavelet coefficients, may be selectively quantized, and there are various methods of quantization; one method is shown in equations 4 and 5.
[0067]
number
[0068] Simultaneously, depending on the characteristics of the wavelet transform, different quantization parameters can be applied to the newly generated vertices and the original vertices through the subdivision process. That is, the update of the quantization parameters for the vertices after subdivision is as shown in Equation 6.
[0069]
number
[0070] In some embodiments, after displacement decoding is performed to obtain the displacement, a displacement vector matching the encoded side may be obtained by inverse quantization (i.e., inverse coefficient quantization) or inverse transform (i.e., inverse wavelet quantization). After obtaining the reconstructed geometric displacement vector, the reconstructed reconstructed base mesh is subdivided to obtain a reconstructed deformed mesh after subdivision and deformation processing according to the corresponding displacement vector, and this is transmitted to the texture map conversion module. The texture map conversion module performs a texture map conversion based on the input original mesh (i.e., the mesh to be encoded), the input original texture map (i.e., the texture map to be encoded), and the reconstructed deformed mesh. Specifically, the texture map conversion may include the following steps.
[0071] The texture coordinates of each pixel on the target texture map to be generated are calculated. For example, the texture coordinates corresponding to pixel A(i,j) are P(u,v).
[0072] Determine whether these texture coordinates lie within a certain triangular face after parameterization of the subdivided deformation mesh. If this texture coordinate does not belong to any of the triangular faces, the pixel can be marked as an empty pixel and then filled with a fill algorithm. If these texture coordinates belong to a single triangular face, perform the target operation.
[0073]
number
[0074] Selectively, after obtaining the converted texture map, the empty pixels within it may be filled using an appropriate fill algorithm (e.g., a push-pull algorithm). Then, it may be encoded using an existing video encoder, such as H.264 / AVC, H.265 / HEVC, or H.266 / VVC, to obtain an output texture map bitstream. Furthermore, operations such as color space conversion and chroma subsampling may be selectively applied to improve the rate distortion performance of the video encoding, for example, color space conversion from RGB 444 to YUV420.
[0075] It should be explained that the position where the target identifier information is set in the target bitstream may be set according to actual needs. For example, in some embodiments, the target bitstream includes an auxiliary information bitstream determined based on auxiliary information, the target identifier information is a part of the auxiliary information bitstream, and the auxiliary information is used to assist the decoding on the decoding side. In other words, the target bitstream includes an auxiliary information bitstream, and the auxiliary information bitstream includes target identifier information.
[0076] In the embodiments of this application, the V3C parameter set can be extended based on the V3C grammar structure, which is used to specify common parameters in a sequence, and parameters that instruct the mesh displacement coding scheme are defined in this parameter set, which may specifically be as shown in Table 1 below.
[0077] [Table 1]
[0078]
number
[0079] Selectively, in some embodiments, the target identifier information is information that indicates the functions and algorithms that the decryption side needs to support.
[0080] In the embodiments of this application, the target identifier information may be understood as a profile identifier (ID), that is, this target identifier information may be placed in the header field of the target bitstream, meaning that different profile IDs may implicitly indicate the encoding scheme of the displacement bitstream. Specifically, the methods for indicating the displacement encoding method by profile ID are shown in Table 2.
[0081] [Table 2]
[0082]
number
[0083] [Table 3]
[0084] Selectively, in some embodiments, the target bitstream includes an auxiliary information bitstream, and the auxiliary information bitstream is The first field information to represent the number of the first vertices, A second field information to indicate whether the absolute value of the k-th component of the first displacement is equal to 0, A third field information to indicate whether the k-th component of the first displacement is greater than 0, A fourth field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 1, It includes at least one of the following: a fifth field information for representing the value obtained by subtracting a first predetermined value from the k-th component of the first displacement, Here, the first vertex represents a vertex corresponding to one first mesh in one coding unit, the first displacement represents the vertex displacement of the v-th vertex among the first vertices or the displacement after shifting the vertex displacement of the v-th vertex among the first vertices, and k and v are both positive integers.
[0085] Selectively, the magnitude of the first preset value may be set according to actual needs, for example, in some embodiments, this first preset value may be 2.
[0086] In the embodiments of this application, since the V3C structure uses patches as basic data description units, one submesh (i.e., the first mesh described above) corresponds to one patch, a tile is an independently codecable unit, one tile may contain one or more patches, that is, one tile may correspond to one or more submeshes, and submeshes are obtained by dividing the original input mesh. Therefore, displacements corresponding to vertices in a submesh are also described in patch units, and possible grammatical structures are shown in Table 4 below, for example.
[0087] [Table 4]
[0088]
number
[0089]
number
[0090]
number
[0091] Selectively, in some embodiments, the target bitstream includes an auxiliary information bitstream, and the auxiliary information bitstream is The first field information to represent the number of the first vertices, A sixth field of information to represent the number of iterations of the subdivision process for one first mesh in one encoding unit, The seventh field information represents the number of the second vertex, The eighth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 0, The ninth field information indicates whether the k-th component of the second displacement is greater than 0, The tenth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 1, It includes at least one of the following: an eleventh field of information that represents the value obtained by subtracting a second predetermined value from the k-th component of the second displacement, Here, the first vertex represents a vertex corresponding to a first mesh in a single coding unit, the second vertex represents a vertex generated by the j-th subdivision process of a first mesh in a single coding unit, the second displacement represents the vertex displacement of the v-th vertex among the second vertices or the displacement after shifting the vertex displacement of the v-th vertex among the second vertices, and j, k, and v are all positive integers.
[0092] Selectively, the magnitude of the second preset value may be set according to actual needs, for example, in some embodiments, this second preset value may be 2.
[0093] In the embodiments of this application, considering that displacement is generated by subdivision and deformation processes, a new vertex is generated each time subdivision is performed, and different statistical characteristics may exist between the newly generated vertex displacement and the original vertex displacement. In the case of entropy coding, considering the statistical characteristics between different levels of displacement, different entropy coding schemes and different contextual information may be employed depending on the level. In addition to level-based subdivision, the three components of the displacement may be coded using different entropy encoders according to their respective statistical characteristics.
[0094] Selectively, the entropy coding schemes for displacements at different subdivision levels are shown in Table 5.
[0095] [Table 5]
[0096]
number
[0097]
number
[0098] It should be explained that in the embodiments of this application, the encoding framework on the encoding side is as shown in Figure 6, where the dotted lines may represent selective encoding flows, and the specific implementation of each encoding flow should be referred to the embodiments described above, and will not be explained further here.
[0099] Selectively, embodiments of this application further provide an encoding processing method used on the encoding side, which is: Determining the base mesh bitstream based on the mesh to be encoded, The process includes performing displacement coding on the first vertex displacement to obtain a displacement bitstream, wherein the displacement coding method is an entropy coding method.
[0100] In the embodiments of this application, since an entropy coding scheme is employed to encode the displacement bitstream, the efficiency of displacement coding can be improved. Specifically, the coding process may further include coding of the texture map and coding of auxiliary information. In other words, the method is Encoding auxiliary information and obtaining an auxiliary information bitstream, This further includes performing encoding on the texture map to be encoded and obtaining a texture map bitstream.
[0101] Here, the encoding process for the encoding of the texture map and the encoding of the auxiliary information is described in the above embodiment and will not be explained further here.
[0102] Selectively, since the V3C structure uses patches as the basic data description unit, one submesh (i.e., the first mesh mentioned above) corresponds to one patch, a tile is an independently codecable unit, one tile may contain one or more patches, i.e., one tile may correspond to one or more submeshes, and submeshes are obtained by dividing the original input mesh. Therefore, in the embodiments of this application, displacements corresponding to vertices in a submesh are also described in patch units, and possible grammatical structures are, for example, as shown in Table 4 above. In other words, in one embodiment, the auxiliary information bitstream is The first field information to represent the number of the first vertices, A second field information to indicate whether the absolute value of the k-th component of the first displacement is equal to 0, A third field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 0, A fourth field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 1, It may include at least one of the following: a fifth field information representing the value obtained by subtracting a first predetermined value from the k-th component of the first displacement, Here, the first vertex represents a vertex corresponding to one of the first meshes in one coding unit, the first displacement represents the vertex displacement of the v-th vertex among the first vertices or the displacement after shifting the vertex displacement of the v-th vertex among the first vertices, and k and v are both positive integers.
[0103] Selectively, considering that displacement is generated by the subdivision and deformation processes, a new vertex is generated with each subdivision, and different statistical properties may exist between the newly generated vertex displacement and the original vertex displacement. In the case of entropy coding, considering the statistical properties between different levels of displacement, different entropy coding schemes and different contextual information may be employed depending on the level. In addition to level-based subdivision, the three components of the displacement may be coded using different entropy encoders according to their respective statistical properties. Entropy coding schemes for displacements of different subdivision levels are shown in Table 5. That is, in one embodiment, the above auxiliary information bitstream is, The first field information to represent the number of the first vertices, A sixth field of information to represent the number of iterations of the subdivision process for one first mesh in one encoding unit, The seventh field information represents the number of the second vertex, The eighth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 0, The ninth field information indicates whether the k-th component of the second displacement is greater than 0, The tenth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 1, It may include at least one of the following: an eleventh field information representing the value obtained by subtracting a second predetermined value from the k-th component of the second displacement, Here, the first vertex represents a vertex corresponding to a first mesh in a single coding unit, the second vertex represents a vertex generated by the j-th subdivision process of a first mesh in a single coding unit, the second displacement represents the vertex displacement of the v-th vertex among the second vertices or the displacement after shifting the vertex displacement of the v-th vertex among the second vertices, and j, k, and v are all positive integers.
[0104] Selectively, embodiments of this application further provide an encoding method used on the decoding side, which is: Obtaining the target bitstream, This includes performing entropy decoding on the target bitstream to obtain vertex displacement.
[0105] Selectively, since the V3C structure uses patches as the basic data description unit, one submesh (i.e., the first mesh mentioned above) corresponds to one patch, a tile is an independently codecable unit, one tile may contain one or more patches, i.e., one tile may correspond to one or more submeshes, and submeshes are obtained by dividing the original input mesh. Therefore, in the embodiments of this application, displacements corresponding to vertices in a submesh are also described in patch units, and possible grammatical structures are, for example, as shown in Table 4 above. In other words, in one embodiment, the target bitstream further includes an auxiliary information bitstream, and the auxiliary information bitstream is The first field information to represent the number of the first vertices, A second field information to indicate whether the absolute value of the k-th component of the first displacement is equal to 0, A third field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 0, A fourth field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 1, It may include at least one of the following: a fifth field information representing the value obtained by subtracting a first predetermined value from the k-th component of the first displacement, Here, the first vertex represents a vertex corresponding to one of the first meshes in one coding unit, the first displacement represents the vertex displacement of the v-th vertex among the first vertices or the displacement after shifting the vertex displacement of the v-th vertex among the first vertices, and k and v are both positive integers.
[0106] Selectively, considering that displacement is generated by the subdivision and deformation processes, a new vertex is generated with each subdivision, and different statistical properties may exist between the newly generated vertex displacement and the original vertex displacement. In the case of entropy coding, considering the statistical properties between different levels of displacement, different entropy coding schemes and different contextual information may be employed depending on the level. In addition to level-based subdivision, the three components of the displacement may be coded using different entropy encoders according to their respective statistical properties. Entropy coding schemes for displacements of different subdivision levels are shown in Table 5. That is, in one embodiment, the target bitstream further includes an auxiliary information bitstream, and the auxiliary information bitstream is The first field information to represent the number of the first vertices, A sixth field of information to represent the number of iterations of the subdivision process for one first mesh in one encoding unit, The seventh field information represents the number of the second vertex, The eighth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 0, The ninth field information indicates whether the k-th component of the second displacement is greater than 0, The tenth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 1, It may include at least one of the following: an eleventh field information representing the value obtained by subtracting a second predetermined value from the k-th component of the second displacement, Here, the first vertex represents a vertex corresponding to a first mesh in a single coding unit, the second vertex represents a vertex generated by the j-th subdivision process of a first mesh in a single coding unit, the second displacement represents the vertex displacement of the v-th vertex among the second vertices or the displacement after shifting the vertex displacement of the v-th vertex among the second vertices, and j, k, and v are all positive integers.
[0107] Selectively, embodiments of this application further provide a decoding method, as shown in Figure 7, which includes the following:
[0108] Step 701, receive a target bitstream, the target bitstream comprising a displacement bitstream and target identifier information, the target identifier information being used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme. Step 702, determine the target decryption method based on the target identifier information, Step 703: Decode the displacement bitstream according to the target decoding method to obtain the third vertex displacement.
[0109] In the embodiments of this application, the target indication information can explicitly or implicitly indicate the encoding scheme. Since the encoding scheme is indicated by the target identifier information, the decoding side can perform decoding by adopting the corresponding decoding scheme and obtain the vertex displacement, thereby improving the flexibility of displacement decoding.
[0110] Selectively, in some embodiments, when the target decoding method is an entropy decoding method, decoding the displacement bitstream according to the target decoding method to obtain a third vertex displacement is performed as follows: The displacement bitstream is input to an entropy decoder, decoded to obtain a fourth vertex displacement, and the fourth vertex displacement is subjected to displacement reconstruction processing to obtain the third vertex displacement. This includes either inputting the displacement bitstream into an entropy decoder, decoding it, and obtaining the third vertex displacement.
[0111] In the embodiments of this application, the displacement reconstruction process may be understood as the inverse process of the displacement process, that is, the displacement reconstruction process includes inverse coefficient quantization and inverse wavelet transform.
[0112] Selectively, in some embodiments, the target bitstream further comprises a base mesh bitstream and an auxiliary information bitstream, and the method The auxiliary information bitstream is decoded to obtain the auxiliary information, Based on the aforementioned auxiliary information, the base mesh bitstream is decoded to obtain a reconstructed base mesh. Based on the aforementioned auxiliary information, the reconstructed base mesh is subjected to a subdivision process to obtain a reconstructed subdivision mesh. This further includes performing a deformation process on the reconstructed subdivided mesh based on the third vertex displacement to obtain a target decoded mesh.
[0113] Selectively, the auxiliary information includes at least one of the following: a first encoded information corresponding to the base mesh bitstream, an encoding scheme for the displacement bitstream, and processing parameters for performing displacement processing on the first vertex displacement. Here, the first vertex displacement is used to determine the displacement bitstream.
[0114] In the embodiments of this application, a reconstructed base mesh can be subdivided based on information such as the subdivision processing scheme and the number of iterations in the auxiliary information to obtain a reconstructed subdivided mesh. After obtaining the reconstructed subdivided mesh, a deformed mesh can be reconstructed based on the reconstructed subdivided mesh and third vertex displacement information to obtain a reconstructed deformed mesh, thereby obtaining a target decoded mesh.
[0115] Selectively inputting the displacement bitstream into an entropy decoder, decoding it to obtain a fourth vertex displacement, and then performing a displacement reconstruction process on the fourth vertex displacement to obtain the third vertex displacement is, When the auxiliary information includes processing parameters for performing displacement processing on the first vertex displacement, the displacement bitstream is input to the entropy decoder, decoding is performed, and the fourth vertex displacement is obtained. This includes performing a displacement reconstruction process on the fourth vertex displacement based on the processing parameters to obtain the third vertex displacement, Here, the first vertex displacement is used to determine the displacement bitstream.
[0116] Selectively inputting the displacement bitstream into the entropy decoder, decoding it, and obtaining the third vertex displacement is, If the auxiliary information does not include processing parameters for performing displacement processing on the first vertex displacement, the displacement bitstream is input to an entropy decoder, decoding is performed, and the third vertex displacement is obtained. Here, the first vertex displacement is used to determine the displacement bitstream.
[0117] Selectively, the displacement processing includes wavelet transform and coefficient quantization.
[0118] Selectively, the target bitstream includes an auxiliary information bitstream determined based on auxiliary information, the target identifier information is a portion of the auxiliary information bitstream, and the auxiliary information is used to assist the decoding on the decoding side.
[0119] Selectively, the target identifier information is information that indicates the functions and algorithms that the decryption side needs to support.
[0120] Selectively, the target bitstream further includes an auxiliary information bitstream, the auxiliary information bitstream is The first field information to represent the number of the first vertices, A second field information to indicate whether the absolute value of the k-th component of the first displacement is equal to 0, A third field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 0, A fourth field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 1, It includes at least one of the following: a fifth field information for representing the value obtained by subtracting a first predetermined value from the k-th component of the first displacement, Here, the first vertex represents a vertex corresponding to one first mesh in one coding unit, the first displacement represents the vertex displacement of the v-th vertex among the first vertices or the displacement after shifting the vertex displacement of the v-th vertex among the first vertices, and k and v are both positive integers.
[0121] Selectively, the target bitstream further includes an auxiliary information bitstream, the auxiliary information bitstream is The first field information to represent the number of the first vertices, A sixth field of information to represent the number of iterations of the subdivision process for one first mesh in one encoding unit, The seventh field information represents the number of the second vertex, The eighth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 0, The ninth field information indicates whether the k-th component of the second displacement is greater than 0, The tenth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 1, It includes at least one of the following: an eleventh field of information that represents the value obtained by subtracting a second predetermined value from the k-th component of the second displacement, Here, the first vertex represents a vertex corresponding to a first mesh in a single coding unit, the second vertex represents a vertex generated by the j-th subdivision process of a first mesh in a single coding unit, the second displacement represents the vertex displacement of the v-th vertex among the second vertices or the displacement after shifting the vertex displacement of the v-th vertex among the second vertices, and j, k, and v are all positive integers.
[0122] It should be explained that in the embodiments of this application, the decoding framework on the decoding side is as shown in Figure 8, where the dotted box may be represented as a selective decoding flow, and the decoding flow will be described in detail below.
[0123] 1. Decoding of auxiliary information.
[0124] The decoding side first determines a decoding scheme based on auxiliary information, which includes a displacement encoding scheme that primarily instructs whether displacement is encoded by a video encoder or an entropy encoder, a static mesh encoder type that instructs the decoding side to use a corresponding static mesh decoder, a video encoder type that instructs the decoding side to use a corresponding video decoder, and a reconstruction scheme for base mesh subdivision processing in the deformed mesh, which should match the subdivision processing scheme on the codec side. There are also selective spatial domain displacement transformation schemes and coefficient array schemes.
[0125] 2. Base Mesh Decoding. Base mesh decoding is divided into in-frame mode and inter-frame mode. In in-frame mode, this module decodes the input base mesh bitstream using a decoder corresponding to a static mesh encoder indicated by auxiliary information. The decoded output is a three-dimensional mesh containing geometric information, connection relationships, and texture coordinate information. On the other hand, in inter-frame mode, this module is responsible for decoding the motion vectors corresponding to the vertices and reconstructing the base mesh of the current frame based on the reference frame.
[0126] 3. Displacement Decoding. In the displacement decoding process, it is necessary to determine the decoding method for the displacement based on the auxiliary information identifier. If the auxiliary information indicates that the displacement information will be encoded by a video encoder, the decoding side calls the corresponding video decoder and performs decoding on the displacement bitstream. If the auxiliary information indicates that the displacement information will be encoded by an entropy encoder, the decoding is performed using the entropy decoder directly.
[0127] Regarding the decoded displacement information, it is also necessary to obtain displacement vectors corresponding to the reconstructed subdivided mesh vertices through displacement reconstruction. The displacement reconstruction operation mainly involves performing inverse quantization and inverse transformation on the decoded displacement information, i.e., wavelet coefficients, using quantization and transformation parameters indicated by auxiliary information. Furthermore, for the video-decoded information, it is necessary to first extract the corresponding displacement information from the two-dimensional image according to the encoding array scheme.
[0128] 4. Subdivision processing. This subdivision processing operation is the same as the subdivision processing operation on the encoding side, and auxiliary information is used to instruct the subdivision processing method and the number of iterations for the base mesh.
[0129] 5. Reconstruction of the deformed mesh. After the decoding and reconstruction of the base mesh and displacement vectors is complete, the deformed mesh is reconstructed based on these two parts. Adding the displacement vectors corresponding to each vertex of the subdivided mesh yields the result shown in Equation 7.
[0130]
number
[0131] 6. Decoding of the displacement diagram. The texture map decoder is responsible for decoding the texture map bitstream. The texture map bitstream is decoded using the video decoder indicated in the auxiliary information. A selective color space conversion is then performed to obtain an image format that matches the input texture map from the encoding side, and finally the decoded output texture map is obtained.
[0132] After completing the above flow, the target decoded mesh and corresponding attribute diagram, which have been reconstructed by the decoder, are finally used as input for the appropriate processing.
[0133] In the encoding processing method according to the embodiment of this application, the execution body may be an encoding processing device. In the embodiment of this application, the encoding processing device according to the embodiment of this application will be described using the example that the encoding processing device executes the encoding processing method.
[0134] Referring to Figure 9, the embodiment of this application further provides an encoding processing device, and as shown in Figure 9, this encoding processing device 900 is A first processing module 901 for determining the base mesh bitstream based on the mesh to be encoded, A first encoding module 902 for performing displacement encoding on a first vertex displacement and obtaining a displacement bitstream, wherein the first vertex displacement is obtained by adjusting the displacement order on a reconstructed base mesh obtained by reconstructing it based on the base mesh bitstream according to the displacement information, the displacement information is obtained based on subdivision and deformation processing on the first mesh, and the first mesh is obtained based on mesh simplification and mesh parameterization on the mesh to be encoded, A generation module 903 for generating a target bitstream based on a texture map to be encoded corresponding to a mesh to be encoded, the base mesh bitstream, and the displacement bitstream, wherein the target bitstream includes target identifier information, the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme.
[0135] Selectively, when the encoding scheme is an entropy encoding scheme, the first encoding module 902 specifically: Displacement processing is performed on the first vertex displacement to obtain a second vertex displacement, the second vertex displacement is input to an entropy encoder, displacement encoding is performed, and the displacement bitstream is obtained. This is used to perform one of the following: inputting the first vertex displacement into an entropy encoder, performing displacement encoding, and obtaining the displacement bitstream.
[0136] Selectively, the displacement processing includes wavelet transform and coefficient quantization.
[0137] Selectively, the generation module 903, An encoding unit for encoding auxiliary information and obtaining an auxiliary information bitstream, wherein the auxiliary information includes an encoding unit used to assist decoding on the decoding side, A conversion unit for performing texture conversion based on the texture map to be encoded and the mesh to be encoded to obtain a target texture map, performing compression encoding on the target texture map, and obtaining a texture map bitstream, The system includes a mixing unit for stream mixing the base mesh bitstream, the displacement bitstream, the auxiliary information bitstream, and the texture map bitstream to obtain the target bitstream.
[0138] Selectively, the auxiliary information includes at least one of the following: a first encoded information corresponding to the base mesh bitstream, a second encoded information corresponding to the texture map bitstream, an encoding scheme for the displacement bitstream, and processing parameters for performing displacement processing on the first vertex displacement.
[0139] Selectively, the target bitstream includes an auxiliary information bitstream determined based on auxiliary information, the target identifier information is a portion of the auxiliary information bitstream, and the auxiliary information is used to assist the decoding on the decoding side.
[0140] Selectively, the target identifier information is information that indicates the functions and algorithms that the decryption side needs to support.
[0141] Selectively, the target bitstream includes an auxiliary information bitstream, and the auxiliary information bitstream is The first field information to represent the number of the first vertices, A second field information to indicate whether the absolute value of the k-th component of the first displacement is equal to 0, A third field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 0, A fourth field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 1, It includes at least one of the following: a fifth field information for representing the value obtained by subtracting a first predetermined value from the k-th component of the first displacement, Here, the first vertex represents a vertex corresponding to one first mesh in one coding unit, the first displacement represents the vertex displacement of the v-th vertex among the first vertices or the displacement after shifting the vertex displacement of the v-th vertex among the first vertices, and k and v are both positive integers.
[0142] Selectively, the target bitstream includes an auxiliary information bitstream, and the auxiliary information bitstream is The first field information to represent the number of the first vertices, A sixth field of information to represent the number of iterations of the subdivision process for one first mesh in one encoding unit, The seventh field information represents the number of the second vertex, The eighth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 0, The ninth field information indicates whether the k-th component of the second displacement is greater than 0, The tenth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 1, It includes at least one of the following: an eleventh field of information that represents the value obtained by subtracting a second predetermined value from the k-th component of the second displacement, Here, the first vertex represents a vertex corresponding to a first mesh in a single coding unit, the second vertex represents a vertex generated by the j-th subdivision process of a first mesh in a single coding unit, the second displacement represents the vertex displacement of the v-th vertex among the second vertices or the displacement after shifting the vertex displacement of the v-th vertex among the second vertices, and j, k, and v are all positive integers.
[0143] In the decoding process method according to the embodiment of this application, the execution body may be a decoding processing device. In the embodiment of this application, the decoding processing device according to the embodiment of this application will be described using the example that the decoding processing device performs an encoding process.
[0144] Referring to Figure 10, the embodiments of this application further provide a decoding apparatus, and as shown in Figure 10, this decoding apparatus 1000 is A receiving module 1001 for receiving a target bitstream, wherein the target bitstream includes a displacement bitstream and target identifier information, and the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme. A determination module 1002 for determining a target decryption method based on the aforementioned target identifier information, The system includes a first decoding module 1003 for decoding the displacement bitstream according to the target decoding scheme to obtain a third vertex displacement.
[0145] Selectively, when the target decoding method is an entropy decoding method, the first decoding module 1003 specifically, The displacement bitstream is input to an entropy decoder, decoded to obtain a fourth vertex displacement, and the fourth vertex displacement is subjected to displacement reconstruction processing to obtain the third vertex displacement. The displacement bitstream is input to an entropy decoder, decoded, and used to perform one of the following: obtaining the third vertex displacement.
[0146] Selectively, the displacement reconstruction process includes inverse coefficient quantization and inverse wavelet transform.
[0147] Selectively, the target bitstream further comprises a base mesh bitstream and an auxiliary information bitstream, and the decoding processing unit 1000 further comprises a mesh reconstruction module. The first decoding module 1003 is further used to decode the auxiliary information bitstream and obtain the auxiliary information. The reconstruction module is used to decode the base mesh bitstream based on the auxiliary information to obtain a reconstructed base mesh, to perform a subdivision process on the reconstructed base mesh based on the auxiliary information to obtain a reconstructed subdivision mesh, and to perform a deformation process on the reconstructed subdivision mesh based on the third vertex displacement to obtain a target decoded mesh.
[0148] Selectively, the auxiliary information includes at least one of the following: a first encoded information corresponding to the base mesh bitstream, an encoding scheme for the displacement bitstream, and processing parameters for performing displacement processing on the first vertex displacement. Here, the first vertex displacement is used to determine the displacement bitstream.
[0149] Selectively, the first decoding module 1003 is used to input the displacement bitstream to the entropy decoder, decode it, obtain a fourth vertex displacement, and then perform a displacement reconstruction process on the fourth vertex displacement based on the processing parameters to obtain the third vertex displacement, where the first vertex displacement is used to determine the displacement bitstream.
[0150] Selectively, the first decoding module 1003 is used to input the displacement bitstream to the entropy decoder and perform decoding to obtain the third vertex displacement when the auxiliary information does not include processing parameters for performing displacement processing on the first vertex displacement, where the first vertex displacement is used to determine the displacement bitstream.
[0151] Selectively, the displacement processing includes wavelet transform and coefficient quantization.
[0152] Selectively, the target bitstream includes an auxiliary information bitstream determined based on auxiliary information, the target identifier information is a portion of the auxiliary information bitstream, and the auxiliary information is used to assist the decoding on the decoding side.
[0153] Selectively, the target identifier information is information that indicates the functions and algorithms that the decryption side needs to support.
[0154] Selectively, the target bitstream further includes an auxiliary information bitstream, the auxiliary information bitstream is The first field information to represent the number of the first vertices, A second field information to indicate whether the absolute value of the k-th component of the first displacement is equal to 0, A third field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 0, A fourth field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 1, It includes at least one of the following: a fifth field information for representing the value obtained by subtracting a first predetermined value from the k-th component of the first displacement, Here, the first vertex represents a vertex corresponding to one first mesh in one coding unit, the first displacement represents the vertex displacement of the v-th vertex among the first vertices or the displacement after shifting the vertex displacement of the v-th vertex among the first vertices, and k and v are both positive integers.
[0155] Selectively, the target bitstream further includes an auxiliary information bitstream, the auxiliary information bitstream is The first field information to represent the number of the first vertices, A sixth field of information to represent the number of iterations of the subdivision process for one first mesh in one encoding unit, The seventh field information represents the number of the second vertex, The eighth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 0, The ninth field information indicates whether the k-th component of the second displacement is greater than 0, The tenth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 1, It includes at least one of the following: an eleventh field of information that represents the value obtained by subtracting a second predetermined value from the k-th component of the second displacement, Here, the first vertex represents a vertex corresponding to a first mesh in a single coding unit, the second vertex represents a vertex generated by the j-th subdivision process of a first mesh in a single coding unit, the second displacement represents the vertex displacement of the v-th vertex among the second vertices or the displacement after shifting the vertex displacement of the v-th vertex among the second vertices, and j, k, and v are all positive integers.
[0156] The encoding and decoding processing units in the embodiments of this application may be electronic devices, such as electronic devices having an operating system, or components of electronic devices, such as integrated circuits or chips. This electronic device may be a terminal or other device. Exemplarily, a terminal may include, but is not limited to, the types of terminals 11 listed above, and other devices may be servers, network-attached storage (NAS), etc., and the embodiments of this application are not specifically limited.
[0157] The encoding and decoding processing devices according to the embodiments of this application can implement each process realized by the embodiments of the methods shown in Figures 3 to 8 and achieve the same technical effects, and to avoid repetition, they will not be described further here.
[0158] Selectively, embodiments of this application further provide an encoding apparatus, which, A second processing module for determining the base mesh bitstream based on the mesh to be encoded, The system includes a second coding module for performing displacement coding on a first vertex displacement to obtain a displacement bitstream, wherein the displacement coding method is an entropy coding method.
[0159] Selectively, the second encoding module is further used to encode auxiliary information and obtain an auxiliary information bitstream.
[0160] Selectively, the auxiliary information bitstream is The first field information to represent the number of the first vertices, A second field information to indicate whether the absolute value of the k-th component of the first displacement is equal to 0, A third field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 0, A fourth field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 1, It includes at least one of the following: a fifth field information for representing the value obtained by subtracting a first predetermined value from the k-th component of the first displacement, Here, the first vertex represents a vertex corresponding to one first mesh in one coding unit, the first displacement represents the vertex displacement of the v-th vertex among the first vertices or the displacement after shifting the vertex displacement of the v-th vertex among the first vertices, and k and v are both positive integers.
[0161] Selectively, the auxiliary information bitstream is The first field information to represent the number of the first vertices, A sixth field of information to represent the number of iterations of the subdivision process for one first mesh in one encoding unit, The seventh field information represents the number of the second vertex, The eighth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 0, The ninth field information indicates whether the k-th component of the second displacement is greater than 0, The tenth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 1, It includes at least one of the following: an eleventh field of information that represents the value obtained by subtracting a second predetermined value from the k-th component of the second displacement, Here, the first vertex represents a vertex corresponding to a first mesh in a single coding unit, the second vertex represents a vertex generated by the j-th subdivision process of a first mesh in a single coding unit, the second displacement represents the vertex displacement of the v-th vertex among the second vertices or the displacement after shifting the vertex displacement of the v-th vertex among the second vertices, and j, k, and v are all positive integers.
[0162] Selectively, embodiments of this application further provide a decoding apparatus, which is: A retrieval module for obtaining the target bitstream, The system includes a second decoding module for performing entropy decoding on the target bitstream to obtain vertex displacement.
[0163] Selectively, the target bitstream further includes an auxiliary information bitstream, the auxiliary information bitstream is The first field information to represent the number of the first vertices, A second field information to indicate whether the absolute value of the k-th component of the first displacement is equal to 0, A third field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 0, A fourth field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 1, It includes at least one of the following: a fifth field information for representing the value obtained by subtracting a first predetermined value from the k-th component of the first displacement, Here, the first vertex represents a vertex corresponding to one first mesh in one coding unit, the first displacement represents the vertex displacement of the v-th vertex among the first vertices or the displacement after shifting the vertex displacement of the v-th vertex among the first vertices, and k and v are both positive integers.
[0164] Selectively, the target bitstream further includes an auxiliary information bitstream, the auxiliary information bitstream is The first field information to represent the number of the first vertices, A sixth field of information to represent the number of iterations of the subdivision process for one first mesh in one encoding unit, The seventh field information represents the number of the second vertex, The eighth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 0, The ninth field information indicates whether the k-th component of the second displacement is greater than 0, The tenth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 1, It includes eleventh field information for representing the value obtained by subtracting a second predetermined value from the k-th component of the second displacement, Here, the first vertex represents a vertex corresponding to a first mesh in a single coding unit, the second vertex represents a vertex generated by the j-th subdivision process of a first mesh in a single coding unit, the second displacement represents the vertex displacement of the v-th vertex among the second vertices or the displacement after shifting the vertex displacement of the v-th vertex among the second vertices, and j, k, and v are all positive integers.
[0165] Selectively, as shown in Figure 11, embodiments of the present application further provide a communication device 1100 which includes a processor 1101 and a memory 1102, the memory 1102 storing a program or instruction that can be executed on the processor 1101, for example, if this communication device 1100 is an encoding device, when this program or instruction is executed by the processor 1101, each step of the embodiment of the encoding processing method can be realized and the same technical effect can be achieved. If this communication device 1100 is a decoding device, when this program or instruction is executed by the processor 1101, each step of the embodiment of the decoding processing method can be realized and the same technical effect can be achieved, and to avoid repetition of the explanation, it will not be explained further here.
[0166] Embodiments of this application further provide an electronic device which includes a processor and a communication interface, wherein If the electronic device is the encoding side, the processor is used to determine a base mesh bitstream based on the mesh to be encoded, perform displacement encoding on a first vertex displacement to obtain a displacement bitstream, wherein the first vertex displacement is obtained by adjusting the displacement order on a reconstructed base mesh obtained by reconstructing it based on the base mesh bitstream according to the displacement information, the displacement information is obtained based on a subdivision and deformation process on the first mesh, the first mesh is obtained based on mesh simplification and mesh parameterization on the mesh to be encoded, and generate a target bitstream based on the texture map to be encoded, the base mesh bitstream and the displacement bitstream corresponding to the mesh to be encoded, wherein the target bitstream includes target identifier information, and the target identifier information is used to indicate that the encoding method of the displacement bitstream is a video encoding method or an entropy encoding method. When the electronic device is the decoding side, the communication interface is used to receive a target bitstream, the target bitstream includes a displacement bitstream and target identifier information, the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme, and the processor is used to determine a target decoding scheme based on the target identifier information, decode the displacement bitstream according to the target decoding scheme, and obtain a third vertex displacement. Or, When the electronic device is the encoding side, the processor is used to determine a base mesh bitstream based on the mesh to be encoded, perform displacement coding on the first vertex displacement, and obtain a displacement bitstream, wherein the displacement coding method is an entropy coding method. When the electronic device is the decoding side, the processor is used to acquire the target bitstream, perform entropy decoding on the target bitstream, and obtain the vertex displacement.
[0167] This embodiment of the electronic device corresponds to the embodiment of the codec-side device method described above, and each implementation process and realization method of the embodiment of the above method can be applied to this embodiment of the electronic device and achieve the same technical effects. Specifically, Figure 12 is a schematic diagram of the hardware structure realizing the electronic device of the embodiment of this application.
[0168] This electronic device 1200 includes, but is not limited to, some of the following components: a radio frequency unit 1201, a network module 1202, an audio output unit 1203, an input unit 1204, a sensor 1205, a display unit 1206, a user input unit 1207, an interface unit 1208, a memory 1209, and a processor 1210.
[0169] As those skilled in the art will understand, the electronic device 1200 may further include power supplies (e.g., batteries) for supplying power to each component, and the power supplies may be logically connected to the processor 1210 by a power management system, thereby enabling functions such as charge / discharge management and power consumption management by the power management system. The electronic device structure shown in Figure 12 does not constitute a limitation on the electronic device, and the electronic device may include more or fewer components than those shown, or combinations of some components, or different arrangements of components, which will not be described further here.
[0170] It should be understood that, in the embodiments of this application, the input unit 1204 may include a graphics processing unit (GPU) 12041 and a microphone 12042, the graphics processor 12041 processing still images or video image data obtained by an image capture device (e.g., a camera) in video capture mode or image capture mode. The display unit 1206 may include a display panel 12061, which may be configured in the form of a liquid crystal display, organic light-emitting diodes, etc. The user input unit 1207 includes at least one of a touch panel 12071 and other input devices 12072. The touch panel 12071 is also called a touchscreen. The touch panel 12071 may include two parts: a touch detection device and a touch controller. The other input devices 12072 may include, but are not limited to, a physical keyboard, function keys (e.g., volume control buttons, switch buttons, etc.), a trackball, a mouse, or an operating lever, and will not be described further here.
[0171] In the embodiments of this application, the radio frequency unit 1201 can receive downlink data from network-side equipment and transmit it to the processor 1210 for processing, and the radio frequency unit 1201 can also transmit uplink data to network-side equipment. Generally, the radio frequency unit 1201 includes, but is not limited to, an antenna, amplifier, transceiver, coupler, low-noise amplifier, duplexer, etc.
[0172] Memory 1209 may be used to store software programs or instructions and various data. Memory 1209 may include a first storage area mainly for storing programs or instructions and a second storage area for storing data, wherein the first storage area can store an operating system, an application program or instructions necessary for at least one function (e.g., audio playback function, image playback function, etc.). Memory 1209 may include volatile memory or non-volatile memory, or memory 1209 may include both volatile and non-volatile memory. Here, non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (Erasable PROM, EPROM), electrically erasable programmable read-only memory (Electrically EPROM, EEPROM), or flash memory. The volatile memory may be Random Access Memory (RAM), Static Random Access Memory (Static RAM, SRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (Synchronous DRAM, SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (Double Data Rate SDRAM, DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (Enhanced SDRAM, ESDRAM), Synch-link Dynamic Random Access Memory (Synch-link DRAM, SLDRAM), and Direct Rambus Random Access Memory (DRRAM). The memory 1209 in the embodiments of this application includes, but is not limited to, these and any other suitable types of memory.
[0173] The processor 1210 may include one or more processing units. Selectively, the processor 1210 integrates an application processor and a modem processor, where the application processor primarily handles operations related to the operating system, user interface, and application programs, and the modem processor primarily handles wireless communication signals, such as a baseband processor. To be clear, the above-mentioned modem processor does not have to be integrated into the processor 1210.
[0174] Here, if the electronic device is the encoding side, the processor 1210 determines a base mesh bitstream based on the mesh to be encoded, performs displacement encoding on the first vertex displacement to obtain a displacement bitstream, wherein the first vertex displacement is obtained by adjusting the displacement order on a reconstructed base mesh obtained by reconstructing it based on the base mesh bitstream according to the displacement information, the displacement information is obtained based on a subdivision and deformation process on the first mesh, the first mesh is obtained based on mesh simplification and mesh parameterization on the mesh to be encoded, and generates a target bitstream based on the texture map to be encoded, the base mesh bitstream and the displacement bitstream corresponding to the mesh to be encoded, wherein the target bitstream includes target identifier information, and the target identifier information is used to indicate that the encoding method of the displacement bitstream is a video encoding method or an entropy encoding method. When the electronic device is the decoding side, the radio frequency unit 1201 is used to receive a target bitstream, the target bitstream includes a displacement bitstream and target identifier information, the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme, the processor 1210 is used to determine a target decoding scheme based on the target identifier information, decode the displacement bitstream according to the target decoding scheme, and obtain a third vertex displacement. Or, When the electronic device is the encoding side, the processor 1210 is used to determine a base mesh bitstream based on the mesh to be encoded, perform displacement coding on the first vertex displacement, and obtain a displacement bitstream, wherein the displacement coding method is an entropy coding method. When the electronic device is the decoding side, the processor 1210 is used to acquire the target bitstream, perform entropy decoding on the target bitstream, and obtain the vertex displacement.
[0175] Embodiments of this application further provide a readable storage medium in which a program or instruction is stored, and when this program or instruction is executed by a processor, each process of the above-described embodiment of the encoding or decoding method can be realized and the same technical effects can be achieved. To avoid repetition of the description, no further explanation is provided here.
[0176] Here, the processor is the processor in the electronic device described in the above embodiment. The readable storage medium includes a computer-readable storage medium, such as a computer read-only memory ROM, a random access memory RAM, a magnetic disk, or an optical disk.
[0177] Embodiments of this application further provide a chip comprising a processor and a communication interface, the communication interface being coupled with the processor, the processor running a program or instructions and used to implement each process of the embodiment of the encoding or decoding method and achieving the same technical effects, which are not described further herein to avoid repetition.
[0178] It should be understood that the chips referred to in the embodiments of this application may also be called system-level chips, system chips, chip systems, or system-on-a-chip, etc.
[0179] Embodiments of this application further provide a computer program / program product in which the computer program / program product is stored in a storage medium and executed by at least one processor to realize each process of the embodiment of the encoding or decoding method and achieve the same technical effects, and to avoid repetition of the description, no further explanation is provided here.
[0180] Embodiments of this application further provide a video codec system comprising an encoding device and a decoding device, wherein the encoding device is used to carry out the processes of each embodiment of the encoding device as shown in Figure 3, and the decoding device is used to carry out the processes of each embodiment of the decoding device as shown in Figure 7, and can achieve the same technical effects, which are not described further here in order to avoid repetition of the description.
[0181] It should be noted that, in this specification, the terms “include,” “incorporate,” or any other variation thereof are intended to cover the non-exclusive “include,” thereby including not only those elements but also other elements not explicitly listed, or elements specific to such process, method, article, or apparatus. Unless otherwise specified, an element limited by the phrase “includes one of…” is not excluded from the existence of other identical elements in a process, method, article, or apparatus containing that element. It should also be noted that the scope of methods and apparatus in embodiments of this application is not limited to performing functions in the order illustrated or discussed, but may include performing functions in a manner that is essentially simultaneous or in reverse order based on the functions involved, and methods described in a different procedure than those described, for example, may be performed, and various steps may be added, omitted, or combined. Furthermore, features described by reference to some examples may be combined with other examples.
[0182] As will be readily apparent to those skilled in the art from the above description of the embodiments, the methods of the above embodiments can be implemented in the form of software and a necessary general-purpose hardware platform. Of course, they may also be implemented in hardware, but in many cases the former is a more preferred embodiment. With this understanding in mind, the technical invention of this application may be embodied in substance or in part in relation to the art in the form of a computer software product, which is stored on a single storage medium (e.g., ROM / RAM, magnetic disk, optical disk) and contains some instructions for causing a terminal (which may be a mobile phone, computer, server, air conditioner, or network device, etc.) to perform the methods of each embodiment of this application.
[0183] The above describes embodiments of this application, accompanied by drawings; however, this application is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can, by the suggestion of this application, make many forms, as long as they do not deviate from the spirit and claims of this application, and all of these fall within the scope of protection of this application.
Claims
1. An encoding method used on the encoding side, Determining the base mesh bitstream based on the mesh to be encoded, The method involves performing displacement coding on a first vertex displacement to obtain a displacement bitstream, wherein the first vertex displacement is obtained by adjusting the displacement order of a reconstructed base mesh obtained by reconstructing it based on the base mesh bitstream according to the displacement information, the displacement information is obtained based on subdivision and deformation processing of the first mesh, and the first mesh is obtained based on mesh simplification and mesh parameterization of the mesh to be coded. An encoding method comprising generating a target bitstream based on a texture map to be encoded corresponding to the mesh to be encoded, the base mesh bitstream, and the displacement bitstream, wherein the target bitstream includes target identifier information, and the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme.
2. When the encoding method is an entropy encoding method, performing displacement encoding on the first vertex displacement to obtain a displacement bitstream is: Displacement processing is performed on the first vertex displacement to obtain a second vertex displacement, the second vertex displacement is input to an entropy encoder, displacement encoding is performed, and the displacement bitstream is obtained. The method according to claim 1, further comprising inputting the first vertex displacement into an entropy encoder, performing displacement encoding, and obtaining the displacement bitstream.
3. The method according to claim 2, wherein the displacement processing includes wavelet transform and coefficient quantization.
4. The method according to any one of claims 1 to 3, wherein the target bitstream includes an auxiliary information bitstream determined based on auxiliary information, the target identifier information is a portion of the auxiliary information bitstream, and the auxiliary information is used to assist decoding on the decoding side.
5. The method according to any one of claims 1 to 3, wherein the target identifier information is information for indicating the functions and algorithms that the decryption side needs to support.
6. The target bitstream includes an auxiliary information bitstream, and the auxiliary information bitstream is The first field information to represent the number of the first vertices, A second field information to indicate whether the absolute value of the k-th component of the first displacement is equal to 0, A third field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 0, A fourth field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 1, It includes at least one of the following: a fifth field information for representing the value obtained by subtracting a first predetermined value from the k-th component of the first displacement, The method according to any one of claims 1 to 5, wherein the first vertex represents a vertex corresponding to one of the first meshes in one coding unit, the first displacement represents the vertex displacement of the v-th vertex among the first vertices or the displacement after shifting the vertex displacement of the v-th vertex among the first vertices, and k and v are both positive integers.
7. The target bitstream includes an auxiliary information bitstream, and the auxiliary information bitstream is The first field information to represent the number of the first vertices, A sixth field of information to represent the number of iterations of the subdivision process for one first mesh in one encoding unit, The seventh field information represents the number of the second vertex, The eighth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 0, The ninth field information indicates whether the k-th component of the second displacement is greater than 0, The tenth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 1, It includes at least one of the following: an eleventh field of information that represents the value obtained by subtracting a second predetermined value from the k-th component of the second displacement, The method according to any one of claims 1 to 5, wherein the first vertex represents a vertex corresponding to one of the first meshes in one coding unit, the second vertex represents a vertex generated by the j-th subdivision process of one of the first meshes in one coding unit, the second displacement represents the vertex displacement of the v-th vertex among the second vertices or the displacement after shifting the vertex displacement of the v-th vertex among the second vertices, and j, k, and v are all positive integers.
8. A decoding process method used on the decoding side, Receiving a target bitstream, wherein the target bitstream includes a displacement bitstream and target identifier information, and the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme. The target decryption method is determined based on the aforementioned target identifier information, A decoding method comprising decoding the displacement bitstream according to the target decoding scheme to obtain a third vertex displacement.
9. When the target decoding method is an entropy decoding method, decoding the displacement bitstream according to the target decoding method to obtain a third vertex displacement is: The displacement bitstream is input to an entropy decoder, decoded to obtain a fourth vertex displacement, and the fourth vertex displacement is subjected to displacement reconstruction processing to obtain the third vertex displacement. The method according to claim 8, further comprising inputting the displacement bitstream into an entropy decoder, decoding it, and obtaining the third vertex displacement.
10. The method according to claim 9, wherein the displacement reconstruction process includes inverse coefficient quantization and inverse wavelet transform.
11. The above process involves inputting the displacement bitstream into an entropy decoder, decoding it to obtain a fourth vertex displacement, and then performing a displacement reconstruction process on the fourth vertex displacement to obtain the third vertex displacement. When the auxiliary information includes processing parameters for performing displacement processing on the first vertex displacement, the displacement bitstream is input to the entropy decoder, decoding is performed, and the fourth vertex displacement is obtained. This includes performing a displacement reconstruction process on the fourth vertex displacement based on the processing parameters to obtain the third vertex displacement, The method according to claim 9, wherein the auxiliary information is used to assist the decoding on the decoding side, and the first vertex displacement is used to determine the displacement bitstream.
12. The above process involves inputting the displacement bitstream into an entropy decoder, decoding it, and obtaining the third vertex displacement. If the auxiliary information does not include processing parameters for performing displacement processing on the first vertex displacement, the displacement bitstream is input to an entropy decoder, decoding is performed, and the third vertex displacement is obtained. The method according to claim 11, wherein the first vertex displacement is used to determine the displacement bitstream.
13. The method according to claim 11 or 12, wherein the displacement processing includes wavelet transform and coefficient quantization.
14. The method according to any one of claims 8 to 13, wherein the target bitstream includes an auxiliary information bitstream determined based on auxiliary information, the target identifier information is a portion of the auxiliary information bitstream, and the auxiliary information is used to assist decoding on the decoding side.
15. The method according to any one of claims 8 to 13, wherein the target identifier information is information for indicating the functions and algorithms that the decryption side needs to support.
16. The target bitstream further includes an auxiliary information bitstream, and the auxiliary information bitstream is The first field information to represent the number of the first vertices, A second field information to indicate whether the absolute value of the k-th component of the first displacement is equal to 0, A third field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 0, A fourth field of information to indicate whether the absolute value of the k-th component of the first displacement is greater than 1, It includes at least one of the following: a fifth field information for representing the value obtained by subtracting a first predetermined value from the k-th component of the first displacement, The method according to any one of claims 8 to 10, wherein the first vertex represents a vertex corresponding to a first mesh in one coding unit, the first displacement represents the vertex displacement of the v-th vertex among the first vertices or the displacement after shifting the vertex displacement of the v-th vertex among the first vertices, and k and v are both positive integers.
17. The target bitstream further includes an auxiliary information bitstream, and the auxiliary information bitstream is The first field information to represent the number of the first vertices, A sixth field of information to represent the number of iterations of the subdivision process for one first mesh in one encoding unit, The seventh field information represents the number of the second vertex, The eighth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 0, The ninth field information indicates whether the k-th component of the second displacement is greater than 0, The tenth field information indicates whether the absolute value of the k-th component of the second displacement is greater than 1, It includes eleventh field information for representing the value obtained by subtracting a second predetermined value from the k-th component of the second displacement, The method according to any one of claims 8 to 10, wherein the first vertex represents a vertex corresponding to a first mesh in one coding unit, the second vertex represents a vertex generated by the j-th subdivision process of a first mesh in one coding unit, the second displacement represents the vertex displacement of the v-th vertex among the second vertices or the displacement after shifting the vertex displacement of the v-th vertex among the second vertices, and j, k, and v are all positive integers.
18. An encoding processing device used on the encoding side, A first processing module for determining the base mesh bitstream based on the mesh to be encoded, A first encoding module for performing displacement encoding on a first vertex displacement and obtaining a displacement bitstream, wherein the first vertex displacement is obtained by adjusting the displacement order on a reconstructed base mesh obtained by reconstructing it based on the base mesh bitstream according to the displacement information, the displacement information is obtained based on subdivision and deformation processing on the first mesh, and the first mesh is obtained based on mesh simplification and mesh parameterization on the mesh to be encoded, An encoding processing device comprising: a generation module for generating a target bitstream based on a texture map to be encoded corresponding to the mesh to be encoded, the base mesh bitstream, and the displacement bitstream, wherein the target bitstream includes target identifier information, and the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme.
19. A decoding processing device used on the decoding side, A receiving module for receiving a target bitstream, wherein the target bitstream includes a displacement bitstream and target identifier information, and the target identifier information is used to indicate that the encoding scheme of the displacement bitstream is a video encoding scheme or an entropy encoding scheme. A decision module for determining a target decryption method based on the aforementioned target identifier information, A decoding apparatus comprising a first decoding module for decoding the displacement bitstream according to the target decoding scheme to obtain a third vertex displacement.
20. Electronic device comprising a processor and a memory storing a program or instruction that can be run on the processor, wherein when the program or instruction is executed by the processor, the steps of the encoding process described in any one of claims 1 to 7 are realized, or when the program or instruction is executed by the processor, the steps of the decoding process described in any one of claims 8 to 17 are realized.
21. A readable storage medium on which a program or instruction is stored, wherein when the program or instruction is executed by the processor, the steps of the encoding processing method described in any one of claims 1 to 7 are realized, or when the program or instruction is executed by the processor, the steps of the decoding processing method described in any one of claims 8 to 17 are realized.
Citation Information
Patent Citations
Three-dimensional data decoding apparatus and three-dimensional data encoding apparatus
JP2024086244A
Information processing device and method
WO2024084952A1