[go: up one dir, main page]

WO2024207235A1 - Procédé de codage/décodage, train de bits, codeur, décodeur et support de stockage - Google Patents

Procédé de codage/décodage, train de bits, codeur, décodeur et support de stockage Download PDF

Info

Publication number
WO2024207235A1
WO2024207235A1 PCT/CN2023/086317 CN2023086317W WO2024207235A1 WO 2024207235 A1 WO2024207235 A1 WO 2024207235A1 CN 2023086317 W CN2023086317 W CN 2023086317W WO 2024207235 A1 WO2024207235 A1 WO 2024207235A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
current zero
run
zero
run value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/CN2023/086317
Other languages
English (en)
Chinese (zh)
Inventor
魏红莲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202380096778.4A priority Critical patent/CN121040071A/zh
Priority to PCT/CN2023/086317 priority patent/WO2024207235A1/fr
Publication of WO2024207235A1 publication Critical patent/WO2024207235A1/fr
Anticipated expiration legal-status Critical
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Definitions

  • the embodiments of the present application relate to the technical field of point cloud data processing, and in particular to a coding and decoding method, a bit stream, an encoder, a decoder, and a storage medium.
  • the point cloud coding and decoding framework includes the geometry-based point cloud compression (G-PCC) coding and decoding framework, the point cloud audio and video standard (AVS) encoder framework, the low latency and low complexity coding (Low latency, Low complexity coding) framework, etc.
  • Point cloud compression generally adopts the method of compressing the point cloud geometry information and attribute information separately.
  • the point cloud geometry information is first encoded in the geometry encoder, and then the reconstructed geometry information is input into the attribute encoder as additional information to assist in the compression of the point cloud attributes; at the decoding end, the point cloud geometry information is first decoded in the geometry decoder, and then the decoded geometry information is input into the attribute decoder as additional information to assist in the compression of the point cloud attributes.
  • the coding and decoding method for zero run values in the point cloud coding and decoding framework needs to be further optimized.
  • the embodiments of the present application provide a coding and decoding method, a bit stream, an encoder, a decoder and a storage medium, which perform hybrid coding and decoding on zero-run values based on a context coding and decoding mode and a bypass coding and decoding mode to improve hardware throughput, thereby improving the coding and decoding efficiency of zero-run values.
  • an embodiment of the present application provides a decoding method, which is applied to a decoder, and the method includes:
  • the second type of indication information of decoding the current zero run value is decoded using a context-based decoding mode and a bypass decoding mode;
  • a current zero-run value is determined according to the first-type indication information and the second-type indication information.
  • an embodiment of the present application provides an encoding method, which is applied to an encoder, and the method includes:
  • a first type of indication information encoding a current zero run value
  • the second type of indication information of the current zero run value is encoded based on the context coding mode and the bypass coding mode, and the obtained coded 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 one of the following: a syntax element for indicating an optimal coding mode, a first type of indication information, a second type of indication information, a value of N, a value of N1, and a value of N2.
  • an embodiment of the present application provides an encoder, the encoder comprising a first determining unit and an encoding unit; wherein,
  • the first determining unit is configured to determine a current zero-run value to be encoded
  • the encoding unit is configured to encode the first type of indication information of the current zero run value
  • the encoding unit is further configured to encode the second type of indication information of the current zero run value based on the context encoding mode and the bypass encoding mode, and write the obtained encoding bits into the bit stream.
  • an 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 configured to execute the method according to the first aspect or the third aspect when running a computer program.
  • an embodiment of the present application provides a decoder, the decoder comprising a decoding unit and a second determining unit; wherein:
  • the decoding unit is configured to decode the first type of indication information of the current zero run value
  • the decoding unit is further configured to decode the second type of indication information of the current zero run value by using a context-based decoding mode and a bypass decoding mode;
  • the second determining unit determines a current zero-run value according to the first-type indication information and the second-type indication information.
  • 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 second aspect when running the 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 as described in the first aspect, or the method as described in the second aspect, or the method as described in the third aspect.
  • the embodiment of the present application provides a coding and decoding method, a bit stream, an encoder, a decoder and a storage medium, which encode and decode the first type of indication information of the current zero run value; and encode and decode the second type of indication information of the current zero run value using a context coding and decoding mode and a bypass coding and decoding mode.
  • the first type refers to information including at least one binary grammatical element
  • the second type of indication information includes non-binary grammatical elements.
  • the non-binary grammatical elements of the current zero run value are mixedly coded and decoded based on the context coding and decoding mode and the bypass coding and decoding mode.
  • the difficulty of hardware implementation is reduced, the hardware processing cycle is shortened, and the hardware throughput rate is improved, thereby improving the coding and decoding efficiency of the current zero run value.
  • FIG1A is a schematic diagram of a three-dimensional point cloud image
  • FIG1B is a partially enlarged schematic diagram of a three-dimensional point cloud image
  • FIG2A is a schematic diagram of a point cloud image at different viewing angles
  • FIG2B is a schematic diagram of a data storage format corresponding to FIG2A ;
  • FIG3 is a schematic diagram of a network architecture for point cloud encoding and decoding
  • FIG4A is a schematic block diagram of a G-PCC encoder
  • FIG4B is a schematic block diagram of a G-PCC decoder
  • FIG5A is a schematic diagram of an intersection of a seed block
  • FIG5B is a schematic diagram of fitting a triangular face set
  • FIG5C is a schematic diagram of upsampling of a triangular face set
  • FIG6A is a schematic diagram of a coding block diagram of PCRM
  • FIG6B is a schematic diagram of a decoding block diagram of PCRM
  • FIG10 is a schematic diagram of a fourth flow chart of an encoding method provided in an embodiment of the present application.
  • FIG12 is a schematic diagram of the structure of an encoder provided in an embodiment of the present application.
  • FIG13 is a schematic diagram of a specific hardware structure of an encoder provided in an embodiment of the present application.
  • FIG15 is a schematic diagram of a specific hardware structure of a decoder provided in an embodiment of the present application.
  • first ⁇ second ⁇ third involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that “first ⁇ second ⁇ third” can be interchanged in a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.
  • Point Cloud is a three-dimensional representation of the surface of an object.
  • Point cloud (data) on 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 is a set of discrete points that are irregularly distributed in space and express the spatial structure and surface properties of a three-dimensional object or scene.
  • FIG1A shows a three-dimensional point cloud image
  • FIG1B shows a partial magnified view of the three-dimensional point cloud image. It can be seen that the point cloud surface is composed of densely distributed points.
  • Two-dimensional images have information expressed at each pixel, and the distribution is regular, so there is no need to record their location information additionally; however, in point clouds
  • the distribution of points in three-dimensional space is random and irregular, so it is necessary to record the position of each point in space in order to fully express a point cloud.
  • each position in the acquisition process has corresponding attribute information, usually RGB color values, which reflect the color of the object; for point clouds, in addition to color information, the attribute information corresponding to each point is also commonly a reflectance value, which reflects the surface material of the object. Therefore, the points in the point cloud can include the location information of the point and the attribute information of the point.
  • the location information of the point can be the three-dimensional coordinate information (x, y, z) of the point.
  • the location information of the point can also be called the geometric information of the point.
  • the attribute information of the point can include color information (three-dimensional color information) and/or reflectivity (one-dimensional reflectivity information r), etc.
  • the color information can be information on any color space.
  • the color information can be RGB information. Among them, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B).
  • the color information can be brightness and chromaticity (YCbCr, YUV) information.
  • Y represents brightness (Luma)
  • Cb (U) represents blue color difference
  • Cr (V) represents red color difference
  • the first color component, the second color component and the third color component are used to represent color information; wherein, the three color components are a brightness component, a blue chroma component and a red chroma component respectively.
  • the video image is represented in YCbCr format or YUV format.
  • the brightness component is usually represented by the symbol Y
  • the blue chroma component is usually represented by the symbol Cb or U
  • the red chroma component is usually represented by the symbol Cr or V.
  • the points in the point cloud may include the three-dimensional coordinate information of the points and the reflectivity value of the points.
  • the points in the point cloud may include the three-dimensional coordinate information of the points and the three-dimensional 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 reflectivity value of the points and the three-dimensional color information of the points.
  • Figure 2A and 2B a point cloud image and its corresponding data storage format are shown.
  • Figure 2A provides six viewing angles of the point cloud image
  • Figure 2B consists of a file header information part and a data part.
  • the header information includes the data format, data representation type, the total number of point cloud points, and the content represented by the point cloud.
  • the point cloud is in the ".ply" format, represented by ASCII code, with a total number of 207242 points, and each point has three-dimensional coordinate information (x, y, z) and three-dimensional color information (r, g, b).
  • Point clouds can be divided into the following categories according to the way they are obtained:
  • Static point cloud the object is stationary, and the device that obtains the point cloud is also stationary;
  • Dynamic point cloud The object is moving, but the device that obtains the point cloud is stationary;
  • Dynamic point cloud acquisition The device used to acquire the point cloud is in motion.
  • 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 can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Point clouds are obtained by directly sampling real objects, so they can provide a strong sense of reality while ensuring accuracy. Therefore, they are widely used, including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free viewpoint broadcasting, three-dimensional immersive remote presentation, and three-dimensional reconstruction of biological tissues and organs.
  • Point clouds can be collected mainly through the following methods: computer generation, 3D laser scanning, 3D photogrammetry, etc.
  • Computers can generate point clouds of virtual three-dimensional objects and scenes; 3D laser scanning can obtain point clouds of static real-world three-dimensional objects or scenes, and can obtain millions of point clouds per second; 3D photogrammetry can obtain point clouds of dynamic real-world three-dimensional objects or scenes, and can obtain tens of millions of point clouds per second.
  • 3D photogrammetry can obtain point clouds of dynamic real-world three-dimensional objects or scenes, and can obtain tens of millions of point clouds per second.
  • the number of points in each point cloud frame is 700,000, and each point has coordinate information xyz (float) and color information RGB (uchar).
  • the point cloud is a collection of massive points, storing the point cloud will not only consume a lot of memory, but also be inconvenient for transmission. There is also not enough bandwidth to support direct transmission of the point cloud at the network layer without compression. Therefore, the point cloud needs to be compressed.
  • Point cloud compression generally adopts the method of compressing point cloud geometry information and attribute information separately.
  • the point cloud geometry information is first encoded in the geometry encoder, and then the reconstructed geometry information is input into the attribute encoder as additional information to assist in the compression of point cloud attributes;
  • the point cloud geometry information is first decoded in the geometry decoder, and then the decoded geometry information is input into the attribute decoder as additional information.
  • the entire codec consists of pre-processing/post-processing, geometry encoding/decoding, and attribute encoding/decoding.
  • the point cloud coding framework that can compress point clouds can be the geometry-based point cloud compression (G-PCC) codec framework or the video-based point cloud compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by AVS.
  • the G-PCC codec framework can be used to compress the first type of static point clouds and the third type of dynamically acquired point clouds, which can be based on the point cloud compression test platform (Test Model Compression 13, TMC13), and the V-PCC codec framework can be used to compress the second type of dynamic point clouds, which can be based on the point cloud compression test platform (Test Model Compression 2, TMC2). Therefore, the G-PCC codec framework is also called the point cloud codec TMC13, and the V-PCC codec framework is also called the point cloud codec TMC2.
  • FIG3 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.
  • FIG4A 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 (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 divided leaf nodes 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.
  • FIG4B 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.
  • the current geometric coding of G-PCC can be divided into octree-based geometric coding (marked by a dotted box) and prediction tree-based geometric coding (marked by a dotted box).
  • the octree-based geometry encoding includes: first, coordinate transformation of the 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 the quantization rounding, the geometric information of some points is the same. The parameters are used to decide whether to remove duplicate points. 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, and the placeholder code of each node is encoded.
  • trees such as octrees, quadtrees, binary trees, etc.
  • the bounding box of the point cloud is calculated. Assume that dx > dy > dz , the bounding box corresponds to a cuboid.
  • K and M In the process of binary tree/quadtree/octree partitioning, two parameters are introduced: K and M.
  • K indicates the maximum number of binary tree/quadtree partitions before octree partitioning;
  • parameter M is used to indicate that the corresponding minimum block side length when performing binary tree/quadtree partitioning is 2M.
  • the current node has only one occupied child node, and the parent node of the current node's parent node has only two occupied child nodes, that is, the current node has at most one neighbor node.
  • the parent node of the current node has only one child node, the current node.
  • the six neighbor nodes that share a face with the current node are also empty nodes.
  • the current node does not have the DCM coding qualification, it will be divided into octrees. If it has the DCM coding qualification, the number of points contained in the node will be further determined. When the number of points is less than the threshold (for example, 2), the node will be DCM-encoded, otherwise the octree division will continue.
  • the threshold for example, 2
  • the geometric coordinate (x, y, z) components of the points contained in the current node will be directly encoded independently.
  • the side length of a node is 2d, d bits are required to encode each component of the geometric coordinates of the node, and the bit information is directly written into the bit stream.
  • G-PCC currently introduces a plane coding mode. In the process of geometric division, it will determine whether the child nodes of the current node are in the same plane. If the child nodes of the current node meet the conditions of the same plane, the child nodes of the current node will be represented by the plane.
  • 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.
  • geometric information coding based on triangle soup (trisoup)
  • geometric division must also be performed first, but different from geometric information coding based on binary tree/quadtree/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 is W.
  • the surface and the twelve edges of the block are obtained.
  • the vertex coordinates of each block are encoded in turn to generate a binary code stream.
  • 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).
  • KD-Tree high-latency slow mode
  • KD tree high-latency slow mode
  • KD-Tree high-latency fast mode
  • 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 parameter are encoded to generate a binary code stream.
  • the decoding end reconstructs the prediction tree structure by continuously parsing the bit stream, 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.
  • attribute encoding is mainly performed on color information.
  • the color information is converted from the RGB color space to the YUV color space.
  • the point cloud is recolored using the reconstructed geometric information so that the unencoded attribute information corresponds to the reconstructed geometric information.
  • color information encoding there are two main transformation methods. One is the distance-based lifting transformation that relies on LOD division, and the other is to directly perform RAHT transformation. Both methods will convert color information from the spatial domain to the frequency domain, and obtain high-frequency coefficients and low-frequency coefficients through transformation. Finally, the coefficients are quantized and encoded to generate a binary bit stream (which can be referred to as "code stream").
  • Morton code When using geometric information to predict attribute information, Morton code can be used to search for nearest neighbors.
  • the Morton code can be obtained from the geometric coordinates of the point.
  • the specific method for calculating the Morton code is described as follows. For each component of the three-dimensional coordinate represented by a d-bit binary number, its three components can be expressed as:
  • the Morton code M is x, y, z starting from the highest bit, and then arranged in sequence from x l ,y l ,z l to the lowest bit.
  • the calculation formula of M is as follows:
  • Condition 1 The geometric position is limitedly lossy and the attributes are lossy;
  • Condition 3 The geometric position is lossless, and the attributes are limitedly lossy
  • Condition 4 The geometric position and attributes are lossless.
  • the general test sequences include Cat1A, Cat1B, Cat3-fused, and Cat3-frame.
  • Cat2-frame point cloud only contains reflectivity attribute information
  • Cat1A and Cat1B point clouds only contain color attribute information
  • Cat3-fused point cloud contains both color and reflectivity attribute information.
  • the bounding box is divided into sub-cubes in sequence, and the non-empty sub-cubes (containing points in the point cloud) are divided again until the leaf node obtained by division is a 1 ⁇ 1 ⁇ 1 unit cube.
  • the number of points contained in the leaf node needs to be encoded, and finally the encoding of the geometric octree is completed 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.
  • geometric lossless decoding it is necessary to parse the number of points contained in each leaf node and finally restore the geometrically reconstructed point cloud information.
  • the prediction tree structure is established by using two different methods, including: based on KD-Tree (high-latency slow mode) and using lidar calibration information (low-latency fast mode).
  • lidar calibration information each point can be divided into different Lasers, 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 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 bit stream, and then obtains the geometric position prediction residual information and quantization parameters of each prediction node through parsing, and dequantizes the prediction residual to restore the reconstructed geometric position information of each node, and finally completes the geometric reconstruction at the decoding end.
  • the original geometric information is first preprocessed.
  • the geometric origin is normalized to the minimum position in the point cloud space through coordinate translation, and the geometric information is converted from floating point numbers to integers through coordinate quantization to facilitate subsequent regular processing; then the regularized geometric information is geometrically encoded, and the point cloud space is recursively divided using an octree structure.
  • the current node is divided into eight sub-blocks of the same size, and the occupancy codeword of each sub-block is judged. When the sub-block does not contain a point, it is recorded as empty, otherwise it is recorded as non-empty.
  • the occupancy codeword information of all blocks is recorded in the last layer of the recursive division and encoded; the geometric information expressed by the octree structure is input into the geometric entropy encoder to form a geometric code stream, and on the other hand, geometric reconstruction is performed in the encoder, and the reconstructed geometric information is input into the attribute encoder as additional information.
  • the attribute encoding part the original attribute information is first preprocessed. Since the geometric information changes after geometric encoding, it is necessary to reallocate the attribute value for each point after geometric encoding. This process is called attribute recoloring.
  • the attribute information being processed is color information, the original color needs to be transformed into a YUV color space that is more in line with the visual characteristics of the human eye.
  • the preprocessed attribute information is attribute encoded.
  • Attribute encoding first requires reordering the point cloud in a Morton code. Therefore, the traversal order of attribute encoding is the Morton order.
  • the attribute prediction method in PCRM is a single-point prediction based on the Morton order, that is, traversing one point forward from the current point to be encoded according to the Morton order. The point found is the prediction reference point of the current point to be encoded, and then the attribute reconstruction value of the prediction reference point is used as the attribute prediction value, and the attribute residual is the current The difference between the attribute value of the point to be encoded and the attribute prediction value; finally, the residual is quantized and the quantized residual is input into the attribute entropy encoder to form an attribute code stream.
  • Attribute encoding is mainly performed on color and reflectivity information. Before attribute encoding, it can be determined whether to perform color space conversion. If color space conversion is performed, the color information is converted from RGB color space to YUV color space. If color space conversion is not performed, the color components of the RGB color space are directly encoded.
  • the same method of separately decoding geometry and attributes is adopted.
  • the geometry decoding part the geometry bitstream is first entropy decoded, and then the octree structure is constructed in the same way as the geometry encoding.
  • the geometry information expressed by the octree structure after coordinate transformation is reconstructed in combination with the decoded geometry.
  • the coordinates of this information are dequantized and detranslated to obtain the decoded geometry information.
  • it is input into the attribute decoder as additional information (which can be information after or before coordinate dequantization) for attribute prediction.
  • the attribute decoding part the Morton order is constructed in the same way as the encoding end.
  • the attribute bitstream is first entropy decoded to obtain the quantized residual information; then dequantization is performed to obtain the point cloud residual information; similarly, the attribute prediction value of the current point to be decoded is obtained in the same way as the attribute encoding, and then the attribute prediction value is added to the residual value to restore the YUV attribute value of the current point to be decoded; finally, the decoded attribute information is obtained through the inverse transformation of the color space.
  • Condition 1 The geometric position is limitedly lossy and the attributes are lossy;
  • the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, the Morton order, the Hilbert order, etc.), and the prediction algorithm is first used to obtain the attribute prediction value, and the attribute residual is obtained according to the attribute value and the attribute prediction value. Then, the attribute residual is quantized to generate a quantized residual, and finally the quantized residual is encoded;
  • the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, Morton order, Hilbert order, etc.).
  • the prediction algorithm is first used to obtain the attribute prediction value, and then the decoding is performed to obtain the quantized residual.
  • the quantized residual is then dequantized, and finally the attribute reconstruction value is obtained based on the attribute prediction value and the dequantized residual.
  • Prediction transform branch - resources are limited
  • attribute compression adopts a method based on intra-frame prediction and discrete cosine transform (DCT).
  • DCT discrete cosine transform
  • the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, the Morton order, the Hilbert order, etc.), and the entire point cloud is first divided into several small groups with a maximum length of Y (such as 2), and then these small groups are combined into several large groups (the number of points in each large group does not exceed X, such as 4096), and then the prediction algorithm is used to obtain the attribute prediction value, and the attribute residual is obtained according to the attribute value and the attribute prediction value.
  • the attribute residual is transformed by DCT in small groups to generate transformation coefficients, and then the transformation coefficients are quantized to generate quantized transformation coefficients, and finally the quantized transformation coefficients are encoded in large groups;
  • the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, Morton order, Hilbert order, etc.).
  • the entire point cloud is divided into several small groups with a maximum length of Y (such as 2), and then these small groups are combined into several large groups (the number of points in each large group does not exceed X, such as 4096).
  • the quantized transform coefficients are decoded in large groups, and then the prediction algorithm is used to obtain the attribute prediction value.
  • the quantized transform coefficients are dequantized and inversely transformed in small groups.
  • the attribute reconstruction value is obtained based on the attribute prediction value and the dequantized and inversely transformed coefficients.
  • Prediction transform branch - resources are not limited. Attribute compression adopts a method based on intra-frame prediction and DCT transform. When encoding the quantized transform coefficients, there is no limit on the maximum number of points X, that is, all coefficients are encoded together.
  • the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, the Morton order, the Hilbert order, etc.).
  • the entire point cloud is divided into several small groups with a maximum length of Y (such as 2).
  • the prediction algorithm is used to obtain the attribute prediction value.
  • the attribute residual is obtained according to the attribute value and the attribute prediction value.
  • the attribute residual is subjected to DCT transformation in groups to generate transformation coefficients.
  • the transformation coefficients are then quantized to generate quantized transformation coefficients.
  • the quantized transformation coefficients of the entire point cloud are encoded.
  • the points in the point cloud are processed in a certain order (the original acquisition order of the point cloud, Morton order, Hilbert order, etc.).
  • the entire point cloud is divided into several small groups with a maximum length of Y (such as 2), and the quantized transformation coefficients of the entire point cloud are obtained by decoding.
  • the prediction algorithm is used to obtain the attribute prediction value, and then the quantized transformation coefficients are dequantized and inversely transformed in groups.
  • the attribute reconstruction value is obtained based on the attribute prediction value and the dequantized and inversely transformed coefficients.
  • Multi-layer transformation branch attribute compression adopts a method based on multi-layer wavelet transform.
  • the entire point cloud is subjected to multi-layer wavelet transform to generate transform coefficients, which are then quantized to generate quantized transform coefficients, and finally the quantized transform coefficients of the entire point cloud are encoded;
  • decoding obtains the quantized transform coefficients of the entire point cloud, and then dequantizes and inversely transforms the quantized transform coefficients to obtain attribute reconstruction values.
  • the embodiment of the present application provides a coding and decoding method, which reduces the difficulty of hardware implementation, shortens the hardware processing cycle, and improves the hardware throughput, thereby improving the coding and decoding efficiency of zero run values by hybrid coding and decoding zero run values based on the context coding and decoding mode and the bypass coding and decoding mode. It is a more hardware-friendly implementation method.
  • FIG7 a first flow chart of an encoding method provided by an embodiment of the present application is shown. As shown in FIG7 , the method may include:
  • the method further includes: determining the attribute residual value of the point to be encoded; when the attribute residual value of the point to be encoded is zero, the current zero run value performs a self-increment operation; when the attribute residual value of the point to be encoded is not zero, encoding the current zero run value, encoding the attribute residual value of the point to be encoded, and resetting the current zero run value to 0.
  • Encoding the current zero run value includes encoding using any of the zero run value encoding methods provided in the embodiments of the present application.
  • the current node when encoding the current node, includes a plurality of points to be encoded.
  • the current node includes at least one of the following: a current point cloud sequence, a current point cloud frame, a current point cloud tile, and a current point cloud slice.
  • the attribute information of the point cloud includes: color information and reflectivity.
  • the color information includes a first color component, a second color component, and a third color component.
  • the color information may be RGB information. Accordingly, the first color component is a red component, the second color component is a green component, and the third color component is a blue component.
  • the color information may also be brightness and chromaticity (YCbCr, YUV) information. Accordingly, the first color component is a brightness component, the second color component is a blue chromaticity component, and the third color component is a red chromaticity component.
  • the attribute residual value includes at least one of the following: a residual value of the first color component, a residual value of the second color component, and a residual value of the third color component.
  • the attribute residual value includes a residual value of the reflectivity.
  • the method further includes: reordering the point cloud in the current node to determine the traversal order of the attribute coding (original acquisition order, Morton order, Hilbert order, etc.).
  • a single point prediction is performed based on the traversal order, that is, one point is traced back from the current point to be encoded according to the traversal order, and the point found is the prediction reference point of the current point to be encoded, and then the attribute reconstruction value of the prediction reference point is used as the attribute prediction value, and the attribute residual value of the point to be encoded is the difference between the attribute value of the current point to be encoded and the attribute prediction value; finally, the attribute residual value is quantized to obtain a quantized residual value, and the quantized residual value is input into the attribute entropy encoder to form an attribute code stream.
  • the codec uses the same traversal order to encode/decode the attribute residual value of each point in turn, and counts whether the attribute residual value is 0 through the zero run value (which can be recorded as zero_run_length).
  • a point cloud node includes at least one zero run value.
  • the method further includes: before encoding the attribute residual value of the first point, initializing the first zero run value to 0.
  • the zero run value is used to count whether an attribute residual value is zero.
  • corresponding zero run values are set for the first color component, the second color component, the third color component and the reflectivity component, respectively, and whether the respective attribute residual values are zero is counted.
  • the zero-run value is used to count whether at least two attribute residual values are all zero.
  • corresponding zero-run values are set for the first color component, the second color component, and the third color component, to count whether the three color components are all 0.
  • a corresponding zero-run value is set separately for the reflectivity, to count whether the reflectivity is 0.
  • corresponding zero-run values are set for any two of the first color component, the second color component, and the third color component. For example, corresponding zero-run values are set for the second color component and the third color component to count whether the second color component and the third color component are both 0, and corresponding zero-run values are set for the first color component alone to count whether the first color component is 0. Corresponding zero-run values are set for reflectivity alone to count whether the reflectivity is 0.
  • the current zero run value when the attribute residual value of the to-be-encoded point is zero, the current zero run value performs a self-increment operation (zero_run_length++); Process the next point to be encoded. If the attribute residual value of the next point to be encoded is zero, the zero run value continues to perform the self-increment operation until the attribute residual value of the point to be encoded is not 0.
  • the zero run value is used to count whether at least two attribute residual values are both zero, and at least two attribute residual values are both 0, the current zero run value performs a self-increment operation; if any attribute residual value is not, the zero run value is encoded first, and then the zero run value zero_run_length is reset to 0, and then at least two attribute residual values are encoded.
  • the method also includes: according to the traversal order of the points, determining that the point to be encoded is the last point to be encoded; when the attribute residual value of the point to be encoded is zero, the current zero run value performs a self-increment operation, and encodes the current zero run value based on the context coding mode and/or the bypass coding mode; when the attribute residual value of the point to be encoded is not zero, encoding the current zero run value based on the context coding mode and/or the bypass coding mode, encoding the attribute residual value of the point to be encoded; resetting the current zero run value to 0, and encoding the current zero run value based on the context coding mode or the bypass coding mode.
  • the attribute residual value includes: the residual value of the first color component, the residual value of the second color component and the residual value of the third color component; the attribute residual value of the point to be encoded is zero, and the current zero-run value performs a self-increment operation, including: determining that the residual value of the first color component, the residual value of the second color component and the residual value of the third color component of the point to be encoded are all zero, and the current zero-run value performs a self-increment operation; when the attribute residual value of the point to be encoded is not zero, encoding the current zero-run value, including: determining that the residual value of the first color component, the residual value of the second color component and the residual value of the third color component of the point to be encoded are not all zero, and encoding the current zero-run value.
  • the attribute residual is 0, then zero_run_length++, and encode the zero run value; if the attribute residual is not zero, first encode the zero run value, then reset the zero run value zero_run_length to zero, then encode the specific attribute residual, and finally encode the zero run value (the zero run value is 0 at this time).
  • the quantization residuals of the three color components are all zero, then zero_run_length++, and encode the zero run value; if the quantization residual of any one dimension of the three color components is not zero, first encode the zero run value, then reset the zero run value zero_run_length to zero, then encode the specific color quantization residual (Res0, Res1, Res2), and finally encode the zero run value.
  • the quantized residual of the reflectivity is zero, then zero_run_length++ is used and the zero run value is encoded; if the quantized residual of the reflectivity is not zero, the zero run value is encoded first, then the zero run value zero_run_length is reset to zero, and then the specific quantized residual of the reflectivity (Res) is encoded, and finally the zero run value is encoded.
  • S702 Encode the first type of indication information of the current zero run value
  • the first type of indication information can be understood as a part of information used to indicate the zero run value.
  • the first type of indication information includes at least one binary syntax element, and the binary syntax element can be understood as a syntax element with a value of 0 or 1.
  • the first type of indication information includes: first indication information encoded based on the context coding mode to indicate whether the current zero run value is any preset value from 0 to M1; wherein the value of M1 is greater than or equal to 0.
  • the preset value may be 0, 1, 2, 3, 4, and so on.
  • the first indication information includes M1+1 syntax elements for indicating whether the zero-run value is any preset value from 0 to M1, and each syntax element is used to indicate whether the zero-run value is a corresponding preset value.
  • each syntax element occupies one codeword, and when the value of the syntax element is 0, it is determined that the zero-run value is not a preset value, and when the value of the syntax element is 1, it is determined that the zero-run value is a preset value.
  • the syntax element can also be directly used to indicate the value of the zero-run value. Exemplarily, when the value of the syntax element is 0, it is determined that the value of the zero-run value is 0, and when the value of the syntax element is 1, it is determined that the value of the zero-run value is 1.
  • the first type of indication information further includes: second indication information for indicating a first reference value of a current zero-run value.
  • the second indication information includes M1+1 syntax elements for indicating whether the first reference value is any preset value from 0 to M1, and each syntax element is used to indicate whether the zero run value is the corresponding preset value.
  • each syntax element occupies one codeword, and when the value of the syntax element is 0, it is determined that the first reference value is not the preset value, and when the value of the syntax element is 1, it is determined that the first reference value is the preset value.
  • the syntax element can also be used directly to indicate the value of the first reference value. Exemplarily, when the value of the syntax element is 0, it is determined that the value of the first reference value is 0, and when the value of the syntax element is 1, it is determined that the value of the first reference value is 1.
  • the first type of indication information also includes: third indication information for indicating whether the second reference value of the current zero run value is any preset value from 0 to M2; wherein the value of M2 is greater than or equal to 0.
  • the second indication information includes M2+1 syntax elements for indicating whether the second reference value is any preset value from 0 to M2, and each syntax element is used to indicate whether the zero run value is the corresponding preset value.
  • each syntax element occupies one codeword, and when the value of the syntax element is 0, it is determined that the second reference value is not the preset value, and when the value of the syntax element is 1, it is determined that the second reference value is the preset value.
  • the syntax element can also be used directly to indicate the value of the second reference value. Exemplarily, when the value of the syntax element is 0, it is determined that the value of the second reference value is 0, and when the value of the syntax element is 1, it is determined that the value of the second reference value is 1.
  • the reference value of the zero run value can be understood as any reference value used to indicate the size of the zero run value.
  • the zero run value can be directly encoded.
  • M1+1 syntax elements are set for the reference value of the zero run value with a smaller value (for example, the syntax element of the zero run value with a value of 0-M1), each syntax element is used to indicate whether the reference value is a preset value, and the reference value of the zero run value is encoded only after it is determined that the value of the zero run value is not 0-M1.
  • the reference value when encoding the reference value of the zero run value, can be further mathematically transformed to obtain a reference value with a smaller value, so as to reduce the codeword of the encoded reference value and improve the encoding efficiency.
  • first indication information the second indication information and the third indication information, as well as the grammatical elements contained in each indication information, can be interchanged in a specific order or sequence where permitted, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.
  • the first type of indication information is encoded using a context-based coding mode; or, the first type of indication information is encoded using a bypass coding mode.
  • S703 Encode the second type of indication information of the current zero run value based on the context coding mode and the bypass coding mode, and write the obtained coded bits into the bitstream.
  • the second type of indication information can be understood as another part of information used to indicate the zero run value.
  • the second type of indication information is a non-binarized syntax element.
  • the second type of indication information includes binarized data of a reference value of the zero run value.
  • the reference value of the current zero run value can be any reference value with a smaller value obtained by mathematically converting the current zero run value.
  • the number of codewords of the binarized data of the reference value is less than the number of codewords of the binarized data of the current zero run value, and the encoded reference value can reduce the encoded codewords.
  • the second type of indication information of the current zero run value is encoded based on the context coding mode and the bypass coding mode, including: binary data of the reference value of the current zero run value is encoded based on the context coding mode and the bypass coding mode.
  • the first type of indication information includes: first indication information for indicating whether the current zero run value is any preset value from 0 to M1; wherein the value of M1 is greater than or equal to 0; second type of indication information for encoding the current zero run value based on the context coding mode and the bypass coding mode, including: when it is determined according to the first indication information that the current zero run value is not any preset value from 0 to M1, the second type of indication information for encoding the current zero run value based on the context coding mode and the bypass coding mode is used.
  • the value of M1 is 0, and the first indication information includes: a first syntax element for indicating whether the current zero run value is 0;
  • the method also includes: determining that the current zero run value is 0 according to the value of the first syntax element, and the current zero run value encoding is completed; determining that the current zero run value is not 0 according to the value of the first syntax element, and determining that the current zero run value is not any preset value from 0 to M1 according to the first indication information.
  • the value of M1 is 2, and the first indication information includes: a first syntax element for indicating whether the current zero run value is 0; a second syntax element for indicating whether the current zero run value is 1; a third syntax element for indicating whether the current zero run value is 2;
  • the method also includes: determining that the current zero-run value is 0 according to the value of the first syntax element, and the current zero-run value encoding is completed; determining that the current zero-run value is not 0 according to the value of the first syntax element, and encoding the second syntax element based on the context encoding mode; determining that the current zero-run value is 1 according to the value of the second syntax element, and the current zero-run value encoding is completed; determining that the current zero-run value is not 1 according to the value of the second syntax element, and encoding the third syntax element based on the context encoding mode; determining that the current zero-run value is 2 according to the value of the third syntax element, and the current zero-run value encoding is completed; determining that the current zero-run value is not 2 according to the value of the third syntax element, and determining that the current zero-run value is not any preset value from 0 to M1 according to the first indication information.
  • the second type of indication information of the current zero run value is encoded based on the context coding mode and the bypass coding mode, including: encoding the binary data of the reference value of the current zero run value based on the context coding mode and the bypass coding mode.
  • the reference value of the current zero run value is determined to be the difference between the current zero run value and the first value; the first value is (M1+1).
  • FIG8 is a second flow diagram of an encoding method provided in an embodiment of the present application. As shown in FIG8, the method may include:
  • the reference value of the zero-run value includes more than two reference values.
  • the first reference value and the second reference value are determined according to the zero-run value.
  • the first type of indication information also includes second indication information for indicating the first reference value of the current zero-run value; the method also includes: determining the first reference value and the second reference value of the current zero-run value; determining the second indication information according to the first reference value; encoding the second type of indication information of the current zero-run value based on the context coding mode and the bypass coding mode, including: encoding the binary data for indicating the second reference value of the current zero-run value based on the context coding mode and the bypass coding mode.
  • FIG9 is a schematic diagram of the third flow of a coding method provided in an embodiment of the present application. As shown in FIG9 , the method may include:
  • S902 Encode first indication information of a current zero-run value and second indication information for indicating a first reference value
  • S903 Encode the binary data of the second reference value of the current zero run value in the context coding mode and the bypass coding mode, and write the obtained coded bits into the bitstream.
  • the first reference value is the remainder of the first difference divided by 2
  • the second reference value is the quotient of the first difference divided by 2
  • the first difference is the difference between the current zero run value and the first value
  • the first value is (M1+1).
  • the first value can be 1, 3, 5, 7, 9, etc.
  • the second indication information includes: a fourth syntax element for indicating the value of the first reference value.
  • the fourth syntax element can also be understood as being used to indicate the parity of the first reference value, or the fourth syntax element is also understood as being used to indicate the parity of the first difference value.
  • the value of the fourth syntax element is 0, it is determined that the first reference value is 0, or the first reference value is an even number, or the first difference value is an even number; when the value of the fourth syntax element is 1, it is determined that the first reference value is 1, or the first reference value is an odd number, or the first difference value is an odd number.
  • the first type of indication information further includes second indication information for indicating a first reference value of a current zero run value, and third indication information for indicating whether the second reference value of the current zero run value is any one of a preset value from 0 to M2;
  • the method further includes: determining a first reference value and a second reference value of the current zero run value; determining second indication information according to the first reference value; determining third indication information according to the second reference value;
  • the second type of indication information of the current zero run value is encoded based on the context coding mode and the bypass coding mode, including: determining that the second reference value is not any preset value from 0 to M2 according to the third indication information, determining the third reference value according to the second reference value, and encoding the binary data of the third reference value for indicating the current zero run value based on the context coding mode and the bypass coding mode.
  • FIG10 is a schematic diagram of a fourth flow chart of an encoding method provided in an embodiment of the present application. As shown in FIG10 , the method may include:
  • S1002 Encode first indication information of a current zero-run value, second indication information for indicating a first reference value, and third indication information for indicating a second reference value;
  • S1003 Encode the binarized data of the third reference value of the current zero-run value using the context coding mode and the bypass coding mode, and write the obtained coded bits into the bitstream.
  • the second indication information includes: a fourth syntax element for indicating a value of the first reference value.
  • the third indication information includes: a fifth grammatical element for indicating whether the second reference value is 0; a sixth grammatical element for indicating whether the second reference value is 1; a seventh grammatical element for indicating whether the second reference value is 2; and an eighth grammatical element for indicating whether the second reference value is 3.
  • the method also includes: encoding the fifth grammatical element; determining that the second reference value is 0 according to the value of the fifth grammatical element, and the encoding of the second reference value is completed; determining that the second reference value is not 0 according to the value of the fifth grammatical element, and encoding the sixth grammatical element; determining that the second reference value is 1 according to the value of the sixth grammatical element, and the encoding of the second reference value is completed; determining that the second reference value is not 1 according to the value of the sixth grammatical element, and encoding the seventh grammatical element; determining that the second reference value is 2 according to the value of the seventh grammatical element, and the encoding of the second reference value is completed; determining that the second reference value is not 2 according to the value of the seventh grammatical element, and encoding the eighth grammatical element; determining that the second reference value is 3 according to the value of the eighth grammatical element, and the
  • At least one syntax element for indicating whether the zero_run_length_minus3_div2 value is a preset value may also be set. If it is determined that the zero_run_length_minus3_div2 value is not a preset value, the first 4 codewords after binarization of zero_run_length_minus3_div2 minus the second value are encoded in a context-based encoding method, and the codewords after the first 4 codewords after binarization of zero_run_length_minus3_div2 minus the second value are encoded in a bypass encoding method.
  • the preset value includes a positive integer of 0-N
  • the second value is N+1. For example, the second value is 4.
  • the encoding mode of the second type of indication information is illustrated by examples.
  • a second type of indication information of a current zero-run value is encoded using a context-based coding mode and a bypass coding mode, including: according to the first coding mode, encoding the first N codewords of the binary data of the reference value of the current zero-run value using a context-based coding mode, and encoding the codewords after the first N codewords of the binary data of the reference value of the current zero-run value using a bypass coding mode.
  • the codec pre-agrees on the value of N.
  • the value of N is encoded, and the obtained coded bits are written into the bitstream.
  • it also includes: encoding a reference value of N, or encoding indication information of N.
  • the indication information of N can be a binary syntax element.
  • the binary data of N is encoded based on the context coding mode, or the binary data of the reference value of N is encoded, or the indication information of N is encoded.
  • the binary data of N is encoded based on the bypass coding mode, or the binary data of the reference value of N is encoded, or the indication information of N is encoded.
  • the binary data of N is encoded based on the context coding mode and the bypass coding mode, or the binary data of the reference value of N is encoded.
  • the encoding end uses different N values to calculate the number of clock cycles required to encode the binary string using each encoding mode, and can select the best N with the least number of clock cycles to encode the indication information of the best N.
  • a second type of indication information of a current zero-run value is encoded using a context-based coding mode and a bypass coding mode, including: according to the second coding mode, encoding the first N1 codewords of the first part of the binarized data of the reference value of the current zero-run value using the context-based coding mode, encoding the first N2 codewords of the second part of the binarized data of the reference value of the current zero-run value using the context-based coding mode; encoding the codewords after the first N1 codewords of the first part of the binarized data, and the codewords after the first N2 codewords of the second part of the binarized data using the bypass coding mode.
  • the reference value of the current zero run value can be any reference value.
  • the reference value of the current zero run value can be the difference between the current zero run value and the first value, or can be the second reference value of the current zero run value, or can be the third reference value of the current zero run value.
  • a coding method for the current zero run value specifically includes: using a context-based coding method for the first syntax element zero_run_length_equal_zero indicating whether the current zero run value is equal to 0 and the first 4 codewords after the binarization of the value zero_run_length_minus1 of the current zero run value minus 1, and using a bypass coding method for the codewords after the first 4 codewords after the binarization of zero_run_length_minus1.
  • Another encoding method for the current zero run value specifically includes: using a context-based encoding method for the first syntax element zero_run_length_equal_zero indicating whether the current zero run value is equal to 0, the first 2 codewords of the binarized prefix code of the value zero_run_length_minus1 of the current zero run value minus 1, and the first 2 codewords of the suffix code, and using a bypass encoding method for the first 2 codewords of the binarized prefix code of zero_run_length_minus1, and the codewords after the first 2 codewords of the suffix code.
  • a method for encoding the current zero run value specifically includes: using a context-based encoding method for the first 4 codewords after binarization of zero_run_length_equal_zero (first syntax element), zero_run_length_equal_one (second syntax element), zero_run_length_equal_two (third syntax element), zero_run_length_minus3_parity (fourth syntax element), and zero_run_length_minus3_div2 that may appear, and using a bypass encoding method for the codewords after the first 4 codewords after binarization of zero_run_length_minus3_div2.
  • Another encoding method for the current zero run value specifically includes: using context-based encoding for the possible zero_run_length_equal_zero (first syntax element), zero_run_length_equal_one (second syntax element), zero_run_length_equal_two (third syntax element), zero_run_length_minus3_parity (fourth syntax element), the first two codewords of the binarized prefix code of zero_run_length_minus3_div2, and the first two codewords of the suffix code, and using bypass encoding for the first two codewords of the binarized prefix code of zero_run_length_minus3_div2, and the codewords after the first two codewords of the suffix code.
  • another encoding method for the current zero run value specifically includes: adopting a context-based encoding method for the first 4 codewords after binarization of the possible zero_run_length_equal_zero (first syntax element), zero_run_length_equal_one (second syntax element), zero_run_length_equal_two (third syntax element), zero_run_length_minus3_parity (fourth syntax element), zero_run_length_minus3_div2_equal_zero (fifth syntax element), zero_run_length_minus3_div2_equal_one (sixth syntax element), zero_run_length_minus3_div2_equal_two (seventh syntax element), zero_run_length_minus3_div2_equal_three (eighth syntax element), and zero_run_length_minus3_div2_minus4 (third reference value), and adopting a bypass encoding method for the codewords after the first 4 codewords after binarization of zero_run_length_minus3
  • a second type of indication information of a current zero-run value is encoded using a context-based coding mode and a bypass coding mode, including: according to a third coding mode, encoding the first N1 codewords of the first part of the binarized data of the reference value of the current zero-run value using a context-based coding mode, encoding the codewords after the first N1 codewords of the first part of the binarized data using a bypass coding mode, and the codewords of the second part of the binarized data.
  • a second type of indication information of a current zero-run value is encoded using a context-based coding mode and a bypass coding mode, including: according to a fourth coding mode, encoding the codewords of the first part of the binarized data using the bypass coding mode, encoding the first N2 codewords of the second part of the binarized data of the reference value of the current zero-run value using the context-based coding mode, and encoding the codewords after the first N2 codewords of the second part of the binarized data using the bypass coding mode.
  • the first portion of binarized data is a prefix code of the reference value binarized data of the current zero run value
  • the second portion of binarized data is a suffix code of the reference value binarized data of the current zero run value
  • the codec pre-agreed the values of N1 and N2.
  • the value of N1 and/or the value of N2 are encoded, and the obtained coded bits are written into the bitstream.
  • it also includes: encoding the reference value of N1 and/or the reference value of N2, or encoding the indication information of N1 and/or the indication information of N2.
  • the specific encoding mode can refer to N.
  • the reference value of the current zero run value of the first part of the binary data is a prefix code after k-order exponential Golomb coding
  • the reference value of the current zero run value of the second part of the binary data is a suffix code after k-order exponential Golomb coding.
  • the k-order exponential Golomb coding has a codeword structure: [(M-k)zeros][1][INFO], where the prefix code is [(M-k)zeros][1], i.e., M-k zeros and the first non-zero bit, and the suffix code is [INFO], i.e., M-k data bits.
  • the encoding mode of the second type of indication information in the embodiment of the present application uses but is not limited to the first encoding mode, the second encoding mode, the third encoding mode or the fourth encoding mode.
  • the method when the encoding mode includes more than two encoding modes, the method further includes: determining the current zero run value to be encoded Coding mode; wherein the coding mode is used to indicate how to encode the current zero run value based on the context coding mode and the bypass coding mode.
  • determining the encoding mode of the current zero-run value to be encoded includes: encoding the current zero-run value using at least two encoding modes, determining the clock cycle of each encoding mode encoding the current zero-run value; determining the encoding mode with the smallest clock cycle as the best encoding mode; encoding a syntax element for indicating the best encoding mode, and writing the obtained encoding bits into the bitstream. Accordingly, the current zero-run value is encoded using the best encoding mode, and the obtained encoding bits are written into the bitstream.
  • determining the encoding mode of the current zero-run value to be encoded includes: determining the encoding mode according to the size of the current zero-run value to be encoded and/or the exponential Golomb order of the current zero-run value to be encoded. In some embodiments, determining the encoding mode of the current zero-run value to be encoded includes: determining the current zero-run value to be encoded; if the current zero-run value is greater than a first threshold, determining the encoding mode to be the first encoding mode; if the current zero-run value is less than or equal to the first threshold, determining the encoding mode to be the second encoding mode.
  • determining the encoding mode of the current zero-run value to be encoded includes: determining the encoding mode according to the size of the last encoded zero-run value and/or the exponential Golomb order of the current zero-run value to be encoded.
  • determining the encoding mode of the current zero-run value to be encoded includes: determining the last encoded zero-run value; if the last zero-run value is greater than a first threshold, determining the encoding mode to be the first encoding mode; if the last zero-run value is less than or equal to the first threshold, determining the encoding mode to be the second encoding mode.
  • determining the encoding mode of the current zero-run value to be encoded includes: determining the exponential Golomb order of the current zero-run value to be encoded; if the exponential Golomb order is less than a second threshold, determining the encoding mode to be the first encoding mode; if the exponential Golomb order is greater than or equal to the second threshold, determining the encoding mode to be the second encoding mode.
  • the second threshold can be any order.
  • the third-order exponential Golomb code for numbers from 0 to 7, according to the first encoding mode, there will be no bypass encoding codeword after binarization, according to the second encoding mode, there will be a bypass encoding codeword, and encoding according to the second encoding mode can save one clock cycle.
  • the codec uses the same order (the original acquisition order of the point cloud, Morton order, Hilbert order, etc.) to encode/decode the color quantization residual (Res 0 , Res 1 , Res 2 ) of each point in turn.
  • Zero_run_length is used to count whether the quantization residuals of the three color components are all 0, which is called the zero run value. Its initial value is set to 0 at the encoding end.
  • the encoding process for each point is as follows:
  • the zero run value is first encoded, then the zero run value zero_run_length is reset to 0, and then the specific color quantization residual (Res0, Res1, Res2) is encoded, and then the next point is processed.
  • the quantization residual of reflectance is not zero, the zero run value is first encoded, then the zero run value zero_run_length is reset to 0, and then the specific reflectance quantization residual is encoded, and then the next point is processed.
  • the quantization residual of the reflectivity is 0, then zero_run_length++ is used and the zero run value is encoded; if the quantization residual of the reflectivity is not zero, then the zero run value is encoded first, then the zero run value zero_run_length is reset to 0, then the specific reflectivity quantization residual is encoded, and finally the zero run value is encoded.
  • a method for encoding a zero run value specifically includes:
  • step b) "zero_run_length_equal_zero" is used to indicate whether the zero run value is equal to 0, and the "zero_run_length_equal_zero" flag is encoded in a context-based encoding method. If the zero run value is 0, the encoding of the zero run value is completed, otherwise, proceed to step b);
  • the first 2 codewords of the prefix code and the first 2 codewords of the suffix code after binarization of zero_run_length_minus1 are coded based on context, and the codewords after the first 2 codewords of the prefix code and the codewords after the first 2 codewords of the suffix code after binarization of zero_run_length_minus1 are coded by bypass coding, and the coding of zero run value is completed.
  • Another encoding method of zero run value specifically includes:
  • step b) "zero_run_length_equal_zero" is used to indicate whether the zero run value is equal to 0, and the "zero_run_length_equal_zero" flag is encoded in a context-based encoding method. If the zero run value is 0, the encoding of the zero run value is completed, otherwise, proceed to step b);
  • step c) using "zero_run_length_equal_one" to mark whether the zero run value is equal to 1, and encoding the "zero_run_length_equal_one” flag bit in a context-based encoding method; if the zero run value is 1, encoding the zero run value is completed, otherwise proceed to step c);
  • step d) using "zero_run_length_equal_two" to mark whether the zero run value is equal to 2, using context-based coding to encode the "zero_run_length_equal_two” flag, if the zero run value is 2, then the encoding of the zero run value is completed, otherwise proceed to step d);
  • zero_run_length_minus3_parity is used to mark the parity of the zero run value minus 3, that is, the remainder of the zero run value minus 3 and then divided by 2
  • zero_run_length_minus3_div2 is the quotient of the zero run value minus 3 and then divided by 2
  • the context-based coding method is used to encode the "zero_run_length_minus3_parity” flag bit, and the "zero_run_length_minus3_div2" value is binarized.
  • the first 4 codewords after binarization of zero_run_length_minus3_div2 are coded based on context, and the codewords after the first 4 codewords after binarization of zero_run_length_minus3_div2 are coded based on bypass.
  • coding of zero run value is completed.
  • the first two codewords of the binarized prefix code of zero_run_length_minus3_div2 and the first two codewords of the suffix code are coded based on context, while the codewords after the first two codewords of the binarized prefix code of zero_run_length_minus3_div2 and the codewords after the first two codewords of the suffix code are coded based on bypass, and the encoding of zero run value is completed.
  • the method further comprises: binarizing the current zero-run value to obtain binarized data of the current zero-run value, and encoding each codeword in the binarized data of the zero-run value.
  • the binarized data of the current zero-run value includes first-category indication information and second-category indication information.
  • the binarization encoding algorithm includes: unary code, truncated unary code, K-order exponential Golomb coding, etc.
  • the binarization process includes:
  • the zero run length value is equal to 0 flag (zero_run_length_equal_zero) is 0;
  • the zero run length equals 1 flag (zero_run_length_equal_one) is 0;
  • the zero run length equals 2 flag (zero_run_length_equal_two) is 0;
  • the parity indicator of the zero run value minus 3 (zero_run_length_minus3_parity) is 1; that is, it is the value of the remainder of the zero run value minus 3 divided by 2. Since the value of the remainder of the zero run value minus 3 divided by 2 is 0 or 1, the parity of the zero run value minus 3 is equivalent to the value of the remainder of the zero run value minus 3 divided by 2, which is also equivalent to the parity of the remainder, which is a first reference value of an embodiment of the present application.
  • the quotient of the zero run value minus 3 (zero_run_length_minus3_div2) is 3, which is a second reference value of the embodiment of the present application. 3 is further binarized. For example, taking the second-order exponential Golomb coding as an example, the result of binarizing 3 is 111. Therefore, for a zero run value of 10, the binarized code word result is 0 0 0 1 1 1 1.
  • the codec uses the same order (the original acquisition order of the point cloud, Morton order, Hilbert order, etc.) to encode/decode the attribute residual of each point in turn.
  • the zero run value is a count value of the points whose attribute residual value is 0.
  • all code words after the zero run value is binarized are encoded based on the context. From the perspective of hardware implementation, usually only one context-encoded code word (bin) can be processed in one clock cycle, and the hardware throughput is low.
  • the hardware can process 4-6 bypass-coded codewords in one clock cycle. If the context-based coding method is used for all codewords after the zero-run value is binarized, the hardware needs 7 clock cycles to complete the encoding/decoding of the zero-run value of 10. By using the encoding and decoding method provided in the embodiment of the present application, it can be shortened to 5 clock cycles, shortening the encoding and decoding time and improving the hardware throughput.
  • Another encoding method of zero run value specifically includes:
  • step b) "zero_run_length_equal_zero" is used to indicate whether the zero run value is equal to 0, and the "zero_run_length_equal_zero" flag is encoded in a context-based encoding method. If the zero run value is 0, the encoding of the zero run value is completed, otherwise, proceed to step b);
  • step c) using "zero_run_length_equal_one" to mark whether the zero run value is equal to 1, and encoding the "zero_run_length_equal_one” flag bit in a context-based encoding method; if the zero run value is 1, encoding the zero run value is completed, otherwise proceed to step c);
  • step d) using "zero_run_length_equal_two" to mark whether the zero run value is equal to 2, using context-based coding to encode the "zero_run_length_equal_two” flag, if the zero run value is 2, then the encoding of the zero run value is completed, otherwise proceed to step d);
  • step e) using "zero_run_length_minus3_parity" to mark the parity of the zero run value minus 3, that is, the remainder of the zero run value minus 3 divided by 2, and encoding the "zero_run_length_minus3_parity" identifier using a context-based encoding method, and proceeding to step e);
  • step f Use "zero_run_length_minus3_div2_equal_zero" to mark whether the quotient of the zero run value minus 3 and then divided by 2 is equal to 0, and encode the "zero_run_length_minus3_div2_equal_zero" flag in a context-based encoding method. If the quotient of the zero run value minus 3 and then divided by 2 is 0, the encoding of the zero run value is completed, otherwise go to step f);
  • step f) Use "zero_run_length_minus3_div2_equal_one" to mark whether the quotient of the zero run value minus 3 and then divided by 2 is equal to 1, and encode the "zero_run_length_minus3_div2_equal_one" flag in a context-based encoding method. If the quotient of the zero run value minus 3 and then divided by 2 is 1, the encoding of the zero run value is completed, otherwise go to step g);
  • step h using "zero_run_length_minus3_div2_equal_two" to mark whether the quotient of the zero run value minus 3 and then divided by 2 is equal to 2, and encoding the "zero_run_length_minus3_div2_equal_two" flag in a context-based encoding manner. If the quotient of the zero run value minus 3 and then divided by 2 is 2, the encoding of the zero run value is completed, otherwise proceed to step h);
  • zero_run_length_minus3_div2_minus4 is the value of the zero run value minus 3 divided by 2 minus 4, and the value of zero_run_length_minus3_div2_minus4" is binarized.
  • the first four codewords after binarization of zero_run_length_minus3_div2_minus4 are encoded using a context-based coding method, and the codewords after the first four codewords after binarization of zero_run_length_minus3_div2_minus are encoded using a bypass coding method, and the encoding of the zero run value is completed.
  • the first two codewords of the binary prefix code of zero_run_length_minus3_div2_minus4 and the first two codewords of the suffix code are encoded using a context-based coding method, while the codewords after the first two codewords of the binary prefix code of zero_run_length_minus3_div2_minus4 and the codewords after the first two codewords of the suffix code are encoded using a bypass coding method, and the encoding of the zero run value is completed.
  • the second type of indication information of the current zero run value is mixedly encoded based on the context coding mode and the bypass coding mode.
  • the difficulty of hardware implementation is reduced, the hardware processing cycle is shortened, and the hardware throughput is improved, thereby improving the encoding efficiency of the current zero run value.
  • FIG11 a schematic flow chart of a decoding method provided by an embodiment of the present application is shown. As shown in FIG11 , the method may include:
  • S1101 Decode the first type of indication information of the current zero run value
  • the first type of indication information includes at least one binary syntax element, and the binary syntax element can be understood as a syntax element with a value of 0 or 1.
  • the first type of indication information for decoding the current zero run value includes but is not limited to the following: using a context-based decoding model The first type of indication information is decoded in a bypass decoding mode; or, the first type of indication information is decoded in a bypass decoding mode.
  • the first type of indication information includes: first indication information decoded based on the context decoding mode to indicate whether the current zero run value is any preset value from 0 to M1; wherein the value of M1 is greater than or equal to 0;
  • the second type of indication information for decoding the current zero run value based on the context decoding mode and the bypass decoding mode includes: when it is determined according to the first indication information that the current zero run value is not any preset value from 0 to M1, the second type of indication information for decoding the current zero run value based on the context decoding mode and the bypass decoding mode is used.
  • the value of the current zero run value can be determined by decoding the first indication information based on the context decoding mode.
  • S802 is further executed to decode the second type of indication information of the current zero run value based on the context decoding mode and the bypass decoding mode.
  • the current zero run value is less than or equal to M1
  • the value of the current zero run value can be determined by decoding the first indication information based on the context decoding mode.
  • the second type of indication information of the current zero run value is decoded based on the context decoding mode and the bypass decoding mode.
  • the first indication information includes (M1+1) syntax elements for indicating whether the current zero run value is between 0 and M1.
  • the value of M1 can be 0, 1, 2, 3, 4, etc. It should be noted that when the value of the current zero run value is small, for example, M1+1 syntax elements are set to a value of 0-M1, each syntax element is used to indicate whether the current zero run value is a preset value, and to determine whether the value of the current zero run value is not 0-M1.
  • the syntax elements included in the first indication information can be expressed as: zero_run_length_equal_i, i takes a preset value of 0-M1.
  • the value of M1 is 0, and the first indication information includes: a first syntax element for indicating whether the current zero run value is 0; the method also includes: determining that the current zero run value is 0 according to the value of the first syntax element, and the current zero run value decoding is completed; determining that the current zero run value is not 0 according to the value of the first syntax element, and determining that the current zero run value is not any preset value from 0 to M1 according to the first indication information.
  • the value of M1 is 2, and the first indication information includes: a first syntax element for indicating whether the current zero run value is 0; a second syntax element for indicating whether the current zero run value is 1; a third syntax element for indicating whether the current zero run value is 2; the method also includes: determining that the current zero run value is 0 according to the value of the first syntax element, and the current zero run value decoding is completed; determining that the current zero run value is not 0 according to the value of the first syntax element, and decoding the second syntax element based on the context decoding mode; determining that the current zero run value is 1 according to the value of the second syntax element, and the current zero run value decoding is completed; determining that the current zero run value is not 1 according to the value of the second syntax element, and decoding the third syntax element based on the context decoding mode; determining that the current zero run value is 2 according to the value of the third syntax element, and the current zero run value decoding is completed; determining that the current zero run value is not
  • the value of the syntax element when the value of the syntax element is 1, it indicates that the current zero-run value is the corresponding preset value, and when the value of the syntax element is 0, it indicates that the current zero-run value is not the corresponding preset value.
  • S1102 Decoding the second type of indication information of the current zero run value in a context-based decoding mode and a bypass decoding mode;
  • S1103 Determine a current zero-run value according to the first type of indication information and the second type of indication information.
  • the first type of indication information can be understood as a part of information used to indicate the zero run value.
  • the first type of indication information includes at least one binary syntax element, and the binary syntax element can be understood as a syntax element with a value of 0 or 1.
  • the second type of indication information can be understood as another part of information used to indicate the zero run value.
  • the second type of indication information is a non-binarized syntax element.
  • the second type of indication information includes binarized data of a reference value of the zero run value.
  • the reference value of the current zero run value can be any reference value with a smaller value obtained by mathematically converting the current zero run value.
  • the number of codewords of the binarized data of the reference value is less than the number of codewords of the binarized data of the current zero run value, and the decoding reference value can reduce the decoding codewords.
  • the second type of indication information of the current zero run value is decoded based on the context decoding mode and the bypass decoding mode, including: using the binary data of the reference value of the current zero run value to decode based on the context decoding mode and the bypass decoding mode to determine the reference value of the current zero run value.
  • the reference value of the current zero run value is the difference between the current zero run value and the first value, and the first value is M1+1.
  • the first type of indication information further includes second indication information for indicating a first reference value of a current zero-run value
  • the reference value of the current zero run value can be further decomposed into a first reference value and a second reference value for decoding, and the second indication information of the first reference value and the binary data of the second reference value can be decoded respectively.
  • the decoding efficiency can be improved.
  • decoding the first reference value of the current zero run value based on the context decoding mode includes: decoding the second indication information indicating whether the first reference value of the current zero run value is a preset value from 0 to M2 based on the context decoding mode; wherein, The value of M2 is greater than or equal to 0; and the first reference value is determined according to the second indication information.
  • the second indication information includes (M2+1) syntax elements for indicating whether the first reference value is 0 to M2.
  • the value of M2 is 1, and the second indication information includes: a fourth syntax element for indicating that the second reference value is 0 or 1. Accordingly, decoding the first reference value of the current zero run value based on the context decoding mode includes: decoding the fourth syntax element for indicating the first reference value of the current zero run value based on the context decoding mode; when the value of the fourth syntax element is 0, determining that the first reference value is 0; when the value of the fourth syntax element is 1, determining that the first reference value is 1.
  • the first reference value is determined to be 0; when the value of the fourth syntax element is 1, the first reference value is determined to be 1.
  • the first reference value is the remainder of the first difference divided by 2
  • the second reference value is the quotient of the first difference divided by 2
  • the first difference is the difference between the current zero run value and the first value.
  • the first value is (M1+1).
  • the fourth syntax element can also be understood as being used to indicate the parity of the first reference value.
  • the value of the fourth syntax element it is determined that the first reference value is an even number; when the value of the fourth syntax element is 1, it is determined that the first reference value is an odd number.
  • the first type of indication information further includes second indication information for indicating a first reference value of a current zero run value, and third indication information for indicating whether the second reference value of the current zero run value is any one of a preset value from 0 to M2;
  • Decoding the second type of indication information of the current zero run value using the context decoding mode and the bypass decoding mode includes: determining that the second reference value is not any preset value from 0 to M2 according to the third indication information, and decoding the binarized data of the third reference value indicating the current zero run value using the context decoding mode and the bypass decoding mode;
  • Determine the current zero-run value according to the first type of indication information and the second type of indication information including: determine the first reference value according to the second indication information; determine the third reference value according to the binarized data of the third reference value; determine the second reference value according to the third reference value; determine the current zero-run value according to the first reference value and the second reference value.
  • the second indication information includes: a fourth syntax element for indicating a value of the first reference value.
  • the third indication information includes: a fifth grammatical element for indicating whether the second reference value is 0; a sixth grammatical element for indicating whether the second reference value is 1; a seventh grammatical element for indicating whether the second reference value is 2; and an eighth grammatical element for indicating whether the second reference value is 3.
  • the method also includes: decoding the fifth grammatical element; determining that the second reference value is 0 according to the value of the fifth grammatical element, and the second reference value decoding is completed; determining that the second reference value is not 0 according to the value of the fifth grammatical element, and decoding the sixth grammatical element; determining that the second reference value is 1 according to the value of the sixth grammatical element, and the second reference value decoding is completed; determining that the second reference value is not 1 according to the value of the sixth grammatical element, and decoding the seventh grammatical element; determining that the second reference value is 2 according to the value of the seventh grammatical element, and the second reference value decoding is completed; determining that the second reference value is not 2 according to the value of the seventh grammatical element, and decoding the eighth grammatical element; determining that the second reference value is 3 according to the value of the eighth grammatical element, and the second reference value decoding is completed; determining that the second reference value
  • the first reference value is the remainder of the first difference value divided by 2
  • the second reference value is the quotient of the first difference value divided by 2
  • the third reference value is the difference between the second reference value and the second value; wherein the first difference value is the difference between the current zero run value and the first value.
  • a second type of indication information of a current zero-run value is decoded using a context-based decoding mode and a bypass decoding mode, including: according to the first decoding mode, decoding the first N codewords of the binary data of the reference value of the current zero-run value using a context-based decoding mode, and decoding the codewords after the first N codewords of the binary data of the reference value of the current zero-run value using a bypass decoding mode.
  • the method further includes: decoding the bit stream to determine the value of N.
  • the code stream is decoded to determine the reference value of N; and the value of N is determined according to the reference value of N.
  • the code stream is decoded to determine the indication information of N; and the value of N is determined according to the indication information of N.
  • the indication information of N may be a binarized syntax element.
  • the binarized data of N is decoded based on the context decoding mode, or the binarized data of the reference value of N is decoded, or the indication information of N is decoded.
  • the binarized data of N is decoded based on the bypass decoding mode, or the binarized data of the reference value of N is decoded, or the indication information of N is decoded. In some embodiments, the binarized data of N is decoded based on the context decoding mode and the bypass decoding mode, or the binarized data of the reference value of N is decoded.
  • a context-based decoding mode and a bypass decoding mode are used to decode the second type of indication information of the current zero-run value, including: according to the second decoding mode, the first N1 codewords of the first part of the binarized data of the reference value of the current zero-run value are decoded using the context-based decoding mode, and the first N2 codewords of the second part of the binarized data of the reference value of the current zero-run value are decoded using the context-based decoding mode; the bypass decoding mode is used to decode the codewords after the first N1 codewords of the first part of the binarized data, and the codewords after the first N2 codewords of the second part of the binarized data.
  • the method further comprises: decoding the bitstream to determine the value of N1. In some embodiments, decoding the bitstream to determine the reference value of N1; determining the value of N1 according to the reference value of N1 In some embodiments, the code stream is decoded, and the indication information of N1 is used to determine the value of N1.
  • the specific decoding mode can refer to N.
  • the method further comprises: decoding the code stream to determine the value of N2. In some embodiments, decoding the code stream to determine the reference value of N2; determining the value of N2 according to the reference value of N2. In some embodiments, decoding the code stream, indicating information of N2, and determining the value of N2.
  • the specific decoding mode can refer to N.
  • the method further includes: decoding the bit stream, and determining the value of N1 and the value of N2.
  • N1 and N2 are equal or unequal.
  • the sum of N1 and N2 is equal to N.
  • the sum of N1 and N2 is not equal to N.
  • a context-based decoding mode and a bypass decoding mode are used to decode the second type of indication information of the current zero-run value, including: according to a third decoding mode, the context-based decoding mode is used to decode the first N1 codewords of the first part of the binary data of the reference value of the current zero-run value, and the bypass decoding mode is used to decode the codewords after the first N1 codewords of the first part of the binary data, as well as the codewords of the second part of the binary data.
  • a context-based decoding mode and a bypass decoding mode are used to decode the second type of indication information of the current zero run value, including: according to a fourth decoding mode, the bypass decoding mode is used to decode the codewords of the first part of the binary data, the context-based decoding mode is used to decode the first N2 codewords of the second part of the binary data of the reference value of the current zero run value, and the bypass decoding mode is used to decode the codewords after the first N2 codewords of the second part of the binary data.
  • N1 and N2 are equal or unequal in the third decoding mode and the fourth decoding mode. In some embodiments, N1 and N2 are both equal to N.
  • the first portion of binarized data may be a prefix code of the binarized data corresponding to the reference value of the current zero-run value
  • the second portion of binarized data may be a suffix code of the binarized data
  • the reference value of the current zero run value of the first part of the binary data is a prefix code after k-order exponential Golomb coding
  • the reference value of the current zero run value of the second part of the binary data is a suffix code after k-order exponential Golomb coding.
  • the k-order exponential Golomb coding has a codeword structure: [(M-k)zeros][1][INFO], where the prefix code is [(M-k)zeros][1], i.e., M-k zeros and the first non-zero bit, and the suffix code is [INFO], i.e., M-k data bits.
  • the second decoding mode decodes the first N1 codewords of the prefix code [(M-k)zeros][1] and the first N2 codewords of the suffix code [INFO] based on the context decoding mode, and uses the bypass decoding mode to decode other codewords.
  • the third decoding mode decodes the first N1 codewords of the prefix code [(M-k)zeros][1] based on the context decoding mode, and uses the bypass decoding mode to decode other codewords.
  • the fourth decoding mode decodes the first N2 codewords of the suffix code [INFO] based on the context decoding mode, and uses the bypass decoding mode to decode other codewords.
  • the decoding mode of the second type of indication information in the embodiment of the present application uses but is not limited to the first decoding mode, the second decoding mode, the third decoding mode or the fourth decoding mode. Moreover, the decoding end adopts a decoding mode corresponding to the encoding mode of the encoding end.
  • the method when the decoding mode includes more than two decoding modes, the method further includes: determining a decoding mode of a current zero-run value to be decoded; wherein the decoding mode is used to indicate how to decode the current zero-run value based on the context decoding mode and the bypass decoding mode;
  • determining the decoding mode of the current zero-run value to be decoded includes: decoding the code stream and determining the decoding mode. It should be noted that two or more encoding modes are pre-set, and the encoding end first binarizes the current zero-run value to obtain a binary string after binarization, and then calculates the number of clock cycles required for encoding the binary string using each encoding mode, selects the encoding mode with the least number of clock cycles as the optimal encoding mode, and encodes the syntax elements used to indicate the optimal encoding mode and writes them into the code stream. The decoding end decodes the code stream and determines the decoding mode corresponding to the optimal encoding mode.
  • the decoding mode is determined based on the size of the last decoded zero-run value and/or the Exponential Golomb order of the current zero-run value to be decoded.
  • the decoding end and the encoding end can also use the same judgment criteria to determine which decoding mode is used for the current zero-run value to be decoded.
  • the decoding mode of the current zero-run value to be decoded is determined based on the size of the last decoded zero-run value.
  • the decoding mode of the current zero-run value to be decoded is determined based on the order k.
  • the decoding mode can also be determined by simultaneously considering the size of the last decoded zero-run value and the Columbus order of the current zero-run value to be decoded.
  • the decoding mode includes a first decoding mode and a second decoding mode; determining the decoding mode of the current zero-run value to be decoded includes: the previous zero-run value is greater than a first threshold, determining that the decoding mode is the first decoding mode; the previous zero-run value is less than or equal to the first threshold, determining that the decoding mode is the second decoding mode.
  • determining the decoding mode of the current zero-run value to be decoded includes: when the exponential Golomb order is less than the second threshold, determining the decoding mode to be the first decoding mode; when the exponential Golomb order is greater than or equal to the second threshold, determining the decoding mode to be the second decoding mode.
  • the third-order exponential Golomb code for numbers 0 to 7, according to the first decoding mode, there will be no bypass decoding codeword after binarization, and according to the second decoding mode, there will be There is a bypass decoding codeword, decoding according to the second decoding mode can save one clock cycle.
  • the current zero run value after determining the current zero run value, it also includes: when the current zero run value is non-zero, determining that the attribute residual value of the point to be decoded is zero, and performing a subtraction operation on the current zero run value; when the current zero run value is zero, determining that the attribute residual value of the point to be decoded is not zero, decoding the attribute residual value of the point to be decoded; and determining the attribute reconstruction value of the point to be decoded based on the attribute residual value of the point to be decoded.
  • the method further includes: reordering the point cloud in the current node to determine the traversal order of attribute decoding (original acquisition order, Morton order, Hilbert order, etc.).
  • attribute decoding original acquisition order, Morton order, Hilbert order, etc.
  • single-point prediction is performed based on the traversal order, that is, tracing back one point from the current point to be decoded in accordance with the traversal order, and the point found is the prediction reference point of the current point to be decoded, and then the attribute reconstruction value of the prediction reference point is used as the attribute prediction value, and the attribute reconstruction value is determined according to the attribute residual value and the attribute prediction value.
  • the current node includes multiple points to be decoded.
  • the current node includes at least one of the following: a current point cloud sequence (sequence), a current point cloud frame (frame), a current point cloud strip (tile), and a current point cloud slice (slice).
  • the method when the current zero run value is zero, it is determined that the attribute residual value of the to-be-decoded point is not zero, and after decoding the attribute residual value of the to-be-decoded point, the method further includes: decoding the next zero run value, that is, continuing to execute steps S1101-S1103.
  • the method further includes: determining the point to be decoded as the last point to be decoded based on the traversal order of the points; when the current zero run value is non-zero, determining the attribute residual value of the point to be decoded is zero; when the current zero run value is zero, determining that the attribute residual value of the point to be decoded is not zero, and decoding the attribute residual value of the point to be decoded.
  • the attribute information of the point cloud includes: color information and reflectivity.
  • the color information includes a first color component, a second color component, and a third color component.
  • the color information may be RGB information. Accordingly, the first color component is a red component, the second color component is a green component, and the third color component is a blue component.
  • the color information may also be brightness and chromaticity (YCbCr, YUV) information. Accordingly, the first color component is a brightness component, the second color component is a blue chromaticity component, and the third color component is a red chromaticity component.
  • the attribute residual value includes at least one of the following: a residual value of the first color component, a residual value of the second color component, and a residual value of the third color component.
  • the attribute residual value includes a residual value of the reflectivity.
  • the zero-run value is used to count whether a residual value of an attribute is zero.
  • corresponding zero-run values are set for the residual values of the first color component, the second color component, and the third color component, respectively, and whether the residual values of the respective color components are zero is counted.
  • a corresponding zero-run value is set for the residual value of the reflectivity, and whether the residual value of the reflectivity is zero is counted.
  • the zero run value is used to count whether at least two attribute residual values are both zero.
  • corresponding zero-run values are set for any two of the residual values of the first color component, the second color component, and the third color component. For example, corresponding zero-run values are set for the residual values of the second color component and the third color component to count whether the residual values of the second color component and the third color component are both 0, and a corresponding zero-run value is set separately for the residual value of the first color component to count whether the residual value of the first color component is 0.
  • the attribute residual value includes: a residual value of a first color component, a residual value of a second color component, and a residual value of a third color component.
  • determining that the attribute residual value of the point to be decoded is zero includes: when the current zero run value is non-zero, determining that the residual value of the first color component of the point to be decoded, the residual value of the second color component, and the residual value of the third color component are all zero; when the current zero run value is zero, determining that the attribute residual value of the point to be decoded is not zero includes: when the current zero run value is zero, determining that the residual value of the first color component of the point to be decoded, the residual value of the second color component, and the residual value of the third color component are not all zero.
  • the attribute residual value includes a residual value of a reflectivity; when the current zero-run value is non-zero, the attribute residual value of the point to be decoded is determined to be zero, including: when the current zero-run value is non-zero, the residual value of the reflectivity of the point to be decoded is determined to be zero; when the current zero-run value is zero, the attribute residual value of the point to be decoded is determined to be not zero, including: when the current zero-run value is zero, the residual value of the reflectivity of the point to be decoded is determined to be not zero.
  • the attribute residual value comprises a quantized residual value or a quantized transform coefficient.
  • the codec uses the same order (the original acquisition order of the point cloud, Morton order, Hilbert order, etc.) to encode/decode the color quantization residual (Res 0 , Res 1 , Res 2 ) of each point in turn.
  • Zero_run_length is used to count whether the quantization residuals of the three color components are all 0, which is called the zero run value.
  • the zero run value is determined by decoding the bit stream. The decoding process for each point is as follows:
  • step b) "zero_run_length_equal_zero" is used to indicate whether the zero run value is equal to 0, and the "zero_run_length_equal_zero" flag is decoded in a context-based decoding manner. If the zero run value is 0, the decoding of the zero run value is completed, otherwise, step b) is entered;
  • the first four codewords after binarization of zero_run_length_minus1 are decoded based on context, and the codewords after the first four codewords after binarization of zero_run_length_minus1 are decoded based on bypass.
  • the first two codewords of the binarized prefix code of zero_run_length_minus1 and the first two codewords of the suffix code are decoded based on context, while the codewords after the first two codewords of the binarized prefix code of zero_run_length_minus1 and the codewords after the first two codewords of the suffix code are decoded based on bypass.
  • syntax table description is shown in Table 2.
  • Another method for decoding zero run values specifically includes:
  • the first four binarized codewords of zero_run_length_minus3_div2 are decoded using a context-based decoding method, and the codewords after the first four binarized codewords of zero_run_length_minus3_div2 are decoded using a bypass decoding method to determine zero_run_length_minus3_div2.
  • the first two codewords of the binarized prefix code of zero_run_length_minus3_div2 and the first two codewords of the suffix code adopt a context-based decoding method, while the codewords after the first two codewords of the binarized prefix code of zero_run_length_minus3_div2 and the codewords after the first two codewords of the suffix code adopt a bypass decoding method to determine zero_run_length_minus3_div2.
  • the syntax table description is shown in Table 3.
  • Another method for decoding zero run values specifically includes:
  • the first four codewords after binarization of zero_run_length_minus3_div2_minus4 are decoded using a context-based decoding method, and the codewords after the first four codewords after binarization of zero_run_length_minus3_div2_minus are decoded using a bypass decoding method to determine zero_run_length_minus3_div2_minus4.
  • the context-based decoding method is used to decode the first 2 codewords of the binarized prefix code and the first 2 codewords of the suffix code of zero_run_length_minus3_div2_minus4
  • the bypass decoding method is used to decode the codewords after the first 2 codewords of the binarized prefix code of zero_run_length_minus3_div2_minus4, as well as the codewords after the first 2 codewords of the suffix code, to determine zero_run_length_minus3_div2_minus4.
  • attribute residual zero run value is 3+parity+((zero_run_length_minus3_div2_minus4+4) ⁇ 1), and the decoding of the zero run value is completed.
  • syntax table description is shown in Table 4.
  • the second type of indication information of the current zero run value is hybridly decoded based on the context decoding mode and the bypass decoding mode.
  • the difficulty of hardware implementation is reduced, the hardware processing cycle is shortened, and the hardware throughput is improved, thereby improving the decoding efficiency of the current zero run value.
  • Table 5.1 and Table 5.2 are test results of the prediction branch based on the embodiments corresponding to Table 3 and the second encoding mode/second decoding mode.
  • Table 5.1 shows the test results under test condition 3 (C3-lossless geometry, limit-lossy attributes)
  • Table 5.2 shows the test results under test condition 4 (C4-lossless geometry, lossless attributes)
  • Tables 6.1 to 6.4 are test results of multi-layer transformation branches based on the corresponding embodiments of Table 3.
  • Table 6.1 shows the test results under test condition 1 (C1-limit-lossy geometry, lossy attributes)
  • Table 6.2 shows the test results under test condition 1 (C2-lossless geometry, lossy attributes)
  • Table 6.3 shows the test results under test condition 3 (C3-lossless geometry, limit-lossy attributes)
  • Table 6.4 shows the test results under test condition 4 (C4-lossless geometry, lossless attributes)
  • Tables 7.1 to 7.2 are test results of resource-constrained predictive transformation branches based on the corresponding embodiments of Table 3.
  • Table 7.1 shows the test results under test condition 1 (C1-limit-lossy geometry, lossy attributes)
  • Table 7.2 shows the test results under test condition 2 (C2-lossless geometry, lossy attributes)
  • Tables 8.1 to 8.2 are test results of the prediction transformation branch with unlimited resources based on the corresponding embodiments of Table 3.
  • Table 8.1 shows the test results under test condition 1 (C1-limit-lossy geometry, lossy attributes)
  • Table 8.2 shows the test results under test condition 2 (C2-lossless geometry, lossy attributes)
  • an embodiment of the present application also provides a code stream, which is generated by bit encoding according to information to be encoded; wherein the information to be encoded includes at least one of the following: a syntax element for indicating an optimal encoding mode, first type of indication information, second type of indication information, a value of N, a value of N1, and a value of N2.
  • the first type of indication information includes at least one of the first indication information, the second indication information, and the third indication information
  • the second type of indication information includes binary data of a reference value of a zero run value.
  • FIG12 shows a schematic diagram of the composition structure of an encoder provided by an embodiment of the present application.
  • the encoder 120 may include a first determining unit 1201 and an encoding unit 1202; wherein,
  • the first determining unit 1201 is configured to determine a current zero-run value to be encoded
  • An encoding unit 1202 is configured to encode first type indication information of a current zero run value
  • the encoding unit 1202 is further configured to use a second type of index based on the context encoding mode and the bypass encoding mode to encode the current zero run value.
  • the information is displayed and the obtained coded bits are written into the bit stream.
  • the first type of indication information includes: first indication information for indicating whether the current zero run value is any preset value from 0 to M1; wherein the value of M1 is greater than or equal to 0;
  • the encoding unit 1202 is configured to, when it is determined according to the first indication information that the current zero run value is not any preset value from 0 to M1, use the second type of indication information based on the context coding mode and the bypass coding mode to encode the current zero run value.
  • the first indication information includes: a first syntax element for indicating whether the current zero-run value is 0;
  • the encoding unit 1202 is configured to determine that the current zero run value is 0 according to the value of the first syntax element, and the current zero run value encoding is completed; determine that the current zero run value is not 0 according to the value of the first syntax element, and determine that the current zero run value is not any preset value from 0 to M1 according to the first indication information.
  • the value of M1 is 2, and the first indication information includes:
  • a third syntax element for indicating whether the current zero-run value is 2;
  • Coding unit 1202 is configured to determine that the current zero-run value is 0 according to the value of the first syntax element, and the current zero-run value encoding is completed; determine that the current zero-run value is not 0 according to the value of the first syntax element, and encode the second syntax element using the context-based coding mode; determine that the current zero-run value is 1 according to the value of the second syntax element, and the current zero-run value encoding is completed; determine that the current zero-run value is not 1 according to the value of the second syntax element, and encode the third syntax element using the context-based coding mode; determine that the current zero-run value is 2 according to the value of the third syntax element, and the current zero-run value encoding is completed; determine that the current zero-run value is not 2 according to the value of the third syntax element, and according to the first indication information, determine that the current zero-run value is not any preset value from 0 to M1.
  • the encoding unit 1202 is configured to encode binary data of a reference value of a current zero run value based on a context encoding mode and a bypass encoding mode; wherein the reference value of the current zero run value is the difference between the current zero run value and (M1+1).
  • the first type of indication information further includes second indication information for indicating a first reference value of a current zero-run value
  • the first determining unit 1201 is configured to determine a first reference value and a second reference value of a current zero-run value; and determine second indication information according to the first reference value;
  • the encoding unit 1202 is configured to encode binary data of a second reference value indicating a current zero-run value by adopting a context-based encoding mode and a bypass encoding mode.
  • the first reference value is the remainder of the first difference divided by 2
  • the second reference value is the quotient of the first difference divided by 2
  • the first difference is the difference between the current zero run value and (M1+1).
  • the first type of indication information further includes second indication information for indicating a first reference value of the current zero run value, and third indication information for indicating whether the second reference value of the current zero run value is any one of a preset value from 0 to M2;
  • the first determining unit 1201 is configured to determine the first reference value and the second reference value of the current zero run value; determine the second indication information according to the first reference value; and determine the third indication information according to the second reference value;
  • the encoding unit 1202 is configured to determine that the second reference value is not any preset value from 0 to M2 according to the third indication information, determine the third reference value according to the second reference value, and encode the binary data of the third reference value for indicating the current zero run value based on the context coding mode and the bypass coding mode.
  • the second indication information includes: a fourth syntax element for indicating a value of the first reference value.
  • the third indication information includes: a fifth grammatical element for indicating whether the second reference value is 0; a sixth grammatical element for indicating whether the second reference value is 1; a seventh grammatical element for indicating whether the second reference value is 2; and an eighth grammatical element for indicating whether the second reference value is 3.
  • the first reference value is the remainder of the first difference value divided by 2
  • the second reference value is the quotient of the first difference value divided by 2
  • the third reference value is the difference between the second reference value and the second value; wherein the first difference value is the difference between the current zero run value and the first value.
  • the first value is (M1+1), and the second value is (M2+1).
  • the encoding unit 1202 is configured to encode the first N codewords of the binary data of the reference value of the current zero run value according to the first encoding mode using a context-based encoding mode, and to encode the codewords after the first N codewords of the binary data of the reference value of the current zero run value using a bypass encoding mode.
  • the encoding unit 1202 is configured to encode the value of N and write the obtained encoded bits into the bit stream.
  • the encoding unit 1202 is configured to, according to the second encoding mode, encode the first N1 codewords of the first part of the binarized data of the reference value of the current zero run value using a context-based encoding mode, and encode the first N2 codewords of the second part of the binarized data of the reference value of the current zero run value using a context-based encoding mode; and encode the codewords after the first N1 codewords of the first part of the binarized data and the codewords after the first N2 codewords of the second part of the binarized data using a bypass encoding mode.
  • the encoding unit 1202 is configured to encode the first N1 codewords of the first part of the binary data of the reference value of the current zero run value using the context-based encoding mode according to the third encoding mode, and encode the first part of the binary data using the bypass encoding mode.
  • the bypass encoding mode is used to encode the codewords of the first part of the binarized data
  • the context-based encoding mode is used to encode the first N2 codewords of the second part of the binarized data of the reference value of the current zero run value
  • the bypass encoding mode is used to encode the codewords after the first N2 codewords of the second part of the binarized data.
  • the first portion of binarized data is a prefix code of the reference value binarized data of the current zero run value
  • the second portion of binarized data is a suffix code of the reference value binarized data of the current zero run value
  • the encoding unit 1202 is configured to encode the value of N1 and/or the value of N2, and write the obtained coded bits into the bit stream.
  • the first determination unit 1201 is configured to determine a coding mode for a current zero-run value to be encoded; wherein the coding mode is used to indicate how to encode the current zero-run value based on a context coding mode and a bypass coding mode.
  • the first determining unit 1201 is configured to use at least two encoding modes to encode the current zero run value, determine the clock period of each encoding mode to encode the current zero run value; and determine the encoding mode with the smallest clock period as the best encoding mode;
  • the encoding unit 1202 is configured to encode a syntax element for indicating an optimal encoding mode, and write the obtained encoding bits into a bitstream.
  • the first determination unit 1201 is configured to determine the encoding mode according to the size of the last encoded zero-run value and/or the exponential Golomb order of the current zero-run value to be encoded.
  • the encoding mode includes a first encoding mode and a second encoding mode; the first determination unit 1201 is configured to determine the last encoded zero-run value; when the last zero-run value is greater than a first threshold, the encoding mode is determined to be the first encoding mode; when the last zero-run value is less than or equal to the first threshold, the encoding mode is determined to be the second encoding mode.
  • the exponential Golomb order of the current zero-run value to be encoded is determined; if the exponential Golomb order is less than a second threshold, the encoding mode is determined to be the first encoding mode; if the exponential Golomb order is greater than or equal to the second threshold, the encoding mode is determined to be the second encoding mode.
  • the encoding unit 1202 is configured to encode the first type of indication information using a context-based encoding mode; or, to encode the first type of indication information using a bypass encoding mode.
  • the first determining unit 1201 is configured to determine the attribute residual value of the to-be-encoded point; when the attribute residual value of the to-be-encoded point is zero, the current zero run value performs a self-increment operation;
  • the encoding unit 1202 is configured to encode the current zero run value, encode the attribute residual value of the point to be encoded, and reset the current zero run value to 0 when the attribute residual value of the point to be encoded is not zero.
  • the encoding unit 1202 is configured to determine the point to be encoded as the last point to be encoded based on the traversal order of the points to be encoded; the attribute residual value of the point to be encoded is zero, the current zero run value performs a self-increment operation, and the current zero run value is encoded based on the context coding mode and/or the bypass coding mode; when the attribute residual value of the point to be encoded is not zero, the current zero run value is encoded based on the context coding mode and/or the bypass coding mode to encode the attribute residual value of the point to be encoded; the current zero run value is reset to 0, and the current zero run value is encoded based on the context coding mode or the bypass coding mode.
  • the attribute residual value comprises a quantized residual value or a quantized transform coefficient.
  • the attribute residual value comprises a residual value of a color component.
  • the attribute residual value includes: a residual value of a first color component, a residual value of a second color component, and a residual value of a third color component;
  • the first determination unit 1201 is configured to determine that the residual value of the first color component, the residual value of the second color component and the residual value of the third color component of the point to be encoded are all zero, and the current zero-run value performs a self-increment operation; the encoding unit 1202 is configured to determine that the residual value of the first color component, the residual value of the second color component and the residual value of the third color component of the point to be encoded are not all zero, encode the current zero-run value based on the context coding mode and/or the bypass coding mode, and encode the attribute residual value of the point to be encoded.
  • the attribute residual value includes a residual value of a reflectivity.
  • the first determining unit 1201 is configured to, when the residual value of the reflectivity of the to-be-encoded point is zero, perform a self-add 1 operation on the current zero-run value;
  • the encoding unit 1202 is configured to, when the residual value of the reflectivity of the to-be-encoded point is not zero, encode the current zero-run value based on the context coding mode and/or the bypass coding mode, encode the residual value of the reflectivity of the to-be-encoded point, and write the obtained coded bits into the bitstream.
  • 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 and includes several instructions for a computer device (which can be a personal computer, server, or network device, etc.) or a processor to execute all or part of the steps of the method of this embodiment.
  • the aforementioned storage medium includes: USB flash drive, mobile hard disk, Various media that can store program codes, such as Read Only Memory (ROM), Random Access Memory (RAM), magnetic disks or optical disks.
  • an embodiment of the present application provides a computer-readable storage medium, which is applied to the encoder 120, and the computer-readable storage medium stores a computer program.
  • the computer program is executed by the first processor, the method of any one of the aforementioned embodiments is implemented.
  • the encoder 120 may include: a first communication interface 1301, a first memory 1302 and a first processor 1303; each component is coupled together through a first bus system 1304. It can be understood that the first bus system 1304 is used to achieve connection and communication between these components. In addition to the data bus, the first bus system 1304 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as the first bus system 1304 in Figure 13. Among them,
  • the first communication interface 1301 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
  • the first processor 1303 is configured to execute, when running the computer program:
  • a first type of indication information encoding a current zero run value
  • the second type of indication information of the current zero run value is encoded based on the context coding mode and the bypass coding mode, and the obtained coded bits are written into the bitstream.
  • the first memory 1302 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 SDRAM
  • SLDRAM synchronous link DRAM
  • DRRAM direct RAM bus RAM
  • the first processor 1303 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 1303.
  • the above-mentioned first processor 1303 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 be executed, or the hardware and software modules in the decoding processor can be executed.
  • the software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc.
  • the storage medium is located in the first memory 1302, and the first processor 1303 reads the information in the first memory 1302 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 of the present 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 of the present application or a combination thereof.
  • the technology of the present application can be implemented by modules (such as processes, functions, etc.) that perform the functions of the present 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 1303 is further configured to execute any method in the foregoing embodiments when running a computer program.
  • the present embodiment provides an encoder in which the second type of indication information of the current zero run value is mixedly encoded based on the context coding mode and the bypass coding mode. Compared with encoding the current zero run value based only on the context coding mode, the difficulty of hardware implementation is reduced, the hardware processing cycle is shortened, and the hardware throughput is improved, thereby improving the encoding efficiency of the current zero run value.
  • FIG14 shows a schematic diagram of the composition structure of a decoder 140 provided in the embodiment of the present application.
  • the decoder 140 may include: a decoding unit 1401 and a second determining unit 1402; wherein,
  • a decoding unit 1401 is configured to decode the first type of indication information of the current zero run value
  • a decoding unit 1401 is configured to decode the second type of indication information of the current zero run value by using a context-based decoding mode and a bypass decoding mode;
  • the second determining unit 1402 is configured to determine a current zero-run value according to the first type of indication information and the second type of indication information.
  • the first type of indication information includes: first indication information for indicating whether the current zero run value is any preset value from 0 to M1; wherein the value of M1 is greater than or equal to 0;
  • the decoding unit 1401 is configured to, when determining, based on the first indication information, that the current zero run value is not any preset value from 0 to M1, use the second type of indication information based on the context decoding mode and the bypass decoding mode to decode the current zero run value.
  • the value of M1 is 0, and the first indication information includes: a first syntax element for indicating whether the current zero run value is 0;
  • the second determination unit 1402 is configured to determine that the current zero run value is 0 according to the value of the first syntax element, and the decoding of the current zero run value is completed; determine that the current zero run value is not 0 according to the value of the first syntax element, and determine that the current zero run value is not any preset value from 0 to M1 according to the first indication information.
  • the value of M1 is 2, and the first indication information includes: a first syntax element for indicating whether the current zero run value is 0; a second syntax element for indicating whether the current zero run value is 1; a third syntax element for indicating whether the current zero run value is 2;
  • the second determination unit 1402 is configured to determine that the current zero-run value is 0 according to the value of the first syntax element, and the current zero-run value decoding is completed; determine that the current zero-run value is not 0 according to the value of the first syntax element, and decode the second syntax element based on the context decoding mode; determine that the current zero-run value is 1 according to the value of the second syntax element, and the current zero-run value decoding is completed; determine that the current zero-run value is not 1 according to the value of the second syntax element, and decode the third syntax element based on the context decoding mode; determine that the current zero-run value is 2 according to the value of the third syntax element, and the current zero-run value decoding is completed; determine that the current zero-run value is not 2 according to the value of the third syntax element, and according to the first indication information, determine that the current zero-run value is not any preset value from 0 to M1.
  • the decoding unit 1401 is configured to decode the binarized data of the reference value of the current zero-run value using the context decoding mode and the bypass decoding mode to determine the reference value of the current zero-run value;
  • the second determining unit 1402 is configured to calculate the sum of the reference value of the current zero-run value and (M1+1) to determine the current zero-run value.
  • the first type of indication information further includes second indication information for indicating a first reference value of a current zero-run value
  • a decoding unit 1401 is configured to decode binary data of a second reference value indicating a current zero-run value by using a context-based decoding mode and a bypass decoding mode;
  • the second determination unit 1402 is configured to determine the first reference value according to the second indication information; determine the second reference value according to the binarized data of the second reference value; and determine the current zero-run value according to the first reference value and the second reference value.
  • the first reference value is the remainder of the first difference divided by 2
  • the second reference value is the quotient of the first difference divided by 2
  • the first difference is the difference between the current zero run value and (M1+1).
  • the first type of indication information further includes second indication information for indicating a first reference value of a current zero run value, and third indication information for indicating whether the second reference value of the current zero run value is any one of a preset value from 0 to M2;
  • the decoding unit 1401 is configured to determine, according to the third indication information, that the second reference value is not any preset value from 0 to M2, and decode the binarized data of the third reference value indicating the current zero run value in a context-based decoding mode and a bypass decoding mode;
  • the second determination unit 1402 is configured to determine the first reference value according to the second indication information; determine the third reference value according to the binarized data of the third reference value; determine the second reference value based on the sum of the third reference value and the second value; and determine the current zero run value according to the first reference value and the second reference value.
  • the second indication information includes: a fourth syntax element for indicating a value of the first reference value.
  • the third indication information includes: a fifth grammatical element for indicating whether the second reference value is 0; a sixth grammatical element for indicating whether the second reference value is 1; a seventh grammatical element for indicating whether the second reference value is 2; and an eighth grammatical element for indicating whether the second reference value is 3.
  • the first reference value is the remainder of the first difference value divided by 2
  • the second reference value is the quotient of the first difference value divided by 2
  • the third reference value is the difference between the second reference value and the second value; wherein the first difference value is the difference between the current zero run value and the first value.
  • the first value is (M1+1), and the second value is (M2+1).
  • the decoding unit 1401 is configured to decode the first N codewords of the binary data of the reference value of the current zero run value using a context-based decoding mode according to a first decoding mode, and to decode the codewords after the first N codewords of the binary data of the reference value of the current zero run value using a bypass decoding mode.
  • the decoding unit 1401 is configured to decode the bitstream and determine the value of N.
  • the decoding unit 1401 is configured to decode the first N1 codewords of the first part of the binary data of the reference value of the current zero run value using the context-based decoding mode according to the second decoding mode, and decode the current zero run value using the context-based decoding mode.
  • the first N2 codewords of the second part of the binarized data are the reference values of the process value; the codewords after the first N1 codewords of the first part of the binarized data and the codewords after the first N2 codewords of the second part of the binarized data are decoded in bypass decoding mode.
  • the decoding unit 1401 is configured to decode the first N1 codewords of the first part of the binarized data of the reference value of the current zero run value in a context-based decoding mode according to a third decoding mode, and decode the codewords after the first N1 codewords of the first part of the binarized data and the codewords of the second part of the binarized data in a bypass decoding mode according to a third decoding mode; or
  • the bypass decoding mode is used to decode the codewords of the first part of the binarized data
  • the context-based decoding mode is used to decode the first N2 codewords of the second part of the binarized data of the reference value of the current zero run value
  • the bypass decoding mode is used to decode the codewords after the first N2 codewords of the second part of the binarized data.
  • the decoding unit 1401 is configured to decode the code stream to determine the value of N1 and/or the value of N2.
  • the second determination unit 1402 is configured to determine a decoding mode of a current zero-run value to be decoded; wherein the decoding mode is used to indicate how to decode the current zero-run value based on a context decoding mode and a bypass decoding mode.
  • the decoding unit 1401 is configured to decode the code stream and determine a decoding mode of the current zero-run value to be decoded.
  • the decoding mode includes a first decoding mode and a second decoding mode; the second determining unit 1402 is configured to determine the last decoded zero run value; if the last zero run value is greater than a first threshold, the decoding mode is determined to be the first decoding mode; if the last zero run value is less than or equal to the first threshold, the decoding mode is determined to be the second decoding mode;
  • the second determination unit 1402 is configured to determine the exponential Golomb order of the current zero-run value to be decoded; if the exponential Golomb order is less than the second threshold, the decoding mode is determined to be the first decoding mode; if the exponential Golomb order is greater than or equal to the second threshold, the decoding mode is determined to be the second decoding mode.
  • the decoding unit 1401 is configured to decode the first type of indication information using a context-based decoding mode; or, to decode the first type of indication information using a bypass decoding mode.
  • the second determining unit 1402 is configured to determine that the attribute residual value of the to-be-decoded point is zero when the current zero-run value is non-zero, and perform a self-decrement operation on the current zero-run value;
  • the decoding unit 1401 is configured to, when the current zero run value is zero, determine that the attribute residual value of the to-be-decoded point is not zero, and decode the attribute residual value of the to-be-decoded point;
  • the second determining unit 1402 is further configured to determine the attribute reconstruction value of the point to be decoded according to the attribute residual value of the point to be decoded.
  • the decoding unit 1401 is configured to determine that the attribute residual value of the point to be decoded is not zero when the current zero run value is zero, decode the attribute residual value of the point to be decoded, and decode the next zero run value based on the context decoding mode and/or the bypass decoding mode.
  • the attribute residual value comprises a quantized residual value or a quantized transform coefficient.
  • the attribute residual value comprises a residual value of a color component.
  • the attribute residual value includes: the residual value of the first color component, the residual value of the second color component and the residual value of the third color component; the decoding unit 1401 is configured to determine that the residual value of the first color component, the residual value of the second color component and the residual value of the third color component of the point to be decoded are all zero when the current zero run value is non-zero; when the current zero run value is zero, determine that the residual value of the first color component, the residual value of the second color component and the residual value of the third color component of the point to be decoded are not all zero.
  • the property residual value comprises a residual value of reflectivity.
  • the decoder 140 may include: a second communication interface 1501, a second memory 1502 and a second processor 1503; each component is coupled together through a second bus system 1504. It can be understood that the second bus system 1504 is used to achieve connection and communication between these components.
  • the second bus system 1504 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 1504 in Figure 15. Among them,
  • the second communication interface 1501 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
  • the second memory 1502 is used to store a computer program that can be run on the second processor 1503;
  • the second processor 1503 is configured to execute, when running the computer program:
  • the second type of indication information of decoding the current zero run value is decoded using a context-based decoding mode and a bypass decoding mode;
  • a current zero-run value is determined according to the first-type indication information and the second-type indication information.
  • the second processor 1503 is further configured to execute any method in the foregoing embodiments when running a computer program.
  • the present embodiment provides a decoder in which a second type of indication information of a current zero-run value is hybridly decoded based on a context decoding mode and a bypass decoding mode. Compared with decoding the current zero-run value based only on the context decoding mode, the difficulty of hardware implementation is reduced, the hardware processing cycle is shortened, and the hardware throughput is improved, thereby improving the decoding efficiency of the current zero-run value.
  • FIG16 a schematic diagram of the composition structure of a coding and decoding system provided in an embodiment of the present application is shown.
  • the coding and decoding system 160 may include an encoder 1601 and a decoder 1602 .
  • the encoder 1601 may be the encoder described in any one of the aforementioned embodiments
  • the decoder 1602 may be the decoder described in any one of the aforementioned embodiments.
  • the methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain a new method embodiment.
  • the features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain a new product embodiment.
  • the features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain a new method embodiment or device embodiment.
  • a coding and decoding method, a bit stream, an encoder, a decoder and a storage medium are provided to encode and decode the first type of indication information of the current zero run value; and the second type of indication information of the current zero run value is encoded and decoded based on the context coding and decoding mode and the bypass coding and decoding mode.
  • the first type refers to that the information includes at least one binary syntax element
  • the second type of indication information includes non-binary syntax elements.
  • the non-binary syntax elements of the current zero run value are mixedly coded and decoded based on the context coding and decoding mode and the bypass coding and decoding mode.
  • the difficulty of hardware implementation is reduced, the hardware processing cycle is shortened, and the hardware throughput rate is improved, thereby improving the coding and decoding efficiency of the current zero run value.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Des modes de réalisation de la présente demande divulguent un procédé de codage/décodage, un train de bits, un codeur, un décodeur et un support de stockage. Le procédé de codage/décodage consiste à : coder/décoder des informations d'indication de premier type d'une valeur de plage nulle actuelle ; et coder/décoder des informations d'indication de second type de la valeur de plage nulle actuelle à l'aide d'un mode de codage/décodage basé sur un contexte et d'un mode de codage/décodage de dérivation. Les informations d'indication de premier type comprennent au moins un élément de syntaxe binaire, et les informations d'indication de second type comprennent un élément de syntaxe non binaire. Par comparaison avec le codage/décodage de la valeur de plage nulle actuelle en utilisant uniquement le mode de codage/décodage basé sur le contexte, le codage/décodage hybride de l'élément de syntaxe non binaire de la valeur de plage nulle actuelle en utilisant le mode de codage/décodage basé sur le contexte et le mode de codage/décodage de dérivation réduit la difficulté de mise en œuvre matérielle, raccourcit le cycle de traitement matériel et améliore le débit matériel, ce qui permet d'améliorer l'efficacité de codage/décodage de la valeur de plage nulle actuelle.
PCT/CN2023/086317 2023-04-04 2023-04-04 Procédé de codage/décodage, train de bits, codeur, décodeur et support de stockage Pending WO2024207235A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202380096778.4A CN121040071A (zh) 2023-04-04 2023-04-04 编解码方法、码流、编码器、解码器以及存储介质
PCT/CN2023/086317 WO2024207235A1 (fr) 2023-04-04 2023-04-04 Procédé de codage/décodage, train de bits, codeur, décodeur et support de stockage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2023/086317 WO2024207235A1 (fr) 2023-04-04 2023-04-04 Procédé de codage/décodage, train de bits, codeur, décodeur et support de stockage

Publications (1)

Publication Number Publication Date
WO2024207235A1 true WO2024207235A1 (fr) 2024-10-10

Family

ID=92970740

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/086317 Pending WO2024207235A1 (fr) 2023-04-04 2023-04-04 Procédé de codage/décodage, train de bits, codeur, décodeur et support de stockage

Country Status (2)

Country Link
CN (1) CN121040071A (fr)
WO (1) WO2024207235A1 (fr)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160286217A1 (en) * 2014-06-20 2016-09-29 Mediatek Inc. Method of Run-Length Coding for Palette Predictor
WO2019045538A1 (fr) * 2017-09-04 2019-03-07 삼성전자 주식회사 Procédé de codage et appareil associé, et procédé de décodage et appareil associé
CN112565734A (zh) * 2020-12-03 2021-03-26 西安电子科技大学 基于混合编码的点云属性编解码方法及装置
US20220038746A1 (en) * 2019-04-26 2022-02-03 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
CN115379190A (zh) * 2022-08-19 2022-11-22 腾讯科技(深圳)有限公司 一种点云处理方法、装置及计算机设备、存储介质
WO2023272533A1 (fr) * 2021-06-29 2023-01-05 Oppo广东移动通信有限公司 Procédé de codage et de décodage, codeur, décodeur et support de stockage

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160286217A1 (en) * 2014-06-20 2016-09-29 Mediatek Inc. Method of Run-Length Coding for Palette Predictor
WO2019045538A1 (fr) * 2017-09-04 2019-03-07 삼성전자 주식회사 Procédé de codage et appareil associé, et procédé de décodage et appareil associé
US20220038746A1 (en) * 2019-04-26 2022-02-03 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
CN112565734A (zh) * 2020-12-03 2021-03-26 西安电子科技大学 基于混合编码的点云属性编解码方法及装置
WO2023272533A1 (fr) * 2021-06-29 2023-01-05 Oppo广东移动通信有限公司 Procédé de codage et de décodage, codeur, décodeur et support de stockage
CN115379190A (zh) * 2022-08-19 2022-11-22 腾讯科技(深圳)有限公司 一种点云处理方法、装置及计算机设备、存储介质

Also Published As

Publication number Publication date
CN121040071A (zh) 2025-11-28

Similar Documents

Publication Publication Date Title
WO2024174086A1 (fr) Procédé de décodage, procédé de codage, décodeurs et codeurs
TW202425653A (zh) 點雲編解碼方法、裝置、設備及儲存媒介
WO2024207235A1 (fr) Procédé de codage/décodage, train de bits, codeur, décodeur et support de stockage
WO2024187380A1 (fr) Procédé de codage, procédé de décodage, flux de code, codeur, décodeur et support de stockage
WO2024174092A1 (fr) Procédé de codage/décodage, flux de code, codeur, décodeur et support d'enregistrement
WO2025039113A1 (fr) Procédé de codage, procédé de décodage, flux de code, codeur, décodeur, et support de stockage
WO2025076659A1 (fr) Procédé de codage de nuage de points, procédé de décodage de nuage de points, flux de code, codeur, décodeur et support de stockage
WO2025076662A1 (fr) Procédé de codage de nuage de points, procédé de décodage de nuage de points, flux de code, codeur, décodeur et support de stockage
WO2025213480A1 (fr) Procédé et appareil de codage, procédé et appareil de décodage, codeur de nuage de points, décodeur de nuage de points, flux binaire, dispositif et support de stockage
WO2024216649A1 (fr) Procédé de codage et de décodage de nuage de points, codeur, décodeur, flux de code et support de stockage
WO2025145330A1 (fr) Procédé de codage de nuage de points, procédé de décodage de nuage de points, codeurs, décodeurs, flux de code et support de stockage
WO2025039122A1 (fr) Procédé de codage de nuage de points, procédé de décodage de nuage de points, flux de code, codeur, décodeur et support de stockage
WO2024065406A1 (fr) Procédés de codage et de décodage, train de bits, codeur, décodeur et support de stockage
WO2024082152A1 (fr) Procédés et appareils de codage et de décodage, codeur et décodeur, flux de code, dispositif et support de stockage
WO2024119420A1 (fr) Procédé de codage, procédé de décodage, flux de code, codeur, décodeur, et support de stockage
WO2024148598A1 (fr) Procédé de codage, procédé de décodage, codeur, décodeur et support de stockage
WO2024103304A1 (fr) Procédé d'encodage de nuage de points, procédé de décodage de nuage de points, encodeur, décodeur, flux de code, et support de stockage
WO2025138048A1 (fr) Procédé de codage, procédé de décodage, flux de codes, codeur, décodeur et support de stockage
WO2025010590A1 (fr) Procédé de décodage, procédé de codage, décodeur et codeur
WO2025039125A1 (fr) Procédé d'encodage, procédé de décodage, encodeur, décodeur, et support de stockage
WO2024212042A1 (fr) Procédé de codage, procédé de décodage, flux de code, codeur, décodeur et support d'enregistrement
WO2025039120A1 (fr) Procédé de codage, procédé de décodage, codeur, décodeur et support de stockage
WO2024119419A1 (fr) Procédé de codage, procédé de décodage, flux binaire, codeur, décodeur et support de stockage
WO2025039236A1 (fr) Procédé de codage et décodage, train de codes, codeur, décodeur et support de stockage
WO2023173238A1 (fr) Procédé de codage, procédé de décodage, flux de code, codeur, décodeur et support d'enregistrement

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: 23931307

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE