WO2024148491A1 - 编解码方法、码流、编码器、解码器以及存储介质 - Google Patents
编解码方法、码流、编码器、解码器以及存储介质 Download PDFInfo
- Publication number
- WO2024148491A1 WO2024148491A1 PCT/CN2023/071456 CN2023071456W WO2024148491A1 WO 2024148491 A1 WO2024148491 A1 WO 2024148491A1 CN 2023071456 W CN2023071456 W CN 2023071456W WO 2024148491 A1 WO2024148491 A1 WO 2024148491A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- value
- data processing
- probability
- processing mode
- target data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 273
- 238000012545 processing Methods 0.000 claims abstract description 580
- 238000013507 mapping Methods 0.000 claims description 152
- 230000015654 memory Effects 0.000 claims description 38
- 230000003247 decreasing effect Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 22
- 230000007423 decrease Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 description 81
- 238000010586 diagram Methods 0.000 description 34
- 230000006870 function Effects 0.000 description 15
- 238000012937 correction Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 238000013139 quantization Methods 0.000 description 10
- 230000009467 reduction Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000001174 ascending effect Effects 0.000 description 6
- 101100021996 Arabidopsis thaliana CYP97C1 gene Proteins 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 4
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 3
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 3
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 3
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000011946 reduction process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 235000014347 soups Nutrition 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Definitions
- the embodiments of the present application relate to the field of point cloud encoding and decoding technology, and in particular, to an encoding and decoding method, a bit stream, an encoder, a decoder, and a storage medium.
- the geometry information of the point cloud and the attribute information corresponding to the points in the point cloud are encoded separately.
- the geometry codec part can be divided into octree-based geometry codec, Trisoup-based geometry codec, and prediction tree-based geometry codec.
- the embodiments of the present application provide a coding and decoding method, a bit stream, an encoder, a decoder and a storage medium, which can select the most matching data processing mode during the coding and decoding process, thereby reducing the coding and decoding performance.
- an embodiment of the present application provides a decoding method, which is applied to a decoder, and the method includes:
- the syntax element to be decoded is decoded according to the target data processing mode, and the value of the syntax element to be decoded is determined.
- an embodiment of the present application provides an encoding method, which is applied to an encoder, and the method includes:
- the values of the syntax elements to be encoded are encoded according to the target data processing mode, and the obtained encoded bits are written into the bitstream.
- an embodiment of the present application provides a code stream, which is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least: the value of the syntax element to be encoded.
- an embodiment of the present application provides an encoder, the encoder comprising a first determining unit and an encoding unit; wherein,
- a first determining unit configured to determine a candidate data processing mode based on a first preset condition; and determine a data processing mode parameter corresponding to a syntax element to be encoded;
- the first determination unit is further configured to determine a target data processing mode according to the data processing mode parameters based on the candidate data processing modes;
- an embodiment of the present application provides an encoder, the encoder comprising a first memory and a first processor; wherein,
- a first memory for storing a computer program that can be run on the first processor
- the first processor is used to execute the method described in the second aspect when running a computer program.
- an embodiment of the present application provides a decoder, the decoder comprising a second determining unit and a decoding unit; wherein,
- a second determination unit is configured to determine a candidate data processing mode based on a first preset condition; and determine a data processing mode parameter corresponding to a syntax element to be decoded;
- the second determination unit is further configured to determine the target data processing mode according to the data processing mode parameters based on the candidate data processing modes;
- the decoding unit is configured to decode the syntax element to be decoded according to the target data processing mode and determine the value of the syntax element to be decoded.
- an embodiment of the present application provides a decoder, the decoder comprising a second memory and a second processor; wherein:
- a second memory for storing a computer program that can be run on a second processor
- the second processor is used to execute the method described in the first aspect when running a computer program.
- an embodiment of the present application provides a computer-readable storage medium, which stores a computer program.
- the computer program When executed, it implements the method described in the first aspect, or implements the method described in the second aspect.
- the embodiment of the present application provides a coding and decoding method, a code stream, an encoder, a decoder and a storage medium.
- a candidate data processing mode is determined; the data processing mode parameters corresponding to the syntax element to be encoded are determined; based on the candidate data processing mode, the target data processing mode is determined according to the data processing mode parameters; the value of the syntax element to be encoded is encoded according to the target data processing mode, and the obtained coded bits are written into the code stream.
- a candidate data processing mode is determined; the data processing mode parameters corresponding to the syntax element to be decoded are determined; based on the candidate data processing mode, the target data processing mode is determined according to the data processing mode parameters; the syntax element to be decoded is decoded according to the target data processing mode, and the value of the syntax element to be decoded is determined.
- the corresponding data processing mode parameters can be determined according to the code syntax element to be processed, and then the target data processing mode can be determined from the candidate data processing mode, and finally the syntax element is coded and decoded according to the target data processing mode.
- the best target encoder can be selected from the candidate data processing modes for encoding during the encoding process, so that the most matching data processing mode can be selected during the encoding and decoding process, thereby reducing the encoding and decoding performance.
- FIG1 is a schematic diagram of a network architecture for point cloud encoding and decoding
- FIG. 2 is a schematic diagram of a composition framework of a G-PCC encoder
- FIG3 is a schematic diagram of a composition framework of a G-PCC decoder
- FIG4 is a schematic diagram of a process of mapping a discrete state D
- FIG5 is a schematic diagram of a process for dynamically mapping discrete states D
- 6A-6H are spatial positional relationships of point clouds
- FIG7 is a schematic diagram of a sub-node scanning order
- FIG8 is a schematic diagram of a method for implementing dynamic reduction
- FIG9 is a schematic diagram of a method for implementing dynamic reduction of updates
- FIG10 is a schematic diagram of a flow chart of a decoding method provided in an embodiment of the present application.
- FIG11 is a schematic diagram of the implementation of the dynamic adjustment solution proposed in this application.
- FIG12 is a schematic diagram of a flow chart of an encoding method provided in an embodiment of the present application.
- FIG13 is a second schematic diagram of the implementation of the dynamic adjustment solution proposed in this application.
- FIG14 is a schematic diagram of the structure of an encoder provided in an embodiment of the present application.
- FIG15 is a schematic diagram of a specific hardware structure of an encoder provided in an embodiment of the present application.
- FIG16 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application.
- FIG17 is a schematic diagram of a specific hardware structure of a decoder provided in an embodiment of the present application.
- FIG. 18 is a schematic diagram of the composition structure of a coding and decoding system provided in an embodiment of the present application.
- PCC Point Cloud Compression
- G-PCC Geometry-based Point Cloud Compression
- V-PCC Video-based Point Cloud Compression
- LOD Level of Detail
- RAHT Region Adaptive Hierarchal Transform
- CABAC Context-based Adaptive Binary Arithmetic Coding
- CABAC Context-based Adaptive Binary Arithmetic Coding
- Point cloud is a three-dimensional representation of the surface of an object.
- Point cloud (data) of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
- a point cloud refers to a collection of massive three-dimensional points
- the points in the point cloud may include the location information of the points and the attribute information of the points.
- the location information of the points may be the three-dimensional coordinate information of the points.
- the location information of the points may also be referred to as the geometric information of the points.
- the attribute information of the points may include color information and/or reflectivity, etc.
- the color information may be information on any color space.
- the color information may be RGB information. Among them, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B).
- the color information may be brightness and chromaticity (YCbCr, YUV) information. Among them, Y represents brightness, Cb (U) represents blue chromaticity, and Cr (V) represents red chromaticity.
- the points in the point cloud may include the three-dimensional coordinate information of the points and the laser reflection intensity (reflectance) of the points.
- the points in the point cloud may include the three-dimensional coordinate information of the points and the color information of the points.
- a point cloud obtained by combining the principles of laser measurement and photogrammetry may include the three-dimensional coordinate information of the points, the laser reflection intensity (reflectance) of the points, and the color information of the points.
- Point clouds can be divided into the following categories according to the way they are obtained:
- the first type of static point cloud the object is stationary, and the device that obtains the point cloud is also stationary;
- the second type of dynamic point cloud the object is moving, but the device that obtains the point cloud is stationary;
- the third type of dynamic point cloud acquisition the device that acquires the point cloud is moving.
- point clouds can be divided into two categories according to their usage:
- Category 1 Machine perception point cloud, which can be used in autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, disaster relief robots, etc.
- Category 2 Point cloud perceived by the human eye, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
- point clouds are a collection of massive points, storing point clouds not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of point clouds at the network layer without compression. Therefore, point clouds need to be compressed.
- the point cloud coding framework that can compress the point cloud can be the G-PCC codec framework or the V-PCC codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by the Audio Video Standard (AVS).
- MPEG Moving Picture Experts Group
- AVS-PCC codec framework provided by the Audio Video Standard (AVS).
- the G-PCC codec framework can be used to compress the first type of static point cloud and the third type of dynamically acquired point cloud
- the V-PCC codec framework can be used to compress the second type of dynamic point cloud.
- the G-PCC codec framework is mainly described here.
- FIG1 is a schematic diagram of a network architecture of a point cloud encoding and decoding provided by the embodiment of the present application.
- the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01.
- the electronic device can be various types of devices with point cloud encoding and decoding functions.
- the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., which is not limited by the embodiment of the present application.
- the decoder or encoder in the embodiment of the present application can be the above-mentioned electronic device.
- the electronic device in the embodiment of the present application has a point cloud encoding and decoding function, generally including a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).
- a point cloud encoder ie, encoder
- a point cloud decoder ie, decoder
- the point cloud data is first divided into multiple slices by slice division.
- the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately.
- FIG2 shows a schematic diagram of the composition framework of a G-PCC encoder.
- the geometric information is transformed so that all point clouds are contained in a bounding box, and then quantized.
- This step of quantization mainly plays a role in scaling. Due to the quantization rounding, the geometric information of a part of the point cloud is the same, so whether to remove duplicate points is determined based on parameters.
- the process of quantization and removal of duplicate points is also called voxelization.
- the Bounding Box is divided into octrees or a prediction tree is constructed.
- arithmetic coding is performed on the points in the leaf nodes of the division to generate a binary geometric bit stream; or, arithmetic coding is performed on the intersection points (Vertex) generated by the division (surface fitting is performed based on the intersection points) to generate a binary geometric bit stream.
- color conversion is required first to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, the point cloud is recolored using the reconstructed geometric information so that the uncoded attribute information corresponds to the reconstructed geometric information. Attribute encoding is mainly performed on color information.
- FIG3 shows a schematic diagram of the composition framework of a G-PCC decoder.
- the geometric bit stream and the attribute bit stream in the binary bit stream are first decoded independently.
- the geometric information of the point cloud is obtained through arithmetic decoding-reconstruction of the octree/reconstruction of the prediction tree-reconstruction of the geometry-coordinate inverse conversion;
- the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD partitioning/RAHT-color inverse conversion, and the point cloud data to be encoded (i.e., the output point cloud) is restored based on the geometric information and attribute information.
- octree geometry encoding includes: first, coordinate transformation of geometric information so that all point clouds are contained in a Bounding Box. Then quantization is performed. This step of quantization mainly plays a role of scaling. Due to quantization rounding, the geometric information of some points is the same. Whether to remove duplicate points is determined based on parameters. The process of quantization and removal of duplicate points is also called voxelization. Next, the Bounding Box is continuously divided into trees (such as octrees, quadtrees, binary trees, etc.) in the order of breadth-first traversal.
- trees such as octrees, quadtrees, binary trees, etc.
- a bit is used to indicate whether the corresponding rectangular block of the node in space contains a point, which is called a "placeholder code".
- the placeholder code of each node is encoded.
- the bounding box is divided into child nodes in sequence, and the non-empty child nodes (including points in the point cloud) are divided until the leaf node obtained by division is a 1 ⁇ 1 ⁇ 1 unit cube. Then the number of points contained in the leaf node is encoded, and finally the encoding of the geometric octree is completed to generate a binary code stream.
- octree division In the geometric coding framework based on triangle face sets, octree division must also be performed first, but different from the geometric information encoding based on octree, this method does not need to divide the point cloud into unit cubes with a side length of 1 ⁇ 1 ⁇ 1 step by step, but stops dividing when the side length of the sub-block (Block) is W. Based on the surface formed by the distribution of the point cloud in each Block, the surface and the twelve edges of the Block are obtained. The Vertex coordinates of each Block are encoded in sequence to generate a binary code stream.
- the decoding end obtains the placeholder code of each node by continuously parsing in the order of breadth-first traversal, and continuously divides the nodes in turn until a 1 ⁇ 1 ⁇ 1 unit cube is obtained. The number of points contained in each leaf node is parsed, and finally the geometric reconstructed point cloud information is restored.
- the geometric coding based on Trisoup includes: firstly, dividing the octree. Different from the geometric information coding based on the octree structure, this method does not need to divide the point cloud into the bottom leaf nodes with a side length of 1 ⁇ 1 ⁇ 1 step by step, but divides the leaf nodes with a specified side length; then the surface information composed of the voxels in the node is represented by a series of triangle meshes.
- the parameter trisoup node size is used to represent the size of the block where the triangle patch is located. When the trisoup node size is greater than 0, the voxel set in the node is represented by a geometric patch. The up to twelve intersections generated by the geometric patch and the twelve edges of the block are called vertices. The vertex coordinates of each block are encoded in turn to generate a binary code stream.
- the geometric decoding based on Trisoup includes: to decode the geometric coordinates of the point cloud from the node triangle patch, it is necessary to check whether each voxel in the node cube intersects with the triangle patch.
- This technology is called triangle rasterization, and 6 unit vectors (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1) are used for intersection check to check whether each unit vector intersects with the triangle patch. If so, the intersection point is calculated and the decoded cube is output.
- the number of generated points in the decoder is determined by the grid distance d.
- the Predictive geometry coding includes: first, sorting the input point cloud.
- the currently used sorting methods include unordered, Morton order, azimuth order, and radial distance order.
- the prediction tree structure is established by using two different methods, including: high-latency slow mode (KD-Tree, KD tree) and low-latency fast mode (using laser radar calibration information, each point is divided into different lasers (Laser), and the prediction tree structure is established according to different Lasers).
- each node in the prediction tree is traversed, and the geometric position information of the node is predicted by selecting different prediction modes to obtain the geometric prediction residual, and the geometric prediction residual is quantized using the quantization parameter.
- the prediction residual of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary code stream.
- the decoding end reconstructs the prediction tree structure by continuously parsing the bitstream, and then obtains the geometric position prediction residual information and quantization parameters of each prediction node through parsing, and dequantizes the prediction residual to recover the reconstructed geometric position information of each node, and finally completes the geometric reconstruction of the decoding end.
- a series of discrete states D of the placeholder code can be quickly and accurately mapped to a set of a fixed number N of adaptive entropy encoders through a mapping relationship lookup table (Look Up Table, LUT).
- LUT mapping relationship lookup table
- the context information state no longer corresponds one-to-one to the probability model.
- a fixed number of probability models are updated as the currently encoded syntax elements, and the mapping relationship will be updated after each placeholder code encoding is completed.
- FIG4 is a schematic diagram of a process for mapping a discrete state D.
- the encoder index after mapping takes a value of [0, 1, ..., N-1], and the symbol s is an occupied bit to be encoded and decoded, and takes a value of 1 or 0.
- the context state D of the symbol to be encoded can be obtained first.
- the context state D of the symbol to be encoded is the input information of the mapping process of the discrete state D, which is composed of the neighbor node information that has been encoded in the space and the position of the child node relative to the parent node.
- the index value i of the binary encoder corresponding to the state D may be further obtained based on a mapping relationship (mapping relationship lookup table).
- each state can be pre-set to correspond to a value of 0 to 255, which is the index of the binary encoder, and each state is mapped to the corresponding binary encoder according to its state value.
- Each of the 256 binary encoders has an associated probability p i ⁇ (0, 1), and as the index i increases, the value of its associated probability p i increases, and the associated probability of each binary encoder does not change with the encoding process.
- the technology for mapping the discrete state D can include two LUT tables, namely LUT0 and LUT1.
- the probability value p i (i ⁇ [0,1,...,255]) associated with 256 binary encoders may be generated according to the following entropy error formula and error threshold ⁇ .
- the probability value with the smallest entropy error with the actual probability value p new can be found from the generated 256 theoretical association probability values, as shown in the following formula, and its corresponding number i ⁇ [0,1,...,255] is obtained, which is the (intermediate) encoder index i update corresponding to the current symbol.
- Formula (2) can be applied to each probability in the association probability table, and then the updated probability value can be calculated based on whether the encoded symbol is 0 or 1 to obtain the corresponding index value i update , which can be stored in LUT0 and LUT1 respectively to obtain the mapping relationship lookup table LUTs.
- the binary encoder i can be used to entropy encode the symbol s.
- the symbol S to be encoded and its corresponding context state D can be sent to the context-based binary arithmetic encoder for entropy encoding.
- the intermediate encoder index can be determined by using the mapping relationship lookup table LUT according to the current point to-be-encoded symbol s (placeholder information) and the corresponding context state D, and then the actual encoder index can be determined, and then the encoder corresponding to the actual encoder index is used to encode the to-be-encoded symbol to generate the corresponding binary code stream.
- the mapping relationship lookup table LUT can be further updated in combination with the to-be-encoded symbol.
- mapping relationship lookup table LUT i.e., the mapping relationship lookup table LUT
- the 256 jump values in the ⁇ LUT can be grouped into groups of 16.
- the final jump table is shown in Table 1.
- the index value is updated according to the following formula, and the secondary mapping process is added. That is, the obtained binary encoder index value i update is used as the intermediate value, and the intermediate value of 0 to 255 is further mapped to the binary encoder index value of 0 to 31.
- the secondary mapping can be a simple operation of dividing the intermediate value by 8 and taking the value downward. However, each state D still corresponds to a value ranging from 0 to 255, and there are still 256 associated probabilities.
- Figure 5 is a flow chart of the technology for dynamically mapping discrete states D.
- the technology for dynamically mapping discrete states D can be divided into two stages: the first stage is to obtain the context information (context state) of the placeholder code to be encoded and reduce the context information, wherein the information to be reduced each time will be dynamically adjusted with the encoding process; the second stage is to map the reduced context information to a smaller set of binary encoders, and after each placeholder code encoding is completed, the mapping relationship will be updated.
- mapping relationship in the second stage are the same as the common technology for mapping the discrete state D.
- the context information is composed of encoded syntax elements, which can be divided into primary information and secondary information according to the importance of the information. Among them, part of the secondary information will be reduced in the process of dynamic reduction.
- the context after the primary information and the reduced secondary information are recombined as the input of the mapping process of the discrete state D, and mapped to the encoder for encoding.
- the context of the child node to be encoded can be determined by the following types of information:
- the above context information can be converted into binary stream bins, where information that is more relevant to the current child node is located in the high position of the bins as the main information; information that is less relevant to the current child node is located in the low position of the bins as the secondary information.
- FIG. 6A-6H are spatial positional relationships of point clouds.
- the spatially referenceable reference points may at least include the encoded sibling nodes of the current child node, the encoded coplanar child node neighbors of the current child node, the encoded co-edge child node neighbors of the current child node, the encoded co-point child node neighbors of the current child node, the encoded other child node neighbors of the current child node, the encoded coplanar parent node neighbors of the current child node, the encoded co-edge parent node neighbors of the current child node, and the other 20 encoded parent node neighbors.
- the order of these contexts arranged by importance is: the encoded sibling nodes of the current child node>the encoded coplanar child node neighbors of the current child node>the encoded co-edge child node neighbors of the current child node>the encoded co-point child node neighbors of the current child node>the encoded other child node neighbors of the current child node>the encoded coplanar parent node neighbors of the current child node>the encoded co-edge parent node neighbors of the current child node>the other 20 encoded parent node neighbors.
- FIG. 7 is a schematic diagram of the sub-node scanning order.
- different context models can be constructed for the sub-nodes to be encoded located at different positions of the current node according to the scanning order.
- the effective context information that can be referenced by the unencoded sub-nodes will also change, and there are different local sparsity determination methods for the eight sub-nodes of the current node, so each sub-node has its own context bins.
- FIG8 is a schematic diagram of a method for implementing dynamic reduction.
- the process of dynamic reduction and updating dynamic reduction after the original context information bins (i 1 , i 2 ) is divided into primary information i 1 and secondary information i 2 , only the secondary information i 2 is reduced, that is, the k bit of i 2 is set to 0 (truncation), and the secondary information i′ 2 is obtained.
- the context is reorganized to form a context state D (i 1 , i′ 2 ), that is, the context after dynamic reduction is determined.
- FIG9 is a schematic diagram of the implementation method of updating dynamic reduction.
- each context state D will have a counter N(i 1 ,i′ 2 ) to record the number of times the current state D is accessed.
- N(i 1 ,i′ 2 ) is greater than the set threshold th
- the original context bins will be reorganized after the k-1 bit of secondary information is truncated and the context is reorganized, and the new state D(i 1 ,i′′ 2 ) is activated, that is, the subsequent syntax elements to be encoded will consider more secondary information to form a new context state, which means that the reduced secondary information is dynamically adjusted.
- an encoder index mapping relationship lookup table when selecting an encoder according to a determined index value, provides a mapping relationship between a context state and an encoder index. Through the mapping relationship lookup table, the encoder index that should be used for the syntax element to be encoded in any context state can be obtained. After each syntax element is encoded, the mapping relationship between the context state D and the encoder index in the mapping relationship lookup table is adjusted according to the result of the syntax element.
- the encoder index mapping relationship lookup table can store 8-bit encoder indexes, wherein when the current encoding symbol is "1", the encoder index is increased (or unchanged), and when the current encoding symbol is "0", the encoder index is decreased (or unchanged).
- the probability value of the corresponding encoder is also updated. If the probability value of the encoder represents the probability of the symbol "0", when the currently encoded binary syntax element is 0, the probability value of the encoder is increased (or unchanged), and when the currently encoded binary syntax element is 1, the probability value of the encoder is decreased (or unchanged); if the probability value of the encoder represents the probability of the symbol "1", when the currently encoded binary syntax element is 0, the probability value of the encoder is decreased (or unchanged), and when the currently encoded binary syntax element is 0, the probability value of the encoder is increased (or unchanged);
- the probability value of the encoder represents the probability of the symbol "0". After encoding the symbol "0”, its probability value increases (or remains unchanged), and after encoding the symbol "1", its probability value decreases (or remains unchanged).
- the update method is as follows:
- binVal represents the coded symbol
- p old (0) and p new (0) represent the probability values of the symbol "0" stored before and after the encoder is updated
- ⁇ represents the attenuation factor.
- the specific implementation can be in the form of a lookup table.
- diracLut is a lookup table, as shown in Table 2:
- the value of i+j can be 0-255.
- mapping relationship lookup table finds an encoder that is closer to the probability for the current context state.
- the relevant technical approach is to assume that the probability value maintained by the encoder will monotonically increase or decrease with the encoder index.
- the probability value maintained by the encoder and the mapping relationship lookup table are updated, and during the probability value update process, there may be overlaps in the probability values maintained by different encoders, and/or the probability value jumps too much, etc., it cannot be guaranteed that the probability value maintained by the encoder at any time will monotonically increase or decrease with the encoder index.
- the candidate data processing mode is determined; the data processing mode parameters corresponding to the syntax element to be encoded are determined; based on the candidate data processing mode, the target data processing mode is determined according to the data processing mode parameters; the values of the syntax elements to be encoded are encoded according to the target data processing mode, and the obtained coded bits are written into the bitstream.
- the candidate data processing mode is determined; the data processing mode parameters corresponding to the syntax elements to be decoded are determined; based on the candidate data processing mode, the target data processing mode is determined according to the data processing mode parameters; the syntax elements to be decoded are decoded according to the target data processing mode, and the values of the syntax elements to be decoded are determined.
- the corresponding data processing mode parameters can be determined according to the code syntax elements to be processed, and then the target data processing mode can be determined from the candidate data processing mode, and finally the syntax elements are encoded and decoded according to the target data processing mode.
- the best target encoder can be selected from the candidate data processing mode for encoding during the encoding process, so that the most matching data processing mode can be selected during the encoding and decoding process, thereby reducing the encoding and decoding performance.
- the point cloud encoding method in the embodiment of the present application can be applied to the entropy encoding part as shown in Figure 2.
- the point cloud decoding method in the embodiment of the present application can also be applied to the entropy decoding part as shown in Figure 3. That is to say, the point cloud encoding and decoding method in the embodiment of the present application can be applied to both the encoder and the decoder, and can even be applied to both the encoder and the decoder at the same time, but the embodiment of the present application does not make specific limitations.
- FIG10 a schematic diagram of a decoding method provided by an embodiment of the present application is shown. As shown in FIG10 , the method may include:
- Step 101 Determine a candidate data processing mode based on a first preset condition.
- the decoding method of the embodiment of the present application is applied to a decoder (or referred to as an "entropy decoder").
- the decoding method may specifically refer to a point cloud decoding method, or a point cloud entropy decoding method. Based on this method, the decoding process of the syntax element to be decoded can be implemented, and the bit rate can be saved.
- the data processing mode may be used to implement a decoding function. That is, the data processing mode here may be regarded as a decoding method/entropy decoding method, or may also be regarded as a decoder/entropy decoder.
- there may be multiple candidate data processing modes that is, there may be multiple candidate decoders; subsequently, a target decoder is selected from the multiple candidate decoders, and the selected target decoder is used to decode the syntax element to be decoded.
- there may be only one candidate data processing mode that is, there is only one candidate decoder; in this case, different configuration parameters of the candidate decoders may be set, and then the decoder corresponding to the target configuration parameters may be used to decode the syntax element to be decoded, and no limitation is made to this.
- the first preset condition may be related to a threshold parameter (such as an upper probability limit value and/or a lower probability limit value), and the candidate data processing mode determined by the first preset condition can improve decoding efficiency during the decoding process.
- a threshold parameter such as an upper probability limit value and/or a lower probability limit value
- determining the candidate data processing mode based on the first preset condition may include: determining a threshold parameter of the candidate data processing mode according to the first preset condition.
- the threshold parameter may indicate the probability threshold value of the candidate data processing mode, wherein the probability threshold value includes: the probability upper limit value and/or the probability lower limit value. That is to say, the embodiment of the present application may set the probability threshold value of the candidate data processing mode so that the probability threshold value of the candidate data processing mode can satisfy the decreasing or increasing order.
- the ranking indication parameter may be determined based on a threshold parameter of the candidate data processing mode.
- the value of the sorting indication parameter includes a first preset value and a second preset value; wherein the first preset value indicates the descending order of the threshold parameter, and the second preset value indicates the ascending order of the threshold parameter.
- the probability lower limit values of the K candidate data processing modes are L 0 , L 1 ...L i ...L K-1 , then for the first preset value, the probability lower limit values are in descending order: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 ; for the second preset value, the probability lower limit values are in increasing order: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 .
- the probability upper limit values of the K candidate data processing modes are U 0 , U 1 ...U i ...U K-1 , then for the first preset value, the probability upper limit values are in descending order: U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 ; for the second preset value, the probability upper limit values are in increasing order: U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 .
- i 1, 2, ..., K-1, where K represents the number of candidate data processing modes.
- a third preset value and a fourth preset value of the candidate data processing mode may also be determined; and the value of the sorting indication parameter is determined based on the third preset value and the fourth preset value.
- the third preset value indicates the update order of the probability values of the candidate data processing modes
- the fourth preset value indicates the update order of the index values of the candidate data processing modes
- the third preset value may indicate the candidate decoder probability update direction
- the fourth preset value may indicate the candidate decoder index mapping table update direction.
- the third preset value and the fourth preset value in one possible implementation method, if the value of the third preset value is equal to 1, it indicates that the candidate decoder probability update direction is a decreasing direction; if the value of the third preset value is equal to 0, it indicates that the candidate decoder probability update direction is an increasing direction; and if the value of the fourth preset value is equal to 1, it indicates that the candidate decoder index mapping table update direction is a decreasing direction; if the value of the third preset value is equal to 0, it indicates that the candidate decoder index mapping table update direction is an increasing direction.
- the value of the third preset value if the value of the third preset value is equal to 0, it indicates that the candidate decoder probability update direction is in a decreasing direction; if the value of the third preset value is equal to 1, it indicates that the candidate decoder probability update direction is in an increasing direction; and if the value of the fourth preset value is equal to 0, it indicates that the candidate decoder index mapping table update direction is in a decreasing direction; if the value of the third preset value is equal to 1, it indicates that the candidate decoder index mapping table update direction is in an increasing direction.
- the value of the sorting indication parameter when determining the value of the sorting indication parameter based on a third preset value and a fourth preset value, if the third preset value is different from the fourth preset value, the value of the sorting indication parameter is determined to be the first preset value; if the third preset value is the same as the fourth preset value, the value of the sorting indication parameter is determined to be the second preset value.
- the value of the sorting indication parameter is the first preset value, that is, the sorting indication parameter indicates the decreasing order of the threshold parameter, specifically L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 ; if the third preset value and the fourth preset value are the same, it means that the candidate decoder probability update direction is the same as the candidate decoder index mapping table update direction.
- the value of the sorting indication parameter is the second preset value, that is, the sorting indication parameter indicates the increasing order of the threshold parameter, specifically: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 .
- a first parameter corresponding to the candidate data processing mode may also be determined; and the value of the sorting indication parameter is determined based on the first parameter.
- the first parameter corresponding to the candidate data processing mode may refer to the symbol corresponding to the probability value stored by the candidate decoder.
- the first parameter may indicate a specific value, such as a value of 0 or 1; or the first parameter may also indicate a symbol of binary arithmetic decoding, such as a symbol of 0 or 1, which is not limited here.
- the value of the sort indication parameter when determining the value of the sort indication parameter based on the first parameter, if the first parameter indicates the first data, the value of the sort indication parameter is determined to be a first preset value; if the first parameter indicates the second data, the value of the sort indication parameter is determined to be a second preset value.
- the first data may be the symbol "0" and the second data may be the symbol "1".
- the value of the sorting indication parameter is the first preset value, that is, the fifth sorting indication parameter can indicate the order of decreasing probability lower limit values, specifically: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , and indicate the order of decreasing probability upper limit values, specifically: U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 ;
- the value of the sorting indication parameter is the second preset value, that is, the sixth sorting indication parameter can indicate the order of increasing probability lower limit values, specifically: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , and indicate
- the threshold parameters are determined in descending order or ascending order according to the candidate decoder probability update direction and the candidate decoder index mapping table update direction; in addition, according to the symbol corresponding to the probability value stored by the candidate decoder, it can also be determined whether the threshold parameters are in descending order or ascending order.
- the threshold parameters here may include a probability lower limit value and/or a probability upper limit value.
- the method may further include: when the value of the sorting indication parameter is a first preset value, if the threshold parameter is a probability lower limit value, then Li -1 is greater than or equal to Li ; if the threshold parameter is a probability upper limit value, then Ui -1 is greater than or equal to Ui ;
- the threshold parameter is the probability lower limit value
- Li -1 is less than or equal to Li
- Ui -1 is less than or equal to Ui .
- L i is the probability lower limit value of the candidate data processing mode
- U i is the probability upper limit value of the candidate data processing mode
- i 1, 2,..., K-1
- K represents the number of candidate data processing modes.
- the method may further include: among the candidate data processing modes, determining that the probability lower limit value of the current candidate data processing mode is the same as the probability upper limit value of the adjacent candidate data processing mode, and determining that the probability upper limit value of the current candidate data processing mode is the same as the probability lower limit value of the adjacent candidate data processing mode.
- the probability lower limit value of the current candidate decoder is the same as the probability upper limit value of the adjacent candidate decoder
- the probability upper limit value of the current candidate decoder is the same as the probability lower limit value of the adjacent candidate decoder
- high and low threshold values ie, upper and lower probability limits
- the index value i is 0 to K-1.
- a probability update double threshold is set for each decoder, including a low threshold Li and a high threshold Ui , where Li ⁇ Ui .
- i 0, 1, 2, ..., K-1, and K represents the number of candidate data processing modes.
- the decoder probability update direction is considered to be the same as the index mapping table update direction, otherwise the update direction is considered to be opposite.
- the specific setting process of the low threshold Li and the high threshold Ui can refer to Table 4.
- the lower threshold Li can be set to the second value in the i-th two-dimensional array
- the upper threshold Ui can be set to the first value in the i-th two-dimensional array.
- Step 102 Determine a data processing mode parameter corresponding to a syntax element to be decoded.
- Step 103 Based on the candidate data processing modes, determine the target data processing mode according to the data processing mode parameters.
- syntax elements to be decoded specifically refer to the syntax elements to be decoded by the decoding end.
- the syntax elements here may refer to symbols of binary arithmetic decoding, or may refer to any syntax elements written into the bitstream, and no limitation is made here.
- determining the data processing mode parameter corresponding to the syntax element to be decoded may include: determining context information of the syntax element to be decoded; and determining the data processing mode parameter according to the context information and a preset mapping table.
- the preset mapping table may be a mapping relationship lookup table, and on the decoding side, the preset mapping table may be a candidate decoder index mapping table.
- determining data processing mode parameters according to context information and a preset mapping table may include: determining a context state of a syntax element to be decoded according to the context information; and determining data processing mode parameters according to the context state and a preset mapping table.
- the preset mapping table can be used to characterize the mapping relationship between the context state and the data processing mode parameter. For example, based on the preset mapping table, the index value of the decoder corresponding to any context state (context information) can be determined.
- context information can be divided into primary information and secondary information according to the importance of the information. Among them, for primary information, it will not be reduced; while for secondary information, it is possible to be reduced.
- the result is a context state (represented by D) composed of context information that has not been reduced.
- Each context state D will have a counter N to record the number of times the current state D has been accessed. If N is greater than a preset threshold, the dynamic reduction process will be updated, that is, subsequent syntax elements to be decoded will consider more secondary information to form a new context state D.
- the data processing mode parameters corresponding to the syntax element to be decoded can be determined through the preset mapping table.
- the preset mapping table records the mapping relationship between multiple sets of context states and data processing mode parameters, and the data processing mode parameters and the data processing mode also have a corresponding relationship, so that the target data processing mode (i.e., the target decoder) corresponding to the syntax element to be decoded can be determined.
- the method may further include: updating a preset mapping table according to the value of the syntax element to be decoded.
- updating the preset mapping table may include:
- the value of the syntax element to be decoded is the fifth preset value, reducing the data processing mode parameter in the preset mapping table;
- the data processing mode parameter in the preset mapping table is increased.
- the fifth preset value is different from the sixth preset value, and the fifth preset value and the sixth preset value can be in parameter form or in digital form.
- the syntax element to be decoded can be a parameter written in the profile or a value of a flag, which is not specifically limited here.
- the fifth preset value may be set to 1, and the sixth preset value may be set to 0; or, the fifth preset value may be set to 0, and the sixth preset value may be set to 1; or, the fifth preset value may be set to true, and the sixth preset value may be set to false; or, the fifth preset value may be set to false, and the sixth preset value may be set to true.
- the fifth preset value is 0, and the sixth preset value is 1, but this is not specifically limited.
- the data processing mode parameter in the preset mapping table can also be adjusted according to the value of the syntax element. For example, if the value of the currently decoded syntax element is 0, the data processing mode parameter can be reduced (or unchanged); if the value of the currently decoded syntax element is 1, the data processing mode parameter can be increased (or unchanged) to achieve the update of the preset mapping table.
- a decoder index mapping table (i.e., a preset mapping table) provides a mapping relationship between context states and decoder index values. Through the mapping table, the decoder index value that should be used for the syntax element to be decoded in any context state can be obtained. After each syntax element is decoded, the mapping relationship between the context state D and the decoder index value in the mapping table is adjusted according to the result of the syntax element.
- the decoder index mapping table can store an 8-bit decoder index value. When the currently decoded symbol is "1", the decoder index value is increased (or unchanged); when the currently decoded symbol is "0", the decoder index value is decreased (or unchanged).
- the specific update method is as follows, where stateVal is the decoder index value, CtxMap is the decoder index mapping table, ctxMapIdx is the context state D, binVal is the current decoded symbol, and ctxMapTransition is a query table, as shown in Table 1, which shows the value of ctxMapTransition[i].
- the decoder corresponding to the currently decoded symbol (syntax element) can be obtained.
- the decoder index value can correspond to the decoder one-to-one, or can be further mapped, that is, multiple decoder index values correspond to one decoder to obtain the final decoder index value.
- a secondary mapping process may be added, that is, the obtained binary decoder index value is used as the intermediate value (intermediate index value) to further determine the real index value. For example, stateVal needs to be shifted right by 2 bits to obtain the final decoder index value.
- Step 104 Decode the syntax element to be decoded according to the target data processing mode, and determine the value of the syntax element to be decoded.
- the syntax element to be decoded can be decoded according to the target data processing mode to obtain the value of the syntax element to be decoded.
- the method may also include: determining a first probability value of the target data processing mode according to the value of the syntax element to be decoded; updating the first probability value of the target data processing mode, and determining a second probability value of the target data processing mode.
- the second probability value of the target data processing mode after the second probability value of the target data processing mode is obtained after updating, the second probability value of the target data processing mode can be further corrected to determine the target probability value of the target data processing mode.
- updating a first probability value of a target data processing mode to determine a second probability value of the target data processing mode may include: determining a second parameter corresponding to the target data processing mode; updating the first probability value of the target data processing mode according to the second parameter and the value of a syntax element to be decoded, and determining the second probability value of the target data processing mode.
- the second parameter corresponding to the target data processing mode may refer to the symbol (Symbol) corresponding to the probability value stored by the target decoder.
- the second parameter may indicate a specific value, such as a value of 0 or 1; or the second parameter may also indicate a symbol of binary arithmetic decoding, such as a symbol of 0 or 1, which is not limited here.
- the probability value of the target decoder after decoding the syntax element to be decoded, if the probability value of the target decoder represents the probability of the second parameter, then the probability value of the target decoder can be increased or decreased according to the data indicated by the second parameter.
- updating the first probability value of the target data processing mode according to the second parameter and the value of the syntax element to be decoded may include:
- the value of the syntax element to be decoded is a fifth preset value, increasing the first probability value of the target data processing mode
- the second parameter indicates the first data
- the value of the syntax element to be decoded is a sixth preset value
- updating the first probability value of the target data processing mode according to the second parameter and the value of the syntax element to be decoded may include:
- the sign of the syntax element to be decoded is a fifth preset value, reducing the first probability value of the target data processing mode
- the second parameter indicates the second data
- the sign of the syntax element to be decoded is a sixth preset value
- the probability value of the target decoder represents the probability of the symbol "0"
- the probability value of the target decoder is increased (or unchanged), and when the currently decoded syntax element is 1, the probability value of the target decoder is decreased (or unchanged);
- the probability value of the decoder represents the probability of the symbol "1”
- the probability value of the target decoder is decreased (or unchanged)
- the probability value of the target decoder is increased (or unchanged).
- the method for updating the first probability value can be as shown in formula (9), where ⁇ represents the attenuation factor.
- the method for updating the first probability value can be in the form of a lookup table. If the probability is expressed with 16-bit precision, formula (9) can be approximately converted into formula (10), where diracLut is a lookup table, as shown in Table 2.
- the index value i is 0 to K-1.
- the probability value P i of the target decoder is continuously updated with the accumulation of the decoded binary symbol binVal (the value of the syntax element to be decoded).
- the current probability value (the second probability value) is Its probability value before update (first probability value) is
- the probability update process may adopt the algorithm shown in Table 5. Wherein diracLut[] is as shown in Table 2, that is, by looking up Table 2, the adjustment value (update amplitude) of the update probability may be quickly obtained.
- the update amplitude ⁇ P i j used in the process of updating the first probability value can be a fixed value or a dynamic value, and can be related to the index value i of the decoder or unrelated to the index value i of the decoder, and the present application does not make any specific limitation.
- the second probability value of the target data processing mode may be corrected using a threshold parameter of the target data processing mode to determine a target probability value of the target data processing mode.
- correcting the second probability value of the target data processing mode to determine the target probability value of the target data processing mode may include:
- the target probability value is set to the second probability value.
- the second probability value of the target data processing mode can be represented by Pi , then two threshold values can be set for Pi , the probability upper limit value (high threshold) Ui and the probability lower limit value (low threshold) Li , which should satisfy Li ⁇ Ui .
- the index value i is 0 to K-1.
- the probability value P i of the target decoder is continuously updated with the accumulation of the decoded binary symbol binVal (the value of the syntax element to be decoded).
- the current probability value (the second probability value) is Its probability value before update (first probability value) is
- the high and low threshold values of decoder i are calculated.
- Clip3(x,y,z) is the truncation calculation function.
- the threshold parameters of the target data processing mode can be further adjusted according to the second probability value, and the adjusted threshold parameters can be determined.
- the threshold parameters of the data processing mode can be dynamically adjusted.
- the high and low probability threshold values (lower probability limit value or upper probability limit value) of the decoder can be dynamically adjusted.
- the adjusted threshold parameters when adjusting the threshold parameters of the target data processing mode according to the second probability value and determining the adjusted threshold parameters, if the second probability value is less than the probability lower limit value of the target data processing mode, the probability lower limit value of the target data processing mode is reduced to determine the adjusted probability lower limit value; then the adjusted threshold parameters can be determined based on the adjusted probability lower limit value and the probability upper limit value of the target data processing mode.
- the adjusted threshold parameters when adjusting the threshold parameters of the target data processing mode according to the second probability value to determine the adjusted threshold parameters, if the second probability value is greater than the probability upper limit value of the target data processing mode, the probability upper limit value of the target data processing mode is increased to determine the adjusted probability upper limit value; then the adjusted threshold parameters can be determined based on the adjusted probability upper limit value and the probability lower limit value of the target data processing mode.
- the adjustment range when adjusting the threshold parameters of the target data processing mode, can be first determined according to the second pre-stored lookup table (such as Table 6); wherein the adjustment range is used to increase the upper limit value of the probability, or to reduce the lower limit value of the probability; and then the threshold parameters of the target data processing mode can be adjusted according to the adjustment range.
- the second pre-stored lookup table such as Table 6
- the selected adjustment range when adjusting the threshold parameter of the target data processing mode, may include increasing the probability upper limit value. It can also include reducing the probability lower limit value Among them, the adjustment range It can be the same, a fixed value, or a dynamic value depending on the size of the decoder index value i. This application does not make any specific limitations.
- the second probability value updated by decoder i can be Adjust the high and low thresholds of the decoder, referring to formula (12):
- the second probability value after the decoder i is updated is greater than the high threshold before the decoder i is updated Then increase the high threshold value, for example, Increase If the probability value after decoder i is updated is less than the lower threshold before decoder i is updated Then reduce the lower threshold value; for example, Reduce If the probability value after decoder i is updated is within the probability fluctuation range before decoder i is updated If the value is within the range, the high and low thresholds will not be adjusted.
- the adjustment amplitude can be obtained from Table 6, which has a 256-value probLut jump table and the current probability value (16-bit precision)
- the first 8 bits of the digits are jointly determined, namely:
- the adjusted threshold parameters are corrected to determine that the adjusted probability lower limit value of the target data processing mode is the same as the probability upper limit value of the adjacent candidate data processing mode; or, to determine that the adjusted probability upper limit value of the target data processing mode is the same as the probability lower limit value of the adjacent candidate data processing mode.
- the probability lower limit value after adjusting the threshold parameters of the target data processing mode, if the probability lower limit value is reduced, it is necessary to ensure that the adjusted probability lower limit value of the target data processing mode is the same as the probability upper limit value of the adjacent candidate data processing mode; if the probability upper limit value is increased, it is necessary to ensure that the adjusted probability upper limit value of the target data processing mode is the same as the probability lower limit value of the adjacent candidate data processing mode.
- the probability upper limit value and the probability lower limit value in the decoder can be dynamically updated and adjusted, and it is only necessary to ensure that the probability upper limit value and the probability lower limit value after update can still satisfy: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 ; or, L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 .
- the decoder probability update direction is opposite to the index mapping table update direction, if the adjusted high threshold Greater than the upper threshold of the adjacent decoder The high threshold Corrected to If the adjusted lower threshold Less than the lower threshold of the adjacent decoder The lower threshold Corrected to Please refer to the following formula for details:
- an update amplitude used when updating the first probability value of the target data processing mode is greater than an adjustment amplitude used when adjusting the threshold parameter of the target data processing mode.
- the amplitude of updating the probability value of the target data processing mode is greater than the amplitude of adjusting the threshold parameters of the target data processing mode, that is, the probability value of the target data processing mode is mainly updated, and only the threshold parameters of the target data processing mode are fine-tuned.
- the adjustment amplitude should not be greater than the update amplitude of the probability value.
- the adjustment amplitude values of the high and low probability thresholds are can be the same, a fixed value, or dynamically changed according to the size of the decoder index value i. They are all smaller than the probability value update amplitude (update amplitude) ⁇ P i j .
- the specific process of dynamically adjusting the dual probability threshold of the decoder i can refer to Table 7:
- the first probability value of decoder i is Update to the second probability value Afterwards, you can Perform correction processing.
- the threshold parameter before adjustment of the target data processing mode can be used to correct the corresponding second probability value, or the threshold parameter after adjustment of the target data processing mode can be used to correct the corresponding second probability value.
- This application does not make specific limitations.
- the first probability value of the target data processing mode can be determined based on the value of the syntax element to be decoded; then the first probability value of the target data processing mode is updated to determine the second probability value of the target data processing mode; then the threshold parameter of the target data processing mode can be adjusted based on the second probability value to determine the adjusted threshold parameter; finally, the second probability value can be corrected based on the adjusted threshold parameter to determine the target probability value of the target data processing mode.
- corresponding upper probability limits and lower probability limits can be set for different candidate decoders, wherein the upper probability limit and lower probability limit can be dynamically adjusted during the decoding process.
- the probability value of the decoder can also be dynamically adjusted, and the corresponding upper probability limit and lower probability limit can be used to limit and correct the probability value during the adjustment process.
- FIG11 is a schematic diagram of the implementation of the dynamic adjustment scheme proposed in the present application.
- the initial probability value P i 0 of the candidate decoder (candidate data processing mode) and the corresponding high and low threshold values can be initialized.
- the target decoder (target data processing mode) indicated by the decoder index can be used to determine the value (binVal) of the syntax element to be decoded.
- the probability value of the corresponding target decoder can be updated according to the value of the syntax element to be decoded to obtain a second probability value.
- the second probability value and the high and low threshold values can be dynamically adjusted respectively.
- the first preset condition can also set the initial probability value of the candidate decoder (candidate data processing mode).
- the initial probability value of the candidate decoder determined based on the first preset condition can be any value within the corresponding probability upper limit value and probability lower limit value range.
- the dynamic adjustment part in FIG. 11 when dynamically adjusting the second probability value and the high and low threshold values, can first adjust the corresponding threshold parameters (high and low threshold values) according to the second probability value obtained after the update process, determine the adjusted threshold parameters, and then use the adjusted threshold parameters to correct the second probability value to obtain the corrected target probability value. It is also possible to first use the threshold parameters to correct the second probability value obtained after the update process to obtain the corrected target probability value, and then adjust the corresponding threshold parameters according to the second probability value to determine the adjusted threshold parameters.
- facade_00064_vox11 98.5% longdress_vox10_1300 98.6% loot_vox10_1200 98.5% queen_0200 98.6% redandblack_vox10_1550 98.7% soldier_vox10_0690 98.5% thaidancer_viewdep_vox12 98.6% average 98.6%
- the decoding method proposed in the embodiment of the present application has an average gain of about 1.4% on the geometric code stream of these data, resulting in a saving in encoding and decoding bits.
- the present embodiment provides a decoding method, in which the encoder determines a candidate data processing mode based on a first preset condition; determines a data processing mode parameter corresponding to a syntax element to be encoded; determines a target data processing mode based on the candidate data processing mode according to the data processing mode parameter; encodes the value of the syntax element to be encoded according to the target data processing mode, and writes the obtained coded bits into the bitstream.
- the corresponding data processing mode parameter can be determined according to the code syntax element to be processed, and then the target data processing mode can be determined from the candidate data processing mode, and finally the syntax element is encoded and decoded according to the target data processing mode.
- the best target encoder can be selected from the candidate data processing mode for encoding during the encoding process, so that the most matching data processing mode can be selected during the encoding and decoding process, thereby reducing the encoding and decoding performance.
- FIG12 a schematic diagram of a flow chart of an encoding method provided in an embodiment of the present application is shown. As shown in FIG12, the method may include:
- Step 201 Determine a candidate data processing mode based on a first preset condition.
- the encoding method of the embodiment of the present application is applied to an encoder (or referred to as an "entropy encoder").
- the encoding method may specifically refer to a point cloud encoding method, or a point cloud entropy encoding method. Based on this method, the encoding process of the syntax element to be encoded can be implemented, and the bit rate can be saved.
- the data processing mode may be used to implement a coding function. That is, the data processing mode here may be regarded as a coding method/entropy coding method, or may also be regarded as an encoder/entropy encoder.
- there may be multiple candidate data processing modes that is, there may be multiple candidate encoders; subsequently, a target encoder is selected from the multiple candidate encoders, and the selected target encoder is used to encode the value of the grammatical element to be encoded.
- there may be only one candidate data processing mode that is, there is only one candidate encoder; in this case, different configuration parameters of the candidate encoders may be set, and then the encoder corresponding to the target configuration parameters may be used to encode the value of the grammatical element to be encoded, and no limitation is made to this.
- the first preset condition may be related to a threshold parameter (such as an upper probability limit value and/or a lower probability limit value), and the candidate data processing mode determined by the first preset condition can improve the encoding efficiency during the encoding process.
- a threshold parameter such as an upper probability limit value and/or a lower probability limit value
- determining the candidate data processing mode based on the first preset condition may include: determining a threshold parameter of the candidate data processing mode according to the first preset condition.
- the threshold parameter may indicate the probability threshold value of the candidate data processing mode, wherein the probability threshold value includes: the probability upper limit value and/or the probability lower limit value. That is to say, the embodiment of the present application may set the probability threshold value of the candidate data processing mode so that the probability threshold value of the candidate data processing mode can satisfy the decreasing or increasing order.
- the ranking indication parameter may be determined based on a threshold parameter of the candidate data processing mode.
- the value of the sorting indication parameter includes a first preset value and a second preset value; wherein the first preset value indicates the descending order of the threshold parameter, and the second preset value indicates the ascending order of the threshold parameter.
- the probability lower limit values of the K candidate data processing modes are L 0 , L 1 ...L i ...L K-1 , then for the first preset value, the probability lower limit values are in descending order: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 ; for the second preset value, the probability lower limit values are in increasing order: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 .
- the probability upper limit values of the K candidate data processing modes are U 0 , U 1 ...U i ...U K-1 , then for the first preset value, the probability upper limit values are in descending order: U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 ; for the second preset value, the probability upper limit values are in increasing order: U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 .
- i 1, 2, ..., K-1, where K represents the number of candidate data processing modes.
- a third preset value and a fourth preset value of the candidate data processing mode may also be determined; and the value of the sorting indication parameter is determined based on the third preset value and the fourth preset value.
- the third preset value indicates the update order of the probability values of the candidate data processing modes
- the fourth preset value indicates the update order of the index values of the candidate data processing modes
- the third preset value may indicate the candidate encoder probability update direction
- the fourth preset value may indicate the candidate encoder index mapping table update direction.
- the threshold parameters such as the probability lower limit value, the probability upper limit value, etc.
- the third preset value and the fourth preset value in one possible implementation method, if the value of the third preset value is equal to 1, it indicates that the candidate encoder probability update direction is a decreasing direction; if the value of the third preset value is equal to 0, it indicates that the candidate encoder probability update direction is an increasing direction; and if the value of the fourth preset value is equal to 1, it indicates that the candidate encoder index mapping table update direction is a decreasing direction; if the value of the third preset value is equal to 0, it indicates that the candidate encoder index mapping table update direction is an increasing direction.
- the value of the third preset value if the value of the third preset value is equal to 0, it indicates that the candidate encoder probability is updated in a decreasing direction; if the value of the third preset value is equal to 1, it indicates that the candidate encoder probability is updated in an increasing direction; and if the value of the fourth preset value is equal to 0, it indicates that the candidate encoder index mapping table is updated in a decreasing direction; if the value of the third preset value is equal to 1, it indicates that the candidate encoder index mapping table is updated in an increasing direction.
- the value of the sorting indication parameter when determining the value of the sorting indication parameter based on a third preset value and a fourth preset value, if the third preset value is different from the fourth preset value, the value of the sorting indication parameter is determined to be the first preset value; if the third preset value is the same as the fourth preset value, the value of the sorting indication parameter is determined to be the second preset value.
- the value of the sorting indication parameter is the first preset value, that is, the sorting indication parameter indicates the decreasing order of the threshold parameter, specifically L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 ; if the third preset value and the fourth preset value are the same, it means that the candidate encoder probability update direction is the same as the candidate encoder index mapping table update direction.
- the value of the sorting indication parameter is the second preset value, that is, the sorting indication parameter indicates the increasing order of the threshold parameter, specifically: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 .
- the probability value of the candidate encoder and the corresponding index value in the index mapping table both increase (or remain unchanged) or both decrease (or remain unchanged), then it can be determined that the update direction of the candidate encoder probability is the same as the update direction of the candidate encoder index mapping table; otherwise, it is determined that the update direction of the candidate encoder probability is opposite to the update direction of the candidate encoder index mapping table.
- a first parameter corresponding to the candidate data processing mode may also be determined; and the value of the sorting indication parameter is determined based on the first parameter.
- the first parameter corresponding to the candidate data processing mode may refer to the symbol (Symbol) corresponding to the probability value stored by the candidate encoder.
- the first parameter may indicate a specific value, such as a value of 0 or 1; or the first parameter may also indicate a symbol of binary arithmetic coding, such as a symbol of 0 or 1, which is not limited here.
- the value of the sort indication parameter when determining the value of the sort indication parameter based on the first parameter, if the first parameter indicates the first data, the value of the sort indication parameter is determined to be a first preset value; if the first parameter indicates the second data, the value of the sort indication parameter is determined to be a second preset value.
- the first data may be the symbol "0" and the second data may be the symbol "1".
- the value of the sorting indication parameter is the first preset value, that is, the fifth sorting indication parameter can indicate the order of decreasing probability lower limit values, specifically: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , and indicate the order of decreasing probability upper limit values, specifically: U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 ;
- the value of the sorting indication parameter is the second preset value, that is, the sixth sorting indication parameter can indicate the order of increasing probability lower limit values, specifically: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , and indicate the order of increasing probability lower limit values, specifically: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , and indicate the order of increasing probability lower limit values, specifically: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , and
- the threshold parameters may include a probability lower limit value and/or a probability upper limit value.
- the method may further include: when the value of the sorting indication parameter is a first preset value, if the threshold parameter is a probability lower limit value, then Li -1 is greater than or equal to Li ; if the threshold parameter is a probability upper limit value, then Ui -1 is greater than or equal to Ui ;
- the threshold parameter is the probability lower limit value
- Li -1 is less than or equal to Li
- Ui -1 is less than or equal to Ui .
- L i is the probability lower limit value of the candidate data processing mode
- U i is the probability upper limit value of the candidate data processing mode
- i 1, 2,..., K-1
- K represents the number of candidate data processing modes.
- the method may further include: among the candidate data processing modes, determining that the probability lower limit value of the current candidate data processing mode is the same as the probability upper limit value of the adjacent candidate data processing mode, and determining that the probability upper limit value of the current candidate data processing mode is the same as the probability lower limit value of the adjacent candidate data processing mode.
- the probability lower limit value of the current candidate encoder is the same as the probability upper limit value of the adjacent candidate encoder
- the probability upper limit value of the current candidate encoder is the same as the probability lower limit value of the adjacent candidate encoder
- high and low threshold values ie, upper and lower probability limits
- the index value i is 0 to K-1.
- a probability update double threshold is set for each encoder, including a low threshold Li and a high threshold Ui , where Li ⁇ Ui .
- i 0, 1, 2, ..., K-1, and K represents the number of candidate data processing modes.
- the encoder probability update direction is considered to be the same as the index mapping table update direction, otherwise the update direction is considered to be opposite.
- the specific setting process of the low threshold Li and the high threshold Ui can refer to Table 4.
- the lower threshold Li can be set to the second value in the i-th two-dimensional array
- the upper threshold Ui can be set to the first value in the i-th two-dimensional array.
- Step 202 Determine a data processing mode parameter corresponding to a syntax element to be encoded.
- Step 203 Based on the candidate data processing modes, determine the target data processing mode according to the data processing mode parameters.
- syntax element to be encoded specifically refers to the syntax element to be encoded by the encoder.
- the syntax element here can refer to a binary arithmetic coding symbol or any syntax element written into the bitstream, and no limitation is made here.
- determining the data processing mode parameter corresponding to the syntax element to be encoded may include: determining context information of the syntax element to be encoded; and determining the data processing mode parameter according to the context information and a preset mapping table.
- the preset mapping table may be a mapping relationship lookup table, and on the encoding side, the preset mapping table may be a candidate encoder index mapping table.
- determining data processing mode parameters according to context information and a preset mapping table may include: determining a context state of a syntax element to be encoded according to the context information; and determining data processing mode parameters according to the context state and a preset mapping table.
- the preset mapping table can be used to characterize the mapping relationship between the context state and the data processing mode parameter. For example, based on the preset mapping table, the index value of the encoder corresponding to any context state (context information) can be determined.
- context information can be divided into primary information and secondary information according to the importance of the information. Among them, for primary information, it will not be reduced; while for secondary information, it is possible to be reduced.
- the context state (represented by D) composed of the context information that is not reduced is obtained.
- Each context state D will have a counter N to record the number of times the current state D is accessed. If N is greater than a preset threshold, the dynamic reduction process will be updated, that is, the subsequent grammatical elements to be encoded will consider more secondary information to form a new context state D.
- the data processing mode parameters corresponding to the syntax element to be encoded can be determined through the preset mapping table.
- the preset mapping table records the mapping relationship between multiple sets of context states and data processing mode parameters, and the data processing mode parameters and the data processing mode also have a corresponding relationship, so that the target data processing mode (i.e., the target encoder) corresponding to the syntax element to be encoded can be determined.
- the method may further include: updating a preset mapping table according to the value of the syntax element to be encoded.
- updating the preset mapping table may include:
- the value of the syntax element to be encoded is the fifth preset value, reducing the data processing mode parameter in the preset mapping table;
- the data processing mode parameter in the preset mapping table is increased.
- the fifth preset value and the sixth preset value are different, and the fifth preset value and the sixth preset value can be in parameter form or in digital form.
- the syntax element to be encoded can be a parameter written in the profile or a value of a flag, which is not specifically limited here.
- the fifth preset value may be set to 1, and the sixth preset value may be set to 0; or, the fifth preset value may be set to 0, and the sixth preset value may be set to 1; or, the fifth preset value may be set to true, and the sixth preset value may be set to false; or, the fifth preset value may be set to false, and the sixth preset value may be set to true.
- the fifth preset value is 0, and the sixth preset value is 1, but this is not specifically limited.
- the data processing mode parameter in the preset mapping table can also be adjusted according to the value of the syntax element. For example, if the value of the currently encoded syntax element is 0, the data processing mode parameter can be reduced (or unchanged); if the value of the currently encoded syntax element is 1, the data processing mode parameter can be increased (or unchanged) to achieve the update of the preset mapping table.
- the encoder index mapping table (i.e., the preset mapping table) provides a mapping relationship between context states and encoder index values. Through the mapping table, the encoder index value that should be used for the syntax element to be encoded in any context state can be obtained. After each syntax element is encoded, the mapping relationship between the context state D and the encoder index value in the mapping table is adjusted according to the result of the syntax element.
- the encoder index mapping table can store an 8-bit encoder index value. When the current encoded symbol is "1", the encoder index value is increased (or unchanged); when the current encoded symbol is "0", the encoder index value is decreased (or unchanged).
- the specific update method is as follows, where stateVal is the encoder index value, CtxMap is the encoder index mapping table, ctxMapIdx is the context state D, binVal is the current encoded symbol, and ctxMapTransition is a query table, as shown in Table 1, which shows the value of ctxMapTransition[i].
- the encoder corresponding to the currently encoded symbol (syntax element) can be obtained.
- the encoder index value can correspond to the encoder one-to-one, or can be further mapped, that is, multiple encoder index values correspond to one encoder to obtain the final encoder index value.
- a secondary mapping process may be added, that is, the obtained binary encoder index value is used as the intermediate value (intermediate index value) to further determine the real index value. For example, stateVal needs to be shifted right by 2 bits to obtain the final encoder index value.
- Step 204 Encode the value of the syntax element to be encoded according to the target data processing mode, and write the obtained encoded bits into the bitstream.
- the target data processing mode ie, the target encoder
- the value of the syntax element to be encoded can be encoded according to the target data processing mode, and the obtained encoded bits can be written into the bitstream.
- the method may also include: determining a first probability value of the target data processing mode according to the value of the syntax element to be encoded; updating the first probability value of the target data processing mode, and determining a second probability value of the target data processing mode.
- the second probability value of the target data processing mode after the second probability value of the target data processing mode is obtained after updating, the second probability value of the target data processing mode can be further corrected to determine the target probability value of the target data processing mode.
- updating a first probability value of a target data processing mode to determine a second probability value of the target data processing mode may include: determining a second parameter corresponding to the target data processing mode; updating the first probability value of the target data processing mode according to the second parameter and the value of a syntax element to be encoded, and determining the second probability value of the target data processing mode.
- the second parameter corresponding to the target data processing mode may refer to the symbol (Symbol) corresponding to the probability value stored by the target encoder.
- the second parameter may indicate a specific value, such as a value of 0 or 1; or the second parameter may also indicate a symbol of binary arithmetic coding, such as a symbol of 0 or 1, which is not limited here.
- the probability value of the target encoder after encoding the syntax element to be encoded, if the probability value of the target encoder represents the probability of the second parameter, then the probability value of the target encoder can be increased or decreased according to the data indicated by the second parameter.
- updating the first probability value of the target data processing mode according to the second parameter and the value of the syntax element to be encoded may include:
- the value of the syntax element to be encoded is a fifth preset value, increasing the first probability value of the target data processing mode
- the second parameter indicates the first data
- the value of the syntax element to be encoded is a sixth preset value
- updating the first probability value of the target data processing mode according to the second parameter and the value of the syntax element to be encoded may include:
- the sign of the syntax element to be encoded is a fifth preset value, reducing the first probability value of the target data processing mode
- the second parameter indicates the second data
- the sign of the syntax element to be encoded is a sixth preset value
- the probability value of the target encoder represents the probability of the symbol "0"
- the probability value of the target encoder is increased (or unchanged), and when the currently encoded syntax element is 1, the probability value of the target encoder is decreased (or unchanged);
- the probability value of the encoder represents the probability of the symbol "1”
- the probability value of the target encoder is decreased (or unchanged)
- the probability value of the target encoder is increased (or unchanged).
- the method for updating the first probability value can be as shown in formula (9), where ⁇ represents the attenuation factor.
- the method for updating the first probability value can be in the form of a lookup table. If the probability is expressed with 16-bit precision, formula (9) can be approximately converted into formula (10), where diracLut is a lookup table, as shown in Table 2.
- the index value i is 0 to K-1.
- the probability value P i of the target encoder is continuously updated with the accumulation of the encoded binary symbol binVal (the value of the syntax element to be encoded).
- the current probability value (the second probability value) is Its probability value before update (first probability value) is
- the probability update process may adopt the algorithm shown in Table 5. Wherein diracLut[] is as shown in Table 2, that is, by looking up Table 2, the adjustment value (update amplitude) of the update probability may be quickly obtained.
- the update amplitude ⁇ P i j used in the process of updating the first probability value can be a fixed value or a dynamic value, and can be related to the index value i of the encoder or unrelated to the index value i of the encoder, and the present application does not make any specific limitation.
- the second probability value of the target data processing mode may be corrected using a threshold parameter of the target data processing mode to determine a target probability value of the target data processing mode.
- correcting the second probability value of the target data processing mode to determine the target probability value of the target data processing mode may include:
- the target probability value is set to the second probability value.
- the second probability value of the target data processing mode can be represented by Pi , then two threshold values can be set for Pi , the probability upper limit value (high threshold) Ui and the probability lower limit value (low threshold) Li , which should satisfy Li ⁇ Ui .
- the index value i is 0 to K-1.
- the probability value P i of the target encoder is continuously updated with the accumulation of the encoded binary symbol binVal (the value of the syntax element to be encoded).
- the current probability value (the second probability value) is Its probability value before update (first probability value) is
- the high and low threshold values of encoder i are calculated.
- the second probability value Make corrections.
- Clip3(x,y,z) is the truncation calculation function.
- the threshold parameters of the target data processing mode can be further adjusted according to the second probability value, and the adjusted threshold parameters can be determined.
- the threshold parameters of the data processing mode can be dynamically adjusted.
- the high and low probability threshold values (lower probability limit value or upper probability limit value) of the encoder can be dynamically adjusted.
- the adjusted threshold parameters when adjusting the threshold parameters of the target data processing mode according to the second probability value and determining the adjusted threshold parameters, if the second probability value is less than the probability lower limit value of the target data processing mode, the probability lower limit value of the target data processing mode is reduced to determine the adjusted probability lower limit value; then the adjusted threshold parameters can be determined based on the adjusted probability lower limit value and the probability upper limit value of the target data processing mode.
- the adjusted threshold parameters when adjusting the threshold parameters of the target data processing mode according to the second probability value to determine the adjusted threshold parameters, if the second probability value is greater than the probability upper limit value of the target data processing mode, the probability upper limit value of the target data processing mode is increased to determine the adjusted probability upper limit value; then the adjusted threshold parameters can be determined based on the adjusted probability upper limit value and the probability lower limit value of the target data processing mode.
- the adjustment range when adjusting the threshold parameters of the target data processing mode, can be first determined according to the second pre-stored lookup table (such as Table 6); wherein the adjustment range is used to increase the upper limit value of the probability, or to reduce the lower limit value of the probability; and then the threshold parameters of the target data processing mode can be adjusted according to the adjustment range.
- the second pre-stored lookup table such as Table 6
- the selected adjustment range when adjusting the threshold parameter of the target data processing mode, may include increasing the probability upper limit value. It can also include reducing the probability lower limit value Among them, the adjustment range It can be the same, a fixed value, or a dynamic value depending on the size of the encoder index value i. This application does not make any specific limitations.
- the updated second probability value of encoder i can be used. Adjust the high and low threshold values of the encoder, referring to formula (12).
- the second probability value after the encoder i is updated is greater than the high threshold before the encoder i is updated Then increase the high threshold value, for example, Increase If the probability value after encoder i is updated is less than the lower threshold before encoder i is updated Then reduce the lower threshold value; for example, Reduce If the probability value after encoder i is updated is within the probability fluctuation range before encoder i is updated If the value is within the range, the high and low thresholds will not be adjusted.
- the adjustment amplitude can be obtained from Table 6, which has a 256-value probLut jump table and the current probability value (16-bit precision)
- the first 8 bits of are jointly determined, refer to formula (13).
- the adjusted threshold parameters are corrected to determine that the adjusted probability lower limit value of the target data processing mode is the same as the probability upper limit value of the adjacent candidate data processing mode; or, to determine that the adjusted probability upper limit value of the target data processing mode is the same as the probability lower limit value of the adjacent candidate data processing mode.
- the probability lower limit value after adjusting the threshold parameters of the target data processing mode, if the probability lower limit value is reduced, it is necessary to ensure that the adjusted probability lower limit value of the target data processing mode is the same as the probability upper limit value of the adjacent candidate data processing mode; if the probability upper limit value is increased, it is necessary to ensure that the adjusted probability upper limit value of the target data processing mode is the same as the probability lower limit value of the adjacent candidate data processing mode.
- the probability upper limit value and the probability lower limit value in the encoder can be dynamically updated and adjusted, and it is only necessary to ensure that the probability upper limit value and the probability lower limit value after update can still satisfy: L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 ; or, L 0 ⁇ L 1 ⁇ ... ⁇ L i ⁇ ... ⁇ L K-1 , U 0 ⁇ U 1 ⁇ ... ⁇ U i ⁇ ... ⁇ U K-1 .
- the encoder probability update direction is opposite to the index mapping table update direction, if the adjusted high threshold Greater than the upper threshold of the adjacent encoder The high threshold Corrected to If the adjusted lower threshold Less than the lower threshold of the adjacent encoder The lower threshold Corrected to Please refer to formulas (14) and (15) for details.
- an update amplitude used when updating the first probability value of the target data processing mode is greater than an adjustment amplitude used when adjusting the threshold parameter of the target data processing mode.
- the amplitude of updating the probability value of the target data processing mode is greater than the amplitude of adjusting the threshold parameters of the target data processing mode, that is, the probability value of the target data processing mode is mainly updated, and only the threshold parameters of the target data processing mode are fine-tuned.
- the adjustment amplitude should not be greater than the update amplitude of the probability value.
- the adjustment amplitude values of the high and low probability thresholds are can be the same, a fixed value, or dynamically changed according to the size of the encoder index value i. They are all smaller than the probability value update amplitude (update amplitude) ⁇ P i j .
- the specific process of dynamically adjusting the dual probability threshold of encoder i can refer to Table 9.
- the first probability value of encoder i is Update to the second probability value Afterwards, you can Perform correction processing.
- the threshold parameter before adjustment of the target data processing mode can be used to correct the corresponding second probability value, or the threshold parameter after adjustment of the target data processing mode can be used to correct the corresponding second probability value.
- This application does not make specific limitations.
- the first probability value of the target data processing mode can be determined according to the value of the syntax element to be encoded; then the first probability value of the target data processing mode is updated to determine the second probability value of the target data processing mode; then the threshold parameter of the target data processing mode can be adjusted according to the second probability value to determine the adjusted threshold parameter; finally, the second probability value can be corrected according to the adjusted threshold parameter to determine the target probability value of the target data processing mode.
- corresponding probability upper limit values and probability lower limit values can be set for different candidate encoders, wherein the probability upper limit value and probability lower limit value can be dynamically adjusted during the encoding process.
- the probability value of the encoder can also be dynamically adjusted, and the corresponding probability upper limit value and probability lower limit value can be used to limit and correct the probability value during the adjustment process.
- FIG13 is a schematic diagram of the second implementation of the dynamic adjustment scheme proposed in the present application.
- the initial probability value P i 0 of the candidate encoder (candidate data processing mode) and the corresponding high and low threshold values can be initialized.
- the target encoder (target data processing mode) indicated by the encoder index can be used to encode the value (binVal) of the grammatical element to be encoded, and then the probability value of the corresponding target encoder can be updated according to the value of the grammatical element to be encoded to obtain a second probability value, and then the second probability value and the high and low threshold values can be dynamically adjusted respectively.
- the first preset condition can also set the initial probability value of the candidate encoder (candidate data processing mode).
- the initial probability value of the candidate encoder determined based on the first preset condition can be any value within the corresponding probability upper limit value and probability lower limit value range.
- the dynamic adjustment part in FIG. 11 when dynamically adjusting the second probability value and the high and low threshold values, can first adjust the corresponding threshold parameters (high and low threshold values) according to the second probability value obtained after the update process, determine the adjusted threshold parameters, and then use the adjusted threshold parameters to correct the second probability value to obtain the corrected target probability value. It is also possible to first use the threshold parameters to correct the second probability value obtained after the update process to obtain the corrected target probability value, and then adjust the corresponding threshold parameters according to the second probability value to determine the adjusted threshold parameters.
- the encoding method proposed in the embodiment of the present application has an average gain of about 1.4% on the geometric code stream of these data, resulting in a saving in encoding bits.
- an embodiment of the present application also provides a code stream, wherein the code stream is generated by bit encoding according to information to be encoded; wherein the information to be encoded includes at least: a value of a syntax element to be encoded.
- the encoding end can encode it and write it into the bitstream; subsequently, the value of the syntax element can be determined by decoding at the decoding end, so that the decoding end can use the value of the syntax element to perform related decoding operations.
- This embodiment provides a coding method, in which the encoder determines a candidate data processing mode based on a first preset condition; determines a data processing mode parameter corresponding to a syntax element to be encoded; determines a target data processing mode based on the candidate data processing mode according to the data processing mode parameter; encodes the value of the syntax element to be encoded according to the target data processing mode, and writes the obtained coded bits into the bitstream.
- the corresponding data processing mode parameter can be determined according to the code syntax element to be processed, and then the target data processing mode can be determined from the candidate data processing mode, and finally the syntax element is encoded and decoded according to the target data processing mode.
- the best target encoder can be selected from the candidate data processing mode for encoding during the encoding process, so that the most matching data processing mode can be selected during the encoding and decoding process, thereby reducing the encoding and decoding performance.
- FIG14 shows a schematic diagram of the composition structure of an encoder 140 provided in an embodiment of the present application.
- the encoder 140 may include: a first determining unit 1401 and an encoding unit 1402; wherein,
- the first determining unit 1401 is configured to determine a candidate data processing mode based on a first preset condition; and determine a data processing mode parameter corresponding to a syntax element to be encoded;
- the first determining unit 1401 is further configured to determine a target data processing mode according to the data processing mode parameters based on the candidate data processing modes;
- the encoding unit 1402 is configured to encode the value of the syntax element to be encoded according to the target data processing mode, and write the obtained encoded bits into the bitstream.
- the encoder 140 can also be regarded as a data processing mode (or “entropy encoder”), which is used to encode the values of the grammatical elements to be encoded.
- entropy encoder a data processing mode
- a "unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., and of course, it may be a module, or it may be non-modular.
- the components in the present embodiment may be integrated into a processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the above-mentioned integrated unit may be implemented in the form of hardware or in the form of a software functional module.
- the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium.
- the technical solution of this embodiment is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product.
- the computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, server, or network device, etc.) or a processor to perform all or part of the steps of the method described in this embodiment.
- the aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk, etc., various media that can store program codes.
- an embodiment of the present application provides a computer-readable storage medium, which is applied to the encoder 140.
- the computer-readable storage medium stores a computer program.
- the computer program When the computer program is executed by the first processor, it implements the encoding method described in any one of the aforementioned embodiments.
- the encoder 140 may include: a first communication interface 1501, a first memory 1502 and a first processor 1503; each component is coupled together through a first bus system 1504. It can be understood that the first bus system 1504 is used to achieve connection and communication between these components.
- the first bus system 1504 also includes a power bus, a control bus and a status signal bus.
- various buses are labeled as the first bus system 1504 in Figure 15. Among them,
- the first communication interface 1501 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
- a first memory 1502 used for storing a computer program that can be run on the first processor 1503;
- the first processor 1503 is configured to, when running the computer program, execute:
- the value of the syntax element to be encoded is encoded according to the target data processing mode, and the obtained encoding bits are written into a bitstream.
- the first memory 1502 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories.
- the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory.
- the volatile memory can be a random access memory (RAM), which is used as an external cache.
- RAM static RAM
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDRSDRAM double data rate synchronous DRAM
- ESDRAM enhanced synchronous DRAM
- SLDRAM synchronous link DRAM
- DRRAM direct RAM bus RAM
- the first processor 1503 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit or software instructions in the first processor 1503.
- the above-mentioned first processor 1503 can be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application-specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components.
- DSP Digital Signal Processor
- ASIC Application Specific Integrated Circuit
- FPGA Field Programmable Gate Array
- the methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed.
- the general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc.
- the steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor to execute, or a combination of hardware and software modules in the decoding processor to execute.
- the software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc.
- the storage medium is located in the first memory 1502, and the first processor 1503 reads the information in the first memory 1502 and completes the steps of the above method in combination with its hardware.
- the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processors (Digital Signal Processing, DSP), digital signal processing devices (DSP Device, DSPD), programmable logic devices (Programmable Logic Device, PLD), field programmable gate arrays (Field-Programmable Gate Array, FPGA), general processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof.
- ASIC Application Specific Integrated Circuits
- DSP Digital Signal Processing
- DSP Device digital signal processing devices
- PLD programmable logic devices
- FPGA field programmable gate array
- general processors controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof.
- the technology described in this application can be implemented by a module (such as a process, function, etc.) that performs the functions described in this application.
- the software code can be stored in a memory and executed by a processor.
- the memory can be implemented in the processor or outside the processor.
- the first processor 1503 is further configured to execute the encoding method described in any one of the aforementioned embodiments when running the computer program.
- This embodiment provides an encoder that can determine the corresponding data processing mode parameters according to the code syntax elements to be processed, and then determine the target data processing mode from the candidate data processing modes, and finally perform encoding and decoding processing on the syntax elements according to the target data processing mode.
- the candidate data processing mode is determined according to the first preset condition, the best target encoder can be selected from the candidate data processing modes for encoding during the encoding process, so that the most matching data processing mode can be selected during the encoding and decoding process, thereby reducing the encoding and decoding performance.
- FIG16 shows a schematic diagram of the composition structure of a decoder 160 provided in an embodiment of the present application.
- the decoder 160 may include: a second determination unit 1601 and a decoding unit 1602; wherein,
- the second determining unit 1601 is configured to determine a candidate data processing mode based on a first preset condition; and determine a data processing mode parameter corresponding to a syntax element to be decoded;
- the second determining unit 1601 is further configured to determine a target data processing mode according to the data processing mode parameters based on the candidate data processing modes;
- the decoding unit 1602 is configured to decode the syntax element to be decoded according to the target data processing mode, and determine the value of the syntax element to be decoded.
- the decoder 160 can also be regarded as a data processing mode (or “entropy decoder”), which is used to decode the values of the syntax elements to be decoded.
- entropy decoder a data processing mode
- a "unit" can be a part of a circuit, a part of a processor, a part of a program or software, etc., and of course it can also be a module, or it can be non-modular.
- the components in this embodiment can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
- the above-mentioned integrated unit can be implemented in the form of hardware or in the form of a software functional module.
- the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium.
- this embodiment provides a computer-readable storage medium, which is applied to the decoder 160, and the computer-readable storage medium stores a computer program. When the computer program is executed by the second processor, the method described in any one of the above embodiments is implemented.
- the decoder 160 may include: a second communication interface 1701, a second memory 1702 and a second processor 1703; each component is coupled together through a second bus system 1704. It can be understood that the second bus system 1704 is used to achieve connection and communication between these components.
- the second bus system 1704 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are marked as the second bus system 1704 in Figure 17. Among them,
- the second communication interface 1701 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
- the second memory 1702 is used to store a computer program that can be run on the second processor 1703;
- the second processor 1703 is configured to execute, when running the computer program:
- the syntax element to be decoded is decoded according to the target data processing mode, and the value of the syntax element to be decoded is determined.
- the second processor 1703 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.
- This embodiment provides a decoder, which can determine the corresponding data processing mode parameters according to the code syntax elements to be processed, and then determine the target data processing mode from the candidate data processing modes, and finally perform encoding and decoding processing on the syntax elements according to the target data processing mode.
- the candidate data processing mode is determined according to the first preset condition, the best target encoder can be selected from the candidate data processing modes for encoding during the encoding process, so that the most matching data processing mode can be selected during the encoding and decoding process, thereby reducing the encoding and decoding performance.
- the coding and decoding system 180 may include an encoder 1801 and a decoder 1802 .
- the encoder 1801 may be the encoder described in any one of the aforementioned embodiments
- the decoder 1802 may be the decoder described in any one of the aforementioned embodiments.
- the embodiment of the present application provides a coding and decoding method, a code stream, an encoder, a decoder and a storage medium.
- a candidate data processing mode is determined; the data processing mode parameters corresponding to the syntax element to be encoded are determined; based on the candidate data processing mode, the target data processing mode is determined according to the data processing mode parameters; the value of the syntax element to be encoded is encoded according to the target data processing mode, and the obtained coded bits are written into the code stream.
- a candidate data processing mode is determined; the data processing mode parameters corresponding to the syntax element to be decoded are determined; based on the candidate data processing mode, the target data processing mode is determined according to the data processing mode parameters; the syntax element to be decoded is decoded according to the target data processing mode, and the value of the syntax element to be decoded is determined.
- the corresponding data processing mode parameters can be determined according to the code syntax element to be processed, and then the target data processing mode can be determined from the candidate data processing mode, and finally the syntax element is coded and decoded according to the target data processing mode.
- the best target encoder can be selected from the candidate data processing modes for encoding during the encoding process, so that the most matching data processing mode can be selected during the encoding and decoding process, thereby reducing the encoding and decoding performance.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例公开了一种编解码方法、码流、编码器、解码器以及存储介质,在编码端,基于第一预设条件,确定候选数据处理模式;确定待编码语法元素对应的数据处理模式参数;基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;根据目标数据处理模式对待编码语法元素的取值进行编码,将所得到的编码比特写入码流。在解码端,基于第一预设条件,确定候选数据处理模式;确定待解码语法元素对应的数据处理模式参数;基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;根据目标数据处理模式解码待解码语法元素,确定待解码语法元素的取值。
Description
本申请实施例涉及点云编解码技术领域,尤其涉及一种编解码方法、码流、编码器、解码器以及存储介质。
在基于几何的点云压缩(Geometry-based Point Cloud Compression,G-PCC)编解码框架中,点云的几何信息和点云中的点所对应的属性信息是分开进行编码的。其中,对于G-PCC编解码框架而言,几何编解码部分可分为基于八叉树的几何编解码、基于Trisoup的几何编解码、基于预测树的几何编解码。
在相关技术中,由于编码器维护的概率值与映射关系查找表都存在更新过程,因此在无法保证在任一时刻下编码器维护的概率值均会随着编码器索引单调递增或递减的情况下,会导致编码过程中无法选择最匹配的编码器进行编码,进而降低了编解码性能。
发明内容
本申请实施例提供一种编解码方法、码流、编码器、解码器以及存储介质,能够在编解码过程中选择最匹配的数据处理模式,进而降低了编解码性能。
本申请实施例的技术方案可以如下实现:
第一方面,本申请实施例提供了一种解码方法,应用于解码器,该方法包括:
基于第一预设条件,确定候选数据处理模式;
确定待解码语法元素对应的数据处理模式参数;
基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;
根据目标数据处理模式解码待解码语法元素,确定待解码语法元素的取值。
第二方面,本申请实施例提供了一种编码方法,应用于编码器,该方法包括:
基于第一预设条件,确定候选数据处理模式;
确定待编码语法元素对应的数据处理模式参数;
基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;
根据目标数据处理模式对待编码语法元素的取值进行编码,将所得到的编码比特写入码流。
第三方面,本申请实施例提供了一种码流,码流是根据待编码信息进行比特编码生成的;其中,待编码信息至少包括:待编码语法元素的取值。
第四方面,本申请实施例提供了一种编码器,编码器包括第一确定单元和编码单元;其中,
第一确定单元,配置为基于第一预设条件,确定候选数据处理模式;以及确定待编码语法元素对应的数据处理模式参数;
第一确定单元,还配置为基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;
编码单元,配置为根据目标数据处理模式对待编码语法元素的取值进行编码,将所得到的编码比特写入码流。
第五方面,本申请实施例提供了一种编码器,编码器包括第一存储器和第一处理器;其中,
第一存储器,用于存储能够在第一处理器上运行的计算机程序;
第一处理器,用于在运行计算机程序时,执行如第二方面所述的方法。
第六方面,本申请实施例提供了一种解码器,解码器包括第二确定单元和解码单元;其中,
第二确定单元,配置为基于第一预设条件,确定候选数据处理模式;以及确定待解码语法元素对应的数据处理模式参数;
第二确定单元,还配置为基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;
解码单元,配置为根据目标数据处理模式解码待解码语法元素,确定待解码语法元素的取值。
第七方面,本申请实施例提供了一种解码器,解码器包括第二存储器和第二处理器;其中,
第二存储器,用于存储能够在第二处理器上运行的计算机程序;
第二处理器,用于在运行计算机程序时,执行如第一方面所述的方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如第一方面所述的方法、或者实现如第二方面所述的方法。
本申请实施例提供了一种编解码方法、码流、编码器、解码器以及存储介质,在编码端,基于第一预设条件,确定候选数据处理模式;确定待编码语法元素对应的数据处理模式参数;基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;根据目标数据处理模式对待编码语法元素的取值进行编码,将所得到的编码比特写入码流。在解码端,基于第一预设条件,确定候选数据处理模式;确定待解码语法元素对应的数据处理模式参数;基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;根据目标数据处理模式解码待解码语法元素,确定待解码语法元素的取值。由此可见,在本申请的实施例中,可以根据待处理的码语法元素来确定对应的数据处理模式参数,进而可以从候选数据处理模式中确定出目标数据处理模式,最后根据目标数据处理模式对语法元素进行编解码处理。其中,由于候选数据处理模式是根据第一预设条件确定的,使得在编码过程中能够从候选数据处理模式中选择出最佳的目标编码器进行编码,从而能够在编解码过程中选择最匹配的数据处理模式,进而降低了编解码性能。
图1为一种点云编解码的网络架构示意图;
图2为一种G-PCC编码器的组成框架示意图;
图3为一种G-PCC解码器的组成框架示意图;
图4为一种对离散状态D进行映射的流程示意图;
图5为动态对离散状态D进行映射的流程示意图;
图6A-6H为点云的空间位置关系;
图7为子节点扫描顺序的示意图;
图8为动态缩减的实现方法示意图;
图9为更新动态缩减的实现方法示意图;
图10为本申请实施例提供的一种解码方法的流程示意图;
图11为本申请提出的动态调整方案的实现示意图一;
图12为本申请实施例提供的一种编码方法的流程示意图;
图13为本申请提出的动态调整方案的实现示意图二;
图14为本申请实施例提供的一种编码器的组成结构示意图;
图15为本申请实施例提供的一种编码器的具体硬件结构示意图;
图16为本申请实施例提供的一种解码器的组成结构示意图;
图17为本申请实施例提供的一种解码器的具体硬件结构示意图;
图18为本申请实施例提供的一种编解码系统的组成结构示意图。
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
对本申请实施例进行进一步详细说明之前,先对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释:
点云压缩(Point Cloud Compression,PCC);
基于几何的点云压缩(Geometry-based Point Cloud Compression,G-PCC或GPCC);
基于视频的点云压缩(Video-based Point Cloud Compression,V-PCC或VPCC);
八叉树(Octree);
三角面片集(Triangle soup,Trisoup);
帧内预测(Intra Prediction);
查找表(Look Up Table,LUT);
红绿蓝(Red-Green-Blue,RGB);
亮度色度(Luminance-Chrominance,YUV);
细节层次(Level of Detail,LOD);
预测变换(Predicting Transform);
提升变换(Lifting Transform);
区域自适应分层变换(Region Adaptive Hierarchal Transform,RAHT);
基于上下文模型的自适应二进制算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC)。
可以理解,点云(Point Cloud)是物体表面的三维表现形式,通过光电雷达、激光雷达、激光扫描仪、多视角相机等采集设备,可以采集得到物体表面的点云(数据)。
另外,点云是指海量三维点的集合,点云中的点可以包括点的位置信息和点的属性信息。例如,点的位置信息可以是点的三维坐标信息。点的位置信息也可称为点的几何信息。例如,点的属性信息可包括颜色信息和/或反射率等等。例如,颜色信息可以是任意一种色彩空间上的信息。例如,颜色信息可以是RGB信息。其中,R表示红色(Red,R),G表示绿色(Green,G),B表示蓝色(Blue,B)。再如,颜色信息可以是亮度色度(YCbCr,YUV)信息。其中,Y表示明亮度,Cb(U)表示蓝色色度,Cr(V)表示红色色度。
根据激光测量原理得到的点云,点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理得到点云,点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。
点云可以按获取的途径分为:
第一类静态点云:即物体是静止的,获取点云的设备也是静止的;
第二类动态点云:物体是运动的,但获取点云的设备是静止的;
第三类动态获取点云:获取点云的设备是运动的。
例如,按点云的用途分为两大类:
类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
由于点云是海量点的集合,存储点云不仅会消耗大量的内存,而且不利于传输,也没有这么大的带宽可以支持将点云不经过压缩直接在网络层进行传输,因此,需要对点云进行压缩。
截止目前,可对点云进行压缩的点云编码框架可以是运动图像专家组(Moving Picture Experts Group,MPEG)提供的G-PCC编解码框架或V-PCC编解码框架,也可以是音视频编码标准(Audio Video Standard,AVS)提供的AVS-PCC编解码框架。其中,G-PCC编解码框架可用于针对第一类静态点云和第三类动态获取点云进行压缩,V-PCC编解码框架可用于针对第二类动态点云进行压缩。在本申请的实施例中,这里主要是针对G-PCC编解码框架进行描述。
本申请实施例提供了一种包含解码方法和编码方法的点云编解码系统的网络架构,图1为本申请实施例提供的一种点云编解码的网络架构示意图。如图1所示,该网络架构包括一个或多个电子设备13至1N和通信网络01,其中,电子设备13至1N可以通过通信网络01进行视频交互。电子设备在实施的过程中可以为各种类型的具有点云编解码功能的设备,例如,所述电子设备可以包括手机、平板电脑、个人计算机、个人数字助理、导航仪、数字电话、视频电话、电视机、传感设备、服务器等,本申请实施例不作限制。其中,本申请实施例中的解码器或编码器就可以为上述电子设备。
其中,本申请实施例中的电子设备具有点云编解码功能,一般包括点云编码器(即编码器)和点云解码器(即解码器)。
下面以G-PCC编解码框架为例进行相关技术的说明。
可以理解,在点云G-PCC编解码框架中,针对待编码的点云数据,首先通过片(slice)划分,将点云数据划分为多个slice。在每一个slice中,点云的几何信息和每个点云所对应的属性信息是分开进行编码的。
图2示出了一种G-PCC编码器的组成框架示意图。如图2所示,在几何编码过程中,对几何信息 进行坐标转换,使点云全都包含在一个包围盒(Bounding Box)中,然后再进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点云的几何信息相同,于是再基于参数来决定是否移除重复点,量化和移除重复点这一过程又被称为体素化过程。接着对Bounding Box进行八叉树划分或者预测树构建。在该过程中,针对划分的叶子结点中的点进行算术编码,生成二进制的几何比特流;或者,针对划分产生的交点(Vertex)进行算术编码(基于交点进行表面拟合),生成二进制的几何比特流。在属性编码过程中,几何编码完成,对几何信息进行重建后,需要先进行颜色转换,将颜色信息(即属性信息)从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。属性编码主要针对颜色信息进行,在颜色信息编码过程中,主要有两种变换方法,一是依赖于LOD划分的基于距离的提升变换,二是直接进行RAHT变换,这两种方法都会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数,最后对系数进行量化,再对量化系数进行算术编码,可以生成二进制的属性比特流。
图3示出了一种G-PCC解码器的组成框架示意图。如图3所示,针对所获取的二进制比特流,首先对二进制比特流中的几何比特流和属性比特流分别进行独立解码。在对几何比特流的解码时,通过算术解码-重构八叉树/重构预测树-重建几何-坐标逆转换,得到点云的几何信息;在对属性比特流的解码时,通过算术解码-反量化-LOD划分/RAHT-颜色逆转换,得到点云的属性信息,基于几何信息和属性信息还原待编码的点云数据(即输出点云)。
对于基于八叉树的几何编码(Octree geometry encoding,OctGeomEnc)而言,基于八叉树的几何编码包括:首先对几何信息进行坐标转换,使点云全都包含在一个Bounding Box中。然后再进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点的几何信息相同,根据参数来决定是否移除重复点,量化和移除重复点这一过程又被称为体素化过程。接下来,按照广度优先遍历的顺序不断对Bounding Box进行树划分(例如八叉树、四叉树、二叉树等),对划分产生的子节点,以一位比特(Bit)来表示该节点在空间中对应的长方体块是否包含点,称为“占位码”。对每个节点的占位码进行编码。在基于八叉树的几何编码框架中,将包围盒依次划分得到子节点,对非空的(包含点云中的点)的子节点继续进行划分,直到划分得到的叶子节点为1×1×1的单位立方体时停止划分,其次对叶子节点中所包含的点数进行编码,最终完成几何八叉树的编码,生成二进制码流。在基于三角面片集的几何编码框架中,同样也要先进行八叉树划分,但区别于基于八叉树的几何信息编码,该方法不需要将点云逐级划分到边长为1×1×1的单位立方体,而是划分到子块(Block)的边长为W时停止划分,基于每个Block中点云的分布所形成的表面,得到该表面与Block的十二条边所产生的至多十二个交点(Vertex)。依次编码每个Block的Vertex坐标,生成二进制码流。
对于基于八叉树的几何解码而言,解码端按照广度优先遍历的顺序,通过不断解析得到每个节点的占位码,并且依次不断划分节点,直至划分得到1×1×1的单位立方体时停止划分,解析得到每个叶子节点中包含的点数,最终恢复得到几何重构点云信息。
对于基于Trisoup的几何编码而言,基于Trisoup的几何编码包括:首先划分八叉树,区别于基于八叉树结构的几何信息编码,该方法不需要将点云逐级划分到边长为1·1·1的底层叶子节点,而是划分指定边长的叶子节点;再将节点内体素构成的表面信息用一系列三角网格(triangle mesh)表示。GPCC中用参数trisoup node size表示三角面片所在block(块)尺寸大小,当trisoup node size大于0时,通过一个几何面片表示节点内的体素集合,几何面片与block的十二条边产生的至多十二个交点称为顶点(vertex)。依次编码每个block的vertex坐标,生成二进制码流。
基于Trisoup的几何解码包括:了从节点三角面片中解码出点云的几何坐标,需要检查节点立方体内的每个体素是否与三角面片相交,改技术称为三角光栅化,利用6个单位向量(0,0,1)、(0,0,1)、(0,0,1)、(0,0,1)、(0,0,1)、(0,0,1)进行相交检验,检验各单位向量与三角面片是否相交,若相交,则计算交点并输出解码的立方体,解码器中生成点的数量由网格距离d决定。
对于基于预测树的几何编码(Predictive geometry coding,PredGeomTree)而言,基于预测树的几何编码包括:首先对输入点云进行排序,目前采用的排序方法包括无序、莫顿序、方位角序和径向距离序。在编码端通过利用两种不同的方式建立预测树结构,其中包括:高时延慢速模式(KD-Tree,KD树)和低时延快速模式(利用激光雷达标定信息,将每个点划分到不同的激光器(Laser)上,按照不同的Laser建立预测树结构)。接下来基于预测树的结构,遍历预测树中的每个节点,通过选取不同的预测模式对节点的几何位置信息进行预测得到几何预测残差,并且利用量化参数对几何预测残差进行量化。最终通过不断迭代,对预测树节点位置信息的预测残差、预测树结构以及量化参数等进行编码,生成二进制码流。
对于基于预测树的几何解码而言,解码端通过不断解析码流,重构预测树结构,其次通过解析得到每个预测节点的几何位置预测残差信息以及量化参数,并且对预测残差进行反量化,恢复得到每个节点 的重构几何位置信息,最终完成解码端的几何重构。
作为一种实施方式,可以快速准确地通过一个映射关系查找表(Look Up Table,LUT)将占位码的一系列离散状态D映射到一组固定数量N的自适应熵编码器中,这样一来上下文信息状态不再与概率模型一一对应,随着当前编码的语法元素更新固定数量的概率模型,并且在每次占位码编码完成之后,其映射关系会被更新。
图4为一种对离散状态D进行映射的流程示意图,如图4所示,映射后的编码器索引取值为[0,1,…,N-1],符号s是要编解码的占用比特,取值是1或0。
在利用对离散状态D进行映射实现编解码的过程中,可以先获取待编码符号的上下文状态D,该待编码符号的上下文状态D是对离散状态D进行映射过程的输入信息,由空间中已经编码的邻居节点信息以及子节点相对于父节点的位置组成。
在获取待编码符号的上下文状态D之后,可以进一步基于映射关系(映射关系查找表)得到状态D对应的二进制编码器的索引值i。
其中,在所有的待编码的符号(所有节点的占位信息)还未编码之前,可以预先设置每个状态都对应一个0~255的值,该值即是二进制编码器的索引,每个状态根据其状态值被映射为对应的二进制编码器。这256个二进制编码器各自有一个关联概率p
i∈(0,1),且随着索引i的增大其关联概率p
i的值越大,且每个二进制编码器的关联概率不会随着编码过程而改变。
对离散状态D进行映射的技术可以包括两个LUT表,分别是LUT0和LUT1,当所编比特s=0时,进入表LUT0中更新编码器索引;当所编比特s=1时,进入表LUT1中,更新中间编码器索引(取值为[0,1,…,255]),然后将这256个中间索引值映射为最终真实的32个coder(即[0,1,…,31])。
可以参照如下公式进行索引值的更新,确定更新后的编码器索引i
update:
其中,在进行映射关系查找表LUT的生成时,首先可以根据如下的熵误差(entropy error)公式和误差阈值ε生成与256个二进制编码器关联的概率值p
i(i∈[0,1,…,255])。
E(p,p
i)=p
i[-log
2(p)+log
2(p
i)]+(1-p
i)[-log
2(1-p)+log
2(1-p
i)] (2)
p
i+1=min{p|E(p,p
i)≤ε&p≥p
i} (3)
其中,可以设置记忆信道L,(L=max(5,1/p,1/(1-p))and clipped to 200)根据如下公式算出每编码一个符号s所对应的实际更新概率值p
new。
p
new=(L×p
i+s)/(L+1) (4)
最后,可以从生成的256个理论关联概率值找到与实际概率值p
new熵误差最小的概率值,如下公式,得到其对应的编号i∈[0,1,…,255],即为当前符号对应的(中间)编码器索引i
update。
i
update=arg min
i'|p
i',p
new| (5)
可以对关联概率表中的每个概率都运用公式(2),再结合所编的符号是0或1算出更新概率值并得到相应的索引值i
update,将其分别存入LUT0和LUT1中,即可得到映射关系查找表LUTs。
进一步地,在基于映射关系得到状态D对应的二进制编码器i之后,可以使用二进制编码器i对符号s进行熵编码。其中,可以将待编码符号S与其对应的上下文状态D送入基于上下文的二进制算术编码器中进行熵编码。
如图4所示,在对离散状态D进行映射的过程中,可以先根据当前点的待编码符号s(占位信息)以及对应的上下文状态D,利用映射关系查找表LUT确定中间编码器索引,进而可以确定实际编码器索引,然后按照该实际编码器索引对应的编码器对待编码符号进行编码,生成对应的二进制码流。其中,在完成当前点的待编码符号的编码处理之后,还可以结合该待编码符号进一步对映射关系查找表LUT进行更新处理。
需要说明的是,对所使用的查找表(即映射关系查找表LUT)可以做进一步简化。具体做法是先通过如下公式合并LUT0和LUT1:
LUT1[s]=255-LUT0[255-s] (6)
再通过LUT中所存索引与下标之间的关系将其转换为ΔLUT跳转表:
△LUT[i]=i-LUT0[i] (7)
并且还可以将ΔLUT中256个跳转值每16个为一组,例如,得到最终的跳转表如表1所示,最终按照如下公式更新索引值,最后增加二次映射的过程,即以得到的二进制编码器索引值i
update作为中间值,对这个取值为0~255的中间值进一步映射为取值为0~31的二进制编码器索引值。其中,二次映射可以是一个将中间值进行除8向下取值的简单操作。但是每个状态D还是对应一个取值范围为0~255的值,也还是存在256个关联概率。
表1跳转表ΔLUT
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
value | 0 | 1 | 1 | 2 | 4 | 7 | 9 | 11 | 14 | 16 | 19 | 23 | 22 | 22 | 20 | 15 |
可以理解的是,提出了一种动态对离散状态D进行映射的技术,其中,图5为动态对离散状态D进行映射的技术的流程示意图,如图5所示,动态对离散状态D进行映射的技术可以分两个阶段:第一阶段是获取待编码的占位码的上下文信息(上下文状态),并对上下文信息进行减少,其中,每次需要减少的信息会随着编码过程动态调整;第二阶段是将减少后的上下文信息映射到数量较少的二进制编码器集合中,并且在每次占位码编码完成之后,其映射关系会被更新。
其中,第二阶段的映射关系的确定和更新与常见的对离散状态D进行映射的技术相同。
对于动态对离散状态D进行映射的技术,在第一阶段的上下文(上下文状态)构建与动态缩减的过程中,上下文信息由已编码的语法元素构成,可根据信息的重要程度分为主要信息与次要信息,其中,次要信息中的部分信息会在动态缩减的过程中被减少,将主要信息与缩减后的次要信息重组后的上下文作为对离散状态D进行映射过程的输入,映射到编码器进行编码
其中,在上下文状态信息的构建过程中,待编码子节点的上下文可以由以下几类信息确定:
1)待编码子节点的局部稀疏性;
2)待编码子节点的位置信息以及其已编码兄弟节点占据情况;
3)当前节点的6个共面父邻居的占位情况
4)当前节点的其他20个共边、共点的父邻居占位情况。
可以将上述上下文信息转换为二进制流bins,其中与当前子节点相关性更强的信息位于bins的高位,作为主要信息;与当前子节点相关性弱的信息位于bins的低位,作为次要信息。
在一些实施例中,图6A-6H为点云的空间位置关系,如图6A-6H所示,对于当前子节点来说,空间可参考的参考点至少可以包括当前子节点的已编码兄弟节点、当前子节点的已编码共面子节点邻居、当前子节点的已编码共边子节点邻居、当前子节点的已编码共点子节点邻居、当前子节点的已编码其他子节点邻居、当前子节点的已编码共面父节点邻居、当前子节点的已编码共边父节点邻居、其他已编码的20个父节点邻居。其中,这些上下文按重要程度的排列后的顺序是,当前子节点的已编码兄弟节点>当前子节点的已编码共面子节点邻居>当前子节点的已编码共边子节点邻居>当前子节点的已编码共点子节点邻居>当前子节点的已编码其他子节点邻居>当前子节点的已编码共面父节点邻居>当前子节点的已编码共边父节点邻居>其他已编码的20个父节点邻居。
需要说明的是,在本申请的实施例中,图7为子节点扫描顺序的示意图,如图7所示,上下文信息构建时可以先根据扫描顺序对位于当前节点不同位置的待编码子节点构建不同的上下文模型。随着当前节点中已编码子节点的数量增多,未编码子节点可参考的有效上下文信息也会改变,而且对于当前节点的这八个子节点有不同的局部稀疏性判定方式,所以每个子节点都有各自的上下文bins。
进一步地,图8为动态缩减的实现方法示意图,如图8所示,在动态缩减以及更新动态缩减的过程中,在将原始上下文信息bins(i
1,i
2)划分为主要信息i
1与次要信息i
2之后,仅对次要信息i
2进行缩减操作,也就是将i
2的k bit置为0(截断),得到次要信息i′
2,接着重组上下文,构成上下文状态D(i
1,i′
2),即确定动态缩减后的上下文。
图9为更新动态缩减的实现方法示意图,如图9所示,每个上下文状态D都会有计数器N(i
1,i′
2)来记录当前状态D被访问的次数。在实现动态缩减的过程中,如果N(i
1,i′
2)大于设定的阈值th,就将原始 上下文bins中截断k bit次要信息改为截断k-1bit次要信息后再次重组上下文,激活新的状态D(i
1,i″
2),即后续待编码的语法元素会考虑更多的次要信息来组成新的上下文状态,也就意味着被减少的次要信息是动态调整的。
在一些实施例中,在根据确定的索引值选择编码器时,编码器索引映射关系查找表提供了上下文状态与编码器索引的映射关系。通过该映射关系查找表,可以得到待编码语法元素在任一上下文状态下应该使用的编码器索引。每次编码完一个语法元素之后,会根据该语法元素的结果对映射关系查找表中上下文状态D与编码器索引的映射关系进行调整。
在GPCC中,编码器索引映射关系查找表可以存储8比特的编码器索引。其中,当前编码符号为“1”时,增大(或不变)编码器索引,当前编码符号为“0”时,减小(或不变)编码器索引。
在一些实施例中,对于编码器概率的更新方法,当编码二进制语法元素之后,对应编码器的概率值也随之更新。若编码器的概率值表示符号“0”的概率,则当前编码的二进制语法元素为0时,增大(或不变)编码器的概率值,当前编码的二进制语法元素为1时,减小(或不变)编码器的概率值;若编码器的概率值表示符号“1”的概率,则当前编码的二进制语法元素为0时,减小(或不变)编码器的概率值,当前编码的二进制语法元素为0时,增大(或不变)编码器的概率值;
在GPCC中,编码器的概率值表示符号“0”的概率,编码符号“0”之后其概率值增大(或不变),编码符号“1”之后,其概率值减小(或不变),更新方式如下公式:
其中,binVal表示编码的符号,p
old(0)、p
new(0)表示编码器更新前后存储的符号“0”的概率值,α表示衰减因子,具体实现时可以采用查找表的形式
假设编码器的概率以16比特精度表示,则公式(9)可以近似转化为公式(10),
其中,diracLut为查找表,如表2所示:
表2 diracLut[i+j]取值
其中,i+j的取值可以为0-255。
可以理解的是,映射关系查找表进行更新的目的是为当前上下文状态寻找与概率更接近的编码器,相关技术的做法是假设编码器维护的概率值会随着编码器索引单调递增或递减。然而在编码的过程中,由于编码器维护的概率值与映射关系查找表都存在更新过程,且在概率值更新的过程中,可能会存在不同编码器维护的概率值出现重叠,和/或概率值跳跃过大等情况,无法保证在任一时刻下编码器维护的概率值均会随着编码器索引单调递增或递减。
由此可见,常见的点云编解码技术,由于编码器维护的概率值与映射关系查找表都存在更新过程,因此在无法保证在任一时刻下编码器维护的概率值均会随着编码器索引单调递增或递减的情况下,会导致编码过程中无法选择最匹配的编码器进行编码,进而降低了编解码性能。
为了解决上述问题,在本申请的实施例中,在编码端,基于第一预设条件,确定候选数据处理模式;确定待编码语法元素对应的数据处理模式参数;基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;根据目标数据处理模式对待编码语法元素的取值进行编码,将所得到的编码比特写入码流。在解码端,基于第一预设条件,确定候选数据处理模式;确定待解码语法元素对应的数据处理模式参数;基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;根据目标数据处理模式解码待解码语法元素,确定待解码语法元素的取值。由此可见,在本申请的实施例中,可以根据待处理的码语法元素来确定对应的数据处理模式参数,进而可以从候选数据处理模式中确定出目标数据处理模式,最后根据目标数据处理模式对语法元素进行编解码处理。其中,由于候选数据处理模式是根据第一预设条件确定的,使得在编码过程中能够从候选数据处理模式中选择出最佳的目标编码器进行编码,从而能够在编解码过程中选择最匹配的数据处理模式,进而降低了编解码性能。
本申请实施例中的点云编码方法,可以应用在如图2所示的熵编码部分。另外,本申请实施例中的点云解码方法,还可以应用在如图3所示的熵解码部分。也就是说,本申请实施例中的点云编解码方法,既可以应用于编码器,也可以应用于解码器,甚至还可以同时应用于编码器和解码器,但是本申请实施例不作具体限定。
下面将结合附图对本申请各实施例进行详细说明。
在本申请的一实施例中,参见图10,其示出了本申请实施例提供的一种解码方法的流程示意图。如图10所示,该方法可以包括:
步骤101、基于第一预设条件,确定候选数据处理模式。
需要说明的是,本申请实施例的解码方法应用于解码器(或称为“熵解码器”)。另外,该解码方法具体可以是指一种点云解码方法,或者说是一种点云熵解码方法。基于该方法,可以实现待解码语法元素的解码过程,并且节省码率。
还需要说明的是,在本申请的实施例中,数据处理模式可以是用于实现解码功能。也就是说,这里的数据处理模式可以看作是解码方法/熵解码方法,或者也可以看作是解码器/熵解码器。
应理解,在本申请的实施例中,候选数据处理模式的数量可以有多个,即候选解码器的数量有多个;后续从这多个候选解码器中选择出目标解码器,使用所选择的目标解码器对待解码语法元素进行解码处理。另外,在本申请的实施例中,候选数据处理模式的数量也可以仅有一个,即候选解码器仅有一个;这时候可以通过设置候选解码器的不同配置参数,然后使用目标配置参数所对应的解码器对待解码语法元素进行解码处理,对此并不作任何限定。
还应理解,在本申请的实施例中,第一预设条件可以是与门限参数(例如概率上限值和/或概率下限值)有关,通过第一预设条件所确定的候选数据处理模式,在解码过程中能够提升解码效率。
在一些实施例中,基于第一预设条件,确定候选数据处理模式,可以包括:根据第一预设条件,确定候选数据处理模式的门限参数。
需要说明的是,在本申请的实施例中,门限参数可以指示候选数据处理模式的概率门限值,其中,概率门限值包括:概率上限值和/或概率下限值。也就是说,本申请实施例可以设置候选数据处理模式的概率门限值,以使得候选数据处理模式的概率门限值能够满足递减或者递增的顺序。
进一步地,在一些实施例中,可以选择根据候选数据处理模式的门限参数,确定排序指示参数。
还需要说明的是,在本申请的实施例中,排序指示参数的取值包括第一预设值和第二预设值;其中, 第一预设值指示门限参数递减的顺序,第二预设值指示门限参数递增的顺序。
示例性地,假定候选数据处理模式的数量有K个,这K个候选数据处理模式的概率下限值依次为L
0、L
1…L
i…L
K-1,那么对于第一预设值,概率下限值递减的顺序为:L
0≥L
1≥…≥L
i≥…≥L
K-1;对于第二预设值,概率下限值递增的顺序为:L
0≤L
1≤…≤L
i≤…≤L
K-1。这K个候选数据处理模式的概率上限值依次为U
0、U
1…U
i…U
K-1,那么对于第一预设值,概率上限值递减的顺序为:U
0≥U
1≥…≥U
i≥…≥U
K-1;对于第二预设值,概率上限值递增的顺序为:U
0≤U
1≤…≤U
i≤…≤U
K-1。
在一些实施例中,i=1,2,…,K-1,K表示候选数据处理模式的个数。
在一种可能的实现方式中,在确定排序指示参数的取值时,还可以确定候选数据处理模式的第三预设值和第四预设值;根据第三预设值和第四预设值,确定排序指示参数的取值。
应理解,在本申请的实施例中,第三预设值指示候选数据处理模式的概率值更新顺序,第四预设值指示候选数据处理模式的索引值更新顺序。
也就是说,第三预设值可以指示候选解码器概率更新方向,第四预设值可以指示候选解码器索引映射表更新方向。这样,根据候选解码器概率更新方向和候选解码器索引映射表更新方向,能够确定出门限参数(如概率下限值、概率上限值等)是递减的顺序还是递增的顺序。
还应理解,在本申请的实施例中,对于第三预设值和第四预设值而言,在一种可能的实现方式中,如果第三预设值的取值等于1,则表示候选解码器概率更新方向为递减方向;如果第三预设值的取值等于0,则表示候选解码器概率更新方向为递增方向;以及如果第四预设值的取值等于1,则表示候选解码器索引映射表更新方向为递减方向;如果第三预设值的取值等于0,则表示候选解码器索引映射表更新方向为递增方向。
在另一种可能的实现方式中,如果第三预设值的取值等于0,则表示候选解码器概率更新方向为递减方向;如果第三预设值的取值等于1,则表示候选解码器概率更新方向为递增方向;以及如果第四预设值的取值等于0,则表示候选解码器索引映射表更新方向为递减方向;如果第三预设值的取值等于1,则表示候选解码器索引映射表更新方向为递增方向。
在一种具体的实施例中,在根据第三预设值和第四预设值,确定排序指示参数的取值时,若第三预设值与第四预设值的取值不同,则确定排序指示参数的取值为第一预设值;若第三预设值与第四预设值的取值相同,则确定排序指示参数的取值为第二预设值。
还需要说明的是,在本申请的实施例中,如果第三预设值与第四预设值的取值不同,意味着候选解码器概率更新方向与候选解码器索引映射表更新方向相反,这时候排序指示参数的取值为第一预设值,即排序指示参数指示门限参数递减的顺序,具体为L
0≥L
1≥…≥L
i≥…≥L
K-1,U
0≥U
1≥…≥U
i≥…≥U
K-1;如果第三预设值与第四预设值的取值相同,意味着候选解码器概率更新方向与候选解码器索引映射表更新方向相同,这时候排序指示参数的取值为第二预设值,即排序指示参数指示门限参数递增的顺序,具体为:L
0≤L
1≤…≤L
i≤…≤L
K-1,U
0≤U
1≤…≤U
i≤…≤U
K-1。
还应理解,在本申请的实施例中,如果候选解码器的概率值与索引映射表中对应的索引值都增大(或不变)或者都减小(或不变),那么可以确定候选解码器概率更新方向与候选解码器索引映射表更新方向相同;反之,则确定候选解码器概率更新方向与候选解码器索引映射表更新方向相反。
在另一种可能的实现方式中,在确定排序指示参数的取值时,还可以确定候选数据处理模式对应的第一参数;根据第一参数,确定排序指示参数的取值。
应理解,在本申请的实施例中,候选数据处理模式对应的第一参数可以是指候选解码器存储的概率值所对应的符号(Symbol)。示例性地,第一参数可以指示具体的数值,例如0或1的数值;或者第一参数也可以指示二进制算术解码的符号,例如0或1的符号,这里并不作任何限定。
在一种具体的实施例中,在根据第一参数,确定排序指示参数的取值时,若第一参数指示第一数据,则确定排序指示参数的取值为第一预设值;若第一参数指示第二数据,则确定排序指示参数的取值为第二预设值。
还应理解,在本申请的实施例中,第一数据可以是符号“0”,第二数据可以是符号“1”。例如,如果候选解码器存储的概率值为16比特精度的符号“0”的概率值,那么排序指示参数的取值为第一预设值,即第五排序指示参数可以指示概率下限值递减的顺序,具体为:L
0≥L
1≥…≥L
i≥…≥L
K-1,以及指示概率上限值递减的顺序,具体为:U
0≥U
1≥…≥U
i≥…≥U
K-1;如果候选解码器存储的概率值为16比特精度的符号“1”的概率值,那么排序指示参数的取值为第二预设值,即第六排序指示参数可以指示概率下限值递增的顺序,具体为:L
0≤L
1≤…≤L
i≤…≤L
K-1,以及指示概率上限值递增的顺序,具体为:U
0≤U
1≤…≤U
i≤…≤U
K-1。
如此,不仅可以根据候选解码器概率更新方向和候选解码器索引映射表更新方向,能够确定出门限参数是递减的顺序还是递增的顺序;另外,根据候选解码器存储的概率值所对应的符号(Symbol),也 能够确定出门限参数是递减的顺序还是递增的顺序。另外,这里的门限参数可以包括概率下限值和/或概率上限值。
在又一种可能的实现方式中,该方法还可以包括:在排序指示参数的取值为第一预设值时,若门限参数为概率下限值,则L
i-1大于或等于L
i;若门限参数为概率上限值,则U
i-1大于或等于U
i;
在排序指示参数的取值为第二预设值时,若门限参数为概率下限值,则L
i-1小于或等于L
i;若门限参数为概率上限值,则U
i-1小于或等于U
i。
在本申请的实施例中,L
i为候选数据处理模式的概率下限值,U
i为候选数据处理模式的概率上限值,i=1,2,…,K-1,K表示候选数据处理模式的个数。
示例性地,在排序指示参数的取值为第一预设值时,L
0≥L
1≥…≥L
i≥…≥L
K-1,U
0≥U
1≥…≥U
i≥…≥U
K-1;在排序指示参数的取值为第二预设值时,L
0≤L
1≤…≤L
i≤…≤L
K-1,U
0≤U
1≤…≤U
i≤…≤U
K-1。
在又一种可能的实现方式中,该方法还可以包括:在候选数据处理模式中,确定当前候选数据处理模式的概率下限值与相邻候选数据处理模式的概率上限值相同,以及确定当前候选数据处理模式的概率上限值与相邻候选数据处理模式的概率下限值相同。
在一种具体的实施例中,若第三预设值与第四预设值的取值不同,则确定L
i-1=U
i;若第三预设值与第四预设值的取值相同,则确定U
i-1=L
i。
在本申请的实施例中,对于候选解码器中的概率上限值和概率下限值,需要满足:当前候选解码器的概率下限值与相邻候选解码器的概率上限值相同,以及当前候选解码器的概率上限值与相邻候选解码器的概率下限值相同。
示例性地,如果候选解码器概率更新方向与候选解码器索引映射表更新方向相反,那么L
i-1与U
i应满足:L
i-1=U
i;如果候选解码器概率更新方向与候选解码器索引映射表更新方向相同,那么L
i-1与U
i应满足:U
i-1=L
i。
也就是说,在本申请的实施例中,可以为不同的候选数据处理模式(一个或多个解码器)更新概率值设置高低门限值(即概率上限值和概率下限值)。
示例性的,在本申请中,对于被使用的K个解码器,其索引值i为0~K-1。为各解码器设置概率更新双门限,包括低门限L
i以及高门限U
i,其中,应满足L
i≤U
i。以第i个解码器为例,其概率值P
i被限制在双门限区间内,P
i=Clip3(L
i,U
i,P
i),其中Clip3(x,y,z)为截断计算函数,其计算公式如下:
其中,i=0,1,2,…,K-1,K表示候选数据处理模式的个数。
当解码二进制符号(待解码语法元素)时,若解码器的概率值P
i与映射表中对应的索引i都增大(或不变),则认为解码器概率更新方向与索引映射表更新方向相同,反之则认为更新方向相反。
其中,若解码器概率更新方向与索引映射表更新方向相反,则需要满足L
0≥L
1≥…≥L
i≥…≥L
K-2≥L
K-1、U
0≥U
1≥…≥U
i≥…≥U
K-2≥U
K-1,L
i=U
i+1(0≤i≤K-2),U
i=L
i-1(1≤i≤K)。
其中,若解码器概率更新方向与索引映射表更新方向相同,则需要满足L
0≤L
1≤…≤L
i≤…≤L
K-2≤L
K-1、U
0≤U
1≤…≤U
i≤…≤U
K-2≤U
K-1,U
i=L
i+1(0≤i≤K-2),L
i=U
i-1(1≤i≤K)。
示例性的,假设解码器存储的概率值为16比特精度的符号“0”的概率值,且K的取值为32,解码器概率更新方向与索引映射表更新方向相反,因此低门限L
i以及高门限U
i满足L
0≥L
1≥…≥L
i≥…≥L
K-2≥L
K-1、U
0≥U
1≥…≥U
i≥…≥U
K-2≥U
K-1,端点处L
i=U
i+1(0≤i≤K-2),U
i=L
i-1(1≤i≤K)。K=32个解码器的高门限与低门限的初始值
可以设置为表3所示。
表3
其中,低门限L
i以及高门限U
i具体设置过程可以参照表4。
表4
即可以根据上述表3,将低门限L
i设置为第i个二维数组中的第二个值,同时可以将高门限U
i设置为第i个二维数组中的第一个值。
步骤102、确定待解码语法元素对应的数据处理模式参数。
步骤103、基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式。
需要说明的是,在本申请的实施例中,待解码语法元素具体是指解码端待执行解码的语法元素。其中,这里的语法元素可以是指二进制算术解码的符号,也可以是指任何写入码流中的语法元素,这里并不作任何限定。
还需要说明的是,在本申请的实施例中,数据处理模式参数具体是指候选数据处理模式对应的索引值。在一些实施例中,确定待解码语法元素对应的数据处理模式参数,可以包括:确定待解码语法元素的上下文信息;根据上下文信息和预设映射表,确定数据处理模式参数。
可以理解的是,在本申请的实施例中,预设映射表可以为映射关系查找表,在解码侧,预设映射表可以为候选解码器索引映射表。
进一步地,在一些实施例中,根据上下文信息和预设映射表,确定数据处理模式参数,可以包括:根据上下文信息,确定待解码语法元素的上下文状态;根据上下文状态和预设映射表,确定数据处理模式参数。
需要说明的是,在本申请的实施例中,预设映射表可以用于表征上下文状态与数据处理模式参数之间的映射关系。例如,基于预设映射表,可以确定出任一上下文状态(上下文信息)对应的解码器的索引值。
还需要说明的是,在本申请的实施例中,根据信息的重要程度,上下文信息可以分为主要信息与次要信息。其中,对于主要信息,是不会被减少的;而对于次要信息,是有可能被减少的。上下文信息经过动态减少过程后得到的是由不被减少的上下文信息所构成的上下文状态(用D表示)。每个上下文状态D都会有计数器N来记录当前状态D被访问的次数。如果N大于预设阈值,动态减少过程就会被更新,即后续待解码的语法元素会考虑更多的次要信息来组成新的上下文状态D。
这样,在确定出上下文状态D之后,通过预设映射表,即可确定出待解码语法元素对应的数据处理模式参数。其中,预设映射表中记录了多组上下文状态与数据处理模式参数之间的映射关系,而且数据处理模式参数与数据处理模式之间也具有对应关系,从而能够确定出待解码语法元素对应的目标数据处理模式(即目标解码器)。
进一步地,在一些实施例中,该方法还可以包括:根据待解码语法元素的取值,更新预设映射表。
在一种具体的实施例中,更新预设映射表,可以包括:
若待解码语法元素的取值为第五预设值,则减少预设映射表中的数据处理模式参数;
若待解码语法元素的取值为第六预设值,则增大预设映射表中的数据处理模式参数。
需要说明的是,在本申请的实施例中,第五预设值和第六预设值不同,而且第五预设值和第六预设值可以是参数形式,也可以是数字形式。具体地,待解码语法元素可以是写入在概述(profile)中的参数,也可以是一个标志(flag)的取值,这里对此不作具体限定。
示例性地,第五预设值可以设置为1,第六预设值可以设置为0;或者,第五预设值可以设置为0,第六预设值可以设置为1;或者,第五预设值可以设置为true,第六预设值可以设置为false;或者,第五预设值可以设置为false,第六预设值可以设置为true。其中,在本申请的实施例中,第五预设值为0,第六预设值为1,但是对此不作具体限定。
还需要说明的是,在本申请的实施例中,在每次解码完成一个语法元素之后,还可以根据语法元素的取值对预设映射表中的数据处理模式参数进行调整。示例性地,如果当前解码的语法元素的取值为0,那么可以减小(或不变)数据处理模式参数;如果当前解码的语法元素的取值为1,那么可以增大(或不变)数据处理模式参数,以实现对预设映射表的更新。
在一些实施例中,解码器索引映射表(即预设映射表)提供了上下文状态与解码器索引值的映射关系。通过该映射表,可以得到待解码的语法元素在任一上下文状态下应该使用的解码器索引值。每次解码完一个语法元素之后,会根据该语法元素的结果对映射表中上下文状态D与解码器索引值的映射关 系进行调整。
示例性的,解码器索引映射表可以存储8比特的解码器索引值,当前解码的符号为“1”时,增大(或不变)解码器索引值;当前解码的符号为“0”时,减小(或不变)解码器索引值。
具体更新方式如下,其中stateVal为解码器索引值,CtxMap为解码器索引映射表,ctxMapIdx为上下文状态D,binVal为当前解码的符号。ctxMapTransition为查询表,如表1所示,其示出了ctxMapTransition[i]的取值。
示例性地,具体更新过程的描述如下:
stateVal=CtxMap[ctxMapIdx]
if(binVal)
CtxMap[ctxMapIdx]+=ctxMapTransition[(255-stateVal)>>4];
else
CtxMap[ctxMapIdx]-=ctxMapTransition[stateVal>>4]。
在得到stateVal之后,可以得到当前解码的符号(语法元素)所对应的解码器。其中,解码器索引值可以与解码器一一对应,也可以进一步映射,即多个解码器索引值对应一个解码器,以得到最终的解码器索引值。
示例性地,可以增加二次映射的过程,即以得到的二进制解码器索引值作为中间值(中间索引值),进一步确定真实索引值。例如,需要将stateVal右移2位,得到最终的解码器索引值。
步骤104、根据目标数据处理模式解码待解码语法元素,确定待解码语法元素的取值。
需要说明的是,在本申请的实施例中,在确定出目标数据处理模式(即目标解码器)之后,可以根据目标数据处理模式解码待解码语法元素,以得到待解码语法元素的取值。
还需要说明的是,在本申请的实施例中,在解码待解码语法元素之后,还需要确定目标解码器对应的概率值并进行概率值更新。因此,在一些实施例中,该方法还可以包括:根据待解码语法元素的取值,确定目标数据处理模式的第一概率值;对目标数据处理模式的第一概率值进行更新,确定目标数据处理模式的第二概率值。
需要说明的是,在本本申请的实施例中,在更新后获得目标数据处理模式的第二概率值之后,可以进一步对目标数据处理模式的第二概率值进行修正,确定目标数据处理模式的目标概率值。
在一些实施例中,对目标数据处理模式的第一概率值进行更新,确定目标数据处理模式的第二概率值,可以包括:确定目标数据处理模式对应的第二参数;根据第二参数和待解码语法元素的取值更新目标数据处理模式的第一概率值,确定目标数据处理模式的第二概率值。
应理解,在本申请的实施例中,目标数据处理模式对应的第二参数可以是指目标解码器存储的概率值所对应的符号(Symbol)。示例性地,第二参数可以指示具体的数值,例如0或1的数值;或者第二参数也可以指示二进制算术解码的符号,例如0或1的符号,这里并不作任何限定。
还应理解,在本申请的实施例中,在解码待解码语法元素之后,如果目标解码器的概率值表示第二参数的概率,那么根据第二参数所指示的数据,可以增大或者减小目标解码器的概率值。
在一种可能的实现方式中,根据第二参数和待解码语法元素的取值更新目标数据处理模式的第一概率值,可以包括:
若第二参数指示第一数据,且待解码语法元素的取值为第五预设值,则增大目标数据处理模式的第一概率值;
若第二参数指示第一数据,且待解码语法元素的取值为第六预设值,则减小目标数据处理模式的第一概率值。
或者,在另一种可能的实现方式中,根据第二参数和待解码语法元素的取值更新目标数据处理模式的第一概率值,可以包括:
若第二参数指示第二数据,且待解码语法元素的符号为第五预设值,则减小目标数据处理模式的第一概率值;
若第二参数指示第二数据,且待解码语法元素的符号为第六预设值,则增大目标数据处理模式的第一概率值。
示例性地,如果目标解码器的概率值表示符号“0”的概率,那么当前解码的语法元素为0时,增大(或不变)目标解码器的概率值,当前解码的语法元素为1时,减小(或不变)目标解码器的概率值;如果解码器的概率值表示符号“1”的概率,那么当前解码的语法元素为0时,减小(或不变)目标解码器的概率值,当前解码的语法元素为0时,增大(或不变)目标解码器的概率值。
需要说明的是,在本申请的实施例中,在进行第一概率值的更新时,可以选择按照预设衰减因子增大第一概率值;或者,按照预设衰减因子减小第一概率值。
示例性的,在本申请的实施例中,假设解码器的概率值表示符号“0”的概率,解码符号“0”之后其概率值增大(或不变),解码符号“1”之后,其概率值减小(或不变),更新第一概率值的方式可以如公式(9),其中,α表示衰减因子。
需要说明的是,在本申请的实施例中,在进行第一概率值的更新时,可以选择按照第一预存查找表增大第一概率值;或者,按照第一预存查找表减小第一概率值。
示例性的,在本申请的实施例中,更新第一概率值的方式可以采用查找表的形式,若概率以16比特精度表示,则公式(9)可以近似转化为公式(10),其中diracLut为查找表,如表2所示。
示例性的,在本申请的实施例中,对于被使用的K个解码器,其索引值i为0~K-1。在解码过程中,目标解码器的概率值P
i随解码的二进制符号binVal(待解码语法元素的取值)的累积而不断更新。假设当前为第j轮更新,则当前概率值(第二概率值)为
其更新前概率值(第一概率值)为
概率更新过程可以采用如表5所示的算法。其中diracLut[]如表2所示,即通过查表2可以快速得到更新概率的调整值(更新幅度)。
表5
需要说明的是,在本申请的实施例中,进行第一概率值的更新过程中所使用的更新幅度△P
i
j,可以为固定值,也可以为动态取值,可以与解码器的索引值i相关,也可以与解码器的索引值i无关,本申请不进行具体限定。
进一步地,在一些实施例中,还可以使用目标数据处理模式的门限参数对目标数据处理模式的第二概率值进行修正,确定目标数据处理模式的目标概率值。
在一种具体的实施例中,对目标数据处理模式的第二概率值进行修正,确定目标数据处理模式的目标概率值,可以包括:
若第二概率值小于目标数据处理模式的概率下限值,则将目标概率值设置为目标数据处理模式的概率下限值;
若第二概率值大于目标数据处理模式的概率上限值,则将目标概率值设置为目标数据处理模式的概率上限值;
若第二概率值大于或等于概率下限值且小于或等于概率上限值,则将目标概率值设置为第二概率值。
需要说明的是,在本申请的实施例中,目标数据处理模式的第二概率值可以用P
i表示,那么对于P
i可以设置两个门限值,概率上限值(高门限)U
i和概率下限值(低门限)L
i,应满足L
i≤U
i。
示例性的,对于被使用的K个解码器,其索引值i为0~K-1。在解码过程中,目标解码器的概率值P
i随解码的二进制符号binVal(待解码语法元素的取值)的累积而不断更新。假设当前为第j轮更新,则当前概率值(第二概率值)为
其更新前概率值(第一概率值)为
在完成概率值的更新之后,根据解码器i的高低门限值
对第二概率值
进行修正。例如,
其中,Clip3(x,y,z)为截断计算函数。
进一步地,本申请的实施例中,在对目标数据处理模式的第一概率值进行更新处理,确定对应的第二概率值之后,还可以进一步根据第二概率值对目标数据处理模式的门限参数进行调整,进而可以确定调整后的门限参数。
也就是说,在本申请的实施例中,可以对数据处理模式的门限参数进行动态调整处理。例如,可以动态调整解码器的高低概率门限值(概率下限值或概率上限值)。
进一步地,在本申请的实施例中,在根据第二概率值对目标数据处理模式的门限参数进行调整,确 定调整后的门限参数时,若第二概率值小于目标数据处理模式的概率下限值,则减小目标数据处理模式的概率下限值,确定调整后的概率下限值;然后便可以根据调整后的概率下限值和目标数据处理模式的概率上限值,确定调整后的门限参数。
进一步地,在本申请的实施例中,在根据第二概率值对目标数据处理模式的门限参数进行调整,确定调整后的门限参数时,若第二概率值大于目标数据处理模式的概率上限值,则增大目标数据处理模式的概率上限值,确定调整后的概率上限值;然后可以根据调整后的概率上限值和目标数据处理模式的概率下限值,确定调整后的门限参数。
也就是说,在本申请的实施例中,在对目标数据处理模式的门限参数进行调整时,可以选择增大目标数据处理模式的概率上限值,然后通过调整前的概率下限值与调整后的概率上限值构成调整后的门限参数;或者,可以选择减小目标数据处理模式的概率下限值,然后通过调整前的概率上限值与调整后的概率下限值构成调整后的门限参数。
进一步地,在本申请的实施例中,在对目标数据处理模式的门限参数进行调整时,可以先按照第二预存查找表(如表6)确定调整幅度;其中,调整幅度用于对概率上限值进行增大处理,或者对概率下限值进行减小处理;然后可以根据调整幅度调整目标数据处理模式的门限参数。
需要说明的是,在本申请的实施例中,在对目标数据处理模式的门限参数进行调整时,选择的调整幅度可以包括对概率上限值进行增大处理的
还可以包括对概率下限值进行减小处理的
其中,调整幅度
可以相同,可以为固定值,或随解码器索引值i的大小动态取值。本申请不进行具体限定。
其中,若解码器i更新后的第二概率值大于解码器i更新前的高门限
则提高该高门限值,例如对高门限
增加
若解码器i更新后的概率值小于解码器i更新前的低门限
则降低该低门限值;,例如对低门限值
减小
若解码器i更新后的概率值在解码器i更新前的概率波动区间
内,则高低门限值均不做调整。
表6
进一步地,在本申请的实施例中,对调整后的门限参数进行修正处理,以确定目标数据处理模式的调整后的概率下限值与相邻候选数据处理模式的概率上限值相同;或者,确定目标数据处理模式的调整后的概率上限值与相邻候选数据处理模式的概率下限值相同。
需要说明的是,在本申请的实施例中,在对目标数据处理模式的门限参数进行调整之后,如果是减小了概率下限值,则需要保证目标数据处理模式的调整后的概率下限值与相邻候选数据处理模式的概率上限值相同;如果是增大了概率上限值,则需要保证目标数据处理模式的调整后的概率上限值与相邻候选数据处理模式的概率下限值相同。
也就是说,在本申请的实施例中,解码器中的概率上限值和概率下限值均可以动态更新调整,只需要保证更新之后的概率上限值和概率下限值仍能够满足:L
0≥L
1≥…≥L
i≥…≥L
K-1,U
0≥U
1≥…≥U
i≥…≥U
K-1;或者,L
0≤L
1≤…≤L
i≤…≤L
K-1,U
0≤U
1≤…≤U
i≤…≤U
K-1。
示例性的,在本申请的实施例中,为了确保调整高低门限值使得各解码器概率波动区间不重叠。当解码器概率更新方向与索引映射表更新方向相反时,若调整后的高门限值
大于相邻解码器的高门限值
则将高门限值
修正为
若调整后的低门限值
小于相邻解码器的低门限值
则将低门限值
修正为
具体参照如下公式:
进一步地,在本申请的实施例中,对目标数据处理模式的第一概率值进行更新时使用的更新幅度,大于对目标数据处理模式的门限参数进行调整时所使用的调整幅度。
也就是说,在本申请的实施例中,更新目标数据处理模式的概率值的幅度是大于调整目标数据处理模式的门限参数的幅度的,即主要针对目标数据处理模式的概率值进行更新,而仅仅对目标数据处理模式的门限参数进行微调,该调整幅度不应大于概率值的更新幅度。
示例性的,在本申请的实施例中,假设解码器(0~K-1)概率更新方向与索引映射表更新方向相反时,动态调整解码器i的双概率门限的具体流程可以参照表7:
表7
在修正的过程中,如果
大于对应的概率上限值
则修正
为
并动态调整解码器i高门限
例如使用幅度
对其进行增大处理,如果调整后的概率上限值
大于相邻解码器的概率上限值
那么可以进一步将解码器i+1低门限
调整为
在修正的过程中,如果
大于对应的概率小限值
则修正
为
并动态调整解码器i低门限
为
例如使用幅度
对其进行减小处理,如果调整后的概率下限值
小于相邻解码器的概率下限值
那么可以进一步将解码器i-1高门限
调整为
进一步地,在本申请的实施例中,既可以选择先对目标数据处理模式的第二概率值进行修正处理,再利用第二概率值对目标数据处理模式的门限参数进行调整处理,获得调整后的门限参数;还可以先根据第二概率值对目标数据处理模式的门限参数进行调整,确定调整后的门限参数;然后再根据调整后的门限参数对第二概率值进行修正,确定目标数据处理模式的目标概率值。
也就是说,在本申请的实施例中,既可以使用目标数据处理模式的调整前的门限参数来修正对应的第二概率值,也可以使用目标数据处理模式的调整后的门限参数来修正对应的第二概率值。本申请不进行具体限定。
示例性的,在本申请的实施例中,在确定待解码语法元素的取值之后,可以先根据待解码语法元素的取值,确定目标数据处理模式的第一概率值;然后对目标数据处理模式的第一概率值进行更新,确定目标数据处理模式的第二概率值;接着可以根据第二概率值对目标数据处理模式的门限参数进行调整,确定调整后的门限参数;最后便可以根据调整后的门限参数对第二概率值进行修正,确定目标数据处理模式的目标概率值。
综上所示,通过上述步骤101至步骤104所提出的解码方法,基于第一预设条件,可以为不同的候选解码器分别设置对应的概率上限值和概率下限值,其中,该概率上限值和概率下限值可以在解码的过程中进行动态调整。同时,也可以对解码器的概率值进行动态调整,在调整的过程中还可以利用对应的概率上限值和概率下限值对概率值进行限制和修正。
示例性的,图11为本申请提出的动态调整方案的实现示意图一,如图11所示,基于第一预设条件,可以先初始化候选解码器(候选数据处理模式)的初始概率值P
i
0和对应的高低门限值
和
在根据上下文状态确定待解码语法元素对应的解码器索引(数据处理模式参数)之后,可以利用解码器索引所指示的目标解码器(目标数据处理模式)来确定待解码语法元素的取值(binVal),然后可以根据待解码语法元素的取值来更新对应的目标解码器的概率值,获得第二概率值,接着可以对第二概率值和高低门限值分别进行动态调整处理。
可以理解的是,在本申请的实施例中,第一预设条件还可以对候选解码器(候选数据处理模式)的初始概率值进行设置。其中,基于第一预设条件所确定的候选解码器的初始概率值可以为对应的概率上限值以及概率下限值范围之内的任意数值。
进一步地,在本申请的实施例中,图11中的动态调整部分,在对第二概率值和高低门限值分别进行动态调整处理时,既可以先根据更新处理后获得的第二概率值对相应的门限参数(高低门限值)进行调整,确定调整后的门限参数,然后再利用调整后的门限参数对第二概率值进行修正,获得修正后的目标概率值。也可以先利用门限参数对更新处理后获得的第二概率值进行修正,获得修正后的目标概率值,然后再根据第二概率值对相应的门限参数进行调整,确定调整后的门限参数。
需要说明的是,在本申请的实施例中,与相关技术相比,本申请实施例提出的解码方法,在无损条件下,八叉树几何编码码流性能对比如下表8所示。
表8
序列 | bpip ratio[%] |
basketball_player_vox11_00000200 | 98.5% |
dancer_vox11_00000001 | 98.5% |
facade_00064_vox11 | 98.5% |
longdress_vox10_1300 | 98.6% |
loot_vox10_1200 | 98.5% |
queen_0200 | 98.6% |
redandblack_vox10_1550 | 98.7% |
soldier_vox10_0690 | 98.5% |
thaidancer_viewdep_vox12 | 98.6% |
average | 98.6% |
可以看出,本申请实施例提出的解码方法在这些数据上的几何码流上平均有1.4%左右的增益,带来了编解码比特的节省。
本实施例提供了一种解码方法,编码器基于第一预设条件,确定候选数据处理模式;确定待编码语法元素对应的数据处理模式参数;基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;根据目标数据处理模式对待编码语法元素的取值进行编码,将所得到的编码比特写入码流。由此可见,在本申请的实施例中,可以根据待处理的码语法元素来确定对应的数据处理模式参数,进而可以从候选数据处理模式中确定出目标数据处理模式,最后根据目标数据处理模式对语法元素进行编解码处理。其中,由于候选数据处理模式是根据第一预设条件确定的,使得在编码过程中能够从候选数据处理模式中选择出最佳的目标编码器进行编码,从而能够在编解码过程中选择最匹配的数据处理模式,进而降低了编解码性能。
在本申请的另一实施例中,参见图12,其示出了本申请实施例提供的一种编码方法的流程示意图。如图12所示,该方法可以包括:
步骤201、基于第一预设条件,确定候选数据处理模式。
需要说明的是,本申请实施例的编码方法应用于编码器(或称为“熵编码器”)。另外,该编码方法具体可以是指一种点云编码方法,或者说是一种点云熵编码方法。基于该方法,可以实现待编码语法元素的编码过程,并且节省码率。
还需要说明的是,在本申请的实施例中,数据处理模式可以是用于实现编码功能。也就是说,这里的数据处理模式可以看作是编码方法/熵编码方法,或者也可以看作是编码器/熵编码器。
应理解,在本申请的实施例中,候选数据处理模式的数量可以有多个,即候选编码器的数量有多个;后续从这多个候选编码器中选择出目标编码器,使用所选择的目标编码器对待编码语法元素的取值进行编码处理。另外,在本申请的实施例中,候选数据处理模式的数量也可以仅有一个,即候选编码器仅有一个;这时候可以通过设置候选编码器的不同配置参数,然后使用目标配置参数所对应的编码器对待编码语法元素的取值进行编码处理,对此并不作任何限定。
还应理解,在本申请的实施例中,第一预设条件可以是与门限参数(例如概率上限值和/或概率下限值)有关,通过第一预设条件所确定的候选数据处理模式,在编码过程中能够提升编码效率。
在一些实施例中,基于第一预设条件,确定候选数据处理模式,可以包括:根据第一预设条件,确定候选数据处理模式的门限参数。
需要说明的是,在本申请的实施例中,门限参数可以指示候选数据处理模式的概率门限值,其中,概率门限值包括:概率上限值和/或概率下限值。也就是说,本申请实施例可以设置候选数据处理模式的概率门限值,以使得候选数据处理模式的概率门限值能够满足递减或者递增的顺序。
进一步地,在一些实施例中,可以选择根据候选数据处理模式的门限参数,确定排序指示参数。
还需要说明的是,在本申请的实施例中,排序指示参数的取值包括第一预设值和第二预设值;其中,第一预设值指示门限参数递减的顺序,第二预设值指示门限参数递增的顺序。
示例性地,假定候选数据处理模式的数量有K个,这K个候选数据处理模式的概率下限值依次为L
0、L
1…L
i…L
K-1,那么对于第一预设值,概率下限值递减的顺序为:L
0≥L
1≥…≥L
i≥…≥L
K-1;对于第二预设值,概率下限值递增的顺序为:L
0≤L
1≤…≤L
i≤…≤L
K-1。这K个候选数据处理模式的概率上限值依次为U
0、U
1…U
i…U
K-1,那么对于第一预设值,概率上限值递减的顺序为:U
0≥U
1≥…≥U
i≥…≥U
K-1;对于第二预设值,概率上限值递增的顺序为:U
0≤U
1≤…≤U
i≤…≤U
K-1。
在一些实施例中,i=1,2,…,K-1,K表示候选数据处理模式的个数。
在一种可能的实现方式中,在确定排序指示参数的取值时,还可以确定候选数据处理模式的第三预设值和第四预设值;根据第三预设值和第四预设值,确定排序指示参数的取值。
应理解,在本申请的实施例中,第三预设值指示候选数据处理模式的概率值更新顺序,第四预设值指示候选数据处理模式的索引值更新顺序。
也就是说,第三预设值可以指示候选编码器概率更新方向,第四预设值可以指示候选编码器索引映射表更新方向。这样,根据候选编码器概率更新方向和候选编码器索引映射表更新方向,能够确定出门限参数(如概率下限值、概率上限值等)是递减的顺序还是递增的顺序。
还应理解,在本申请的实施例中,对于第三预设值和第四预设值而言,在一种可能的实现方式中,如果第三预设值的取值等于1,则表示候选编码器概率更新方向为递减方向;如果第三预设值的取值等于0,则表示候选编码器概率更新方向为递增方向;以及如果第四预设值的取值等于1,则表示候选编码器索引映射表更新方向为递减方向;如果第三预设值的取值等于0,则表示候选编码器索引映射表更新方向为递增方向。
在另一种可能的实现方式中,如果第三预设值的取值等于0,则表示候选编码器概率更新方向为递减方向;如果第三预设值的取值等于1,则表示候选编码器概率更新方向为递增方向;以及如果第四预设值的取值等于0,则表示候选编码器索引映射表更新方向为递减方向;如果第三预设值的取值等于1,则表示候选编码器索引映射表更新方向为递增方向。
在一种具体的实施例中,在根据第三预设值和第四预设值,确定排序指示参数的取值时,若第三预设值与第四预设值的取值不同,则确定排序指示参数的取值为第一预设值;若第三预设值与第四预设值的取值相同,则确定排序指示参数的取值为第二预设值。
还需要说明的是,在本申请的实施例中,如果第三预设值与第四预设值的取值不同,意味着候选编码器概率更新方向与候选编码器索引映射表更新方向相反,这时候排序指示参数的取值为第一预设值,即排序指示参数指示门限参数递减的顺序,具体为L
0≥L
1≥…≥L
i≥…≥L
K-1,U
0≥U
1≥…≥U
i≥…≥U
K-1;如果第三预设值与第四预设值的取值相同,意味着候选编码器概率更新方向与候选编码器索引映射表更新方向相同,这时候排序指示参数的取值为第二预设值,即排序指示参数指示门限参数递增的顺序,具体为:L
0≤L
1≤…≤L
i≤…≤L
K-1,U
0≤U
1≤…≤U
i≤…≤U
K-1。
还应理解,在本申请的实施例中,如果候选编码器的概率值与索引映射表中对应的索引值都增大(或不变)或者都减小(或不变),那么可以确定候选编码器概率更新方向与候选编码器索引映射表更新方向相同;反之,则确定候选编码器概率更新方向与候选编码器索引映射表更新方向相反。
在另一种可能的实现方式中,在确定排序指示参数的取值时,还可以确定候选数据处理模式对应的第一参数;根据第一参数,确定排序指示参数的取值。
应理解,在本申请的实施例中,候选数据处理模式对应的第一参数可以是指候选编码器存储的概率值所对应的符号(Symbol)。示例性地,第一参数可以指示具体的数值,例如0或1的数值;或者第一参数也可以指示二进制算术编码的符号,例如0或1的符号,这里并不作任何限定。
在一种具体的实施例中,在根据第一参数,确定排序指示参数的取值时,若第一参数指示第一数据,则确定排序指示参数的取值为第一预设值;若第一参数指示第二数据,则确定排序指示参数的取值为第二预设值。
还应理解,在本申请的实施例中,第一数据可以是符号“0”,第二数据可以是符号“1”。例如,如果候选编码器存储的概率值为16比特精度的符号“0”的概率值,那么排序指示参数的取值为第一预设值,即第五排序指示参数可以指示概率下限值递减的顺序,具体为:L
0≥L
1≥…≥L
i≥…≥L
K-1,以及指示概率上限值递减的顺序,具体为:U
0≥U
1≥…≥U
i≥…≥U
K-1;如果候选编码器存储的概率值为16比特精度的符号“1”的概率值,那么排序指示参数的取值为第二预设值,即第六排序指示参数可以指示概率下限值递增的顺序,具体为:L
0≤L
1≤…≤L
i≤…≤L
K-1,以及指示概率上限值递增的顺序,具体为:U
0≤U
1≤…≤U
i≤…≤U
K-1。
如此,不仅可以根据候选编码器概率更新方向和候选编码器索引映射表更新方向,能够确定出门限参数是递减的顺序还是递增的顺序;另外,根据候选编码器存储的概率值所对应的符号(Symbol),也能够确定出门限参数是递减的顺序还是递增的顺序。另外,这里的门限参数可以包括概率下限值和/或概率上限值。
在又一种可能的实现方式中,该方法还可以包括:在排序指示参数的取值为第一预设值时,若门限参数为概率下限值,则L
i-1大于或等于L
i;若门限参数为概率上限值,则U
i-1大于或等于U
i;
在排序指示参数的取值为第二预设值时,若门限参数为概率下限值,则L
i-1小于或等于L
i;若门限参数为概率上限值,则U
i-1小于或等于U
i。
在本申请的实施例中,L
i为候选数据处理模式的概率下限值,U
i为候选数据处理模式的概率上限值,i=1,2,…,K-1,K表示候选数据处理模式的个数。
示例性地,在排序指示参数的取值为第一预设值时,L
0≥L
1≥…≥L
i≥…≥L
K-1,U
0≥U
1≥…≥U
i≥…≥U
K-1;在排序指示参数的取值为第二预设值时,L
0≤L
1≤…≤L
i≤…≤L
K-1,U
0≤U
1≤…≤U
i≤…≤U
K-1。
在又一种可能的实现方式中,该方法还可以包括:在候选数据处理模式中,确定当前候选数据处理模式的概率下限值与相邻候选数据处理模式的概率上限值相同,以及确定当前候选数据处理模式的概率上限值与相邻候选数据处理模式的概率下限值相同。
在一种具体的实施例中,若第三预设值与第四预设值的取值不同,则确定L
i-1=U
i;若第三预设值与第四预设值的取值相同,则确定U
i-1=L
i。
在本申请的实施例中,对于候选编码器中的概率上限值和概率下限值,需要满足:当前候选编码器的概率下限值与相邻候选编码器的概率上限值相同,以及当前候选编码器的概率上限值与相邻候选编码器的概率下限值相同。
示例性地,如果候选编码器概率更新方向与候选编码器索引映射表更新方向相反,那么L
i-1与U
i应满足:L
i-1=U
i;如果候选编码器概率更新方向与候选编码器索引映射表更新方向相同,那么L
i-1与U
i应满足:U
i-1=L
i。
也就是说,在本申请的实施例中,可以为不同的候选数据处理模式(一个或多个编码器)更新概率值设置高低门限值(即概率上限值和概率下限值)。
示例性的,在本申请中,对于被使用的K个编码器,其索引值i为0~K-1。为各编码器设置概率更新双门限,包括低门限L
i以及高门限U
i,其中,应满足L
i≤U
i。以第i个编码器为例,其概率值P
i被限制在双门限区间内,P
i=Clip3(L
i,U
i,P
i),其中Clip3(x,y,z)为截断计算函数,其计算如公式(11)。
其中,i=0,1,2,…,K-1,K表示候选数据处理模式的个数。
当编码二进制符号(待编码语法元素)时,若编码器的概率值P
i与映射表中对应的索引i都增大(或不变),则认为编码器概率更新方向与索引映射表更新方向相同,反之则认为更新方向相反。
其中,若编码器概率更新方向与索引映射表更新方向相反,则需要满足L
0≥L
1≥…≥L
i≥…≥L
K-2≥L
K-1、U
0≥U
1≥…≥U
i≥…≥U
K-2≥U
K-1,L
i=U
i+1(0≤i≤K-2),U
i=L
i-1(1≤i≤K)。
其中,若编码器概率更新方向与索引映射表更新方向相同,则需要满足L
0≤L
1≤…≤L
i≤…≤L
K-2≤L
K-1、U
0≤U
1≤…≤U
i≤…≤U
K-2≤U
K-1,U
i=L
i+1(0≤i≤K-2),L
i=U
i-1(1≤i≤K)。
示例性的,假设编码器存储的概率值为16比特精度的符号“0”的概率值,且K的取值为32,编码器概率更新方向与索引映射表更新方向相反,因此低门限L
i以及高门限U
i满足L
0≥L
1≥…≥L
i≥…≥L
K-2≥L
K-1、U
0≥U
1≥…≥U
i≥…≥U
K-2≥U
K-1,端点处L
i=U
i+1(0≤i≤K-2),U
i=L
i-1(1≤i≤K)。K=32个编码器的高门限与低门限的初始值
可以设置为表3所示。
其中,低门限L
i以及高门限U
i具体设置过程可以参照表4。
即可以根据上述表3,将低门限L
i设置为第i个二维数组中的第二个值,同时可以将高门限U
i设置为第i个二维数组中的第一个值。
步骤202、确定待编码语法元素对应的数据处理模式参数。
步骤203、基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式。
需要说明的是,在本申请的实施例中,待编码语法元素具体是指编码端待执行编码的语法元素。其中,这里的语法元素可以是指二进制算术编码的符号,也可以是指任何写入码流中的语法元素,这里并不作任何限定。
还需要说明的是,在本申请的实施例中,数据处理模式参数具体是指候选数据处理模式对应的索引值。在一些实施例中,确定待编码语法元素对应的数据处理模式参数,可以包括:确定待编码语法元素的上下文信息;根据上下文信息和预设映射表,确定数据处理模式参数。
可以理解的是,在本申请的实施例中,预设映射表可以为映射关系查找表,在编码侧,预设映射表可以为候选编码器索引映射表。
进一步地,在一些实施例中,根据上下文信息和预设映射表,确定数据处理模式参数,可以包括:根据上下文信息,确定待编码语法元素的上下文状态;根据上下文状态和预设映射表,确定数据处理模式参数。
需要说明的是,在本申请的实施例中,预设映射表可以用于表征上下文状态与数据处理模式参数之间的映射关系。例如,基于预设映射表,可以确定出任一上下文状态(上下文信息)对应的编码器的索引值。
还需要说明的是,在本申请的实施例中,根据信息的重要程度,上下文信息可以分为主要信息与次要信息。其中,对于主要信息,是不会被减少的;而对于次要信息,是有可能被减少的。上下文信息经过动态减少过程后得到的是由不被减少的上下文信息所构成的上下文状态(用D表示)。每个上下文状 态D都会有计数器N来记录当前状态D被访问的次数。如果N大于预设阈值,动态减少过程就会被更新,即后续待编码的语法元素会考虑更多的次要信息来组成新的上下文状态D。
这样,在确定出上下文状态D之后,通过预设映射表,即可确定出待编码语法元素对应的数据处理模式参数。其中,预设映射表中记录了多组上下文状态与数据处理模式参数之间的映射关系,而且数据处理模式参数与数据处理模式之间也具有对应关系,从而能够确定出待编码语法元素对应的目标数据处理模式(即目标编码器)。
进一步地,在一些实施例中,该方法还可以包括:根据待编码语法元素的取值,更新预设映射表。
在一种具体的实施例中,更新预设映射表,可以包括:
若待编码语法元素的取值为第五预设值,则减少预设映射表中的数据处理模式参数;
若待编码语法元素的取值为第六预设值,则增大预设映射表中的数据处理模式参数。
需要说明的是,在本申请的实施例中,第五预设值和第六预设值不同,而且第五预设值和第六预设值可以是参数形式,也可以是数字形式。具体地,待编码语法元素可以是写入在概述(profile)中的参数,也可以是一个标志(flag)的取值,这里对此不作具体限定。
示例性地,第五预设值可以设置为1,第六预设值可以设置为0;或者,第五预设值可以设置为0,第六预设值可以设置为1;或者,第五预设值可以设置为true,第六预设值可以设置为false;或者,第五预设值可以设置为false,第六预设值可以设置为true。其中,在本申请的实施例中,第五预设值为0,第六预设值为1,但是对此不作具体限定。
还需要说明的是,在本申请的实施例中,在每次编码完成一个语法元素之后,还可以根据语法元素的取值对预设映射表中的数据处理模式参数进行调整。示例性地,如果当前编码的语法元素的取值为0,那么可以减小(或不变)数据处理模式参数;如果当前编码的语法元素的取值为1,那么可以增大(或不变)数据处理模式参数,以实现对预设映射表的更新。
在一些实施例中,编码器索引映射表(即预设映射表)提供了上下文状态与编码器索引值的映射关系。通过该映射表,可以得到待编码的语法元素在任一上下文状态下应该使用的编码器索引值。每次编码完一个语法元素之后,会根据该语法元素的结果对映射表中上下文状态D与编码器索引值的映射关系进行调整。
示例性的,编码器索引映射表可以存储8比特的编码器索引值,当前编码的符号为“1”时,增大(或不变)编码器索引值;当前编码的符号为“0”时,减小(或不变)编码器索引值。
具体更新方式如下,其中stateVal为编码器索引值,CtxMap为编码器索引映射表,ctxMapIdx为上下文状态D,binVal为当前编码的符号。ctxMapTransition为查询表,如表1所示,其示出了ctxMapTransition[i]的取值。
示例性地,具体更新过程的描述如下:
stateVal=CtxMap[ctxMapIdx]
if(binVal)
CtxMap[ctxMapIdx]+=ctxMapTransition[(255-stateVal)>>4];
else
CtxMap[ctxMapIdx]-=ctxMapTransition[stateVal>>4]。
在得到stateVal之后,可以得到当前编码的符号(语法元素)所对应的编码器。其中,编码器索引值可以与编码器一一对应,也可以进一步映射,即多个编码器索引值对应一个编码器,以得到最终的编码器索引值。
示例性地,可以增加二次映射的过程,即以得到的二进制编码器索引值作为中间值(中间索引值),进一步确定真实索引值。例如,需要将stateVal右移2位,得到最终的编码器索引值。
步骤204、根据目标数据处理模式对待编码语法元素的取值进行编码,将所得到的编码比特写入码流。
需要说明的是,在本申请实施例中,在确定出目标数据处理模式(即目标编码器)之后,可以根据目标数据处理模式对待编码语法元素的取值进行编码,并将所得到的编码比特写入码流。
还需要说明的是,在本申请的实施例中,在编码待编码语法元素之后,还需要确定目标编码器对应的概率值并进行概率值更新。因此,在一些实施例中,该方法还可以包括:根据待编码语法元素的取值,确定目标数据处理模式的第一概率值;对目标数据处理模式的第一概率值进行更新,确定目标数据处理模式的第二概率值。
需要说明的是,在本本申请的实施例中,在更新后获得目标数据处理模式的第二概率值之后,可以进一步对目标数据处理模式的第二概率值进行修正,确定目标数据处理模式的目标概率值。
在一些实施例中,对目标数据处理模式的第一概率值进行更新,确定目标数据处理模式的第二概率 值,可以包括:确定目标数据处理模式对应的第二参数;根据第二参数和待编码语法元素的取值更新目标数据处理模式的第一概率值,确定目标数据处理模式的第二概率值。
应理解,在本申请的实施例中,目标数据处理模式对应的第二参数可以是指目标编码器存储的概率值所对应的符号(Symbol)。示例性地,第二参数可以指示具体的数值,例如0或1的数值;或者第二参数也可以指示二进制算术编码的符号,例如0或1的符号,这里并不作任何限定。
还应理解,在本申请的实施例中,在编码待编码语法元素之后,如果目标编码器的概率值表示第二参数的概率,那么根据第二参数所指示的数据,可以增大或者减小目标编码器的概率值。
在一种可能的实现方式中,根据第二参数和待编码语法元素的取值更新目标数据处理模式的第一概率值,可以包括:
若第二参数指示第一数据,且待编码语法元素的取值为第五预设值,则增大目标数据处理模式的第一概率值;
若第二参数指示第一数据,且待编码语法元素的取值为第六预设值,则减小目标数据处理模式的第一概率值。
或者,在另一种可能的实现方式中,根据第二参数和待编码语法元素的取值更新目标数据处理模式的第一概率值,可以包括:
若第二参数指示第二数据,且待编码语法元素的符号为第五预设值,则减小目标数据处理模式的第一概率值;
若第二参数指示第二数据,且待编码语法元素的符号为第六预设值,则增大目标数据处理模式的第一概率值。
示例性地,如果目标编码器的概率值表示符号“0”的概率,那么当前编码的语法元素为0时,增大(或不变)目标编码器的概率值,当前编码的语法元素为1时,减小(或不变)目标编码器的概率值;如果编码器的概率值表示符号“1”的概率,那么当前编码的语法元素为0时,减小(或不变)目标编码器的概率值,当前编码的语法元素为0时,增大(或不变)目标编码器的概率值。
需要说明的是,在本申请的实施例中,在进行第一概率值的更新时,可以选择按照预设衰减因子增大第一概率值;或者,按照预设衰减因子减小第一概率值。
示例性的,在本申请的实施例中,假设编码器的概率值表示符号“0”的概率,编码符号“0”之后其概率值增大(或不变),编码符号“1”之后,其概率值减小(或不变),更新第一概率值的方式可以如公式(9),其中,α表示衰减因子。
需要说明的是,在本申请的实施例中,在进行第一概率值的更新时,可以选择按照第一预存查找表增大第一概率值;或者,按照第一预存查找表减小第一概率值。
示例性的,在本申请的实施例中,更新第一概率值的方式可以采用查找表的形式,若概率以16比特精度表示,则公式(9)可以近似转化为公式(10),其中diracLut为查找表,如表2所示。
示例性的,在本申请的实施例中,对于被使用的K个编码器,其索引值i为0~K-1。在编码过程中,目标编码器的概率值P
i随编码的二进制符号binVal(待编码语法元素的取值)的累积而不断更新。假设当前为第j轮更新,则当前概率值(第二概率值)为
其更新前概率值(第一概率值)为
概率更新过程可以采用如表5所示的算法。其中diracLut[]如表2所示,即通过查表2可以快速得到更新概率的调整值(更新幅度)。
需要说明的是,在本申请的实施例中,进行第一概率值的更新过程中所使用的更新幅度△P
i
j,可以为固定值,也可以为动态取值,可以与编码器的索引值i相关,也可以与编码器的索引值i无关,本申请不进行具体限定。
进一步地,在一些实施例中,还可以使用目标数据处理模式的门限参数对目标数据处理模式的第二概率值进行修正,确定目标数据处理模式的目标概率值。
在一种具体的实施例中,对目标数据处理模式的第二概率值进行修正,确定目标数据处理模式的目标概率值,可以包括:
若第二概率值小于目标数据处理模式的概率下限值,则将目标概率值设置为目标数据处理模式的概率下限值;
若第二概率值大于目标数据处理模式的概率上限值,则将目标概率值设置为目标数据处理模式的概率上限值;
若第二概率值大于或等于概率下限值且小于或等于概率上限值,则将目标概率值设置为第二概率值。
需要说明的是,在本申请的实施例中,目标数据处理模式的第二概率值可以用P
i表示,那么对于P
i 可以设置两个门限值,概率上限值(高门限)U
i和概率下限值(低门限)L
i,应满足L
i≤U
i。
示例性的,对于被使用的K个编码器,其索引值i为0~K-1。在编码过程中,目标编码器的概率值P
i随编码的二进制符号binVal(待编码语法元素的取值)的累积而不断更新。假设当前为第j轮更新,则当前概率值(第二概率值)为
其更新前概率值(第一概率值)为
在完成概率值的更新之后,根据编码器i的高低门限值
对第二概率值
进行修正。例如,
其中,Clip3(x,y,z)为截断计算函数。
进一步地,本申请的实施例中,在对目标数据处理模式的第一概率值进行更新处理,确定对应的第二概率值之后,还可以进一步根据第二概率值对目标数据处理模式的门限参数进行调整,进而可以确定调整后的门限参数。
也就是说,在本申请的实施例中,可以对数据处理模式的门限参数进行动态调整处理。例如,可以动态调整编码器的高低概率门限值(概率下限值或概率上限值)。
进一步地,在本申请的实施例中,在根据第二概率值对目标数据处理模式的门限参数进行调整,确定调整后的门限参数时,若第二概率值小于目标数据处理模式的概率下限值,则减小目标数据处理模式的概率下限值,确定调整后的概率下限值;然后便可以根据调整后的概率下限值和目标数据处理模式的概率上限值,确定调整后的门限参数。
进一步地,在本申请的实施例中,在根据第二概率值对目标数据处理模式的门限参数进行调整,确定调整后的门限参数时,若第二概率值大于目标数据处理模式的概率上限值,则增大目标数据处理模式的概率上限值,确定调整后的概率上限值;然后可以根据调整后的概率上限值和目标数据处理模式的概率下限值,确定调整后的门限参数。
也就是说,在本申请的实施例中,在对目标数据处理模式的门限参数进行调整时,可以选择增大目标数据处理模式的概率上限值,然后通过调整前的概率下限值与调整后的概率上限值构成调整后的门限参数;或者,可以选择减小目标数据处理模式的概率下限值,然后通过调整前的概率上限值与调整后的概率下限值构成调整后的门限参数。
进一步地,在本申请的实施例中,在对目标数据处理模式的门限参数进行调整时,可以先按照第二预存查找表(如表6)确定调整幅度;其中,调整幅度用于对概率上限值进行增大处理,或者对概率下限值进行减小处理;然后可以根据调整幅度调整目标数据处理模式的门限参数。
需要说明的是,在本申请的实施例中,在对目标数据处理模式的门限参数进行调整时,选择的调整幅度可以包括对概率上限值进行增大处理的
还可以包括对概率下限值进行减小处理的
其中,调整幅度
可以相同,可以为固定值,或随编码器索引值i的大小动态取值。本申请不进行具体限定。
其中,若编码器i更新后的第二概率值大于编码器i更新前的高门限
则提高该高门限值,例如对高门限
增加
若编码器i更新后的概率值小于编码器i更新前的低门限
则降低该低门限值;,例如对低门限值
减小
若编码器i更新后的概率值在编码器i更新前的概率波动区间
内,则高低门限值均不做调整。
进一步地,在本申请的实施例中,对调整后的门限参数进行修正处理,以确定目标数据处理模式的调整后的概率下限值与相邻候选数据处理模式的概率上限值相同;或者,确定目标数据处理模式的调整后的概率上限值与相邻候选数据处理模式的概率下限值相同。
需要说明的是,在本申请的实施例中,在对目标数据处理模式的门限参数进行调整之后,如果是减小了概率下限值,则需要保证目标数据处理模式的调整后的概率下限值与相邻候选数据处理模式的概率上限值相同;如果是增大了概率上限值,则需要保证目标数据处理模式的调整后的概率上限值与相邻候选数据处理模式的概率下限值相同。
也就是说,在本申请的实施例中,编码器中的概率上限值和概率下限值均可以动态更新调整,只需要保证更新之后的概率上限值和概率下限值仍能够满足:L
0≥L
1≥…≥L
i≥…≥L
K-1,U
0≥U
1≥…≥U
i≥…≥U
K-1;或者,L
0≤L
1≤…≤L
i≤…≤L
K-1,U
0≤U
1≤…≤U
i≤…≤U
K-1。
示例性的,在本申请的实施例中,为了确保调整高低门限值使得各编码器概率波动区间不重叠。当编码器概率更新方向与索引映射表更新方向相反时,若调整后的高门限值
大于相邻编码器的高门限值
则将高门限值
修正为
若调整后的低门限值
小于相邻编码器的低门限值
则将低门限值
修正为
具体参照公式(14)和(15)。
进一步地,在本申请的实施例中,对目标数据处理模式的第一概率值进行更新时使用的更新幅度,大于对目标数据处理模式的门限参数进行调整时所使用的调整幅度。
也就是说,在本申请的实施例中,更新目标数据处理模式的概率值的幅度是大于调整目标数据处理模式的门限参数的幅度的,即主要针对目标数据处理模式的概率值进行更新,而仅仅对目标数据处理模式的门限参数进行微调,该调整幅度不应大于概率值的更新幅度。
示例性的,在本申请的实施例中,假设编码器(0~K-1)概率更新方向与索引映射表更新方向相反时,动态调整编码器i的双概率门限的具体流程可以参照表9。
表9
在修正的过程中,如果
大于对应的概率上限值
则修正
为
并动态调整编码器i高门限
例如使用幅度
对其进行增大处理,如果调整后的概率上限值
大于相邻编码器的概率上限值
那么可以进一步将编码器i+1低门限
调整为
在修正的过程中,如果
大于对应的概率小限值
则修正
为
并动态调整编码器i低门限
为
例如使用幅度
对其进行减小处理,如果调整后的概率下限值
小于相邻编码器的概率下限值
那么可以进一步将编码器i-1高门限
调整为
进一步地,在本申请的实施例中,既可以选择先对目标数据处理模式的第二概率值进行修正处理,再利用第二概率值对目标数据处理模式的门限参数进行调整处理,获得调整后的门限参数;还可以先根据第二概率值对目标数据处理模式的门限参数进行调整,确定调整后的门限参数;然后再根据调整后的门限参数对第二概率值进行修正,确定目标数据处理模式的目标概率值。
也就是说,在本申请的实施例中,既可以使用目标数据处理模式的调整前的门限参数来修正对应的第二概率值,也可以使用目标数据处理模式的调整后的门限参数来修正对应的第二概率值。本申请不进行具体限定。
示例性的,在本申请的实施例中,在确定待编码语法元素的取值之后,可以先根据待编码语法元素的取值,确定目标数据处理模式的第一概率值;然后对目标数据处理模式的第一概率值进行更新,确定目标数据处理模式的第二概率值;接着可以根据第二概率值对目标数据处理模式的门限参数进行调整,确定调整后的门限参数;最后便可以根据调整后的门限参数对第二概率值进行修正,确定目标数据处理模式的目标概率值。
综上所示,通过上述步骤201至步骤204所提出的编码方法,基于第一预设条件,可以为不同的候选编码器分别设置对应的概率上限值和概率下限值,其中,该概率上限值和概率下限值可以在编码的过程中进行动态调整。同时,也可以对编码器的概率值进行动态调整,在调整的过程中还可以利用对应的概率上限值和概率下限值对概率值进行限制和修正。
示例性的,图13为本申请提出的动态调整方案的实现示意图二,如图13所示,基于第一预设条件,可以先初始化候选编码器(候选数据处理模式)的初始概率值P
i
0和对应的高低门限值
和
在根据上下文状态确定待编码语法元素对应的编码器索引(数据处理模式参数)之后,可以利用编码器索引所指示的目标编码器(目标数据处理模式)来编码待编码语法元素的取值(binVal),然后可以根据待编码语法元素的取值来更新对应的目标编码器的概率值,获得第二概率值,接着可以对第二概率值和高低门限值分别进行动态调整处理。
可以理解的是,在本申请的实施例中,第一预设条件还可以对候选编码器(候选数据处理模式)的初始概率值进行设置。其中,基于第一预设条件所确定的候选编码器的初始概率值可以为对应的概率上限值以及概率下限值范围之内的任意数值。
进一步地,在本申请的实施例中,图11中的动态调整部分,在对第二概率值和高低门限值分别进行动态调整处理时,既可以先根据更新处理后获得的第二概率值对相应的门限参数(高低门限值)进行调整,确定调整后的门限参数,然后再利用调整后的门限参数对第二概率值进行修正,获得修正后的目标概率值。也可以先利用门限参数对更新处理后获得的第二概率值进行修正,获得修正后的目标概率值,然后再根据第二概率值对相应的门限参数进行调整,确定调整后的门限参数。
需要说明的是,在本申请的实施例中,与相关技术相比,本申请实施例提出的编码方法,在无损条件下,八叉树几何编码码流性能对比如表8所示。
可以看出,本申请实施例提出的编码方法在这些数据上的几何码流上平均有1.4%左右的增益,带来了编码比特的节省。
进一步地,本申请实施例还提供了一种码流,其中,码流是根据待编码信息进行比特编码生成的;其中,待编码信息至少包括:待编码语法元素的取值。
还需要说明的是,在本申请的实施例中,对于待编码语法元素,编码端可以对其进行编码并写入码流中;后续在解码端通过解码就可确定出该语法元素的取值,以便解码端使用该语法元素的取值执行相关解码操作。
本实施例提供了一种编码方法,编码器基于第一预设条件,确定候选数据处理模式;确定待编码语法元素对应的数据处理模式参数;基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;根据目标数据处理模式对待编码语法元素的取值进行编码,将所得到的编码比特写入码流。由此可见,在本申请的实施例中,可以根据待处理的码语法元素来确定对应的数据处理模式参数,进而可以从候选数据处理模式中确定出目标数据处理模式,最后根据目标数据处理模式对语法元素进行编解码处理。其中,由于候选数据处理模式是根据第一预设条件确定的,使得在编码过程中能够从候选数据处理模式中选择出最佳的目标编码器进行编码,从而能够在编解码过程中选择最匹配的数据处理模式,进而降低了编解码性能。
在本申请的再一实施例中,基于前述实施例相同的发明构思,参见图14,其示出了本申请实施例提供的一种编码器140的组成结构示意图。如图14所示,编码器140可以包括:第一确定单元1401和编码单元1402;其中,
第一确定单元1401,配置为基于第一预设条件,确定候选数据处理模式;以及确定待编码语法元素对应的数据处理模式参数;
第一确定单元1401,还配置为基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;
编码单元1402,配置为根据目标数据处理模式对待编码语法元素的取值进行编码,将所得到的编码比特写入码流。
需要说明的是,在本申请的实施例中,编码器140也可以看作数据处理模式(或“熵编码器”),用于对待编码语法元素的取值进行编码处理。
可以理解地,在本申请的实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本申请实施例提供了一种计算机可读存储介质,应用于编码器140,该计算机可读存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现前述实施例中任一项所述的编码方法。
基于编码器140的组成以及计算机可读存储介质,参见图15,其示出了本申请实施例提供的编码器140的具体硬件结构示意图。如图15所示,编码器140可以包括:第一通信接口1501、第一存储器1502和第一处理器1503;各个组件通过第一总线系统1504耦合在一起。可理解,第一总线系统1504用于实现这些组件之间的连接通信。第一总线系统1504除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图15中将各种总线都标为第一总线系统1504。其中,
第一通信接口1501,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第一存储器1502,用于存储能够在第一处理器1503上运行的计算机程序;
第一处理器1503,用于在运行所述计算机程序时,执行:
基于第一预设条件,确定候选数据处理模式;
确定待编码语法元素对应的数据处理模式参数;
基于所述候选数据处理模式,根据所述数据处理模式参数确定目标数据处理模式;
根据所述目标数据处理模式对所述待编码语法元素的取值进行编码,将所得到的编码比特写入码流。
可以理解,本申请实施例中的第一存储器1502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请描述的系统和方法的第一存储器1502旨在包括但不限于这些和任意其它适合类型的存储器。
而第一处理器1503可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器1503中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器1503可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器1502,第一处理器1503读取第一存储器1502中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、 可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,第一处理器1503还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的编码方法。
本实施例提供了一种编码器,可以根据待处理的码语法元素来确定对应的数据处理模式参数,进而可以从候选数据处理模式中确定出目标数据处理模式,最后根据目标数据处理模式对语法元素进行编解码处理。其中,由于候选数据处理模式是根据第一预设条件确定的,使得在编码过程中能够从候选数据处理模式中选择出最佳的目标编码器进行编码,从而能够在编解码过程中选择最匹配的数据处理模式,进而降低了编解码性能。
在本申请的再一实施例中,基于前述实施例相同的发明构思,参见图16,其示出了本申请实施例提供的一种解码器160的组成结构示意图。如图16所示,解码器160可以包括:第二确定单元1601和解码单元1602;其中,
第二确定单元1601,配置为基于第一预设条件,确定候选数据处理模式;以及确定待解码语法元素对应的数据处理模式参数;
第二确定单元1601,还配置为基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;
解码单元1602,配置为根据目标数据处理模式解码待解码语法元素,确定待解码语法元素的取值。
需要说明的是,在本申请的实施例中,解码器160也可以看作数据处理模式(或“熵解码器”),用于对待解码语法元素的取值进行解码处理。
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例提供了一种计算机可读存储介质,应用于解码器160,该计算机可读存储介质存储有计算机程序,所述计算机程序被第二处理器执行时实现前述实施例中任一项所述的方法。
基于解码器160的组成以及计算机可读存储介质,参见图17,其示出了本申请实施例提供的解码器160的具体硬件结构示意图。如图17所示,解码器160可以包括:第二通信接口1701、第二存储器1702和第二处理器1703;各个组件通过第二总线系统1704耦合在一起。可理解,第二总线系统1704用于实现这些组件之间的连接通信。第二总线系统1704除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图17中将各种总线都标为第二总线系统1704。其中,
第二通信接口1701,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第二存储器1702,用于存储能够在第二处理器1703上运行的计算机程序;
第二处理器1703,用于在运行所述计算机程序时,执行:
基于第一预设条件,确定候选数据处理模式;
确定待解码语法元素对应的数据处理模式参数;
基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;
根据目标数据处理模式解码待解码语法元素,确定待解码语法元素的取值。
可选地,作为另一个实施例,第二处理器1703还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。
可以理解,第二存储器1702与第一存储器1502的硬件功能类似,第二处理器1703与第一处理器1503的硬件功能类似;这里不再详述。
本实施例提供了一种解码器,可以根据待处理的码语法元素来确定对应的数据处理模式参数,进而可以从候选数据处理模式中确定出目标数据处理模式,最后根据目标数据处理模式对语法元素进行编解码处理。其中,由于候选数据处理模式是根据第一预设条件确定的,使得在编码过程中能够从候选数据处理模式中选择出最佳的目标编码器进行编码,从而能够在编解码过程中选择最匹配的数据处理模式,进而降低了编解码性能。
在本申请的再一实施例中,参见图18,其示出了本申请实施例提供的一种编解码系统的组成结构示意图。如图18所示,编解码系统180可以包括编码器1801和解码器1802。
在本申请的实施例中,编码器1801可以为前述实施例中任一项所述的编码器,解码器1802可以为前述实施例中任一项所述的解码器。
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
本申请实施例提供了一种编解码方法、码流、编码器、解码器以及存储介质,在编码端,基于第一预设条件,确定候选数据处理模式;确定待编码语法元素对应的数据处理模式参数;基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;根据目标数据处理模式对待编码语法元素的取值进行编码,将所得到的编码比特写入码流。在解码端,基于第一预设条件,确定候选数据处理模式;确定待解码语法元素对应的数据处理模式参数;基于候选数据处理模式,根据数据处理模式参数确定目标数据处理模式;根据目标数据处理模式解码待解码语法元素,确定待解码语法元素的取值。由此可见,在本申请的实施例中,可以根据待处理的码语法元素来确定对应的数据处理模式参数,进而可以从候选数据处理模式中确定出目标数据处理模式,最后根据目标数据处理模式对语法元素进行编解码处理。其中,由于候选数据处理模式是根据第一预设条件确定的,使得在编码过程中能够从候选数据处理模式中选择出最佳的目标编码器进行编码,从而能够在编解码过程中选择最匹配的数据处理模式,进而降低了编解码性能。
Claims (66)
- 一种解码方法,应用于解码器,所述方法包括:基于第一预设条件,确定候选数据处理模式;确定待解码语法元素对应的数据处理模式参数;基于所述候选数据处理模式,根据所述数据处理模式参数确定目标数据处理模式;根据所述目标数据处理模式解码所述待解码语法元素,确定所述待解码语法元素的取值。
- 根据权利要求1所述的方法,其中,所述基于第一预设条件,确定候选数据处理模式,包括:根据所述第一预设条件,确定所述候选数据处理模式的门限参数。
- 根据权利要求2所述的方法,其中,所述门限参数指示所述候选数据处理模式的概率门限值,其中,所述概率门限值包括:概率上限值和/或概率下限值。
- 根据权利要求3所述的方法,其中,所述方法还包括::根据所述候选数据处理模式的门限参数,确定排序指示参数。
- 根据权利要求4所述的方法,其中,所述排序指示参数的取值包括第一预设值和第二预设值;其中,所述第一预设值指示所述门限参数递减的顺序,所述第二预设值指示所述门限参数递增的顺序。
- 根据权利要求5所述的方法,其中,所述方法还包括:确定所述候选数据处理模式的第三预设值和第四预设值;根据所述第三预设值和所述第四预设值,确定所述排序指示参数的取值;其中,所述第三预设值指示所述候选数据处理模式的概率值更新顺序,所述第四预设值指示所述候选数据处理模式的索引值更新顺序。
- 根据权利要求6所述的方法,其中,所述根据所述第三预设值和所述第四预设值,确定所述排序指示参数的取值,包括:若所述第三预设值与所述第四预设值的取值不同,则确定所述排序指示参数的取值为所述第一预设值;若所述第三预设值与所述第四预设值的取值相同,则确定所述排序指示参数的取值为所述第二预设值。
- 根据权利要求5所述的方法,其中,所述方法还包括:确定所述候选数据处理模式对应的第一参数;根据所述第一参数,确定所述排序指示参数的取值。
- 根据权利要求8所述的方法,其中,所述根据所述第一参数,确定所述排序指示参数的取值,包括:若所述第一参数指示第一数据,则确定所述排序指示参数的取值为所述第一预设值;若所述第一参数指示第二数据,则确定所述排序指示参数的取值为所述第二预设值。
- 根据权利要求6所述的方法,其中,所述方法还包括:在所述排序指示参数的取值为所述第一预设值时,若所述门限参数为概率下限值,则L i-1大于或等于L i;若所述门限参数为概率上限值,则U i-1大于或等于U i;在所述排序指示参数的取值为所述第二预设值时,若所述门限参数为概率下限值,则L i-1小于或等于L i;若所述门限参数为概率上限值,则U i-1小于或等于U i;其中,L i为所述候选数据处理模式的概率下限值,U i为所述候选数据处理模式的概率上限值,i=1,2,…,K-1,K表示所述候选数据处理模式的个数。
- 根据权利要求10所述的方法,其中,所述方法还包括:在所述候选数据处理模式中,确定当前所述候选数据处理模式的概率下限值与相邻所述候选数据处理模式的概率上限值相同,以及确定当前所述候选数据处理模式的概率上限值与相邻所述候选数据处理模式的概率下限值相同。
- 根据权利要求11所述的方法,其中,所述方法还包括:若所述第三预设值与所述第四预设值的取值不同,则确定L i-1=U i;若所述第三预设值与所述第四预设值的取值相同,则确定U i-1=L i。
- 根据权利要求5所述的方法,其中,所述方法还包括:根据所述待解码语法元素的取值,确定所述目标数据处理模式的第一概率值;对所述目标数据处理模式的第一概率值进行更新,确定所述目标数据处理模式的第二概率值;对所述目标数据处理模式的第二概率值进行修正,确定所述目标数据处理模式的目标概率值。
- 根据权利要求13所述的方法,其中,所述对所述目标数据处理模式的第一概率值进行更新,确定所述目标数据处理模式的第二概率值,包括:确定所述目标数据处理模式对应的第二参数;根据所述第二参数和所述待解码语法元素的取值更新所述目标数据处理模式的第一概率值,确定所述目标数据处理模式的第二概率值。
- 根据权利要求14所述的方法,其中,所述根据所述第二参数和所述待解码语法元素的取值更新所述目标数据处理模式的第一概率值,包括:若所述第二参数指示第一数据,且所述待解码语法元素的取值为第五预设值,则增大所述目标数据处理模式的第一概率值;若所述第二参数指示第一数据,且所述待解码语法元素的取值为第六预设值,则减小所述目标数据处理模式的第一概率值。
- 根据权利要求14所述的方法,其中,所述根据所述第二参数和所述待解码语法元素的取值更新所述目标数据处理模式的第一概率值,包括:若所述第二参数指示第二数据,且所述待解码语法元素的符号为第五预设值,则减小所述目标数据处理模式的第一概率值;若所述第二参数指示第二数据,且所述待解码语法元素的符号为第六预设值,则增大所述目标数据处理模式的第一概率值。
- 根据权利要求15或16所述的方法,其中,所述方法还包括:按照预设衰减因子增大所述第一概率值;或者,按照预设衰减因子减小所述第一概率值。
- 根据权利要求15或16所述的方法,其中,所述方法还包括:按照第一预存查找表增大所述第一概率值;或者,按照第一预存查找表减小所述第一概率值。
- 根据权利要求13所述的方法,其中,所述对所述目标数据处理模式的第二概率值进行修正,确定所述目标数据处理模式的目标概率值,包括:若所述第二概率值小于所述目标数据处理模式的概率下限值,则将所述目标概率值设置为所述目标数据处理模式的概率下限值;若所述第二概率值大于所述目标数据处理模式的概率上限值,则将所述目标概率值设置为所述目标数据处理模式的概率上限值;若所述第二概率值大于或等于所述概率下限值且小于或等于所述概率上限值,则将所述目标概率值设置为所述第二概率值。
- 根据权利要求13所述的方法,其中,所述方法还包括:根据所述第二概率值对所述目标数据处理模式的门限参数进行调整,确定调整后的门限参数。
- 根据权利要求20所述的方法,其中,所述根据所述第二概率值对所述目标数据处理模式的门限参数进行调整,确定调整后的门限参数,包括:若所述第二概率值小于所述目标数据处理模式的概率下限值,则减小所述目标数据处理模式的概率下限值,确定调整后的概率下限值;根据所述调整后的概率下限值和所述目标数据处理模式的概率上限值,确定调整后的门限参数。
- 根据权利要求20所述的方法,其中,所述根据所述第二概率值对所述目标数据处理模式的门限参数进行调整,确定调整后的门限参数,包括:若所述第二概率值大于所述目标数据处理模式的概率上限值,则增大所述目标数据处理模式的概率上限值,确定调整后的概率上限值;根据所述调整后的概率上限值和所述目标数据处理模式的概率下限值,确定调整后的门限参数。
- 根据权利要求21或22所述的方法,其中,所述方法还包括:按照第二预存查找表确定调整幅度;其中,所述调整幅度用于对概率上限值进行增大处理,或者对概率下限值进行减小处理;根据所述调整幅度调整所述目标数据处理模式的门限参数。
- 根据权利要求20所述的方法,其中,所述方法还包括:对所述调整后的门限参数进行修正处理,以确定所述目标数据处理模式的调整后的概率下限值与相邻所述候选数据处理模式的概率上限值相同;或者,确定所述目标数据处理模式的调整后的概率上限值与相邻所述候选数据处理模式的概率下限值相同。
- 根据权利要求20所述的方法,其中,对所述目标数据处理模式的第一概率值进行更新时所述使用的更新幅度,大于对所述目标数据处理模式的门限参数进行调整时所使用的调整幅度。
- 根据权利要求25所述的方法,其中,所述方法还包括:根据所述第二概率值对所述目标数据处理模式的门限参数进行调整,确定调整后的门限参数;根据所述调整后的门限参数对所述第二概率值进行修正,确定所述目标数据处理模式的目标概率值。
- 根据权利要求1所述的方法,其中,所述确定待解码语法元素对应的数据处理模式参数,包括:确定所述待解码语法元素的上下文信息;根据所述上下文信息和预设映射表,确定所述数据处理模式参数。
- 根据权利要求27所述的方法,其中,所述根据所述上下文信息和预设映射表,确定所述数据处理模式参数,包括:根据所述上下文信息,确定所述待解码语法元素的上下文状态;根据所述上下文状态和所述预设映射表,确定所述数据处理模式参数;其中,所述预设映射表用于表征上下文状态与数据处理模式参数之间的映射关系。
- 根据权利要求27所述的方法,其中,所述方法还包括:根据所述待解码语法元素的取值,更新所述预设映射表。
- 根据权利要求29所述的方法,其中,所述方法还包括:若所述待解码语法元素的取值为第五预设值,则减小所述预设映射表中的所述目标数据处理模式参数;若所述待解码语法元素的取值为第六预设值,则增大所述预设映射表中的所述目标数据处理模式参数。
- 一种编码方法,应用于编码器,所述方法包括:基于第一预设条件,确定候选数据处理模式;确定待编码语法元素对应的数据处理模式参数;基于所述候选数据处理模式,根据所述数据处理模式参数确定目标数据处理模式;根据所述目标数据处理模式对所述待编码语法元素的取值进行编码,将所得到的编码比特写入码流。
- 根据权利要求31所述的方法,其中,所述基于第一预设条件,确定候选数据处理模式,包括:根据所述第一预设条件,确定所述候选数据处理模式的门限参数。
- 根据权利要求32所述的方法,其中,所述门限参数指示所述候选数据处理模式的概率门限值,其中,所述概率门限值包括:概率上限值和/或概率下限值。
- 根据权利要求33所述的方法,其中,所述方法还包括::根据所述候选数据处理模式的门限参数,确定排序指示参数。
- 根据权利要求34所述的方法,其中,所述排序指示参数的取值包括第一预设值和第二预设值;其中,所述第一预设值指示所述门限参数递减的顺序,所述第二预设值指示所述门限参数递增的顺序。
- 根据权利要求35所述的方法,其中,所述方法还包括:确定所述候选数据处理模式的第三预设值和第四预设值;根据所述第三预设值和所述第四预设值,确定所述排序指示参数的取值;其中,所述第三预设值指示所述候选数据处理模式的概率值更新顺序,所述第四预设值指示所述候选数据处理模式的索引值更新顺序。
- 根据权利要求36所述的方法,其中,所述根据所述第三预设值和所述第四预设值,确定所述排序指示参数的取值,包括:若所述第三预设值与所述第四预设值的取值不同,则确定所述排序指示参数的取值为所述第一预设值;若所述第三预设值与所述第四预设值的取值相同,则确定所述排序指示参数的取值为所述第二预设值。
- 根据权利要求35所述的方法,其中,所述方法还包括:确定所述候选数据处理模式对应的第一参数;根据所述第一参数,确定所述排序指示参数的取值。
- 根据权利要求38所述的方法,其中,所述根据所述第一参数,确定所述排序指示参数的取值, 包括:若所述第一参数指示第一数据,则确定所述排序指示参数的取值为所述第一预设值;若所述第一参数指示第二数据,则确定所述排序指示参数的取值为所述第二预设值。
- 根据权利要求36所述的方法,其中,所述方法还包括:在所述排序指示参数的取值为所述第一预设值时,若所述门限参数为概率下限值,则L i-1大于或等于L i;若所述门限参数为概率上限值,则U i-1大于或等于U i;在所述排序指示参数的取值为所述第二预设值时,若所述门限参数为概率下限值,则L i-1小于或等于L i;若所述门限参数为概率上限值,则U i-1小于或等于U i;其中,L i为所述候选数据处理模式的概率下限值,U i为所述候选数据处理模式的概率上限值,i=1,2,…,K-1,K表示所述候选数据处理模式的个数。
- 根据权利要求40所述的方法,其中,所述方法还包括:在所述候选数据处理模式中,确定当前所述候选数据处理模式的概率下限值与相邻所述候选数据处理模式的概率上限值相同,以及确定当前所述候选数据处理模式的概率上限值与相邻所述候选数据处理模式的概率下限值相同。
- 根据权利要求41所述的方法,其中,所述方法还包括:若所述第三预设值与所述第四预设值的取值不同,则确定L i-1=U i;若所述第三预设值与所述第四预设值的取值相同,则确定U i-1=L i。
- 根据权利要求35所述的方法,其中,所述方法还包括:根据所述待编码语法元素的取值,确定所述目标数据处理模式的第一概率值;对所述目标数据处理模式的第一概率值进行更新,确定所述目标数据处理模式的第二概率值;对所述目标数据处理模式的第二概率值进行修正,确定所述目标数据处理模式的目标概率值。
- 根据权利要求43所述的方法,其中,所述对所述目标数据处理模式的第一概率值进行更新,确定所述目标数据处理模式的第二概率值,包括:确定所述目标数据处理模式对应的第二参数;根据所述第二参数和所述待编码语法元素的取值更新所述目标数据处理模式的第一概率值,确定所述目标数据处理模式的第二概率值。
- 根据权利要求44所述的方法,其中,所述根据所述第二参数和所述待编码语法元素的取值更新所述目标数据处理模式的第一概率值,包括:若所述第二参数指示第一数据,且所述待编码语法元素的取值为第五预设值,则增大所述目标数据处理模式的第一概率值;若所述第二参数指示第一数据,且所述待编码语法元素的取值为第六预设值,则减小所述目标数据处理模式的第一概率值。
- 根据权利要求44所述的方法,其中,所述根据所述第二参数和所述待编码语法元素的取值更新所述目标数据处理模式的第一概率值,包括:若所述第二参数指示第二数据,且所述待编码语法元素的符号为第五预设值,则减小所述目标数据处理模式的第一概率值;若所述第二参数指示第二数据,且所述待编码语法元素的符号为第六预设值,则增大所述目标数据处理模式的第一概率值。
- 根据权利要求45或46所述的方法,其中,所述方法还包括:按照预设衰减因子增大所述第一概率值;或者,按照预设衰减因子减小所述第一概率值。
- 根据权利要求45或46所述的方法,其中,所述方法还包括:按照第一预存查找表增大所述第一概率值;或者,按照第一预存查找表减小所述第一概率值。
- 根据权利要求43所述的方法,其中,所述对所述目标数据处理模式的第二概率值进行修正,确定所述目标数据处理模式的目标概率值,包括:若所述第二概率值小于所述目标数据处理模式的概率下限值,则将所述目标概率值设置为所述目标数据处理模式的概率下限值;若所述第二概率值大于所述目标数据处理模式的概率上限值,则将所述目标概率值设置为所述目标数据处理模式的概率上限值;若所述第二概率值大于或等于所述概率下限值且小于或等于所述概率上限值,则将所述目标概率值设置为所述第二概率值。
- 根据权利要求43所述的方法,其中,所述方法还包括:根据所述第二概率值对所述目标数据处理模式的门限参数进行调整,确定调整后的门限参数。
- 根据权利要求50所述的方法,其中,所述根据所述第二概率值对所述目标数据处理模式的门限参数进行调整,确定调整后的门限参数,包括:若所述第二概率值小于所述目标数据处理模式的概率下限值,则减小所述目标数据处理模式的概率下限值,确定调整后的概率下限值;根据所述调整后的概率下限值和所述目标数据处理模式的概率上限值,确定调整后的门限参数。
- 根据权利要求50所述的方法,其中,所述根据所述第二概率值对所述目标数据处理模式的门限参数进行调整,确定调整后的门限参数,包括:若所述第二概率值大于所述目标数据处理模式的概率上限值,则增大所述目标数据处理模式的概率上限值,确定调整后的概率上限值;根据所述调整后的概率上限值和所述目标数据处理模式的概率下限值,确定调整后的门限参数。
- 根据权利要求51或52所述的方法,其中,所述方法还包括:按照第二预存查找表确定调整幅度;其中,所述调整幅度用于对概率上限值进行增大处理,或者对概率下限值进行减小处理;根据所述调整幅度调整所述目标数据处理模式的门限参数。
- 根据权利要求50所述的方法,其中,所述方法还包括:对所述调整后的门限参数进行修正处理,以确定所述目标数据处理模式的调整后的概率下限值与相邻所述候选数据处理模式的概率上限值相同;或者,确定所述目标数据处理模式的调整后的概率上限值与相邻所述候选数据处理模式的概率下限值相同。
- 根据权利要求50所述的方法,其中,对所述目标数据处理模式的第一概率值进行更新时所述使用的更新幅度,大于对所述目标数据处理模式的门限参数进行调整时所使用的调整幅度。
- 根据权利要求55所述的方法,其中,所述方法还包括:根据所述第二概率值对所述目标数据处理模式的门限参数进行调整,确定调整后的门限参数;根据所述调整后的门限参数对所述第二概率值进行修正,确定所述目标数据处理模式的目标概率值。
- 根据权利要求31所述的方法,其中,所述确定待编码语法元素对应的数据处理模式参数,包括:确定所述待编码语法元素的上下文信息;根据所述上下文信息和预设映射表,确定所述数据处理模式参数。
- 根据权利要求57所述的方法,其中,所述根据所述上下文信息和预设映射表,确定所述数据处理模式参数,包括:根据所述上下文信息,确定所述待编码语法元素的上下文状态;根据所述上下文状态和所述预设映射表,确定所述数据处理模式参数;其中,所述预设映射表用于表征上下文状态与数据处理模式参数之间的映射关系。
- 根据权利要求57所述的方法,其中,所述方法还包括:根据所述待编码语法元素的取值,更新所述预设映射表。
- 根据权利要求59所述的方法,其中,所述方法还包括:若所述待编码语法元素的取值为第五预设值,则减小所述预设映射表中的所述目标数据处理模式参数;若所述待编码语法元素的取值为第六预设值,则增大所述预设映射表中的所述目标数据处理模式参数。
- 一种码流,其中,所述码流是根据待编码信息进行比特编码生成的;其中,待编码信息至少包括:待编码语法元素的取值。
- 一种编码器,所述编码器包括第一确定单元和编码单元;其中,所述第一确定单元,配置为基于第一预设条件,确定候选数据处理模式;以及确定待编码语法元素对应的数据处理模式参数;所述第一确定单元,还配置为基于所述候选数据处理模式,根据所述数据处理模式参数确定目标数据处理模式;所述编码单元,配置为根据所述目标数据处理模式对所述待编码语法元素的取值进行编码,将所得到的编码比特写入码流。
- 一种编码器,所述编码器包括第一存储器和第一处理器;其中,所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;所述第一处理器,用于在运行所述计算机程序时,执行如权利要求31至60中任一项所述的方法。
- 一种解码器,所述解码器包括第二确定单元和解码单元;其中,所述第二确定单元,配置为基于第一预设条件,确定候选数据处理模式;以及确定待解码语法元素对应的数据处理模式参数;所述第二确定单元,还配置为基于所述候选数据处理模式,根据所述数据处理模式参数确定目标数据处理模式;所述解码单元,配置为根据所述目标数据处理模式解码所述待解码语法元素,确定所述待解码语法元素的取值。
- 一种解码器,所述解码器包括第二存储器和第二处理器;其中,所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;所述第二处理器,用于在运行所述计算机程序时,执行如权利要求1至30中任一项所述的方法。
- 一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求1至30中任一项所述的方法、或者实现如权利要求31至60中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/071456 WO2024148491A1 (zh) | 2023-01-09 | 2023-01-09 | 编解码方法、码流、编码器、解码器以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/071456 WO2024148491A1 (zh) | 2023-01-09 | 2023-01-09 | 编解码方法、码流、编码器、解码器以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024148491A1 true WO2024148491A1 (zh) | 2024-07-18 |
Family
ID=91897569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/071456 WO2024148491A1 (zh) | 2023-01-09 | 2023-01-09 | 编解码方法、码流、编码器、解码器以及存储介质 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024148491A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107333141A (zh) * | 2011-06-16 | 2017-11-07 | Ge视频压缩有限责任公司 | 熵编码中的上下文初始化 |
CN110944173A (zh) * | 2018-09-24 | 2020-03-31 | 腾讯美国有限责任公司 | 视频解码方法、装置、电子设备以及存储介质 |
US20210021831A1 (en) * | 2018-04-27 | 2021-01-21 | Interdigital Vc Holdings, Inc. | Method and apparatus for adaptive context modeling in video encoding and decoding |
CN112789804A (zh) * | 2018-01-18 | 2021-05-11 | 黑莓有限公司 | 用于点云的二进制熵编解码的方法和设备 |
US20210167795A1 (en) * | 2018-10-03 | 2021-06-03 | Blackberry Limited | Methods and devices for on-the-fly coder mapping updates in point cloud coding |
-
2023
- 2023-01-09 WO PCT/CN2023/071456 patent/WO2024148491A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107333141A (zh) * | 2011-06-16 | 2017-11-07 | Ge视频压缩有限责任公司 | 熵编码中的上下文初始化 |
CN112789804A (zh) * | 2018-01-18 | 2021-05-11 | 黑莓有限公司 | 用于点云的二进制熵编解码的方法和设备 |
US20210021831A1 (en) * | 2018-04-27 | 2021-01-21 | Interdigital Vc Holdings, Inc. | Method and apparatus for adaptive context modeling in video encoding and decoding |
CN110944173A (zh) * | 2018-09-24 | 2020-03-31 | 腾讯美国有限责任公司 | 视频解码方法、装置、电子设备以及存储介质 |
US20210167795A1 (en) * | 2018-10-03 | 2021-06-03 | Blackberry Limited | Methods and devices for on-the-fly coder mapping updates in point cloud coding |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202205863A (zh) | 用於基於幾何的點雲壓縮的屬性參數譯碼 | |
TW202141984A (zh) | 用於在基於幾何形狀的點雲壓縮中的預測變換的預測器索引訊號傳遞 | |
TW202207709A (zh) | 用於基於幾何的點雲壓縮的高級語法 | |
WO2022121650A1 (zh) | 点云属性的预测方法、编码器、解码器及存储介质 | |
US20240015325A1 (en) | Point cloud coding and decoding methods, coder, decoder and storage medium | |
US12113963B2 (en) | Method and apparatus for selecting neighbor point in point cloud, encoder, and decoder | |
WO2024148491A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2024082153A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2022109885A1 (zh) | 点云编解码方法、编码器、解码器以及计算机存储介质 | |
WO2022141461A1 (zh) | 点云编解码方法、编码器、解码器以及计算机存储介质 | |
WO2024148488A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2024182978A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2024082135A1 (zh) | 编解码方法、编解码器、码流以及计算机存储介质 | |
WO2023024842A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2024103304A1 (zh) | 点云编解码方法、编码器、解码器、码流及存储介质 | |
WO2024082127A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2024212043A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2022170511A1 (zh) | 点云解码方法、解码器及计算机存储介质 | |
WO2024082152A1 (zh) | 编解码方法及装置、编解码器、码流、设备、存储介质 | |
WO2024145933A1 (zh) | 点云编解码方法、装置、设备及存储介质 | |
WO2024174092A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2024216649A1 (zh) | 点云编解码方法、编码器、解码器、码流及存储介质 | |
WO2024174086A1 (zh) | 解码方法、编码方法、解码器以及编码器 | |
WO2024212045A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2024145911A1 (zh) | 点云编解码方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23915270 Country of ref document: EP Kind code of ref document: A1 |