WO2020015517A1 - Point cloud encoding method, point cloud decoding method, encoder and decoder - Google Patents
Point cloud encoding method, point cloud decoding method, encoder and decoder Download PDFInfo
- Publication number
- WO2020015517A1 WO2020015517A1 PCT/CN2019/093972 CN2019093972W WO2020015517A1 WO 2020015517 A1 WO2020015517 A1 WO 2020015517A1 CN 2019093972 W CN2019093972 W CN 2019093972W WO 2020015517 A1 WO2020015517 A1 WO 2020015517A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- patch
- axis
- identification information
- bitangent
- tangent
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
Definitions
- Embodiments of this application relate to the field of encoding/decoding technologies, and in particular, to a point cloud encoding method, a point cloud decoding method, an encoder, and a decoder.
- Embodiments of this application provide a point cloud encoding method, a point cloud decoding method, an encoder, and a decoder, to improve point cloud encoding and decoding performance.
- an embodiment of this application provides a point cloud encoding method, including:
- auxiliary information of a to-be-encoded patch for example, patchLi st[i]
- the auxiliary information of the patch includes an index of a normal axis (for example, normalAxis) of the patch and first identification information of the patch (for example, patch Li st[i ] . projection idx)
- the first identification information indicates a method for determining a tangent axis of the patch and a bitangent axis of the patch (for example, the first identification information indicates a specific method used for determining the tangent axis of the patch and the bitangent axis of the patch);
- the first identification information (for example, patchList[i] projection idx) indicates whether to swap the tangent axis of the patch and the bitangent axis of the patch.
- the first identification information for example, patch Li st[i] projection idx
- a first value for example, 0
- an index of the tangent axis of the patch and an index of the bitangent axis of the patch are not to be swapped
- the first identification information for example, patchLi st[i ] .
- projection idx is a second value (for example, 1)
- an index of the tangent axis of the patch and an index of the bitangent axis of the patch are to be swapped.
- the first identification information when the first identification information is the first value (for example, 0), the first identification information indicates that a first method (for example, a method Ml) is used to determine the tangent axis of the patch and the bitangent axis of the patch; and/or when the first identification information is the second value (for example, 1), the first identification information indicates that a second method (for example, a method M2) is used to determine the tangent axis of the patch and the bitangent axis of the patch.
- a first method for example, a method Ml
- the first identification information indicates that a second method (for example, a method M2) is used to determine the tangent axis of the patch and the bitangent axis of the patch.
- the auxiliary information of the patch further includes second identification information of the patch (patchList[i].have_matched_patch_flag), and the second identification information indicates that there is no reference patch that matches the patch, in a reference point cloud of the patch.
- the obtaining auxiliary information of a to-be-encoded patch in a to-be-encoded point cloud includes:
- the second identification information of the patch (patch Li st [i ] . have m atched patch fl ag), where the second identification information indicates whether there is any reference patch (the reference patch may also be referred to as a matched patch) that matches the patch, in the reference point cloud of the patch (for example, a reference patch array); and when the second identification information indicates that there is no reference patch that matches the patch, in the reference point cloud of the patch (for example, a reference patch array), constructing the first identification information (for example, patchList[i] projection idx), where the first identification information indicates the method for determining the tangent axis of the patch and the bitangent axis of the patch.
- the reference patch may also be referred to as a matched patch
- the first identification information for example, patchList[i] projection idx
- the method further includes:
- the first identification information indicates that the first method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the first method to determine the tangent axis of the patch and the bitangent axis of the patch includes:
- the reference tangent axis is the tangent axis of the patch
- the reference bitangent axis is the bitangent axis of the patch(for example, querying a table based on the index of the normal axis of the patch to obtain an index of the reference tangent axis and an index of the reference bitangent axis that are corresponding to the index of the normal axis of the patch, where the table includes a mapping relationship between a plurality of patch normal axis indexes, a plurality of patch tangent axis indexes, and a plurality of patch bitangent axis indexes).
- a reference tangent axis for example, an index of the reference tangent axis
- a reference bitangent axis for example, an index of the reference bitangent axis
- normal axis for example, the index of the normal axis
- the reference tangent axis for example, the index of the reference tangent axis
- the reference bitangent axis for example, the index of the reference bitangent axis
- the reference bitangent axis for example, the index of the reference bitangent axis
- the tangent axis of the patch for example, the index of the tangent axis of the patch
- the first identification information indicates that the third method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the third method to determine the tangent axis of the patch and the bitangent axis of the patch includes:
- a reference tangent axis for example, an index of the reference tangent axis
- a reference bitangent axis for example, an index of the reference bitangent axis
- normal axis for example, the index of the normal axis
- an embodiment of this application provides a point cloud decoding method, including:
- auxiliary information of a to-be-decoded patch for example, patchLi st[i]
- the auxiliary information of the patch includes an index of a normal axis (for example, normalAxis) of the patch and first identification information of the patch (for example, patchList[i] projection idx)
- the first identification information indicates a method for determining a tangent axis of the patch and a bitangent axis of the patch (for example, the first identification information indicates a specific method used for determining the tangent axis of the patch and the bitangent axis of the patch);
- the geometry information of the patch includes geometric information of a plurality of patches.
- Geometry information of a patch is coordinate values of a point of the patch in a point cloud (for example, each point of the patch in the point cloud) in three-dimensional space.
- Geometry information of a point cloud is coordinate values of a point in the point cloud (for example, each point in the point cloud) in three-dimensional space.
- the determining the tangent axis of the patch and the bitangent axis of the patch based on the index of the normal axis and the first identification information of the patch that are obtained through parsing includes:
- the first identification information indicates whether to swap the tangent axis of the patch and the bitangent axis of the patch.
- the first identification information of the patch for example, patchList[i] projection idx
- a first value for example, 0
- an index of the tangent axis of the patch and an index of the bitangent axis of the patch are not to be swapped; and/or when the first identification information of the patch (for example, patchList[i] projection idx) is a second value (for example, 1), an index of the tangent axis of the patch and an index of the bitangent axis of the patch are to be swapped.
- the first identification information of the patch when the first identification information of the patch is the first value (for example, 0), the first identification information indicates that a first method (for example, a method Ml) is used to determine the tangent axis of the patch and the bitangent axis of the patch; and/or when the first identification information of the patch is the second value (for example, 1), the first identification information indicates that a second method (for example, a method M2) is used to determine the tangent axis of the patch and the bitangent axis of the patch.
- a first method for example, a method Ml
- the first identification information of the patch when the first identification information of the patch is the second value (for example, 1), the first identification information indicates that a second method (for example, a method M2) is used to determine the tangent axis of the patch and the bitangent axis of the patch.
- the parsing a bitstream to obtain auxiliary information of a to-be-decoded patch in a to-be-decoded point cloud includes:
- the second identification information indicates that there is no reference patch that matches the patch, in the reference point cloud of the patch (for example, a reference patch array), parsing the bitstream to obtain the first identification information of the patch (for example, patchLi st[i] . projection idx), where the first identification information indicates the method for determining the tangent axis of the patch and the bitangent axis of the patch.
- the reference point cloud of the patch for example, a reference patch array
- the first identification information when the first identification information is a third value, the first identification information indicates that a third method (for example, a method M3) is used to determine the tangent axis of the patch and the bitangent axis of the patch, where the third method is different from the first method, and/or is different from the second method.
- a third method for example, a method M3
- the first identification information indicates that the first method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the first method to determine the tangent axis of the patch and the bitangent axis of the patch includes:
- the reference tangent axis is the tangent axis of the patch
- the reference bitangent axis is the bitangent axis of the patch (for example, obtaining an index of the reference tangent axis and an index of the reference bitangent axis that are corresponding to the index of the normal axis of the patch by querying a table based on the index of the normal axis of the patch, where the table includes a mapping relationship between a plurality of patch normal axis indexes, a plurality of patch tangent axis indexes, and a plurality of patch bitangent axis indexes).
- the first identification information indicates that the second method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the second method to determine the tangent axis of the patch and the bitangent axis of the patch includes:
- the reference tangent axis is used as the bitangent axis of the patch (for example, the index of the reference tangent axis is used as the index of the bitangent axis of the patch), and/or the reference bitangent axis is used as the tangent axis of the patch (for example, the index of the reference bitangent axis is used as the index of the tangent axis of the patch).
- the first identification information indicates that the third method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the third method to determine the tangent axis of the patch and the bitangent axis of the patch includes:
- obtaining a reference tangent axis and a reference bitangent axis that are corresponding to the normal axis of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes, and a plurality of patch bitangent axes for example, obtaining an index of the reference tangent axis and an index of the reference bitangent axis that are corresponding to the index of the normal axis of the patch by querying a table based on the index of the normal axis of the patch, where the table includes a mapping relationship between a plurality of patch normal axis indexes, a plurality of patch tangent axis indexes, and a plurality of patch bitangent axis indexes); and
- an embodiment of this application provides another point cloud encoding method, including:
- auxiliary information of a to-be-encoded patch for example, patchLi st[i]
- the auxiliary information of the patch includes X th identification information of the patch (for example, patchList[i].have_matched_patch_flag or patchLi st[i ] . matched _patch_flag), and the X th identification information indicates whether there is any reference patch that matches the patch, in a reference point cloud of the patch;
- the auxiliary information of the patch further includes an index of a normal axis of the patch (for example, patchList[i].normal_axis) and first identification information of the patch (for example, patchList[i] projection idx), and the first identification information indicates a method for determining a tangent axis of the patch and a bitangent axis of the patch (for example, the first identification information indicates a specific method used for determining the tangent axis of the patch and the bitangent axis of the patch).
- the auxiliary information of the patch when the X th identification information (for example, patchList[i].have_matched_patch flag) indicates that there is a reference patch that matches the patch, in the reference point cloud of the patch, the auxiliary information of the patch further includes an index of the reference patch (for example, patchLi st[i ] . matched patch idx), the index of the reference patch is used to obtain first identification information of the reference patch
- the first identification information of the reference patch indicates the method for determining the tangent axis of the patch and the bitangent axis of the patch. It should be noted that the auxiliary information of the patch may not include the index of the normal axis of the patch, and the first identification information of the reference patch
- the X th identification information of the patch (for example, patchLi st[i] . matched _patch_flag) is further used to indicate the index of the reference patch that matches the patch, the X th identification information is used to obtain the first identification information of the reference patch
- the first identification information of the patch indicates whether to swap the tangent axis of the patch and the bitangent axis of the patch.
- the first identification information of the reference patch (ref_patchList[patchList[i].matched_patch_idx].projection_idx) infers or indicates whether to swap the tangent axis of the patch and the bitangent axis of the patch.
- the first identification information of the patch for example, patchLi st[i ] . projection idx
- the first identification information of the reference patch (ref_patchList[patchList[i].matched_patch_idx].projection_idx) is a second value (for example, 1), an index of the tangent axis of the patch and an index of the bitangent axis of the patch are to be swapped.
- the first identification information of the patch for example, patch Li st[i] projection idx
- the first identification information of the reference patch ref_patchList[patchList[i].matched_patch_idx].projection_idx
- the first identification information of the patch or the first identification information of the reference patch indicates that a first method (for example, a method Ml) is used to determine the tangent axis of the patch and the bitangent axis of the patch; and/or when the first identification information of the patch (for example, patchLi st[i ] .
- projection idx) or the first identification information of the reference patch is the second value (for example, 1), the first identification information of the patch or the first identification information of the reference patch indicates that a second method (for example, a method M2)
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Stored Programmes (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Embodiments of this application disclose a point cloud encoding method, a point cloud decoding method, an encoder, and a decoder, relate to the field of encoding/ decoding technologies, and are used to provide technical solutions for effectively encoding and decoding point cloud data. The method may include: obtaining auxiliary information of a to-be-encoded patch in a to-be-encoded point cloud, where the auxiliary information of the patch includes an index of a normal axis of the patch and first identification information of the patch, and the first identification information indicates a method for determining a tangent axis of the patch and a bitangent axis of the patch; and encoding the auxiliary information of the patch into a bitstream.
Description
POINT CLOUD ENCODING METHOD, POINT CLOUD DECODING METHOD, ENCODER AND DECODER
TECHNICAL FIELD
[0001] Embodiments of this application relate to the field of encoding/decoding technologies, and in particular, to a point cloud encoding method, a point cloud decoding method, an encoder, and a decoder.
BACKGROUND
[0002] With continuous development of 3D sensor (for example, 3D scanner) technologies, it is increasingly convenient to collect point cloud data, with an increasing scale of collected point cloud data. Therefore, how point cloud data is effectively encoded and decoded becomes an issue to be urgently resolved.
SUMMARY
[0003] Embodiments of this application provide a point cloud encoding method, a point cloud decoding method, an encoder, and a decoder, to improve point cloud encoding and decoding performance.
[0004] According to a first aspect, an embodiment of this application provides a point cloud encoding method, including:
obtaining auxiliary information of a to-be-encoded patch (for example, patchLi st[i]) in a to-be-encoded point cloud, where the auxiliary information of the patch includes an index of a normal axis (for example, normalAxis) of the patch and first identification information of the patch (for example, patch Li st[i ] . projection idx), and the first identification information indicates a method for determining a tangent axis of the patch
and a bitangent axis of the patch (for example, the first identification information indicates a specific method used for determining the tangent axis of the patch and the bitangent axis of the patch); and
encoding the auxiliary information of the patch into a bitstream.
[0005] In a possible design, the first identification information (for example, patchList[i] projection idx) indicates whether to swap the tangent axis of the patch and the bitangent axis of the patch.
[0006] In a possible design, when the first identification information (for example, patch Li st[i] projection idx) is a first value (for example, 0), an index of the tangent axis of the patch and an index of the bitangent axis of the patch are not to be swapped; and/or when the first identification information (for example, patchLi st[i ] . projection idx) is a second value (for example, 1), an index of the tangent axis of the patch and an index of the bitangent axis of the patch are to be swapped.
[0007] In a possible design, when the first identification information is the first value (for example, 0), the first identification information indicates that a first method (for example, a method Ml) is used to determine the tangent axis of the patch and the bitangent axis of the patch; and/or when the first identification information is the second value (for example, 1), the first identification information indicates that a second method (for example, a method M2) is used to determine the tangent axis of the patch and the bitangent axis of the patch.
[0008] In a possible design, the auxiliary information of the patch further includes second identification information of the patch (patchList[i].have_matched_patch_flag), and the second identification information indicates that there is no reference patch that matches the patch, in a reference point cloud of the patch.
[0009] In a possible design, the obtaining auxiliary information of a to-be-encoded patch in a to-be-encoded point cloud includes:
constructing the second identification information of the patch (patch Li st [i ] . have m atched patch fl ag), where the second identification information indicates whether there is any reference patch (the reference patch may also be referred to as a matched patch) that matches the patch, in the reference point cloud of the patch (for example, a reference patch array); and
when the second identification information indicates that there is no reference patch that matches the patch, in the reference point cloud of the patch (for example, a reference patch array), constructing the first identification information (for example, patchList[i] projection idx), where the first identification information indicates the method for determining the tangent axis of the patch and the bitangent axis of the patch.
[0010] In a possible design, when the first identification information is a third value, the first identification information indicates that a third method (for example, a method M3) is used to determine the tangent axis of the patch and the bitangent axis of the patch, where the third method is different from the first method, and/or is different from the second method.
[0011] In a possible design, the method further includes:
after the tangent axis of the patch and the bitangent axis of the patch are determined, projecting the patch from three-dimensional space onto two-dimensional space based on the tangent axis of the patch and the bitangent axis of the patch.
[0012] In a possible design, the first identification information indicates that the first method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the first method to determine the tangent axis of the patch and the bitangent axis of the patch includes:
obtaining a reference tangent axis and a reference bitangent axis that are corresponding to the normal axis of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes, and a plurality of patch bitangent axes, where the reference tangent axis is the tangent axis of the patch, the reference bitangent axis is the bitangent axis of the patch(for example, querying a table based on the index of the normal axis of the patch to obtain an index of the reference tangent axis and an index of the reference bitangent axis that are corresponding to the index of the normal axis of the patch, where the table includes a mapping relationship between a plurality of patch normal axis indexes, a plurality of patch tangent axis indexes, and a plurality of patch bitangent axis indexes).
[0013] In a possible design, the first identification information indicates that the second method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the second method to determine the tangent axis of the patch
and the bitangent axis of the patch includes:
obtaining a reference tangent axis (for example, an index of the reference tangent axis) and a reference bitangent axis (for example, an index of the reference bitangent axis) that are corresponding to the normal axis (for example, the index of the normal axis) of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes, and a plurality of patch bitangent axes; and
swapping the reference tangent axis and the reference bitangent axis, where the reference tangent axis (for example, the index of the reference tangent axis) is used as the bitangent axis of the patch (for example, the index of the bitangent axis of the patch), and/or the reference bitangent axis (for example, the index of the reference bitangent axis) is used as the tangent axis of the patch (for example, the index of the tangent axis of the patch).
[0014] In a possible design, the first identification information indicates that the third method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the third method to determine the tangent axis of the patch and the bitangent axis of the patch includes:
obtaining a reference tangent axis (for example, an index of the reference tangent axis) and a reference bitangent axis (for example, an index of the reference bitangent axis) that are corresponding to the normal axis (for example, the index of the normal axis) of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes, and a plurality of patch bitangent axes; and
determining the tangent axis of the patch and the bitangent axis of the patch, where an orientation angle of the tangent axis of the patch relative to the reference tangent axis is Q , and an orientation angle of the bitangent axis of the patch relative to the reference bitangent axis is ® .
[0015] According to a second aspect, an embodiment of this application provides a point cloud decoding method, including:
parsing a bitstream to obtain auxiliary information of a to-be-decoded patch (for example, patchLi st[i]) in a to-be-decoded point cloud, where the auxiliary information of the
patch includes an index of a normal axis (for example, normalAxis) of the patch and first identification information of the patch (for example, patchList[i] projection idx), and the first identification information indicates a method for determining a tangent axis of the patch and a bitangent axis of the patch (for example, the first identification information indicates a specific method used for determining the tangent axis of the patch and the bitangent axis of the patch);
determining the tangent axis of the patch and the bitangent axis of the patch based on the index of the normal axis and the first identification information of the patch that are obtained through parsing; and
reconstructing geometry information of the patch based on the tangent axis and the bitangent axis of the patch. In an implementation, the geometry information of the patch is reconstructed based on the normal axis, the tangent axis and the bitangent axis of the patch. The geometric information of the point cloud includes geometric information of a plurality of patches.
[0016] Geometry information of a patch is coordinate values of a point of the patch in a point cloud (for example, each point of the patch in the point cloud) in three-dimensional space.
[0017] Geometry information of a point cloud is coordinate values of a point in the point cloud (for example, each point in the point cloud) in three-dimensional space.
[0018] In a possible design, the determining the tangent axis of the patch and the bitangent axis of the patch based on the index of the normal axis and the first identification information of the patch that are obtained through parsing includes:
determining the tangent axis of the patch and the bitangent axis of the patch based on the index of the normal axis of the patch obtained through parsing, by using the method that is for determining the tangent axis of the patch and the bitangent axis of the patch and that is indicated by the first identification information (for example, patchLi st[i ] . projection idx).
[0019] In a possible design, the first identification information (for example, patchLi st[i ] . projection idx) indicates whether to swap the tangent axis of the patch and the bitangent axis of the patch.
[0020] In a possible design, when the first identification information of the patch (for example, patchList[i] projection idx) is a first value (for example, 0), an index of the tangent axis of the patch and an index of the bitangent axis of the patch are not to be swapped; and/or when the first identification information of the patch (for example, patchList[i] projection idx) is a second value (for example, 1), an index of the tangent axis of the patch and an index of the bitangent axis of the patch are to be swapped.
[0021] In a possible design, when the first identification information of the patch is the first value (for example, 0), the first identification information indicates that a first method (for example, a method Ml) is used to determine the tangent axis of the patch and the bitangent axis of the patch; and/or when the first identification information of the patch is the second value (for example, 1), the first identification information indicates that a second method (for example, a method M2) is used to determine the tangent axis of the patch and the bitangent axis of the patch.
[0022] In a possible design, the auxiliary information of the patch further includes second identification information of the patch (patchList[i].have_matched_patch flag), and the second identification information indicates that there is no reference patch that matches the patch, in a reference point cloud of the patch.
[0023] In a possible design, the parsing a bitstream to obtain auxiliary information of a to-be-decoded patch in a to-be-decoded point cloud includes:
parsing the bitstream to obtain the second identification information of the patch (patchList[i].have_matched_patch flag); and
when the second identification information indicates that there is no reference patch that matches the patch, in the reference point cloud of the patch (for example, a reference patch array), parsing the bitstream to obtain the first identification information of the patch (for example, patchLi st[i] . projection idx), where the first identification information indicates the method for determining the tangent axis of the patch and the bitangent axis of the patch.
[0024] In a possible design, when the first identification information is a third value, the first identification information indicates that a third method (for example, a method M3) is used to determine the tangent axis of the patch and the bitangent axis of the patch, where the
third method is different from the first method, and/or is different from the second method.
[0025] In a possible design, the first identification information indicates that the first method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the first method to determine the tangent axis of the patch and the bitangent axis of the patch includes:
obtaining a reference tangent axis and a reference bitangent axis that are corresponding to the normal axis of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes, and a plurality of patch bitangent axes, where the reference tangent axis is the tangent axis of the patch, the reference bitangent axis is the bitangent axis of the patch (for example, obtaining an index of the reference tangent axis and an index of the reference bitangent axis that are corresponding to the index of the normal axis of the patch by querying a table based on the index of the normal axis of the patch, where the table includes a mapping relationship between a plurality of patch normal axis indexes, a plurality of patch tangent axis indexes, and a plurality of patch bitangent axis indexes).
[0026] In a possible design, the first identification information indicates that the second method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the second method to determine the tangent axis of the patch and the bitangent axis of the patch includes:
obtaining a reference tangent axis (for example, an index of the reference tangent axis) and a reference bitangent axis (for example, an index of the reference bitangent axis) that are corresponding to the normal axis of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes, and a plurality of patch bitangent axes, where the table includes a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes, and a plurality of patch bitangent axes (for example, obtaining an index of the reference tangent axis and an index of the reference bitangent axis that are corresponding to the index of the normal axis of the patch, by querying a table based on the index of the normal axis of the patch, and the table includes a mapping relationship between a plurality of patch normal axis indexes, a plurality of patch tangent axis indexes, and a plurality of patch bitangent axis indexes); and
swapping the reference tangent axis and the reference bitangent axis (for example, swapping the index of the reference tangent axis and the index of the reference bitangent axis), where
the reference tangent axis is used as the bitangent axis of the patch (for example, the index of the reference tangent axis is used as the index of the bitangent axis of the patch), and/or the reference bitangent axis is used as the tangent axis of the patch (for example, the index of the reference bitangent axis is used as the index of the tangent axis of the patch).
[0027] In a possible design, the first identification information indicates that the third method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the third method to determine the tangent axis of the patch and the bitangent axis of the patch includes:
obtaining a reference tangent axis and a reference bitangent axis that are corresponding to the normal axis of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes, and a plurality of patch bitangent axes (for example, obtaining an index of the reference tangent axis and an index of the reference bitangent axis that are corresponding to the index of the normal axis of the patch by querying a table based on the index of the normal axis of the patch, where the table includes a mapping relationship between a plurality of patch normal axis indexes, a plurality of patch tangent axis indexes, and a plurality of patch bitangent axis indexes); and
determining the tangent axis of the patch and the bitangent axis of the patch, where an orientation angle of the tangent axis of the patch relative to the reference tangent axis is Q , and an orientation angle of the bitangent axis of the patch relative to the reference bitangent axis is ® .
[0028] According to a third aspect, an embodiment of this application provides another point cloud encoding method, including:
obtaining auxiliary information of a to-be-encoded patch (for example, patchLi st[i]) in a to-be-encoded point cloud, where the auxiliary information of the patch includes Xth identification information of the patch (for example, patchList[i].have_matched_patch_flag or patchLi st[i ] . matched _patch_flag), and the Xth
identification information indicates whether there is any reference patch that matches the patch, in a reference point cloud of the patch; and
encoding the auxiliary information of the patch into a bitstream.
[0029] In a possible design, when the Xth identification information (for example, patchList[i].have_matched_patch flag) indicates that there is no reference patch that matches the patch, in the reference point cloud of the patch, the auxiliary information of the patch further includes an index of a normal axis of the patch (for example, patchList[i].normal_axis) and first identification information of the patch (for example, patchList[i] projection idx), and the first identification information indicates a method for determining a tangent axis of the patch and a bitangent axis of the patch (for example, the first identification information indicates a specific method used for determining the tangent axis of the patch and the bitangent axis of the patch).
[0030] In a possible design, when the Xth identification information (for example, patchList[i].have_matched_patch flag) indicates that there is a reference patch that matches the patch, in the reference point cloud of the patch, the auxiliary information of the patch further includes an index of the reference patch (for example, patchLi st[i ] . matched patch idx), the index of the reference patch is used to obtain first identification information of the reference patch
(ref patchList[patchList[i] matched _patch_idx].projection_idx), and the first identification information of the reference patch indicates the method for determining the tangent axis of the patch and the bitangent axis of the patch. It should be noted that the auxiliary information of the patch may not include the index of the normal axis of the patch, and the first identification information of the reference patch
(ref_patchList[patchList[i].matched_patch_idx].projection_idx) is used as the first identification information of the patch (patchLi st[i]. projection idx).
[0031] In a possible design, the Xth identification information of the patch (for example, patchLi st[i] . matched _patch_flag) is further used to indicate the index of the reference patch that matches the patch, the Xth identification information is used to obtain the first identification information of the reference patch
(ref patchList[patchList[i] matched _patch_idx].projection_idx), and the first identification
information of the reference patch indicates the method for determining the tangent axis of the patch and the bitangent axis of the patch. The first identification information of the reference patch (ref patchList[patchList[i] matched _patch_idx].projection_idx) is used as the first identification information of the patch (patchList[i] projection idx).
[0032] In a possible design, the first identification information of the patch (for example, patchList[i] projection idx) indicates whether to swap the tangent axis of the patch and the bitangent axis of the patch. The first identification information of the reference patch (ref_patchList[patchList[i].matched_patch_idx].projection_idx) infers or indicates whether to swap the tangent axis of the patch and the bitangent axis of the patch.
[0033] In a possible design, when the first identification information of the patch (for example, patch Li st[i] projection idx) or the first identification information of the reference patch (ref_patchList[patchList[i].matched_patch_idx].projection_idx) is a first value (for example, 0), an index of the tangent axis of the patch and an index of the bitangent axis of the patch are not to be swapped; and/or
when the first identification information of the patch (for example, patchLi st[i ] . projection idx) or the first identification information of the reference patch (ref_patchList[patchList[i].matched_patch_idx].projection_idx) is a second value (for example, 1), an index of the tangent axis of the patch and an index of the bitangent axis of the patch are to be swapped.
[0034] In a possible design, when the first identification information of the patch (for example, patch Li st[i] projection idx) or the first identification information of the reference patch (ref_patchList[patchList[i].matched_patch_idx].projection_idx) is the first value (for example, 0), the first identification information of the patch or the first identification information of the reference patch indicates that a first method (for example, a method Ml) is used to determine the tangent axis of the patch and the bitangent axis of the patch; and/or when the first identification information of the patch (for example, patchLi st[i ] . projection idx) or the first identification information of the reference patch (ref_patchList[patchList[i].matched_patch_idx].projection_idx) is the second value (for example, 1), the first identification information of the patch or the first identification information of the reference patch indicates that a second method (for example, a method M2)
Claims
1. A point cloud encoding method, comprising:
obtaining auxiliary information of a to-be-encoded patch in a to-be-encoded point cloud, wherein the auxiliary information of the patch comprises an index of a normal axis of the patch and first identification information of the patch, wherein the first identification information indicates whether to swap the tangent axis of the patch and the bitangent axis of the patch; and
encoding the auxiliary information of the patch into a bitstream.
2. The method according to claim 1, wherein
when the first identification information is a first value, an index of the tangent axis of the patch and an index of the bitangent axis of the patch are not to be swapped; and/or
when the first identification information is a second value, an index of the tangent axis of the patch and an index of the bitangent axis of the patch are to be swapped.
3. A point cloud encoding method, comprising:
obtaining auxiliary information of a to-be-encoded patch in a to-be-encoded point cloud, wherein the auxiliary information of the patch comprises an index of a normal axis of the patch and first identification information of the patch, and the first identification information indicates a method for determining a tangent axis of the patch and a bitangent axis of the patch; and
encoding the auxiliary information of the patch into a bitstream.
4. The method according toclaim 3, wherein when the first identification information is the first value, the first identification information indicates that a first method is used to determine the tangent axis of the patch and the bitangent axis of the patch; and/or
when the first identification information is the second value, the first identification information indicates that a second method is used to determine the tangent axis of the patch and the bitangent axis of the patch.
5. The method according toclaim 3 or 4, wherein the obtaining auxiliary information of a ill
to-be-encoded patch in a to-be-encoded point cloud comprises:
constructing the second identification information of the patch, wherein the second identification information indicates whether there is any reference patch that matches the patch, in the reference point cloud of the patch; and
when the second identification information indicates that there is no reference patch that matches the patch, in the reference point cloud of the patch, constructing the first identification information, wherein the first identification information indicates the method for determining the tangent axis of the patch and the bitangent axis of the patch.
6. The method according to any one of claims 3 to 5, wherein the method further comprises:
after the tangent axis of the patch and the bitangent axis of the patch are determined, projecting the patch from three-dimensional space onto two-dimensional space based on the tangent axis of the patch and the bitangent axis of the patch.
7. The method according to any one of claims 3 to 6, wherein the first identification information indicates that the first method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the first method to determine the tangent axis of the patch and the bitangent axis of the patch comprises:
obtaining a reference tangent axis and a reference bitangent axis that are corresponding to the normal axis of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes, and a plurality of patch bitangent axes, wherein the reference tangent axis is the tangent axis of the patch, the reference bitangent axis is the bitangent axis of the patch.
8. The method according to any one of claims 3 to 6, wherein the first identification information indicates that the second method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the second method to determine the tangent axis of the patch and the bitangent axis of the patch comprises:
obtaining a reference tangent axis and a reference bitangent axis that are corresponding to the normal axis of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes, and a plurality of patch bitangent axes; and swapping the reference tangent axis and the reference bitangent axis.
9. A point cloud decoding method, comprising:
parsing a bitstream to obtain auxiliary information of a to-be-decoded patch in a to-be-decoded point cloud, wherein the auxiliary information of the patch comprises an index of a normal axis of the patch and first identification information of the patch, and the first identification information indicates whether to swap the tangent axis of the patch and the bitangent axis of the patch.;
determining the tangent axis of the patch and the bitangent axis of the patch based on the index of the normal axis and the first identification information of the patch; and
reconstructing geometry information of the patch based on the normal axis, the tangent axis and the bitangent axis of the patch.
10. The method according to claim 9, wherein
when the first identification information of the patch is a first value, an index of the tangent axis of the patch and an index of the bitangent axis of the patch are not to be swapped; and/or
when the first identification information of the patch is a second value, an index of the tangent axis of the patch and an index of the bitangent axis of the patch are to be swapped.
11. A point cloud decoding method, comprising:
parsing a bitstream to obtain auxiliary information of a to-be-decoded patch in a to-be-decoded point cloud, wherein the auxiliary information of the patch comprises an index of a normal axis of the patch and first identification information of the patch, and the first identification information indicates a method for determining a tangent axis of the patch and a bitangent axis of the patch;
determining the tangent axis of the patch and the bitangent axis of the patch based on the index of the normal axis and the first identification information of the patch that are obtained through parsing; and
reconstructing geometry information of the patch based on the normal axis, the tangent axis and the bitangent axis of the patch.
12. The method according toclaim 11, wherein when the first identification information of the patch is the first value, the first identification information indicates that a first method is used to determine the tangent axis of the patch and the bitangent axis of the patch; and/or
when the first identification information of the patch is the second value, the first identification information indicates that a second method is used to determine the tangent axis of the patch and the bitangent axis of the patch.
13. The method according toclaim 11 or 12, wherein the parsing a bitstream to obtain auxiliary information of a to-be-decoded patch in a to-be-decoded point cloud comprises: parsing the bitstream to obtain the second identification information of the patch; and when the second identification information indicates that there is no reference patch that matches the patch, in the reference point cloud of the patch, parsing the bitstream to obtain the first identification information of the patch, wherein the first identification information indicates the method for determining the tangent axis of the patch and the bitangent axis of the patch.
14. The method according to any one of claims 11 to 13, wherein the first identification information indicates that the first method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the first method to determine the tangent axis of the patch and the bitangent axis of the patch comprises:
obtaining a reference tangent axis and a reference bitangent axis that are corresponding to the normal axis of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes, and a plurality of patch bitangent axes, wherein the reference tangent axis is the tangent axis of the patch, the reference bitangent axis is the bitangent axis of the patch.
15. The method according to any one of claims 11 to 13, wherein the first identification information indicates that the second method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, the using the second method to determine the tangent axis of the patch and the bitangent axis of the patch comprises:
obtaining a reference tangent axis and a reference bitangent axis that are corresponding to the normal axis of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes, and a plurality of patch bitangent axes; and swapping the reference tangent axis and the reference bitangent axis.
16. An encoding apparatus, comprising:
a patch information generation module, configured to obtain auxiliary information of a
to-be-encoded patch in a to-be-encoded point cloud, wherein the auxiliary information of the patch comprises an index of a normal axis of the patch and first identification information of the patch, and the first identification information indicates whether to swap the tangent axis of the patch and the bitangent axis of the patch; and
an auxiliary information encoding module, configured to encode the auxiliary information of the patch into a bitstream.
17. The apparatus according to claim 16, wherein
when the first identification information is a first value, an index of the tangent axis of the patch and an index of the bitangent axis of the patch are not to be swapped; and/or
when the first identification information is a second value, an index of the tangent axis of the patch and an index of the bitangent axis of the patch are to be swapped.
18. An encoding apparatus, comprising:
a patch information generation module, configured to obtain auxiliary information of a to-be-encoded patch in a to-be-encoded point cloud, wherein the auxiliary information of the patch comprises an index of a normal axis of the patch and first identification information of the patch, and the first identification information indicates a method for determining a tangent axis of the patch and a bitangent axis of the patch; and
an auxiliary information encoding module, configured to encode the auxiliary information of the patch into a bitstream.
19. The apparatus according toclaim 18, wherein when the first identification information is the first value, the first identification information indicates that a first method is used to determine the tangent axis of the patch and the bitangent axis of the patch; and/or when the first identification information is the second value, the first identification information indicates that a second method is used to determine the tangent axis of the patch and the bitangent axis of the patch.
20. The apparatus according to claim 18 or 19, wherein the patch information generation module is configured to:
construct the second identification information of the patch, wherein the second identification information indicates whether there is any reference patch that matches the patch, in the reference point cloud of the patch; and
when the second identification information indicates that there is no reference patch that matches the patch, in the reference point cloud of the patch, construct the first identification information, wherein the first identification information indicates the method for determining the tangent axis of the patch and the bitangent axis of the patch.
21. The apparatus according to any one of claims 18 to 20, wherein the patch information generation module is further configured to:
after the tangent axis of the patch and the bitangent axis of the patch are determined, project the patch from three-dimensional space onto two-dimensional space based on the tangent axis of the patch and the bitangent axis of the patch.
22. The apparatus according to any one of claims 18 to 21, wherein the first identification information indicates that the first method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and the patch information generation module is specifically configured to:
obtain a reference tangent axis and a reference bitangent axis that are corresponding to the normal axis of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes and a plurality of patch bitangent axes, wherein the reference tangent axis is the tangent axis of the patch, the reference bitangent axis is the bitangent axis of the patch.
23. The apparatus according to any one of claims 18 to 21, wherein the first identification information indicates that the second method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, and the patch information generation module is specifically configured to:
obtain a reference tangent axis and a reference bitangent axis that are corresponding to the normal axis of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes and a plurality of patch bitangent axes; and swap the reference tangent axis and the reference bitangent axis.
24. A decoding apparatus, comprising:
an auxiliary information decoding module, configured to: parse a bitstream to obtain auxiliary information of a to-be-decoded patch in a to-be-decoded point cloud, wherein the auxiliary information of the patch comprises an index of a normal axis of the patch and first
identification information of the patch, and the first identification information indicates whether to swap the tangent axis of the patch and the bitangent axis of the patch; and determine the tangent axis of the patch and the bitangent axis of the patch based on the index of the normal axis and the first identification information of the patch that are obtained through parsing; and
a point cloud geometry information reconstruction module, configured to reconstruct geometry information of the patch based on the normal axis, the tangent axis and the bitangent axis of the patch.
25. The apparatus according to claim 24, wherein
when the first identification information of the patch is a first value, an index of the tangent axis of the patch and an index of the bitangent axis of the patch are not to be swapped; and/or
when the first identification information of the patch is a second value, an index of the tangent axis of the patch and an index of the bitangent axis of the patch are to be swapped.
26. A decoding apparatus, comprising:
an auxiliary information decoding module, configured to: parse a bitstream to obtain auxiliary information of a to-be-decoded patch in a to-be-decoded point cloud, wherein the auxiliary information of the patch comprises an index of a normal axis of the patch and first identification information of the patch, and the first identification information indicates a method for determining a tangent axis of the patch and a bitangent axis of the patch; and determine the tangent axis of the patch and the bitangent axis of the patch based on the index of the normal axis and the first identification information of the patch that are obtained through parsing; and
a point cloud geometry information reconstruction module, configured to reconstruct geometry information of the patch based on the normal axis, the tangent axis and the bitangent axis of the patch.
27. The apparatus according toclaim 26, wherein when the first identification information of the patch is the first value, the first identification information indicates that a first method is used to determine the tangent axis of the patch and the bitangent axis of the patch; and/or
when the first identification information of the patch is the second value, the first identification information indicates that a second method is used to determine the tangent axis of the patch and the bitangent axis of the patch.
28. The apparatus according toclaim 26 or 27, wherein the auxiliary information decoding module is configured to:
parse the bitstream to obtain the second identification information of the patch; and when the second identification information indicates that there is no reference patch that matches the patch, in the reference point cloud of the patch, parse the bitstream to obtain the first identification information of the patch, wherein the first identification information indicates the method for determining the tangent axis of the patch and the bitangent axis of the patch.
29. The apparatus according to any one of claims 26 to 28, wherein the first identification information indicates that the first method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, and the auxiliary information decoding module is configured to:
obtain a reference tangent axis and a reference bitangent axis that are corresponding to the normal axis of the patch based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes and a plurality of patch bitangent axes, wherein the reference tangent axis is the tangent axis of the patch, the reference bitangent axis is the bitangent axis of the patch.
30. The apparatus according to any one of claims 26 to 28, wherein the first identification information indicates that the second method is used to determine the tangent axis of the patch and the bitangent axis of the patch, and correspondingly, and the auxiliary information decoding module is configured to:
obtain a reference tangent axis and a reference bitangent axis that are corresponding to the normal axis of the patchs based on a mapping relationship between a plurality of patch normal axes, a plurality of patch tangent axes and a plurality of patch bitangent axes; and swap the reference tangent axis and the reference bitangent axis.
31. An encoding apparatus, wherein the apparatus comprises a memory and a processor, the memory is configured to store program code, and the processor is configured to invoke
the program code, to perform the point cloud encoding method according to any one of claims 1 to 8.
32. A decoding apparatus, wherein the apparatus comprises a memory and a processor, the memory is configured to store program code, and the processor is configured to invoke the program code, to perform the point cloud decoding method according to any one of claims 9 to 15.
33. A computer readable storage medium, comprising program code, wherein the program code comprises instructions for performing some or all of steps in the point cloud encoding method according to any one of claims 1 to 8, or performing some or all of steps in the point cloud decoding method according to any one of claims 9 to 15.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862700319P | 2018-07-18 | 2018-07-18 | |
US62/700,319 | 2018-07-18 | ||
US201862700921P | 2018-07-20 | 2018-07-20 | |
US62/700,921 | 2018-07-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020015517A1 true WO2020015517A1 (en) | 2020-01-23 |
Family
ID=69164996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/093972 WO2020015517A1 (en) | 2018-07-18 | 2019-06-29 | Point cloud encoding method, point cloud decoding method, encoder and decoder |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2020015517A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023050951A1 (en) * | 2021-09-30 | 2023-04-06 | Beijing Xiaomi Mobile Software Co., Ltd. | Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010042466A1 (en) * | 2008-10-06 | 2010-04-15 | Kevin Scott Williams | Apparatus and method for classifying point cloud data based on principal axes |
US20120206438A1 (en) * | 2011-02-14 | 2012-08-16 | Fatih Porikli | Method for Representing Objects with Concentric Ring Signature Descriptors for Detecting 3D Objects in Range Images |
CN104715496A (en) * | 2015-03-23 | 2015-06-17 | 中国科学技术大学 | Image prediction method, system and device based on three-dimensional point cloud model under cloud environment |
CN105913488A (en) * | 2016-04-15 | 2016-08-31 | 长安大学 | Three-dimensional-mapping-table-based three-dimensional point cloud rapid reconstruction method |
WO2017209961A1 (en) * | 2016-05-28 | 2017-12-07 | Microsoft Technology Licensing, Llc | Motion-compensated compression of dynamic voxelized point clouds |
-
2019
- 2019-06-29 WO PCT/CN2019/093972 patent/WO2020015517A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010042466A1 (en) * | 2008-10-06 | 2010-04-15 | Kevin Scott Williams | Apparatus and method for classifying point cloud data based on principal axes |
US20120206438A1 (en) * | 2011-02-14 | 2012-08-16 | Fatih Porikli | Method for Representing Objects with Concentric Ring Signature Descriptors for Detecting 3D Objects in Range Images |
CN104715496A (en) * | 2015-03-23 | 2015-06-17 | 中国科学技术大学 | Image prediction method, system and device based on three-dimensional point cloud model under cloud environment |
CN105913488A (en) * | 2016-04-15 | 2016-08-31 | 长安大学 | Three-dimensional-mapping-table-based three-dimensional point cloud rapid reconstruction method |
WO2017209961A1 (en) * | 2016-05-28 | 2017-12-07 | Microsoft Technology Licensing, Llc | Motion-compensated compression of dynamic voxelized point clouds |
Non-Patent Citations (2)
Title |
---|
JILL BOYCE ET AL.: "Spherical rotation orientation SEI for HEVC and AVC coding of 360 video", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, 26TH MEETING, 4 January 2017 (2017-01-04), Geneva, CH, XP030118131 * |
SEJIN OH ET AL.: "SEI message for signaling of 360-degree video information", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC1/SC 29/WG 11, 26TH MEETING, 4 January 2017 (2017-01-04), Geneva, CH, XP030118132 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023050951A1 (en) * | 2021-09-30 | 2023-04-06 | Beijing Xiaomi Mobile Software Co., Ltd. | Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11704837B2 (en) | Point cloud encoding method, point cloud decoding method, encoder, and decoder | |
US20210183110A1 (en) | Point Cloud Encoding Method, Point Cloud Decoding Method, Encoder, and Decoder | |
US11388442B2 (en) | Point cloud encoding method, point cloud decoding method, encoder, and decoder | |
US20190273929A1 (en) | De-Blocking Filtering Method and Terminal | |
US11875538B2 (en) | Point cloud encoding method and encoder | |
US11961265B2 (en) | Point cloud encoding and decoding method and apparatus | |
CN111479114B (en) | Point cloud encoding and decoding method and device | |
KR20240095364A (en) | An apparatus of transmitting point cloud data, a method of transmitting point cloud data, an apparatus of receiving point cloud data, and a method of receiving point cloud data | |
CN111435551B (en) | Point cloud filtering method and device and storage medium | |
US20220007037A1 (en) | Point cloud encoding method and apparatus, point cloud decoding method and apparatus, and storage medium | |
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 | |
US20240153147A1 (en) | V3c syntax extension for mesh compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19837226 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19837226 Country of ref document: EP Kind code of ref document: A1 |