Decoding method, encoding method and decoding device
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
- Filing Date
- 2024-09-18
- Publication Date
- 2026-04-24
Smart Images

Figure CN121925679A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to decoding methods, encoding methods, decoding devices, and encoding devices. Background Technology
[0002] Devices and services that effectively utilize 3D data are expected to become widespread in a wide range of fields, including computer vision for autonomous vehicle or robot movement, mapping, surveillance, infrastructure tracking, and image distribution. 3D data will be acquired through various methods, such as distance sensors like rangefinders, stereo cameras, or combinations of multiple monocular cameras.
[0003] One method of representing 3D data is point cloud, which uses groups of points in 3D space to represent the shape of 3D structures. A point cloud stores the position and color of each point group. While point clouds are expected to become the mainstream method for representing 3D data, the data volume of point groups is extremely large. Therefore, in the accumulation or transmission of 3D data, similar to 2D dynamic images (such as MPEG-4 AVC or HEVC standardized by MPEG), data compression through encoding is necessary.
[0004] In addition, point cloud compression is partially supported by public libraries that perform point cloud-related processing (such as the PointCloud Library).
[0005] In addition, there are known techniques for retrieving and displaying facilities located around a vehicle using three-dimensional map data (see, for example, Patent Document 1).
[0006] Prior art literature Patent documents Patent Document 1: International Publication No. 2014 / 020663 Summary of the Invention
[0007] The problem that the invention aims to solve In the encoding and decoding of such three-dimensional data, we hope to improve encoding efficiency.
[0008] The purpose of this disclosure is to provide a decoding method, encoding method, decoding device, or encoding device that can improve encoding efficiency.
[0009] Methods for solving problems One aspect of this disclosure involves a decoding method that performs arithmetic decoding using context on encoded coefficients to generate coefficients, and performs inverse binarization and inverse quantization on the coefficients to generate attribute information of three-dimensional points, wherein the number of contexts is set according to the specification level.
[0010] One aspect of this disclosure involves an encoding method that quantizes and binarizes the attribute information of three-dimensional points to generate coefficients, and performs arithmetic encoding of the coefficients using contexts, the number of which is set according to the specification level.
[0011] Invention Effects This disclosure provides a decoding method, encoding method, decoding device, or encoding device that can improve encoding efficiency. Attached Figure Description
[0012] Figure 1 This is a block diagram of the encoding device involved in this embodiment.
[0013] Figure 2 This is a block diagram of the decoding device involved in this embodiment.
[0014] Figure 3 This is a block diagram of the attribute decoding unit involved in the implementation method.
[0015] Figure 4 This is a diagram illustrating an example of a quantization table involved in an implementation method.
[0016] Figure 5 This is a block diagram of the attribute encoding section involved in the implementation method.
[0017] Figure 6 This is a diagram showing the correspondence between the output of the quantization table of the decoding device and the output of the quantization table of the encoding device according to the embodiment.
[0018] Figure 7 This is a block diagram illustrating the configuration of the processing unit related to quantization processing in the implementation method.
[0019] Figure 8 This is a flowchart of the decoding process involved in the implementation method.
[0020] Figure 9 This is a block diagram of the decoding device involved in the implementation method.
[0021] Figure 10 This is a flowchart of the encoding process involved in the implementation method.
[0022] Figure 11 This is a block diagram of the encoding device involved in the implementation. Detailed Implementation
[0023] One aspect of this disclosure involves a decoding method that performs arithmetic decoding using context on encoded coefficients to generate coefficients, and performs inverse binarization and inverse quantization on the coefficients to generate attribute information of three-dimensional points, wherein the number of contexts is set according to the specification level.
[0024] Therefore, the encoding device can appropriately set the number of contexts in the arithmetic encoding according to the specification level. This improves the encoding efficiency. Furthermore, the decoding method can appropriately decode bitstreams with thus improved encoding efficiency.
[0025] For example, the number of contexts can be 3 when the level is 1, and a value in the range of 4 to 12 when the level is 2. This improves the coding efficiency of arithmetic coding in the encoding device.
[0026] For example, the number of contexts can also be 12 when the level is level 2. This improves the coding efficiency of arithmetic coding in the coding device.
[0027] One aspect of this disclosure involves an encoding method that quantizes and binarizes the attribute information of three-dimensional points to generate coefficients, and performs arithmetic encoding of the coefficients using contexts, the number of which is set according to the specification level.
[0028] Therefore, this encoding method can appropriately set the number of contexts in arithmetic encoding according to the specification level. This improves encoding efficiency.
[0029] In addition, one aspect of the present disclosure involves a decoding device that includes a processor and a memory. The processor uses the memory to perform arithmetic decoding of the encoded coefficients using context to generate coefficients, and performs inverse binarization and inverse quantization on the coefficients to generate attribute information of three-dimensional points. The number of contexts is set according to the specification level.
[0030] In addition, one aspect of the encoding apparatus disclosed herein includes a processor and a memory, wherein the processor uses the memory to quantize and binarize the attribute information of three-dimensional points to generate coefficients, and performs arithmetic encoding of the coefficients using contexts, the number of which is set according to the specification level.
[0031] Furthermore, these general or specific methods can also be implemented by systems, methods, integrated circuits, computer programs, or computer-readable recording media such as CD-ROMs, or by any combination of systems, methods, integrated circuits, computer programs, and recording media.
[0032] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Furthermore, the embodiments described below represent specific examples of this disclosure. The numerical values, shapes, materials, constituent elements, arrangement and connection methods of constituent elements, steps, and order of steps shown in the following embodiments are examples and are not intended to limit this disclosure. Moreover, constituent elements not described in the independent claims among the constituent elements in the following embodiments are described as arbitrary constituent elements.
[0033] (Implementation Method) [An overview of attribute information quantization and inverse quantization] The encoding apparatus (3D data encoding apparatus) and decoding apparatus (3D data decoding apparatus) involved in this embodiment are described below. The encoding apparatus encodes 3D data to generate a bitstream. The decoding apparatus decodes the bitstream to generate 3D data.
[0034] Three-dimensional data, for example, is 3D point group data (also known as point cluster data). A point group is a collection of multiple 3D points that represent the 3D shape of an object. Point group data includes the positional and attribute information of multiple 3D points. This positional information represents the 3D position of each point. Furthermore, positional information is sometimes also referred to as geometric information. For example, positional information may be represented using an orthogonal coordinate system or a polar coordinate system.
[0035] Attribute information can represent color information, reflectivity, transmittance, infrared information, normal vector, or time information, etc. A three-dimensional point may sometimes have a single attribute, or it may have multiple types of attribute information.
[0036] In addition, the following mainly describes the encoding and decoding of attribute information, but the encoding and decoding devices can also encode and decode location information.
[0037] Additionally, as a compression specification for point groups, the G-PCC (Geometry-based Point Cloud Compression) specification, which uses location information (geometric information), is known. In G-PCC, the encoding methods for attribute information include LoD (Level of Detail) methods (e.g., Lifting) and Transform methods (e.g., RAHT (Region Adaptive Hierarchical Transform)). The encoding device can select and use these encoding methods.
[0038] Figure 1 This is a block diagram of the encoding device 100 according to this embodiment. Furthermore, in Figure 1 The document only describes a processing unit related to the encoding of attribute information. The encoding device 100 includes a first attribute encoding unit 101 and a second attribute encoding unit 102. The first attribute encoding unit 101 encodes the attribute information using a first encoding method (e.g., LoD encoding) to generate encoded attribute information. The second attribute encoding unit 102 encodes the attribute information using a second encoding method (e.g., a transformation encoding) different from the first encoding method to generate encoded attribute information.
[0039] Figure 2 This is a block diagram of the decoding apparatus 200 according to this embodiment. Furthermore, in Figure 2 The document only describes the processing unit related to decoding attribute information. The decoding apparatus 200 includes a first attribute decoding unit 201 and a second attribute decoding unit 202. The first attribute decoding unit 201 decodes the encoded attribute information using a first decoding method (e.g., LoD method) to generate decoded attribute information. The second attribute decoding unit 202 decodes the encoded attribute information using a second decoding method (e.g., a transformation method) different from the first decoding method to generate decoded attribute information.
[0040] In either approach, the encoding device transforms the input attribute information in a prescribed manner to generate encoding coefficients, quantizes these coefficients to generate quantized encoding coefficients, and then performs entropy encoding on the quantized coefficients to generate encoded data.
[0041] Furthermore, in this embodiment, the encoded coefficients are referred to as data, and the quantized encoded coefficients are referred to as quantized data. When quantizing the data in the encoding device, a QP value (e.g., 4 to 95) is used as an integer value within a specified range. Based on the QP value, a scale value (quantization factor, also known as quantization step (Qstep)) used in quantization is derived using a specified method.
[0042] Next, the encoding device quantizes the data using a scaling factor to generate quantized data. For example, as shown in Equation 1 below, the scaling factor is calculated by inputting the QP value to a specified transformation coefficient. Alternatively, as shown in Equation 2, quantized data is generated by dividing the data by the scaling factor.
[0043] Proportional value = Transformation function (QP value) ... (Equation 1) Quantified data = Data / Proportion value ... (Equation 2) Here, the QP value used by the encoding device during quantization is stored in metadata such as the APS (Attribute Parameter Set) and notified to the decoding device. The APS is the control information (also called the parameter set or metadata) included in the bitstream, and it is control information related to the encoding of attribute information. For example, the APS is control information common to multiple frames. In addition, the entropy-encoded encoded data is stored in the attribute data unit and transmitted.
[0044] The decoding device decodes the APS to obtain the QP value and transforms the QP value into a scaling factor using a prescribed method. Next, the decoding device uses the scaling factor to inverse quantize the separately decoded quantized data. For example, as shown in Equation 3 below, the scaling factor is calculated by inputting the QP value to a prescribed transformation coefficient. Additionally, as shown in Equation 4, data is generated by multiplying the quantized data by the scaling factor.
[0045] Proportional value = Transformation function (QP value) ... (Equation 3) Data = Quantified data × Proportion value ... (Equation 4) Inverse quantization processing in the decoding device The following describes the inverse quantization process in the decoding device. Figure 3 This is a block diagram of the attribute decoding unit 300 included in the decoding device. For example, the attribute decoding unit 300 corresponds to... Figure 2 The first attribute decoding unit 201 or the second attribute decoding unit 202 shown. The attribute decoding unit 300 includes an entropy decoding unit 301, an up-order unit 302, an inverse quantization unit 303, an inverse transform unit 304, an down-order unit 305, and a transform unit 306.
[0046] The decoding device obtains the QP value from the APS. The conversion unit 306 uses a quantization table (QP table) to convert the remainder obtained by dividing the QP value by 6. Figure 4 This is a diagram illustrating an example of a quantification table. For example... Figure 4 As shown, the quantization table represents the relationship between the remainder (QP%6) obtained by dividing the QP value by 6 and the output. The transformation unit 306 multiplies the transformed value (the output of the quantization table) by 2. (QP / 6) This leads to the conclusion that multiplying the proportional value by 2 8 The resulting value (the proportional value after the shift).
[0047] The entropy decoding unit 301 performs entropy decoding on the encoded attribute information included in the bitstream to generate quantized data. For example, the entropy decoding unit 301 performs context-dependent arithmetic decoding on the encoded attribute information to generate binary data, and performs inverse binarization (multi-valueization) on the binary data to generate quantized data.
[0048] The up-quantization unit 302 up-quantizes the quantized data to generate up-quantized data. The inverse quantization unit 303 inverse quantizes the up-quantized data using a scaling factor (the up-quantized scaling factor) to generate up-quantized data. The inverse transform unit 304 inverse transforms the up-quantized data to generate up-quantized decoded attribute information. That is, the inverse transform unit 304 decodes using either LoD or RAHT methods. The down-quantization unit 305 down-quantizes the up-quantized decoded attribute information to generate decoded attribute information.
[0049] In this way, the decoding device uses a quantization table and performs bit raising (multiplication by a power of 2 or a left shift operation). Then, the decoding device performs bit depreciation (division by a power of 2 or a right shift operation). This improves the precision of the lower bits in fixed-decimal-point arithmetic and avoids the use of decimal point operations or division during inverse quantization. For example, by combining table transformations with downshifts, multiplication of bits less than 1 in inverse quantization can be achieved without decimal point operations. When inverse quantization is performed using parameters with precision less than 1 for the data, by raising the data first and then performing inverse quantization followed by depreciation, the multiplication precision of bits less than 1 can be improved.
[0050] Here, the scaling factor (scale value after upscaling) output from the converter 306 is represented by (scale value << 8) as shown in Equation 5 below, and is obtained by multiplying the output of the quantization table (QPtable(QP%6)) by 2. (QP / 6) This is obtained. In addition, the data, quantitative data, and proportion values are represented by the following (Equation 6).
[0051] (Proportion value << 8) = QPtable(QP%6) << (QP / 6) ··· (Equation 5) Data = {Quantified data × (proportion value << 8)} >> 8 ··· (Equation 6) In other words, data, quantitative data, and proportions are represented by the following (Equation 7).
[0052] Data = {Quantized data × (proportional value × increment parameter)} / increment parameter ... (Equation 7) In other words, a quantization table is used to derive the scale value (scale value × scale parameter) after being scaled up by a bit scale parameter. The scaled data is then dequantized using this scale value to restore the original scaled data.
[0053] Furthermore, the scale value is incremented during the calculation performed by the quantization table in the transformation unit 306. The incremented data is then output from the inverse quantization unit 303 and inversely transformed in the inverse transformation unit 304. As a result, the output data of the inverse transformation unit 304 is incremented, and therefore de-enhanced in the de-enhancing unit 305.
[0054] Furthermore, the up-counting unit 302 multiplies the quantized data by the up-counting parameter to perform up-counting. The down-counting unit 305 divides the quantized data by the up-counting parameter to perform down-counting. In addition, the up-counting included in the transformation using the quantization table corresponds to multiplying the scale value by the up-counting parameter.
[0055] As described above, the attribute information is restored and output. In this way, the decoding device performs inverse quantization using the increased scaling factor, and decodes the increased data using either LoD or RAHT methods. Therefore, in the fixed-decimal-point operations during inverse quantization and decoding (inverse transform), operations with a precision of less than 1 (decimal arithmetic) can be achieved, improving computational accuracy.
[0056] Quantization processing in encoding devices The following describes the quantization process in the encoding device. Figure 5 This is a block diagram of the attribute encoding unit 400 included in the encoding device. For example, the attribute encoding unit 400 corresponds to... Figure 1 The first attribute encoding unit 101 or the second attribute encoding unit 102 shown. The attribute encoding unit 400 includes an up-bit unit 401, a transformation unit 402, a quantization unit 403, a down-bit unit 404, an entropy encoding unit 405, and a transformation unit 406.
[0057] The encoding device, like the decoding device, uses the following (Equation 8) and (Equation 9) for quantization in order to perform fixed decimal point operations and shift operations.
[0058] (1 / proportional value << upgrade parameter) = EncQPtable(QP%6) >> (QP / 6) ··· (Equation 8) Quantified data = Data × (1 / proportional value << increase parameter) >> increase parameter ... (Equation 9) The converter 406 derives the upscaled inverse proportional value (EncQPtable(QP%6)) using a quantization table based on the QP value. Furthermore, the inverse proportional value is the reciprocal of the proportional value.
[0059] The upgrade unit 401 upgrades the attribute information to a higher level, thereby generating upgraded attribute information. For example, the upgrade unit 401 multiplies the attribute information by an upgrade parameter.
[0060] The transformation unit 402 uses position information to transform the upgraded attribute information, thereby generating upgraded data. In other words, the transformation unit 402 uses LoD or RAHT encoding.
[0061] The quantization unit 403 uses the inverse proportional value after the quantization to quantize the data after the quantization, thereby generating quantized data after the quantization. For example, the quantization unit 403 multiplies the data after the quantization by the inverse proportional value after the quantization.
[0062] The downsizing unit 404 downsizes the quantized data after it has been raised, thereby generating quantized data. For example, the downsizing unit 404 divides the quantized data after it has been raised by the raising parameter. The entropy encoding unit 405 performs entropy encoding on the quantized data, thereby generating encoded attribute information. For example, the entropy encoding unit 405 binarizes the quantized data to generate binary data, and performs context-aware arithmetic encoding on the binary data to generate encoded attribute information.
[0063] Here, the quantization table used in the conversion unit 406 for deriving the inverse proportional value after boosting is a table derived from the output of the quantization table used in the decoding device and the boosting parameter used in the encoding device using the following (Equation 10).
[0064] The output of the quantization table of the encoding device × the output of the quantization table of the decoding device ≈ 2 编码装置中的升位参数 ... (Formula 10) Here, the up-order parameter in the encoding device is a parameter used to determine the performance of the quantization operation. By using a larger value for this parameter, the data being quantized can be quantized with higher precision.
[0065] For example, when the bit width of the attribute information value of the encoded object is large, the range of quantization values used for quantization also tends to increase. In this case, by using a larger value for the parameter, quantization and attribute encoding can be performed with high precision for any quantization value contained within a large range.
[0066] For example, in the G-PCC specification, when the bit width of the attribute information of the encoded object is 8 bits, the increment parameter is 26. In this case, when attribute information with a bit width exceeding 8 bits is input, it is possible to achieve high-precision quantization by using an increment parameter exceeding 26.
[0067] For example, if the bit width of the attribute information is 9 bits, which is 1 bit larger than 8 bits, the encoding device can also use 27 bits, which is 1 bit larger than 26, for the parameters. Alternatively, if the maximum number of bits for the attribute information, as determined by the G-PCC specification, is 16 bits, the encoding device can also use 26 bits + (16 bits - 8 bits) = 34 bits.
[0068] Furthermore, the bit width of the data output from the transform unit 402 may sometimes be smaller than the bit width of the input attribute information. For example, when the transform unit 402 outputs transformed coding coefficients, or prediction residuals of attribute values or coding coefficients, the bit width of the data output from the transform unit 402 may be smaller than the bit width of the input attribute information. Therefore, in such cases, the encoding device can reduce the number of bits required to increase the up-order parameter. For example, if the maximum number of bits for the attribute information, determined by the specification, is 16 bits, it is possible to increase the number of bits less than 8 bits instead of 26 bits. In other words, by using parameters ranging from 27 bits (1 bit larger than 26 bits) to 33 bits (7 bits larger than 26 bits), it is possible to improve the quantization accuracy.
[0069] Furthermore, in the G-PCC specification, when encoding 16-bit attribute information, the value of the increment parameter is preferably 30. This can suppress overflow caused by an excessively large increment parameter value and perform quantization and transformation (inverse quantization and inverse transformation) with high precision.
[0070] Consider the case where the maximum value of the attribute information determined by the specification is 16 bits. As an example, we can illustrate the table when the increment parameter used in the encoding device is set to 28, 29, 30, 31, or 32. Based on the above (Equation 10), we can derive the following (Equation 11).
[0071] The output of the quantization table of the encoding device is approximately 2. 编码装置中的升位参数 / Output of the quantization table of the decoding device... (Equation 11) Figure 6 This is a graph showing the correspondence between the output of the quantization table of the decoding device and the output of the quantization table of the encoding device for each up-bit parameter. For example, when the output of the quantization table of the decoding device is [161, 181, 203, 228, 256, 287] and the up-bit parameter is 30, the output of the quantization table of the encoding device is [6669204, 5932275, 5289369, 4709394, 4194304, 3741261]. More specifically, when the output of the quantization table of the decoding device is 161, the output of the quantization table of the encoding device is calculated as round(2π / 3). 30 / 161) = 6669204.
[0072] By using this quantization table to encode attribute information exceeding 8 bits, high-precision quantization and transformation are possible, thus improving the quality of the encoding.
[0073] Furthermore, this example uses a maximum attribute value of 16 bits, but the same method can be applied to other maximum value values. Alternatively, instead of the maximum attribute value, the quantization table can be determined based on the value obtained by adding α to the maximum value, or subtracting α from the maximum value. Furthermore, α can be any integer. Alternatively, the quantization table can be determined based on the number of bits of the input attribute information or the number of bits of the quantized data. Alternatively, the encoding device can have multiple quantization tables and adaptively select the quantization table to use.
[0074] Quantization processing in LoD mode This section explains the quantization process in the encoding device when using the LoD method, as well as the processes for improving quantization accuracy. Figure 7 This is a block diagram showing the configuration of the processing units related to quantization processing included in the encoding device. For example... Figure 7 As shown, the encoding device includes a quantization weight calculation unit 501 and a quantization unit 502.
[0075] First, the quantization weight calculation unit 501 derives the quantization weights for each point based on the weights output from the transform process. The quantization weights are derived using the following (Equation 12).
[0076] Quantization weight = weight × inverse square root of weight × first descending bit ... (Equation 12) Here, for example, if the number of bits in the first downshift is A, the first downshift is divided by 2. A The operation, or shifting down by A bits.
[0077] Next, the quantization unit 502 quantizes the data using the following (Equation 13) and (Equation 14).
[0078] Quantified object data = data × quantization weight × second downsizing... (Equation 13) Here, for example, if the number of bits in the second drop is B, the second drop is divided by 2. B The operation, or the shift down by B bits.
[0079] Quantified data = Quantified object data / Proportion value ... (Equation 14) In other words, the encoding device performs the operation (Equation 13) on the data generated through the transformation process to calculate the quantized target data. Next, the encoding device quantizes the quantized target data using a scaling factor to generate quantized data. Furthermore, according to (Equations 12) to (Equations 14), the quantized data is represented by the following (Equation 15).
[0080] Quantified data = data × (weight × inverse square root of weight × first descending digit) × second descending digit... (Equation 15) In this way, the encoding device performs a first and second down-shift of the data using weights, shifting the bits of A+B down to generate quantized data. Here, given a fixed A+B, the performance of quantization can be improved by appropriately setting the allocation of the values of A and B.
[0081] For example, if A is increased, the bit width of the quantization weights decreases, potentially leading to a deterioration in the accuracy of the quantization weights. On the other hand, if A is decreased, the bit width of the quantization weights increases, resulting in a larger bit width of data multiplied by the quantization weights, which could lead to data errors due to the bit width exceeding the specified bit width.
[0082] For example, when A + B = 44, and A = 36, B = 8, although there is a margin in the bit width of data × quantization weight, the large value of A may lead to a decrease in the bit width of the quantization weight, resulting in a deterioration in the precision of the quantization weight. In particular, in G-PCC encoding processing, the lower 8 bits of the data output from the transform unit are used by the transform unit, and the bit width required for data × quantization weight is small. Furthermore, when encoding attribute information with a bit width exceeding 8 bits, high quantization precision is required. In such cases, by allocating a portion of the bits of A to B, it is possible to improve the precision of the quantization weight without degrading the precision in the derived processing of the quantized object data.
[0083] For example, by setting A to a value less than 36 and B to a value greater than 8, it is possible to improve the quantization precision. For instance, the encoding device may append 4 bits to B, using [A, B] = [32, 12]. Alternatively, the encoding device may append 8 bits to B, using [A, B] = [28, 16]. This also allows for improved quantization precision. The values of A and B can also be combinations satisfying A < 36 and B > 8. Based on the hardware configuration, A and B are preferably even numbers, but they can also be odd numbers.
[0084] As shown above, by determining B based on the bit width required for the data multiplied by the quantization weights, and allocating the remaining portion to A, there is a possibility of improving the accuracy of quantization.
[0085] [Context in Entropy Encoding and Decoding] Next, the context of entropy encoding in the encoding device will be explained. The encoding device performs entropy encoding on the quantized data. Specifically, the encoding device binarizes the quantized data using exponential Golomb codes, thereby generating binary data consisting of multiple bits. A context is allocated for each bit of the binary data. The encoding device uses the context to perform arithmetic encoding on each bit. The number of bits for each context is 1 bit for every 1 context; for example, if the number of contexts is 3, the number of bits for the context is 3 bits.
[0086] Next, the number of contexts in entropy decoding is explained. When the decoding device decodes data from the bitstream using entropy decoding, it allocates contexts to the data in the same way as the encoding device. Furthermore, the number of contexts used in the decoding device is the same as the number used in the encoding device. The decoding device uses contexts to perform arithmetic decoding of the binary exponential Golomb code from the bitstream, and then performs inverse binarization and inverse quantization on the binary exponential Golomb code, thereby decoding the quantized data.
[0087] The following explains a specific example of the number of contexts. For instance, when the attribute information is 8 bits, the coding coefficients or residual components generated through transformation processing may be small, and there is a possibility that the number of bits in the binary data is also small. Therefore, the number of contexts can also be 3. In this case, contexts are allocated to the bits from the beginning to the 3rd bit, and the same context as the 3rd bit is allocated to the bits from the 4th bit onwards.
[0088] On the other hand, when the attribute information exceeds 9 bits, there is a possibility that the coding coefficients or residual components may also increase. In this case, the number of bits in the binary data obtained by binarizing the exponential Golomb code also increases. Therefore, when the value as binary data increases by more than 4 bits, there is a possibility that performance may be compromised due to the inability to allocate appropriate context for each bit. Therefore, it is preferable to set the number of contexts to a value greater than 3. Alternatively, the number of contexts can be increased accordingly to the increment in the number of bits of the attribute information.
[0089] For example, when the attribute information is 16 bits, there is a high probability that the encoding coefficients or residuals are values smaller than 16 bits. Therefore, the number of contexts is set to be in the range of 4 to 12. This can improve the performance of entropy coding and has the potential to improve the compression ratio. For example, by increasing the number of contexts to 9 to 12, a performance improvement can be expected. For example, when the number of bits for the attribute information is 16 bits, which is the maximum number of bits for attribute information specified by the G-PCC specification, the maximum number of bits in the specification can also be considered, increasing the number of contexts to about 3 + 8 = 11. Furthermore, since 12 is a multiple of 4, it is easier to design as a hardware configuration, and there is a possibility that even if it is increased further, the performance will not improve. Therefore, when the number of bits for the attribute information is 16 bits, which is the maximum number of bits for attribute information specified by the G-PCC specification, it is preferable to set the number of contexts for encoding the attribute information to 12.
[0090] For example, the maximum bit width of the attribute information can be defined according to the level of the specification. This allows for the design of hardware corresponding to the level, reducing costs. In cases where the maximum bit width of the attribute information varies according to the level, the context of entropy coding (arithmetic coding) in the encoding of the attribute information can also be defined according to the level.
[0091] For example, when level A corresponds to the encoding of attribute information up to a maximum of 8 bits, the number of contexts is specified as 3. When level B corresponds to the encoding of attribute information up to a maximum of 16 bits, the number of contexts can also be specified as 12. When encoding the data of the object being encoded, the encoding device can also analyze and estimate the magnitude or distribution of the residuals, and set the level based on the result. That is, the encoding device can set a level regardless of the maximum bit width of the attribute information. The level or the number of contexts can also be changed based on the setting of this level. Furthermore, a summary can be used instead of a level.
[0092] [Summary] As described above, the decoding device (three-dimensional data decoding device) involved in the implementation method performs... Figure 8 The processing is shown below. The decoding device performs arithmetic decoding of the encoded coefficients (e.g., encoded attribute information) using the context to generate coefficients (e.g., binary data) (S101), and performs inverse binarization and inverse quantization on the coefficients to generate attribute information of the three-dimensional points (e.g., encoded coefficients or decoded attribute information) (S102). The number of contexts is set according to the specification level.
[0093] Therefore, the encoding device can appropriately set the number of contexts in the arithmetic code according to the specification level. This improves the encoding efficiency. Furthermore, the decoding device can appropriately decode the bitstream with thus improved encoding efficiency.
[0094] For example, the number of contexts is 3 in the case of level 1, and the number of contexts ranges from 4 to 12 in the case of level 2. This improves the coding efficiency of arithmetic coding in the coding device.
[0095] For example, a Level 2 specification is an extension of a Level 1 specification. Alternatively, a Level 2 specification may have higher functionality than a Level 1 specification. Or, a Level 2 specification may have higher-level compatibility with a Level 1 specification.
[0096] For example, the number of contexts is 12 in the case of level 2. This improves the coding efficiency of arithmetic coding in the coding device.
[0097] Figure 9 This is a block diagram of the decoding device 10. For example, the decoding device 10 includes a processor 11 and a memory 12, and the processor 11 uses the memory 12 to perform the above-described processing.
[0098] Furthermore, the encoding device (three-dimensional data encoding device) involved in the implementation method performs... Figure 10 The process is shown below. The encoding device quantizes and binarizes the attribute information (e.g., encoding coefficients or attribute information) of the three-dimensional points to generate coefficients (e.g., binary data) (S201), and performs arithmetic encoding of the coefficients using the context (S202). The number of contexts is set according to the specification level.
[0099] Therefore, the encoding device can appropriately set the number of contexts in arithmetic coding according to the specification level. As a result, the encoding device can improve encoding efficiency.
[0100] For example, the number of contexts is 3 at level 1, and the number of contexts ranges from 4 to 12 at level 2. For example, the number of contexts is 12 at level 2.
[0101] Figure 11 This is a block diagram of the encoding device 20. For example, the encoding device 20 includes a processor 21 and a memory 22, and the processor 21 uses the memory 22 to perform the above-described processing.
[0102] In addition, the encoding device performs quantization after transforming the attribute information of the three-dimensional points. The number of bits raised for the attribute information before the transformation is equal to the number of bits lowered for the quantized data generated by the quantization. When the attribute information is 8 bits long, the number of bits raised is 26. When the attribute information is 16 bits long, the number of bits raised is greater than 26.
[0103] Therefore, the encoding device can improve the accuracy of the transformation by changing the number of bits incremented according to the bit length of the attribute information.
[0104] For example, when the attribute information is 16 bits long, the number of increments is 30. For example, the quantization is performed according to the first quantization table. If the value of the second quantization table at the decoding end is multiplied by the value of the first quantization table, it becomes 2 to the power of n, where n is the number of increments. When the second quantization table is {161, 181, 203, 228, 256, 287}, the first quantization table becomes {6669204, 5932275, 5289369, 4709394, 4194304, 3741261}.
[0105] In addition, the decoding device performs inverse transformation after inverse quantization of the attribute information of the three-dimensional points. The number of bits raised for the attribute information before inverse quantization is equal to the number of bits lowered for the attribute information generated by the inverse transformation. When the attribute information is 8 bits long, the number of bits raised is 26. When the attribute information is 16 bits long, the number of bits raised is greater than 26.
[0106] For example, when the attribute information is 16 bits long, the number of increments is 30. For example, the inverse quantization is performed according to the first quantization table. If the value of the second quantization table at the encoding end is multiplied by the value of the first quantization table, it becomes 2 to the power of n, where n is the number of increments. When the first quantization table is {161, 181, 203, 228, 256, 287}, the second quantization table becomes {6669204, 5932275, 5289369, 4709394, 4194304, 3741261}.
[0107] In addition, the encoding device quantizes the attribute information of the three-dimensional point using the level to which the three-dimensional point belongs. In order to calculate the quantization weight, a first down-biting is performed on the weight output from the transform process. In order to calculate the quantization data, a second down-biting is performed on the quantization weight and the attribute information. When the attribute information is 8 bits long, the number of the first down-biting is 36 and the number of the second down-biting is 8. When the attribute information is 16 bits long, the number of the first down-biting is less than 36 and the number of the second down-biting is greater than 8. The total number of the first down-biting and the number of the second down-biting is 44.
[0108] Therefore, the encoding device can improve the accuracy of the transformation by changing the number of bits incremented according to the bit length of the attribute information.
[0109] For example, when the attribute information is 16 bits long, the number of the first drop-down bits is 28, and the number of the second drop-down bits is 16.
[0110] The above describes the encoding device (three-dimensional data encoding device) and decoding device (three-dimensional data decoding device) involved in the embodiments and variations of this disclosure, but this disclosure is not limited to this embodiment.
[0111] Furthermore, the processing units included in the encoding and decoding devices described in the above embodiments are typically implemented using LSIs as integrated circuits. They can be implemented individually as single chips, or as single chips comprising some or all of them.
[0112] Furthermore, the formation of integrated circuits is not limited to LSIs; they can also be implemented using dedicated circuits or general-purpose processors. Alternatively, FPGAs (Field Programmable Gate Arrays) that can be programmed after LSI fabrication, or reconfigurable processors that connect and configure the internal circuitry of the reconfigurable LSI, can be utilized.
[0113] Furthermore, in the above embodiments, each component may be constructed using dedicated hardware, or implemented by executing software programs suitable for each component. Each component may also be implemented by a program execution unit such as a CPU or processor reading and executing software programs recorded on a recording medium such as a hard disk or semiconductor memory.
[0114] In addition, this disclosure can also be implemented as an encoding method (three-dimensional data encoding method) or a decoding method (three-dimensional data decoding method) executed by an encoding device (three-dimensional data encoding device) and a decoding device (three-dimensional data decoding device).
[0115] Furthermore, this disclosure can also be implemented as a program that causes a computer, processor, or device to execute the above-described encoding or decoding methods. Additionally, this disclosure can also be implemented as a bitstream generated by the above-described encoding methods. Furthermore, this disclosure can also be implemented as a recording medium on which the program or the bitstream is recorded. For example, this disclosure can also be implemented as a non-volatile, computer-readable recording medium on which the program or the bitstream is recorded.
[0116] Furthermore, the division of functional modules in the block diagram is one example. Multiple functional modules can also be implemented as a single functional module, or a single functional module can be divided into multiple modules, or some functions can be transferred to other functional modules. Additionally, the functions of multiple functional modules with similar capabilities can be processed in parallel or in a time-sharing manner by a single piece of hardware or software.
[0117] Furthermore, the order in which the steps in the flowchart are executed is an illustrative order for the purpose of explaining this disclosure, and may also be an order other than that described above. Additionally, some of the steps described above may be executed simultaneously (in parallel) with other steps.
[0118] The above description, based on embodiments, illustrates one or more encoding and decoding devices, etc., and this disclosure is not limited to these embodiments. As long as it does not depart from the spirit of this disclosure, various modifications to this embodiment that are conceived by those skilled in the art, and methods of constructing by combining the constituent elements of different embodiments, can also be included within the scope of one or more embodiments.
[0119] Industrial applicability This disclosure is applicable to encoding devices and decoding devices.
[0120] Explanation of reference numerals in the attached figures: 10, 200 decoding devices 11, 21 processors 12, 22 memory 20, 100 encoding devices 101 First Attribute Encoding Section 102 Attribute Encoding Section 2 201 Attribute Decoding Department 202 Attribute Decoding Department 300 Attribute Decoding Department 301 Entropy Decoding Department 302, 401 Lifting Section 303 Inverse Quantization Department 304 Inverse Transformation Unit 305, 404 Demotion Section Transformer Units 306, 402, and 406 400 Attribute Coding Department Quantitative Departments 403 and 502 405 Entropy Coding Department 501 Quantitative Weight Calculation Department
Claims
1. A decoding method, The encoded coefficients are then subjected to context-based arithmetic decoding to generate new coefficients. The coefficients are then subjected to inverse binarization and inverse quantization to generate the attribute information of the three-dimensional points. The number of contexts is set according to the specification level.
2. The decoding method as described in claim 1, The number of contexts is 3 when the level is level 1. The number of contexts is a value ranging from 4 to 12 when the level is 2.
3. The decoding method as described in claim 2, The number of contexts is 12 when the level is level 2.
4. An encoding method, The attribute information of three-dimensional points is quantized and binarized to generate coefficients. Arithmetic encoding of the coefficients is performed using the context. The number of contexts is set according to the specification level.
5. A decoding device, comprising: Processor; and memory, The processor uses the memory. The encoded coefficients are then subjected to context-based arithmetic decoding to generate new coefficients. The coefficients are then subjected to inverse binarization and inverse quantization to generate the attribute information of the three-dimensional points. The number of contexts is set according to the specification level.
Citation Information
Patent Citations
Map display device
WO2014020663A1