WO2023074673A1 - 符号化装置、復号装置、符号化方法及び復号方法 - Google Patents

符号化装置、復号装置、符号化方法及び復号方法 Download PDF

Info

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
Application number
PCT/JP2022/039695
Other languages
English (en)
French (fr)
Inventor
チョン スン リム
ヂァン ウー
ハン ブン テオ
ケン リン ロイ
チャン ディーン ハン
ジョージ ナダー
ファーマン デュマノブ
敏康 杉尾
賀敬 井口
孝啓 西
Original Assignee
パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ filed Critical パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority to JP2023556456A priority Critical patent/JPWO2023074673A1/ja
Priority to CN202280070883.6A priority patent/CN118140250A/zh
Publication of WO2023074673A1 publication Critical patent/WO2023074673A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image 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

符号化装置(100)は、メモリ(152)と、回路(151)とを備え、回路(151)は、動作において、第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頂点の位置を特定するための特定情報を符号化する。

Description

符号化装置、復号装置、符号化方法及び復号方法
 本開示は、符号化装置等に関する。
 特許文献1において、三次元メッシュデータの符号化及び復号のための方法及び装置が提案されている。
特開2006-187015号公報
 三次元データの符号化処理等に関して更なる改善が望まれている。本開示は、三次元データの符号化処理等を改善することを目的とする。
 本開示の一態様に係る符号化装置は、メモリと、前記メモリにアクセス可能な回路とを備え、前記回路は、動作において、三次元メッシュにおける三角形であり第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態様に係る3つの角度の例を示す概念図である。 第1態様に係る3つの角度の別の例を示す概念図である。 第1態様に係る3つの角度のさらに別の例を示す概念図である。 第1態様に係る複数の頂点に対する頂点情報のシンタックス構造例を示すシンタックス図である。 第1態様に係る1つの頂点に対する頂点情報のシンタックス構造例を示すシンタックス図である。 第1態様に係る1つの頂点に対する頂点情報の別のシンタックス構造例を示すシンタックス図である。 角度の予測に用いられるテーブルの例を示すテーブル図である。 角度の予測に用いられるテーブルの別の例を示すテーブル図である。 前の三角形の頂点に対する角度を用いる予測の例を示す概念図である。 前の三次元メッシュの頂点に対する角度を用いる予測の例を示す概念図である。 第1態様に係る符号化装置の構成例を示すブロック図である。 第1態様に係る復号処理の例を示すフローチャートである。 第1態様に係る復号処理の具体例を示すフローチャートである。 第1態様に係る復号処理の別の具体例を示すフローチャートである。 サイン関数及びコサイン関数のルックアップテーブルの例を示すテーブル図である。 第1態様に係る復号装置の構成例を示すブロック図である。 第2態様に係る符号化処理の例を示すフローチャートである。 第2態様に係る頂点、三角形及び平面の関係を示す図である。 第2態様に係る符号化処理の具体例を示すフローチャートである。 第2態様に係る第4三角形及び第6頂点の例を示す概念図である。 第2態様に係る第4三角形及び第6頂点の別の例を示す概念図である。 第2態様に係る第4三角形及び第6頂点のさらに別の例を示す概念図である。 第2態様に係る第4三角形及び第6頂点のさらに別の例を示す概念図である。 第2態様に係る第4三角形及び第6頂点のさらに別の例を示す概念図である。 第2態様に係る第4三角形及び第6頂点のさらに別の例を示す概念図である。 第2態様に係る二面角及び選択パラメータのみを用いる例を示す概念図である。 第2態様に係る二面角、選択パラメータ及びベクトルを用いる例を示す概念図である。 第2態様に係る二面角、選択パラメータ及びスカラー因子を用いる例を示す概念図である。 第2態様に係る複数の頂点に対する頂点情報のシンタックス構造例を示すシンタックス図である。 第2態様に係る1つの頂点に対する頂点情報のシンタックス構造例を示すシンタックス図である。 第2態様に係る1つの頂点に対する頂点情報の別のシンタックス構造例を示すシンタックス図である。 第2態様に係る符号化装置の構成例を示すブロック図である。 第2態様に係る復号処理の例を示すフローチャートである。 第2態様に係る復号処理の具体例を示すフローチャートである。 第2態様に係る復号装置の構成例を示すブロック図である。 実施の形態に係る基本的な符号化処理の例を示すフローチャートである。 実施の形態に係る基本的な復号処理の例を示すフローチャートである。 実施の形態に係る符号化装置のさらに別の構成例を示すブロック図である。 実施の形態に係る復号装置のさらに別の構成例を示すブロック図である。
 <序論(Introduction)>
 例えば、三次元メッシュは、コンピュータグラフィックス映像に用いられる。三次元メッシュは、三次元空間における複数の頂点のそれぞれの位置を示す頂点情報、複数の頂点の接続関係を示す接続情報、及び、各頂点又は各面の属性を示す属性情報で構成される。各面は、複数の頂点の接続関係に従って構築される。このような三次元メッシュによって、様々なコンピュータグラフィックス映像が表現され得る。
 また、三次元メッシュの伝送及び蓄積のため、三次元メッシュの効率的な符号化及び復号が期待される。例えば、符号化装置は、頂点情報を効率的に符号化するため、符号化済みの頂点の位置情報を用いて符号化対象の頂点の位置情報を予測し、予測に対する差分を符号化することにより、符号量を削減する。
 しかしながら、三次元空間において、符号化済みの頂点の位置情報を用いて符号化対象の頂点の位置を予測することは容易ではなく、予測に対する差分が大きくなる場合がある。したがって、符号量が増加する可能性がある。
 そこで、例1の符号化装置は、メモリと、前記メモリにアクセス可能な回路とを備え、前記回路は、動作において、三次元メッシュにおける三角形であり第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平面上の第3三角形の第5頂点の位置を特定するための情報を符号化することができる場合がある。また、第1平面上の第3三角形は第2平面上の第2三角形に対応しているため、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、符号化装置は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を符号化することができる場合がある。
 さらに、第5頂点は第1平面上の仮想頂点であるため、第1平面上の第1三角形に従って第5頂点の位置を特定することは比較的容易であると想定される。したがって、符号化装置は、効率的な処理を支援することができる場合がある。また、二面角は、例えば-180度から180度までのような一定の範囲に含まれると想定される。したがって、符号化装置は、符号量の増加を抑制することができる場合がある。すなわち、符号化装置は、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 また、例2の符号化装置は、例1の符号化装置であって、前記第3三角形は、前記第2三角形に相似する三角形である。
 これにより、符号化装置は、第2三角形に相似する第3三角形の第5頂点の位置を特定するための情報を符号化することができる場合がある。また、第2三角形と第3三角形とにおける相似の関係、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、符号化装置は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 また、例3の符号化装置は、例1の符号化装置であって、前記第3三角形は、前記第1平面に対する前記第2三角形の正射影である。
 これにより、符号化装置は、第1平面に対する第2三角形の正射影に対応する第3三角形の第5頂点の位置を特定するための情報を符号化することができる場合がある。また、第2三角形と第3三角形とにおける正射影の関係、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、符号化装置は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 また、例4の符号化装置は、例1~3のいずれかの符号化装置であって、前記特定情報は、前記第1三角形の少なくとも1つの辺の2つの頂点の2つの位置から前記少なくとも1つの辺に対する2つの角度を用いて前記第5頂点の位置を特定するための前記2つの角度を示す情報を含む。
 これにより、符号化装置は、2つの角度によって、第5頂点の位置を特定するための情報を符号化することができる場合がある。また、各角度は、例えば-180度から180度までのような一定の範囲に含まれると想定される。したがって、符号化装置は、符号量の増加を抑制することができる場合がある。
 また、例5の符号化装置は、例1~3のいずれかの符号化装置であって、前記特定情報は、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置と、前記第5頂点の位置との間の二次元ベクトルを示す情報を含む。
 これにより、符号化装置は、二次元ベクトルによって、第5頂点の位置を特定するための情報を符号化することができる場合がある。また、二次元ベクトルによって、第5頂点の位置が効率的に表現され得ると想定される。したがって、符号化装置は、第5頂点の位置を効率的に示す情報を符号化することができる場合があり、符号量の増加を抑制することができる場合がある。
 また、例6の符号化装置は、例1~3のいずれかの符号化装置であって、前記特定情報は、前記第1三角形の2つの辺に対応する2つの単位ベクトルに2つのスカラー因子を乗算することにより前記第5頂点の位置を特定するための前記2つのスカラー因子を示す情報を含む。
 これにより、符号化装置は、2つのスカラー因子によって、第5頂点の位置を特定するための情報を符号化することができる場合がある。また、2つのスカラー因子によって、第5頂点の位置が効率的に表現され得ると想定される。したがって、符号化装置は、第5頂点の位置を効率的に示す情報を符号化することができる場合があり、符号量の増加を抑制することができる場合がある。
 また、例7の符号化装置は、例1~6のいずれかの符号化装置であって、前記特定情報は、前記第2三角形と前記第3三角形との対応関係を示す情報を含む。
 これにより、符号化装置は、第2三角形と第3三角形との対応関係が適応的に変更される場合でも、その対応関係を示す情報を符号化することができる場合がある。したがって、符号化装置は、第2三角形と第3三角形との対応関係が適応的に変更される場合でも、第4頂点の位置を特定するための情報を符号化することができる場合がある。また、符号化装置は、第2三角形と第3三角形との対応関係が適応的に変更されることで、符号量の増加を抑制することができる場合がある。
 また、例8の符号化装置は、例5の符号化装置であって、前記特定情報は、前記第1三角形と前記第4三角形との対応関係を示す情報を含む。
 これにより、符号化装置は、第1三角形と第4三角形との対応関係が適応的に変更される場合でも、その対応関係を示す情報を符号化することができる場合がある。したがって、符号化装置は、第1三角形と第4三角形との対応関係が適応的に変更される場合でも、第4頂点の位置を特定するための情報を符号化することができる場合がある。また、符号化装置は、第1三角形と第4三角形との対応関係が適応的に変更されることで、符号量の増加を抑制することができる場合がある。
 また、例9の符号化装置は、例1~3のいずれかの符号化装置であって、前記特定情報は、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置が前記第5頂点の位置に一致するとみなされる、前記第1三角形と前記第4三角形との対応関係、及び、前記第2三角形と前記第3三角形との対応関係の少なくとも一方を示す情報を含む。
 これにより、符号化装置は、対応関係によって、第5頂点の位置を特定するための情報を符号化することができる場合がある。そして、符号化装置は、二面角及び対応関係によって、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 また、例10の符号化装置は、例1~3のいずれかの符号化装置であって、前記回路は、前記二面角情報及び前記特定情報が符号化される1つ以上の特定モードを含む複数のモードの中から1つのモードを選択し、前記1つのモードを示すモード情報を符号化し、前記1つのモードが前記1つ以上の特定モードに含まれる場合、前記二面角情報及び前記特定情報を符号化する。
 これにより、符号化装置は、複数のモードから選択されるモードに従って、二面角情報及び特定情報を適応的に符号化することができる場合がある。そして、これにより、符号化装置は、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 また、例11の符号化装置は、例10の符号化装置であって、前記1つのモードが前記1つ以上の特定モードに含まれる場合、前記特定情報は、前記1つのモードに従って定められる種類の情報を含む。
 これにより、符号化装置は、複数のモードから選択されるモードに対応する種類の情報を符号化することができる場合がある。したがって、符号化装置は、複数のモードから選択されるモードに従って、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 また、例12の符号化装置は、例11の符号化装置であって、前記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三角形との対応関係を示す情報を前記特定情報が含む。
 これにより、符号化装置は、4つのモードのうちの少なくとも1つを含む複数のモードから選択されるモードに従って、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 また、例13の符号化装置は、例1~12のいずれかの符号化装置であって、前記二面角情報は、前記二面角と、既に符号化された情報から予測される値との差分によって、前記二面角を示す。
 これにより、符号化装置は、第4頂点の位置を特定するための二面角を示す値を小さくすることができる場合がある。したがって、これにより、符号化装置は、符号量の増加を抑制することができる場合がある。
 また、例14の符号化装置は、例4又は12の符号化装置であって、前記2つの角度を示す情報は、前記2つの角度のそれぞれについて、当該角度と、既に符号化された情報から予測される値との差分によって、当該角度を示す。
 これにより、符号化装置は、第5頂点の位置を特定するための2つの角度のそれぞれを示す値を小さくすることができる場合がある。したがって、これにより、符号化装置は、符号量の増加を抑制することができる場合がある。
 また、例15の復号装置は、メモリと、前記メモリにアクセス可能な回路とを備え、前記回路は、動作において、三次元メッシュにおける三角形であり第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平面上の第3三角形の第5頂点の位置を特定するための情報を復号することができる場合がある。また、第1平面上の第3三角形は第2平面上の第2三角形に対応しているため、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、復号装置は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を復号することができる場合がある。
 さらに、第5頂点は第1平面上の仮想頂点であるため、第1平面上の第1三角形に従って第5頂点の位置を特定することは比較的容易であると想定される。したがって、復号装置は、効率的な処理を支援することができる場合がある。また、二面角は、例えば-180度から180度までのような一定の範囲に含まれると想定される。したがって、復号装置は、符号量の増加を抑制することができる場合がある。すなわち、復号装置は、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例16の復号装置は、例15の復号装置であって、前記第3三角形は、前記第2三角形に相似する三角形である。
 これにより、復号装置は、第2三角形に相似する第3三角形の第5頂点の位置を特定するための情報を復号することができる場合がある。また、第2三角形と第3三角形とにおける相似の関係、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、復号装置は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例17の復号装置は、例15の復号装置であって、前記第3三角形は、前記第1平面に対する前記第2三角形の正射影である。
 これにより、復号装置は、第1平面に対する第2三角形の正射影に対応する第3三角形の第5頂点の位置を特定するための情報を復号することができる場合がある。また、第2三角形と第3三角形とにおける正射影の関係、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、復号装置は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例18の復号装置は、例15~17のいずれかの復号装置であって、前記特定情報は、前記第1三角形の少なくとも1つの辺の2つの頂点の2つの位置から前記少なくとも1つの辺に対する2つの角度を用いて前記第5頂点の位置を特定するための前記2つの角度を示す情報を含む。
 これにより、復号装置は、2つの角度によって、第5頂点の位置を特定するための情報を復号することができる場合がある。また、各角度は、例えば-180度から180度までのような一定の範囲に含まれると想定される。したがって、復号装置は、符号量の増加を抑制することができる場合がある。
 また、例19の復号装置は、例15~17のいずれかの復号装置であって、前記特定情報は、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置と、前記第5頂点の位置との間の二次元ベクトルを示す情報を含む。
 これにより、復号装置は、二次元ベクトルによって、第5頂点の位置を特定するための情報を復号することができる場合がある。また、二次元ベクトルによって、第5頂点の位置が効率的に表現され得ると想定される。したがって、復号装置は、第5頂点の位置を効率的に示す情報を復号することができる場合があり、符号量の増加を抑制することができる場合がある。
 また、例20の復号装置は、例15~18のいずれかの復号装置であって、前記特定情報は、前記第1三角形の2つの辺に対応する2つの単位ベクトルに2つのスカラー因子を乗算することにより前記第5頂点の位置を特定するための前記2つのスカラー因子を示す情報を含む。
 これにより、復号装置は、2つのスカラー因子によって、第5頂点の位置を特定するための情報を復号することができる場合がある。また、2つのスカラー因子によって、第5頂点の位置が効率的に表現され得ると想定される。したがって、復号装置は、第5頂点の位置を効率的に示す情報を復号することができる場合があり、符号量の増加を抑制することができる場合がある。
 また、例21の復号装置は、例15~20のいずれかの復号装置であって、前記特定情報は、前記第2三角形と前記第3三角形との対応関係を示す情報を含む。
 これにより、復号装置は、第2三角形と第3三角形との対応関係が適応的に変更される場合でも、その対応関係を示す情報を復号することができる場合がある。したがって、復号装置は、第2三角形と第3三角形との対応関係が適応的に変更される場合でも、第4頂点の位置を特定するための情報を復号することができる場合がある。また、復号装置は、第2三角形と第3三角形との対応関係が適応的に変更されることで、符号量の増加を抑制することができる場合がある。
 また、例22の復号装置は、例19の復号装置であって、前記特定情報は、前記第1三角形と前記第4三角形との対応関係を示す情報を含む。
 これにより、復号装置は、第1三角形と第4三角形との対応関係が適応的に変更される場合でも、その対応関係を示す情報を復号することができる場合がある。したがって、復号装置は、第1三角形と第4三角形との対応関係が適応的に変更される場合でも、第4頂点の位置を特定するための情報を復号することができる場合がある。また、復号装置は、第1三角形と第4三角形との対応関係が適応的に変更されることで、符号量の増加を抑制することができる場合がある。
 また、例23の復号装置は、例15~17のいずれかの復号装置であって、前記特定情報は、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置が前記第5頂点の位置に一致するとみなされる、前記第1三角形と前記第4三角形との対応関係、及び、前記第2三角形と前記第3三角形との対応関係の少なくとも一方を示す情報を含む。
 これにより、復号装置は、対応関係によって、第5頂点の位置を特定するための情報を復号することができる場合がある。そして、復号装置は、二面角及び対応関係によって、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例24の復号装置は、例15~17のいずれかの復号装置であって、前記回路は、前記二面角情報及び前記特定情報が復号される1つ以上の特定モードを含む複数のモードの中から1つのモードを選択し、前記1つのモードを示すモード情報を復号し、前記1つのモードが前記1つ以上の特定モードに含まれる場合、前記二面角情報及び前記特定情報を復号する。
 これにより、復号装置は、複数のモードから選択されるモードに従って、二面角情報及び特定情報を適応的に復号することができる場合がある。そして、これにより、復号装置は、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例25の復号装置は、例24の復号装置であって、前記1つのモードが前記1つ以上の特定モードに含まれる場合、前記特定情報は、前記1つのモードに従って定められる種類の情報を含む。
 これにより、復号装置は、複数のモードから選択されるモードに対応する種類の情報を復号することができる場合がある。したがって、復号装置は、複数のモードから選択されるモードに従って、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例26の復号装置は、例25の復号装置であって、前記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三角形との対応関係を示す情報を前記特定情報が含む。
 これにより、復号装置は、4つのモードのうちの少なくとも1つを含む複数のモードから選択されるモードに従って、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例27の復号装置は、例15~26のいずれかの復号装置であって、前記二面角情報は、前記二面角と、既に復号された情報から予測される値との差分によって、前記二面角を示す。
 これにより、復号装置は、第4頂点の位置を特定するための二面角を示す値を小さくすることができる場合がある。したがって、これにより、復号装置は、符号量の増加を抑制することができる場合がある。
 また、例28の復号装置は、例18又は26の復号装置であって、前記2つの角度を示す情報は、前記2つの角度のそれぞれについて、当該角度と、既に復号された情報から予測される値との差分によって、当該角度を示す。
 これにより、復号装置は、第5頂点の位置を特定するための2つの角度のそれぞれを示す値を小さくすることができる場合がある。したがって、これにより、復号装置は、符号量の増加を抑制することができる場合がある。
 また、例29の符号化方法は、三次元メッシュにおける三角形であり第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平面上の第3三角形の第5頂点の位置を特定するための情報を符号化することが可能になる場合がある。また、第1平面上の第3三角形は第2平面上の第2三角形に対応しているため、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を符号化することが可能になる場合がある。
 さらに、第5頂点は第1平面上の仮想頂点であるため、第1平面上の第1三角形に従って第5頂点の位置を特定することは比較的容易であると想定される。したがって、効率的な処理を支援することが可能になる場合がある。また、二面角は、例えば-180度から180度までのような一定の範囲に含まれると想定される。したがって、符号量の増加を抑制することが可能になる場合がある。すなわち、第4頂点の位置を特定するための情報を効率的に符号化することが可能なる場合がある。
 また、例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頂点の位置を特定するための特定情報を復号する。
 これにより、特定情報によって、第1平面上の第3三角形の第5頂点の位置を特定するための情報を復号することが可能になる場合がある。また、第1平面上の第3三角形は第2平面上の第2三角形に対応しているため、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を復号することが可能になる場合がある。
 さらに、第5頂点は第1平面上の仮想頂点であるため、第1平面上の第1三角形に従って第5頂点の位置を特定することは比較的容易であると想定される。したがって、効率的な処理を支援することが可能になる場合がある。また、二面角は、例えば-180度から180度までのような一定の範囲に含まれると想定される。したがって、符号量の増加を抑制することが可能になる場合がある。すなわち、第4頂点の位置を特定するための情報を効率的に復号することが可能なる場合がある。
 さらに、これらの包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム、又は、コンピュータ読み取り可能なCD-ROMなどの非一時的な記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム、及び、記録媒体の任意な組み合わせで実現されてもよい。
 <表現及び用語>
 ここでは、以下のような表現及び用語が用いられる。
 (1)三次元メッシュ
 三次元メッシュは、複数の面の集合であり、例えば、三次元物体を示す。また、三次元メッシュは、主に、頂点情報、接続情報及び属性情報で構成される。三次元メッシュは、ポリゴンメッシュ又はメッシュと表現される場合がある。また、三次元メッシュは、時間的な変化を有していてもよい。三次元メッシュは、頂点情報、接続情報及び属性情報に関するメタデータを含んでいてもよいし、その他の付加情報を含んでいてもよい。
 (2)頂点情報
 頂点情報は、頂点(Vertex)を示す情報である。例えば、頂点情報は、三次元空間における頂点の位置を示す。また、頂点は、三次元メッシュを構成する面の頂点に対応する。頂点情報は、「Geometory(ジオメトリ)」と表現される場合がある。また、頂点情報は、位置情報と表現される場合もある。
 (3)接続情報
 接続情報は、頂点間の接続を示す情報である。例えば、接続情報は、三次元メッシュの面又は辺を構成するための接続を示す。接続情報は、「Connectivity(コネクティビティ)」と表現される場合がある。また、接続情報は、面情報と表現される場合もある。
 (4)属性情報
 属性情報は、頂点又は面の属性を示す情報である。例えば、属性情報は、頂点又は面に対応付けられる色、画像及び法線ベクトル等の属性を示す。属性情報は、「Texture(テクスチャ)」と表現される場合がある。
 (5)面
 面は、三次元メッシュを構成する要素である。具体的には、面は、三次元空間における平面上のポリゴンである。例えば、面は、三次元空間における三角形として定められ得る。
 (6)平面
 平面は、三次元空間における二次元平面である。例えば、平面上にポリゴンが形成され、複数の平面上に複数のポリゴンが形成される。
 (7)ビットストリーム
 ビットストリームは、符号化された情報に対応する。ビットストリームは、ストリーム、符号化ビットストリーム、圧縮ビットストリーム、又は、符号化信号とも表現され得る。
 (8)符号化及び復号
 符号化するという表現は、格納する、含める、書き込む、記述する、信号化する、送り出す、通知する、保存する、又は、圧縮する等の表現に置き換えられてもよく、これらの表現が相互に置き換えられてもよい。例えば、情報を符号化することは、ビットストリームに情報を含めることであってもよい。また、情報をビットストリームに符号化することは、情報を符号化して、符号化された情報を含むビットストリームを生成することを意味してもよい。
 また、復号するという表現は、読み出す、読み解く、読み取る、読み込む、導出する、取得する、受け取る、抽出する、復元する、再構成する、圧縮解除する、又は、伸張する等の表現に置き換えられてもよく、これらの表現が相互に置き換えられてもよい。例えば、情報を復号することは、ビットストリームから情報を取得することであってもよい。また、ビットストリームから情報を復号することは、ビットストリームを復号して、ビットストリームに含まれる情報を取得することを意味してもよい。
 (9)序数
 説明において、第1及び第2等の序数が、構成要素などに対して付けられる場合がある。これらの序数は、適宜、付け替えられてもよい。また、構成要素などに対して、序数が新たに与えられてもよいし、取り除かれてもよい。また、これらの序数は、要素を識別するため、要素に付けられる場合があり、意味のある順序に対応しない場合がある。
 <三次元メッシュ>
 図1は、本実施の形態に係る三次元メッシュを示す概念図である。三次元メッシュは、複数の面で構成される。例えば、各面は、三角形である。これらの三角形の頂点は、三次元空間において定められる。そして、三次元メッシュは、三次元物体を示す。各面は、色又は画像を有していてもよい。
 図2は、本実施の形態に係る三次元メッシュの基本要素を示す概念図である。三次元メッシュは、頂点情報、接続情報及び属性情報で構成される。頂点情報は、三次元空間における面の頂点の位置を示す。接続情報は、頂点間の接続を示す。頂点情報及び接続情報によって面が特定され得る。つまり、頂点情報及び接続情報によって、色を有していない三次元物体が三次元空間に形成される。
 属性情報は、頂点に対応付けられていてもよいし、面に対応付けられていてもよい。頂点に対応付けられた属性情報は、「Attribute Per Point」と表現される場合がある。頂点に対応付けられた属性情報は、頂点自体の属性を示していてもよいし、頂点に接続される面の属性を示してもよい。
 例えば、頂点に色が属性情報として対応付けられていてもよい。頂点に対応づけられた色は、頂点の色であってもよいし、頂点に接続される面の色であってもよい。面の色は、面の複数の頂点に対応付けられた複数の色の平均であってもよい。また、頂点又は面に法線ベクトルが属性情報として対応付けられていてもよい。このような法線ベクトルは、面の表及び裏を表現し得る。
 また、面に二次元画像が属性情報として対応付けられていてもよい。面に対応づけられる二次元画像は、テクスチャ画像、又は、「Attribute Map」とも表現される。また、面と二次元画像とのマッピングを示す情報が属性情報として面に対応付けられていてもよい。このようなマッピングを示す情報は、マッピング情報、テクスチャ画像の頂点情報、又は、「Attribute UV Coordinate」と表現される場合がある。
 さらに、属性情報として用いられる色、画像及び動画像等の情報は、「Parametric Space」と表現される場合がある。
 このような属性情報によって、三次元物体にテクスチャが反映され得る。すなわち、頂点情報、接続情報及び属性情報によって、色を有する三次元物体が三次元空間に形成される。
 なお、上記において、属性情報は、頂点又は面に対応付けられているが、辺に対応付けられていてもよい。
 図3は、本実施の形態に係るマッピングを示す概念図である。例えば、三次元空間における三次元メッシュの面に、二次元平面における二次元画像の領域がマッピングされ得る。具体的には、三次元メッシュの面に対して、二次元画像における領域の座標情報が対応付けられる。これにより、三次元メッシュの面に、二次元画像においてマッピングされた領域の画像が反映される。
 マッピングが用いられることにより、属性情報として用いられる二次元画像が三次元メッシュから分離され得る。例えば、三次元メッシュの符号化において、二次元画像は、画像符号化方式又は映像符号化方式によって、符号化されてもよい。
 <システム構成>
 図4は、本実施の形態に係る符号化復号システムの構成例を示すブロック図である。図4において、符号化復号システムは、符号化装置100及び復号装置200を備える。
 例えば、符号化装置100は、三次元メッシュを取得し、三次元メッシュをビットストリームに符号化する。そして、符号化装置100は、ビットストリームをネットワーク300に出力する。例えば、ビットストリームには、符号化された三次元メッシュと、符号化された三次元メッシュを復号するための制御情報とが含まれる。三次元メッシュが符号化されることによって、三次元メッシュの情報が圧縮される。
 ネットワーク300は、ビットストリームを符号化装置100から復号装置200へ伝送する。ネットワーク300は、インターネット、広域ネットワーク(WAN:Wide Area Network)、小規模ネットワーク(LAN:Local Area Network)、又は、これらの組み合わせであってもよい。ネットワーク300は、必ずしも双方向の通信に限らず、地上デジタル放送又は衛星放送等のための一方向の通信網であってもよい。
 また、ネットワーク300は、DVD(Digital Versatile Disc)、又は、BD(Blu-Ray Disc(登録商標))等の記録媒体によって代替され得る。
 復号装置200は、ビットストリームを取得し、ビットストリームから三次元メッシュを復号する。三次元メッシュの復号によって、三次元メッシュの情報は伸張される。例えば、復号装置200は、符号化装置100が三次元メッシュを符号化するための符号化方法に対応する復号方法に従って三次元メッシュを復号する。すなわち、符号化装置100及び復号装置200は、互いに対応する符号化方法及び復号方法に従って、符号化及び復号を行う。
 なお、符号化前の三次元メッシュは、原三次元メッシュとも表現され得る。また、復号後の三次元メッシュは、再構成三次元メッシュとも表現される。
 <符号化装置>
 図5は、本実施の形態に係る符号化装置100の構成例を示すブロック図である。例えば、符号化装置100は、頂点情報符号化器101、接続情報符号化器102及び属性情報符号化器103を備える。
 頂点情報符号化器101は、頂点情報を符号化する電気回路である。例えば、頂点情報符号化器101は、頂点情報に対して規定された形式に従って頂点情報をビットストリームに符号化する。
 接続情報符号化器102は、接続情報を符号化する電気回路である。例えば、接続情報符号化器102は、接続情報に対して規定された形式に従って接続情報をビットストリームに符号化する。
 属性情報符号化器103は、属性情報を符号化する電気回路である。例えば、属性情報符号化器103は、属性情報に対して規定された形式に従って属性情報をビットストリームに符号化する。
 頂点情報、接続情報及び属性情報の符号化には、可変長符号化が用いられてもよいし、固定長符号化が用いられてもよい。可変長符号化は、ハフマン符号化又はコンテキスト適応型二値算術符号化(CABAC)等に対応していてもよい。
 頂点情報符号化器101、接続情報符号化器102及び属性情報符号化器103は、一体化されていてもよい。あるいは、頂点情報符号化器101、接続情報符号化器102及び属性情報符号化器103のそれぞれが、より細かく複数の構成要素に細分化されていてもよい。
 図6は、本実施の形態に係る符号化装置100の別の構成例を示すブロック図である。例えば、符号化装置100は、図5に示された構成に加えて、前処理器104及び後処理器105を備える。
 前処理器104は、頂点情報、接続情報及び属性情報の符号化前に、処理を行う電気回路である。例えば、前処理器104は、符号化前の三次元メッシュに対して、変換処理、分離処理、又は、多重化処理等を行ってもよい。より具体的には、例えば、前処理器104は、符号化前の三次元メッシュから頂点情報、接続情報及び属性情報を分離してもよい。
 後処理器105は、頂点情報、接続情報及び属性情報の符号化後に、処理を行う電気回路である。例えば、後処理器105は、符号化後の頂点情報、接続情報及び属性情報に対して、変換処理、分離処理、又は、多重化処理等を行ってもよい。より具体的には、例えば、後処理器105は、符号化後の頂点情報、接続情報及び属性情報をビットストリームに多重化してもよい。また、例えば、後処理器105は、符号化後の頂点情報、接続情報及び属性情報に対して、さらに可変長符号化を行ってもよい。
 <復号装置>
 図7は、本実施の形態に係る復号装置200の構成例を示すブロック図である。例えば、復号装置200は、頂点情報復号器201、接続情報復号器202及び属性情報復号器203を備える。
 頂点情報復号器201は、頂点情報を復号する電気回路である。例えば、頂点情報復号器201は、頂点情報に対して規定された形式に従って頂点情報をビットストリームから復号する。
 接続情報復号器202は、接続情報を復号する電気回路である。例えば、接続情報復号器202は、接続情報に対して規定された形式に従って接続情報をビットストリームから復号する。
 属性情報復号器203は、属性情報を復号する電気回路である。例えば、属性情報復号器203は、属性情報に対して規定された形式に従って属性情報をビットストリームから復号する。
 頂点情報、接続情報及び属性情報の復号には、可変長復号が用いられてもよいし、固定長復号が用いられてもよい。可変長復号は、ハフマン符号化又はコンテキスト適応型二値算術符号化(CABAC)等に対応していてもよい。
 頂点情報復号器201、接続情報復号器202及び属性情報復号器203は、一体化されていてもよい。あるいは、頂点情報復号器201、接続情報復号器202及び属性情報復号器203のそれぞれが、より細かく複数の構成要素に細分化されていてもよい。
 図8は、本実施の形態に係る復号装置200の別の構成例を示すブロック図である。例えば、復号装置200は、図7に示された構成に加えて、前処理器204及び後処理器205を備える。
 前処理器204は、頂点情報、接続情報及び属性情報の復号前に、処理を行う電気回路である。例えば、前処理器204は、頂点情報、接続情報及び属性情報の復号前に、ビットストリームに対して、変換処理、分離処理、又は、多重化処理等を行ってもよい。
 より具体的には、例えば、前処理器204は、ビットストリームから、頂点情報に対応するサブビットストリーム、接続情報に対応するサブビットストリーム、及び、属性情報に対応するサブビットストリームを分離してもよい。また、例えば、前処理器204は、頂点情報、接続情報及び属性情報の復号前に、事前にビットストリームに対して可変長復号を行ってもよい。
 後処理器205は、頂点情報、接続情報及び属性情報の復号後に、処理を行う電気回路である。例えば、後処理器205は、復号後の頂点情報、接続情報及び属性情報に対して、変換処理、分離処理、又は、多重化処理等を行ってもよい。より具体的には、例えば、後処理器205は、復号後の頂点情報、接続情報及び属性情報を三次元メッシュに多重化してもよい。
 <ビットストリーム>
 頂点情報、接続情報及び属性情報は、符号化されて、ビットストリームに格納される。これらの情報とビットストリームの関係を以下に示す。
 図9は、本実施の形態に係るビットストリームの構成例を示す概念図である。この例において、頂点情報、接続情報及び属性情報は、ビットストリームにおいて一体化される。例えば、頂点情報、接続情報及び属性情報は、1つのファイルに含まれていてもよい。
 また、頂点情報の第1部分、接続情報の第1部分、属性情報の第1部分、頂点情報の第2部分、接続情報の第2部分、属性情報の第2部分、・・・のように、これらの情報の複数の部分が順次格納されてもよい。これらの複数の部分は、時間的に異なる複数の部分に対応していてもよいし、空間的に異なる複数の部分に対応していてもよいし、異なる複数の面に対応していてもよい。
 また、頂点情報、接続情報及び属性情報の格納順序は、上記の例に限られず、上記の例とは異なる格納順序が用いられてもよい。
 図10は、本実施の形態に係るビットストリームの別の構成例を示す概念図である。この例において、複数のファイルがビットストリームに含まれ、頂点情報、接続情報及び属性情報が、それぞれ異なるファイルに格納される。ここでは、頂点情報を含むファイルと、接続情報を含むファイルと、属性情報を含むファイルとが示されているが、格納形式は、このような例に限られない。例えば、頂点情報、接続情報及び属性情報のうち2種類の情報が、1つのファイルに含まれ、残りの1種類の情報が、別のファイルに含まれてもよい。
 あるいは、これらの情報は、より多くのファイルに分割して格納されてもよい。例えば、頂点情報の複数の部分が複数のファイルに格納されてもよいし、接続情報の複数の部分が複数のファイルに格納されてもよいし、属性情報の複数の部分が複数のファイルに格納されてもよい。これらの複数の部分は、時間的に異なる複数の部分に対応していてもよいし、空間的に異なる複数の部分に対応していてもよいし、異なる複数の面に対応していてもよい。
 また、頂点情報、接続情報及び属性情報の格納順序は、上記の例に限られず、上記の例とは異なる格納順序が用いられてもよい。
 図11は、本実施の形態に係るビットストリームの別の構成例を示す概念図である。この例において、分離可能な複数のサブビットストリームによってビットストリームが構成され、頂点情報、接続情報及び属性情報が、それぞれ異なるサブビットストリームに格納される。
 ここでは、頂点情報を含むサブビットストリームと、接続情報を含むサブビットストリームと、属性情報を含むサブビットストリームとが示されているが、格納形式は、このような例に限られない。
 例えば、頂点情報、接続情報及び属性情報のうち2種類の情報が、1つのサブビットストリームに含まれ、残りの1種類の情報が、別のサブビットストリームに含まれてもよい。具体的には、二次元画像等の属性情報が、頂点情報及び接続情報のサブビットストリームとは別に、画像符号化方式に準拠するサブビットストリームに格納されてもよい。
 また、各サブビットストリームに複数のファイルが含まれていてもよい。そして、頂点情報の複数の部分が複数のファイルに格納されてもよいし、接続情報の複数の部分が複数のファイルに格納されてもよいし、属性情報の複数の部分が複数のファイルに格納されてもよい。
 <具体例>
 図12は、本実施の形態に係る符号化復号システムの具体例を示すブロック図である。図12において、符号化復号システムは、三次元データ符号化システム110、三次元データ復号システム210及び外部接続器310を備える。
 三次元データ符号化システム110は、制御器111、入出力処理器112、三次元データ符号化器113、三次元データ生成器115、及び、システム多重化器114を備える。三次元データ復号システム210は、制御器211、入出力処理器212、三次元データ復号器213、システム逆多重化器214、提示器215、及び、ユーザインタフェース216を備える。
 三次元データ符号化システム110では、センサ端末から三次元データ生成器115にセンサデータが入力される。三次元データ生成器115は、センサデータから、点群データ又はメッシュデータ等である三次元データを生成し、三次元データ符号化器113へ入力する。
 例えば、三次元データ生成器115は、頂点情報を生成し、頂点情報に対応する接続情報及び属性情報を生成する。三次元データ生成器115は、接続情報及び属性情報を生成する際に、頂点情報を加工してもよい。例えば、三次元データ生成器115は、重複する頂点を削除することでデータ量を減らしたり、頂点情報の変換(位置シフト、回転又は正規化など)を行ったりしてもよい。また、三次元データ生成器115は、属性情報をレンダリングしてもよい。
 また、三次元データ生成器115は、図12において三次元データ符号化システム110の構成要素であるが、三次元データ符号化システム110から独立して外部に配置されてもよい。
 三次元データを生成するためのセンサデータを提供するセンサ端末は、例えば、自動車などの移動体、飛行機などの飛行物体、携帯端末、又は、カメラ等であってもよい。また、LIDAR、ミリ波レーダ、赤外線センサ又はレンジファインダなどの距離センサ、ステレオカメラ、あるいは、複数の単眼カメラの組み合わせ等がセンサ端末として用いられてもよい。
 センサデータは、対象物の距離(位置)、単眼カメラ画像、ステレオカメラ画像、色、反射率、センサの姿勢、向き、ジャイロ、センシング位置(GPS情報又は高度)、速度、加速度、センシング時刻、気温、気圧、湿度、又は、磁気などであってもよい。
 三次元データ符号化器113は、図5等に示された符号化装置100に対応する。例えば、三次元データ符号化器113は、三次元データを符号化し、符号化データを生成する。また、三次元データ符号化器113は、三次元データの符号化において、制御情報を生成する。そして、三次元データ符号化器113は、符号化データを制御情報と共にシステム多重化器114へ入力する。
 三次元データの符号化方式は、ジオメトリを用いる符号化方式であってもよいし、ビデオコーデックを用いる符号化方式であってもよい。ここでは、ジオメトリを用いる符号化方式は、ジオメトリベース符号化方式とも表現され得る。ビデオコーデックを用いる符号化方式は、ビデオベース符号化方式とも表現される。
 システム多重化器114は、三次元データ符号化器113から入力された符号化データ及び制御情報を多重化し、規定の多重化方式を用いて多重化データを生成する。システム多重化器114は、三次元データの符号化データ及び制御情報と共に、映像、音声、字幕、アプリケーションデータ又はドキュメントファイルなどの他のメディア、あるいは、基準時刻情報等を多重化してもよい。さらに、システム多重化器114は、センサデータ又は三次元データに関連する属性情報を多重化してもよい。
 例えば、多重化データは、蓄積のためのファイル形式、又は、伝送のためのパケット形式等を有する。これらの方式として、ISOBMFF、又は、ISOBMFFベースの方式が用いられてもよい。また、MPEG-DASH、MMT、MPEG-2 TS Systems、又は、RTPなどが用いられてもよい。
 そして、多重化データは、入出力処理器112によって外部接続器310へ伝送信号として出力される。多重化データは、伝送信号として、有線によって伝送されてもよいし、無線によって伝送されてもよい。あるいは、多重化データは、内部メモリ又は記憶装置に蓄積される。多重化データは、インターネット経由でクラウドサーバに伝送されてもよいし、外部記憶装置に記憶されてもよい。
 例えば、多重化データの伝送又は蓄積は、放送又は通信など、伝送又は蓄積のための媒体に応じた方法で行われる。通信プロトコルとして、http、ftp、TCP、UDP、IP、又は、これらの組み合わせなどが用いられてもよい。また、PULL型の通信方式が用いられてもよいし、PUSH型の通信方式を用いられてもよい。
 有線の伝送に、Ethernet(登録商標)、USB、RS-232C、HDMI(登録商標)又は同軸ケーブルなどが用いられてもよい。また、無線の伝送に、3GPP(登録商標)、IEEEで規定される3G/4G/5G、無線LAN、Wi-Fi、Bluetooth、又は、ミリ波が用いられてもよい。また、放送の方式として、例えばDVB-T2、DVB-S2、DVB-C2、ATSC3.0、又は、ISDB-S3などが用いられてもよい。
 なお、センサデータが、三次元データ生成器115又はシステム多重化器114へ入力されてもよい。また、三次元データ又は符号化データが、入出力処理器112を介して外部接続器310へそのまま伝送信号として出力されてもよい。三次元データ符号化システム110から出力された伝送信号は、外部接続器310を介して、三次元データ復号システム210に入力される。
 また、三次元データ符号化システム110の各動作は、アプリケーションプログラムを実行する制御器111によって制御されてもよい。
 三次元データ復号システム210では、入出力処理器212に伝送信号が入力される。入出力処理器212は、伝送信号から、ファイル形式又はパケット形式を有する多重化データを復号し、多重化データをシステム逆多重化器214へ入力する。システム逆多重化器214は、多重化データから符号化データ及び制御情報を取得し、三次元データ復号器213へ入力する。システム逆多重化器214は、多重化データから他のメディア又は基準時刻情報などを抽出してもよい。
 三次元データ復号器213は、図7等に示された復号装置200に対応する。例えば、三次元データ復号器213は、符号化データから、予め規定された符号化方式に基づいて三次元データを復号する。その後、三次元データは、提示器215によってユーザに提示される。
 また、センサデータなどの付加情報が提示器215へ入力されてもよい。提示器215は、付加情報に基づいて三次元データを提示してもよい。また、ユーザ端末からユーザインタフェース216へユーザの指示が入力されてもよい。そして、提示器215は、入力された指示に基づいて三次元データを提示してもよい。
 なお、入出力処理器212は、外部接続器310から三次元データ及び符号化データを取得してもよい。
 また、三次元データ復号システム210の各動作は、アプリケーションプログラムを実行する制御器211によって制御されてもよい。
 図13は、本実施の形態に係る点群データの構成例を示す概念図である。点群データは、三次元物体を示す点群のデータである。
 具体的には、点群(Point Cloud)は、複数の点で構成され、各点の三次元座標位置(Position)を示す位置情報、及び、各点の属性(Attribute)を示す属性情報を有する。位置情報は、ジオメトリ(Geometry)とも表現される。
 属性情報の種別は、例えば色又は反射率などであってもよい。1つの点に、1つの種別に関する属性情報に対応付けられていてもよいし、1つの点に、複数の異なる種別に関する属性情報に対応付けられていてもよいし、1つの点に、同じ種別に関して複数の値を有する属性情報に対応付けられていてもよい。
 図14は、本実施の形態に係る点群データのデータファイル例を示す概念図である。この例では、位置情報の項目と属性情報の項目とが1対1に対応する場合の例であり、点群データを構成するN個の点の位置情報及び属性情報を示している。この例において、位置情報は、x、y及びzの3軸で三次元座標位置を示す情報であり、属性情報は、RGBで色を示す情報である。点群データの代表的なデータファイルとして、PLYファイルなどが用いられ得る。
 図15は、本実施の形態に係るメッシュデータの構成例を示す概念図である。メッシュデータは、CG(Computer Graphics)等に用いられるデータであって、複数の面で対象物の三次元形状を示す三次元メッシュのデータである。各面は、ポリゴンとも表現され、三角形又は四角形などの多角形の形状を有する。
 具体的には、三次元メッシュは、点群を構成する複数の点に加えて、複数の辺(Edge)、及び、複数の面(Face)で構成される。各点は、頂点(Vertex)又は位置(Position)とも表現される。各辺は、2つの頂点で結ばれた線分に対応する。各面は、3つ以上の辺で囲まれた領域に対応する。
 また、三次元メッシュは、頂点の三次元座標位置を示す位置情報を有する。位置情報は、頂点情報又はジオメトリ(Geometory)とも表現される。また、三次元メッシュは、辺又は面を構成する複数の頂点の関係性を示す接続情報を有する。接続情報は、接続性(Connectivity)とも表現される。また、三次元メッシュは、頂点、辺又は面に対する属性を示す属性情報を有する。三次元メッシュにおける属性情報は、テクスチャ(Texture)とも表現される。
 例えば、属性情報は、頂点、辺又は面に対する色、反射率又は法線ベクトルを示してもよい。法線ベクトルの向きは、面の表及び裏を表現し得る。
 メッシュデータのデータファイル形式として、オブジェクトファイル等が用いられてもよい。
 図16は、本実施の形態に係るメッシュデータのデータファイル例を示す概念図である。この例において、データファイルには、三次元メッシュを構成するN個の頂点の位置情報G(1)~G(N)、及び、N個の頂点の属性情報A1(1)~A1(N)が含まれる。また、この例において、M個の属性情報A2(1)~A2(M)が含まれる。属性情報の項目は、頂点に1対1に対応していなくてもよいし、面に1対1に対応していなくてもよい。また、属性情報は、存在しなくてもよい。
 接続情報は、頂点のインデックスの組み合わせで示される。n[1、3、4]は、n=1、n=3、及び、n=4の3つの頂点で構成される三角形の面を示す。また、m[2、4、6]は、3つの頂点に対してm=2、m=4、m=6の属性情報がそれぞれ対応することを示す。
 また、属性情報の実質的な内容が、別のファイルに記載されてもよい。そして、その内容に対するポインタが、頂点又は面等に対応付けられていてもよい。例えば、面に対する画像を示す属性情報が、二次元の属性マップ(Attribute Map)ファイルに格納されてもよい。そして、属性マップのファイル名、及び、属性マップにおける二次元座標値が、属性情報A2(1)~A2(M)に記載されてもよい。面に対して属性情報を指定する方法は、これらの方法に限られず、どのような方法が用いられてもよい。
 図17は、本実施の形態に係る三次元データの種類を示す概念図である。点群データ及びメッシュデータは、静的オブジェクトを示してもよいし、動的オブジェクトを示してもよい。静的オブジェクトは、時間的に変化しないオブジェクトであり、動的オブジェクトは、時間的に変化するオブジェクトである。静的オブジェクトは、任意の時点に対する三次元データに対応していてもよい。
 例えば、任意の時点に対する点群データは、PCCフレームと表現される場合がある。また、任意の時点に対するメッシュデータは、メッシュフレームと表現される場合がある。さらに、PCCフレーム及びメッシュフレームは、単にフレームと表現される場合がある。
 また、オブジェクトの領域は、通常の映像データのように、一定の範囲に制限されていてもよいし、地図データのように、制限されていなくてもよい。また、点又は面の密度は様々に定められ得る。疎な点群データ又は疎なメッシュデータが用いられてもよいし、密な点群データ又は密なメッシュデータが用いられてもよい。
 次に、点群又は三次元メッシュの符号化及び復号について説明する。本開示における三次元メッシュの頂点情報の符号化及び復号のための装置、処理又はシンタックスが、点群の符号化及び復号に適用されてもよい。本開示における点群の符号化及び復号のための装置、処理又はシンタックスが、三次元メッシュの頂点情報の符号化及び復号に適用されてもよい。
 また、本開示における点群の属性情報の符号化及び復号のための装置、処理又はシンタックスが、三次元メッシュの接続情報又は属性情報の符号化及び復号に適用されてもよい。また、本開示における三次元メッシュの接続情報又は属性情報の符号化及び復号のための装置、処理又はシンタックスが、点群の属性情報の符号化及び復号に適用されてもよい。
 さらに、点群データの符号化及び復号と、メッシュデータの符号化及び復号とで、少なくとも一部の処理が共通化されてもよい。これにより、回路及びソフトウェアプログラムの規模が抑制され得る。
 図18は、本実施の形態に係る三次元データ符号化器113の構成例を示すブロック図である。この例において、三次元データ符号化器113は、頂点情報符号化器121、属性情報符号化器122、メタデータ符号化器123及び多重化器124を備える。頂点情報符号化器121、属性情報符号化器122及び多重化器124は、図6の頂点情報符号化器101、属性情報符号化器103及び後処理器105等に対応していてもよい。
 また、この例において、三次元データ符号化器113は、ジオメトリベース符号化方式に従って、三次元データを符号化する。ジオメトリベース符号化方式に従う符号化では、三次元構造が考慮される。また、ジオメトリベース符号化方式に従う符号化では、頂点情報の符号化において得られる構成情報を用いて属性情報が符号化される。
 具体的には、まず、センサデータから生成された三次元データに含まれる頂点情報、属性情報及びメタデータが、頂点情報符号化器121、属性情報符号化器122及びメタデータ符号化器123にそれぞれ入力される。ここで、三次元データに含まれる接続情報は、属性情報と同様に扱われてもよい。また、点群データの場合、位置情報が頂点情報として扱われてもよい。
 頂点情報符号化器121は、頂点情報を圧縮頂点情報に符号化して、圧縮頂点情報を符号化データとして多重化器124に出力する。また、頂点情報符号化器121は、圧縮頂点情報のメタデータを生成して多重化器124に出力する。また、頂点情報符号化器121は、構成情報を生成して属性情報符号化器122に出力する。
 属性情報符号化器122は、頂点情報符号化器121で生成された構成情報を用いて、属性情報を圧縮属性情報に符号化して、圧縮属性情報を符号化データとして多重化器124に出力する。また、属性情報符号化器122は、圧縮属性情報のメタデータを生成して多重化器124に出力する。
 メタデータ符号化器123は、圧縮可能なメタデータを圧縮メタデータに符号化して、圧縮メタデータを符号化データとして多重化器124に出力する。メタデータ符号化器123で符号化されるメタデータは、頂点情報の符号化、及び、属性情報の符号化に用いられてもよい。
 多重化器124は、圧縮頂点情報、圧縮頂点情報のメタデータ、圧縮属性情報、圧縮属性情報のメタデータ、及び、圧縮メタデータをビットストリームに多重化する。そして、多重化器124は、ビットストリームをシステムレイヤに入力する。
 図19は、本実施の形態に係る三次元データ復号器213の構成例を示すブロック図である。この例において、三次元データ復号器213は、頂点情報復号器221、属性情報復号器222、メタデータ復号器223及び逆多重化器224を備える。頂点情報復号器221、属性情報復号器222及び逆多重化器224は、図8の頂点情報復号器201、属性情報復号器203及び前処理器204等に対応していてもよい。
 また、この例において、三次元データ復号器213は、ジオメトリベース符号化方式に従って、三次元データを復号する。ジオメトリベース符号化方式に従う復号では、三次元構造が考慮される。また、ジオメトリベース符号化方式に従う復号では、頂点情報の復号において得られる構成情報を用いて属性情報が復号される。
 具体的には、まず、ビットストリームが、システムレイヤから逆多重化器224に入力される。逆多重化器224は、ビットストリームから、圧縮頂点情報、圧縮頂点情報のメタデータ、圧縮属性情報、圧縮属性情報のメタデータ、及び、圧縮メタデータを分離する。圧縮頂点情報、及び、圧縮頂点情報のメタデータは、頂点情報復号器221に入力される。圧縮属性情報、及び、圧縮属性情報のメタデータは、属性情報復号器222に入力される。メタデータは、メタデータ復号器223に入力される。
 頂点情報復号器221は、圧縮頂点情報のメタデータを用いて、圧縮頂点情報から頂点情報を復号する。また、頂点情報復号器221は、構成情報を生成して属性情報復号器222に出力する。属性情報復号器222は、頂点情報復号器221で生成された構成情報、及び、圧縮属性情報のメタデータを用いて、圧縮属性情報から属性情報を復号する。メタデータ復号器223は、圧縮メタデータからメタデータを復号する。メタデータ復号器223で復号されたメタデータは、頂点情報の復号、及び、属性情報の復号に用いられてもよい。
 その後、頂点情報、属性情報、及び、メタデータが三次元データとして三次元データ復号器213から出力される。なお、例えば、このメタデータは、頂点情報及び属性情報のメタデータであって、アプリケーションプログラムにおいて用いられ得る。
 図20は、本実施の形態に係る三次元データ符号化器113の別の構成例を示すブロック図である。この例において、三次元データ符号化器113は、頂点画像生成器131、属性画像生成器132、メタデータ生成器133、映像符号化器134、メタデータ符号化器123及び多重化器124を備える。頂点画像生成器131、属性画像生成器132及び映像符号化器134は、図6の頂点情報符号化器101及び属性情報符号化器103等に対応していてもよい。
 また、この例において、三次元データ符号化器113は、ビデオベース符号化方式に従って、三次元データを符号化する。ビデオベース符号化方式に従う符号化では、三次元データから複数の二次元画像が生成され、映像符号化方式に従って複数の二次元画像が符号化される。ここで、映像符号化方式は、HEVC(High Efficiency Video Coding)又はVVC(Versatile Video Coding)等であってもよい。
 具体的には、まず、センサデータから生成された三次元データに含まれる頂点情報及び属性情報が、メタデータ生成器133に入力される。また、頂点情報及び属性情報は、頂点画像生成器131及び属性画像生成器132にそれぞれ入力される。また、三次元データに含まれるメタデータは、メタデータ符号化器123に入力される。ここで、三次元データに含まれる接続情報は、属性情報と同様に扱われてもよい。また、点群データの場合、位置情報が頂点情報として扱われてもよい。
 メタデータ生成器133は、頂点情報及び属性情報から複数の二次元画像のマップ情報を生成する。そして、メタデータ生成器133は、マップ情報を頂点画像生成器131、属性画像生成器132及びメタデータ符号化器123に入力する。
 頂点画像生成器131は、頂点情報及びマップ情報に基づいて、頂点画像を生成して映像符号化器134へ入力する。属性画像生成器132は、属性情報及びマップ情報に基づいて、属性画像を生成して映像符号化器134へ入力する。
 映像符号化器134は、映像符号化方式に従って、頂点画像及び属性画像を圧縮頂点情報及び圧縮属性情報にそれぞれ符号化して、圧縮頂点情報及び圧縮属性情報を符号化データとして多重化器124に出力する。また、映像符号化器134は、圧縮頂点情報のメタデータ、及び、圧縮属性情報のメタデータを生成して多重化器124に出力する。
 メタデータ符号化器123は、圧縮可能なメタデータを圧縮メタデータに符号化して、圧縮メタデータを符号化データとして多重化器124に出力する。圧縮可能なメタデータには、マップ情報が含まれる。また、メタデータ符号化器123で符号化されるメタデータは、頂点情報の符号化、及び、属性情報の符号化に用いられてもよい。
 多重化器124は、圧縮頂点情報、圧縮頂点情報のメタデータ、圧縮属性情報、圧縮属性情報のメタデータ、及び、圧縮メタデータをビットストリームに多重化する。そして、多重化器124は、ビットストリームをシステムレイヤに入力する。
 図21は、本実施の形態に係る三次元データ復号器213の別の構成例を示すブロック図である。この例において、三次元データ復号器213は、頂点情報生成器231、属性情報生成器232、映像復号器234、メタデータ復号器223及び逆多重化器224を備える。頂点情報生成器231、属性情報生成器232及び映像復号器234は、図8の頂点情報復号器201及び属性情報復号器203等に対応していてもよい。
 また、この例において、三次元データ復号器213は、ビデオベース符号化方式に従って、三次元データを復号する。ビデオベース符号化方式に従う復号では、映像符号化方式に従って複数の二次元画像が復号され、複数の二次元画像から三次元データが生成される。ここで、映像符号化方式は、HEVC(High Efficiency Video Coding)又はVVC(Versatile Video Coding)等であってもよい。
 具体的には、まず、ビットストリームが、システムレイヤから逆多重化器224に入力される。逆多重化器224は、ビットストリームから、圧縮頂点情報、圧縮頂点情報のメタデータ、圧縮属性情報、圧縮属性情報のメタデータ、及び、圧縮メタデータを分離する。圧縮頂点情報、及び、圧縮頂点情報のメタデータ、圧縮属性情報、及び、圧縮属性情報のメタデータは、映像復号器234に入力される。圧縮メタデータは、メタデータ復号器223に入力される。
 映像復号器234は、映像符号化方式に従って、頂点画像を復号する。その際、映像復号器234は、圧縮頂点情報のメタデータを用いて、圧縮頂点情報から頂点画像を復号する。そして、映像復号器234は、頂点画像を頂点情報生成器231に入力する。また、映像復号器234は、映像符号化方式に従って、属性画像を復号する。その際、映像復号器234は、圧縮属性情報のメタデータを用いて、圧縮属性情報から属性画像を復号する。そして、映像復号器234は、属性画像を属性情報生成器232に入力する。
 メタデータ復号器223は、圧縮メタデータからメタデータを復号する。メタデータ復号器223で復号されたメタデータには、頂点情報の生成、及び、属性情報の生成に用いられるマップ情報が含まれる。また、メタデータ復号器223で復号されたメタデータは、頂点画像の復号、及び、属性画像の復号に用いられてもよい。
 頂点情報生成器231は、メタデータ復号器223で復号されたメタデータに含まれるマップ情報に従って、頂点画像から頂点情報を再生する。属性情報生成器232は、メタデータ復号器223で復号されたメタデータに含まれるマップ情報に従って、属性画像から属性情報を再生する。
 その後、頂点情報、属性情報、及び、メタデータが三次元データとして三次元データ復号器213から出力される。なお、例えば、このメタデータは、頂点情報及び属性情報のメタデータであって、アプリケーションプログラムにおいて用いられ得る。
 図22は、本実施の形態に係る符号化処理の具体例を示す概念図である。図22には、三次元データ符号化器113及びデスクリプション符号化器148が示されている。この例において、三次元データ符号化器113は、二次元データ符号化器141及びメッシュデータ符号化器142を備える。二次元データ符号化器141は、テクスチャ符号化器143を備える。メッシュデータ符号化器142は、頂点情報符号化器144及び接続情報符号化器145を備える。
 頂点情報符号化器144、接続情報符号化器145及びテクスチャ符号化器143は、図6の頂点情報符号化器101、接続情報符号化器102及び属性情報符号化器103等に対応していてもよい。
 例えば、二次元データ符号化器141は、テクスチャ符号化器143として動作し、画像符号化方式又は映像符号化方式に従って、属性情報に対応するテクスチャを二次元データとして符号化することにより、テクスチャファイルを生成する。
 また、メッシュデータ符号化器142は、頂点情報符号化器144及び接続情報符号化器145として動作し、頂点情報及び接続情報を符号化することにより、メッシュファイルを生成する。メッシュデータ符号化器142は、さらに、テクスチャに対するマッピング情報を符号化してもよい。そして、符号化されたマッピング情報が、メッシュファイルに含まれてもよい。
 また、デスクリプション符号化器148は、テキストデータ等のメタデータに対応するデスクリプションを符号化することにより、デスクリプションファイルを生成する。デスクリプション符号化器148は、システムレイヤにおいて、デスクリプションを符号化してもよい。例えば、デスクリプション符号化器148は、図12のシステム多重化器114に含まれていてもよい。
 上記の動作により、テクスチャファイル、メッシュファイル及びデスクリプションファイルを含むビットストリームが生成される。これらのファイルは、glTF(Graphics Language Transmission Format)又はUSD(Universal Scene Description)等のファイル形式でビットストリームに多重化されてもよい。
 なお、三次元データ符号化器113は、メッシュデータ符号化器142として、2つのメッシュデータ符号化器を備えていてもよい。例えば、一方のメッシュデータ符号化器は、静的な三次元メッシュの頂点情報及び接続情報を符号化し、他方のメッシュデータ符号化器は、動的な三次元メッシュの頂点情報及び接続情報を符号化する。
 そして、これに対応して、2つのメッシュファイルがビットストリームに含まれてもよい。例えば、一方のメッシュファイルは、静的な三次元メッシュに対応し、他方のメッシュファイルは、動的な三次元メッシュに対応する。
 また、静的な三次元メッシュはイントラ予測を用いて符号化されるイントラフレームの三次元メッシュであってもよく、動的な三次元メッシュはインター予測を用いて符号化されるインターフレームの三次元メッシュであってもよい。また、動的な三次元メッシュの情報として、イントラフレームの三次元メッシュの頂点情報又は接続情報と、インターフレームの三次元メッシュの頂点情報又は接続情報との差分情報が用いられてもよい。
 図23は、本実施の形態に係る復号処理の具体例を示す概念図である。図23には、三次元データ復号器213、デスクリプション復号器248及び提示器247が示されている。この例において、三次元データ復号器213は、二次元データ復号器241、メッシュデータ復号器242及びメッシュ再構成器246を備える。二次元データ復号器241は、テクスチャ復号器243を備える。メッシュデータ復号器242は、頂点情報復号器244及び接続情報復号器245を備える。
 頂点情報復号器244、接続情報復号器245、テクスチャ復号器243及びメッシュ再構成器246は、図8の頂点情報復号器201、接続情報復号器202、属性情報復号器203及び後処理器205等に対応していてもよい。提示器247は、図12の提示器215等に対応していてもよい。
 例えば、二次元データ復号器241は、テクスチャ復号器243として動作し、画像符号化方式又は映像符号化方式に従って、テクスチャファイルから属性情報に対応するテクスチャを二次元データとして復号する。
 また、メッシュデータ復号器242は、頂点情報復号器244及び接続情報復号器245として動作し、メッシュファイルから頂点情報及び接続情報を復号する。メッシュデータ復号器242は、さらに、メッシュファイルから、テクスチャに対するマッピング情報を復号してもよい。
 また、デスクリプション復号器248は、デスクリプションファイルから、テキストデータ等のメタデータに対応するデスクリプションを復号する。デスクリプション復号器248は、システムレイヤにおいて、デスクリプションを復号してもよい。例えば、デスクリプション復号器248は、図12のシステム逆多重化器214に含まれていてもよい。
 メッシュ再構成器246は、デスクリプションに従って、頂点情報、接続情報及びテクスチャから、三次元メッシュを再構成する。提示器247は、デスクリプションに従って、三次元メッシュをレンダリングして出力する。
 上記の動作により、テクスチャファイル、メッシュファイル及びデスクリプションファイルを含むビットストリームから三次元メッシュが再構成され出力される。
 なお、三次元データ復号器213は、メッシュデータ復号器242として、2つのメッシュデータ復号器を備えていてもよい。例えば、一方のメッシュデータ復号器は、静的な三次元メッシュの頂点情報及び接続情報を復号し、他方のメッシュデータ復号器は、動的な三次元メッシュの頂点情報及び接続情報を復号する。
 そして、これに対応して、2つのメッシュファイルがビットストリームに含まれてもよい。例えば、一方のメッシュファイルは、静的な三次元メッシュに対応し、他方のメッシュファイルは、動的な三次元メッシュに対応する。
 また、静的な三次元メッシュはイントラ予測を用いて符号化されるイントラフレームの三次元メッシュであってもよく、動的な三次元メッシュはインター予測を用いて符号化されるインターフレームの三次元メッシュであってもよい。また、動的な三次元メッシュの情報として、イントラフレームの三次元メッシュの頂点情報又は接続情報と、インターフレームの三次元メッシュの頂点情報又は接続情報との差分情報が用いられてもよい。
 動的な三次元メッシュの符号化方式は、DMC(Dynamic Mesh Coding:動的メッシュ符号化)と呼ばれる場合がある。また、動的な三次元メッシュのビデオベース符号化方式は、V-DMC(Video-based Dynamic Mesh Coding:ビデオベース動的メッシュ符号化)と呼ばれる場合がある。
 点群の符号化方式は、PCC(Point Cloud Compression:点群圧縮)と呼ばれる場合がある。また、点群のビデオベース符号化方式は、V-PCC(Video-based Point Cloud Compression:ビデオベース点群圧縮)と呼ばれる場合がある。また、点群のジオメトリベース符号化方式は、G-PCC(Geometry-based Point Cloud Compression:ジオメトリベース点群圧縮)と呼ばれる場合がある。
 <実装例>
 図24は、本実施の形態に係る符号化装置100の実装例を示すブロック図である。符号化装置100は、回路151及びメモリ152を備える。例えば、図5等に示された符号化装置100の複数の構成要素は、図24に示された回路151及びメモリ152によって実装される。
 回路151は、情報処理を行う回路であり、メモリ152にアクセス可能な回路である。例えば、回路151は、三次元メッシュを符号化する専用又は汎用の電気回路である。回路151は、CPUのようなプロセッサであってもよい。また、回路151は、複数の電気回路の集合体であってもよい。
 メモリ152は、回路151が三次元メッシュを符号化するための情報が記憶される専用又は汎用のメモリである。メモリ152は、電気回路であってもよく、回路151に接続されていてもよい。また、メモリ152は、回路151に含まれていてもよい。また、メモリ152は、複数の電気回路の集合体であってもよい。また、メモリ152は、磁気ディスク又は光ディスク等であってもよいし、ストレージ又は記録媒体等と表現されてもよい。また、メモリ152は、不揮発性メモリでもよいし、揮発性メモリでもよい。
 例えば、メモリ152には、三次元メッシュが記憶されてもよいし、ビットストリームが記憶されてもよい。また、メモリ152には、回路151が三次元メッシュを符号化するためのプログラムが記憶されていてもよい。
 なお、符号化装置100において、図5等に示された複数の構成要素の全てが実装されなくてもよいし、ここで示された複数の処理の全てが行われなくてもよい。図5等に示された複数の構成要素の一部は、他の装置に含まれていてもよいし、ここで示された複数の処理の一部は、他の装置によって実行されてもよい。また、符号化装置100において、本開示の複数の構成要素が任意に組み合わされて実装されてもよいし、本開示の複数の処理が任意に組み合わされて行われてもよい。
 図25は、本実施の形態に係る復号装置200の実装例を示すブロック図である。復号装置200は、回路251及びメモリ252を備える。例えば、図7等に示された復号装置200の複数の構成要素は、図25に示された回路251及びメモリ252によって実装される。
 回路251は、情報処理を行う回路であり、メモリ252にアクセス可能な回路である。例えば、回路251は、三次元メッシュを復号する専用又は汎用の電気回路である。回路251は、CPUのようなプロセッサであってもよい。また、回路251は、複数の電気回路の集合体であってもよい。
 メモリ252は、回路251が三次元メッシュを復号するための情報が記憶される専用又は汎用のメモリである。メモリ252は、電気回路であってもよく、回路251に接続されていてもよい。また、メモリ252は、回路251に含まれていてもよい。また、メモリ252は、複数の電気回路の集合体であってもよい。また、メモリ252は、磁気ディスク又は光ディスク等であってもよいし、ストレージ又は記録媒体等と表現されてもよい。また、メモリ252は、不揮発性メモリでもよいし、揮発性メモリでもよい。
 例えば、メモリ252には、三次元メッシュが記憶されてもよいし、ビットストリームが記憶されてもよい。また、メモリ252には、回路251が三次元メッシュを復号するためのプログラムが記憶されていてもよい。
 なお、復号装置200において、図7等に示された複数の構成要素の全てが実装されなくてもよいし、ここで示された複数の処理の全てが行われなくてもよい。図7等に示された複数の構成要素の一部は、他の装置に含まれていてもよいし、ここで示された複数の処理の一部は、他の装置によって実行されてもよい。また、復号装置200において、本開示の複数の構成要素が任意に組み合わされて実装されてもよいし、本開示の複数の処理が任意に組み合わされて行われてもよい。
 本開示の符号化装置100及び復号装置200の各構成要素が行うステップを含む符号化方法及び復号方法が任意の装置又はシステムによって実行されてもよい。例えば、符号化方法及び復号方法の一部又は全部が、プロセッサ、メモリ及び入出力回路等を備えるコンピュータによって実行されてもよい。その際、コンピュータに符号化方法及び復号方法を実行させるためのプログラムがコンピュータによって実行されることにより、符号化方法及び復号方法が実行されてもよい。
 また、CD-ROM等の非一時的なコンピュータ読み取り可能な記録媒体に、プログラムが記録されていてもよいし、ビットストリームが記録されていてもよい。
 プログラムの一例は、ビットストリームであってもよい。例えば、符号化された三次元メッシュを含むビットストリームは、復号装置200に三次元メッシュを復号させるためのシンタックス要素を含む。そして、ビットストリームは、ビットストリームに含まれるシンタックス要素に従って三次元メッシュを復号装置200に復号させる。したがって、ビットストリームは、プログラムと同様の役割を果たし得る。
 上記のビットストリームは、符号化された三次元メッシュを含む符号化ビットストリームであってもよいし、符号化された三次元メッシュ及びその他の情報を含む多重化ビットストリームであってもよい。
 また、符号化装置100及び復号装置200の各構成要素は、専用のハードウェアで構成されてもよいし、上記のプログラム等を実行する汎用のハードウェアで構成されてもよいし、これらの組み合わせで構成されてもよい。また、汎用のハードウェアは、プログラムが記録されたメモリ、及び、メモリからプログラムを読み出して実行する汎用のプロセッサ等で構成されてもよい。ここで、メモリは、半導体メモリ又はハードディスク等でもよいし、汎用のプロセッサは、CPU等でもよい。
 また、専用のハードウェアが、メモリ及び専用のプロセッサ等で構成されてもよい。例えば、専用のプロセッサが、データを記録するためのメモリを参照して、符号化方法及び復号方法を実行してもよい。
 また、符号化装置100及び復号装置200の各構成要素は、上述の通り、電気回路であってもよい。これらの電気回路は、全体として1つの電気回路を構成してもよいし、それぞれ別々の電気回路であってもよい。また、これらの電気回路は、専用のハードウェアに対応していてもよいし、上記のプログラム等を実行する汎用のハードウェアに対応していてもよい。また、符号化装置100及び復号装置200は、集積回路として実装されてもよい。
 また、符号化装置100は、三次元メッシュを送信する送信装置であってもよい。復号装置200は、三次元メッシュを受信する受信装置であってもよい。
 <頂点情報の符号化及び復号に関する参考例>
 例えば、頂点情報の符号化及び復号において、頂点の位置を予測する平行四辺形予測方式が用いられてもよい。
 図26は、参考例に係る平行四辺形予測方式を示す概念図である。例えば、第1三角形の第1頂点A、第2頂点B及び第3頂点Cの頂点情報が符号化されてから、第1三角形と同じ第2頂点B及び第3頂点Cを有する第2三角形の第4頂点Dの頂点情報が符号化される。その際、平行四辺形予測方式を用いて、第1頂点A、第2頂点B及び第3頂点Cから、第4頂点Dの位置が予測され、予測に対する誤差が符号化される。
 具体的には、まず、第1三角形ABCから、対角線BC及び対角線APを有する仮想平行四辺形ABCPの頂点Pが予測点として計算される。頂点Pの座標値は、第1三角形ABCの第1頂点A、第2頂点B及び第3頂点Cの座標値を用いて導出される(P=B+C-A)。そして、三次元空間における頂点Dと頂点Pとの差を示す誤差ベクトルが符号化される。
 より複雑なバージョンでは、複数の三角形が用いられる。このアプローチでは、圧縮処理が遅くなるが、より優れた予測が実現される。
 頂点情報の符号化及び復号において、頂点の位置を予測する多項式予測方式が用いられてもよい。多項式予測方式では、局所構成を用いて新しい頂点の位置が予測される。具体的には、局所近傍内のいくつかの頂点座標値が、予め定められた係数を有する多項式関数に供給され、多項式関数に従って新しい頂点の位置が予測される。新しい頂点の予測に用いられる頂点は、特定の条件に従って選択される。
 図27は、参考例に係る多項式予測方式を示す概念図である。例えば、図27では、符号化済みの4つの頂点を用いて、次の頂点の予測点が導出される。つまり、図27では、頂点#1、頂点#2、頂点#3及び頂点#4の座標値は、頂点#5を予測するために用いられる。平行四辺形予測方式と同様に、予測に対する誤差を示す誤差ベクトルが符号化される。
 参考例では、平行四辺形予測方式又は多項式予測方式等の予測方式に従って計算された誤差ベクトルを用いて頂点情報が符号化される。これらの予測方式の複雑さにかかわらず、これらの誤差の大きさが特定の範囲内にあることを保証することは困難である。例えば、鈍角三角形では、正三角形よりも大きな誤差ベクトルが生じる傾向がある。また、形状の滑らかさ、及び、面のサイズが、誤差の大きさに影響を与える。したがって、頂点情報のシグナリングに、より多くのビットが用いられる可能性がある。
 <頂点情報の符号化及び復号の第1態様>
 本態様では、二面角と他の2つの角度との3つの角度を用いて、参照三角形に対する隣接三角形の非共通頂点が符号化される。すなわち、隣接三角形間の空間的関係を用いて頂点情報が符号化される際、3つの角度のみが符号化される。これにより、ビット数が削減される可能性がある。
 角度の正負符号は、辺に対する角度の向きを示すために用いられてもよい。正の値が基準に対して時計回りの向きを指し、負の値が基準に対して反時計回りの方向を指すという、予め決められた規則が採用されてもよい。
 例えば、参照三角形である第1三角形と予測三角形である第2三角形とのなす二面角により、第2三角形の二次元平面を見つけることが可能になる。したがって、三次元の複雑さが、より単純な平面上の法則が適用可能な二次元に減らされ得る。
 隣接面間の二面角は、面法線を用いて計算されてもよい。そして、第2三角形に対して1対1の仮想的な合同三角形である第3三角形が第1三角形の平面上に構築される。第1三角形と第3三角形とは、共通の辺を有し、共通の辺に対して反対側に位置する。第3三角形の頂点は、2つの角度を用いて特定される。したがって、第2三角形の頂点は、第1三角形と第2三角形とのなす二面角、及び、第2三角形と合同な第3三角形の頂点を特定するための2つの角度によって、第2三角形の頂点が特定される。
 したがって、二面角と他の2つの角度との3つの角度によって、第2三角形の頂点情報を符号化することが可能である。そして、これにより、角度の表現範囲に従って、符号化対象の値が大きくなり過ぎることが抑制される。よって、三次元メッシュの性質及び品質に関係なく、ワーストケースの符号量を抑制することが可能になる。
 さらに、これらの角度の値は特定の分布に従う傾向がある。したがって、そのような傾向を利用することで圧縮率を向上させることも可能である。例えば、角度の分布を調べ、その分布の平均に対する差分が符号化されてもよい。
 <第1態様に係る符号化処理の例>
 図28は、本態様に係る符号化処理の例を示すフローチャートである。まず、三次元メッシュから第1頂点、第2頂点及び第3頂点が導出される(S101)。ここで、第1頂点、第2頂点及び第3頂点は、三次元メッシュの第1平面上に第1三角形を形成する。また、例えば、第1頂点、第2頂点及び第3頂点は、符号化済みの3つの頂点である。
 次に、第1三角形と共通の辺を用いて三次元メッシュの第2平面上に形成される第2三角形の第4頂点を導出するための第1角度、第2角度及び第3角度が導出される(S102)。
 そして、第1角度、第2角度及び第3角度が、ビットストリームに符号化される(S103)。
 図29は、本態様に係る符号化処理の具体例を示すフローチャートである。まず、三次元メッシュから最初の面の各頂点座標値が符号化される(S111)。最初の面は、ランダムに選択されてもよい。
 次に、処理が、次の面にトラバースする(S112)。そして、トラバーサルの指示及び頂点の処理モードを示すトラバーサルシンボルがビットストリームに書き込まれる。
 ここで、面の頂点が既に符号化されている場合(S113でYes)、頂点の符号化がスキップされる。そして、全ての面がトラバース済みでなければ、次の面に処理がトラバースする。なお、全ての面がトラバース済みであれば、処理は終了してもよい。
 一方、頂点が符号化されていない場合(S113でNo)、書き込まれたトラバーサルシンボルに従って、頂点の処理モードが指定される。
 頂点は、座標値又は角度を用いて符号化される。例えば、トラバーサルシンボルが座標を示す場合(S114で座標)、頂点座標値(x、y、z)が直接符号化される(S115)。この方法は、どの頂点もまだ符号化されていない符号化開始時に選択されてもよい。また、例えば、トラバーサルシンボルが角度を示す場合(S114で角度)、頂点は、3つの角度を用いて符号化される(S116)。
 追加の残差が、計算されてもよく、角度のシグナリング後に別個にシグナリングされてもよい。可逆符号化のために角度の浮動小数点値を完全に表現する例において、角度の浮動小数点値の整数部分が符号化された後に、角度の浮動小数点値の小数部分が残差値として符号化されてもよい。トラバーサル処理は、三次元メッシュの全てにトラバースするまで継続する(S119)。
 スキップ、終了及び実行のいずれかを示すトラバーサルシンボルが符号化されてもよい。スキップは、頂点が既に処理済みであることに対応する。終了は、全ての頂点が処理済みであることに対応する。実行は、頂点が処理されるべきであることに対応する。そして、実行を示すトラバーサルシンボルが符号化される場合、座標及び角度のいずれかを示す処理モードがトラバーサルシンボルとは別に符号化されてもよい。処理モードは、モード、動作モード、予測モード、符号化モード又は復号モードとも表現され得る。
 図30は、本態様に係る符号化処理の別の具体例を示すフローチャートである。この例では、図29の符号化処理に、参考例の符号化処理が統合される。まず、三次元メッシュから最初の面の各頂点座標値が符号化される(S111)。
 次に、処理が、次の面にトラバースする(S112)。そして、トラバーサルの指示及び頂点の処理モードを示すトラバーサルシンボルがビットストリームに書き込まれる。
 ここで、面の頂点が既に符号化されている場合(S113でYes)、頂点の符号化がスキップされる。そして、全ての面がトラバース済みでなければ、次の面に処理がトラバースする。なお、全ての面がトラバース済みであれば、処理は終了してもよい。
 一方、頂点が符号化されていない場合(S113でNo)、書き込まれたトラバーサルシンボルに従って、頂点の処理モードが指定される。
 頂点は、座標、角度、平行四辺形又は多項式を用いて符号化される。例えば、トラバーサルシンボルが座標を示す場合(S114で座標)、頂点座標値(x、y、z)が直接符号化される(S115)。この方法は、どの頂点もまだ符号化されていない符号化開始時に選択されてもよい。また、例えば、トラバーサルシンボルが角度を示す場合(S114で角度)、頂点は、3つの角度を用いて符号化される(S116)。
 また、例えば、トラバーサルシンボルが平行四辺形を示す場合(S114で平行四辺形)、頂点は、平行四辺形を用いて符号化される(S117)。また、例えば、トラバーサルシンボルが多項式を示す場合(S114で多項式)、頂点は、多項式を用いて符号化される(S118)。
 複数の処理モードに対して符号化レート及び歪みによって計算される複数のコストのうちの最小コストによって、最適な処理モードが決定されてもよい。符号化レート及び歪みのコストは、シグナリングされるビット数、及び、実際の値と予測の値との間の誤差に基づいて計算され得る。また、実際の値と予測の値との間の誤差のみに基づいて、最小の誤差に対応する最適な処理モードが選択されてもよい。
 トラバーサル処理は、三次元メッシュの全てがトラバースされるまで継続する(S119)。
 スキップ、終了及び実行のいずれかを示すトラバーサルシンボルが符号化されてもよい。そして、実行を示すトラバーサルシンボルが符号化される場合、座標、角度、平行四辺形及び多角形のいずれかを示す処理モードがトラバーサルシンボルとは別に符号化されてもよい。なお、処理モードが予め定められている場合、処理モードは符号化されなくてもよいし、処理が切り替えられなくてもよい。
 例えば、図31、図32及び図33に示されているように、第1三角形は、第1頂点A、第2頂点B及び第3頂点Cを有し、第2三角形は、第2頂点B、第3頂点C及び第4頂点Dを有し、第3三角形は、第2頂点B、第3頂点C及び第5頂点Eを有する。
 図31は、本態様に係る3つの角度の例を示す概念図である。この例では、第3三角形の2つの内角が第2角度β及び第3角度γとして用いられる。また、この例では、第3三角形の2つの内角が共通の辺に接触する。そして、この例において、第2角度β及び第3角度γは、以下の式(1)により計算される。
Figure JPOXMLDOC01-appb-M000001
 図32は、本態様に係る3つの角度の別の例を示す概念図である。この例では、線AEに接触する角度が第2角度βとして用いられ、第3三角形の1つの内角であって共通の辺BCに接触する1つの内角が第3角度γとして用いられる。この例において、第2角度β及び第3角度γは、以下の式(2)により計算される。
Figure JPOXMLDOC01-appb-M000002
 図33は、本態様に係る3つの角度のさらに別の例を示す概念図である。この例では、第3三角形の1つの内角が、第2角度βとして用いられ、ABとAQとのなす角度が、第3角度γとして用いられる。点Qは、共通の辺BCに対する第5頂点Eの正射影である。この例において、第2角度β及び第3角度γは、以下の式(3)により計算される。
Figure JPOXMLDOC01-appb-M000003
 図31、図32及び図33において、第1三角形及び第2三角形の平面間の二面角が、第1角度θとして用いられる。第1角度θは、それらの面法線を用いて計算され得る。例えば、第1三角形及び第2三角形の法線ベクトルは、それぞれn=[x、y、z]及びn=[x、y、z]であり、正規化されていると仮定される。このような仮定において、第1三角形及び第2三角形の平面間の第1角度θは、例えばθ=π-cos-1(n)(又はθ=cos-1(n))により計算される。
 図34は、本態様に係る複数の頂点に対する頂点情報のシンタックス構造例を示すシンタックス図である。この例において、3つの頂点が符号化された後、他の各頂点について、トラバーサルシンボルが符号化される。そして、トラバーサルシンボルに従って頂点を符号化するか否かが制御される。
 図35は、本態様に係る1つの頂点に対する頂点情報のシンタックス構造例を示すシンタックス図である。この例において、prediction_modeがonly_angles_modeに等しい場合、第1角度、第2角度及び第3角度に対する導出角度が直接符号化される。
 図36は、本態様に係る1つの頂点に対する頂点情報の別のシンタックス構造例を示すシンタックス図である。この例において、is_init_anglesに従って、3つの角度を直接符号化せずに導出又は予測する他の方法が用いられる。3つの角度を導出又は予測する方法の例は、前に符号化された角度の履歴リストを用いる方法である。具体的には、符号化対象の3つの角度が、最初の3つの角度でない場合、前に符号化された角度の履歴リストを用いて、3つの角度が導出又は予測される。
 図37は、角度の予測に用いられるテーブルの例を示すテーブル図である。この例において、前に符号化された角度と、インデックスとが、対応付けられてテーブルに格納される。テーブルに格納される角度は、前に符号化された3つの角度を平均することによって計算されてもよい。テーブルに格納される角度は、先入れ先出し、値の出現頻度、又は、その両方の組み合わせに従って制御されてもよい。インデックスは、固定値であってもよい。
 そして、テーブルの複数の角度のうちの1つが予測角度として用いられる。シンタックス要素の書き込みでは、予測角度に対応するインデックス値、及び、実際の角度と予測角度との違いであるデルタのみがビットストリームに書き込まれる。
 図38は、角度の予測に用いられるテーブルの別の例を示すテーブル図である。この例において、前に符号化された第1角度、第2角度及び第3角度がインデックスに対応付けられてテーブルに格納される。テーブルに格納される角度は、先入れ先出し、値の出現頻度、又は、その両方の組み合わせによって制御されてもよい。インデックスは、固定値であってもよい。
 そして、テーブルの複数の組み合わせのうちの1つの組み合わせが予測角度の組み合わせとして用いられる。シンタックス要素の書き込みでは、予測角度の組み合わせに対応するインデックス値、及び、実際の角度と予測角度との違いであるデルタのみがビットストリームに書き込まれる。
 図39は、前の三角形の頂点に対する角度を用いる予測の例を示す概念図である。この例では、前の三角形の頂点に対する3つの角度を用いて現在の三角形の頂点に対する3つの角度が導出又は予測される。前の三角形は、現在の三角形よりも前にトラバースされる三角形である。前の三角形は、現在の三角形の直前の三角形であってもよいし、現在の三角形に隣接する三角形であってもよい。
 具体的には、この例では、前の三角形の頂点に対する3つの角度(10°、30°、60°)を用いて、現在の三角形の頂点に対する3つの角度に対応するシンタックス値が決定される。例えば、現在の三角形の頂点に対する第1角度が9°である場合、10°-9°=1°がシンタックス値として書き込まれる。
 図40は、前の三次元メッシュの頂点に対する角度を用いる予測の例を示す概念図である。この例では、前の三次元メッシュの複数の頂点に対する複数の角度を用いて3つの角度が導出又は予測される。
 例えば、前の三次元メッシュは、現在の三次元メッシュとは空間的に異なる三次元メッシュであって、現在の三次元メッシュよりも前に処理された三次元メッシュである。あるいは、例えば、前の三次元メッシュは、現在の三次元メッシュとは時間的に異なる三次元メッシュであって、現在の三次元メッシュよりも前に処理された三次元メッシュである。
 前の三次元メッシュの複数の頂点に対する複数の第1角度、複数の第2角度及び複数の第3角度は、平均化されて、現在の三次元メッシュでシグナリングされてもよい。例えば、シンタックス値として、第1デルタ=第1角度x-平均第1角度が、決定され書き込まれる。例えば、この方法は、複数の隣接フレームが空間的冗長性を有する動的メッシュで利用され得る。
 図41は、本態様に係る符号化装置100の構成例を示すブロック図である。符号化装置100は、三次元メッシュをビットストリームに符号化する。図41に示されるように、符号化装置100は、トラバーサ161、スイッチ162、角度導出器163、角度符号化器164、座標符号化器165及びエントロピー符号化器166を備えてもよい。
 トラバーサ161は、三次元メッシュを取得する。そして、トラバーサ161は、三次元メッシュにおける符号化対象の頂点を決定し、スイッチ162を介して角度導出器163及び座標符号化器165のいずれかに頂点を出力する。一例において、トラバーサ161は、三次元メッシュの最初の3つの頂点に対して、座標符号化器165を選択し、他の頂点に対して、角度導出器163を選択する。
 例えば、座標符号化器165は、第1平面上に第1三角形を形成する3つの頂点を取り込み、3つの頂点を符号化する。3つの頂点の符号化において、デルタ符号化が用いられてもよい。具体的には、第1頂点Aの座標値が直接符号化され、第1頂点Aの座標値と第2頂点Bの座標値との差、及び、第1頂点Aの座標値と第3頂点Cの座標値との差が符号化されてもよい。
 角度導出器163は、第2頂点B及び第3頂点Cを用いて第2平面上に第2三角形を形成する第4頂点Dを取り込み、第4頂点Dを特定するための3つの角度を導出し、導出された3つの角度を角度符号化器164に出力する。第2平面は、第1平面とは異なっていてもよいし、第1平面と同じであってもよい。上述した通り、図31、図32及び図33は、3つの角度に関する異なる例を示す。
 角度符号化器164は、3つの角度を符号化する。追加の残差が、計算され、角度のシグナリング後に別個にシグナリングされてもよい。可逆符号化のため角度の浮動小数点値を完全に表現する例において、角度符号化器164は、角度の浮動小数点値の整数部分を符号化してから、角度の浮動小数点値の小数部分を残差値として符号化してもよい。
 座標符号化器165で得られた符号化情報、及び、角度符号化器164で得られた符号化情報は、エントロピー符号化器166に送られ、また、トラバーサ161にもフィードバックされる。エントロピー符号化器166は、符号化情報を圧縮し、ビットストリームを出力する。トラバーサ161は、符号化情報を用いて、次のトラバーサルを決定する。
 エントロピー符号化が準じる符号化方式の例は、ハフマン符号化、算術符号化、範囲符号化、ANS(非対称記数法:Asymmetric Numeral Systems)、又は、CABAC(コンテキスト適応型二値算術符号化:Context-Adaptive Binary Arithmetic Coding)であってもよい。
 符号化装置100は、上記の構成及び処理に従って、三次元メッシュを符号化する。これにより、三次元メッシュの符号量が抑制される場合がある。
 上記の説明において、第3三角形は、第2三角形に対して合同の三角形であるが、第2三角形に対して相似の三角形であってもよい。第2三角形と第3三角形とが相似であっても、第2三角形と第3三角形との対応関係が既知であれば、第2三角形と第3三角形との対応関係に従って、第5頂点Eから第4頂点Dが導き出され得る。また、第3三角形は、第1平面に対する第2三角形の正射影であってもよい。この場合も、第2三角形と第3三角形との対応関係に従って、第5頂点Eから第4頂点Dが導き出され得る。
 <第1態様に係る復号処理の例>
 図42は、本態様に係る復号処理の例を示すフローチャートである。まず、三次元メッシュから第1頂点、第2頂点及び第3頂点が導出される(S201)。ここで、第1頂点、第2頂点及び第3頂点は、三次元メッシュの第1平面上に第1三角形を形成する。また、例えば、第1頂点、第2頂点及び第3頂点は、復号済みの3つの頂点である。
 次に、第1三角形と共通の辺を用いて三次元メッシュの第2平面上に形成される第2三角形の第4頂点を導出するための第1角度、第2角度及び第3角度がビットストリームから復号される(S202)。そして、第1角度、第2角度及び第3角度を用いて第4頂点が導出される(S203)。
 図43は、本態様に係る復号処理の具体例を示すフローチャートである。復号処理は、最初に符号化された初期の面の各頂点座標値を復号することから始まる(S211)。続いて、現在の面のトラバーサルシンボルが復号される(S212)。そして、トラバーサルシンボルが座標、角度、スキップ及び終了のどれを示すかが判定される(S213)。
 例えば、トラバーサルシンボルが座標を示す場合(S213で座標)、頂点座標値(x、y、z)が直接復号される(S214)。また、トラバーサルシンボルが角度を示す場合(S213で角度)、頂点は3つの角度を用いて復号される(S215)。また、トラバーサルシンボルがスキップを示す場合(S213でスキップ)、次の面について処理が繰り返される。また、トラバーサルシンボルが終了を示す場合(S213で終了)、処理が終了する。
 スキップ、終了及び実行のいずれかを示すトラバーサルシンボルが復号されてもよい。スキップは、頂点が既に処理済みであることに対応する。終了は、全ての頂点が処理済みであることに対応する。実行は、頂点が処理されるべきであることに対応する。そして、実行を示すトラバーサルシンボルが復号された場合、座標及び角度のいずれかを示す処理モードがトラバーサルシンボルとは別に復号されてもよい。処理モードは、モード、動作モード、予測モード、符号化モード又は復号モードとも表現され得る。
 図44は、本態様に係る復号処理の別の具体例を示すフローチャートである。この例では、図43の復号処理に参考例の復号処理が統合される。復号処理は、最初に符号化された初期の面の各頂点座標値を復号することから始まる(S211)。続いて、現在の面のトラバーサルシンボルが復号される(S212)。そして、トラバーサルシンボルが座標、角度、スキップ及び終了のどれを示すかが判定される(S213)。
 例えば、トラバーサルシンボルが座標を示す場合(S213で座標)、頂点座標値(x、y、z)が直接復号される(S214)。また、トラバーサルシンボルが角度を示す場合(S213で角度)、頂点は3つの角度を用いて復号される(S215)。また、トラバーサルシンボルが平行四辺形を示す場合(S213で平行四辺形)、頂点は平行四辺形を用いて復号される(S216)。また、トラバーサルシンボルが多項式を示す場合(S213で多項式)、頂点は多項式を用いて次の頂点が復号される。
 また、トラバーサルシンボルがスキップを示す場合(S213でスキップ)、次の面について処理が繰り返される。また、トラバーサルシンボルが終了を示す場合(S213で終了)、処理が終了する。
 スキップ、終了及び実行のいずれかを示すトラバーサルシンボルが復号されてもよい。そして、実行を示すトラバーサルシンボルが復号された場合、座標、角度、平行四辺形及び多角形のいずれかを示す処理モードがトラバーサルシンボルとは別に復号されてもよい。なお、処理モードが予め定められている場合、処理モードは復号されなくてもよいし、処理が切り替えられなくてもよい。
 図34は、本態様に係る複数の頂点に対する頂点情報のシンタックス構造例を示すシンタックス図である。この例において、3つの頂点が復号された後、他の各頂点について、トラバーサルシンボルが復号される。そして、トラバーサルシンボルに従って頂点を復号するか否かが制御される。
 図35は、本態様に係る1つの頂点に対する頂点情報のシンタックス構造例を示すシンタックス図である。この例において、prediction_modeがonly_angles_modeに等しい場合、第1角度、第2角度及び第3角度に対する導出角度が直接復号される。
 図36は、本態様に係る1つの頂点に対する頂点情報の別のシンタックス構造例を示すシンタックス図である。この例において、is_init_anglesに従って、3つの角度を直接復号せずに導出又は予測する他の方法が用いられる。3つの角度を導出又は予測する方法の例は、前に復号された角度の履歴リストを用いる方法である。具体的には、復号対象の3つの角度が、最初の3つの角度でない場合、前に復号された角度の履歴リストを用いて、3つの角度が導出又は予測される。
 図37は、角度の予測に用いられるテーブルの例を示すテーブル図である。この例において、前に復号された角度と、インデックスとが、対応付けられてテーブルに格納される。テーブルに格納される角度は、前に復号された3つの角度を平均することによって計算されてもよい。テーブルに格納される角度は、先入れ先出し、値の出現頻度、又は、その両方の組み合わせに従って制御されてもよい。インデックスは、固定値であってもよい。
 そして、テーブルの複数の角度のうちの1つが予測角度として用いられる。シンタックス要素の復号では、予測角度に対応するインデックス値、及び、実際の角度と予測角度との違いであるデルタのみがビットストリームから復号される。
 図38は、角度の予測に用いられるテーブルの別の例を示すテーブル図である。この例において、前に復号された第1角度、第2角度及び第3角度がインデックスに対応付けられてテーブルに格納される。テーブルに格納される角度は、先入れ先出し、値の出現頻度、又は、その両方の組み合わせに従って制御されてもよい。インデックスは、固定値であってもよい。
 そして、テーブルの複数の組み合わせのうちの1つの組み合わせが予測角度の組み合わせとして用いられる。シンタックス要素の復号では、予測角度の組み合わせに対応するインデックス値、及び、実際の角度と予測角度との違いであるデルタのみがビットストリームから復号される。
 図39は、前の三角形の頂点に対する角度を用いる予測の例を示す概念図である。この例では、前の三角形の頂点に対する3つの角度を用いて現在の三角形の頂点に対する3つの角度が導出又は予測される。前の三角形は、現在の三角形よりも前にトラバースされる三角形である。前の三角形は、現在の三角形の直前の三角形であってもよいし、現在の三角形に隣接する三角形であってもよい。
 具体的には、この例では、前の三角形の頂点に対する3つの角度(10°、30°、60°)を用いて、現在の三角形の頂点に対する3つの角度に対応するシンタックス値が決定される。例えば、現在の三角形の頂点に対する第1デルタが1°である場合、10°-9°=1°が第1角度として導出される。
 図40は、前の三次元メッシュの頂点に対する角度を用いる予測の例を示す概念図である。この例では、前の三次元メッシュの複数の頂点に対する複数の角度を用いて3つの角度が導出又は予測される。
 例えば、前の三次元メッシュは、現在の三次元メッシュとは空間的に異なる三次元メッシュであって、現在の三次元メッシュよりも前に処理された三次元メッシュである。あるいは、例えば、前の三次元メッシュは、現在の三次元メッシュとは時間的に異なる三次元メッシュであって、現在の三次元メッシュよりも前に処理された三次元メッシュである。
 前の三次元メッシュの複数の頂点に対する複数の第1角度、複数の第2角度及び複数の第3角度は、平均化されて、現在の三次元メッシュでシグナリングされてもよい。例えば、シンタックス値から、第1角度x=平均第1角度+第1デルタが導出される。例えば、この方法は、複数の隣接フレームが空間的冗長性を有する動的メッシュで利用され得る。
 追加の残差が、3つの角度の復号後に復号されてもよい。一例において、角度として復号される値が、角度の浮動小数点値の整数部分を表してもよく、残差として復号される値が、角度の浮動小数点値の小数部分を表してもよい。整数部分に小数部分を追加することにより、実際の角度が得られる。
 例えば、図31、図32及び図33に示されているように、第1三角形は、第1頂点A、第2頂点B及び第3頂点Cを有し、第2三角形は、第2頂点B、第3頂点C及び第4頂点Dを有し、第3三角形は、第2頂点B、第3頂点C及び第5頂点Eを有する。
 第2三角形の第4頂点Dの導出では、まず、第2角度及び第3角度を用いて、第1三角形を含む第1平面に対する第4頂点Dの投影である第5頂点Eが計算される。そして、第1三角形と第2三角形との二面角である第1角度を用いて、第5頂点Eから第4頂点Dが計算される。
 図31は、本態様に係る3つの角度の例を示す概念図である。この例では、第3三角形の2つの内角が第2角度β及び第3角度γとして用いられる。つまり、この例では、第3三角形の2つの内角が、ビットストリームから復号される。三角形CBEに正弦法則を適用することで、以下の式(4)が得られる。
Figure JPOXMLDOC01-appb-M000004
 第2角度β、第3角度γ及び辺CBが与えられた場合、上記の式(4)から第5頂点Eの座標値が導出される。
 図32は、本態様に係る3つの角度の別の例を示す概念図である。この例では、線AEに接触する角度が第2角度βとして用いられ、第3三角形の1つの内角であって共通の辺BCに接触する1つの内角が第3角度γとして用いられる。この例において、第1頂点A、第2頂点B及び第3頂点Cがビットストリームから復号された後、BAとBCとのなす第4角度δは以下の式(5)により導出される。
Figure JPOXMLDOC01-appb-M000005
 次に、三角形ABEに正弦法則を適用することで、以下の式(6)が得られる。
Figure JPOXMLDOC01-appb-M000006
 上記の式(6)により、BEの大きさが導出される。したがって、BEの方向及び大きさ、並びに、第5頂点Eが位置する平面が既知となり、第5頂点Eの座標値が導出される。
 図33は、本態様に係る3つの角度のさらに別の例を示す概念図である。この例では、第3三角形の1つの内角が、第2角度βとして用いられ、ABとAQとのなす角度が、第3角度γとして用いられる。点Qは、共通の辺BCに対する第5頂点Eの正射影である。三角形AQBに正弦法則を適用することで、以下の式(7)が得られる。
Figure JPOXMLDOC01-appb-M000007
 上記の式(7)により、QBの大きさが得られる。したがって、点Qの座標値が導出される。次に、三角形CEQにおける直角三角形の規則によって、以下の式(8)が得られる。
Figure JPOXMLDOC01-appb-M000008
 上記の式(8)により、CEの大きさが導出される。したがって、CEの方向及び大きさ、並びに、第5頂点Eが位置する平面が既知となり、第5頂点Eの座標値が導出される。
 図31、図32及び図33を用いて説明された複数の導出方法のそれぞれの処理において第5頂点Eが導出される。そして、第5頂点Eから第4頂点Dが導出され得る。例えば、第2三角形CBD及び第3三角形CBEは、1対1で同じである。また、第4頂点Dと第5頂点Eとは共通の辺CBを共有する異なる平面上にある。この場合、辺BCの周りに第5頂点Eをπ-θ(又はθ)の量で回転させることで、第4頂点Dが導出される。ここで、θは第1角度である。
 図45は、サイン関数及びコサイン関数のルックアップテーブルの例を示すテーブル図である。上記のサイン関数及びコサイン関数の計算において、図45に示されたルックアップテーブルが用いられてもよい。
 図46は、本態様に係る復号装置200の構成例を示すブロック図である。復号装置200は、ビットストリームから三次元メッシュを復号する。図46に示されるように、復号装置200は、トラバーサ261、スイッチ262、角度復号器263、座標導出器264、座標復号器265及びエントロピー復号器266を備える。
 エントロピー復号器266は、ビットストリームを取得する。エントロピー復号器266は、ビットストリームを圧縮解除することにより圧縮解除情報を取得し、圧縮解除情報を出力する。エントロピー復号が準じる符号化方式の例は、ハフマン符号化、算術符号化、範囲符号化、ANS(非対称記数法:Asymmetric Numeral Systems)、又は、CABAC(コンテキスト適応型二値算術符号化:Context-Adaptive Binary Arithmetic Coding)であってもよい。
 圧縮解除情報は、トラバーサ261に入力される。トラバーサ261は、圧縮解除情報を解釈し、スイッチ262を介して圧縮解除情報を角度復号器263及び座標復号器265のいずれかに出力する。
 座標復号器265は、圧縮解除情報から、第1平面上に第1三角形を形成する3つの頂点を復号する。3つの頂点を復号する例として、圧縮解除情報から、第1頂点Aの座標値と、2つの差分値とが復号される。次に、第1頂点Aの座標値に2つの差分値を追加することにより、第2頂点Bの座標値、及び、第3頂点Cの座標値が導出される。
 角度復号器263は、圧縮解除情報から3つの角度を復号し、3つの角度を座標導出器264に出力する。
 座標導出器264は、3つの角度を用いて、第1三角形と共通の辺を有する第2三角形の頂点を導出する。第2三角形は、第1平面とは異なる平面上にあってもよいし、第1平面と同じ平面上にあってもよい。具体的には、座標導出器264は、図31、図32及び図33を用いて上述された導出方法を用いて、3つの角度から第2三角形の頂点を導出する。
 座標導出器264又は座標復号器265で得られた頂点を示す頂点情報は、三次元メッシュの頂点情報として出力される。また、この頂点情報は、トラバーサ261にフィードバックされて、次のトラバーサルの決定に用いられる。
 復号装置200は、上記の構成及び処理に従って、三次元メッシュを復号する。これにより、三次元メッシュの符号量が抑制される場合がある。
 上記の説明において、第3三角形は、第2三角形に対して合同の三角形であるが、第2三角形に対して相似の三角形であってもよい。第2三角形と第3三角形とが相似であっても、第2三角形と第3三角形との対応関係が既知であれば、第2三角形と第3三角形との対応関係に従って、第5頂点Eから第4頂点Dが導き出され得る。また、第3三角形は、第1平面に対する第2三角形の正射影であってもよい。この場合も、第2三角形と第3三角形との対応関係に従って、第5頂点Eから第4頂点Dが導き出され得る。
 <頂点情報の符号化及び復号の第2態様>
  本態様では、二面角及び選択パラメータを用いて、参照三角形に対する隣接三角形の非共通頂点が符号化される。すなわち、隣接三角形間の空間的関係を用いて頂点情報が符号化される際、二面角及び選択パラメータが用いられる。ここで、選択パラメータは、例えば、参照三角形に基づいて隣接三角形の非共通頂点を符号化するために、仮想頂点を構築する方法(戦略)を示す。
 第1態様と同様に、参照三角形である第1三角形と予測三角形である第2三角形とのなす二面角により、第2三角形の二次元平面を見つけることが可能になる。したがって、三次元の複雑さが、より単純な平面上の法則が適用可能な二次元に減少し得る。また、例えば、頂点の予測に用いられる仮想頂点が、選択パラメータによって第1三角形の平面上に定められる。このような二面角及び選択パラメータによって、第2三角形の頂点を効率的に特定することが可能になる場合がある。
 例えば、隣接面間の二面角の表現範囲に従って、符号化対象の値が大きくなり過ぎることが抑制される。さらに、ほとんどの場合、互いに隣接する2つの面は表面法線が類似している。そのため、角度が最終的に持つ様々な値のスペクトルがさらに小さくなる。そのため、メッシュの大部分において二面角の符号量は小さい。また、選択パラメータによって、頂点の特定に有用な仮想頂点が定められ得る。したがって、二面角及び選択パラメータによって、頂点情報が効率的に符号化される。
 さらに、より良い符号化精度を達成するために、追加のパラメータがシグナリングされてもよい。
 <第2態様に係る符号化処理の例>
 図47は、本態様に係る符号化処理の例を示すフローチャートである。まず、三次元メッシュから第1頂点、第2頂点及び第3頂点が導出される(S121)。ここで、第1頂点、第2頂点及び第3頂点は、三次元メッシュ上の第1平面上に第1三角形を形成する。また、第1頂点、第2頂点及び第3頂点は、符号化済みの3つの頂点である。
 次に、第1三角形と共通の辺を用いて三次元メッシュの第2平面上に形成される第2三角形の第4頂点を導出するための二面角及び選択パラメータが導出される(S122)。そして、二面角及び選択パラメータが、ビットストリームに符号化される(S123)。
 ここで、二面角は、第1平面と第2平面とのなす角度である。選択パラメータは、例えば、第1平面上の第4三角形の第6頂点を特定するための情報に対応する。ここで、第4三角形は、第1三角形に対する相似の三角形であって、第1三角形と共通の辺を有する仮想的な三角形である。選択パラメータは、第1三角形と第4三角形との対応関係、例えば、第1三角形の頂点と第4三角形の頂点との対応関係を示していてもよい。
 また、選択パラメータは、第1平面上の第3三角形の第5頂点を特定するための情報に対応していてもよい。ここで、第3三角形は、第2平面上の第2三角形に対応する三角形であり、第2三角形と共通の辺を有する仮想的な三角形である。第3三角形は、第2三角形に対する相似の三角形であってもよいし、第1平面に対する第2三角形の正射影であってもよい。選択パラメータは、第2三角形と第4三角形との対応関係を示していてもよい。
 また、選択パラメータには、第5頂点と第6頂点との差分を特定するための付加情報が伴っていてもよい。
 ただし、第1三角形と第4三角形との対応関係は、予め定められてもよい。同様に、第2三角形と第3三角形との対応関係は、予め定められてもよい。特に、第2三角形と第3三角形とは合同であると、予め定められてもよい。第1三角形と第4三角形との対応関係、及び、第2三角形と第3三角形との対応関係が予め定められている場合、選択パラメータが用いられなくてもよい。
 図48は、本態様に係る頂点、三角形及び平面の関係を示す図である。第1三角形、仮想の第3三角形、及び、仮想の第4三角形は、第1平面において形成される。第2三角形は、第2平面において形成される。第1三角形は、第1頂点A、第2頂点B及び第3頂点Cを有する。第2三角形は、第2頂点B、第3頂点C及び第4頂点Dを有する。第3三角形は、第2頂点B、第3頂点C及び第5頂点Eを有する。第4三角形は、第2頂点B、第3頂点C及び第6頂点Fを有する。
 図49は、本態様に係る符号化処理の具体例を示すフローチャートである。まず、三次元メッシュから、最初の面の各頂点座標値が符号化される(S131)。最初の面は、ランダムに選択されてもよい。
 次に、処理が、次の面にトラバースする(S132)。そして、トラバーサルの指示、頂点の処理モード、及び、仮想頂点を構築するための選択パラメータを示すトラバーサルシンボルがビットストリームに書き込まれる。
 複数の処理モードに対して符号化レート及び歪みによって計算される複数のコストのうちの最小コストによって、最適な処理モードが決定されてもよい。符号化レート及び歪みのコストは、シグナリングされるビット数、及び、実際の値と予測の値との間の誤差に基づいて計算され得る。また、実際の値と予測の値との間の誤差のみに基づいて、最小の誤差に対応する最適な処理モードが選択されてもよい。
 ここで、面の頂点が既に符号化されている場合(S133でYes)、頂点の符号化がスキップされる。そして、全ての面がトラバース済みでなければ、次の面に処理がトラバースする。なお、全ての面がトラバース済みであれば、処理は終了してもよい。
 一方、頂点が符号化されていない場合(S133でNo)、書き込まれたトラバーサルシンボルに従って、頂点の処理モードが指定される。そして、頂点が、1つの角度、角度及びスカラー、角度及びベクトル、又は、3つの角度を用いて符号化される。なお、第5頂点E及び第6頂点Fを最も近づける選択パラメータが決定されてもよい。
 トラバーサルシンボルが1つの角度を示す場合(S134で1つの角度)、頂点が、二面角を用いて符号化される(S135)。トラバーサルシンボルが角度及びスカラーを示す場合(S134で角度及びスカラー)、頂点が、二面角及びスカラー因子を用いて符号化される(S136)。トラバーサルシンボルが角度及びベクトルを示す場合(S134で角度及びベクトル)、頂点が、二面角及び二次元ベクトルを用いて符号化される(S137)。
 トラバーサルシンボルが3つの角度を示す場合(S134で3つの角度)、頂点が、二面角を含む3つの角度を用いて符号化される(S138)。
 追加の残差が、計算されてもよく、角度のシグナリング後に別個にシグナリングされてもよい。可逆符号化のために角度の浮動小数点値を完全に表現する例において、角度の浮動小数点値の整数部分が符号化された後に、角度の浮動小数点値の小数部分が残差値として符号化されてもよい。トラバーサル処理は、三次元メッシュの全ての面がトラバースされるまで継続する(S139)。
 なお、処理モードが予め定められている場合、処理モードは符号化されなくてもよいし、処理が切り替えられなくてもよい。
 第1三角形と共通の辺を有する、第1三角形に対する相似の三角形である第4三角形を形成する第6頂点Fを第1平面上に構築する6つの可能な方法がある。図50、図51、図52、図53,図54及び図55は、仮想の第6頂点Fを構築する6つのシナリオを示す。
 図50は、本態様に係る第4三角形及び第6頂点Fの例を示す概念図である。この例において、第1三角形ABCは、第4三角形FCBに相似する。第1三角形の第1頂点A、第2頂点B及び第3頂点Cは、それぞれ、第4三角形の第6頂点F、第3頂点C及び第2頂点Bに対応する。
 図51は、本態様に係る第4三角形及び第6頂点Fの別の例を示す概念図である。この例において、第1三角形ABCは、第4三角形FBCに相似する。第1三角形の第1頂点A、第2頂点B及び第3頂点Cは、それぞれ、第4三角形の第6頂点F、第2頂点B及び第3頂点Cに対応する。
 図52は、本態様に係る第4三角形及び第6頂点Fのさらに別の例を示す概念図である。この例において、第1三角形ABCは、第4三角形CBFに相似する。第1三角形の第1頂点A、第2頂点B及び第3頂点Cは、それぞれ、第4三角形の第3頂点C、第2頂点B及び第6頂点Fに対応する。
 図53は、本態様に係る第4三角形及び第6頂点Fのさらに別の例を示す概念図である。この例において、第1三角形ABCは、第4三角形CFBに相似する。第1三角形の第1頂点A、第2頂点B及び第3頂点Cは、それぞれ、第4三角形の第3頂点C、第6頂点F及び第2頂点Bに対応する。
 図54は、本態様に係る第4三角形及び第6頂点Fのさらに別の例を示す概念図である。この例において、第1三角形ABCは、第4三角形BFCに相似する。第1三角形の第1頂点A、第2頂点B及び第3頂点Cは、それぞれ、第4三角形の第2頂点B、第6頂点F及び第3頂点Cに対応する。
 図55は、本態様に係る第4三角形及び第6頂点Fのさらに別の例を示す概念図である。この例において、第1三角形ABCは、第4三角形BCFに相似する。第1三角形の第1頂点A、第2頂点B及び第3頂点Cは、それぞれ、第4三角形の第2頂点B、第3頂点C及び第6頂点Fに対応する。
 第5頂点Eは、第1平面上の仮想の第3三角形の仮想頂点である。第3三角形は、第2三角形と共通の辺を有する。第3三角形は、第2三角形に相似していてもよいし、第1平面に対する第2三角形の正射影であってもよい。
 選択パラメータは、仮想の第5頂点Eとの最小差を有する第6頂点Fの構築方法を示してもよい。また、選択パラメータは、第5頂点E及び第6頂点Fの差を最小化する第5頂点E及び第6頂点Fの構築方法を示していてもよい。別の例では、選択パラメータは予め定義されていてもよく、第5頂点E及び第6頂点Fを構築するための予め定義された方法のみが用いられてもよい。
 例えば、図52において、三角形ABC及び三角形CBFは相似しているので、次の式(9)が成立する。
Figure JPOXMLDOC01-appb-M000009
 式(9)により、BF及びCFの大きさを以下の式(10)のように計算することが可能になる。
Figure JPOXMLDOC01-appb-M000010
 BCとBFとのなす角度は、BAとBCとのなす角度と同じであり、既知である。したがって、BF及びCFの大きさ、及び、BCとBFとのなす角度から、Fの座標値が計算され得る。具体的には、BFの単位ベクトルBFunitは、三角形ABCの面法線であるk、及び、以下の式(11)に示されるロドリゲス回転公式を用いてBCの単位ベクトルBCunitを回転することで得られる。
Figure JPOXMLDOC01-appb-M000011
 単位ベクトルBFunitをBFの大きさでスケーリングすることで、第6頂点Fの座標値が導出される。
 図56は、本態様に係る二面角及び選択パラメータのみを用いる例を示す概念図である。この例では、第4頂点Dが、二面角及び選択パラメータのみを用いて符号化される。二面角は、第1三角形を有する第1平面と、第2三角形を有する第2平面とのなす角度である。選択パラメータは、第6頂点Fを特定するためのパラメータである。
 具体的には、例えば、第5頂点Eが、第4頂点Dから予め定められた方法によって第1平面において決定される仮想頂点である。そして、第5頂点Eに一致するとみなされる第6頂点Fが選択されることで、選択パラメータが決定される。例えば、第6頂点Fの構築方法について、どの構築方法がmin(F-E)を提供するかによって、選択パラメータが決定される。ここで、第6頂点Fの構築方法は、6つの可能な構築方法から選択される。
 そして、二面角及び選択パラメータが符号化されることで、第4頂点Dが符号化される。なお、第5頂点Eと第6頂点Fとの間の距離が基準範囲内である場合に、第6頂点Fが第5頂点Eに一致するとみなされてもよい。
 図57は、本態様に係る二面角、選択パラメータ及びベクトルを用いる例を示す概念図である。この例では、第4頂点Dが、二面角、選択パラメータ及び二次元ベクトルを用いて符号化される。二面角は、第1三角形を有する第1平面と、第2三角形を有する第2平面とのなす角度である。選択パラメータは、第6頂点Fを特定するためのパラメータである。
 二次元ベクトルは、第1平面のローカル座標系における第5頂点E及び第6頂点Fの間のベクトルであって、ν=F-Eに対応する。ここで、第5頂点Eは、第4頂点Dから予め定められた方法によって第1平面において決定される仮想頂点である。
 そして、二面角、選択パラメータ及び二次元ベクトルが符号化されることで、第4頂点Dが符号化される。
 図58は、本態様に係る二面角、選択パラメータ及びスカラー因子を用いる例を示す概念図である。この例では、第4頂点Dが、二面角、選択パラメータ、第1パラメータ及び第2パラメータを用いて符号化される。二面角は、第1三角形を有する第1平面と、第2三角形を有する第2平面とのなす角度である。選択パラメータは、第6頂点Fを特定するためのパラメータである。
 第1パラメータ及び第2パラメータは、第1三角形の頂点を用いて第5頂点Eを表すための2つのスカラー因子である。ここで、第5頂点Eは、第4頂点Dから予め定められた方法によって第1平面において決定される仮想頂点である。
 具体的には、第1パラメータ及び第2パラメータは、第1平面のローカル座標系において仮想の第5頂点EをE=φ×AB+ω×ACで表すためのφ及びωに対応する。φ及びωは、第5頂点Eを表すベクトル方程式から、辺ABに対応する成分と、辺ACに対応する成分とを分離することによって導出される。
 ビット数を削減するため、φ-bestF及びω-bestFが、第1パラメータ及び第2パラメータとしてビットストリームに符号化されてもよい。ここで、bestF及びbestFは、第1平面のローカル座標系において選択パラメータによって特定される第6頂点Fに対する2つのスカラー因子に対応する。
 本態様に係る二面角を含む3つの角度を用いる例は、第1態様において図31、図32及び図33を用いて説明された例と同じである。
 図56、図57、図58、図31、図32及び図33において、第1三角形及び第2三角形の平面間の二面角が、第1角度θとして得られる。第1角度θは、それらの面法線を用いて計算され得る。例えば、第1三角形及び第2三角形の法線ベクトルは、それぞれn=[x、y、z]及びn=[x、y、z]であり、正規化されていると仮定される。このような仮定において、第1三角形及び第2三角形の平面間の第1角度θは、例えばθ=π-cos-1(n)(又はθ=cos-1(n))として計算され得る。
 図59は、本態様に係る複数の頂点に対する頂点情報のシンタックス構造例を示すシンタックス図である。この例において、3つの頂点が符号化された後、他の各頂点について、トラバーサルシンボルが符号化される。そして、トラバーサルシンボルに従って頂点を符号化するか否かが制御される。
 具体的には、シンタックス要素traversal_symbolは、頂点を符号化する方法を示す。traversal_symbolがdecode_vertexに等しい場合、decode_one_vertexが呼び出され、頂点が符号化される。traversal_symbolがretrieveに等しい場合、retrieve_one_vertexが呼び出され、符号化される次の頂点が取得される。トラバーサルシンボルがend_of_decodingに等しい場合、頂点情報の符号化が停止する。
 図60は、本態様に係る1つの頂点に対する頂点情報のシンタックス構造例を示すシンタックス図である。この例において、シンタックス要素prediction_modeは、頂点の符号化に用いられる処理モードを示す。処理モードは、少なくともone_angle_mode(S135)、angle_scalar_mode(S136)、angle_vector_mode(S137)、及び、他の処理モード(S138)を含む。
 シンタックス要素dihedral_angleは、二面角の値を度単位で示す。この例において、二面角に対する導出角度が直接符号化される。シンタックス要素selection_parameterは、図50、図51、図52、図53、図54及び図55に示された仮想の第6頂点Fを構築する6つの可能な方法のうちの1つを示す。
 シンタックス要素scalar_factorsは、第1平面のローカル座標系における仮想の第5頂点Eを第1三角形の頂点を用いて特定するための2つのスカラー因子を示す。2つのスカラー因子は、第1三角形の頂点間の距離をスケーリングするための2つのスケーリング係数に対応する。具体的には、2つのスカラー因子は、図58の例のように、AB及びACに対する2つのスケーリング係数に対応する。
 シンタックス要素2D_vectorは、第1平面のローカル座標系における第5頂点E及び第6頂点Fの間の差に対応する二次元ベクトルを示す。具体的には、2D_vectorは、図57のような二次元ベクトルを示す。
 図61は、本態様に係る1つの頂点に対する頂点情報の別のシンタックス構造例を示すシンタックス図である。この例において、シンタックス要素is_init_anglesに従って、二面角を直接符号化せずに導出又は予測する他の方法が用いられる。例えば、予測に用いられる要素である予測要素は、前に符号化された頂点から取得される。
 シンタックス要素is_init_anglesは、0の場合、予測要素がないことを示し、1の場合、予測要素があることを示す。シンタックス要素traversal_symbol、prediction_mode、dihedral_angle、selection_parameter、scalar_factors及び2D_vectorは、図59及び図60に示されたシンタックス要素と同じである。
 例えば、前に符号化された値が保存され、現在の頂点の符号化において参照される。二面角を導出又は予測する方法の例は、前に符号化された角度の履歴リストを用いる方法である。具体的には、第1態様において図37、図38、図39及び図40を用いて説明された例と同様に二面角が予測され得る。本態様では、第1態様で用いられた3つの角度のうち第1角度が二面角として用いられ得る。
 図62は、本態様に係る符号化装置100の構成例を示すブロック図である。符号化装置100は、三次元メッシュをビットストリームに符号化する。図62に示されるように、符号化装置100は、トラバーサ161、スイッチ162、パラメータ導出器167、パラメータ符号化器168、座標符号化器165及びエントロピー符号化器166を備えてもよい。
 トラバーサ161は、三次元メッシュを取得する。トラバーサ161は、三次元メッシュにおける符号化対象の頂点を決定し、スイッチ162を介してパラメータ導出器167及び座標符号化器165のいずれかに頂点を出力する。一例において、トラバーサ161は、三次元メッシュの最初の3つの頂点に対して、座標符号化器165を選択し、他の頂点に対して、パラメータ導出器167を選択する。
 例えば、座標符号化器165は、第1平面上に第1三角形を形成する3つの頂点を取り込み、3つの頂点を符号化する。3つの頂点の符号化において、デルタ符号化が用いられてもよい。具体的には、第1頂点Aの座標値が直接符号化され、第1頂点Aの座標値と、第2頂点Bの座標値との差、及び、第1頂点Aの座標値と、第3頂点Cの座標値との差が符号化されてもよい。
 パラメータ導出器167は、第2頂点B及び第3頂点Cを用いて第2平面上に第2三角形を形成する第4頂点Dを取り込み、第4頂点Dを導出するための二面角及び選択パラメータを含む複数のパラメータを導出し、導出された複数のパラメータをパラメータ符号化器168に出力する。第2平面は、第1平面とは異なっていてもよいし、第1平面と同じであってもよい。上述した通り、図56、図57及び図58は、複数のパラメータに関する異なる例を示す。
 パラメータ符号化器168は、二面角及び選択パラメータを含む複数のパラメータを符号化する。追加の残差が、計算され、複数のパラメータのシグナリング後に別個にシグナリングされてもよい。可逆符号化のため二面角の浮動小数点値を完全に表現する例において、パラメータ符号化器168は、二面角の浮動小数点値の整数部分を符号化してから、二面角の浮動小数点値の小数部分を残差値として符号化してもよい。
 座標符号化器165で得られた符号化情報、及び、パラメータ符号化器168で得られた符号化情報は、エントロピー符号化器166に送られ、また、トラバーサ161にもフィードバックされる。エントロピー符号化器166は、符号化情報を圧縮し、ビットストリームを出力する。トラバーサ161は、符号化情報を用いて、次のトラバーサルを決定する。
 エントロピー符号化が準じる符号化方式の例は、ハフマン符号化、算術符号化、範囲符号化、ANS(非対称記数法:Asymmetric Numeral Systems)、又は、CABAC(コンテキスト適応型二値算術符号化:Context-Adaptive Binary Arithmetic Coding)であってもよい。
 符号化装置100は、上記の構成及び処理に従って、三次元メッシュを符号化する。これにより、三次元メッシュの符号量が抑制される場合がある。
 <第2態様に係る復号処理の例>
 図63は、本態様に係る復号処理の例を示すフローチャートである。まず、三次元メッシュから第1頂点、第2頂点及び第3頂点が導出される(S221)。ここで、第1頂点、第2頂点及び第3頂点は、三次元メッシュの第1平面上に第1三角形を形成する。第1頂点、第2頂点及び第3頂点は、復号済みの3つの頂点である。
 次に、第1三角形と共通の辺を用いて三次元メッシュの第2平面上に形成される第2三角形の第4頂点を導出するための二面角及び選択パラメータがビットストリームから復号される(S222)。そして、二面角及び選択パラメータを用いて第4頂点が導出される(S223)。
 ここで、二面角は、第1平面と第2平面とのなす角度である。選択パラメータは、例えば、第1平面上の第4三角形の第6頂点を特定するための情報に対応する。ここで、第4三角形は、第1三角形に対する相似の三角形であって、第1三角形と共通の辺を有する仮想的な三角形である。選択パラメータは、第1三角形と第4三角形との対応関係、例えば、第1三角形の頂点と第4三角形の頂点との対応関係を示していてもよい。
 また、選択パラメータは、第1平面上の第3三角形の第5頂点を特定するための情報に対応していてもよい。ここで、第3三角形は、第2平面上の第2三角形に対応する三角形であり、第2三角形と共通の辺を有する仮想的な三角形である。第3三角形は、第2三角形に対する相似の三角形であってもよいし、第1平面に対する第2三角形の正射影であってもよい。選択パラメータは、第2三角形と第4三角形との対応関係を示していてもよい。
 また、選択パラメータには、第5頂点と第6頂点との差分を特定するための付加情報が伴っていてもよい。
 ただし、第1三角形と第4三角形との対応関係は、予め定められてもよい。同様に、第2三角形と第3三角形との対応関係は、予め定められてもよい。特に、第2三角形と第3三角形とは合同であると、予め定められてもよい。第1三角形と第4三角形との対応関係、及び、第2三角形と第3三角形との対応関係が予め定められている場合、選択パラメータが用いられなくてもよい。
 図48は、本態様に係る頂点、三角形及び平面の関係を示す図である。第1三角形、仮想の第3三角形、及び、仮想の第4三角形は、第1平面において形成される。第2三角形は、第2平面において形成される。第1三角形は、第1頂点A、第2頂点B及び第3頂点Cを有する。第2三角形は、第2頂点B、第3頂点C及び第4頂点Dを有する。第3三角形は、第2頂点B、第3頂点C及び第5頂点Eを有する。第4三角形は、第2頂点B、第3頂点C及び第6頂点Fを有する。
 図64は、本態様に係る復号処理の具体例を示すフローチャートである。復号処理は、最初に復号された初期の面の各頂点座標値を復号することから始まる(S231)。続いて、処理が次の面にトラバースする(S232)。ここで、面の頂点が復号済みである場合(S233でYes)、頂点の復号がスキップされる。そして、全ての面がトラバース済みでなければ、次の面に処理がトラバースする。なお、全ての面がトラバース済みであれば、処理は終了してもよい。
 頂点が復号済みでない場合(S233でNo)、トラバーサルの指示、頂点の復号方法、及び、仮想頂点を構築するための選択パラメータを示すトラバーサルシンボルが復号される(S234)。トラバーサルシンボルによって示される処理モード従って、復号処理が切り替えられる(S235)。
 トラバーサルシンボルが1つの角度を示す場合(S235で1つの角度)、頂点が、二面角を用いて復号される(S236)。トラバーサルシンボルが角度及びスカラーを示す場合(S235で角度及びスカラー)、頂点が、二面角及びスカラー因子を用いて復号される(S237)。トラバーサルシンボルが角度及びベクトルを示す場合(S235で角度及びベクトル)、頂点が、二面角及び二次元ベクトルを用いて復号される(S238)。
 トラバーサルシンボルが3つの角度を示す場合(S235で3つの角度)、頂点が、二面角を含む3つの角度を用いて復号される(S239)。
 トラバーサル処理は、三角形メッシュの全ての面がトラバースされるまで継続する(S240)。
 なお、処理モードが予め定められている場合、処理モードは復号されなくてもよいし、処理が切り替えられなくてもよい。
 図59は、本態様に係る複数の頂点に対する頂点情報のシンタックス構造例を示すシンタックス図である。この例において、3つの頂点が復号された後、他の各頂点について、トラバーサルシンボルが復号される。そして、トラバーサルシンボルに従って頂点を復号するか否かが制御される。
 具体的には、シンタックス要素traversal_symbolは、頂点を復号する方法を示す。traversal_symbolがdecode_vertexに等しい場合、decode_one_vertexが呼び出され、頂点が復号される。traversal_symbolがretrieveに等しい場合、retrieve_one_vertexが呼び出され、復号される次の頂点が取得される。トラバーサルシンボルがend_of_decodingに等しい場合、頂点情報の復号が停止する。
 図60は、本態様に係る1つの頂点に対する頂点情報のシンタックス構造例を示すシンタックス図である。この例において、シンタックス要素prediction_modeは、頂点の復号に用いられる処理モードを示す。処理モードは、少なくともone_angle_mode(S236)、angle_scalar_mode(S237)、angle_vector_mode(S238)、及び、他の処理モード(S239)を含む。
 シンタックス要素dihedral_angleは、二面角の値を度単位で示す。この例において、二面角に対する導出角度が直接復号される。シンタックス要素selection_parameterは、図50、図51、図52、図53、図54及び図55に示された仮想の第6頂点Fを構築する6つの可能な方法のうちの1つを示す。
 シンタックス要素scalar_factorsは、第1平面のローカル座標系における仮想の第5頂点Eを第1三角形の頂点を用いて特定するための2つのスカラー因子を示す。2つのスカラー因子は、第1三角形の頂点間の距離をスケーリングするための2つのスケーリング係数に対応する。具体的には、2つのスカラー因子は、図58の例のように、AB及びACに対する2つのスケーリング係数に対応する。
 シンタックス要素2D_vectorは、第1平面のローカル座標系における第5頂点E及び第6頂点Fの間の差に対応する二次元ベクトルを示す。具体的には、2D_vectorは、図57のような二次元ベクトルを示す。
 図61は、本態様に係る1つの頂点に対する頂点情報の別のシンタックス構造例を示すシンタックス図である。この例において、シンタックス要素is_init_anglesに従って、二面角を直接復号せずに導出又は予測する他の方法が用いられる。例えば、予測に用いられる要素である予測要素は、前に復号された頂点から取得される。
 シンタックス要素is_init_anglesは、0の場合、予測要素がないことを示し、1の場合、予測要素があることを示す。シンタックス要素traversal_symbol、prediction_mode、dihedral_angle、selection_parameter、scalar_factors及び2D_vectorは、図59及び図60に示されたシンタックス要素と同じである。
 例えば、前に復号された値が保存され、現在の頂点の復号において参照される。二面角を導出又は予測する方法の例は、前に復号された角度の履歴リストを用いる方法である。具体的には、第1態様において図37、図38、図39及び図40を用いて説明された例と同様に二面角が予測され得る。本態様では、第1態様で用いられた3つの角度のうち第1角度が二面角として用いられ得る。
 追加の残差が、二面角の復号後に復号されてもよい。一例において、二面角として復号される値が、二面角の浮動小数点値の整数部分を表してもよく、残差として復号される値が、二面角の浮動小数点値の小数部分を表してもよい。整数部分に小数部分を追加することにより、実際の二面角が得られる。
 第1三角形と共通の辺を有する、第1三角形に対する相似の三角形である第4三角形を形成する第6頂点Fを第1平面上に構築する6つの可能な方法がある。図50、図51、図52、図53,図54及び図55は、仮想の第6頂点Fを構築する6つのシナリオを示す。
 図50は、本態様に係る第4三角形及び第6頂点Fの例を示す概念図である。この例において、第1三角形ABCは、第4三角形FCBに相似する。第1三角形の第1頂点A、第2頂点B及び第3頂点Cは、それぞれ、第4三角形の第6頂点F、第3頂点C及び第2頂点Bに対応する。
 図51は、本態様に係る第4三角形及び第6頂点Fの別の例を示す概念図である。この例において、第1三角形ABCは、第4三角形FBCに相似する。第1三角形の第1頂点A、第2頂点B及び第3頂点Cは、それぞれ、第4三角形の第6頂点F、第2頂点B及び第3頂点Cに対応する。
 図52は、本態様に係る第4三角形及び第6頂点Fのさらに別の例を示す概念図である。この例において、第1三角形ABCは、第4三角形CBFに相似する。第1三角形の第1頂点A、第2頂点B及び第3頂点Cは、それぞれ、第4三角形の第3頂点C、第2頂点B及び第6頂点Fに対応する。
 図53は、本態様に係る第4三角形及び第6頂点Fのさらに別の例を示す概念図である。この例において、第1三角形ABCは、第4三角形CFBに相似する。第1三角形の第1頂点A、第2頂点B及び第3頂点Cは、それぞれ、第4三角形の第3頂点C、第6頂点F及び第2頂点Bに対応する。
 図54は、本態様に係る第4三角形及び第6頂点Fのさらに別の例を示す概念図である。この例において、第1三角形ABCは、第4三角形BFCに相似する。第1三角形の第1頂点A、第2頂点B及び第3頂点Cは、それぞれ、第4三角形の第2頂点B、第6頂点F及び第3頂点Cに対応する。
 図55は、本態様に係る第4三角形及び第6頂点Fのさらに別の例を示す概念図である。この例において、第1三角形ABCは、第4三角形BCFに相似する。第1三角形の第1頂点A、第2頂点B及び第3頂点Cは、それぞれ、第4三角形の第2頂点B、第3頂点C及び第6頂点Fに対応する。
 第5頂点Eは、第1平面上の仮想の第3三角形の仮想頂点である。第3三角形は、第2三角形と共通の辺を有する。第3三角形は、第2三角形に相似していてもよいし、第1平面に対する第2三角形の正射影であってもよい。
 選択パラメータは、仮想の第5頂点Eとの最小差を有する第6頂点Fの構築方法を示してもよい。また、選択パラメータは、第5頂点E及び第6頂点Fの差を最小化する第5頂点E及び第6頂点Fの構築方法を示していてもよい。別の例では、選択パラメータは予め定義されていてもよく、第5頂点E及び第6頂点Fを構築するための予め定義された方法のみが用いられてもよい。
 例えば、図52において、三角形ABC及び三角形CBFは相似しているので、次の式(12)が成立する。
Figure JPOXMLDOC01-appb-M000012
 式(12)により、BF及びCFの大きさを以下の式(13)のように計算することが可能になる。
Figure JPOXMLDOC01-appb-M000013
 BCとBFとのなす角度は、BAとBCとのなす角度と同じであり、既知である。したがって、BF及びCFの大きさ、及び、BCとBFとのなす角度から、Fの座標値が計算され得る。具体的には、BFの単位ベクトルBFunitは、三角形ABCの面法線であるk、及び、以下の式(14)に示されるロドリゲス回転公式を用いてBCの単位ベクトルBCunitを回転することで得られる。
Figure JPOXMLDOC01-appb-M000014
 単位ベクトルBFunitをBFの大きさでスケーリングすることで、第6頂点Fの座標値が導出される。
 図56は、本態様に係る二面角及び選択パラメータのみを用いる例を示す概念図である。この例では、第4頂点Dが、二面角及び選択パラメータのみを用いて復号される。二面角は、第1三角形を有する第1平面と、第2三角形を有する第2平面とのなす角度である。選択パラメータは、第6頂点Fを特定するためのパラメータである。
 例えば、まず、二面角及び選択パラメータが、ビットストリームから復号される。次に、第6頂点Fは、選択パラメータによって示される方法を用いて構築される。ここで、第6頂点Fを構築する6つの可能な方法がある。その後、第5頂点Eの座標値は、第6頂点Fと同じとみなされることにより導出される。そして、第4頂点Dが、第5頂点Eから二面角を用いて導出される。
 図57は、本態様に係る二面角、選択パラメータ及びベクトルを用いる例を示す概念図である。この例では、第4頂点Dが、二面角、選択パラメータ及び二次元ベクトルを用いて復号される。二面角は、第1三角形を有する第1平面と、第2三角形を有する第2平面とのなす角度である。選択パラメータは、第6頂点Fを特定するためのパラメータである。二次元ベクトルは、第1平面のローカル座標系における第5頂点E及び第6頂点Fの間のベクトルであって、ν=F-Eに対応する。
 例えば、二面角、選択パラメータ及び二次元ベクトルが、ビットストリームから復号される。また、仮想の第6頂点Fが第1平面上に構築される。第5頂点Eは、E=F-νで導出される。そして、第4頂点Dが、第5頂点Eから二面角を用いて導出される。
 図58は、本態様に係る二面角、選択パラメータ及びスカラー因子を用いる例を示す概念図である。この例では、第4頂点Dが、二面角、選択パラメータ、第1パラメータ及び第2パラメータを用いて復号される。二面角は、第1三角形を有する第1平面と、第2三角形を有する第2平面とのなす角度である。選択パラメータは、第6頂点Fを特定するためのパラメータである。
 第1パラメータ及び第2パラメータは、第5頂点Eを特定するための2つのスカラー因子である。具体的には、第1パラメータ及び第2パラメータは、第1平面のローカル座標系における仮想の第5頂点EをE=φ×AB+ω×ACで表すためのφ及びωに対応する。
 例えば、二面角、第1パラメータ及び第2パラメータが、ビットストリームから復号される。そして、第5頂点Eは、E=φ×AB+ω×ACで導出される。そして、第4頂点Dが、第5頂点Eから二面角を用いて導出される。
 また、例えば、ビット数を削減するため、φ-bestF及びω-bestFが、第1パラメータ及び第2パラメータとしてビットストリームから復号されてもよい。ここで、bestF及びbestFは、第6頂点Fを表すための2つのスカラー因子に対応する。この場合、選択パラメータが復号され、第6頂点Fが第1平面上に構築される。そして、第5頂点Eが、第6頂点F、第1パラメータ及び第2パラメータに従って導出され、第4頂点Dが、第5頂点Eから二面角を用いて導出される。
 本態様に係る二面角を含む3つの角度を用いる例は、第1態様において図31、図32及び図33を用いて説明された例と同じである。
 図56、図57、図58、図31、図32及び図33を用いて説明された複数の導出方法のそれぞれにおいて第5頂点Eが導出される。そして、第5頂点Eから第4頂点Dが導出され得る。例えば、第2三角形CBD及び第3三角形CBEは、1対1で同じである。また、第4頂点Dと第5頂点Eとは、共通の辺CBを共有する異なる平面上にある。この場合、辺BCの周りに第5頂点Eをπ-θ(又はθ)の量で回転させることで、第4頂点Dが導出される。ここで、θは二面角である。
 図65は、本態様に係る復号装置200の構成例を示すブロック図である。復号装置200は、ビットストリームから三次元メッシュを復号する。図65に示されるように、復号装置200は、トラバーサ261、スイッチ262、パラメータ復号器267、座標導出器264、座標復号器265及びエントロピー復号器266を備える。
 エントロピー復号器266は、ビットストリームを取得する。エントロピー復号器266は、ビットストリームを圧縮解除することにより圧縮解除情報を取得し、圧縮解除情報を出力する。エントロピー復号が準じる符号化方式の例は、ハフマン符号化、算術符号化、範囲符号化、ANS(非対称記数法:Asymmetric Numeral Systems)、又は、CABAC(コンテキスト適応型二値算術符号化:Context-Adaptive Binary Arithmetic Coding)であってもよい。
 圧縮解除情報は、トラバーサ261に入力される。トラバーサ261は、圧縮解除情報を解釈し、スイッチ262を介して圧縮解除情報をパラメータ復号器267及び座標復号器265のいずれかに出力する。
 座標復号器265は、圧縮解除情報から、第1平面上に第1三角形を形成する3つの頂点を復号する。3つの頂点を復号する例として、圧縮解除情報から第1頂点Aの座標値と、2つの差分値とが復号される。次に、第1頂点Aの座標値に2つの差分値を追加することにより、第2頂点Bの座標値、及び、第3頂点Cの座標値が導出される。
 パラメータ復号器267は、圧縮解除情報から二面角及び選択パラメータを復号し、二面角及び選択パラメータを座標導出器264に出力する。
 座標導出器264は、二面角及び選択パラメータを用いて、第1三角形と共通の辺を有する第2三角形の頂点を導出する。第2三角形は、第1平面とは異なる平面上にあってもよいし、第1平面と同じ平面上にあってもよい。具体的には、座標導出器264は、図56、図57及び図58を用いて上述された導出方法を用いて、二面角及び選択パラメータから第2三角形の頂点を導出する。
 座標導出器264又は座標復号器265で得られた頂点を示す頂点情報は、三次元メッシュの頂点情報として出力される。また、この頂点情報は、トラバーサ261にフィードバックされて、次のトラバーサルの決定に用いられる。
 復号装置200は、上記の構成及び処理に従って、三次元メッシュを復号する。これにより、三次元メッシュの符号量が抑制される場合がある。
 <頂点情報の符号化及び復号に関する補足>
 本開示における頂点情報の符号化処理は、例えば、V-PCC(Point Cloud Compression)及びG-PCC(Geometry-based Point Cloud Compression)などの点群圧縮方式における点の位置情報の符号化に適用可能である。
 符号化装置100は、基準の第1三角形又はその3つの頂点である第1頂点A、第2頂点B及び第3頂点Cから、第2三角形の第4頂点Dを特定するための情報を符号化する。復号装置200は、基準の第1三角形又はその3つの頂点である第1頂点A、第2頂点B及び第3頂点Cから、第2三角形の第4頂点Dを特定するための情報を復号する。
 第4頂点Dを特定するための情報は、二面角を示す二面角情報、及び、第5頂点Eを特定するための特定情報を含む。二面角情報によって示される二面角は、第1三角形を含む第1平面と、第2三角形を含む第2平面とのなす二面角である。特定情報によって特定される第5頂点Eは、第1平面上の頂点であって、第2三角形に対応する第3三角形の頂点である。
 第5頂点Eは、第1平面上の頂点であるため、第1平面上の第1三角形から比較的容易に特定可能である。また、第2三角形と第3三角形との対応関係、及び、第1平面と第2平面とのなす二面角に従って、第5頂点Eから第4頂点Dが導出され得る。二面角は、例えば-180度から180度までの範囲であるため、符号量の増大が抑制される。したがって、上記の構成及び処理によって、第4頂点Dの効率的な符号化及び復号が行われ得る。
 なお、第4頂点Dを特定するための情報は、上記の特定情報として、又は、上記の特定情報に代えて、「(1)多角形(第3三角形BEC)の頂点(第5頂点E)の位置情報」又は「(2)多角形(第3三角形BEC)の位置及び形に関する情報」を含んでいてもよい。
 また、第4頂点Dを特定するための情報は、上記の二面角情報として、又は、上記の二面角情報に代えて、「(3)多角形(第3三角形BEC)の頂点(第5頂点E)の位置と、処理対象頂点(第4頂点D)の位置との距離及び方向を示す情報」を含んでいてもよい。また、第4頂点Dを特定するための情報は、上記の二面角情報として、又は、上記の二面角情報に代えて、「(4)多角形(第3三角形BEC)を含む平面と、処理対象頂点(第4頂点D)を有する多角形(第2三角形BDC)を含む平面との差分を示す情報」を含んでいてもよい。
 また、上記のいずれかの情報が角度を用いて示されてもよい。これにより、符号量を低減し、予測の柔軟性及び精度が向上する可能性がある。また、上記のどの情報を用いるかを示す情報が符号化されてもよい。
 また、例えば、上記の構成及び処理に、以下の例が加えられてもよいし、上記の構成及び処理の少なくとも一部が以下の例に置換されてもよい。
 例えば、「(1)多角形の頂点の位置情報」は、第3三角形BECの第2頂点B、第3頂点C及び第5頂点Eの座標値を示してもよい。基準の第1三角形の位置及び形に関する情報、又は、第1頂点A、第2頂点B及び第3頂点Cの位置情報が特定されている場合、多角形の頂点の位置情報は、第5頂点Eの座標値のみを示してもよい。
 処理対象の第4頂点Dの位置情報の導出に第1三角形ABCを含む平面と同一平面に存在する第5頂点Eを用いることが予め規定又は特定されている場合、第5頂点Eの座標値は、二次元座標値で表現されてもよい。座標値は、他の座標値との差分を用いて表現されてもよく、第5頂点Eの座標値は、第1頂点A、第2頂点B又は第3頂点Cの座標値に対する差分を示すベクトルを用いて表現されてもよい。
 また、例えば、多角形は、三角形以外でもよく、四角形であってもよい。
 また、第5頂点Eの座標値を特定するために、第5頂点Eと同一平面上の第6頂点Fの座標値が用いられてもよい。
 第5頂点Eを特定するために、第6頂点Fの座標値を導出するための情報、及び、第6頂点Fの座標値と、第5頂点Eの座標値との差分を示す情報が符号化されてもよい。このとき、第6頂点Fの座標値を導出するための情報として、第6頂点Fを有する第4三角形と、第1三角形ABCとが共通で有する辺を示す情報が符号化されてもよい。また、第6頂点Fを有する第4三角形の辺と、第1三角形ABCの辺とのなす角度が符号化されてもよい。
 第6頂点Fの座標値と、第5頂点Eの座標値との差分を示す情報は、差分に対応する二次元のベクトルを示す情報であってもよい。また、第6頂点Fを有する第4三角形の辺と、第5頂点Eを有する第3三角形の辺とのなす角度が符号化されてもよい。
 なお、第5頂点E及び第6頂点Fの座標値は、明示的に出力されなくてもよく、第4頂点Dの座標値を設定及び導出するための演算の過程で仮想的に用いられてもよい。また、第6頂点Fの座標値を特定するためにどの情報を用いるかを示す情報が符号化されてもよい。
 例えば、「(2)多角形の位置及び形に関する情報」は、第3三角形BECの位置及び形を特定する情報であってもよい。基準の第1三角形ABCの位置及び形に関する情報、又は、第1頂点A、第2頂点B及び第3頂点Cの位置情報が特定されている場合、第3三角形BECの位置及び形を特定する情報は、辺BCを示す情報、辺BCと辺CEとのなす角度、及び、辺BCと辺BEとのなす角度を示していてもよい。ここで、辺BCを示す情報は、第3三角形BECを用いることを示す情報に対応する。
 辺BCを示す情報の代わりに、第1頂点Aを示す情報を符号化してもよい。第1頂点Aを示す情報は、第5頂点Eが辺BCを挟んで第1頂点Aの反対側にあることを示す情報に対応する。
 処理対象の第4頂点Dの位置情報の導出に、第1三角形ABCと同一平面上の第3三角形BECを用いることが予め規定又は特定されている場合、第5頂点Eに関して上記2つの角度のみが符号化されてもよい。これにより、2つの角度のみから、第3三角形BECの位置及び形、すなわち第5頂点Eの位置情報を導出することが可能になり、第5頂点Eの座標値を符号化する場合と比較して符号量を削減することが可能になる。
 上記2つの角度のそれぞれとして、角度そのものが符号化されてもよいし、予め規定された複数の角度のうち1つの角度を特定するインデックスが符号化されてもよい。2つの角度の複数の組み合わせが予め規定されていてもよい。そして、複数の組み合わせのうち1つの組み合わせを特定するインデックスが符号化されてもよい。
 上記2つの角度の代わりに、1つの角度と1つの辺の長さとを示す情報が符号化されてもよい。例えば辺BCと辺BEとのなす角度と、辺BEの長さとが符号化されてもよい。また、上記2つの角度の代わりに、1つの角度と1つの垂線の長さとを示す情報が符号化されてもよい。例えば辺BCと辺BEとのなす角度と、第5頂点Eから辺BCに下した垂線の長さとを符号化してもよい。
 また、上記2つの角度の代わりに、2つの辺の長さを示す情報が符号化されてもよい。例えば辺BE及び辺CEの長さが符号化されてもよい。
 また、第3三角形BECの位置及び形を特定するため、「第5頂点Eとは異なる第6頂点Fを有する第4三角形BFCの位置及び形に関する情報」と、「第4三角形BFCと第3三角形BECとの差分を示す情報」とが用いられてもよい。「第4三角形BFCの位置及び形を特定する情報」は、辺BCを示す情報を含んでいてもよい。辺BCを示す情報は、第4三角形BFCを用いることを示す情報に対応する。
 辺BCを示す情報の代わりに、第1頂点Aを示す情報を符号化してもよい。第1頂点Aを示す情報は、第6頂点Fが辺BCを挟んで第1頂点Aの反対側にあることを示す情報に対応する。
 また、第1三角形ABCと第4三角形BFCとが対称性を有する場合、対称性を示す情報が符号化されてもよい。対称性を示す情報は、複数の導出方法のうち用いられる導出方法を示すインデックスであってもよい。
 複数の導出方法は、例えば、辺BCに対して第1頂点Aと第6頂点Fとが線対称であることを用いる方法、辺BCの中点に対して第1頂点Aと第6頂点Fとが点対称であることを用いる方法、第1三角形ABCを所定方向に回転させる方法、第1三角形ABCを所定方向に反転させる方法、及び、これらの方法を組み合わせる方法を含んでもよい。
 これにより、より少ない情報で第4三角形BFCの位置及び形、すなわち第6頂点Fの位置情報を導出することが可能となる。したがって、第6頂点Fの座標値を符号化する場合と比較して符号量を削減することが可能となる。
 「第4三角形BFCと第3三角形BECとの差分を示す情報」は、第6頂点Fと第5頂点Eの差分を示す二次元ベクトルを含んでいてもよいし、辺CEと辺CFとのなす角度、及び、辺BEと辺BFとのなす角度を含んでいてもよい。第4三角形BFCと第3三角形BECとの差分を示す情報を用いることで、辺BCに対して第6頂点Fが第5頂点Eと同じ側にある場合、第1三角形ABCと第3三角形BECとの差分を示す情報を符号化する場合よりも符号量を削減することが可能になる。
 例えば、「(3)多角形の頂点の位置と、処理対象頂点の位置との距離及び方向を示す情報」は、第3三角形BECの第5頂点Eと、処理対象の第4頂点Dとの距離及び方向を示す差分ベクトルを示してもよい。第4頂点Dの位置が第5頂点Eの位置と一致する場合、又は、第4頂点Dが第5頂点Eと同一平面上に位置する場合、この情報は省略されてもよい。
 例えば、「(4)多角形を含む平面と、処理対象頂点を有する多角形を含む平面との差分を示す情報」は、第3三角形BECを含む平面と、第2三角形BDCを含む平面とのなす角度を示してもよい。角度として、例えば辺BEと辺BDとのなす角度、又は、辺CEと辺CDとのなす角度が符号化されてもよい。
 辺BEと辺BDとのなす角度、又は、辺CEと辺CDとのなす角度として、角度そのものが符号化されてもよいし、予め規定された複数の角度のうち1つの角度を特定するインデックスが符号化されてもよい。予め規定された複数の角度は、辺BCと辺CEとのなす角度、及び、辺BCと辺BEとのなす角度の導出時にも共通して用いられてもよい。
 また、辺BEと辺BDとのなす角度、辺CEと辺CDとのなす角度、辺BCと辺CEとのなす角度、及び、辺BCと辺BEとのなす角度の複数の組み合わせを示すインデックスが予め規定されていてもよい。これにより、角度そのものを符号化する場合と比較して符号量をさらに低減することが可能となる。
 第4頂点Dの位置が第5頂点Eの位置と一致する場合、又は、第4頂点Dが第5頂点Eと同一平面上に位置する場合、角度は省略されてもよい。また、角度がインデックスで表現される場合、角度が整数精度で表現される場合、又は、座標値が整数精度で表現される場合などにおいて、角度に加えて差分ベクトルが符号化されてもよい。これにより、導出した第4頂点Dの座標値を修正することが可能となり、符号化の精度を向上させることが可能となる。
 また、第4頂点Dは、他の頂点に対して、第1頂点A、第2頂点B又は第3頂点Cとして用いられてもよい。
 また、処理対象頂点ごとに、符号化方法又は復号方法等の処理方法が選択されることで、複数の処理方法が切り替えられてもよい。この場合、処理対象頂点を符号化するために用いられた処理方法を示す情報が符号化されてもよい。あるいは、三次元メッシュ単位で処理方法が選択されることで、複数の処理方法が切り替えられてもよく、処理方法を示す情報が三次元メッシュ単位で符号化されてもよい。
 これにより、三次元メッシュの特性に応じた処理方法を選択することが可能になる場合があり、主観画質の向上及び符号量の削減を促進することが可能になる場合がある。
 また、本開示に記載の差分(Difference)は、偏差(Deviation)、残差(Residual)又はデルタ(Delta)など言い換えられてもよい。また、本開示に記載の頂点は、頂点の位置を意味する場合がある。
 <代表例>
 図66は、本実施の形態に係る基本的な符号化処理の例を示すフローチャートである。例えば、図24に示された符号化装置100の回路151が、動作において、図66に示された符号化処理を行う。
 具体的には、回路151は、第1三角形の第1頂点の位置を示す第1頂点情報、第1三角形の第2頂点の位置を示す第2頂点情報、及び、第1三角形の第3頂点の位置を示す第3頂点情報を符号化する(S151)。そして、回路151は、第2三角形の第4頂点の位置を示す第4頂点情報として、第1平面と第2平面とのなす二面角を示す二面角情報、及び、第5頂点の位置を特定するための特定情報を符号化する(S152)。
 ここで、第1三角形は、三次元メッシュにおける三角形であり、第1平面上の三角形である。第2三角形は、三次元メッシュにおける三角形であり、第2平面上の三角形であり、第2頂点及び第3頂点を有する三角形である。第5頂点は、第3三角形の仮想頂点である。第3三角形は、第1平面上の仮想三角形であり、第2頂点及び第3頂点を有する仮想三角形であり、第2三角形に対応する仮想三角形である。
 これにより、符号化装置100は、特定情報によって、第1平面上の第3三角形の第5頂点の位置を特定するための情報を符号化することができる場合がある。また、第1平面上の第3三角形は第2平面上の第2三角形に対応しているため、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、符号化装置100は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を符号化することができる場合がある。
 さらに、第5頂点は第1平面上の仮想頂点であるため、第1平面上の第1三角形に従って第5頂点の位置を特定することは比較的容易であると想定される。したがって、符号化装置100は、効率的な処理を支援することができる場合がある。また、二面角は、例えば-180度から180度までのような一定の範囲に含まれると想定される。したがって、符号化装置100は、符号量の増加を抑制することができる場合がある。すなわち、符号化装置100は、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 例えば、第3三角形は、第2三角形に相似する三角形であってもよい。
 これにより、符号化装置100は、第2三角形に相似する第3三角形の第5頂点の位置を特定するための情報を符号化することができる場合がある。また、第2三角形と第3三角形とにおける相似の関係、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、符号化装置100は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 また、例えば、第3三角形は、第1平面に対する第2三角形の正射影であってもよい。
 これにより、符号化装置100は、第1平面に対する第2三角形の正射影に対応する第3三角形の第5頂点の位置を特定するための情報を符号化することができる場合がある。また、第2三角形と第3三角形とにおける正射影の関係、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、符号化装置100は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 また、例えば、特定情報は、第1三角形の少なくとも1つの辺の2つの頂点の2つの位置から少なくとも1つの辺に対する2つの角度を用いて第5頂点の位置を特定するための2つの角度を示す情報を含んでいてもよい。これにより、符号化装置100は、2つの角度によって、第5頂点の位置を特定するための情報を符号化することができる場合がある。また、各角度は、例えば-180度から180度までのような一定の範囲に含まれると想定される。したがって、符号化装置100は、符号量の増加を抑制することができる場合がある。
 また、例えば、特定情報は、第5頂点の位置と第6頂点の位置との間の二次元ベクトルを示す情報を含んでいてもよい。ここで、第6頂点は、第4三角形の仮想頂点である。第4三角形は、第1平面上の仮想三角形であり第2頂点及び第3頂点を有する仮想三角形であり第1三角形に相似する仮想三角形である。
 これにより、符号化装置100は、二次元ベクトルによって、第5頂点の位置を特定するための情報を符号化することができる場合がある。また、二次元ベクトルによって、第5頂点の位置が効率的に表現され得ると想定される。したがって、符号化装置100は、第5頂点の位置を効率的に示す情報を符号化することができる場合があり、符号量の増加を抑制することができる場合がある。
 また、例えば、特定情報は、第1三角形の2つの辺に対応する2つの単位ベクトルに2つのスカラー因子を乗算することにより第5頂点の位置を特定するための2つのスカラー因子を示す情報を含んでいてもよい。
 これにより、符号化装置100は、2つのスカラー因子によって、第5頂点の位置を特定するための情報を符号化することができる場合がある。また、2つのスカラー因子によって、第5頂点の位置が効率的に表現され得ると想定される。したがって、符号化装置100は、第5頂点の位置を効率的に示す情報を符号化することができる場合があり、符号量の増加を抑制することができる場合がある。
 また、例えば、特定情報は、第2三角形と第3三角形との対応関係を示す情報を含んでいてもよい。
 これにより、符号化装置100は、第2三角形と第3三角形との対応関係が適応的に変更される場合でも、その対応関係を示す情報を符号化することができる場合がある。したがって、符号化装置100は、第2三角形と第3三角形との対応関係が適応的に変更される場合でも、第4頂点の位置を特定するための情報を符号化することができる場合がある。また、符号化装置100は、第2三角形と第3三角形との対応関係が適応的に変更されることで、符号量の増加を抑制することができる場合がある。
 また、例えば、特定情報は、第1三角形と第4三角形との対応関係を示す情報を含んでいてもよい。
 これにより、符号化装置100は、第1三角形と第4三角形との対応関係が適応的に変更される場合でも、その対応関係を示す情報を符号化することができる場合がある。したがって、符号化装置100は、第1三角形と第4三角形との対応関係が適応的に変更される場合でも、第4頂点の位置を特定するための情報を符号化することができる場合がある。また、符号化装置100は、第1三角形と第4三角形との対応関係が適応的に変更されることで、符号量の増加を抑制することができる場合がある。
 また、例えば、特定情報は、第6頂点の位置が第5頂点の位置に一致するとみなされる、第1三角形と第4三角形との対応関係、及び、第2三角形と第3三角形との対応関係の少なくとも一方を示す情報を含んでいてもよい。ここで、第6頂点は、第4三角形の仮想頂点である。第4三角形は、第1平面上の仮想三角形であり第2頂点及び第3頂点を有する仮想三角形であり第1三角形に相似する仮想三角形である。
 これにより、符号化装置100は、対応関係によって、第5頂点の位置を特定するための情報を符号化することができる場合がある。そして、符号化装置100は、二面角及び対応関係によって、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 また、例えば、回路151は、二面角情報及び特定情報が符号化される1つ以上の特定モードを含む複数のモードの中から1つのモードを選択してもよい。そして、回路151は、1つのモードを示すモード情報を符号化し、1つのモードが1つ以上の特定モードに含まれる場合、二面角情報及び特定情報を符号化してもよい。
 これにより、符号化装置100は、複数のモードから選択されるモードに従って、二面角情報及び特定情報を適応的に符号化することができる場合がある。そして、これにより、符号化装置100は、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 また、例えば、1つのモードが1つ以上の特定モードに含まれる場合、特定情報は、1つのモードに従って定められる種類の情報を含んでいてもよい。これにより、符号化装置100は、複数のモードから選択されるモードに対応する種類の情報を符号化することができる場合がある。したがって、符号化装置100は、複数のモードから選択されるモードに従って、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 また、例えば、1つ以上の特定モードは、第1特定モード、第2特定モード、第3特定モード及び第4特定モードのうちの少なくとも1つを含んでいてもよい。
 ここで、第1特定モードでは、第1三角形の少なくとも1つの辺の2つの頂点の2つの位置から少なくとも1つの辺に対する2つの角度を用いて第5頂点の位置を特定するための2つの角度を示す情報を特定情報が含む。第2特定モードでは、第5頂点の位置と第6頂点の位置との間の二次元ベクトルを示す情報を特定情報が含む。
 第3特定モードでは、第1三角形の2つの辺に対応する2つの単位ベクトルに2つのスカラー因子を乗算することにより第5頂点の位置を特定するための2つのスカラー因子を示す情報を特定情報が含む。第4特定モードでは、第6頂点の位置が第5頂点の位置に一致するとみなされる、第1三角形と第4三角形との対応関係を示す情報を特定情報が含む。
 第6頂点は、第4三角形の仮想頂点である。第4三角形は、第1平面上の仮想三角形であり第2頂点及び第3頂点を有する仮想三角形であり第1三角形に相似する仮想三角形である。
 これにより、符号化装置100は、4つのモードのうちの少なくとも1つを含む複数のモードから選択されるモードに従って、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 また、例えば、二面角情報は、二面角と、既に符号化された情報から予測される値との差分によって、二面角を示していてもよい。これにより、符号化装置100は、第4頂点の位置を特定するための二面角を示す値を小さくすることができる場合がある。したがって、これにより、符号化装置100は、符号量の増加を抑制することができる場合がある。
 また、例えば、2つの角度を示す情報は、2つの角度のそれぞれについて、当該角度と、既に符号化された情報から予測される値との差分によって、当該角度を示していてもよい。これにより、符号化装置100は、第5頂点の位置を特定するための2つの角度のそれぞれを示す値を小さくすることができる場合がある。したがって、これにより、符号化装置100は、符号量の増加を抑制することができる場合がある。
 また、例えば、第3三角形は、第2三角形に合同の三角形であってもよい。そして、第2三角形及び第3三角形は、第2頂点及び第3頂点を通る直線に対して回転対称性を有していてもよい。
 これにより、符号化装置100は、第2三角形に合同の第3三角形の第5頂点の位置を特定するための情報を符号化することができる場合がある。また、第2三角形と第3三角形とにおける合同の関係、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、符号化装置100は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。
 図67は、本実施の形態に係る基本的な復号処理の例を示すフローチャートである。例えば、図25に示された復号装置200の回路251が、動作において、図67に示された復号処理を行う。
 具体的には、回路251は、第1三角形の第1頂点の位置を示す第1頂点情報、第1三角形の第2頂点の位置を示す第2頂点情報、及び、第1三角形の第3頂点の位置を示す第3頂点情報を復号する(S251)。そして、回路251は、第2三角形の第4頂点の位置を示す第4頂点情報として、第1平面と第2平面とのなす二面角を示す二面角情報、及び、第5頂点の位置を特定するための特定情報を復号する(S252)。
 ここで、第1三角形は、三次元メッシュにおける三角形であり、第1平面上の三角形である。第2三角形は、三次元メッシュにおける三角形であり、第2平面上の三角形であり、第2頂点及び第3頂点を有する三角形である。第5頂点は、第3三角形の仮想頂点である。第3三角形は、第1平面上の仮想三角形であり、第2頂点及び第3頂点を有する仮想三角形であり、第2三角形に対応する仮想三角形である。
 これにより、復号装置200は、特定情報によって、第1平面上の第3三角形の第5頂点の位置を特定するための情報を復号することができる場合がある。また、第1平面上の第3三角形は第2平面上の第2三角形に対応しているため、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、復号装置200は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を復号することができる場合がある。
 さらに、第5頂点は第1平面上の仮想頂点であるため、第1平面上の第1三角形に従って第5頂点の位置を特定することは比較的容易であると想定される。したがって、復号装置200は、効率的な処理を支援することができる場合がある。また、二面角は、例えば-180度から180度までのような一定の範囲に含まれると想定される。したがって、復号装置200は、符号量の増加を抑制することができる場合がある。すなわち、復号装置200は、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 例えば、第3三角形は、第2三角形に相似する三角形であってもよい。
 これにより、復号装置200は、第2三角形に相似する第3三角形の第5頂点の位置を特定するための情報を復号することができる場合がある。また、第2三角形と第3三角形とにおける相似の関係、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、復号装置200は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例えば、第3三角形は、第1平面に対する第2三角形の正射影であってもよい。
 これにより、復号装置200は、第1平面に対する第2三角形の正射影に対応する第3三角形の第5頂点の位置を特定するための情報を復号することができる場合がある。また、第2三角形と第3三角形とにおける正射影の関係、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、復号装置200は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例えば、特定情報は、第1三角形の少なくとも1つの辺の2つの頂点の2つの位置から少なくとも1つの辺に対する2つの角度を用いて第5頂点の位置を特定するための2つの角度を示す情報を含んでいてもよい。これにより、復号装置200は、2つの角度によって、第5頂点の位置を特定するための情報を復号することができる場合がある。また、各角度は、例えば-180度から180度までのような一定の範囲に含まれると想定される。したがって、復号装置200は、符号量の増加を抑制することができる場合がある。
 また、例えば、特定情報は、第5頂点の位置と第6頂点の位置との間の二次元ベクトルを示す情報を含んでいてもよい。ここで、第6頂点は、第4三角形の仮想頂点である。第4三角形は、第1平面上の仮想三角形であり第2頂点及び第3頂点を有する仮想三角形であり第1三角形に相似する仮想三角形である。
 これにより、復号装置200は、二次元ベクトルによって、第5頂点の位置を特定するための情報を復号することができる場合がある。また、二次元ベクトルによって、第5頂点の位置が効率的に表現され得ると想定される。したがって、復号装置200は、第5頂点の位置を効率的に示す情報を復号することができる場合があり、符号量の増加を抑制することができる場合がある。
 また、例えば、特定情報は、第1三角形の2つの辺に対応する2つの単位ベクトルに2つのスカラー因子を乗算することにより第5頂点の位置を特定するための2つのスカラー因子を示す情報を含んでいてもよい。
 これにより、復号装置200は、2つのスカラー因子によって、第5頂点の位置を特定するための情報を復号することができる場合がある。また、2つのスカラー因子によって、第5頂点の位置が効率的に表現され得ると想定される。したがって、復号装置200は、第5頂点の位置を効率的に示す情報を復号することができる場合があり、符号量の増加を抑制することができる場合がある。
 また、例えば、特定情報は、第2三角形と第3三角形との対応関係を示す情報を含んでいてもよい。
 これにより、復号装置200は、第2三角形と第3三角形との対応関係が適応的に変更される場合でも、その対応関係を示す情報を復号することができる場合がある。したがって、復号装置200は、第2三角形と第3三角形との対応関係が適応的に変更される場合でも、第4頂点の位置を特定するための情報を復号することができる場合がある。また、復号装置200は、第2三角形と第3三角形との対応関係が適応的に変更されることで、符号量の増加を抑制することができる場合がある。
 また、例えば、特定情報は、第1三角形と第4三角形との対応関係を示す情報を含んでいてもよい。
 これにより、復号装置200は、第1三角形と第4三角形との対応関係が適応的に変更される場合でも、その対応関係を示す情報を復号することができる場合がある。したがって、復号装置200は、第1三角形と第4三角形との対応関係が適応的に変更される場合でも、第4頂点の位置を特定するための情報を復号することができる場合がある。また、復号装置200は、第1三角形と第4三角形との対応関係が適応的に変更されることで、符号量の増加を抑制することができる場合がある。
 また、例えば、特定情報は、第6頂点の位置が第5頂点の位置に一致するとみなされる、第1三角形と第4三角形との対応関係、及び、第2三角形と第3三角形との対応関係の少なくとも一方を示す情報を含んでいてもよい。ここで、第6頂点は、第4三角形の仮想頂点である。第4三角形は、第1平面上の仮想三角形であり第2頂点及び第3頂点を有する仮想三角形であり第1三角形に相似する仮想三角形である。
 これにより、復号装置200は、対応関係によって、第5頂点の位置を特定するための情報を復号することができる場合がある。そして、復号装置200は、二面角及び対応関係によって、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例えば、回路251は、二面角情報及び特定情報が復号される1つ以上の特定モードを含む複数のモードの中から1つのモードを選択してもよい。そして、回路251は、1つのモードを示すモード情報を復号し、1つのモードが1つ以上の特定モードに含まれる場合、二面角情報及び特定情報を復号してもよい。
 これにより、復号装置200は、複数のモードから選択されるモードに従って、二面角情報及び特定情報を適応的に復号することができる場合がある。そして、これにより、復号装置200は、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例えば、1つのモードが1つ以上の特定モードに含まれる場合、特定情報は、1つのモードに従って定められる種類の情報を含んでいてもよい。これにより、復号装置200は、複数のモードから選択されるモードに対応する種類の情報を復号することができる場合がある。したがって、復号装置200は、複数のモードから選択されるモードに従って、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例えば、1つ以上の特定モードは、第1特定モード、第2特定モード、第3特定モード及び第4特定モードのうちの少なくとも1つを含んでいてもよい。
 ここで、第1特定モードでは、第1三角形の少なくとも1つの辺の2つの頂点の2つの位置から少なくとも1つの辺に対する2つの角度を用いて第5頂点の位置を特定するための2つの角度を示す情報を特定情報が含む。第2特定モードでは、第5頂点の位置と第6頂点の位置との間の二次元ベクトルを示す情報を特定情報が含む。
 第3特定モードでは、第1三角形の2つの辺に対応する2つの単位ベクトルに2つのスカラー因子を乗算することにより第5頂点の位置を特定するための2つのスカラー因子を示す情報を特定情報が含む。第4特定モードでは、第6頂点の位置が第5頂点の位置に一致するとみなされる、第1三角形と第4三角形との対応関係を示す情報を特定情報が含む。
 第6頂点は、第4三角形の仮想頂点である。第4三角形は、第1平面上の仮想三角形であり第2頂点及び第3頂点を有する仮想三角形であり第1三角形に相似する仮想三角形である。
 これにより、復号装置200は、4つのモードのうちの少なくとも1つを含む複数のモードから選択されるモードに従って、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例えば、二面角情報は、二面角と、既に復号された情報から予測される値との差分によって、二面角を示していてもよい。これにより、復号装置200は、第4頂点の位置を特定するための二面角を示す値を小さくすることができる場合がある。したがって、これにより、復号装置200は、符号量の増加を抑制することができる場合がある。
 また、例えば、2つの角度を示す情報は、2つの角度のそれぞれについて、当該角度と、既に復号された情報から予測される値との差分によって、当該角度を示していてもよい。これにより、復号装置200は、第5頂点の位置を特定するための2つの角度のそれぞれを示す値を小さくすることができる場合がある。したがって、これにより、復号装置200は、符号量の増加を抑制することができる場合がある。
 また、例えば、第3三角形は、第2三角形に合同の三角形であってもよい。そして、第2三角形及び第3三角形は、第2頂点及び第3頂点を通る直線に対して回転対称性を有していてもよい。
 これにより、復号装置200は、第2三角形に合同の第3三角形の第5頂点の位置を特定するための情報を復号することができる場合がある。また、第2三角形と第3三角形とにおける合同の関係、第1平面上の第3三角形の第5頂点の位置、及び、第1平面と第2平面とのなす二面角に従って、第2平面上の第2三角形の第4頂点の位置が特定され得ると想定される。したがって、復号装置200は、二面角情報及び特定情報によって、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。
 また、例えば、二面角情報は、first_parameter又はdihedral_angle等に対応していてもよい。また、特定情報は、selection_parameter、scalar_factors、2D_vector、second_angle又はthird_angle等に対応していてもよい。モードは、prediction_mode等に対応していてもよい。また、特定情報は、モードを含んでいてもよい。
 また、例えば、特定モードは、only_angles_mode、angle_vector_mode、angle_scalar_mode又はone_angle_mode等に対応していてもよい。また、特定モードは、二面角モードと表現されてもよい。
 また、例えば、第1特定モードは、only_angles_mode等に対応していてもよい。また、第2特定モードは、angle_vector_mode等に対応していてもよい。また、第3特定モードは、angle_scalar_mode等に対応していてもよい。また、第4特定モードは、one_angle_mode等に対応していてもよい。
 図68は、本実施の形態に係る符号化装置100のさらに別の構成例を示すブロック図である。この例において、符号化装置100は、第1符号化器171及び第2符号化器172を備える。
 第1符号化器171は、例えば電気回路である。第1符号化器171は、上述された頂点情報符号化器101及び座標符号化器165等に対応していてもよいし、上述された回路151及びメモリ152で実装されていてもよい。
 第2符号化器172は、例えば電気回路である。第2符号化器172は、上述された頂点情報符号化器101、角度導出器163、角度符号化器164、パラメータ導出器167及びパラメータ符号化器168等に対応していてもよいし、上述された回路151及びメモリ152で実装されていてもよい。
 例えば、第1符号化器171が、第1三角形の第1頂点の位置を示す第1頂点情報、第1三角形の第2頂点の位置を示す第2頂点情報、及び、第1三角形の第3頂点の位置を示す第3頂点情報を符号化する。そして、第2符号化器172が、第2三角形の第4頂点の位置を示す第4頂点情報として、第1平面と第2平面とのなす二面角を示す二面角情報、及び、第5頂点の位置を特定するための特定情報を符号化する。
 ここで、第1三角形は、三次元メッシュにおける三角形であり、第1平面上の三角形である。第2三角形は、三次元メッシュにおける三角形であり、第2平面上の三角形であり、第2頂点及び第3頂点を有する三角形である。第5頂点は、第3三角形の仮想頂点である。第3三角形は、第1平面上の仮想三角形であり、第2頂点及び第3頂点を有する仮想三角形であり、第2三角形に対応する仮想三角形である。
 これにより、符号化装置100は、第4頂点の位置を特定するための情報を効率的に符号化することができる場合がある。したがって、符号化装置100は、三次元メッシュの符号量を抑制することができる場合がある。
 なお、第2符号化器172は、上述したモード情報を符号化してもよい。あるいは、符号化装置100は、モード情報を符号化する第3符号化器を備えていてもよい。
 図69は、本実施の形態に係る復号装置200のさらに別の構成例を示すブロック図である。この例において、復号装置200は、第1復号器271及び第2復号器272を備える。
 第1復号器271は、例えば電気回路である。第1復号器271は、上述された頂点情報復号器201及び座標復号器265等に対応していてもよいし、上述された回路251及びメモリ252で実装されていてもよい。
 第2復号器272は、例えば電気回路である。第2復号器272は、上述された頂点情報復号器201、角度復号器263、座標導出器264、パラメータ復号器267等に対応していてもよいし、上述された回路251及びメモリ252で実装されていてもよい。
 例えば、第1復号器271が、第1三角形の第1頂点の位置を示す第1頂点情報、第1三角形の第2頂点の位置を示す第2頂点情報、及び、第1三角形の第3頂点の位置を示す第3頂点情報を復号する。そして、第2復号器272が、第2三角形の第4頂点の位置を示す第4頂点情報として、第1平面と第2平面とのなす二面角を示す二面角情報、及び、第5頂点の位置を特定するための特定情報を復号する。
 ここで、第1三角形は、三次元メッシュにおける三角形であり、第1平面上の三角形である。第2三角形は、三次元メッシュにおける三角形であり、第2平面上の三角形であり、第2頂点及び第3頂点を有する三角形である。第5頂点は、第3三角形の仮想頂点である。第3三角形は、第1平面上の仮想三角形であり、第2頂点及び第3頂点を有する仮想三角形であり、第2三角形に対応する仮想三角形である。
 これにより、復号装置200は、第4頂点の位置を特定するための情報を効率的に復号することができる場合がある。したがって、復号装置200は、三次元メッシュの符号量を抑制することができる場合がある。
 なお、第2復号器272は、上述したモード情報を復号してもよい。あるいは、復号装置200は、モード情報を復号する第3復号器を備えていてもよい。
 <その他の例>
 以上、符号化装置100及び復号装置200の態様を実施の形態に従って説明したが、符号化装置100及び復号装置200の態様は、実施の形態に限定されない。実施の形態に対して当業者が思いつく変形が施されてもよいし、実施の形態における複数の構成要素が任意に組み合わされてもよい。
 例えば、実施の形態において特定の構成要素によって実行される処理を特定の構成要素の代わりに別の構成要素が実行してもよい。また、複数の処理の順序が変更されてもよいし、複数の処理が並行して実行されてもよい。
 また、本開示の符号化及び復号は、頂点の位置を示す頂点情報の符号化及び復号に適用することができる。なお、本開示の符号化及び復号は、三次元メッシュにおける面の頂点に限らず、他の頂点の位置を示す頂点情報の符号化及び復号に適用されてもよい。また、本開示の各処理が、選択可能な複数の処理のうちの1つとして行われてもよい。
 また、上述した通り、本開示の複数の構成の少なくとも一部は、集積回路として実装され得る。本開示の複数の処理の少なくとも一部が符号化方法又は復号方法として利用されてもよい。当該符号化方法又は当該復号方法をコンピュータに実行させるためのプログラムが利用されてもよい。また、当該プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体が利用されてもよい。また、復号装置200に復号処理を行わせるためのビットストリームが利用されてもよい。
 また、本開示の複数の構成及び複数の処理の少なくとも一部が、送信装置、受信装置、送信方法及び受信方法として利用されてもよい。当該送信方法又は当該受信方法をコンピュータに実行させるためのプログラムが利用されてもよい。また、当該プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体が利用されてもよい。
 本開示は、例えば、三次元メッシュに関する符号化装置、復号装置、送信装置及び受信装置等に有用であり、コンピュータグラフィックスシステム、及び、三次元データ表示システム等に適用可能である。
  100 符号化装置
  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頂点情報、前記第1三角形の第2頂点の位置を示す第2頂点情報、及び、前記第1三角形の第3頂点の位置を示す第3頂点情報を符号化し、
     前記三次元メッシュにおける三角形であり第2平面上の三角形であり前記第2頂点及び前記第3頂点を有する三角形である第2三角形の第4頂点の位置を示す第4頂点情報として、(i)前記第1平面と前記第2平面とのなす二面角を示す二面角情報、及び、(ii)前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第2三角形に対応する仮想三角形である第3三角形の仮想頂点である第5頂点の位置を特定するための特定情報を符号化する
     符号化装置。
  2.  前記第3三角形は、前記第2三角形に相似する三角形である
     請求項1に記載の符号化装置。
  3.  前記第3三角形は、前記第1平面に対する前記第2三角形の正射影である
     請求項1に記載の符号化装置。
  4.  前記特定情報は、前記第1三角形の少なくとも1つの辺の2つの頂点の2つの位置から前記少なくとも1つの辺に対する2つの角度を用いて前記第5頂点の位置を特定するための前記2つの角度を示す情報を含む
     請求項1~3のいずれか1項に記載の符号化装置。
  5.  前記特定情報は、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置と、前記第5頂点の位置との間の二次元ベクトルを示す情報を含む
     請求項1~3のいずれか1項に記載の符号化装置。
  6.  前記特定情報は、前記第1三角形の2つの辺に対応する2つの単位ベクトルに2つのスカラー因子を乗算することにより前記第5頂点の位置を特定するための前記2つのスカラー因子を示す情報を含む
     請求項1~3のいずれか1項に記載の符号化装置。
  7.  前記特定情報は、前記第2三角形と前記第3三角形との対応関係を示す情報を含む
     請求項1~3のいずれか1項に記載の符号化装置。
  8.  前記特定情報は、前記第1三角形と前記第4三角形との対応関係を示す情報を含む
     請求項5に記載の符号化装置。
  9.  前記特定情報は、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置が前記第5頂点の位置に一致するとみなされる、前記第1三角形と前記第4三角形との対応関係、及び、前記第2三角形と前記第3三角形との対応関係の少なくとも一方を示す情報を含む
     請求項1~3のいずれか1項に記載の符号化装置。
  10.  前記回路は、
     前記二面角情報及び前記特定情報が符号化される1つ以上の特定モードを含む複数のモードの中から1つのモードを選択し、
     前記1つのモードを示すモード情報を符号化し、
     前記1つのモードが前記1つ以上の特定モードに含まれる場合、前記二面角情報及び前記特定情報を符号化する
     請求項1~3のいずれか1項に記載の符号化装置。
  11.  前記1つのモードが前記1つ以上の特定モードに含まれる場合、前記特定情報は、前記1つのモードに従って定められる種類の情報を含む
     請求項10に記載の符号化装置。
  12.  前記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に記載の符号化装置。
  13.  前記二面角情報は、前記二面角と、既に符号化された情報から予測される値との差分によって、前記二面角を示す
     請求項1~3のいずれか1項に記載の符号化装置。
  14.  前記2つの角度を示す情報は、前記2つの角度のそれぞれについて、当該角度と、既に符号化された情報から予測される値との差分によって、当該角度を示す
     請求項4に記載の符号化装置。
  15.  メモリと、
     前記メモリにアクセス可能な回路とを備え、
     前記回路は、動作において、
     三次元メッシュにおける三角形であり第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頂点の位置を特定するための特定情報を復号する
     復号装置。
  16.  前記第3三角形は、前記第2三角形に相似する三角形である
     請求項15に記載の復号装置。
  17.  前記第3三角形は、前記第1平面に対する前記第2三角形の正射影である
     請求項15に記載の復号装置。
  18.  前記特定情報は、前記第1三角形の少なくとも1つの辺の2つの頂点の2つの位置から前記少なくとも1つの辺に対する2つの角度を用いて前記第5頂点の位置を特定するための前記2つの角度を示す情報を含む
     請求項15~17のいずれか1項に記載の復号装置。
  19.  前記特定情報は、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置と、前記第5頂点の位置との間の二次元ベクトルを示す情報を含む
     請求項15~17のいずれか1項に記載の復号装置。
  20.  前記特定情報は、前記第1三角形の2つの辺に対応する2つの単位ベクトルに2つのスカラー因子を乗算することにより前記第5頂点の位置を特定するための前記2つのスカラー因子を示す情報を含む
     請求項15~17のいずれか1項に記載の復号装置。
  21.  前記特定情報は、前記第2三角形と前記第3三角形との対応関係を示す情報を含む
     請求項15~17のいずれか1項に記載の復号装置。
  22.  前記特定情報は、前記第1三角形と前記第4三角形との対応関係を示す情報を含む
     請求項19に記載の復号装置。
  23.  前記特定情報は、前記第1平面上の仮想三角形であり前記第2頂点及び前記第3頂点を有する仮想三角形であり前記第1三角形に相似する仮想三角形である第4三角形の仮想頂点である第6頂点の位置が前記第5頂点の位置に一致するとみなされる、前記第1三角形と前記第4三角形との対応関係、及び、前記第2三角形と前記第3三角形との対応関係の少なくとも一方を示す情報を含む
     請求項15~17のいずれか1項に記載の復号装置。
  24.  前記回路は、
     前記二面角情報及び前記特定情報が復号される1つ以上の特定モードを含む複数のモードの中から1つのモードを選択し、
     前記1つのモードを示すモード情報を復号し、
     前記1つのモードが前記1つ以上の特定モードに含まれる場合、前記二面角情報及び前記特定情報を復号する
     請求項15~17のいずれか1項に記載の復号装置。
  25.  前記1つのモードが前記1つ以上の特定モードに含まれる場合、前記特定情報は、前記1つのモードに従って定められる種類の情報を含む
     請求項24に記載の復号装置。
  26.  前記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に記載の復号装置。
  27.  前記二面角情報は、前記二面角と、既に復号された情報から予測される値との差分によって、前記二面角を示す
     請求項15~17のいずれか1項に記載の復号装置。
  28.  前記2つの角度を示す情報は、前記2つの角度のそれぞれについて、当該角度と、既に復号された情報から予測される値との差分によって、当該角度を示す
     請求項18に記載の復号装置。
  29.  三次元メッシュにおける三角形であり第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頂点の位置を特定するための特定情報を符号化する
     符号化方法。
  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頂点の位置を特定するための特定情報を復号する
     復号方法。
PCT/JP2022/039695 2021-10-26 2022-10-25 符号化装置、復号装置、符号化方法及び復号方法 WO2023074673A1 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023238867A1 (ja) * 2022-06-06 2023-12-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法

Citations (4)

* Cited by examiner, † Cited by third party
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 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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