CN111479114A - Point cloud encoding and decoding method and device - Google Patents
Point cloud encoding and decoding method and device Download PDFInfo
- Publication number
- CN111479114A CN111479114A CN201910070741.XA CN201910070741A CN111479114A CN 111479114 A CN111479114 A CN 111479114A CN 201910070741 A CN201910070741 A CN 201910070741A CN 111479114 A CN111479114 A CN 111479114A
- Authority
- CN
- China
- Prior art keywords
- patch
- information
- matching
- decoded
- encoded
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/161—Encoding, multiplexing or demultiplexing different image signal components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
The application discloses a point cloud coding and decoding method and a coder-decoder, relates to the technical field of coding and decoding, and is beneficial to improving the coding and decoding efficiency of point cloud data and reducing the bit overhead of a code stream. The method for encoding the point cloud comprises the following steps: acquiring side information of a patch to be coded; if the patch to be coded is the patch in the first frame point cloud in the subgroup, encoding the side information of the patch to be coded into a code stream; the side information comprises two-dimensional information, three-dimensional information, rotation transformation information, global matching patch identification and matching patch index; the global matching patch identifier is used for indicating whether the to-be-coded patch is a global matching patch in the subgroup or not; if the patch to be coded is the patch in the non-first frame point cloud in the subgroup, encoding side information of the patch to be coded into the code stream, wherein the side information comprises three-dimensional information and a matching patch index.
Description
Technical Field
The present application relates to the field of encoding and decoding technologies, and in particular, to a method and an apparatus for encoding and decoding a point cloud (point cloud).
Background
With the continuous development of 3d sensor (e.g., 3d scanner) technology, it is more and more convenient to acquire point cloud data, and the scale of the acquired point cloud data is also larger and larger, so how to effectively encode the point cloud data becomes a problem that needs to be solved urgently.
After dividing the multi-frame point cloud in the point cloud group into a plurality of subgroups, if the point cloud blocks (patches) of two adjacent subgroups have a matching relationship, and the matching relationship is also used for constraining the consistency of information such as the rotation angle and the normal coordinate axis of the matching patches, the point cloud blocks (patches) in the subgroups are constrained to be subjected to certain constraint when being packed, so that the sizes of the generated depth map and the texture map are increased. And even if partial side information of the global matching patch of each frame of point cloud in the subgroup is the same, all the side information of the global matching patch of each frame of point cloud is coded into the code stream during coding, and the bit cost of the code stream is increased.
Disclosure of Invention
The embodiment of the application provides a point cloud coding and decoding method and device, which are beneficial to enabling the size of a generated depth map and a generated texture map to be smaller, reducing the bit overhead of a code stream and further improving the coding and decoding efficiency.
In a first aspect, an embodiment of the present application provides a method for encoding a point cloud, including:
acquiring side information of a patch to be coded; if the patch to be coded is the patch in the first frame point cloud in the subgroup, encoding the side information of the patch to be coded into a code stream; the side information comprises two-dimensional information, three-dimensional information, rotation transformation information, global matching patch identification and matching patch index; the global matching patch identifier is used for indicating whether the to-be-coded patch is a global matching patch in the subgroup or not; if the patch to be coded is the patch in the non-first frame point cloud in the subgroup, encoding the side information of the patch to be coded into the code stream, wherein the side information comprises three-dimensional information and a matching patch index.
As can be seen from the above, for the patch in the non-first frame point cloud in the subgroup, only part of the side information is coded into the code stream, so that the bit overhead of the code stream is reduced, and the coding efficiency is further improved.
In addition, it should be understood that the global matching patch identification of the patch (e.g., patch A) in the first frame point cloud is encoded into the codestream, the method is to analyze the global matching patch ID of the patch A at the decoding end, once the patch A is used as the reference patch of other patches (for example, the patch B in the non-leading frame point cloud), the global matching patch ID of the patch B can be determined based on the global matching patch ID of the patch A, further if the global match patch of patch B is identified as a first value (e.g. l or true), the two-dimensional information, the normal coordinate axis information, and the rotation transformation information of patch B may be derived or determined from the two-dimensional information, the normal coordinate axis information, and the rotation transformation information of the reference patch of patch B (i.e., patch a), therefore, the information is prevented from being coded in the code stream during coding, so that the bit overhead of the code stream is reduced, and the coding efficiency is improved.
The first frame point cloud of the subgroup refers to the 0 th frame point cloud in the subgroup, the non-first frame point cloud of the subgroup refers to the ith frame point cloud in the subgroup, i is 1,2, …, N-1, and N is the number of frames of the point clouds in the subgroup.
It should be noted that the global match patch flag of the patch to be encoded may be a first value (e.g., tube or 1) or a second value (e.g., false or 0). The first value is used for indicating that the to-be-coded patch is a global matching patch in the subgroup, and the second value is used for indicating that the to-be-coded patch is not the global matching patch in the subgroup.
The fact that the to-be-encoded patch is a global matching patch in the subgroup means that a patch (hereinafter, referred to as a reference patch) matching the to-be-encoded patch can be found in all point clouds (other point cloud frames) except the point cloud (also referred to as a frame of point cloud or a point cloud frame) to which the to-be-encoded patch belongs in the subgroup. The fact that the to-be-encoded patch is not a global matching patch in the subgroup means that the to-be-encoded patch can find a patch matched with the to-be-encoded patch in a part of point clouds (namely some point cloud frames) in the subgroup except for the point cloud to which the to-be-encoded patch belongs, or the to-be-encoded patch cannot be found in the point clouds in the subgroup except for the point cloud to which the to-be-encoded patch belongs. A global match patch that is not within a subgroup may also be referred to as a non-global match patch.
The matching patch index of the patch to be encoded is an index of a patch (hereinafter, referred to as a reference patch) that matches the patch to be encoded in the reference frame of the point cloud to which the patch to be encoded belongs. The matching patch index of the patch to be encoded may be a non-default value or a default value. The to-be-matched patch index is a non-default value to indicate a reference patch matched with the to-be-encoded patch, in other words, the to-be-encoded patch is a matching patch. E.g., patch [ k ]. matchedpatcIndex does not equal-1, -1 is a default value, indicating the reference patch of the patch to be encoded. The to-be-matched patch index is a default value to indicate that the to-be-coded patch has no patch matched with the to-be-coded patch, in other words, the to-be-coded patch is a non-matched patch. E.g., patch [ k ]. matchedpatcIndex equals-1, -1 is a default value, indicating that the patch to be encoded does not have a matching patch. The patch in the reference frame indicated by the matching patch index of the patch to be encoded is the reference patch.
The normal coordinate axis information may also be referred to as normal axis information, such as normaaxis, i.e. a normal axis index of the patch to be encoded.
The rotation transformation information of the patch to be encoded may be rotation angle information, coordinate axis transformation information or mirror transformation information. The rotation angle information of the patch to be encoded includes a specific rotation angle value or a rotation angle index. For example, if the rotation angle value of the patch to be encoded is 0, it indicates that the patch is not rotated; if the rotation angle value of the patch to be coded is 20, the patch is rotated by 20 degrees; if the rotation angle value of the patch to be encoded is 80, it indicates that the patch is rotated by 80 °. If the rotation angle index of the patch to be coded is 0, the patch is not rotated; if the rotation angle index of the patch to be coded is 1, the patch is rotated by 15 degrees; if the rotation angle index of the patch to be coded is 2, the patch is rotated by 30 degrees; if the rotation angle index of the patch to be encoded is 3, it indicates that the patch is rotated by 45 °.
It should be noted that the rotation of the patch to be encoded may be clockwise rotation or counterclockwise rotation, which is not limited in this application.
The coordinate axis transformation information of the to-be-encoded patch may be represented as a coordinate axis transformation index, for example, when the coordinate axis exchange identifier of the to-be-encoded patch is 0 or false, it represents that the tangent coordinate axis and the double tangent coordinate axis of the to-be-encoded patch are not exchanged; for example, when the coordinate axis exchange identifier of the patch to be encoded is 1 or tune, it indicates that the tangent coordinate axis and the bi-tangent coordinate axis of the patch to be encoded are exchanged. For example, assuming that the U-axis index is 0 and the V-axis index is 1, the index of the tangent coordinate axis of the patch to be encoded is 0 by default, which means that the tangent coordinate axis of the patch to be encoded is the U-axis; the index of the two tangent coordinate axes of the patch to be encoded is 1, which indicates that the two tangent coordinate axes of the patch to be encoded is the V axis. If the coordinate axis exchange identification of the patch to be coded is false, the index of the tangent coordinate axis of the patch and the index of the double tangent coordinate axis are not exchanged; if the coordinate axis exchange identification of the patch to be encoded is tune, exchanging the index of the tangent coordinate axis of the patch to be encoded and the index of the double tangent coordinate axis, that is, updating the index of the tangent coordinate axis of the patch to be encoded to 1, and updating the index of the double tangent coordinate axis of the patch to 0.
The mirror transformation information may be represented as a mirror transformation index, for example, when the mirror transformation index is 0, it represents that the U axis is transformed into the-U axis; for example, when the mirror transformation index is 1, the V axis is transformed into the-V axis; for example, when the mirror transform index is 2, it means that the V axis is transformed into the-V axis and the U axis is transformed into the-U axis.
The three-dimensional information of the patch to be encoded includes u1, v1 and d1, or the three-dimensional information of the patch to be encoded includes a difference value between u1 of the patch to be encoded and u1 of the reference patch thereof, a difference value between v1 of the patch to be encoded and v1 of the reference patch thereof, and a difference value between d1 of the patch to be encoded and d1 of the reference patch thereof. Where u1 (also referred to as patch _3d _ shift _ vary _ axis) is the offset of the point in the patch along the tangent axis, v1 (also referred to as patch _3d _ shift _ displacement _ axis) is the offset of the point in the patch along the bisector axis, and d1 (also referred to as patch _3d _ shift _ normal _ axis) is the offset of the point in the patch along the normal axis.
The two-dimensional information of the patch to be encoded includes u0, v0, sizeU0 and sizeuv 0, or the two-dimensional information of the patch to be encoded includes a difference between u0 of the patch to be encoded and u0 of its reference patch, a difference between v0 of the patch to be encoded and v0 of its reference patch, a difference between sizeU0 of the patch to be encoded and sizeU0 of its reference patch, and a difference between sizeU0 of the patch to be encoded and sizeuv 0 of its reference patch. Wherein u0 (also called patch _2d _ shift _ u) is an abscissa value x of the position of the occupancy map of the patch to be encoded in the point cloud occupancy map to which the occupancy map belongs, and v0 (also called patch _2d _ shift _ v) is an ordinate value y of the position of the occupancy map of the patch to be encoded in the point cloud occupancy map to which the occupancy map belongs; sizeU0 is the width of the patch to be encoded (e.g., the width of the patch on the graph occupied by the point cloud to which it belongs); sizeV0 is the height of the patch to be encoded (e.g., the height of the patch on the graph occupied by the point cloud to which it belongs).
In one possible embodiment, if the to-be-encoded patch is a patch in the initial frame point cloud in the subgroup, and the to-be-encoded patch is a global matching patch and has a patch matching therewith, encoding edge information of the to-be-encoded patch into the code stream, where a matching patch index of the to-be-encoded patch is a non-default value to indicate a reference patch matching the to-be-encoded patch; the global matching patch identifier of the to-be-coded patch is a first value to indicate that the to-be-coded patch is a global matching patch in the subgroup;
if the patch to be coded is a patch in the non-first frame point cloud in the subgroup, encoding the side information of the patch to be coded into a code stream, including: if the to-be-encoded patch is a patch in the non-first frame point cloud in the subgroup, the to-be-encoded patch is a global matching patch and has a patch matched with the global matching patch, encoding side information of the to-be-encoded patch into the code stream, and the matching patch index is a non-default value to indicate a reference patch matched with the to-be-encoded patch. E.g., patch [ k ]. matchedpatcIndex does not equal-1, -1 is a default value, indicating the reference patch of the patch to be encoded.
Considering that the global matching patches in the subgroup have the same two-dimensional information, normal coordinate axis information, rotation transformation information and global matching patch identification, for the patches in the first frame point cloud in the subgroup (for example, patch a, which is the global matching patch, and patch a has the matching patch B), the two-dimensional information, three-dimensional information, rotation transformation information, global matching patch identification and matching patch index of patch a are encoded into the code stream, and for the patches in the non-first frame (for example, patch B), the three-dimensional information and matching patch index of patch B are encoded into the code stream. At a decoding end, analyzing the two-dimensional information, the three-dimensional information, the rotation transformation information, the global matching patch identification and the matching patch index of the patch A from the code stream, analyzing the three-dimensional information and the matching patch index of the patch B from the code stream, and determining the global matching patch identification of the patch B according to the global matching patch identification of the patch A if the patch A is determined to be the reference patch of the patch B according to the matching patch index of the patch B. If the global matching patch of the patch B is identified as the first value (e.g., l or tune), the two-dimensional information, the normal coordinate axis information, and the rotation transformation information of the patch B are respectively determined according to the two-dimensional information, the normal coordinate axis information, and the rotation transformation information of the reference patch of the patch B (i.e., the patch a), so that the aforementioned information is prevented from being coded in the code stream, thereby reducing the bit overhead of the code stream and improving the coding efficiency. It should be noted that, the normal coordinate axis information of the patch a does not need to be encoded into the code stream, but on the decoding side, the normal coordinate axis information of the patch a is determined according to the normal coordinate axis information of the reference patch indicated by the matching patch index of the patch a.
In one possible embodiment, if the patch to be encoded is a patch in the first frame point cloud in the subgroup, encoding the edge information of the patch to be encoded into the code stream, including:
if the to-be-encoded patch is a patch in the first frame point cloud in the subgroup, the to-be-encoded patch is a global matching patch and does not have a patch matched with the to-be-encoded patch, the side information of the to-be-encoded patch further comprises normal coordinate axis information, the side information of the to-be-encoded patch is coded into the code stream, and the matching patch index is a default value to indicate that the to-be-encoded patch does not have a matched patch with the matching patch. E.g., patch [ k ]. matchedpatcIndex equals-1, -1 is a default value, indicating that the patch to be encoded does not have a matching patch. The global match patch flag of the to-be-encoded patch is a first value to indicate that the to-be-encoded patch is a global match patch within the subgroup.
In one possible embodiment, if the patch to be encoded is a patch in the first frame point cloud in the subgroup, encoding the edge information of the patch to be encoded into the code stream, including: if the to-be-encoded patch is the patch in the first frame point cloud in the subgroup, the to-be-encoded patch is a non-global matching patch and has a reference patch matched with the to-be-encoded patch, encoding the side information of the to-be-encoded patch into the code stream; the matching patch index of a patch to be encoded is a non-default value to indicate a reference patch that matches the patch to be encoded. E.g., patch [ k ]. matchedpatcindex is not equal to-1 (e.g., -1 is a default value), indicating the reference patch of the patch to be encoded. The global match patch flag of the to-be-encoded patch is a second value to indicate that the to-be-encoded patch is not a global match patch within the subgroup.
If the patch to be coded is a patch in the non-first frame point cloud in the subgroup, encoding the side information of the patch to be coded into a code stream, including: if the to-be-encoded patch is a patch in the non-first frame point cloud in the subgroup, the to-be-encoded patch is a non-global matching patch and has a patch matched with the to-be-encoded patch, the side information of the to-be-encoded patch also comprises two-dimensional information, and the side information of the to-be-encoded patch is encoded into the code stream; the matching patch index of the patch to be encoded is a non-default value to indicate a reference patch matching the patch to be encoded. E.g., patch [ k ]. matchedpatcindex is not equal to-1 (e.g., -1 is a default value), indicating a reference patch for the patch to be encoded.
Considering that the mutually matched patches in the subgroup have the same normal coordinate axis information and rotation transformation information, for a patch in the first frame point cloud in the subgroup (for example, the patch a and the patch a are non-global matching patches and the patch a has a patch B matching therewith), in this embodiment, the two-dimensional information, the three-dimensional information, the rotation transformation information, the global matching patch identifier, and the matching patch index of the patch a are encoded into the code stream, and for a patch in the non-first frame (for example, the patch B), the two-dimensional information, the three-dimensional information, and the matching patch index of the patch B are encoded into the code stream. At a decoding end, analyzing the two-dimensional information, the three-dimensional information, the rotation transformation information, the global matching patch identification and the matching patch index of the patch A from the code stream, and analyzing the two-dimensional information, the three-dimensional information and the matching patch index of the patch B from the code stream, if once the patch A is determined to be the reference patch of the patch B according to the matching patch index of the patch B, respectively determining the normal coordinate axis information and the rotation transformation information of the patch B according to the normal coordinate axis information and the rotation transformation information of the reference patch of the patch B (namely, the patch A), the encoding of the information in the code stream is avoided, so that the bit cost of the code stream is reduced, and the encoding efficiency is improved. It should be noted that, the normal coordinate axis information of the patch a does not need to be encoded into the code stream, but on the decoding side, the normal coordinate axis information of the patch a is determined according to the normal coordinate axis information of the reference patch indicated by the matching patch index of the patch a.
In one possible embodiment, if the patch to be encoded is a patch in the first frame point cloud in the subgroup, encoding the edge information of the patch to be encoded into the code stream, including: if the to-be-coded patch is a patch in the first frame point cloud in the subgroup, the to-be-coded patch is a non-global matching patch and the to-be-coded patch does not have a patch matched with the to-be-coded patch, the side information of the to-be-coded patch further includes normal coordinate axis information (for example, normaaxis, namely, a normal axis index of the to-be-coded patch), and the side information of the to-be-coded patch is coded into a code stream; the matching patch index of the to-be-encoded patch is a default value to indicate that the to-be-encoded patch does not have a patch that matches it. E.g., patch [ k ]. matchedpatcIndex equals-1, -1 is a default value, indicating that the patch to be encoded does not have a matching patch. The global match patch flag of the to-be-encoded patch is a second value to indicate that the to-be-encoded patch is not a global match patch within the subgroup.
If the patch to be coded is a patch in the non-first frame point cloud in the subgroup, encoding the side information of the patch to be coded into a code stream, including: if the to-be-encoded patch is a patch in the non-leading frame point cloud in the subgroup, and the to-be-encoded patch is a non-global matching patch and does not have a patch matching therewith, the side information of the to-be-encoded patch further includes two-dimensional information, normal coordinate axis information (e.g., normaaxis, i.e., a normal axis index of the to-be-encoded patch) and rotation transformation information, and the side information of the to-be-encoded patch is encoded into the code stream, where the matching patch index of the to-be-encoded patch is a default value to indicate that the to-be-encoded patch does not have a patch matching therewith. E.g., patch [ k ]. matchedpatcIndex equals-1, -1 is a default value, indicating that the patch to be encoded does not have a matching patch.
As can be seen from the above, as for a patch (for example, patch a) in the first frame point cloud, the purpose of encoding the global matching patch id of the patch into the code stream is that the patches having a matching relationship have the same global matching patch id. If the patch a is a reference patch of another patch (e.g., the patch B in the non-leading frame), even if the global matching patch id of the patch B is not parsed from the code stream at the decoding end, the global matching patch id of the patch B can be determined according to the global matching patch id of the patch a. If patch B does not have a reference patch that matches it, then patch B may be determined to be a non-global match patch, and its global match patch identification may be directly determined to be a second value (e.g., 0 or false). Therefore, for the global matching patch identification, the encoding end only needs to encode the global matching patch identification of the patch in the first frame point cloud into the code stream, and does not need to encode the global matching patch identification of the non-first frame point cloud into the code stream, so that the bit cost of the code stream is reduced, and the encoding efficiency is improved.
Under a feasible implementation mode, the two-dimensional information and/or the three-dimensional information of the patch to be coded are coded into the code stream in a differential coding mode.
It should be noted that encoding two-dimensional information into the code stream by using a differential encoding method specifically includes encoding a difference between u0 of the patch to be encoded and u0 of the reference patch thereof, a difference between v0 of the patch to be encoded and v0 of the reference patch thereof, a difference between sizeU0 of the patch to be encoded and sizeU0 of the reference patch thereof, and a difference between sizeU0 of the patch to be encoded and sizeU0 of the reference patch thereof into the code stream; similarly, encoding the three-dimensional information into the code stream by using a differential encoding method specifically includes encoding a difference value between u0 of the patch to be encoded and u0 of the reference patch, a difference value between v0 of the patch to be encoded and v0 of the reference patch, a difference value between sizeU0 of the patch to be encoded and sizeU0 of the reference patch, and a difference value between sizeU0 of the patch to be encoded and sizeU0 of the reference patch into the code stream. The differential coding mode is adopted to further achieve the purpose of reducing the bit overhead of the code stream.
The reference patch of the to-be-encoded patch is the patch indicated by the matching patch index of the to-be-encoded patch in the point cloud to which the to-be-encoded patch belongs.
It can be seen that, in the scheme of the embodiment of the application, for the global matching patch, since partial side information of the global matching patch is the same, it is not necessary to encode partial side information of the global matching patch in the non-leading frame point cloud in the subgroup into the code stream. By adopting the method and the device, the matching relation that the rotation transformation information used for restricting the matching patch is consistent among the subgroups is abandoned, so that the packing of each subgroup is more flexible, and the sizes of the generated depth map and the texture map are smaller. Because partial side information of the global matching patch is coded only once, the purpose of improving coding efficiency is achieved, and bit overhead of the code stream is reduced.
In a second aspect, an embodiment of the present application provides a method for decoding a point cloud, including:
analyzing side information of the patch to be decoded from the code stream; if the side information comprises two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier and a matching patch index, normal coordinate axis information of the patch to be decoded is obtained according to the matching patch index; if the side information comprises three-dimensional information and a matching patch index, obtaining global matching patch identification, two-dimensional information, normal coordinate axis information and rotation transformation information of the patch to be decoded according to the matching patch index; reconstructing the patch to be decoded according to the two-dimensional information, the three-dimensional information, the normal coordinate axis information and the rotation transformation information of the patch to be decoded; and the global matching patch identifier is used for indicating whether the to-be-decoded patch is the global matching patch in the subgroup or not.
It can be seen from the above that, at the decoding end, on the one hand, if two-dimensional information, three-dimensional information, rotation transformation information, global matching patch identification and matching patch index of the patch a are analyzed from the code stream, even if normal coordinate axis information of the patch a is not analyzed from the code stream, normal coordinate axis information of the patch a can be derived at the decoding side according to the normal coordinate axis information of the reference patch indicated by the matching patch index of the patch a. On the other hand, if it is assumed that the three-dimensional information and the matching patch index of the patch B are analyzed from the code stream, once it is determined that the patch a is the reference patch of the patch B according to the matching patch index of the patch B, the normal coordinate axis information and the rotation transformation information of the patch B are respectively derived or determined according to the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the reference patch of the patch B (i.e., the patch a). Therefore, even if only partial side information of the patch B is analyzed from the code stream, other side information of the patch B can be obtained by combining the partial side information of the patch B with the side information of the patch A which is analyzed or derived from the code stream by the decoding end, so that the decoding efficiency is improved on the premise of reducing bit overhead of the code stream to a certain extent.
It should be noted that the global match patch flag of the to-be-decoded patch may be a first value (such as tune or 1) or a second value (such as false or 0). The first value of the global matching patch identifier of the to-be-decoded patch indicates that the to-be-decoded patch is the global matching patch, and the second value of the global matching patch identifier of the to-be-decoded patch indicates that the to-be-decoded patch is not the global matching patch in the subgroup.
The matching patch index of the patch to be decoded is the index of the patch that matches the patch to be decoded. The patch matched with the to-be-decoded patch is a patch in a reference frame of the point cloud to which the to-be-decoded patch belongs. The matching patch index of the patch to be decoded may be a non-default value or a default value. The matching patch index of the to-be-decoded patch is a non-default value to indicate a reference patch of the to-be-decoded patch, i.e., the to-be-decoded patch is a matching patch, and the matching patch index of the to-be-decoded patch is a default value to indicate that the to-be-decoded patch does not have a matching patch with the matching patch, i.e., the to-be-decoded patch is a non-matching patch.
The patch in the reference frame indicated by the matching patch index of the patch to be decoded is the reference patch. In other words, the reference patch is the patch indicated by the matching patch index of the patch to be decoded in the reference frame of the point cloud to which the patch to be decoded belongs.
It should be noted that specific descriptions of the two-dimensional information, the three-dimensional information, and the rotation transformation information of the patch to be decoded can be referred to the related descriptions of the two-dimensional information, the three-dimensional information, and the rotation transformation information of the patch to be encoded in the first aspect, and are not described here.
In a possible embodiment, if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, the obtaining, according to the matching patch index, normal coordinate axis information of the patch to be decoded includes:
if the matching patch index is a non-default value, determining normal coordinate axis information of the to-be-decoded patch according to the normal coordinate axis information of the reference patch indicated by the matching patch index;
if the side information includes three-dimensional information and a matching patch index, then global matching patch identification, two-dimensional information, normal coordinate axis information and rotation transformation information of the to-be-decoded patch are obtained according to the matching patch index, and the method includes the following steps: if the matching patch index is a non-default value, determining a global matching patch identifier of a to-be-decoded patch according to the global matching patch identifier of the reference patch indicated by the matching patch index; if the global matching patch identifier of the to-be-decoded patch is a first value, respectively determining two-dimensional information, normal coordinate axis information and rotation transformation information of the to-be-decoded patch according to the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the reference patch;
the match patch index is a non-default value to indicate a reference patch of the to-be-decoded patch, and the global match patch flag is a first value to indicate the to-be-decoded patch as a global match patch within the subgroup.
From the above, at the decoding end, on one hand, assuming that two-dimensional information, three-dimensional information, normal coordinate axis information, rotation transformation information, global matching patch identification and matching patch index of the patch a are analyzed from the code stream, even if the normal coordinate axis information of the patch a is not analyzed from the code stream, the normal coordinate axis information of the patch a can be derived at the decoding side according to the normal coordinate axis information of the reference patch indicated by the matching patch index of the patch a. On the other hand, assuming that the three-dimensional information and the matching patch index of the patch B are analyzed from the code stream, if the reference patch of the patch B is determined according to the matching patch index of the patch B, the global matching patch identifier of the patch B is determined according to the global matching patch identifier of the patch a, and if the global matching patch identifier of the patch B is the first value, the normal coordinate axis information and the rotation transformation information of the patch B are respectively derived or determined according to the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the reference patch of the patch B (i.e., the patch a). Therefore, even if only partial side information of the patch B is analyzed from the code stream, other side information of the patch B can be obtained by combining the partial side information of the patch B with the side information of the patch A which is analyzed or derived from the code stream by the decoding end, so that the decoding efficiency is improved on the premise of reducing bit overhead of the code stream to a certain extent.
In a possible embodiment, if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, the obtaining, according to the matching patch index, normal coordinate axis information of the patch to be decoded includes: if the matching patch index is a default value, normal coordinate axis information of the patch to be decoded is analyzed from the code stream;
the match patch index is a default value to indicate that the to-be-decoded patch has no matched patch, and the global match patch flag is a first value to indicate that the to-be-decoded patch is a global match patch in the subgroup.
In a possible embodiment, if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, the obtaining, according to the matching patch index, normal coordinate axis information of the patch to be decoded includes: if the matching patch index is a non-default value, determining normal coordinate axis information of the to-be-decoded patch according to the normal coordinate axis information of the reference patch indicated by the matching patch index;
if the side information includes three-dimensional information and a matching patch index, then global matching patch identification, two-dimensional information, normal coordinate axis information and rotation transformation information of the to-be-decoded patch are obtained according to the matching patch index, and the method includes the following steps: if the matching patch index is a non-default value, determining a global matching patch identifier of a to-be-decoded patch according to the global matching patch identifier of the reference patch indicated by the matching patch index; if the global matching patch identifier of the to-be-decoded patch is a second value (for example, false or 0), analyzing two-dimensional information of the to-be-decoded patch from the code stream, and respectively determining normal coordinate axis information and rotation transformation information of the to-be-decoded patch according to the normal coordinate axis information and the rotation transformation information of the reference patch;
wherein the matching patch index of the to-be-decoded patch is a non-default value to indicate a reference patch of the to-be-decoded patch; the global match patch flag of the to-be-decoded patch is a second value to indicate that the to-be-decoded patch is not a global match patch within the subgroup.
It can be seen from the above that, at the decoding end, on the one hand, if two-dimensional information, three-dimensional information, rotation transformation information, global matching patch identification and matching patch index of the patch a are analyzed from the code stream, even if normal coordinate axis information of the patch a is not analyzed from the code stream, normal coordinate axis information of the patch a can be derived at the decoding side according to the normal coordinate axis information of the reference patch indicated by the matching patch index of the patch a. On the other hand, assuming that the three-dimensional information and the matching patch index of the patch B are analyzed from the code stream, if the reference patch of the patch B is determined according to the matching patch index of the patch B, the global matching patch of the patch B is determined according to the global matching patch identifier of the patch a, and if the global matching patch identifier of the patch B is a second value, the two-dimensional information of the patch B is also analyzed from the code stream, and the normal coordinate axis information and the rotation transformation information of the patch B are respectively derived or determined according to the normal coordinate axis information and the rotation transformation information of the reference patch of the patch B (i.e., the patch a). Therefore, even if only partial side information of the patch B is analyzed from the code stream, other side information of the patch B can be obtained by combining the partial side information of the patch B with the side information of the patch A which is analyzed or derived from the code stream by the decoding end, so that the decoding efficiency is improved on the premise of reducing bit overhead of the code stream to a certain extent.
In a possible embodiment, if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, the obtaining, according to the matching patch index, normal coordinate axis information of the patch to be decoded includes: if the matching patch index is a default value, analyzing the information of the to-be-decoded patch normal coordinate axis from the code stream;
if the side information includes three-dimensional information and a matching patch index, then global matching patch identification, two-dimensional information, normal coordinate axis information and rotation transformation information of the to-be-decoded patch are obtained according to the matching patch index, and the method includes the following steps: if the matching patch index is a default value, analyzing two-dimensional information, normal coordinate axis information and rotation transformation information of the to-be-decoded patch from the code stream, and determining that the global matching patch identifier of the to-be-decoded patch is a second value;
the matching patch index of the to-be-decoded patch is a default value to indicate that the to-be-decoded patch does not have a matching patch, and the global matching patch identifier of the to-be-decoded patch is a second value to indicate that the to-be-decoded patch is not a global matching patch in the subgroup.
As can be seen from the above, at the decoding end, the technical effect of determining the global matching patch identifier of the current patch (such as patch a) as the second value (e.g. 0 or false) is: if the reference patch of the patch B is the patch A, determining the global matching patch identifier of the patch B according to the global matching patch identifier of the patch A, thereby determining that the patch B is a non-global matching patch, further analyzing the two-dimensional information of the patch B from the code stream, and respectively deriving or determining the normal coordinate axis information and the rotation transformation information of the patch B according to the normal coordinate axis information and the rotation transformation information of the reference patch of the patch B (namely, the patch A). Therefore, even if only partial side information of the patch B is analyzed from the code stream, other side information of the patch B can be obtained by combining the partial side information of the patch B with the side information of the patch A which is analyzed or derived from the code stream by the decoding end, so that the decoding efficiency is improved on the premise of reducing bit overhead of the code stream to a certain extent.
In one possible embodiment, a differential decoding mode is adopted to analyze the two-dimensional information and/or the three-dimensional information of the patch to be decoded from the code stream.
It should be noted that, in the differential decoding, the two-dimensional information of the to-be-decoded patch is parsed from the codestream, specifically, the difference between u0 of the to-be-decoded patch and u0 of the reference patch thereof, the difference between v0 of the to-be-decoded patch and v0 of the reference patch thereof, the difference between sizeU0 of the to-be-decoded patch and sizeU0 of the reference patch thereof, and the difference between sizeU0 of the to-be-decoded patch and sizeU0 of the reference patch thereof are parsed from the codestream; then, u0 of the patch to be decoded is obtained according to the difference value between u0 of the patch to be decoded and u0 of the reference patch and u0 of the reference patch, v0 of the patch to be decoded is obtained according to the difference value between v0 of the patch to be decoded and v0 of the reference patch and v0 of the reference patch, sizeU0 of the patch to be decoded is obtained according to the difference value between sizeU0 of the patch to be decoded and sizeU0 of the reference patch and sizeU0 of the reference patch, and sizeU0 of the patch to be decoded is obtained according to the difference value between sizeU0 of the patch to be decoded and sizeU0 of the reference patch and sizeU0 of the reference patch. Similarly, the analyzing the three-dimensional information of the to-be-decoded patch from the code stream by adopting the differential decoding method specifically includes analyzing a difference value between u1 of the to-be-decoded patch and u1 of a reference patch thereof from the code stream, a difference value between v1 of the to-be-decoded patch and v1 of the reference patch thereof, and a difference value between d1 of the to-be-decoded patch and d1 of the reference patch thereof; then, u1 of the patch to be decoded is obtained according to the difference value between u1 of the patch to be decoded and u1 of the reference patch and u1 of the reference patch, v1 of the patch to be decoded is obtained according to the difference value between v1 of the patch to be decoded and v1 of the reference patch and v1 of the reference patch, and d1 of the patch to be decoded is obtained according to the difference value between d1 of the patch to be decoded and d1 of the reference patch and d1 of the reference patch.
It can be seen that, in the scheme of the embodiment of the application, the side information of the global matching patch in the sub-group head frame point cloud is analyzed from the code stream; because the partial side information of the global matching patch in the non-head frame point is the same, the partial side information of the global matching patch in the non-head frame point can be obtained by directly deducing according to the side information of the global matching patch in the head frame point cloud, and the decoding efficiency is improved.
In a third aspect, an embodiment of the present application provides another method for encoding a point cloud, including:
acquiring side information of a patch to be coded;
encoding indication information into a code stream, wherein the indication information is used for indicating whether side information of the patch to be encoded is encoded according to a target encoding method; the object encoding method comprises part or all of the point cloud encoding method as described in the first aspect.
In a fourth aspect, an embodiment of the present application provides another method for decoding point clouds, including:
analyzing the code stream to obtain indication information, wherein the indication information is used for indicating whether the side information is decoded according to a target decoding method; when the indication information is used for indicating that the side information is decoded according to the target decoding method, the side information of the patch to be decoded is obtained according to the target decoding method; the target decoding method comprises part or all of the point cloud encoding method as described in the second aspect; and reconstructing the patch to be decoded according to the side information of the patch to be decoded.
In a fifth aspect, an embodiment of the present application further provides an apparatus for encoding a point cloud, including:
the patch information acquisition module is used for acquiring the side information of the patch to be coded;
the auxiliary information encoding module is used for encoding the side information of the patch to be encoded into the code stream if the patch to be encoded is the patch in the first frame point cloud in the subgroup; the side information comprises two-dimensional information, three-dimensional information, rotation transformation information, global matching patch identification and matching patch index; the global matching patch identifier is used for indicating whether the to-be-coded patch is a global matching patch in the subgroup or not; if the patch to be coded is a patch in the non-first frame point cloud in the subgroup, encoding side information of the patch to be coded into a code stream, wherein the side information comprises three-dimensional information and a matching patch index.
In a possible embodiment, in the aspect of encoding the side information of the to-be-encoded patch into the code stream if the to-be-encoded patch is a patch in the first frame point cloud in the subgroup, the auxiliary information encoding module is specifically configured to: if the to-be-encoded patch is a patch in the first frame point cloud in the subgroup, the to-be-encoded patch is a global matching patch and has a patch matched with the global matching patch, encoding side information of the to-be-encoded patch into a code stream; the matching patch index of the patch to be encoded is a non-default value to indicate a reference patch that matches the patch to be encoded; the global matching patch identifier of the to-be-coded patch is a first value to indicate that the to-be-coded patch is a global matching patch in the subgroup;
in the aspect of encoding side information of the to-be-encoded patch into the code stream if the to-be-encoded patch is a patch in a non-first-frame point cloud in the subgroup, the auxiliary information encoding module is specifically configured to: if the to-be-encoded patch is a patch in the non-first frame point cloud in the subgroup, the to-be-encoded patch is a global matching patch and has a patch matched with the to-be-encoded patch, encoding side information of the to-be-encoded patch into a code stream; the matching patch index of the patch to be encoded is a non-default value to indicate a reference patch that matches the patch to be encoded.
In a possible embodiment, in the aspect of encoding the side information of the to-be-encoded patch into the code stream if the to-be-encoded patch is a patch in the first frame point cloud in the subgroup, the auxiliary information encoding module is specifically configured to: if the to-be-coded patch is a patch in the first frame point cloud in the subgroup, the to-be-coded patch is a globally matched patch and the to-be-coded patch does not have a patch matched with the to-be-coded patch, the side information of the to-be-coded patch also comprises normal coordinate axis information, and the side information of the to-be-coded patch is coded into a code stream; wherein, the matching patch index of the patch to be coded is a default value to indicate that the patch to be coded does not have a patch matched with the matching patch; the global match patch flag of the to-be-encoded patch is a first value to indicate that the to-be-encoded patch is a global match patch within the subgroup.
In a possible embodiment, in the aspect of encoding the side information of the to-be-encoded patch into the code stream if the to-be-encoded patch is a patch in the first frame point cloud in the subgroup, the auxiliary information encoding module is specifically configured to: if the to-be-encoded patch is the patch in the first frame point cloud in the subgroup, the to-be-encoded patch is a non-global matching patch and has a patch matched with the to-be-encoded patch, encoding side information of the to-be-encoded patch into a code stream; the matching patch index of the patch to be encoded is a non-default value to indicate a reference patch matching the patch to be encoded; the global matching patch identifier of the to-be-encoded patch is a second value to indicate that the to-be-encoded patch is not a global matching patch within the subgroup;
in the aspect of encoding side information of the to-be-encoded patch into the code stream if the to-be-encoded patch is a patch in a non-first-frame point cloud in the subgroup, the auxiliary information encoding module is specifically configured to: if the to-be-encoded patch is a patch in the non-first frame point cloud in the subgroup, the to-be-encoded patch is a non-global matching patch and has a patch matched with the to-be-encoded patch, the side information of the to-be-encoded patch also comprises two-dimensional information, and the side information of the to-be-encoded patch is encoded into the code stream; the matching patch index of the patch to be encoded is a non-default value to indicate a reference patch matching the patch to be encoded.
In a possible embodiment, in the aspect of encoding the side information of the to-be-encoded patch into the code stream if the to-be-encoded patch is a patch in the first frame point cloud in the subgroup, the auxiliary information encoding module is specifically configured to: if the to-be-coded patch is a patch in the first frame point cloud in the subgroup, the to-be-coded patch is a non-global matching patch and the to-be-coded patch does not have a patch matched with the to-be-coded patch, the side information of the to-be-coded patch also comprises normal coordinate axis information, and the side information of the to-be-coded patch is coded into a code stream; the matching patch index of the to-be-encoded patch is a default value to indicate that the to-be-encoded patch does not have a patch matching therewith; the global matching patch identifier of the to-be-encoded patch is a second value to indicate that the to-be-encoded patch is not a global matching patch within the subgroup;
in the aspect of encoding side information of the to-be-encoded patch into the code stream if the to-be-encoded patch is a patch in a non-first-frame point cloud in the subgroup, the auxiliary information encoding module is specifically configured to:
if the to-be-coded patch is a patch in the non-first frame point cloud in the subgroup, the to-be-coded patch is a non-global matching patch and does not have a patch matched with the to-be-coded patch, the side information of the to-be-coded patch further comprises two-dimensional information, normal coordinate axis information and rotation transformation information, and the side information of the to-be-coded patch is coded into a code stream; the matching patch index of the to-be-encoded patch is a default value to indicate that the to-be-encoded patch does not have a patch matching therewith.
In one possible embodiment, the two-dimensional information and/or the three-dimensional information of the patch to be coded are coded into the code stream in a differential coding mode; the two-dimensional information comprises u0, v0, sizeU0, sizeV0 and u0, wherein the u0, v0, sizeU0 and v0 are abscissa values of the to-be-coded patch, which are in the upper left corner of the to-be-coded patch in the graph occupied by the point cloud to which the to-be-coded patch belongs; the sizeU0 is the width of the patch to be encoded on the point cloud occupancy map to which the patch belongs; the sizeV0 is the height of the patch to be encoded on the point cloud occupancy map to which the patch belongs;
the three-dimensional information includes u1, d1, and v1, u1 (also referred to as patch _3d _ shift _ tangent _ axis) is the offset of the point in the patch along the tangent axis, v1 (also referred to as patch _3d _ shift _ bitmap _ axis) is the offset of the point in the patch along the bisector axis, and d1 (also referred to as patch _3d _ shift _ normal _ axis) is the offset of the point in the patch along the normal axis.
In a sixth aspect, an embodiment of the present application further provides a device for decoding a point cloud, including:
the auxiliary information decoding module is used for analyzing the side information of the patch to be decoded from the code stream;
the auxiliary information decoding module is further used for obtaining normal coordinate axis information of the patch to be decoded according to the global matching patch and the matching patch index of the patch to be decoded if the side information comprises two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier and a matching patch index; if the side information comprises three-dimensional information and matching patch indexes, determining global matching patch identification, two-dimensional information, normal coordinate axis information and rotation transformation information of the to-be-decoded patch according to the matching patch indexes of the to-be-decoded patch;
the reconstruction module is used for reconstructing the patch to be decoded according to the two-dimensional information, the three-dimensional information, the normal coordinate axis information and the rotation transformation information of the patch to be decoded; and the global matching patch identifier is used for indicating whether the to-be-decoded patch is the global matching patch in the subgroup or not.
In a possible embodiment, in the aspect that if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, the normal coordinate axis information of the patch to be decoded is determined according to the matching patch index, the auxiliary information decoding module is specifically configured to:
if the matching patch index of the to-be-decoded patch is determined to be a non-default value, determining normal coordinate axis information of the to-be-decoded patch according to the normal coordinate axis information of the reference patch indicated by the matching patch index;
if the side information includes three-dimensional information and a matching patch index, determining the global matching patch identification, two-dimensional information, normal coordinate axis information and rotation transformation information of the patch to be decoded according to the matching patch index of the patch to be decoded, wherein the auxiliary information decoding module is specifically used for: if the matching patch index of the to-be-decoded patch is determined to be a non-default value, determining a global matching patch identifier of the to-be-decoded patch according to the global matching patch identifier of the reference patch indicated by the matching patch index; if the global matching patch identifier of the to-be-decoded patch is a first value, respectively determining two-dimensional information, normal coordinate axis information and rotation transformation information of the to-be-decoded patch according to the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the reference patch; the global matching patch identifier of the to-be-decoded patch is a first value to indicate that the to-be-decoded patch is a global matching patch in the subgroup; the reference patch is a patch indicated by a matching patch index in the reference frame of the point cloud to which the patch to be decoded belongs.
In a possible embodiment, if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, in an aspect that normal coordinate axis information of a to-be-decoded patch is determined according to the to-be-matched patch index, the auxiliary information decoding module is specifically configured to:
if the matching patch index of the to-be-decoded patch is determined to be a default value, normal coordinate axis information of the to-be-decoded patch is analyzed from the code stream; the matching patch index of the to-be-decoded patch is a default value to indicate that the to-be-decoded patch does not have a patch matching therewith.
In a possible embodiment, in the aspect that if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, the normal coordinate axis information of the patch to be decoded is determined according to the matching patch index, the auxiliary information decoding module is specifically configured to:
if the matching patch index of the to-be-decoded patch is determined to be a non-default value, determining normal coordinate axis information of the to-be-decoded patch according to the normal coordinate axis information of the reference patch indicated by the matching patch index;
if the side information includes three-dimensional information and a matching patch index, determining the global matching patch identification, two-dimensional information, normal coordinate axis information and rotation transformation information of the patch to be decoded according to the matching patch index of the patch to be decoded, wherein the auxiliary information decoding module is specifically used for:
if the matching patch index of the to-be-decoded patch is determined to be a non-default value; determining a global matching patch identifier of the to-be-decoded patch according to the global matching patch identifier of the reference patch indicated by the matching patch index; if the global matching patch identifier of the to-be-decoded patch is determined to be a second value; then, the two-dimensional information of the patch to be decoded is analyzed from the code stream; determining normal coordinate axis information and rotation transformation information of the to-be-decoded patch according to the normal coordinate axis information and the rotation transformation information of the reference patch indicated by the matching patch index; the matching patch index of the to-be-decoded patch is a non-default value to indicate a reference patch of the to-be-decoded patch, and the global matching patch identifier of the to-be-decoded patch is a second value to indicate that the to-be-decoded patch is not the global matching patch in the subgroup; the reference patch is a patch indicated by a matching patch index in the reference frame of the point cloud to which the patch to be decoded belongs.
In a possible embodiment, in the aspect that if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, the normal coordinate axis information of the patch to be decoded is determined according to the matching patch index, the auxiliary information decoding module is specifically configured to:
if the matching patch index of the to-be-decoded patch is determined to be a default value, normal coordinate axis information of the to-be-decoded patch is analyzed from the code stream;
if the side information includes three-dimensional information and a matching patch index, determining the global matching patch identification, two-dimensional information, normal coordinate axis information and rotation transformation information of the patch to be decoded according to the matching patch index of the patch to be decoded, wherein the auxiliary information decoding module is specifically used for: if the matching patch index of the to-be-decoded patch is determined to be a default value, analyzing two-dimensional information, normal coordinate axis information and rotation transformation information from the code stream, and determining that the global matching patch identifier of the to-be-decoded patch is a second value;
the matching patch index of the to-be-decoded patch is a default value to indicate that the to-be-decoded patch does not have a matching patch, and the global matching patch identifier of the to-be-decoded patch is a second value to indicate that the to-be-decoded patch is not a global matching patch in the subgroup.
In one possible embodiment, the two-dimensional information and/or the three-dimensional information of the patch to be decoded is coded into the code stream in a differential decoding mode; the two-dimensional information comprises u0, v0, sizeU0, sizeV0 and u0, wherein the u0, v0, sizeU0 and v0 are the abscissa values of the to-be-decoded patch, which are positioned at the top left corner of the to-be-decoded patch in the graph, and the point cloud which belongs to the to-be-decoded patch in the graph; the sizeU0 is the width of the patch to be decoded on the point cloud occupancy map to which the patch belongs; the sizeV0 is the height of the patch to be decoded on the point cloud occupancy map to which the patch belongs;
the three-dimensional information includes u1, d1, and v1, u1 (also referred to as patch _3d _ shift _ tangent _ axis) is the offset of the point in the patch along the tangent axis, v1 (also referred to as patch _3d _ shift _ bitmap _ axis) is the offset of the point in the patch along the bisector axis, and d1 (also referred to as patch _3d _ shift _ normal _ axis) is the offset of the point in the patch along the normal axis.
In a seventh aspect, an embodiment of the present application provides another apparatus for encoding a point cloud, including:
the patch information acquisition module is used for acquiring the side information of the patch to be coded;
the auxiliary information coding module is used for coding indication information into the code stream, wherein the indication information is used for indicating whether the side information of the patch to be coded is coded according to the target coding method; the object encoding method comprises part or all of the point cloud encoding method of the first aspect of the claims.
In an eighth aspect, an embodiment of the present application provides another apparatus for decoding point clouds, including:
the auxiliary information decoding module is used for analyzing the code stream to obtain indication information, and the indication information is used for indicating whether the side information is decoded according to a target decoding method; when the indication information is used for indicating that the side information is decoded according to the target decoding method, the side information of the patch to be decoded is obtained according to the target decoding method; the target decoding method includes part or all of the point cloud decoding method of the second aspect; the above-mentioned
And the reconstruction module is used for reconstructing the patch to be decoded according to the side information of the patch to be decoded.
In a ninth aspect, an apparatus for encoding point cloud data is provided, which may include: a memory and an encoder. The memory is used for storing point cloud data. The encoder is configured to perform the point cloud encoding method provided by the first aspect or any one of the possible designs of the first aspect.
In a tenth aspect, there is provided an apparatus for decoding point cloud data, which may include: a memory and a decoder. The memory is used for storing point cloud data in a code stream form. The decoder is configured to perform the point cloud encoding method provided by the second aspect or any one of the possible designs of the second aspect.
In an eleventh aspect, there is provided an encoding apparatus comprising: a memory and a processor; wherein the memory is used for storing program codes; the processor is configured to invoke the program code to execute the point cloud encoding method provided by the first aspect.
In a twelfth aspect, there is provided a decoding apparatus comprising: a memory and a processor; wherein the memory is used for storing program codes; the processor is configured to call the program code to execute the point cloud decoding method provided by the second aspect.
The present application also provides a computer-readable storage medium comprising program code which, when run on a computer, causes the computer to perform any one of the point cloud decoding methods as provided by the first aspect and its possible designs, or the second aspect and its possible designs, as described above.
The present application also provides a computer-readable storage medium comprising program code which, when run on a computer, causes the computer to perform the point cloud encoding method provided in the third aspect above.
The present application also provides a computer-readable storage medium comprising program code which, when run on a computer, causes the computer to perform the point cloud decoding method provided by the fourth aspect described above.
The present application also provides a computer program product which, when run on a computer, causes the computer to perform some or all of the steps of the point cloud encoding method provided by the first aspect or any of the possible designs of the first aspect.
The present application also provides a computer program product which, when run on a computer, causes the computer to perform some or all of the steps of the point cloud decoding method provided by the second aspect or any of the possible designs of the second aspect.
It should be understood that beneficial effects of any one of the codecs, the apparatuses, the codec apparatuses, and the computer readable storage medium provided above may correspond to the beneficial effects of the method embodiments provided with reference to the above corresponding aspects, and are not described again.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.
FIG. 1 is a schematic block diagram of a point cloud coding system that may be used for one example of an embodiment of the present application;
FIG. 2 is a schematic block diagram of an encoder that may be used in one example of an embodiment of the present application;
FIG. 3 is a schematic diagram of a point cloud, a patch of the point cloud, and an occupancy map of the point cloud that may be used in embodiments of the present application;
FIG. 4 is a schematic block diagram of a decoder that may be used for one example of an embodiment of the present application;
FIG. 5 is a schematic diagram of a subgroup in an embodiment of the present application;
fig. 6 is a schematic flowchart of a point cloud encoding method according to an embodiment of the present disclosure;
fig. 7 is a schematic flowchart of a point cloud decoding method according to an embodiment of the present disclosure;
fig. 8 is a schematic diagram of a specific point cloud encoding/decoding provided in the embodiment of the present application;
fig. 9 is a schematic structural diagram of an encoding device for point cloud provided in the present application
Fig. 10 is a schematic structural diagram of a point cloud decoding apparatus provided in the present application;
fig. 11 is a schematic structural diagram of an apparatus for encoding a point cloud provided in the present application;
fig. 12 is a schematic structural diagram of a point cloud decoding apparatus provided in the present application;
fig. 13 is a schematic block diagram of an implementation manner of a decoding apparatus according to an embodiment of the present application.
Detailed Description
The term "at least one" in the embodiments of the present application includes one or more. "plurality" means two (species) or more than two (species). For example, at least one of A, B and C, comprising: a alone, B alone, a and B in combination, a and C in combination, B and C in combination, and A, B and C in combination. The term "and/or" in the embodiment of the present application is only one kind of association relationship describing an associated object, and means that three kinds of relationships may exist, for example, a and/or B may mean: a exists alone, A and B exist simultaneously, and B exists alone. The term "/" in the embodiments of the present application generally indicates that the former and latter associated objects are in an "or" relationship. In the formula, the character "/" represents a division operation, e.g., A/B represents A divided by B. The terms "first", "second", and the like in the embodiments of the present application are used for distinguishing different objects, and do not limit the order of the different objects.
Fig. 1 is a schematic block diagram of a point cloud coding system 1 that may be used for one example of an embodiment of the present application. The term "point cloud coding" or "coding" may generally refer to point cloud encoding or point cloud decoding. The encoder 100 of the point cloud decoding system 1 may encode the point cloud to be encoded according to any one of the point cloud encoding methods proposed in the present application. The decoder 200 of the point cloud decoding system 1 may decode the point cloud to be decoded according to the point cloud decoding method proposed in the present application, which corresponds to the point cloud encoding method used by the encoder.
As shown in fig. 1, the point cloud decoding system 1 includes a source device 10 and a destination device 20. Source device 10 generates encoded point cloud data. Accordingly, the source device 10 may be referred to as a point cloud encoding device. Destination device 20 may decode the encoded point cloud data generated by source device 10. Accordingly, the destination device 20 may be referred to as a point cloud decoding device. Various implementations of source device 10, destination device 20, or both may include one or more processors and memory coupled to the one or more processors. The memory may include, but is not limited to, Random Access Memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures that can be accessed by a computer, as described herein.
Destination device 20 may receive encoded point cloud data from source device 10 via link 30. Link 30 may comprise one or more media or devices capable of moving the encoded point cloud data from source device 10 to destination device 20. In one example, link 30 may comprise one or more communication media that enable source device 10 to send encoded point cloud data directly to destination device 20 in real-time. In this example, source device 10 may modulate the encoded point cloud data according to a communication standard, such as a wireless communication protocol, and may send the modulated point cloud data to destination device 20. The one or more communication media may include wireless and/or wired communication media such as a Radio Frequency (RF) spectrum or one or more physical transmission lines. The one or more communication media may form part of a packet-based network, such as a local area network, a wide area network, or a global network (e.g., the internet). The one or more communication media may include a router, switch, base station, or other apparatus that facilitates communication from source device 10 to destination device 20.
In another example, encoded data may be output from output interface 140 to storage device 40. Similarly, encoded point cloud data may be accessed from storage device 40 through input interface 240. Storage device 40 may include any of a variety of distributed or locally accessed data storage media such as a hard drive, blu-ray discs, Digital Versatile Discs (DVDs), compact disc read-only memories (CD-ROMs), flash memories, volatile or non-volatile memories, or any other suitable digital storage medium for storing encoded point cloud data.
In another example, the storage device 40 may correspond to a file server or another intermediate storage device that may hold encoded point cloud data generated by the source device 10. the destination device 20 may access the stored point cloud data from the storage device 40 via streaming or downloading.
The point cloud coding system 1 illustrated in fig. 1 is merely an example, and the techniques of this application may be applicable to point cloud coding (e.g., point cloud encoding or point cloud decoding) devices that do not necessarily include any data communication between the point cloud encoding device and the point cloud decoding device. In other examples, the data is retrieved from local storage, streamed over a network, and so forth. The point cloud encoding device may encode and store data to a memory, and/or the point cloud decoding device may retrieve and decode data from a memory. In many examples, the encoding and decoding are performed by devices that do not communicate with each other, but merely encode data to and/or retrieve data from memory and decode data.
In the example of fig. 1, source device 10 includes a data source 110, an encoder 100, and an output interface 140. In some examples, output interface 140 may include a regulator/demodulator (modem) and/or a transmitter (otherwise known as a transmitter). The data source 110 may include a point cloud capture device (e.g., a camera), a point cloud archive containing previously captured point cloud data, a point cloud feed interface to receive point cloud data from a point cloud content provider, and/or a computer graphics system for generating point cloud data, or a combination of these sources of point cloud data.
The encoder 100 may encode point cloud data from a data source 110. In some examples, source device 10 sends the encoded point cloud data directly to destination device 20 via output interface 140. In other examples, the encoded point cloud data may also be stored onto storage device 40 for later access by destination device 20 for decoding and/or playback.
In the example of fig. 1, the destination device 20 includes an input interface 240, a decoder 200, and a display device 120, in some examples, the input interface 240 includes a receiver and/or a modem the input interface 240 may receive encoded point cloud data via a link 30 and/or from a storage device 40 the display device 120 may be integrated with the destination device 20 or may be external to the destination device 20 in general, the display device 120 displays decoded point cloud data the display device 120 may include a variety of display devices, such as a liquid crystal display (L CD), a plasma display, an organic light-emitting diode (O L) display, or other types of display devices.
Although not shown in fig. 1, in some aspects, encoder 100 and decoder 200 may each be integrated with an audio encoder and decoder, and may include appropriate multiplexer-demultiplexer (MUX-DEMUX) units or other hardware and software to handle encoding of both audio and video in a common data stream or separate data streams. In some examples, the MUX-DEMUX unit may conform to the ITU h.223 multiplexer protocol, or other protocols such as User Datagram Protocol (UDP), if applicable.
This application may refer generally to encoder 100 as "signaling" or "sending" certain information to another device, such as decoder 200. The terms "signaling" or "sending" may generally refer to the transfer of syntax elements and/or other data used to decode the compressed point cloud data. This transfer may occur in real time or near real time. Alternatively, such communication may occur over a period of time, such as may occur when, at the time of encoding, syntax elements are stored in the encoded bitstream to a computer-readable storage medium, which the decoding device may then retrieve at any time after the syntax elements are stored to such medium.
As shown in fig. 2, is a schematic block diagram of an encoder 100 that may be used in one example of an embodiment of the present application. Fig. 2 is an example of an mpeg (moving picture expert group) Point Cloud Compression (PCC) encoding framework. In the example of fig. 2, the encoder 100 may include a patch information generating module 101, a packing module 102, a depth map generating module 103, a texture map generating module 104, a first padding module 105, an image or video based encoding module 106, an occupancy map encoding module 107, an auxiliary information encoding module 108, and a multiplexing module 109, and the like. In addition, the encoder 100 may further include a point cloud filtering module 110, a second filling module 111, a point cloud reconstruction module 112, and the like. Wherein:
the patch information generating module 101 is configured to segment a frame of point cloud by a certain method to generate a plurality of patches, and obtain information related to the generated patches. The patch refers to a set of partial points in a frame point cloud, and usually one connected region corresponds to one patch. The relevant information of patch may include, but is not limited to, at least one of the following: the number of patches into which the point cloud is divided, the position information of each patch in the three-dimensional space, the index of the normal coordinate axis of each patch, the depth map generated by projecting each patch from the three-dimensional space to the two-dimensional space, the size of the depth map (for example, the width and height of the depth map) of each patch, the occupancy map generated by projecting each patch from the three-dimensional space to the two-dimensional space, and the like. In one example, the parts of the related information, such as the number of patches into which the point cloud is divided, the index of the normal coordinate axis of each patch, the depth map size of each patch, the position information of each patch in the point cloud, the size information of the occupancy map of each patch, and the like, may be sent to the auxiliary information encoding module 108 as auxiliary information for encoding (i.e., compression encoding). In another example, a part of the related information, such as a part of two-dimensional information (e.g., sizeU0 and sizeuv 0) of the patch generated by the point cloud being segmented, three-dimensional information (e.g., u1, d1 and v1), and even a global matching patch identifier (e.g., patch [ k ]. globalPatchFlag) of the patch in the first frame point cloud in the subgroup, may be sent to the auxiliary information encoding module 108 as auxiliary information for encoding (i.e., compression encoding). In yet another example, portions of the related information, such as three-dimensional information (e.g., u1, d1, and v1) of the patch generated by the point cloud being segmented, may be sent to the auxiliary information encoding module 108 as auxiliary information to be encoded (i.e., compression encoding). It should be noted that the auxiliary information encoding module 108 may employ different encoding methods (e.g., fixed-length encoding or differential encoding) to encode or write the side information into the code stream, which will be described in detail later in this application.
The occupancy map of each patch may be sent to the packing module 102 for packing, specifically, the patches of the point cloud are arranged in a specific order, for example, in a descending (or ascending) order of the width/height of the occupancy maps of the patches; then, according to the sequence of each arranged patch, the occupancy map of the patch is inserted into the available area of the point cloud occupancy map in sequence to obtain the occupancy map of the point cloud. On the other hand, specific position information of each patch in the point cloud occupancy map, a depth map of each patch, and the like may be sent to the depth map generation module 103. In some implementations, the packing module 102 may pack the point clouds included in the plurality of subgroups respectively by using the divided subgroups as units, so as to obtain an occupancy map of each point cloud in the point cloud group to be encoded. The packing algorithm used for packing the point clouds in a subgroup is usually the same. The packing algorithms used when packing the point clouds in different subgroups may be the same or different, and this is not limited in the embodiments of the present application.
After the packing module 102 obtains the occupancy map of the point cloud, on one hand, the occupancy map of the point cloud may be filled by the second filling module 111 and then sent to the occupancy map encoding module 107 for encoding. On the other hand, the occupancy map of the point cloud may be used to guide the depth map generation module 103 to generate a depth map of the point cloud and guide the texture map generation module 104 to generate a texture map of the point cloud. On the other hand, the packing module 102 may further obtain a matching patch index (e.g., patch [ k ]. matchedPatchIndex), rotational transformation information (e.g., patch [ k ]. orientationIndex) and another part of two-dimensional information (e.g., u0 and v0) of the patch, and send the matching patch index (e.g., patch [ k ]. matchedPatchIndex), rotational transformation information (e.g., patch [ k ]. orientationIndex) and another part of two-dimensional information (e.g., u0 and v0) of the patch to the side information encoding module 108 for encoding.
Fig. 3 is a schematic diagram of a point cloud, a patch of the point cloud, and an occupation map of the point cloud, which are applicable to the embodiment of the present application. Fig. 3 (a) is a schematic diagram of a frame of point cloud, fig. 3 (b) is a schematic diagram of a patch of the point cloud obtained based on fig. 3 (a), and fig. 3 (c) is a schematic diagram of an occupancy map of the point cloud obtained by packing an occupancy map of each patch mapped onto a two-dimensional plane as shown in fig. 3 (b).
The depth map generating module 103 is configured to generate a depth map of the point cloud according to the occupancy map of the point cloud, the occupancy map of each patch of the point cloud, and the depth information, and send the generated depth map to the first filling module 105, so as to fill blank pixels in the depth map, thereby obtaining a filled depth map.
The texture map generating module 104 is configured to generate a texture map of the point cloud according to the occupancy map of the point cloud, the occupancy map of each patch of the point cloud, and the texture information, and send the generated texture map to the first filling module 105, so as to fill blank pixels in the texture map, thereby obtaining a filled texture map.
The padded depth map and the padded texture map are sent by the first padding module 105 to the image or video based encoding module 106 for image or video based encoding. And (3) the following steps:
in one aspect, the image or video based encoding module 106, the occupancy map encoding module 107, and the auxiliary information encoding module 108 send the obtained encoding results (i.e., the code stream) to the multiplexing module 109 to be combined into a code stream, which can be sent to the output interface 140.
On the other hand, the encoding result (i.e., code stream) obtained by the image or video-based encoding module 106 is sent to the point cloud reconstruction module 112 for point cloud reconstruction, so as to obtain a reconstructed point cloud (i.e., reconstructed point cloud geometric information). Specifically, the video decoding is performed on the coded depth map obtained by the image or video-based coding module 106 to obtain a decoded depth map of the point cloud; the reconstructed point cloud geometry information (e.g., patches in the reconstructed point cloud) is obtained using the decoded depth map, the occupancy map of the point cloud, and the auxiliary information for each patch. The geometric information of the point cloud refers to coordinate values of points in the point cloud (e.g., each point in the point cloud) in a three-dimensional space.
Optionally, the point cloud reconstruction module 112 may further send texture information of the point cloud and the reconstructed point cloud geometric information to the coloring module, and the coloring module is configured to color the reconstructed point cloud to obtain texture information of the reconstructed point cloud.
Optionally, the texture map generating module 104 may further generate a texture map of the point cloud based on information obtained by filtering the reconstructed point cloud geometric information through the point cloud filtering module 110.
It is understood that the encoder 100 shown in fig. 2 is merely an example, and in particular implementations, the encoder 100 may include more or fewer modules than shown in fig. 2. This is not limited in the embodiments of the present application.
As shown in fig. 4, is a schematic block diagram of a decoder 200 that may be used in one example of an embodiment of the present application. The MPEG PCC decoding framework is illustrated in fig. 4 as an example. In the example of fig. 4, the decoder 200 may include a demultiplexing module 201, an image or video based decoding module 202, an occupancy map coding module 203, an auxiliary information decoding module 204, a geometrical information reconstruction module 205 of the point cloud, a point cloud filtering module 206, and a texture information reconstruction module 207 of the point cloud. Wherein:
the demultiplexing module 201 is configured to send the input code stream (i.e., the merged code stream) to the corresponding decoding module. Specifically, a code stream containing a coded texture map and a coded depth map is sent to the image or video-based decoding module 202; the code stream containing the encoded occupancy map is sent to the occupancy map decoding module 203, and the code stream containing the encoded auxiliary information is sent to the auxiliary information decoding module 204.
An image or video based decoding module 202 for decoding the received encoded texture map and encoded depth map; and sends the texture map information obtained by decoding to the texture information reconstruction module 207 of the point cloud, and sends the depth map information obtained by decoding to the geometric information reconstruction module 205 of the point cloud. And the occupancy map decoding module 203 is configured to decode the received code stream including the encoded occupancy map, and send the occupancy map information obtained by decoding to the geometrical information reconstruction module 205 of the point cloud. And an auxiliary information decoding module 204, configured to decode the received encoded auxiliary information, and send the decoded information indicating the auxiliary information to a geometrical information reconstruction module 205 of the point cloud. In an example, the side information decoding module 204 decodes the side information, such as two-dimensional information (e.g., u0, v0, sizeU0, and sizeU 0) of the patch to be decoded, three-dimensional information (e.g., u1, d1, and v1), rotation transformation information (e.g., patch [ k ]. orientationIndex), a matching patch index (e.g., patch [ k ]. matchedpatch index), and even a global matching patch identifier (e.g., patch [ k ]. globpaltchflag) of the patch in the first frame point cloud in the subgroup; in another example, the side information decoding module 204 decodes the side information, such as the three-dimensional information of the patch to be decoded (e.g., u1, d1, and v1), and the matching patch index (e.g., patch [ k ]. matchedPatchIndex). It should be noted that the auxiliary information decoding module 204 may use different decoding methods (e.g., fixed length decoding or differential decoding) to parse or decode the side information from the code stream, which will be described in detail later in this application.
And a geometrical information reconstruction module 205 of the point cloud, configured to reconstruct the geometrical information of the point cloud (e.g., reconstruct the patch in the point cloud) according to the received occupancy map information, depth map information, and auxiliary information. After being filtered by the point cloud filtering module 206, the reconstructed point cloud geometric information is sent to the point cloud texture information reconstruction module 207.
And the point cloud texture information reconstruction module 207 is used for reconstructing the point cloud texture information to obtain reconstructed point cloud.
It is understood that the decoder 200 shown in fig. 4 is merely an example, and in particular implementations, the decoder 200 may include more or fewer modules than shown in fig. 4. This is not limited in the embodiments of the present application.
In order to facilitate understanding of the technical solutions provided in the embodiments of the present application, the following description will be made of the technologies and terms related to the embodiments of the present application.
In the MPEG point cloud encoding method, an encoder first divides a point cloud to be encoded (i.e., a current frame or a current frame point cloud) into a plurality of patches according to a certain criterion, and the patches have no overlapping area with each other. Then, each patch is projected from the three-dimensional space to a two-dimensional plane, resulting in a two-dimensional image (i.e., the occupancy map of the patch). Next, the occupancy maps of all the slots (or the occupancy maps of the slots with the reduced resolution) are arranged on a two-dimensional image according to a certain rule, so as to obtain the current frame occupancy map. This method of arranging the occupancy map of the patch is called packing. And subsequently, generating a current frame depth map and a current frame texture map according to the packing sequence. The current frame depth map is a two-dimensional image generated by the projection depth of each patch according to the packing sequence. The texture map of the current frame is a two-dimensional image generated by the texture maps obtained by projection of the patches according to the packing sequence. The current frame occupation map is a 2-value two-dimensional image and is used for indicating whether each pixel position of the two-dimensional image is occupied by a certain point in the point cloud. In general, to save coding bit overhead, the resolution of the current frame occupancy map is lower than the resolution of the current frame depth map and the current frame texture map.
The cloud group of points to be encoded comprises a plurality of frames of point clouds, which can be continuous or discontinuous in time. For example, the point cloud group to be encoded may be one or more group of frames (GOFs), and a GOF may include 32 frame point clouds, but is not limited thereto.
It should be noted that, the point clouds in a point cloud group are divided into a plurality of sub-groups, and each sub-group includes one or more frames of point clouds. As shown in fig. 5, a point cloud set (comprising 32 frame point clouds) is divided into a plurality of sub-sets. The 0 th sub-group comprises 01 th, 2 th and 3 th frame point clouds in the point cloud group, the 1 st sub-group comprises 4 th and 5 th frame point clouds in the point cloud group, the 2 nd sub-group comprises 6 th, 7 th, 8 th, 9 th and 10 th frame point clouds in the point cloud group, and the 3 rd sub-group comprises 11 th, 12 th, 13 th, 14 th and 15 th frame point clouds in the point cloud group. The point clouds included in the 0 th, 1 st, 2 nd, 3 rd subgroups are given in fig. 5 by way of example only, and the point clouds included in the other subgroups are not specifically described. Any one of the subgroups into which the point cloud to be encoded is divided may contain one or more frames of the point cloud. The number of frames of the point clouds included in the different subgroups may be equal or unequal. And a method of dividing the point cloud group to be encoded into a plurality of sub-groups, which is not limited in the present application.
The matching patch in this application refers to a patch that finds a matching patch (also referred to as a reference patch) in a reference frame of a point cloud to which the patch belongs. A non-matching patch is a patch for which no matching patch is found in the reference frame of the point cloud to which the patch belongs. The method for finding the matching patch is not limited in the present application.
The point cloud to which the matching patch belongs and the reference frame thereof may belong to the same subgroup (for example, the reference patch of the patch in the non-top frame point cloud in the 2 nd subgroup may be the patch in the same subgroup), or may belong to different subgroups (for example, the reference patch of the patch in the top frame (i.e., the 6 th frame) point cloud in the 2 nd subgroup may be the patch of the point cloud frame (the last frame) in the 0 th subgroup or the 1 st subgroup).
A global match patch within a subgroup refers to a patch that has a matching relationship across all point clouds in a subgroup (also referred to as within a subgroup). For example, assuming a subset of 4 frames of point clouds (labeled point clouds 1-4, respectively), for any patch in point cloud 1, if a patch with a matching relationship to the patch can be found in point clouds 2-4, the following are the respective patches with a matching relationship to patch11 in point cloud 1: patch21 in the point cloud 2, patch31 in the point cloud 3 and patch41 in the point cloud 4, then, patch11, 21, 31 and 41 are all global matching patches in the sub-group, and patch q1 is a global matching patch in the current point cloud frame q, q is more than or equal to 1 and less than or equal to 4, and q is an integer.
In contrast, a non-global match patch within a subgroup refers to a patch having a matching relationship across part of the point clouds in a subgroup (also referred to as within a subgroup), or a non-global match patch is a patch for which no matching patch is found in all point clouds of the subgroup.
The global match patch identification of a patch is used to indicate whether the patch is a global match patch within the subgroup. In the present application, the identification of the global match patch of the patch may be a first value (such as tune or 1) or a second value (such as false or 0). Wherein the first value is used to indicate that the patch is a global match patch within the subgroup; the second value is used to indicate that the patch is a non-global match patch within the subgroup.
The matching patch index of a patch is the index of the patch that matches the patch in the reference frame of the point cloud to which the patch belongs. The patch in the reference frame indicated by the matching patch index of the patch is the reference patch.
The match patch index of a patch may be a non-default value (e.g., 1,2,3, etc.) or a default value (e.g., -1). The matching patch index is a non-default value to indicate the patch (i.e. reference patch) which is matched with the patch in the reference frame of the point cloud to which the patch belongs, and accordingly, the patch is the matching patch; the matching patch index is a default value to indicate that the patch has no matching patch in the reference frame of the point cloud to which it belongs, and accordingly, the patch is a non-matching patch.
The two-dimensional information of the patch comprises u0, v0, sizeU0, sizeV0 and u0 which are abscissa values of the positions of the occupancy map of the patch in the point cloud occupancy map to which the occupancy map belongs, and v0 which is an ordinate value of the positions of the occupancy map of the patch in the point cloud occupancy map to which the occupancy map of the patch belongs; sizeU0 is the width of the patch's occupancy graph; sizeV0 is the height of the patch occupying the graph.
The three-dimensional information of the patch includes u1, d1, and v1, u1 (also referred to as patch _3d _ shift _ displacement _ axis) is the offset of the point in the patch along the tangent axis, v1 (also referred to as patch _3d _ shift _ bitangle _ axis) is the offset of the point in the patch along the bisector axis, and d1 (also referred to as patch _3d _ shift _ normal _ axis) is the offset of the point in the patch along the normal axis.
The rotation transformation information of patch may be rotation angle information, coordinate axis transformation information, or mirror transformation information. Wherein the rotation angle information includes a specific rotation angle value or a rotation angle index. For example, if the rotation angle value of the patch is 0, it indicates that the patch is not rotated; if the rotation angle value of the patch is 20, the patch is rotated by 20 degrees; if the value of the rotation angle of the patch is 80, it indicates that the patch rotates 80 °. For another example, if the rotation angle index of the patch is 0, it indicates that the patch does not rotate; if the rotation angle index of the patch is 1, the patch is rotated by 15 degrees; if the rotation angle index of the patch is 2, the patch is rotated by 30 degrees; if the rotation angle index of the patch is 3, it indicates that the patch is rotated by 45 °.
The rotation of the patch may be clockwise or counterclockwise.
The coordinate axis exchange information may be represented as a coordinate axis exchange identifier, for example, when the coordinate axis exchange identifier is false, the tangent coordinate axis of the patch and the double tangent coordinate axis of the patch are not exchanged; for example, when the axis swapping flag is "tune", the tangent axis of patch and the double tangent axis of patch are swapped. For example, assuming that the U-axis index is 0 and the V-axis index is 1, the index of the tangent coordinate axis of the patch is 0 by default, and the tangent coordinate axis of the patch is described as the U-axis; the index of the two-tangent coordinate axis of patch is 1, which indicates that the two-tangent coordinate axis of patch is the V axis. If the coordinate axis exchange identification is false, the index of the tangent coordinate axis of the patch and the index of the double tangent coordinate axis of the patch are not exchanged; if the coordinate axis exchange mark is tune, the index of the tangent coordinate axis of the patch and the index of the double tangent coordinate axis of the patch are exchanged, that is, the index of the tangent coordinate axis of the patch is updated to 1, and the index of the double tangent coordinate axis of the patch is updated to 0.
The mirror transformation information may be represented as a mirror transformation index, for example, when the mirror transformation index is 0, it represents that the U axis is transformed into the-U axis; for example, when the mirror transformation index is 1, the V axis is transformed into the-V axis; for example, when the mirror transform index is 2, it means that the V axis is transformed into the-V axis and the U axis is transformed into the-U axis.
Referring to fig. 6, fig. 6 is a schematic flowchart of a point cloud encoding method according to an embodiment of the present disclosure. As shown in fig. 6, the method includes:
s601, obtaining side information of the patch to be coded.
S602, if the patch to be coded is the patch in the first frame point cloud in the subgroup, encoding the side information of the patch to be coded into a code stream; the side information includes two-dimensional information, three-dimensional information, rotation transformation information, global matching patch identification, and matching patch index.
Wherein, the first frame point cloud of the subgroup refers to the 0 th frame point cloud in the subgroup.
S603, if the patch to be coded is the patch in the non-first frame point cloud in the subgroup, encoding the side information of the patch to be coded into a code stream, wherein the side information comprises three-dimensional information and a matching patch index.
The non-first frame point cloud of the subgroup refers to the ith frame point cloud in the subgroup, i is 1,2, …, N-1, and N is the number of frames of the point cloud in the subgroup.
In one possible embodiment, if the patch to be encoded is a patch in the first frame point cloud in the subgroup, encoding the edge information of the patch to be encoded into the code stream, including: if the to-be-encoded patch is a patch in the initial frame point cloud in the subgroup, the to-be-encoded patch is a global matching patch and has a patch matched with the to-be-encoded patch, encoding side information of the to-be-encoded patch into the code stream, wherein a matching patch index of the to-be-encoded patch is a non-default value, and a global matching patch index is a first value.
The matching patch index of the patch to be encoded is a non-default value, and the global matching patch is identified as a first value.
Optionally, the two-dimensional information and the three-dimensional information of the to-be-encoded patch may be encoded into the code stream by using a differential encoding method, and the rotation transformation information, the global matching patch identifier, and the matching patch index of the to-be-encoded patch may be encoded into the code stream by using a fixed-length encoding method.
If the patch to be coded is a patch in the non-first frame point cloud in the subgroup, encoding the side information of the patch to be coded into a code stream, including: if the to-be-encoded patch is a patch in the non-first frame point cloud in the subgroup, the to-be-encoded patch is a global matching patch and has a patch matched with the to-be-encoded patch, encoding side information of the to-be-encoded patch into the code stream, wherein a matching patch index of the to-be-encoded patch is a non-default value, and a global matching patch index is a first value.
The matching patch index of the patch to be encoded is a non-default value, and the global matching patch is identified as a first value.
Optionally, the three-dimensional information of the patch to be encoded may be encoded into the code stream by using a differential encoding method. Reference is made in particular to the above description of the related contents, which are not described here.
In one possible embodiment, if the patch to be encoded is a patch in the first frame point cloud in the subgroup, encoding the edge information of the patch to be encoded into the code stream, including: if the to-be-encoded patch is a patch in the first frame point cloud in the subgroup, the to-be-encoded patch is a globally matched patch and does not have a patch matched with the to-be-encoded patch, the side information of the to-be-encoded patch further comprises normal coordinate axis information, and the side information of the to-be-encoded patch is encoded into the code stream. Normal axis coordinate information such as normalAxis, the normal axis index of the patch to be encoded.
The matching patch index of the patch to be encoded is a default value, and the global matching patch is identified as a first value.
In one possible embodiment, if the patch to be encoded is a patch in the first frame point cloud in the subgroup, encoding the edge information of the patch to be encoded into the code stream, including: if the to-be-encoded patch is the patch in the first frame point cloud in the subgroup, and the to-be-encoded patch is a non-global matching patch and has a patch matched with the to-be-encoded patch, encoding the side information of the to-be-encoded patch into the code stream.
The matching patch index of the patch to be coded is a non-default value, and the global matching patch identifier is a second value.
Optionally, the two-dimensional information and the three-dimensional information of the patch to be encoded may be encoded into the code stream by using a differential encoding method.
If the patch to be coded is a patch in the non-first frame point cloud in the subgroup, encoding the side information of the patch to be coded into a code stream, including: if the to-be-encoded patch is a patch in the non-first frame point cloud in the subgroup, the to-be-encoded patch is a non-global matching patch and has a patch matched with the to-be-encoded patch, the side information of the to-be-encoded patch further comprises two-dimensional information, and the side information of the to-be-encoded patch is encoded into the code stream.
The matching patch index of the patch to be coded is a non-default value, and the global matching patch identifier is a second value.
Optionally, the two-dimensional information and the three-dimensional information of the patch to be encoded can be encoded into the code stream by adopting a differential encoding mode.
In one possible embodiment, if the patch to be encoded is a patch in the first frame point cloud in the subgroup, encoding the edge information of the patch to be encoded into the code stream, including: if the to-be-encoded patch is the patch in the first frame point cloud in the subgroup, the to-be-encoded patch is a non-global matching patch and does not have a patch matched with the to-be-encoded patch, the side information of the to-be-encoded patch further comprises normal coordinate axis information, and the side information of the to-be-encoded patch is encoded into the code stream. The matching patch index of the patch to be coded is a default value, and the global matching patch is marked as a second value;
if the patch to be coded is a patch in the non-first frame point cloud in the subgroup, encoding the side information of the patch to be coded into a code stream, including: if the to-be-coded patch is a patch in the non-first frame point cloud in the subgroup, the to-be-coded patch is a non-global matching patch and does not have a patch matched with the to-be-coded patch, the side information of the to-be-coded patch further comprises two-dimensional information, normal coordinate axis information and rotation transformation information, and the side information of the to-be-coded patch is coded into the code stream.
The matching patch index of the to-be-coded patch is a default value, and the global matching patch identifier is a second value.
It should be noted that encoding two-dimensional information into the code stream by using a differential encoding method specifically includes encoding a difference between u0 of the patch to be encoded and u0 of the reference patch thereof, a difference between v0 of the patch to be encoded and v0 of the reference patch thereof, a difference between sizeU0 of the patch to be encoded and sizeU0 of the reference patch thereof, and a difference between sizeU0 of the patch to be encoded and sizeU0 of the reference patch thereof into the code stream; similarly, encoding the three-dimensional information into the code stream by using a differential encoding method specifically includes encoding a difference value between u0 of the patch to be encoded and u0 of the reference patch, a difference value between v0 of the patch to be encoded and v0 of the reference patch, a difference value between sizeU0 of the patch to be encoded and sizeU0 of the reference patch, and a difference value between sizeU0 of the patch to be encoded and sizeU0 of the reference patch into the code stream. The differential coding mode is adopted to further achieve the purpose of reducing the bit overhead of the code stream.
In one possible embodiment, if the frame number of the point clouds in the subgroup is greater than 1, encoding the global matching patch identification of the to-be-encoded patch in the first frame point cloud in the subgroup into the code stream; and if the frame number of the point clouds in the subgroup is equal to 1, not coding the global matching patch identification of the patch to be coded into the code stream.
In another possible embodiment, if the frame number of the point clouds in the subgroup is greater than 1, encoding the rotation transformation information of the patch to be encoded in the first frame point cloud in the subgroup into the code stream; if the frame number of the point cloud in the subgroup is equal to 1 and the patch to be coded is a matching patch, not coding the rotation transformation information of the patch to be coded into a code stream; if the frame number of the point cloud in the subgroup is equal to 1 and the patch to be coded is a non-matching patch, encoding the rotation transformation information of the patch to be coded into the code stream.
In a possible embodiment, if the patch to be encoded is a matching patch, the matching patch index of the patch to be encoded is encoded into the code stream; and if the patch to be coded is a non-matching patch, not coding the matching patch index of the patch to be coded into the code stream.
In one possible embodiment, the partial side information of the global match patch within the subgroup, which refers to the side information that is common to the global match patch and has the same value, is encoded separately. The partial side information refers to a part or all of the two-dimensional information, the normal coordinate axis information, and the rotational transform information. When encoding the side information of the patch of all the frames in the subgroup, if one patch in the point cloud of one frame in the subgroup is a global matching patch, part of the side information (i.e. part or all of the two-dimensional information, the normal coordinate axis information and the rotation transformation information) of the patch does not need to be encoded. The embodiment also achieves the purpose of improving the coding efficiency and simultaneously reduces the bit overhead of the code stream.
It can be seen that, in the scheme of the embodiment of the application, for the global matching patch, since partial side information of the global matching patch is the same, it is not necessary to encode partial side information of the global matching patch in the non-leading frame point cloud in the subgroup into the code stream. By adopting the method and the device, the matching relation that the rotation transformation information used for restricting the matching patch is consistent among the subgroups is abandoned, so that the packing of each subgroup is more flexible, and the sizes of the generated depth map and the texture map are smaller. Because partial side information of the global matching patch is coded only once, the purpose of improving coding efficiency is achieved, and bit overhead of the code stream is reduced.
Referring to fig. 7, fig. 7 is a schematic flowchart of a point cloud decoding method according to an embodiment of the present disclosure. As shown in fig. 7, the method includes:
s701, analyzing the side information of the patch to be decoded from the code stream.
S702a, if the side information comprises two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier and a matching patch index, obtaining normal coordinate axis information of the patch to be decoded according to the matching patch index of the patch to be decoded;
s702b, if the side information comprises three-dimensional information and a matching patch index, obtaining global matching patch identification, two-dimensional information, normal coordinate axis information and rotation transformation information of the patch to be decoded according to the matching patch index of the patch to be decoded.
In a possible embodiment, if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, obtaining normal coordinate axis information of the to-be-decoded patch according to the matching patch index of the to-be-decoded patch, including: and if the matching patch index of the to-be-decoded patch is a non-default value, determining the normal coordinate axis information of the to-be-decoded patch according to the normal coordinate axis information of the reference patch indicated by the matching patch index.
Specifically, the normal coordinate axis information of the reference patch indicated by the matching patch index is taken as the normal coordinate axis information of the patch to be decoded. For example, patch [ k ]. normalAxis ═ frame. refPatchId ═ patch [ k ]. matchedPatchIndex. Wherein, patch [ k ] is the patch to be decoded, reframe is the reference frame of the point cloud to which the patch belongs, and patch [ k ]. matchedPatchIndex is the matching patch index of the patch to be decoded, refPatchId is the index of the reference patch.
Optionally, the two-dimensional information and the three-dimensional information of the patch to be decoded may be parsed from the code stream in a differential decoding manner.
If the side information includes three-dimensional information and a matching patch index, obtaining a global matching patch identification, two-dimensional information, normal coordinate axis information and rotation transformation information of the patch to be decoded according to the matching patch index of the patch to be decoded, including: if the matching patch index of the to-be-decoded patch is a non-default value, determining a global matching patch identifier of the to-be-decoded patch according to the global matching patch identifier of the reference patch indicated by the matching patch index. Specifically, the global matching patch identification of the reference patch indicated by the matching patch index is taken as the global matching patch identification of the patch to be decoded. For example, patch [ k ]. globalPatchFlag ═ frame. The globalPatchFlag identifies a global match patch identification. If the global matching patch identifier of the to-be-decoded patch is a first value, respectively determining the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the to-be-decoded patch according to the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the reference patch indicated by the matching patch index. Specifically, the two-dimensional information, the normal coordinate axis information, and the rotational transform information of the reference patch indicated by the matching patch index are taken as the two-dimensional information, the normal coordinate axis information, and the rotational transform information of the patch to be decoded, respectively. For example:
patch[k].u0=reframe.patch[refPatchId].u0,
patch[k].v0=reframe.patch[refPatchId].v0,
patch[k].sizeU0=reframe.patch[refPatchId].sizeU0,
patch[k].sizeV0=reframe.patch[refPatchId].sizeV0,
patch[k].normalAxis=reframe.patch[refPatchId].normalAxis,
patch[k].orientationIndex=reframe.patch[refPatchId].orientationIndex。
where u0, v0, sizeU0, and sizeV0 are collectively referred to as two-dimensional information, normaaxis indicates normal coordinate axis information, and orientation index indicates rotational transformation information.
Optionally, the three-dimensional information of the patch to be decoded is analyzed from the code stream by adopting a differential decoding mode.
In a possible embodiment, if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, obtaining normal coordinate axis information of the to-be-decoded patch according to the matching patch index of the to-be-decoded patch, including: and if the matching patch index of the to-be-decoded patch is a default value, analyzing the normal coordinate axis information of the to-be-decoded patch from the code stream.
In a possible embodiment, if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, obtaining normal coordinate axis information of the to-be-decoded patch according to the matching patch index of the to-be-decoded patch, including: and if the matching patch index of the to-be-decoded patch is a non-default value, determining the normal coordinate axis information of the to-be-decoded patch according to the normal coordinate axis information of the reference patch indicated by the matching patch index. Specifically, the normal coordinate axis information of the reference patch indicated by the matching patch index is taken as the normal coordinate axis information of the patch to be decoded. For example:
patch[k].normalAxis=reframe.patch[refPatchId].normalAxis。
refPatchId=patch[k].matchedPatchIndex。
optionally, the two-dimensional information and the three-dimensional information of the patch to be decoded may be parsed from the code stream in a differential decoding manner.
If the side information includes three-dimensional information and a matching patch index, obtaining a global matching patch identification, two-dimensional information, normal coordinate axis information and rotation transformation information of the patch to be decoded according to the matching patch index of the patch to be decoded, including: if the matching patch index of the to-be-decoded patch is a non-default value, determining a global matching patch identifier of the to-be-decoded patch according to the global matching patch identifier of the reference patch indicated by the matching patch index. Specifically, the global matching patch identification of the reference patch indicated by the matching patch index is taken as the global matching patch identification of the patch to be decoded. For example, patch [ k ]. globalPatchFlag ═ frame. The globalPatchFlag identifies a global match patch identification. If the global matching patch identifier of the to-be-decoded patch is a second value, analyzing two-dimensional information of the to-be-decoded patch from the code stream, and respectively determining normal coordinate axis information and rotation transformation information of the to-be-decoded patch according to the normal coordinate axis information and the rotation transformation information of the reference patch indicated by the matching patch index. Specifically, the normal coordinate axis information and the rotational transform information of the reference patch indicated by the matching patch index are taken as the normal coordinate axis information and the rotational transform information of the patch to be decoded, respectively. For example:
patch[k].normalAxis=reframe.patch[refPatchId].normalAxis,
patch[k].orientationIndex=reframe.patch[refPatchId].orientationIndex。
optionally, the two-dimensional information and the three-dimensional information of the patch to be decoded may be parsed from the code stream in a differential decoding manner.
In a possible embodiment, if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, obtaining normal coordinate axis information of the to-be-decoded patch according to the matching patch index of the to-be-decoded patch, including: and if the matching patch index of the to-be-decoded patch is a default value, analyzing the normal coordinate axis information of the to-be-decoded patch from the code stream.
If the side information includes three-dimensional information and a matching patch index, obtaining a global matching patch identification, two-dimensional information, normal coordinate axis information and rotation transformation information of the patch to be decoded according to the matching patch index of the patch to be decoded, including: and if the matching patch index of the to-be-decoded patch is a default value, analyzing the two-dimensional information, the normal coordinate axis information and the rotation transformation information from the code stream, and determining that the global matching patch identifier of the to-be-decoded patch is a second value. The purpose of determining the global matching patch identifier of the to-be-decoded patch as the second value is to directly determine the global matching patch identifier of the to-be-decoded patch as the global matching patch identifier of the to-be-decoded patch when the to-be-decoded patch is taken as the patch of the reference patch, so that the decoding is performed according to the global matching patch identifier.
It should be noted that, in the differential decoding, the two-dimensional information of the to-be-decoded patch is parsed from the codestream, specifically, the difference between u0 of the to-be-decoded patch and u0 of the reference patch thereof, the difference between v0 of the to-be-decoded patch and v0 of the reference patch thereof, the difference between sizeU0 of the to-be-decoded patch and sizeU0 of the reference patch thereof, and the difference between sizeU0 of the to-be-decoded patch and sizeU0 of the reference patch thereof are parsed from the codestream; then, u0 of the patch to be decoded is obtained according to the difference value between u0 of the patch to be decoded and u0 of the reference patch and u0 of the reference patch, v0 of the patch to be decoded is obtained according to the difference value between v0 of the patch to be decoded and v0 of the reference patch and v0 of the reference patch, sizeU0 of the patch to be decoded is obtained according to the difference value between sizeU0 of the patch to be decoded and sizeU0 of the reference patch and sizeU0 of the reference patch, and sizeU0 of the patch to be decoded is obtained according to the difference value between sizeU0 of the patch to be decoded and sizeU0 of the reference patch and sizeU0 of the reference patch. Similarly, the analyzing the three-dimensional information of the to-be-decoded patch from the code stream by adopting the differential decoding method specifically includes analyzing a difference value between u1 of the to-be-decoded patch and u1 of a reference patch thereof from the code stream, a difference value between v1 of the to-be-decoded patch and v1 of the reference patch thereof, and a difference value between d1 of the to-be-decoded patch and d1 of the reference patch thereof; then, u1 of the patch to be decoded is obtained according to the difference value between u1 of the patch to be decoded and u1 of the reference patch and u1 of the reference patch, v1 of the patch to be decoded is obtained according to the difference value between v1 of the patch to be decoded and v1 of the reference patch and v1 of the reference patch, and d1 of the patch to be decoded is obtained according to the difference value between d1 of the patch to be decoded and d1 of the reference patch and d1 of the reference patch.
In one possible embodiment, whether the to-be-decoded patch is the matching patch is determined by whether the matching patch index of the to-be-decoded patch is parsed from the codestream. And if the code stream is not analyzed to obtain the matching patch index of the to-be-decoded patch, determining that the to-be-decoded patch is a non-matching patch.
In one possible embodiment, partial side information of the global match patch within the subgroup, which refers to side information that is common to the global match patch and has the same value, is decoded separately. The partial side information refers to a part or all of the two-dimensional information, the normal coordinate axis information, and the rotational transform information. When decoding the side information of the patches of all the frames in the subgroup, if one patch in a frame point cloud in the subgroup is a global matching patch, part of the side information (i.e., part or all of the two-dimensional information, the normal coordinate axis information, and the rotation transformation information) of the patch does not need to be decoded. This embodiment also achieves the purpose of improving the decoding efficiency.
S703, reconstructing the patch to be decoded according to the two-dimensional information, the three-dimensional information, the normal coordinate axis information and the rotation transformation information of the patch to be decoded.
It can be seen that, in the scheme of the embodiment of the application, the side information of the global matching patch in the sub-group head frame point cloud is analyzed from the code stream; because the partial side information of the global matching patch in the non-head frame point is the same, the partial side information of the global matching patch in the non-head frame point can be obtained by directly deducing according to the side information of the global matching patch in the head frame point cloud, and the decoding efficiency is improved by adopting the embodiment.
In one specific embodiment, as shown in FIG. 8, the reference frame of the 0 th sub-group of the I-th sub-group is the last frame point cloud in the I-1 th sub-group. The I subgroup comprises 3 frames of point clouds, namely a 0 th frame of point cloud, a 1 st frame of point cloud and a 2 nd frame of point cloud; each frame of the point cloud includes 9 patches. The reference frame of the 0 th frame point cloud in the I-th subgroup comprises a patch which is respectively matched with the 0 th, 1,2,3,4 and 5 patches in the 0 th frame point cloud in the I-th subgroup and a patch which is not matched with the 6 th, 7 th and 8 patches of the 0 th frame point cloud in the I-th subgroup. All the 0 th, 1 st, 2 nd, 3 th, 4 th and 5 th patches of the 0 th frame point cloud in the I th sub-group are matching patches; the 6 th, 7 th and 8 th patches are all non-matching patches; correspondingly, the matching patch indexes of 0,1,2,3,4,5 patches in the 0 th frame point cloud in the I th sub-group are 1,0,3,2,4,5, respectively.
The reference frame of the 1 st frame point cloud in the I subgroup is the 0 th frame point cloud in the I subgroup. In the reference frame of the 1 st frame point cloud in the I-th subgroup, the patch respectively matched with the 0 th, 1 st, 2 nd, 3 th, 4 th, 5 th, 6 th, 7 th patches in the 1 st frame point cloud in the I-th subgroup and the patch not matched with the 8 th patch in the 1 st frame point cloud in the I-th subgroup are included. The 0 th, 1 st, 2 nd, 3 rd, 4 th, 5 th, 6 th, and 7 th patches of the 1 st frame point cloud in the I-th sub-group are all matching patches, and the 8 th patch is a non-matching patch. Accordingly, the matching patch indexes of 0,1,2,3,4,5,6,7 patches in the 1 st frame point cloud in the I-th sub-group are 0,2,1,4,3,5,6,7, respectively.
And the reference frame of the 2 nd frame point cloud in the I subgroup is the 1 st frame point cloud in the I subgroup. In the reference frame of the 2 nd frame point cloud in the I-th subgroup, the reference frame comprises the patch respectively matched with the 0 th, 1 st, 2 nd, 3 rd, 4 th and 5 th patches in the 1 st frame point cloud in the I-th subgroup and the patch respectively not matched with the 6 th, 7 th and 8 th patches in the 2 nd frame point cloud in the I-th subgroup. The 0 th, 1 st, 2 nd, 3 th, 4 th, 5 th patches of the 2 nd frame point cloud in the I-th subgroup are matching patches, and the 6 th, 7 th, 8 th patches are non-matching patches. Accordingly, the matching patch indexes of the 0 th, 1 st, 2 nd, 3 th, 4 th, 5 th and individual patches in the 2 nd frame point cloud in the I th sub-group are 2,0 th, 1 th, 4 th, 3 th and 6 th respectively. As shown in fig. 8, the gray boxes represent matching patches and the white boxes represent non-matching patches.
The 0,1,2,3,4,6 patches of the 0 th frame point cloud in the I subgroup, the 0,1,2,3,4,6 patches in the 1 st frame point cloud and the 0,1,2,3,4,5 patches in the 2 nd frame point cloud are all global matching patches; the 5 th, 7 th, 8 th patch of the 0 th frame point cloud in the I subgroup, the 5 th, 7 th, 8 th patch in the 1 st frame point cloud and the 6 th, 7 th, 8 th patch in the 2 nd frame point cloud are all non-global matching patches.
In encoding, for the 0 th frame point cloud in the I th sub-group: acquiring the two-dimensional information, the three-dimensional information, the rotation transformation information, the global matching patch identification and the matching patch index of each patch in the 0 th, 1,2,3,4,5 patches in the 0 th frame point cloud, and encoding the two-dimensional information, the three-dimensional information, the rotation transformation information, the global matching patch identification and the matching patch index of each patch in the 0 th, 1,2,3,4,5 patches into a code stream. And acquiring the two-dimensional information, the three-dimensional information, the normal coordinate axis information, the rotation transformation information and the global matching patch identifier of each patch in the 6 th, 7 th and 8 th frames of point cloud, and encoding the two-dimensional information, the three-dimensional information, the normal coordinate axis information, the rotation transformation information, the global matching patch identifier and the matching patch index into a code stream of each patch in the 6 th, 7 th and 8 th frames of point cloud.
For the 1 st frame point cloud in the ith subgroup: the method comprises the steps that all the 0 th, 1 st, 2 nd, 3 th, 4 th and 6 th patches in the 1 st frame point cloud are global matching patches, the three-dimensional information and matching patch indexes of all the 0 th, 1 st, 2 th, 3 th, 4 th and 6 th patches in the 1 st frame point cloud are obtained, and the three-dimensional information and matching patch indexes of all the 0 th, 1 st, 2 th, 3 th, 4 th and 6 th patches are coded into a code stream. Optionally, a differential coding mode is adopted to encode the difference value between the three-dimensional information of each patch of the 0 th, 1 st, 2 th, 3 th, 4 th, and 6 th patches and the three-dimensional information of the reference patch into the code stream. The method comprises the steps that the 5 th and the 7 th patches in the 1 st frame point cloud are all matching patches and are non-global matching patches, two-dimensional information and three-dimensional information of each patch in the 5 th and the 7 th patches in the 1 st frame point cloud are obtained, and the two-dimensional information and the three-dimensional information of each patch in the 5 th and the 7 th patches are coded into a code stream. And the 8 th patch in the 1 st frame point cloud is a non-matching patch, the two-dimensional information, the three-dimensional information, the normal coordinate axis information, the rotation transformation information and the matching patch index of the 8 th patch in the 1 st frame point cloud are obtained, and the two-dimensional information, the three-dimensional information, the normal coordinate axis information, the rotation transformation information and the matching patch index of the 8 th patch in the 1 st frame point cloud are coded into a code stream.
For the 2 nd frame point cloud in the I th subgroup: the method comprises the steps that all the 0 th, 1 st, 2 nd, 3 th, 4 th and 5 th patches in the 2 nd frame point cloud are global matching patches, the three-dimensional information and matching patch indexes of all the 0 th, 1 st, 2 th, 3 th, 4 th and 5 th patches in the 2 nd frame point cloud are obtained, and the three-dimensional information and matching patch indexes of all the 0 th, 1 st, 2 th, 3 th, 4 th and 5 th patches are coded into a code stream. The method comprises the steps that 6 th, 7 th and 8 th patches in the 2 nd frame point cloud are non-matching patches, two-dimensional information, three-dimensional information, normal coordinate axis information, rotation transformation information and matching patch indexes of each patch in the 6 th, 7 th and 8 th patches in the 2 nd frame point cloud are obtained, and the two-dimensional information, the three-dimensional information, the normal coordinate axis information, the rotation transformation information and the matching patch indexes of each patch in the 6 th, 7 th and 8 th patches in the 2 nd frame point cloud are coded into a code stream.
When decoding, for the 0 th frame point cloud in the I subgroup: analyzing a matching patch index, two-dimensional information, three-dimensional information, rotation transformation information and a global matching patch identifier of each patch in the 0 th frame point cloud from the code stream; determining that the 0 th, 1 st, 2 nd, 3 rd, 4 th and 5 th patches are all matched patches according to the matched patch indexes of each patch, determining that the 6 th, 7 th and 8 th patches are all non-matched patches, and determining the normal coordinate axis information of each of the 0 th, 1 st, 2 nd, 3 th, 4 th and 5 th patches according to the normal coordinate axis information of the reference patch of each of the 0 th, 1 st, 2 nd, 3 th, 4 th and 5 th patches; and analyzing the normal coordinate axis information of each of the 6 th, 7 th and 8 th latches from the code stream.
For the 1 st frame point cloud in the ith subgroup: analyzing the three-dimensional information and the matching patch index of each patch in the 1 st frame point cloud from the code stream; and determining that the 0 th, 1 st, 2 nd, 3 th, 4 th, 5 th, 6 th and 7 th patches in the 1 st frame point cloud are all matching patches according to the matching patch indexes of each patch, and determining that the 8 th patch is a non-matching patch. And determining the global matching patch identification of each patch according to the global matching patch identification of the reference patch of each patch of 0,1,2,3,4,5,6 and 7 patches in the 1 st frame point cloud. According to the global matching patch identification of each patch of 0,1,2,3,4,5,6 and 7 patches, determining that the patch of 0,1,2,3,4 and 6 is a global matching patch, and determining that the patch of 5 and 7 is a non-global matching patch. Respectively determining the two-dimensional information, the normal coordinate axis information and the rotation transformation information of each patch according to the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the reference patch of each patch in the 0 th, 1 th, 2 th, 3 th, 4 th and 6 th patches; analyzing the two-dimensional information of each patch in the 5 th and 7 th patches from the code stream, and respectively determining the normal coordinate axis information and the rotation transformation information of each patch according to the normal coordinate axis information and the rotation transformation information of the reference patch of each patch in the 5 th and 7 th patches. And analyzing the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the 8 th patch from the code stream, and determining that the global matching patch of the 8 th patch is identified as a second value (such as 0 or false), wherein the second value is used for indicating that the 8 th patch is a non-global matching patch.
For the 2 nd frame point cloud in the I th subgroup: analyzing the three-dimensional information and the matching patch index of each patch in the 2 nd frame point cloud from the code stream; and determining that the 0 th, 1 st, 2 nd, 3 th, 4 th and 5 th patches in the 2 nd frame point cloud are all matching patches according to the matching patch indexes of each patch, and determining that the 6 th, 7 th and 8 th patches are all non-matching patches. And determining the global matching patch identification of each patch according to the global matching patch identification of the reference patch of each patch of 0,1,2,3,4,5 patches in the 2 nd frame point cloud. And respectively determining the 0 th, 1 st, 2 nd, 3 rd, 4 th and 5 th patch to be the global matching patch according to the global matching patch identification of each of the 0 th, 1 st, 2 th, 3 th, 4 th and 5 th patches. Determining the two-dimensional information, the normal coordinate axis information and the rotation transformation information of each of the 0 th, 1 st, 2 nd, 3 th, 4 th, 5 th patches according to the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the reference patch of the each of the patches. And analyzing the two-dimensional information, the normal coordinate axis information and the rotation transformation information of each of the 6 th, 7 th and 8 th patches from the code stream, and determining that the global matching patch of each of the 6 th, 7 th and 8 th patches is identified as a second value (such as 0 or false), wherein the second value is used for indicating that the patch is a non-global matching patch.
In a possible embodiment, an embodiment of the present application further provides a point cloud encoding method, including: acquiring side information of a patch to be coded; and encoding indication information into the code stream, wherein the indication information is used for indicating whether the side information of the patch to be encoded is encoded according to a target encoding method, and the target encoding method refers to part or all of the content of the embodiment shown in fig. 6, and is not described herein.
In one possible embodiment, an embodiment of the present application further provides a point cloud decoding method, including: analyzing the code stream to obtain indication information, wherein the indication information is used for indicating whether the side information is decoded according to a target decoding method; when the indication information is used for indicating that the side information is decoded according to the target decoding method, the side information of the patch to be decoded is obtained according to the target decoding method; the target decoding method is described in part or in whole with reference to the embodiment shown in fig. 7, and will not be described herein; and reconstructing the patch to be decoded according to the side information of the patch to be decoded.
In a possible embodiment, an embodiment of the present application further provides a point cloud encoding method, including: acquiring side information of a patch to be coded; and encoding indication information into the code stream, wherein the indication information is used for indicating whether the side information of the patch to be encoded is encoded according to a target encoding method, and the target encoding method refers to part or all of the content of the embodiment shown in fig. 6, and is not described herein.
In one possible embodiment, an embodiment of the present application further provides a point cloud decoding method, including: analyzing the code stream to obtain indication information, wherein the indication information is used for indicating whether the side information is decoded according to a target decoding method; when the indication information is used for indicating that the side information is decoded according to the target decoding method, the side information of the patch to be decoded is obtained according to the target decoding method; the target decoding method is described in part or in whole with reference to the embodiment shown in fig. 7, and will not be described herein; and reconstructing the patch to be decoded according to the side information of the patch to be decoded.
Referring to fig. 9, fig. 9 is a schematic structural diagram of an apparatus for encoding a point cloud according to an embodiment of the present disclosure. As shown in fig. 9, the encoding apparatus 900 may include:
a cloud patch (patch) information obtaining module 901, configured to obtain side information of a patch to be encoded;
the auxiliary information encoding module 902 is configured to, if the patch to be encoded is a patch in the first frame point cloud in the subgroup, encode side information of the patch to be encoded into the code stream; the side information comprises two-dimensional information, three-dimensional information, rotation transformation information, global matching patch identification and matching patch index; the global matching patch identifier is used for indicating whether the to-be-coded patch is a global matching patch in the subgroup or not;
the auxiliary information encoding module 902 is further configured to, if the patch to be encoded is a patch in a non-first-frame point cloud in the subgroup, encode side information of the patch to be encoded into the code stream, where the side information includes three-dimensional information and a matching patch index.
In a possible embodiment, in the aspect that if the patch to be encoded is a patch in the first frame point cloud in the subgroup, the side information of the patch to be encoded is encoded into the code stream, the auxiliary information encoding module 902 is specifically configured to: if the to-be-encoded patch is the patch in the first frame point cloud in the subgroup, and the to-be-encoded patch is a global matching patch and has a patch matched with the global matching patch, encoding the side information of the to-be-encoded patch into the code stream.
In the aspect of encoding the side information of the to-be-encoded patch into the code stream if the to-be-encoded patch is a patch in the non-first-frame point cloud in the subgroup, the auxiliary information encoding module 902 is specifically configured to: if the to-be-encoded patch is a patch in the non-first frame point cloud in the subgroup, and the to-be-encoded patch is a global matching patch and has a patch matched with the global matching patch, encoding the side information of the to-be-encoded patch into the code stream.
The matching patch index of the patch to be encoded is a non-default value to indicate a reference patch matching the patch to be encoded. The global match patch flag of the to-be-encoded patch is a first value to indicate that the to-be-encoded patch is a global match patch within the subgroup.
In a possible embodiment, in the aspect that if the patch to be encoded is a patch in the first frame point cloud in the subgroup, the side information of the patch to be encoded is encoded into the code stream, the auxiliary information encoding module 902 is specifically configured to: if the to-be-coded patch is a patch in the first frame point cloud in the subgroup, the to-be-coded patch is a globally matched patch and the to-be-coded patch does not have a patch matched with the to-be-coded patch, the side information of the to-be-coded patch also comprises normal coordinate axis information, and the side information of the to-be-coded patch is coded into a code stream; wherein the matching patch index is used to indicate that the patch to be encoded does not have a patch matching therewith. The matching patch index of the to-be-encoded patch is a default value to indicate that the to-be-encoded patch does not have a patch matching therewith; the global match patch flag of the to-be-encoded patch is a first value to indicate that the to-be-encoded patch is a global match patch within the subgroup.
In a possible embodiment, in the aspect that if the patch to be encoded is a patch in the first frame point cloud in the subgroup, the side information of the patch to be encoded is encoded into the code stream, the auxiliary information encoding module 902 is specifically configured to: if the to-be-encoded patch is the patch in the first frame point cloud in the subgroup, the to-be-encoded patch is a non-global matching patch and has a patch matched with the to-be-encoded patch, encoding side information of the to-be-encoded patch into a code stream;
in the aspect of encoding the side information of the to-be-encoded patch into the code stream if the to-be-encoded patch is a patch in the non-first-frame point cloud in the subgroup, the auxiliary information encoding module 902 is specifically configured to: if the to-be-encoded patch is a patch in the non-first frame point cloud in the subgroup, the to-be-encoded patch is a non-global matching patch and has a patch matched with the to-be-encoded patch, the side information of the to-be-encoded patch further comprises two-dimensional information, and the side information of the to-be-encoded patch is encoded into the code stream.
The matching patch index of the patch to be coded is a non-default value to indicate a reference patch matched with the patch to be coded; the global match patch flag of the to-be-encoded patch is a second value to indicate that the to-be-encoded patch is not a global match patch within the subgroup.
In a possible embodiment, in the aspect that if the patch to be encoded is a patch in the first frame point cloud in the subgroup, the side information of the patch to be encoded is encoded into the code stream, the auxiliary information encoding module 902 is specifically configured to: if the to-be-coded patch is a patch in the first frame point cloud in the subgroup, the to-be-coded patch is a non-global matching patch and the to-be-coded patch does not have a patch matched with the to-be-coded patch, the side information of the to-be-coded patch also comprises normal coordinate axis information, and the side information of the to-be-coded patch is coded into a code stream;
in the aspect of encoding the side information of the to-be-encoded patch into the code stream if the to-be-encoded patch is a patch in the non-first-frame point cloud in the subgroup, the auxiliary information encoding module 902 is specifically configured to: if the to-be-coded patch is a patch in the non-first frame point cloud in the subgroup, the to-be-coded patch is a non-global matching patch and does not have a patch matched with the to-be-coded patch, the side information of the to-be-coded patch further comprises two-dimensional information, normal coordinate axis information and rotation transformation information, and the side information of the to-be-coded patch is coded into the code stream.
Wherein, the matching patch index of the patch to be coded is a default value to indicate that the patch to be coded does not have a patch matched with the matching patch; the global match patch flag of the to-be-encoded patch is a second value to indicate that the to-be-encoded patch is not a global match patch within the subgroup.
It should be noted that the patch information obtaining module 901 is configured to execute the relevant content of step S601 in the embodiment shown in fig. 6, and the auxiliary information encoding module 902 is configured to execute the relevant content of steps S602 and S603 in the embodiment shown in fig. 6. As an example, the patch information obtaining module 901 may correspond to a combination of the patch information generating module 101 and the packaging module 102 in fig. 2, and the auxiliary information encoding module 902 may correspond to the auxiliary information encoding module 108 in fig. 2, in other words, the functions of the patch information obtaining module 901 may be implemented by the patch information generating module 101 and the packaging module 102 in fig. 2, and the functions of the auxiliary information generating module 902 may be implemented by the auxiliary information encoding module 108 in fig. 2. In one example, the patch information generating module 101 is configured to obtain sizeU0 and sizevs 0 in the three-dimensional information, the normal coordinate axis information, and the global matching patch identification and two-dimensional information of the patch to be encoded, and the packing module 102 is configured to obtain the rotation transformation information, the matching patch index, and u0 and v0 in the two-dimensional information of the patch to be encoded. Although the application is not so limited. For further details, reference may be made to the prior art or the above explanation of the principle of the encoder shown in fig. 2, which is not described here in detail.
Referring to fig. 10, fig. 10 is a schematic structural diagram of a point cloud decoding apparatus according to an embodiment of the present disclosure. As shown in fig. 10, the decoding apparatus 1000 includes:
the auxiliary information decoding module 1001 is configured to parse side information of the patch to be decoded from the code stream;
if the side information comprises two-dimensional information, three-dimensional information, rotation transformation information, global matching patch identification and matching patch index, obtaining normal coordinate axis information of the patch to be decoded according to the matching patch index;
if the side information comprises three-dimensional information and matching patch indexes, obtaining global matching patch identification, two-dimensional information, normal coordinate axis information and rotation transformation information of the to-be-decoded patch according to the matching patch indexes of the to-be-decoded patch;
the reconstruction module 1002 is configured to reconstruct the patch to be decoded according to the two-dimensional information, the three-dimensional information, the normal coordinate axis information, and the rotation transformation information of the patch to be decoded; the global matching patch identifier is used for indicating whether the to-be-decoded patch is the global matching patch.
In a possible embodiment, in the aspect that if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, the normal coordinate axis information of the patch to be decoded is obtained according to the matching patch index, the auxiliary information decoding module 1001 is specifically configured to:
and if the matching patch index of the to-be-decoded patch is determined to be a non-default value, determining the normal coordinate axis information of the to-be-decoded patch according to the normal coordinate axis information of the reference patch indicated by the matching patch index.
If the side information includes three-dimensional information and a matching patch index, the auxiliary information decoding module 1001 specifically is configured to, according to the matching patch index of the to-be-decoded patch, obtain the global matching patch identifier, two-dimensional information, normal coordinate axis information, and rotation transformation information of the to-be-decoded patch: if the matching patch index of the to-be-decoded patch is determined to be a non-default value, determining a global matching patch identifier of the to-be-decoded patch according to the global matching patch identifier of the reference patch; if the global matching patch identifier of the to-be-decoded patch is a first value, determining the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the to-be-decoded patch according to the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the reference patch.
In a possible embodiment, in the aspect that if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, the normal coordinate axis information of the patch to be decoded is obtained according to the matching patch index, the auxiliary information decoding module 1001 is specifically configured to:
and if the matching patch index of the to-be-decoded patch is determined to be a default value, analyzing the coordinate axis information of the to-be-decoded patch from the code stream.
In a possible embodiment, in the aspect that if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, the normal coordinate axis information of the patch to be decoded is obtained according to the matching patch index, the auxiliary information decoding module 1001 is specifically configured to:
if the matching patch index of the to-be-decoded patch is determined to be a non-default value, determining normal coordinate axis information of the to-be-decoded patch according to the normal coordinate axis information of the reference patch indicated by the matching patch index;
if the side information includes three-dimensional information and a matching patch index, the auxiliary information decoding module 1001 specifically is configured to, according to the matching patch index of the to-be-decoded patch, obtain the global matching patch identifier, two-dimensional information, normal coordinate axis information, and rotation transformation information of the to-be-decoded patch:
if the matching patch index of the to-be-decoded patch is determined to be a non-default value; determining a global matching patch identifier of the to-be-decoded patch according to the global matching patch identifier of the reference patch indicated by the matching patch index; if the global matching patch identifier of the to-be-decoded patch is determined to be a second value; then, the two-dimensional information of the patch to be decoded is analyzed from the code stream; and determining normal coordinate axis information and rotational transformation information of the to-be-decoded patch according to the normal coordinate axis information and the rotational transformation information of the reference patch indicated by the matching patch index.
In a possible embodiment, in the aspect that if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier, and a matching patch index, the normal coordinate axis information of the patch to be decoded is obtained according to the matching patch index, the auxiliary information decoding module 1001 is specifically configured to:
if the matching patch index of the to-be-decoded patch is determined to be a default value, normal coordinate axis information of the to-be-decoded patch is analyzed from the code stream;
if the side information includes three-dimensional information and a matching patch index, the auxiliary information decoding module 1001 specifically is configured to, according to the matching patch index of the to-be-decoded patch, obtain the global matching patch identifier, two-dimensional information, normal coordinate axis information, and rotation transformation information of the to-be-decoded patch: and if the matching patch index of the to-be-decoded patch is determined to be a default value, analyzing the two-dimensional information, the normal coordinate axis information and the rotation transformation information from the code stream, and determining that the global matching patch identifier of the to-be-decoded patch is a second value.
It should be noted that the auxiliary information decoding module 1001 is configured to execute the relevant content of steps S701 and S702 in the embodiment shown in fig. 7, and the reconstruction module 1002 is configured to execute the relevant content of step S703 in the embodiment shown in fig. 7. As an example, the auxiliary information decoding module 1001 corresponds to the auxiliary information decoding module 204 in fig. 4, and the reconstruction module 1002 corresponds to the geometric information reconstruction module 205 of the point cloud in fig. 4, in other words, the function of the auxiliary information decoding module 1001 may be implemented by the auxiliary information decoding module 204 in fig. 4, and the function of the reconstruction module 1002 may be implemented by the geometric information reconstruction module 205 of the point cloud in fig. 4. Although the application is not so limited. For further details, reference may be made to the prior art or the above explanation of the principle of the decoder shown in fig. 4, which is not described here in detail.
Referring to fig. 11, fig. 11 is a schematic structural diagram of an apparatus for encoding a point cloud according to an embodiment of the present disclosure. As shown in fig. 11, the encoding apparatus 1100 includes:
a patch information obtaining module 1101, configured to obtain side information of the patch to be encoded;
an auxiliary information encoding module 1102, configured to encode indication information into the code stream, where the indication information is used to indicate whether to encode side information according to a target encoding method; the target encoding method includes part or all of the point cloud encoding method of the embodiment shown in fig. 6.
It should be noted that, as an example, the patch information obtaining module 1101 in fig. 11 corresponds to a combination of the patch information generating module 101 and the packing module 102 in fig. 2, and the auxiliary information encoding module 1102 in fig. 11 corresponds to the auxiliary information encoding module 108 in fig. 2, in other words, the function of the patch information obtaining module 1101 is implemented by the patch information generating module 101 and the packing module 102 in fig. 2, and the function of the auxiliary information encoding module 1102 may be implemented by the auxiliary information encoding module 108 in fig. 2. Although the application is not so limited. For further details, reference may be made to the prior art or the above explanation of the principle of the encoder shown in fig. 2, which is not described here in detail.
Referring to fig. 12, fig. 12 is a schematic structural diagram of another point cloud decoding apparatus according to an embodiment of the present disclosure. As shown in fig. 12, the decoding apparatus 1200 includes:
an auxiliary information decoding module 1201, configured to parse the code stream to obtain indication information, where the indication information is used to indicate whether to decode side information according to a target decoding method; when the indication information is used for indicating that the side information is decoded according to the target decoding method, the side information of the patch to be decoded is obtained according to the target decoding method; the target decoding method includes part or all of the point cloud decoding method of the embodiment shown in fig. 7;
a reconstructing module 1202, configured to reconstruct the patch to be decoded according to the side information of the patch to be decoded.
It should be noted that, as an example, the auxiliary information decoding module 1201 in fig. 12 corresponds to the auxiliary information decoding module 204 in fig. 4, and the reconstruction module 1202 in fig. 12 corresponds to the geometric information reconstruction module 205 of the point cloud in fig. 4, in other words, the function of the auxiliary information decoding module 1201 may be implemented by the auxiliary information decoding module 204 in fig. 4, and the function of the reconstruction module 1202 may be implemented by the geometric information reconstruction module 205 of the point cloud in fig. 4. Although the application is not so limited. For further details, reference may be made to the prior art or the above explanation of the principle of the decoder shown in fig. 4, which is not described here in detail.
FIG. 13 is a schematic block diagram of one implementation of a coding device 1300 for an embodiment of the present application. The obtaining apparatus 1300 may include a processor 1301, a memory 1302, and a bus system 1303, among others. The processor 1301 and the memory 1302 are connected through a bus system 1303, the memory 1302 is used for storing instructions, and the processor 1301 is used for executing the instructions stored in the memory 1302 to execute various point cloud encoding or decoding methods described herein, especially a method for filtering a current image block based on a block size of the current image block. To avoid repetition, it is not described in detail here.
In the embodiment of the present application, the processor 1301 may be a Central Processing Unit (CPU), and the processor 1301 may also be other general purpose processors, DSPs, ASICs, FPGAs, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, or the like. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
The memory 1302 may include a ROM device or a RAM device. Any other suitable type of memory device can also be used for memory 1302. The memory 1302 may include code and data 13021 accessed by the processor 1301 using the bus 1303. The memory 1302 may further include an operating system 13023 and application programs 13022, the application programs 13022 comprising at least one program that allows the processor 1301 to perform the point cloud encoding or decoding methods described herein (and in particular the point cloud encoding and decoding methods described herein). For example, application 13022 may include applications 1 through N, which further include a point cloud encoding or decoding application (referred to as a point cloud transcoding application) that performs the point cloud encoding or decoding methods described herein.
The bus system 1303 may include a power bus, a control bus, a status signal bus, and the like, in addition to the data bus. But for clarity of illustration the various buses are identified in the figure as the bus system 1303.
Optionally, the encoding apparatus 1300 may also include one or more output devices, such as a display 1304. In one example, the display 1304 may be a touch-sensitive display that incorporates a display with a touch-sensitive unit operable to sense touch input. A display 1304 may be connected to the processor 1301 via the bus 1303.
It should be noted that the decoding apparatus 1300 may perform the method for encoding a point cloud in the present application, and may also perform the method for decoding a point cloud in the present application.
Those of skill in the art will appreciate that the functions described in connection with the various illustrative logical blocks, modules, and algorithm steps described in the disclosure herein may be implemented as hardware, software, firmware, or any combination thereof. If implemented in software, the functions described in the various illustrative logical blocks, modules, and steps may be stored on or transmitted over as one or more instructions or code on a computer-readable medium and executed by a hardware-based processing unit. The computer-readable medium may include a computer-readable storage medium, which corresponds to a tangible medium, such as a data storage medium, or any communication medium including a medium that facilitates transfer of a computer program from one place to another (e.g., according to a communication protocol). In this manner, a computer-readable medium may generally correspond to (1) a non-transitory tangible computer-readable storage medium, or (2) a communication medium, such as a signal or carrier wave. A data storage medium may be any available medium 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 herein. The computer program product may include a computer-readable medium.
By way of example, and not limitation, such computer-readable storage media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer.
The instructions may be executed by one or more 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 circuitry. Thus, the term "processor," as used herein may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described herein. Additionally, in some aspects, the functions described by the various illustrative logical blocks, modules, and steps described herein may be provided within dedicated hardware and/or software modules configured for encoding and decoding, or incorporated in a combined codec. Also, the techniques may be fully implemented in one or more circuits or logic elements. In one example, various illustrative logical blocks, units, and modules within the encoder 100 and the decoder 200 may be understood as corresponding circuit devices or logical elements.
The techniques of this application may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an Integrated Circuit (IC), or a set of ICs (e.g., a chipset). Various components, modules, or units are described in this application to emphasize functional aspects of means for performing the disclosed techniques, but do not necessarily require realization by different hardware units. Indeed, as described above, the various units may be combined in a codec hardware unit, in conjunction with suitable software and/or firmware, or provided by an interoperating hardware unit (including one or more processors as described above).
The above description is only an exemplary embodiment of the present application, but the scope of the present application is not limited thereto, and any changes or substitutions that can be easily conceived by those skilled in the art within the technical scope of the present application are intended to be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.
Claims (24)
1. A point cloud encoding method, comprising:
acquiring side information of a point cloud patch to be coded;
if the patch to be coded is the patch in the first frame point cloud in the subgroup, coding the side information of the patch to be coded into a code stream; the side information comprises two-dimensional information, three-dimensional information, rotation transformation information, global matching patch identification and matching patch index; the global matching patch identifier is used for indicating whether the to-be-coded patch is a global matching patch in the subgroup;
if the to-be-encoded patch is the patch in the non-first frame point cloud in the subgroup, encoding side information of the to-be-encoded patch into the code stream, wherein the side information comprises three-dimensional information and a matching patch index.
2. The method according to claim 1, wherein if the patch to be encoded is a patch in a first frame point cloud in a subgroup, encoding side information of the patch to be encoded into a code stream, including:
if the to-be-encoded patch is a patch in the first frame point cloud in the subgroup, the to-be-encoded patch is a global matching patch and has a reference patch matched with the to-be-encoded patch, encoding edge information of the to-be-encoded patch into the code stream, wherein the matching patch index is a non-default value to indicate the reference patch matched with the to-be-encoded patch, and the global matching patch identifier is a first value to indicate the to-be-encoded patch to be a global matching patch in the subgroup;
if the to-be-encoded patch is the patch in the non-first frame point cloud in the subgroup, encoding the side information of the to-be-encoded patch into the code stream, including:
if wait to encode the patch and be in the patch in the non first frame point cloud in the subgroup, just wait to encode the patch and match the patch for the whole situation just wait to encode the patch and have the reference patch that matches with it, will wait to encode the side information coding of patch the code stream, the matching patch index is non-default, with indicate with wait to encode the reference patch that the patch matches.
3. The method according to claim 1, wherein if the patch to be encoded is a patch in a first frame point cloud in a subgroup, encoding side information of the patch to be encoded into a code stream, including:
if treat the coding patch and do the patch in the first frame point cloud in the subgroup, just treat the coding patch and match the patch just for the whole situation the waiting coding patch does not have assorted reference patch with it, the limit information of treating the coding patch still includes normal coordinate axis information, will the limit information of treating the coding patch is compiled the code stream, the matching patch index is the default, in order to indicate the waiting coding patch does not have assorted reference patch with it, the whole situation matches the patch sign and is first value, in order to indicate the waiting coding patch is the whole situation in the subgroup matches the patch.
4. The method according to claim 1, wherein if the patch to be encoded is a patch in a first frame point cloud in a subgroup, encoding side information of the patch to be encoded into a code stream, including:
if the to-be-encoded patch is a patch in the first frame point cloud in the subgroup, the to-be-encoded patch is a non-global matching patch and has a reference patch matched with the to-be-encoded patch, encoding edge information of the to-be-encoded patch into the code stream, wherein the matching patch index is a non-default value to indicate the reference patch matched with the to-be-encoded patch, and the global matching patch identifier is a second value to indicate that the to-be-encoded patch is not the global matching patch in the subgroup;
if the to-be-encoded patch is the patch in the non-first frame point cloud in the subgroup, encoding the side information of the to-be-encoded patch into the code stream, including:
if the to-be-encoded patch is a patch in the non-first frame point cloud in the subgroup, the to-be-encoded patch is a non-global matching patch and has a reference patch matched with the to-be-encoded patch, the side information of the to-be-encoded patch further comprises two-dimensional information, and the side information of the to-be-encoded patch is encoded into the code stream; wherein the matching patch index is a non-default value to indicate a reference patch that matches the patch to be encoded.
5. A point cloud decoding method, comprising:
analyzing the side information of the point cloud block patch to be decoded from the code stream;
if the side information comprises two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier and a matching patch index of the to-be-decoded patch, obtaining normal coordinate axis information of the to-be-decoded patch according to the matching patch index;
if the side information comprises the three-dimensional information of the patch to be decoded and the matching patch index, obtaining a global matching patch identifier, two-dimensional information, normal coordinate axis information and rotation transformation information of the patch to be decoded according to the matching patch index;
reconstructing the patch to be decoded according to the two-dimensional information, the three-dimensional information, the normal coordinate axis information and the rotation transformation information of the patch to be decoded;
wherein the global match patch flag is used to indicate whether the to-be-decoded patch is a global match patch within the subgroup.
6. The method of claim 5, wherein the obtaining normal coordinate axis information of the patch to be decoded according to the matching patch index comprises:
if the matching patch index is determined to be a non-default value, determining normal coordinate axis information of the to-be-decoded patch according to the normal coordinate axis information of the reference patch indicated by the matching patch index;
the basis the match patch index obtains wait to decode the global match patch sign, two-dimensional information, normal coordinate axis information and the rotation transform information of patch, include:
if the matching patch index is determined to be a non-default value, determining a global matching patch identifier of the to-be-decoded patch according to the global matching patch identifier of the reference patch indicated by the matching patch index; if the global matching patch identifier of the to-be-decoded patch is a first value, respectively determining the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the to-be-decoded patch according to the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the reference patch;
wherein, the matching patch index is a non-default value to indicate a reference patch matched with the to-be-decoded patch, and the global matching patch identifier is a first value to indicate that the to-be-decoded patch is the global matching patch in the subgroup.
7. The method of claim 5, wherein the obtaining normal coordinate axis information of the patch to be decoded according to the matching patch index comprises:
if the matching patch index is determined to be a default value, normal coordinate axis information of the patch to be decoded is analyzed from the code stream;
wherein the match patch index is a default value to indicate that the to-be-decoded patch has no reference patch that matches it.
8. The method of claim 5, wherein the obtaining normal coordinate axis information of the patch to be decoded according to the matching patch index comprises:
if the matching patch index is determined to be a non-default value, determining normal coordinate axis information of the to-be-decoded patch according to the normal coordinate axis information of the reference patch indicated by the matching patch index;
the basis the match patch index obtains wait to decode the global match patch sign, two-dimensional information, normal coordinate axis information and the rotation transform information of patch, include:
if the matching patch index is determined to be a non-default value, determining a global matching patch identifier of the to-be-decoded patch according to the global matching patch identifier of the reference patch indicated by the matching patch index; if the global matching patch identifier of the to-be-decoded patch is a second value, analyzing the two-dimensional information of the to-be-decoded patch from the code stream, and respectively determining the normal coordinate axis information and the rotation transformation information of the to-be-decoded patch according to the normal coordinate axis information and the rotation transformation information of the reference patch;
wherein the match patch index is a non-default value to indicate a reference patch that matches the to-be-decoded patch, and the global match patch flag is a second value to indicate that the to-be-decoded patch is not a global match patch within the subset.
9. The method of claim 5, wherein the obtaining normal coordinate axis information of the patch to be decoded according to the matching patch index comprises:
if the matching patch index is determined to be a default value, normal coordinate axis information of the patch to be decoded is analyzed from the code stream;
the basis the match patch index obtains wait to decode the global match patch sign, two-dimensional information, normal coordinate axis information and the rotation transform information of patch, include:
if the matching patch index is determined to be a default value, analyzing the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the to-be-decoded patch from the code stream, and determining that the global matching patch identifier of the to-be-decoded patch is a second value;
wherein the match patch index is a default value to indicate that the to-be-decoded patch does not have a reference patch that matches it, the global match patch flag is a second value to indicate that the to-be-decoded patch is not a global match patch within the subset.
10. A point cloud encoding method, comprising:
acquiring side information of a patch to be coded;
encoding indication information into a code stream, wherein the indication information is used for indicating whether side information of the patch to be encoded is encoded according to a target encoding method; the object encoding method comprises the point cloud encoding method of any of claims 1-4.
11. A point cloud decoding method, comprising:
analyzing the code stream to obtain indication information, wherein the indication information is used for indicating whether the side information is decoded according to a target decoding method; when the indication information is used for indicating that the side information is decoded according to the target decoding method, the side information of the patch to be decoded is obtained according to the target decoding method; the target decoding method comprises the point cloud decoding method of any of claims 5-9;
and reconstructing the patch to be decoded according to the side information of the patch to be decoded.
12. An apparatus for encoding a point cloud, comprising:
the patch information acquisition module is used for acquiring the side information of the patch to be coded;
the auxiliary information encoding module is used for encoding the side information of the to-be-encoded patch into a code stream if the to-be-encoded patch is the patch in the first frame point cloud in the subgroup; the side information comprises two-dimensional information, three-dimensional information, rotation transformation information, global matching patch identification and matching patch index; the global matching patch identifier is used for indicating whether the to-be-coded patch is a global matching patch in the subgroup;
the auxiliary information coding module is further used for encoding side information of the patch to be coded into the code stream if the patch to be coded is the patch in the non-first frame point cloud in the subgroup, wherein the side information comprises three-dimensional information and a matching patch index.
13. The apparatus according to claim 12, wherein in the aspect that if the patch to be encoded is a patch in a first frame point cloud in the subgroup, the side information of the patch to be encoded is encoded into the codestream, the auxiliary information encoding module is specifically configured to:
if the to-be-encoded patch is a patch in the initial frame point cloud in the subgroup, the to-be-encoded patch is a global matching patch and has a patch matched with the global matching patch, encoding edge information of the to-be-encoded patch into the code stream, and the matching patch index is a non-default value to indicate a reference patch matched with the to-be-encoded patch; the global matching patch identifier is a first value to indicate that the to-be-passed code patch is a global matching patch in the subgroup;
if the to-be-encoded patch is a patch in the non-first-frame point cloud in the subgroup, encoding side information of the to-be-encoded patch into the aspect of the code stream, wherein the auxiliary information encoding module is specifically configured to:
if wait to encode the patch and be in the patch in the non first frame point cloud in the subgroup, just wait to encode the patch and match the patch for the global just wait to encode the patch has assorted patch with it, will wait to encode the side information coding of patch the code stream, the matching patch index is non-default, with indicate with wait to encode the reference patch of patch assorted.
14. The apparatus according to claim 12, wherein in the aspect that if the patch to be encoded is a patch in a first frame point cloud in the subgroup, the side information of the patch to be encoded is encoded into the codestream, the auxiliary information encoding module is specifically configured to:
if the to-be-encoded patch is a patch in the first frame point cloud in the subgroup, the to-be-encoded patch is a global matching patch and does not have a patch matched with the to-be-encoded patch, the side information of the to-be-encoded patch further comprises normal coordinate axis information, the side information of the to-be-encoded patch is coded into the code stream, and the matching patch index is a default value to indicate that the to-be-encoded patch does not have a patch matched with the matching patch; the global matching patch identifier is a first value to indicate that the to-be-encoded patch is a global matching patch within the subgroup.
15. The apparatus according to claim 12, wherein in the aspect that if the patch to be encoded is a patch in a first frame point cloud in the subgroup, the side information of the patch to be encoded is encoded into the codestream, the auxiliary information encoding module is specifically configured to:
if the to-be-encoded patch is a patch in the initial frame point cloud in the subgroup, the to-be-encoded patch is a non-global matching patch and has a patch matched with the to-be-encoded patch, encoding edge information of the to-be-encoded patch into the code stream, and the matching patch index is a non-default value to indicate a reference patch matched with the to-be-encoded patch; the global match patch flag is a second value to indicate that the to-be-encoded patch is not a global match patch within the subgroup;
if the to-be-encoded patch is a patch in the non-first-frame point cloud in the subgroup, encoding side information of the to-be-encoded patch into the aspect of the code stream, wherein the auxiliary information encoding module is specifically configured to:
if wait to encode the patch and be in the patch in the non first frame point cloud in the subgroup, just wait to encode the patch and be non-global matching patch just wait to encode the patch and have assorted patch with it, wait to encode the side information of patch and still include two-dimensional information, will wait to encode the side information coding of patch the code stream, the matching patch index is non-default, with indicate with wait to encode the reference patch of patch assorted.
16. A point cloud decoding apparatus, comprising:
the auxiliary information decoding module is used for analyzing the side information of the point cloud block patch to be decoded from the code stream;
the auxiliary information decoding module is further configured to obtain normal coordinate axis information of the patch to be decoded according to the matching patch index if the side information includes two-dimensional information, three-dimensional information, rotation transformation information, a global matching patch identifier and the matching patch index; if the side information comprises three-dimensional information and a matching patch index, obtaining a global matching patch identifier, two-dimensional information, normal coordinate axis information and rotation transformation information of the to-be-decoded patch according to the matching patch index;
the reconstruction module is used for reconstructing the patch to be decoded according to the two-dimensional information, the three-dimensional information, the normal coordinate axis information and the rotation transformation information of the patch to be decoded;
wherein the global match patch flag is used to indicate whether the to-be-decoded patch is a global match patch within the subgroup.
17. The apparatus according to claim 16, wherein in the aspect of obtaining the normal coordinate axis information of the to-be-decoded patch according to the matching patch index, the auxiliary information decoding module is specifically configured to:
if the matching patch index is determined to be a non-default value, obtaining normal coordinate axis information of the to-be-decoded patch according to the normal coordinate axis information of the reference patch indicated by the matching patch index;
the auxiliary information decoding module is specifically configured to, according to the matching patch index, obtain the global matching patch identifier, the two-dimensional information, the normal coordinate axis information, and the rotation transformation information of the to-be-decoded patch, specifically:
if the matching patch index is determined to be a non-default value, determining a global matching patch identifier of the to-be-decoded patch according to the global matching patch identifier of the reference patch indicated by the matching patch index; if the global matching patch identifier of the to-be-decoded patch is a first value, respectively determining the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the to-be-decoded patch according to the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the reference patch;
wherein, the match patch index is a default value to indicate the reference patch of the to-be-decoded patch, and the global match patch identifier is a first value to indicate that the to-be-decoded patch is the global match patch in the subgroup.
18. The apparatus according to claim 16, wherein in the aspect of obtaining the normal coordinate axis information of the to-be-decoded patch according to the matching patch index, the auxiliary information decoding module is specifically configured to:
if the matching patch index is determined to be a default value, normal coordinate axis information of the patch to be decoded is analyzed from the code stream;
wherein, the matching patch index is a default value to indicate that the to-be-decoded patch does not have a matching patch, and the global matching patch identifier is a first value to indicate that the to-be-decoded patch is the global matching patch in the subgroup.
19. The apparatus according to claim 16, wherein in the aspect of obtaining the normal coordinate axis information of the to-be-decoded patch according to the matching patch index, the auxiliary information decoding module is specifically configured to:
if the matching patch index of the to-be-decoded patch is determined to be a non-default value, determining normal coordinate axis information of the to-be-decoded patch according to the normal coordinate axis information of the reference patch indicated by the matching patch index;
the auxiliary information decoding module is specifically configured to, according to the matching patch index, obtain the global matching patch identifier, the two-dimensional information, the normal coordinate axis information, and the rotation transformation information of the to-be-decoded patch, specifically:
if the matching patch index of the to-be-decoded patch is determined to be a non-default value; determining a global matching patch identifier of the to-be-decoded patch according to the global matching patch identifier of the reference patch indicated by the matching patch index; if the global matching patch identifier of the to-be-decoded patch is determined to be a second value; analyzing the two-dimensional information of the patch to be decoded from the code stream; respectively determining normal coordinate axis information and rotation transformation information of the patch to be decoded according to the normal coordinate axis information and the rotation transformation information of the reference patch;
wherein the match patch index is a non-default value to indicate the reference patch of the to-be-decoded patch, and the global match patch flag is a second value to indicate that the to-be-decoded patch is not a global match patch within the subset.
20. The apparatus of claim 16, wherein in the aspect of determining the normal coordinate axis information of the to-be-decoded patch according to the matching patch index, the auxiliary information decoding module is specifically configured to:
if the matching patch index is determined to be a default value, normal coordinate axis information of the patch to be decoded is analyzed from the code stream;
the auxiliary information decoding module is specifically configured to, according to the matching patch index, determine the global matching patch identifier, the two-dimensional information, the normal coordinate axis information, and the rotation transformation information of the to-be-decoded patch, and specifically configured to:
if the matching patch index is determined to be a default value, analyzing the two-dimensional information, the normal coordinate axis information and the rotation transformation information of the to-be-decoded patch from the code stream, and determining that the global matching patch identifier of the to-be-decoded patch is a second value;
wherein, the match patch index is a default value to indicate that the to-be-decoded patch does not have a matching patch, and the global match patch identifier is a second value to indicate that the to-be-decoded patch is not a global match patch within the subgroup.
21. An apparatus for encoding a point cloud, comprising:
the patch information acquisition module is used for acquiring the side information of the patch to be coded;
the auxiliary information coding module is used for coding indication information into a code stream, wherein the indication information is used for indicating whether the side information of the patch to be coded is coded according to a target coding method; the object encoding method comprises the point cloud encoding method according to any one of claims 1 to 4.
22. An apparatus for decoding a point cloud, comprising:
the auxiliary information decoding module is used for analyzing the code stream to obtain indication information, and the indication information is used for indicating whether the side information is decoded according to a target decoding method; when the indication information is used for indicating that the side information is decoded according to a target decoding method, the side information of the patch to be decoded is obtained according to the target decoding method; the target decoding method comprises the point cloud decoding method of any one of claims 5 to 9;
and the reconstruction module is used for reconstructing the patch to be decoded according to the side information of the patch to be decoded.
23. A computer-readable storage medium, characterized by comprising program code which, when run on a computer, causes the computer to perform the point cloud encoding method of any of claims 1 to 4 and 10.
24. A computer-readable storage medium, characterized by comprising program code which, when run on a computer, causes the computer to perform the point cloud decoding method of claims 5 to 9 and 11.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910070741.XA CN111479114B (en) | 2019-01-23 | 2019-01-23 | Point cloud encoding and decoding method and device |
PCT/CN2020/071022 WO2020151496A1 (en) | 2019-01-23 | 2020-01-08 | Point cloud encoding/decoding method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910070741.XA CN111479114B (en) | 2019-01-23 | 2019-01-23 | Point cloud encoding and decoding method and device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111479114A true CN111479114A (en) | 2020-07-31 |
CN111479114B CN111479114B (en) | 2022-07-22 |
Family
ID=71736101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910070741.XA Active CN111479114B (en) | 2019-01-23 | 2019-01-23 | Point cloud encoding and decoding method and device |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111479114B (en) |
WO (1) | WO2020151496A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111866484A (en) * | 2019-04-30 | 2020-10-30 | 华为技术有限公司 | Point cloud encoding method, point cloud decoding method, point cloud encoding device, point cloud decoding device, and storage medium |
WO2022037423A1 (en) * | 2020-08-18 | 2022-02-24 | 腾讯科技(深圳)有限公司 | Data processing method, apparatus and device for point cloud media, and medium |
WO2023169001A1 (en) * | 2022-03-08 | 2023-09-14 | 腾讯科技(深圳)有限公司 | Data processing method and apparatus for immersive media, and device and storage medium |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022141453A1 (en) * | 2020-12-31 | 2022-07-07 | 深圳市大疆创新科技有限公司 | Point cloud encoding method and apparatus, point cloud decoding method and apparatus, and encoding and decoding system |
EP4160535A1 (en) * | 2021-09-30 | 2023-04-05 | Beijing Xiaomi Mobile Software Co., Ltd. | Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1926862A (en) * | 2004-02-23 | 2007-03-07 | 诺基亚公司 | Video information transmission |
US20070183507A1 (en) * | 2004-02-19 | 2007-08-09 | Koninklijke Philips Electronics N.V. | Decoding scheme for variable block length signals |
WO2009089032A2 (en) * | 2008-01-10 | 2009-07-16 | Thomson Licensing | Methods and apparatus for illumination compensation of intra-predicted video |
US20150334417A1 (en) * | 2012-12-18 | 2015-11-19 | Friedrich-Alexander-Universität Erlangen-Nürnberg | Coding a Sequence of Digital Images |
CN105430406A (en) * | 2015-12-04 | 2016-03-23 | 中国矿业大学 | Distributed video coding framework |
CN106157371A (en) * | 2016-07-11 | 2016-11-23 | 南京理工大学 | The efficient gridding method of dispersion point cloud based on self adaptation adjacent circumferential expansion strategy |
CN108053446A (en) * | 2017-12-11 | 2018-05-18 | 北京奇虎科技有限公司 | Localization method, device and electronic equipment based on cloud |
US20180276884A1 (en) * | 2017-03-27 | 2018-09-27 | Mitsubishi Electric Research Laboratories, Inc. | Fast T-spline Fitting System and Method |
CN109196559A (en) * | 2016-05-28 | 2019-01-11 | 微软技术许可有限责任公司 | The motion compensation of dynamic voxelization point cloud is compressed |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170214943A1 (en) * | 2016-01-22 | 2017-07-27 | Mitsubishi Electric Research Laboratories, Inc. | Point Cloud Compression using Prediction and Shape-Adaptive Transforms |
CN107633539A (en) * | 2017-09-25 | 2018-01-26 | 潍坊学院 | A kind of three-dimensional point cloud model data compression method based on four side patch divisions |
CN108833927B (en) * | 2018-05-03 | 2019-08-16 | 北京大学深圳研究生院 | A kind of point cloud genera compression method based on 0 element in deletion quantization matrix |
CN108632607B (en) * | 2018-05-09 | 2019-06-21 | 北京大学深圳研究生院 | A kind of point cloud genera compression method based on multi-angle self-adaption intra-frame prediction |
-
2019
- 2019-01-23 CN CN201910070741.XA patent/CN111479114B/en active Active
-
2020
- 2020-01-08 WO PCT/CN2020/071022 patent/WO2020151496A1/en active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070183507A1 (en) * | 2004-02-19 | 2007-08-09 | Koninklijke Philips Electronics N.V. | Decoding scheme for variable block length signals |
CN1926862A (en) * | 2004-02-23 | 2007-03-07 | 诺基亚公司 | Video information transmission |
WO2009089032A2 (en) * | 2008-01-10 | 2009-07-16 | Thomson Licensing | Methods and apparatus for illumination compensation of intra-predicted video |
US20150334417A1 (en) * | 2012-12-18 | 2015-11-19 | Friedrich-Alexander-Universität Erlangen-Nürnberg | Coding a Sequence of Digital Images |
CN105430406A (en) * | 2015-12-04 | 2016-03-23 | 中国矿业大学 | Distributed video coding framework |
WO2017092072A1 (en) * | 2015-12-04 | 2017-06-08 | 中国矿业大学 | Distributed video encoding framework |
CN109196559A (en) * | 2016-05-28 | 2019-01-11 | 微软技术许可有限责任公司 | The motion compensation of dynamic voxelization point cloud is compressed |
CN106157371A (en) * | 2016-07-11 | 2016-11-23 | 南京理工大学 | The efficient gridding method of dispersion point cloud based on self adaptation adjacent circumferential expansion strategy |
US20180276884A1 (en) * | 2017-03-27 | 2018-09-27 | Mitsubishi Electric Research Laboratories, Inc. | Fast T-spline Fitting System and Method |
CN108053446A (en) * | 2017-12-11 | 2018-05-18 | 北京奇虎科技有限公司 | Localization method, device and electronic equipment based on cloud |
Non-Patent Citations (2)
Title |
---|
J SHANKAR,ET AL.: "Simulation of 3D cloud point from disparity map of stereo image", 《 2015 INTERNATIONAL CONFERENCE ON ADVANCED COMPUTING AND COMMUNICATION SYSTEMS》 * |
孙鹏飞.: "基于坐标增量的点云数据精简压缩分析与实践", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111866484A (en) * | 2019-04-30 | 2020-10-30 | 华为技术有限公司 | Point cloud encoding method, point cloud decoding method, point cloud encoding device, point cloud decoding device, and storage medium |
WO2022037423A1 (en) * | 2020-08-18 | 2022-02-24 | 腾讯科技(深圳)有限公司 | Data processing method, apparatus and device for point cloud media, and medium |
WO2023169001A1 (en) * | 2022-03-08 | 2023-09-14 | 腾讯科技(深圳)有限公司 | Data processing method and apparatus for immersive media, and device and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN111479114B (en) | 2022-07-22 |
WO2020151496A1 (en) | 2020-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111479114B (en) | Point cloud encoding and decoding method and device | |
CN110662087B (en) | Point cloud coding and decoding method and coder-decoder | |
JP2022517060A (en) | Point cloud coding structure | |
CN110944187B (en) | Point cloud encoding method and encoder | |
CN110719497B (en) | Point cloud coding and decoding method and coder-decoder | |
US11961265B2 (en) | Point cloud encoding and decoding method and apparatus | |
US11388442B2 (en) | Point cloud encoding method, point cloud decoding method, encoder, and decoder | |
CN110971898B (en) | Point cloud coding and decoding method and coder-decoder | |
US20220007037A1 (en) | Point cloud encoding method and apparatus, point cloud decoding method and apparatus, and storage medium | |
CN111726615B (en) | Point cloud coding and decoding method and coder-decoder | |
US11315289B2 (en) | Adaptive depth guard band | |
WO2020015517A1 (en) | Point cloud encoding method, point cloud decoding method, encoder and decoder | |
CN111866484B (en) | Point cloud encoding method, point cloud decoding method, device and storage medium | |
WO2020187283A1 (en) | Point cloud encoding method, point cloud decoding method, apparatus, and storage medium | |
US20240153147A1 (en) | V3c syntax extension for mesh compression | |
WO2020057338A1 (en) | Point cloud coding method and encoder | |
CN117751387A (en) | Face mesh connectivity coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |