WO2025145325A1 - Encoding method, decoding method, encoders, decoders and storage medium - Google Patents
Encoding method, decoding method, encoders, decoders and storage medium Download PDFInfo
- Publication number
- WO2025145325A1 WO2025145325A1 PCT/CN2024/070330 CN2024070330W WO2025145325A1 WO 2025145325 A1 WO2025145325 A1 WO 2025145325A1 CN 2024070330 W CN2024070330 W CN 2024070330W WO 2025145325 A1 WO2025145325 A1 WO 2025145325A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- point
- points
- neighborhood
- layer
- weight
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
Definitions
- the present application relates to the field of video coding and decoding technology, and in particular to a coding and decoding method, a codec and a storage medium.
- V-DMC Video dynamic mesh coding
- the embodiments of the present application provide a coding method, a codec, and a storage medium to improve the coding efficiency of geometric information of points in a grid.
- a coding method which is applied to an encoder, comprising: performing detail level LOD division on points in a three-dimensional grid to determine multiple LOD layers, wherein the multiple LOD layers include adjacent first and second layers, and the first layer is an upper layer of the second layer; predicting the shift coefficients of the points in the second layer to determine the residual coefficients of the points in the second layer; and transforming the shift coefficients of the points in the first layer according to the residual coefficients of the points in the second layer.
- FIG. 3A is a schematic diagram of a three-dimensional grid image.
- updateWeight i predWeight ⁇ weight i
- the inverse quantization coefficient of the first point to be decoded can be inversely transformed according to the following formula:
- Signal represents the shift coefficient of the first point to be decoded.
- UpdateWeight i represents the update weight corresponding to the i-th point in the first neighborhood point.
- the calculation method of updateWeight i can be found in the previous text.
- P represents the point set formed by the first neighborhood point, and i represents the i-th point in the first neighborhood point.
- Signal i represents the inverse quantization coefficient of the first neighborhood point.
- the embodiment of the present application can also apply other inverse transformation solutions.
- the inverse transformation can be performed based on the adjustment parameter (Scale) of the updated weight, as shown in the following formula:
- updateWeight represents the update weight (can be a fixed value, such as 0.125).
- Scale ni-1 is the adjustment parameter of the update weight, n represents the number of LOD layers, and i represents the index of the LOD layer.
- P represents the point set formed by the first neighborhood point, and i represents the i-th point in the first neighborhood point.
- signal i represents the inverse quantization coefficient of the first neighborhood point.
- the above text describes in detail the inverse transformation operation of the points in the three-dimensional grid .
- the following text describes the prediction operation of the points in the three-dimensional grid from the perspective of the second point to be decoded.
- the second point to be decoded can be any point to be decoded in the second layer.
- the neighborhood point of the second point to be decoded is called the third neighborhood point.
- the embodiment of the present application does not specifically limit the definition method of the third neighborhood point.
- the third neighborhood point can be a point in the same LOD layer as the second point to be decoded.
- the third neighborhood point can be a point in the next layer of the LOD layer where the second point to be decoded is located.
- the third neighborhood point can include points in the above two LOD layers at the same time.
- the third neighborhood point can be a point in the first layer (the upper layer of the LOD layer where the second point to be decoded is located) that is collinear with the second point to be decoded.
- Step S1940 in Figure 19, i.e. predicting the shift coefficients of points in the second layer based on the shift coefficients of points in the first layer may include: predicting the second point to be decoded based on the shift coefficients of the third neighborhood points and the second prediction weight.
- the prediction weight adopts a fixed value (i.e. 0.5).
- the second prediction weight is determined based on the weight corresponding to the third neighborhood point. The larger the weight corresponding to a point in the third neighborhood point, the greater the influence of the point on the prediction result of the second point to be decoded.
- the prediction weight is determined based on the weight corresponding to the neighborhood point, which can make the points with higher importance have a greater influence on the prediction result of the point to be decoded, which will make the prediction process more reasonable and help improve the decoding efficiency of the geometric information of the points in the three-dimensional grid.
- the weight corresponding to the third neighborhood point can be determined based on the spatial connection relationship of the third neighborhood point in the three-dimensional grid.
- the weight corresponding to the third neighborhood point can be related to the number of neighboring points of the third neighborhood point (hereinafter referred to as the fourth neighborhood point). Determining the weight corresponding to the point based on the number of neighborhood points makes full use of the connection relationship information of the point in the three-dimensional grid, which can make the weight of the determined point more reasonable.
- the fourth neighboring point can be located at The fourth neighborhood point may be a point in the same LOD layer.
- the fourth neighborhood point may be a point in the next layer of the LOD layer where the third neighborhood point is located.
- the fourth neighborhood point may include points in both LOD layers.
- the fourth neighborhood point is a point predicted based on the third neighborhood point.
- the weight corresponding to the third neighborhood point may be equal to the number of the fourth neighborhood points.
- the third neighborhood points include point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points, then the weight of point 1 may be 5, and the weight of point 2 may be 6.
- the weight corresponding to the third neighborhood point can be determined based on the product of the number of fourth neighborhood points and the first prediction weight.
- the weight corresponding to the third neighborhood point can be equal to the product of the number of fourth neighborhood points and the first prediction weight.
- the first prediction weight mentioned here can be a predefined fixed value.
- the value of the first prediction weight can be 0.5.
- the weight corresponding to the third neighborhood point may be determined based on the following formula:
- weight represents the weight corresponding to any point in the third neighborhood point
- predWeight is the first prediction weight (the value can be 0.5).
- P represents the fourth neighborhood point
- weight[i] represents the initial weight corresponding to the i-th point in the fourth neighborhood point.
- the initial weight corresponding to the i-th point can be set to 1. For example, if the third neighborhood point includes point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points, then based on the above formula, the weight of point 1 can be 2.5, and the weight of point 2 can be 3 (the first prediction weight is 0.5).
- the weight corresponding to the third neighborhood point can be determined based on the weight corresponding to the LOD layer where the third neighborhood point is located.
- the weight corresponding to the third neighborhood point can be equal to the weight corresponding to the LOD layer where the third neighborhood point is located.
- the weight corresponding to the LOD layer can be understood as a level weight.
- the level weight of a LOD layer can be determined, for example, based on the ratio of the number of points in the LOD layer to the total number of points to be decoded.
- the second prediction weight can be determined based on the weight corresponding to the third neighborhood point.
- the second prediction weight can be equal to the weight corresponding to the third neighborhood point.
- the second prediction weight can be based on the product of the weight corresponding to the third neighborhood point and a certain parameter.
- the second point to be decoded can be predicted according to the shift coefficient of the third neighborhood point and the second prediction weight.
- a possible prediction method for the second point to be decoded is given below.
- the second to-be-decoded point may be predicted based on the following formula:
- Signal represents the prediction result of the second point to be decoded
- Neigh 1 and Neigh 2 represent the shift coefficients of the two neighboring points collinear with the second point to be decoded.
- Neigh 1 and Neigh 2 are located in the upper layer of the LOD layer where the second point to be decoded is located.
- predWeight 1 and predWeight 2 represent the prediction weights corresponding to Neigh 1 and Neigh 2 (i.e., the second prediction weights mentioned above).
- the above describes the inverse transformation operation and prediction operation of the points in the three-dimensional grid in detail, and the following describes the inverse quantization operation of the points in the three-dimensional grid from the perspective of the third point to be decoded.
- the third point to be decoded can be any point to be decoded in the three-dimensional grid.
- Step S1920 in Figure 19, i.e., dequantizing the quantization coefficients of the points in the three-dimensional grid may include: dequantizing the quantization coefficients of the third point to be decoded according to the weight corresponding to the third point to be decoded.
- the embodiment of the present application considers the weight corresponding to the point to be decoded. For example, a suitable quantization parameter may be selected according to the weight corresponding to the point to be decoded; or, the dequantization result may be processed differently according to the weight corresponding to the point to be decoded. Considering the weight of the point to be decoded in the dequantization process can make the dequantization result more reasonable, which helps to improve the decoding efficiency of the geometric information of the points in the three-dimensional grid.
- the fifth neighborhood point may be a point in the same LOD layer as the third point to be decoded.
- the fifth neighborhood point may be a point in the next layer of the LOD layer where the third point to be decoded is located.
- the fifth neighborhood point may include points in both LOD layers.
- the fifth neighborhood point is a point predicted based on the third point to be decoded.
- the weight corresponding to the third point to be decoded may be equal to the number of the fifth neighboring points.
- the third point to be decoded includes point 1 and point 2, point 1 includes 5 neighboring points, and point 2 includes 6 neighboring points. Then the weight of point 1 may be 5, and the weight of point 2 may be It can be 6.
- weight represents the weight corresponding to any point in the third point to be decoded
- predWeight is the first predicted weight (the value can be 0.5).
- P represents the fifth neighborhood point
- weight[i] represents the initial weight corresponding to the i-th point in the fifth neighborhood point.
- the initial weight corresponding to the i-th point can be set to 1.
- the third point to be decoded includes point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points.
- the weight of point 1 can be 2.5, and the weight of point 2 can be 3 (the first predicted weight is 0.5).
- the weight corresponding to the third point to be decoded is small, it means that the degree of quantization of the third point to be decoded is low.
- the value of the first quantization parameter can be large (indicating that the degree of quantization of the point to be decoded is high). According to the design method of the above quantization parameters, the reconstruction quality can be guaranteed, thereby improving the decoding efficiency of the geometric information of the three-dimensional grid.
- Lvl represents the index of the target LOD layer
- QP Lvl is the second quantization parameter
- liftingQP is the initial quantization parameter
- Scale is the quantization adjustment parameter
- the third to-be-decoded point may be dequantized based on the following formula:
- InvResi represents the inverse quantization result of the third point to be decoded
- Resi represents the quantization coefficient of the third point to be decoded
- bitDepth represents the effective bit depth of the shift coefficient
- QP Lvl represents the quantization parameter corresponding to the target LOD layer (the LOD layer where the third point to be decoded is located)
- weight i represents the weight corresponding to the third point to be decoded (the method for determining the weight corresponding to the third point to be decoded can be found in the previous text and will not be described in detail here).
- Figure 20 is a flow chart of a coding method provided in an embodiment of the present application.
- the method of Figure 20 may be performed by an encoder.
- the encoder may be an encoder supporting V-DMC.
- step S2020 the shift coefficients of the points in the second layer are predicted to determine the residual coefficients of the points in the second layer.
- the residual coefficients of the points mentioned in the embodiments of the present application refer to the residual coefficients corresponding to the shift coefficients of the points, or the predicted residuals of the shift coefficients.
- step S2030 the shift coefficients of the points in the first layer are transformed according to the residual coefficients of the points in the second layer.
- Steps S2020 and S2030 may belong to two sub-processes of the lifting transformation.
- the shift coefficient of the point in the three-dimensional mesh can be determined based on the difference between the geometric information of the point in the subdivided mesh and the original geometric information of the three-dimensional mesh.
- the base mesh can be divided according to the geometric information of the point in the base mesh to determine the geometric information of the point in the subdivided mesh; then, the shift coefficient of the point in the three-dimensional mesh can be determined according to the geometric information of the point in the subdivided mesh and the original geometric information of the three-dimensional mesh.
- the complete coding operation includes prediction operation, transformation operation and quantization operation.
- one or more of the prediction operation, transformation operation and quantization operation can be optimized based on the weights of the points in the three-dimensional grid (or the spatial connection relationship of the points).
- the following examples illustrate the optimization scheme provided in the embodiment of the present application from the three perspectives of prediction operation, transformation operation and quantization operation.
- the embodiment of the present application can optimize only one of prediction, transformation and quantization; or, the embodiment of the present application can optimize any two of prediction, transformation and quantization, thereby further improving the coding efficiency of the geometric information of the three-dimensional grid; or, the embodiment of the present application can optimize prediction, transformation and quantization at the same time, thereby further improving the coding efficiency of the geometric information of the three-dimensional grid.
- the first point to be encoded may be any point to be encoded in the first layer.
- the neighborhood point of the first point to be encoded is called the first neighborhood point.
- the first neighborhood point may be a point in the next layer of the LOD layer where the first point to be encoded is located.
- the first neighborhood point is a point predicted based on the first point to be encoded.
- the weight corresponding to the first neighborhood point can be determined based on the spatial connection relationship of the first neighborhood point in the three-dimensional grid.
- the weight corresponding to the first neighborhood point can be related to the number of the neighborhood points (hereinafter referred to as the second neighborhood points) of the first neighborhood point. Determining the weight corresponding to the point based on the number of neighborhood points makes full use of the connection relationship information of the point in the three-dimensional grid, which can make the weight of the determined point more reasonable.
- the second neighborhood point can be a point in the same LOD layer as the first neighborhood point.
- the second neighborhood point can be a point in the next layer of the LOD layer where the first neighborhood point is located.
- the second neighborhood point can include points in the above two LOD layers at the same time.
- the second neighborhood point is a point predicted based on the first neighborhood point.
- the weight corresponding to the first neighborhood point may be equal to the number of the second neighborhood points.
- the first neighborhood points include point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points, then the weight of point 1 may be 5, and the weight of point 2 may be 6.
- the weight corresponding to the first neighborhood point can be determined based on the product of the number of second neighborhood points and the first prediction weight.
- the weight corresponding to the first neighborhood point can be equal to the product of the number of second neighborhood points and the first prediction weight.
- the first prediction weight mentioned here can be a predefined fixed value.
- the value of the first prediction weight can be 0.5.
- the weight corresponding to the first neighborhood point may be determined based on the following formula:
- weight represents the weight corresponding to any point in the first neighborhood point
- predWeight is the first prediction weight (the value can be 0.5).
- P represents the second neighborhood point
- weight[i] represents the initial weight corresponding to the i-th point in the second neighborhood point.
- the initial weight corresponding to the i-th point can be set to 1. For example, if the first neighborhood point includes point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points, then based on the above formula, the weight of point 1 can be 2.5, and the weight of point 2 can be 3 (the first prediction weight is 0.5).
- the weight corresponding to the first neighborhood point can be determined based on the weight corresponding to the LOD layer where the first neighborhood point is located. For example, the weight corresponding to the first neighborhood point can be equal to the weight corresponding to the LOD layer where the first neighborhood point is located.
- the weight corresponding to the LOD layer can be understood as a level weight.
- the level weight of a LOD layer can be determined, for example, based on the ratio of the number of points in the LOD layer to the total number of points to be decoded.
- the update weight can be determined based on the weight corresponding to the first neighborhood point.
- the update weight can be equal to the weight corresponding to the first neighborhood point.
- the update weight can be determined based on the weight corresponding to the first neighborhood point and the first prediction weight (the first prediction weight can be a predefined fixed value, for example, the value of the first prediction weight can be 0.5).
- the update weight can be determined based on the product of the weight corresponding to the first neighborhood point and the first prediction weight, or the update weight can be equal to the product of the weight corresponding to the first neighborhood point and the first prediction weight.
- updateWeight i predWeight ⁇ weight i
- updateWeight i represents the update weight corresponding to the i-th point in the first neighborhood point.
- predWeight represents the first prediction weight, and the value of the first prediction weight can be 0.5.
- weight i represents the weight corresponding to the first neighborhood point.
- the weight corresponding to the first neighborhood point can be determined by any of the above implementation methods.
- the shift coefficient of the first point to be encoded can be transformed according to the following formula:
- Signal represents the shift coefficient of the first point to be encoded.
- UpdateWeight i represents the update weight corresponding to the i-th point in the first neighborhood point. The calculation method of updateWeight i can be found in the previous text.
- P represents the point set formed by the first neighborhood point, and i represents the i-th point in the first neighborhood point.
- Signal i represents the residual coefficient (shift residual coefficient) of the first neighborhood point.
- the embodiment of the present application does not exclude other inverse transformation schemes.
- the transformation can be performed based on the adjustment parameter (Scale) of the updated weight, as shown in the following formula:
- updateWeight represents the update weight (can be a fixed value, such as 0.125).
- Scale ni-1 is the adjustment parameter of the update weight, n represents the number of LOD layers, and i represents the index of the LOD layer.
- P represents the point set formed by the first neighborhood point, and i represents the i-th point in the first neighborhood point.
- signal i represents the residual coefficient (shift residual coefficient) of the first neighborhood point.
- the above text describes in detail the transformation operation of the points in the three-dimensional grid.
- the following text describes the prediction operation of the points in the three-dimensional grid from the perspective of the second point to be encoded.
- the second point to be encoded can be any point to be encoded in the second layer.
- the neighborhood point of the second point to be encoded is called the third neighborhood point.
- the embodiment of the present application does not specifically limit the definition method of the third neighborhood point.
- the third neighborhood point may be a point in the same LOD layer as the second point to be encoded.
- the third neighborhood point may be a point in the next layer of the LOD layer where the second point to be encoded is located.
- the third neighborhood point may include points in the above two LOD layers at the same time.
- the third neighborhood point may be a point in the first layer (the upper layer of the LOD layer where the second point to be encoded is located) that is collinear with the second point to be encoded.
- the prediction weight is determined based on the weight corresponding to the neighborhood point, which can make the points with higher importance have a greater influence on the prediction result of the point to be encoded, which will make the prediction process more reasonable and help improve the encoding efficiency of the geometric information of the points in the three-dimensional grid.
- the second prediction weight can be determined based on the weight corresponding to the third neighborhood point.
- the second prediction weight can be equal to the weight corresponding to the third neighborhood point.
- the second prediction weight can be based on the product of the weight corresponding to the third neighborhood point and a certain parameter.
- the above describes the transformation operation and prediction operation of points in the three-dimensional grid in detail, and the following describes the quantization operation of points in the three-dimensional grid from the perspective of the third point to be encoded.
- the third point to be encoded can be any point to be encoded in the three-dimensional grid.
- the weight corresponding to the third point to be encoded can be determined based on the spatial connection relationship of the third point to be encoded in the three-dimensional grid.
- the weight corresponding to the third point to be encoded can be related to the number of neighboring points (hereinafter referred to as the fifth neighboring points) of the third point to be encoded. Determining the weight corresponding to the point based on the number of neighboring points makes full use of the connection relationship information of the point in the three-dimensional grid, which can make the weight of the determined point more reasonable.
- the weight corresponding to the third point to be encoded may be equal to the number of the fifth neighboring points.
- the third point to be encoded includes point 1 and point 2, point 1 includes 5 neighboring points, and point 2 includes 6 neighboring points, then the weight of point 1 may be 5, and the weight of point 2 may be 6.
- the weight corresponding to the third to-be-encoded point may be determined based on the following formula:
- weight represents the weight corresponding to any point in the third point to be encoded
- predWeight is the first prediction weight (the value can be 0.5).
- P represents the fifth neighborhood point
- weight[i] represents the initial weight corresponding to the i-th point in the fifth neighborhood point.
- the initial weight corresponding to the i-th point can be set to 1.
- the third point to be encoded includes point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points.
- the weight of point 1 can be 2.5, and the weight of point 2 can be 3 (the first prediction weight is 0.5).
- the transform coefficient of the third point to be encoded can be quantized according to the first quantization parameter.
- the first quantization parameter can be determined based on the weight corresponding to the third point to be encoded.
- the quantization parameter can be adaptively set for the point to be encoded according to the weight corresponding to the point to be encoded. For example, if the weight corresponding to the third point to be encoded is large, it means that the importance of the third point to be encoded is high. For points to be encoded with high importance, the value of the first quantization parameter can be small (indicating that the degree of quantization of the point to be encoded is low).
- the weight corresponding to the third point to be encoded is small, it means that the importance of the third point to be encoded is low.
- the value of the first quantization parameter can be small (indicating that the degree of quantization of the point to be encoded is low).
- the value of the first quantization parameter can be relatively large (indicating that the quantization degree of the code point is relatively high). According to the design method of the quantization parameter, the reconstruction quality can be guaranteed, thereby improving the geometric coding efficiency of the points in the three-dimensional grid.
- the first quantization parameter can be directly determined based on the weight corresponding to the third point to be encoded. For example, a mapping relationship between the weight corresponding to the point to be encoded and the quantization parameter can be pre-established, and the first quantization parameter can be determined based on the mapping relationship. Alternatively, the first quantization parameter can also be determined based on the weight corresponding to the third point to be encoded and the second quantization parameter.
- the second quantization parameter mentioned here can be the quantization parameter corresponding to the target LOD layer (i.e., the LOD layer to which the third point to be encoded belongs). The second quantization parameter can be determined based on the initial quantization parameter and the quantization adjustment parameter.
- the third to-be-encoded point may be quantized based on the following formula:
- QResi represents the quantization result of the third point to be encoded
- Rea i represents the transformation coefficient of the third point to be encoded
- bitDepth represents the effective bit depth of the shift coefficient
- QP Lvl represents the quantization parameter corresponding to the target LOD layer (the LOD layer where the third point to be encoded is located)
- weight i represents the weight corresponding to the third point to be encoded (the method for determining the weight corresponding to the third point to be encoded can be found in the previous text and will not be described in detail here).
- the prediction operation corresponding to the decoding end can also be called an inverse prediction operation.
- the transform operation at the encoding end can also be called an update operation.
- the inverse transform operation at the decoding end can also be called an update operation or an inverse update operation.
- the shift coefficients of the entire set of points to be encoded are divided into low-frequency coefficients L(N) and high-frequency coefficients H(N). Then, the low-frequency coefficients L(N) are used to predict the high-frequency coefficients H(N). Then, the predicted high-frequency coefficients H(N) are used to adaptively update the low-frequency coefficients L(N).
- the initial weights are updated according to the connection relationship between the points in the three-dimensional grid.
- the specific update formula is as follows:
- Neigh 1 and Neigh 2 represent the shift coefficients of two neighboring points that are collinear with the current point, and these two neighboring points are located in the upper LOD of the current layer.
- updateWeight i predWeight ⁇ weight i
- predWeight is the prediction weight
- weight i is the weight of each point.
- the above prediction and update process is repeated continuously, and the transformation is performed from the lower layer to the upper layer according to the spatial structure of the LOD, and finally the shift coefficient of the entire grid is transformed from the spatial domain to the frequency domain, thereby completing the geometric encoding of the entire grid.
- the decoding algorithm is a completely opposite process to the encoding algorithm. After completing the entropy decoding of the shift coefficients, the decoding end continuously performs inverse transformation from the high level of LOD to the lowest level of LOD according to the LOD spatial structure, thereby completing the geometric information reconstruction of the entire grid.
- the specific decoding algorithm is described as follows.
- the weights are updated according to the connection relationship between the points in the three-dimensional grid.
- the specific update formula is as follows:
- predWeight is the prediction weight value.
- the current V-DMC sets the prediction weight to a fixed value of 0.5.
- the P set is the neighborhood point set predicted based on the current point.
- the inverse transformation is performed, and the spatial connection relationship between points is used to obtain the neighborhood point set based on the current point for prediction.
- the specific inverse transformation formula is as follows:
- updateWeight i predWeight ⁇ weight i
- predWeight is the prediction weight
- weight i is the weight of each point.
- Signal i represents the shifted residual coefficient of the point predicted based on the current point.
- Neigh 1 and Neigh 2 represent two neighboring points on the same line as the current point, and these two neighboring points are located in the upper LOD.
- predWeight is the prediction weight.
- the current V-DMC sets the prediction weight to a fixed value of 0.5.
- the P set represents the neighborhood point set predicted based on the current point.
- Prediction is performed based on the LOD spatial structure.
- the displacement coefficients of the midpoints in the upper LOD are updated using the prediction residual of each point displacement coefficient.
- the specific update formula is as follows:
- Resi represents the transformation coefficient of the shift coefficient of the current point
- bitDepth represents the effective bit depth of the shift coefficient in the current geometric coding
- QP Lvl represents the quantization parameter of the current LOD layer
- weight i is the weight corresponding to the current point.
- the prediction, update and quantization process described above is repeated to complete the geometric encoding of the entire grid.
- All the points to be decoded are assigned an initial weight weight i set to 1, which means that all the points to be decoded are considered equally important.
- the initial weights are updated according to the connection relationship between the points in the three-dimensional grid.
- the specific update formula is as follows:
- predWeight is the prediction weight.
- the current V-DMC sets the prediction weight to a fixed value of 0.5.
- the P set represents the neighborhood point set predicted based on the current point.
- the shift coefficients of the current layer are adaptively dequantized.
- the specific dequantization method is as follows:
- Res i represents the quantization coefficient of the shift coefficient of the current point
- bitDepth represents the effective bit depth of the shift coefficient in the current geometric coding
- QP Lvl represents the quantization parameter of the current LOD layer
- weight i is the weight of the current point bet
- InvRes i represents the inverse quantization result of the current point.
- updateWeight is the update weight
- P set is the set of neighborhood points predicted based on the current point.
- Neigh 1 and Neigh 2 represent the shift coefficients of two neighboring points on the same line as the current point, and these two neighboring points are located at the upper LOD layer of the current point.
- the reconstructed geometric information of the three-dimensional grid can be determined by adding the initial geometric position information (geometric information of the subdivided grid) to the reconstructed shift coefficient of each point.
- This scheme proposes a shift coding scheme for adaptive quantization based on the spatial connection relationship of the grid. Specifically, the points after the basic grid division are divided into LOD space; the shift of the points in the grid is lifted and transformed (including prediction and transformation) based on the spatial structure of LOD. In the prediction process, two colinear neighboring points of the current point are used for prediction coding. The transformation process will adaptively update the shift coefficient of the current point according to the shift coefficient of each point in the domain point set predicted based on the current point, and the fixed update weight. After completing the shift coefficient transformation, the shift coefficient is quantized and encoded. During quantization coding, the shift coefficients of different points are adaptively quantized and encoded according to the weights of different points in the current grid.
- the weight of the point can be obtained by utilizing the spatial connection relationship between the points in the current grid. For points with larger weights and higher importance, a smaller quantization degree can be used, and for points with smaller weights and lower importance, a higher quantization degree can be used. Based on such a scheme, the code rate of the geometric information of the grid can be reduced while ensuring the reconstruction quality of the entire grid, thereby further improving the coding efficiency of the geometric information of the grid.
- Example 1 The technical solution provided in Example 1 was tested based on V-DMC-4.0 using test conditions C1 and C2.
- BD-Rate is a performance indicator for measuring compression efficiency. When BD-Rate is less than 0, it means that the encoding efficiency has been improved compared to the traditional encoding scheme. It can be seen from the table below that compared with V-DMC-4.0, under the condition of C1, D1 and D2 are increased by approximately 0.2% and 0.2% respectively, and the Luma component is increased by approximately 0.0% to 0.1%; under the condition of C2, D1 and D2 are increased by 0.2% and 0.2% respectively, and the Luma component is increased by approximately 0.1%.
- the prediction weight of each point can be adaptively updated according to the weight of the current point, that is, the prediction algorithm of the current point is modified as follows:
- FIG23 is a schematic diagram of the structure of a decoder provided by an embodiment of the present application.
- the decoder 2300 shown in FIG23 includes a first determination unit 2310, a second determination unit 2320, a third determination unit 2330, and a prediction unit 2340.
- the first determination unit 2310 is configured to parse the code stream and determine the quantization coefficients of the points in the three-dimensional grid.
- the second determination unit 2320 is configured to dequantize the quantization coefficients of the points in the three-dimensional grid and determine the dequantization coefficients of the points in the three-dimensional grid.
- the third determination unit 2330 is configured to perform an inverse transformation on the dequantization coefficients of the points in the first layer and determine the shift coefficients of the points in the first layer.
- the weight corresponding to the first neighborhood point is related to the number of second neighborhood points, and the second neighborhood points are neighborhood points of the first neighborhood point; or, the weight corresponding to the first neighborhood point is determined based on the weight corresponding to the LOD layer where the first neighborhood point is located.
- the second determining unit 2320 is configured to: dequantize the quantization coefficient of the third point to be decoded according to a weight corresponding to the third point to be decoded, wherein the third point to be decoded is any point in the three-dimensional network.
- the weight corresponding to the third point to be decoded is related to the number of fifth neighborhood points, and the fifth neighborhood points are neighborhood points of the third point to be decoded.
- the fifth neighborhood point is a point predicted based on the third point to be decoded.
- the value of the first prediction weight is 0.5.
- the decoder 2300 also includes: a fourth determination unit, configured to: parse the code stream to determine the geometric information of the points in the basic grid; divide the basic grid according to the geometric information of the points in the basic grid to determine the geometric information of the points in the subdivided grid; determine the reconstructed geometric information of the points in the three-dimensional grid according to the shift coefficients of the points in the three-dimensional grid and the geometric information of the points in the subdivided grid.
- a fourth determination unit configured to: parse the code stream to determine the geometric information of the points in the basic grid; divide the basic grid according to the geometric information of the points in the basic grid to determine the geometric information of the points in the subdivided grid; determine the reconstructed geometric information of the points in the three-dimensional grid according to the shift coefficients of the points in the three-dimensional grid and the geometric information of the points in the subdivided grid.
- a "unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., and of course, it may be a module, or it may be non-modular.
- the components in the present embodiment may be integrated into a processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the above-mentioned integrated unit may be implemented in the form of hardware or in the form of a software functional module.
- Communication interface 2410 used for receiving and sending signals during the process of sending and receiving information with other external network elements
- Memory 2420 used for storing computer programs
- the processor 2430 is configured to, when running the computer program, execute:
- the points in the three-dimensional grid belong to multiple LOD layers, the first layer and the second layer are two adjacent layers in the multiple LOD layers, and the first layer is an upper layer of the second layer.
- the memory 2420 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories.
- the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory.
- the volatile memory can be a random access memory (RAM), which is used as an external cache.
- RAM static RAM
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDRSDRAM double data rate SDRAM
- ESDRAM enhanced SDRAM
- SLDRAM synchlink DRAM
- DRRAM direct rambus RAM
- the processor 2430 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit in the processor 2430 or the instructions in software form.
- the above-mentioned processor 2430 can be a general-purpose processor, a digital signal processor (digital signal processor, DSP), an application specific integrated circuit (application specific integrated circuit, ASIC), a field programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components.
- DSP digital signal processor
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- the various methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed.
- the general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc.
- the embodiments described in this application can be implemented in hardware, software, firmware, middleware, microcode or a combination thereof.
- the processing unit can be implemented in one or more application specific integrated circuits (ASIC), digital signal processors (DSP), digital signal processing devices (DSPD), programmable logic devices (PLD), field programmable gate arrays (FPGA), general processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof.
- ASIC application specific integrated circuits
- DSP digital signal processors
- DSPD digital signal processing devices
- PLD programmable logic devices
- FPGA field programmable gate arrays
- the technology described in this application can be implemented by modules (such as processes, functions, etc.) that perform the functions described in this application.
- the software code can be stored in a memory and executed by a processor.
- the memory can be implemented in the processor or outside the processor.
- the processor 2430 is further configured to execute the decoding method described in any one of the aforementioned embodiments when running the computer program.
- FIG25 is a schematic diagram of the structure of an encoder provided by an embodiment of the present application.
- the encoder 2500 of FIG25 includes a first determination unit 2510, a second determination unit 2520, and a transformation unit 2530.
- the first determination unit 2510 is configured to perform detail level LOD division on points in a three-dimensional grid, and determine multiple LOD layers, wherein the multiple LOD layers include adjacent first and second layers, and the first layer is the upper layer of the second layer.
- the second determination unit 2520 is configured to predict the shift coefficients of the points in the second layer and determine the residual coefficients of the points in the second layer.
- the transformation unit 2530 is configured to transform the shift coefficients of the points in the first layer according to the residual coefficients of the points in the second layer.
- the transformation unit 2530 is configured to transform the shift coefficient of the first point to be encoded in the first layer according to the residual coefficient of the first neighborhood point and the update weight, wherein the first neighborhood point is the neighborhood point of the first point to be encoded in the second layer, and the update weight is determined based on the weight corresponding to the first neighborhood point.
- the weight corresponding to the first neighborhood point is equal to the number of the second neighborhood points; or, the weight corresponding to the first neighborhood point is equal to the product of the number of the second neighborhood points and the first prediction weight.
- the second determination unit 2520 is configured to: predict the second point to be encoded based on the shift coefficient of the third neighborhood point and the second prediction weight, the second point to be encoded is any point in the second layer, the third neighborhood point is a neighborhood point of the second point to be encoded, and the second prediction weight is determined based on the weight corresponding to the third neighborhood point.
- the second prediction weight is equal to the weight corresponding to the third neighborhood point.
- the weight corresponding to the third neighborhood point is equal to the number of the fourth neighborhood points; or, the weight corresponding to the third neighborhood point is equal to the product of the number of the fourth neighborhood points and the first prediction weight.
- the fourth neighborhood point is a point predicted based on the third neighborhood point.
- the third neighborhood point is a point in the first layer that is colinear with the second point to be encoded.
- the quantization unit is configured to: quantize the transform coefficient of the third point to be encoded according to a first quantization parameter, and the first quantization parameter is determined based on a weight corresponding to the third point to be encoded.
- the first quantization parameter is determined based on the weight corresponding to the third point to be encoded and the second quantization parameter, wherein the third point to be encoded is located in a target LOD layer among the multiple LOD layers, and the second quantization parameter is the quantization parameter corresponding to the target LOD layer.
- the second quantization parameter is determined based on an initial quantization parameter and a quantization adjustment parameter.
- the weight corresponding to the third to-be-coded point is related to the number of fifth neighborhood points, and the fifth neighborhood points are The neighboring points of the third point to be encoded.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本申请涉及视频编解码技术领域,尤其涉及一种编解码方法、编解码器以及存储介质。The present application relates to the field of video coding and decoding technology, and in particular to a coding and decoding method, a codec and a storage medium.
视频动态网格编码(video dynamic mesh coding,V-DMC)需要对网格中的点的几何信息进行编码。如何提高几何信息的编码效率,是需要解决的问题。Video dynamic mesh coding (V-DMC) requires encoding the geometric information of points in the mesh. How to improve the coding efficiency of geometric information is a problem that needs to be solved.
发明内容Summary of the invention
本申请实施例提供一种编解码方法、编解码器以及存储介质,以提升网格中的点的几何信息的编码效率。下面对本申请涉及的各个方面进行介绍。The embodiments of the present application provide a coding method, a codec, and a storage medium to improve the coding efficiency of geometric information of points in a grid.
第一方面,提供一种解码方法,应用于解码器,包括:解析码流,确定三维网格中的点的量化系数;对所述三维网格中的点的量化系数进行反量化,确定所述三维网格中的点的反量化系数;对第一层中的点的反量化系数进行反变换,确定所述第一层中的点的移位系数;根据所述第一层中的点的移位系数,对第二层中的点的移位系数进行预测;其中,所述三维网格中的点属于多个细节层次(level of detail,LOD)层,所述第一层和所述第二层为所述多个LOD层中的相邻两层,且所述第一层为所述第二层的上一层。In a first aspect, a decoding method is provided, which is applied to a decoder, comprising: parsing a bit stream to determine quantization coefficients of points in a three-dimensional grid; dequantizing the quantization coefficients of the points in the three-dimensional grid to determine the dequantization coefficients of the points in the three-dimensional grid; inversely transforming the dequantization coefficients of the points in a first layer to determine the shift coefficients of the points in the first layer; predicting the shift coefficients of the points in a second layer based on the shift coefficients of the points in the first layer; wherein the points in the three-dimensional grid belong to multiple level of detail (LOD) layers, the first layer and the second layer are two adjacent layers in the multiple LOD layers, and the first layer is a layer above the second layer.
第二方面,提供一种编码方法,应用于编码器,包括:对三维网格中的点进行细节层次LOD划分,确定多个LOD层,所述多个LOD层包括相邻的第一层和第二层,所述第一层为所述第二层的上一层;对所述第二层中的点的移位系数进行预测,确定所述第二层中的点的残差系数;根据所述第二层中的点的残差系数,对所述第一层中的点的移位系数进行变换。In a second aspect, a coding method is provided, which is applied to an encoder, comprising: performing detail level LOD division on points in a three-dimensional grid to determine multiple LOD layers, wherein the multiple LOD layers include adjacent first and second layers, and the first layer is an upper layer of the second layer; predicting the shift coefficients of the points in the second layer to determine the residual coefficients of the points in the second layer; and transforming the shift coefficients of the points in the first layer according to the residual coefficients of the points in the second layer.
第三方面,提供一种解码器,包括:第一确定单元,配置为解析码流,确定三维网格中的点的量化系数;第二确定单元,配置为对所述三维网格中的点的量化系数进行反量化,确定所述三维网格中的点的反量化系数;第三确定单元,配置为对第一层中的点的反量化系数进行反变换,确定所述第一层中的点的移位系数;预测单元,配置为根据所述第一层中的点的移位系数,对第二层中的点的移位系数进行预测;其中,所述三维网格中的点属于多个LOD层,所述第一层和所述第二层为所述多个LOD层中的相邻两层,且所述第一层为所述第二层的上一层。According to a third aspect, a decoder is provided, comprising: a first determination unit configured to parse a bitstream and determine quantization coefficients of points in a three-dimensional grid; a second determination unit configured to dequantize the quantization coefficients of the points in the three-dimensional grid and determine the dequantization coefficients of the points in the three-dimensional grid; a third determination unit configured to inversely transform the dequantization coefficients of the points in the first layer and determine the shift coefficients of the points in the first layer; a prediction unit configured to predict the shift coefficients of the points in the second layer based on the shift coefficients of the points in the first layer; wherein the points in the three-dimensional grid belong to multiple LOD layers, the first layer and the second layer are two adjacent layers among the multiple LOD layers, and the first layer is the upper layer of the second layer.
第四方面,提供一种解码器,所述解码器包括:存储器,用于存储计算机程序;处理器,用于在运行所述计算机程序时,执行如第一方面所述的方法。According to a fourth aspect, a decoder is provided, comprising: a memory for storing a computer program; and a processor for executing the method described in the first aspect when running the computer program.
第五方面,提供一种编码器,包括:第一确定单元,配置为对三维网格中的点进行LOD划分,确定多个LOD层,所述多个LOD层包括相邻的第一层和第二层,所述第一层为所述第二层的上一层;第二确定单元,配置为对所述第二层中的点的移位系数进行预测,确定所述第二层中的点的残差系数;变换单元,配置为根据所述第二层中的点的残差系数,对所述第一层中的点的移位系数进行变换。In a fifth aspect, an encoder is provided, comprising: a first determination unit, configured to perform LOD division on points in a three-dimensional grid, and determine multiple LOD layers, wherein the multiple LOD layers include adjacent first and second layers, and the first layer is an upper layer of the second layer; a second determination unit, configured to predict the shift coefficients of the points in the second layer, and determine the residual coefficients of the points in the second layer; and a transformation unit, configured to transform the shift coefficients of the points in the first layer according to the residual coefficients of the points in the second layer.
第六方面,提供一种编码器,所述编码器包括:存储器,用于存储计算机程序;处理器,用于在运行所述计算机程序时,执行如第二方面所述的方法。In a sixth aspect, an encoder is provided, comprising: a memory for storing a computer program; and a processor for executing the method described in the second aspect when running the computer program.
第七方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如第一方面所述的方法、或者如第二方面所述的方法。In a seventh aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed, the method as described in the first aspect or the method as described in the second aspect is implemented.
第八方面,提供一种存储比特流的非易失性计算机可读存储介质,所述比特流通过利用编码器的编码方法而生成,或者,所述比特流通过利用解码器的解码方法而解码,其中,所述解码方法为如第一方面所述的方法、所述编码方法为如第二方面所述的方法。In an eighth aspect, a non-volatile computer-readable storage medium for storing a bit stream is provided, wherein the bit stream is generated by an encoding method using an encoder, or the bit stream is decoded by a decoding method using a decoder, wherein the decoding method is the method described in the first aspect, and the encoding method is the method described in the second aspect.
图1A为三维网格图像的示意图。FIG. 1A is a schematic diagram of a three-dimensional grid image.
图1B为三维网格图像的局部放大图。FIG. 1B is a partial enlarged view of the three-dimensional grid image.
图2为三维网格的连接方式示意图。FIG. 2 is a schematic diagram of a connection method of a three-dimensional grid.
图3A为三维网格图像的示意图。FIG. 3A is a schematic diagram of a three-dimensional grid image.
图3B为网格数据存储格式的示意图。FIG. 3B is a schematic diagram of a grid data storage format.
图3C为三维网格图像的属性图。FIG. 3C is a property diagram of a three-dimensional grid image.
图4为网格编码整体框架图。Figure 4 is a diagram of the overall framework of grid coding.
图5A为网格预处理流程的示意图。 FIG. 5A is a schematic diagram of a mesh preprocessing process.
图5B为移位系数的生成方式的示意图。FIG. 5B is a schematic diagram of a method of generating shift coefficients.
图6A为网格几何信息的量化处理方式的一个示意图。FIG. 6A is a schematic diagram of a quantization processing method for mesh geometric information.
图6B为网格几何信息的量化处理方式的另一示意图。FIG. 6B is another schematic diagram of a quantization processing method for mesh geometric information.
图7A为三角面片的连接关系的编码方式示意图。FIG. 7A is a schematic diagram showing an encoding method for the connection relationship of triangular facets.
图7B为几何信息的编码方式示意图。FIG. 7B is a schematic diagram of a method for encoding geometric information.
图7C为纹理坐标的编码方式示意图。FIG. 7C is a schematic diagram of a texture coordinate encoding method.
图8A为顶点移位系数的基本原理示意图。FIG. 8A is a schematic diagram showing the basic principle of vertex shift coefficients.
图8B为移位系数映射到二维图像的映射方式示意图。FIG. 8B is a schematic diagram of a mapping method of mapping a shift coefficient to a two-dimensional image.
图9为帧间几何信息的编码方式示意图。FIG. 9 is a schematic diagram of an encoding method for inter-frame geometric information.
图10A为帧内编码方式的示意图。FIG. 10A is a schematic diagram of an intra-frame coding method.
图10B为帧间编码方式的示意图。FIG. 10B is a schematic diagram of an inter-frame coding method.
图11为基础网格的划分方式的示意图。FIG. 11 is a schematic diagram of a basic grid division method.
图12为基础网格的层次结构示意图。FIG12 is a schematic diagram of the hierarchical structure of the basic grid.
图13为移位系数的系数重组方式的示意图。FIG. 13 is a schematic diagram of a coefficient reorganization method of shifted coefficients.
图14为二维图像中的编码块结构的示意图。FIG14 is a schematic diagram of a coding block structure in a two-dimensional image.
图15为基础网格、移位系数以及重建网格的关系示意图。FIG15 is a schematic diagram showing the relationship among the basic grid, the shift coefficient and the reconstructed grid.
图16为三维网格中的点的连接关系示例图。FIG. 16 is a diagram showing an example of the connection relationship of points in a three-dimensional grid.
图17为量化参数的确定方式的示例图。FIG. 17 is a diagram showing an example of a method of determining a quantization parameter.
图18为三维网格中的点的连接关系的又一示例图。FIG. 18 is another example diagram of the connection relationship of points in a three-dimensional grid.
图19为本申请实施例提供的解码方法的流程示意图。FIG19 is a flow chart of the decoding method provided in an embodiment of the present application.
图20为本申请实施例提供的编码方法的流程示意图。FIG20 is a flow chart of the encoding method provided in an embodiment of the present application.
图21为移位系数的预测和变换过程的示例图。FIG. 21 is a diagram illustrating an example of the prediction and transformation process of the shift coefficients.
图22为LOD层的结构示例图。FIG. 22 is a diagram showing an example of the structure of the LOD layer.
图23为本申请一实施例提供的解码器的结构示意图。FIG. 23 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application.
图24为本申请另一实施例提供的解码器的结构示意图。FIG24 is a schematic diagram of the structure of a decoder provided in another embodiment of the present application.
图25为本申请一实施例提供的编码器的结构示意图。FIG. 25 is a schematic diagram of the structure of an encoder provided in one embodiment of the present application.
图26为本申请另一实施例提供的编码器的结构示意图。FIG. 26 is a schematic diagram of the structure of an encoder provided in another embodiment of the present application.
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below in conjunction with the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art to which this application belongs. The terms used herein are only for the purpose of describing the embodiments of this application and are not intended to limit this application.
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。In the following description, reference is made to “some embodiments”, which describe a subset of all possible embodiments, but it will 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.
还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。It should also be pointed out that the terms "first\second\third" involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged in a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.
一般而言,三维动画内容采用基于关键帧的表示方法,即每帧是一个静态网格。不同时刻的静态网格具有相同的拓扑结构和不同的几何结构。但是,基于关键帧表示的三维动态网格的数据量特别大,因此如何能够有效的存储、传输和绘制成为三维动态网格发展所面临的问题。另外针对不同的用户终端(电脑、笔记本、便携式设备、手机)需要支持网格的空间可伸缩性;不同的网络带宽(宽带、窄带、无线)需要支持网格的质量可伸缩性。因此,三维动态网格压缩是一个非常关键的问题。Generally speaking, 3D animation content is represented based on keyframes, that is, each frame is a static mesh. Static meshes at different times have the same topological structure and different geometric structures. However, the amount of data of 3D dynamic meshes represented based on keyframes is extremely large, so how to effectively store, transmit and draw them has become a problem faced by the development of 3D dynamic meshes. In addition, the spatial scalability of the mesh needs to be supported for different user terminals (computers, notebooks, portable devices, mobile phones); different network bandwidths (broadband, narrowband, wireless) need to support the quality scalability of the mesh. Therefore, 3D dynamic mesh compression is a very critical issue.
三维网格是通过空间中的若干个多边形组成的三维物体表面。多边形可以由顶点和边组成。图1A展示了三维网格图像,图1B展示了三维网格图像的局部放大图。从图1A和图1B可以看出,网格表面通常是由闭合的多个多边形构成。A 3D mesh is a 3D object surface composed of several polygons in space. A polygon can be composed of vertices and edges. FIG. 1A shows a 3D mesh image, and FIG. 1B shows a partial magnified view of the 3D mesh image. As can be seen from FIG. 1A and FIG. 1B, a mesh surface is usually composed of multiple closed polygons.
二维图像的像素点分布规则,因此不需要额外记录其几何信息(或称位置信息)。然而,网格中的顶点在三维空间中的分布具有随机性和不规则性,以及多边形的构成方式需要进行额外的记录。因此,针对三维网格,不但需要记录网格中的顶点在空间中的位置,而且需要记录网格中的多边形的连接信息,才能完整地表达一幅网格图像。如图2所示,同样的顶点数目和顶点位置,由于连接方式的不同,所形成的表面也完全不同。The pixel distribution of a two-dimensional image is regular, so there is no need to record its geometric information (or position information) additionally. However, the distribution of the vertices in the mesh in three-dimensional space is random and irregular, and the way the polygons are formed requires additional recording. Therefore, for a three-dimensional mesh, it is necessary not only to record the position of the vertices in the mesh in space, but also to record the connection information of the polygons in the mesh in order to fully express a mesh image. As shown in Figure 2, the same number of vertices and vertex positions, due to different connection methods, form completely different surfaces.
除了以上信息之外,由于三维网格图像通常采用已有的二维图像/视频编码方式进行编码,因此需 要将三维网格图像进行从三维空间到二维空间的转化。三维网格编码通常采用UV坐标定义这一转化过程。In addition to the above information, since 3D grid images are usually encoded using existing 2D image/video encoding methods, To transform the 3D grid image from 3D space to 2D space, 3D grid encoding usually uses UV coordinates to define this transformation process.
与二维图像类似,每一个顶点可能会有对应的属性信息。属性信息通常为RGB颜色值,以反映物体的色彩。对于三维网格图像来说,每一个顶点所对应的属性信息除了颜色以外,还有比较常见的是反射率(reflectance)值,反射率值反映物体的表面材质。三维网格图像的属性信息可以通过二维图像进行存储,其从二维到三维的映射由UV坐标规定。Similar to two-dimensional images, each vertex may have corresponding attribute information. Attribute information is usually RGB color value to reflect the color of the object. For three-dimensional mesh images, in addition to color, the attribute information corresponding to each vertex is also commonly reflectance value, which reflects the surface material of the object. The attribute information of a three-dimensional mesh image can be stored in a two-dimensional image, and its mapping from two-dimensional to three-dimensional is specified by UV coordinates.
因此,三维网格数据通常包括三维几何位置信息(x,y,z)、几何位置信息三角面片的连接关系、纹理坐标(u,v)以及纹理坐标的连接关系,以及属性图。图3A为一幅三维网格图像,图3B所示的网格数据存储格式包括三维几何位置信息、纹理坐标和连接信息,图3C为对应的属性图。Therefore, the three-dimensional mesh data usually includes three-dimensional geometric position information (x, y, z), the connection relationship of the geometric position information triangles, texture coordinates (u, v) and the connection relationship of the texture coordinates, and an attribute map. Figure 3A is a three-dimensional mesh image, and the mesh data storage format shown in Figure 3B includes three-dimensional geometric position information, texture coordinates and connection information, and Figure 3C is the corresponding attribute map.
目前的三维动态网格压缩方法有基于空间-时间的预测方法,通过消除空间和时间相关性来提高压缩效率;基于主成分分析(principal components analysis,PCA)的技术,在特征向量空间进行投影,使能量集中;基于小波的方法,支持空间可伸缩和质量可伸缩。Current 3D dynamic mesh compression methods include space-time prediction methods, which improve compression efficiency by eliminating spatial and temporal correlations; principal component analysis (PCA)-based technology, which projects in the eigenvector space to concentrate energy; and wavelet-based methods, which support spatial scalability and quality scalability.
图4为网格编码整体框架图。图5A为二维曲线预处理流程的示意图。图5B为移位系数的生成示意图。三维网格的预处理过程可类比二维曲线预处理过程。在编码端主要分为预处理(pre-processing)和编码(encoding)两部分。首先,可以通过预处理生成基础网格和移位系数。预处理流程包括:首先对原始网格(original mesh)进行下采样,生成顶点数量大幅减少的简化网格(decimated mesh),或称基础网格/基本网格(base mesh)。然后对简化网格进行细分,在简化网格的边上插入新生成的顶点,得到细分网格(subdivided mesh)或称初始网格。最后对于细分网格中的每个顶点,寻找原始网格中与其距离最近的点,并计算这两个点的移位系数(displacement value)。在经过预处理后,将简化网格和移位系数输入编码器,生成码流。FIG4 is a diagram of the overall framework of mesh coding. FIG5A is a schematic diagram of the preprocessing process of a two-dimensional curve. FIG5B is a schematic diagram of the generation of a displacement coefficient. The preprocessing process of a three-dimensional mesh can be compared to the preprocessing process of a two-dimensional curve. At the encoding end, it is mainly divided into two parts: preprocessing and encoding. First, the base mesh and displacement coefficient can be generated by preprocessing. The preprocessing process includes: first, downsampling the original mesh to generate a simplified mesh (decimated mesh) with a greatly reduced number of vertices, or a base mesh. Then, the simplified mesh is subdivided, and the newly generated vertices are inserted on the edges of the simplified mesh to obtain a subdivided mesh or an initial mesh. Finally, for each vertex in the subdivided mesh, find the point in the original mesh that is closest to it, and calculate the displacement value of the two points. After preprocessing, the simplified mesh and the displacement coefficient are input into the encoder to generate a bitstream.
V-DMC编码主要可以分为两大类:几何位置信息编码和属性信息编码。序列basketball_player的每一帧文件中包括两个文件:basketball_player_fr0001_qp12_qt12.obj和basketball_player_fr0002.png。其中,basketball_player_fr0001_qp12_qt12.obj中包含四种信息分别为:几何位置信息(x,y,z)、几何位置信息三角面片的连接关系、纹理坐标(u,v)以及纹理坐标的连接关系。basketball_player_fr0002.png代表的是当前帧的属性信息。在目前的V-DMC编码器中,几何位置信息采用DRACO以及Video Codec(AVC、HEVC或者VVC)联合编码,纹理信息编码直接利用Video Codec进行编码。因此,接下来对网格几何信息编码进行详细的介绍。V-DMC encoding can be mainly divided into two categories: geometric position information encoding and attribute information encoding. Each frame file of the sequence basketball_player includes two files: basketball_player_fr0001_qp12_qt12.obj and basketball_player_fr0002.png. Among them, basketball_player_fr0001_qp12_qt12.obj contains four types of information: geometric position information (x, y, z), the connection relationship of geometric position information triangles, texture coordinates (u, v) and the connection relationship of texture coordinates. basketball_player_fr0002.png represents the attribute information of the current frame. In the current V-DMC encoder, the geometric position information is jointly encoded by DRACO and Video Codec (AVC, HEVC or VVC), and the texture information encoding is directly encoded by Video Codec. Therefore, the mesh geometric information encoding is introduced in detail below.
几何信息可以分为:位置信息的编码(几何位置信息和纹理位置信息)与连接关系的编码(几何位置信息的三角面片连接关系、纹理位置信息的连接关系)。目前的V-DMC编码主要分为两种编码测试条件:帧内编码和帧间编码(低时延,目前没有RA的测试环境)。Geometric information can be divided into: encoding of position information (geometric position information and texture position information) and encoding of connection relationships (connection relationships of triangle patches of geometric position information and connection relationships of texture position information). The current V-DMC encoding is mainly divided into two encoding test conditions: intra-frame encoding and inter-frame encoding (low latency, currently there is no RA test environment).
帧内几何信息编码Intra-frame geometry coding
1、网格预处理1. Mesh preprocessing
a)如图5A和图5B所示,以二维曲线预处理过程为例。原始网格的连接关系中含有大量的点,在对网格几何信息编码之前,首先进行网格几何信息的量化或者简单化,最终得到对应的简化网格作为基础网格。a) As shown in Figures 5A and 5B, the two-dimensional curve preprocessing process is taken as an example. The connection relationship of the original grid contains a large number of points. Before encoding the grid geometry information, the grid geometry information is first quantized or simplified, and finally the corresponding simplified grid is obtained as the basic grid.
b)如图6A和图6B所示,基于三角面片坐标进行网格的量化处理。按照量化点之间的连接关系,将量化处理划分为以下两种情况:b) As shown in FIG6A and FIG6B , the quantization processing of the grid is performed based on the coordinates of the triangular patch. According to the connection relationship between the quantization points, the quantization processing is divided into the following two cases:
当两个顶点量化之前属于一条边的两个顶点,则量化之后,需要将两个顶点连接的三角面片全部连接在一起。如图6A所示,这种量化处理方式涉及到之前三角面片的消失化。如果两个顶点不属于一条边上的两个顶点,那么量化之后,仅仅需要将两个顶点的边界进行合并即可。如图6B所示,这种量化处理方式对三角面片的数量不产生影响。When two vertices belong to one edge before quantization, after quantization, all the triangles connected to the two vertices need to be connected together. As shown in FIG6A , this quantization processing method involves the disappearance of the previous triangles. If the two vertices do not belong to one edge, after quantization, only the boundaries of the two vertices need to be merged. As shown in FIG6B , this quantization processing method has no effect on the number of triangles.
c)基于三角面片坐标进行网格量化处理的整个过程中,最为核心的问题在于如何根据之前的顶点坐标得到最佳的顶点。目前的V-DMC中会在以下四种模式当中选择最佳的量化点。假设量化之前的顶点分布为V1和V2,量化之后的顶点坐标为V’,则存在以下量化点:V1、V2、(V1+V2)/2以及Q- 1(V1+V2),其中Q为V1和V2顶点坐标对应的量化矩阵。最终基于量化前后的失真测度D来选取最佳的量化点。c) In the whole process of mesh quantization based on triangle patch coordinates, the core issue is how to get the best vertex based on the previous vertex coordinates. The current V-DMC will select the best quantization point from the following four modes. Assuming that the vertex distribution before quantization is V1 and V2, and the vertex coordinates after quantization are V', there are the following quantization points: V1, V2, (V1+V2)/2 and Q - 1 (V1+V2), where Q is the quantization matrix corresponding to the vertex coordinates of V1 and V2. Finally, the best quantization point is selected based on the distortion measure D before and after quantization.
2.基础网格编码2. Basic Grid Coding
a)在得到基础网格之后,会利用DRACO编码器来对基础网格的几何信息进行编码。其中,几何信息主要包括:几何位置信息与几何位置信息的连接关系。整个DRACO编码的流程按照:首先完成连接关系的编码,其次基于几何位置的连接关系对点的几何位置信息进行编码,最后基于连接关系、几何位置信息来对纹理位置信息进行编码。a) After obtaining the base mesh, the DRACO encoder is used to encode the geometric information of the base mesh. The geometric information mainly includes: the connection relationship between the geometric position information and the geometric position information. The entire DRACO encoding process is as follows: first complete the encoding of the connection relationship, then encode the geometric position information of the point based on the connection relationship of the geometric position, and finally encode the texture position information based on the connection relationship and geometric position information.
b)连接关系的编码。DRACO对网格的连接关系编码采用的是“EdgebreakerCoding”方案。具体 的,如图7A所示:b) Coding of connection relations. DRACO uses the "Edgebreaker Coding" scheme to encode the connection relations of the grid. As shown in Figure 7A:
在对网格的连接关系编码之前,将mesh的顶点划分为五种类型,CLRSE,其中每个符号表示的含义如下:Before encoding the connection relationship of the mesh, the vertices of the mesh are divided into five types, CLRSE, where each symbol means the following:
i.C:与当前顶点连接的三角面片没有一个完成编码;i.C: None of the triangles connected to the current vertex have been encoded;
ii.L:与当前顶点连接的左边的三角面片完成编码;ii.L: The left triangle connected to the current vertex completes the encoding;
iii.R:与当前顶点连接的右边的三角面片完成编码;iii.R: The right triangle connected to the current vertex completes the encoding;
iv.S:与当前顶点连接的左边和右边的三角面片都没有完成编码;iv.S: The left and right triangles connected to the current vertex have not been encoded;
v.E:与当前顶点连接的左边和右边的三角面片都已经完成编码。v.E: The left and right triangles connected to the current vertex have been encoded.
最终按照一定的顺序,对每个顶点的类型以及顶点的处理顺序进行编码,解码端按照顶点的处理顺序以及顶点的类型来恢复网格的几何连接关系。Finally, the type of each vertex and the processing order of the vertices are encoded in a certain order, and the decoding end restores the geometric connection relationship of the mesh according to the processing order and type of the vertices.
c)几何位置信息的编码。在完成顶点连接关系的编码之后,基于顶点的连接关系来对每个顶点的几何位置信息进行预测编码。预测编码采用的思想是“平行四边形算法(Parallelograms algorithm)”,具体的如图7B所示:c) Coding of geometric position information. After completing the coding of the vertex connection relationship, the geometric position information of each vertex is predictively coded based on the vertex connection relationship. The idea adopted in predictive coding is the "Parallelograms algorithm", as shown in Figure 7B:
利用与当前待编码点相邻的三个顶点:左边(left)顶点、右边(right)顶点以及对端(opposite)顶点简单的线性拟合:
predpos=(left+right)-oppositeA simple linear fit is performed using the three vertices adjacent to the current point to be encoded: the left vertex, the right vertex, and the opposite vertex:
pred pos =(left+right)-opposite
d)在完成点连接关系以及几何位置信息之后,基于这两者解码重建的基础,来对纹理坐标进行预测编码,具体如图7C所示。同样的,假设当前顶点为C,根据点的连接关系可以得到当前点的Left和Right顶点,其次利用left和right顶点的纹理坐标来对当前顶点C的纹理坐标进行预测编码。d) After completing the point connection relationship and geometric position information, the texture coordinates are predicted and encoded based on the decoding and reconstruction of the two, as shown in Figure 7C. Similarly, assuming that the current vertex is C, the Left and Right vertices of the current point can be obtained according to the point connection relationship, and then the texture coordinates of the left and right vertices are used to predict the texture coordinates of the current vertex C.
3.Displacement编码3. Displacement encoding
a)首先,在完成Base mesh的编码重建之后,会利用一定的划分算法,来对Base mesh进行划分得到初始重建mesh,具体的可以参考如图5A中的细分网格对应的曲线,简化网格对应的曲线可以利用简单的线性插值,得到细分网格对应的曲线。其中新插入的点坐标根据当前边界上的两个顶点进行线性插值得到:
a) First, after the encoding and reconstruction of the base mesh is completed, a certain partitioning algorithm will be used to partition the base mesh to obtain the initial reconstructed mesh. For details, please refer to the curve corresponding to the subdivided mesh in Figure 5A. The curve corresponding to the simplified mesh can be obtained by simple linear interpolation. The coordinates of the newly inserted point are obtained by linear interpolation based on the two vertices on the current boundary:
b)其次,计算划分之后的细分mesh与原始mesh之间点的误差Delta,误差Delta可以是一种世界坐标系下点的误差。最终,利用每个点之间的误差Delta以及每个点的法向量Norm计算得到每个点的Displacement值,具体的如图8A所示。b) Secondly, the error Delta between the points of the subdivided mesh and the original mesh is calculated. The error Delta can be a point error in the world coordinate system. Finally, the Displacement value of each point is calculated using the error Delta between each point and the normal vector Norm of each point, as shown in Figure 8A.
具体的计算方式如下:
Displacement=Delta×NormThe specific calculation method is as follows:
Displacement = Delta × Norm
c)在计算得到每个点的Displacement之后,可以利用提升小波变换(Lifting Transform)来将空域残差系数变换到频域,得到对应的频域残差系数。c) After calculating the Displacement of each point, the lifting wavelet transform can be used to transform the spatial domain residual coefficients to the frequency domain to obtain the corresponding frequency domain residual coefficients.
d)最终,会利用Packing算法将每个点的频域残差系数按照一定顺序映射到二维的图像当中,目前的V-DMC按照莫顿码的顺序进行排列,具体的如图8B所示。d) Finally, the Packing algorithm is used to map the frequency domain residual coefficients of each point into a two-dimensional image in a certain order. The current V-DMC is arranged in the order of the Morton code, as shown in FIG8B .
e)最终可以利用传统的Video Codec来对二维图像进行编码。e) Finally, the traditional Video Codec can be used to encode the two-dimensional image.
4.重着色4. Recoloring
重着色属于编码端的算法,当完成编码端几何信息的重建之后。利用原始的几何信息、原始的纹理属性信息以及重建的mesh几何信息,来对重建之后的mesh的纹理属性信息进行重着色。Recoloring is an algorithm on the encoder side. After the reconstruction of the geometric information on the encoder side is completed, the texture attribute information of the reconstructed mesh is recolored using the original geometric information, the original texture attribute information, and the reconstructed mesh geometric information.
帧间几何信息编码Inter-frame geometry information coding
a)类似帧内几何信息编码,包括几何连接关系以及几何位置信息编码。但是这里需要注意的是,帧间的几何位置信息编码,仅仅需要编码当前Base mesh的几何位置信息(x,y,z),不需要编码连接关系以及纹理位置信息(u,v),具体的原因如下:如果当前帧可以采用帧间编码,那么在编码端会利用当前帧的参考帧的Base mesh来得到当前帧的mesh信息,因此当前帧和参考帧拥有相同的链接关系以及uv纹理坐标,唯有几何位置信息不相同。a) Similar to intra-frame geometric information coding, including geometric connection relationship and geometric position information coding. However, it should be noted that the inter-frame geometric position information coding only needs to encode the geometric position information (x, y, z) of the current Base mesh, and does not need to encode the connection relationship and texture position information (u, v). The specific reasons are as follows: If the current frame can be inter-frame coded, then the Base mesh of the reference frame of the current frame will be used at the encoding end to obtain the mesh information of the current frame. Therefore, the current frame and the reference frame have the same connection relationship and uv texture coordinates, but the geometric position information is different.
b)基于a)我们可以知道,当前帧和参考帧只有几何位置信息存在误差,因此当前的V-DMC对当前帧的几何位置信息进行预测编码。b) Based on a), we know that there is only an error in the geometric position information between the current frame and the reference frame, so the current V-DMC predicts and encodes the geometric position information of the current frame.
具体如图9所示,中间黑色顶点为待编码/解码的顶点,利用当前点在参考帧得到对应的预测点(类似视频编码当中的同位块),其次利用当前点的邻域点(已经完成编码顶点的MV)来对当前点的MV进行预测编码。具体的如下所示,假设当前点的坐标为pos,对应的同位点的坐标为Pred_pos,则当前点的MV计算为:
MV=Pos-Predpos
As shown in Figure 9, the black vertex in the middle is the vertex to be encoded/decoded. The current point is used in the reference frame to obtain the corresponding prediction point (similar to the same-position block in video encoding). Then, the neighborhood point of the current point (the MV of the vertices that have been encoded) is used to predict the MV of the current point. As shown below, assuming that the coordinates of the current point are pos and the coordinates of the corresponding same-position point are Pred_pos, the MV of the current point is calculated as:
MV=Pos-Pred pos
在当前的V-DMC存在了两种预测编码模式:There are two prediction coding modes in the current V-DMC:
i.对当前点的MV直接进行编码i. Directly encode the MV of the current point
ii.对当前点的MV利用邻域进行预测编码ii. Use the neighborhood to predict the MV of the current point
在编码端利用率失真优化算法得到每个编码组(coding group,CG)的最佳编码模式,当前的V-DMC设定每个CG的点数最多为16个。At the encoding end, the rate-distortion optimization algorithm is used to obtain the optimal coding mode for each coding group (CG). The current V-DMC sets the maximum number of points for each CG to 16.
纹理属性信息的编码:目前的V-DMC对纹理属性信息编码直接利用Video-Codec进行编码,例如:AVC、HEVC、VVC或者VV-Enc。Coding of texture attribute information: The current V-DMC encodes texture attribute information directly using Video-Codec, such as AVC, HEVC, VVC or VV-Enc.
图10A为帧内编码的示意图,如图10A所示,在帧内编码器中,可以采用常见的静态网格编码器(Static Mesh Encoder)对简化网格进行编码,生成对应的码流(compressed base mesh bitstream)。接下来,用重构的简化网格更新移位系数(update displacement)。对更新后的移位系数进行小波变换(wavelet transform)和量化(quantization)后得到移位系数。并进行图像打包(image packing)后采用高效率视频编码(high efficiency video coding,HEVC)进行编码,生成移位系数的码流(compressed displacements bitstream)。对于属性图(attribute map)编码,首先根据重构的几何信息与原始几何信息间的差异对特征图进行变换(texture transfer),然后将其进行填补(padding)、颜色空间转换(color space conversion)后用视频编码器(video coding)编码形成属性码流(compressed attribute bitstream)。FIG10A is a schematic diagram of intra-frame coding. As shown in FIG10A , in the intra-frame encoder, a common static mesh encoder (Static Mesh Encoder) can be used to encode the simplified mesh to generate the corresponding bitstream (compressed base mesh bitstream). Next, the displacement coefficient is updated (update displacement) using the reconstructed simplified mesh. The updated displacement coefficient is subjected to wavelet transform (wavelet transform) and quantization (quantization) to obtain the displacement coefficient. After image packing (image packing), high efficiency video coding (HEVC) is used for encoding to generate a bitstream (compressed displacements bitstream) of the displacement coefficient. For attribute map encoding, the feature map is first transformed (texture transfer) according to the difference between the reconstructed geometric information and the original geometric information, and then padded (padding) and color space conversion (color space conversion) are performed, and then encoded using a video encoder (video coding) to form a compressed attribute bitstream.
图10B为帧间编码的示意图,如图10B所示,帧间编码器与帧内编码器流程大致相同,但帧间编码器并不直接对简化网格进行编码,而是编码当前帧的简化网格与参考帧的简化网格间的运动矢量(motion encoder),并生成相应的运动矢量的码流(compressed motion bitstream)。Figure 10B is a schematic diagram of inter-frame coding. As shown in Figure 10B, the inter-frame encoder and intra-frame encoder processes are roughly the same, but the inter-frame encoder does not directly encode the simplified grid, but encodes the motion vector between the simplified grid of the current frame and the simplified grid of the reference frame (motion encoder), and generates the corresponding motion vector bitstream (compressed motion bitstream).
MPEG DMC的通用测试条件Common test conditions for MPEG DMC
1)MPEG DMC的测试条件共2种:1) There are two test conditions for MPEG DMC:
条件1:all intra几何有损、属性有损;Condition 1: all intra geometry lossy, attributes lossy;
条件2:random access几何有损、属性有损;Condition 2: random access is lossy in geometry and attributes;
2)通用测试序列包括Cat1-A,Cat1-B和Cat1-C共五类,均包含几何和颜色属性信息。2) The general test sequences include five categories: Cat1-A, Cat1-B and Cat1-C, all of which contain geometric and color attribute information.
接下来对V-DMC的Displacement编码进行更为详细的介绍。Next, the Displacement coding of V-DMC is introduced in more detail.
编码端算法:Encoding algorithm:
在编码端,首先会按照一定的算法对基础网格进行迭代划分,得到细分网格中点的几何位置信息。具体的划分算法和背景介绍一致,即利用每个边界上的顶点进行线性插值,得到细分网格中点的几何位置信息。假设整个划分迭代了N次,则该N次迭代划分过程可以进行LOD划分,从而得到多个层级,如图11所示。At the encoding end, the basic grid is first iteratively divided according to a certain algorithm to obtain the geometric position information of the points in the subdivided grid. The specific division algorithm is consistent with the background introduction, that is, linear interpolation is performed using the vertices on each boundary to obtain the geometric position information of the points in the subdivided grid. Assuming that the entire division is iterated N times, the N iterative division process can be LOD divided to obtain multiple levels, as shown in Figure 11.
在得到细分网格中点的几何位置信息之后,可以利用细分网格中点的几何位置信息与原始网格中点的几何位置信息进行误差计算,得到细分网格中点的移位系数。移位系数的LOD层次结构如图12所示。After obtaining the geometric position information of the midpoint of the subdivided grid, the geometric position information of the midpoint of the subdivided grid and the geometric position information of the midpoint of the original grid can be used to perform error calculation to obtain the shift coefficient of the midpoint of the subdivided grid. The LOD hierarchy of the shift coefficient is shown in FIG12.
其次,基于LOD空间结构进行提升变换(lifting transform)。提升变换包括预测和更新两个步骤,其中的预测算法如下:
Secondly, a lifting transform is performed based on the LOD spatial structure. The lifting transform includes two steps: prediction and update. The prediction algorithm is as follows:
更新算法如下:
The update algorithm is as follows:
最终对变换之后的系数进行量化,并且对量化之后的系数进行系数重组,如图13所示。Finally, the transformed coefficients are quantized, and the quantized coefficients are reorganized, as shown in FIG13 .
如图14所示,V-DMC可以基于块(block)进行系数重组,每个块的大小例如可以为16×16。对每个块内部的系数可以按照莫顿码进行排列得到对应的二维图像。在完成上述操作之后,可以利用Video-Codec来对二维图像进行编码。As shown in FIG14 , V-DMC can reorganize coefficients based on blocks, and the size of each block can be, for example, 16×16. The coefficients within each block can be arranged according to the Morton code to obtain the corresponding two-dimensional image. After completing the above operations, the two-dimensional image can be encoded using Video-Codec.
解码端算法:Decoding algorithm:
首先,利用Video-Codec来对二维图像进行解码重建恢复,得到对应的二维图像。其次,按照系数重组的方式,恢复得到每个点对应的变换系数。最终利用提升变换的反变换恢复得到每个点的移位系数,在得到每个点的移位系数之后,如图15所示,可以利用基础网格的几何位置信息与移位系数重建恢复得到当前网格对应的几何位置信息。First, use Video-Codec to decode and reconstruct the two-dimensional image to obtain the corresponding two-dimensional image. Secondly, restore the transform coefficient corresponding to each point by coefficient reorganization. Finally, use the inverse transform of the lifting transform to restore the shift coefficient of each point. After obtaining the shift coefficient of each point, as shown in Figure 15, the geometric position information of the basic grid and the shift coefficient can be used to reconstruct and restore the geometric position information corresponding to the current grid.
前文详细描述了三维网格中的点的几何信息的编解码过程。如何提升几何信息的编解码效率,是本申请需要解决的技术问题。经过研究发现,三维网格中的不同点的重要程度可能是存在差异的。不同点之间的重要程度的差异可以体现在不同点的连接关系不同,或者不同点的邻域点数量不同。相关技术在对三维网格中的点的移位系数进行编解码时,并未充分考虑不同点在重要程度上的差异,从而限制了几 何信息的编解码效率。The previous article describes in detail the encoding and decoding process of the geometric information of points in a three-dimensional grid. How to improve the encoding and decoding efficiency of geometric information is a technical problem that this application needs to solve. After research, it was found that the importance of different points in a three-dimensional grid may be different. The difference in importance between different points can be reflected in the different connection relationships between different points, or the different number of neighborhood points of different points. When encoding and decoding the shift coefficients of points in a three-dimensional grid, the related technology did not fully consider the difference in importance of different points, thereby limiting the efficiency of several The encoding and decoding efficiency of any information.
例如,相关技术提供的V-DMC中,首先对基础网格进行划分,确定细分网格的几何信息;接着,计算三维网格的原始几何信息与细分网格的几何信息之间的差异,确定三维网格中的点的移位系数;然后,利用提升变换,将移位系数从空域变换至频域,从而完成V-DMC的几何信息的编码。相关技术提供的提升变换方案包括预测和变换(或称更新)两个过程。其中,预测方案是利用与当前点共线的两个邻域点进行均值预测,变换方案则利用当前点的邻域点集(基于当前点进行预测的点)的残差系数来对当前点的移位系数进行更新。基于这样的编码方案,通过预测方案去除相邻点之间的空域冗余,并通过变换方案进一步去除相邻点之间的频域冗余,在一定程度上可以提升三维网格的几何信息的编码效率。但是,相关技术提供的预测方案中,预测权重采用的是固定的0.5,更新权重通常采用的是固定的0.125(通过自适应参数集(adaptation parameter set,aps)中的语法元素进行指示)。采用固定的权重进行预测和/或变换,并未充分考虑不同点之间的重要程度之间的差异,从而限制了V-DMC的几何信息的编码效率。For example, in the V-DMC provided by the related art, the basic grid is first divided to determine the geometric information of the subdivided grid; then, the difference between the original geometric information of the three-dimensional grid and the geometric information of the subdivided grid is calculated to determine the shift coefficients of the points in the three-dimensional grid; then, the lifting transform is used to transform the shift coefficients from the spatial domain to the frequency domain, thereby completing the encoding of the geometric information of the V-DMC. The lifting transform scheme provided by the related art includes two processes: prediction and transformation (or update). Among them, the prediction scheme uses two neighboring points that are collinear with the current point for mean prediction, and the transformation scheme uses the residual coefficients of the neighboring point set of the current point (the points predicted based on the current point) to update the shift coefficient of the current point. Based on such a coding scheme, the spatial redundancy between adjacent points is removed by the prediction scheme, and the frequency domain redundancy between adjacent points is further removed by the transformation scheme, which can improve the coding efficiency of the geometric information of the three-dimensional grid to a certain extent. However, in the prediction scheme provided by the related art, the prediction weight is fixed at 0.5, and the update weight is usually fixed at 0.125 (indicated by the syntax element in the adaptation parameter set (aps)). The use of fixed weights for prediction and/or transformation does not fully consider the differences in importance between different points, thereby limiting the coding efficiency of the geometric information of V-DMC.
网格中的不同点与周围点之间的连接关系可能是不同的,因此,同一点的邻域点的数量也可能是不同的。两个点的邻域点的数量不同,则基于该两个点进行预测的点的数量就可能不同,因此该两个点在网格中的重要程度就可能存在差异。以图16为例,与点1共线的邻域点的数量为6,表示该6个点的移位系数均基于点1的移位系数进行了预测,因此可以利用该6个点的残差系数来对点1的移位系数进行更新。同理,与点2共线的邻域点的数量为5,表示该5个点的移位系数均基于点2的移位系数进行了预测,因此可以利用该5个点的残差系数来对点1的移位系数进行更新。通过对比点1和点2可以看出,二者在网格中的重要程度是不同的,如果采用固定的预测权重和/或更新权重,则并不合理。因此,本申请实施例引入点对应的权重,并基于点对应的权重进行预测和/或更新(可以在预测过程引入点对应的权重,也可以在更新过程引入点对应的权重,或者在预测和更新过程均引入点对应的权重)。基于点对应的权重进行预测和/或更新,有助于提升V-DMC的几何信息的编码效率。The connection relationship between different points in the grid and the surrounding points may be different, so the number of neighborhood points of the same point may also be different. If the number of neighborhood points of two points is different, the number of points predicted based on the two points may be different, so the importance of the two points in the grid may be different. Taking Figure 16 as an example, the number of neighborhood points collinear with point 1 is 6, indicating that the shift coefficients of the 6 points are predicted based on the shift coefficient of point 1, so the residual coefficients of the 6 points can be used to update the shift coefficient of point 1. Similarly, the number of neighborhood points collinear with point 2 is 5, indicating that the shift coefficients of the 5 points are predicted based on the shift coefficient of point 2, so the residual coefficients of the 5 points can be used to update the shift coefficient of point 1. By comparing point 1 and point 2, it can be seen that the importance of the two in the grid is different. If a fixed prediction weight and/or update weight is used, it is not reasonable. Therefore, the embodiment of the present application introduces the weight corresponding to the point, and predicts and/or updates based on the weight corresponding to the point (the weight corresponding to the point can be introduced in the prediction process, the weight corresponding to the point can also be introduced in the update process, or the weight corresponding to the point can be introduced in both the prediction and update processes). Predicting and/or updating based on the weight corresponding to the point helps to improve the coding efficiency of the geometric information of V-DMC.
上文描述的是移位系数的预测和/或变换过程中存在的问题以及可能的改进方式。下文描述移位系数的量化过程存在的问题以及可能的改进方式。The above describes the problems existing in the prediction and/or transformation process of the shift coefficients and possible improvements. The following describes the problems existing in the quantization process of the shift coefficients and possible improvements.
相关技术提供的V-DMC编码方案在对每个点的移位系数进行变换之后,需要对变换系数进行量化处理。V-DMC基于LOD的空间结构进行逐层量化处理。如图17所示,每一层的量化参数QPLvl可以通过如下方式计算得到:
QPLvl=liftingQP×ScaleLvl-1
The V-DMC coding scheme provided by the related art needs to quantize the transformation coefficients after transforming the shift coefficients of each point. V-DMC performs layer-by-layer quantization based on the spatial structure of LOD. As shown in Figure 17, the quantization parameter QP Lvl of each layer can be calculated as follows:
QP Lvl =liftingQP×Scale Lvl-1
其中,Lvl代表每一层LOD的索引,liftingQP为初始量化参数,Scale为每一层LOD基于liftingQP的调整参数。Among them, Lvl represents the index of each layer of LOD, liftingQP is the initial quantization parameter, and Scale is the adjustment parameter of each layer of LOD based on liftingQP.
在得到每一层的量化参数之后,可以采用如下方式来对每个点的移位系数进行自适应量化:
After obtaining the quantization parameters of each layer, the shift coefficients of each point can be adaptively quantized in the following way:
其中,bitDepth代表当前几何编码中,移位系数的有效比特深度,Res代表当前待编码点的变换系数,QPLvl代表当前LOD层的量化参数。Among them, bitDepth represents the effective bit depth of the shift coefficient in the current geometric coding, Res represents the transform coefficient of the current point to be encoded, and QP Lvl represents the quantization parameter of the current LOD layer.
在解码端,通过熵解码解析恢复得到每个点的量化系数,并基于编码端同样的方式得到每个LOD层的量化参数QPLvl。基于量化参数来对当前点的移位系数进行反量化,具体计算方式如下:
At the decoding end, the quantization coefficient of each point is recovered by entropy decoding and parsing, and the quantization parameter QP Lvl of each LOD layer is obtained in the same way as the encoding end. The shift coefficient of the current point is dequantized based on the quantization parameter. The specific calculation method is as follows:
综上所述,利用初始量化参数liftingQP以及不同LOD层的量化调整参数Scale来得到不同LOD层的量化参数QPLvl,在一定程度上可以提升三维网格的几何信息的编码效率。这是因为,移位系数采用基于LOD空间结构的提升变换进行自适应变换编码,导致LOD高层的移位系数为低频系数,而LOD低层的移位系数为高频系数。因此,基于上述量化方案,可以对LOD不同层实现自适应量化编码。但是,对于同一层的点而言,由于每个点的空间连接关系不一致,因此每个点在提升变换过程中的重要程度会不一致。但是,上述量化编码方案并未充分考虑这一点,从而在一定程度上限制了三维网格的几何信息的编解码效率。In summary, the quantization parameter QP Lvl of different LOD layers is obtained by using the initial quantization parameter liftingQP and the quantization adjustment parameter Scale of different LOD layers, which can improve the coding efficiency of the geometric information of the three-dimensional grid to a certain extent. This is because the shift coefficient is adaptively transformed and encoded using the lifting transformation based on the LOD spatial structure, resulting in the shift coefficient of the LOD high layer being a low-frequency coefficient, while the shift coefficient of the LOD low layer is a high-frequency coefficient. Therefore, based on the above quantization scheme, adaptive quantization coding can be implemented for different LOD layers. However, for points on the same layer, since the spatial connection relationship of each point is inconsistent, the importance of each point in the lifting transformation process will be inconsistent. However, the above quantization coding scheme does not fully take this into account, thereby limiting the coding and decoding efficiency of the geometric information of the three-dimensional grid to a certain extent.
参见图18,P1、P2和P3三个点处于同一层LOD,P1的邻域点集(即基于P1进行预测的点)包括6个邻域点,P2的邻域点集(即基于P2进行预测的点)包括6个邻域点,P3的邻域点集(即基于P3进行预测的点)仅包括5个邻域点。那么对于这三个点,重要程度依次为P1=P2>P3。重要程度越高,表示该点的移位系数对于整个网格的重建质量的影响程度越高。因此,在对重要程度高的移位系数进行量化时,可以尽量降低该移位系数的量化程度(即减小量化参数QP);而在对重要程度低的移位系数进行量化时,可以适当提升量化程度(即增大量化参数QP)。这样可以保证最终的重建质量,并且可以提升几何信息的编码码率。基于这样的量化编码方案,充分考虑了不同点的重要程度,从而可以提升 V-DMC的几何信息的编解码效率。Referring to Figure 18, the three points P1, P2 and P3 are at the same level LOD, the neighborhood point set of P1 (i.e., the points predicted based on P1) includes 6 neighborhood points, the neighborhood point set of P2 (i.e., the points predicted based on P2) includes 6 neighborhood points, and the neighborhood point set of P3 (i.e., the points predicted based on P3) includes only 5 neighborhood points. Then for these three points, the importance is P1=P2>P3. The higher the importance, the greater the influence of the shift coefficient of the point on the reconstruction quality of the entire grid. Therefore, when quantizing the shift coefficients with high importance, the quantization degree of the shift coefficient can be reduced as much as possible (i.e., reducing the quantization parameter QP); and when quantizing the shift coefficients with low importance, the quantization degree can be appropriately increased (i.e., increasing the quantization parameter QP). In this way, the final reconstruction quality can be guaranteed, and the encoding bit rate of geometric information can be improved. Based on such a quantization coding scheme, the importance of different points is fully considered, so that the quality of the reconstruction can be improved. Coding and decoding efficiency of geometric information of V-DMC.
下文结合图19,先从解码端的角度对本申请实施例在解码流程中的实现方式进行详细地举例说明。The following text, in conjunction with Figure 19, first describes in detail the implementation method of the embodiment of the present application in the decoding process from the perspective of the decoding end.
图19为本申请实施例提供的解码方法的流程图。图19的方法可以由解码器执行。该解码器可以是支持V-DMC的解码器。Figure 19 is a flowchart of a decoding method provided in an embodiment of the present application. The method of Figure 19 may be executed by a decoder. The decoder may be a decoder supporting V-DMC.
参见图19,在步骤S1910,解析码流,确定三维网格中的点的量化系数。应理解,本申请实施例提及的点的量化系数指的是点的移位系数对应的量化系数。19, in step S1910, the code stream is parsed to determine the quantization coefficients of the points in the three-dimensional grid. It should be understood that the quantization coefficients of the points mentioned in the embodiments of the present application refer to the quantization coefficients corresponding to the shift coefficients of the points.
在步骤S1920,对三维网格中的点的量化系数进行反量化,确定三维网格中的点的反量化系数。In step S1920, the quantization coefficients of the points in the three-dimensional grid are dequantized to determine the dequantization coefficients of the points in the three-dimensional grid.
在步骤S1930,对第一层中的点的反量化系数进行反变换,确定第一层中的点的移位系数。三维网格中的点属于多个LOD层,步骤S1930提到的第一层可以是该多个LOD层中的任意一个LOD层。In step S1930, the inverse quantization coefficients of the points in the first layer are inversely transformed to determine the shift coefficients of the points in the first layer. The points in the three-dimensional grid belong to multiple LOD layers, and the first layer mentioned in step S1930 can be any LOD layer among the multiple LOD layers.
在步骤S1940,根据第一层中的点的移位系数,对第二层中的点的移位系数进行预测。第二层为多个LOD层中的与第一层相邻的LOD层,且第二层为第一层的下一层。步骤S1930和步骤S1940可以属于提升变换的反变换的两个子过程。In step S1940, the shift coefficients of the points in the second layer are predicted according to the shift coefficients of the points in the first layer. The second layer is an LOD layer adjacent to the first layer among the multiple LOD layers, and the second layer is a layer below the first layer. Steps S1930 and S1940 may belong to two sub-processes of the inverse transformation of the lifting transformation.
图19是以第一层和第二层的解码过程为例进行说明的。多个LOD层中的每个LOD层均可以按照类似的方式进行处理,从而得到三维网格中的点的移位系数。然后,可以基于三维网格中的点的移位系数和细分网格(或称初始重建网格)中的点的几何信息(细分网格的几何信息也可称为三维网格的初始几何信息),确定三维网格中的点的重建几何信息。例如,可以根据三维网格中的点的移位系数,对细分网格中的对应点的几何信息进行移位操作,从而确定三维网格中的点的重建几何信息。细分网格中的点的几何信息可以基于对基础网格的划分得到。例如,可以先解析码流,确定基础网格中的点的几何信息;然后,可以根据基础网格中的点的几何信息,对基础网格进行划分,确定细分网格中的点的几何信息。FIG. 19 illustrates the decoding process of the first layer and the second layer as an example. Each LOD layer in the multiple LOD layers can be processed in a similar manner to obtain the shift coefficients of the points in the three-dimensional grid. Then, the reconstructed geometric information of the points in the three-dimensional grid can be determined based on the shift coefficients of the points in the three-dimensional grid and the geometric information of the points in the subdivided grid (or the initial reconstructed grid) (the geometric information of the subdivided grid can also be called the initial geometric information of the three-dimensional grid). For example, according to the shift coefficients of the points in the three-dimensional grid, the geometric information of the corresponding points in the subdivided grid can be shifted to determine the reconstructed geometric information of the points in the three-dimensional grid. The geometric information of the points in the subdivided grid can be obtained based on the division of the basic grid. For example, the code stream can be parsed first to determine the geometric information of the points in the basic grid; then, according to the geometric information of the points in the basic grid, the basic grid can be divided to determine the geometric information of the points in the subdivided grid.
根据图19可知,完整的解码操作包括反量化操作、反变换操作、预测操作等。为了提升三维网格的几何信息的解码效率,可以基于三维网格中的点对应的权重(或点的空间连接关系)对反量化操作、反变换操作、预测操作中的一个或多个进行优化。下面分别从反量化操作、反变换操作、预测操作三个角度,对本申请实施例提供的实现方式进行举例说明。应理解,本申请实施例可以仅对反量化、反变换、预测中的一个进行优化;或者,本申请实施例可以对反量化、反变换、预测中的任意两个进行优化,从而进一步提升三维网格的几何信息的解码效率;或者,本申请实施例可以同时对反量化、反变换、预测三者进行优化,从而进一步提升三维网格的几何信息的解码效率。According to Figure 19, the complete decoding operation includes inverse quantization operation, inverse transformation operation, prediction operation, etc. In order to improve the decoding efficiency of the geometric information of the three-dimensional grid, one or more of the inverse quantization operation, inverse transformation operation, and prediction operation can be optimized based on the weights corresponding to the points in the three-dimensional grid (or the spatial connection relationship of the points). The following examples illustrate the implementation methods provided in the embodiments of the present application from the three perspectives of inverse quantization operation, inverse transformation operation, and prediction operation. It should be understood that the embodiments of the present application can optimize only one of inverse quantization, inverse transformation, and prediction; or, the embodiments of the present application can optimize any two of inverse quantization, inverse transformation, and prediction, thereby further improving the decoding efficiency of the geometric information of the three-dimensional grid; or, the embodiments of the present application can optimize inverse quantization, inverse transformation, and prediction at the same time, thereby further improving the decoding efficiency of the geometric information of the three-dimensional grid.
为了便于理解,下文站在第一待解码点的角度对三维网格中的点的反变换操作进行描述。第一待解码点可以是第一层中的任意一个待解码点。第一待解码点的邻域点称为第一邻域点。第一邻域点可以是第一待解码点所在LOD层的下一层中的点。作为一个示例,第一邻域点为基于第一待解码点进行预测的点。For ease of understanding, the inverse transformation operation of the points in the three-dimensional grid is described below from the perspective of the first point to be decoded. The first point to be decoded may be any point to be decoded in the first layer. The neighborhood point of the first point to be decoded is called the first neighborhood point. The first neighborhood point may be a point in the next layer of the LOD layer where the first point to be decoded is located. As an example, the first neighborhood point is a point predicted based on the first point to be decoded.
图19中的步骤S1930,即对第一层中的点的反量化系数进行反变换可以包括:根据第一邻域点的反量化系数以及更新权重,对第一层中的第一待解码点的反量化系数进行反变换。相关技术中,更新权重采用的是固定值(即0.125)。不同于相关技术,本申请实施例中,更新权重基于第一邻域点对应的权重确定。更新权重基于邻域点对应的权重确定,可以使得重要程度更高的点对待解码点的反变换结果影响更大,这样会使得更新结果更加准确,有助于提升三维网格中的点的几何信息的解码效率。Step S1930 in Figure 19, i.e., inversely transforming the inverse quantization coefficients of the points in the first layer, may include: inversely transforming the inverse quantization coefficients of the first point to be decoded in the first layer according to the inverse quantization coefficients of the first neighborhood points and the updated weights. In the related art, the updated weights use a fixed value (i.e., 0.125). Different from the related art, in the embodiment of the present application, the updated weights are determined based on the weights corresponding to the first neighborhood points. The updated weights are determined based on the weights corresponding to the neighborhood points, so that the points with higher importance have a greater impact on the inverse transformation results of the points to be decoded, which makes the updated results more accurate and helps to improve the decoding efficiency of the geometric information of the points in the three-dimensional grid.
第一邻域点对应的权重可以基于第一邻域点在三维网格中的空间连接关系确定。例如,第一邻域点对应的权重可以与第一邻域点的邻域点(下称第二邻域点)的数量相关。基于邻域点的数量确定点对应的权重,充分利用了点在三维网格中的连接关系信息,从而使得确定出的点的权重更加合理。The weight corresponding to the first neighborhood point can be determined based on the spatial connection relationship of the first neighborhood point in the three-dimensional grid. For example, the weight corresponding to the first neighborhood point can be related to the number of the neighborhood points (hereinafter referred to as the second neighborhood points) of the first neighborhood point. Determining the weight corresponding to the point based on the number of neighborhood points makes full use of the connection relationship information of the point in the three-dimensional grid, so that the weight of the determined point is more reasonable.
本申请实施例对第二邻域点的定义方式不作具体限定。例如,第二邻域点可以是与第一邻域点位于同一LOD层中的点。或者,第二邻域点可以是第一邻域点所在LOD层的下一层中的点。或者,第二邻域点可以同时包括上述两个LOD层中的点。作为一个示例,第二邻域点为基于第一邻域点进行预测的点。The embodiment of the present application does not specifically limit the definition of the second neighborhood point. For example, the second neighborhood point can be a point in the same LOD layer as the first neighborhood point. Alternatively, the second neighborhood point can be a point in the next layer of the LOD layer where the first neighborhood point is located. Alternatively, the second neighborhood point can include points in the above two LOD layers at the same time. As an example, the second neighborhood point is a point predicted based on the first neighborhood point.
在一些实现方式中,第一邻域点对应的权重可以等于第二邻域点的数量。示例性地,第一邻域点包括点1和点2,点1包括5个邻域点,点2包括6个邻域点,则点1的权重可以为5,点2的权重可以为6。In some implementations, the weight corresponding to the first neighborhood point may be equal to the number of the second neighborhood points. For example, the first neighborhood points include point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points, then the weight of point 1 may be 5, and the weight of point 2 may be 6.
在一些实现方式中,第一邻域点对应的权重可以基于第二邻域点的数量与第一预测权重的乘积确定。例如,第一邻域点对应的权重可以等于第二邻域点的数量与第一预测权重的乘积。这里提到的第一预测权重可以为预定义的固定值。例如,第一预测权重的取值可以为0.5。在确定点对应的权重时,综合考虑预测权重,可以使得确定出的权重更加合理。In some implementations, the weight corresponding to the first neighborhood point can be determined based on the product of the number of second neighborhood points and the first prediction weight. For example, the weight corresponding to the first neighborhood point can be equal to the product of the number of second neighborhood points and the first prediction weight. The first prediction weight mentioned here can be a predefined fixed value. For example, the value of the first prediction weight can be 0.5. When determining the weight corresponding to the point, comprehensively considering the prediction weight can make the determined weight more reasonable.
示例性地,可以基于如下公式确定第一邻域点对应的权重:
Exemplarily, the weight corresponding to the first neighborhood point may be determined based on the following formula:
上式中,weight表示第一邻域点中的任意一个点对应的权重,predWeight为第一预测权重(取值可以为0.5)。P表示第二邻域点,weight[i]表示第二邻域点中的第i个点对应的初始权重,该第i个点对应的初始权重可以设置为1。以第一邻域点包括点1和点2,点1包括5个邻域点,点2包括6个邻域点为例,则基于上述公式,点1的权重可以为2.5,点2的权重可以为3(第一预测权重的取值为0.5)。In the above formula, weight represents the weight corresponding to any point in the first neighborhood point, and predWeight is the first prediction weight (the value can be 0.5). P represents the second neighborhood point, and weight[i] represents the initial weight corresponding to the i-th point in the second neighborhood point. The initial weight corresponding to the i-th point can be set to 1. For example, if the first neighborhood point includes point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points, then based on the above formula, the weight of point 1 can be 2.5, and the weight of point 2 can be 3 (the value of the first prediction weight is 0.5).
在一些实现方式中,第一邻域点对应的权重可以基于第一邻域点所在LOD层对应的权重确定。例如,第一邻域点对应的权重可以等于第一邻域点所在LOD层对应的权重。LOD层对应的权重可以理解为一种层级权重。一个LOD层的层级权重例如可以基于该LOD层的点数占待解码的总点数的比例确定。In some implementations, the weight corresponding to the first neighborhood point can be determined based on the weight corresponding to the LOD layer where the first neighborhood point is located. For example, the weight corresponding to the first neighborhood point can be equal to the weight corresponding to the LOD layer where the first neighborhood point is located. The weight corresponding to the LOD layer can be understood as a level weight. The level weight of a LOD layer can be determined, for example, based on the ratio of the number of points in the LOD layer to the total number of points to be decoded.
前文提到,更新权重可以基于第一邻域点对应的权重确定。作为一种可能的实现方式,更新权重可以等于第一邻域点对应的权重。作为另一种可能的实现方式中,更新权重可以基于第一邻域点对应的权重以及第一预测权重(第一预测权重可以为预定义的固定值,例如,第一预测权重的取值可以为0.5)确定。例如,更新权重可以基于第一邻域点对应的权重与第一预测权重的乘积确定,或者,更新权重可以等于第一邻域点对应的权重与第一预测权重的乘积。在确定更新权重时,考虑预测权重,可以使得预测和更新过程的权重分配更加合理。As mentioned above, the update weight can be determined based on the weight corresponding to the first neighborhood point. As a possible implementation, the update weight can be equal to the weight corresponding to the first neighborhood point. In another possible implementation, the update weight can be determined based on the weight corresponding to the first neighborhood point and the first prediction weight (the first prediction weight can be a predefined fixed value, for example, the value of the first prediction weight can be 0.5). For example, the update weight can be determined based on the product of the weight corresponding to the first neighborhood point and the first prediction weight, or the update weight can be equal to the product of the weight corresponding to the first neighborhood point and the first prediction weight. When determining the update weight, considering the prediction weight can make the weight distribution of the prediction and update process more reasonable.
示例性地,可以基于如下公式确定更新权重:
updateWeighti=predWeight×weighti
Exemplarily, the update weight may be determined based on the following formula:
updateWeight i = predWeight × weight i
在上式中,updateWeighti表示第一邻域点中的第i个点对应的更新权重。predWeight表示第一预测权重,第一预测权重的取值可以为0.5。weighti表示第一邻域点对应的权重。第一邻域点对应的权重可以采用前文所述的实现方式确定。In the above formula, updateWeight i represents the update weight corresponding to the i-th point in the first neighborhood point. predWeight represents the first prediction weight, and the value of the first prediction weight can be 0.5. weight i represents the weight corresponding to the first neighborhood point. The weight corresponding to the first neighborhood point can be determined using the implementation method described above.
上文详细描述了第一邻域点对应的权重以及更新权重的确定方式。在确定第一邻域点对应的权重以及更新权重的基础上,可以按照如下公式对第一待解码点的反量化系数进行反变换:
The above describes in detail the weight corresponding to the first neighborhood point and the method for determining the updated weight. Based on the determination of the weight corresponding to the first neighborhood point and the updated weight, the inverse quantization coefficient of the first point to be decoded can be inversely transformed according to the following formula:
在上式中,Signal表示第一待解码点的移位系数。updateWeighti表示第一邻域点中的第i个点对应的更新权重。updateWeighti的计算方式可以参见前文。P表示第一邻域点形成的点集,i表示第一邻域点中的第i个点。signali表示第一邻域点的反量化系数。In the above formula, Signal represents the shift coefficient of the first point to be decoded. UpdateWeight i represents the update weight corresponding to the i-th point in the first neighborhood point. The calculation method of updateWeight i can be found in the previous text. P represents the point set formed by the first neighborhood point, and i represents the i-th point in the first neighborhood point. Signal i represents the inverse quantization coefficient of the first neighborhood point.
除了基于点对应的权重进行反变换的方案之外,本申请实施例也可应用其他反变换方案。例如,可以基于更新权重的调整参数(Scale)进行反变换,如下式所示:
In addition to the solution of performing inverse transformation based on the weight corresponding to the point, the embodiment of the present application can also apply other inverse transformation solutions. For example, the inverse transformation can be performed based on the adjustment parameter (Scale) of the updated weight, as shown in the following formula:
上式中,updateWeight表示更新权重(可以是固定值,如0.125)。Scalen-i-1为更新权重的调整参数,n表示LOD层数,i表示LOD层的索引。P表示第一邻域点形成的点集,i表示第一邻域点中的第i个点。signali表示第一邻域点的反量化系数。In the above formula, updateWeight represents the update weight (can be a fixed value, such as 0.125). Scale ni-1 is the adjustment parameter of the update weight, n represents the number of LOD layers, and i represents the index of the LOD layer. P represents the point set formed by the first neighborhood point, and i represents the i-th point in the first neighborhood point. signal i represents the inverse quantization coefficient of the first neighborhood point.
上文对三维网格中的点的反变换操作进行了详细介绍,下文站在第二待解码点的角度对三维网格中的点的预测操作进行描述。第二待解码点可以是第二层中的任意一个待解码点。第二待解码点的邻域点称为第三邻域点。本申请实施例对第三邻域点的定义方式不作具体限定。例如,第三邻域点可以是与第二待解码点位于同一LOD层中的点。或者,第三邻域点可以是第二待解码点所在LOD层的下一层中的点。或者,第三邻域点可以同时包括上述两个LOD层中的点。作为一个示例,第三邻域点可以为第一层(第二待解码点所在LOD层的上一层)中的与第二待解码点共线的点。 The above text describes in detail the inverse transformation operation of the points in the three-dimensional grid . The following text describes the prediction operation of the points in the three-dimensional grid from the perspective of the second point to be decoded. The second point to be decoded can be any point to be decoded in the second layer. The neighborhood point of the second point to be decoded is called the third neighborhood point. The embodiment of the present application does not specifically limit the definition method of the third neighborhood point. For example, the third neighborhood point can be a point in the same LOD layer as the second point to be decoded. Alternatively, the third neighborhood point can be a point in the next layer of the LOD layer where the second point to be decoded is located. Alternatively, the third neighborhood point can include points in the above two LOD layers at the same time. As an example, the third neighborhood point can be a point in the first layer (the upper layer of the LOD layer where the second point to be decoded is located) that is collinear with the second point to be decoded.
图19中的步骤S1940,即根据第一层中的点的移位系数对第二层中的点的移位系数进行预测,可以包括:根据第三邻域点的移位系数以及第二预测权重,对第二待解码点进行预测。相关技术中,预测权重采用的是固定值(即0.5)。不同于相关技术,本申请实施例中,第二预测权重基于第三邻域点对应的权重确定。第三邻域点中的某个点对应的权重越大,表示该点对第二待解码点的预测结果的影响越大。预测权重基于邻域点对应的权重确定,可以使得重要程度更高的点对待解码点的预测结果影响更大,这样会使得预测过程更加合理,有助于提升三维网格中的点的几何信息的解码效率。Step S1940 in Figure 19, i.e. predicting the shift coefficients of points in the second layer based on the shift coefficients of points in the first layer, may include: predicting the second point to be decoded based on the shift coefficients of the third neighborhood points and the second prediction weight. In the related art, the prediction weight adopts a fixed value (i.e. 0.5). Different from the related art, in the embodiment of the present application, the second prediction weight is determined based on the weight corresponding to the third neighborhood point. The larger the weight corresponding to a point in the third neighborhood point, the greater the influence of the point on the prediction result of the second point to be decoded. The prediction weight is determined based on the weight corresponding to the neighborhood point, which can make the points with higher importance have a greater influence on the prediction result of the point to be decoded, which will make the prediction process more reasonable and help improve the decoding efficiency of the geometric information of the points in the three-dimensional grid.
第三邻域点对应的权重可以基于第三邻域点在三维网格中的空间连接关系确定。例如,第三邻域点对应的权重可以与第三邻域点的邻域点(下称第四邻域点)的数量相关。基于邻域点的数量确定点对应的权重,充分利用了点在三维网格中的连接关系信息,可以使得确定出的点的权重更加合理。The weight corresponding to the third neighborhood point can be determined based on the spatial connection relationship of the third neighborhood point in the three-dimensional grid. For example, the weight corresponding to the third neighborhood point can be related to the number of neighboring points of the third neighborhood point (hereinafter referred to as the fourth neighborhood point). Determining the weight corresponding to the point based on the number of neighborhood points makes full use of the connection relationship information of the point in the three-dimensional grid, which can make the weight of the determined point more reasonable.
本申请实施例对第四邻域点的定义方式不作具体限定。例如,第四邻域点可以是与第三邻域点位于 同一LOD层中的点。或者,第四邻域点可以是第三邻域点所在LOD层的下一层中的点。或者,第四邻域点可以同时包括上述两个LOD层中的点。作为一个示例,第四邻域点为基于第三邻域点进行预测的点。The embodiment of the present application does not specifically limit the definition of the fourth neighboring point. For example, the fourth neighboring point can be located at The fourth neighborhood point may be a point in the same LOD layer. Alternatively, the fourth neighborhood point may be a point in the next layer of the LOD layer where the third neighborhood point is located. Alternatively, the fourth neighborhood point may include points in both LOD layers. As an example, the fourth neighborhood point is a point predicted based on the third neighborhood point.
在一些实现方式中,第三邻域点对应的权重可以等于第四邻域点的数量。示例性地,第三邻域点包括点1和点2,点1包括5个邻域点,点2包括6个邻域点,则点1的权重可以为5,点2的权重可以为6。In some implementations, the weight corresponding to the third neighborhood point may be equal to the number of the fourth neighborhood points. For example, the third neighborhood points include point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points, then the weight of point 1 may be 5, and the weight of point 2 may be 6.
在一些实现方式中,第三邻域点对应的权重可以基于第四邻域点的数量与第一预测权重的乘积确定。例如,第三邻域点对应的权重可以等于第四邻域点的数量与第一预测权重的乘积。这里提到的第一预测权重可以为预定义的固定值。例如,第一预测权重的取值可以为0.5。在确定点对应的权重时,考虑预测权重,可以使得确定出的权重更加合理。In some implementations, the weight corresponding to the third neighborhood point can be determined based on the product of the number of fourth neighborhood points and the first prediction weight. For example, the weight corresponding to the third neighborhood point can be equal to the product of the number of fourth neighborhood points and the first prediction weight. The first prediction weight mentioned here can be a predefined fixed value. For example, the value of the first prediction weight can be 0.5. When determining the weight corresponding to the point, considering the prediction weight can make the determined weight more reasonable.
示例性地,可以基于如下公式确定第三邻域点对应的权重:
Exemplarily, the weight corresponding to the third neighborhood point may be determined based on the following formula:
上式中,weight表示第三邻域点中的任意一个点对应的权重,predWeight为第一预测权重(取值可以为0.5)。P表示第四邻域点,weight[i]表示第四邻域点中的第i个点对应的初始权重,该第i个点对应的初始权重可以设置为1。以第三邻域点包括点1和点2,点1包括5个邻域点,点2包括6个邻域点为例,则基于上述公式,点1的权重可以为2.5,点2的权重可以为3(第一预测权重取值0.5)。In the above formula, weight represents the weight corresponding to any point in the third neighborhood point, and predWeight is the first prediction weight (the value can be 0.5). P represents the fourth neighborhood point, and weight[i] represents the initial weight corresponding to the i-th point in the fourth neighborhood point. The initial weight corresponding to the i-th point can be set to 1. For example, if the third neighborhood point includes point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points, then based on the above formula, the weight of point 1 can be 2.5, and the weight of point 2 can be 3 (the first prediction weight is 0.5).
在一些实现方式中,第三邻域点对应的权重可以基于第三邻域点所在LOD层对应的权重确定。例如,第三邻域点对应的权重可以等于第三邻域点所在LOD层对应的权重。LOD层对应的权重可以理解为一种层级权重。一个LOD层的层级权重例如可以基于该LOD层的点数占待解码的总点数的比例确定。In some implementations, the weight corresponding to the third neighborhood point can be determined based on the weight corresponding to the LOD layer where the third neighborhood point is located. For example, the weight corresponding to the third neighborhood point can be equal to the weight corresponding to the LOD layer where the third neighborhood point is located. The weight corresponding to the LOD layer can be understood as a level weight. The level weight of a LOD layer can be determined, for example, based on the ratio of the number of points in the LOD layer to the total number of points to be decoded.
前文指出,第二预测权重可以基于第三邻域点对应的权重确定。例如,第二预测权重可以等于第三邻域点对应的权重。或者,第二预测权重可以基于第三邻域点对应的权重与某个参数的乘积。As mentioned above, the second prediction weight can be determined based on the weight corresponding to the third neighborhood point. For example, the second prediction weight can be equal to the weight corresponding to the third neighborhood point. Alternatively, the second prediction weight can be based on the product of the weight corresponding to the third neighborhood point and a certain parameter.
前文指出,可以根据第三邻域点的移位系数以及第二预测权重对第二待解码点进行预测,下面给出第二待解码点的一种可能的预测方式。As mentioned above, the second point to be decoded can be predicted according to the shift coefficient of the third neighborhood point and the second prediction weight. A possible prediction method for the second point to be decoded is given below.
示例性地,可以基于如下公式对第二待解码点进行预测:
Exemplarily, the second to-be-decoded point may be predicted based on the following formula:
在上式中,Signal表示第二待解码点的预测结果,Neigh1和Neigh2分别表示与第二待解码点共线的两个邻域点的移位系数。Neigh1和Neigh2位于第二待解码点所在LOD层的上一层。predWeight1和predWeight2分别表示Neigh1和Neigh2对应的预测权重(即前文提到的第二预测权重)。In the above formula, Signal represents the prediction result of the second point to be decoded, and Neigh 1 and Neigh 2 represent the shift coefficients of the two neighboring points collinear with the second point to be decoded. Neigh 1 and Neigh 2 are located in the upper layer of the LOD layer where the second point to be decoded is located. predWeight 1 and predWeight 2 represent the prediction weights corresponding to Neigh 1 and Neigh 2 (i.e., the second prediction weights mentioned above).
predWeight1和predWeight2可以通过下面的公式计算得到:
predWeight1=weight1
predWeight2=weight2
predWeight 1 and predWeight 2 can be calculated using the following formula:
predWeight 1 = weight 1
predWeight 2 = weight 2
sumWeight可以基于如下公式计算得到:
sumWeight=predWeight1+predWeight2
sumWeight can be calculated based on the following formula:
sumWeight=predWeight 1 +predWeight 2
上文对三维网格中的点的反变换操作和预测操作进行了详细介绍,下文站在第三待解码点的角度对三维网格中的点的反量化操作进行描述。第三待解码点可以是三维网格中的任意一个待解码点。The above describes the inverse transformation operation and prediction operation of the points in the three-dimensional grid in detail, and the following describes the inverse quantization operation of the points in the three-dimensional grid from the perspective of the third point to be decoded. The third point to be decoded can be any point to be decoded in the three-dimensional grid.
图19中的步骤S1920,即对三维网格中的点的量化系数进行反量化,可以包括:根据第三待解码点对应的权重对第三待解码点的量化系数进行反量化。本申请实施例在对三维网格中的待解码点进行反量化时,考虑该待解码点对应的权重。例如,可以根据待解码点对应的权重选取合适的量化参数;或者,可以根据待解码点对应的权重对反量化结果进行不同的处理。在反量化过程中考虑待解码点的权重,可以使得反量化结果更加合理,有助于提升三维网格中的点的几何信息的解码效率。Step S1920 in Figure 19, i.e., dequantizing the quantization coefficients of the points in the three-dimensional grid, may include: dequantizing the quantization coefficients of the third point to be decoded according to the weight corresponding to the third point to be decoded. When dequantizing the points to be decoded in the three-dimensional grid, the embodiment of the present application considers the weight corresponding to the point to be decoded. For example, a suitable quantization parameter may be selected according to the weight corresponding to the point to be decoded; or, the dequantization result may be processed differently according to the weight corresponding to the point to be decoded. Considering the weight of the point to be decoded in the dequantization process can make the dequantization result more reasonable, which helps to improve the decoding efficiency of the geometric information of the points in the three-dimensional grid.
第三待解码点对应的权重可以基于第三待解码点在三维网格中的空间连接关系确定。例如,第三待解码点对应的权重可以与第三待解码点的邻域点(下称第五邻域点)的数量相关。基于邻域点的数量确定点对应的权重,充分利用了点在三维网格中的连接关系信息,可以使得确定出的点的权重更加合理。The weight corresponding to the third point to be decoded can be determined based on the spatial connection relationship of the third point to be decoded in the three-dimensional grid. For example, the weight corresponding to the third point to be decoded can be related to the number of neighboring points (hereinafter referred to as the fifth neighboring points) of the third point to be decoded. Determining the weight corresponding to the point based on the number of neighboring points makes full use of the connection relationship information of the point in the three-dimensional grid, which can make the weight of the determined point more reasonable.
本申请实施例对第五邻域点的定义方式不作具体限定。例如,第五邻域点可以是与第三待解码点位于同一LOD层中的点。或者,第五邻域点可以是第三待解码点所在LOD层的下一层中的点。或者,第五邻域点可以同时包括上述两个LOD层中的点。作为一个示例,第五邻域点为基于第三待解码点进行预测的点。The embodiment of the present application does not specifically limit the definition of the fifth neighborhood point. For example, the fifth neighborhood point may be a point in the same LOD layer as the third point to be decoded. Alternatively, the fifth neighborhood point may be a point in the next layer of the LOD layer where the third point to be decoded is located. Alternatively, the fifth neighborhood point may include points in both LOD layers. As an example, the fifth neighborhood point is a point predicted based on the third point to be decoded.
在一些实现方式中,第三待解码点对应的权重可以等于第五邻域点的数量。示例性地,第三待解码点包括点1和点2,点1包括5个邻域点,点2包括6个邻域点,则点1的权重可以为5,点2的权重 可以为6。In some implementations, the weight corresponding to the third point to be decoded may be equal to the number of the fifth neighboring points. For example, the third point to be decoded includes point 1 and point 2, point 1 includes 5 neighboring points, and point 2 includes 6 neighboring points. Then the weight of point 1 may be 5, and the weight of point 2 may be It can be 6.
在一些实现方式中,第三待解码点对应的权重可以基于第五邻域点的数量与第一预测权重的乘积确定。例如,第三待解码点对应的权重可以等于第五邻域点的数量与第一预测权重的乘积。这里提到的第一预测权重可以为预定义的固定值。例如,第一预测权重的取值可以为0.5。在确定点对应的权重时,考虑预测权重,可以使得确定出的权重更加合理。In some implementations, the weight corresponding to the third point to be decoded may be determined based on the product of the number of the fifth neighborhood points and the first prediction weight. For example, the weight corresponding to the third point to be decoded may be equal to the product of the number of the fifth neighborhood points and the first prediction weight. The first prediction weight mentioned here may be a predefined fixed value. For example, the value of the first prediction weight may be 0.5. When determining the weight corresponding to the point, considering the prediction weight may make the determined weight more reasonable.
示例性地,可以基于如下公式确定第三待解码点对应的权重:
Exemplarily, the weight corresponding to the third to-be-decoded point may be determined based on the following formula:
上式中,weight表示第三待解码点中的任意一个点对应的权重,predWeight为第一预测权重(取值可以为0.5)。P表示第五邻域点,weight[i]表示第五邻域点中的第i个点对应的初始权重,该第i个点对应的初始权重可以设置为1。以第三待解码点包括点1和点2,点1包括5个邻域点,点2包括6个邻域点为例,则基于上述公式,点1的权重可以为2.5,点2的权重可以为3(第一预测权重取值0.5)。In the above formula, weight represents the weight corresponding to any point in the third point to be decoded, and predWeight is the first predicted weight (the value can be 0.5). P represents the fifth neighborhood point, and weight[i] represents the initial weight corresponding to the i-th point in the fifth neighborhood point. The initial weight corresponding to the i-th point can be set to 1. For example, the third point to be decoded includes point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points. Based on the above formula, the weight of point 1 can be 2.5, and the weight of point 2 can be 3 (the first predicted weight is 0.5).
前文指出,可以根据第三待解码点对应的权重对第三待解码点的量化系数进行反量化,下面给出一种可能的实现方式。As mentioned above, the quantization coefficient of the third point to be decoded can be dequantized according to the weight corresponding to the third point to be decoded. A possible implementation manner is given below.
例如,在一些实现方式中,可以根据第一量化参数对第三待解码点的量化系数进行反量化。第一量化参数可以基于第三待解码点对应的权重确定。也就是说,可以根据待解码点对应的权重,自适应地为待解码点设置量化参数。例如,如果第三待解码点对应的权重较大,说明第三待解码点的重要程度较高。对于重要程度较高的待解码点,第一量化参数的取值可以较小(代表该待解码点的量化程度较低)。又如,如果第三待解码点对应的权重较小,说明第三待解码点的重要程度较低。对于重要程度较低的待解码点,第一量化参数的取值可以较大(代表该待解码点的量化程度较高)。根据上述量化参数的设计方式,可以保证重建质量,从而提升三维网格的几何信息的解码效率。For example, in some implementations, the quantization coefficient of the third point to be decoded can be inversely quantized according to the first quantization parameter. The first quantization parameter can be determined based on the weight corresponding to the third point to be decoded. That is, the quantization parameter can be adaptively set for the point to be decoded according to the weight corresponding to the point to be decoded. For example, if the weight corresponding to the third point to be decoded is large, it means that the importance of the third point to be decoded is high. For points to be decoded with a high degree of importance, the value of the first quantization parameter can be small (indicating that the degree of quantization of the point to be decoded is low). For another example, if the weight corresponding to the third point to be decoded is small, it means that the degree of quantization of the third point to be decoded is low. For points to be decoded with a low degree of importance, the value of the first quantization parameter can be large (indicating that the degree of quantization of the point to be decoded is high). According to the design method of the above quantization parameters, the reconstruction quality can be guaranteed, thereby improving the decoding efficiency of the geometric information of the three-dimensional grid.
第一量化参数可以直接基于第三待解码点对应的权重确定。例如,可以预先建立待解码点对应的权重与量化参数之间的映射关系,并基于该映射关系确定第一量化参数。或者,第一量化参数也可以基于第三待解码点对应的权重和第二量化参数确定。这里提到的第二量化参数可以是目标LOD层(即第三待解码点所属的LOD层)对应的量化参数。第二量化参数可以基于初始量化参数和量化调整参数确定。The first quantization parameter can be directly determined based on the weight corresponding to the third point to be decoded. For example, a mapping relationship between the weight corresponding to the point to be decoded and the quantization parameter can be pre-established, and the first quantization parameter can be determined based on the mapping relationship. Alternatively, the first quantization parameter can also be determined based on the weight corresponding to the third point to be decoded and the second quantization parameter. The second quantization parameter mentioned here can be the quantization parameter corresponding to the target LOD layer (i.e., the LOD layer to which the third point to be decoded belongs). The second quantization parameter can be determined based on the initial quantization parameter and the quantization adjustment parameter.
示例性地,第二量化参数可以基于如下公式确定:
QPLvl=liftingQP×ScaleLvl
Exemplarily, the second quantization parameter may be determined based on the following formula:
QP Lvl =liftingQP×Scale Lvl
在上式中,Lvl代表目标LOD层的索引,QPLvl为第二量化参数,liftingQP为初始量化参数,Scale为量化调整参数。In the above formula, Lvl represents the index of the target LOD layer, QP Lvl is the second quantization parameter, liftingQP is the initial quantization parameter, and Scale is the quantization adjustment parameter.
下面给出第三待解码点的反量化的一个更为具体的示例。A more specific example of inverse quantization of the third point to be decoded is given below.
例如,可以基于如下公式对第三待解码点进行反量化:
For example, the third to-be-decoded point may be dequantized based on the following formula:
在上式中,InvResi表示第三待解码点的反量化结果,Resi表示第三待解码点的量化系数,bitDepth代表移位系数的有效比特深度,QPLvl表示目标LOD层(第三待解码点所在的LOD层)对应的量化参数,weighti表示第三待解码点对应的权重(第三待解码点对应的权重的确定方式可以参见前文,此处不再详述)。In the above formula, InvResi represents the inverse quantization result of the third point to be decoded, Resi represents the quantization coefficient of the third point to be decoded, bitDepth represents the effective bit depth of the shift coefficient, QP Lvl represents the quantization parameter corresponding to the target LOD layer (the LOD layer where the third point to be decoded is located), and weight i represents the weight corresponding to the third point to be decoded (the method for determining the weight corresponding to the third point to be decoded can be found in the previous text and will not be described in detail here).
上文结合图19,详细描述了本申请实施例提供的解码方法。下文结合图20,详细描述本申请实施例提供的编码方法。The decoding method provided by the embodiment of the present application is described in detail above in conjunction with Figure 19. The encoding method provided by the embodiment of the present application is described in detail below in conjunction with Figure 20.
图20为本申请实施例提供的编码方法的流程图。图20的方法可以由编码器执行。该编码器可以是支持V-DMC的编码器。Figure 20 is a flow chart of a coding method provided in an embodiment of the present application. The method of Figure 20 may be performed by an encoder. The encoder may be an encoder supporting V-DMC.
参见图20,在步骤S2010,对三维网格中的点进行LOD划分,确定多个LOD层。该多个LOD层包括相邻的第一层和第二层,第一层为第二层的上一层。Referring to Fig. 20, in step S2010, LOD division is performed on points in the three-dimensional grid to determine multiple LOD layers. The multiple LOD layers include an adjacent first layer and a second layer, where the first layer is a layer above the second layer.
在步骤S2020,对第二层中的点的移位系数进行预测,确定第二层中的点的残差系数。应理解,本申请实施例提及的点的残差系数指的是点的移位系数对应的残差系数,或称移位系数的预测残差。In step S2020, the shift coefficients of the points in the second layer are predicted to determine the residual coefficients of the points in the second layer. It should be understood that the residual coefficients of the points mentioned in the embodiments of the present application refer to the residual coefficients corresponding to the shift coefficients of the points, or the predicted residuals of the shift coefficients.
在步骤S2030,根据第二层中的点的残差系数,对第一层中的点的移位系数进行变换。步骤S2020和步骤S2030可以属于提升变换的两个子过程。In step S2030, the shift coefficients of the points in the first layer are transformed according to the residual coefficients of the points in the second layer. Steps S2020 and S2030 may belong to two sub-processes of the lifting transformation.
应理解,三维网格中的点的移位系数可以是基于细分网格中的点的几何信息与三维网格的原始几何信息之间的差异确定的。例如,可以根据基础网格中的点的几何信息,对基础网格进行划分,确定细分网格中的点的几何信息;然后,可以根据细分网格中的点的几何信息和三维网格的原始几何信息,确定三维网格中的点的移位系数。 It should be understood that the shift coefficient of the point in the three-dimensional mesh can be determined based on the difference between the geometric information of the point in the subdivided mesh and the original geometric information of the three-dimensional mesh. For example, the base mesh can be divided according to the geometric information of the point in the base mesh to determine the geometric information of the point in the subdivided mesh; then, the shift coefficient of the point in the three-dimensional mesh can be determined according to the geometric information of the point in the subdivided mesh and the original geometric information of the three-dimensional mesh.
图20是以第一层和第二层的编码过程为例进行说明的。多个LOD层中的每个LOD层均可以按照类似的方式进行处理,从而得到三维网格中的点的变换系数。此外,在一些实现方式中,图20还可以进一步包括步骤S2040,即对三维网格中的点的变换系数进行量化。三维网格中的点的变换系数的量化也可以是逐层进行的。FIG. 20 is an example of the encoding process of the first layer and the second layer. Each LOD layer in the multiple LOD layers can be processed in a similar manner to obtain the transformation coefficients of the points in the three-dimensional grid. In addition, in some implementations, FIG. 20 may further include step S2040, i.e., quantizing the transformation coefficients of the points in the three-dimensional grid. The quantization of the transformation coefficients of the points in the three-dimensional grid can also be performed layer by layer.
根据图20可知,完整的编码操作包括预测操作、变换操作以及量化操作。为了提升三维网格的几何信息的编码效率,可以基于三维网格中的点的权重(或点的空间连接关系)对预测操作、变换操作以及量化操作中的一个或多个进行优化。下面分别从预测操作、变换操作、量化操作三个角度,对本申请实施例提供的优化方案进行举例说明。应理解,本申请实施例可以仅对预测、变换、量化中的一个进行优化;或者,本申请实施例可以对预测、变换、量化中的任意两个进行优化,从而进一步提升三维网格的几何信息的编码效率;或者,本申请实施例可以同时对预测、变换、量化三者进行优化,从而进一步提升三维网格的几何信息的编码效率。According to Figure 20, the complete coding operation includes prediction operation, transformation operation and quantization operation. In order to improve the coding efficiency of the geometric information of the three-dimensional grid, one or more of the prediction operation, transformation operation and quantization operation can be optimized based on the weights of the points in the three-dimensional grid (or the spatial connection relationship of the points). The following examples illustrate the optimization scheme provided in the embodiment of the present application from the three perspectives of prediction operation, transformation operation and quantization operation. It should be understood that the embodiment of the present application can optimize only one of prediction, transformation and quantization; or, the embodiment of the present application can optimize any two of prediction, transformation and quantization, thereby further improving the coding efficiency of the geometric information of the three-dimensional grid; or, the embodiment of the present application can optimize prediction, transformation and quantization at the same time, thereby further improving the coding efficiency of the geometric information of the three-dimensional grid.
下文站在第一待编码点的角度对三维网格中的点的变换操作进行描述。第一待编码点可以是第一层中的任意一个待编码点。第一待编码点的邻域点称为第一邻域点。第一邻域点可以是第一待编码点所在LOD层的下一层中的点。作为一个示例,第一邻域点为基于第一待编码点进行预测的点。The following describes the transformation operation of points in the three-dimensional grid from the perspective of the first point to be encoded. The first point to be encoded may be any point to be encoded in the first layer. The neighborhood point of the first point to be encoded is called the first neighborhood point. The first neighborhood point may be a point in the next layer of the LOD layer where the first point to be encoded is located. As an example, the first neighborhood point is a point predicted based on the first point to be encoded.
图20中的步骤S2030,即根据第二层中的点的残差系数对第一层中的点的移位系数进行变换,可以包括:根据第一邻域点的残差系数以及更新权重,对第一待编码点的移位系数进行变换。相关技术中,更新权重采用的是固定值(即0.125)。不同于相关技术,本申请实施例中,更新权重基于第一邻域点对应的权重确定。更新权重基于邻域点对应的权重确定,可以使得变换结果更加合理,有助于提升三维网格中的点的几何信息的编码效率。Step S2030 in Figure 20, i.e., transforming the shift coefficients of the points in the first layer according to the residual coefficients of the points in the second layer, may include: transforming the shift coefficients of the first point to be encoded according to the residual coefficients of the first neighborhood points and the updated weights. In the related art, the updated weights use a fixed value (i.e., 0.125). Different from the related art, in the embodiment of the present application, the updated weights are determined based on the weights corresponding to the first neighborhood points. The updated weights are determined based on the weights corresponding to the neighborhood points, which can make the transformation results more reasonable and help improve the coding efficiency of the geometric information of the points in the three-dimensional grid.
第一邻域点对应的权重可以基于第一邻域点在三维网格中的空间连接关系确定。例如,第一邻域点对应的权重可以与第一邻域点的邻域点(下称第二邻域点)的数量相关。基于邻域点的数量确定点对应的权重,充分利用了点在三维网格中的连接关系信息,可以使得确定出的点的权重更加合理。The weight corresponding to the first neighborhood point can be determined based on the spatial connection relationship of the first neighborhood point in the three-dimensional grid. For example, the weight corresponding to the first neighborhood point can be related to the number of the neighborhood points (hereinafter referred to as the second neighborhood points) of the first neighborhood point. Determining the weight corresponding to the point based on the number of neighborhood points makes full use of the connection relationship information of the point in the three-dimensional grid, which can make the weight of the determined point more reasonable.
本申请实施例对第二邻域点的定义方式不作具体限定。例如,第二邻域点可以是与第一邻域点位于同一LOD层中的点。或者,第二邻域点可以是第一邻域点所在LOD层的下一层中的点。或者,第二邻域点可以同时包括上述两个LOD层中的点。作为一个示例,第二邻域点为基于第一邻域点进行预测的点。The embodiment of the present application does not specifically limit the definition of the second neighborhood point. For example, the second neighborhood point can be a point in the same LOD layer as the first neighborhood point. Alternatively, the second neighborhood point can be a point in the next layer of the LOD layer where the first neighborhood point is located. Alternatively, the second neighborhood point can include points in the above two LOD layers at the same time. As an example, the second neighborhood point is a point predicted based on the first neighborhood point.
在一些实现方式中,第一邻域点对应的权重可以等于第二邻域点的数量。示例性地,第一邻域点包括点1和点2,点1包括5个邻域点,点2包括6个邻域点,则点1的权重可以为5,点2的权重可以为6。In some implementations, the weight corresponding to the first neighborhood point may be equal to the number of the second neighborhood points. For example, the first neighborhood points include point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points, then the weight of point 1 may be 5, and the weight of point 2 may be 6.
在一些实现方式中,第一邻域点对应的权重可以基于第二邻域点的数量与第一预测权重的乘积确定。例如,第一邻域点对应的权重可以等于第二邻域点的数量与第一预测权重的乘积。这里提到的第一预测权重可以为预定义的固定值。例如,第一预测权重的取值可以为0.5。在确定点对应的权重时,考虑预测权重,可以使得确定出的权重更加合理。In some implementations, the weight corresponding to the first neighborhood point can be determined based on the product of the number of second neighborhood points and the first prediction weight. For example, the weight corresponding to the first neighborhood point can be equal to the product of the number of second neighborhood points and the first prediction weight. The first prediction weight mentioned here can be a predefined fixed value. For example, the value of the first prediction weight can be 0.5. When determining the weight corresponding to the point, considering the prediction weight can make the determined weight more reasonable.
示例性地,可以基于如下公式确定第一邻域点对应的权重:
Exemplarily, the weight corresponding to the first neighborhood point may be determined based on the following formula:
上式中,weight表示第一邻域点中的任意一个点对应的权重,predWeight为第一预测权重(取值可以为0.5)。P表示第二邻域点,weight[i]表示第二邻域点中的第i个点对应的初始权重,该第i个点对应的初始权重可以设置为1。以第一邻域点包括点1和点2,点1包括5个邻域点,点2包括6个邻域点为例,则基于上述公式,点1的权重可以为2.5,点2的权重可以为3(第一预测权重取值0.5)。In the above formula, weight represents the weight corresponding to any point in the first neighborhood point, and predWeight is the first prediction weight (the value can be 0.5). P represents the second neighborhood point, and weight[i] represents the initial weight corresponding to the i-th point in the second neighborhood point. The initial weight corresponding to the i-th point can be set to 1. For example, if the first neighborhood point includes point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points, then based on the above formula, the weight of point 1 can be 2.5, and the weight of point 2 can be 3 (the first prediction weight is 0.5).
在一些实现方式中,第一邻域点对应的权重可以基于第一邻域点所在LOD层对应的权重确定。例如,第一邻域点对应的权重可以等于第一邻域点所在LOD层对应的权重。LOD层对应的权重可以理解为一种层级权重。一个LOD层的层级权重例如可以基于该LOD层的点数占待解码的总点数的比例确定。In some implementations, the weight corresponding to the first neighborhood point can be determined based on the weight corresponding to the LOD layer where the first neighborhood point is located. For example, the weight corresponding to the first neighborhood point can be equal to the weight corresponding to the LOD layer where the first neighborhood point is located. The weight corresponding to the LOD layer can be understood as a level weight. The level weight of a LOD layer can be determined, for example, based on the ratio of the number of points in the LOD layer to the total number of points to be decoded.
前文提到,更新权重可以基于第一邻域点对应的权重确定。作为一种可能的实现方式,更新权重可以等于第一邻域点对应的权重。作为另一种可能的实现方式中,更新权重可以基于第一邻域点对应的权重以及第一预测权重(第一预测权重可以为预定义的固定值,例如,第一预测权重的取值可以为0.5)确定。例如,更新权重可以基于第一邻域点对应的权重与第一预测权重的乘积确定,或者,更新权重可以等于第一邻域点对应的权重与第一预测权重的乘积。在确定更新权重时,考虑预测权重,可以使得预测和更新过程的权重分配更加合理。As mentioned above, the update weight can be determined based on the weight corresponding to the first neighborhood point. As a possible implementation, the update weight can be equal to the weight corresponding to the first neighborhood point. In another possible implementation, the update weight can be determined based on the weight corresponding to the first neighborhood point and the first prediction weight (the first prediction weight can be a predefined fixed value, for example, the value of the first prediction weight can be 0.5). For example, the update weight can be determined based on the product of the weight corresponding to the first neighborhood point and the first prediction weight, or the update weight can be equal to the product of the weight corresponding to the first neighborhood point and the first prediction weight. When determining the update weight, considering the prediction weight can make the weight distribution of the prediction and update process more reasonable.
示例性地,可以基于如下公式确定更新权重:
updateWeighti=predWeight×weighti
Exemplarily, the update weight may be determined based on the following formula:
updateWeight i = predWeight × weight i
在上式中,updateWeighti表示第一邻域点中的第i个点对应的更新权重。predWeight表示第一预测权重,第一预测权重的取值可以为0.5。weighti表示第一邻域点对应的权重。第一邻域点对应的权重可以采用前文任一实现方式确定。In the above formula, updateWeight i represents the update weight corresponding to the i-th point in the first neighborhood point. predWeight represents the first prediction weight, and the value of the first prediction weight can be 0.5. weight i represents the weight corresponding to the first neighborhood point. The weight corresponding to the first neighborhood point can be determined by any of the above implementation methods.
上文详细描述了第一邻域点对应的权重以及更新权重的确定方式。在确定第一邻域点对应的权重以及更新权重的基础上,可以按照如下公式对第一待编码点的移位系数进行变换:
The above describes in detail the weight corresponding to the first neighborhood point and the method for determining the updated weight. Based on the determination of the weight corresponding to the first neighborhood point and the updated weight, the shift coefficient of the first point to be encoded can be transformed according to the following formula:
在上式中,Signal表示第一待编码点的移位系数。updateWeighti表示第一邻域点中的第i个点对应的更新权重。updateWeighti的计算方式可以参见前文。P表示第一邻域点形成的点集,i表示第一邻域点中的第i个点。signali表示第一邻域点的残差系数(移位残差系数)。In the above formula, Signal represents the shift coefficient of the first point to be encoded. UpdateWeight i represents the update weight corresponding to the i-th point in the first neighborhood point. The calculation method of updateWeight i can be found in the previous text. P represents the point set formed by the first neighborhood point, and i represents the i-th point in the first neighborhood point. Signal i represents the residual coefficient (shift residual coefficient) of the first neighborhood point.
除了基于点对应的权重进行变换的方案之外,本申请实施例并不排除其他反变换方案。例如,可以基于更新权重的调整参数(Scale)进行变换,如下式所示:
In addition to the scheme of transforming based on the weight corresponding to the point, the embodiment of the present application does not exclude other inverse transformation schemes. For example, the transformation can be performed based on the adjustment parameter (Scale) of the updated weight, as shown in the following formula:
上式中,updateWeight表示更新权重(可以是固定值,如0.125)。Scalen-i-1为更新权重的调整参数,n表示LOD层数,i表示LOD层的索引。P表示第一邻域点形成的点集,i表示第一邻域点中的第i个点。signali表示第一邻域点的残差系数(移位残差系数)。In the above formula, updateWeight represents the update weight (can be a fixed value, such as 0.125). Scale ni-1 is the adjustment parameter of the update weight, n represents the number of LOD layers, and i represents the index of the LOD layer. P represents the point set formed by the first neighborhood point, and i represents the i-th point in the first neighborhood point. signal i represents the residual coefficient (shift residual coefficient) of the first neighborhood point.
上文对三维网格中的点的变换操作进行了详细介绍,下文站在第二待编码点的角度对三维网格中的点的预测操作进行描述。第二待编码点可以是第二层中的任意一个待编码点。第二待编码点的邻域点称为第三邻域点。本申请实施例对第三邻域点的定义方式不作具体限定。例如,第三邻域点可以是与第二待编码点位于同一LOD层中的点。或者,第三邻域点可以是第二待编码点所在LOD层的下一层中的点。或者,第三邻域点可以同时包括上述两个LOD层中的点。作为一个示例,第三邻域点可以为第一层(第二待编码点所在LOD层的上一层)中的与第二待编码点共线的点。The above text describes in detail the transformation operation of the points in the three-dimensional grid. The following text describes the prediction operation of the points in the three-dimensional grid from the perspective of the second point to be encoded. The second point to be encoded can be any point to be encoded in the second layer. The neighborhood point of the second point to be encoded is called the third neighborhood point. The embodiment of the present application does not specifically limit the definition method of the third neighborhood point. For example, the third neighborhood point may be a point in the same LOD layer as the second point to be encoded. Alternatively, the third neighborhood point may be a point in the next layer of the LOD layer where the second point to be encoded is located. Alternatively, the third neighborhood point may include points in the above two LOD layers at the same time. As an example, the third neighborhood point may be a point in the first layer (the upper layer of the LOD layer where the second point to be encoded is located) that is collinear with the second point to be encoded.
图20中的步骤S2020,即对第二层中的点的移位系数进行预测,可以包括:根据第三邻域点的移位系数以及第二预测权重,对第二待编码点进行预测。相关技术中,预测权重采用的是固定值(即0.5)。不同于相关技术,本申请实施例中,第二预测权重基于第三邻域点对应的权重确定。例如,第三邻域点中的某个点对应的权重越大,则该点对第二待编码点的预测结果的影响越大。预测权重基于邻域点对应的权重确定,可以使得重要程度更高的点对待编码点的预测结果影响更大,这样会使得预测过程更加合理,有助于提升三维网格中的点的几何信息的编码效率。Step S2020 in Figure 20, i.e. predicting the shift coefficients of the points in the second layer, may include: predicting the second point to be encoded based on the shift coefficients of the third neighborhood points and the second prediction weight. In the related art, the prediction weight adopts a fixed value (i.e. 0.5). Different from the related art, in the embodiment of the present application, the second prediction weight is determined based on the weight corresponding to the third neighborhood point. For example, the greater the weight corresponding to a point in the third neighborhood point, the greater the influence of the point on the prediction result of the second point to be encoded. The prediction weight is determined based on the weight corresponding to the neighborhood point, which can make the points with higher importance have a greater influence on the prediction result of the point to be encoded, which will make the prediction process more reasonable and help improve the encoding efficiency of the geometric information of the points in the three-dimensional grid.
第三邻域点对应的权重可以基于第三邻域点在三维网格中的空间连接关系确定。例如,第三邻域点对应的权重可以与第三邻域点的邻域点(下称第四邻域点)的数量相关。基于邻域点的数量确定点对应的权重,充分利用了点在三维网格中的连接关系信息,可以使得确定出的点的权重更加合理。The weight corresponding to the third neighborhood point can be determined based on the spatial connection relationship of the third neighborhood point in the three-dimensional grid. For example, the weight corresponding to the third neighborhood point can be related to the number of neighboring points of the third neighborhood point (hereinafter referred to as the fourth neighborhood point). Determining the weight corresponding to the point based on the number of neighborhood points makes full use of the connection relationship information of the point in the three-dimensional grid, which can make the weight of the determined point more reasonable.
本申请实施例对第四邻域点的定义方式不作具体限定。例如,第四邻域点可以是与第三邻域点位于同一LOD层中的点。或者,第四邻域点可以是第三邻域点所在LOD层的下一层中的点。或者,第四邻域点可以同时包括上述两个LOD层中的点。作为一个示例,第四邻域点为基于第三邻域点进行预测的点。The embodiment of the present application does not specifically limit the definition of the fourth neighborhood point. For example, the fourth neighborhood point may be a point in the same LOD layer as the third neighborhood point. Alternatively, the fourth neighborhood point may be a point in the next layer of the LOD layer where the third neighborhood point is located. Alternatively, the fourth neighborhood point may include points in both LOD layers. As an example, the fourth neighborhood point is a point predicted based on the third neighborhood point.
在一些实现方式中,第三邻域点对应的权重可以等于第四邻域点的数量。示例性地,第三邻域点包括点1和点2,点1包括5个邻域点,点2包括6个邻域点,则点1的权重可以为5,点2的权重可以为6。In some implementations, the weight corresponding to the third neighborhood point may be equal to the number of the fourth neighborhood points. For example, the third neighborhood points include point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points, then the weight of point 1 may be 5, and the weight of point 2 may be 6.
在一些实现方式中,第三邻域点对应的权重可以基于第四邻域点的数量与第一预测权重的乘积确定。例如,第三邻域点对应的权重可以等于第四邻域点的数量与第一预测权重的乘积。这里提到的第一预测权重可以为预定义的固定值。例如,第一预测权重的取值可以为0.5。在确定点对应的权重时,考虑预测权重,可以使得确定出的权重更加合理。In some implementations, the weight corresponding to the third neighborhood point can be determined based on the product of the number of fourth neighborhood points and the first prediction weight. For example, the weight corresponding to the third neighborhood point can be equal to the product of the number of fourth neighborhood points and the first prediction weight. The first prediction weight mentioned here can be a predefined fixed value. For example, the value of the first prediction weight can be 0.5. When determining the weight corresponding to the point, considering the prediction weight can make the determined weight more reasonable.
示例性地,可以基于如下公式确定第三邻域点对应的权重:
Exemplarily, the weight corresponding to the third neighborhood point may be determined based on the following formula:
上式中,weight表示第三邻域点中的任意一个点对应的权重,predWeight为第一预测权重(取值可以为0.5)。P表示第四邻域点,weight[i]表示第四邻域点中的第i个点对应的初始权重,该第i个点对应的初始权重可以设置为1。以第三邻域点包括点1和点2,点1包括5个邻域点,点2包括6个邻域点为例,则基于上述公式,点1的权重可以为2.5,点2的权重可以为3(第一预测权重取值0.5)。In the above formula, weight represents the weight corresponding to any point in the third neighborhood point, and predWeight is the first prediction weight (the value can be 0.5). P represents the fourth neighborhood point, and weight[i] represents the initial weight corresponding to the i-th point in the fourth neighborhood point. The initial weight corresponding to the i-th point can be set to 1. For example, if the third neighborhood point includes point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points, then based on the above formula, the weight of point 1 can be 2.5, and the weight of point 2 can be 3 (the first prediction weight is 0.5).
在一些实现方式中,第三邻域点对应的权重可以基于第一邻域点所在LOD层对应的权重确定。例如,第三邻域点对应的权重可以等于第三邻域点所在LOD层对应的权重。LOD层对应的权重可以理解 为一种层级权重。一个LOD层的层级权重例如可以基于该LOD层的点数占待解码的总点数的比例确定。In some implementations, the weight corresponding to the third neighboring point can be determined based on the weight corresponding to the LOD layer where the first neighboring point is located. For example, the weight corresponding to the third neighboring point can be equal to the weight corresponding to the LOD layer where the third neighboring point is located. The weight corresponding to the LOD layer can be understood as The level weight of a LOD layer can be determined based on the ratio of the number of points in the LOD layer to the total number of points to be decoded.
前文指出,第二预测权重可以基于第三邻域点对应的权重确定。例如,第二预测权重可以等于第三邻域点对应的权重。或者,第二预测权重可以基于第三邻域点对应的权重与某个参数的乘积。As mentioned above, the second prediction weight can be determined based on the weight corresponding to the third neighborhood point. For example, the second prediction weight can be equal to the weight corresponding to the third neighborhood point. Alternatively, the second prediction weight can be based on the product of the weight corresponding to the third neighborhood point and a certain parameter.
前文指出,可以根据第三邻域点的移位系数以及第二预测权重对第二待编码点进行预测,下面给出第二待编码点的一种可能的预测方式。As mentioned above, the second point to be encoded can be predicted according to the shift coefficient of the third neighborhood point and the second prediction weight. A possible prediction method for the second point to be encoded is given below.
示例性地,可以基于如下公式对第二待编码点进行预测:
Exemplarily, the second to-be-encoded point may be predicted based on the following formula:
在上式中,Signal表示第二待编码点的预测结果,Neigh1和Neigh2分别表示与第二待编码点共线的两个邻域点的移位系数。Neigh1和Neigh2位于第二待编码点所在LOD层的上一层。predWeight1和predWeight2分别表示Neigh1和Neigh2对应的预测权重(即前文提到的第二预测权重)。In the above formula, Signal represents the prediction result of the second point to be encoded, and Neigh 1 and Neigh 2 represent the shift coefficients of the two neighboring points collinear with the second point to be encoded. Neigh 1 and Neigh 2 are located in the upper layer of the LOD layer where the second point to be encoded is located. predWeight 1 and predWeight 2 represent the prediction weights corresponding to Neigh 1 and Neigh 2 (i.e., the second prediction weights mentioned above).
predWeight1和predWeight2可以通过下面的公式计算得到:
predWeight1=weight1
predWeight2=weight2
predWeight 1 and predWeight 2 can be calculated using the following formula:
predWeight 1 = weight 1
predWeight 2 = weight 2
sumWeight可以基于如下公式计算得到:
sumWeight=predWeight1+predWeight2
sumWeight can be calculated based on the following formula:
sumWeight=predWeight 1 +predWeight 2
上文对三维网格中的点的变换操作和预测操作进行了详细介绍,下文站在第三待编码点的角度对三维网格中的点的量化操作进行描述。第三待编码点可以是三维网格中的任意一个待编码点。The above describes the transformation operation and prediction operation of points in the three-dimensional grid in detail, and the following describes the quantization operation of points in the three-dimensional grid from the perspective of the third point to be encoded. The third point to be encoded can be any point to be encoded in the three-dimensional grid.
图20中的步骤S2040,即对三维网格中的点的变换系数进行量化,可以包括:根据第三待编码点对应的权重对第三待编码点的变换系数进行量化。本申请实施例在对三维网格中的待编码点进行量化时,考虑该待编码点对应的权重。例如,可以根据待编码点对应的权重选取合适的量化参数;或者,可以根据待编码点对应的权重对量化结果进行不同的处理。在量化过程中考虑待编码点的权重,可以使得量化结果更加合理,有助于提升三维网格中的点的几何信息的编码效率。Step S2040 in Figure 20, i.e., quantizing the transformation coefficients of the points in the three-dimensional grid, may include: quantizing the transformation coefficients of the third point to be encoded according to the weight corresponding to the third point to be encoded. When quantizing the points to be encoded in the three-dimensional grid, the embodiment of the present application considers the weight corresponding to the point to be encoded. For example, a suitable quantization parameter may be selected according to the weight corresponding to the point to be encoded; or, the quantization result may be processed differently according to the weight corresponding to the point to be encoded. Considering the weight of the point to be encoded in the quantization process can make the quantization result more reasonable, which helps to improve the encoding efficiency of the geometric information of the points in the three-dimensional grid.
第三待编码点对应的权重可以基于第三待编码点在三维网格中的空间连接关系确定。例如,第三待编码点对应的权重可以与第三待编码点的邻域点(下称第五邻域点)的数量相关。基于邻域点的数量确定点对应的权重,充分利用了点在三维网格中的连接关系信息,可以使得确定出的点的权重更加合理。The weight corresponding to the third point to be encoded can be determined based on the spatial connection relationship of the third point to be encoded in the three-dimensional grid. For example, the weight corresponding to the third point to be encoded can be related to the number of neighboring points (hereinafter referred to as the fifth neighboring points) of the third point to be encoded. Determining the weight corresponding to the point based on the number of neighboring points makes full use of the connection relationship information of the point in the three-dimensional grid, which can make the weight of the determined point more reasonable.
本申请实施例对第五邻域点的定义方式不作具体限定。例如,第五邻域点可以是与第三待编码点位于同一LOD层中的点。或者,第五邻域点可以是第三待编码点所在LOD层的下一层中的点。或者,第五邻域点可以同时包括上述两个LOD层中的点。作为一个示例,第五邻域点为基于第三待编码点进行预测的点。The embodiment of the present application does not specifically limit the definition of the fifth neighborhood point. For example, the fifth neighborhood point may be a point in the same LOD layer as the third point to be encoded. Alternatively, the fifth neighborhood point may be a point in the next layer of the LOD layer where the third point to be encoded is located. Alternatively, the fifth neighborhood point may include points in both LOD layers. As an example, the fifth neighborhood point is a point predicted based on the third point to be encoded.
在一些实现方式中,第三待编码点对应的权重可以等于第五邻域点的数量。示例性地,第三待编码点包括点1和点2,点1包括5个邻域点,点2包括6个邻域点,则点1的权重可以为5,点2的权重可以为6。In some implementations, the weight corresponding to the third point to be encoded may be equal to the number of the fifth neighboring points. For example, the third point to be encoded includes point 1 and point 2, point 1 includes 5 neighboring points, and point 2 includes 6 neighboring points, then the weight of point 1 may be 5, and the weight of point 2 may be 6.
在一些实现方式中,第三待编码点对应的权重可以基于第五邻域点的数量与第一预测权重的乘积确定。例如,第三待编码点对应的权重可以等于第五邻域点的数量与第一预测权重的乘积。这里提到的第一预测权重可以为预定义的固定值。例如,第一预测权重的取值可以为0.5。在确定点对应的权重时,考虑预测权重,可以使得确定出的权重更加合理。In some implementations, the weight corresponding to the third point to be encoded may be determined based on the product of the number of the fifth neighborhood points and the first prediction weight. For example, the weight corresponding to the third point to be encoded may be equal to the product of the number of the fifth neighborhood points and the first prediction weight. The first prediction weight mentioned here may be a predefined fixed value. For example, the value of the first prediction weight may be 0.5. When determining the weight corresponding to the point, considering the prediction weight may make the determined weight more reasonable.
示例性地,可以基于如下公式确定第三待编码点对应的权重:
Exemplarily, the weight corresponding to the third to-be-encoded point may be determined based on the following formula:
上式中,weight表示第三待编码点中的任意一个点对应的权重,predWeight为第一预测权重(取值可以为0.5)。P表示第五邻域点,weight[i]表示第五邻域点中的第i个点对应的初始权重,该第i个点对应的初始权重可以设置为1。以第三待编码点包括点1和点2,点1包括5个邻域点,点2包括6个邻域点为例,则基于上述公式,点1的权重可以为2.5,点2的权重可以为3(第一预测权重取值0.5)。In the above formula, weight represents the weight corresponding to any point in the third point to be encoded, and predWeight is the first prediction weight (the value can be 0.5). P represents the fifth neighborhood point, and weight[i] represents the initial weight corresponding to the i-th point in the fifth neighborhood point. The initial weight corresponding to the i-th point can be set to 1. For example, the third point to be encoded includes point 1 and point 2, point 1 includes 5 neighborhood points, and point 2 includes 6 neighborhood points. Based on the above formula, the weight of point 1 can be 2.5, and the weight of point 2 can be 3 (the first prediction weight is 0.5).
前文指出,可以根据第三待编码点对应的权重对第三待编码点的变换系数进行量化,下面给出一种可能的实现方式。As mentioned above, the transform coefficient of the third point to be coded may be quantized according to the weight corresponding to the third point to be coded. A possible implementation manner is given below.
例如,在一些实现方式中,可以根据第一量化参数对第三待编码点的变换系数进行量化。第一量化参数可以基于第三待编码点对应的权重确定。也就是说,可以根据待编码点对应的权重,自适应地为待编码点设置量化参数。例如,如果第三待编码点对应的权重较大,说明第三待编码点的重要程度较高。对于重要程度较高的待编码点,第一量化参数的取值可以较小(代表该待编码点的量化程度较低)。又如,如果第三待编码点对应的权重较小,说明第三待编码点的重要程度较低。对于重要程度较低的待编 码点,第一量化参数的取值可以较大(代表该待编码点的量化程度较高)。根据上述量化参数的设计方式,可以保证重建质量,从而提升三维网格中的点的几何编码效率。For example, in some implementations, the transform coefficient of the third point to be encoded can be quantized according to the first quantization parameter. The first quantization parameter can be determined based on the weight corresponding to the third point to be encoded. In other words, the quantization parameter can be adaptively set for the point to be encoded according to the weight corresponding to the point to be encoded. For example, if the weight corresponding to the third point to be encoded is large, it means that the importance of the third point to be encoded is high. For points to be encoded with high importance, the value of the first quantization parameter can be small (indicating that the degree of quantization of the point to be encoded is low). For another example, if the weight corresponding to the third point to be encoded is small, it means that the importance of the third point to be encoded is low. For points to be encoded with low importance, the value of the first quantization parameter can be small (indicating that the degree of quantization of the point to be encoded is low). For code points, the value of the first quantization parameter can be relatively large (indicating that the quantization degree of the code point is relatively high). According to the design method of the quantization parameter, the reconstruction quality can be guaranteed, thereby improving the geometric coding efficiency of the points in the three-dimensional grid.
第一量化参数可以直接基于第三待编码点对应的权重确定。例如,可以预先建立待编码点对应的权重与量化参数之间的映射关系,并基于该映射关系确定第一量化参数。或者,第一量化参数也可以基于第三待编码点对应的权重和第二量化参数确定。这里提到的第二量化参数可以是目标LOD层(即第三待编码点所属的LOD层)对应的量化参数。第二量化参数可以基于初始量化参数和量化调整参数确定。The first quantization parameter can be directly determined based on the weight corresponding to the third point to be encoded. For example, a mapping relationship between the weight corresponding to the point to be encoded and the quantization parameter can be pre-established, and the first quantization parameter can be determined based on the mapping relationship. Alternatively, the first quantization parameter can also be determined based on the weight corresponding to the third point to be encoded and the second quantization parameter. The second quantization parameter mentioned here can be the quantization parameter corresponding to the target LOD layer (i.e., the LOD layer to which the third point to be encoded belongs). The second quantization parameter can be determined based on the initial quantization parameter and the quantization adjustment parameter.
示例性地,第二量化参数可以基于如下公式确定:
QPLvl=liftingQP×ScaleLvl
Exemplarily, the second quantization parameter may be determined based on the following formula:
QP Lvl =liftingQP×Scale Lvl
在上式中,Lvl代表目标LOD层的索引,QPLvl为第二量化参数,liftingQP为初始量化参数,Scale为量化调整参数。In the above formula, Lvl represents the index of the target LOD layer, QP Lvl is the second quantization parameter, liftingQP is the initial quantization parameter, and Scale is the quantization adjustment parameter.
下面给出第三待编码点的量化的一个更为具体的示例。A more specific example of quantization of the third point to be encoded is given below.
例如,可以基于如下公式对第三待编码点进行量化:
For example, the third to-be-encoded point may be quantized based on the following formula:
在上式中,QResi表示第三待编码点的量化结果,Reai表示第三待编码点的变换系数,bitDepth代表移位系数的有效比特深度,QPLvl表示目标LOD层(第三待编码点所在的LOD层)对应的量化参数,weighti表示第三待编码点对应的权重(第三待编码点对应的权重的确定方式可以参见前文,此处不再详述)。In the above formula, QResi represents the quantization result of the third point to be encoded, Rea i represents the transformation coefficient of the third point to be encoded, bitDepth represents the effective bit depth of the shift coefficient, QP Lvl represents the quantization parameter corresponding to the target LOD layer (the LOD layer where the third point to be encoded is located), and weight i represents the weight corresponding to the third point to be encoded (the method for determining the weight corresponding to the third point to be encoded can be found in the previous text and will not be described in detail here).
上文结合图19和图20,对本申请实施例提供的编解码方法进行了详细描述。需要说明的是,在不冲突的情况下,前文任一实施例提及的术语“系数”与“信息”或“值”可以互换使用。例如,前文提到的移位系数可以替换为移位值或移位信息,残差系数可以替换为残差值或残差信息。The above text, in conjunction with Figures 19 and 20, describes in detail the encoding and decoding method provided by the embodiment of the present application. It should be noted that, in the absence of conflict, the terms "coefficient" and "information" or "value" mentioned in any of the above embodiments can be used interchangeably. For example, the shift coefficient mentioned above can be replaced by a shift value or shift information, and the residual coefficient can be replaced by a residual value or residual information.
还需要说明的是,前文各个示例中,解码端对应的预测操作也可以称为反预测操作。编码端的变换操作也可称为更新操作。解码端的反变换操作也可称为更新操作或反更新操作。It should also be noted that in the above examples, the prediction operation corresponding to the decoding end can also be called an inverse prediction operation. The transform operation at the encoding end can also be called an update operation. The inverse transform operation at the decoding end can also be called an update operation or an inverse update operation.
下面结合具体例子,更加详细地描述本申请实施例。应注意,下文中的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。The following is a more detailed description of the present application embodiments in conjunction with specific examples. It should be noted that the examples below are only intended to help those skilled in the art understand the present application embodiments, rather than limiting the present application embodiments to the illustrated specific numerical values or specific scenarios. Those skilled in the art can obviously make various equivalent modifications or changes based on the examples given, and such modifications or changes also fall within the scope of the present application embodiments.
示例1:Example 1:
示例1基于三维网格中的相邻点之间的空间连接关系得到每个点的权重weighti,其中,i=0,1,2…pointCount,pointCount表示三维网格中的点的数量。然后,借助LOD空间结构来对每个点的移位系数进行变换。其中,预测方案仍然采用的是相关技术提供的预测编码方案,即利用共线相邻两点的移位系数来对中间位置点的移位系数进行预测编码,且预测权重为固定的0.5。在对每个点的移位系数进行更新时,更新权重会根据每个点的权重weighti以及预测权重进行自适应得到。Example 1 obtains the weight weight i of each point based on the spatial connection relationship between adjacent points in the three-dimensional grid, where i = 0, 1, 2...pointCount, and pointCount represents the number of points in the three-dimensional grid. Then, the shift coefficient of each point is transformed with the help of the LOD spatial structure. Among them, the prediction scheme still adopts the prediction coding scheme provided by the relevant technology, that is, the shift coefficient of the middle point is predicted and encoded using the shift coefficients of two collinear adjacent points, and the prediction weight is fixed at 0.5. When updating the shift coefficient of each point, the update weight is adaptively obtained according to the weight weight i of each point and the prediction weight.
1.1、整体的编码流程1.1. Overall encoding process
如图21所示,根据LOD空间结构,将整个待编码点集的移位系数划分为低频系数L(N)和高频系数H(N)。接着,利用低频系数L(N)来对高频系数H(N)进行预测。然后,利用预测得到的高频系数H(N)对低频系数L(N)进行自适应更新。As shown in Figure 21, according to the LOD spatial structure, the shift coefficients of the entire set of points to be encoded are divided into low-frequency coefficients L(N) and high-frequency coefficients H(N). Then, the low-frequency coefficients L(N) are used to predict the high-frequency coefficients H(N). Then, the predicted high-frequency coefficients H(N) are used to adaptively update the low-frequency coefficients L(N).
如图22所示为3层的LOD空间结构,编码顺序为从LOD低层到LOD高层的顺序进行,即Lvl2->Lvl1->Lvl0。首先,将整个待编码的移位系数划分为高频系数Lvl2和低频系数Lvl0+Lvl1,在完成Lvl2层的移位系数编码之后,继续将剩余的移位系数划分为高频系数Lvl1和低频系数Lvl0。As shown in FIG22, a three-layer LOD spatial structure is shown, and the coding order is from the low LOD layer to the high LOD layer, that is, Lvl 2 ->Lvl 1 ->Lvl 0. First, the entire shift coefficient to be coded is divided into high-frequency coefficient Lvl 2 and low-frequency coefficient Lvl 0 +Lvl 1. After the coding of the shift coefficient of the Lvl 2 layer is completed, the remaining shift coefficients are further divided into high-frequency coefficient Lvl 1 and low-frequency coefficient Lvl 0 .
1.2、编码端算法1.2 Encoding algorithm
将所有待编码点分配一个初始权重weighti设置为1,即认为所有待编码点同等重要。Assign an initial weight weight i to all the points to be coded and set it to 1, that is, all the points to be coded are considered equally important.
按照三维网格中的点之间的连接关系来对初始权重进行更新,具体的更新见公式如下:
The initial weights are updated according to the connection relationship between the points in the three-dimensional grid. The specific update formula is as follows:
其中,predWeight为预测权重,目前的V-DMC将预测权重设置为固定值0.5。P集合则表示基于当前点进行预测的邻域点集。Among them, predWeight is the prediction weight. The current V-DMC sets the prediction weight to a fixed value of 0.5. The P set represents the neighborhood point set predicted based on the current point.
根据LOD空间结构进行预测,具体的预测算法见公式如下:
signal=predWeight×(Neigh1+Neigh2)Prediction is performed based on the LOD spatial structure. The specific prediction algorithm is shown in the following formula:
signal=predWeight×(Neigh 1 +Neigh 2 )
其中,Neigh1和Neigh2分别代表当前点共线的两个邻域点的移位系数,并且这两个邻域点位于当前层的上层LOD。Among them, Neigh 1 and Neigh 2 represent the shift coefficients of two neighboring points that are collinear with the current point, and these two neighboring points are located in the upper LOD of the current layer.
完成当前层所有点的移位系数的预测之后,利用每个点的移位系数的预测残差来对上层LOD中点的移位系数进行更新,具体的更新见公式如下:
After completing the prediction of the displacement coefficients of all points in the current layer, the displacement coefficients of the points in the upper LOD are updated using the predicted residual of the displacement coefficients of each point. The specific update formula is as follows:
其中,updateWeighti的具体计算方式如下:
updateWeighti=predWeight×weighti
The specific calculation method of updateWeight i is as follows:
updateWeight i = predWeight × weight i
predWeight为预测权重,weighti为每个点的权重。predWeight is the prediction weight, and weight i is the weight of each point.
sumWeight的计算方式如下:
sumWeight is calculated as follows:
signali代表基于当前点进行预测的每个点的移位残差系数。Signal i represents the shifted residual coefficients of each point predicted based on the current point.
不断重复上述预测以及更新过程,根据LOD的空间结构,由下层至上层进行变换,最终将整个网格的移位系数从空域变换至频域,从而完成整个网格的几何编码。The above prediction and update process is repeated continuously, and the transformation is performed from the lower layer to the upper layer according to the spatial structure of the LOD, and finally the shift coefficient of the entire grid is transformed from the spatial domain to the frequency domain, thereby completing the geometric encoding of the entire grid.
1.3、解码端算法1.3 Decoding algorithm
解码端算法与编码端算法是一个完全相反的过程,解码端在完成移位系数的熵解码之后,根据LOD空间结构从LOD的高层不断进行反变换直至到LOD的最低层,从而完成整个网格的几何信息重建。具体的解码算法如下所述。The decoding algorithm is a completely opposite process to the encoding algorithm. After completing the entropy decoding of the shift coefficients, the decoding end continuously performs inverse transformation from the high level of LOD to the lowest level of LOD according to the LOD spatial structure, thereby completing the geometric information reconstruction of the entire grid. The specific decoding algorithm is described as follows.
首先,将所有待解码点分配一个初始权重weighti设置为1,即认为所有待解码点同等重要。First, all the points to be decoded are assigned an initial weight weight i set to 1, that is, all the points to be decoded are considered equally important.
按照三维网格中的点之间的连接关系来对权重进行更新,具体的更新见公式如下:
The weights are updated according to the connection relationship between the points in the three-dimensional grid. The specific update formula is as follows:
其中,predWeight为预测权重值,目前的V-DMC将预测权重设置为固定值0.5。P集合为基于当前点进行预测的邻域点集。Among them, predWeight is the prediction weight value. The current V-DMC sets the prediction weight to a fixed value of 0.5. The P set is the neighborhood point set predicted based on the current point.
根据LOD空间结构进行反变换,利用点之间的空间连接关系,得到基于当前点进行预测的邻域点集。具体的反变换公式如下:
According to the LOD spatial structure, the inverse transformation is performed, and the spatial connection relationship between points is used to obtain the neighborhood point set based on the current point for prediction. The specific inverse transformation formula is as follows:
其中,updateWeighti的具体计算方式如下:
updateWeighti=predWeight×weighti
The specific calculation method of updateWeight i is as follows:
updateWeight i = predWeight × weight i
predWeight为预测权重,weighti为每个点的权重。predWeight is the prediction weight, and weight i is the weight of each point.
sumWeight的计算方式如下:
sumWeight is calculated as follows:
signali代表基于当前点进行预测的点的移位残差系数。Signal i represents the shifted residual coefficient of the point predicted based on the current point.
根据LOD的空间结构进行反预测,具体的预测算法见公式如下:
signal+=predWeight×(Neigh1+Neigh2)According to the spatial structure of LOD, reverse prediction is performed. The specific prediction algorithm is shown in the following formula:
signal+=predWeight×(Neigh 1 +Neigh 2 )
其中,Neigh1和Neigh2分别代表当前点共线的两个邻域点,并且这两个邻域点位于上层LOD。Among them, Neigh 1 and Neigh 2 represent two neighboring points on the same line as the current point, and these two neighboring points are located in the upper LOD.
不断重复上文描述的反变换和反预测过程,根据LOD空间结构,由上层至下层进行反变换,最终将整个网格的移位系数从频域变换至空域,从而完成整个网格的几何编码。The inverse transformation and inverse prediction process described above is repeated continuously, and the inverse transformation is performed from the upper layer to the lower layer according to the LOD spatial structure, and finally the shift coefficients of the entire grid are transformed from the frequency domain to the spatial domain, thereby completing the geometric encoding of the entire grid.
在完成三维网格中的每个点的移位系数的反变换之后,可以利用初始几何位置信息(细分网格的几何信息)与每个点的重建移位系数进行相加,确定三维网格的重建几何信息。After completing the inverse transformation of the shift coefficient of each point in the three-dimensional grid, the reconstructed geometric information of the three-dimensional grid can be determined by adding the initial geometric position information (geometric information of the subdivided grid) to the reconstructed shift coefficient of each point.
示例一提出一种基于网格空间连接关系进行提升变换的移位编码方案。具体地,对基础网格划分之后的点进行LOD空间划分,基于LOD空间结构对整个网格中点的移位进行提升变换(包括预测和变换)。预测过程利用当前点共线的两个邻域点进行预测编码,变换过程会根据基于当前点进行预测的邻域点集中的每个点的移位系数、权重以及预测权重来对当前点的移位系数进行自适应更新。也就是说,示例一将更新算法中使用的固定更新权重调整为:根据每个待编码点的邻域点数目以及每个邻域点的权重和邻域点的移位残差系数进行更新。这种编码方案可通过有效地利用点之间的空域关系来对每个点的移位系数进行变换编码,从而可以进一步提升网格的几何编码效率。Example 1 proposes a shift coding scheme for lifting transformation based on the spatial connection relationship of the grid. Specifically, LOD space division is performed on the points after the basic grid division, and the shift of the points in the entire grid is lifted and transformed (including prediction and transformation) based on the LOD space structure. The prediction process uses two colinear neighboring points of the current point for prediction coding, and the transformation process adaptively updates the shift coefficient of the current point according to the shift coefficient, weight and prediction weight of each point in the set of neighboring points predicted based on the current point. In other words, Example 1 adjusts the fixed update weights used in the update algorithm to: update according to the number of neighboring points of each point to be encoded, the weight of each neighboring point, and the shift residual coefficient of the neighboring point. This coding scheme can further improve the geometric coding efficiency of the grid by effectively utilizing the spatial relationship between points to transform the shift coefficient of each point.
采用测试条件C1和C2,基于V-DMC-4.0对示例1提供的技术方案进行测试。以几何有损属性有损测试环境为例,BD-Rate为衡量压缩效率的性能指标,当BD-Rate小于0时,代表编码效率相对于传统编码方案有了提升。通过下表可以看出,相比V-DMC-4.0,在C1的条件下,D1和D2分别提升约2.4%、2.4%,Luma分量提升约0.4%;在C2的条件下,D1和D2分别提升2.1%、2.1%,Luma分量提升约0.4%。
The technical solution provided in Example 1 was tested based on V-DMC-4.0 using test conditions C1 and C2. Taking the lossy test environment of geometric lossy attributes as an example, BD-Rate is a performance indicator for measuring compression efficiency. When BD-Rate is less than 0, it means that the encoding efficiency has been improved compared to the traditional encoding scheme. It can be seen from the table below that compared with V-DMC-4.0, under the condition of C1, D1 and D2 increased by approximately 2.4% and 2.4% respectively, and the Luma component increased by approximately 0.4%; under the condition of C2, D1 and D2 increased by 2.1% and 2.1% respectively, and the Luma component increased by approximately 0.4%.
示例2:Example 2:
示例2基于网格中的相邻点之间的空间连接关系得到每个点的权重weighti,其中,i=0,1,2…pointCount,pointCount表示三维网格中的点的数量。在编码过程中,首先,对当前网格的移位系数进行提升变换,将每个点的移位系数从空域变换至频域;接着,在完成变换之后,对移位系数进行量化处理。在量化处理时,可以根据当前点的权重来自适应决定当前待编码点的量化参数。Example 2 obtains the weight weight i of each point based on the spatial connection relationship between adjacent points in the grid, where i = 0, 1, 2...pointCount, and pointCount represents the number of points in the three-dimensional grid. During the encoding process, first, the shift coefficient of the current grid is lifted and transformed to transform the shift coefficient of each point from the spatial domain to the frequency domain; then, after the transformation is completed, the shift coefficient is quantized. During the quantization process, the quantization parameter of the current point to be encoded can be adaptively determined according to the weight of the current point.
2.1、整个编码流程2.1 The entire encoding process
如图22所示,根据LOD空间结构,将整个待编码网格的点划分为3个LOD层。编码顺序为从LOD低层到LOD高层的顺序进行,即Lvl2->Lvl1->Lvl0。首先,将整个待编码的移位系数划分为高频系数Lvl2和低频系数Lvl0+Lvl1,在完成Lvl2层的移位系数编码之后,继续将剩余的移位系数划分为高频系数Lvl1和低频系数Lvl0。As shown in FIG22 , according to the LOD spatial structure, the points of the entire grid to be encoded are divided into three LOD layers. The encoding order is from the low LOD layer to the high LOD layer, that is, Lvl 2 ->Lvl 1 ->Lvl 0. First, the entire shift coefficient to be encoded is divided into high-frequency coefficients Lvl 2 and low-frequency coefficients Lvl 0 +Lvl 1. After completing the encoding of the shift coefficients of the Lvl 2 layer, the remaining shift coefficients are further divided into high-frequency coefficients Lvl 1 and low-frequency coefficients Lvl 0 .
2.2、编码端算法2.2 Encoding algorithm
将所有待编码点分配一个初始权重weighti设置为1,即认为所有待编码点同等重要。Assign an initial weight weight i to all the points to be coded and set it to 1, that is, all the points to be coded are considered to be equally important.
按照三维网格中的点之间的连接关系来对初始权重进行更新,具体的更新见公式如下:
The initial weights are updated according to the connection relationship between the points in the three-dimensional grid. The specific update formula is as follows:
其中,predWeight为预测权重,目前的V-DMC将预测权重设置为固定值0.5。P集合则表示基于当前点进行预测的邻域点集。Among them, predWeight is the prediction weight. The current V-DMC sets the prediction weight to a fixed value of 0.5. The P set represents the neighborhood point set predicted based on the current point.
根据LOD空间结构进行预测,具体的预测算法见公式如下:
Signal=predWeight×(Neigh1+Neigh2)Prediction is performed based on the LOD spatial structure. The specific prediction algorithm is shown in the following formula:
Signal=predWeight×(Neigh 1 +Neigh 2 )
其中,Neigh1和Neigh2分别代表当前点共线的两个邻域点的移位系数,并且这两个邻域点位于当前层的上层LOD。Among them, Neigh 1 and Neigh 2 represent the shift coefficients of two neighboring points that are collinear with the current point, and these two neighboring points are located in the upper LOD of the current layer.
完成当前层所有点移位系数的预测之后,利用每个点移位系数的预测残差来对上层LOD中点的移位系数进行更新,具体的更新见公式如下:
After completing the prediction of the displacement coefficients of all points in the current layer, the displacement coefficients of the midpoints in the upper LOD are updated using the prediction residual of each point displacement coefficient. The specific update formula is as follows:
其中,updateWeight为更新权重,P集合为基于当前点进行预测的点集。Among them, updateWeight is the update weight, and P set is the point set predicted based on the current point.
对当前层的移位系数进行自适应量化,具体的量化方式如下:
The shift coefficient of the current layer is adaptively quantized. The specific quantization method is as follows:
其中,Resi表示当前点的移位系数的变换系数,bitDepth代表当前几何编码中,移位系数的有效比特深度,QPLvl代表当前LOD层的量化参数,weighti为当前点对应的权重。Among them, Resi represents the transformation coefficient of the shift coefficient of the current point, bitDepth represents the effective bit depth of the shift coefficient in the current geometric coding, QP Lvl represents the quantization parameter of the current LOD layer, and weight i is the weight corresponding to the current point.
根据LOD的空间结构,不断重复上文描述的预测、更新以及量化过程,从而完成整个网格的几何编码。According to the spatial structure of LOD, the prediction, update and quantization process described above is repeated to complete the geometric encoding of the entire grid.
2.3、解码端算法2.3 Decoding algorithm
解码端算法与编码端算法是一个完全相反的过程。编码端对点的移位系数进行编码时,根据LOD的空间结构从高层不断进行反变换,直至到LOD的低层。解码端在完成移位系数熵解码之后,根据LOD的空间结构从LOD的高层不断进行反变换直至到LOD的低层,从而完成整个mesh的几何信息重建。The decoding algorithm is a completely opposite process to the encoding algorithm. When the encoding end encodes the shift coefficient of the point, it continuously performs inverse transformation from the high level to the low level of the LOD according to the spatial structure of the LOD. After completing the entropy decoding of the shift coefficient, the decoding end continuously performs inverse transformation from the high level of the LOD to the low level of the LOD according to the spatial structure of the LOD, thereby completing the geometric information reconstruction of the entire mesh.
将所有待解码点分配一个初始权重weighti设置为1,即认为所有待解码点同等重要。All the points to be decoded are assigned an initial weight weight i set to 1, which means that all the points to be decoded are considered equally important.
按照三维网格中的点之间的连接关系来对初始权重进行更新,具体的更新见公式如下:
The initial weights are updated according to the connection relationship between the points in the three-dimensional grid. The specific update formula is as follows:
其中,predWeight为预测权重,目前的V-DMC将预测权重设置为固定值0.5。P集合则表示基于当前点进行预测的邻域点集。Among them, predWeight is the prediction weight. The current V-DMC sets the prediction weight to a fixed value of 0.5. The P set represents the neighborhood point set predicted based on the current point.
对当前层的移位系数进行自适应反量化,具体的反量化方式如下:
The shift coefficients of the current layer are adaptively dequantized. The specific dequantization method is as follows:
其中,Resi表示当前点的移位系数的量化系数,bitDepth代表当前几何编码中,移位系数的有效比特深度,QPLvl代表当前LOD层的量化参数,weighti为当前点赌赢的权重,InvResi表示当前点的反量化结果。Among them, Res i represents the quantization coefficient of the shift coefficient of the current point, bitDepth represents the effective bit depth of the shift coefficient in the current geometric coding, QP Lvl represents the quantization parameter of the current LOD layer, weight i is the weight of the current point bet, and InvRes i represents the inverse quantization result of the current point.
根据LOD的空间结构进行反变换,具体的反变换公式如下:
According to the spatial structure of LOD, the inverse transformation is performed. The specific inverse transformation formula is as follows:
其中,updateWeight为更新权重,P集合为基于当前点进行预测邻域点集。Among them, updateWeight is the update weight, and P set is the set of neighborhood points predicted based on the current point.
根据LOD的空间结构进行反预测,具体的预测参见如下公式:
Signal=predWeight×(Neigh1+Neigh2)According to the spatial structure of LOD, reverse prediction is performed. For specific prediction, see the following formula:
Signal=predWeight×(Neigh 1 +Neigh 2 )
其中,Neigh1和Neigh2分别代表当前点共线的两个邻域点的移位系数,并且这两个邻域点位于当前点的上一LOD层。Among them, Neigh 1 and Neigh 2 represent the shift coefficients of two neighboring points on the same line as the current point, and these two neighboring points are located at the upper LOD layer of the current point.
不断重复上述反量化、反变换和反预测过程,从而完成整个网格的几何解码。The above-mentioned inverse quantization, inverse transformation and inverse prediction processes are continuously repeated to complete the geometric decoding of the entire grid.
在完成三维网格中的每个点的移位系数的反变换之后,可以利用初始几何位置信息(细分网格的几何信息)与每个点的重建移位系数进行相加,确定三维网格的重建几何信息。After completing the inverse transformation of the shift coefficient of each point in the three-dimensional grid, the reconstructed geometric information of the three-dimensional grid can be determined by adding the initial geometric position information (geometric information of the subdivided grid) to the reconstructed shift coefficient of each point.
本方案提出一种基于网格空间连接关系进行自适应量化的移位编码方案。具体地,对基础网格划分之后的点进行LOD空间划分;基于LOD的空间结构来对网格中的点的移位进行提升变换(包括预测和变换)。预测过程中利用当前点共线的两个邻域点进行预测编码。变换过程会根据基于当前点进行预测的领域点集中的每个点的移位系数,以及固定的更新权重来对当前点的移位系数进行自适应更新。在完成移位系数变换之后,对移位系数进行量化编码。在量化编码时,根据当前网格中的不同点的权重对不同点的移位系数进行自适应量化编码。点的权重可以通过利用当前网格中的点之间的空域连接关系得到。对权重较大、重要程度较高的点,可以采用较小的量化程度,对权重较小、重要程度较低的点,可以采用较高的量化程度。基于这样的方案,可以在保证整个网格的重建质量的前提下,降低网格的几何信息的码率大小,从而可以进一步提升网格的几何信息的编码效率。This scheme proposes a shift coding scheme for adaptive quantization based on the spatial connection relationship of the grid. Specifically, the points after the basic grid division are divided into LOD space; the shift of the points in the grid is lifted and transformed (including prediction and transformation) based on the spatial structure of LOD. In the prediction process, two colinear neighboring points of the current point are used for prediction coding. The transformation process will adaptively update the shift coefficient of the current point according to the shift coefficient of each point in the domain point set predicted based on the current point, and the fixed update weight. After completing the shift coefficient transformation, the shift coefficient is quantized and encoded. During quantization coding, the shift coefficients of different points are adaptively quantized and encoded according to the weights of different points in the current grid. The weight of the point can be obtained by utilizing the spatial connection relationship between the points in the current grid. For points with larger weights and higher importance, a smaller quantization degree can be used, and for points with smaller weights and lower importance, a higher quantization degree can be used. Based on such a scheme, the code rate of the geometric information of the grid can be reduced while ensuring the reconstruction quality of the entire grid, thereby further improving the coding efficiency of the geometric information of the grid.
采用测试条件C1和C2,基于V-DMC-4.0对示例1提供的技术方案进行测试。以几何有损属性有损测试环境为例,BD-Rate为衡量压缩效率的性能指标,当BD-Rate小于0时,代表编码效率相对于传统编码方案有了提升。通过下表可以看出,相比V-DMC-4.0,在C1的条件下,D1和D2分别提升约0.2%、0.2%,Luma分量提升约0.0%~0.1%;在C2的条件下,D1和D2分别提升0.2%、0.2%,Luma分量提升约约0.1%。
The technical solution provided in Example 1 was tested based on V-DMC-4.0 using test conditions C1 and C2. Taking the lossy test environment of geometric lossy attributes as an example, BD-Rate is a performance indicator for measuring compression efficiency. When BD-Rate is less than 0, it means that the encoding efficiency has been improved compared to the traditional encoding scheme. It can be seen from the table below that compared with V-DMC-4.0, under the condition of C1, D1 and D2 are increased by approximately 0.2% and 0.2% respectively, and the Luma component is increased by approximately 0.0% to 0.1%; under the condition of C2, D1 and D2 are increased by 0.2% and 0.2% respectively, and the Luma component is increased by approximately 0.1%.
示例3:Example 3:
在示例1或示例2的基础上,在得到当前点的权重之后,可以根据当前点的权重来自适应更新每个点的预测权重,即将当前点的预测算法修改为如下:
Based on Example 1 or Example 2, after obtaining the weight of the current point, the prediction weight of each point can be adaptively updated according to the weight of the current point, that is, the prediction algorithm of the current point is modified as follows:
其中,predWeight1可以通过利用第一个邻域点的权重得到,即
predWeight1=weight1
predWeight2=weight2
Among them, predWeight 1 can be obtained by using the weight of the first neighborhood point, that is,
predWeight 1 = weight 1
predWeight 2 = weight 2
则,sumWeight的计算方式具体如下:
sumWeight=ptedWeight1+predWeight2
Then, sumWeight is calculated as follows:
sumWeight=ptedWeight 1 +predWeight 2
基于这样的编码方案,在对当前点的移位系数进行预测编码时,同样利用到网格点之间的空域连接关系,从而可以进一步提升网格的几何信息的编码效率。Based on such a coding scheme, when predictive coding is performed on the shift coefficient of the current point, the spatial connection relationship between the grid points is also used, thereby further improving the coding efficiency of the geometric information of the grid.
上文结合图1至图22,详细描述了本申请的方法实施例,下面结合图23至图26,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。The method embodiment of the present application is described in detail above in conjunction with Figures 1 to 22, and the device embodiment of the present application is described in detail below in conjunction with Figures 23 to 26. It should be understood that the description of the method embodiment corresponds to the description of the device embodiment, so the part not described in detail can refer to the previous method embodiment.
图23为本申请一个实施例提供的解码器的结构示意图。图23所示的解码器2300包括第一确定单元2310、第二确定单元2320、第三确定单元2330以及预测单元2340。第一确定单元2310配置为解析码流,确定三维网格中的点的量化系数。第二确定单元2320配置为对所述三维网格中的点的量化系数进行反量化,确定所述三维网格中的点的反量化系数。第三确定单元2330配置为对第一层中的点的反量化系数进行反变换,确定所述第一层中的点的移位系数。预测单元2340配置为根据所述第一层中的点的移位系数,对第二层中的点的移位系数进行预测。所述三维网格中的点属于多个LOD层,所述第一层和所述第二层为所述多个LOD层中的相邻两层,且所述第一层为所述第二层的上一层。FIG23 is a schematic diagram of the structure of a decoder provided by an embodiment of the present application. The decoder 2300 shown in FIG23 includes a first determination unit 2310, a second determination unit 2320, a third determination unit 2330, and a prediction unit 2340. The first determination unit 2310 is configured to parse the code stream and determine the quantization coefficients of the points in the three-dimensional grid. The second determination unit 2320 is configured to dequantize the quantization coefficients of the points in the three-dimensional grid and determine the dequantization coefficients of the points in the three-dimensional grid. The third determination unit 2330 is configured to perform an inverse transformation on the dequantization coefficients of the points in the first layer and determine the shift coefficients of the points in the first layer. The prediction unit 2340 is configured to predict the shift coefficients of the points in the second layer according to the shift coefficients of the points in the first layer. The points in the three-dimensional grid belong to multiple LOD layers, the first layer and the second layer are two adjacent layers in the multiple LOD layers, and the first layer is the upper layer of the second layer.
在一些实现方式中,第三确定单元2330被配置为:根据第一邻域点的反量化系数以及更新权重,对所述第一层中的第一待解码点的反量化系数进行反变换,其中,所述第一邻域点为所述第一待解码点的邻域点,所述更新权重基于所述第一邻域点对应的权重确定。In some implementations, the third determination unit 2330 is configured to: perform an inverse transformation on the inverse quantization coefficient of the first point to be decoded in the first layer according to the inverse quantization coefficient of the first neighborhood point and the updated weight, wherein the first neighborhood point is a neighborhood point of the first point to be decoded, and the updated weight is determined based on the weight corresponding to the first neighborhood point.
在一些实现方式中,所述更新权重基于所述第一邻域点对应的权重以及第一预测权重确定。In some implementations, the update weight is determined based on the weight corresponding to the first neighborhood point and the first prediction weight.
在一些实现方式中,所述更新权重基于所述第一邻域点对应的权重与所述第一预测权重的乘积确定。In some implementations, the updated weight is determined based on the product of the weight corresponding to the first neighborhood point and the first prediction weight.
在一些实现方式中,所述第一邻域点对应的权重与第二邻域点的数量相关,所述第二邻域点为所述第一邻域点的邻域点;或者,所述第一邻域点对应的权重基于所述第一邻域点所在LOD层对应的权重确定。In some implementations, the weight corresponding to the first neighborhood point is related to the number of second neighborhood points, and the second neighborhood points are neighborhood points of the first neighborhood point; or, the weight corresponding to the first neighborhood point is determined based on the weight corresponding to the LOD layer where the first neighborhood point is located.
在一些实现方式中,所述第一邻域点对应的权重等于所述第二邻域点的数量;或者,所述第一邻域点对应的权重等于所述第二邻域点的数量与第一预测权重的乘积。In some implementations, the weight corresponding to the first neighborhood point is equal to the number of the second neighborhood points; or, the weight corresponding to the first neighborhood point is equal to the product of the number of the second neighborhood points and the first prediction weight.
在一些实现方式中,所述第二邻域点为基于所述第一邻域点进行预测的点。In some implementations, the second neighborhood point is a point predicted based on the first neighborhood point.
在一些实现方式中,所述第一邻域点为基于所述第一待解码点进行预测的点。In some implementations, the first neighborhood point is a point predicted based on the first point to be decoded.
在一些实现方式中,预测单元2340配置为:根据第三邻域点的移位系数以及第二预测权重,对第二待解码点进行预测,所述第二待解码点为所述第二层中的任意一点,所述第三邻域点为所述第二待解码点在所述第一层中的邻域点,所述第二预测权重基于所述第三邻域点对应的权重确定。In some implementations, the prediction unit 2340 is configured to: predict the second point to be decoded based on the shift coefficient of the third neighborhood point and the second prediction weight, the second point to be decoded is any point in the second layer, the third neighborhood point is the neighborhood point of the second point to be decoded in the first layer, and the second prediction weight is determined based on the weight corresponding to the third neighborhood point.
在一些实现方式中,所述第二预测权重等于所述第三邻域点对应的权重。In some implementations, the second prediction weight is equal to the weight corresponding to the third neighborhood point.
在一些实现方式中,所述第三邻域点对应的权重与第四邻域点的数量关联,所述第四邻域点为所述第三邻域点的邻域点;或者,所述第三邻域点对应的权重基于所述第三邻域点所在LOD层对应的权重确定。In some implementations, the weight corresponding to the third neighborhood point is associated with the number of fourth neighborhood points, and the fourth neighborhood point is a neighborhood point of the third neighborhood point; or, the weight corresponding to the third neighborhood point is determined based on the weight corresponding to the LOD layer where the third neighborhood point is located.
在一些实现方式中,所述第三邻域点对应的权重等于所述第四邻域点的数量;或者,所述第三邻域点对应的权重等于所述第四邻域点的数量与第一预测权重的乘积。In some implementations, the weight corresponding to the third neighborhood point is equal to the number of the fourth neighborhood points; or, the weight corresponding to the third neighborhood point is equal to the product of the number of the fourth neighborhood points and the first prediction weight.
在一些实现方式中,所述第四邻域点为基于所述第三邻域点进行预测的点。In some implementations, the fourth neighborhood point is a point predicted based on the third neighborhood point.
在一些实现方式中,所述第三邻域点为所述第一层中的与所述第二待解码点共线的点。In some implementations, the third neighborhood point is a point in the first layer that is colinear with the second point to be decoded.
在一些实现方式中,第二确定单元2320配置为:根据第三待解码点对应的权重对所述第三待解码点的量化系数进行反量化,其中,所述第三待解码为所述三维网络中的任意一个点。In some implementations, the second determining unit 2320 is configured to: dequantize the quantization coefficient of the third point to be decoded according to a weight corresponding to the third point to be decoded, wherein the third point to be decoded is any point in the three-dimensional network.
在一些实现方式中,第二确定单元2320配置为:根据第一量化参数对所述第三待解码点的量化系数进行反量化,所述第一量化参数基于所述第三待解码点对应的权重确定。In some implementations, the second determining unit 2320 is configured to: perform inverse quantization on the quantization coefficient of the third point to be decoded according to a first quantization parameter, where the first quantization parameter is determined based on a weight corresponding to the third point to be decoded.
在一些实现方式中,所述第一量化参数基于所述第三待解码点对应的权重和第二量化参数确定,其中,所述第三待解码点位于所述多个LOD层中的目标LOD层,所述第二量化参数为所述目标LOD层对应的量化参数。In some implementations, the first quantization parameter is determined based on the weight corresponding to the third point to be decoded and the second quantization parameter, wherein the third point to be decoded is located at a target LOD layer among the multiple LOD layers, and the second quantization parameter is a quantization parameter corresponding to the target LOD layer.
在一些实现方式中,所述第二量化参数基于初始量化参数和量化调整参数确定。In some implementations, the second quantization parameter is determined based on an initial quantization parameter and a quantization adjustment parameter.
在一些实现方式中,所述第三待解码点对应的权重越大,所述第一量化参数的取值越小。In some implementations, the greater the weight corresponding to the third point to be decoded, the smaller the value of the first quantization parameter.
在一些实现方式中,所述第三待解码点对应的权重与第五邻域点的数量相关,所述第五邻域点为所述第三待解码点的邻域点。In some implementations, the weight corresponding to the third point to be decoded is related to the number of fifth neighborhood points, and the fifth neighborhood points are neighborhood points of the third point to be decoded.
在一些实现方式中,所述第三待解码点对应的权重等于所述第五邻域点的数量;或者,所述第三待解码点对应的权重等于所述第五邻域点的数量与第一预测权重的乘积。 In some implementations, the weight corresponding to the third point to be decoded is equal to the number of the fifth neighborhood points; or, the weight corresponding to the third point to be decoded is equal to the product of the number of the fifth neighborhood points and the first prediction weight.
在一些实现方式中,所述第五邻域点为基于所述第三待解码点进行预测的点。In some implementations, the fifth neighborhood point is a point predicted based on the third point to be decoded.
在一些实现方式中,所述第一预测权重的取值为预定义的固定值。In some implementations, the value of the first prediction weight is a predefined fixed value.
在一些实现方式中,所述第一预测权重的取值为0.5。In some implementations, the value of the first prediction weight is 0.5.
在一些实现方式中,所述解码器2300还包括:第四确定单元,配置为:解析码流,确定基础网格中的点的几何信息;根据所述基础网格中的点的几何信息,对所述基础网格进行划分,确定所述细分网格中的点的几何信息;根据所述三维网格中的点的移位系数以及所述细分网格中的点的几何信息,确定所述三维网格中的点的重建几何信息。In some implementations, the decoder 2300 also includes: a fourth determination unit, configured to: parse the code stream to determine the geometric information of the points in the basic grid; divide the basic grid according to the geometric information of the points in the basic grid to determine the geometric information of the points in the subdivided grid; determine the reconstructed geometric information of the points in the three-dimensional grid according to the shift coefficients of the points in the three-dimensional grid and the geometric information of the points in the subdivided grid.
可以理解地,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。It is understandable that in the embodiments of the present application, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc., and of course, it may be a module, or it may be non-modular. Moreover, the components in the present embodiment may be integrated into a processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of a software functional module.
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。If the integrated unit is implemented in the form of a software function 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 is essentially 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. The computer software product is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, server, or network device, etc.) or a processor to perform all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk, etc., various media that can store program codes.
因此,本申请实施例提供了一种计算机可读存储介质,应用于解码器2300,该计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述实施例中任一项所述的解码方法。Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the decoder 2300. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it implements the decoding method described in any one of the aforementioned embodiments.
基于上述解码器的组成以及计算机可读存储介质,参见图24,其示出了本申请实施例提供的解码器的具体硬件结构示意图。如图24所示,解码器2400可以包括:通信接口2410、存储器2420和处理器2430;各个组件通过总线系统2440耦合在一起。可理解,总线系统2440用于实现这些组件之间的连接通信。总线系统2440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图24中将各种总线都标为总线系统2440。其中,Based on the composition of the above-mentioned decoder and the computer-readable storage medium, refer to Figure 24, which shows a specific hardware structure diagram of the decoder provided in an embodiment of the present application. As shown in Figure 24, the decoder 2400 may include: a communication interface 2410, a memory 2420 and a processor 2430; each component is coupled together through a bus system 2440. It can be understood that the bus system 2440 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 2440 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are marked as bus system 2440 in Figure 24. Among them,
通信接口2410,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;Communication interface 2410, used for receiving and sending signals during the process of sending and receiving information with other external network elements;
存储器2420,用于存储计算机程序;Memory 2420, used for storing computer programs;
处理器2430,用于在运行所述计算机程序时,执行:The processor 2430 is configured to, when running the computer program, execute:
解析码流,确定三维网格中的点的量化系数;Parse the bitstream and determine the quantization coefficients of the points in the three-dimensional grid;
对所述三维网格中的点的量化系数进行反量化,确定所述三维网格中的点的反量化系数;Dequantizing the quantized coefficients of the points in the three-dimensional grid to determine the dequantized coefficients of the points in the three-dimensional grid;
对第一层中的点的反量化系数进行反变换,确定所述第一层中的点的移位系数;Performing an inverse transformation on the inverse quantization coefficients of the points in the first layer to determine the shift coefficients of the points in the first layer;
根据所述第一层中的点的移位系数,对第二层中的点的移位系数进行预测;Predicting the shift coefficients of the points in the second layer according to the shift coefficients of the points in the first layer;
其中,所述三维网格中的点属于多个LOD层,所述第一层和所述第二层为所述多个LOD层中的相邻两层,且所述第一层为所述第二层的上一层。The points in the three-dimensional grid belong to multiple LOD layers, the first layer and the second layer are two adjacent layers in the multiple LOD layers, and the first layer is an upper layer of the second layer.
可以理解,本申请实施例中的存储器2420可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DRRAM)。本申请描述的系统和方法的存储器2420旨在包括但不限于这些和任意其它适合类型的存储器。It can be understood that the memory 2420 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchlink DRAM (SLDRAM), and direct rambus RAM (DRRAM). The memory 2420 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
而处理器2430可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2430中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2430可以是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的 硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2420,处理器2430读取存储器2420中的信息,结合其硬件完成上述方法的步骤。The processor 2430 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit in the processor 2430 or the instructions in software form. The above-mentioned processor 2430 can be a general-purpose processor, a digital signal processor (digital signal processor, DSP), an application specific integrated circuit (application specific integrated circuit, ASIC), a field programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The various methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application can be directly reflected as being executed by a hardware decoding processor, or using a decoding processor. The hardware and software modules are combined and executed. The software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory 2420, and the processor 2430 reads the information in the memory 2420 and completes the steps of the above method in combination with its hardware.
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(application specific integrated circuits,ASIC)、数字信号处理器(digital signal processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(programmable logic device,PLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。It is understood that the embodiments described in this application can be implemented in 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 (ASIC), digital signal processors (DSP), digital signal processing devices (DSPD), programmable logic devices (PLD), field programmable gate arrays (FPGA), general processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof. For software implementation, the technology described in this application can be implemented by modules (such as processes, functions, etc.) that perform the functions described in this application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.
可选地,作为另一个实施例,处理器2430还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的解码方法。Optionally, as another embodiment, the processor 2430 is further configured to execute the decoding method described in any one of the aforementioned embodiments when running the computer program.
图25为本申请一个实施例提供的编码器的结构示意图。图25的编码器2500包括第一确定单元2510、第二确定单元2520以及变换单元2530。第一确定单元2510配置为对三维网格中的点进行细节层次LOD划分,确定多个LOD层,所述多个LOD层包括相邻的第一层和第二层,所述第一层为所述第二层的上一层。第二确定单元2520配置为对所述第二层中的点的移位系数进行预测,确定所述第二层中的点的残差系数。变换单元2530配置为根据所述第二层中的点的残差系数,对所述第一层中的点的移位系数进行变换。FIG25 is a schematic diagram of the structure of an encoder provided by an embodiment of the present application. The encoder 2500 of FIG25 includes a first determination unit 2510, a second determination unit 2520, and a transformation unit 2530. The first determination unit 2510 is configured to perform detail level LOD division on points in a three-dimensional grid, and determine multiple LOD layers, wherein the multiple LOD layers include adjacent first and second layers, and the first layer is the upper layer of the second layer. The second determination unit 2520 is configured to predict the shift coefficients of the points in the second layer and determine the residual coefficients of the points in the second layer. The transformation unit 2530 is configured to transform the shift coefficients of the points in the first layer according to the residual coefficients of the points in the second layer.
在一些实现方式中,变换单元2530配置为:根据第一邻域点的残差系数以及更新权重,对所述第一层中的第一待编码点的移位系数进行变换,其中,所述第一邻域点为所述第一待编码点在所述第二层中的邻域点,所述更新权重基于所述第一邻域点对应的权重确定。In some implementations, the transformation unit 2530 is configured to transform the shift coefficient of the first point to be encoded in the first layer according to the residual coefficient of the first neighborhood point and the update weight, wherein the first neighborhood point is the neighborhood point of the first point to be encoded in the second layer, and the update weight is determined based on the weight corresponding to the first neighborhood point.
在一些实现方式中,所述更新权重基于所述第一邻域点对应的权重以及第一预测权重确定。In some implementations, the update weight is determined based on the weight corresponding to the first neighborhood point and the first prediction weight.
在一些实现方式中,所述更新权重基于所述第一邻域点对应的权重与所述第一预测权重的乘积确定。In some implementations, the updated weight is determined based on the product of the weight corresponding to the first neighborhood point and the first prediction weight.
在一些实现方式中,所述第一邻域点对应的权重与第二邻域点的数量相关,所述第二邻域点为所述第一邻域点的邻域点;或者,所述第一邻域点对应的权重基于所述第一邻域点所在LOD层对应的权重确定。In some implementations, the weight corresponding to the first neighborhood point is related to the number of second neighborhood points, and the second neighborhood points are neighborhood points of the first neighborhood point; or, the weight corresponding to the first neighborhood point is determined based on the weight corresponding to the LOD layer where the first neighborhood point is located.
在一些实现方式中,所述第一邻域点对应的权重等于所述第二邻域点的数量;或者,所述第一邻域点对应的权重等于所述第二邻域点的数量与第一预测权重的乘积。In some implementations, the weight corresponding to the first neighborhood point is equal to the number of the second neighborhood points; or, the weight corresponding to the first neighborhood point is equal to the product of the number of the second neighborhood points and the first prediction weight.
在一些实现方式中,所述第二邻域点为基于所述第一邻域点进行预测的点。In some implementations, the second neighborhood point is a point predicted based on the first neighborhood point.
在一些实现方式中,所述第一邻域点为基于所述第一待编码点进行预测的点。In some implementations, the first neighborhood point is a point predicted based on the first point to be encoded.
在一些实现方式中,第二确定单元2520配置为:根据第三邻域点的移位系数以及第二预测权重,对第二待编码点进行预测,所述第二待编码点为所述第二层中的任意一点,所述第三邻域点为所述第二待编码点的邻域点,所述第二预测权重基于所述第三邻域点对应的权重确定。In some implementations, the second determination unit 2520 is configured to: predict the second point to be encoded based on the shift coefficient of the third neighborhood point and the second prediction weight, the second point to be encoded is any point in the second layer, the third neighborhood point is a neighborhood point of the second point to be encoded, and the second prediction weight is determined based on the weight corresponding to the third neighborhood point.
在一些实现方式中,所述第二预测权重等于所述第三邻域点对应的权重。In some implementations, the second prediction weight is equal to the weight corresponding to the third neighborhood point.
在一些实现方式中,所述第三邻域点对应的权重与第四邻域点的数量关联,所述第四邻域点为所述第三邻域点的邻域点;或者,所述第三邻域点对应的权重基于所述第三邻域点所在LOD层对应的权重确定。In some implementations, the weight corresponding to the third neighborhood point is associated with the number of fourth neighborhood points, and the fourth neighborhood point is a neighborhood point of the third neighborhood point; or, the weight corresponding to the third neighborhood point is determined based on the weight corresponding to the LOD layer where the third neighborhood point is located.
在一些实现方式中,所述第三邻域点对应的权重等于所述第四邻域点的数量;或者,所述第三邻域点对应的权重等于所述第四邻域点的数量与第一预测权重的乘积。In some implementations, the weight corresponding to the third neighborhood point is equal to the number of the fourth neighborhood points; or, the weight corresponding to the third neighborhood point is equal to the product of the number of the fourth neighborhood points and the first prediction weight.
在一些实现方式中,所述第四邻域点为基于所述第三邻域点进行预测的点。In some implementations, the fourth neighborhood point is a point predicted based on the third neighborhood point.
在一些实现方式中,所述第三邻域点为所述第一层中的与所述第二待编码点共线的点。In some implementations, the third neighborhood point is a point in the first layer that is colinear with the second point to be encoded.
在一些实现方式中,所述编码器2500还包括量化单元,配置为:根据第三待编码点对应的权重对所述第三待编码点的变换系数进行量化,其中,所述第三待编码为所述三维网络中的任意一个点。In some implementations, the encoder 2500 further includes a quantization unit configured to: quantize a transform coefficient of a third point to be encoded according to a weight corresponding to the third point to be encoded, wherein the third point to be encoded is any point in the three-dimensional network.
在一些实现方式中,所述量化单元配置为:根据第一量化参数对所述第三待编码点的变换系数进行量化,所述第一量化参数基于所述第三待编码点对应的权重确定。In some implementations, the quantization unit is configured to: quantize the transform coefficient of the third point to be encoded according to a first quantization parameter, and the first quantization parameter is determined based on a weight corresponding to the third point to be encoded.
在一些实现方式中,所述第一量化参数基于所述第三待编码点对应的权重和第二量化参数确定,其中,所述第三待编码点位于所述多个LOD层中的目标LOD层,所述第二量化参数为所述目标LOD层对应的量化参数。In some implementations, the first quantization parameter is determined based on the weight corresponding to the third point to be encoded and the second quantization parameter, wherein the third point to be encoded is located in a target LOD layer among the multiple LOD layers, and the second quantization parameter is the quantization parameter corresponding to the target LOD layer.
在一些实现方式中,所述第二量化参数基于初始量化参数和量化调整参数确定。In some implementations, the second quantization parameter is determined based on an initial quantization parameter and a quantization adjustment parameter.
在一些实现方式中,所述第三待编码点对应的权重越大,所述第一量化参数的取值越小。In some implementations, the greater the weight corresponding to the third to-be-encoded point is, the smaller the value of the first quantization parameter is.
在一些实现方式中,所述第三待编码点对应的权重与第五邻域点的数量相关,所述第五邻域点为所 述第三待编码点的邻域点。In some implementations, the weight corresponding to the third to-be-coded point is related to the number of fifth neighborhood points, and the fifth neighborhood points are The neighboring points of the third point to be encoded.
在一些实现方式中,所述第三待编码点对应的权重等于所述第五邻域点的数量;或者,所述第三待编码点对应的权重等于所述第五邻域点的数量与第一预测权重的乘积。In some implementations, the weight corresponding to the third point to be encoded is equal to the number of the fifth neighborhood points; or, the weight corresponding to the third point to be encoded is equal to the product of the number of the fifth neighborhood points and the first prediction weight.
在一些实现方式中,所述第五邻域点为基于所述第三待编码点进行预测的点。In some implementations, the fifth neighborhood point is a point predicted based on the third point to be encoded.
在一些实现方式中,所述第一预测权重的取值为预定义的固定值。In some implementations, the value of the first prediction weight is a predefined fixed value.
在一些实现方式中,所述第一预测权重的取值为0.5。In some implementations, the value of the first prediction weight is 0.5.
在一些实现方式中,所述编码器2500还包括第三确定单元,配置为根据基础网格中的点的几何信息,对所述基础网格进行划分,确定所述细分网格中的点的几何信息;根据所述细分网格中的点的几何信息和所述三维网格的原始几何信息,确定所述三维网格中的点的移位系数。In some implementations, the encoder 2500 also includes a third determination unit, configured to divide the basic grid according to the geometric information of the points in the basic grid, and determine the geometric information of the points in the subdivided grid; and determine the shift coefficients of the points in the three-dimensional grid according to the geometric information of the points in the subdivided grid and the original geometric information of the three-dimensional grid.
可以理解地,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。It is understandable that in the embodiments of the present application, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc., and of course, it may be a module, or it may be non-modular. Moreover, the components in the present embodiment may be integrated into a processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of a software functional module.
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。If the integrated unit is implemented in the form of a software function 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 is essentially or the part that contributes to the prior art or the whole or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, server, or network device, etc.) or a processor to perform all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a ROM, a RAM, a magnetic disk, or an optical disk.
因此,本申请实施例提供了一种计算机可读存储介质,应用于编码器2500,该计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述实施例中任一项所述的解码方法。Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the encoder 2500. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it implements the decoding method described in any one of the aforementioned embodiments.
基于上述编码器的组成以及计算机可读存储介质,参见图26,其示出了本申请实施例提供的编码器2600的具体硬件结构示意图。如图26所示,编码器2600可以包括:通信接口2610、存储器2620和处理器2630;各个组件通过总线系统2640耦合在一起。可理解,总线系统2640用于实现这些组件之间的连接通信。总线系统2640除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图26中将各种总线都标为总线系统2640。其中,Based on the composition of the above-mentioned encoder and the computer-readable storage medium, refer to Figure 26, which shows a specific hardware structure diagram of the encoder 2600 provided in an embodiment of the present application. As shown in Figure 26, the encoder 2600 may include: a communication interface 2610, a memory 2620 and a processor 2630; each component is coupled together through a bus system 2640. It can be understood that the bus system 2640 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 2640 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are marked as bus system 2640 in Figure 26. Among them,
通信接口2610,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;Communication interface 2610, used for receiving and sending signals during the process of sending and receiving information with other external network elements;
存储器2620,用于存储计算机程序;Memory 2620, used for storing computer programs;
处理器2630,用于在运行所述计算机程序时,执行:The processor 2630 is configured to, when running the computer program, execute:
对三维网格中的点进行LOD划分,确定多个LOD层,所述多个LOD层包括相邻的第一层和第二层,所述第一层为所述第二层的上一层;Performing LOD division on points in the three-dimensional grid to determine a plurality of LOD layers, wherein the plurality of LOD layers include a first layer and a second layer adjacent to each other, and the first layer is a layer above the second layer;
对所述第二层中的点的移位系数进行预测,确定所述第二层中的点的残差系数;Predicting the shift coefficients of the points in the second layer to determine the residual coefficients of the points in the second layer;
根据所述第二层中的点的残差系数,对所述第一层中的点的移位系数进行变换。The shift coefficients of the points in the first layer are transformed according to the residual coefficients of the points in the second layer.
可以理解,本申请实施例中的存储器2620可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、PROM、EPROM、EEPROM或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如SRAM、DRAM、SDRAM、DDRSDRAM、ESDRAM、SLDRAM和DRRAM。本申请描述的系统和方法的存储器2620旨在包括但不限于这些和任意其它适合类型的存储器。It is understood that the memory 2620 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a ROM, a PROM, an EPROM, an EEPROM or a flash memory. The volatile memory can be a RAM, which is used as an external cache. By way of exemplary but not limiting explanation, many forms of RAM are available, such as SRAM, DRAM, SDRAM, DDRSDRAM, ESDRAM, SLDRAM and DRRAM. The memory 2620 of the system and method described in the present application is intended to include, but is not limited to, these and any other suitable types of memories.
而处理器2630可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2630中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2630可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2620,处理器2630读取存储器2620中的信息,结合其硬件完成上述方法的步骤。The processor 2630 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by an integrated logic circuit of the hardware in the processor 2630 or an instruction in the form of software. The above-mentioned processor 2630 may be a general-purpose processor, DSP, ASIC, FPGA or other programmable logic device, discrete gate or transistor logic device, discrete hardware component. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor to be executed, or a combination of hardware and software modules in the decoding processor to be executed. The software module may be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory 2620, and the processor 2630 reads the information in the memory 2620 and completes the steps of the above method in combination with its hardware.
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个ASIC、DSP、DSPD、PLD、FPGA、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。 It is to be understood that these embodiments described in the present application can be implemented with hardware, software, firmware, middleware, microcode or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more ASICs, DSPs, DSPDs, PLDs, FPGAs, general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in the present application or a combination thereof. For software implementation, the technology described in the present application can be realized by the module (e.g., process, function, etc.) that performs the functions described in the present application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in a processor or outside a processor.
可选地,作为另一个实施例,处理器2630还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的编码方法。Optionally, as another embodiment, the processor 2630 is further configured to execute the encoding method described in any one of the aforementioned embodiments when running the computer program.
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质为存储比特流的非易失性计算机可读存储介质,所述比特流可以通过利用编码器的编码方法而生成,或者,所述比特流通过利用解码器的解码方法而解码,其中,所述解码方法可以为前文任一实施例所述的解码方法、所述编码方法可以为前文任一实施例所述的编码方法。An embodiment of the present application also provides a computer-readable storage medium, which is a non-volatile computer-readable storage medium for storing a bit stream. The bit stream can be generated by an encoding method using an encoder, or the bit stream can be decoded by a decoding method using a decoder, wherein the decoding method can be the decoding method described in any of the preceding embodiments, and the encoding method can be the encoding method described in any of the preceding embodiments.
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。It should be noted that, in this application, the terms "include", "comprises" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "includes a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。The serial numbers of the above-mentioned embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。The methods disclosed in several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。The features disclosed in several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。The features disclosed in several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。 The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
Claims (56)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2024/070330 WO2025145325A1 (en) | 2024-01-03 | 2024-01-03 | Encoding method, decoding method, encoders, decoders and storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2024/070330 WO2025145325A1 (en) | 2024-01-03 | 2024-01-03 | Encoding method, decoding method, encoders, decoders and storage medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025145325A1 true WO2025145325A1 (en) | 2025-07-10 |
Family
ID=96299991
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2024/070330 Pending WO2025145325A1 (en) | 2024-01-03 | 2024-01-03 | Encoding method, decoding method, encoders, decoders and storage medium |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025145325A1 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021045603A1 (en) * | 2019-09-06 | 2021-03-11 | 엘지전자 주식회사 | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method |
| US20210409769A1 (en) * | 2019-03-18 | 2021-12-30 | Panasonic Intellectual Property Corporation Of America | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device |
| US20220207781A1 (en) * | 2019-09-30 | 2022-06-30 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Transform method, inverse transform method, encoder, decoder and storage medium |
| US20230232004A1 (en) * | 2020-09-25 | 2023-07-20 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Point cloud encoding and decoding method and system, and point cloud encoder and point cloud decoder |
-
2024
- 2024-01-03 WO PCT/CN2024/070330 patent/WO2025145325A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210409769A1 (en) * | 2019-03-18 | 2021-12-30 | Panasonic Intellectual Property Corporation Of America | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device |
| WO2021045603A1 (en) * | 2019-09-06 | 2021-03-11 | 엘지전자 주식회사 | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method |
| US20220207781A1 (en) * | 2019-09-30 | 2022-06-30 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Transform method, inverse transform method, encoder, decoder and storage medium |
| US20230232004A1 (en) * | 2020-09-25 | 2023-07-20 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Point cloud encoding and decoding method and system, and point cloud encoder and point cloud decoder |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR20240108448A (en) | Mesh vertex displacement coding | |
| US12026920B2 (en) | Point cloud encoding and decoding method, encoder and decoder | |
| CN116940965A (en) | Slice time aligned decoding for trellis compression | |
| CN118696538A (en) | Prediction method and device, encoder, decoder and encoding and decoding system | |
| WO2025145325A1 (en) | Encoding method, decoding method, encoders, decoders and storage medium | |
| WO2025002021A1 (en) | Three-dimensional mesh inter-frame prediction encoding method and apparatus, three-dimensional mesh inter-frame prediction decoding method and apparatus, and electronic device | |
| WO2025213306A1 (en) | Coding method, decoding method, coders, decoders and storage medium | |
| WO2025076656A1 (en) | Encoding method, decoding method, encoder, decoder, and storage medium | |
| WO2025000342A1 (en) | Encoding and decoding method, encoder, decoder, and storage medium | |
| WO2025148072A1 (en) | Coding method, decoding method, code stream, encoder, decoder, and storage medium | |
| WO2025067513A1 (en) | Encoding and decoding methods, encoder, decoder and storage medium | |
| WO2025076795A1 (en) | Coding and decoding methods, bit stream, encoder, decoder, and storage medium | |
| WO2025000523A1 (en) | Coding method, decoding method, coder, decoder, code stream, and storage medium | |
| WO2025000429A1 (en) | Coding method, decoding method, code stream, coder, decoder, and storage medium | |
| WO2024255475A1 (en) | Coding and decoding methods, bitstream, encoder, decoder and storage medium | |
| WO2025007270A9 (en) | Encoding method, decoding method, encoder, decoder, code stream, and storage medium | |
| WO2024255912A1 (en) | Encoding method, decoding method, bitstream, encoder, decoder, medium and program product | |
| WO2025076749A1 (en) | Encoding method, decoding method, code stream, encoder, decoder, and storage medium | |
| WO2024213067A1 (en) | Decoding method, encoding method, bitstream, decoder, encoder and storage medium | |
| WO2025152176A1 (en) | Coding method, decoding method, coders, decoders, bit stream, and storage medium | |
| WO2024148573A1 (en) | Encoding and decoding method, encoder, decoder, and storage medium | |
| JP7529923B2 (en) | Method, apparatus and computer program for boundary loop detection in non-manifold meshes - Patents.com | |
| WO2025152015A1 (en) | Coding method, decoding method, code stream, coder, decoder, and storage medium | |
| WO2025208498A1 (en) | Encoding method, decoding method, encoders, decoders, bitstream and storage media | |
| WO2025148027A1 (en) | Coding method and apparatus, decoding method and apparatus, and point cloud coder, point cloud decoder, bitstream, device and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24914558 Country of ref document: EP Kind code of ref document: A1 |