WO2023184196A1 - Procédés de codage et de décodage de valeur d'exécution nulle et procédés, dispositifs et systèmes de codage et de décodage vidéo - Google Patents

Procédés de codage et de décodage de valeur d'exécution nulle et procédés, dispositifs et systèmes de codage et de décodage vidéo Download PDF

Info

Publication number
WO2023184196A1
WO2023184196A1 PCT/CN2022/083875 CN2022083875W WO2023184196A1 WO 2023184196 A1 WO2023184196 A1 WO 2023184196A1 CN 2022083875 W CN2022083875 W CN 2022083875W WO 2023184196 A1 WO2023184196 A1 WO 2023184196A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
decoded
zero
encoding
flag bit
Prior art date
Application number
PCT/CN2022/083875
Other languages
English (en)
Chinese (zh)
Inventor
魏红莲
Original Assignee
Oppo广东移动通信有限公司
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 Oppo广东移动通信有限公司 filed Critical Oppo广东移动通信有限公司
Priority to PCT/CN2022/083875 priority Critical patent/WO2023184196A1/fr
Publication of WO2023184196A1 publication Critical patent/WO2023184196A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • Embodiments of the present disclosure relate to, but are not limited to, video technology, and more specifically, to a zero-run value encoding and decoding method and a video encoding and decoding method, device, and system.
  • Point cloud is a set of discrete points randomly distributed in space that expresses the spatial structure and surface properties of a three-dimensional object or scene.
  • Figure 1A and Figure 1B show an exemplary three-dimensional point cloud image and local enlargement. You can see The surface of a point cloud is composed of densely distributed points.
  • Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes, and because point clouds can be obtained by directly sampling real objects, they can provide a strong sense of reality while ensuring accuracy, so they are widely used.
  • the scope includes virtual reality games, computer-aided design, geographical information systems, automatic navigation systems, digital cultural heritage, free-viewpoint broadcasting, three-dimensional immersive telepresence, three-dimensional reconstruction of biological tissues and organs, etc. Changes in the way of obtaining point cloud data have made it possible to obtain large amounts of point cloud data. However, with the growth of application requirements, the processing of massive 3D point cloud data encounters storage space and transmission bandwidth limitations, and more effective compression methods need to be provided. .
  • An embodiment of the present disclosure provides a zero run value decoding method, including:
  • the third flag bit If it is determined that the value to be decoded is not equal to 2 according to the third flag bit, continue to decode the identifier indicating the parity of the value to be decoded and the quotient of the value to be decoded minus 3 and then divided by 2; The decoded quotient value is multiplied by 2 and then added to 3, plus the value of the identifier, to obtain the decoded value to be decoded;
  • the identifier if the identifier is 0, it means that the value to be decoded is an odd number, and if it is 1, it means that the value to be decoded is an even number.
  • An embodiment of the present disclosure also provides a video decoding method, including:
  • the quantized residual of the attribute information of the midpoint of the video code stream is decoded according to the decoded zero run value.
  • An embodiment of the present disclosure also provides a zero-run value encoding method, including:
  • the first flag bit used to determine whether the value to be encoded is equal to 0 is encoded. If the value to be encoded is equal to 0, the encoding is completed;
  • the value to be decoded is a zero run value or a quotient of a zero run value divided by 2;
  • the identifier if the identifier is 0, it means that the value to be encoded is an odd number, and if it is 1, it means that the value to be encoded is an even number.
  • An embodiment of the present disclosure also provides a video encoding method, including:
  • the points in the video are encoded point by point, using zero run length values to record the number of consecutive points where the quantized residual of the attribute information is zero, and encoding according to the zero run length value encoding method described in any embodiment of the present disclosure. Zero run value.
  • An embodiment of the present disclosure also provides a video code stream, which includes an information unit representing a zero run value, and the information unit includes:
  • Identifier set to indicate the parity of the value to be decoded
  • An embodiment of the present disclosure also provides a zero-run value decoding device, which includes a processor and a memory storing a computer program.
  • a processor executes the computer program, it can implement the method described in any embodiment of the present disclosure. Zero run value decoding method.
  • An embodiment of the present disclosure also provides a zero run value encoding device, including a processor and a memory storing a computer program, wherein when the processor executes the computer program, it can implement the method described in any embodiment of the present disclosure.
  • Zero run value encoding method including a processor and a memory storing a computer program, wherein when the processor executes the computer program, it can implement the method described in any embodiment of the present disclosure.
  • An embodiment of the present disclosure also provides a video decoding device, which includes a processor and a memory storing a computer program, wherein when the processor executes the computer program, the video decoding device as described in any embodiment of the present disclosure can be realized. Decoding method.
  • An embodiment of the present disclosure also provides a video encoding device, including a processor and a memory storing a computer program, wherein when the processor executes the computer program, the video encoding device as described in any embodiment of the present disclosure can be implemented. Encoding method.
  • An embodiment of the present disclosure also provides a video encoding and decoding system, which includes a video encoding device as described in any embodiment of the present disclosure and a video decoding device as described in any embodiment of the present disclosure.
  • An embodiment of the present disclosure also provides a non-transitory computer-readable storage medium.
  • the computer-readable storage medium stores a computer program, wherein when the computer program is executed by a processor, it can implement any of the aspects of the present disclosure.
  • Figures 1A and 1B are an exemplary three-dimensional point cloud image and a partial enlargement respectively;
  • Figure 2A is a schematic diagram of the encoding framework of the point cloud compression platform of the first embodiment
  • Figure 2B is a schematic diagram of the decoding framework of the point cloud compression platform of the first embodiment
  • Figure 3A is a flowchart of a zero run value encoding method according to an embodiment of the present disclosure.
  • Figure 3B is a flowchart after step 110 in Figure 3 is decomposed into multiple sub-steps;
  • Figure 4 is a flow chart of a decoding method corresponding to the zero run value encoding method shown in Figure 3A;
  • Figures 5 and 6 are respectively flow charts of a zero-run value encoding method and a zero-run value decoding method according to an embodiment of the present disclosure
  • Figures 7 and 8 are respectively flow charts of a zero-run value encoding method and a zero-run value decoding method according to another embodiment of the present disclosure
  • Figures 9 and 10 are respectively flow charts of a zero-run value encoding method and a zero-run value decoding method according to another embodiment of the present disclosure.
  • Figures 11 and 12 are respectively flow charts of a zero-run value encoding method and a zero-run value decoding method according to another embodiment of the present disclosure
  • Figures 13 and 14 are flow charts of a video encoding method and a video decoding method respectively according to an embodiment of the present disclosure
  • Figure 15 is a schematic diagram of the data structure of zero run values in the code stream according to an embodiment of the present disclosure.
  • Figure 16 is a schematic diagram of a zero run value decoding device according to an embodiment of the present disclosure.
  • the words “exemplary” or “such as” are used to mean an example, illustration, or explanation. Any embodiment described in this disclosure as “exemplary” or “such as” is not intended to be construed as preferred or advantageous over other embodiments.
  • "And/or” in this article is a description of the relationship between associated objects, indicating that there can be three relationships, for example, A and/or B, which can mean: A exists alone, A and B exist simultaneously, and they exist alone. B these three situations.
  • "Plural” means two or more than two.
  • words such as “first” and “second” are used to distinguish the same or similar items with basically the same functions and effects. Those skilled in the art can understand that words such as “first” and “second” do not limit the number and execution order, and words such as “first” and “second” do not limit the number and execution order.
  • the embodiment of the present disclosure takes the point cloud attribute encoding and decoding scenario as an example to illustrate.
  • the solution of the present disclosure is not only applicable to point cloud attribute encoding and decoding, but can also be applied to similar scenarios of other video encoding and decoding.
  • Two-dimensional images have information expressed in each pixel and are distributed regularly, so there is no need to record additional position information; however, the distribution of points in the point cloud in the three-dimensional space is random and irregular, so each point needs to be recorded Only the position of the point in space can completely express a point cloud.
  • each point in the collection process has corresponding attribute information, usually an RGB color value, and the color value reflects the color of the object; for point clouds, in addition to color, the attribute information corresponding to each point The more common one is reflectance.
  • the reflectance value reflects the surface material of the object.
  • point cloud data usually includes geometric information (x, y, z) composed of three-dimensional position information, attribute information composed of three-dimensional color information (r, g, b), and one-dimensional reflectance information (r).
  • the corresponding point cloud data storage format consists of a file header information part and a data part.
  • the header information includes the data format, data representation type, total point cloud points, and the content represented by the point cloud.
  • the point cloud is in ".ply" format and is represented by ASCII code.
  • the total number of points is 207242, and each point has three-dimensional position information xyz and three-dimensional color information rgb.
  • Point cloud collection mainly includes 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 dynamic real-world three-dimensional objects or scenes Point clouds can obtain tens of millions of point clouds per second.
  • a 10s point cloud video with a frame rate of 30fps (frames per second) as an example, the number of points in each frame of the point cloud is 700,000, and each point has coordinate information xyz (float) and color information RGB (uchar), then a 10s point cloud video
  • point cloud compression has become a key issue in the development of point cloud applications.
  • Point cloud compression generally adopts the method of separately compressing point cloud geometric information and attribute information.
  • the point cloud geometric information is first encoded in the geometry encoder, and then the reconstructed geometric information is input into the attribute encoder as additional information, and the auxiliary point Compression of cloud attributes;
  • the point cloud geometric information is first decoded in the geometry decoder, and then the decoded geometric information is input into the attribute decoder as additional information to assist in the decompression of point cloud attributes.
  • FIG. 2A shows a schematic diagram of an exemplary point cloud encoding framework
  • FIG. 2B shows a schematic diagram of an exemplary point cloud decoding framework.
  • the encoding end of the Point Cloud Compression Reference Platform includes a geometry encoder and an attribute encoder.
  • the geometry encoder includes a coordinate translation module 11 , a coordinate quantization module 13 , an octree building module 15 , a geometry entropy encoder 17 and a geometry reconstruction module 19 .
  • the coordinate translation module 11 and the coordinate quantization module 13 preprocess the original geometric information of the point cloud.
  • the octree building module 15 and the geometric entropy encoder 17 encode the preprocessed geometric information to obtain a geometric code stream. in:
  • the coordinate translation module 11 is configured to normalize the geometric origin of the original geometric information to the minimum value position in the point cloud space through coordinate translation.
  • the coordinate quantization module 13 is configured to convert the geometric information output by the coordinate translation module 11 from floating point numbers into integers through coordinate quantization to facilitate subsequent regularization processing.
  • the regularized geometric information is output to the octree building module 15 and the attribute encoder. .
  • the octree building module 15 is configured to geometrically encode regularized geometric information, use the octree structure to recursively divide the point cloud space, divide the current node into eight sub-blocks of the same size each time, and judge each sub-block.
  • the occupied codeword status of the block is recorded as empty when the sub-block does not contain points, otherwise it is recorded as non-empty.
  • the occupied codeword information of all blocks is recorded and encoded at the last level of the recursive division; it will be processed through the octree structure
  • the expressed geometric information is output to the geometric entropy encoder 17 and the geometric reconstruction module 19 .
  • the geometric entropy encoder 17 is configured to entropy encode the geometric information expressed by the octree structure to form a geometric code stream.
  • the geometric reconstruction module 19 is configured to perform geometric reconstruction processing in the geometry encoder, and the reconstructed geometric information is output to the attribute encoder as additional information.
  • the attribute encoder includes a color space transformation module 21 , an attribute recoloring module 23 , an attribute prediction module 25 , a quantization module 27 and an attribute entropy encoding module 29 .
  • the color space transformation module 21 and the attribute recoloring module 23 preprocess the original attribute information.
  • Other modules perform attribute encoding on the preprocessed attribute information to obtain an attribute code stream. in:
  • the color space conversion module 21 is configured to perform color space conversion when the processed original attribute information is a color value in RGB format, and convert it into a YUV color space that is more in line with the visual characteristics of the human eye.
  • the attribute recoloring module 23 is set to reassign the attribute value to each point after geometric encoding based on the geometric information output by the geometry encoder. This process is called attribute recoloring to avoid the original geometric information and the geometric information after geometric encoding. The impact of the difference between.
  • the attribute prediction module 25 is configured to reorder the point cloud.
  • the reordering method is Morton code
  • the traversal order of attribute encoding is Morton order
  • the attribute prediction method is single point prediction based on Morton order. That is, one point is traced back forward from the current point to be encoded in Morton order, and the found point is used as the prediction reference point of the current point to be encoded.
  • the attribute reconstruction value of the prediction reference point is used as the attribute prediction value.
  • the difference from the predicted value of the attribute is the attribute residual.
  • the quantization module 27 is configured to quantize the attribute residuals to obtain the quantized residuals of the attributes.
  • the attribute entropy encoding module 29 is configured to entropy encode the quantized residual of the attribute to form an attribute code stream.
  • the decoding end of the PCRM platform includes a geometry decoder and an attribute decoder.
  • the geometry decoder includes a geometric entropy decoder 31 , an octree reconstruction module 33 , a coordinate inverse quantization module 35 and a coordinate inverse translation module 37 . in,
  • the geometric entropy decoder 31 is configured to entropy decode the geometric code stream to obtain the geometric information of each node.
  • the octree reconstruction module 33 is configured to construct an octree structure based on the geometric information of each node in the same manner as geometric encoding, and reconstruct the coordinate-transformed geometric information expressed through the octree structure in combination with the decoded geometry.
  • the coordinate inverse quantization module 35 is configured to perform coordinate inverse quantization on the geometric information output by the octree reconstruction module 33.
  • the geometric information after coordinate inverse quantization is output to the coordinate inverse translation module 37, and is output to the attribute decoder as additional information.
  • the coordinate inverse translation module 37 is configured to perform coordinate inverse translation on the geometric information output by the coordinate inverse quantization module 35 to obtain decoded geometric information.
  • the attribute decoder includes an attribute entropy decoder 41, an inverse quantization module 43, an attribute prediction module 45 and a color space inverse transform module 47. in:
  • the attribute entropy decoder 41 is configured to entropy decode the attribute code stream to obtain the quantized residual of the point cloud.
  • the inverse quantization module 43 is configured to inversely quantize the quantization residual to obtain the residual value of the point cloud attribute.
  • the attribute prediction module 45 is configured to construct a Morton order based on the geometric information output by the geometry decoder in the same manner as attribute encoding, obtain the attribute prediction value of the current point to be decoded, and then add the attribute prediction value and the residual value to restore Outputs the YUV attribute value of the current point to be decoded.
  • the color space inverse transformation module is configured to perform inverse color space transformation on the attribute information output by the attribute prediction module 45 to obtain decoded attribute information.
  • the prediction branch When compressing, encoding and decoding point clouds based on the above encoding framework and decoding framework, there are two technical routes to distinguish based on the algorithm used for attribute compression.
  • One is called the prediction branch, and the other is called the transformation branch.
  • the attribute encoding and decoding method used by the prediction branch is as described above.
  • the difference between the attribute encoding and decoding method used in the transformation branch and the prediction branch is that after obtaining the residual of the point's attributes through attribute prediction, the residual is first transformed (the transformation algorithm used can be wavelet transform or k-element discrete cosine transform (DCT) : Discrete Cosine Transform), etc.), and then quantize the transformed residual to obtain the quantized residual.
  • DCT discrete cosine transform
  • the prediction branch after performing entropy decoding and inverse quantization on the attribute code stream to obtain the attribute residual, performs attribute prediction based on the residual obtained by inverse quantization, while the transformation branch first performs inverse transformation on the residual obtained by inverse quantization, and then based on the inverse
  • the residuals obtained by the transformation are used for attribute prediction.
  • a run-based encoding and decoding method is used for the quantized residual of point cloud attributes.
  • the attribute entropy encoder on the encoding side and the attribute entropy decoder on the decoding side use the same order (such as the original acquisition order of the point cloud, Morton order, Hilbert order, etc.) to sequentially encode and decode the points in the point cloud.
  • the zero run value When encoding, use the zero run value to make statistics on whether the quantized residual of the attribute of the point is 0, and record the number of consecutive points where the quantized residual of the attribute is zero.
  • the zero run value is an integer, and the initial value is set to 0.
  • the encoding end encodes the quantized residual of the color of the point in the point cloud
  • the encoding of other points except the last point is as follows:
  • the color three-component of the point has any one-dimensional quantized residual that is not zero, encode the zero run value (the zero run value corresponding to the previous point), then reset the zero run value to 0, and encode the point's The quantized residual of the three color components (Res 0 , Res 1 , Res 2 ), and then process the next point.
  • the quantized residual of any one dimension of the color three components of the point is not zero, encode the zero run value, then reset the zero run value to 0, and encode the quantized residual and zero run value of the color three components of the point.
  • the above process can also be used to encode the quantized residual of the reflectivity of points in the point cloud, just change the attribute from "color three components" to "reflectance”.
  • encoding the zero run value includes encoding the quotient of the zero run value divided by 2 (run_length/2) and encoding the remainder of the zero run value divided by 2 (run_length%2).
  • An exemplary The encoding process is as follows:
  • the first step is to encode the first flag indicating whether the quotient is equal to 0. If the quotient is 0, the encoding of the quotient is completed and the fourth step is entered. Otherwise, the second step is entered;
  • the second step encode the second flag indicating whether the quotient is equal to 1. If the quotient is 1, the encoding of the quotient is completed and the fourth step is entered. Otherwise, the third step is entered;
  • the third step is to subtract the difference of 2 from the encoding quotient (run_length/2-2), the encoding quotient is completed, and enter the fourth step;
  • the fourth step is to encode the remainder of the zero run value divided by 2 (run_length%2), and the encoding of the remainder is completed.
  • the zero run value is directly encoded.
  • An exemplary encoding process is as follows:
  • the first step is to encode the first flag bit indicating whether the zero run value is equal to 0. If the zero run value is 0, the encoding is completed, otherwise go to the second step;
  • the third step is to encode the difference of zero run value minus 2 (run_length-2), and the encoding is completed.
  • the above-mentioned first flag bit can be recorded as "is_run_length_equal_zero"
  • the second flag bit can be recorded as "is_run_length_equal_one”.
  • the decoding end When the decoding end decodes the quantized residual of the attributes of the points in the attribute code stream of the point cloud, it needs to decode the zero run value run_length in the attribute code stream, and decode the attribute information of the points in the attribute code stream based on the decoded zero run value. quantified residual error.
  • the decoding processing of other points includes:
  • run_length 0, it is determined that the quantized residuals of the three color components of the current point are all zero, then the zero run value is reduced by 1 (--run_length), and then the next point is processed;
  • run_length 0, it means that the quantized residuals of the three color components of the current point are not all zero, then decode the quantized residual of the color of the current point, then decode the zero run value corresponding to the next point, and update the current zero run value to Decode the zero run value and then process the next point.
  • the zero run value used to decode the first point is decoded from the attribute code stream.
  • the zero run value used for decoding subsequent points is the zero run value after subtracting 1 from the previous point, or the zero run value after updating at the previous point.
  • the above process can also be used to decode the quantized residual of the reflectivity of points in the point cloud.
  • the above-described decoding of the zero run value includes decoding the quotient of the zero run value divided by 2 (run_length/2) and decoding the zero run value. Divide by the remainder of 2 (run_length%2), multiply the quotient by 2 and add the remainder to get the zero run value.
  • the decoding process for the zero run value in this example includes:
  • the first step is to decode the flag indicating whether the quotient is 0. If the flag indicates that the quotient is equal to 0, the decoding of the quotient is completed and the fourth step is entered. Otherwise, the second step is entered;
  • the second step is to decode the flag indicating whether the quotient is 1. If the flag indicates that the quotient is equal to 1, the decoding of the quotient is completed and the fourth step is entered. Otherwise, the third step is entered;
  • the third step is to subtract the difference of 2 from the decoding quotient (run_length/2-2), and determine that the quotient (run_length/2) is equal to the difference plus 2, and the decoding quotient is completed;
  • the fourth step is to decode the remainder of the zero run value divided by 2 (run_length%2).
  • the decoding remainder is completed.
  • the decoded zero run value is equal to the decoded quotient multiplied by 2 plus the decoded remainder.
  • the third step is to decode the difference (run_length-2) of the zero run value minus 2, and determine that the zero run value is equal to the difference plus 2, and the decoding is completed.
  • the zero-run value encoding and decoding methods of the above two examples can be used in the entropy encoding and entropy decoding of point cloud attributes by the prediction branch, and can also be used in the entropy encoding and entropy decoding of point cloud attributes by the transformation branch; and that is, It is used for entropy encoding and entropy decoding of point cloud color attributes, and can also be used for entropy encoding and entropy decoding of point cloud reflectivity attributes.
  • the zero-run value encoding and decoding methods of different examples can also be selected when the branches are different and the attributes are different.
  • the zero-run value encoding and decoding method of the first example is used in the entropy encoding and entropy decoding of the point cloud color attribute by the prediction branch.
  • the zero-run value encoding and decoding method of the second example is used in the entropy encoding and entropy decoding of the point cloud color attribute in the transformation branch, and the second example is used in the entropy encoding and entropy decoding of the point cloud reflectance attribute in the prediction branch and the transformation branch.
  • Two examples of zero-run value encoding and decoding methods are not limited thereto.
  • the zero-run value encoding and decoding method in the first embodiment above needs to encode and decode the zero-run-length value minus 2 for a zero-run-length code with a length greater than 1.
  • the zero-run-length code is longer (the zero-run value is larger), In this case, more codewords are required.
  • an adaptive entropy coding method which adjusts the entropy coding method of zero run value according to the distribution characteristics of point cloud attributes.
  • the exponent Golomb order corresponding to the attribute is first determined, recorded as GolombNum, the determined exponent Golomb order is written into the code stream, and the entropy encoding method of the zero run value is adjusted based on the determined exponent Golomb order.
  • the above maximum and minimum values can be the maximum and minimum values of the first dimension, but in other examples, the above-mentioned maximum and minimum values can also be obtained from the values in the second or third dimension.
  • the maximum and minimum values can be obtained from the values of the Y component, U component, or V component.
  • the maximum value can be obtained from the values of the R component, G component, or B component. value and minimum value.
  • the attribute type is an attribute with only one-dimensional information (such as the reflectance attribute of a point)
  • the maximum and minimum values of the dimension are directly taken.
  • This step corrects the difference obtained in step a) according to the current code rate.
  • " ⁇ " represents the left shift operation
  • attrQuantParam/8 represents the number of digits left shifted
  • attrQuantParam is the quantization parameter used by the encoding end. If attrQuantParam The value cannot guarantee that attrQuantParam/8 is an integer, and attrQuantParam/8 can be rounded (up or down).
  • log 2 Res′ attr is not an integer
  • rounding operation can be performed on log 2 Res′ attr .
  • the query table is as follows:
  • the GolombNum found is 1; when the Index is 5, the GolombNum found is 2, and so on.
  • the exponential Golomb order GolombNum corresponding to the attribute information can be determined based on the maximum value and minimum value of the attribute information of the points in the currently input point cloud sequence, and the quantitative parameters of the attribute information.
  • the determined GolombNum may include the exponential Golomb order ColorGolombNum corresponding to the color attribute, and the exponential Golomb order RefGolombNum corresponding to the reflectance attribute.
  • the encoding end after determining the exponential Golomb order corresponding to the attribute, the encoding end also encodes the determined exponential Golomb order, that is, writing the determined exponential Golomb order (ColorGolombNum and/or RefGolombNum) into the point cloud attribute code
  • the attribute header information (AttributeParameterSet) of the stream is provided to the decoding end.
  • the encoding method of the zero-run value is adjusted according to the determined exponential Golomb order, which can be specifically reflected in at least one of the following aspects:
  • the first aspect is to determine whether to segment the zero run value according to the exponential Columbus order corresponding to the attribute, that is, to encode the quotient and remainder separately.
  • the exponential Golomb order GolombNum corresponding to the attribute is compared with the preset order threshold Threshold (such as set to 1, 2, etc.);
  • the second aspect is to determine the way to encode the difference when encoding zero-run values according to the exponential Columbus order corresponding to the attribute.
  • the difference of the zero run value minus 2 when directly encoding the zero run value, the difference of the zero run value minus 2 must be encoded; when the zero run value is divided into the quotient and the remainder and encoded separately, the difference of the quotient minus 2 must be encoded.
  • the difference coding can use the unary coding method or the exponential Golomb coding method.
  • the exponential Golomb order GolombNum corresponding to the attribute is compared with the preset order threshold Threshold (such as set to 1, 2, etc.);
  • the difference value is encoded using a unary encoding method during the encoding of zero-run values related to the attribute.
  • the exponential Columbus order corresponding to the color attribute and the reflectance attribute may be different. Therefore, when entropy encoding the color attribute, determine whether to segment the zero run value according to the exponential Columbus order corresponding to the color attribute, and/or determine A method of encoding the difference value; when entropy encoding the reflectivity attribute, determine whether to segment the zero run value according to the exponential Golomb order corresponding to the reflectivity attribute, and/or determine the encoding of the difference value method.
  • the unary coding method is a simple method that can only encode non-negative integers.
  • the unary encoding of any non-negative integer num is num 1s followed by a 0.
  • the decoded num can be obtained by reading the bit stream and counting the number of 1s before 0 appears.
  • the length after 0-order Exp-Golomb encoding of num is: 2m+1.
  • the decoding process of order 0 Exp-Golomb includes: reading in the bit stream, continuing if it is 0, stopping if it is 1, and then counting the number of 0s m; then reading in m bits, which is the offset, and finally the decoded
  • K results in different starting group sizes in Exp-Golomb encoding. Any K-order Exp-Golomb encoding can be converted to 0-order. Specifically: assuming that the number to be encoded is num, perform K-order Exp-Golomb encoding on num.
  • the decoder when the decoder performs entropy decoding on the attribute code stream, it can decode the exponential Golomb order (ColorGolombNum and/or RefGolombNum) corresponding to the attribute from the attribute header information of the attribute code stream (AttributeParameterSet), that is, the code stream The exponent Columbus order in is read out.
  • the exponential Golomb order ColorGolombNum and/or RefGolombNum
  • the decoding method of the zero-run value is adjusted according to the decoded exponential Golomb order, which can be specifically reflected in at least one of the following aspects:
  • the exponential Golomb order corresponding to the attribute it is determined whether a decoding remainder is required when decoding the zero-run value used in entropy decoding of the attribute.
  • the exponential Golomb order GolombNum corresponding to the attribute is compared with the preset order threshold Threshold (such as set to 1, 2, etc.);
  • the exponential Golomb order corresponding to the color attribute and the reflectance attribute may be different.
  • different decoding methods can be used to decode the zero run value.
  • the method of decoding the difference value when decoding the zero run value used in the attribute entropy decoding is determined.
  • the difference of the zero run value minus 2 when decoding the zero run value directly, the difference of the zero run value minus 2 must be decoded; when the zero run value is divided into the quotient and the remainder and decoded separately, the difference of the quotient minus 2 must be decoded. .
  • the unary decoding method or the exponential Golomb decoding method can be used.
  • the exponential Golomb order GolombNum corresponding to the attribute is compared with the preset order threshold Threshold (such as set to 1, 2, etc.); if GolombNum ⁇ Threshold, then in the process of zero run value decoding, two The order exponential Golomb decoding method is used to decode the difference value; if GolombNum>Threshold, then in the process of zero run value decoding, the unary decoding method is used to decode the difference value.
  • Threshold such as set to 1, 2, etc.
  • the quotient of dividing a zero run value by 2 (such as run_length/2) is called a "quotient”.
  • the set value is subtracted from the quotient. (such as 1, 2, 3 or 4) and then divided by 2 is called the "quotient value" to facilitate the distinction when the two exist at the same time.
  • the quotient value is the value to be encoded or decoded
  • An embodiment of the present disclosure proposes a parity-based zero run value encoding method and a decoding method, using an identifier to represent the parity of the zero run value and using a flag bit.
  • FIG. 3A The flow of the zero run value encoding method in this embodiment is shown in Figure 3A, including:
  • Step 110 According to the zero run value to be encoded, encode a flag indicating whether the zero run value is equal to 0. If the zero run value is equal to 0, the encoding is completed; if the zero run value is not equal to 0, the encoding is completed. , continue to step 120;
  • the flag bit indicating whether the zero run value is equal to 0 can be recorded as "is_run_length_equal_zero".
  • Step 120 Encode an identifier indicating the parity of the zero run value and the quotient of the zero run value minus 1 and then divided by 2; wherein the identifier is 0 to indicate that the zero run value is an odd number, and 1 to indicate zero.
  • the run length value is an even number.
  • step 110 is divided into three steps to implement, namely:
  • Step 1101 determine whether the zero run value is equal to 0, if not equal to 0, execute step 1105, if equal to 0, execute step 1103;
  • Step 1103 write the flag position indicating whether the zero run value is equal to 0 into the code stream, indicating that the zero run value is equal to 0, and the encoding is completed;
  • Step 1105 Write the flag position 0 indicating whether the zero run value is equal to 0 into the code stream, indicating that the zero run value is not equal to 0, and execute step 120.
  • Step 120 Encode an identifier indicating the parity of the zero run value and the quotient of the zero run value minus 1 and then divided by 2; wherein the identifier is 0 to indicate that the zero run value is an odd number, and 1 to indicate zero.
  • the run length value is an even number.
  • the flag bit in the above example, defining the flag bit as 0 means that the zero run value is not equal to 0, and as 1 means that the zero run value is equal to 0.
  • the flag bit can also be defined as 1 to indicate that the zero run value is not equal to 0, and as 0 to indicate that the zero run value is equal to 0.
  • the process is basically the same as this example, see Figure 3B. The difference is that when the zero run value is equal to 0, the flag position is set to 0, and when the zero run value is not equal to 0, the flag position is set to 1. It is easy to understand that no matter which example is defined, encoding and decoding can be achieved without changing the number of codewords.
  • the identifier when encoding the identifier indicating the parity of the zero run value and the quotient of the zero run value minus 1 and then divided by 2, the identifier can be encoded first and then the quotient value, or the quotient can be encoded first. Value recoding identifier.
  • an identifier of 0 indicates that the zero-run value is an odd number
  • an identifier of 1 indicates that the zero-run value is an even number.
  • parity ( run_length-1)%2.
  • the identifier indicating the parity of the value to be encoded is also defined as “an identifier of 1 indicates that the zero run value is an odd number, "0 indicates that the zero run value is an even number” is easy to understand.
  • the identifier should be set to 1 during encoding and then written into the code stream.
  • the identifier should be set to 0 and then written into the code stream. This will not be described in detail below.
  • the zero run value is subtracted by 1 and then divided by 2 to obtain the quotient value, and then the quotient value is encoded into the code stream.
  • the quotient value (recorded as value) is written into the code stream after unary encoding, or written into the code stream after N-order exponential Golomb coding (N is a natural number), or written into the code stream in the form of a fixed-length binary encoding.
  • Step 210 Decode the flag bit indicating whether the zero run value is equal to 0. If it is determined based on the flag bit that the zero run value is equal to 0, the decoding is completed; if it is determined based on the flag bit that the zero run value is not equal to 0. In this case, continue to step 220;
  • Step 220 Decode the identifier indicating the parity of the zero run value and the quotient of the zero run value minus 1 and then divided by 2; multiply the decoded quotient value by 2, add 1, and add the flag The value of the symbol is used to obtain the decoded zero-run value; wherein, the identifier is 0, indicating that the zero-run value is an odd number, and being 1 indicates that the zero-run value is an even number.
  • step 210 when decoding the flag bit indicating whether the zero run value is equal to 0, the flag bit is extracted from the code stream and the value of the flag bit is determined.
  • the flag bit when the flag bit is 1, it can be determined that the zero run value is equal to 0; when the flag bit is 0, it can be determined that the zero run value is not equal to 0.
  • a flag bit of 0 indicates that the zero run value is equal to 0, and a flag bit of 1 indicates that the zero run value is not equal to 0.
  • the flag bit When decoding the flag bit, the flag bit is extracted from the code stream. When the flag bit is equal to 0, it is determined that the zero run value is equal to 0. When the flag bit is not equal to 0, it is determined that the zero run value is not equal to 0. The same is true for other flag bits in other embodiments. The judgment needs to be made based on the definition of the value of the flag bit and the decoded value of the flag bit to be decoded (zero run value, the quotient of the zero run value divided by 2, etc.) , determine whether the value to be decoded is equal to the set value. In other embodiments, it can also be determined in a similar manner whether the value to be decoded is greater than the set value, or smaller than the set value, etc.
  • step 220 when decoding the identifier indicating the parity of the zero run value and the quotient of the zero run value minus 1 and then divided by 2, the identifier is extracted from the code stream and encoded with the quotient
  • the corresponding decoding method (such as the unary decoding method, the exponential Golomb decoding method, etc.) is used to decode the quotient value.
  • this embodiment replaces the identifier used in the first embodiment to indicate whether the zero run value is equal to 1 with an identifier indicating parity, thereby reducing the time required for encoding the original information.
  • Codeword when the zero-run value to be encoded is large, the codeword length required to encode the zero-run value can be reduced and the coding efficiency can be improved.
  • the zero-run value is in numerical form before encoding. After encoding, it includes information units such as flag bits, identifiers, and numerical values (such as quotient values), which are called codeword forms.
  • the zero run value as the value to be encoded is a zero run value in the form of a numerical value
  • the zero run value as the value to be decoded is The run-length value, and the zero-run-length value in "Decode zero-run-length value", "Zero-run-length value in code stream”, etc. are zero-run-length values in codeword form.
  • the quotient obtained by dividing the zero run value by 2 is similar.
  • Table 1 lists the comparison of the codewords used to encode zero run values of different lengths using the first embodiment (indicated by "A” in the table) and this embodiment (indicated by "B” in the table):
  • 0 ⁇ 8 in the table represents the zero run value
  • eq0 represents the flag bit whether the zero run value is equal to
  • eq1 represents the flag bit whether the zero run value is equal to 1
  • parity is the value of the identifier
  • value represents the quotient value.
  • An embodiment of the present disclosure provides a parity-based zero run value encoding method and a decoding method, using an identifier to represent the parity of the zero run value and using a flag bit.
  • the zero-run value encoding method of this embodiment separately encodes the quotient and remainder of the zero-run value divided by 2 in the code stream when encoding the zero-run value.
  • the process of encoding the quotient of the zero-run value divided by 2 in the code stream is as shown in the figure. 5, including:
  • Step 310 According to the value of the quotient, encode a flag indicating whether the quotient is equal to 0. If the quotient is equal to 0, the encoding of the quotient is completed and the process proceeds to step 330; if the quotient is not equal to 0, Execute step 320;
  • Step 320 Encode an identifier indicating the parity of the quotient and the quotient value of the quotient minus 1 and then divided by 2; wherein, if the identifier is 0, it means that the quotient is an odd number, and if it is 1, it means that the quotient is an even number;
  • Step 330 Encode the remainder of the zero run value divided by 2 run_length%2.
  • the remainder is encoded after encoding the quotient of the zero run value divided by the first divisor, in other embodiments the remainder may be encoded before or simultaneously with encoding the quotient.
  • the zero run value decoding method of this embodiment decodes the quotient and remainder of the zero run value divided by 2 in the code stream respectively.
  • the process of decoding the quotient of the zero run value divided by 2 in the code stream is as follows: As shown in Figure 6, including:
  • Step 410 Decode the flag bit indicating whether the quotient is equal to 0. If it is determined based on the flag bit that the quotient is equal to 0, the decoding of the quotient is completed and the process proceeds to step 430; determine based on the flag bit that the quotient is not equal to 0. In this case, perform step 420;
  • Step 420 Decode the identifier indicating the parity of the quotient and the quotient value minus 1 and then divide it by 2; multiply the decoded quotient value by 2, add 1, and add the value of the identifier , obtain the decoded quotient; wherein, the identifier is 0, indicating that the quotient is an odd number, and being 1 indicates that the quotient is an even number;
  • Step 430 Decode the remainder of dividing the zero run value by 2, multiply the decoded quotient by 2 and add the decoded remainder to obtain the decoded zero run value.
  • decoding the remainder of the zero run value divided by 2 in the code stream can also be performed before or at the same time as decoding the quotient of the zero run value divided by the first divisor.
  • class represents the category of the general test sequence
  • EtE BD-AttrRate represents the end-to-end code rate-distortion
  • EtE Hausdorff BD-AttrRate represents the end-to-end Hausdorff code rate-distortion
  • bpip ratio represents the code rate per input point
  • Y ,Cb and Cr respectively represent the three components of color
  • Reflectance represents the reflectance.
  • An embodiment of the present disclosure provides a parity-based zero run value encoding method and a decoding method, using identifiers to represent the zero run value or the parity of a value calculated based on the zero run value.
  • Step 510 Obtain the value to be encoded, which is the zero run value or the quotient of the zero run value divided by the first divisor, where the first divisor is a positive integer;
  • Step 520 According to the value to be encoded, encode at least one of the following information units according to the set encoding sequence: N flag bits indicating the relationship between the value to be encoded and the set value, and a flag indicating the parity of the value to be encoded. symbol, a numerical value calculated based on the value to be encoded, and N is a positive integer.
  • the set encoding order is as follows:
  • Encoding the identifier Encoding N flag bits, encoding a value calculated based on the value to be encoded; or
  • the above-set encoding sequence does not mean that all encoding processes must be performed, and only part of the processing can be performed.
  • the set encoding sequence is: encoding N flag bits, encoding the When encoding the identifier and the numerical value calculated based on the value to be encoded, only part or all of the N flag bits can be encoded to complete the encoding, and there is no need to encode the identifier and the numerical value. The same is true for other encoding sequences. Only one or more previous encoding processes can be performed. Some encoding processes, such as encoding N flag bits, can also only complete the encoding of part of the flag bits.
  • the value to be encoded is the quotient of the zero run value divided by the first divisor
  • the method further includes: encoding the quotient of the zero run value divided by the first divisor. Before or after or simultaneously, the remainder of the zero run value divided by the first divisor is encoded, wherein the first divisor is 2 or 3 or 4 or 8.
  • This method is to divide the zero run value into the quotient and the remainder and encode them separately.
  • the quotient is encoded using a parity-based encoding method.
  • the zero-run value encoding method is called parity-based zero-run value encoding method.
  • the present disclosure is not limited to setting the above-mentioned first divisor to 2, and may also be set to other values.
  • the identifier is 1, it means that the value to be encoded is an odd number, and if it is 0, it means that the value to be encoded is an even number; or if the identifier is 0, it means that the value to be encoded is an odd number, and if it is 1, it means The value to be encoded is an even number.
  • the value to be decoded is the quotient of the zero run value divided by the first divisor
  • the method further includes: decoding the quotient of the zero run value divided by the first divisor. Before or after or at the same time, decoding the remainder of the zero run value divided by the first divisor; and, multiplying the decoded quotient by the first divisor and adding the decoded remainder to obtain the decoded quotient A run-of-zero value where the first divisor is equal to 2 or 3 or 4 or 8.
  • the zero run value decoding method in this embodiment is shown in Figure 8, including:
  • Step 610 Receive a code stream containing a value to be decoded.
  • the code stream may be an attribute code stream of a point cloud, wherein the value to be decoded is a zero run value or a quotient of a zero run value divided by a first divisor, so The first divisor is a positive integer;
  • Step 620 Decode the information unit included in the value to be decoded according to the set decoding order.
  • the information unit includes: N flag bits indicating the relationship between the value to be decoded and the set value, and an identifier indicating the parity of the value to be decoded. , a value calculated based on the value to be compiled, N is a positive integer.
  • the set decoding order is as follows:
  • Decode N flag bits, decode the identifier, and decode the value calculated based on the value to be decoded;
  • Decode the identifier decode the N flag bits, and decode the value calculated based on the value to be decoded;
  • Decoding part of the N flag bits decoding the identifier, decoding the remaining flag bits of the N flag bits, and decoding a value calculated based on the value to be decoded.
  • the decoding order set above does not mean that all decoding processes must be performed, and only part of the processing can be performed.
  • the identifier is 1, it means that the value to be decoded is an odd number, and if it is 0, it means that the value to be decoded is an even number; or if the identifier is 0, it means that the value to be decoded is an odd number, and if it is 1, it means The value to be decoded is an even number.
  • the value to be decoded is the quotient of the zero run value divided by the first divisor
  • the method further includes: decoding the quotient of the zero run value divided by the first divisor. Before or after or at the same time, decode the remainder of the zero run value divided by the first divisor; multiply the decoded quotient by 2 and add the decoded remainder to obtain the decoded zero run value, where , the first divisor is 2 or 3 or 4 or 8.
  • the zero-run value encoding method and decoding method of the present disclosure through the combination of parity identifiers, flag bits, and numerical values, can reduce encoding when there are many larger values to be encoded, compared to simply using flag bits and numerical values.
  • the number of codeword bits thereby improving the coding efficiency.
  • An embodiment of the present disclosure provides a parity-based zero-run value encoding method and a decoding method.
  • a parity identifier is used during encoding to improve encoding efficiency.
  • the process of encoding the value to be encoded in this embodiment is shown in Figure 9.
  • the value to be encoded is the zero run value or the quotient of the zero run value divided by 2.
  • the process includes:
  • Step 710 According to the value to be encoded, encode the first flag bit indicating whether the value to be encoded is equal to 0. If the value to be encoded is equal to 0, the encoding is completed; if the value to be encoded is not equal to 0, the encoding is completed. Next, continue to step 720;
  • Step 720 Encode the second flag indicating whether the value to be encoded is equal to 1. If the value to be encoded is equal to 1, the encoding is completed; if the value to be encoded is not equal to 1, continue to step 730;
  • Step 730 Encode an identifier indicating the parity of the value to be encoded and the quotient of the value to be encoded minus 2 and then divided by 2; where the identifier is 1 indicating that the value to be encoded is an odd number, and 0 indicates that the value to be encoded is an odd number.
  • the coded value is an even number.
  • the identifier When encoding the identifier representing the parity of the value to be encoded and the quotient of the value to be encoded minus 2 and then divided by 2, the identifier may be encoded first, or the quotient value may be encoded first.
  • the value to be decoded is the quotient of a zero run value divided by 2. Then the zero run value encoding method also encodes the quotient of a zero run value divided by 2 before or after or at the same time. The zero run value is the remainder divided by 2.
  • the process of decoding the value to be decoded in this embodiment is shown in Figure 10.
  • the value to be decoded is the zero run value or the quotient of the zero run value divided by 2.
  • the process includes:
  • Step 810 Decode the first flag bit indicating whether the value to be decoded is equal to 0. If it is determined based on the first flag bit that the value to be decoded is equal to 0, decoding is completed; determine the value to be decoded based on the first flag bit. If the decoded value is not equal to 0, continue to step 820;
  • Step 820 Decode the second flag bit indicating whether the value to be decoded is equal to 1. If it is determined based on the second flag bit that the value to be decoded is equal to 1, decoding is completed; determine the value to be decoded based on the second flag bit. If the decoded value is not equal to 1, continue to step 830;
  • Step 830 Decode the identifier indicating the parity of the value to be decoded and the quotient of the value to be decoded minus 2 and then divided by 2; multiply the decoded quotient value by 2, add 2, and then add the flag.
  • the value of the symbol is used to obtain the decoded value to be decoded; wherein, the identifier is 1, indicating that the value to be decoded is an odd number, and 0, indicating that the value to be decoded is an even number.
  • the identifier may be decoded first, or the quotient value may be decoded first, and the present disclosure is not limited to this.
  • the value to be decoded is the quotient of the zero run value divided by 2
  • the zero run value decoding method also decodes the quotient of the zero run value divided by 2 before, after or at the same time as decoding the zero run value.
  • the zero run value is divided by the remainder of 2; and the decoded quotient is multiplied by 2 and the decoded remainder is added to obtain the decoded zero run value.
  • the first flag bit in the above encoding process and decoding process is defined as a flag bit indicating whether the value to be encoded is equal to 1
  • the second flag bit is defined as a flag bit indicating whether the value to be encoded is equal to 0.
  • Table 4 lists the comparison of the codewords used to encode zero run values of different lengths using the first embodiment (indicated by "A” in the table) and this embodiment (indicated by "C” in the table):
  • 0 ⁇ 8 in the table represents the zero run value
  • eq0 represents the flag bit whether the zero run value is equal to
  • eq1 represents the flag bit whether the zero run value is equal to 1
  • parity is the value of the identifier
  • value represents the quotient value.
  • This embodiment introduces a codeword that marks parity, which can divide the value to be encoded into two categories. When the value to be encoded is large, the encoding overhead can be saved. Experimental results show that using the zero-run value encoding and decoding method of this embodiment can bring significant performance gains.
  • An embodiment of the present disclosure provides a zero-run value encoding method and a decoding method based on parity. Parity flags are used during encoding to improve encoding efficiency. This embodiment uses three flag bits.
  • the process of encoding the value to be encoded in this embodiment is shown in Figure 11.
  • the value to be encoded is the zero run value or the quotient of the zero run value divided by 2:
  • Step 910 According to the value to be encoded, encode the first flag bit used to determine whether the value to be encoded is equal to 0. If the value to be encoded is equal to 0, encoding is completed; if the value to be encoded is not equal to 0 In the case of , continue to step 920;
  • Step 920 Encode the second flag bit used to determine whether the value to be encoded is equal to 1. If the value to be encoded is equal to 1, the encoding is completed; if the value to be encoded is not equal to 1, continue to perform steps. 930;
  • Step 930 Encode the third flag bit used to determine whether the value to be encoded is equal to 2. If the value to be encoded is equal to 2, the encoding is completed; if the value to be encoded is not equal to 2, continue to step 940. ;
  • Step 940 Encode an identifier indicating the parity of the value to be encoded and the quotient of the value to be encoded minus 3 and then divided by 2; where the identifier is 0, indicating that the value to be encoded is an odd number, and 1, indicating that the value to be encoded is an odd number.
  • the coded value is an even number;
  • the first flag bit, the second flag bit and the third flag bit are respectively used to determine whether the value to be encoded is equal to 0, 1, 2; in other embodiments, the first flag bit, the second flag bit and The third flag bit can also be used to determine whether the value to be encoded is equal to 0,2,1, or 1,0,2, or 1,2,0, or 2,0,1, or 2,1,0. In other words, the order of determining whether the value to be encoded is equal to 0, equal to 1, and equal to 2 can be adjusted and does not affect the achievement of the effect.
  • the identifier may be encoded first, or the quotient value may be encoded first.
  • the first flag bit indicates whether the value to be decoded is equal to 0
  • the second flag bit indicates whether the value to be decoded is equal to 1
  • the third flag bit indicates whether the value to be decoded is equal to 2.
  • “residual_zero_run_length_equal_zero” is used to mark the first flag bit whether the value to be decoded is equal to 0.
  • a value of '0' indicates that the value to be encoded is not equal to 0, and a value of '1' indicates that the value to be encoded is equal to 0;
  • use "residual_zero_run_length_equal_one” is the second flag bit used to mark whether the value to be encoded is equal to 1.
  • a value of '0' indicates that the value to be encoded is not equal to 1, and a value of '1' indicates that the value to be encoded is equal to 1; use "residual_zero_run_length_equal_two" to mark it.
  • the third flag bit indicates whether the value to be encoded is equal to 2.
  • a value of '0' indicates that the value to be encoded is not equal to 2, and a value of '1' indicates that the value to be encoded is equal to 2.
  • the first flag bit is used to indicate whether the value to be decoded is greater than 0
  • the second flag bit is used to indicate whether the value to be decoded is greater than 1
  • the third flag bit is used to indicate whether the value to be decoded is greater than 0. 2.
  • "residual_zero_run_length_gt_zero” is used to mark whether the value to be encoded is greater than 0.
  • a value of '0' indicates that the value to be encoded is not greater than 0.
  • a value of '1' indicates that the value to be encoded is greater than 0.
  • this syntax element does not appear When, its default value is 0; use "residual_zero_run_length_gt_two" to mark whether the value to be encoded is greater than 0, a value of '0' means that the value to be encoded is not greater than 2, a value of '1' means that the value to be encoded is greater than 2, when this syntax When the element does not appear, its default value is 0; when the parity identifier "parity" does not appear, its default value is 0.
  • the first flag bit indicates whether the value to be decoded is less than 1
  • the second flag bit indicates whether the value to be decoded is less than 2
  • the third flag bit indicates whether the value to be decoded is less than 3.
  • the N-order exponential Golomb encoding method when encoding the quotient value, may be used to encode the quotient value, where N is a natural number; or the unary encoding method may be used to encode the quotient value.
  • the distribution characteristics of point cloud attributes are used to adjust the encoding method of zero run values.
  • the method before encoding the quotient value, the method further includes: determining the exponential Golomb order; when the determined exponential Golomb order is greater than a preset order threshold, encoding the quotient value using a unary encoding method; When the determined exponential Golomb order is less than or equal to the preset order threshold, the N-order exponential Golomb encoding method is used to encode the quotient value.
  • the exponential Golomb order is used as the basis for selecting the quotient encoding method.
  • the specific encoding method selected is related to the characteristics of the encoded point cloud attributes.
  • the N-order exponential Golomb decoding method can be used to decode.
  • the quotient value when the determined exponential Golomb order is less than or equal to the preset order threshold, use the unary decoding method to decode the quotient value; where N is the determined exponential Golomb order, or N is the preset
  • the preset order is 0, 1, 2, 3, 4, 5, 6 or 7.
  • the method of determining the exponential Golomb order in this embodiment can adopt the method of the second embodiment mentioned above.
  • the exponential Golomb order corresponding to the color attribute and the preset can be used.
  • the comparison result of the order threshold is used to select the quotient encoding method when encoding zero run values.
  • the comparison result of the exponential Columbus order corresponding to the reflectivity attribute and the preset order threshold can be used to select the quotient encoding method when encoding the zero run value. .
  • This embodiment determines whether to use the unary encoding method or the exponential Golomb encoding method to encode the quotient value based on the comparison result between the determined exponential Golomb order and the preset order threshold. It can also be used for the implementation of other zero-run value encodings. example.
  • the method further includes: determining the exponential Golomb order; when the determined exponential Golomb order is greater than the preset order threshold, determining that the value to be encoded is a zero run value, that is, using the above The described method of directly encoding the zero run value; when the determined Columbus order of the index is less than or equal to the preset order threshold, the value to be encoded is determined to be the quotient of the zero run value divided by 2, that is, the above method is used. The method described in the article separates the zero run value into the quotient and the remainder and codes them separately.
  • the value to be decoded is the quotient of a zero run value divided by 2
  • the remainder of the zero run value divided by 2 is also encoded before or after or simultaneously with encoding the quotient of the zero run value divided by 2.
  • the process of decoding the value to be decoded in this embodiment is shown in Figure 12.
  • the value to be decoded is the zero run value or the quotient of the zero run value divided by 2:
  • Step 1010 decode the first flag bit. If the value to be decoded is determined to be equal to 0 according to the first flag bit, the decoding is completed; if the value to be decoded is not equal to 0 and is determined to be based on the first flag bit. , continue to step 1020;
  • Step 1020 decode the second flag bit. If the value to be decoded is determined to be equal to 1 according to the second flag bit, the decoding is completed; if the value to be decoded is not equal to 1 to be determined based on the second flag bit. , continue to step 1030;
  • Step 1030 Decode the third flag bit. If it is determined based on the third flag bit that the value to be decoded is equal to 2, decoding is completed; if it is determined based on the third flag bit that the value to be decoded is not equal to 2. , continue to step 1040;
  • Step 1040 Decode the identifier indicating the parity of the value to be decoded and the quotient of the value to be decoded minus 3 and then divided by 2; multiply the decoded quotient value by 2, add 3, and then add the flag.
  • the value of the symbol is used to obtain the decoded value to be decoded; wherein, if the identifier is 0, it means that the value to be decoded is an odd number, and if it is 1, it means that the value to be decoded is an even number.
  • the identifier may be decoded first, or the quotient value may be decoded first.
  • the first flag bit indicates whether the value to be decoded is equal to 0, the second flag bit indicates whether the value to be decoded is equal to 1, and the third flag bit indicates whether the value to be decoded is equal to 2.
  • the first flag bit indicates whether the value to be decoded is greater than 0.
  • the decoded first flag bit indicates that the value to be decoded is not greater than 0, the value to be decoded is determined based on the first flag bit. The decoded value is equal to 0; the second flag bit indicates whether the value to be decoded is greater than 1.
  • the third flag bit indicates Whether the value to be decoded is greater than 2, when the third flag bit of decoding indicates that the value to be decoded is not greater than 2, it is determined based on the third flag bit that the value to be decoded is equal to 2.
  • the first flag bit indicates whether the value to be decoded is less than 1. When the first flag bit of decoding indicates that the value to be decoded is less than 1, it is determined based on the first flag bit that the value to be decoded is equal to 0; the second flag bit Indicates whether the value to be decoded is less than 2.
  • the value to be decoded is determined to be equal to 1 according to the second flag bit.
  • the third flag bit indicates whether the value to be decoded is less than 3. When the decoded value is less than 2, the value to be decoded is determined to be equal to 1. The third flag bit indicates that when the value to be decoded is less than 3, the value to be decoded is determined to be equal to 2 based on the third flag bit.
  • first flag bit, the second flag bit and the third flag bit in this embodiment are respectively used to determine whether the value to be encoded is equal to 0, 1, 2; in other embodiments, the first flag bit, the second flag bit bit and the third flag bit can also be used to determine whether the value to be encoded is equal to 0,2,1, or 1,0,2, or 1,2,0, or 2,0,1, or 2,1,0 . That is, the order of determining whether the value to be decoded is equal to 0, equal to 1, and equal to 2 can be adjusted.
  • the encoding end determines whether to split the zero-run value encoding (ie, separate the quotient and the remainder into separate encodings) according to the exponential Golomb order, and determines the encoding method of the quotient value.
  • the decoding end needs to decode the exponential Golomb order, and determine the corresponding decoding method based on the decoded exponential Golomb order.
  • the method before decoding the quotient value, the method further includes: decoding the exponential Golomb order; in one example, when the decoded exponential Golomb order is greater than the preset order threshold, use unary decoding The method decodes the quotient value; when the decoded exponential Golomb order is less than or equal to the preset order threshold, an N-order exponential Golomb decoding method is used to decode the quotient value.
  • the N-order exponential Golomb decoding method is used to decode the quotient value; when the decoded exponential Golomb order is less than or equal to the preset In the case of order threshold, use the unary decoding method to decode the quotient value; where N is the decoded order, or N is the preset order, and the preset order is 0, 1, 2 ,3,4,5,6 or 7.
  • This embodiment determines whether to use the unary decoding method or the exponential Golomb decoding method to decode the quotient value based on the comparison result between the decoded exponential Golomb order and the preset order threshold. It can also be used for other zero-run value decoding. Example.
  • the method before decoding the value to be decoded, the method further includes: decoding the exponential Golomb order; when the decoded exponential Golomb order is greater than a preset order threshold, determining the value to be decoded The value is a zero-run value; when the decoded exponential Golomb order is less than or equal to the preset order threshold, the value to be decoded is determined to be the quotient of the zero-run value divided by 2. In an example of this embodiment, the value to be decoded is the quotient of the zero run value divided by 2. Then, before, after, or at the same time as decoding the quotient of the zero run value divided by 2, it is necessary to decode the zero run value divided by 2.
  • This embodiment determines whether the value to be decoded is a zero-run value or the quotient of a zero-run value divided by 2 based on the comparison result between the decoded exponential Columbus order and the preset order threshold. It can also be used for other zero-run values. Decoding example.
  • This embodiment introduces a codeword that marks parity, which can divide the value to be encoded into two categories.
  • the encoding overhead can be saved and the encoding efficiency can be improved, thus bringing about performance gain.
  • zero_run_length [(residual_zero_run_length_equal_zero? 0:
  • residual_zero_run_length_equal_zero represents the first flag bit of decoding indicating whether the value to be decoded is equal to 0
  • if(!residual_zero_run_length_equal_zero) represents whether it is true that the value to be decoded is not equal to 0
  • residual_zero_run_length_equal_one that is, the second flag bit indicating whether the value to be decoded is equal to 1 is decoded.
  • residual_zero_run_length_equal_one that is, the second flag bit indicating whether the value to be decoded is equal to 1 is decoded.
  • residual_zero_run_length_gt_zero, residual_zero_run_length_gt_one and residual_zero_run_length_gt_two indicate whether the value to be decoded is greater than 0, 1 and 2 respectively. if(!residual_zero_run_length_gt_zero) indicates whether the value to be decoded is greater than 0.
  • residual_zero_run_length_gt_zero indicates whether the value to be decoded is greater than 0.
  • parity+(value ⁇ 1) Examples of using one flag bit, two flag bits and three flag bits have been given above. These flag bits are used to indicate that the value to be encoded is equal to the set value such as 0,1,2 . In the same way, more flag bits can be used to implement encoding with parity identifiers and quotient values to meet the needs of different scenarios.
  • Table 4 lists the comparison of the codewords used to encode zero run values of different lengths using the first embodiment (indicated by "A” in the table) and this embodiment (indicated by "B” in the table):
  • 0 ⁇ 8 in the table represents the zero run value
  • eq0 represents the flag bit whether the zero run value is equal to
  • eq1 represents the flag bit whether the zero run value is equal to 1
  • parity is the value of the identifier
  • value represents the quotient value.
  • this embodiment was tested on the point cloud compression reference platform PCRM6.0 of the Audio Video Coding Standard (AVS: Audio Video coding Standard), involving the following four test conditions: limit-lossy geometry, lossy attributes, that is, the geometric position is limited and lossy, and the attributes are lossy; lossless geometry, lossy attributes, that is, the geometric position is lossless, and the attributes are lossy; lossless geometry, limit-lossy attributes, that is, the geometric position is lossless, and the attributes are limited and lossy; and , lossless geometry, lossless attributes, that is, lossless geometric position and lossless attributes.
  • the test sequences used include five general test sequences: Cat1A, Cat1B, Cat1C, Cat2-frame and Cat3. Among them, Cat1A and Cat2-frame point clouds only contain reflectivity attribute information, Cat1B and Cat3 point clouds only contain color attribute information, and Cat1B Point clouds contain both color and reflectivity attribute information.
  • Tables 5.1 to 5.4 show the experimental results based on each of the four test conditions using this embodiment under the prediction branch.
  • Tables 6.1 to 6.4 show the experimental results based on each of the four test conditions using this embodiment under the transformation branch.
  • An embodiment of the present disclosure provides a zero-run value encoding method and a decoding method based on parity.
  • a parity identifier is used during encoding to improve encoding efficiency.
  • This embodiment uses a flag bit to indicate whether the value to be encoded is greater than 1. .
  • the process of encoding the value to be encoded is as follows.
  • the value to be encoded is the zero run value or the quotient of the zero run value divided by 2:
  • the first step according to the value to be encoded, encode an identifier indicating the parity of the value to be encoded and a flag bit indicating whether the value to be encoded is greater than 1.
  • the value to be encoded is not greater than 1, the encoding is completed; If the value to be encoded is greater than 1, proceed to the second step;
  • the flag bit can be encoded first, or the identifier can be encoded first.
  • the second step is to encode the quotient of the value to be encoded minus 2 and divided by 2; where the identifier is 1, indicating that the value to be encoded is an odd number, and 0, indicating that the value to be encoded is an even number.
  • the value to be decoded is the quotient of the zero run value divided by 2, then the zero run value is also encoded before, after, or at the same time as the quotient of the zero run value divided by 2. Remainder after dividing by 2.
  • the process of decoding the value to be decoded is as follows.
  • the value to be decoded is the zero run value or the quotient of the zero run value divided by 2:
  • the first step is to decode the identifier indicating the parity of the value to be decoded and the flag bit indicating whether the value to be decoded is greater than 1. If it is determined based on the flag bit that the value to be decoded is not greater than 1, the identifier is The value is used as the decoded value to be decoded, and decoding is completed; if it is determined according to the flag bit that the value to be decoded is greater than 1, proceed to the second step;
  • the second step is to decode the quotient of the value to be decoded minus 2 and then divide it by 2, multiply the decoded quotient by 2, add 2 and add the value of the identifier to obtain the decoded value.
  • the value to be decoded where the identifier is 1, indicating that the value to be decoded is an odd number, and 0, indicating that the value to be decoded is an even number.
  • the value to be decoded is the quotient of the zero run value divided by 2, then before, after, or at the same time as decoding the quotient of the zero run value divided by 2, the zero run value is also decoded. divide by the remainder of 2; and multiply the decoded quotient by 2 and add the decoded remainder to obtain the decoded zero run value.
  • This embodiment introduces a code word that marks parity, which can divide the value to be encoded into two categories. With a flag bit to determine whether the value to be encoded is greater than 1, when the value to be encoded is large, the encoding overhead can be saved (it can be easily It is deduced that when the zero run value is 0 to 8, the codeword encoded according to this embodiment can be determined by comparing with the first embodiment), which improves the coding efficiency and thus brings about performance gains.
  • An embodiment of the present disclosure provides a zero run value encoding method and a decoding method based on parity.
  • a parity identifier is used during encoding to improve encoding efficiency.
  • This embodiment also uses a flag indicating whether the value to be encoded is greater than 1. bit and a flag indicating whether the value to be encoded is greater than 3.
  • the process of encoding the value to be encoded is as follows.
  • the value to be encoded is the zero run value or the quotient of the zero run value divided by 2:
  • the first step encode an identifier indicating the parity of the value to be encoded and a first flag indicating whether the value to be encoded is greater than 1.
  • the value to be encoded is not greater than 1, the encoding is completed. ; If the value to be encoded is greater than 1, proceed to the second step;
  • the second step is to encode the second flag indicating whether the value to be encoded is greater than 3. If the value to be encoded is not greater than 3, the encoding is completed; if the value to be encoded is greater than 3, continue to the third step. ;
  • the encoding represents the quotient of the value to be encoded minus 4 and then divided by 2; where the identifier is 1, indicating that the value to be encoded is an odd number, and 0, indicating that the value to be encoded is an even number.
  • the value to be decoded is the quotient of the zero run value divided by 2, then the zero run value is also encoded before, after, or at the same time as the quotient of the zero run value divided by 2. Remainder after dividing by 2.
  • the process of decoding the value to be decoded is as follows.
  • the value to be decoded is the zero run value or the quotient of the zero run value divided by 2:
  • the first step is to decode the identifier indicating the parity of the value to be decoded and the first flag bit indicating whether the value to be decoded is greater than 1. If it is determined based on the first flag bit that the value to be decoded is not greater than 1, all The value of the identifier is used as the decoded value to be decoded, and decoding is completed; if it is determined based on the first flag bit that the value to be decoded is greater than 1, proceed to the second step;
  • the third step is to decode the quotient value that represents the value to be decoded minus 4 and then divide it by 2. Multiply the decoded quotient value by 2, add 4, and add the value of the identifier to obtain the decoded quotient value.
  • the value to be decoded where the identifier is 1, indicating that the value to be decoded is an odd number, and 0, indicating that the value to be decoded is an even number.
  • the value to be decoded is the quotient of the zero run value divided by 2, then before, after, or at the same time as decoding the quotient of the zero run value divided by 2, the zero run value is also decoded. divide by the remainder of 2; and multiply the decoded quotient by 2 and add the decoded remainder to obtain the decoded zero run value.
  • This embodiment introduces a codeword that marks parity, which can divide the value to be encoded into two categories. With a flag bit to judge whether the value to be encoded is greater than 1 and a flag bit to judge whether the value to be encoded is greater than 3, when the value to be encoded is larger than When large, the coding overhead can be saved (it can be easily deduced that when the zero run value is 0 to 16, the codeword obtained by encoding according to this embodiment can be determined by comparing it with the first embodiment), and the coding efficiency can be improved, thereby Bring performance gains.
  • An embodiment of the present disclosure provides a zero-run value encoding method and a decoding method based on parity. Parity identifiers are used during encoding to improve encoding efficiency. This embodiment also uses a flag indicating whether the value to be encoded is greater than 0. bit and a flag indicating whether the value to be encoded is greater than 2.
  • the process of encoding the value to be encoded is as follows.
  • the value to be encoded is the zero run value or the quotient of the zero run value divided by 2:
  • the first step is to encode the first flag indicating whether the value to be encoded is greater than 0 according to the value to be encoded. When the value to be encoded is not greater than 0, the encoding is completed; when the value to be encoded is greater than 0, the encoding is completed. If so, proceed to step two;,
  • the first flag bit indicating whether the value to be encoded is greater than 0 can also be called the first flag bit indicating whether the value to be encoded is equal to 0.
  • the two are equivalent.
  • the second step is to encode the identifier indicating the parity of the value to be encoded and the second flag bit indicating whether the value to be encoded is greater than 2.
  • the encoding is completed; when the value to be encoded is If it is greater than 2, continue to step three;
  • the third step is to encode the quotient of the value to be encoded minus 3 and divided by 2;
  • the identifier if the identifier is 0, it means that the value to be encoded is an odd number, and if it is 1, it means that the value to be encoded is an even number.
  • the value to be decoded is the quotient of the zero run value divided by 2, then the zero run value is also encoded before, after, or at the same time as the quotient of the zero run value divided by 2. Remainder after dividing by 2.
  • the process of decoding the value to be decoded is as follows.
  • the value to be decoded is the zero run value or the quotient of the zero run value divided by 2:
  • the first step is to decode the first flag bit that indicates whether the value to be decoded is greater than 0. If it is determined based on the first flag bit that the value to be decoded is not greater than 0, the decoded value to be decoded is 0. Decode Completed; if it is determined according to the first flag that the value to be decoded is greater than 0, proceed to the second step;
  • the second step is to decode the identifier indicating the parity of the value to be decoded and the second flag bit indicating whether the value to be decoded is greater than 2. If it is determined based on the second flag bit that the value to be decoded is not greater than 2, all The value of the identifier is added by 1 as the decoded value to be decoded, and the decoding is completed; if it is determined based on the second flag bit that the value to be decoded is greater than 2, proceed to the third step;
  • the third step is to decode the quotient value obtained by subtracting 3 from the value to be decoded and dividing it by 2; multiply the decoded quotient value by 2, add 3, and then add the value of the identifier to obtain the decoded value.
  • the value to be decoded where the identifier is 0, indicating that the value to be decoded is an odd number, and 1, indicating that the value to be decoded is an even number.
  • the value to be decoded is the quotient of the zero run value divided by 2, then before, after, or at the same time as decoding the quotient of the zero run value divided by 2, the zero run value is also decoded. divide by the remainder of 2; and multiply the decoded quotient by 2 and add the decoded remainder to obtain the decoded zero run value.
  • This embodiment introduces a codeword that marks parity, which can divide the value to be encoded into two categories. With a flag bit to judge whether the value to be encoded is greater than 0 and a flag bit to judge whether the value to be encoded is greater than 2, when the value to be encoded is larger than When large, the coding overhead can be saved (for example, when the zero run value can be easily deduced to be 0 to 16, the codewords encoded according to this embodiment can be determined by comparing with the first embodiment), and the coding efficiency is improved. This results in performance gains.
  • the above gives an example of using one flag bit and two flag bits, combining identifiers and numerical values to encode zero run values.
  • These flag bits indicate whether the value to be encoded is greater than the set value.
  • the set value can be 0, 1, 2,3 etc. It is easy to understand that more such flag bits can be set, and the zero run value can be encoded by combining appropriate identifiers and values, so I will not list them one by one here.
  • An embodiment of the present disclosure also provides a video encoding method, as shown in Figure 13, including:
  • Step 1110 obtain the quantized residual of the attribute information of the video midpoint
  • Step 1120 Encode points in the video point by point, use zero run length values to record the number of consecutive points with zero quantized residuals of the attribute information, and follow the zero run length value encoding method as described in any embodiment of the present disclosure. Encode the zero run value.
  • the zero run value can be encoded when the quantized residual of the attribute information of the current point is not zero and the quantized residual of the attribute of the last point is zero. Please refer to the first embodiment.
  • the video is a point cloud video
  • the attribute information of the points in the video includes at least one of the following: the color of the points in the point cloud; the reflectivity of the points in the point cloud.
  • the encoding end encodes the quantized residual of the color of the point and the quantized residual of the reflectivity of the point in the point cloud attribute code stream. Please refer to the description of the first embodiment. This embodiment describes the method of encoding the zero run value. Improvements were made.
  • the method before encoding the zero-run value, further includes: determining whether to enable the parity-based zero-run value encoding method according to a flag indicating whether to enable the parity-based zero-run value encoding method.
  • the zero run value is encoded according to the zero run value encoding method described in any embodiment of the present disclosure.
  • the flag in this example is related to a switch for turning on (also called activation, use, enlightenment) or disabling (also called deactivation, disabling).
  • the embodiment of the present disclosure is based on parity (that is, using A zero-run value encoding that encodes the parity of the value).
  • the encoding end can select an appropriate zero-run value encoding method according to the characteristics of the video to be processed.
  • This flag can be set or generated locally at the encoding end.
  • This flag can be encoded and written into the code stream.
  • the flag can be written into the attribute header information of the point cloud attribute code stream, or it can also be passed to the decoding end through other methods. This allows the decoding end to select the corresponding zero-run value decoding method based on this flag.
  • the flag can have one or more bits. In the case where multiple zero-run-length value encoding methods are configured on the encoding side, this flag can also be used to indicate which of the zero-run-length value encoding methods is used.
  • the encoding method of the zero-run value is adjusted according to the distribution characteristics of the point cloud attributes, that is, the zero-run value uses an adaptive entropy encoding method.
  • the method also includes: determining the Columbus order of the index corresponding to the attribute information based on the difference between the maximum value and the minimum value of the attribute information of the point cloud center point and the quantitative parameter of the attribute information; The order is written into the attribute header information of the point cloud attribute code stream. At least one of the exponential Columbus order corresponding to the color and the exponential Columbus order corresponding to the reflectivity can be written into the attribute header information of the point cloud attribute code stream.
  • the method of determining the exponential Golomb order corresponding to the attribute information in this embodiment is as shown in the second embodiment above.
  • this embodiment is based on the comparison result between the determined exponential Golomb order and the preset order threshold. Determine whether to directly encode the zero run value, or divide the zero run value into the quotient and remainder of the zero run value divided by 2 to encode respectively; you can also determine based on the comparison result between the determined exponential Columbus order and the preset order threshold.
  • encoding zero-run values use unary encoding or exponential Golomb encoding to encode the quotient value. See the corresponding embodiment in Figure 11 for determination.
  • An embodiment of the present disclosure also provides a video decoding method, as shown in Figure 14, including:
  • Step 1210 Decode the zero run value in the video code stream according to the method described in any embodiment of the present disclosure
  • Step 1220 Decode the quantized residual of the attribute information of the midpoint of the video code stream according to the decoded zero run value.
  • the video code stream is an attribute code stream of a point cloud;
  • the attribute information of the point includes at least one of the following: the color of the point and the reflectivity of the point.
  • the process of the decoding end decoding the quantized residual of the color of the point and the quantized residual of the reflectivity of the point in the point cloud attribute code stream can be referred to the description of the first embodiment above.
  • This embodiment decodes the zero run. The value method has been improved.
  • the method before decoding the zero-run value in the video code stream, the method further includes: decoding from the attribute header information of the point cloud attribute code stream to obtain a value indicating whether to enable parity-based zero-run encoding. flag; if the enable flag indicates that the parity-based zero run-length encoding method is turned on, then the zero-run value encoding method based on parity is used to decode the zero run-length value in the video code stream according to any embodiment of the present disclosure.
  • the decoding end can also configure the flag locally, or receive the flag sent from the encoding end in other ways, so as to select the corresponding zero run value decoding method to decode the zero run value according to the flag.
  • the encoding end determines the exponential Golomb order corresponding to the attribute based on the maximum value and minimum value of the attribute information and the encoding parameters, and determines the corresponding zero-run value encoding method based on the determined exponential Golomb order.
  • the exponential Golomb order used when decoding the zero run value is the exponential Golomb order corresponding to the color attribute decoded from the attribute header information of the point cloud attribute code stream; and/or , in the case of decoding the quantized residual of the reflectivity of a point, the exponent Golomb order used when decoding the zero run value is the exponent Golomb corresponding to the reflectance attribute decoded from the attribute header information of the point cloud attribute code stream. Order.
  • the video is a point cloud video
  • the video can also be other two-dimensional videos or three-dimensional videos.
  • the zero-valued quantized residual is encoded and decoded based on the zero-run value, it is easy to understand that the zero-run value encoding and decoding method in any embodiment of the present disclosure can be used to improve the coding efficiency. That is, the solutions of the disclosed embodiments are applicable to similar scenarios in various video coding standards.
  • Video coding standards include but are not limited to: H.264/Advanced Video Coding (AVC), H.265/High Efficiency Video Coding (HEVC), H.266/Versatile Video Coding (VVC), MPEG (Moving Picture Experts Group), AOM (Alliance for Open Media), AVS (Audio Video coding Standard) and extensions of these standards, or any other customized standards, etc.
  • AVC Advanced Video Coding
  • HEVC High Efficiency Video Coding
  • VVC Very Low Efficiency Video Coding
  • MPEG Motion Picture Experts Group
  • AOM Alliance for Open Media
  • AVS Audio Video coding Standard
  • extensions of these standards or any other customized standards, etc.
  • An embodiment of the present disclosure also provides a video code stream, which includes an information unit representing a zero run value.
  • the information unit includes at least one of the following:
  • N flag bits are set to indicate the relationship between the value to be decoded and the set value, N is a positive integer;
  • Identifier set to indicate the parity of the value to be decoded
  • the value to be decoded is the zero run value, or is the quotient of the zero run value divided by a first divisor, and the first divisor is a positive integer.
  • the information unit includes: 3 flag bits, respectively used to determine whether the value to be decoded is equal to 0, 1, 2; a flag set to indicate the parity of the value to be decoded; and, the value to be decoded minus The quotient value is divided by 2 after removing 3; wherein the value to be decoded is the zero run value or the quotient of the zero run value divided by 2. In the case where the value to be decoded is the quotient of the zero run value divided by 2, the information unit further includes the remainder of the zero run value divided by 2.
  • the three flag bits include a first flag bit, a second flag bit, and a third flag bit, where: the first flag bit indicates whether the value to be decoded is equal to 0, and the second flag bit indicates whether the value to be decoded is equal to 0.
  • the flag bit indicates whether the value to be decoded is equal to 1, and the third flag bit indicates whether the value to be decoded is equal to 2; or, the first flag bit indicates whether the value to be decoded is greater than 0, and the second flag bit indicates the value to be decoded.
  • the third flag bit indicates whether the value to be decoded is greater than 2; or, the first flag bit indicates whether the value to be decoded is less than 1, and the second flag bit indicates whether the value to be decoded is less than 2, and the The third flag indicates whether the value to be decoded is less than 3.
  • the video code stream is an attribute code stream of a point cloud
  • the zero run value is used to encode at least one of the following information: the quantized residual of the color of the point cloud, the point cloud Quantized residual of reflectance at midpoint.
  • the attribute code stream also includes attribute header information
  • the attribute header information includes at least one of the following information: the exponential Golomb order of the color attribute of the point in the point cloud; The exponential Golomb order of the point's reflectivity attribute; and, a flag indicating whether to turn on the zero-run encoding method based on parity.
  • the arrangement order of the information units is: N flag bits, the identifier is a value calculated based on the expected value; or N flag bits, based on The value calculated based on the value to be expected, the identifier; or the identifier, N number of flag bits, the value calculated based on the value to be expected; or, part of the flags among the N number of flag bits bit, the identifier, the remaining flag bits among the N flag bits, the value calculated based on the expected value;
  • the N flag bits that represent the relationship between the value to be encoded and the set value include any one or more of the following: a flag bit that indicates whether the value to be encoded is equal to the set value, and a flag bit that indicates whether the value to be encoded is greater than the set value.
  • the identifier is 1, it means that the value to be encoded is an odd number, and if it is 0, it means that the value to be encoded is an even number; or if the identifier is 0, it means that the value to be encoded is an odd number, and if it is 1, it means that the value to be encoded is an even number;
  • An embodiment of the present disclosure also provides a zero-run value decoding device. As shown in Figure 15, it includes a processor 5 and a memory 6 storing a computer program. When the processor 5 executes the computer program, it can implement A zero-run value decoding method as described in any embodiment of the present disclosure.
  • An embodiment of the present disclosure also provides a zero-run value encoding device. See Figure 15, which includes a processor and a memory storing a computer program. When the processor executes the computer program, it can implement any of the aspects of the present disclosure.
  • An embodiment of the present disclosure also provides a video decoding device, see FIG. 15 , including a processor and a memory storing a computer program, wherein when the processor executes the computer program, it can implement any embodiment of the present disclosure.
  • the video decoding method includes a processor and a memory storing a computer program, wherein when the processor executes the computer program, it can implement any embodiment of the present disclosure.
  • An embodiment of the present disclosure also provides a video encoding device, see FIG. 15 , including a processor and a memory storing a computer program, wherein when the processor executes the computer program, it can implement any embodiment of the present disclosure.
  • the video encoding method see FIG. 15 , including a processor and a memory storing a computer program, wherein when the processor executes the computer program, it can implement any embodiment of the present disclosure.
  • An embodiment of the present disclosure also provides a video encoding and decoding system, which includes a video encoding device as described in any embodiment of the present disclosure and a video decoding device as described in any embodiment of the present disclosure.
  • An embodiment of the present disclosure also provides a non-transitory computer-readable storage medium.
  • the computer-readable storage medium stores a computer program, wherein when the computer program is executed by a processor, it implements any implementation of the present disclosure.
  • Computer-readable media may include computer-readable storage media that corresponds to tangible media, such as data storage media, or communication media including any medium that facilitates transfer of a computer program from one place to another, such as according to a communications protocol.
  • Computer-readable media generally may correspond to non-transitory, tangible computer-readable storage media or communication media such as a signal or carrier wave.
  • Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and/or data structures for implementing the techniques described in this disclosure.
  • a computer program product may include computer-readable media.
  • Such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage devices, magnetic disk storage devices or other magnetic storage devices, flash memory or may be used to store instructions or data. Any other medium that stores the desired program code in the form of a structure and that can be accessed by a computer.
  • any connection is also termed a computer-readable medium if, for example, a connection is sent from a website, server, or using any of the following: coaxial cable, fiber-optic cable, twisted pair, digital subscriber line (DSL), or wireless technology such as infrared, radio, and microwave or other remote source transmits instructions, then coaxial cable, fiber optic cable, twin-wire, DSL or wireless technologies such as infrared, radio and microwave are included in the definition of medium.
  • coaxial cable, fiber optic cable, twin-wire, DSL or wireless technologies such as infrared, radio and microwave are included in the definition of medium.
  • disks and optical discs include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy disks, or Blu-ray discs. Disks usually reproduce data magnetically, while optical discs use lasers to reproduce data. Regenerate data optically. Combinations of the above should also be included within the scope of computer-readable media.
  • processors such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits.
  • DSPs digital signal processors
  • ASICs application specific integrated circuits
  • FPGAs field programmable logic arrays
  • Execute instructions may refer to any of the structures described above or any other structure suitable for implementing the techniques described herein.
  • the functionality described herein may be provided within dedicated hardware and/or software modules configured for encoding and decoding, or incorporated in a combined codec.
  • the techniques may be implemented entirely in one or more circuits or logic elements.
  • inventions of the present disclosure may be implemented in a wide variety of devices or equipment, including wireless handsets, integrated circuits (ICs), or a set of ICs (eg, chipsets).
  • ICs integrated circuits
  • a set of ICs eg, chipsets.
  • Various components, modules or units are depicted in embodiments of the present disclosure to emphasize functional aspects of devices configured to perform the described techniques, but do not necessarily require implementation by different hardware units. Rather, as described above, the various units may be combined in a codec hardware unit or provided by a collection of interoperating hardware units (including one or more processors as described above) in conjunction with suitable software and/or firmware.

Landscapes

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

Abstract

L'invention concerne des procédés de codage et de décodage de valeur d'exécution nulle et des procédés, des dispositifs et des systèmes de codage et de décodage vidéo. Lorsque des informations d'attribut d'un point dans une vidéo sont codées et décodées, une valeur d'exécution nulle est codée et décodée ; la valeur d'exécution nulle est codée, la parité d'une valeur à coder est représentée à l'aide d'un identifiant de parité, et le codage de la valeur à coder est achevé par la combinaison de trois bits indicateurs. Pendant le décodage, l'identifiant de parité et trois bits indicateurs sont utilisés et une valeur numérique est décodée pour obtenir une valeur d'exécution nulle. Les modes de réalisation de la présente invention concernent en outre des dispositifs et des systèmes de codage et de décodage correspondants. Les modes de réalisation de la présente invention permettent de réduire le surdébit de codage et d'améliorer l'efficacité de compression.
PCT/CN2022/083875 2022-03-29 2022-03-29 Procédés de codage et de décodage de valeur d'exécution nulle et procédés, dispositifs et systèmes de codage et de décodage vidéo WO2023184196A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/083875 WO2023184196A1 (fr) 2022-03-29 2022-03-29 Procédés de codage et de décodage de valeur d'exécution nulle et procédés, dispositifs et systèmes de codage et de décodage vidéo

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/083875 WO2023184196A1 (fr) 2022-03-29 2022-03-29 Procédés de codage et de décodage de valeur d'exécution nulle et procédés, dispositifs et systèmes de codage et de décodage vidéo

Publications (1)

Publication Number Publication Date
WO2023184196A1 true WO2023184196A1 (fr) 2023-10-05

Family

ID=88198362

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/083875 WO2023184196A1 (fr) 2022-03-29 2022-03-29 Procédés de codage et de décodage de valeur d'exécution nulle et procédés, dispositifs et systèmes de codage et de décodage vidéo

Country Status (1)

Country Link
WO (1) WO2023184196A1 (fr)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636642B1 (en) * 1999-06-08 2003-10-21 Fuji Xerox Co., Ltd. Image coding device, image decoding device, image coding/decoding device and image coding/decoding method
CN101383965A (zh) * 2008-07-25 2009-03-11 上海龙晶微电子有限公司 一种avs游程解码方法
CN110996105A (zh) * 2018-10-02 2020-04-10 三星电子株式会社 可变速率压缩的方法和可变速率解压缩的方法
CN112995662A (zh) * 2021-03-12 2021-06-18 北京大学深圳研究生院 一种点云的属性熵编码和熵解码的方法及设备
US20210319593A1 (en) * 2020-04-14 2021-10-14 Apple Inc. Significant coefficient flag encoding for point cloud attribute compression

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636642B1 (en) * 1999-06-08 2003-10-21 Fuji Xerox Co., Ltd. Image coding device, image decoding device, image coding/decoding device and image coding/decoding method
CN101383965A (zh) * 2008-07-25 2009-03-11 上海龙晶微电子有限公司 一种avs游程解码方法
CN110996105A (zh) * 2018-10-02 2020-04-10 三星电子株式会社 可变速率压缩的方法和可变速率解压缩的方法
US20210319593A1 (en) * 2020-04-14 2021-10-14 Apple Inc. Significant coefficient flag encoding for point cloud attribute compression
CN112995662A (zh) * 2021-03-12 2021-06-18 北京大学深圳研究生院 一种点云的属性熵编码和熵解码的方法及设备

Similar Documents

Publication Publication Date Title
US11523124B2 (en) Coded-block-flag coding and derivation
US9532056B2 (en) Method for adaptive entropy coding of tree structures
WO2019210531A1 (fr) Procédé de compression d'attribut de nuage de points basé sur la suppression des éléments 0 dans une matrice de quantification
US9035807B2 (en) Hierarchical entropy encoding and decoding
JP7490685B2 (ja) 点群符号化方法、点群復号化方法、符号器、復号器及びコンピュータ記憶媒体
US7839311B2 (en) Architecture for multi-stage decoding of a CABAC bitstream
WO2020123469A1 (fr) Encodage d'attribut d'arbre hiérarchique par points médians dans un codage en nuage de points
JP2015504545A (ja) 予測位置符号化
WO2021196029A1 (fr) Procédé et dispositif de codage et de décodage d'un nuage de points
US11151748B2 (en) 3D point cloud data encoding/decoding method and apparatus
WO2020115471A1 (fr) Codage en plan binaire de tableaux de données
CN112399181B (zh) 图像编解码的方法、装置和存储介质
JP2015502100A (ja) 終了可能な空間ツリー型位置符号化および復号
WO2022057091A1 (fr) Procédé de codage, procédé de décodage, dispositif de codage et dispositif de décodage pour attribut de nuage de points
CN110944179B (zh) 一种视频数据解码方法及装置
US20220005229A1 (en) Point cloud attribute encoding method and device, and point cloud attribute decoding method and devcie
CN115379190A (zh) 一种点云处理方法、装置及计算机设备、存储介质
US20240054685A1 (en) Point cloud decoding method, point cloud encoding method, and point cloud decoding device
WO2021243519A1 (fr) Procédé et appareil de codage et décodage de nuage de points
WO2023184196A1 (fr) Procédés de codage et de décodage de valeur d'exécution nulle et procédés, dispositifs et systèmes de codage et de décodage vidéo
WO2023168712A1 (fr) Procédés de codage et de décodage de valeur de longueur de plage nulle et procédés, appareils et systèmes de codage et de décodage vidéo
CN105472395B (zh) 一种基于离散Krawtchouk正交多项式的图像无损压缩方法
CN113453002B (zh) 量化与熵编码方法及装置
WO2024007253A1 (fr) Procédé d'optimisation débit-distorsion de nuage de points, procédé et appareil de compression d'attribut, et support de stockage
Jagadeesh et al. An approach for image compression using adaptive Huffman coding

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

Country of ref document: EP

Kind code of ref document: A1