WO2023074673A1 - 符号化装置、復号装置、符号化方法及び復号方法 - Google Patents
符号化装置、復号装置、符号化方法及び復号方法 Download PDFInfo
- Publication number
- WO2023074673A1 WO2023074673A1 PCT/JP2022/039695 JP2022039695W WO2023074673A1 WO 2023074673 A1 WO2023074673 A1 WO 2023074673A1 JP 2022039695 W JP2022039695 W JP 2022039695W WO 2023074673 A1 WO2023074673 A1 WO 2023074673A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- vertex
- triangle
- information
- plane
- information indicating
- Prior art date
Links
- 238000000034 method Methods 0.000 title description 137
- 239000013598 vector Substances 0.000 claims description 84
- 238000010586 diagram Methods 0.000 description 136
- 238000012545 processing Methods 0.000 description 107
- 230000008569 process Effects 0.000 description 46
- 238000009795 derivation Methods 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 15
- 230000006837 decompression Effects 0.000 description 10
- 230000014509 gene expression Effects 0.000 description 10
- 238000013507 mapping Methods 0.000 description 9
- 230000003068 static effect Effects 0.000 description 9
- 230000003044 adaptive effect Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 7
- 238000003672 processing method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 239000003086 colorant Substances 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 102100022595 Broad substrate specificity ATP-binding cassette transporter ABCG2 Human genes 0.000 description 1
- 101000823298 Homo sapiens Broad substrate specificity ATP-binding cassette transporter ABCG2 Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000005389 magnetism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
Definitions
- the present disclosure relates to an encoding device and the like.
- Patent Document 1 proposes a method and apparatus for encoding and decoding 3D mesh data.
- An object of the present disclosure is to improve the encoding process of three-dimensional data and the like.
- An encoding apparatus comprises a memory and a circuit accessible to the memory, the circuit operating in a first triangle that is a triangle in a three-dimensional mesh and a triangle on a first plane.
- First vertex information indicating the position of the first vertex of the triangle
- second vertex information indicating the position of the second vertex of the first triangle
- third vertex information indicating the position of the third vertex of the first triangle
- fourth vertex information that is encoded and indicates the position of the fourth vertex of a second triangle that is a triangle in the three-dimensional mesh, a triangle on a second plane, and a triangle that has the second vertex and the third vertex
- dihedral angle information indicating a dihedral angle formed by the first plane and the second plane
- a virtual triangle on the first plane, the second vertex and the third vertex specific information for specifying the position of the fifth vertex which is the virtual vertex of the third triangle which is the virtual triangle corresponding to the second triangle.
- the present disclosure can contribute to improvements such as encoding processing of three-dimensional data.
- FIG. 1 is a conceptual diagram showing basic elements of a three-dimensional mesh according to an embodiment
- FIG. 4 is a conceptual diagram showing mapping according to the embodiment
- FIG. 1 is a block diagram showing a configuration example of an encoding/decoding system according to an embodiment
- FIG. 1 is a block diagram showing a configuration example of an encoding device according to an embodiment
- FIG. 12 is a block diagram showing another configuration example of the encoding device according to the embodiment
- 1 is a block diagram showing a configuration example of a decoding device according to an embodiment
- FIG. 4 is a conceptual diagram showing an example of a data file of mesh data according to the embodiment;
- FIG. 4 is a conceptual diagram showing types of three-dimensional data according to the embodiment;
- FIG. 1 is a block diagram showing a configuration example of a three-dimensional data encoder according to an embodiment;
- FIG. 1 is a block diagram showing a configuration example of a three-dimensional data decoder according to an embodiment;
- FIG. 11 is a block diagram showing another configuration example of the 3D data encoder according to the embodiment;
- FIG. 4 is a block diagram showing another configuration example of the 3D data decoder according to the embodiment;
- FIG. 4 is a conceptual diagram showing a specific example of encoding processing according to the embodiment;
- FIG. 1 is a block diagram showing a configuration example of a three-dimensional data encoder according to an embodiment
- FIG. 1 is a block diagram showing a configuration example of a three-dimensional data decoder according to an embodiment
- FIG. 11 is a block diagram showing another configuration example
- FIG. 4 is a conceptual diagram showing a specific example of decoding processing according to the embodiment.
- 1 is a block diagram showing an implementation example of an encoding device according to an embodiment
- FIG. 3 is a block diagram showing an implementation example of a decoding device according to an embodiment
- It is a conceptual diagram which shows the parallelogram prediction system which concerns on a reference example.
- FIG. 4 is a conceptual diagram showing a specific example of decoding processing according to the embodiment.
- 1 is a block diagram showing an implementation example of an encoding device according to an embodiment
- FIG. 3 is a block diagram showing an implementation example of a decoding device according to an embodiment
- It is a conceptual diagram which shows the parallelogram prediction system which concerns on a reference example.
- FIG. 4 is a conceptual diagram showing a polynomial prediction method according to a reference example; 6 is a flowchart showing an example of encoding processing according to the first aspect; 6 is a flowchart showing a specific example of encoding processing according to the first aspect; 9 is a flowchart showing another specific example of encoding processing according to the first aspect; It is a conceptual diagram which shows the example of three angles which concern on a 1st aspect. It is a conceptual diagram which shows another example of three angles which concern on a 1st aspect.
- FIG. 11 is a conceptual diagram showing still another example of three angles according to the first aspect;
- FIG. 4 is a syntax diagram showing an example syntax structure of vertex information for a plurality of vertices according to the first mode; FIG.
- FIG. 4 is a syntax diagram showing an example syntax structure of vertex information for one vertex according to the first mode
- FIG. 11 is a syntax diagram showing another syntax structure example of vertex information for one vertex according to the first mode
- FIG. 4 is a table diagram showing an example of a table used for angle prediction
- FIG. 11 is a table diagram showing another example of a table used for angle prediction
- FIG. 4 is a conceptual diagram showing an example of prediction using angles to vertices of previous triangles
- FIG. 4 is a conceptual diagram showing an example of prediction using angles to vertices of a previous 3D mesh
- FIG. 2 is a block diagram showing a configuration example of an encoding device according to a first aspect
- FIG. 6 is a flowchart showing an example of decoding processing according to the first aspect
- 4 is a flowchart showing a specific example of decoding processing according to the first aspect
- FIG. 9 is a flowchart showing another specific example of decoding processing according to the first aspect
- FIG. FIG. 4 is a table diagram showing an example of a lookup table of sine and cosine functions
- FIG. 2 is a block diagram showing a configuration example of a decoding device according to a first aspect
- FIG. 9 is a flowchart showing an example of encoding processing according to the second aspect
- It is a figure which shows the relationship of the vertex, a triangle, and a plane which concern on a 2nd aspect.
- FIG. 11 is a conceptual diagram showing an example of a fourth triangle and a sixth vertex according to the second mode;
- FIG. 11 is a conceptual diagram showing another example of the fourth triangle and sixth vertex according to the second mode;
- FIG. 11 is a conceptual diagram showing yet another example of the fourth triangle and sixth vertex according to the second aspect;
- FIG. 11 is a conceptual diagram showing yet another example of the fourth triangle and sixth vertex according to the second aspect;
- FIG. 11 is a conceptual diagram showing yet another example of the fourth triangle and sixth vertex according to the second aspect;
- FIG. 11 is a conceptual diagram showing yet another example of the fourth triangle and sixth vertex according to the second aspect;
- FIG. 11 is a conceptual diagram showing yet another example of the fourth triangle and sixth vertex according to the second aspect;
- FIG. 11 is a conceptual diagram showing yet another example of the fourth triangle and sixth vertex according to the second aspect;
- FIG. 11 is a conceptual diagram showing yet another example of the fourth triangle and sixth vertex according to the second aspect;
- FIG. 10 is a conceptual diagram showing an example using only dihedral angles and selection parameters according to the second aspect
- FIG. 11 is a conceptual diagram showing an example using dihedral angles, selection parameters, and vectors according to the second aspect
- FIG. 11 is a conceptual diagram showing an example using dihedral angles, selection parameters, and scalar factors according to the second aspect
- FIG. 11 is a syntax diagram showing an example syntax structure of vertex information for a plurality of vertices according to the second mode
- FIG. 11 is a syntax diagram showing an example syntax structure of vertex information for one vertex according to the second mode
- FIG. 11 is a syntax diagram showing another syntax structure example of vertex information for one vertex according to the second mode
- FIG. 11 is a block diagram showing a configuration example of an encoding device according to a second aspect
- FIG. 9 is a flowchart showing an example of decoding processing according to the second aspect
- 9 is a flowchart showing a specific example of decoding processing according to the second aspect
- FIG. 11 is a block diagram showing a configuration example of a decoding device according to a second aspect
- FIG. 6 is a flowchart showing an example of basic encoding processing according to the embodiment
- 4 is a flowchart showing an example of basic decoding processing according to the embodiment
- FIG. 11 is a block diagram showing still another configuration example of the encoding device according to the embodiment
- FIG. 9 is a block diagram showing still another configuration example of the decoding device according to the embodiment;
- a three-dimensional mesh is composed of vertex information indicating the position of each of a plurality of vertices in a three-dimensional space, connection information indicating a connection relationship between the plurality of vertices, and attribute information indicating attributes of each vertex or each face. Each face is constructed according to the connection relationship of multiple vertices.
- Various computer graphics images can be represented by such a three-dimensional mesh.
- the encoding device predicts the position information of the vertex to be encoded using the encoded position information of the vertex, and encodes the difference from the prediction. , to reduce the code amount.
- the encoding apparatus of Example 1 comprises a memory and circuitry accessible to said memory, said circuitry being operable to generate a first triangle that is a triangle in a three-dimensional mesh and a triangle on a first plane. encoding first vertex information indicating the position of the first vertex, second vertex information indicating the position of the second vertex of the first triangle, and third vertex information indicating the position of the third vertex of the first triangle; , as the fourth vertex information indicating the position of the fourth vertex of the second triangle, which is a triangle in the three-dimensional mesh, is a triangle on the second plane and has the second vertex and the third vertex, (i ) dihedral angle information indicating a dihedral angle between the first plane and the second plane; and (ii) a virtual triangle on the first plane and having the second vertex and the third vertex Specific information for specifying the position of the fifth vertex, which is the virtual vertex of the third triangle, which is a triangle and is a virtual triangle corresponding to the
- the encoding device may be able to encode information for specifying the position of the fifth vertex of the third triangle on the first plane using the specific information. Also, since the third triangle on the first plane corresponds to the second triangle on the second plane, the position of the fifth vertex of the third triangle on the first plane, the first plane and the second plane It is assumed that the position of the fourth vertex of the second triangle on the second plane can be identified according to the dihedral angle with . Therefore, the encoding device may be able to encode information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- the encoder may be able to support efficient processing.
- the dihedral angle is assumed to fall within a certain range, such as from -180 degrees to 180 degrees. Therefore, the encoding device may be able to suppress an increase in code amount. That is, the encoding device may be able to efficiently encode information for identifying the position of the fourth vertex.
- the encoding device of example 2 is the encoding device of example 1, and the third triangle is a triangle similar to the second triangle.
- the encoding device may be able to encode information for specifying the position of the fifth vertex of the third triangle similar to the second triangle. Further, according to the similarity relationship between the second triangle and the third triangle, the position of the fifth vertex of the third triangle on the first plane, and the dihedral angle between the first plane and the second plane, the second plane It is assumed that the location of the fourth vertex of the second triangle above can be determined. Therefore, the encoding device may be able to efficiently encode information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- the encoding device of Example 3 is the encoding device of Example 1, and the third triangle is an orthogonal projection of the second triangle onto the first plane.
- the encoding device may be able to encode information for specifying the position of the fifth vertex of the third triangle corresponding to the orthogonal projection of the second triangle onto the first plane. Further, the second It is assumed that the position of the fourth vertex of the second triangle on the plane can be determined. Therefore, the encoding device may be able to efficiently encode information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- the encoding device of Example 4 is the encoding device of any one of Examples 1 to 3, wherein the specific information is from two positions of two vertices of at least one side of the first triangle to the at least It includes information indicating the two angles for specifying the position of the fifth vertex using the two angles for one side.
- the encoding device may be able to encode information for specifying the position of the fifth vertex using two angles. Also, each angle is assumed to fall within a certain range, such as from -180 degrees to 180 degrees. Therefore, the encoding device may be able to suppress an increase in code amount.
- the encoding device of Example 5 is the encoding device of any one of Examples 1 to 3, wherein the specific information is a virtual triangle on the first plane and the second vertex and the third vertex are It includes information indicating a two-dimensional vector between the position of the sixth vertex, which is the virtual vertex of the fourth triangle, which is a virtual triangle similar to the first triangle, and the position of the fifth vertex.
- the encoding device may be able to encode information for specifying the position of the fifth vertex using a two-dimensional vector. It is also assumed that the position of the fifth vertex can be efficiently represented by a two-dimensional vector. Therefore, the encoding device may be able to encode information efficiently indicating the position of the fifth vertex, and may be able to suppress an increase in the amount of code.
- the encoding device of Example 6 is the encoding device of any one of Examples 1 to 3, wherein the specific information is two scalar factors in two unit vectors corresponding to two sides of the first triangle. and information indicative of the two scalar factors for identifying the location of the fifth vertex by multiplying by .
- the encoding device may be able to encode information for specifying the position of the fifth vertex with two scalar factors. It is also assumed that the position of the fifth vertex can be efficiently expressed by two scalar factors. Therefore, the encoding device may be able to encode information efficiently indicating the position of the fifth vertex, and may be able to suppress an increase in the amount of code.
- the encoding device of example 7 is the encoding device of any one of examples 1 to 6, and the specific information includes information indicating the correspondence relationship between the second triangle and the third triangle.
- the encoding device may be able to encode the information indicating the correspondence. Therefore, the encoding device may be able to encode information for identifying the position of the fourth vertex even when the correspondence relationship between the second triangle and the third triangle is adaptively changed. Also, the encoding device may be able to suppress an increase in the code amount by adaptively changing the correspondence between the second triangle and the third triangle.
- the encoding device of Example 8 is the encoding device of Example 5, and the specific information includes information indicating the correspondence relationship between the first triangle and the fourth triangle.
- the encoding device may be able to encode the information indicating the correspondence. Therefore, the encoding device may be able to encode information for identifying the position of the fourth vertex even when the correspondence relationship between the first triangle and the fourth triangle is adaptively changed. Also, the encoding device may be able to suppress an increase in the code amount by adaptively changing the correspondence between the first triangle and the fourth triangle.
- the encoding device of Example 9 is the encoding device of any one of Examples 1 to 3, wherein the specific information is a virtual triangle on the first plane and the second vertex and the third vertex are The position of the sixth vertex, which is a virtual vertex of a fourth triangle, which is a virtual triangle similar to the first triangle, is considered to match the position of the fifth vertex. It includes information indicating at least one of correspondence with a triangle and correspondence between the second triangle and the third triangle.
- the encoding device may be able to encode information for specifying the position of the fifth vertex according to the correspondence relationship. Then, the encoding device may be able to efficiently encode information for specifying the position of the fourth vertex by using the dihedral angle and the correspondence relationship.
- the encoding device of Example 10 is the encoding device of any one of Examples 1 to 3, wherein the circuit selects one or more specific modes in which the dihedral angle information and the specific information are encoded. selecting one mode from a plurality of modes including, encoding mode information indicating the one mode, and when the one mode is included in the one or more specific modes, the dihedral angle information and the Encode specific information.
- the encoding device may be able to adaptively encode dihedral angle information and specific information according to a mode selected from a plurality of modes. In some cases, this allows the encoding device to efficiently encode information for specifying the position of the fourth vertex.
- the encoding device of Example 11 is the encoding device of Example 10, and when the one mode is included in the one or more specific modes, the specific information is of a type determined according to the one mode. contains information about
- the encoding device may be able to encode the type of information corresponding to the mode selected from a plurality of modes. Therefore, the encoding device may be able to efficiently encode information for identifying the position of the fourth vertex according to a mode selected from a plurality of modes.
- the encoding device of Example 12 is the encoding device of Example 11, wherein the one or more specific modes are the first specific mode, the second specific mode, the third specific mode, and the fourth specific mode. and in the first identification mode, from two positions of two vertices of at least one side of the first triangle to the position of the fifth vertex using two angles with respect to the at least one side
- the virtual triangle is a virtual triangle on the first plane and has the second vertex and the third vertex.
- the specific information includes information indicating a two-dimensional vector between the position of a sixth vertex, which is a virtual vertex of a fourth triangle that is a virtual triangle similar to the first triangle, and the position of the fifth vertex;
- multiplying the two unit vectors corresponding to the two sides of the first triangle by the two scalar factors indicates the two scalar factors for identifying the location of the fifth vertex.
- Information indicating a correspondence relationship between the first triangle and the fourth triangle, wherein the identification information includes information, and in the fourth identification mode, the position of the sixth vertex is considered to match the position of the fifth vertex. is included in the specific information.
- the encoding device can efficiently encode information for specifying the position of the fourth vertex according to a mode selected from a plurality of modes including at least one of the four modes.
- the encoding device of Example 13 is the encoding device of any one of Examples 1 to 12, wherein the dihedral angle information includes the dihedral angle and a value predicted from already encoded information.
- the dihedral angle is indicated by the difference of .
- the encoding device may be able to reduce the value indicating the dihedral angle for specifying the position of the fourth vertex. Therefore, this may allow the encoding device to suppress an increase in code amount.
- the encoding device of Example 14 is the encoding device of Example 4 or 12, wherein the information indicating the two angles is obtained from the angle and already encoded information for each of the two angles. The angle is indicated by the difference from the expected value.
- the encoding device may be able to reduce the values indicating each of the two angles for specifying the position of the fifth vertex. Therefore, this may allow the encoding device to suppress an increase in code amount.
- the decoding apparatus of Example 15 comprises a memory and a circuit accessible to said memory, said circuit being operable to generate a first triangle that is a triangle in a three-dimensional mesh and a triangle on a first plane. decoding first vertex information indicating the position of one vertex, second vertex information indicating the position of the second vertex of the first triangle, and third vertex information indicating the position of the third vertex of the first triangle; As the fourth vertex information indicating the position of the fourth vertex of the second triangle, which is a triangle in the three-dimensional mesh, is a triangle on the second plane and has the second vertex and the third vertex, (i) dihedral angle information indicating a dihedral angle between the first plane and the second plane; and (ii) a virtual triangle on the first plane and having the second vertex and the third vertex. and decodes the identification information for identifying the position of the fifth vertex, which is the virtual vertex of the third triangle, which is the virtual triangle corresponding to the second triangle.
- the decoding device may be able to decode information for specifying the position of the fifth vertex of the third triangle on the first plane using the specifying information. Also, since the third triangle on the first plane corresponds to the second triangle on the second plane, the position of the fifth vertex of the third triangle on the first plane, the first plane and the second plane It is assumed that the position of the fourth vertex of the second triangle on the second plane can be identified according to the dihedral angle with . Therefore, the decoding device may be able to decode the information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- the decoding device may be able to support efficient processing.
- the dihedral angle is assumed to fall within a certain range, such as from -180 degrees to 180 degrees. Therefore, the decoding device may be able to suppress an increase in code amount. That is, the decoding device may be able to efficiently decode information for identifying the position of the fourth vertex.
- the decoding device of example 16 is the decoding device of example 15, wherein the third triangle is a triangle similar to the second triangle.
- the decoding device may be able to decode information for identifying the position of the fifth vertex of the third triangle similar to the second triangle. Further, according to the similarity relationship between the second triangle and the third triangle, the position of the fifth vertex of the third triangle on the first plane, and the dihedral angle between the first plane and the second plane, the second plane It is assumed that the location of the fourth vertex of the second triangle above can be determined. Therefore, the decoding device may be able to efficiently decode the information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- the decoding device of example 17 is the decoding device of example 15, wherein the third triangle is an orthogonal projection of the second triangle onto the first plane.
- the decoding device may be able to decode information for specifying the position of the fifth vertex of the third triangle corresponding to the orthogonal projection of the second triangle onto the first plane. Further, the second It is assumed that the position of the fourth vertex of the second triangle on the plane can be determined. Therefore, the decoding device may be able to efficiently decode the information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- the decoding device of Example 18 is the decoding device of any one of Examples 15 to 17, wherein the specific information is from two positions of two vertices of at least one side of the first triangle to the at least one It includes information indicating the two angles for specifying the position of the fifth vertex using the two angles to the edge.
- the decoding device may be able to decode information for specifying the position of the fifth vertex from two angles. Also, each angle is assumed to fall within a certain range, such as from -180 degrees to 180 degrees. Therefore, the decoding device may be able to suppress an increase in code amount.
- the decoding device of Example 19 is the decoding device of any one of Examples 15 to 17, wherein the specific information is a virtual triangle on the first plane and has the second vertex and the third vertex. It includes information indicating a two-dimensional vector between the position of the sixth vertex, which is the virtual vertex of the fourth triangle, which is a triangle and is a virtual triangle similar to the first triangle, and the position of the fifth vertex.
- the decoding device may be able to decode the information for specifying the position of the fifth vertex using the two-dimensional vector. It is also assumed that the position of the fifth vertex can be efficiently represented by a two-dimensional vector. Therefore, the decoding device may be able to decode information efficiently indicating the position of the fifth vertex, and may be able to suppress an increase in the amount of code.
- the decoding device of Example 20 is the decoding device of any one of Examples 15 to 18, wherein the specific information is two unit vectors corresponding to two sides of the first triangle multiplied by two scalar factors. and information indicative of the two scalar factors for identifying the location of the fifth vertex by .
- the decoding device may be able to decode the information for specifying the position of the fifth vertex using two scalar factors. It is also assumed that the position of the fifth vertex can be efficiently expressed by two scalar factors. Therefore, the decoding device may be able to decode information efficiently indicating the position of the fifth vertex, and may be able to suppress an increase in the amount of code.
- the decoding device of Example 21 is the decoding device of any one of Examples 15 to 20, wherein the specific information includes information indicating the correspondence relationship between the second triangle and the third triangle.
- the decoding device may be able to decode the information indicating the correspondence. Therefore, even if the correspondence relationship between the second triangle and the third triangle is adaptively changed, the decoding device may be able to decode the information for specifying the position of the fourth vertex. Also, the decoding device may be able to suppress an increase in the code amount by adaptively changing the correspondence between the second triangle and the third triangle.
- the decoding device of Example 22 is the decoding device of Example 19, and the specific information includes information indicating the correspondence relationship between the first triangle and the fourth triangle.
- the decoding device may be able to decode the information indicating the correspondence. Therefore, even if the correspondence relationship between the first triangle and the fourth triangle is adaptively changed, the decoding device may be able to decode the information for identifying the position of the fourth vertex. Also, the decoding device may be able to suppress an increase in the code amount by adaptively changing the correspondence between the first triangle and the fourth triangle.
- the decoding device of Example 23 is the decoding device of any one of Examples 15 to 17, wherein the specific information is a virtual triangle on the first plane and has the second vertex and the third vertex.
- the first triangle and the fourth triangle wherein the position of the sixth vertex, which is a virtual vertex of the fourth triangle, which is a triangle and is a virtual triangle similar to the first triangle, is considered to match the position of the fifth vertex. and information indicating at least one of the correspondence between the second triangle and the third triangle.
- the decoding device may be able to decode the information for specifying the position of the fifth vertex depending on the correspondence. Then, the decoding device may be able to efficiently decode the information for specifying the position of the fourth vertex by the dihedral angle and the correspondence relationship.
- the decoding device of Example 24 is the decoding device of any one of Examples 15 to 17, wherein the circuit comprises a plurality of specific modes including one or more specific modes in which the dihedral angle information and the specific information are decoded. Select one mode from among the modes, decode mode information indicating the one mode, and if the one mode is included in the one or more specific modes, the dihedral angle information and the specific information Decrypt.
- the decoding device may be able to adaptively decode the dihedral angle information and the specific information according to a mode selected from a plurality of modes. Then, as a result, the decoding device may be able to efficiently decode the information for specifying the position of the fourth vertex.
- the decoding device of Example 25 is the decoding device of Example 24, and when the one mode is included in the one or more specific modes, the specific information is the type of information determined according to the one mode. including.
- the decoding device may be able to decode the type of information corresponding to the mode selected from a plurality of modes. Therefore, the decoding device may be able to efficiently decode the information for specifying the position of the fourth vertex according to the mode selected from the multiple modes.
- the decoding device of Example 26 is the decoding device of Example 25, wherein the one or more specific modes are at least one of a first specific mode, a second specific mode, a third specific mode, and a fourth specific mode.
- the first identification mode from two positions of two vertices of at least one side of said first triangle, using two angles to said at least one side, to identify the position of said fifth vertex;
- the specific information includes information indicating the two angles for the second specific mode, and in the second specific mode, the virtual triangle is a virtual triangle on the first plane and has the second vertex and the third vertex, and the The specific information includes information indicating a two-dimensional vector between a position of a sixth vertex, which is a virtual vertex of a fourth triangle, which is a virtual triangle similar to the first triangle, and a position of the fifth vertex, and
- the 3-specify mode information indicative of the two scalar factors for specifying the location of the fifth vertex by multiplying the two unit vectors corresponding to the two sides of the first
- the decoding device may be able to efficiently decode the information for specifying the position of the fourth vertex according to the mode selected from a plurality of modes including at least one of the four modes. be.
- the decoding device of Example 27 is the decoding device of any one of Examples 15 to 26, wherein the dihedral angle information is obtained by the difference between the dihedral angle and a value predicted from already decoded information. , indicates the dihedral angle.
- the decoding device may be able to reduce the value indicating the dihedral angle for specifying the position of the fourth vertex. Therefore, this may allow the decoding device to suppress an increase in the code amount.
- the decoding device of Example 28 is the decoding device of Examples 18 or 26, wherein the information indicating the two angles is predicted from the angles and information already decoded for each of the two angles. The angle is indicated by the difference between the values.
- the decoding device may be able to reduce the values indicating each of the two angles for specifying the position of the fifth vertex. Therefore, this may allow the decoding device to suppress an increase in the code amount.
- the encoding method of Example 29 includes first vertex information indicating the position of the first vertex of the first triangle, which is a triangle in the three-dimensional mesh and is a triangle on the first plane, the position of the second vertex of the first triangle, Encoding second vertex information indicating a position and third vertex information indicating a position of a third vertex of the first triangle, a triangle in the three-dimensional mesh and a triangle on the second plane and the second vertex and as fourth vertex information indicating the position of the fourth vertex of the second triangle, which is a triangle having the third vertex, (i) a dihedral angle indicating the dihedral angle formed by the first plane and the second plane and (ii) virtual vertices of a third triangle, which is a virtual triangle on the first plane and has the second vertex and the third vertex and is a virtual triangle corresponding to the second triangle.
- Specifying information for specifying the position of a certain fifth vertex is encoded.
- the identification information may encode information for identifying the position of the fifth vertex of the third triangle on the first plane. Also, since the third triangle on the first plane corresponds to the second triangle on the second plane, the position of the fifth vertex of the third triangle on the first plane, the first plane and the second plane It is assumed that the position of the fourth vertex of the second triangle on the second plane can be identified according to the dihedral angle with . Therefore, the dihedral angle information and the identification information may enable encoding of information for identifying the position of the fourth vertex.
- the fifth vertex is a virtual vertex on the first plane, it is assumed that it is relatively easy to locate the fifth vertex according to the first triangle on the first plane. Therefore, it may be possible to support efficient processing. Also, the dihedral angle is assumed to fall within a certain range, such as from -180 degrees to 180 degrees. Therefore, it may be possible to suppress an increase in code amount. That is, it may be possible to efficiently encode information for specifying the position of the fourth vertex.
- the decoding method of Example 30 includes first vertex information indicating the position of the first vertex of a first triangle that is a triangle in a three-dimensional mesh and a triangle on the first plane, the position of the second vertex of the first triangle and the third vertex information indicating the position of the third vertex of the first triangle, the triangle in the three-dimensional mesh, the triangle on the second plane, the second vertex and As the fourth vertex information indicating the position of the fourth vertex of the second triangle which is the triangle having the third vertex, (i) dihedral angle information indicating the dihedral angle formed by the first plane and the second plane; and (ii) virtual vertices of a third triangle that is a virtual triangle on the first plane and that has the second vertex and the third vertex and is a virtual triangle corresponding to the second triangle. Decode the identification information for identifying the position of the fifth vertex.
- the dihedral angle information and the identification information may enable decoding of information for identifying the position of the fourth vertex.
- the fifth vertex is a virtual vertex on the first plane, it is assumed that it is relatively easy to locate the fifth vertex according to the first triangle on the first plane. Therefore, it may be possible to support efficient processing. Also, the dihedral angle is assumed to fall within a certain range, such as from -180 degrees to 180 degrees. Therefore, it may be possible to suppress an increase in code amount. That is, it may be possible to efficiently decode the information for specifying the position of the fourth vertex.
- a three-dimensional mesh is a collection of multiple surfaces and represents, for example, a three-dimensional object.
- a three-dimensional mesh is mainly composed of vertex information, connection information and attribute information.
- a three-dimensional mesh may be expressed as a polygon mesh or a mesh. Also, the three-dimensional mesh may have temporal changes.
- a three-dimensional mesh may contain metadata relating to vertex information, connection information and attribute information, and may contain other additional information.
- Vertex information is information indicating a vertex.
- vertex information indicates the position of a vertex in three-dimensional space.
- the vertices correspond to the vertices of the faces forming the three-dimensional mesh.
- Vertex information may be expressed as "Geometry”.
- Vertex information may also be expressed as position information.
- Connection Information is information indicating connections between vertices.
- the connection information indicates connections for constructing faces or sides of the three-dimensional mesh.
- the connection information may be expressed as "Connectivity”.
- Connection information may also be expressed as plane information.
- Attribute information is information indicating attributes of vertices or faces.
- the attribute information indicates attributes such as colors, images, and normal vectors associated with vertices or faces. Attribute information may be expressed as "texture”.
- Face A face is an element that constitutes a three-dimensional mesh. Specifically, a face is a polygon on a plane in three-dimensional space. For example, a plane can be defined as a triangle in three-dimensional space.
- Plane A plane is a two-dimensional plane in three-dimensional space.
- a polygon is formed on a plane and a plurality of polygons are formed on a plurality of planes.
- Bitstream corresponds to encoded information.
- a bitstream may also be referred to as a stream, an encoded bitstream, a compressed bitstream, or an encoded signal.
- Encoding and Decoding The expression to encode may be replaced by expressions such as store, include, write, describe, signal, send, signal, save, or compress, These expressions may be replaced with each other.
- encoding the information may be including the information in a bitstream.
- encoding information into a bitstream may mean encoding the information to produce a bitstream containing the encoded information.
- the expression to decode may be replaced by expressions such as read, decipher, read, read, derive, obtain, receive, extract, restore, reconstruct, decompress, decompress, etc.
- these expressions may be replaced with each other.
- decoding information may be obtaining information from a bitstream.
- decoding information from a bitstream may mean decoding the bitstream to obtain information contained in the bitstream.
- ordinal numbers such as first and second may be attached to components and the like. These ordinal numbers may be replaced as appropriate. Moreover, ordinal numbers may be newly given to the components and the like, or may be removed. Also, these ordinal numbers may be attached to the elements to identify them and may not correspond to a meaningful order.
- FIG. 1 is a conceptual diagram showing a three-dimensional mesh according to this embodiment.
- a three-dimensional mesh is composed of multiple faces. For example, each face is a triangle. The vertices of these triangles are defined in three-dimensional space.
- a 3D mesh then represents a 3D object. Each side may have a color or an image.
- FIG. 2 is a conceptual diagram showing the basic elements of the three-dimensional mesh according to this embodiment.
- a three-dimensional mesh is composed of vertex information, connection information and attribute information.
- the vertex information indicates the position of the vertex of the surface in the three-dimensional space.
- the connection information indicates connections between vertices.
- a face can be identified by vertex information and connection information. That is, the vertex information and the connection information form a three-dimensional object with no color in the three-dimensional space.
- Attribute information may be associated with vertices or may be associated with faces. Attribute information associated with a vertex may be expressed as "Attribute Per Point". The attribute information associated with a vertex may indicate the attribute of the vertex itself, or may indicate the attribute of a face connected to the vertex.
- colors may be associated with vertices as attribute information.
- the color associated with a vertex may be the color of the vertex or the color of a face connected to the vertex.
- the face color may be the average of the colors associated with the vertices of the face.
- normal vectors may be associated with vertices or faces as attribute information. Such normal vectors can represent the front and back of the face.
- a two-dimensional image may be associated with the surface as attribute information.
- a two-dimensional image associated with a surface is also expressed as a texture image or an "Attribute Map".
- information indicating the mapping between the surface and the two-dimensional image may be associated with the surface as attribute information. Information indicating such mapping may be expressed as mapping information, texture image vertex information, or "Attribute UV Coordinate".
- information such as colors, images, and moving images used as attribute information may be expressed as "Parametric Space".
- the texture can be reflected on the three-dimensional object. That is, a three-dimensional object having color is formed in a three-dimensional space by vertex information, connection information, and attribute information.
- attribute information is associated with vertices or faces in the above description, it may be associated with edges.
- FIG. 3 is a conceptual diagram showing mapping according to this embodiment. For example, a region of a 2D image in a 2D plane can be mapped to a surface of a 3D mesh in 3D space. Specifically, the coordinate information of the area in the two-dimensional image is associated with the surface of the three-dimensional mesh. As a result, the image of the area mapped in the two-dimensional image is reflected on the surface of the three-dimensional mesh.
- mapping By using mapping, the 2D image used as attribute information can be separated from the 3D mesh.
- a 2D image may be coded by an image coding method or a video coding method.
- FIG. 4 is a block diagram showing a configuration example of an encoding/decoding system according to this embodiment.
- the coding/decoding system includes coding device 100 and decoding device 200 .
- the encoding device 100 acquires a 3D mesh and encodes the 3D mesh into a bitstream.
- the encoding device 100 then outputs the bitstream to the network 300 .
- the bitstream includes an encoded 3D mesh and control information for decoding the encoded 3D mesh.
- the information of the 3D mesh is compressed.
- the network 300 transmits the bitstream from the encoding device 100 to the decoding device 200.
- Network 300 may be the Internet, a Wide Area Network (WAN), a Local Area Network (LAN), or a combination thereof.
- the network 300 is not limited to two-way communication, and may be a one-way communication network for terrestrial digital broadcasting, satellite broadcasting, or the like.
- the network 300 can be replaced by a recording medium such as a DVD (Digital Versatile Disc) or a BD (Blu-Ray Disc (registered trademark)).
- a recording medium such as a DVD (Digital Versatile Disc) or a BD (Blu-Ray Disc (registered trademark)).
- the decoding device 200 acquires the bitstream and decodes the 3D mesh from the bitstream. Decoding the 3D mesh expands the information of the 3D mesh. For example, the decoding device 200 decodes the 3D mesh according to a decoding method corresponding to the encoding method used by the encoding device 100 to encode the 3D mesh. That is, the encoding device 100 and the decoding device 200 perform encoding and decoding according to corresponding encoding and decoding methods.
- the three-dimensional mesh before encoding can also be expressed as the original three-dimensional mesh.
- the three-dimensional mesh after decoding is also expressed as a reconstructed three-dimensional mesh.
- FIG. 5 is a block diagram showing a configuration example of encoding apparatus 100 according to this embodiment.
- the encoding device 100 includes a vertex information encoder 101 , a connection information encoder 102 and an attribute information encoder 103 .
- the vertex information encoder 101 is an electric circuit that encodes vertex information.
- the vertex information encoder 101 encodes vertex information into a bitstream according to a format defined for vertex information.
- connection information encoder 102 is an electric circuit that encodes connection information. For example, the connection information encoder 102 encodes the connection information into a bitstream according to a specified format for the connection information.
- the attribute information encoder 103 is an electric circuit that encodes attribute information. For example, the attribute information encoder 103 encodes the attribute information into a bitstream according to the format defined for the attribute information.
- Variable-length coding or fixed-length coding may be used to encode vertex information, connection information, and attribute information.
- Variable-length coding may correspond to Huffman coding, context-adaptive binary arithmetic coding (CABAC), or the like.
- the vertex information encoder 101, connection information encoder 102 and attribute information encoder 103 may be integrated. Alternatively, each of the vertex information encoder 101, the connection information encoder 102, and the attribute information encoder 103 may be further subdivided into a plurality of components.
- FIG. 6 is a block diagram showing another configuration example of encoding apparatus 100 according to the present embodiment.
- encoding apparatus 100 includes pre-processor 104 and post-processor 105 in addition to the configuration shown in FIG.
- the preprocessor 104 is an electrical circuit that performs processing before encoding vertex information, connection information, and attribute information.
- the preprocessor 104 may perform transform processing, separation processing, multiplexing processing, or the like on the three-dimensional mesh before encoding. More specifically, for example, the preprocessor 104 may separate vertex information, connection information, and attribute information from the 3D mesh before encoding.
- the post-processor 105 is an electrical circuit that performs processing after encoding vertex information, connection information, and attribute information.
- the post-processor 105 may perform conversion processing, separation processing, multiplexing processing, or the like on the encoded vertex information, connection information, and attribute information. More specifically, for example, the post-processor 105 may multiplex encoded vertex information, connection information, and attribute information into a bitstream. Also, for example, the post-processor 105 may further perform variable-length encoding on the encoded vertex information, connection information, and attribute information.
- FIG. 7 is a block diagram showing a configuration example of decoding apparatus 200 according to this embodiment.
- the decoding device 200 includes a vertex information decoder 201 , a connection information decoder 202 and an attribute information decoder 203 .
- the vertex information decoder 201 is an electric circuit that decodes vertex information. For example, the vertex information decoder 201 decodes the vertex information from the bitstream according to the format specified for the vertex information.
- connection information decoder 202 is an electric circuit that decodes connection information. For example, the connection information decoder 202 decodes the connection information from the bitstream according to a prescribed format for the connection information.
- the attribute information decoder 203 is an electric circuit that decodes attribute information. For example, the attribute information decoder 203 decodes the attribute information from the bitstream according to the format specified for the attribute information.
- Variable-length decoding or fixed-length decoding may be used to decode vertex information, connection information, and attribute information.
- Variable-length decoding may correspond to Huffman coding, context-adaptive binary arithmetic coding (CABAC), or the like.
- the vertex information decoder 201, connection information decoder 202 and attribute information decoder 203 may be integrated. Alternatively, each of the vertex information decoder 201, the connection information decoder 202, and the attribute information decoder 203 may be further subdivided into a plurality of components.
- FIG. 8 is a block diagram showing another configuration example of the decoding device 200 according to this embodiment.
- decoding device 200 includes pre-processor 204 and post-processor 205 in addition to the configuration shown in FIG.
- the preprocessor 204 is an electrical circuit that performs processing before decoding vertex information, connection information, and attribute information.
- the preprocessor 204 may perform transformation processing, separation processing, multiplexing processing, or the like on the bitstream before decoding the vertex information, connection information, and attribute information.
- the preprocessor 204 separates a sub-bitstream corresponding to vertex information, a sub-bitstream corresponding to connection information, and a sub-bitstream corresponding to attribute information from the bitstream. good too. Also, for example, the pre-processor 204 may perform variable length decoding on the bitstream in advance prior to decoding the vertex information, connection information and attribute information.
- the post-processor 205 is an electric circuit that performs processing after decoding vertex information, connection information, and attribute information.
- the post-processor 205 may perform conversion processing, separation processing, multiplexing processing, or the like on the decoded vertex information, connection information, and attribute information. More specifically, for example, the post-processor 205 may multiplex vertex information, connection information, and attribute information after decoding into a three-dimensional mesh.
- Vertex information connection information and attribute information are encoded and stored in the bitstream.
- connection information and attribute information are encoded and stored in the bitstream. The relationship between these pieces of information and bitstreams is shown below.
- FIG. 9 is a conceptual diagram showing a configuration example of a bitstream according to this embodiment.
- vertex information, connection information and attribute information are integrated in the bitstream.
- vertex information, connection information and attribute information may be contained in one file.
- the first part of the vertex information, the first part of the connection information, the first part of the attribute information, the second part of the vertex information, the second part of the connection information, the second part of the attribute information, and so on. , multiple pieces of this information may be stored sequentially. These multiple parts may correspond to multiple temporally different parts, may correspond to spatially different multiple parts, or may correspond to multiple different planes. .
- vertex information, connection information, and attribute information are stored is not limited to the above example, and a storage order different from the above example may be used.
- FIG. 10 is a conceptual diagram showing another configuration example of the bitstream according to this embodiment.
- multiple files are included in the bitstream, with vertex information, connection information, and attribute information stored in different files.
- a file containing vertex information, a file containing connection information, and a file containing attribute information are shown here, the storage format is not limited to such an example.
- two types of information among vertex information, connection information, and attribute information may be included in one file, and the remaining one type of information may be included in another file.
- this information may be divided and stored in more files.
- multiple pieces of vertex information may be stored in multiple files
- multiple pieces of connection information may be stored in multiple files
- multiple pieces of attribute information may be stored in multiple files.
- These multiple parts may correspond to multiple temporally different parts, may correspond to spatially different multiple parts, or may correspond to multiple different planes. .
- vertex information, connection information, and attribute information are stored is not limited to the above example, and a storage order different from the above example may be used.
- FIG. 11 is a conceptual diagram showing another configuration example of the bitstream according to this embodiment.
- a bitstream is composed of a plurality of separable sub-bitstreams, and vertex information, connection information and attribute information are stored in different sub-bitstreams.
- the storage format is not limited to this example.
- two types of information among vertex information, connection information, and attribute information may be included in one sub-bitstream, and the remaining one type of information may be included in another sub-bitstream.
- attribute information such as a two-dimensional image may be stored in a sub-bitstream conforming to the image coding method, separately from the sub-bitstream of vertex information and connection information.
- each sub-bitstream may contain multiple files.
- a plurality of portions of the vertex information may be stored in a plurality of files
- a plurality of portions of the connection information may be stored in a plurality of files
- a plurality of portions of the attribute information may be stored in a plurality of files.
- FIG. 12 is a block diagram showing a specific example of the encoding/decoding system according to this embodiment.
- the encoding/decoding system comprises a 3D data encoding system 110, a 3D data decoding system 210 and an external connector 310.
- FIG. 12 is a block diagram showing a specific example of the encoding/decoding system according to this embodiment.
- the encoding/decoding system comprises a 3D data encoding system 110, a 3D data decoding system 210 and an external connector 310.
- FIG. 12 is a block diagram showing a specific example of the encoding/decoding system according to this embodiment.
- the encoding/decoding system comprises a 3D data encoding system 110, a 3D data decoding system 210 and an external connector 310.
- FIG. 12 is a block diagram showing a specific example of the encoding/decoding system according to this embodiment.
- the encoding/decoding system comprises a 3D data encoding system 110,
- the 3D data encoding system 110 includes a controller 111, an input/output processor 112, a 3D data encoder 113, a 3D data generator 115, and a system multiplexer 114.
- the 3D data decoding system 210 comprises a controller 211 , an input/output processor 212 , a 3D data decoder 213 , a system demultiplexer 214 , a presenter 215 and a user interface 216 .
- sensor data is input from the sensor terminal to the three-dimensional data generator 115.
- the 3D data generator 115 generates 3D data such as point cloud data or mesh data from the sensor data, and inputs the 3D data to the 3D data encoder 113 .
- the three-dimensional data generator 115 generates vertex information, and generates connection information and attribute information corresponding to the vertex information.
- the three-dimensional data generator 115 may process vertex information when generating connection information and attribute information.
- the 3D data generator 115 may reduce the amount of data by deleting duplicate vertices, or may transform (position shift, rotate, normalize, etc.) vertex information.
- the 3D data generator 115 may also render attribute information.
- the 3D data generator 115 is a component of the 3D data encoding system 110 in FIG.
- a sensor terminal that provides sensor data for generating three-dimensional data may be, for example, a mobile object such as an automobile, a flying object such as an airplane, a mobile terminal, or a camera. Also, a LIDAR, a millimeter wave radar, an infrared sensor, a distance sensor such as a range finder, a stereo camera, a combination of a plurality of monocular cameras, or the like may be used as the sensor terminal.
- Sensor data includes object distance (position), monocular camera image, stereo camera image, color, reflectance, sensor orientation, orientation, gyro, sensing position (GPS information or altitude), speed, acceleration, sensing time, temperature , air pressure, humidity, or magnetism.
- the three-dimensional data encoder 113 corresponds to the encoding device 100 shown in FIG. 5 and the like.
- the 3D data encoder 113 encodes 3D data to generate encoded data.
- the 3D data encoder 113 also generates control information in encoding the 3D data.
- the three-dimensional data encoder 113 then inputs the encoded data to the system multiplexer 114 together with the control information.
- the encoding method for 3D data may be an encoding method using geometry or an encoding method using a video codec.
- Encoding schemes that use geometry may also be referred to herein as geometry-based encoding schemes.
- An encoding scheme using a video codec is also expressed as a video-based encoding scheme.
- the system multiplexer 114 multiplexes the encoded data and control information input from the three-dimensional data encoder 113, and generates multiplexed data using a prescribed multiplexing method.
- the system multiplexer 114 may multiplex other media such as video, audio, subtitles, application data or document files, reference time information, etc., together with the encoded data and control information of the three-dimensional data. Further, system multiplexer 114 may multiplex attribute information associated with sensor data or three-dimensional data.
- multiplexed data has a file format for storage or a packet format for transmission.
- ISOBMFF or an ISOBMFF-based method may be used.
- MPEG-DASH, MMT, MPEG-2 TS Systems, or RTP may be used.
- the multiplexed data is then output by the input/output processor 112 to the external connector 310 as a transmission signal.
- the multiplexed data may be transmitted by wire or wirelessly as a transmission signal.
- the multiplexed data is stored in internal memory or storage.
- the multiplexed data may be transmitted to the cloud server via the Internet, or may be stored in an external storage device.
- transmission or storage of multiplexed data is performed by a method according to the medium for transmission or storage, such as broadcasting or communication.
- Communication protocols such as http, ftp, TCP, UDP, IP, or combinations thereof may be used.
- a PULL-type communication method may be used, or a PUSH-type communication method may be used.
- Ethernet registered trademark
- USB registered trademark
- RS-232C HDMI (registered trademark), coaxial cable, or the like
- 3GPP registered trademark
- 3G/4G/5G defined by IEEE wireless LAN, Wi-Fi, Bluetooth, or millimeter waves
- wireless LAN wireless local area network
- Wi-Fi wireless local area network
- Bluetooth wireless personal area network
- millimeter waves may be used for wireless transmission.
- DVB-T2, DVB-S2, DVB-C2, ATSC3.0, or ISDB-S3, for example, may be used as the broadcasting system.
- the sensor data may be input to the three-dimensional data generator 115 or the system multiplexer 114. Also, three-dimensional data or encoded data may be directly output as a transmission signal to the external connector 310 via the input/output processor 112 . A transmission signal output from the 3D data encoding system 110 is input to the 3D data decoding system 210 via the external connector 310 .
- each operation of the 3D data encoding system 110 may be controlled by the controller 111 executing an application program.
- a transmission signal is input to the input/output processor 212 .
- Input/output processor 212 decodes multiplexed data in file format or packet format from the transmission signal and inputs the multiplexed data to system demultiplexer 214 .
- the system demultiplexer 214 obtains encoded data and control information from the multiplexed data and inputs them to the 3D data decoder 213 .
- the system demultiplexer 214 may extract other media or reference time information from the multiplexed data.
- the three-dimensional data decoder 213 corresponds to the decoding device 200 shown in FIG. 7 and the like.
- the 3D data decoder 213 decodes 3D data from the encoded data based on a predefined encoding scheme.
- the three-dimensional data is then presented to the user by presenter 215 .
- additional information such as sensor data may be input to the presenter 215 .
- the presenter 215 may present the 3D data based on the additional information.
- a user's instruction may be input from the user terminal to the user interface 216 . Then, the presenter 215 may present three-dimensional data based on the input instructions.
- the input/output processor 212 may acquire three-dimensional data and encoded data from the external connector 310 .
- each operation of the 3D data decoding system 210 may be controlled by the controller 211 executing an application program.
- FIG. 13 is a conceptual diagram showing a configuration example of point cloud data according to this embodiment.
- the point cloud data is point cloud data representing a three-dimensional object.
- a point cloud is composed of a plurality of points, and has position information indicating the three-dimensional coordinate position of each point and attribute information indicating the attribute of each point. .
- Position information is also expressed as geometry.
- the type of attribute information may be, for example, color or reflectance.
- One point may be associated with attribute information on one type, one point may be associated with attribute information on a plurality of different types, or one point may be associated with attribute information on the same type may be associated with attribute information having multiple values.
- FIG. 14 is a conceptual diagram showing a data file example of point cloud data according to this embodiment.
- the position information is information indicating a three-dimensional coordinate position on three axes of x, y, and z
- the attribute information is information indicating a color in RGB.
- a PLY file or the like can be used as a representative data file of the point cloud data.
- FIG. 15 is a conceptual diagram showing a configuration example of mesh data according to this embodiment.
- Mesh data is data used for CG (Computer Graphics) and the like, and is three-dimensional mesh data that indicates the three-dimensional shape of an object in a plurality of planes. Each face is also expressed as a polygon and has a polygonal shape such as a triangle or a quadrangle.
- a three-dimensional mesh is composed of a plurality of points that form a point group, as well as a plurality of edges and a plurality of faces.
- Each point is also expressed as a vertex (Vertex) or a position (Position).
- Each side corresponds to a line segment connected by two vertices.
- Each face corresponds to an area bounded by three or more sides.
- the 3D mesh has position information indicating the 3D coordinate positions of vertices. Position information is also expressed as vertex information or geometry.
- a three-dimensional mesh also has connection information that indicates the relationship between a plurality of vertices forming sides or faces. The connection information is also expressed as connectivity.
- a three-dimensional mesh also has attribute information indicating attributes of vertices, edges, or faces. Attribute information in a three-dimensional mesh is also expressed as texture.
- attribute information may indicate the color, reflectance, or normal vector for a vertex, edge, or face.
- the orientation of the normal vector can represent the front and back of the face.
- An object file or the like may be used as the data file format for mesh data.
- FIG. 16 is a conceptual diagram showing a data file example of mesh data according to this embodiment.
- the data file contains position information G(1) to G(N) of N vertices forming a three-dimensional mesh and attribute information A1(1) to A1(N) of N vertices. is included. Also, in this example, M pieces of attribute information A2(1) to A2(M) are included.
- the items of attribute information need not correspond one-to-one to vertices or one-to-one correspondence to faces. Also, the attribute information does not have to exist.
- Connection information is indicated by a combination of vertex indices.
- attribute information indicating an image for a surface may be stored in a two-dimensional attribute map (Attribute Map) file.
- the file name of the attribute map and the two-dimensional coordinate values in the attribute map may be described in attribute information A2(1) to A2(M).
- the method of specifying attribute information for a surface is not limited to these methods, and any method may be used.
- FIG. 17 is a conceptual diagram showing types of three-dimensional data according to this embodiment.
- Point cloud data and mesh data may represent static or dynamic objects.
- a static object is an object that does not change over time
- a dynamic object is an object that changes over time.
- a static object may correspond to three-dimensional data for any point in time.
- point cloud data for an arbitrary time point may be expressed as a PCC frame.
- mesh data for an arbitrary point in time may be expressed as a mesh frame.
- PCC frames and mesh frames are sometimes simply referred to as frames.
- the area of the object may be limited to a certain range like normal video data, or may not be limited like map data.
- the density of points or planes can be defined differently. Sparse point cloud data or sparse mesh data may be used, or dense point cloud data or dense mesh data may be used.
- the apparatus, process or syntax for encoding and decoding vertex information of 3D meshes in this disclosure may be applied to encoding and decoding point clouds.
- An apparatus, process or syntax for point cloud encoding and decoding in this disclosure may be applied to encoding and decoding vertex information of a 3D mesh.
- the device, process, or syntax for encoding and decoding point cloud attribute information in the present disclosure may be applied to encoding and decoding connection information or attribute information of a three-dimensional mesh.
- the apparatus, process or syntax for encoding and decoding connection information or attribute information of a 3D mesh in the present disclosure may be applied to encoding and decoding attribute information of point clouds.
- processing may be shared between the encoding and decoding of point cloud data and the encoding and decoding of mesh data. This may reduce the size of circuits and software programs.
- FIG. 18 is a block diagram showing a configuration example of the three-dimensional data encoder 113 according to this embodiment.
- the 3D data encoder 113 comprises a vertex information encoder 121 , attribute information encoder 122 , metadata encoder 123 and multiplexer 124 .
- the vertex information encoder 121, attribute information encoder 122 and multiplexer 124 may correspond to the vertex information encoder 101, attribute information encoder 103 and post-processor 105 of FIG.
- the 3D data encoder 113 encodes the 3D data according to the geometry-based encoding method. Coding according to geometry-based coding schemes takes into account the three-dimensional structure. Also, in encoding according to the geometry-based encoding method, attribute information is encoded using configuration information obtained in encoding vertex information.
- the vertex information, attribute information, and metadata included in the three-dimensional data generated from the sensor data are sent to the vertex information encoder 121, the attribute information encoder 122, and the metadata encoder 123. are entered respectively.
- the connection information included in the 3D data may be handled in the same manner as the attribute information.
- position information may be treated as vertex information.
- the vertex information encoder 121 encodes the vertex information into compressed vertex information and outputs the compressed vertex information to the multiplexer 124 as encoded data. Also, the vertex information encoder 121 generates metadata of the compressed vertex information and outputs it to the multiplexer 124 . Also, the vertex information encoder 121 generates configuration information and outputs it to the attribute information encoder 122 .
- the attribute information encoder 122 uses the configuration information generated by the vertex information encoder 121 to encode the attribute information into compressed attribute information, and outputs the compressed attribute information to the multiplexer 124 as encoded data. . Also, the attribute information encoder 122 generates metadata of the compressed attribute information and outputs it to the multiplexer 124 .
- the metadata encoder 123 encodes compressible metadata into compressed metadata and outputs the compressed metadata to the multiplexer 124 as encoded data.
- the metadata encoded by the metadata encoder 123 may be used for encoding vertex information and encoding attribute information.
- the multiplexer 124 multiplexes compressed vertex information, compressed vertex information metadata, compressed attribute information, compressed attribute information metadata, and compressed metadata into a bitstream. Multiplexer 124 then inputs the bitstream to the system layer.
- FIG. 19 is a block diagram showing a configuration example of the three-dimensional data decoder 213 according to this embodiment.
- the 3D data decoder 213 comprises a vertex information decoder 221 , an attribute information decoder 222 , a metadata decoder 223 and a demultiplexer 224 .
- the vertex information decoder 221, attribute information decoder 222 and demultiplexer 224 may correspond to the vertex information decoder 201, attribute information decoder 203 and preprocessor 204 in FIG.
- the 3D data decoder 213 decodes the 3D data according to the geometry-based encoding method.
- Decoding according to geometry-based coding schemes takes into account the three-dimensional structure.
- attribute information is decoded using configuration information obtained in decoding vertex information.
- the bitstream is input to the demultiplexer 224 from the system layer.
- the demultiplexer 224 separates compressed vertex information, compressed vertex information metadata, compressed attribute information, compressed attribute information metadata, and compressed metadata from the bitstream.
- the compressed vertex information and the metadata of the compressed vertex information are input to the vertex information decoder 221 .
- the compressed attribute information and the metadata of the compressed attribute information are input to the attribute information decoder 222 .
- the metadata is input to metadata decoder 223 .
- the vertex information decoder 221 decodes vertex information from the compressed vertex information using the metadata of the compressed vertex information. Also, the vertex information decoder 221 generates configuration information and outputs it to the attribute information decoder 222 .
- the attribute information decoder 222 decodes attribute information from the compressed attribute information using the configuration information generated by the vertex information decoder 221 and metadata of the compressed attribute information.
- a metadata decoder 223 decodes metadata from the compressed metadata. The metadata decoded by the metadata decoder 223 may be used for decoding vertex information and attribute information.
- the vertex information, attribute information, and metadata are output from the 3D data decoder 213 as 3D data.
- this metadata is metadata of vertex information and attribute information, and can be used in an application program.
- FIG. 20 is a block diagram showing another configuration example of the three-dimensional data encoder 113 according to this embodiment.
- the 3D data encoder 113 comprises a vertex image generator 131, an attribute image generator 132, a metadata generator 133, a video encoder 134, a metadata encoder 123 and a multiplexer 124.
- the vertex image generator 131, attribute image generator 132 and video encoder 134 may correspond to the vertex information encoder 101 and attribute information encoder 103 in FIG.
- the 3D data encoder 113 encodes the 3D data according to the video-based encoding scheme.
- the video encoding method may be HEVC (High Efficiency Video Coding), VVC (Versatile Video Coding), or the like.
- vertex information and attribute information included in three-dimensional data generated from sensor data are input to the metadata generator 133 .
- the vertex information and attribute information are input to the vertex image generator 131 and the attribute image generator 132, respectively.
- Metadata included in the three-dimensional data is also input to the metadata encoder 123 .
- the connection information included in the 3D data may be handled in the same manner as the attribute information.
- position information may be treated as vertex information.
- the metadata generator 133 generates map information of a plurality of two-dimensional images from vertex information and attribute information. The metadata generator 133 then inputs the map information to the vertex image generator 131 , the attribute image generator 132 and the metadata encoder 123 .
- the vertex image generator 131 generates a vertex image based on the vertex information and map information and inputs it to the video encoder 134 .
- the attribute image generator 132 generates an attribute image based on the attribute information and the map information and inputs it to the video encoder 134 .
- the video encoder 134 encodes the vertex image and the attribute image into compressed vertex information and compressed attribute information, respectively, according to the video encoding method, and outputs the compressed vertex information and compressed attribute information to the multiplexer 124 as encoded data. do.
- the video encoder 134 also generates metadata of compressed vertex information and metadata of compressed attribute information and outputs them to the multiplexer 124 .
- the metadata encoder 123 encodes compressible metadata into compressed metadata and outputs the compressed metadata to the multiplexer 124 as encoded data.
- Compressible metadata includes map information.
- the metadata encoded by the metadata encoder 123 may be used for encoding vertex information and encoding attribute information.
- the multiplexer 124 multiplexes compressed vertex information, compressed vertex information metadata, compressed attribute information, compressed attribute information metadata, and compressed metadata into a bitstream. Multiplexer 124 then inputs the bitstream to the system layer.
- FIG. 21 is a block diagram showing another configuration example of the three-dimensional data decoder 213 according to this embodiment.
- the 3D data decoder 213 comprises a vertex information generator 231 , attribute information generator 232 , video decoder 234 , metadata decoder 223 and demultiplexer 224 .
- the vertex information generator 231, the attribute information generator 232, and the video decoder 234 may correspond to the vertex information decoder 201, the attribute information decoder 203, etc. in FIG.
- the 3D data decoder 213 decodes the 3D data according to the video-based encoding scheme.
- decoding according to the video-based encoding scheme multiple two-dimensional images are decoded according to the video encoding scheme, and three-dimensional data is generated from the multiple two-dimensional images.
- the video encoding method may be HEVC (High Efficiency Video Coding), VVC (Versatile Video Coding), or the like.
- the bitstream is input to the demultiplexer 224 from the system layer.
- the demultiplexer 224 separates compressed vertex information, compressed vertex information metadata, compressed attribute information, compressed attribute information metadata, and compressed metadata from the bitstream.
- the compressed vertex information, the metadata of the compressed vertex information, the compressed attribute information, and the metadata of the compressed attribute information are input to the video decoder 234 .
- the compressed metadata is input to metadata decoder 223 .
- the video decoder 234 decodes the vertex image according to the video encoding method. At that time, the video decoder 234 decodes the vertex image from the compressed vertex information using the metadata of the compressed vertex information. The video decoder 234 then inputs the vertex image to the vertex information generator 231 . Also, the video decoder 234 decodes the attribute image according to the video encoding scheme. At that time, the video decoder 234 decodes the attribute image from the compressed attribute information using the metadata of the compressed attribute information. The video decoder 234 then inputs the attribute image to the attribute information generator 232 .
- the metadata decoder 223 decodes metadata from the compressed metadata.
- the metadata decoded by the metadata decoder 223 includes map information used to generate vertex information and attribute information. Also, the metadata decoded by the metadata decoder 223 may be used for decoding the vertex image and decoding the attribute image.
- the vertex information generator 231 reproduces vertex information from the vertex image according to the map information included in the metadata decoded by the metadata decoder 223.
- the attribute information generator 232 reproduces attribute information from the attribute image according to the map information included in the metadata decoded by the metadata decoder 223 .
- the vertex information, attribute information, and metadata are output from the 3D data decoder 213 as 3D data.
- this metadata is metadata of vertex information and attribute information, and can be used in an application program.
- FIG. 22 is a conceptual diagram showing a specific example of encoding processing according to the present embodiment.
- the three-dimensional data encoder 113 and the description encoder 148 are shown in FIG.
- the 3D data encoder 113 comprises a 2D data encoder 141 and a mesh data encoder 142 .
- the two-dimensional data encoder 141 has a texture encoder 143 .
- the mesh data encoder 142 has a vertex information encoder 144 and a connection information encoder 145 .
- the vertex information encoder 144, connection information encoder 145 and texture encoder 143 correspond to the vertex information encoder 101, connection information encoder 102 and attribute information encoder 103 of FIG. good too.
- the two-dimensional data encoder 141 operates as a texture encoder 143 and encodes the texture corresponding to the attribute information as two-dimensional data in accordance with the image encoding system or the video encoding system to create a texture file. to generate
- the mesh data encoder 142 operates as a vertex information encoder 144 and a connection information encoder 145, and generates a mesh file by encoding vertex information and connection information.
- Mesh data encoder 142 may also encode mapping information for textures. Encoded mapping information may then be included in the mesh file.
- description encoder 148 generates a description file by encoding a description corresponding to metadata such as text data.
- Description encoder 148 may encode the description at the system layer.
- description encoder 148 may be included in system multiplexer 114 of FIG.
- bitstream containing texture files, mesh files and description files is generated. These files may be multiplexed into a bitstream in a file format such as glTF (Graphics Language Transmission Format) or USD (Universal Scene Description).
- glTF Graphics Language Transmission Format
- USD Universal Scene Description
- the three-dimensional data encoder 113 may include two mesh data encoders as the mesh data encoder 142 .
- one mesh data encoder encodes static 3D mesh vertex and connectivity information
- the other mesh data encoder encodes dynamic 3D mesh vertex and connectivity information.
- two mesh files may be included in the bitstream.
- one mesh file corresponds to a static 3D mesh and the other mesh file corresponds to a dynamic 3D mesh.
- the static 3D mesh may be an intra-frame 3D mesh encoded using intra prediction
- the dynamic 3D mesh may be an inter-frame 3D mesh encoded using inter prediction. It may be the original mesh.
- dynamic 3D mesh information difference information between intra-frame 3D mesh vertex information or connection information and inter-frame 3D mesh vertex information or connection information may be used.
- FIG. 23 is a conceptual diagram showing a specific example of decoding processing according to the present embodiment.
- the 3D data decoder 213, the description decoder 248 and the presenter 247 are shown in FIG.
- the 3D data decoder 213 comprises a 2D data decoder 241 , a mesh data decoder 242 and a mesh reconstructor 246 .
- the two-dimensional data decoder 241 has a texture decoder 243 .
- the mesh data decoder 242 has a vertex information decoder 244 and a connection information decoder 245 .
- the vertex information decoder 244, the connection information decoder 245, the texture decoder 243, and the mesh reconstructor 246 are the vertex information decoder 201, the connection information decoder 202, the attribute information decoder 203, the post-processor 205, etc. in FIG. may correspond to
- the presenter 247 may correspond to the presenter 215 of FIG. 12 or the like.
- the two-dimensional data decoder 241 operates as the texture decoder 243 and decodes the texture corresponding to the attribute information from the texture file as two-dimensional data in accordance with the image encoding method or video encoding method.
- the mesh data decoder 242 operates as a vertex information decoder 244 and a connection information decoder 245, and decodes vertex information and connection information from the mesh file.
- Mesh data decoder 242 may also decode mapping information for textures from mesh files.
- description decoder 248 decodes the description corresponding to the metadata such as text data from the description file.
- Description decoder 248 may decode the description at the system layer.
- description decoder 248 may be included in system demultiplexer 214 of FIG.
- the mesh reconstructor 246 reconstructs a three-dimensional mesh from vertex information, connection information and textures according to the description.
- the presenter 247 renders and outputs a 3D mesh according to the description.
- a 3D mesh is reconstructed and output from a bitstream containing texture files, mesh files and description files.
- the three-dimensional data decoder 213 may have two mesh data decoders as the mesh data decoder 242 .
- one mesh data decoder decodes static 3D mesh vertex information and connection information
- the other mesh data decoder decodes dynamic 3D mesh vertex information and connection information.
- two mesh files may be included in the bitstream.
- one mesh file corresponds to a static 3D mesh and the other mesh file corresponds to a dynamic 3D mesh.
- the static 3D mesh may be an intra-frame 3D mesh encoded using intra prediction
- the dynamic 3D mesh may be an inter-frame 3D mesh encoded using inter prediction. It may be the original mesh.
- dynamic 3D mesh information difference information between intra-frame 3D mesh vertex information or connection information and inter-frame 3D mesh vertex information or connection information may be used.
- the dynamic three-dimensional mesh coding method is sometimes called DMC (Dynamic Mesh Coding).
- a video-based coding scheme for a dynamic three-dimensional mesh is sometimes called V-DMC (Video-based Dynamic Mesh Coding).
- the point cloud encoding method is sometimes called PCC (Point Cloud Compression).
- a point cloud video-based coding scheme is sometimes called V-PCC (Video-based Point Cloud Compression).
- a point cloud geometry-based encoding method is sometimes called G-PCC (Geometry-based Point Cloud Compression).
- FIG. 24 is a block diagram showing an implementation example of encoding apparatus 100 according to this embodiment.
- the encoding device 100 comprises circuitry 151 and memory 152 .
- the plurality of components of the encoding device 100 shown in FIG. 5 etc. are implemented by the circuit 151 and the memory 152 shown in FIG.
- the circuit 151 is a circuit that performs information processing, and is a circuit that can access the memory 152 .
- circuit 151 is a dedicated or general purpose electrical circuit that encodes a 3D mesh.
- Circuitry 151 may be a processor, such as a CPU. Also, the circuit 151 may be an assembly of a plurality of electric circuits.
- the memory 152 is a dedicated or general-purpose memory that stores information for the circuit 151 to encode the three-dimensional mesh.
- Memory 152 may be an electrical circuit and may be connected to circuit 151 .
- Memory 152 may also be included in circuit 151 .
- the memory 152 may be an assembly of a plurality of electric circuits.
- the memory 152 may be a magnetic disk, an optical disk, or the like, or may be expressed as a storage, recording medium, or the like.
- the memory 152 may be a non-volatile memory or a volatile memory.
- the memory 152 may store a three-dimensional mesh or a bitstream.
- the memory 152 may also store a program for the circuit 151 to encode the three-dimensional mesh.
- encoding device 100 may not implement all of the plurality of components shown in FIG. 5 and the like, and may not perform all of the plurality of processes shown here. Some of the plurality of components shown in FIG. 5 and the like may be included in another device, and some of the plurality of processes shown here may be executed by another device. . Also, in the encoding apparatus 100, a plurality of constituent elements of the present disclosure may be arbitrarily combined and implemented, and a plurality of processes of the present disclosure may be arbitrarily combined and performed.
- FIG. 25 is a block diagram showing an implementation example of the decoding device 200 according to this embodiment.
- the decoding device 200 has a circuit 251 and a memory 252 .
- the multiple components of the decoding device 200 shown in FIG. 7 etc. are implemented by the circuit 251 and the memory 252 shown in FIG.
- the circuit 251 is a circuit that performs information processing and is a circuit that can access the memory 252 .
- circuit 251 is a dedicated or general purpose electrical circuit for decoding a 3D mesh.
- Circuitry 251 may be a processor, such as a CPU. Also, the circuit 251 may be an assembly of a plurality of electric circuits.
- the memory 252 is a dedicated or general-purpose memory that stores information for the circuit 251 to decode the three-dimensional mesh.
- Memory 252 may be an electrical circuit and may be connected to circuit 251 .
- Memory 252 may also be included in circuit 251 .
- the memory 252 may be an assembly of multiple electrical circuits.
- the memory 252 may be a magnetic disk, an optical disk, or the like, or may be expressed as a storage, recording medium, or the like.
- the memory 252 may be a non-volatile memory or a volatile memory.
- the memory 252 may store a three-dimensional mesh or a bitstream.
- the memory 252 may also store a program for the circuit 251 to decode the three-dimensional mesh.
- decoding device 200 may not implement all of the plurality of components shown in FIG. 7 and the like, and may not perform all of the plurality of processes shown here. Some of the plurality of components shown in FIG. 7 and the like may be included in another device, and some of the plurality of processes shown here may be executed by another device. . Also, in the decoding device 200, a plurality of components of the present disclosure may be arbitrarily combined and implemented, and a plurality of processes of the present disclosure may be arbitrarily combined and performed.
- the encoding method and decoding method including the steps performed by each component of the encoding device 100 and decoding device 200 of the present disclosure may be performed by any device or system.
- part or all of the encoding method and decoding method may be executed by a computer including a processor, memory, input/output circuits, and the like.
- the encoding method and the decoding method may be performed by the computer executing a program for causing the computer to perform the encoding method and the decoding method.
- the program may be recorded on a non-temporary computer-readable recording medium such as a CD-ROM, or the bitstream may be recorded.
- An example of a program may be a bitstream.
- a bitstream containing an encoded 3D mesh contains syntax elements for causing decoding device 200 to decode the 3D mesh.
- the bitstream then causes the decoding device 200 to decode the 3D mesh according to the syntax elements included in the bitstream.
- bitstreams can play a role similar to programs.
- the above bitstream may be an encoded bitstream containing the encoded 3D mesh, or may be a multiplexed bitstream containing the encoded 3D mesh and other information.
- each component of the encoding device 100 and the decoding device 200 may be configured with dedicated hardware, may be configured with general-purpose hardware that executes the above program, etc., or may be a combination thereof.
- the general-purpose hardware may be composed of a memory in which a program is recorded, a general-purpose processor that reads and executes the program from the memory, and the like.
- the memory may be a semiconductor memory, a hard disk, or the like, and the general-purpose processor may be a CPU or the like.
- dedicated hardware may be configured with a memory, a dedicated processor, and the like.
- a dedicated processor may refer to a memory for recording data and execute the encoding and decoding methods.
- each component of the encoding device 100 and the decoding device 200 may be an electric circuit as described above. These electric circuits may form one electric circuit as a whole, or may be separate electric circuits. Further, these electric circuits may correspond to dedicated hardware, or may correspond to general-purpose hardware for executing the above-described programs and the like. Also, the encoding device 100 and the decoding device 200 may be implemented as an integrated circuit.
- the encoding device 100 may be a transmission device that transmits a three-dimensional mesh.
- the decoding device 200 may be a receiving device that receives a 3D mesh.
- ⁇ Reference example regarding encoding and decoding of vertex information> For example, in encoding and decoding vertex information, a parallelogram prediction scheme may be used to predict vertex positions.
- FIG. 26 is a conceptual diagram showing a parallelogram prediction method according to a reference example. For example, after the vertex information of the first vertex A, the second vertex B and the third vertex C of the first triangle is encoded, the second triangle having the same second vertex B and the third vertex C as the first triangle Vertex information of the fourth vertex D is encoded. A parallelogram prediction scheme is then used to predict the position of the fourth vertex D from the first vertex A, the second vertex B and the third vertex C, and encode the error for the prediction.
- vertices P of an imaginary parallelogram ABCP having diagonals BC and AP are calculated as predicted points.
- An error vector representing the difference between vertex D and vertex P in three-dimensional space is then encoded.
- a more complex version uses multiple triangles. This approach slows down the compression process, but provides better prediction.
- a polynomial prediction method that predicts vertex positions may be used in encoding and decoding vertex information.
- local constructions are used to predict new vertex positions. Specifically, several vertex coordinate values within the local neighborhood are fed to a polynomial function with predetermined coefficients, and new vertex positions are predicted according to the polynomial function. The vertices used to predict new vertices are selected according to certain conditions.
- FIG. 27 is a conceptual diagram showing a polynomial prediction method according to a reference example.
- the four coded vertices are used to derive the predicted point for the next vertex. That is, in FIG. 27, the coordinate values of vertex #1, vertex #2, vertex #3 and vertex #4 are used to predict vertex #5.
- an error vector is encoded that indicates the error to the prediction.
- vertex information is encoded using an error vector calculated according to a prediction method such as a parallelogram prediction method or a polynomial prediction method.
- a prediction method such as a parallelogram prediction method or a polynomial prediction method.
- a prediction method such as a parallelogram prediction method or a polynomial prediction method.
- obtuse triangles tend to produce larger error vectors than equilateral triangles.
- the smoothness of the shape and the size of the surface affect the magnitude of the error. Therefore, more bits may be used for signaling vertex information.
- the sign of the angle may be used to indicate the orientation of the angle with respect to the side.
- a predetermined rule may be employed such that positive values indicate a clockwise direction with respect to the reference and negative values indicate a counterclockwise direction with respect to the reference.
- the dihedral angle between the first triangle, which is the reference triangle, and the second triangle, which is the prediction triangle makes it possible to find the two-dimensional plane of the second triangle.
- three-dimensional complexity can be reduced to two dimensions where simpler planar laws can be applied.
- the dihedral angle between adjacent faces may be calculated using the face normal.
- a third triangle which is a virtual congruent triangle with a one-to-one correspondence with the second triangle, is constructed on the plane of the first triangle.
- the first triangle and the third triangle have a common side and are located on opposite sides of the common side.
- the vertex of the third triangle is identified using two angles. Therefore, the vertices of the second triangle are defined by the dihedral angle formed by the first and second triangles and the two angles for specifying the vertices of the third triangle that are congruent with the second triangle. Vertices are identified.
- angle values tend to follow a specific distribution. Therefore, it is possible to improve the compression rate by utilizing such tendency. For example, a distribution of angles may be examined and the difference to the mean of that distribution encoded.
- FIG. 28 is a flowchart showing an example of encoding processing according to this aspect.
- a first vertex, a second vertex and a third vertex are derived from the three-dimensional mesh (S101).
- the first vertex, the second vertex and the third vertex form a first triangle on the first plane of the three-dimensional mesh.
- the first vertex, the second vertex, and the third vertex are three coded vertices.
- a first angle, a second angle, and a third angle are derived for deriving a fourth vertex of a second triangle formed on a second plane of the three-dimensional mesh using a common side with the first triangle. (S102).
- the first angle, the second angle and the third angle are encoded into a bitstream (S103).
- FIG. 29 is a flowchart showing a specific example of encoding processing according to this aspect.
- each vertex coordinate value of the first face is encoded from the three-dimensional mesh (S111).
- the initial face may be randomly selected.
- the vertex processing mode is designated according to the written traversal symbol.
- Vertices are encoded using coordinate values or angles. For example, if the traversal symbol indicates coordinates (coordinates in S114), vertex coordinate values (x, y, z) are directly encoded (S115). This method may be chosen at the start of encoding when no vertices have been encoded yet. Also, for example, if the traversal symbol indicates an angle (Angle in S114), the vertex is encoded using three angles (S116).
- An additional residual may be calculated or signaled separately after the angle signaling.
- the fractional part of the floating-point value of angle is encoded as the residual value after the integer part of the floating-point value of angle is encoded. may The traversal process continues until all three-dimensional meshes are traversed (S119).
- a traversal symbol indicating any of skip, end, and execution may be encoded.
- a skip corresponds to a vertex that has already been processed. Done corresponds to all vertices being processed. Execution corresponds to the vertex to be processed. Then, when traversal symbols indicating execution are encoded, processing modes indicating either coordinates or angles may be encoded separately from the traversal symbols. Processing mode may also be referred to as mode, operational mode, prediction mode, encoding mode, or decoding mode.
- FIG. 30 is a flowchart showing another specific example of encoding processing according to this aspect.
- the encoding process of the reference example is integrated with the encoding process of FIG.
- each vertex coordinate value of the first face is encoded from the three-dimensional mesh (S111).
- the vertex processing mode is designated according to the written traversal symbol.
- Vertices are encoded using coordinates, angles, parallelograms or polynomials. For example, if the traversal symbol indicates coordinates (coordinates in S114), vertex coordinate values (x, y, z) are directly encoded (S115). This method may be chosen at the start of encoding when no vertices have been encoded yet. Also, for example, if the traversal symbol indicates an angle (Angle in S114), the vertex is encoded using three angles (S116).
- the traversal symbol indicates a parallelogram (parallelogram in S114)
- the vertices are encoded using the parallelogram (S117).
- the traversal symbol indicates a polynomial (polynomial in S114)
- the vertices are encoded using the polynomial (S118).
- the optimal processing mode may be determined by the minimum cost among multiple costs calculated by encoding rate and distortion for multiple processing modes.
- the coding rate and distortion cost can be calculated based on the number of bits signaled and the error between the actual and predicted values.
- the optimal processing mode corresponding to the smallest error may be selected based solely on the error between the actual and predicted values.
- a traversal symbol indicating any of skip, end, and execution may be encoded. Then, if traversal symbols indicating execution are encoded, processing modes indicating any of coordinates, angles, parallelograms and polygons may be encoded separately from the traversal symbols. Note that when the processing mode is predetermined, the processing mode may not be encoded, and the processing may not be switched.
- a first triangle has a first vertex A, a second vertex B and a third vertex C
- a second triangle has a second vertex B , a third vertex C and a fourth vertex D
- the third triangle has a second vertex B, a third vertex C and a fifth vertex E.
- FIG. 31 is a conceptual diagram showing examples of three angles according to this aspect.
- the two interior angles of the third triangle are used as the second angle ⁇ and the third angle ⁇ .
- the two interior angles of the third triangle touch a common edge.
- the second angle ⁇ and the third angle ⁇ are calculated by Equation (1) below.
- FIG. 32 is a conceptual diagram showing another example of three angles according to this aspect.
- the angle tangent to the line AE is used as the second angle ⁇
- one interior angle of the third triangle tangent to the common side BC is used as the third angle ⁇ .
- the second angle ⁇ and the third angle ⁇ are calculated by Equation (2) below.
- FIG. 33 is a conceptual diagram showing still another example of three angles according to this aspect.
- one interior angle of the third triangle is used as the second angle ⁇
- the angle between AB and AQ is used as the third angle ⁇ .
- Point Q is the orthogonal projection of the fifth vertex E onto the common edge BC.
- the second angle ⁇ and the third angle ⁇ are calculated by Equation (3) below.
- the dihedral angle between the planes of the first triangle and the second triangle is used as the first angle ⁇ .
- a first angle ⁇ can be calculated using those surface normals.
- FIG. 34 is a syntax diagram showing an example syntax structure of vertex information for a plurality of vertices according to this aspect.
- the traversal symbols are encoded for each of the other vertices. It then controls whether or not to encode the vertices according to the traversal symbols.
- FIG. 35 is a syntax diagram showing an example syntax structure of vertex information for one vertex according to this aspect.
- prediction_mode equals only_angles_mode
- the derived angles for the first, second and third angles are directly encoded.
- FIG. 36 is a syntax diagram showing another syntax structure example of vertex information for one vertex according to this aspect.
- is_init_angles another method of deriving or predicting the three angles without directly encoding them is used.
- An example of how to derive or predict the three angles is by using a historical list of previously encoded angles. Specifically, if the three angles to be encoded are not the first three angles, the three angles are derived or predicted using a history list of previously encoded angles.
- FIG. 37 is a table diagram showing an example of a table used for angle prediction.
- the previously encoded angles and indices are associated and stored in a table.
- the angles stored in the table may be calculated by averaging the three previously encoded angles.
- the angles stored in the table may be controlled according to first-in-first-out, frequency of occurrence of values, or a combination of both.
- the index may be a fixed value.
- FIG. 38 is a table diagram showing another example of a table used for angle prediction.
- the previously encoded first, second and third angles are stored in a table associated with indices.
- the angles stored in the table may be controlled by first-in-first-out, frequency of value occurrence, or a combination of both.
- the index may be a fixed value.
- one of the multiple combinations of the tables is used as the combination of predicted angles.
- the syntax elements only the index values corresponding to the prediction angle combinations and the delta, which is the difference between the actual angle and the prediction angle, are written to the bitstream.
- FIG. 39 is a conceptual diagram showing an example of prediction using angles to the vertices of the previous triangle.
- the three angles for the vertices of the previous triangle are used to derive or predict the three angles for the vertices of the current triangle.
- a previous triangle is a triangle that is traversed before the current triangle. The previous triangle may be the triangle immediately preceding the current triangle or the triangle adjacent to the current triangle.
- FIG. 40 is a conceptual diagram showing an example of prediction using angles to the vertices of the previous three-dimensional mesh.
- three angles are derived or predicted using angles for vertices of the previous 3D mesh.
- the previous 3D mesh is a 3D mesh that is spatially different from the current 3D mesh and that was processed before the current 3D mesh.
- the previous 3D mesh is a 3D mesh temporally different from the current 3D mesh and processed prior to the current 3D mesh.
- FIG. 41 is a block diagram showing a configuration example of the encoding device 100 according to this aspect.
- the encoding device 100 encodes the 3D mesh into a bitstream.
- the encoding device 100 may comprise a traverser 161, a switch 162, an angle derivator 163, an angle encoder 164, a coordinate encoder 165 and an entropy encoder 166.
- the traverser 161 acquires a three-dimensional mesh.
- the traverser 161 determines the vertices to be encoded in the three-dimensional mesh and outputs the vertices to either the angle derivation device 163 or the coordinate encoder 165 via the switch 162 .
- the traverser 161 selects the coordinate encoder 165 for the first three vertices of the three-dimensional mesh and the angle derivator 163 for the other vertices.
- the coordinate encoder 165 takes three vertices forming a first triangle on the first plane and encodes the three vertices. Delta encoding may be used in encoding the three vertices. Specifically, the coordinate value of the first vertex A is directly encoded, the difference between the coordinate value of the first vertex A and the coordinate value of the second vertex B, and the coordinate value of the first vertex A and the third vertex The difference with the coordinate values of C may be encoded.
- An angle derivation unit 163 retrieves a fourth vertex D that forms a second triangle on the second plane using the second vertex B and the third vertex C, and derives three angles to identify the fourth vertex D. and outputs the three derived angles to the angle encoder 164 .
- the second plane may be different from the first plane or may be the same as the first plane. As mentioned above, Figures 31, 32 and 33 show different examples of the three angles.
- angle encoder 164 encodes three angles. Additional residuals may be calculated and signaled separately after the angle signaling. In the example of fully representing the floating point value of angle for lossless encoding, angle encoder 164 encodes the integer portion of the floating point value of angle and then converts the fractional portion of the floating point value of angle into a residual May be encoded as a value.
- the encoded information obtained by the coordinate encoder 165 and the encoded information obtained by the angle encoder 164 are sent to the entropy encoder 166 and also fed back to the traverser 161 .
- An entropy encoder 166 compresses the encoded information and outputs a bitstream.
- Traverser 161 uses the encoded information to determine the next traversal.
- Examples of encoding schemes that entropy encoding conforms to include Huffman encoding, arithmetic encoding, range encoding, ANS (Asymmetric Numeral Systems), or CABAC (Context Adaptive Binary Arithmetic Coding: Context - Adaptive Binary Arithmetic Coding).
- the encoding device 100 encodes the three-dimensional mesh according to the configuration and processing described above. This may reduce the code amount of the three-dimensional mesh.
- the third triangle is a congruent triangle with respect to the second triangle, but it may be a similar triangle with respect to the second triangle. Even if the second triangle and the third triangle are similar, if the correspondence relationship between the second triangle and the third triangle is known, from the fifth vertex E according to the correspondence relationship between the second triangle and the third triangle A fourth vertex D can be derived. Also, the third triangle may be an orthogonal projection of the second triangle onto the first plane. Also in this case, the fifth vertex E to the fourth vertex D can be derived according to the correspondence relationship between the second triangle and the third triangle.
- FIG. 42 is a flowchart showing an example of decoding processing according to this aspect.
- a first vertex, a second vertex and a third vertex are derived from the three-dimensional mesh (S201).
- the first vertex, the second vertex and the third vertex form a first triangle on the first plane of the three-dimensional mesh.
- the first vertex, the second vertex, and the third vertex are three vertices that have already been decoded.
- a first angle, a second angle, and a third angle are bit It is decoded from the stream (S202). Then, a fourth vertex is derived using the first angle, the second angle and the third angle (S203).
- FIG. 43 is a flowchart showing a specific example of decoding processing according to this aspect.
- the decoding process begins by decoding each vertex coordinate value of the initial encoded face (S211). Subsequently, the traversal symbols of the current plane are decoded (S212). It is then determined whether the traversal symbol indicates coordinates, angles, skips and ends (S213).
- the traversal symbol indicates coordinates (coordinates in S213), vertex coordinate values (x, y, z) are directly decoded (S214). Also, if the traversal symbol indicates an angle (Angle in S213), the vertex is decoded using three angles (S215). Also, if the traversal symbol indicates skip (skip in S213), the process is repeated for the next face. If the traversal symbol indicates the end (end at S213), the process ends.
- a traversal symbol indicating any of skip, end, and execution may be decoded.
- a skip corresponds to a vertex that has already been processed. Done corresponds to all vertices being processed. Execution corresponds to the vertex to be processed. Then, if a traversal symbol indicating execution is decoded, a processing mode indicating either coordinates or angles may be decoded separately from the traversal symbol. Processing mode may also be referred to as mode, operational mode, prediction mode, encoding mode, or decoding mode.
- FIG. 44 is a flowchart showing another specific example of decoding processing according to this aspect.
- the decoding process of the reference example is integrated with the decoding process of FIG.
- the decoding process begins by decoding each vertex coordinate value of the initial encoded face (S211). Subsequently, the traversal symbols of the current plane are decoded (S212). It is then determined whether the traversal symbol indicates coordinates, angles, skips and ends (S213).
- the traversal symbol indicates coordinates (coordinates in S213), vertex coordinate values (x, y, z) are directly decoded (S214). Also, if the traversal symbol indicates an angle (Angle in S213), the vertex is decoded using three angles (S215). Also, if the traversal symbol indicates a parallelogram (parallelogram in S213), the vertices are decoded using the parallelogram (S216). If the traversal symbol indicates a polynomial (polynomial in S213), the next vertex is decoded using the polynomial.
- the process is repeated for the next surface. If the traversal symbol indicates the end (end at S213), the process ends.
- a traversal symbol indicating any of skip, end, and execution may be decoded. Then, if the traversal symbols indicating execution are decoded, the processing modes indicating any of coordinates, angles, parallelograms and polygons may be decoded separately from the traversal symbols. Note that when the processing mode is predetermined, the processing mode may not be decoded, and the processing may not be switched.
- FIG. 34 is a syntax diagram showing an example syntax structure of vertex information for a plurality of vertices according to this aspect.
- the traversal symbols are decoded for each other vertex. Then, it is controlled whether or not to decode the vertices according to the traversal symbols.
- FIG. 35 is a syntax diagram showing an example syntax structure of vertex information for one vertex according to this aspect.
- prediction_mode equals only_angles_mode
- the derived angles for the first, second and third angles are decoded directly.
- FIG. 36 is a syntax diagram showing another syntax structure example of vertex information for one vertex according to this aspect.
- is_init_angles another method of deriving or predicting the three angles without decoding them directly is used.
- An example of how to derive or predict the three angles is by using a historical list of previously decoded angles. Specifically, if the three angles to be decoded are not the first three angles, the three angles are derived or predicted using a history list of previously decoded angles.
- FIG. 37 is a table diagram showing an example of a table used for angle prediction.
- previously decoded angles and indices are associated and stored in a table.
- the angles stored in the table may be calculated by averaging the three previously decoded angles.
- the angles stored in the table may be controlled according to first-in-first-out, frequency of occurrence of values, or a combination of both.
- the index may be a fixed value.
- one of the multiple angles in the table is used as the predicted angle.
- the syntax elements only the index value corresponding to the prediction angle and the delta, which is the difference between the actual angle and the prediction angle, are decoded from the bitstream.
- FIG. 38 is a table diagram showing another example of a table used for angle prediction.
- the previously decoded first, second and third angles are stored in a table associated with indices.
- the angles stored in the table may be controlled according to first-in-first-out, frequency of occurrence of values, or a combination of both.
- the index may be a fixed value.
- one of the multiple combinations of the tables is used as the combination of predicted angles.
- decoding the syntax elements only the index values corresponding to the prediction angle combinations and the delta, which is the difference between the actual angle and the prediction angle, are decoded from the bitstream.
- FIG. 39 is a conceptual diagram showing an example of prediction using angles to the vertices of the previous triangle.
- the three angles for the vertices of the previous triangle are used to derive or predict the three angles for the vertices of the current triangle.
- a previous triangle is a triangle that is traversed before the current triangle. The previous triangle may be the triangle immediately preceding the current triangle or the triangle adjacent to the current triangle.
- FIG. 40 is a conceptual diagram showing an example of prediction using angles to the vertices of the previous three-dimensional mesh.
- three angles are derived or predicted using angles for vertices of the previous 3D mesh.
- the previous 3D mesh is a 3D mesh that is spatially different from the current 3D mesh and that was processed before the current 3D mesh.
- the previous 3D mesh is a 3D mesh temporally different from the current 3D mesh and processed prior to the current 3D mesh.
- An additional residual may be decoded after the decoding of the three angles.
- the value decoded as the angle may represent the integer portion of the floating point value of the angle and the value decoded as the residual may represent the fractional portion of the floating point value of the angle. Adding the fractional part to the integer part gives the actual angle.
- a first triangle has a first vertex A, a second vertex B and a third vertex C
- a second triangle has a second vertex B , a third vertex C and a fourth vertex D
- the third triangle has a second vertex B, a third vertex C and a fifth vertex E.
- the derivation of the fourth vertex D of the second triangle first computes the fifth vertex E, which is the projection of the fourth vertex D onto the first plane containing the first triangle, using the second and third angles. . Then, the fifth vertex E to the fourth vertex D are calculated using the first angle that is the dihedral angle between the first triangle and the second triangle.
- FIG. 31 is a conceptual diagram showing examples of three angles according to this aspect.
- the two interior angles of the third triangle are used as the second angle ⁇ and the third angle ⁇ .
- the two interior angles of the third triangle are decoded from the bitstream.
- the coordinate value of the fifth vertex E is derived from the above equation (4).
- FIG. 32 is a conceptual diagram showing another example of three angles according to this aspect.
- the angle tangent to the line AE is used as the second angle ⁇
- one interior angle of the third triangle tangent to the common side BC is used as the third angle ⁇ .
- the fourth angle ⁇ between BA and BC is derived by equation (5) below.
- the magnitude of BE is derived from the above equation (6). Therefore, the direction and magnitude of BE and the plane on which the fifth vertex E is located are known, and the coordinate values of the fifth vertex E are derived.
- FIG. 33 is a conceptual diagram showing still another example of three angles according to this aspect.
- one interior angle of the third triangle is used as the second angle ⁇
- the angle between AB and AQ is used as the third angle ⁇ .
- Point Q is the orthogonal projection of the fifth vertex E onto the common edge BC.
- the magnitude of CE is derived from the above equation (8). Therefore, the direction and magnitude of CE and the plane on which the fifth vertex E is located are known, and the coordinate values of the fifth vertex E are derived.
- the fifth vertex E is derived in each of the multiple derivation methods described with reference to FIGS. Then, from the fifth vertex E, the fourth vertex D can be derived.
- the second triangle CBD and the third triangle CBE are one-to-one identical.
- the fourth vertex D and the fifth vertex E are on different planes sharing a common side CB. In this case, the fourth vertex D is derived by rotating the fifth vertex E by an amount of ⁇ (or ⁇ ) around the side BC. where ⁇ is the first angle.
- FIG. 45 is a table diagram showing an example of a sine function and cosine function lookup table.
- the lookup table shown in FIG. 45 may be used in calculating the sine and cosine functions described above.
- FIG. 46 is a block diagram showing a configuration example of the decoding device 200 according to this aspect.
- the decoding device 200 decodes the 3D mesh from the bitstream.
- the decoding device 200 comprises a traverser 261, a switch 262, an angle decoder 263, a coordinate derivator 264, a coordinate decoder 265 and an entropy decoder 266.
- the entropy decoder 266 obtains the bitstream.
- the entropy decoder 266 obtains decompression information by decompressing the bitstream and outputs the decompression information.
- Examples of encoding schemes that entropy decoding conforms to include Huffman encoding, arithmetic encoding, range encoding, ANS (Asymmetric Numeral Systems), or CABAC (Context Adaptive Binary Arithmetic Coding: Context- Adaptive Binary Arithmetic Coding).
- the decompressed information is input to the Traverser 261 .
- Traverser 261 interprets the decompression information and outputs the decompression information to either angle decoder 263 or coordinate decoder 265 via switch 262 .
- the coordinate decoder 265 decodes from the decompressed information the three vertices forming the first triangle on the first plane. As an example of decoding three vertices, the coordinate values of the first vertex A and two difference values are decoded from the decompression information. Next, by adding the two difference values to the coordinate value of the first vertex A, the coordinate value of the second vertex B and the coordinate value of the third vertex C are derived.
- the angle decoder 263 decodes the three angles from the decompressed information and outputs the three angles to the coordinate derivator 264.
- the coordinate derivator 264 uses the three angles to derive the vertices of a second triangle that has common sides with the first triangle.
- the second triangle may be on a plane different from the first plane or may be on the same plane as the first plane. Specifically, the coordinate derivator 264 derives the vertices of the second triangle from the three angles using the derivation method described above with reference to FIGS.
- the vertex information indicating the vertices obtained by the coordinate derivation device 264 or the coordinate decoder 265 is output as the vertex information of the three-dimensional mesh. This vertex information is also fed back to the traverser 261 and used to determine the next traversal.
- the decoding device 200 decodes the three-dimensional mesh according to the configuration and processing described above. This may reduce the code amount of the three-dimensional mesh.
- the third triangle is a congruent triangle with respect to the second triangle, but it may be a similar triangle with respect to the second triangle. Even if the second triangle and the third triangle are similar, if the correspondence relationship between the second triangle and the third triangle is known, from the fifth vertex E according to the correspondence relationship between the second triangle and the third triangle A fourth vertex D can be derived. Also, the third triangle may be an orthogonal projection of the second triangle onto the first plane. Also in this case, the fifth vertex E to the fourth vertex D can be derived according to the correspondence relationship between the second triangle and the third triangle.
- dihedral angles and selection parameters are used to encode the non-common vertices of adjacent triangles to the reference triangle. That is, dihedral angles and selection parameters are used when vertex information is encoded using spatial relationships between adjacent triangles.
- the selection parameter indicates a method (strategy) for constructing virtual vertices, for example, to encode non-common vertices of neighboring triangles based on reference triangles.
- the dihedral angle between the first triangle, which is the reference triangle, and the second triangle, which is the prediction triangle makes it possible to find the two-dimensional plane of the second triangle.
- three-dimensional complexity can be reduced to two dimensions where simpler planar rules can be applied.
- the virtual vertices used for vertex prediction are defined on the plane of the first triangle by selection parameters. Such dihedral angles and selection parameters may allow efficient identification of the vertices of the second triangle.
- the value to be coded is suppressed from becoming too large according to the expression range of the dihedral angle between adjacent faces. Moreover, in most cases, two surfaces adjacent to each other have similar surface normals. This further reduces the spectrum of the various values that the angle will eventually have. Therefore, the code amount of the dihedral angle is small in most of the mesh. Also, selection parameters may define virtual vertices that are useful for identifying vertices. Therefore, dihedral angles and selection parameters efficiently encode vertex information.
- FIG. 47 is a flowchart showing an example of encoding processing according to this aspect.
- a first vertex, a second vertex and a third vertex are derived from the three-dimensional mesh (S121).
- the first vertex, the second vertex and the third vertex form a first triangle on a first plane on the three-dimensional mesh.
- the first vertex, the second vertex, and the third vertex are three coded vertices.
- dihedral angles and selection parameters for deriving the fourth vertex of a second triangle formed on the second plane of the three-dimensional mesh using the common edge with the first triangle are derived (S122). .
- the dihedral angle and selection parameters are then encoded into the bitstream (S123).
- the dihedral angle is the angle formed by the first plane and the second plane.
- the selection parameter corresponds to, for example, information for specifying the sixth vertex of the fourth triangle on the first plane.
- the fourth triangle is a similar triangle to the first triangle and is a virtual triangle having common sides with the first triangle.
- the selection parameter may indicate the correspondence between the first triangle and the fourth triangle, for example, the correspondence between the vertices of the first triangle and the vertices of the fourth triangle.
- the selection parameter may correspond to information for specifying the fifth vertex of the third triangle on the first plane.
- the third triangle is a triangle corresponding to the second triangle on the second plane, and is a virtual triangle having sides common to the second triangle.
- the third triangle may be a similar triangle to the second triangle, or may be an orthogonal projection of the second triangle to the first plane.
- the selection parameter may indicate correspondence between the second triangle and the fourth triangle.
- the selection parameter may be accompanied by additional information for specifying the difference between the fifth vertex and the sixth vertex.
- the correspondence relationship between the first triangle and the fourth triangle may be determined in advance.
- the correspondence relationship between the second triangle and the third triangle may be determined in advance. In particular, it may be predetermined that the second triangle and the third triangle are congruent. If the corresponding relationship between the first triangle and the fourth triangle and the corresponding relationship between the second triangle and the third triangle are predetermined, the selection parameter may not be used.
- FIG. 48 is a diagram showing the relationship between vertices, triangles and planes according to this aspect.
- a first triangle, a virtual third triangle and a virtual fourth triangle are formed in the first plane.
- a second triangle is formed in the second plane.
- the first triangle has a first vertex A, a second vertex B and a third vertex C.
- the second triangle has a second vertex B, a third vertex C and a fourth vertex D.
- the third triangle has a second vertex B, a third vertex C and a fifth vertex E.
- the fourth triangle has a second vertex B, a third vertex C and a sixth vertex F.
- FIG. 49 is a flowchart showing a specific example of encoding processing according to this aspect.
- each vertex coordinate value of the first face is encoded from the three-dimensional mesh (S131).
- the initial face may be randomly selected.
- the process traverses to the next plane (S132). Traversal symbols are then written to the bitstream that indicate the traversal instructions, the mode of processing the vertices, and the selected parameters for constructing the virtual vertices.
- the optimal processing mode may be determined by the minimum cost among multiple costs calculated by encoding rate and distortion for multiple processing modes.
- the coding rate and distortion cost can be calculated based on the number of bits signaled and the error between the actual and predicted values.
- the optimal processing mode corresponding to the smallest error may be selected based solely on the error between the actual and predicted values.
- the vertex processing mode is designated according to the written traversal symbol. Vertices are then encoded using one angle, an angle and a scalar, an angle and a vector, or three angles. A selection parameter that brings the fifth vertex E and the sixth vertex F closer to each other may be determined.
- the traversal symbol indicates one angle (one angle at S134)
- the vertices are encoded using dihedral angles (S135). If the traversal symbol indicates an angle and a scalar (angle and scalar at S134), the vertex is encoded with a dihedral angle and a scalar factor (S136). If the traversal symbol indicates an angle and vector (angle and vector at S134), the vertices are encoded using dihedral angles and two-dimensional vectors (S137).
- the traversal symbol indicates three angles (three angles at S134)
- the vertices are encoded using three angles including the dihedral angle (S138).
- An additional residual may be calculated or signaled separately after the angle signaling.
- the fractional part of the floating-point value of angle is encoded as the residual value after the integer part of the floating-point value of angle is encoded. may Traversal processing continues until all faces of the three-dimensional mesh are traversed (S139).
- the processing mode when the processing mode is predetermined, the processing mode may not be encoded, and the processing may not be switched.
- FIG. 50, 51, 52, 53, 54 and 55 show six scenarios for constructing a virtual sixth vertex F.
- FIG. 50, 51, 52, 53, 54 and 55 show six scenarios for constructing a virtual sixth vertex F.
- FIG. 50 is a conceptual diagram showing an example of the fourth triangle and sixth vertex F according to this aspect.
- the first triangle ABC is similar to the fourth triangle FCB.
- the first vertex A, the second vertex B and the third vertex C of the first triangle correspond to the sixth vertex F, the third vertex C and the second vertex B of the fourth triangle, respectively.
- FIG. 51 is a conceptual diagram showing another example of the fourth triangle and sixth vertex F according to this aspect.
- the first triangle ABC is similar to the fourth triangle FBC.
- the first vertex A, the second vertex B and the third vertex C of the first triangle correspond to the sixth vertex F, the second vertex B and the third vertex C of the fourth triangle, respectively.
- FIG. 52 is a conceptual diagram showing still another example of the fourth triangle and sixth vertex F according to this aspect.
- the first triangle ABC is similar to the fourth triangle CBF.
- the first vertex A, the second vertex B and the third vertex C of the first triangle correspond to the third vertex C, the second vertex B and the sixth vertex F of the fourth triangle, respectively.
- FIG. 53 is a conceptual diagram showing yet another example of the fourth triangle and sixth vertex F according to this aspect.
- the first triangle ABC is similar to the fourth triangle CFB.
- the first vertex A, the second vertex B and the third vertex C of the first triangle correspond to the third vertex C, the sixth vertex F and the second vertex B of the fourth triangle, respectively.
- FIG. 54 is a conceptual diagram showing yet another example of the fourth triangle and sixth vertex F according to this aspect.
- the first triangle ABC is similar to the fourth triangle BFC.
- the first vertex A, the second vertex B and the third vertex C of the first triangle correspond to the second vertex B, the sixth vertex F and the third vertex C of the fourth triangle, respectively.
- FIG. 55 is a conceptual diagram showing yet another example of the fourth triangle and sixth vertex F according to this aspect.
- the first triangle ABC is similar to the fourth triangle BCF.
- the first vertex A, the second vertex B and the third vertex C of the first triangle correspond to the second vertex B, the third vertex C and the sixth vertex F of the fourth triangle, respectively.
- the fifth vertex E is the virtual vertex of the virtual third triangle on the first plane.
- the third triangle has sides in common with the second triangle.
- the third triangle may be similar to the second triangle or may be an orthogonal projection of the second triangle onto the first plane.
- the selection parameter may indicate how to construct the sixth vertex F that has the minimum difference from the virtual fifth vertex E.
- the selection parameters may also indicate how to construct the fifth vertex E and the sixth vertex F that minimizes the difference between the fifth vertex E and the sixth vertex F.
- the selection parameters may be predefined and only predefined methods for constructing the fifth vertex E and the sixth vertex F may be used.
- Equation (9) enables the magnitudes of BF and CF to be calculated as in Equation (10) below.
- the angle between BC and BF is the same as the angle between BA and BC and is known. Therefore, the coordinate value of F can be calculated from the magnitudes of BF and CF and the angle between BC and BF.
- the unit vector BF unit of BF is obtained by rotating the unit vector BC unit of BC using k, which is the surface normal of triangle ABC, and the Rodrigues rotation formula shown in Equation (11) below. is obtained by
- the coordinate value of the sixth vertex F is derived by scaling the unit vector BF unit by the magnitude of BF.
- FIG. 56 is a conceptual diagram showing an example using only dihedral angles and selection parameters according to this aspect.
- the fourth vertex D is encoded using only dihedral angles and selection parameters.
- a dihedral angle is the angle between a first plane containing the first triangle and a second plane containing the second triangle.
- the selection parameter is a parameter for specifying the sixth vertex F.
- the fifth vertex E is a virtual vertex determined on the first plane from the fourth vertex D by a predetermined method.
- the selection parameter is determined by selecting the sixth vertex F, which is considered to match the fifth vertex E.
- FIG. For example, for the construction method of the sixth vertex F, the selection parameters are determined by which construction method provides min(FE).
- the construction method of the sixth vertex F is selected from six possible construction methods.
- the fourth vertex D is encoded by encoding the dihedral angle and the selection parameter.
- the sixth vertex F may be considered to match the fifth vertex E when the distance between the fifth vertex E and the sixth vertex F is within the reference range.
- FIG. 57 is a conceptual diagram showing an example of using dihedral angles, selection parameters and vectors according to this aspect.
- the fourth vertex D is encoded with a dihedral angle, a selection parameter and a two-dimensional vector.
- a dihedral angle is the angle between a first plane containing the first triangle and a second plane containing the second triangle.
- the selection parameter is a parameter for specifying the sixth vertex F.
- the fifth vertex E is a virtual vertex determined on the first plane from the fourth vertex D by a predetermined method.
- the fourth vertex D is encoded by encoding the dihedral angle, the selection parameter, and the two-dimensional vector.
- FIG. 58 is a conceptual diagram showing an example using dihedral angles, selection parameters, and scalar factors according to this aspect.
- the fourth vertex D is encoded with a dihedral angle, a selection parameter, a first parameter and a second parameter.
- a dihedral angle is the angle between a first plane containing the first triangle and a second plane containing the second triangle.
- the selection parameter is a parameter for specifying the sixth vertex F.
- the first and second parameters are two scalar factors for representing the fifth vertex E using the vertices of the first triangle.
- the fifth vertex E is a virtual vertex determined on the first plane from the fourth vertex D by a predetermined method.
- ⁇ and ⁇ are derived from the vector equation representing the fifth vertex E by separating the component corresponding to edge AB and the component corresponding to edge AC.
- ⁇ -bestF 1 and ⁇ -bestF 2 may be encoded in the bitstream as first and second parameters. where bestF1 and bestF2 correspond to the two scalar factors for the sixth vertex F specified by the selection parameters in the local coordinate system of the first plane.
- the example using three angles including the dihedral angle according to this aspect is the same as the example explained using FIGS. 31, 32 and 33 in the first aspect.
- the dihedral angle between the planes of the first triangle and the second triangle is obtained as the first angle ⁇ .
- a first angle ⁇ can be calculated using those surface normals.
- FIG. 59 is a syntax diagram showing an example syntax structure of vertex information for a plurality of vertices according to this aspect.
- the traversal symbols are encoded for each of the other vertices. It then controls whether or not to encode the vertices according to the traversal symbols.
- traversal_symbol indicates how to encode vertices. If traversal_symbol is equal to decode_vertex, then decode_one_vertex is called to encode the vertex. If traversal_symbol equals retrieve, retrieve_one_vertex is called to get the next vertex to be encoded. When the traversal symbol equals end_of_decoding, the encoding of vertex information stops.
- FIG. 60 is a syntax diagram showing an example syntax structure of vertex information for one vertex according to this aspect.
- the syntax element prediction_mode indicates the processing mode used to encode the vertices.
- the processing modes include at least one_angle_mode (S135), angle_scalar_mode (S136), angle_vector_mode (S137), and other processing modes (S138).
- the syntax element dihedral_angle indicates the value of the dihedral angle in degrees. In this example, derived angles for dihedral angles are encoded directly.
- the syntax element selection_parameter indicates one of six possible ways of constructing the virtual sixth vertex F shown in FIGS.
- the syntax element scalar_factors indicates two scalar factors for specifying the virtual fifth vertex E in the local coordinate system of the first plane using the vertices of the first triangle.
- the two scalar factors correspond to two scaling factors for scaling the distance between the vertices of the first triangle.
- the two scalar factors correspond to the two scaling factors for AB and AC, as in the example of FIG.
- the syntax element 2D_vector indicates a two-dimensional vector corresponding to the difference between the fifth vertex E and the sixth vertex F in the local coordinate system of the first plane. Specifically, 2D_vector indicates a two-dimensional vector as shown in FIG.
- FIG. 61 is a syntax diagram showing another syntax structure example of vertex information for one vertex according to this aspect.
- the syntax element is_init_angles
- other methods of deriving or predicting dihedral angles without directly encoding them are used.
- the prediction elements which are the elements used for prediction, are obtained from previously encoded vertices.
- syntax element When the syntax element is_init_angles is 0, it indicates that there is no prediction element, and when it is 1, it indicates that there is a prediction element.
- the syntax elements traversal_symbol, prediction_mode, dihedral_angle, selection_parameter, scalar_factors and 2D_vector are the same as the syntax elements shown in FIGS.
- the dihedral angle can be predicted in the same manner as the example described using FIGS. 37, 38, 39 and 40 in the first mode.
- the first angle of the three angles used in the first aspect can be used as the dihedral angle.
- FIG. 62 is a block diagram showing a configuration example of the encoding device 100 according to this aspect.
- the encoding device 100 encodes the 3D mesh into a bitstream.
- the encoding device 100 may comprise a traverser 161, a switch 162, a parameter derivator 167, a parameter encoder 168, a coordinate encoder 165 and an entropy encoder 166.
- the traverser 161 acquires a three-dimensional mesh. Traverser 161 determines vertices to be encoded in the three-dimensional mesh and outputs the vertices to either parameter derivation unit 167 or coordinate encoder 165 via switch 162 . In one example, the traverser 161 selects the coordinate encoder 165 for the first three vertices of the three-dimensional mesh and the parameter derivator 167 for the other vertices.
- the coordinate encoder 165 takes three vertices forming a first triangle on the first plane and encodes the three vertices. Delta encoding may be used in encoding the three vertices. Specifically, the coordinate value of the first vertex A is directly encoded, the difference between the coordinate value of the first vertex A and the coordinate value of the second vertex B, the coordinate value of the first vertex A, and the The difference from the coordinate values of the three vertices C may be encoded.
- a parameter derivator 167 takes a fourth vertex D that forms a second triangle on the second plane using the second vertex B and the third vertex C, and the dihedral angle and selection for deriving the fourth vertex D.
- a plurality of parameters including the parameters are derived, and the derived parameters are output to parameter encoder 168 .
- the second plane may be different from the first plane or may be the same as the first plane.
- Figures 56, 57 and 58 show different examples for multiple parameters.
- a parameter encoder 168 encodes a plurality of parameters including dihedral angles and selection parameters. Additional residuals may be calculated and signaled separately after the signaling of multiple parameters. In the example of fully representing the dihedral floating point value for lossless encoding, the parameter encoder 168 encodes the integer portion of the dihedral floating point value before converting the dihedral floating point value may be encoded as the residual value.
- the encoded information obtained by the coordinate encoder 165 and the encoded information obtained by the parameter encoder 168 are sent to the entropy encoder 166 and also fed back to the traverser 161 .
- An entropy encoder 166 compresses the encoded information and outputs a bitstream.
- Traverser 161 uses the encoded information to determine the next traversal.
- Examples of encoding schemes that entropy encoding conforms to include Huffman encoding, arithmetic encoding, range encoding, ANS (Asymmetric Numeral Systems), or CABAC (Context Adaptive Binary Arithmetic Coding: Context - Adaptive Binary Arithmetic Coding).
- the encoding device 100 encodes the three-dimensional mesh according to the configuration and processing described above. This may reduce the code amount of the three-dimensional mesh.
- FIG. 63 is a flowchart showing an example of decoding processing according to this aspect.
- a first vertex, a second vertex and a third vertex are derived from the three-dimensional mesh (S221).
- the first vertex, the second vertex and the third vertex form a first triangle on the first plane of the three-dimensional mesh.
- the first vertex, the second vertex and the third vertex are the three vertices that have already been decoded.
- the dihedral angle and selection parameters for deriving the fourth vertex of the second triangle formed on the second plane of the three-dimensional mesh using the common edge with the first triangle are then decoded from the bitstream. (S222).
- a fourth vertex is then derived using the dihedral angle and selected parameters (S223).
- the dihedral angle is the angle formed by the first plane and the second plane.
- the selection parameter corresponds to, for example, information for specifying the sixth vertex of the fourth triangle on the first plane.
- the fourth triangle is a similar triangle to the first triangle and is a virtual triangle having common sides with the first triangle.
- the selection parameter may indicate the correspondence between the first triangle and the fourth triangle, for example, the correspondence between the vertices of the first triangle and the vertices of the fourth triangle.
- the selection parameter may correspond to information for specifying the fifth vertex of the third triangle on the first plane.
- the third triangle is a triangle corresponding to the second triangle on the second plane, and is a virtual triangle having sides common to the second triangle.
- the third triangle may be a similar triangle to the second triangle, or may be an orthogonal projection of the second triangle to the first plane.
- the selection parameter may indicate correspondence between the second triangle and the fourth triangle.
- the selection parameter may be accompanied by additional information for specifying the difference between the fifth vertex and the sixth vertex.
- the correspondence relationship between the first triangle and the fourth triangle may be determined in advance.
- the correspondence relationship between the second triangle and the third triangle may be determined in advance. In particular, it may be predetermined that the second triangle and the third triangle are congruent. If the corresponding relationship between the first triangle and the fourth triangle and the corresponding relationship between the second triangle and the third triangle are predetermined, the selection parameter may not be used.
- FIG. 48 is a diagram showing the relationship between vertices, triangles and planes according to this aspect.
- a first triangle, a virtual third triangle and a virtual fourth triangle are formed in the first plane.
- a second triangle is formed in the second plane.
- the first triangle has a first vertex A, a second vertex B and a third vertex C.
- the second triangle has a second vertex B, a third vertex C and a fourth vertex D.
- the third triangle has a second vertex B, a third vertex C and a fifth vertex E.
- the fourth triangle has a second vertex B, a third vertex C and a sixth vertex F.
- FIG. 64 is a flowchart showing a specific example of decoding processing according to this aspect.
- the decoding process begins by decoding each vertex coordinate value of the initial surface that was first decoded (S231). Processing then traverses to the next plane (S232). Here, if the vertices of the face have already been decoded (Yes in S233), decoding of the vertices is skipped. Then, if all faces have not been traversed, processing traverses to the next face. Note that if all faces have been traversed, the process may end.
- the traversal symbol indicating the traversal instruction, the vertex decoding method, and the selection parameters for constructing the virtual vertex is decoded (S234).
- the decoding process is switched according to the processing mode indicated by the traversal symbol (S235).
- the traversal symbol indicates one angle (one angle at S235)
- the vertices are decoded using dihedral angles (S236). If the traversal symbol indicates an angle and a scalar (angle and scalar at S235), the vertex is decoded using dihedral angles and scalar factors (S237). If the traversal symbol indicates an angle and vector (angle and vector in S235), the vertex is decoded using dihedral angles and two-dimensional vectors (S238).
- the traversal symbol indicates 3 angles (3 angles at S235)
- the vertices are decoded using the 3 angles including the dihedral angle (S239).
- the processing mode when the processing mode is predetermined, the processing mode may not be decoded, and the processing may not be switched.
- FIG. 59 is a syntax diagram showing an example syntax structure of vertex information for a plurality of vertices according to this aspect.
- the traversal symbols are decoded for each other vertex. Then, it is controlled whether or not to decode the vertices according to the traversal symbols.
- traversal_symbol indicates how to decode vertices. If traversal_symbol is equal to decode_vertex, then decode_one_vertex is called to decode the vertex. If traversal_symbol equals retrieve, retrieve_one_vertex is called to get the next vertex to be decoded. Decoding of vertex information stops when the traversal symbol equals end_of_decoding.
- FIG. 60 is a syntax diagram showing an example syntax structure of vertex information for one vertex according to this aspect.
- the syntax element prediction_mode indicates the processing mode used for decoding vertices.
- the processing modes include at least one_angle_mode (S236), angle_scalar_mode (S237), angle_vector_mode (S238) and other processing modes (S239).
- the syntax element dihedral_angle indicates the value of the dihedral angle in degrees. In this example, derived angles for dihedral angles are decoded directly.
- the syntax element selection_parameter indicates one of six possible ways of constructing the virtual sixth vertex F shown in FIGS.
- the syntax element scalar_factors indicates two scalar factors for specifying the virtual fifth vertex E in the local coordinate system of the first plane using the vertices of the first triangle.
- the two scalar factors correspond to two scaling factors for scaling the distance between the vertices of the first triangle.
- the two scalar factors correspond to the two scaling factors for AB and AC, as in the example of FIG.
- the syntax element 2D_vector indicates a two-dimensional vector corresponding to the difference between the fifth vertex E and the sixth vertex F in the local coordinate system of the first plane. Specifically, 2D_vector indicates a two-dimensional vector as shown in FIG.
- FIG. 61 is a syntax diagram showing another syntax structure example of vertex information for one vertex according to this aspect.
- the syntax element is_init_angles
- another method of deriving or predicting the dihedral angle without direct decoding is used.
- prediction elements elements used for prediction, are obtained from previously decoded vertices.
- the dihedral angle can be predicted in the same manner as the example described using FIGS. 37, 38, 39 and 40 in the first mode.
- the first angle of the three angles used in the first aspect can be used as the dihedral angle.
- Additional residuals may be decoded after decoding the dihedral angle.
- the value decoded as the dihedral angle may represent the integer portion of the dihedral angle floating point value
- the value decoded as the residual represents the fractional portion of the dihedral angle floating point value. may Adding the fractional part to the integer part gives the actual dihedral angle.
- FIG. 50, 51, 52, 53, 54 and 55 show six scenarios for constructing a virtual sixth vertex F.
- FIG. 50, 51, 52, 53, 54 and 55 show six scenarios for constructing a virtual sixth vertex F.
- FIG. 50 is a conceptual diagram showing an example of the fourth triangle and sixth vertex F according to this aspect.
- the first triangle ABC is similar to the fourth triangle FCB.
- the first vertex A, the second vertex B and the third vertex C of the first triangle correspond to the sixth vertex F, the third vertex C and the second vertex B of the fourth triangle, respectively.
- FIG. 51 is a conceptual diagram showing another example of the fourth triangle and sixth vertex F according to this aspect.
- the first triangle ABC is similar to the fourth triangle FBC.
- the first vertex A, the second vertex B and the third vertex C of the first triangle correspond to the sixth vertex F, the second vertex B and the third vertex C of the fourth triangle, respectively.
- FIG. 52 is a conceptual diagram showing still another example of the fourth triangle and sixth vertex F according to this aspect.
- the first triangle ABC is similar to the fourth triangle CBF.
- the first vertex A, the second vertex B and the third vertex C of the first triangle correspond to the third vertex C, the second vertex B and the sixth vertex F of the fourth triangle, respectively.
- FIG. 53 is a conceptual diagram showing yet another example of the fourth triangle and sixth vertex F according to this aspect.
- the first triangle ABC is similar to the fourth triangle CFB.
- the first vertex A, the second vertex B and the third vertex C of the first triangle correspond to the third vertex C, the sixth vertex F and the second vertex B of the fourth triangle, respectively.
- FIG. 54 is a conceptual diagram showing yet another example of the fourth triangle and sixth vertex F according to this aspect.
- the first triangle ABC is similar to the fourth triangle BFC.
- the first vertex A, the second vertex B and the third vertex C of the first triangle correspond to the second vertex B, the sixth vertex F and the third vertex C of the fourth triangle, respectively.
- FIG. 55 is a conceptual diagram showing yet another example of the fourth triangle and sixth vertex F according to this aspect.
- the first triangle ABC is similar to the fourth triangle BCF.
- the first vertex A, the second vertex B and the third vertex C of the first triangle correspond to the second vertex B, the third vertex C and the sixth vertex F of the fourth triangle, respectively.
- the fifth vertex E is the virtual vertex of the virtual third triangle on the first plane.
- the third triangle has sides in common with the second triangle.
- the third triangle may be similar to the second triangle or may be an orthogonal projection of the second triangle onto the first plane.
- the selection parameter may indicate how to construct the sixth vertex F that has the minimum difference from the virtual fifth vertex E.
- the selection parameters may also indicate how to construct the fifth vertex E and the sixth vertex F that minimizes the difference between the fifth vertex E and the sixth vertex F.
- the selection parameters may be predefined and only predefined methods for constructing the fifth vertex E and the sixth vertex F may be used.
- Equation (12) enables the magnitudes of BF and CF to be calculated as in Equation (13) below.
- the angle between BC and BF is the same as the angle between BA and BC and is known. Therefore, the coordinate value of F can be calculated from the magnitudes of BF and CF and the angle between BC and BF.
- the unit vector BF unit of BF is obtained by rotating the unit vector BC unit of BC using k, which is the surface normal of triangle ABC, and the Rodrigues rotation formula shown in Equation (14) below. is obtained by
- the coordinate value of the sixth vertex F is derived by scaling the unit vector BF unit by the magnitude of BF.
- FIG. 56 is a conceptual diagram showing an example using only dihedral angles and selection parameters according to this aspect.
- the fourth vertex D is decoded using only dihedral angles and selection parameters.
- a dihedral angle is the angle between a first plane containing the first triangle and a second plane containing the second triangle.
- the selection parameter is a parameter for specifying the sixth vertex F.
- dihedral angles and selection parameters are decoded from the bitstream.
- the sixth vertex F is then constructed using the method indicated by the selection parameters.
- the coordinate value of the fifth vertex E is derived by considering it the same as the sixth vertex F.
- a fourth vertex D is then derived from the fifth vertex E using a dihedral angle.
- FIG. 57 is a conceptual diagram showing an example of using dihedral angles, selection parameters and vectors according to this aspect.
- the fourth vertex D is decoded using a dihedral angle, a selection parameter and a two-dimensional vector.
- a dihedral angle is the angle between a first plane containing the first triangle and a second plane containing the second triangle.
- the selection parameter is a parameter for specifying the sixth vertex F.
- dihedral angles, selection parameters and two-dimensional vectors are decoded from the bitstream.
- a virtual sixth vertex F is constructed on the first plane.
- a fourth vertex D is then derived from the fifth vertex E using a dihedral angle.
- FIG. 58 is a conceptual diagram showing an example using dihedral angles, selection parameters, and scalar factors according to this aspect.
- the fourth vertex D is decoded using the dihedral angle, the selection parameter, the first parameter and the second parameter.
- a dihedral angle is the angle between a first plane containing the first triangle and a second plane containing the second triangle.
- the selection parameter is a parameter for specifying the sixth vertex F.
- the first and second parameters are two scalar factors for specifying the fifth vertex E.
- the dihedral angle, the first parameter and the second parameter are decoded from the bitstream.
- a fourth vertex D is then derived from the fifth vertex E using a dihedral angle.
- ⁇ -bestF 1 and ⁇ -bestF 2 may be decoded from the bitstream as first and second parameters. where bestF 1 and bestF 2 correspond to two scalar factors to represent the sixth vertex F.
- the selection parameters are decoded and the sixth vertex F is constructed on the first plane.
- a fifth vertex E is then derived according to the sixth vertex F, the first parameter and the second parameter, and a fourth vertex D is derived from the fifth vertex E using the dihedral angle.
- the example using three angles including the dihedral angle according to this aspect is the same as the example explained using FIGS. 31, 32 and 33 in the first aspect.
- the fifth vertex E is derived in each of the plurality of derivation methods described using FIGS. 56, 57, 58, 31, 32 and 33. Then, from the fifth vertex E, the fourth vertex D can be derived.
- the second triangle CBD and the third triangle CBE are one-to-one identical.
- the fourth vertex D and the fifth vertex E are on different planes sharing a common side CB. In this case, the fourth vertex D is derived by rotating the fifth vertex E by an amount of ⁇ (or ⁇ ) around the side BC. where ⁇ is the dihedral angle.
- FIG. 65 is a block diagram showing a configuration example of the decoding device 200 according to this aspect.
- the decoding device 200 decodes the 3D mesh from the bitstream.
- the decoding device 200 comprises a traverser 261, a switch 262, a parameter decoder 267, a coordinate derivator 264, a coordinate decoder 265 and an entropy decoder 266.
- the entropy decoder 266 obtains the bitstream.
- the entropy decoder 266 obtains decompression information by decompressing the bitstream and outputs the decompression information.
- Examples of encoding schemes that entropy decoding conforms to include Huffman encoding, arithmetic encoding, range encoding, ANS (Asymmetric Numeral Systems), or CABAC (Context Adaptive Binary Arithmetic Coding: Context- Adaptive Binary Arithmetic Coding).
- the decompressed information is input to the Traverser 261 .
- Traverser 261 interprets the decompression information and outputs the decompression information to either parameter decoder 267 or coordinate decoder 265 via switch 262 .
- the coordinate decoder 265 decodes from the decompressed information the three vertices forming the first triangle on the first plane. As an example of decoding three vertices, the coordinate values of the first vertex A and two difference values are decoded from the decompression information. Next, by adding the two difference values to the coordinate value of the first vertex A, the coordinate value of the second vertex B and the coordinate value of the third vertex C are derived.
- the parameter decoder 267 decodes the dihedral angles and selection parameters from the decompressed information and outputs the dihedral angles and selection parameters to the coordinate derivator 264 .
- a coordinate derivator 264 uses the dihedral angle and selection parameters to derive the vertices of a second triangle that has common sides with the first triangle.
- the second triangle may be on a plane different from the first plane or may be on the same plane as the first plane.
- the coordinate derivator 264 derives the vertices of the second triangle from the dihedral angles and selected parameters using the derivation methods described above with reference to FIGS.
- the vertex information indicating the vertices obtained by the coordinate derivation device 264 or the coordinate decoder 265 is output as the vertex information of the three-dimensional mesh. This vertex information is also fed back to the traverser 261 and used to determine the next traversal.
- the decoding device 200 decodes the three-dimensional mesh according to the configuration and processing described above. This may reduce the code amount of the three-dimensional mesh.
- Vertex information encoding processing in the present disclosure for example, V-PCC (Point Cloud Compression) and G-PCC (Geometry-based Point Cloud Compression) such as point group compression method applicable to encoding of position information of points is.
- V-PCC Point Cloud Compression
- G-PCC Geometry-based Point Cloud Compression
- the encoding device 100 encodes information for specifying the fourth vertex D of the second triangle from the reference first triangle or its three vertices, i.e., the first vertex A, the second vertex B, and the third vertex C. become
- the decoding device 200 decodes information for specifying the fourth vertex D of the second triangle from the reference first triangle or its three vertices, namely, the first vertex A, the second vertex B, and the third vertex C. .
- Information for identifying the fourth vertex D includes dihedral angle information indicating a dihedral angle and specific information for identifying the fifth vertex E.
- the dihedral angle indicated by the dihedral angle information is a dihedral angle formed by a first plane including the first triangle and a second plane including the second triangle.
- a fifth vertex E specified by the specifying information is a vertex on the first plane and a vertex of the third triangle corresponding to the second triangle.
- the fifth vertex E is a vertex on the first plane, it can be identified relatively easily from the first triangle on the first plane. Further, the fifth vertex E to the fourth vertex D can be derived according to the corresponding relationship between the second triangle and the third triangle and the dihedral angle formed by the first plane and the second plane. Since the dihedral angle is, for example, in the range from -180 degrees to 180 degrees, an increase in code amount is suppressed. Therefore, efficient encoding and decoding of the fourth vertex D can be performed by the above configuration and processing.
- the information for specifying the fourth vertex D is, as the above-mentioned specifying information or in place of the above-mentioned specifying information, "(1) vertex (fifth vertex E) of polygon (third triangle BEC) position information" or "(2) information on the position and shape of the polygon (third triangle BEC)".
- the information for specifying the fourth vertex D may be used as the dihedral angle information or in place of the dihedral angle information (3) Vertices of the polygon (third triangle BEC) (third 5 vertex E) and the position of the target vertex (fourth vertex D) and information indicating the distance and direction". Further, the information for specifying the fourth vertex D is, as the dihedral angle information or in place of the dihedral angle information, "(4) a plane including a polygon (third triangle BEC) and , information indicating the difference from the plane containing the polygon (second triangle BDC) having the target vertex (fourth vertex D).
- any of the above information may be indicated using an angle. This may reduce the code amount and improve the flexibility and accuracy of prediction. Also, information indicating which of the above information is to be used may be encoded.
- "(1) Polygon vertex position information” may indicate the coordinate values of the second vertex B, third vertex C, and fifth vertex E of the third triangle BEC. If information about the position and shape of the reference first triangle or the position information of the first vertex A, the second vertex B and the third vertex C are specified, the position information of the vertex of the polygon is the fifth vertex Only the coordinate values of E may be shown.
- the coordinate value of the fifth vertex E may be represented by two-dimensional coordinate values.
- a coordinate value may be expressed using a difference from other coordinate values, and the coordinate value of the fifth vertex E indicates the difference from the coordinate values of the first vertex A, the second vertex B, or the third vertex C. It may be expressed using a vector.
- polygons may be other than triangles, and may be quadrilaterals.
- the coordinate values of the fifth vertex E may be used.
- information for deriving the coordinate value of the sixth vertex F and information indicating the difference between the coordinate value of the sixth vertex F and the coordinate value of the fifth vertex E are encoded. may be changed.
- information for deriving the coordinate value of the sixth vertex F information indicating the common side of the fourth triangle having the sixth vertex F and the first triangle ABC may be encoded.
- the angle between the side of the fourth triangle having the sixth vertex F and the side of the first triangle ABC may be encoded.
- the information indicating the difference between the coordinate value of the sixth vertex F and the coordinate value of the fifth vertex E may be information indicating a two-dimensional vector corresponding to the difference. Also, the angle between the side of the fourth triangle having the sixth vertex F and the side of the third triangle having the fifth vertex E may be encoded.
- the coordinate values of the fifth vertex E and the sixth vertex F do not have to be output explicitly, and are virtually used in the process of calculation for setting and deriving the coordinate value of the fourth vertex D. good too. Also, information indicating which information is used to specify the coordinate value of the sixth vertex F may be encoded.
- "(2) information about the position and shape of the polygon” may be information specifying the position and shape of the third triangle BEC. If the information about the position and shape of the reference first triangle ABC or the position information of the first vertex A, the second vertex B and the third vertex C are specified, the position and shape of the third triangle BEC are specified.
- the information may indicate information indicating the side BC, the angle formed by the side BC and the side CE, and the angle formed by the side BC and the side BE.
- the information indicating the side BC corresponds to the information indicating the use of the third triangle BEC.
- Information indicating the first vertex A may be encoded instead of the information indicating the side BC.
- Information indicating the first vertex A corresponds to information indicating that the fifth vertex E is on the opposite side of the first vertex A across the side BC.
- the third triangle BEC on the same plane as the first triangle ABC is used for deriving the position information of the fourth vertex D to be processed, only the above two angles with respect to the fifth vertex E may be encoded. This makes it possible to derive the position and shape of the third triangle BEC, i.e., the position information of the fifth vertex E, from only two angles, compared to the case of encoding the coordinate values of the fifth vertex E. It is possible to reduce the amount of code by
- the angle itself may be encoded, or an index specifying one of a plurality of predefined angles may be encoded. Multiple combinations of two angles may be predefined. An index specifying one of the multiple combinations may then be encoded.
- Information indicating one angle and one side length may be encoded instead of the above two angles.
- the angle formed by the side BC and the side BE and the length of the side BE may be encoded.
- information indicating one angle and one perpendicular length may be encoded.
- the angle formed by the side BC and the side BE and the length of the perpendicular from the fifth vertex E to the side BC may be coded.
- information indicating the lengths of two sides may be encoded.
- the length of side BE and side CE may be encoded.
- “information on the position and shape of the fourth triangle BFC having the sixth vertex F different from the fifth vertex E”, and “information on the position and shape of the fourth triangle BFC and the third triangle BFC "information indicating the difference from the triangle BEC” may be used.
- “Information specifying the position and shape of the fourth triangle BFC” may include information indicating the side BC.
- Information indicating the side BC corresponds to information indicating the use of the fourth triangle BFC.
- Information indicating the first vertex A may be encoded instead of the information indicating the side BC.
- Information indicating the first vertex A corresponds to information indicating that the sixth vertex F is on the opposite side of the first vertex A across the side BC.
- Information indicating the symmetry may be encoded.
- Information indicating symmetry may be an index indicating a derivation method to be used among a plurality of derivation methods.
- a plurality of derivation methods include, for example, a method using the line symmetry between the first vertex A and the sixth vertex F with respect to the side BC, and a method using the fact that the first vertex A and the sixth vertex F , rotating the first triangle ABC in a given direction, flipping the first triangle ABC in a given direction, and combining these methods.
- Information indicating the difference between the fourth triangle BFC and the third triangle BEC may include a two-dimensional vector indicating the difference between the sixth vertex F and the fifth vertex E, The angle formed and the angle formed by the side BE and the side BF may be included.
- the information indicating the difference between the fourth triangle BFC and the third triangle BEC when the sixth vertex F is on the same side as the fifth vertex E with respect to the side BC, the first triangle ABC and the third triangle BEC It is possible to reduce the amount of code compared to the case of encoding information indicating the difference between .
- (3) Information indicating the distance and direction between the position of the vertex of the polygon and the position of the vertex to be processed is the distance between the fifth vertex E of the third triangle BEC and the fourth vertex D to be processed.
- a difference vector indicating distance and direction may be shown. If the position of the fourth vertex D coincides with the position of the fifth vertex E, or if the fourth vertex D is coplanar with the fifth vertex E, this information may be omitted.
- (4) information indicating the difference between a plane containing a polygon and a plane containing a polygon having a vertex to be processed is the difference between the plane containing the third triangle BEC and the plane containing the second triangle BDC.
- the angle for example, the angle formed by the side BE and the side BD or the angle formed by the side CE and the side CD may be encoded.
- the angle formed by the side BE and the side BD or the angle formed by the side CE and the side CD the angle itself may be encoded, or an index specifying one of a plurality of predetermined angles. may be encoded.
- a plurality of angles defined in advance may also be commonly used when deriving the angle formed by the side BC and the side CE and the angle formed by the side BC and the side BE.
- An index indicating a plurality of combinations of the angle formed by the side BE and the side BD, the angle formed by the side CE and the side CD, the angle formed by the side BC and the side CE, and the angle formed by the side BC and the side BE. may be defined in advance. This makes it possible to further reduce the code amount compared to encoding the angle itself.
- the angle may be omitted.
- the difference vector may be encoded when the angle is represented by an index, when the angle is represented by integer precision, or when the coordinate value is represented by integer precision.
- the fourth vertex D may be used as the first vertex A, the second vertex B, or the third vertex C with respect to other vertices.
- a plurality of processing methods may be switched by selecting a processing method such as an encoding method or a decoding method for each vertex to be processed.
- information indicating the processing method used to encode the processed vertex may be encoded.
- a plurality of processing methods may be switched by selecting a processing method for each three-dimensional mesh, and information indicating the processing method may be encoded for each three-dimensional mesh.
- vertex described in this disclosure may refer to the position of the vertex.
- FIG. 66 is a flowchart showing an example of basic encoding processing according to this embodiment.
- the circuit 151 of the encoding device 100 shown in FIG. 24 performs the encoding process shown in FIG. 66 in operation.
- the circuit 151 generates first vertex information indicating the position of the first vertex of the first triangle, second vertex information indicating the position of the second vertex of the first triangle, and third vertex of the first triangle.
- the third vertex information indicating the position of is encoded (S151).
- the circuit 151 outputs dihedral angle information indicating the dihedral angle between the first plane and the second plane as fourth vertex information indicating the position of the fourth vertex of the second triangle, and the position of the fifth vertex. is encoded (S152).
- the first triangle is a triangle in the three-dimensional mesh and a triangle on the first plane.
- a second triangle is a triangle in a three-dimensional mesh, a triangle on a second plane, a triangle having a second vertex and a third vertex.
- the fifth vertex is the virtual vertex of the third triangle.
- a third triangle is a virtual triangle on the first plane, a virtual triangle having a second vertex and a third vertex, and a virtual triangle corresponding to the second triangle.
- the encoding device 100 may be able to encode information for specifying the position of the fifth vertex of the third triangle on the first plane using the specific information. Also, since the third triangle on the first plane corresponds to the second triangle on the second plane, the position of the fifth vertex of the third triangle on the first plane, the first plane and the second plane It is assumed that the position of the fourth vertex of the second triangle on the second plane can be identified according to the dihedral angle with . Therefore, the encoding device 100 may be able to encode information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- the fifth vertex is a virtual vertex on the first plane, it is assumed that it is relatively easy to locate the fifth vertex according to the first triangle on the first plane. Therefore, encoding device 100 may be able to support efficient processing. Also, the dihedral angle is assumed to fall within a certain range, such as from -180 degrees to 180 degrees. Therefore, the encoding device 100 may be able to suppress an increase in code amount. That is, encoding device 100 may be able to efficiently encode information for specifying the position of the fourth vertex.
- the third triangle may be a triangle similar to the second triangle.
- the encoding device 100 may be able to encode information for specifying the position of the fifth vertex of the third triangle similar to the second triangle. Further, according to the similarity relationship between the second triangle and the third triangle, the position of the fifth vertex of the third triangle on the first plane, and the dihedral angle between the first plane and the second plane, the second plane It is assumed that the location of the fourth vertex of the second triangle above can be determined. Therefore, the encoding device 100 may be able to efficiently encode information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- the third triangle may be an orthogonal projection of the second triangle onto the first plane.
- the encoding device 100 may be able to encode information for identifying the position of the fifth vertex of the third triangle corresponding to the orthogonal projection of the second triangle onto the first plane. Further, the second It is assumed that the position of the fourth vertex of the second triangle on the plane can be determined. Therefore, the encoding device 100 may be able to efficiently encode information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- the identification information includes two angles for identifying the position of the fifth vertex from two positions of two vertices of at least one side of the first triangle using two angles with respect to at least one side. It may contain information indicating Accordingly, encoding device 100 may be able to encode information for specifying the position of the fifth vertex using two angles. Also, each angle is assumed to fall within a certain range, such as from -180 degrees to 180 degrees. Therefore, the encoding device 100 may be able to suppress an increase in code amount.
- the specific information may include information indicating a two-dimensional vector between the position of the fifth vertex and the position of the sixth vertex.
- the sixth vertex is the virtual vertex of the fourth triangle.
- the fourth triangle is a virtual triangle on the first plane, has a second vertex and a third vertex, and is a virtual triangle similar to the first triangle.
- encoding device 100 may be able to encode information for specifying the position of the fifth vertex using a two-dimensional vector. It is also assumed that the position of the fifth vertex can be efficiently represented by a two-dimensional vector. Therefore, the encoding device 100 may be able to encode information efficiently indicating the position of the fifth vertex, and may be able to suppress an increase in the amount of code.
- the identification information includes information indicating two scalar factors for identifying the position of the fifth vertex by multiplying two unit vectors corresponding to two sides of the first triangle by two scalar factors. may contain.
- encoding device 100 may be able to encode information for specifying the position of the fifth vertex using two scalar factors. It is also assumed that the position of the fifth vertex can be efficiently expressed by two scalar factors. Therefore, the encoding device 100 may be able to encode information efficiently indicating the position of the fifth vertex, and may be able to suppress an increase in the amount of code.
- the specific information may include information indicating the correspondence relationship between the second triangle and the third triangle.
- the encoding device 100 may be able to encode information indicating the correspondence even when the correspondence between the second triangle and the third triangle is adaptively changed. Therefore, encoding device 100 may be able to encode information for specifying the position of the fourth vertex even when the correspondence relationship between the second triangle and the third triangle is adaptively changed. . Also, the encoding device 100 may be able to suppress an increase in the code amount by adaptively changing the correspondence between the second triangle and the third triangle.
- the specific information may include information indicating the correspondence relationship between the first triangle and the fourth triangle.
- the encoding device 100 may be able to encode the information indicating the correspondence. Therefore, encoding device 100 may be able to encode information for identifying the position of the fourth vertex even when the correspondence relationship between the first triangle and the fourth triangle is adaptively changed. . Also, the encoding device 100 may be able to suppress an increase in the code amount by adaptively changing the correspondence between the first triangle and the fourth triangle.
- the specific information includes the correspondence relationship between the first triangle and the fourth triangle, and the correspondence relationship between the second triangle and the third triangle, in which the position of the sixth vertex is considered to match the position of the fifth vertex.
- the sixth vertex is the virtual vertex of the fourth triangle.
- the fourth triangle is a virtual triangle on the first plane, has a second vertex and a third vertex, and is a virtual triangle similar to the first triangle.
- the encoding device 100 may be able to encode information for specifying the position of the fifth vertex according to the correspondence relationship. Then, the encoding device 100 may be able to efficiently encode information for specifying the position of the fourth vertex by using the dihedral angle and the correspondence relationship.
- the circuit 151 may select one mode from a plurality of modes including one or more specific modes in which the dihedral angle information and the specific information are encoded. Circuit 151 may then encode mode information indicating one mode, and encode dihedral angle information and specific information if the one mode is included in one or more specific modes.
- the encoding device 100 may adaptively encode the dihedral angle information and the specific information according to a mode selected from a plurality of modes. Accordingly, encoding device 100 may be able to efficiently encode information for specifying the position of the fourth vertex.
- the specific information may include the type of information determined according to the one mode.
- encoding apparatus 100 may be able to encode the type of information corresponding to a mode selected from a plurality of modes. Therefore, encoding device 100 may be able to efficiently encode information for specifying the position of the fourth vertex according to a mode selected from a plurality of modes.
- the one or more specific modes may include at least one of a first specific mode, a second specific mode, a third specific mode, and a fourth specific mode.
- the identification information includes information indicating a two-dimensional vector between the position of the fifth vertex and the position of the sixth vertex.
- the identification information includes information indicating correspondence between the first triangle and the fourth triangle, where the position of the sixth vertex is considered to match the position of the fifth vertex.
- the sixth vertex is the virtual vertex of the fourth triangle.
- the fourth triangle is a virtual triangle on the first plane, has a second vertex and a third vertex, and is a virtual triangle similar to the first triangle.
- encoding device 100 can efficiently encode information for specifying the position of the fourth vertex according to a mode selected from a plurality of modes including at least one of the four modes. Sometimes we can.
- the dihedral angle information may indicate the dihedral angle by the difference between the dihedral angle and a value predicted from already encoded information.
- the encoding device 100 may be able to reduce the value indicating the dihedral angle for specifying the position of the fourth vertex. Therefore, this may allow the encoding apparatus 100 to suppress an increase in code amount.
- information indicating two angles may indicate each of the two angles by a difference between the angle and a value predicted from already encoded information.
- the encoding device 100 may be able to reduce the values indicating each of the two angles for identifying the position of the fifth vertex. Therefore, this may allow the encoding apparatus 100 to suppress an increase in code amount.
- the third triangle may be a triangle congruent with the second triangle.
- the second triangle and the third triangle may have rotational symmetry with respect to a straight line passing through the second vertex and the third vertex.
- the encoding device 100 may be able to encode information for specifying the position of the fifth vertex of the third triangle congruent with the second triangle. Also, according to the congruence relationship between the second triangle and the third triangle, the position of the fifth vertex of the third triangle on the first plane, and the dihedral angle between the first plane and the second plane, the second plane It is assumed that the location of the fourth vertex of the second triangle above can be determined. Therefore, the encoding device 100 may be able to efficiently encode information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- FIG. 67 is a flowchart showing an example of basic decoding processing according to this embodiment.
- the circuit 251 of the decoding device 200 shown in FIG. 25 performs the decoding process shown in FIG. 67 in operation.
- the circuit 251 outputs first vertex information indicating the position of the first vertex of the first triangle, second vertex information indicating the position of the second vertex of the first triangle, and third vertex of the first triangle.
- the third vertex information indicating the position of is decoded (S251).
- the circuit 251 outputs dihedral angle information indicating the dihedral angle between the first plane and the second plane as fourth vertex information indicating the position of the fourth vertex of the second triangle, and the position of the fifth vertex. (S252).
- the first triangle is a triangle in the three-dimensional mesh and a triangle on the first plane.
- a second triangle is a triangle in a three-dimensional mesh, a triangle on a second plane, a triangle having a second vertex and a third vertex.
- the fifth vertex is the virtual vertex of the third triangle.
- a third triangle is a virtual triangle on the first plane, a virtual triangle having a second vertex and a third vertex, and a virtual triangle corresponding to the second triangle.
- the decoding device 200 may be able to decode information for specifying the position of the fifth vertex of the third triangle on the first plane using the specifying information. Also, since the third triangle on the first plane corresponds to the second triangle on the second plane, the position of the fifth vertex of the third triangle on the first plane, the first plane and the second plane It is assumed that the position of the fourth vertex of the second triangle on the second plane can be identified according to the dihedral angle with . Therefore, the decoding device 200 may be able to decode information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- decoding device 200 may be able to support efficient processing. Also, the dihedral angle is assumed to fall within a certain range, such as from -180 degrees to 180 degrees. Therefore, decoding device 200 may be able to suppress an increase in code amount. That is, decoding device 200 may be able to efficiently decode information for identifying the position of the fourth vertex.
- the third triangle may be a triangle similar to the second triangle.
- decoding device 200 may be able to decode information for specifying the position of the fifth vertex of the third triangle similar to the second triangle. Further, according to the similarity relationship between the second triangle and the third triangle, the position of the fifth vertex of the third triangle on the first plane, and the dihedral angle between the first plane and the second plane, the second plane It is assumed that the location of the fourth vertex of the second triangle above can be determined. Therefore, the decoding device 200 may be able to efficiently decode the information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- the third triangle may be an orthogonal projection of the second triangle onto the first plane.
- the decoding device 200 may be able to decode information for identifying the position of the fifth vertex of the third triangle corresponding to the orthogonal projection of the second triangle onto the first plane. Further, the second It is assumed that the position of the fourth vertex of the second triangle on the plane can be determined. Therefore, the decoding device 200 may be able to efficiently decode the information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- the identification information includes two angles for identifying the position of the fifth vertex from two positions of two vertices of at least one side of the first triangle using two angles with respect to at least one side. It may contain information indicating Thereby, decoding device 200 may be able to decode information for specifying the position of the fifth vertex using two angles. Also, each angle is assumed to fall within a certain range, such as from -180 degrees to 180 degrees. Therefore, decoding device 200 may be able to suppress an increase in code amount.
- the specific information may include information indicating a two-dimensional vector between the position of the fifth vertex and the position of the sixth vertex.
- the sixth vertex is the virtual vertex of the fourth triangle.
- the fourth triangle is a virtual triangle on the first plane, has a second vertex and a third vertex, and is a virtual triangle similar to the first triangle.
- decoding device 200 may be able to decode information for specifying the position of the fifth vertex using a two-dimensional vector. It is also assumed that the position of the fifth vertex can be efficiently represented by a two-dimensional vector. Therefore, the decoding device 200 may be able to decode information efficiently indicating the position of the fifth vertex, and may be able to suppress an increase in the code amount.
- the identification information includes information indicating two scalar factors for identifying the position of the fifth vertex by multiplying two unit vectors corresponding to two sides of the first triangle by two scalar factors. may contain.
- the decoding device 200 may be able to decode information for specifying the position of the fifth vertex using two scalar factors. It is also assumed that the position of the fifth vertex can be efficiently expressed by two scalar factors. Therefore, the decoding device 200 may be able to decode information efficiently indicating the position of the fifth vertex, and may be able to suppress an increase in the code amount.
- the specific information may include information indicating the correspondence relationship between the second triangle and the third triangle.
- the decoding device 200 may be able to decode the information indicating the correspondence. Therefore, decoding device 200 may be able to decode information for identifying the position of the fourth vertex even when the correspondence relationship between the second triangle and the third triangle is adaptively changed. Also, decoding device 200 may be able to suppress an increase in the amount of code by adaptively changing the correspondence between the second triangle and the third triangle.
- the specific information may include information indicating the correspondence relationship between the first triangle and the fourth triangle.
- decoding device 200 may be able to decode information indicating the correspondence even when the correspondence between the first triangle and the fourth triangle is adaptively changed. Therefore, decoding device 200 may be able to decode information for identifying the position of the fourth vertex even when the correspondence relationship between the first triangle and the fourth triangle is adaptively changed. Also, decoding device 200 may be able to suppress an increase in the amount of code by adaptively changing the correspondence relationship between the first triangle and the fourth triangle.
- the specific information includes the correspondence relationship between the first triangle and the fourth triangle, and the correspondence relationship between the second triangle and the third triangle, in which the position of the sixth vertex is considered to match the position of the fifth vertex.
- the sixth vertex is the virtual vertex of the fourth triangle.
- the fourth triangle is a virtual triangle on the first plane, has a second vertex and a third vertex, and is a virtual triangle similar to the first triangle.
- the decoding device 200 may be able to decode the information for specifying the position of the fifth vertex depending on the correspondence. Then, the decoding device 200 may be able to efficiently decode the information for specifying the position of the fourth vertex by the dihedral angle and the correspondence relationship.
- the circuit 251 may select one mode from a plurality of modes including one or more specific modes in which the dihedral angle information and the specific information are decoded. Circuit 251 may then decode mode information indicating one mode, and decode dihedral angle information and specific information if the one mode is included in one or more specific modes.
- the decoding device 200 may be able to adaptively decode the dihedral angle information and the specific information according to a mode selected from a plurality of modes. Accordingly, decoding device 200 may be able to efficiently decode information for specifying the position of the fourth vertex.
- the specific information may include the type of information determined according to the one mode.
- decoding device 200 may be able to decode the type of information corresponding to the mode selected from a plurality of modes. Therefore, decoding device 200 may be able to efficiently decode information for identifying the position of the fourth vertex according to a mode selected from a plurality of modes.
- the one or more specific modes may include at least one of a first specific mode, a second specific mode, a third specific mode, and a fourth specific mode.
- the identification information includes information indicating a two-dimensional vector between the position of the fifth vertex and the position of the sixth vertex.
- the identification information includes information indicating correspondence between the first triangle and the fourth triangle, where the position of the sixth vertex is considered to match the position of the fifth vertex.
- the sixth vertex is the virtual vertex of the fourth triangle.
- the fourth triangle is a virtual triangle on the first plane, has a second vertex and a third vertex, and is a virtual triangle similar to the first triangle.
- decoding device 200 can efficiently decode information for specifying the position of the fourth vertex according to a mode selected from a plurality of modes including at least one of the four modes.
- the dihedral angle information may indicate the dihedral angle by the difference between the dihedral angle and a value predicted from already decoded information.
- the decoding device 200 may be able to reduce the value indicating the dihedral angle for specifying the position of the fourth vertex. Accordingly, the decoding device 200 may be able to suppress an increase in the code amount.
- the information indicating two angles may indicate each of the two angles by the difference between the angle and a value predicted from already decoded information.
- the decoding device 200 may be able to reduce the values indicating each of the two angles for specifying the position of the fifth vertex. Accordingly, the decoding device 200 may be able to suppress an increase in the code amount.
- the third triangle may be a triangle congruent with the second triangle.
- the second triangle and the third triangle may have rotational symmetry with respect to a straight line passing through the second vertex and the third vertex.
- the decoding device 200 may be able to decode information for identifying the position of the fifth vertex of the third triangle congruent with the second triangle. Also, according to the congruence relationship between the second triangle and the third triangle, the position of the fifth vertex of the third triangle on the first plane, and the dihedral angle between the first plane and the second plane, the second plane It is assumed that the location of the fourth vertex of the second triangle above can be determined. Therefore, the decoding device 200 may be able to efficiently decode the information for specifying the position of the fourth vertex using the dihedral angle information and the specifying information.
- the dihedral angle information may correspond to first_parameter, dihedral_angle, or the like.
- the specific information may correspond to selection_parameter, scalar_factors, 2D_vector, second_angle, third_angle, or the like.
- the mode may correspond to prediction_mode or the like.
- the specific information may include a mode.
- the specific mode may correspond to only_angles_mode, angle_vector_mode, angle_scalar_mode, one_angle_mode, or the like. Also, the specific mode may be expressed as a dihedral angle mode.
- the first specific mode may correspond to only_angles_mode or the like.
- the second specific mode may correspond to angle_vector_mode or the like.
- the third specific mode may correspond to angle_scalar_mode or the like.
- the fourth specific mode may correspond to one_angle_mode or the like.
- FIG. 68 is a block diagram showing still another configuration example of encoding apparatus 100 according to the present embodiment.
- encoding device 100 comprises a first encoder 171 and a second encoder 172 .
- the first encoder 171 is, for example, an electric circuit.
- the first encoder 171 may correspond to the vertex information encoder 101 and coordinate encoder 165 described above, or may be implemented with the circuit 151 and memory 152 described above.
- the second encoder 172 is, for example, an electric circuit.
- the second encoder 172 may correspond to the vertex information encoder 101, the angle derivation device 163, the angle encoder 164, the parameter derivation device 167, the parameter encoder 168, etc. described above.
- 151 and memory 152 may be implemented.
- the first encoder 171 outputs first vertex information indicating the position of the first vertex of the first triangle, second vertex information indicating the position of the second vertex of the first triangle, and third vertex information indicating the position of the second vertex of the first triangle. Encode the third vertex information indicating the position of the vertex. Then, the second encoder 172 outputs dihedral angle information indicating the dihedral angle between the first plane and the second plane as fourth vertex information indicating the position of the fourth vertex of the second triangle, and It encodes specific information for specifying the positions of the 5 vertices.
- the first triangle is a triangle in the three-dimensional mesh and a triangle on the first plane.
- a second triangle is a triangle in a three-dimensional mesh, a triangle on a second plane, a triangle having a second vertex and a third vertex.
- the fifth vertex is the virtual vertex of the third triangle.
- a third triangle is a virtual triangle on the first plane, a virtual triangle having a second vertex and a third vertex, and a virtual triangle corresponding to the second triangle.
- the encoding device 100 may be able to efficiently encode information for specifying the position of the fourth vertex. Therefore, the encoding device 100 may be able to reduce the code amount of the three-dimensional mesh.
- the second encoder 172 may encode the mode information described above.
- encoding device 100 may comprise a third encoder for encoding mode information.
- FIG. 69 is a block diagram showing still another configuration example of the decoding device 200 according to this embodiment.
- the decoding device 200 comprises a first decoder 271 and a second decoder 272 .
- the first decoder 271 is, for example, an electric circuit.
- the first decoder 271 may correspond to the vertex information decoder 201 and coordinate decoder 265 described above, or may be implemented with the circuit 251 and memory 252 described above.
- the second decoder 272 is, for example, an electric circuit.
- the second decoder 272 may correspond to the vertex information decoder 201, the angle decoder 263, the coordinate derivation device 264, the parameter decoder 267, etc. described above, and may be implemented with the circuit 251 and memory 252 described above. may have been
- the first decoder 271 outputs first vertex information indicating the position of the first vertex of the first triangle, second vertex information indicating the position of the second vertex of the first triangle, and third vertex of the first triangle. Decode the third vertex information indicating the position of . Then, the second decoder 272 outputs, as fourth vertex information indicating the position of the fourth vertex of the second triangle, dihedral angle information indicating the dihedral angle between the first plane and the second plane, and the fifth Decode specific information for specifying the position of the vertex.
- the first triangle is a triangle in the three-dimensional mesh and a triangle on the first plane.
- a second triangle is a triangle in a three-dimensional mesh, a triangle on a second plane, a triangle having a second vertex and a third vertex.
- the fifth vertex is the virtual vertex of the third triangle.
- a third triangle is a virtual triangle on the first plane, a virtual triangle having a second vertex and a third vertex, and a virtual triangle corresponding to the second triangle.
- the decoding device 200 may be able to efficiently decode the information for specifying the position of the fourth vertex. Therefore, the decoding device 200 may be able to reduce the code amount of the three-dimensional mesh.
- the second decoder 272 may decode the mode information described above.
- the decoding device 200 may comprise a third decoder for decoding mode information.
- a process performed by a specific component in the embodiment may be performed by another component instead of the specific component.
- the order of multiple processes may be changed, and multiple processes may be executed in parallel.
- the encoding and decoding of the present disclosure can be applied to encoding and decoding of vertex information indicating the positions of vertices.
- the encoding and decoding of the present disclosure are not limited to the vertices of faces in a three-dimensional mesh, and may be applied to the encoding and decoding of vertex information indicating the positions of other vertices.
- each process of the present disclosure may be performed as one of a plurality of selectable processes.
- At least some of the configurations of the present disclosure may be implemented as integrated circuits. At least some of the multiple processes of the present disclosure may be used as an encoding method or a decoding method.
- a program for causing a computer to execute the encoding method or the decoding method may be used.
- a non-temporary computer-readable recording medium on which the program is recorded may be used.
- a bitstream for causing the decoding device 200 to perform the decoding process may be used.
- At least some of the multiple configurations and multiple processes of the present disclosure may be used as a transmitting device, a receiving device, a transmitting method, and a receiving method.
- a program for causing a computer to execute the transmission method or the reception method may be used.
- a non-temporary computer-readable recording medium on which the program is recorded may be used.
- the present disclosure is useful, for example, for encoding devices, decoding devices, transmitting devices, receiving devices, etc. related to three-dimensional meshes, and is applicable to computer graphics systems, three-dimensional data display systems, and the like.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
例えば、三次元メッシュは、コンピュータグラフィックス映像に用いられる。三次元メッシュは、三次元空間における複数の頂点のそれぞれの位置を示す頂点情報、複数の頂点の接続関係を示す接続情報、及び、各頂点又は各面の属性を示す属性情報で構成される。各面は、複数の頂点の接続関係に従って構築される。このような三次元メッシュによって、様々なコンピュータグラフィックス映像が表現され得る。
ここでは、以下のような表現及び用語が用いられる。
三次元メッシュは、複数の面の集合であり、例えば、三次元物体を示す。また、三次元メッシュは、主に、頂点情報、接続情報及び属性情報で構成される。三次元メッシュは、ポリゴンメッシュ又はメッシュと表現される場合がある。また、三次元メッシュは、時間的な変化を有していてもよい。三次元メッシュは、頂点情報、接続情報及び属性情報に関するメタデータを含んでいてもよいし、その他の付加情報を含んでいてもよい。
頂点情報は、頂点(Vertex)を示す情報である。例えば、頂点情報は、三次元空間における頂点の位置を示す。また、頂点は、三次元メッシュを構成する面の頂点に対応する。頂点情報は、「Geometory(ジオメトリ)」と表現される場合がある。また、頂点情報は、位置情報と表現される場合もある。
接続情報は、頂点間の接続を示す情報である。例えば、接続情報は、三次元メッシュの面又は辺を構成するための接続を示す。接続情報は、「Connectivity(コネクティビティ)」と表現される場合がある。また、接続情報は、面情報と表現される場合もある。
属性情報は、頂点又は面の属性を示す情報である。例えば、属性情報は、頂点又は面に対応付けられる色、画像及び法線ベクトル等の属性を示す。属性情報は、「Texture(テクスチャ)」と表現される場合がある。
面は、三次元メッシュを構成する要素である。具体的には、面は、三次元空間における平面上のポリゴンである。例えば、面は、三次元空間における三角形として定められ得る。
平面は、三次元空間における二次元平面である。例えば、平面上にポリゴンが形成され、複数の平面上に複数のポリゴンが形成される。
ビットストリームは、符号化された情報に対応する。ビットストリームは、ストリーム、符号化ビットストリーム、圧縮ビットストリーム、又は、符号化信号とも表現され得る。
符号化するという表現は、格納する、含める、書き込む、記述する、信号化する、送り出す、通知する、保存する、又は、圧縮する等の表現に置き換えられてもよく、これらの表現が相互に置き換えられてもよい。例えば、情報を符号化することは、ビットストリームに情報を含めることであってもよい。また、情報をビットストリームに符号化することは、情報を符号化して、符号化された情報を含むビットストリームを生成することを意味してもよい。
説明において、第1及び第2等の序数が、構成要素などに対して付けられる場合がある。これらの序数は、適宜、付け替えられてもよい。また、構成要素などに対して、序数が新たに与えられてもよいし、取り除かれてもよい。また、これらの序数は、要素を識別するため、要素に付けられる場合があり、意味のある順序に対応しない場合がある。
図1は、本実施の形態に係る三次元メッシュを示す概念図である。三次元メッシュは、複数の面で構成される。例えば、各面は、三角形である。これらの三角形の頂点は、三次元空間において定められる。そして、三次元メッシュは、三次元物体を示す。各面は、色又は画像を有していてもよい。
図4は、本実施の形態に係る符号化復号システムの構成例を示すブロック図である。図4において、符号化復号システムは、符号化装置100及び復号装置200を備える。
図5は、本実施の形態に係る符号化装置100の構成例を示すブロック図である。例えば、符号化装置100は、頂点情報符号化器101、接続情報符号化器102及び属性情報符号化器103を備える。
図7は、本実施の形態に係る復号装置200の構成例を示すブロック図である。例えば、復号装置200は、頂点情報復号器201、接続情報復号器202及び属性情報復号器203を備える。
頂点情報、接続情報及び属性情報は、符号化されて、ビットストリームに格納される。これらの情報とビットストリームの関係を以下に示す。
図12は、本実施の形態に係る符号化復号システムの具体例を示すブロック図である。図12において、符号化復号システムは、三次元データ符号化システム110、三次元データ復号システム210及び外部接続器310を備える。
図24は、本実施の形態に係る符号化装置100の実装例を示すブロック図である。符号化装置100は、回路151及びメモリ152を備える。例えば、図5等に示された符号化装置100の複数の構成要素は、図24に示された回路151及びメモリ152によって実装される。
例えば、頂点情報の符号化及び復号において、頂点の位置を予測する平行四辺形予測方式が用いられてもよい。
本態様では、二面角と他の2つの角度との3つの角度を用いて、参照三角形に対する隣接三角形の非共通頂点が符号化される。すなわち、隣接三角形間の空間的関係を用いて頂点情報が符号化される際、3つの角度のみが符号化される。これにより、ビット数が削減される可能性がある。
図28は、本態様に係る符号化処理の例を示すフローチャートである。まず、三次元メッシュから第1頂点、第2頂点及び第3頂点が導出される(S101)。ここで、第1頂点、第2頂点及び第3頂点は、三次元メッシュの第1平面上に第1三角形を形成する。また、例えば、第1頂点、第2頂点及び第3頂点は、符号化済みの3つの頂点である。
図42は、本態様に係る復号処理の例を示すフローチャートである。まず、三次元メッシュから第1頂点、第2頂点及び第3頂点が導出される(S201)。ここで、第1頂点、第2頂点及び第3頂点は、三次元メッシュの第1平面上に第1三角形を形成する。また、例えば、第1頂点、第2頂点及び第3頂点は、復号済みの3つの頂点である。
本態様では、二面角及び選択パラメータを用いて、参照三角形に対する隣接三角形の非共通頂点が符号化される。すなわち、隣接三角形間の空間的関係を用いて頂点情報が符号化される際、二面角及び選択パラメータが用いられる。ここで、選択パラメータは、例えば、参照三角形に基づいて隣接三角形の非共通頂点を符号化するために、仮想頂点を構築する方法(戦略)を示す。
図47は、本態様に係る符号化処理の例を示すフローチャートである。まず、三次元メッシュから第1頂点、第2頂点及び第3頂点が導出される(S121)。ここで、第1頂点、第2頂点及び第3頂点は、三次元メッシュ上の第1平面上に第1三角形を形成する。また、第1頂点、第2頂点及び第3頂点は、符号化済みの3つの頂点である。
図63は、本態様に係る復号処理の例を示すフローチャートである。まず、三次元メッシュから第1頂点、第2頂点及び第3頂点が導出される(S221)。ここで、第1頂点、第2頂点及び第3頂点は、三次元メッシュの第1平面上に第1三角形を形成する。第1頂点、第2頂点及び第3頂点は、復号済みの3つの頂点である。
本開示における頂点情報の符号化処理は、例えば、V-PCC(Point Cloud Compression)及びG-PCC(Geometry-based Point Cloud Compression)などの点群圧縮方式における点の位置情報の符号化に適用可能である。
図66は、本実施の形態に係る基本的な符号化処理の例を示すフローチャートである。例えば、図24に示された符号化装置100の回路151が、動作において、図66に示された符号化処理を行う。
以上、符号化装置100及び復号装置200の態様を実施の形態に従って説明したが、符号化装置100及び復号装置200の態様は、実施の形態に限定されない。実施の形態に対して当業者が思いつく変形が施されてもよいし、実施の形態における複数の構成要素が任意に組み合わされてもよい。
101、121、144 頂点情報符号化器
102、145 接続情報符号化器
103、122 属性情報符号化器
104、204 前処理器
105、205 後処理器
110 三次元データ符号化システム
111、211 制御器
112、212 入出力処理器
113 三次元データ符号化器
114 システム多重化器
115 三次元データ生成器
123 メタデータ符号化器
124 多重化器
131 頂点画像生成器
132 属性画像生成器
133 メタデータ生成器
134 映像符号化器
141 二次元データ符号化器
142 メッシュデータ符号化器
143 テクスチャ符号化器
148 デスクリプション符号化器
151、251 回路
152、252 メモリ
161、261 トラバーサ
162、262 スイッチ
163 角度導出器
164 角度符号化器
165 座標符号化器
166 エントロピー符号化器
167 パラメータ導出器
168 パラメータ符号化器
171 第1符号化器
172 第2符号化器
200 復号装置
201、221、244 頂点情報復号器
202、245 接続情報復号器
203、222 属性情報復号器
210 三次元データ復号システム
213 三次元データ復号器
214 システム逆多重化器
215、247 提示器
216 ユーザインタフェース
223 メタデータ復号器
224 逆多重化器
231 頂点情報生成器
232 属性情報生成器
234 映像復号器
241 二次元データ復号器
242 メッシュデータ復号器
243 テクスチャ復号器
246 メッシュ再構成器
248 デスクリプション復号器
263 角度復号器
264 座標導出器
265 座標復号器
266 エントロピー復号器
267 パラメータ復号器
271 第1復号器
272 第2復号器
300 ネットワーク
310 外部接続器
Claims (30)
- メモリと、
前記メモリにアクセス可能な回路とを備え、
前記回路は、動作において、
三次元メッシュにおける三角形であり第1平面上の三角形である第1三角形の第1頂点の位置を示す第1頂点情報、前記第1三角形の第2頂点の位置を示す第2頂点情報、及び、前記第1三角形の第3頂点の位置を示す第3頂点情報を符号化し、
前記三次元メッシュにおける三角形であり第2平面上の三角形であり前記第2頂点及び前記第3頂点を有する三角形である第2三角形の第4頂点の位置を示す第4頂点情報として、(i)前記第1平面と前記第2平面とのなす二面角を示す二面角情報、及び、(ii)前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第2三角形に対応する仮想三角形である第3三角形の仮想頂点である第5頂点の位置を特定するための特定情報を符号化する
符号化装置。 - 前記第3三角形は、前記第2三角形に相似する三角形である
請求項1に記載の符号化装置。 - 前記第3三角形は、前記第1平面に対する前記第2三角形の正射影である
請求項1に記載の符号化装置。 - 前記特定情報は、前記第1三角形の少なくとも1つの辺の2つの頂点の2つの位置から前記少なくとも1つの辺に対する2つの角度を用いて前記第5頂点の位置を特定するための前記2つの角度を示す情報を含む
請求項1~3のいずれか1項に記載の符号化装置。 - 前記特定情報は、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置と、前記第5頂点の位置との間の二次元ベクトルを示す情報を含む
請求項1~3のいずれか1項に記載の符号化装置。 - 前記特定情報は、前記第1三角形の2つの辺に対応する2つの単位ベクトルに2つのスカラー因子を乗算することにより前記第5頂点の位置を特定するための前記2つのスカラー因子を示す情報を含む
請求項1~3のいずれか1項に記載の符号化装置。 - 前記特定情報は、前記第2三角形と前記第3三角形との対応関係を示す情報を含む
請求項1~3のいずれか1項に記載の符号化装置。 - 前記特定情報は、前記第1三角形と前記第4三角形との対応関係を示す情報を含む
請求項5に記載の符号化装置。 - 前記特定情報は、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置が前記第5頂点の位置に一致するとみなされる、前記第1三角形と前記第4三角形との対応関係、及び、前記第2三角形と前記第3三角形との対応関係の少なくとも一方を示す情報を含む
請求項1~3のいずれか1項に記載の符号化装置。 - 前記回路は、
前記二面角情報及び前記特定情報が符号化される1つ以上の特定モードを含む複数のモードの中から1つのモードを選択し、
前記1つのモードを示すモード情報を符号化し、
前記1つのモードが前記1つ以上の特定モードに含まれる場合、前記二面角情報及び前記特定情報を符号化する
請求項1~3のいずれか1項に記載の符号化装置。 - 前記1つのモードが前記1つ以上の特定モードに含まれる場合、前記特定情報は、前記1つのモードに従って定められる種類の情報を含む
請求項10に記載の符号化装置。 - 前記1つ以上の特定モードは、第1特定モード、第2特定モード、第3特定モード及び第4特定モードのうちの少なくとも1つを含み、
前記第1特定モードでは、前記第1三角形の少なくとも1つの辺の2つの頂点の2つの位置から前記少なくとも1つの辺に対する2つの角度を用いて前記第5頂点の位置を特定するための前記2つの角度を示す情報を前記特定情報が含み、
前記第2特定モードでは、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置と、前記第5頂点の位置との間の二次元ベクトルを示す情報を前記特定情報が含み、
前記第3特定モードでは、前記第1三角形の2つの辺に対応する2つの単位ベクトルに2つのスカラー因子を乗算することにより前記第5頂点の位置を特定するための前記2つのスカラー因子を示す情報を前記特定情報が含み、
前記第4特定モードでは、前記第6頂点の位置が前記第5頂点の位置に一致するとみなされる、前記第1三角形と前記第4三角形との対応関係を示す情報を前記特定情報が含む
請求項11に記載の符号化装置。 - 前記二面角情報は、前記二面角と、既に符号化された情報から予測される値との差分によって、前記二面角を示す
請求項1~3のいずれか1項に記載の符号化装置。 - 前記2つの角度を示す情報は、前記2つの角度のそれぞれについて、当該角度と、既に符号化された情報から予測される値との差分によって、当該角度を示す
請求項4に記載の符号化装置。 - メモリと、
前記メモリにアクセス可能な回路とを備え、
前記回路は、動作において、
三次元メッシュにおける三角形であり第1平面上の三角形である第1三角形の第1頂点の位置を示す第1頂点情報、前記第1三角形の第2頂点の位置を示す第2頂点情報、及び、前記第1三角形の第3頂点の位置を示す第3頂点情報を復号し、
前記三次元メッシュにおける三角形であり第2平面上の三角形であり前記第2頂点及び前記第3頂点を有する三角形である第2三角形の第4頂点の位置を示す第4頂点情報として、(i)前記第1平面と前記第2平面とのなす二面角を示す二面角情報、及び、(ii)前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第2三角形に対応する仮想三角形である第3三角形の仮想頂点である第5頂点の位置を特定するための特定情報を復号する
復号装置。 - 前記第3三角形は、前記第2三角形に相似する三角形である
請求項15に記載の復号装置。 - 前記第3三角形は、前記第1平面に対する前記第2三角形の正射影である
請求項15に記載の復号装置。 - 前記特定情報は、前記第1三角形の少なくとも1つの辺の2つの頂点の2つの位置から前記少なくとも1つの辺に対する2つの角度を用いて前記第5頂点の位置を特定するための前記2つの角度を示す情報を含む
請求項15~17のいずれか1項に記載の復号装置。 - 前記特定情報は、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置と、前記第5頂点の位置との間の二次元ベクトルを示す情報を含む
請求項15~17のいずれか1項に記載の復号装置。 - 前記特定情報は、前記第1三角形の2つの辺に対応する2つの単位ベクトルに2つのスカラー因子を乗算することにより前記第5頂点の位置を特定するための前記2つのスカラー因子を示す情報を含む
請求項15~17のいずれか1項に記載の復号装置。 - 前記特定情報は、前記第2三角形と前記第3三角形との対応関係を示す情報を含む
請求項15~17のいずれか1項に記載の復号装置。 - 前記特定情報は、前記第1三角形と前記第4三角形との対応関係を示す情報を含む
請求項19に記載の復号装置。 - 前記特定情報は、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置が前記第5頂点の位置に一致するとみなされる、前記第1三角形と前記第4三角形との対応関係、及び、前記第2三角形と前記第3三角形との対応関係の少なくとも一方を示す情報を含む
請求項15~17のいずれか1項に記載の復号装置。 - 前記回路は、
前記二面角情報及び前記特定情報が復号される1つ以上の特定モードを含む複数のモードの中から1つのモードを選択し、
前記1つのモードを示すモード情報を復号し、
前記1つのモードが前記1つ以上の特定モードに含まれる場合、前記二面角情報及び前記特定情報を復号する
請求項15~17のいずれか1項に記載の復号装置。 - 前記1つのモードが前記1つ以上の特定モードに含まれる場合、前記特定情報は、前記1つのモードに従って定められる種類の情報を含む
請求項24に記載の復号装置。 - 前記1つ以上の特定モードは、第1特定モード、第2特定モード、第3特定モード及び第4特定モードのうちの少なくとも1つを含み、
前記第1特定モードでは、前記第1三角形の少なくとも1つの辺の2つの頂点の2つの位置から前記少なくとも1つの辺に対する2つの角度を用いて前記第5頂点の位置を特定するための前記2つの角度を示す情報を前記特定情報が含み、
前記第2特定モードでは、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置と、前記第5頂点の位置との間の二次元ベクトルを示す情報を前記特定情報が含み、
前記第3特定モードでは、前記第1三角形の2つの辺に対応する2つの単位ベクトルに2つのスカラー因子を乗算することにより前記第5頂点の位置を特定するための前記2つのスカラー因子を示す情報を前記特定情報が含み、
前記第4特定モードでは、前記第6頂点の位置が前記第5頂点の位置に一致するとみなされる、前記第1三角形と前記第4三角形との対応関係を示す情報を前記特定情報が含む
請求項25に記載の復号装置。 - 前記二面角情報は、前記二面角と、既に復号された情報から予測される値との差分によって、前記二面角を示す
請求項15~17のいずれか1項に記載の復号装置。 - 前記2つの角度を示す情報は、前記2つの角度のそれぞれについて、当該角度と、既に復号された情報から予測される値との差分によって、当該角度を示す
請求項18に記載の復号装置。 - 三次元メッシュにおける三角形であり第1平面上の三角形である第1三角形の第1頂点の位置を示す第1頂点情報、前記第1三角形の第2頂点の位置を示す第2頂点情報、及び、前記第1三角形の第3頂点の位置を示す第3頂点情報を符号化し、
前記三次元メッシュにおける三角形であり第2平面上の三角形であり前記第2頂点及び前記第3頂点を有する三角形である第2三角形の第4頂点の位置を示す第4頂点情報として、(i)前記第1平面と前記第2平面とのなす二面角を示す二面角情報、及び、(ii)前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第2三角形に対応する仮想三角形である第3三角形の仮想頂点である第5頂点の位置を特定するための特定情報を符号化する
符号化方法。 - 三次元メッシュにおける三角形であり第1平面上の三角形である第1三角形の第1頂点の位置を示す第1頂点情報、前記第1三角形の第2頂点の位置を示す第2頂点情報、及び、前記第1三角形の第3頂点の位置を示す第3頂点情報を復号し、
前記三次元メッシュにおける三角形であり第2平面上の三角形であり前記第2頂点及び前記第3頂点を有する三角形である第2三角形の第4頂点の位置を示す第4頂点情報として、(i)前記第1平面と前記第2平面とのなす二面角を示す二面角情報、及び、(ii)前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第2三角形に対応する仮想三角形である第3三角形の仮想頂点である第5頂点の位置を特定するための特定情報を復号する
復号方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023556456A JPWO2023074673A1 (ja) | 2021-10-26 | 2022-10-25 | |
CN202280070883.6A CN118140250A (zh) | 2021-10-26 | 2022-10-25 | 编码装置、解码装置、编码方法及解码方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163271902P | 2021-10-26 | 2021-10-26 | |
US63/271,902 | 2021-10-26 | ||
US202263346121P | 2022-05-26 | 2022-05-26 | |
US63/346,121 | 2022-05-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023074673A1 true WO2023074673A1 (ja) | 2023-05-04 |
Family
ID=86157885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/039695 WO2023074673A1 (ja) | 2021-10-26 | 2022-10-25 | 符号化装置、復号装置、符号化方法及び復号方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2023074673A1 (ja) |
WO (1) | WO2023074673A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023238867A1 (ja) * | 2022-06-06 | 2023-12-14 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006187015A (ja) | 1998-10-02 | 2006-07-13 | Samsung Electronics Co Ltd | 漸進的な三次元メッシュ情報の符号化/復号化方法及びその装置 |
JP2012517059A (ja) * | 2009-02-06 | 2012-07-26 | トムソン ライセンシング | 3次元メッシュモデルの符号化方法及び装置、並びに符号化された3次元メッシュモデルの復号方法及び装置 |
US8830235B1 (en) * | 1999-09-13 | 2014-09-09 | Alcatel Lucent | Non-uniform relaxation procedure for multiresolution mesh processing |
WO2020230710A1 (ja) * | 2019-05-10 | 2020-11-19 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
-
2022
- 2022-10-25 JP JP2023556456A patent/JPWO2023074673A1/ja active Pending
- 2022-10-25 WO PCT/JP2022/039695 patent/WO2023074673A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006187015A (ja) | 1998-10-02 | 2006-07-13 | Samsung Electronics Co Ltd | 漸進的な三次元メッシュ情報の符号化/復号化方法及びその装置 |
US8830235B1 (en) * | 1999-09-13 | 2014-09-09 | Alcatel Lucent | Non-uniform relaxation procedure for multiresolution mesh processing |
JP2012517059A (ja) * | 2009-02-06 | 2012-07-26 | トムソン ライセンシング | 3次元メッシュモデルの符号化方法及び装置、並びに符号化された3次元メッシュモデルの復号方法及び装置 |
WO2020230710A1 (ja) * | 2019-05-10 | 2020-11-19 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023238867A1 (ja) * | 2022-06-06 | 2023-12-14 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2023074673A1 (ja) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7250952B2 (ja) | 点群コーディングのための方法、装置、およびコンピュータプログラム | |
CN113574540A (zh) | 点云压缩方法和装置 | |
US11350132B2 (en) | High level syntax for geometry-based point cloud compression | |
JP2022526232A (ja) | 点群圧縮のための方法並びにその、装置およびコンピュータプログラム | |
WO2022070469A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
WO2023074673A1 (ja) | 符号化装置、復号装置、符号化方法及び復号方法 | |
KR20200007733A (ko) | Pcc 데이터의 효과적인 압축을 위한 부호화/복호화 방법 및 장치 | |
CN115176279A (zh) | 用于点云译码的方法和装置 | |
WO2023238867A1 (ja) | 符号化装置、復号装置、符号化方法及び復号方法 | |
WO2022071285A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
WO2022071282A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
WO2024075608A1 (ja) | 符号化装置、復号装置、符号化方法及び復号方法 | |
US20240185472A1 (en) | Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head | |
CN118140250A (zh) | 编码装置、解码装置、编码方法及解码方法 | |
WO2020019279A1 (zh) | 视频压缩的方法、装置、计算机系统和可移动设备 | |
US20230421814A1 (en) | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device | |
WO2024009561A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
US20230412837A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
WO2024009562A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
US20240029312A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
WO2024009675A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
WO2022170521A1 (zh) | 几何重构方法、解码器以及计算机存储介质 | |
WO2024009676A1 (ja) | 点群復号装置、点群復号方法及びプログラム | |
WO2023166888A1 (ja) | 復号方法、符号化方法、復号装置及び符号化装置 | |
WO2024065269A1 (zh) | 点云编解码方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22886999 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2023556456 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2022886999 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2022886999 Country of ref document: EP Effective date: 20240527 |