Encoding and decoding methods, encoder, decoder and storage medium
By signaling differential QP only when differences exist in lattice coding, the problem of high signaling overhead in displacement coefficient coding is solved, and a more efficient encoding and decoding process is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
- Filing Date
- 2024-09-27
- Publication Date
- 2026-04-21
AI Technical Summary
In existing mesh coding methods, the encoding of displacement coefficients generates high signaling overhead, which affects the performance of mesh compression.
By signaling the differential QP only when differences exist during encoding and decoding, signaling overhead is reduced, the coding efficiency of the shift component is improved, and the code rate is reduced.
It effectively reduces signaling overhead, improves the coding efficiency of shift components, and reduces the code rate.
Smart Images

Figure CN121909643A_ABST
Abstract
Description
Cross-reference to related applications
[0001] This application is based on and claims the benefit of priority to U.S. Patent Application No. 63 / 541,721, filed September 29, 2023, the contents of which are incorporated herein by reference in their entirety. Technical Field
[0002] This application relates to the technical field of grid compression coding, and more specifically, to an encoding method, a decoding method, an encoder, a decoder, and a storage medium. Background Technology
[0003] In the standard reference software for dynamic mesh coding provided by the Moving Image Experts Group (MPEG), the encoding and decoding of the mesh's geometric information first involves preprocessing the original mesh to obtain a base mesh, which is then encoded using a general coding method (e.g., "edgebreaker"). Next, the base mesh is subdivided hierarchically to obtain a subdivided mesh, and displacement coefficients are obtained based on the differences between the subdivision points of the subdivided mesh and the approximations of the original mesh. Finally, the displacement coefficients are packaged into a two-dimensional image and encoded using a lossless video coding method such as HEVC.
[0004] However, in common encoding methods, encoding the displacement coefficients results in high signaling overhead, which affects the performance of mesh compression. Summary of the Invention
[0005] This application provides an encoding method, a decoding method, an encoder, a decoder, and a storage medium, which can reduce the signaling overhead in the encoding and decoding of mesh geometric displacement, improve the encoding efficiency of displacement components, and reduce the code rate.
[0006] The technical solution of this application embodiment can be implemented as follows.
[0007] In a first aspect, embodiments of this disclosure provide a decoding method applied to a decoder. The method includes the following operations.
[0008] Decode the prediction parameters of the current level from the bitstream.
[0009] Decode the differential QP of the current level from the bitstream when the prediction parameters indicate that the reference quantization parameter (QP) of the current level should be updated.
[0010] Update the reference QP of the current level based on the differential QP to determine the target QP of the current level.
[0011] The displacement components are dequantized based on the target QP of the current level to determine the reconstructed values of the displacement components at the current level.
[0012] In a second aspect, embodiments of this disclosure provide an encoding method applied to an encoder. The method includes the following operations.
[0013] Determine the difference QP for the current level from the candidate difference QPs for the current level.
[0014] Update the reference QP of the current level based on the differential QP to determine the target QP of the current level.
[0015] The displacement components are dequantized based on the target QP of the current level to determine the reconstructed values of the displacement components at the current level.
[0016] The cost of differential QP is calculated based on the reconstructed values of the displacement components.
[0017] The encoding method is determined based on the cost of the differential QP, which in turn determines the prediction parameters for the current level. The prediction parameters indicate whether to update the reference QP for the current level.
[0018] The prediction parameters are encoded.
[0019] Given a reference QP for updating the current level, the differential QP is encoded, and the resulting encoded bits are written into the bitstream.
[0020] In a third aspect, embodiments of this disclosure provide an encoder. The encoder includes a first determining unit, a first inverse quantization unit, a decision unit, and an encoding unit.
[0021] The first determining unit is configured to: determine the differential QP of the current level from the candidate differential QPs of the current level; and update the reference QP of the current level according to the differential QP to determine the target QP of the current level.
[0022] The first dequantization unit is configured to dequantize the displacement components according to the target QP of the current level in order to determine the reconstructed values of the displacement components of the current level.
[0023] The decision unit is configured to: calculate the cost of the differential QP based on the reconstructed values of the displacement components; determine the encoding method based on the cost of the differential QP to determine the prediction parameters of the current level, which indicate whether to update the reference QP of the current level.
[0024] The coding unit is configured to: encode the prediction parameters, and, if it is determined that the reference QP for updating the current level is to be updated, encode the differential QP and write the resulting coded bits into the bitstream.
[0025] In a fourth aspect, embodiments of this disclosure provide an encoder. The encoder includes a first memory and a first processor.
[0026] The first memory is configured to store computer programs that can run in the first processor.
[0027] The first processor is configured to execute the method according to the second aspect when running a computer program.
[0028] In a fifth aspect, embodiments of this disclosure provide a decoder. The decoder includes a decoding unit, a second determining unit, and a second inverse quantization unit.
[0029] The decoding unit is configured to decode the prediction parameters of the current level from the bitstream.
[0030] The decoding unit is also configured to decode the differential QP of the current level from the bitstream when the prediction parameters indicate that the reference QP of the current level should be updated.
[0031] The second determining unit is configured to update the reference QP of the current level based on the differential QP to determine the target QP of the current level.
[0032] The second dequantization unit is configured to dequantize the displacement components according to the target QP of the current level in order to determine the reconstructed values of the displacement components of the current level.
[0033] In a sixth aspect, embodiments of this disclosure provide a decoder. The decoder includes a second memory and a second processor.
[0034] The second memory is configured to store computer programs that can run on the second processor.
[0035] The second processor is configured to execute the method according to the first aspect when running a computer program.
[0036] In a seventh aspect, embodiments of this disclosure provide a computer-readable storage medium storing a bitstream generated by an encoding method.
[0037] In an eighth aspect, embodiments of this disclosure provide a computer-readable storage medium storing a computer program that, when executed, implements the method as described in the first aspect or the method as described in the second aspect.
[0038] This disclosure provides an encoding method, a decoding method, an encoder, a decoder, and a storage medium. At both the encoding and decoding ends, prediction parameters for the current level are determined. If the prediction parameters indicate that the reference QP for the current level needs to be updated, a differential QP for the current level is determined. The reference QP for the current level is updated based on the differential QP to determine the target QP for the current level. The displacement components are dequantized based on the target QP for the current level to determine the reconstructed values of the displacement components for the current level. In this way, signaling notifies the differences in QPs between different levels, and the corresponding differential QP is encoded only when a difference exists. Therefore, compared to explicitly signaling the differential QP for each level, signaling overhead can be reduced, the encoding and decoding efficiency of displacement components can be improved, and the code rate can be reduced. Attached Figure Description
[0039] Figure 1 An example of a mesh data structure with attributes for each vertex is shown.
[0040] Figure 2 An example of a surface represented by a grid with color characteristics for each vertex is shown.
[0041] Figure 3 An example of a data structure for a grid with color characteristics for each vertex is shown.
[0042] Figure 4 An example of a grid data structure with attribute mapping features is shown.
[0043] Figure 5 An example of a surface represented by a mesh with attribute mapping features is shown.
[0044] Figure 6A An example of a manifold grid is shown.
[0045] Figure 6B An example of a non-manifold mesh is shown.
[0046] Figure 7 An example of a two-stage geometric encoding process is shown.
[0047] Figure 8 An example of the process of generating displacement components for a surface in a base mesh is shown.
[0048] Figure 9 An example of the displacement components of a mesh vertex is shown.
[0049] Figure 10 A flowchart of the encoding process for a parameterized mesh is shown.
[0050] Figure 11A flowchart of a decoding method according to an embodiment of the present disclosure is shown.
[0051] Figure 12A and Figure 12B A flowchart illustrating the inverse quantization of displacement components according to an embodiment of this disclosure is shown.
[0052] Figure 13 A flowchart of an encoding method according to an embodiment of the present disclosure is shown.
[0053] Figure 14 A flowchart illustrating the packing process of displacement components according to an embodiment of this disclosure is shown; Figure 15 A first schematic diagram of forward packing of displacement wavelet coefficients based on LoD according to an embodiment of the present disclosure is shown.
[0054] Figure 16 A first schematic diagram of inverse packing of LoD-based displacement wavelet coefficients according to an embodiment of the present disclosure is shown.
[0055] Figure 17 A second schematic diagram of forward packing of LoD-based displacement wavelet coefficients according to an embodiment of the present disclosure is shown.
[0056] Figure 18 A second schematic diagram of the reverse packing of LoD-based displacement wavelet coefficients according to an embodiment of the present disclosure is shown.
[0057] Figure 19 A first schematic diagram of the structure of an encoder according to an embodiment of the present disclosure is shown.
[0058] Figure 20 A second schematic diagram of the structure of an encoder according to an embodiment of the present disclosure is shown; Figure 21 A first schematic diagram of the structure of a decoder according to an embodiment of the present disclosure is shown.
[0059] Figure 22 A second schematic diagram of the structure of a decoder according to an embodiment of the present disclosure is shown.
[0060] Figure 23 A schematic diagram of the structure of a codec according to an embodiment of the present disclosure is shown. Detailed Implementation
[0061] To gain a more detailed understanding of the features and technical content of the embodiments of this disclosure, the implementation methods of the embodiments of this disclosure will be described in detail below with reference to the accompanying drawings. The drawings are for reference only and are not intended to limit the embodiments of this disclosure.
[0062] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this disclosure.
[0063] In the following description, reference is made to “some embodiments” which describe a subset of all possible embodiments; however, it should be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0064] It should also be noted that the terms "first / second / third" mentioned in the embodiments of this disclosure are used only to distinguish similar objects and do not indicate a specific order of objects. It should also be understood that "first / second / third" may be interchanged in a specific order or priority where permitted, so that the embodiments of this disclosure described herein can be implemented in an order different from that shown or described herein.
[0065] It is important to note that streams of different data formats can be decoded and synthesized within the same video scene. These data formats can include at least image formats, point cloud formats, and mesh formats. In this way, real-time immersive video interactive services can be provided for multiple data formats from different sources (e.g., meshes, point clouds, images, etc.).
[0066] In this embodiment of the disclosure, the data format-based method allows for independent processing at the bitstream level of the data format. That is, similar to tiles or slices in video encoding, different data formats in a scene can be encoded independently, enabling independent encoding and decoding to be performed based on the data format.
[0067] Generally, three-dimensional (3D) animation content is represented based on keyframes. That is, each frame is a static mesh. Static meshes at different times have the same topology but different geometries. However, the data volume of 3D dynamic meshes represented based on keyframes is enormous. Therefore, how to achieve efficient storage, transmission, and rendering becomes a problem to be solved during the development of 3D dynamic meshes. Furthermore, to adapt to different user terminals (e.g., computers, laptops, portable devices, mobile phones), spatial scalability of the mesh needs to be supported. To adapt to different network bandwidths (e.g., broadband, narrowband, wireless), quality scalability of the mesh needs to be supported. Therefore, 3D dynamic mesh compression is a critical issue.
[0068] 1. Key Terminology for 3D Dynamic Meshes Mesh: A collection of vertices, edges, and faces that defines the shape / topology of a polyhedral object. Faces are typically composed of triangles (i.e., a triangular mesh).
[0069] Base Mesh: A mesh with fewer vertices but that retains similarity to the original surface.
[0070] Dynamic Mesh: A mesh with at least one of the five components (connectivity, geometry, mapping, vertex attributes, and attribute graph) that changes over time.
[0071] Animated Mesh: A dynamic mesh with constant connectivity.
[0072] Parameterized Mesh: A type of mesh whose topology is defined as a mapping of components.
[0073] Connectivity: Describes how mesh vertices are connected to create a 3D surface using a set of vertex indices (geometry and all properties share the same unique connectivity information).
[0074] Geometry: A set of three-dimensional (x, y, z) coordinates of a vertex used to describe the position associated with a mesh vertex. The (x, y, z) coordinates representing the position should have finite precision and dynamic range.
[0075] Mapping: Describes how a mesh surface is mapped to a planar two-dimensional region. This mapping is described by a set of UV parameters / texture (mapping) coordinates associated with the mesh vertices and connectivity information.
[0076] Vertex Attribute: A scalar vector attribute value associated with a mesh vertex.
[0077] Attribute Map: Attributes associated with the mesh surface and stored as a two-dimensional image / video. The mapping between the video (i.e., parameter space) and the surface is defined by the mapping information.
[0078] Vertex: Position (usually in 3D space), and other information such as color, normal vector, and texture coordinates.
[0079] Edge: A connection between two vertices.
[0080] Face: A set of closed edges, where a triangular face has three edges defined by its three vertices. The orientation of a face is determined using a right-handed coordinate system.
[0081] Surface: A collection of faces that separate a three-dimensional object from its environment.
[0082] Bits per point (bpp): The number of bits of information required to describe a point in a grid.
[0083] Displacement: The difference between the original mesh geometry and the mesh geometry reconstructed due to the underlying mesh subdivision process.
[0084] Level of details (LoD): A scalable representation of mesh reconstruction, where each level of detail includes enough information to reconstruct the mesh to the indicated accuracy or spatial resolution. Each subsequent level of detail is a refinement of multiple previously reconstructed meshes.
[0085] 2. Related Technologies Figure 1 An example of a data structure for a mesh with attributes for each vertex is shown in the figure.
[0086] Figure 2 This illustrates a mesh with color characteristics for each vertex. Figure 1 Examples of surfaces represented by ). Figure 3 The image shows an example of a mesh data structure with color characteristics for each vertex. The mesh consists of four vertices and three faces. Each vertex in space is described by its X, Y, Z position coordinates and three color attributes R, G, and B.
[0087] As shown below, each face is defined by the indices of the three vertices that form a triangle.
[0088]
[0089] Figure 4 An example of a data structure for a grid with attribute mapping features is shown in the figure.
[0090] Figure 5 The image shows a mesh with attribute mapping characteristics. Figure 4 Example of a surface represented by (). A mesh consists of four vertices and three faces. Each vertex in space is described by its X, Y, Z position coordinates. (U, V) represents the attribute coordinates in the 2D texture vertex map. Each face is defined by three pairs of vertex indices and texture vertex coordinates, which form triangles in 3D space and triangles in the 2D texture map.
[0091]
[0092] The orientation of a face is determined using a right-handed coordinate system. A face consists of three vertices belonging to three edges, and the indices of these three vertices describe each face.
[0093] A manifold mesh is a mesh in which at most two edges belong to different faces, such as... Figure 6A As shown.
[0094] Non-manifold meshes are meshes with edges belonging to more than two faces, such as... Figure 6B As shown.
[0095] The current algorithm employs a two-stage encoding process to encode geometric information. First, the geometry is decimated to create a base mesh encoded using a general geometric coding method (e.g., "edgebreaker"). Then, the base mesh is subdivided hierarchically, storing the differences between the subdivision points and the approximation of the original mesh as geometric displacement components. These displacement components are packed into a 2D image and encoded using a lossless video coding method such as HEVC.
[0096] Figure 7 An example of a two-stage geometric coding process is shown in the figure.
[0097] Figure 8 The document describes the process of generating displacement components when performing a refinement step on a surface of the base mesh. PB1, PB2, and PB3 represent base mesh points, PS1, PS2, and PS3 represent refinement points, and PSD1, PSD2, and PSD3 represent refinement points after displacement.
[0098] The subdivision point PS1 is calculated as the midpoint between points PB1 and PB2. This process can be repeated recursively.
[0099] Each vector in PS1 and PSD1 is described by three displacement components in the directions of normal, tangent, and bitangent. Figure 9 The three shift components are further subjected to wavelet transform, and the corresponding transform coefficients are mapped to the color plane (e.g., the Y, U and V components in the YUV 444 color space).
[0100] Figure 10 The document provides a flowchart describing the encoding process for parameterized meshes. The specific encoding process is as follows.
[0101] The base grid frame is quantized and encoded using a static grid encoder. This process is independent of which grid encoding scheme is used to compress the base grid.
[0102] The displacement is processed by a hierarchical wavelet transform (or another method), which recursively applies the refinement layer to the reconstructed base mesh.
[0103] The wavelet coefficients are then quantized, packaged into 2D images / videos, and compressed using a conventional image / video encoder.
[0104] The reconstructed wavelet coefficients are obtained by unpacking and inverse quantizing the image / video generated during the image / video decoding process.
[0105] Then, the reconstructed displacement is calculated by performing an inverse wavelet transform on the reconstructed wavelet coefficients.
[0106] Wavelet coefficients are calculated in floating-point format and can be positive or negative. In existing technologies, to construct a 2D image, the coefficients are first converted to positive and mapped to a specified bit depth.
[0107] c′(i) = 2^[bit_depth-1] + [c(i)* 2^bit_depth] / [c_max - c_min], Where c′(i) is the integerized displacement coefficient value, c(i) is the current displacement coefficient, c_max is the maximum displacement coefficient value, c_min is the minimum displacement coefficient value, and bit-depth is a value that defines the fixed number of layers used for image encoding.
[0108] The displacement components are transformed using a lifting wavelet transform, and their corresponding values are quantized based on the value of `vmc_transform_lifting_quantization_parameters[ltpIndex][i]`. `ltpIndex` defines the application level: 0-sequence; 1-frame; 2-patch. `i` represents the corresponding displacement coefficient component (x, y, z in standard coordinates; n, t, bt in local coordinates).
[0109] `vdmc_lifting_transform_parameters(index, ltpIndex)` identifies a set of lift transformation parameters. The bitstream may include one or more sets of lift transformation parameters to choose from. `index` defines the number corresponding to a set of lift transformation parameters. The structure of `vdmc_lifting_transform_parameters(index, ltpIndex)` is shown in Table 1.
[0110] Table 1 Structure of lifting transformation parameters
[0111] In order to encode the displacement components using existing video coding standards, the transformed displacement components are mapped from a one-dimensional array to a two-dimensional image.
[0112] Each unit vector component is associated with a different color plane.
[0113] For example, when the normal unit vector is mapped to the Y plane; the tangent unit vector is mapped to the U plane; and the bitangent unit vector is mapped to the V plane, YUV444 color mapping is used for encoding in this case.
[0114] The drawback of this approach is that any update to the QP parameters requires signaling to the entire vdmc_lifting_transform_parameters(index, ltpIndex) structure in the corresponding header syntax element.
[0115] Table 2 Sequence-level syntax elements
[0116] Table 3 Frame-level syntax elements
[0117]
[0118] Table 4. Panel-level syntax elements
[0119]
[0120] It can be seen that any update to QPs requires signaling notification of the complete structure of vdmc_lifting_transform_parameters(index, ltpIndex) in the corresponding header syntax element, resulting in high signaling overhead. Based on this, embodiments of this disclosure provide an encoding method and a decoding method. By signaling the differences between QPs at different levels, when differences exist, the corresponding differential QP (delta QP) (i.e., the increment of the QP) is encoded. Compared to explicitly signaling the differential QP for each level, this reduces signaling overhead, improves the encoding efficiency of the shift components, and lowers the code rate.
[0121] To facilitate understanding of the technical solutions of the embodiments of this disclosure, the technical solutions of this disclosure will be described in detail below with reference to specific embodiments. As optional solutions, the above-mentioned related technologies can be randomly combined with the technical solutions of the embodiments of this disclosure, and all fall within the protection scope of the embodiments of this disclosure. The embodiments of this disclosure include at least a part of the following:
[0122] This disclosure provides a decoding method. Figure 11 A flowchart of a decoding method according to an embodiment of this disclosure is shown. Figure 11 As shown in the embodiments of this disclosure, the decoding method performed by the decoder may include the following operations shown in the box. The method begins at box 1101.
[0123] At box 1101, decode the prediction parameters of the current level from the bitstream.
[0124] It should be noted that the dynamic mesh decoding process includes the following operations: The decoder decodes the base mesh stream to obtain the decoded base mesh. The base mesh is subdivided using a subdivision algorithm to obtain a subdivided mesh. For example, the base mesh is subdivided through two iterations to obtain the subdivided mesh, where the base mesh is considered to correspond to level 0 of the 0th iteration, vertices added in the first iteration form level 1, and vertices added in the second iteration form level 2. The geometric displacement stream is decoded using a standard video encoder to obtain a two-dimensional (2D) image. This 2D image is mapped from the 2D region to three-dimensional space (or "image unpacking") to obtain quantization coefficients. These quantization coefficients are inverse quantized and inverse transformed to obtain the reconstructed displacement values. The geometric information of the reconstructed 3D mesh is generated based on the subdivided mesh and the displacement.
[0125] The decoding method according to embodiments of this disclosure can be a decoding method for dynamic meshes, and more specifically, the decoding method can be a method for decoding the geometric displacement components of a dynamic mesh.
[0126] Displacement refers to the difference between the original mesh geometry and the subdivided mesh geometry. Displacement includes displacement components in one or more directions, such as... Figure 9 As shown. Displacement can include displacement components in the normal direction, displacement components in the tangent direction, and displacement components in the bitangent direction.
[0127] In image decoding, parameters are typically defined and adjusted at different levels (such as sequence level, frame level, and patch level). These level parameters are interrelated and can be derived based on the correlation between them. In embodiments of this disclosure, the current level can be a parameter level; for example, the current level can include at least one of the following: sequence level, LoD level, frame level, patch level, etc. More specifically, the current level can be the parameter level of the current displacement component to be decoded, and the current displacement component to be decoded can be any one of the displacement components.
[0128] The prediction parameter indicates whether to update the reference QP for the current level; that is, the prediction parameter indicates whether the target QP for the current level is different from the reference QP for the current level. If a difference exists, the differential QP for the current level (i.e., the increment of the QP) is decoded. If no difference exists, there is no need to decode the differential QP, thereby reducing the signaling overhead when decoding the QP.
[0129] In some possible implementations, the prediction parameters may include a first syntax element indicating whether to update the reference QP at the current level.
[0130] For example, the first syntax element includes at least one of the following: a sequence-level first syntax element, a level-of-detail (LoD) first syntax element, a frame-level first syntax element, or a patch-level first syntax element. That is, when the current level is the current sequence, the sequence-level first syntax element is used to indicate whether to update the reference QP of the current sequence. When the current level is the current LoD, the LoD first syntax element is used to indicate whether to update the reference QP of the current LoD. When the current level is the current frame, the frame-level first syntax element is used to indicate whether to update the reference QP of the current frame. When the current level is the current patch, the patch-level first syntax element is used to indicate whether to update the reference QP of the current patch.
[0131] For example, the current level may also include other levels, and the first syntax element may include the first syntax element of other levels.
[0132] In some possible implementations, when the value of the first syntax element is a first value, it is determined that the reference QP at the current level should not be updated. When the value of the first syntax element is a second value, it is determined that the reference QP at the current level should be updated. When it does not exist, the value of the first syntax element is inferred to be the first value. For example, the first value can be 0 and the second value can be 1.
[0133] In some possible implementations, the prediction parameters may further include a second syntax element indicating whether to use a first transform mode for the displacement component transformation at the current level. The first transform mode may be a lifting wavelet transform.
[0134] Exemplarily, the method may further include the following operations: If a first syntax element indicates that the reference QP of the current level should be updated and / or a second syntax element indicates that a displacement component transformation at the current level should be performed using a first transformation mode, then determine that the reference QP of the current level should not be updated. If a first syntax element indicates that the reference QP of the current level should not be updated or a second syntax element indicates that a displacement component transformation at the current level should not be performed using the first transformation mode, then determine that the reference QP of the current level should not be updated.
[0135] In other words, the value of the first syntax element and / or the value of the second syntax element can be used to determine whether to update the reference QP of the current level. The first transformation mode includes quantizing the displacement components, and the transformation parameters corresponding to the first transformation mode include the QP. If it is determined that the first transformation mode is to be used, then it is further determined whether to update the reference QP of the current level based on the first syntax element; if it is determined that the first transformation mode is not to be used, then it is determined that the reference QP of the current level will not be updated.
[0136] In some possible implementations, the first syntax element includes at least one of the following: a first syntax element of LoD, a frame-level first syntax element, or a patch-level first syntax element. The second syntax element includes at least one of the following: a sequence-level second syntax element or a frame-level second syntax element.
[0137] For example, when the current level is the current sequence, the sequence-level second syntax element is used to indicate whether to update the reference QP of the current level. When the current level is the current LoD, the LoD first syntax element is used to indicate whether to update the reference QP of the current level. When the current level is the current frame, the frame-level first syntax element and the frame-level second syntax element are used to indicate whether to update the reference QP of the current frame. When the current level is the current patch, the patch-level first syntax element is used to indicate the reference QP of the current patch.
[0138] In some possible implementations, the prediction parameters may also include a third syntax element indicating the number of attributes. Decoding the differential QP for the current level from the bitstream includes: decoding the differential QP for each of one or more attributes of the current level from the bitstream, based on the number of attributes.
[0139] It is important to note that each attribute has a corresponding parameter, and the attribute can be color, reflectance, transparency, etc. In this embodiment, the differential QP for each of one or more attributes is decoded based on the number of attributes, thereby determining one or more QPs for one or more attributes. When decoding the translation components, the corresponding QP can be selected based on the vertex attributes.
[0140] In some possible implementations, the prediction parameters may further include a fourth syntax element that indicates the use of different QPs for different attributes of the current level. Decoding the differential QP for each of one or more attributes of the current level from the bitstream includes: if it is determined that different QPs are used for different attributes of the current level, decoding the differential QP for each of one or more attributes of the current level from the bitstream according to the number of attributes.
[0141] In some possible implementations, when the value of the fourth syntax element is the first value, it is determined that the same QP should be used for different attributes. When the value of the fourth syntax element is the second value, it is determined that different QPs should be used for different attributes.
[0142] In some possible implementations, the third syntax element may be a sequence-level syntax element that indicates the number of attributes in the current sequence. The fourth syntax element may be a frame-level syntax element that indicates whether different QPs are used for different attributes of the current frame.
[0143] At box 1102, when the prediction parameters indicate that the reference QP of the current level should be updated, the differential QP of the current level is decoded from the bitstream.
[0144] The differential QP is a change in the reference QP used to adjust the reference QP to obtain the target reference QP used in the current level. In some possible implementations, the differential QP includes the absolute value and the sign of the differential QP. The absolute value of the differential QP, also called the difference modulus, indicates the magnitude of the difference and can be a non-zero value. The sign of the differential QP indicates whether the difference is positive or negative. In this embodiment, the absolute value of the differential QP can be represented as delta_QP, specifying the absolute difference between the target QP and the reference QP of the current level; the sign of the differential QP can be represented as delta_QP_sign, specifying the sign of the difference between the target QP and the reference QP of the current level.
[0145] For example, the absolute value of the differential QP at the current level is decoded from the bitstream. If the absolute value of the differential QP is not zero, the sign of the differential QP at the current level is decoded from the bitstream. If it does not exist, the absolute value of the differential QP is inferred to be 0.
[0146] At box 1103, update the reference QP of the current level based on the QP to determine the target QP of the current level.
[0147] It should be noted that the reference QP is a QP that is relevant to the target QP.
[0148] In some possible implementations, a reference QP for the current level is determined based on a first QP; wherein the first QP is an initial QP or a target QP of a reference level for the current level. The initial QP may be a global parameter, and the reference level may be one or more decoded levels that have parameter dependencies on the current level.
[0149] For example, the first QP is used as the reference QP for the current level; or the first QP is converted into a reference QP based on a preset mapping relationship.
[0150] In some possible implementations, when the current level is the first level, the first QP is the initial QP. When the current level is the second level, the first QP is the target QP of the reference level of the current level.
[0151] In other words, for the first level, global parameters are used to determine the reference QP; for the second level, the target QP of the reference level is used to determine the reference QP. The first level includes one or more levels, for example, the first level is the current sequence. The second level includes one or more levels, for example, the second level includes at least one of the following: the current LoD, the current frame, or the current patch.
[0152] In some possible implementations, the reference level is the decoded neighboring level of the current level. For example, the reference level of the current LoD is the current sequence; the reference level of the current frame is the current LoD; and the reference level of the current patch is the current frame.
[0153] In some embodiments, the method may further include the following operations: decoding a reference value of QP from the bitstream, and determining an initial QP based on the reference value of QP and the default value of QP.
[0154] The reference value of QP is communicated via signaling in the bitstream. When the initial QP needs to be updated, only the updated QP reference value needs to be communicated via signaling, which saves signaling overhead compared to updating the initial QP.
[0155] The default value of QP is a predefined parameter, and the default value of QP can be the middle value within the range of QP values.
[0156] In some possible implementations, when the difference QP includes the absolute value and sign of the difference QP, the true value of the difference QP is determined based on the absolute value and sign of the difference QP; and the sum of the true values of the reference QP and the difference QP is calculated to obtain the target QP. The calculation formula is as follows:
[0157] in, This represents the target QP at the current level. Indicates the reference QP for the current level. The symbol representing the differential QP, and This represents the absolute value of the difference QP.
[0158] At box 1104, the displacement components are dequantized according to the target QP of the current level to determine the reconstructed values of the displacement components of the current level.
[0159] In some possible implementations, the method may further include the following operations: Decoding the geometric displacement bitstream to obtain a two-dimensional (2D) image; Mapping the 2D image from the two-dimensional region to a three-dimensional space to obtain quantization coefficients; Dequantizing the quantization coefficients of the current displacement component according to the target QP of the current level to obtain reconstructed values of the quantization coefficients; Inverse transforming the reconstructed values of the transform coefficients to obtain reconstructed values of the current displacement component.
[0160] In some possible implementations, when the current level is not the third level, the reference QP for the next level is determined based on the target QP of the current level. When the current level is the third level, the displacement components are inversely quantized based on the target QP of the current level, and the reconstructed values of the displacement components of the current level are determined.
[0161] The third level is the quantization unit for the displacement components. If the current level is the third level, the displacement components are dequantized. If the current level is not the third level, the target QP of the current level is used as the reference QP of the undecoded adjacent level.
[0162] For example, the third layer may include at least one of the following: the LoD of the current frame, the current tile, the current facet, etc.
[0163] To better reflect the purpose of this disclosure based on the above embodiments, further examples of improved portions of the grammatical elements at each level are provided.
[0164] Table 5 Improvements to Sequence-Level Syntax Elements
[0165] The cells with bold borders in the table represent the improved sections.
[0166] The asps_vdmc_ext_attribute_transform_method (corresponding to the second syntax element) indicates the attribute transformation method.
[0167] asps_vdmc_ext_num_attribute_video (corresponding to the third syntax element) indicates the number of attributes.
[0168] `numDispComp` is an internal variable derived from the syntax element `asps_vdmc_ext_1d_displacement_flag`. When `asps_vdmc_ext_1d_displacement_flag` equals 0, `numDispComp` equals 3; when `asps_vdmc_ext_1d_displacement_flag` equals 1, `numDispComp` equals 1. `numDispComp` indicates the number of displacement components.
[0169] The addition of 'N' to 'asps_vdmc_ext_displacement_QP_minus_N' specifies the initial value of QP. For example, N can be set to 49.
[0170] `asps_delta_QP[j]` specifies the absolute difference between the initial QP indicated by `asps_vdmc_ext_displacement_qp_minus_N` and the current QP used for the j-th displacement component of the current sequence, where the current QP is the target QP for the j-th displacement component of the current sequence. If it does not exist, the value of `asps_delta_qp` is inferred to be 0.
[0171] `asps_delta_qp_sign[j]` specifies the sign of the difference between the initial QP indicated by `asps_vdmc_ext_displacement_qp_minus_N` and the current QP used for the j-th displacement component. The value is positive when `asps_delta_qp_sign` is 0, and negative when `asps_delta_qp_sign` is 1.
[0172] The `asps_vdmc_ext_LOD_QP_update_flag` (corresponding to the first syntax element of the LOD level) specifies whether differential QPs are allowed across all LODs in the current sequence; that is, whether the reference QP of the current LOD should be updated. If `asps_vdmc_ext_LoD_QP_update_flag` equals 1, the QP value for each LOD can be modified. If `asps_vdmc_ext_LoD_qp_update_flag` equals 0, all LODs in the current facet of the current tile of the current frame use the initial values.
[0173] Incrementing afps_vdmc_ext_subdivision_iteration_count by 1 specifies the number of subdivisions on the LOD.
[0174] `asps_lod_delta_qp[i]` specifies the absolute difference between the sequence-level QP and the current QP used for the i-th LoD across all components. The current QP is the target QP for the i-th LoD in the current sequence. If it does not exist, the value of `asps_lod_delta_qp` is inferred to be 0.
[0175] `asps_lod_delta_qp_sign[i]` specifies the sign of the difference between the sequence-level QP and the current QP used for the i-th LoD. The value is positive when `asps_lod_delta_qp_sign` is 0, and negative when `asps_lod_delta_qp_sign` is 1.
[0176] Table 6 Improvements to Frame-Level Syntax Elements
[0177]
[0178] `afp_vdmc_ext_QP_update_flag` specifies whether differential QPs are allowed in the current displacement component frame, i.e., whether the reference QP of the current frame should be updated. `afp_vdmc_ext_qp_update_flag` equal to 1 indicates that differential QPs are allowed. `afp_vdmc_ext_qp_update_flag` equal to 0 indicates that differential QPs are not allowed. When it does not exist, the value of `afp_vdmc_ext_qp_update_flag` is inferred to be equal to the default value, which can be 0.
[0179] afps_delta_QP[i] specifies the absolute difference between the sequence-level QP for each LoD and the current QP for the current frame, where the current QP is the target QP for each LoD in the current frame. If it does not exist, the value of afps_delta_qp is inferred to be 0.
[0180] afps_delta_QP_sign[i] specifies the sign of the difference between the sequence-level QP for each LoD and the current QP for the current frame.
[0181] afps_vdmc_ext_attribute_parameters_overwrite_flag (corresponding to the fourth syntax element) indicates whether different QPs are used for different attributes of the current frame.
[0182] Table 7 Improvements to face-level syntax elements
[0183]
[0184] `pdu_qp_update_flag[tileID][patchIdx]` specifies whether the current displacement component patch with `patchIdx` in the tile with `tileID` is allowed to perform differential QP, i.e., whether to update the reference QP of the current patch. `pdu_qp_update_flag` equal to 1 indicates that differential QP is allowed. `pdu_qp_update_flag` equal to 0 indicates that differential QP is not allowed. When it does not exist, the value of `pdu_qp_update_flag` is inferred to be 0.
[0185] `pdu_delta_qp[tileID][patchIdx]` specifies the absolute difference between the frame-level QP of each LoD and the current QP of the current patch, where the current QP is the target QP of the current patch. When it does not exist, the value of `pdu_delta_qp` is inferred to be 0.
[0186] `pdu_delta_qp_sign[tileID][patchIdx]` specifies the sign of the difference between the frame-level QP for each LoD and the current QP for the current patch with `patchIdx` within the tile with `tileID`. When it does not exist, the value of `pdu_delta_qp` is inferred to be 0.
[0187] Furthermore, the process for decoding the displacement components is further illustrated. Figure 12A and Figure 12B A flowchart illustrating the inverse quantization of displacement components in an embodiment of this disclosure is shown. For example... Figure 12A and Figure 12B As shown, a method for decoding displacement components may include the operations shown in the box. The method begins at box 1201.
[0188] At box 1201, the target QP of the current sequence is determined based on the initial QP.
[0189] Specifically, the target QP for each displacement component of the current sequence is derived as follows: QP[compIdx]=asps_vdmc_ext_displacement_qp_minus_N+N+(1-2*asps_delta_qp_sign[compIdx]) *asps_delta_qp[compIdx], Where compIdx is the displacement component identifier, and QP[compIdx] represents the target QP of a certain displacement component in the current sequence.
[0190] At box 1202, determine whether to update the reference QP of the current LoD. If no, perform the operation shown in box 1203. If yes, perform the operation shown in box 1204.
[0191] Specifically, when the value of the first syntax element asps_vdmc_ext_LoD_qp_update_flag of LoD is 1, it is determined that the reference QP of the current LoD will be updated; when the value of the first syntax element asps_vdmc_ext_LoD_qp_update_flag of LoD is 0, it is determined that the reference QP of the current LoD will not be updated.
[0192] In box 1203, the target QP of the current LoD is determined based on the target QP of the current sequence.
[0193] Specifically, when the current LoD is not updated, the target QP of each displacement component of the current sequence is taken as the target QP of each displacement component of the current LoD, that is, QP[compIdx][LoDIdx]=QP[compIdx], where compIdx is the displacement component identifier and LoDIdx is the LoD identifier.
[0194] At box 1204, the differential QP is decoded, and the target QP of the current LoD is determined based on the differential QP and the target QP of the current sequence.
[0195] Specifically, when the current LoD is updated, the process of deriving the target QP for each displacement component of the current LoD is as follows:
[0196] At box 1205, determine whether to update the reference QP for the current frame. If no, perform the operation shown in box 1206. If yes, perform the operation shown in box 1207.
[0197] Specifically, when the value of the first frame-level syntax element afps_vdmc_ext_qp_update_flag[FrameIdx] is 1, it is determined that the reference QP for the current frame will be updated; when the value of the first frame-level syntax element afps_vdmc_ext_qp_update_flag[FrameIdx] is 0, it is determined that the reference QP for the current frame will not be updated.
[0198] At box 1206, the target QP of the current frame is determined based on the target QP of the current LoD.
[0199] Specifically, when the current frame is not updated, the target QP of each LoD in the current sequence is taken as the target QP of each LoD in the current frame, that is, QP[compIdx][LoDIdx][frameIdx]=QP[compIdx][LoDIdx], where compIdx is the displacement component identifier, LoDIdx is the LoD identifier, and frameIdx is the frame identifier.
[0200] At box 1207, the differential QP is decoded, and the target QP of the current frame is determined based on the differential QP and the target QP of the current LoD.
[0201] Specifically, when the current frame is updated, the derivation process of the target QP for the current frame is as follows:
[0202] At box 1208, determine whether to update the reference QP of the current patch. If no, perform the operation shown in box 1209; if yes, perform the operation shown in box 12010.
[0203] Specifically, when the value of the first syntax element pdu_qp_update_flag[tileID][PatchIdx] at the tile level is 1, it is determined that the reference QP of the current tile will be updated; when the value of the first syntax element pdu_qp_update_flag[tileID][PatchIdx] at the tile level is 0, it is determined that the reference QP of the current tile will not be updated.
[0204] At box 1209, the target QP of the current patch is determined based on the target QP of the current frame.
[0205] Specifically, when the current patch is not updated, the target QP of the current frame is used as the target QP of the current patch, that is, QP[compIdx][LoDIdx][FrameIdx][PatchIdx]=QP[compIdx[LoDIdx][FrameIdx], where compIdx is the displacement component identifier, LoDIdx is the LoD identifier, FrameIdx is the frame identifier, and PatchIdx is the patch identifier.
[0206] At box 1210, the differential QP is decoded, and the target QP of the current patch is determined based on the differential QP and the target QP of the current frame.
[0207] Specifically, when the current face is updated, the derivation process of the target QP of the current face is as follows:
[0208] The final process of deriving the target QP of the current facet is as follows:
[0209] At box 1211, the displacement wavelet coefficients of the current patch are dequantized using the target QP of the current patch.
[0210]
[0211] Where d is the shift wavelet coefficient before dequantization, qs[compIdx][LoDIdx][frameIdx][PatchIdx] is the quantization step size, d[compIdx][LoDIdx][frameIdx][PatchIdx] is the shift wavelet coefficient after dequantization, and BPD is the bit width depth.
[0212] The technical solution proposed in this disclosure introduces an effective and flexible signaling method for QP of displacement components, reducing signaling overhead and improving decoding efficiency.
[0213] Furthermore, the decoding process of the dynamic mesh can be described as including the following five stages.
[0214] In the first stage, the base grid is decoded from the geometric bitstream and recursively subdivided according to the LoD defined by the encoder to obtain the subdivided grid.
[0215] In the second stage, the encoded bitstream for geometric displacement is obtained and decoded using the codec of dmsps_mesh_codec_id to obtain the displacement wavelet coefficients.
[0216] In the third stage, the QP signaling notification in the code stream is used to dequantize the shift wavelet coefficients.
[0217] In the fourth stage, the inverse wavelet transform is performed on the inverse quantized displacement wavelet coefficients to obtain the reconstructed values of the displacement components.
[0218] In the fifth stage, at each transformation level, the mesh displacement components are recursively applied to the subdivided base mesh to generate a reconstructed mesh. This reconstructed mesh consists of blocks representing individual objects / regions of interest / volume tiles, semantic blocks, etc.
[0219] By adopting the above technical solution and modifying the QP signaling and derivation process, the signaling overhead in the signaling header information can be significantly reduced. The differences in QPs between different levels are communicated via signaling, and the corresponding differential QP is encoded only when a difference exists. Compared to explicitly communicating the differential QP for each level via signaling, this reduces signaling overhead and improves decoding efficiency. Furthermore, a default QP value can be defined at the global level to further reduce signaling overhead. The default QP value can be set to half of the QP range.
[0220] Based on the above embodiments, another embodiment of this disclosure provides an encoding method. Figure 13 A flowchart of an encoding method according to an embodiment of this disclosure is shown. Figure 13 As shown in the embodiments of this disclosure, the encoding processing method applied to the encoder may include the following operations shown in the box. The method may begin at box 1301.
[0221] At box 1301, determine the difference QP for the current level from the candidate difference QPs for the current level.
[0222] It should be noted that the encoding method for dynamic meshes includes the following operations: Downsampling the original mesh to obtain a base mesh. Subdividing the base mesh using a subdivision algorithm to obtain a subdivided mesh. Finally, for each vertex in the subdivided mesh, finding the point in the original mesh closest to that vertex and calculating the displacement between the two points. Encoding the base mesh and the displacement.
[0223] The encoding method according to the embodiments of this disclosure can be an encoding method for dynamic meshes, and more specifically, the encoding method can be a method for encoding the geometric displacement components of dynamic meshes.
[0224] Displacement refers to the difference between the original mesh geometry and the subdivided mesh geometry. Displacement includes displacement components in one or more directions, such as... Figure 9 As shown. Displacement can include displacement components in the normal direction, displacement components in the tangent direction, and displacement components in the bitangent direction.
[0225] In image coding, parameters are typically defined and adjusted at different levels (such as sequence level, frame level, and patch level). These level parameters are interrelated and can be derived from the correlation between them. In embodiments of this disclosure, the current level can be a parameter level; for example, the current level can include at least one of the following: sequence level, LoD level, frame level, patch level, etc. More specifically, the current level can be the parameter level of the current displacement component to be encoded, and the current displacement component to be encoded can be any displacement component.
[0226] The differential QP is a change in the reference QP used to adjust the reference QP to obtain the target reference QP used in the current level. In some possible implementations, the differential QP includes the absolute value and the sign of the differential QP. The absolute value of the differential QP, also called the delta modulus, indicates the magnitude of the differential QP. The absolute value of the differential QP can be non-zero, and the sign of the differential QP indicates whether the difference is positive or negative. In the embodiments of this disclosure, the absolute value of the differential QP can be represented as delta_QP, specifying the absolute difference between the target QP and the reference QP of the current level; the sign of the differential QP can be represented as delta_QP_sign, specifying the sign of the difference between the target QP and the reference QP of the current level.
[0227] In some possible implementations, the candidate difference QP includes one or more optional non-zero difference QPs.
[0228] In some possible implementations, the candidate difference QP also includes a difference QP that is zero.
[0229] It should be noted that the candidate QPs corresponding to different levels are at least partially different, and the candidate QPs corresponding to different levels can also be the same.
[0230] At box 1302, the reference QP of the current level is updated based on the differential QP to determine the target QP of the current level.
[0231] It should be noted that the reference QP is a QP that is relevant to the target QP.
[0232] In some possible implementations, a reference QP for the current level is determined based on a first QP; wherein the first QP is either an initial QP or a target QP of a reference level for the current level. The initial QP may be a global parameter, and the reference level may be one or more encoded levels that are parameter-dependent on the current level.
[0233] For example, the first QP is used as the reference QP for the current level; or the first QP is converted into a reference QP based on a preset mapping relationship.
[0234] In some possible implementations, when the current level is the first level, the first QP is the initial QP. When the current level is the second level, the first QP is the target QP of the reference level of the current level.
[0235] In other words, for the first level, global parameters are used to determine the reference QP; for the second level, the target QP of the reference level is used to determine the reference QP. The first level includes one or more levels, for example, the first level is the current sequence. The second level includes one or more levels, for example, the second level includes at least one of the following: the current LoD, the current frame, or the current patch.
[0236] In some possible implementations, the reference level is the decoded neighboring level of the current level. For example, the reference level of the current LoD is the current sequence; the reference level of the current frame is the current LoD; and the reference level of the current patch is the current frame.
[0237] In some embodiments, the method may further include determining a reference value for QP based on an initial QP and a default value for QP. The reference value of QP is encoded to obtain encoded bits, and these encoded bits are written into the bitstream.
[0238] The reference value of the QP is signaled in the bitstream. When the initial QP needs to be updated, only the reference value of the updated QP needs to be signaled, which saves signaling overhead compared to updating the initial QP.
[0239] The default value of QP is a predefined parameter, which can be an intermediate value within the range of QP values.
[0240] In some possible implementations, when the difference QP includes the absolute value and sign of the difference QP, the truth value of the difference QP is determined based on the absolute value and sign of the difference QP; and the sum of the truth values of the reference QP and the difference QP is calculated to obtain the target QP. The calculation formula is as follows:
[0241] in, This represents the target QP at the current level. Indicates the reference QP for the current level. The symbol representing the differential QP, and This represents the absolute value of the difference QP.
[0242] At box 1303, the displacement components are dequantized according to the target QP of the current level to determine the reconstructed values of the displacement components of the current level.
[0243] In some possible implementations, the method further includes: downsampling the original mesh to obtain a base mesh; subdividing the base mesh using a subdivision algorithm to obtain a subdivided mesh; finally, for each vertex in the subdivided mesh, finding the point in the original mesh closest to that vertex and calculating the displacement between the two points. The displacement includes displacement components in three directions. Each displacement component is transformed and quantized to obtain reconstructed values of the transform coefficients. The reconstructed values of the transform coefficients are inversely transformed to obtain the reconstructed values of the current displacement component.
[0244] In some possible implementations, when the current level is not the third level, the reference QP for the next level is determined based on the target QP of the current level. When the current level is the third level, the displacement components are inversely quantized based on the target QP of the current level to determine the reconstructed values of the displacement components at the current level.
[0245] The third level is the quantization unit for displacement components. If the current level is the third level, the displacement components are dequantized. If the current level is not the third level, the target QP of the current level is used as the reference QP of the uncoded adjacent level.
[0246] For example, the third layer may include at least one of the following: the LoD of the current frame, the current tile, the current facet, etc.
[0247] At box 1304, the cost of the differential QP is calculated using, for example, a cost function, based on the reconstructed values of the displacement components.
[0248] For example, the cost function may include at least one of the following: Rate-Distortion Optimization (RDO), Mean Square Error (MSE), Sum of Squared Difference (SSD), Sum of Absolute Difference (SAD), Sum of Absolute Transformed Difference (SATD), Peak Signal-to-Noise Ratio (PSNR), etc.
[0249] At box 1305, the encoding method is determined based on the cost of the differential QP to determine the prediction parameters for the current level. The prediction parameters indicate whether to update the reference QP for the current level.
[0250] The minimum value is determined based on the value of the encoding method, and compared with the values of other encoding methods to determine whether to use the encoding method of this disclosure embodiment for encoding, and the prediction parameters of the current level are configured based on the determined encoding method.
[0251] In some possible implementations, candidate difference QPs include non-zero difference QPs and zero-valued differences. The operation of determining the encoding method based on the cost value of the difference QPs to determine the prediction parameters for the current level includes the following operations: When the difference QP corresponding to the minimum cost value is zero, the prediction parameters indicate that the reference QP for the current level should not be updated. When the difference QP corresponding to the minimum cost value is not zero, the prediction parameters indicate that the reference QP for the current level should be updated.
[0252] At box 1306, the prediction parameters are encoded, and if the reference QP for updating the current level is determined, the differential QP is encoded, and the resulting encoded bits are written into the bitstream.
[0253] The prediction parameters indicate whether to update the reference QP at the current level; that is, the prediction parameters indicate whether there is a difference between the target QP and the reference QP at the current level. If a difference exists, the differential QP at the current level is encoded. If no difference exists, the differential QP is not encoded, thereby reducing the signaling overhead of encoding the QP.
[0254] In some possible implementations, the prediction parameters may include a first syntax element indicating whether to update the reference QP at the current level.
[0255] For example, the first syntax element includes at least one of the following: a sequence-level first syntax element, a level-of-detail (LoD) first syntax element, a frame-level first syntax element, or a patch-level first syntax element. That is, when the current level is the current sequence, the sequence-level first syntax element is used to indicate whether to update the reference QP of the current sequence. When the current level is the current LoD, the LoD first syntax element is used to indicate whether to update the reference QP of the current LoD. When the current level is the current frame, the frame-level first syntax element is used to indicate whether to update the reference QP of the current frame. When the current level is the current patch, the patch-level first syntax element is used to indicate whether to update the reference QP of the current patch.
[0256] For example, the current level may also include other levels, and the first syntax element may include the first syntax element of other levels.
[0257] In some possible implementations, when the value of the first syntax element is a first value, it is determined that the reference QP at the current level should not be updated. When the value of the first syntax element is a second value, it is determined that the reference QP at the current level should be updated. When it does not exist, the value of the first syntax element is inferred to be the first value. For example, the first value can be 0 and the second value can be 1.
[0258] In some possible implementations, the prediction parameters may further include a second syntax element indicating whether to use a first transform mode for the displacement component transformation at the current level. The first transform mode may be a lifting wavelet transform.
[0259] For example, the method may further include the following operations: when it is determined, based on the determined encoding scheme, that the reference QP of the current level needs to be updated, using a first syntax element to indicate updating the reference QP of the current level, and / or using a second syntax element to indicate performing a displacement component transformation at the current level using a first transformation mode. When it is determined, based on the determined encoding scheme, that the reference QP of the current level does not need to be updated, using a first syntax element to indicate not updating the reference QP of the current level, or using a second syntax element to indicate not performing a displacement component transformation at the current level using the first transformation mode.
[0260] In other words, the value of the first syntax element and / or the value of the second syntax element can be used to determine whether to update the reference QP of the current level. The first transformation mode includes quantizing the displacement components, and the transformation parameters corresponding to the first transformation mode include the QP. If it is determined that the first transformation mode is to be used, then it is further determined whether to update the reference QP of the current level based on the first syntax element; if it is determined that the first transformation mode is not to be used, then it is determined that the reference QP of the current level will not be updated.
[0261] In some possible implementations, the first syntax element includes at least one of the following: a first syntax element of LoD, a frame-level first syntax element, or a patch-level first syntax element. The second syntax element includes at least one of the following: a sequence-level second syntax element or a frame-level second syntax element.
[0262] For example, when the current level is the current sequence, the sequence-level second syntax element is used to indicate whether to update the reference QP of the current level. When the current level is the current LoD, the LoD first syntax element is used to indicate whether to update the reference QP of the current level. When the current level is the current frame, the frame-level first syntax element and the frame-level second syntax element are used to indicate whether to update the reference QP of the current frame. When the current level is the current patch, the patch-level first syntax element is used to indicate the reference QP of the current patch.
[0263] In some possible implementations, the prediction parameters also include a third syntax element indicating the number of attributes. Encoding the differential QP and writing the resulting encoded bits into the bitstream includes: encoding the differential QP for each of one or more attributes in the current level according to the number of attributes and writing the resulting encoded bits into the bitstream.
[0264] It should be noted that each attribute has a corresponding parameter, and the attribute can be color, reflectivity, transparency, etc. In the embodiments of this disclosure, when encoding the displacement component, the corresponding QP can be selected according to the vertex attribute, and the differential QP for each of one or more attributes can be encoded.
[0265] In some possible implementations, the prediction parameters may further include a fourth syntax element that indicates the use of different QPs for different attributes of the current level. The operation of encoding the differential QPs and writing the resulting encoded bits into the bitstream includes: if it is determined that different QPs are used for different attributes of the current level, encoding the differential QPs for each of one or more attributes of the current level according to the number of attributes, and writing the resulting encoded bits into the bitstream.
[0266] In some possible implementations, when the value of the fourth syntax element is the first value, it is determined that the same QP should be used for different attributes. When the value of the fourth syntax element is the second value, it is determined that different QPs should be used for different attributes.
[0267] In some possible implementations, the third syntax element may be a sequence-level syntax element that indicates the number of attributes in the current sequence. The fourth syntax element may be a frame-level syntax element that indicates whether different QPs are used for different attributes of the current frame.
[0268] In some possible implementations, the differential QP includes the absolute value of the differential QP and the sign of the differential QP. Encoding the differential QP includes the following operations: Encoding the absolute value of the difference; Encoding the sign of the differential QP when the absolute value of the difference is not zero; When the absolute value of the difference is 0, the absolute value of the difference may not be encoded.
[0269] On the encoding side, Tables 5 through 7 show the improvements to the syntax elements at all levels.
[0270] The encoding process for dynamic meshes is as follows, comprising five stages.
[0271] In the first stage, mesh segmentation is performed, which creates fragments or blocks of mesh content to represent individual objects / regions of interest / volume tiles, semantic blocks, faces, etc.
[0272] In the second stage, mesh decimation is performed to create a base mesh, which is then encoded using an undefined static mesh encoder. The base mesh is decoded and recursively subdivided according to the number of levels of detail to obtain a subdivided mesh. The number of subdivisions is defined by asps_vmc_ext_subdivision_iteration_count.
[0273] In the third stage, for each level of detail, the mesh displacement between the subdivided mesh and the original surface is calculated. The displacement is then processed using a wavelet transform.
[0274] In the fourth stage, the wavelet transform coefficients are converted into fixed-point representations, the accuracy of which is indicated in the coded bitstream at the patch level, image level, or sequence level of signaling notification in the bitstream.
[0275] In the fifth stage, such as Figure 14 As shown, the quantized wavelet coefficients are scanned within each LoD along a 3D spatial scanning pattern (e.g., Morton, Hilbert, or along other spatial filling curves), forming three 1D arrays for each component. The coefficients are then converted into a 2D image based on the LoD and the selected packing order. Unoccupied symbols in the CTU are filled using a padding method (e.g., zero-padding).
[0276] Figure 15 and Figure 17 A schematic diagram of forward packing of LoD-based displacement wavelet coefficients is shown in an embodiment of this disclosure. Figure 16 and Figure 18 A schematic diagram of the reverse packing of displacement wavelet coefficients based on LoD is shown in an embodiment of this disclosure.
[0277] By adopting the above technical solution and modifying the QP signaling and derivation process, the signaling overhead in the signaling header information can be significantly reduced. The signaling notifies the differences in QPs between different levels, and the corresponding differential QP is encoded only when a difference exists. Compared to explicitly notifying the differential QP for each level through signaling, this reduces signaling overhead and improves decoding efficiency. Furthermore, a default QP value can be defined at the global level to further reduce signaling overhead. The default QP value can be set to half of the QP range.
[0278] Based on the above embodiments, in another embodiment of this disclosure, based on the same inventive concept as the above embodiments... Figure 19 This is a block diagram of the encoder. (Example:) Figure 19 As shown, encoder 190 may include a first determining unit 1901, a first dequantization unit 1902, a decision unit 1903, and an encoding unit 1904.
[0279] The first determining unit 1901 is configured to: determine the differential QP of the current level from the candidate differential QPs of the current level, and update the reference QP of the current level according to the differential QP, so as to determine the target QP of the current level.
[0280] The first dequantization unit 1902 is configured to dequantize the displacement components according to the target QP of the current level in order to determine the reconstructed value of the displacement components of the current level.
[0281] The decision unit 1903 is configured to: calculate the cost of the differential QP based on the reconstructed values of the displacement components; determine the encoding method based on the cost of the differential QP; and determine the prediction parameters for the current level, wherein the prediction parameters indicate whether to update the reference QP for the current level.
[0282] The coding unit 1904 is configured to: encode the prediction parameters, and, if it is determined that the reference QP for updating the current level is to be updated, encode the differential QP and write the resulting coded bits into the bit stream.
[0283] It should be understood that in this embodiment, a "unit" can be a part of a circuit, a part of a processor, a part of a program or software, etc. Of course, it can also be a module or a non-modular one. Furthermore, the various components in this embodiment can be integrated into one processing unit; each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional module.
[0284] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product stored in a storage medium. This software product includes several instructions for causing a computer device (which may be a personal computer, server, network device, etc.) or processor to execute all or part of the steps of the method of this embodiment. The aforementioned storage medium includes media capable of storing program code, such as a USB flash drive, portable hard drive, read-only memory (ROM), random access memory (RAM), magnetic disk, or optical disk.
[0285] Therefore, this disclosure provides a computer-readable storage medium for use in an encoder 220. The computer-readable storage medium stores a computer program that, when executed by a first processor, implements the encoding method of any of the foregoing embodiments.
[0286] Based on the above-described structure of encoder 220 and computer-readable storage medium, Figure 20 A schematic diagram of the specific hardware structure of the encoder 220 provided in an embodiment of this disclosure is shown. For example... Figure 20 As shown, encoder 220 may include a first communication interface 2001, a first memory 2002, and a first processor 2003. These components of encoder 220 are coupled together via a first bus system 2004. It is understood that the first bus system 2004 is used to implement the connection and communication between these components. In addition to a data bus, the first bus system 2004 also includes a power bus, a control bus, and a status signal bus. For clarity, Figure 20 The Chinese General designates various buses as the first bus system 2004.
[0287] The first communication interface 2001 is configured to receive and send signals during the process of sending and receiving information with other external network elements.
[0288] The first memory 2002 is configured to store computer programs that can run on the first processor 2003.
[0289] The first processor 2003 is configured to, when running computer programs: Determine the difference QP for the current level from the candidate difference QPs for the current level; Update the reference QP of the current level based on the differential QP to determine the target QP of the current level; The displacement components are dequantized based on the target QP of the current level to determine the reconstructed values of the displacement components at the current level. The cost of differential QP is calculated based on the reconstructed values of the displacement components. The encoding method is determined based on the cost of the differential QP, so as to determine the prediction parameters of the current level, which indicate whether to update the reference QP of the current level. Encoding prediction parameters; and Given a reference QP for updating the current level, the differential QP is encoded, and the resulting encoded bits are written into the bitstream.
[0290] It should be understood that the first memory 2002 in the embodiments of this disclosure may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. Non-volatile memory may be read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically erasable EPROM (EEPROM), or flash memory. Volatile memory may be random access memory (RAM) used as an external cache. For example, but not limited to, RAM can take many forms, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct memory bus random access memory (DRRAM). The first memory 2002 in the described system and method is intended to include, but is not limited to, these and any other suitable types of memory.
[0291] The first processor 2003 can be an integrated circuit chip with signal processing capabilities. In implementation, the steps of the above method can be completed by the integrated logic circuitry in the hardware of the first processor 2003, or by instructions in software form. The first processor 2003 can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this disclosure. The general-purpose processor can be a microprocessor, or it can be any conventional processor, etc. The steps of the methods disclosed in the embodiments of this disclosure can be directly implemented by a hardware decoding processor or by a combination of hardware and software modules in the decoding processor. The software modules can be located in RAM, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in the first memory 2002. The first processor 2003 reads the information in the first memory 2002 and, in conjunction with its hardware, completes the steps of the above method.
[0292] It should be understood that the embodiments described herein can be implemented through hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application-specific integrated circuits (ASICs), digital signal processors (DSPDs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units performing the functions described herein, or combinations thereof. For software implementation, the techniques of this disclosure can be implemented through modules (e.g., procedures, functions, etc.) that perform the functions of this disclosure. Software code can be stored in memory and executed by a processor. The memory can be implemented inside or outside the processor.
[0293] Alternatively, in another embodiment, the first processor 2003 is further configured to execute the encoding method described in any of the foregoing embodiments when running a computer program.
[0294] This embodiment provides an encoder that significantly reduces signaling overhead in the signaling header information by modifying the QP signaling and derivation process. The signaling notifies the differences in QPs between different levels, and the corresponding differential QP is encoded only when a difference exists. Compared to explicitly signaling the differential QP for each level, this reduces signaling overhead, improves coding efficiency, and reduces the code rate.
[0295] This application also provides a computer-readable storage medium storing a bitstream generated by the encoding method of any of the foregoing embodiments. The bitstream is generated by bit encoding information to be encoded. The information to be encoded includes at least: occupancy information of the current child node, etc.
[0296] In yet another embodiment of this disclosure, based on the same inventive concept as the foregoing embodiments, such as Figure 21 As shown, a structural block diagram of a decoder according to an embodiment of the present disclosure is provided. Figure 21 As shown, the decoder 210 may include a decoding unit 2101, a second determining unit 2102, and a second inverse quantization unit 2103.
[0297] Decoding unit 2101 is configured to decode the prediction parameters of the current level from the bitstream.
[0298] The decoding unit 2101 is also configured to decode the differential QP of the current level from the bitstream when the prediction parameters indicate that the reference QP of the current level should be updated.
[0299] The second determining unit 2102 is configured to update the reference QP of the current level according to the differential QP in order to determine the target QP of the current level.
[0300] The second dequantization unit 2103 is configured to dequantize the displacement components according to the target QP of the current level in order to determine the reconstructed values of the displacement components of the current level.
[0301] It should be understood that the various functional units of the decoder can also perform the decoding methods of any of the foregoing embodiments.
[0302] It should be understood that in this embodiment, a "unit" can be a part of a circuit, a part of a processor, a part of a program or software, etc. Of course, it can also be a module or a non-modular one. Furthermore, the various components in this embodiment can be integrated into one processing unit; each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional module.
[0303] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, this embodiment provides a computer-readable storage medium applied to the decoder 210. The computer-readable storage medium stores a computer program, which, when executed by a second processor, implements the decoding method of any of the foregoing embodiments.
[0304] Based on the composition of the decoder 210 and the computer-readable storage medium described above, Figure 22 A block diagram illustrating the specific hardware structure of the decoder 210 according to an embodiment of this disclosure is shown. Figure 22 As shown, the decoder 210 may include a second communication interface 2201, a second memory 2202, and a second processor 2203. These components are coupled together via a second bus system 2204. It is understood that the second bus system 2204 is used to implement communication between these components. In addition to the data bus, the second bus system 2204 also includes a power bus, a control bus, and a status signal bus. However, for clarity, the various buses are... Figure 22 It was designated as the second bus system 2204.
[0305] The second communication interface 2201 is configured to receive and send signals during the process of sending and receiving information with other external network elements.
[0306] The second memory 2202 is configured to store computer programs that can run on the second processor 2203.
[0307] The second processor 2203 is configured to, when running a computer program: Decode the prediction parameters of the current level from the bitstream; When the prediction parameters indicate that the reference QP of the current level should be updated, the differential QP of the current level is decoded from the bitstream. Update the reference QP of the current level based on the differential QP to determine the target QP of the current level; and The displacement components are dequantized based on the target QP of the current level to determine the reconstructed values of the displacement components at the current level.
[0308] Alternatively, as another embodiment, the second processor 2203 is also configured to execute the decoding method of any of the foregoing embodiments when running a computer program.
[0309] It should be understood that the second memory 2202 is similar in hardware function to the first memory 2002, and the second processor 2203 is similar in hardware function to the first processor 2003, which will not be repeated here.
[0310] This disclosure also provides a computer program product including a computer program or instructions. When the computer program or instructions are executed by a processor, the encoding or decoding method of any of the foregoing embodiments is performed.
[0311] This disclosure also provides a decoder that significantly reduces signaling overhead in the signaling header information by modifying the QP signaling and derivation process. The signaling notifies the differences in QPs between different levels, and decodes the corresponding differential QP only when a difference exists. Compared to explicitly signaling the differential QP for each level, this reduces signaling overhead and improves decoding efficiency.
[0312] In yet another embodiment of this disclosure, such as Figure 23 As shown, a block diagram illustrating the structure of a codec according to an embodiment of the present disclosure is presented. Figure 23 As shown, codec 230 may include encoder 2301 and decoder 2302.
[0313] In this embodiment of the disclosure, encoder 2301 may be an encoder as described in any of the foregoing embodiments, and decoder 2302 may be a decoder as described in any of the foregoing embodiments.
[0314] It should be noted that, in embodiments of this disclosure, the terms "comprising," "including," or any other variations thereof are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0315] The sequence numbers of the embodiments disclosed above are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.
[0316] The methods disclosed in the several method embodiments provided in this disclosure can be arbitrarily combined without conflict to obtain new method embodiments.
[0317] The features disclosed in the several product embodiments provided in this disclosure can be combined arbitrarily without conflict to obtain new product embodiments.
[0318] The features disclosed in the several method or device embodiments provided in this disclosure can be arbitrarily combined without conflict to obtain new method or device embodiments.
[0319] The above description is merely a specific embodiment of this disclosure, but the scope of protection of this disclosure is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this disclosure should be included within the scope of protection of this disclosure. Therefore, the scope of protection of this disclosure should be determined by the scope of the claims.
[0320] Industrial applicability This application provides an encoding method, a decoding method, an encoder, a decoder, and a storage medium. At both the encoding and decoding ends, prediction parameters for the current level are determined. If the prediction parameters indicate that the reference QP for the current level needs to be updated, a differential QP for the current level is determined. The reference QP for the current level is updated based on the differential QP to determine the target QP for the current level. The displacement components are inversely quantized based on the target QP for the current level to determine the reconstructed values of the displacement components for the current level. In this way, signaling notifies the differences in QPs between different levels, and the corresponding differential QP is encoded only when a difference exists. Compared to explicitly signaling the differential QP for each level, this reduces signaling overhead, improves the encoding and decoding efficiency of displacement components, and reduces the code rate.
Claims
1. A decoding method applied to a decoder, the method comprising: Decode the prediction parameters of the current level from the bitstream; If the prediction parameter indicates that the reference quantization parameter (QP) of the current level should be updated, the differential QP of the current level is decoded from the bitstream; Update the reference QP of the current level based on the differential QP to determine the target QP of the current level; and The displacement components are dequantized based on the target QP of the current level to determine the reconstructed values of the displacement components at the current level.
2. The method according to claim 1, wherein, The prediction parameters include a first syntax element that indicates whether to update the reference QP of the current level.
3. The method according to claim 2, wherein, The prediction parameters also include a second syntax element, which indicates whether to use the first transformation mode to perform the displacement component transformation at the current level. and The method further includes: If the first syntax element indicates that the reference QP of the current level should be updated and / or the second syntax element indicates that the displacement component transformation at the current level should be performed using the first transformation mode, then the reference QP of the current level should be updated; and If the first syntax element indicates that the reference QP of the current level should not be updated and / or the second syntax element indicates that the first transformation mode should not be used to perform the displacement component transformation on the current level, then it is determined that the reference QP of the current level should not be updated.
4. The method according to claim 3, wherein, The first syntax element includes at least one of the following: a level-of-detail (LoD) first syntax element, a frame-level first syntax element, or a patch-level first syntax element; and The second syntax element includes at least one of the following: a sequence-level second syntax element or a frame-level second syntax element.
5. The method according to claim 2, wherein, The prediction parameters also include a third syntax element indicating the number of attributes; and Decoding the differential QP of the current level from the bitstream includes: Based on the number of attributes, decode the differential QP from the bitstream for each of one or more attributes of the current level.
6. The method according to claim 5, wherein, The prediction parameters also include a fourth syntax element, which indicates the use of different QPs for different attributes of the current level; Decoding the differential QP from the bitstream for each of one or more attributes of the current level includes: If it is determined that different QPs are used for different attributes of the current level, the differential QP for each of one or more attributes of the current level is decoded from the bitstream according to the number of attributes.
7. The method according to any one of claims 1 to 6, further comprising: The reference QP for the current level is determined based on the first QP, wherein the first QP is an initial quantization parameter or a target QP for the reference level of the current level.
8. The method according to claim 7, further comprising: Decode the reference value of the QP from the bitstream; and The initial QP is determined based on the reference value and the default value of the QP.
9. The method according to claim 8, wherein, The default value of QP is the middle value within the range of QP values.
10. The method according to claim 7, wherein, When the current level is the first level, the first QP is the initial QP; and When the current level is the second level, the first QP is the target QP of the reference level of the current level.
11. The method according to claim 10, wherein, The first level includes the current sequence, and The second level includes at least one of the following: current LoD, current frame, or current patch.
12. The method according to claim 11, wherein, The reference level is the decoded adjacent level of the current level, and The reference level for the current LoD is the current sequence; the reference level for the current frame is the current LoD. And the reference level of the current patch is the current frame.
13. The method of claim 10, further comprising: When the current level is not the third level, the reference QP of the next level is determined based on the target QP of the current level; and When the current level is the third level, the displacement component is dequantized according to the target QP of the current level to determine the reconstructed value of the displacement component of the current level.
14. The method according to any one of claims 1 to 13, wherein, The difference QP includes the absolute value of the difference QP and the sign of the difference QP; and Decoding the differential QP of the current level from the bitstream includes: Decode the absolute value of the differential QP of the current level from the bitstream; and When the absolute value of the differential QP is not zero, the symbol of the current level differential QP is decoded from the bitstream.
15. The method according to claim 14, wherein, Updating the reference QP of the current level based on the differential QP to determine the target QP of the current level includes: The truth value of the difference QP is determined based on the absolute value and the sign of the difference QP; and The target QP is obtained by summing the truth values of the reference QP and the difference QP.
16. The method according to claim 1, further comprising: If the prediction parameters indicate that the reference QP of the current level should not be updated, the reference QP of the current level shall be used as the target QP of the current level.
17. An encoding method applied to an encoder, wherein, The method includes: Determine the differential quantization parameter (QP) of the current level from the candidate differential QPs of the current level; Update the reference QP of the current level based on the differential QP to determine the target QP of the current level; The displacement components are dequantized based on the target QP of the current level to determine the reconstructed values of the displacement components of the current level. The cost of the differential QP is calculated based on the reconstructed values of the displacement components; The encoding method is determined based on the cost of the differential QP, thereby determining the prediction parameters for the current level; and The prediction parameters are encoded, and if it is determined that the reference QP for updating the current level is to be updated, the differential QP is encoded and the resulting encoded bits are written into the bitstream.
18. The method according to claim 17, wherein, The candidate difference QP includes one or more optional non-zero difference QPs.
19. The method according to claim 18, wherein, The candidate difference QP also includes the difference QP that is zero.
20. The method according to claim 19, wherein, The encoding method is determined based on the cost of the differential QP, and the prediction parameters for the current level are determined by: When the difference QP corresponding to the minimum cost is zero, the prediction parameter is determined to indicate that the reference QP of the current level should not be updated; and When the difference QP corresponding to the minimum cost is not zero, the prediction parameter is determined to indicate updating the reference QP of the current level.
21. The method according to any one of claims 17 to 20, wherein, The prediction parameters include a first syntax element that indicates whether to update the reference QP of the current level.
22. The method according to claim 21, wherein, The prediction parameters also include a second syntax element, which indicates whether to use the first transformation mode to perform the displacement component transformation at the current level. and The method further includes: When it is determined that the reference QP of the current level needs to be updated according to the determined encoding method, the first syntax element is used to indicate updating the reference QP of the current level, and / or the second syntax element is used to indicate performing a displacement component transformation on the current level using the first transformation mode; and When it is determined, based on the determined encoding method, that the reference QP of the current level should not be updated, the first syntax element is used to indicate that the reference QP of the current level should not be updated, and / or the second syntax element is used to indicate that the first transformation mode should not be used for the displacement component transformation at the current level.
23. The method according to claim 22, wherein, The first syntax element includes at least one of the following: a level-of-detail (LoD) first syntax element, a frame-level first syntax element, or a patch-level first syntax element; and The second syntax element includes at least one of the following: a sequence-level second syntax element or a frame-level second syntax element.
24. The method according to claim 21, wherein, The prediction parameters also include a third syntax element indicating the number of attributes; and Encoding the differential QP and writing the resulting encoded bits into the bitstream includes: The differential QP is encoded for each of one or more attributes of the current level according to the number of attributes, and the resulting encoded bits are written into the bitstream.
25. The method according to claim 24, wherein, The prediction parameters also include a fourth syntax element, which indicates the use of different QPs for different attributes of the current level; and Encoding the differential QP and writing the resulting encoded bits into the bitstream includes: If it is determined that different QPs are used for different attributes of the current level, the differential QP for each of one or more attributes of the current level is encoded according to the number of attributes, and the resulting encoded bits are written into the bitstream.
26. The method according to any one of claims 17 to 25, further comprising: A reference QP for the current level is determined based on a first QP, wherein the first QP is an initial QP or a target QP for the reference level of the current level.
27. The method of claim 26, further comprising: The reference value of QP is determined based on the initial QP and the default value of QP; The reference value of the QP is encoded, and the resulting encoded bits are written into the bitstream.
28. The method according to claim 27, wherein, The default value of QP is the middle value within the range of QP values.
29. The method according to claim 26, wherein, When the current level is the first level, the first QP is the initial QP; and When the current level is the second level, the first QP is the target QP of the reference level of the current level.
30. The method according to claim 29, wherein, The first level includes the current sequence, and The second level includes at least one of the following: current LoD, current frame, or current patch.
31. The method according to claim 30, wherein, The reference level is the encoded adjacent level of the current level, and The reference level for the current LoD is the current sequence; the reference level for the current frame is the current LoD. And the reference level of the current patch is the current frame.
32. The method of claim 31, wherein the method further comprises: When the current level is not the third level, the reference QP of the next level is determined based on the target QP of the current level; and When the current level is the third level, the displacement component is dequantized according to the target QP of the current level to determine the reconstructed value of the displacement component of the current level.
33. The method according to any one of claims 17 to 32, wherein, The difference QP includes the absolute value of the difference QP and the sign of the difference QP; and Encoding the differential QP includes: Encode the absolute value of the differential QP at the current level; and When the absolute value of the differential QP is not zero, the symbol of the differential QP at the current level is encoded.
34. The method according to claim 33, wherein, Updating the reference QP of the current level based on the differential QP to determine the target QP of the current level includes: The truth value of the difference QP is determined based on the absolute value and the sign of the difference QP; and The target QP is obtained by summing the truth values of the reference QP and the difference QP.
35. An encoder, the encoder comprising: The system comprises a first determining unit, a first inverse quantization unit, a decision-making unit, and an encoding unit, wherein... The first determining unit is configured to: determine the differential quantization parameter (QP) of the current level from the candidate differential QPs of the current level; and update the reference QP of the current level according to the differential QP to determine the target QP of the current level; The first dequantization unit is configured to: dequantize the displacement component according to the target QP of the current level to determine the reconstructed value of the displacement component of the current level; The decision unit is configured to: calculate the cost of the differential QP based on the reconstructed value of the displacement component; determine the encoding method based on the cost of the differential QP; and determine the prediction parameters of the current level, wherein the prediction parameters indicate whether to update the reference QP of the current level. and The encoding unit is configured to: encode the prediction parameters, and, if it is determined that the reference QP of the current level needs to be updated, encode the differential QP and write the resulting encoded bits into the bitstream.
36. An encoder, the encoder comprising: A first memory and a first processor, wherein The first memory is configured to store computer programs that can run in the first processor; and The first processor is configured to perform the method according to any one of claims 17 to 34 when running the computer program.
37. A decoder, comprising: Decoding unit, second determination unit, and second inverse quantization unit, wherein The decoding unit is configured to: decode the bitstream and determine the prediction parameters for the current level; The decoding unit is further configured to decode the differential QP of the current level from the bitstream when the prediction parameter indicates that the reference quantization parameter (QP) of the current level is updated; The second determining unit is configured to: update the reference QP of the current level according to the differential QP, so as to determine the target QP of the current level; as well as The second dequantization unit is configured to dequantize the displacement components according to the target QP of the current level to determine the reconstructed values of the displacement components of the current level.
38. A decoder, comprising: Second memory and second processor, wherein The second memory is configured to store computer programs that can run in the first processor; and The second processor is configured to perform the method according to any one of claims 1 to 16 when running the computer program.
39. A computer-readable storage medium, wherein, The computer-readable storage medium stores a bitstream generated by the encoding method according to any one of claims 17 to 34.
40. A computer-readable storage medium storing a computer program that, when executed, implements the decoding method according to any one of claims 1 to 16 or the encoding method according to any one of claims 17 to 34.