This application pertains to the field of point cloud processing technologies, and specifically relates to a point cloud attribute information encoding method and apparatus, a point cloud attribute information decoding method and apparatus, and a related device.
In the point cloud digital audio video encoding/decoding standard (Audio Video coding Standard, AVS) encoder framework, geometric information of a point cloud and attribute information corresponding to each point are encoded separately. At present, attribute information coding is divided into attribute prediction coding and attribute transform coding. The attribute transform coding is directly performing transform on original attribute information, and for a region with a relatively large local transform amplitude, there is still a relatively large amount of redundant information in an obtained transform coefficient, which leads to lower coding efficiency.
According to a first aspect, a point cloud attribute information encoding method is provided, including:
According to a second aspect, a point cloud attribute information decoding method is provided, including:
According to a third aspect, a point cloud attribute information encoding apparatus is provided, including:
According to a fourth aspect, a point cloud attribute information decoding apparatus is provided, including:
According to a fifth aspect, a terminal is provided, where the terminal includes a processor, a memory, and a program or instructions stored in the memory and capable of running on the processor, and when the program or the instructions are executed by the processor, the steps of the point cloud attribute information encoding method according to the first aspect are implemented, or the steps of the point cloud attribute information decoding method according to the second aspect are implemented.
According to a sixth aspect, a terminal is provided, including a processor and a communication interface, where the processor is configured to:
According to a seventh aspect, a readable storage medium is provided, where a program or instructions are stored in the readable storage medium, and when the program or the instructions are executed by a processor, the steps of the point cloud attribute information encoding method according to the first aspect are implemented, or the steps of the point cloud attribute information decoding method according to the second aspect are implemented.
According to an eighth aspect, a chip is provided, where the chip includes a processor and a communication interface, the communication interface is coupled to the processor, and the processor is configured to run a program or instructions to implement the steps of the point cloud attribute information encoding method according to the first aspect or the steps of the point cloud attribute information decoding method according to the second aspect.
According to a ninth aspect, a computer program/program product is provided, where the computer program/program product is stored in a non-volatile storage medium, and the program/program product is executed by at least one processor to implement the steps of the point cloud attribute information encoding method according to the first aspect or the steps of the point cloud attribute information decoding method according to the second aspect.
According to a tenth aspect, a communication device is provided, configured to execute the steps of the point cloud attribute information encoding method according to the first aspect or the steps of the point cloud attribute information decoding method according to the second aspect.
The following clearly describes the technical solutions in the embodiments of this application with reference to the accompanying drawings in the embodiments of this application. Apparently, the described embodiments are only some rather than all of the embodiments of this application. All other embodiments obtained by persons of ordinary skill in the art based on the embodiments of this application shall fall within the protection scope of this application.
In the specification and claims of this application, the terms such as “first” and “second” are intended to distinguish between similar objects but do not necessarily indicate a specific order or sequence. It should be understood that the data used in this way is interchangeable in appropriate circumstances so that the embodiments of this application can be implemented in other orders than the order illustrated or described herein, and “first” and “second” are usually for distinguishing same-type objects but not limiting the number of objects, for example, a first object may be one or multiple. In addition, “and/or” in this specification and claims indicates at least one of connected objects, and the symbol “I” generally indicates that the associated objects are in an “or” relationship.
An encoder corresponding to the encoding method and a decoder corresponding to the decoding method in the embodiments of this application may be a terminal. The terminal may also be referred to as a terminal device or user equipment (UE), and the terminal may be a terminal-side device, such as a mobile phone, a tablet computer (Tablet Personal Computer), a laptop computer or a notebook computer, a personal digital assistant (PDA), a palmtop computer, a netbook, an ultra-mobile personal computer (UMPC), a mobile Internet device (MID), an augmented reality (AR)/virtual reality (VR) device, a robot, a wearable device or vehicle user equipment (VUE), or pedestrian user equipment (PUE). The wearable device includes: a smart watch, a wrist band, earphones, glasses, or the like. It should be noted that a specific type of the terminal is not limited in the embodiments of this application.
To better understand the technical solution of this application, the following describes related concepts that may be involved in this application.
In the point cloud digital audio video encoding/decoding standard (AVS) encoder framework, geometric information of a point cloud and attribute information corresponding to each point are encoded separately.
Refer to
Attribute encoding is mainly performed on color and reflectance information and the like. First, it is determined whether to perform color space conversion. If color space conversion is performed, color information is converted from the red-green-blue (RGB) color space to the YUV (Y is a luminance component and UV is a chrominance component) color space. Then, a reconstructed point cloud is recolored using an original point cloud, so that uncoded attribute information is corresponding to reconstructed geometric information. There are two methods for encoding attribute information: attribute prediction coding and attribute transform coding. In the attribute prediction process, the point cloud is first reordered, and then differential prediction is performed. There are two methods of reordering: Morton reordering and Hilbert reordering. For cat1A and cat2 sequences, Hilbert reordering is performed; for cat1B and cat3 sequences, Morton reordering is performed. Attribute prediction of the sorted point cloud is performed in a differential manner, and finally prediction residual is quantized and entropy coded to generate a binary bit stream. The attribute transform process is as follows: first perform wavelet transform on attributes of the point cloud and quantize a transform coefficient, then perform inverse quantization and inverse wavelet transform to obtain an attribute reconstruction value; calculate a difference between the original attributes and the attribute reconstruction value to obtain attribute residual and quantize the attribute residual; finally, perform entropy coding on the quantized transform coefficient and attribute residual, to generate a binary bit stream. The decoding of attribute information is an inverse process of coding, and details are not described in detail herein.
In image and video coding, discrete cosine transform (DCT) and discrete sine transform (DST) are mainly used. Referring to
In existing video coding standards, attribute transform coding is to perform direct transform on the original attribute information, and for a region with relatively large local transform amplitude, there is still a relatively large amount of redundant information in the obtained transform coefficient, resulting in lower coding efficiency.
The following describes in detail a point cloud attribute information encoding method and apparatus, a point cloud attribute information decoding method and apparatus, and a related device provided in the embodiments of this application by using specific embodiments and application scenarios thereof with reference to the accompanying drawings.
Referring to
Step 301: Obtain first information.
In this embodiment of this application, the first information may include to-be-coded points or may include coded points.
Optionally, the first information includes K to-be-coded points, and the step 301 includes:
In this embodiment of this application, after the to-be-coded point cloud is obtained, sorting may be performed on the to-be-coded point cloud. For example, in a case that attribute information is mainly color-specific, it is first determined whether the to-be-coded point cloud needs to be converted to a color space, and if conversion of the color space is performed, color information of the to-be-coded point cloud may be converted from an RGB color space to a YUV color space, and then an original point cloud is used to recolor the to-be-coded point cloud, so that attribute information of the to-be-coded point cloud corresponds to reconstructed geometric information. Sorting is performed on the points of the to-be-coded point cloud obtained after recoloring and color space conversion. Assuming that the to-be-coded point cloud includes N points and each point is denoted as p_n (n=1, 2, . . . , N), sorting is performed on the points of the to-be-coded POINT cloud; after sorting, each point may be denoted as p{circumflex over ( )}_n (n=1, 2, . . . , N); and K to-be-coded points are selected from the sorted to-be-coded point cloud.
Optionally, sorting of the to-be-coded point cloud may be implemented based on a Hilbert code or a Morton code. The performing sorting on the points of a to-be-coded point cloud and obtaining K to-be-coded points in the sorted to-be-coded point cloud includes:
It should be noted that the K to-be-coded points may be selected based on a specific order. For example, assuming that the to-be-coded point cloud includes nine to-be-coded points. After Hilbert codes corresponding to the nine to-be-coded points are calculated and sorting is performed on the nine to-be-coded points according to Hilbert, every three to-be-coded points may be divided into one group, three points ranking at the top are first selected as the K to-be-coded points, and then subsequent processes such as attribute prediction and the like are performed; three points after the first three points are selected as one group in turn and the processes of attribute prediction and the like are performed; and the last three points are selected for the processes of attribute prediction and the like.
For the selected K to-be-coded points, it needs to determine whether a to-be-coded point in the K to-be-coded points is a duplicated point with a coded point; if a to-be-coded point is duplicated with a coded point, attribute residual information of the to-be-coded point and the coded point may be directly calculated, and the to-be-coded point is not considered as a point in the K to-be-coded points; or if a to-be-coded point is not duplicated with a coded point, attribute information prediction may be performed for the K to-be-coded points based on the coded point to obtain attribute prediction information for the K to-be-coded points. A specific method for attribute information prediction is described in subsequent embodiments.
Step 302: Determine, based on second information associated with the first information, whether to perform DCT transform on K to-be-coded points.
The first information includes the K to-be-coded points and the second information includes attribute prediction information for the K to-be-coded points; or the first information includes N coded points prior to the K to-be-coded points and the second information includes attribute reconstruction information for the N coded points, where K is a positive integer, and N is a positive integer greater than 1.
That is, in a case that the first information is K to-be-coded points and the second information is the attribute prediction information for the K to-be-coded points, it is determined, based on the attribute prediction information for the K to-be-coded points, whether to perform DCT transform on the K to-be-coded points; and in a case that the first information is the N coded points prior to the K to-be-coded points and the second information is the attribute reconstruction information for the N coded points, it is determined, based on the attribute reconstruction information for the N coded points, whether to perform DCT transform on the K to-be-coded points.
In this embodiment of this application, if it is determined, based on the attribute prediction information for the K to-be-coded points, whether to perform DCT transform on the K to-be-coded points, the attribute prediction information for the K to-be-coded points needs to be first obtained.
Optionally, before the step 302, the following is further included:
The obtaining S neighboring points with a closest Manhattan distance to a target to-be-coded point according to a bi-Hilbert order or a bi-Morton order includes:
Specifically, after the K to-be-coded points are determined, the target to-be-coded point is selected based on a preset principle, which may be, for example, selecting the target to-be-coded point sequentially in an order of the K to-be-coded points. Assuming that the K to-be-coded points are determined after the to-be-coded point cloud is sorted according to the Hilbert code, the target to-be-coded point may be determined sequentially based on the Hilbert code size corresponding to the K to-be-coded points.
For the target to-be-coded point, the preceding-order M points of the target to-be-coded point are first found according to the Hilbert-1 order, and then the preceding-order N1 points and post-order N2 points of the target to-be-coded point are found separately according to the Hilbert-2 order. In the M+N1+N2 points, the S neighboring points with the closest Manhattan distance to the target to-be-coded point are selected, the initial attribute prediction information for the target to-be-coded point is determined based on the S neighboring points, and then the attribute prediction information for the target to-be-coded point is determined based on the first weight corresponding to the target to-be-coded point and the initial attribute prediction information. It should be noted that M, N1, and N2 are all positive integers.
Optionally, the given preset search range is determined based on a correlation between an initial number of points of a point cloud sequence and a bounding box volume of an input point cloud.
The determining initial attribute prediction information for the target to-be-coded point based on the S neighboring points includes:
It can be understood that each neighboring point in the S neighboring points of the target to-be-coded point has a different Manhattan distance to the target to-be-coded point, and the second weight is a reciprocal of a Manhattan distance between the current neighboring point and the target to-be-coded point. In this case, the second weight corresponding to each of the neighboring points is different. The initial attribute prediction information for the target to-be-coded point may be a sum of products of the attribute information of neighboring points in the S neighboring points and corresponding second weights, so as to obtain the initial attribute prediction information for the target to-be-coded point through calculation.
Further, based on the foregoing manner of determining the initial attribute prediction information for the target to-be-coded point, the initial attribute prediction information for each to-be-coded point in the K to-be-coded points can be calculated. Based on the first weight corresponding to each of the to-be-coded points and the initial attribute prediction information, the attribute prediction information corresponding to each of the to-be-coded points can be then calculated.
For example, assuming that the initial attribute prediction information for the target to-be-coded point p_n is Pre
_n and the initial attribute prediction information for the K to-be-coded points (p_n, p_(n+1), . . . ,
p
_(n+K−1)) are respectively denoted as
Pre
_n,
Pre
_(n+1), . . . ,
Pre
_(n+K−1), the attribute prediction information for the K to-be-coded points may be denoted as
AttrPre
_n, n+1, . . . , n+K−1) Assuming that the first weight of each to-be-coded point in the K to-be-coded points be w_ij (i, j=n, n+1, . . . , n+K−1), the attribute prediction information for the K to-be-coded points may be denoted as:
AttrPre
_i=Σ_(j=n){circumflex over ( )}(n+K−1)
w_ij
Pre
_j
, where
Σ_j=n){circumflex over ( )}(n+K−1)w_ij=1(i=n,n+1, . . . ,n+K−1)
For example, when AttrPre
=w_ii
Pre
_i, that is, w_ii=1, w_ij=0(i≠j), the attribute prediction information for each point in the current K to-be-coded points is equal to its initial attribute prediction information; when
AttrPre
_i=w_(i, n+2)
(Pre)
_(n+2), that is, w_(i, n+2)=1, w_ij=0(j≠n+2), each point in the current K to-be-coded points uses initial attribute prediction information for the 2nd point in this K points as its attribute prediction information.
Optionally, a sum of the first weights respectively corresponding to the K to-be-coded points is 1. For example, assuming that a value of K is 4, the sum of four first weights corresponding to the four to-be-coded points is 1.
Alternatively, the obtaining S neighboring points with a closest Manhattan distance to a target to-be-coded point according to a bi-Hilbert order or a bi-Morton order includes:
Specifically, for the target to-be-coded point, the preceding-order M points of the target to-be-coded point are first found according to the Morton-1 order, and then the preceding-order N1 points and post-order N2 points of the target to-be-coded point are found separately according to the Morton-2 order. In the M+N1+N2 points, the S neighboring points with the closest Manhattan distance to the target to-be-coded point are selected, the initial attribute prediction information for the target to-be-coded point is determined based on the S neighboring points, and then the attribute prediction information for the target to-be-coded point is determined based on the first weight corresponding to the target to-be-coded point and the initial attribute prediction information. It should be noted that M, N1, and N2 are all positive integers.
Optionally, the given preset search range is determined based on a correlation between an initial number of points of a point cloud sequence and a bounding box volume of an input point cloud.
Further, after the S neighboring points with the closest Manhattan distance to the target to-be-coded point are obtained based on the Morton order, attribute weighted prediction is performed on the S neighboring points, with a weight being a reciprocal of the Manhattan distance between the current neighboring point and the target to-be-coded point, so as to obtain the initial attribute prediction information for the target to-be-coded point; and then, based on the first weight corresponding to the target to-be-coded point and the initial attribute prediction information, the attribute prediction information for the target to-be-coded point is calculated, and further the attribute prediction information for the K to-be-coded points is calculated. For a manner of obtaining the attribute prediction information, refer to the specific description for obtaining the S neighboring points based on the bi-Hilbert order and performing attribute prediction, with the difference only being that in this embodiment, obtaining of the S neighboring points is based on the bi-Morton order. The manner of obtaining the attribute prediction information will not be repeated herein.
Optionally, a search range of the Hilbert-1 order or Morton-1 order is a first preset range, a preceding-order search range of the Hilbert-2 order or Morton-2 order is a second preset range, and a post-order search range of the Hilbert-2 order or Morton-2 order is a third preset range or the second preset range. It should be noted that the search ranges of the first preset range, the second preset range and the third preset range may be manually set based on coding requirements.
The binary bit stream includes a first attribute parameter and a second attribute parameter, where the first attribute parameter is used to represent the first preset range and the second attribute parameter is used to represent the second preset range; and in a case that the post-order search range of the Hilbert-2 order or Morton-2 order is the third preset range, the binary bit stream further includes a third attribute parameter, where the third attribute parameter is used to represent the third preset range.
That is, the first preset range, second preset range, and third preset range may be written into a bit stream as an attribute information parameter set. In a case that the preceding-order search range of the Hilbert-2 order or the Morton-2 order is the same as the post-order search range of the Hilbert-2 order or the Morton-2 order, that is, in a case that both are the second preset range, only the first attribute parameter for representing the search range of the Hilbert-1 order or the Morton-1 order and the second attribute parameter for representing the preceding-order of the Hilbert-2 order or the Morton-2 order and the post-order of the Hilbert-2 order or the Morton-2 order need to be written in the bit stream. In a case that the preceding-order search range of the Hilbert-2 order or the Morton-2 order is different from the post-order search range of the Hilbert-2 order or the Morton-2 order, the first attribute parameter, the second attribute parameter, and the third attribute parameter need to be written into the binary bit stream. The attribute parameters are written into the bit stream, so that in the process of encoding the attribute information, the S neighboring points with the closest Manhattan distance to the target to-be-coded point can be determined based on the first preset range, the second preset range, and the third preset range.
In this embodiment of this application, the attribute prediction information for the K to-be-coded points may also be determined based on other manners. Optionally, before the step 302, the following is included:
In this implementation, the K to-be-coded points may be arranged in a specific order. For example, in a case that the to-be-coded point cloud is sorted according to a Morton code, the K to-be-coded points may be sorted based on a corresponding Morton code size, and the 1st point of the K to-be-coded points may be a point with the smallest Morton code or a point with the largest Morton code. Further, using the 1st point as a reference point, T neighboring points of the reference point are selected, and then R neighboring points, with a closest Manhattan distance to the reference point, in the T neighboring points are selected. For each to-be-coded point in the K to-be-coded points, L neighboring points with a closest Manhattan distance in the R neighboring points are selected, and corresponding initial attribute prediction information for each of the to-be-coded points is determined based on its respective corresponding L neighboring points. Further, the attribute prediction information for each of the to-be-coded points is determined based on a first weight and initial attribute prediction information that are corresponding to each of the to-be-coded points. In this way, the attribute prediction information for the K to-be-coded points can be obtained through calculation.
In this implementation, a sum of the first weights respectively corresponding to the K to-be-coded points is 1.
The determining initial attribute prediction information for the target to-be-coded point based on the L neighboring points includes:
It can be understood that each of the L neighboring points of the target to-be-coded point has a different Manhattan distance to the target to-be-coded point, and the second weight is a reciprocal of a Manhattan distance between the current neighboring point and the target to-be-coded point. In this case, the second weight corresponding to each of the neighboring points is different. Optionally, the initial attribute prediction information for the target to-be-coded point may be a sum of products of the attribute information of neighboring points in the L neighboring points and corresponding second weights, so as to obtain the initial attribute prediction information for the target to-be-coded point through calculation.
In this embodiment of this application, after the attribute prediction information for the K to-be-coded points is determined based on the foregoing manner, it may be determined, based on the attribute prediction information for the K to-be-coded points, whether to perform DCT transform on the K to-be-coded points. In this case, the first information includes the K to-be-coded points and the second information includes the attribute prediction information for the K to-be-coded points. Then, the step 302 may include:
For example, the attribute prediction information for the K to-be-coded points is denoted as AttrPre
_j, with a value i ranging from 1 to K. The maximum attribute prediction value and the minimum attribute prediction value in the attribute prediction information corresponding to the K to-be-coded points are obtained and denoted as
AttrPre
_max AttrPre
_min respectively. The first threshold is denoted as Threshold1, and if |
AttrPre
_max−
AttrPre
_min|≥Threshold1, no DCT transform is performed on the K to-be-coded points, or if |
AttrPre
_max−
AttrPre
_min|<Threshold1, DCT transform is performed on the K to-be-coded points.
Alternatively, the maximum attribute prediction value and the minimum attribute prediction value in the attribute prediction information corresponding to the K to-be-coded points are obtained and denoted as AttrPre
_max and
AttrPre
_min, respectively. The second threshold is denoted as Threshold2, and if |
AttrPre
_max|/|
AttrPre
_min|≥Threshold2, no DCT transform is performed on the K to-be-coded points, or if |
AttrPre
_max|/|
AttrPre
_min|<Threshold2, DCT transform is performed on the K to-be-coded points.
In this embodiment of this application, the first information may alternatively include N coded points prior to the K to-be-coded points, and the second information includes attribute reconstruction information for the N coded points. In this case, the step 302 includes:
N is an integer greater than 1, that is, at least two coded points prior to the K to-be-coded points need to be obtained. It can be understood that attribute reconstruction information for the coded points can be learned. The attribute reconstruction information is attribute information to be given to a point cloud sequence. However, the attribute reconstruction information is different from the original attribute information in the original point cloud, and the attribute reconstruction information is obtained by the attribute prediction information plus the attribute residual information of the point cloud after the encoding end undergoes the coding process.
In this implementation, it is assumed that the attribute reconstruction information for the N to-be-coded points is denoted as AttrRec
_i, with a value i ranging from 1 to N. The maximum attribute reconstruction value and the minimum attribute reconstruction value in the attribute reconstruction information corresponding to the N to-be-coded points are obtained and denoted as
AttrRec
_max and AttrRec_min, respectively. The third threshold is denoted as Threshold3, and if |
AttrRec
_max−
AttrRec
_min|≥Threshold3, no DCT transform is performed on the K to-be-coded points, or if |
AttrRec
_max−
AttrRec
_min|<Threshold3, DCT transform is performed on the K to-be-coded points.
Alternatively, the maximum attribute reconstruction value and the minimum attribute reconstruction value in the attribute reconstruction information corresponding to the N to-be-coded points are obtained and denoted as AttrRec
_max and AttrRec_min, respectively. The fourth threshold is denoted as Threshold4, and if |
AttrRec
_max|/|
AttrRec
_min|≥Threshold4, no DCT transform is performed on the K to-be-coded points, or if |
AttrRec
_max|/|f
AttrRec
_min|<Threshold4, DCT transform is performed on the K to-be-coded points.
Step 303: In a case that it is determined to perform DCT transform on the K to-be-coded points, perform DCT transform on the K to-be-coded points to obtain a transform coefficient of the K to-be-coded points.
In this embodiment of this application, if it is determined to perform DCT transform on the K to-be-coded points, DCT transform may be performed on the attribute residual information of the K to-be-coded points. Further, before the performing DCT transform on the K to-be-coded points, the method further includes:
The attribute residual information for each to-be-coded point in the K to-be-coded points may be a difference between the original attribute information and the attribute prediction information for the to-be-coded point.
Further, the performing DCT transform on K to-be-coded points to obtain a transform coefficient of the K to-be-coded points includes:
For example, the attribute residual information for the K to-be-coded points is denoted as AttrRes, and DCT transform is performed on the attribute residual information of the K points, where K indicates the order of DCT transform. Assuming that T is a K-order transformation matrix, the transform coefficient can be obtained according to the following transform equation:
[▪(DC@AC
_0@ . . . @
AC
_(K−2))]=T[▪(
AttrRes
_(n+1)@
AttrRes
_(n+2)@ . . . @
AttrRes
_(n+K))], where
AttrRes
_i indicates attribute residual information, i=n, n+1, . . . , n+K 1, DC indicates a low-frequency coefficient obtained after DCT transform, and AC indicates a high-frequency coefficient obtained after DCT transform. In this way, the transform coefficient of the K to-be-coded points after DCT transform is obtained.
Step 304: Quantize the transform coefficient of the K to-be-coded points and perform entropy coding based on a quantized transform coefficient, to generate a binary bit stream.
Specifically, after the transform coefficient of the K to-be-coded points is obtained, the transform coefficient is quantized to obtain a quantized transform coefficient, and then entropy coding is performed on the quantized transform coefficient to generate a binary bit stream, thereby implementing encoding of the attribute information of the to-be-coded point cloud.
In this embodiment of this application, in the process of encoding the to-be-coded point cloud, it is necessary to determine, based on the attribute prediction information for the to-be-coded points or the attribute reconstruction information for the coded points, whether to perform DCT transform on the to-be-coded points. In a case that it is determined to perform DCT transform on the to-be-coded points, DCT transform is performed on the to-be-coded points, so as to convert a dispersed distribution of the attribute information in the spatial domain to a relatively centralized distribution in the transform domain. In this way, signal energy is concentrated in a few coefficients, facilitating quantization and coding. This removes attribute redundancy, thereby improving the attribute coding efficiency and reconstruction performance.
The transform coefficient includes a low-frequency coefficient and a high-frequency coefficient, and the quantizing the transform coefficient of the K to-be-coded points and performing entropy coding based on a quantized transform coefficient includes:
Optionally, after the quantizing the transform coefficient of the K to-be-coded points and performing entropy coding based on a quantized transform coefficient, the method further includes:
In this embodiment of this application, after quantization and entropy coding of the transform coefficient of the K to-be-coded points, inverse quantization and inverse DCT transform may be further performed based on the quantized transform coefficient to obtain the attribute reconstruction information for the K to-be-coded points.
After entropy coding is performed on the quantized high frequency coefficient and low-frequency coefficient to obtain the first coded value and the second coded value respectively, the performing inverse quantization on the quantized transform coefficient, and performing inverse transform on an inverse transform coefficient obtained after inverse quantization, so as to obtain attribute reconstruction information for the K to-be-coded points includes:
Specifically, entropy coding is performed on the quantized high-frequency coefficient and low-frequency coefficient separately, inverse quantization is performed on coded values obtained after entropy coding to obtain an inverse-quantized inverse high-frequency coefficient and inverse low-frequency coefficient, and inverse DCT transform is performed on the inverse high-frequency coefficient and inverse low-frequency coefficient to obtain the inverse attribute residual information for the K to-be-coded points. It should be noted that during the encoding process, DCT transform needs to be performed on the attribute residual information for the K to-be-coded points, and then quantization, inverse quantization, and inverse transform are performed. During the process, the attribute residual information may be lost, and therefore the inverse attribute residual information obtained may be inconsistent with the attribute residual information for the K to-be-coded points before DCT transform.
Further, based on the inverse attribute residual information and the attribute prediction information for the K to-be-coded points, the attribute reconstruction information for the K to-be-coded points can be obtained. The attribute reconstruction information may be a sum of the attribute prediction information and the inverse attribute residual information.
In this embodiment of this application, the quantizing a high frequency coefficient and low-frequency coefficient corresponding to the K to-be-coded points includes:
In the process of quantizing the transform coefficient, the quantization step may have a specific offset, and proportional scaling operation of integer DCT needs to be performed based on the offset of the quantization step, that is, the quantization step of the transform coefficient for quantization is a quantization step obtained after the proportional scaling operation, so as to ensure accuracy of a quantization result and avoid quantization errors caused by the offset of the quantization step.
Optionally, the obtaining a high-frequency coefficient quantization step corresponding to the high frequency coefficient, and obtaining a low-frequency coefficient quantization step corresponding to the low-frequency coefficient includes:
In a case that distribution of the components corresponding to the attribute information of the K to-be-encoded points is flat, the quantization step of the high-frequency transform coefficient is a sum of an original quantization step, a preset quantization step offset, and a high-frequency coefficient quantization step offset, and the quantization step of the low-frequency transform coefficient is a sum of an original quantization step, a preset quantization step offset, and a low-frequency coefficient quantization step offset; and
For example, in a case that distribution of the components corresponding to the attribute information is flat, a coarser quantization manner is used. In this case, Q_(fin−AC)=Q_ori+Offset
_coeff+
Offset
_AC and Q_(fin−DC)=Q_ori+Offset_coeff+Offset_DC. Q_(fin−AC) indicates a quantization step of the high frequency coefficient, Q_ori indicates an original quantization step,
Offset
_coeff indicates a preset quantization step offset,
Offset
_AC indicates a high-frequency coefficient quantization step offset, Q_(fin−DC) indicates a low-frequency coefficient quantization step, and Offset_DC indicates a low-frequency coefficient quantization step offset.
In a case that distribution of the components corresponding to the attribute information is not flat, a same quantization step is applied to the high-frequency coefficient and the low-frequency coefficient during quantization, where Q_fin=Q_ori+Offset_coeff+Offset_DC, where Q_fin indicates a quantization step for the low-frequency coefficient and also indicates a quantization step for the high-frequency coefficient, Q_ori indicates an original quantization step, Offset
_coeff indicates a preset quantization step offset, and
Offset
_DC indicates a low-frequency coefficient quantization step offset.
In addition, a value obtained after quantization of the high frequency coefficient is 0 in a case the high frequency coefficient is less than a first preset threshold, and a value obtained after quantization of the low-frequency coefficient is 0 in a case the low-frequency coefficient is less than a second preset threshold. The first preset threshold and the second preset threshold may be the same or different.
In this embodiment of this application, a coding manner in which no DCT transform is performed on the K to-be-coded points may alternatively be included. Optionally, the method further includes:
That is, if it is determined, based on the attribute prediction information for the K to-be-coded points, not to perform DCT transform on the K to-be-coded points, or if it is determined, based on the N coded points, not to perform DCT transform on the K to-be-coded points, the attribute residual information for the K to-be-coded points may be directly quantized, and then entropy coding is performed based on the quantized attribute residual information to generate a binary bit stream, so as to complete encoding of the to-be-coded point cloud.
Further, after the performing entropy coding on the quantized attribute residual information for the K to-be-coded points, the method may further include:
That is, for the K to-be-coded points that do not require DCT transform, after quantization is performed on the attribute residual information of the K to-be-coded points and entropy coding is performed based on the quantized attribute residual information, inverse quantization may also be performed on the coded value obtained after entropy coding to obtain inverse attribute residual information, and then, based on the sum of the inverse attribute residual information and the attribute prediction information for the K to-be-coded points, the attribute reconstruction information for the K points is obtained.
Optionally, in this embodiment of this application, before the obtaining first information, the method further includes:
The identification information may be identification information obtained based on user input, for example, may be one parameter input by the user or may be a pre-stored parameter at the encoding end. The pre-stored parameter is obtained through user operation, and the parameter is used to indicate whether the encoding end performs the point cloud attribute information encoding method.
For example, the identification information may be denoted by 0 and 1. If the identification information is 0, indicating that the point cloud attribute information encoding method does not need to be performed, the encoding end does not perform the point cloud attribute information encoding method; or if the identification information is 1, the encoding end performs the point cloud attribute information encoding method. Optionally, the identification information may be denoted in other forms, for example, if the identification information is “true”, the encoding end performs the point cloud attribute information encoding method; or if the identification information is “false”, the encoding end does not perform the point cloud attribute information encoding method. Certainly, the identification information may alternatively be denoted in other forms, and no more examples are provided in this embodiment of this application.
Further, after the generating a binary bit stream, the method further includes:
It can be understood that after the binary bit stream is generated at the encoding end, the encoding end writes the identification information into the binary bit stream, so that after obtaining the binary bit stream, the decoding end can obtain the identification information by decoding the binary bit stream. In other words, based on the identification information, it can be learned whether the encoding end performs encoding by using the point cloud attribute information encoding method, so that the decoding end can use a corresponding decoding method based on the identification information, ensuring smooth decoding at the decoding end and guaranteeing decoding efficiency.
In this embodiment of this application, inverse quantization is performed on coded values obtained after entropy coding to obtain the attribute reconstruction information for the K to-be-coded points, or for the K to-be-coded points after DCT transform, inverse quantization and inverse DCT transform are sequentially performed on the coded values obtained after entropy coding, so as to obtain the attribute reconstruction information for the K to-be-coded points. Based on the obtained attribute reconstruction information, it is determined whether uncoded points in the to-be-coded point cloud need to be DCT-transformed, so as to convert a dispersed distribution of the attribute information in the spatial domain to a centralized distribution in the transform domain, thereby achieving the purpose of removing spatial redundancy and improving attribute encoding efficiency and reconstruction performance.
Referring to
Referring to
Step 501: Obtain third information.
Step 502: Determine, based on fourth information associated with the third information, whether to perform inverse DCT transform on K to-be-decoded points.
Step 503: In a case that it is determined to perform inverse DCT transform on the K to-be-decoded points, perform inverse DCT transform on the K to-be-decoded points, so as to obtain attribute residual information for the K to-be-decoded points.
Step 504: Obtain attribute reconstruction information for the K to-be-decoded points based on the attribute residual information and attribute prediction information that are for the K to-be-decoded points, so as to decode un-decoded points in a to-be-decoded point cloud.
The third information includes the K to-be-decoded points and the fourth information includes attribute prediction information for the K to-be-decoded points; or the third information includes N decoded points prior to the K to-be-decoded points, and the fourth information includes attribute reconstruction information for the N decoded points, K being a positive integer and N being an integer greater than 1.
Optionally, the third information includes the K to-be-decoded points and the fourth information includes the attribute prediction information for the K to-be-decoded points. In this case, the step 502 includes:
Optionally, the third information includes N decoded points prior to the K to-be-decoded points, and the fourth information includes the attribute reconstruction information for the N decoded points. In this case, the step 502 includes:
Optionally, the third information includes K to-be-decoded points, and the step 501 includes:
Optionally, the performing sorting on a to-be-decoded point cloud and obtaining K to-be-decoded points in the sorted to-be-decoded point cloud includes:
Optionally, before the step 502, the method further includes:
Optionally, the obtaining S neighboring points with a closest Manhattan distance to a target to-be-decoded point according to a bi-Hilbert order or a bi-Morton order includes:
Optionally, a search range of the Hilbert-1 order or Morton-1 order is a first preset range, a preceding-order search range of the Hilbert-2 order or Morton-2 order is a second preset range, and a post-order search range of the Hilbert-2 order or Morton-2 order is a third preset range;
Optionally, the given preset search range is determined based on a correlation between an initial number of points of a point cloud sequence and a bounding box volume of an input point cloud.
Optionally, the determining initial attribute prediction information for the target to-be-decoded point based on the S neighboring points includes:
Optionally, the third information includes the K to-be-decoded points, and before the step 502, the method further includes:
Optionally, the determining initial attribute prediction information for the target to-be-decoded point based on the L neighboring points includes:
Optionally, a sum of the first weights respectively corresponding to the K to-be-decoded points is 1.
Optionally, before the performing inverse DCT transform on K to-be-decoded points, the method further includes:
The performing inverse DCT transform on K to-be-decoded points includes:
Optionally, the transform coefficient includes a high-frequency coefficient and a low-frequency coefficient, and the performing inverse quantization on the transform coefficient to obtain an inverse-quantized transform coefficient includes:
Optionally, the obtaining a high-frequency coefficient quantization step corresponding to the high frequency coefficient, and obtaining a low-frequency coefficient quantization step corresponding to the low-frequency coefficient includes:
Optionally, the obtaining the high-frequency coefficient quantization step corresponding to the high-frequency coefficient, and obtaining a low-frequency coefficient quantization step corresponding to the low-frequency coefficient, based on a distribution status of components corresponding to attribute information for the K to-be-decoded points includes:
Optionally, a value obtained after quantization of the high frequency coefficient is 0 in a case the high frequency coefficient is less than a first preset threshold, and a value obtained after quantization of the low-frequency coefficient is 0 in a case the low-frequency coefficient is less than a second preset threshold.
Optionally, the method further includes:
Optionally, before the step of obtaining third information, the method further includes:
It should be noted that the decoding method provided in this embodiment corresponds to the encoding method in the embodiment described in
In the decoding method in this embodiment of this application, in the process of decoding the to-be-decoded point cloud, it is necessary to determine, based on the attribute prediction information for the to-be-decoded points or the attribute reconstruction information for the decoded points, whether to perform DCT transform on the to-be-decoded points. In a case that it is determined to perform DCT transform on the to-be-decoded points, DCT transform is performed on the to-be-decoded points, so as to convert a dispersed distribution of the attribute information in the spatial domain to a relatively centralized distribution in the transform domain. In this way, signal energy is concentrated in a few coefficients, facilitating quantization and decoding. This removes attribute redundancy, thereby improving the attribute decoding efficiency and reconstruction performance.
It should be noted that, for the point cloud attribute information encoding method provided in the embodiments of this application, the execution body may be a point cloud attribute information encoding apparatus, or a control module for executing the point cloud attribute information encoding method in the point cloud attribute information encoding apparatus. In the embodiments of this application, the point cloud attribute information encoding method being performed by the point cloud attribute information encoding apparatus is used as an example to describe the point cloud attribute information encoding apparatus provided in the embodiments of this application.
Referring to
Optionally, the first information includes the K to-be-coded points and the second information includes attribute prediction information for the K to-be-coded points.
The first determining module 602 is further configured to:
Optionally, the first information includes N coded points prior to the K to-be-coded points and the second information includes attribute reconstruction information for the N coded points.
The first determining module 602 is further configured to:
Optionally, the first information includes the K to-be-coded points, and the first obtaining module 601 is further configured to:
Optionally, the first obtaining module 601 is further configured to:
Optionally, the apparatus further includes an attribute information prediction module configured to:
Optionally, the attribute information prediction module is further configured to:
Optionally, a search range of the Hilbert-1 order or Morton-1 order is a first preset range, a preceding-order search range of the Hilbert-2 order or Morton-2 order is a second preset range, and a post-order search range of the Hilbert-2 order or Morton-2 order is a third preset range or the second preset range.
The binary bit stream includes a first attribute parameter and a second attribute parameter, where the first attribute parameter is used to represent the first preset range and the second attribute parameter is used to represent the second preset range; and
Optionally, the given preset search range is determined based on a correlation between an initial number of points of a point cloud sequence and a bounding box volume of an input point cloud.
Optionally, the attribute information prediction module is further configured to:
Optionally, the first information includes the K to-be-coded points, and the attribute information prediction module is further configured to:
Optionally, the attribute information prediction module is further configured to:
Optionally, a sum of the first weights respectively corresponding to the K to-be-coded points is 1.
Optionally, the apparatus further includes a third obtaining module configured to:
The first transform module 603 is further configured to:
Optionally, the apparatus further includes an attribute reconstruction module configured to:
Optionally, the transform coefficient includes a low-frequency coefficient and a high-frequency coefficient, and the encoding module 604 is further configured to:
The attribute reconstruction module is further configured to:
Optionally, the encoding module 604 is further configured to:
Optionally, the encoding module 604 is further configured to:
Optionally, the encoding module 604 is further configured to:
Optionally, a value obtained after quantization of the high frequency coefficient is 0 in a case the high frequency coefficient is less than a first preset threshold, and a value obtained after quantization of the low-frequency coefficient is 0 in a case the low-frequency coefficient is less than a second preset threshold.
Optionally, the encoding module 604 is further configured to:
Optionally, the apparatus further includes an attribute reconstruction module configured to:
Optionally, the apparatus further includes:
It should be noted that the apparatus performing encoding of point cloud attribute information means that the apparatus performs corresponding operations based on the foregoing modules (for example, the first obtaining module and the first determining module), which will not be repeated herein.
In this embodiment of this application, in the process of encoding the to-be-coded point cloud, the point cloud attribute information encoding apparatus needs to determine, based on the attribute prediction information for the to-be-coded points or the attribute reconstruction information for the coded points, whether to perform DCT transform on the to-be-coded points. In a case that it is determined to perform DCT transform on the to-be-coded points, DCT transform is performed on the to-be-coded points, so as to convert a dispersed distribution of the attribute information in the spatial domain to a relatively centralized distribution in the transform domain. In this way, signal energy is concentrated in a few coefficients, facilitating quantization and coding. This removes attribute redundancy, thereby improving the attribute coding efficiency and reconstruction performance.
The point cloud attribute information encoding apparatus in this embodiment of this application may be an apparatus, or an apparatus or electric device having an operating system, or may be a component, an integrated circuit, or a chip in a terminal. The apparatus or electric device may be a mobile terminal or a non-mobile terminal. For example, the mobile terminal may include but is not limited to the types of the terminal listed above, and the non-mobile terminal may be a server, a network attached storage (NAS), a personal computer (PC), a television (TV), a teller machine, a self-service machine, or the like, which is not specifically limited in this embodiment of this application.
The point cloud attribute information encoding apparatus provided in this embodiment of this application is capable of implementing the processes implemented in the method embodiments in
Referring to
Optionally, the third information includes the K to-be-decoded points and the fourth information includes attribute prediction information for the K to-be-decoded points.
The second determining module 702 is further configured to:
Optionally, the third information includes N decoded points prior to the K to-be-decoded points, and the fourth information includes attribute reconstruction information for the N decoded points.
The second determining module 702 is further configured to:
Optionally, the third information includes the K to-be-decoded points, and the second obtaining module 701 is further configured to:
Optionally, the second obtaining module 701 is further configured to:
Optionally, the apparatus further includes an attribute prediction module configured to:
Optionally, the attribute prediction module is further configured to:
Optionally, a search range of the Hilbert-1 order or Morton-1 order is a first preset range, a preceding-order search range of the Hilbert-2 order or Morton-2 order is a second preset range, and a post-order search range of the Hilbert-2 order or Morton-2 order is a third preset range;
Optionally, the given preset search range is determined based on a correlation between an initial number of points of a point cloud sequence and a bounding box volume of an input point cloud.
Optionally, the attribute prediction module is further configured to:
Optionally, the third information includes the K to-be-decoded points, and the attribute prediction module is further configured to:
Optionally, the attribute prediction module is further configured to:
Optionally, a sum of the first weights respectively corresponding to the K to-be-decoded points is 1.
Optionally, the apparatus further includes an inverse quantization module configured to:
The second transform module 703 is further configured to:
Optionally, the transform coefficient includes a high-frequency coefficient and a low-frequency coefficient, and the inverse quantization module is further configured to:
Optionally, the inverse quantization module is further configured to:
Optionally, the inverse quantization module is further configured to:
Optionally, a value obtained after quantization of the high frequency coefficient is 0 in a case the high frequency coefficient is less than a first preset threshold, and a value obtained after quantization of the low-frequency coefficient is 0 in a case the low-frequency coefficient is less than a second preset threshold.
Optionally, the apparatus further includes a quantization module configured to:
Optionally, the apparatus further includes a fourth obtaining module configured to:
It should be noted that the apparatus performing decoding of point cloud attribute information means that the apparatus performs corresponding operations based on the foregoing modules (for example, the second obtaining module and the second determining module), which will not be repeated herein.
According to the point cloud attribute information decoding apparatus in this embodiment of this application, in the process of decoding the to-be-decoded point cloud, it is necessary to determine, based on the attribute prediction information for the to-be-decoded points or the attribute reconstruction information for the decoded points, whether to perform DCT transform on the to-be-decoded points. In a case that it is determined to perform DCT transform on the to-be-decoded points, DCT transform is performed on the to-be-decoded points, so as to convert a dispersed distribution of the attribute information in the spatial domain to a relatively centralized distribution in the transform domain. In this way, signal energy is concentrated in a few coefficients, facilitating quantization and decoding. This removes attribute redundancy, thereby improving the attribute decoding efficiency and reconstruction performance.
The point cloud attribute information decoding apparatus in this embodiment of this application may be an apparatus, or an apparatus or electric device having an operating system, or may be a component, an integrated circuit, or a chip in a terminal. The apparatus or electric device may be a mobile terminal or a non-mobile terminal. For example, the mobile terminal may include but is not limited to the types of the terminal listed above, and the non-mobile terminal may be a server, a network attached storage (NAS), a personal computer (PC), a television (TV), a teller machine, a self-service machine, or the like, which is not specifically limited in this embodiment of this application.
The point cloud attribute information decoding apparatus provided in this embodiment of this application is capable of implementing the processes implemented in the method embodiment in
Optionally, as shown in
An embodiment of this application further provides a terminal including a processor and a communication interface, and the processor is configured to implement the processes of the method embodiment described in the foregoing
The terminal 900 includes but is not limited to at least part of components such as a radio frequency unit 901, a network module 902, an audio output unit 903, an input unit 904, a sensor 905, a display unit 906, a user input unit 907, an interface unit 908, a memory 909, and a processor 910.
Persons skilled in the art can understand that the terminal 900 may further include a power supply (for example, a battery) supplying power to the components, and the power supply may be logically connected to the processor 910 through a power management system. In this way, functions such as charge management, discharge management, and power consumption management are implemented by using the power management system. The structure of the terminal shown in
It can be understood that in this embodiment of this application, the input unit 904 may include a graphics processing unit (GPU) 9041 and a microphone 9042. The graphics processing unit 9041 processes image data of a still picture or video obtained by an image capture apparatus (such as a camera) in a video capture mode or an image capture mode. The display unit 906 may include a display panel 9061, and the display panel 9061 may be configured in a form of a liquid crystal display, an organic light-emitting diode, and the like. The user input unit 907 may include a touch panel 9071 and other input devices 9072. The touch panel 9071 is also referred to as a touchscreen. The touch panel 9071 may include two parts: a touch detection apparatus and a touch controller. The other input devices 9072 may include but are not limited to a physical keyboard, a function key (such as a volume control key or a power on/off key), a trackball, a mouse, a joystick, and the like. Details are not described herein.
In this embodiment of this application, the radio frequency unit 901 receives downlink data from a network-side device, and then sends the downlink data to the processor 910 for processing; and also sends uplink data to the network-side device. Generally, the radio frequency unit 901 includes but is not limited to an antenna, at least one amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, and the like.
The memory 909 may be configured to store software programs or instructions and various data. The memory 909 may include a program or instruction storage area and a data storage area. The program or instruction storage area may store an operating system, an application program or instruction required by at least one function (for example, a sound playback function or an image playback function), and the like. In addition, the memory 909 may include a high-speed random access memory, and may further include a non-volatile memory. The non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (Programmable ROM, PROM), an erasable programmable read-only memory (Erasable PROM, EPROM), an electrically erasable programmable read-only memory (Electrically EPROM, EEPROM), or a flash memory, for example, at least one disk storage device, a flash memory device, or another non-volatile solid-state storage device.
The processor 910 may include one or more processing units. Optionally, an application processor and a modem processor may be integrated in the processor 910. The application processor primarily processes an operating system, user interfaces, application programs or instructions, and the like. The modem processor primarily processes radio communication, for example, being a baseband processor. It can be understood that the modem processor may alternatively be not integrated in the processor 910.
In an implementation, the processor 910 is configured to:
Optionally, the first information includes the K to-be-coded points and the second information includes attribute prediction information for the K to-be-coded points; and the processor 910 is further configured to:
Optionally, the first information includes N coded points prior to the K to-be-coded points and the second information includes attribute reconstruction information for the N coded points; and the processor 910 is further configured to:
Optionally, the first information includes K to-be-coded points; and the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, a search range of the Hilbert-1 order or Morton-1 order is a first preset range, a preceding-order search range of the Hilbert-2 order or Morton-2 order is a second preset range, and a post-order search range of the Hilbert-2 order or Morton-2 order is a third preset range or the second preset range.
The binary bit stream includes a first attribute parameter and a second attribute parameter, where the first attribute parameter is used to represent the first preset range and the second attribute parameter is used to represent the second preset range; and
Optionally, the given preset search range is determined based on a correlation between an initial number of points of a point cloud sequence and a bounding box volume of an input point cloud.
Optionally, the processor 910 is further configured to:
Optionally, the first information includes K to-be-coded points; and the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, a sum of the first weights respectively corresponding to the K to-be-coded points is 1.
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
The performing inverse quantization on the quantized transform coefficient, and performing inverse transform on an inverse transform coefficient obtained after inverse quantization, so as to obtain attribute reconstruction information for the K to-be-coded points includes:
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, a value obtained after quantization of the high frequency coefficient is 0 in a case the high frequency coefficient is less than a first preset threshold, and a value obtained after quantization of the low-frequency coefficient is 0 in a case the low-frequency coefficient is less than a second preset threshold.
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
The processor 910 performing encoding of point cloud attribute information means that the processor 910 performs the foregoing steps to implement encoding of point cloud attribute information, or to implement the point cloud attribute information encoding method as described in
In the implementations, in the process of encoding the to-be-coded point cloud, the terminal 900 needs to determine, based on the attribute prediction information for the to-be-coded points or the attribute reconstruction information for the coded points, whether to perform DCT transform on the to-be-coded points. In a case that it is determined to perform DCT transform on the to-be-coded points, DCT transform is performed on the to-be-coded points, so as to convert a dispersed distribution of the attribute information in the spatial domain to a relatively centralized distribution in the transform domain. In this way, signal energy is concentrated in a few coefficients, facilitating quantization and coding. This removes attribute redundancy, thereby improving the attribute coding efficiency and reconstruction performance.
Alternatively, in another implementation, the processor 910 is configured to:
Optionally, the third information includes the K to-be-decoded points and the fourth information includes attribute prediction information for the K to-be-decoded points; and the processor 910 is further configured to:
Optionally, the third information includes N decoded points prior to the K to-be-decoded points, and the fourth information includes attribute reconstruction information for the N decoded points; and the processor 910 is further configured to:
Optionally, the third information includes the K to-be-decoded points; and the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, a search range of the Hilbert-1 order or Morton-1 order is a first preset range, a preceding-order search range of the Hilbert-2 order or Morton-2 order is a second preset range, and a post-order search range of the Hilbert-2 order or Morton-2 order is a third preset range;
Optionally, the given preset search range is determined based on a correlation between an initial number of points of a point cloud sequence and a bounding box volume of an input point cloud.
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, a sum of the first weights respectively corresponding to the K to-be-decoded points is 1.
Optionally, the processor 910 is further configured to:
The performing inverse DCT transform on K to-be-decoded points includes:
Optionally, the transform coefficient includes a high-frequency coefficient and a low-frequency coefficient, and the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
Optionally, a value obtained after quantization of the high frequency coefficient is 0 in a case the high frequency coefficient is less than a first preset threshold, and a value obtained after quantization of the low-frequency coefficient is 0 in a case the low-frequency coefficient is less than a second preset threshold.
Optionally, the processor 910 is further configured to:
Optionally, the processor 910 is further configured to:
The processor 910 performing decoding of point cloud attribute information means that the processor 910 performs the foregoing steps to implement decoding of point cloud attribute information, or to implement the point cloud attribute information decoding method as described in
In the implementations, in the process of decoding the to-be-decoded point cloud, the terminal 900 needs to determine, based on the attribute prediction information for the to-be-decoded points or the attribute reconstruction information for the decoded points, whether to perform DCT transform on the to-be-decoded points. In a case that it is determined to perform DCT transform on the to-be-decoded points, DCT transform is performed on the to-be-decoded points, so as to convert a dispersed distribution of the attribute information in the spatial domain to a relatively centralized distribution in the transform domain. In this way, signal energy is concentrated in a few coefficients, facilitating quantization and decoding. This removes attribute redundancy, thereby improving the attribute decoding efficiency and reconstruction performance.
An embodiment of this application further provides a readable storage medium, where a program or instructions are stored in the readable storage medium. When the program or the instructions are executed by a processor, the processes of the foregoing method embodiment in
The processor is a processor in the terminal described in the foregoing embodiments. The readable storage medium includes a computer-readable storage medium, for example, a computer read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disc.
An embodiment of this application further provides a chip, where the chip includes a processor and a communication interface. The communication interface is coupled to the processor, and the processor is configured to run a program or instructions to implement the processes of the foregoing method embodiment in
It should be understood that the chip mentioned in the embodiments of this application may also be referred to as a system-level chip, a system chip, a chip system, a system-on-chip, or the like.
An embodiment of this application further provides a computer program product, where the computer program product is stored in a non-transitory storage medium, and when being executed by at least one processor, the computer program product is configured to implement the processes of the foregoing method embodiment in
An embodiment of this application further provides a communication device, configured to perform the processes of the foregoing method embodiments in
It should be noted that in this specification, the term “include”, “comprise”, or any of their variants are intended to cover a non-exclusive inclusion, so that a process, a method, an article, or an apparatus that includes a list of elements not only includes those elements but also includes other elements that are not expressly listed, or further includes elements inherent to such process, method, article, or apparatus. In absence of more constraints, an element preceded by “includes a . . . ” does not preclude the existence of other identical elements in the process, method, article, or apparatus that includes the element. In addition, it should be noted that the scope of the method and the apparatus in the embodiments of this application is not limited to executing the functions in an order shown or discussed, but may also include executing the functions in a substantially simultaneous manner or in a reverse order, depending on the functions involved. For example, the described methods may be performed in an order different from that described, and steps may alternatively be added, omitted, or combined. In addition, features described with reference to some examples may be combined in other examples.
According to the description of the foregoing implementations, persons skilled in the art can clearly understand that the method in the foregoing embodiments may be implemented by software in combination with a necessary general hardware platform. Certainly, the method in the foregoing embodiments may alternatively be implemented by hardware. However, in many cases, the former is a preferred implementation. Based on such an understanding, the technical solutions of this application essentially or the part contributing to the prior art may be implemented in a form of a computer software product. The computer software product is stored in a storage medium (such as a ROM/RAM, a magnetic disk, or an optical disc), and includes several instructions for instructing a terminal (which may be a mobile phone, a computer, a server, a network device, or the like) to perform the methods described in the embodiments of this application.
The foregoing describes the embodiments of this application with reference to the accompanying drawings. However, this application is not limited to the foregoing specific implementations. These specific implementations are merely illustrative rather than restrictive. Inspired by this application, persons of ordinary skill in the art may develop many other forms without departing from the essence of this application and the protection scope of the claims, and all such forms shall fall within the protection scope of this application.
Number | Date | Country | Kind |
---|---|---|---|
202110654116.7 | Jun 2021 | CN | national |
202110817311.7 | Jul 2021 | CN | national |
The present application is a continuation application of International Application No. PCT/CN2022/098193, filed on Jun. 10, 2022. International Application No. PCT/CN2022/098193 claims priority to Chinese Patent Application No. 202110654116.7 filed in China on Jun. 11, 2021, and to Chinese Patent Application No. 202110817311.7 filed in China on Jul. 20, 2021. Each of the above-listed applications is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2022/098193 | Jun 2022 | US |
Child | 18530090 | US |