WO2022269944A1 - 情報処理装置および方法 - Google Patents
情報処理装置および方法 Download PDFInfo
- Publication number
- WO2022269944A1 WO2022269944A1 PCT/JP2021/043204 JP2021043204W WO2022269944A1 WO 2022269944 A1 WO2022269944 A1 WO 2022269944A1 JP 2021043204 W JP2021043204 W JP 2021043204W WO 2022269944 A1 WO2022269944 A1 WO 2022269944A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- patch
- vertex
- information
- pair
- vertices
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title abstract description 166
- 238000003672 processing method Methods 0.000 claims abstract description 12
- 238000012937 correction Methods 0.000 claims description 80
- 230000009467 reduction Effects 0.000 abstract description 15
- 238000012545 processing Methods 0.000 description 192
- 230000008569 process Effects 0.000 description 70
- 238000005516 engineering process Methods 0.000 description 42
- 239000000284 extract Substances 0.000 description 28
- 230000005540 biological transmission Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 13
- 238000009795 derivation Methods 0.000 description 10
- 230000006866 deterioration Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009978 visual deterioration Effects 0.000 description 2
- 230000003796 beauty Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 244000144972 livestock Species 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
- H04N19/54—Motion estimation other than block-based using feature points or meshes
Definitions
- the present disclosure relates to an information processing device and method, and more particularly to an information processing device and method capable of suppressing reduction in quality of 3D data due to encoding and decoding.
- the present disclosure has been made in view of such circumstances, and is intended to enable suppression of deterioration in the quality of 3D data due to encoding and decoding.
- An information processing device divides a mesh representing an object with a three-dimensional structure into at least a first patch and a second patch, arranges them in a single image, and divides the mesh into at least a first patch and a second patch.
- a generation unit that generates pair information indicating that at least one vertex and at least one vertex of the second patch at the same position as the position of the vertex of the first patch in the object before encoding are paired. and an encoding unit that encodes the pair information.
- An information processing method divides a mesh representing a three-dimensional structure object into at least a first patch and a second patch, arranges them in a single image, and divides the mesh into at least a first patch and a second patch. generating pair information indicating that at least one vertex and at least one vertex of the second patch in the same position as the position of the vertex of the first patch in the object before encoding are paired; It is an information processing method for encoding the pair information obtained.
- An information processing apparatus divides a mesh representing a three-dimensional structure object into at least a first patch and a second patch, arranges them in a single image, and divides the mesh into at least a first patch and a second patch. and at least one vertex of the second patch at the same position as the position of the vertex of the first patch in the object before encoding. and a decoding unit for obtaining the pair information, and a correction unit for correcting the reconstructed mesh based on the pair information.
- An information processing method divides a mesh representing a three-dimensional structure object into at least a first patch and a second patch, arranges them in a single image, and divides the mesh into at least a first patch and a second patch. and at least one vertex of the second patch at the same position as the position of the vertex of the first patch in the object before encoding. and correcting the reconstructed mesh based on the pair information obtained by decoding the encoded data.
- a mesh expressing an object with a three-dimensional structure is divided into at least a first patch and a second patch, and arranged in a single image. and at least one vertex of the second patch at the same position as the position of the vertex of the first patch in the object before encoding. Pair information is encoded.
- a mesh representing an object with a three-dimensional structure is divided into at least a first patch and a second patch and arranged in a single image; Pair information indicating that at least one vertex of one patch is paired with at least one vertex of the second patch at the same position as the position of the vertex of the first patch in the object before encoding.
- the encoded data is decoded and the reconstructed mesh is corrected based on pair information obtained by decoding the encoded data.
- FIG. 4 is a diagram for explaining Mesh; FIG. 4 is a diagram for explaining the difference in data configuration between VPCC and Mesh. It is a figure explaining a zipper ring. It is a figure explaining transmission of pair information. It is a figure explaining transmission of pair information. It is a figure explaining pair information. It is a figure explaining generation of pair information.
- FIG. 4 is a diagram illustrating an example of transmission order; It is a figure explaining the example of the content of pair information. It is a figure explaining the example of the content of pair information. It is a figure explaining the example of the content of pair information. It is a figure explaining the structural example of pair information. It is a figure explaining the structural example of pair information.
- FIG. 10 is a flowchart for explaining an example of the flow of encoding processing; It is a block diagram which shows the main structural examples of a decoding apparatus.
- FIG. 10 is a flowchart for explaining an example of the flow of decoding processing;
- FIG. 10 is a flowchart for explaining an example of the flow of decoding processing;
- FIG. 10 is a flowchart for explaining an example of the flow of encoding processing; It is a block diagram which shows the main structural examples of a decoding apparatus.
- FIG. 10 is a flowchart for explaining an example of the flow of decoding processing;
- FIG. It is a block diagram which shows the main structural examples of a computer.
- Non-Patent Document 1 (above)
- Non-Patent Document 2 (above) "Information technology - Coded Representation of Immersive Media - Part 5: Visual Volumetric Video-based Coding (V3C) and Video-based Point Cloud Compression (V-PCC)", ISO/IEC 23090-5:2020(E),ISO/ IEC JTC1/SC29/WG11w19579
- the content described in the above non-patent document and the content of other documents referenced in the above non-patent document are also the basis for determining the support requirements.
- 3D data such as a point cloud representing a three-dimensional structure using point position information, attribute information, and the like existed.
- a three-dimensional structure (three-dimensional object) is expressed as a set of many points.
- a point cloud is composed of position information (also called geometry) and attribute information (also called attributes) of each point.
- Attributes can contain arbitrary information.
- the attributes may include color information, reflectance information, normal line information, etc. of each point.
- the point cloud has a relatively simple data structure and can represent any three-dimensional structure with sufficient accuracy by using a sufficiently large number of points.
- VPCC Video-based Point Cloud Compression
- the geometry and attributes of the point cloud are decomposed into small regions (also called patches), and each patch is projected onto the projection plane, which is a two-dimensional plane.
- the projection plane which is a two-dimensional plane.
- geometry and attributes are projected onto any of the six sides of the bounding box that contains the object.
- Geometry and attributes projected onto this projection plane are also referred to as projection images.
- a patch projected onto the projection plane is also called a patch image.
- the geometry of the point cloud 1 representing the three-dimensional structure object shown in A of FIG. 1 is decomposed into patches 2 as shown in B of FIG. That is, a geometry patch image (projection image for each patch) is generated.
- Each pixel value of the geometry patch image indicates the distance (depth value) from the projection plane to the point.
- the attributes of the point cloud 1 are also decomposed into patches 2 in the same way as the geometry, and each patch is projected onto the same projection plane as the geometry. That is, an attribute patch image having the same size and shape as the geometry patch image is generated.
- Each pixel value in the attribute patch image indicates the attribute (color, normal vector, reflectance, etc.) of the co-located point in the corresponding geometry patch image.
- each patch image generated in this way is arranged within a frame image (also called a video frame) of the video sequence. That is, each patch image on the projection plane is arranged on a predetermined two-dimensional plane.
- a frame image in which a geometry patch image is arranged is also called a geometry video frame.
- This geometry video frame is also called a geometry image, geometry map, or the like.
- a geometry image 11 shown in FIG. 1C is a frame image (geometry video frame) in which the geometry patch image 3 is arranged.
- This patch image 3 corresponds to the patch 2 in FIG. 1B (the geometry patch 2 is projected onto the projection plane).
- a frame image in which an attribute patch image is arranged is also called an attribute video frame.
- This attribute video frame is also called an attribute image or an attribute map.
- the attribute image 12 shown in FIG. 1D is a frame image (attribute video frame) in which the attribute patch image 4 is arranged.
- This patch image 4 corresponds to the patch 2 in FIG. 1B (the attribute patch 2 is projected onto the projection plane).
- these video frames are encoded by a two-dimensional image encoding method such as AVC (Advanced Video Coding) or HEVC (High Efficiency Video Coding). That is, point cloud data, which is 3D data representing a 3D structure, can be encoded using a codec for 2D images.
- AVC Advanced Video Coding
- HEVC High Efficiency Video Coding
- point cloud data which is 3D data representing a 3D structure
- 2D data encoders are more popular than 3D data encoders and can be realized at low cost. That is, by applying the video-based approach as described above, an increase in cost can be suppressed.
- occupancy images also called occupancy maps
- the occupancy image is map information indicating the presence or absence of a projection image (patch image) for each NxN pixels of a geometry video frame or attribute video frame.
- an occupancy image indicates a region (NxN pixels) in which a patch image exists in a geometry image or an attribute image with a value of "1", and indicates a region (NxN pixels) in which no patch image exists with a value of "0".
- Such occupancy images are encoded as data separate from geometry images and attribute images, and transmitted to the decoding side.
- the decoder can determine whether or not there is a patch in an area. , the point cloud can be reconstructed. For example, even if the depth value changes due to encoding/decoding, the decoder will refer to the occupancy map and ignore the depth value of the area where the patch image does not exist (so as not to process it as 3D data position information). can do.
- an occupancy image 13 as shown in E in FIG. 1 may be generated for the geometry image 11 in C in FIG. 1 and the attribute image 12 in D in FIG.
- the white portion indicates the value "1"
- the black portion indicates the value "0".
- this occupancy image can also be transmitted as a video frame in the same way as the geometry video frame, attribute video frame, and the like. That is, like geometry and attributes, they are encoded by a two-dimensional image encoding method such as AVC or HEVC.
- the point cloud geometry and attributes are projected onto the same projection plane and placed at the same position in the frame image. That is, the geometry and attributes of each point are associated with each other according to its position on the frame image.
- 3D data representing an object with a three-dimensional structure there is, for example, a mesh in addition to the point cloud.
- a mesh expresses the surface of an object in a three-dimensional space by polygons, which are planes (polygons) surrounded by sides 22 connecting vertices 21 .
- 3D data representing the object includes this mesh and the texture 23 applied to each polygon, as shown in FIG.
- 3D data using a mesh for example, as shown in the lower part of FIG. 21 and sides 22, a texture image 33 that is map information of the texture 23 attached to each polygon, and the position of the texture corresponding to each vertex 21 in the texture image 33 (that is, each vertex 21 in the texture image 33 position).
- the UV map 34 indicates the position of each vertex by UV coordinates, which are coordinates on the texture image 33 .
- the UV map 34 indicates the correspondence between each vertex 21 and the texture 23 . Therefore, as in the example of FIG. 2, the texture image 33 is configured as map information independent of the vertex information 31 configured by the three-dimensional coordinates of each vertex. Therefore, in the texture image 33, the projection direction and resolution of the texture 23 of each polygon can be arbitrarily set.
- Non-Patent Document 1 and the like propose a method of extending the above-described VPCC and compressing (encoding) 3D data using a mesh.
- the vertex geometry (vertex position) is shown as non-image as vertex information. Therefore, for example, the vertex 43 shared by the polygons 41 and 42 is expressed as one point.
- the texture is placed in texture image 44 .
- the texture 45 applied to the polygon 41 and the texture 46 applied to the polygon 42 are arranged in the texture image 44 independently. Therefore, the textures 45 and 46 can also be arranged at positions separated from each other, for example, as in the example shown in FIG. 3A. That is, in this case, the vertex 43 is expressed as two points, ie, the vertex 47 and the vertex 48 in the texture image 44 .
- VPCC as shown in FIG.
- the mesh representing the 3D structural object is divided into at least a first patch and a second patch to form a single image. placed within. Therefore, the polygon 41 is arranged as the polygon 52, and the polygon 42 is arranged as the polygon 54 in the geometry image 51, respectively. More precisely, each vertex that constitutes each polygon is arranged in the geometry image 51 so as to form each polygon. Therefore, the polygons 52 and 54 can also be arranged at positions separated from each other, for example, as in the example shown in FIG. 3B.
- vertices shared by multiple polygons in the mesh can be arranged as multiple points in the geometry image because they are arranged as vertices that make up each polygon.
- both the vertex 53 of the polygon 52 and the vertex 55 of the polygon 54 correspond to the vertex 43 (one vertex) of the mesh.
- a single vertex in the mesh can be represented as multiple vertices in the geometry image.
- a plurality of vertices also referred to as overlapping points
- existing at the same position in the mesh may be arranged at different positions in the geometry image.
- Zippering searches for neighboring boundary vertices in 3D and moves the vertices being processed to match the searched points (also called matching).
- the crack is eliminated by correcting the coordinates of each vertex of the portion where the crack occurs.
- a vertex 63 indicated by a white circle in the drawing is a vertex on the boundary of the patch 61 or patch 62 .
- FIG. 4 only one vertex is labeled. It is assumed that the boundary on which the vertices 63 of the patch 61 are arranged and the boundary on which the vertices 63 of the patch 62 are arranged are in contact with each other before encoding. It is also assumed that vertex A1 of patch 61 and vertex B1 of patch 62 are one vertex before encoding. Similarly, vertex A2 and vertex B2, vertex A3 and vertex B3, vertex A4 and vertex B4, and vertex A5 and vertex B5 are each assumed to be one vertex before encoding.
- the boundary of a patch indicates the boundary between an area included in the patch and an area not included in the patch.
- the sides (connections) of polygons forming the outer shape of the patch are called boundaries.
- the zipper ring search does not find the vertex 63 of the patch 61 corresponding to the vertex B2 if the zipper ring search does not find the vertex 63 of the patch 61 corresponding to the vertex B2, the vertex B2 is not matched with other vertices. In other words, the geometry of vertex B2 remains uncorrected. Therefore, as shown in FIG. 4B, cracks may occur (cracks may not be erased).
- the encoder transmits to the decoder pair information indicating a pair of vertices of a patch that are assumed to have vertices at the same position. That is, as shown in the top row of the table in FIG. 5, the pair information is transmitted (for example, the encoder generates and encodes the pair information, and the decoder decodes and uses the encoded data).
- the generation unit of the information processing apparatus divides a mesh representing an object having a three-dimensional structure into at least a first patch and a second patch, arranges them in a single image, pair information indicating that at least one vertex of the patch of and at least one vertex of the second patch at the same position as the position of the vertex of the first patch in the object before encoding is paired, and information
- An encoding unit of the processing device encodes the pair information.
- an information processing device divides a mesh representing an object with a three-dimensional structure into at least a first patch and a second patch, arranges them in a single image, and arranges at least one vertex of the first patch. and a generation unit for generating pair information indicating that at least one vertex of the second patch at the same position as the position of the vertex of the first patch in the object before encoding is paired, and the pair and an encoding unit for encoding information.
- a decoding unit of an information processing apparatus divides a mesh representing an object having a three-dimensional structure into at least a first patch and a second patch and arranges them in a single image; Pair information indicating that at least one vertex of one patch is paired with at least one vertex of the second patch at the same position as the position of the vertex of the first patch in the object before encoding.
- the encoded data is decoded, and the correction unit of the information processing device corrects the reconstructed mesh based on the pair information obtained by decoding the encoded data.
- a mesh representing an object with a three-dimensional structure is divided into at least a first patch and a second patch, arranged in a single image, and at least one vertex of the first patch is and decoding encoded data of pair information indicating that at least one vertex of the second patch at the same position as the position of the vertex of the first patch in the object before encoding is paired, and A decoding unit for obtaining pair information and a correction unit for correcting the reconstructed mesh based on the pair information are provided.
- polygons 101 and 102 shown in A of FIG. 7 are composed of vertices 103 shown by white circles. 7A and 7B, only one vertex is numbered. It is assumed that the numbers shown near each vertex 103 are the identification information of each vertex 103 .
- polygon 110 and polygon 102 were in contact with each other before encoding. That is, in the state before encoding, the vertex 103 with the identification information "3" and the vertex 103 with the identification information "6" are one vertex 103, and the vertex 103 with the identification information "2" and the vertex 103 with the identification information "4" and the vertex 103 of are one vertex.
- the polygons 101 and 102 are arranged in the geometry image independently of each other, so that each vertex 103 of each polygon is given different identification information.
- the encoder expresses the vertex 103 with the identification information "3" and the vertex 103 with the identification information "6", the vertex 103 with the identification information "2" and the vertex 103 with the identification information "4" as a pair. Generates pair information to be used.
- the decoder performs matching of vertices 103 according to the pair information. That is, the decoder corrects the positions of the vertices 103 in the reconstructed mesh so that the vertices 103 that were one vertex 103 in the state before encoding in the pair information become one vertex.
- the decoder matches the vertex 103 with the identification information "3" and the vertex 103 with the identification information "6" to match the vertex 103 with the identification information "2" and the vertex 103 with the identification information "4". , and the vertex 103 of .
- the polygon 101 and the polygon 102 are brought into contact (same state as before encoding). Therefore, the occurrence of cracks can be suppressed.
- the decoder can match vertices more reliably and accurately than in the case of zippering. In other words, it is possible to more reliably eliminate cracks and match with more appropriate vertices (can suppress the occurrence of texture discontinuity). Therefore, reduction in quality of 3D data due to encoding and decoding can be suppressed. Moreover, since search processing is unnecessary, an increase in processing load can be suppressed.
- a “pair” indicates a “set” (which can also be expressed as a “pair” or a “group”) composed of a plurality of vertices of a patch generated from a single mesh vertex. That is, each pair of vertices corresponds to the same vertex in the mesh.
- the “pair information” indicating this pair is information indicating the correspondence between vertices of a plurality of patches (which vertices correspond to which vertices).
- a pair may be composed of three or more vertices. That is, one vertex of the mesh may be divided into three or more patches.
- pairing process The process of matching vertices based on such pair information is also called pairing process.
- each vertex forming a pair may correspond to an "overlapping point" in the mesh. That is, pairs may be formed by dividing a plurality of vertices at the same position in the mesh into different patches.
- pairs are configured by vertices, but they may be configured by "edges” instead of vertices. Adjacent polygons share not only vertices, but also "edges” ("connections” that connect vertices).
- a “set” of continuous edges or vertices shared by a pair of patches is also called an “edge”.
- a pair may indicate a "set” composed of a plurality of edges.
- the pair information may be information indicating the correspondence between edges of a plurality of patches.
- each vertex (or edge) divided when dividing the mesh into patches is paired.
- This process of dividing the mesh into patches is also called patch segmentation.
- patch segmentation patches are generated by connecting adjacent polygons (triangles) of a mesh. Information about adjacent polygons is obtained from connectivity.
- adjacent polygons are patched differently from each other, the edges (vertices and sides) shared by those polygons are divided into multiple (each vertex has multiple UV coordinates). Vertices located at each of the plurality of UV coordinates are paired.
- white circles indicate the vertices of the mesh 111.
- a vertex indicated by this white circle is referred to as a vertex 113 .
- the numbers near each vertex 113 schematically represent the identification information assigned to each vertex 113 . That is, identification information "1" to identification information "5" are assigned to the five vertices 113, respectively.
- a connection (side of the polygon) connecting the vertices 113 is called a side 112 .
- FIG. 8A only one connection is labeled, but all connections between vertices 113 are sides 112.
- FIG. The illustration of other vertices is omitted.
- patch segmentation divides this mesh 111 along the edge 112 as shown in FIG. 8B into patches 111A and 111B.
- the edge 112 and the vertex 113 are each divided into two.
- the vertex 113 divided on the patch 111A side in this way is called a vertex 113A.
- the vertex 113 divided on the patch 111B side is referred to as a vertex 113B.
- FIG. 8B only one of the white circles of the patch 111A is labeled, but all the white circles of the patch 111A are vertices 113A.
- only one of the open circles in patch 111B is labeled, but the open circles in patch 111B are all vertices 113B.
- the vertex 113 with the identification information "1" is divided into the vertex 113A with the identification information "A1” and the vertex 113B with the identification information "B1".
- the vertex 113 with the identification information "2" is divided into the vertex 113A with the identification information "A2” and the vertex 113B with the identification information "B2”.
- the vertex 113 with the identification information "3" is divided into the vertex 113A with the identification information "A3” and the vertex 113B with the identification information "B3”.
- the vertex 113 with the identification information "4" is divided into the vertex 113A with the identification information "A4" and the vertex 113B with the identification information "B4".
- the vertex 113 with the identification information "5" is divided into the vertex 113A with the identification information "A5" and the vertex 113B with the identification information "B5".
- the side 112 divided on the patch 111A side is called a side 112A.
- the side 112 divided on the side of the patch 111B is referred to as a side 112B.
- FIG. 8B only one of the connections connecting the vertices 113A of the patch 111A is labeled, but all the connections connecting the vertices 113A are sides 112A.
- only one of the connections between vertices 113B of patch 111B is labeled, but all the connections between vertices 113B are edges 112B.
- the edge formed by the vertex 113A and the side 112A and the edge formed by the vertex 113B and the side 112B indicate the edge shared by the patch 111A and the patch 111B.
- the patch is projected onto a two-dimensional plane, and the projected image (also called patch image) is placed on the geometry image.
- FIG. 8C shows an example of such an arrangement.
- patch image 121A shows the projected image of patch 111A.
- a patch image 121B indicates a projected image of the patch 111B.
- a vertex 123A indicated by a white circle indicates the vertex of the patch image 121A.
- vertices 123B indicated by white circles indicate vertices of patch image 121B.
- the vertex 123A is the vertex corresponding to the vertex 113A (the vertex 113A is projected), and the vertex 123B is the vertex corresponding to the vertex 113B (the vertex 113B is projected).
- FIG. 8C only one of the white circles of the patch image 121A is labeled, but all the white circles of the patch image 121A are vertices 123A.
- only one of the white circles in patch image 121B is labeled, but the white circles in patch image 121B are all vertices 123B.
- the vertex 123A with the identification information "A1” and the vertex 123B with the identification information "B1” constitute one pair.
- the vertex 123A with the identification information "A2” and the vertex 123B with the identification information "B2” constitute one pair.
- a vertex 123A with identification information "A3” and a vertex 123B with identification information "B3” constitute one pair.
- a vertex 123A with identification information "A4" and a vertex 123B with identification information "B4" constitute one pair.
- a vertex 123A with identification information "A5" and a vertex 123B with identification information "B5" constitute one pair.
- a connection connecting the vertices 123A is called an edge 122A.
- This side 122A is a side corresponding to the side 112A (the side 112A is projected), and constitutes the boundary of the patch image 121A.
- a connection connecting the vertices 123B is called a side 122B.
- This side 122B is a side corresponding to the side 112B (side 112A is projected), and constitutes the boundary of the patch image 121B.
- FIG. 8C only one of the connections connecting the vertices 123A of the patch image 121A is labeled, but all the connections connecting the vertices 123A are sides 122A.
- all the connections connecting the vertices 123B are sides 122B.
- the edge formed by the vertex 123A and the side 122A and the edge formed by the vertex 123B and the side 122B indicate the edge shared by the patch image 121A and the patch image 121B. That is, an edge formed by vertex 123A and side 122A and an edge formed by vertex 123B and side 122B form one pair.
- the encoder generates pair information indicating such pairs generated by patch segmentation.
- the pair information may indicate only pairs formed by vertices included in the pair information, as shown in the fifth row from the top of the table shown in FIG. 5, for example.
- the pair information may be information indicating all pairs obtained by performing patch segmentation on the mesh.
- the pair information may also be information indicating pairs formed by vertices not indicated by the pair information, as shown in the sixth row from the top of the table shown in FIG. 5, for example.
- the pair information is information formed for each group of vertices, and indicates all pairs formed by the vertices of the group by indicating the pairs formed by some vertices of the group. It may be information.
- a patch image 131, a patch image 132, and a patch image 133 are arranged in a geometry image 130 as shown in A of FIG.
- Patch image 131, patch image 132, and patch image 133 have vertices 134 indicated by white circles on their boundaries. Although only one vertex is labeled in FIG. The numbers shown near each vertex indicate the identification information of each vertex.
- FIG. 9B uses the identification information assigned to the vertex 134.
- the pairs formed by vertices 134 are shown.
- square frames 141 to 144 indicate pairs formed by vertices 134 .
- the vertex 134 assigned the identification information "1" and the vertex 134 assigned the identification information "4" form a pair.
- a vertex 134 to which identification information "2" is assigned and a vertex 134 to which identification information "15" is assigned form a pair.
- a vertex 134 to which identification information "5" is assigned and a vertex 134 to which identification information "8” is assigned form a pair.
- a vertex 134 to which identification information "20” is assigned, a vertex 134 to which identification information "21” is assigned, and a vertex 134 to which identification information "24” is assigned form a pair.
- the pair information for a pair having such a configuration may indicate the vertices forming the pair one by one (for each pair), as shown in the eleventh row from the top of the table shown in FIG. 5, for example. That is, the pair information may indicate that the plurality of vertices of the first patch and the corresponding plurality of vertices of the second patch are each paired.
- the pair information includes the identification information of the vertices arranged for each pair. An array may be shown. A decoder that acquires the pair information can easily grasp each vertex that constitutes each pair by dividing the array of the vertex identification information by the number of vertices that constitute the pair.
- the pair information may include a parameter indicating the number of vertices forming a pair, as shown in the twelfth row from the top of the table shown in FIG. 5, for example. If the number of vertices that make up each pair is indicated, the decoder can easily divide the array of vertex identification information included in the pair information by the number of vertices that make up each pair. can be grasped. In other words, in this case, the decoder does not need to know in advance the number of vertices forming each pair. Note that the number of parameters transmitted as pair information is arbitrary.
- the value of this parameter may be indicated for each pair, may be indicated for each pair of a predetermined number of two or more, or may be indicated for all pairs. .
- the number of vertices forming a pair may be variable. That is, the number of vertices forming a pair does not have to be common to all pairs.
- a flag indicating the separation of the pair (for example, a 1-bit flag "0") is added to the array of the identification information of the vertices included in the pair information. may be inserted.
- This flag is information known in advance to the decoder.
- a decoder that acquires the pair information can easily grasp which vertices form a pair by detecting the flag from the array of vertex identification information. That is, in this case as well, the decoder does not need to know in advance the number of vertices forming each pair. Also, the number of vertices forming a pair may be variable.
- the pair information may include information indicating a group consisting of a plurality of vertices of the first patch and a group consisting of a plurality of vertices of the second patch. For example, as shown in the 13th row from the top of the table shown in FIG. 5, a list may be generated in which the vertices forming the pair are summarized for each patch, and the pair information may indicate the pair in the list. .
- the vertices 134 of the patch image 131 indicated by the rectangular frame 145 and the vertices 134 of the patch image 132 indicated by the rectangular frame 146 are listed, and the correspondence between these lists is provided in the pair information. A relationship may be indicated.
- the identification information of vertices may be arranged for each group, and an arrangement in which the groups are arranged for each pair may be indicated.
- the group break position in the arrangement of the vertex identification information may be indicated by a parameter indicating the number of vertices forming the group.
- the value of this parameter may be indicated for each group, may be indicated for each of a predetermined number of groups equal to or greater than two, or may be indicated for all groups.
- the number of vertices forming a group may be variable. That is, the number of vertices forming a group does not have to be common to all pairs.
- the group delimiter position in the vertex identification information array may be indicated by inserting a flag indicating the group delimiter (for example, a 1-bit flag "0", etc.).
- This flag is information known in advance to the decoder.
- a decoder that has acquired pair information can easily grasp which vertices form a group by detecting the flag from the array of vertex identification information. That is, in this case as well, the decoder does not need to know in advance the number of vertices forming each group. Also, the number of vertices forming a group may be variable.
- each of the vertices that make up each pair can be specified for each group. Therefore, based on this pair information, the decoder can more easily grasp each vertex that constitutes each pair.
- pair information information indicating vertices (or edges) forming a pair is arbitrary.
- the pair information may indicate pairs using identification information corresponding to the state of each vertex in the object before encoding.
- This identification information may be any information.
- this identification information may be information assigned to all vertices contained in the mesh.
- this identification information may be information assigned to each vertex independently for each patch.
- the pair information may further include patch identification information (patch ID), as shown in the 18th row from the top of the table shown in FIG.
- the decoder can identify each vertex among the vertices contained in the mesh by combining the patch ID and the intra-patch vertex ID.
- the patch ID may be transmitted for each pair as shown in the 19th row from the top of the table shown in FIG. That is, the pair information may include patch identification information for each pair. That is, in this case, patch IDs are transmitted for each vertex that constitutes each pair. Therefore, for each vertex that constitutes each pair, it is indicated to which patch the vertex belongs.
- the patch ID may be transmitted for each of a plurality of pairs. That is, the pair information may include patch identification information for each of a plurality of pairs. That is, in this case, a patch ID is transmitted for each vertex that constitutes some pairs.
- the patch ID transmitted immediately before may be applied.
- the patch ID may be transmitted only when the applied patch ID changes, and transmission of the patch ID may be omitted for pairs to which the same patch ID as the previous pair is applied. By doing so, it is possible to suppress an increase in code amount and an increase in encoding efficiency.
- this identification information may be information assigned to each vertex located on the boundary of the patch.
- the encoding unit may further encode a list of vertices located on the boundary of the patch (boundary vertex list), as shown in the 22nd row from the top of the table shown in FIG.
- boundary vertex list a list of vertices located on the boundary of the patch.
- the pair information may indicate the pair using the absolute value of the identification information.
- the pair information may indicate pairs using relative values of this identification information from the identification information of other vertices.
- the information amount (code amount) of the pair information can be reduced compared to the case where the pairs are indicated using the identification information of each vertex that constitutes the pair. That is, it is possible to suppress reduction in the efficiency of encoding pair information.
- the pair information indicates pairs based on the respective coordinates of a plurality of vertices in the two-dimensional plane of the image instead of the identification information described above. good too.
- the pair information may indicate the pair using the UV coordinates of each vertex that constitutes the pair.
- patches A to D have UV coordinate vertices #0 to #8, respectively, as shown in the table in FIG. A to D indicate patch IDs, and #0 to #8 indicate in-patch IDs.
- the UV coordinates of vertex #0 of patch A are (u00, v00), and the UV coordinates of vertex #1 of patch A are (u10, v10).
- the UV coordinates of vertex #0 of patch B are (u01, v01), and the UV coordinates of vertex #1 of patch B are (u11, v11). It is assumed that vertex #0 of patch A and vertex #0 of patch B form a pair. It is also assumed that vertex #1 of patch A and vertex #1 of patch B form a pair.
- the pairs formed by these vertices may be indicated using their UV coordinates as (u00, v00), (u01, v01).
- the decoder can more easily grasp the UV coordinates of each vertex that constitutes the pair.
- the pair information may indicate pairs using differences in UV coordinates (relative coordinates (du, dv)).
- the pair information uses the UV coordinates (u, v) of the reference vertex, which is one of the vertices that make up the pair, and the difference between the UV coordinates (relative coordinates (du, dv)), such as (u, v ), (du, dv) to indicate pairs.
- the amount of information (code amount) of the pair information can be reduced compared to the case where the pairs are indicated using the UV coordinates of the vertices forming the pairs. That is, it is possible to suppress reduction in the efficiency of encoding pair information.
- the pair information may indicate the relative coordinates of a vertex different from the reference vertex with respect to the coordinates of the reference vertex among the plurality of vertices. .
- Relative coordinates of a vertex different from the reference vertex may be indicated with reference to the position of the relative vector.
- the vertex #0 of the patch A is moved to the position when it is assumed to be the vertex of the patch B.
- FIG. vertex #0 of patch A is moved from (u00, v00) to vector 156 .
- the relative coordinates of the vertex #0 of patch B viewed from the post-movement position (tip of vector 156), that is, vector 157 may be (du, dv). That is, (du, dv) may be expressed as the addition result of vector AB (that is, vector 156) and vector 157 instead of using vector 155.
- the posture of the patch may be corrected. Any method can be used to correct the posture of the patch.
- the patch may be vertically flipped, horizontally flipped, or rotated by a predetermined angle.
- This posture correction is performed so that the absolute values of du and dv are small.
- the posture of patch B may be corrected so that the position of vertex #0 of patch B approaches the position of vertex A of patch A.
- widthB indicates the width of patch B (horizontal length in the drawing).
- Relative coordinates of a vertex different from the reference vertex in the second patch whose orientation is corrected with reference to the position of the relative vector may be indicated.
- vector AB is used to move vertex #0 of patch A from (u00, v00) to vector 161. Then, the relative coordinates of the vertex #0 of patch B viewed from the position after the movement (tip of vector 161), ie vector 162, may be (du, dv). That is, (du, dv) may be expressed as the addition result of vector AB (that is, vector 161) and vector 162 instead of using vector 163.
- Relative coordinates of a vertex different from the reference vertex of the pair to be processed may be indicated with reference to the coordinates.
- vertex #1 of patch A and vertex #1 of patch B which form a pair, are arranged as shown in FIG. This pair is different from the pair formed by the vertex #0 of patch A and the vertex #0 of patch B described above.
- vertex #1 of patch A is the reference vertex
- (u, v) (u10, v10).
- vertex #0 of patch A is moved. That is, the position of the vertex #1 of the patch A is moved according to the positional relationship between the vertex #0 of the patch A and the vertex #0 of the patch B.
- vertex #1 of patch A moves as indicated by vector 164 .
- the position of vertex #1 of patch A thus moved (the tip of vector 164), that is, the vertex of patch A reflecting the positional relationship between vertex #0 of patch A and vertex #0 of patch B.
- the relative coordinates of vertex #0 of patch B viewed from position #1, that is, vector 165 may be (du, dv). That is, (du, dv) may be expressed as the addition result of vector 164 and vector 165 .
- the pair information contains information only about some pairs. In other words, information about the remaining pairs is omitted. Therefore, the corrector of the decoder restores the omitted information based on the transmitted pair information.
- the transmission order of pairs in this case is the same as the case where the pair information indicates only the pairs formed by the vertices included in the pair information described above in ⁇ Transmission order of pairs>.
- the contents of the pair information in this case are the above-mentioned ⁇ contents of pair information>, ⁇ ID>, and ⁇ UV coordinates>, when the pair information indicates only the pair composed of the vertices included in the pair information. is similar to
- the combination of the vertices located at both ends of the first edge and the vertices located in the middle of the first edge, and the combination of the vertices located at both ends of the second edge It may also include information indicating the correspondence relationship between combinations of vertices positioned midway between the vertices and the second edge. That is, the pair information may include information indicating pairs formed by end points of edges and pairs formed by midpoints, and information on pairs formed by other vertices may be omitted.
- patch 170A has vertices 171A, 172A, and 173A at its boundaries.
- patch 170B has vertices 171B, 172B, and 173B at its boundaries.
- Vertices 171A and 171B form a pair
- vertices 172A and 172B form a pair
- vertices 173A and 173B form a pair. That is, in the mesh, patches 170A and 170B are adjacent to each other at the boundary between vertices 171A and 173A (boundary between vertices 171B and 173B).
- the boundary between vertex 171A and vertex 173A constitutes an edge shared by patch 170A and patch 170B. That is, the vertex 171A and the vertex 173A (or the vertex 171B and the vertex 173B) are the end points of the edge. Also, the vertex 172A (or vertex 172B) is the midpoint of the edge.
- vertices other than vertex 172A can exist on the boundary (edge) between vertex 171A and vertex 173A, as in the example shown in FIG. 13B.
- a boundary (edge) between vertex 171B and vertex 173B may have vertices other than vertex 172B, as in the example shown in FIG. 13B.
- the pair information stores information about the pairs composed of the six vertices described above.
- information on a pair formed by vertices 171A and 171B, a pair formed by vertices 172A and 172B, and a pair formed by vertices 173A and 173A is stored in the pair information.
- Information on pairs formed by other vertices indicated by dotted circles in FIG. 13B is omitted.
- the pair information can be obtained more easily than when information is included about pairs formed by all vertices of edges. code amount can be reduced. That is, it is possible to suppress reduction in the efficiency of encoding pair information.
- any of the vertices between both end points (also called end points) of the edge may be set as the intermediate point.
- the correction unit of the decoder not only obtains information on these three pairs from the pair information, but also restores (interpolates) the other vertices existing on the edge from the end points and intermediate points of the edge, and restores (interpolates) the other vertices Obtain information about the pairs formed by
- the scanning direction of the vertices located on the boundary in the patch is fixed, the first vertex of the edge in that scanning order is the starting point, and the last vertex of the edge is the ending point. Then, in the pair information, an edge is expressed as (start point, end point) and a pair is indicated for each edge.
- the scanning order is assumed to be the direction of the arrow (counterclockwise).
- the boundary (edge) on the left side of the drawing between the vertex assigned identification information "15" and the vertex assigned identification information "8" in patch 181 is expressed as (15, 8). be. That is, the vertex to which the identification information "15" is assigned is the starting point of the edge, and the vertex to which the identification information "8" is assigned is the end point of the edge.
- the pair information includes information about the pair formed by this edge (15, 8). Information about pairs formed by other vertices 182 existing on the edge is omitted.
- the boundary (edge) on the right side of the figure between the vertex assigned identification information "15" and the vertex assigned identification information "8" in patch 183 is expressed as (8, 15). be. That is, the vertex to which the identification information "8" is assigned is the starting point of the edge, and the vertex to which the identification information "15" is assigned is the end point of the edge. Pair information includes information about the pair that this (8, 15) constitutes. Information about pairs formed by other vertices 184 existing on the edge is omitted.
- pair information expresses a pair consisting of (start point 1, end point 1) and (start point 2, end point 2) as (start point 1, end point 1), (start point 2, end point 2).
- start point 1, end point 1 end point 1
- start point 2, end point 2 end point 2
- the pair information includes flag information indicating the combination of the start point and end point in the pair. For example, if this flag is false (eg, value "0"), it indicates that the pair correspondence is the same as the scan direction, ie, viewpoints form a pair and endpoints form a pair. Also, when this flag is true (for example, when the value is "1"), it indicates that the pair correspondence is opposite to the scanning direction, that is, the viewpoint and the end point form a pair. For example, pair information may be expressed as (start point 1, end point 1), (start point 2, end point 2), "flag value".
- the boundary on the right side of the drawing between the vertex assigned identification information "2" and the vertex assigned identification information "5" of patch 190A and the vertex assigned identification information "15" of patch 190B. and the vertex to which identification information "8" is assigned constitutes an edge shared by patch 190A and patch 190B. That is, as indicated by the dotted double-headed arrow 193, the vertex assigned the identification information "2" and the vertex assigned the identification information "15” form a pair, and as indicated by the dotted double-headed arrow 194, Assume that a vertex to which identification information "5" is assigned and a vertex to which identification information "8" is assigned form a pair.
- the edge of patch 190A starts at the vertex to which identification information "5" is assigned, ends at the vertex to which identification information "2" is assigned, and (5 ,2).
- the edge of patch 190B is expressed as (15, 8), with the vertex to which identification information "15” is assigned as the starting point and the vertex to which identification information "8” is assigned as the ending point.
- the pair indicated by the dotted double-headed arrow 193 is composed of the start point and the end point.
- a pair indicated by a dotted double-headed arrow 194 also consists of a start point and an end point. That is, the flag for this edge pair is true (value "1"). Therefore, in the pair information, this pair of edges may be expressed as (5,2),(15,8),1.
- the boundary on the right side of the figure between the vertex to which identification information "5" and the vertex to which identification information "21” are assigned in patch 190A and the vertex to which identification information "24” is assigned in patch 190C. ” and the vertex to which identification information “20” is assigned constitutes an edge shared by patch 190A and patch 190C. That is, as indicated by a solid double-headed arrow 195, a vertex assigned identification information "5" and a vertex assigned identification information "24” form a pair, and as indicated by a solid double-headed arrow 196, Assume that a vertex to which identification information "21” is assigned and a vertex to which identification information "20” is assigned form a pair.
- the edge of patch 190A starts at the vertex to which identification information "21” is assigned, ends at the vertex to which identification information "5" is assigned, and (21 ,5).
- the edge of patch 190C is expressed as (20, 24) with the vertex assigned identification information "20" as the starting point and the vertex assigned identification information "24” as the ending point. That is, the pair indicated by the solid line double-headed arrow 195 is composed of the end points.
- a pair indicated by a solid double-headed arrow 196 is formed by starting points. That is, the flag for this edge pair is false (value "0"). Therefore, in the pair information, this pair of edges may be expressed as (21,5),(20,24),0.
- the pair information contains only the information on the pair formed by the start point and the end point of the edge and the flag indicating the correspondence of the pair, so that the information on the pair formed by all the vertices of the edge can be obtained. It is possible to reduce the code amount of the pair information compared to the case where it is included. That is, it is possible to suppress reduction in the efficiency of encoding pair information.
- the correction unit of the decoder not only obtains these two pairs of information for each edge from the pair information, but also restores (interpolates) other vertices existing on the edge from the start point and end point of the edge, Obtain information about the pairs formed by the vertices of .
- the interpolation method for this vertex is arbitrary.
- the correction unit of the decoder may perform vertex interpolation based on the occupancy image.
- the correction unit of the decoder identifies vertices on the boundary of the patch using the occupancy image obtained by decoding, and acquires the UV coordinates of the vertices.
- the correcting unit of the decoder identifies a boundary connecting the identified vertices based on the connectivity.
- the correction unit of the decoder searches for vertices along the specified boundaries from the intermediate points toward the endpoints. For example, in FIG. 16, gray polygons are patches, vertex 201 is the middle point, and vertices 202 and 203 are end points.
- the correction unit of the decoder searches for vertices along the specified boundary from the midpoint vertex 201 toward the end points 202 and 203, as indicated by the arrows. Through this search, vertices indicated by white circles in the figure are detected.
- the correction unit of the decoder performs pairing processing for the detected vertices.
- the correcting unit of the decoder can perform pairing processing for all vertices present on the edge based on the pair information including information only on pairs of end points and a single intermediate point. Therefore, the reduction in coding efficiency can be suppressed more than when the pair information includes information about pairs formed by all vertices of edges.
- the correction unit of the decoder scans in the specified scan direction from the start point to the end point. , search for vertices along the specified boundaries.
- the gray polygon is the patch
- the vertex 211 is the starting point
- the vertex 212 is the ending point.
- the correction unit of the decoder searches for vertices along the specified boundary in the specified scanning direction from the starting vertex 211 toward the ending vertex 212 as indicated by the arrows.
- the determination of whether or not it is the designated scan direction is made based on the connectivity information of the boundary polygons.
- the correcting unit of the decoder searches for the side (side 213 in this case) that matches the scan direction of the boundary polygon, out of the sides 213 and 214 connected to the vertex 211 that is the starting point. Through this search, vertices indicated by white circles in the figure are detected. The correction unit of the decoder performs pairing processing for the detected vertices.
- the correcting unit of the decoder detects all the vertices existing in the edge based on the pair information including the information only on the pair of the start point and the end point and the flag information indicating the combination of the start point and the end point in the pair. pairing process can be performed. Therefore, the reduction in coding efficiency can be suppressed more than when the pair information includes information about pairs formed by all vertices of edges.
- the correcting unit of the decoder may perform the interpolation of the vertices based on the connectivity information instead of the occupancy image, as shown in the tenth row from the top of the table shown in FIG.
- the correcting unit of the decoder identifies polygons that do not have adjacent polygons (triangles) in the patch as boundary polygons based on the connectivity.
- the boundary of the patch is identified from the identified boundary polygons.
- the correction unit of the decoder searches for vertices from the midpoint to the end points along the identified patch boundary, as described above, and performs pairing processing for the detected vertices.
- the method of searching for vertices is the same as the example described above with reference to FIG. 16 or FIG.
- a correction unit of the decoder performs pairing processing based on the pair information. Any vertex matching method can be used in this pairing process.
- One of the vertices of the second patch may be deleted, and the connection of the deleted vertex may be converted to the connection of the other vertex.
- identification information "1”, identification information "2”, or identification information "3” is assigned to the three vertices of the polygon 221. It is also assumed that identification information “4”, identification information “5”, or identification information “6” is assigned to three vertices of polygon 222 . Then, according to the pair information, the vertex to which the identification information "3" is assigned and the vertex to which the identification information "6” is assigned form a pair, and the vertex to which the identification information "2" is assigned and the vertex to which the identification information "6” is assigned form a pair. 4” are assigned to form a pair.
- the correction unit of the decoder first sets the position of a single vertex after conversion based on the pair information. Then, the correction unit of the decoder updates the vertex information, leaves one of the vertices forming the pair, and deletes the other vertices. For example, the correcting unit of the decoder deletes the vertex to which the identification information "6" is assigned and the vertex to which the identification information "4" is assigned, as shown in FIG. 18A. The correction unit of the decoder updates the coordinates of the remaining vertices as necessary.
- the correction unit of the decoder updates the connectivity and converts the connections (edges) with the deleted vertices to the connections (edges) with the remaining vertices. For example, as shown in FIG. 18B, the correction unit of the decoder replaces the connection between the vertex to which the identification information "6" is assigned and the vertex to which the identification information "5" is assigned with the identification information "3". is converted into a connection connecting the vertex assigned with and the vertex assigned identification information "5". Similarly, the correcting unit of the decoder replaces the connection between the vertex to which the identification information "4" is assigned and the vertex to which the identification information "5" is assigned and the vertex to which the identification information "2" is assigned. 5" is converted into a connection connecting the vertices to which "5" is assigned.
- the polygons 221 and 222 are adjacent to each other as shown in FIG. 18B. Therefore, the crack between polygon 221 and polygon 222 is eliminated.
- the decoder can more reliably eliminate cracks. That is, it is possible to more reliably suppress the occurrence of cracks. Therefore, reduction in quality of 3D data due to encoding and decoding can be suppressed.
- One of the vertices and the vertices of the second patch may be moved to the position of the other vertex.
- the correction unit of the decoder first sets the position of the overlap point based on the pair information. Then, the correction unit of the decoder updates the vertex information, and updates the coordinates of the multiple vertices forming the pair to the coordinates of the overlapping point. For example, as shown in FIG. 19A, the correcting unit of the decoder sets the coordinates of the vertex to which the identification information "3" is assigned and the coordinates of the vertex to which the identification information "6" is assigned to be the same. Convert to coordinates. As a result, both vertices become overlapping points, as shown in FIG. 19B.
- the correction unit of the decoder converts the coordinates of the vertex assigned with the identification information "2" and the coordinates of the vertex assigned with the identification information "4" into the same coordinates. As a result, both vertices become overlapping points, as shown in FIG. 19B.
- the polygons 221 and 222 are adjacent to each other as shown in FIG. 19B. Therefore, the crack between polygon 221 and polygon 222 is eliminated.
- the decoder can more reliably eliminate cracks. That is, it is possible to more reliably suppress the occurrence of cracks. Therefore, reduction in quality of 3D data due to encoding and decoding can be suppressed.
- a polygon may be formed that includes the vertices and the vertices of the second patch.
- the correction unit of the decoder detects vertices 231, 233, 232, and vertex 234 to form a new polygon.
- the correction unit of the decoder updates the connectivity to connect each of the vertices 231, 233, 232, and 234. That is, as shown in FIG. 20B, the correcting unit of the decoder divides a polygon 241 having vertices 231, 232 and 233 as vertices and a polygon 242 having vertices 232, 234 and 233 as vertices. to generate At that time, the correction unit of the decoder sets the order of the vertices of the connectivity so that the boundary polygon and the surface face the same direction.
- the correction unit of the decoder pastes the texture onto the added polygons.
- This texture may be of any type, but it is possible to suppress the reduction in quality by making it less inconsistent with the texture of the surrounding polygons.
- the correcting unit of the decoder may duplicate (copy) the color of the surrounding boundary polygons and apply a texture to the added polygons.
- the correction unit of the decoder may obtain a (weighted) average of the colors of a plurality of surrounding boundary polygons, and apply the derived texture to the added polygons.
- a dedicated texture to be pasted on the added polygon may be transmitted from the encoder to the decoder. A corrector of the decoder may then apply the transmitted texture to the added polygons.
- the correction unit of the decoder performs the pairing process based on the pair information in this manner, so that the decoder can more reliably eliminate the cracks between the polygons 221 and 222 . That is, it is possible to more reliably suppress the occurrence of cracks. Therefore, reduction in quality of 3D data due to encoding and decoding can be suppressed.
- the correction unit of the decoder should generate polygons using three vertices each, as shown in C of FIG.
- the correcting unit of the decoder may select and apply one of the above multiple methods.
- the selection method is arbitrary.
- the correction unit of the decoder converts the plurality of vertices that make up the pair into a single can be transformed into vertices of Further, for example, when there is an overlapping point in a state before encoding and it is desired to hold the overlapping point, the correcting unit of the decoder may set a plurality of vertices forming a pair as the overlapping point. Furthermore, when subjective evaluation is better by constructing a mesh than by moving points, the correcting unit of the decoder may add polygons using a plurality of vertices forming a pair. Furthermore, information specifying the pairing process method may be transmitted from the encoder to the decoder. For example, this information may be transmitted in arbitrary units such as sequence units, list units, and pair units.
- ⁇ Coordinate determination method> As described above, in the pairing process, when vertices forming a pair are transformed into one vertex, any method can be used to determine the coordinates of the transformed vertices.
- the 16th row from the top of the table shown in FIG. may be set at any position among the plurality of vertices that constitute the .
- another vertex may be moved to one of the positions of the multiple vertices forming the pair.
- the method of selecting the vertex to which the other vertex should be moved is arbitrary.
- information indicating the vertex selected as the movement destination may be transmitted from the encoder to the decoder. That is, this information indicates one of the vertices before transformation.
- the correction unit of the decoder may set the position of a single vertex after conversion based on information indicating one of the plurality of vertices before conversion. That is, the decoder executes the pairing process so as to move another vertex to the position of the vertex specified by the information.
- the correction unit of the decoder selects the vertices to be moved according to the specification of the encoder, so that the decoder can suppress the change in the coordinates adopted depending on the order of reconstruction.
- the correction unit of the decoder changes the position of the vertex after conversion into a single vertex to the position of a plurality of vertices before conversion (a pair of vertices). It may be set to the (weighted) average position of the coordinates of each of the vertices that constitute it.
- the method of determining the coordinates of the overlapping points is arbitrary.
- the method of selecting the vertex is arbitrary.
- information indicating the vertex selected as the position of the overlapping point may be transmitted from the encoder to the decoder. That is, this information indicates one of the vertices before transformation.
- the correcting unit of the decoder may set the position of the overlapping point based on information indicating one of the plurality of vertices before conversion.
- the correction unit of the decoder executes pairing processing so as to form overlapping points at the positions of the vertices specified by the information.
- the encoder generates this information based on the mesh in the state before encoding and transmits this information to the decoder, and the decoder sets the overlapping points based on this information. can be done. As a result, the decoder can more easily reproduce the state before the crack occurred.
- the pair information may be transmitted for all of the vertices (or edges) forming the pair, or may be transmitted for some of the vertices (or edges).
- the pair information By transmitting the pair information only for some vertices, an increase in the code amount of the pair information can be suppressed. That is, it is possible to suppress reduction in the efficiency of encoding pair information.
- pair information may be transmitted only for pairs that could not be corrected by other correction methods such as zipper ring.
- the encoder should have a function of decoding the coded data of the 3D data, identifying locations where correction is not possible by performing zipper ring, etc., and generating pair information for the identified locations. .
- FIG. 21 is a block diagram showing an example of a configuration of an encoding device that is an embodiment of an information processing device to which the present technology is applied.
- the encoding device 300 shown in FIG. 21 is a device that extends VPCC and encodes 3D data using Mesh as a video frame by a two-dimensional image encoding method. At that time, the encoding device 300 performs encoding by applying a single method or a combination of multiple methods among the various methods of the present technology described above.
- FIG. 21 shows the main components such as the processing units and data flow, and what is shown in FIG. 21 is not necessarily all.
- the encoding apparatus 300 may include processing units not shown as blocks in FIG. 21, or processes and data flows not shown as arrows or the like in FIG.
- the encoding device 300 includes a mesh voxelization unit 311, a patch generation unit 312, a pair information generation unit 313, a geometry image generation unit 314, an occupancy image generation unit 315, a pair information encoding unit 316, a meta It has an information encoding unit 317 , a 2D encoding unit 318 , a 2D encoding unit 319 , a 2D encoding unit 320 and a multiplexing unit 321 .
- Geometry image generator 314 and occupancy image generator 315 may be considered image generator 331 in this disclosure.
- the pair information encoding unit 316, the meta information encoding unit 317, the 2D encoding unit 318, the 2D encoding unit 319, and the 2D encoding unit 320 may be regarded as the encoding unit 332 in this disclosure.
- the pair information generator 313 may be simply referred to as a generator.
- the pair information encoding unit 316 may be simply referred to as an encoding unit.
- Connectivity 351, vertex information 352, UV map 353, and texture 354 are supplied to the encoding device 300 as 3D data using Mesh.
- the connectivity 351 is the same information as the connectivity 32 (Fig. 2), and indicates each vertex forming a polygon (each vertex connected to each other) for each polygon.
- the vertex information 352 is information similar to the vertex information 31 (FIG. 2), and indicates the coordinates of each vertex forming the mesh.
- the UV map 353 is the same information as the UV map 34 (FIG. 2), and indicates the position of each vertex on the texture image.
- the texture 354 is the same information as the texture image 33 (FIG. 2), and indicates the texture applied to the polygons. That is, the texture 354 is information including texture images.
- the mesh voxelization unit 311 acquires vertex information 352 supplied to the encoding device 300 .
- the mesh voxelization unit 311 converts the coordinates of each vertex included in the acquired vertex information 352 into a voxel grid.
- the mesh voxelization unit 311 supplies the converted voxel grid vertex information 352 to the patch generation unit 312 .
- the patch generation unit 312 acquires the connectivity 351 and the UV map 353 supplied to the encoding device 300.
- the patch generation unit 312 also acquires voxel grid vertex information 352 supplied from the mesh voxelization unit 311 .
- the patch generator 312 generates geometry patches based on the information.
- the patch generation unit 312 also projects the generated geometric patch onto the projection plane to generate a patch image.
- the patch generation unit 312 supplies information such as the generated patch image, connectivity 351, vertex information 352, and UV map 353 to the pair information generation unit 313.
- the patch generation unit 312 also supplies information such as the connectivity 351 and the UV map 353 to the meta information encoding unit 317 as meta information.
- the patch generation unit 312 supplies the generated patch image to the geometry image generation unit 314 .
- the patch generation unit 312 also supplies the generated patch image to the occupancy image generation unit 315 .
- the pair information generation unit 313 acquires information such as the patch image supplied from the patch generation unit 312, the connectivity 351, the vertex information 352, and the UV map 353. Based on the information, the pair information generation unit 313 generates pair information indicating a pair composed of one vertex or a plurality of vertices that were overlapping points in the mesh. This pair information is ⁇ 2. Pair Information Transmission> section (including ⁇ Generation of Pair Information> to ⁇ Application Examples>), etc., may be included. The pair information generation unit 313 generates this pair information as described in the ⁇ Generation of pair information> section and the like.
- the pair information generating unit 313 divides the mesh representing the three-dimensional structure object into at least a first patch and a second patch, arranges them in a single image, and divides the mesh into a single image. is paired with at least one vertex of the second patch at the same position as the vertex of the first patch in the object before encoding.
- this pair information may be information indicating only pairs formed by vertices included in the pair information.
- This pair information is related to the first edge of the first patch and the second edge of the second patch respectively corresponding to the boundary between the first patch and the second patch in the object before encoding. Shows a correspondence relationship between a combination of vertices located at both ends of an edge and a vertex located in the middle of a first edge, and a combination of vertices located at both ends of a second edge and a vertex located in the middle of the second edge. It may contain information.
- This pair information is related to the first edge of the first patch and the second edge of the second patch respectively corresponding to the boundary between the first patch and the second patch in the object before encoding, and at the time of decoding Information indicating the correspondence relationship between the scanning direction for the first edge and the scanning direction for the second edge at the time of decoding may be included.
- This pair information may indicate that the plurality of vertices of the first patch and the corresponding plurality of vertices of the second patch are each paired.
- This pair information may include a parameter indicating the number of vertices that make up the pair.
- This pair information may include information indicating a group of vertices in the first patch and a group of vertices in the second patch.
- This pair information may indicate pairs using identification information corresponding to the state of each vertex in the object before encoding.
- This pair information may indicate pairs based on each coordinate of a plurality of vertices on the two-dimensional plane of the image.
- This pair information may indicate the relative coordinates of a vertex that differs from the reference vertex with respect to the coordinates of the reference vertex among the plurality of vertices.
- This pair information indicates the relative coordinates of a vertex different from the reference vertex based on the position of the relative vector between the first patch and the second patch with reference to the coordinates of the reference vertex among the plurality of vertices.
- This pair information is the second patch in a posture corrected state with reference to the position of the relative vector between the first patch and the second patch with reference to the coordinates of the reference vertex among the plurality of vertices. , relative coordinates of a vertex different from the reference vertex may be indicated.
- This pair information indicates the relative coordinates of the vertex that differs from the reference vertex of the pair to be processed, based on the relative coordinates of the vertex that differs from the reference vertex with respect to the coordinates of the reference vertex among the multiple vertices of the other pair. You may do so.
- the pair information generation unit 313 supplies the generated pair information to the pair information encoding unit 316.
- the image generation unit 331 performs processing related to generation of images (frame images).
- the geometry image generator 314 acquires patch images supplied from the patch generator 312 .
- a geometry image generator 314 arranges the patch images on a two-dimensional plane to generate a geometry image.
- the geometry image generator 314 supplies the 2D encoder 318 as geometry video frames.
- the occupancy image generation unit 315 acquires patch images supplied from the patch generation unit 312 .
- the occupancy image generator 315 uses the patch image to generate an occupancy image.
- the occupancy image generator 315 supplies the generated occupancy image to the 2D encoder 319 .
- the encoding unit 332 performs processing related to encoding.
- a pair information encoding unit 316 (encoding unit) acquires pair information supplied from the pair information generation unit 313 .
- the pair information encoding unit 316 encodes the acquired pair information using a predetermined encoding method to generate encoded data of the pair information. This encoding method is arbitrary.
- the pair information encoding unit 316 supplies the generated pair information encoded data to the multiplexing unit 321 .
- the meta information encoding unit 317 acquires the meta information (including the connectivity 351 and the UV map 353) supplied from the patch generation unit 312.
- the meta information encoding unit 317 encodes the acquired meta information to generate encoded data of the meta information.
- the meta information encoding unit 317 supplies the generated encoded data of the meta information to the multiplexing unit 321 .
- the 2D encoding unit 318 acquires the geometry image supplied from the geometry image generation unit 314.
- the 2D encoding unit 318 encodes the acquired geometry image using a 2D image encoding method to generate encoded data of the geometry image.
- the 2D encoding unit 318 supplies the generated encoded data of the geometry image to the multiplexing unit 321 .
- the 2D encoding unit 319 acquires the occupancy image supplied from the occupancy image generation unit 315.
- the 2D encoding unit 319 encodes the acquired occupancy image using a 2D image encoding method to generate encoded data of the occupancy image.
- the 2D encoding unit 319 supplies the encoded data of the generated occupancy image to the multiplexing unit 321 .
- the 2D encoding unit 320 acquires the texture 354 supplied to the encoding device 300.
- the 2D encoding unit 320 encodes the acquired texture 354 (that is, the texture image) using a 2D image encoding method to generate encoded data of the texture image.
- the 2D encoding unit 320 supplies the encoded data of the generated texture image to the multiplexing unit 321 .
- the multiplexing unit 321 acquires encoded data of pair information supplied from the pair information encoding unit 316 . Also, the multiplexing unit 321 acquires encoded data of meta information supplied from the meta information encoding unit 317 . Furthermore, the multiplexing unit 321 acquires encoded data of the geometry image supplied from the 2D encoding unit 318 . Also, the multiplexing unit 321 acquires the encoded data of the occupancy image supplied from the 2D encoding unit 319 . Furthermore, the multiplexing unit 321 acquires encoded data of the texture image supplied from the 2D encoding unit 320 . The multiplexing unit 321 multiplexes the obtained information to generate one bitstream. The multiplexing unit 321 outputs the generated bitstream to the outside of the encoding device 300 .
- each processing unit may be configured by a logic circuit that implements the above processing.
- each processing unit has, for example, a CPU (Central Processing Unit), ROM (Read Only Memory), RAM (Random Access Memory), etc., and by executing programs using these, the above processing is realized. You may do so.
- each processing unit may have both configurations, implement some of the above-described processes by a logic circuit, and implement others by executing a program.
- the configuration of each processing unit may be independent of each other.
- another processing unit may implement the above-described processing by executing both a logic circuit and a program.
- the mesh voxelization unit 311 converts the coordinates of each vertex included in the vertex information 352 into a voxel grid in step S301, thereby converting the mesh into a voxel grid.
- step S302 the patch generation unit 312 generates patches using the vertex information 352 or the like that has been converted into a voxel grid in step S301, projects the generated patches onto the projection plane, and generates patch images.
- the pair information generation unit 313 appropriately uses information such as the connectivity 351, the voxel-grid vertex information 352 in step S301, the UV map 353, etc. Generate pair information indicating a pair configured by vertices. This pair information is ⁇ 2. Pair Information Transmission> section (including ⁇ Generation of Pair Information> to ⁇ Application Examples>), etc., may be included. The pair information generation unit 313 generates this pair information as described in the ⁇ Generation of pair information> section and the like.
- the pair information generating unit 313 divides the mesh representing the three-dimensional structure object into at least a first patch and a second patch, arranges them in a single image, and divides the mesh into a single image. is paired with at least one vertex of the second patch at the same position as the vertex of the first patch in the object before encoding.
- this pair information may be information indicating only pairs formed by vertices included in the pair information.
- This pair information is related to the first edge of the first patch and the second edge of the second patch respectively corresponding to the boundary between the first patch and the second patch in the object before encoding. Shows a correspondence relationship between a combination of vertices located at both ends of an edge and a vertex located in the middle of a first edge, and a combination of vertices located at both ends of a second edge and a vertex located in the middle of the second edge. It may contain information.
- This pair information is related to the first edge of the first patch and the second edge of the second patch respectively corresponding to the boundary between the first patch and the second patch in the object before encoding, and at the time of decoding Information indicating the correspondence relationship between the scanning direction for the first edge and the scanning direction for the second edge at the time of decoding may be included.
- This pair information may indicate that the plurality of vertices of the first patch and the corresponding plurality of vertices of the second patch are each paired.
- This pair information may include a parameter indicating the number of vertices that make up the pair.
- This pair information may include information indicating a group of vertices in the first patch and a group of vertices in the second patch.
- This pair information may indicate pairs using identification information corresponding to the state of each vertex in the object before encoding.
- This pair information may indicate pairs based on each coordinate of a plurality of vertices on the two-dimensional plane of the image.
- This pair information may indicate the relative coordinates of a vertex that differs from the reference vertex with respect to the coordinates of the reference vertex among the plurality of vertices.
- This pair information indicates the relative coordinates of a vertex different from the reference vertex based on the position of the relative vector between the first patch and the second patch with reference to the coordinates of the reference vertex among the plurality of vertices.
- This pair information is the second patch in a posture corrected state with reference to the position of the relative vector between the first patch and the second patch with reference to the coordinates of the reference vertex among the plurality of vertices. , relative coordinates of a vertex different from the reference vertex may be indicated.
- This pair information indicates the relative coordinates of the vertex that differs from the reference vertex of the pair to be processed, based on the relative coordinates of the vertex that differs from the reference vertex with respect to the coordinates of the reference vertex among the multiple vertices of the other pair. You may do so.
- step S304 the geometry image generation unit 314 generates a geometry image based on the patch image generated in step S302 and the UV map 353.
- step S305 the occupancy image generator 315 generates an occupancy image corresponding to the geometry image generated in step S304.
- step S306 the pair information encoding unit 316 (encoding unit) encodes the pair information generated in step S303 using a predetermined encoding method to generate encoded data of pair information.
- This encoding method is arbitrary.
- step S307 the meta information encoding unit 317 encodes meta information (connectivity 351, UV map 353, etc.) to generate encoded data of meta information.
- step S308 the 2D encoding unit 318 encodes the geometry image generated in step S304 to generate encoded data of the geometry image.
- step S309 the 2D encoding unit 319 encodes the occupancy image generated by the occupancy image generation unit 315 in step S305 to generate encoded data of the occupancy image.
- step S310 the 2D encoding unit 320 encodes the texture 354 (that is, the texture image) to generate encoded data of the texture image.
- step S311 the multiplexing unit 321 generates the coded data of the pair information generated in step S306, the coded data of the meta information generated in step S307, the coded data of the geometry image generated in step S308, and the coded data of the geometry image generated in step S308.
- the coded data of the occupancy image generated in S309 and the coded data of the texture image generated in step S310 are multiplexed to generate one bitstream.
- the multiplexing unit 321 outputs the generated bitstream to the outside of the encoding device 300 .
- step S311 When the process of step S311 ends, the encoding process ends.
- the encoding apparatus 300 has the configuration described above, executes the various processes described above, and transmits the pair information to the decoder. can be suppressed, and pairing processing can be performed between more appropriate vertices. Therefore, the encoding device 300 can suppress deterioration of the quality of 3D data due to encoding and decoding.
- FIG. 23 is a block diagram showing an example of a configuration of a decoding device which is one aspect of an image processing device to which the present technology is applied.
- the decoding device 400 shown in FIG. 23 converts encoded data encoded by an encoding method for two-dimensional images into 3D data using a mesh by extending VPCC as a video frame, , and generates (reconstructs) 3D data using mesh.
- the decoding device 400 applies a single method or a combination of a plurality of methods among the various methods of the present technology described above to decode the encoded data and reconstruct the 3D data. do.
- FIG. 23 shows main elements such as the processing unit and data flow, and what is shown in FIG. 23 is not necessarily all. That is, decoding device 400 may include processing units not shown as blocks in FIG. 23, or processes and data flows not shown as arrows or the like in FIG.
- the decoding device 400 includes a demultiplexing unit 411, a pair information decoding unit 412, a meta information decoding unit 413, a 2D decoding unit 414, a 2D decoding unit 415, a 2D decoding unit 416, and a patch reconstruction unit 417. , a vertex information reconstruction unit 418 and a pairing processing unit 419 .
- the pair information decoding unit 412, the meta information decoding unit 413, the 2D decoding unit 414, the 2D decoding unit 415, and the 2D decoding unit 416 may be regarded as the decoding unit 431 in this disclosure.
- the pair information decoding unit 412 may be simply referred to as a decoding unit.
- the pairing processing unit 419 may also be referred to as a correction unit.
- the demultiplexing unit 411 acquires the bitstream input to the decoding device 400 .
- This bitstream is, for example, a bitstream generated by the encoding device 300 as described above in the first embodiment, and 3D data using mesh is encoded by extending VPCC. .
- the demultiplexing unit 411 demultiplexes this bitstream to generate each coded data included in the bitstream. That is, the demultiplexing unit 411 extracts each coded data from the bitstream by the demultiplexing. For example, the demultiplexer 411 extracts encoded data of pair information from the bitstream. Also, the demultiplexer 411 extracts encoded data of meta information from the bitstream. Furthermore, the demultiplexer 411 extracts the coded data of the geometry image from the bitstream. Also, the demultiplexer 411 extracts the encoded data of the occupancy image from the bitstream. Furthermore, the demultiplexer 411 extracts the encoded data of the texture image from the bitstream.
- the demultiplexing unit 411 supplies the extracted encoded data to the decoding unit 431.
- the demultiplexer 411 supplies the encoded data of the extracted pair information to the pair information decoder 412 .
- the demultiplexing unit 411 also supplies the encoded data of the extracted meta information to the meta information decoding unit 413 .
- the demultiplexing unit 411 supplies the extracted coded data of the geometry image to the 2D decoding unit 414 .
- the demultiplexing unit 411 also supplies the coded data of the extracted occupancy image to the 2D decoding unit 415 .
- the demultiplexing unit 411 supplies the encoded data of the extracted texture image to the 2D decoding unit 416 .
- the decoding unit 431 executes processing related to decoding.
- the pair information decoding unit 412 acquires encoded data of pair information supplied from the demultiplexing unit 411 .
- Pair information decoding section 412 decodes the encoded data by a predetermined decoding method to generate pair information. This decoding method is arbitrary as long as it corresponds to the encoding method applied by the pair information encoding unit 316 (FIG. 21) of the encoding device 300 in encoding the pair information.
- the pair information decoding unit 412 (decoding unit) divides the mesh representing the object of the three-dimensional structure into at least a first patch and a second patch, arranges them in a single image, and divides the mesh into a single image. and at least one vertex of the second patch at the same position as the position of the vertex of the first patch in the object before encoding. , to get pair information.
- the pair information decoding unit 412 supplies the generated pair information to the pairing processing unit 419.
- the meta information decoding unit 413 acquires encoded data of meta information supplied from the demultiplexing unit 411 .
- the meta information decoding unit 413 decodes the encoded data of the acquired meta information to generate meta information.
- This meta information includes connectivity 451 and UV map 452 .
- the meta-information decoding unit 413 outputs the generated connectivity 451 and UV map 452 to the outside of the decoding device 400 as (data constituting) 3D data using the restored mesh.
- the meta-information decoding unit 413 also supplies the generated connectivity 451 and UV map 452 to the patch reconstruction unit 417 .
- the 2D decoding unit 414 acquires the coded data of the geometry image supplied from the demultiplexing unit 411 .
- the 2D decoding unit 414 decodes the acquired coded data of the geometry image using a decoding method for 2D images to generate a geometry image.
- This decoding method corresponds to the encoding method applied by the 2D encoding unit 318 (FIG. 21) of the encoding device 300 in encoding the geometry image.
- the 2D decoding unit 414 supplies the generated geometry image to the patch reconstruction unit 417 .
- the 2D decoding unit 415 acquires encoded data of the occupancy image supplied from the demultiplexing unit 411 .
- the 2D decoding unit 415 decodes the obtained encoded data of the occupancy image using a 2D image decoding method to generate an occupancy image.
- This decoding scheme corresponds to the encoding scheme applied by the 2D encoding unit 319 (FIG. 21) of the encoding device 300 in encoding the occupancy image.
- the 2D decoding unit 415 supplies the generated occupancy image to the patch reconstruction unit 417 .
- the 2D decoding unit 416 acquires the encoded data of the texture image supplied from the demultiplexing unit 411.
- the 2D decoding unit 416 decodes the acquired coded data of the texture image using a 2D image decoding method to generate a texture image (texture 454).
- This decoding method corresponds to the encoding method applied by the 2D encoding unit 320 (FIG. 21) of the encoding device 300 in encoding the texture image.
- the 2D decoding unit 416 outputs the generated texture image (texture 454) to the outside of the decoding device 400 as (data constituting) 3D data using the restored mesh.
- the patch reconstruction unit 417 acquires meta information (connectivity 451, UV map 452, etc.) supplied from the meta information decoding unit 413. Also, the patch reconstruction unit 417 acquires the geometry image supplied from the 2D decoding unit 414 . Furthermore, the patch reconstruction unit 417 acquires the occupancy image supplied from the 2D decoding unit 415 . The patch reconstruction unit 417 extracts patch images from the geometry image using the occupancy image and meta information, and reconstructs patches corresponding to the extracted patch images. The patch reconstruction unit 417 supplies the reconstructed patches and used meta information (connectivity 451 and UV map 452 etc.) to the vertex information reconstruction unit 418 .
- the vertex information reconstruction unit 418 acquires patches and meta information supplied from the patch reconstruction unit 417 .
- the vertex information reconstruction unit 418 reconstructs vertices included in the area of the patch from the obtained patch, and generates vertex information 453 .
- the vertex information reconstruction unit 418 outputs the generated vertex information 453 to the outside of the decoding device 400 as (data constituting) 3D data using the restored mesh. Also, the vertex information reconstruction unit 418 supplies the generated vertex information 453 and meta information (connectivity 451 and UV map 452 etc.) to the pairing processing unit 419 .
- the pairing processing unit 419 acquires pair information supplied from the pair information decoding unit 412 .
- This pair information is information transmitted from the encoding device 300, and ⁇ 2.
- Pair Information Transmission> section (including ⁇ Generation of Pair Information> to ⁇ Application Examples>), etc., may be included.
- this pair information may be information indicating only pairs formed by vertices included in the pair information.
- This pair information is related to the first edge of the first patch and the second edge of the second patch respectively corresponding to the boundary between the first patch and the second patch in the object before encoding. Shows a correspondence relationship between a combination of vertices located at both ends of an edge and a vertex located in the middle of a first edge, and a combination of vertices located at both ends of a second edge and a vertex located in the middle of the second edge. It may contain information.
- This pair information is related to the first edge of the first patch and the second edge of the second patch respectively corresponding to the boundary between the first patch and the second patch in the object before encoding, and at the time of decoding Information indicating the correspondence relationship between the scanning direction for the first edge and the scanning direction for the second edge at the time of decoding may be included.
- This pair information may indicate that the plurality of vertices of the first patch and the corresponding plurality of vertices of the second patch are each paired.
- This pair information may include a parameter indicating the number of vertices that make up the pair.
- This pair information may include information indicating a group of vertices in the first patch and a group of vertices in the second patch.
- This pair information may indicate pairs using identification information corresponding to the state of each vertex in the object before encoding.
- This pair information may indicate pairs based on each coordinate of a plurality of vertices on the two-dimensional plane of the image.
- This pair information may indicate the relative coordinates of a vertex that differs from the reference vertex with respect to the coordinates of the reference vertex among the plurality of vertices.
- This pair information indicates the relative coordinates of a vertex different from the reference vertex based on the position of the relative vector between the first patch and the second patch with reference to the coordinates of the reference vertex among the plurality of vertices.
- This pair information is the second patch in a posture corrected state with reference to the position of the relative vector between the first patch and the second patch with reference to the coordinates of the reference vertex among the plurality of vertices. , relative coordinates of a vertex different from the reference vertex may be indicated.
- This pair information indicates the relative coordinates of the vertex that differs from the reference vertex of the pair to be processed, based on the relative coordinates of the vertex that differs from the reference vertex with respect to the coordinates of the reference vertex among the multiple vertices of the other pair. You may do so.
- the pairing processing unit 419 acquires the vertex information 453 and meta information supplied from the vertex information reconstruction unit 418 .
- the pairing processing unit 419 performs pairing processing of the vertices included in the vertex information 453 based on the pair information.
- the pairing processing unit 419 executes the pairing processing as described in the sections such as ⁇ vertex interpolation>, ⁇ pairing processing>, ⁇ coordinate determination method>, and ⁇ application example>.
- the pairing processing unit 419 corrects the reconstructed mesh based on the pair information.
- the pairing processing unit 419 selects one of the vertices of the first patch and the vertices of the second patch indicated by the pair information as a pair in the reconstructed mesh.
- a vertex may be deleted and the connection of the deleted vertex may be converted to the connection of the other vertex.
- the pairing processing unit 419 selects one of the vertices of the first patch and the vertices of the second patch indicated by the pair information that they are paired in the reconstructed mesh. may be moved to the position of the other vertex.
- the pairing processing unit 419 (correction unit) forms a polygon including the vertices of the first patch and the vertices of the second patch, which are indicated by the pair information as being paired, in the reconstructed mesh.
- the pairing processing unit 419 may interpolate vertices that form a pair and are not included in the pair information.
- the pairing processing unit 419 outputs the updated vertex information 453 to the outside of the decoding device 400 as (data constituting) 3D data using the restored mesh.
- each processing unit may be configured by a logic circuit that implements the above processing.
- each processing unit may have, for example, a CPU, ROM, RAM, etc., and may implement the above-described processing by executing a program using them.
- each processing unit may have both configurations, implement some of the above-described processes by a logic circuit, and implement others by executing a program.
- the configuration of each processing unit may be independent of each other.
- another processing unit may implement the above-described processing by executing both the logic circuit and the program.
- the demultiplexing unit 411 demultiplexes the bitstream input to the decoding device 400 in step S401.
- the demultiplexing unit 411 extracts the encoded data of the pair information from the bitstream.
- the demultiplexer 411 extracts encoded data of meta information from the bitstream.
- the demultiplexer 411 extracts the coded data of the geometry image from the bitstream.
- the demultiplexer 411 extracts the encoded data of the occupancy image from the bitstream.
- the demultiplexer 411 extracts the encoded data of the texture image from the bitstream.
- step S402 the pair information decoding unit 412 decodes the encoded data of the pair information extracted from the bitstream in step S401 using a predetermined decoding method to generate (restore) pair information.
- This pair information is information transmitted from the encoding device 300, and ⁇ 2.
- Pair Information Transmission> section including ⁇ Generation of Pair Information> to ⁇ Application Examples>), etc., may be included.
- the pair information decoding unit 412 (decoding unit) divides a mesh representing a three-dimensional structure object into patches to create a plurality of patches generated from a single vertex of the mesh or a plurality of vertices at the same position. Encoded data of pair information indicating a pair formed by vertices is decoded to obtain the pair information.
- this pair information may be information indicating only pairs formed by vertices included in the pair information.
- This pair information is related to the first edge of the first patch and the second edge of the second patch respectively corresponding to the boundary between the first patch and the second patch in the object before encoding. Shows a correspondence relationship between a combination of vertices located at both ends of an edge and a vertex located in the middle of a first edge, and a combination of vertices located at both ends of a second edge and a vertex located in the middle of the second edge. It may contain information.
- This pair information is related to the first edge of the first patch and the second edge of the second patch respectively corresponding to the boundary between the first patch and the second patch in the object before encoding, and at the time of decoding Information indicating the correspondence relationship between the scanning direction for the first edge and the scanning direction for the second edge at the time of decoding may be included.
- This pair information may indicate that the plurality of vertices of the first patch and the corresponding plurality of vertices of the second patch are each paired.
- This pair information may include a parameter indicating the number of vertices that make up the pair.
- This pair information may include information indicating a group of vertices in the first patch and a group of vertices in the second patch.
- This pair information may indicate pairs using identification information corresponding to the state of each vertex in the object before encoding.
- This pair information may indicate pairs based on each coordinate of a plurality of vertices on the two-dimensional plane of the image.
- This pair information may indicate the relative coordinates of a vertex that differs from the reference vertex with respect to the coordinates of the reference vertex among the plurality of vertices.
- This pair information indicates the relative coordinates of a vertex different from the reference vertex based on the position of the relative vector between the first patch and the second patch with reference to the coordinates of the reference vertex among the plurality of vertices.
- This pair information is the second patch in a posture corrected state with reference to the position of the relative vector between the first patch and the second patch with reference to the coordinates of the reference vertex among the plurality of vertices. , relative coordinates of a vertex different from the reference vertex may be indicated.
- This pair information indicates the relative coordinates of the vertex that differs from the reference vertex of the pair to be processed, based on the relative coordinates of the vertex that differs from the reference vertex with respect to the coordinates of the reference vertex among the multiple vertices of the other pair. You may do so.
- the decoding method applied in this process is arbitrary as long as it corresponds to the encoding method applied in step S306 (FIG. 22) of the encoding process.
- step S403 the meta information decoding unit 413 decodes the encoded data of the meta information extracted from the bitstream in step S401 to generate (restore) meta information.
- This meta information includes connectivity 451 and UV map 452 .
- step S404 the 2D decoding unit 414 decodes the coded data of the geometry image extracted from the bitstream in step S401 to generate (restore) the geometry image.
- step S405 the 2D decoding unit 415 decodes the encoded data of the occupancy image extracted from the bitstream in step S401 to generate (restore) the occupancy image.
- step S406 the 2D decoding unit 416 decodes the coded data of the texture image extracted from the bitstream in step S401 to generate (restore) the texture image (texture 454).
- step S407 the patch reconstruction unit 417 extracts a patch image from the geometry image generated in step S404 using the meta information (connectivity 451, UV map 452, etc.) generated in step S402, and extracts the patch image. Reconfigure the corresponding patch.
- step S408 the vertex information reconstruction unit 418 reconstructs the vertices included in the area of the patch from the patch reconstructed in step S407, and generates vertex information 453.
- step S409 the pairing processing unit 419 performs pairing processing of the vertices included in the vertex information 453 based on the pair information generated (restored) in step S402. At that time, the pairing processing unit 419 executes the pairing processing as described in the sections such as ⁇ vertex interpolation>, ⁇ pairing processing>, ⁇ coordinate determination method>, and ⁇ application example>.
- the pairing processing unit 419 corrects the reconstructed mesh based on the pair information.
- the pairing processing unit 419 selects one of the vertices of the first patch and the vertices of the second patch indicated by the pair information as a pair in the reconstructed mesh.
- a vertex may be deleted and the connection of the deleted vertex may be converted to the connection of the other vertex.
- the pairing processing unit 419 selects one of the vertices of the first patch and the vertices of the second patch indicated by the pair information that they are paired in the reconstructed mesh. may be moved to the position of the other vertex.
- the pairing processing unit 419 (correction unit) forms a polygon including the vertices of the first patch and the vertices of the second patch, which are indicated by the pair information as being paired, in the reconstructed mesh.
- the pairing processing unit 419 may interpolate vertices that form a pair and are not included in the pair information.
- the vertex information 453 is updated as appropriate.
- step S409 ends, the decoding process ends.
- the decoding device 400 has the configuration described above, and executes the pairing processing based on the pair information transmitted from the encoding device 300 by executing the various processes described above. As a result, the decoding device 400 can more reliably suppress the occurrence of cracks and perform pairing processing between more appropriate vertices. Therefore, the decoding device 400 can suppress deterioration in quality of 3D data due to encoding and decoding.
- the coordinates of the vertices before encoding (also referred to as correct coordinates) are converted to may be the coordinates of the vertices of That is, in the pairing process, the vertices moved by encoding and decoding may be returned to their original positions.
- the intersection of the straight lines in the projection direction passing through each vertex is the coordinate of that vertex before encoding (correct coordinate).
- a vertex 512 of a patch 511 and a vertex 514 of a patch 513 form a pair, and the projection direction of the patch 511 (that is, the normal direction of the projection plane of the patch 511) and the It is assumed that the projection directions (that is, the normal direction of the projection surface of the patch 513) are different from each other.
- the decoding device can obtain the correct coordinates from the geometry patch.
- the correcting unit of the decoding device sets the vertex of the first patch and the second patch forming the pair. , may be moved to the intersection of the normal of the first patch and the normal of the second patch.
- the decoding device cannot obtain the correct coordinates from the patch of geometry.
- a vertex 512 of a patch 511 and a vertex 514 of a patch 513 form a pair, and the projection direction of the patch 511 (that is, the normal direction of the projection plane of the patch 511) and the Assume that the projection directions (that is, the normal direction of the projection surface of the patch 513) are the same (forward or reverse).
- the normal to the projection plane of the patch 511 passing through the vertex 512 and the normal to the projection plane of the patch 513 passing through the vertex 514 are both the normal 516. ) cannot be requested.
- the pairing process may be performed using the average of the coordinates of the vertices as the correct coordinates. That is, when the normal direction of the first patch and the normal direction of the second patch match, the correcting unit of the decoding device corrects the vertex of the first patch and the vertex of the second patch that form a pair. , may be moved to the position of the weighted average of the respective positions. For example, in the case of FIG.
- the components of the correct coordinates in the projection plane direction are the same as the vertices 512 and 514, and the components in the direction of the normal line 516 of the correct coordinates are the average of the coordinates of the vertex 512 and the coordinates of the vertex 514. becomes.
- the coordinates before encoding (correct coordinates) for each pair are transmitted from the encoding device to the decoding device as pair information. It may be transmitted. That is, the pair information may include information indicating the destination positions when the vertices forming the pair are moved to the same positions in the pairing process. In that case, the encoding device stores the correct coordinates for each pair in the pair information. Then, in the pairing process, the decoding device moves each vertex forming a pair to the correct coordinates included in the pair information.
- the correction unit of the decoding device sets the vertex of the first patch and the vertex of the second patch that form a pair.
- the vertex may be moved to the position indicated by the pair information.
- the decoder can more reliably suppress the occurrence of cracks and perform pairing processing between more appropriate vertices. That is, it is possible to suppress deterioration of the quality of 3D data due to encoding and decoding.
- the pairing process is performed in a three-dimensional space (that is, the three-dimensional coordinates of each vertex forming a pair are corrected). That is, in this case, for example, as shown in FIG. 27, after 2D decoding 531 of geometry is performed and 3D data reconstruction 532 is performed, pairing processing 533 is performed on 3D data in 3D space. For example, as shown in FIG. 27, assume that a vertex 542 of a polygon 541 and a vertex 545 of a polygon 544 form a pair, and a vertex 543 of a polygon 541 and a vertex 546 of a polygon 544 form a pair.
- the pairing process converts the three-dimensional coordinates (x4, y4, z4) of the vertex 545 into the three-dimensional coordinates (x2, y2, z2) of the vertex 542 . Also, the three-dimensional coordinates (x6, y6, z6) of the vertex 546 are transformed into the three-dimensional coordinates (x3, y3, z3) of the vertex 543.
- the pairing process is not limited to this example, and may be performed on a two-dimensional plane, for example.
- pairing processing 552 may be performed on a two-dimensional plane, and then 3D data reconstruction 553 may be performed.
- This two-dimensional plane may be, for example, a geometry image (depth image) or a two-dimensional plane (xyz image) on a three-dimensional space.
- the pixel value p corresponding to each vertex forming a pair on the two-dimensional plane is updated. For example, as shown in FIG.
- a vertex corresponding to a pixel 561 and a vertex corresponding to a pixel 563 on a two-dimensional plane 560 form a pair
- a vertex corresponding to a pixel 562 and a vertex corresponding to a pixel 564 form a pair.
- the vertex corresponding to the pixel 563 is moved to the three-dimensional position of the vertex corresponding to the pixel 561
- the vertex corresponding to the pixel 564 is moved to the three-dimensional position of the vertex corresponding to the pixel 562. do.
- the pixel value (p4) of the pixel 563 is updated to the same pixel value (p2) as the pixel 561 by the pairing process on the two-dimensional plane.
- the pixel value (p6) of pixel 564 is updated to the same pixel value as pixel 562 (p3).
- this two-dimensional plane is a geometry image (depth image)
- the pixel values indicate depth values (coordinates in the normal direction of patches in three-dimensional space).
- this two-dimensional plane is an xyz image
- the pixel values indicate (x, y, z) coordinates.
- the correction unit of the decoding device moves the vertices of the first patch and the vertices of the second patch that form a pair to the same positions in the geometry image generated by decoding the encoded data
- the patch construction unit may reconstruct patches using the geometry image corrected by the correction unit
- the vertex reconstruction unit may reconstruct vertices using the reconstructed patches.
- the method of determining the post-correction vertex positions (correct coordinates) when the pairing process is performed on the two-dimensional plane is the same as in the case of the pairing process in the three-dimensional space. For example, if the projection directions of the vertices forming a pair are the same, the decoding device derives the correct coordinates (average or the like) using the pixel values of the vertices, and moves each vertex to the correct coordinates. may Also, the decoding device may move the vertex using the correct coordinates stored in the pair information, as described above.
- the decoding device derives the three-dimensional coordinates of each vertex, and uses the three-dimensional coordinates to obtain the correct coordinates (three-dimensional coordinates).
- the pixel values corresponding to each vertex in the two-dimensional plane may be updated such that the vertex moves to its three-dimensional coordinates.
- the decoder can more reliably suppress the occurrence of cracks and perform pairing processing between more appropriate vertices. That is, it is possible to suppress deterioration of the quality of 3D data due to encoding and decoding.
- FIG. 29 is a block diagram showing another example of the configuration of the encoding device as one embodiment of the information processing device to which the present technology is applied.
- FIG. 29 shows the main components such as the processing unit and data flow, and the components shown in FIG. 29 are not necessarily all.
- encoding apparatus 600 may include processing units not shown as blocks in FIG. 29, or processes and data flows not shown as arrows or the like in FIG.
- the encoding device 600 includes a mesh voxelization unit 611, a patch generation unit 612, a meta information encoding unit 613, an image generation unit 614, a 2D encoding unit 615, a 2D decoding unit 616, and pair information generation. It has a unit 617 , a pair information encoding unit 618 , a pairing processing unit 619 , an image generation unit 620 , a 2D encoding unit 621 and a multiplexing unit 622 .
- the connectivity 351, vertex information 352, UV map 353, and texture 354 are supplied to the encoding device 600 as 3D data using Mesh.
- the mesh voxelization unit 611 is a processing unit similar to the mesh voxelization unit 311 and executes processing similar to that of the mesh voxelization unit 311 .
- the mesh voxelization unit 611 acquires vertex information 352 supplied to the encoding device 600 .
- the mesh voxelization unit 611 converts the coordinates of each vertex included in the acquired vertex information 352 into a voxel grid.
- the mesh voxelization unit 611 supplies the converted voxel grid vertex information 352 to the patch generation unit 612 .
- the patch generation unit 612 is a processing unit similar to the patch generation unit 312 and executes processing similar to that of the patch generation unit 312 .
- the patch generator 612 acquires the connectivity 351 supplied to the encoding device 600 .
- the patch generation unit 612 also acquires the voxel grid vertex information 352 supplied from the mesh voxelization unit 611 .
- the patch generator 612 generates geometry patches based on the information.
- the patch generation unit 612 also projects the generated geometric patch onto the projection plane to generate a patch image.
- the patch generation unit 612 supplies information such as connectivity 351 and vertex information 352 to the meta information encoding unit 613 as meta information.
- the patch generation unit 612 also supplies the generated patch image to the image generation unit 614 and the image generation unit 620 .
- the meta-information encoding unit 613 is a processing unit similar to the meta-information encoding unit 317, and executes processing similar to that of the meta-information encoding unit 317.
- the meta-information encoding unit 613 acquires the meta-information (including the connectivity 351, the vertex information 352, etc.) supplied from the patch generation unit 612.
- the meta information encoding unit 613 encodes the acquired meta information to generate encoded data of the meta information.
- the meta information encoding unit 613 supplies the generated encoded data of the meta information to the multiplexing unit 622 .
- the image generation unit 614 acquires patch images supplied from the patch generation unit 612 .
- the image generator 614 arranges the patch images on a two-dimensional plane to generate a geometry image.
- the image generator 614 supplies the generated geometry image to the 2D encoder 615 as a geometry video frame. Also, the image generator 614 generates an occupancy image corresponding to the geometry image.
- the image generator 614 supplies the generated occupancy image to the 2D encoder 615 .
- the 2D encoding unit 615 acquires geometry images and occupancy images supplied from the image generation unit 614 .
- the 2D encoding unit 615 encodes the obtained geometry image using a 2D image encoding method to generate encoded data of the geometry image.
- the 2D encoding unit 615 can also be said to be a geometry encoding unit that encodes the geometry image and generates encoded data of the geometry image.
- the 2D encoding unit 615 supplies the generated encoded data of the geometry image to the 2D decoding unit 616 and the multiplexing unit 622 .
- the 2D encoding unit 615 encodes the obtained occupancy image using a 2D image encoding method to generate encoded data of the occupancy image.
- the 2D encoding unit 615 supplies the encoded data of the generated occupancy image to the multiplexing unit 622 .
- the 2D decoding unit 616 acquires encoded data of the geometry image supplied from the 2D encoding unit 615 .
- the 2D decoding unit 616 decodes the acquired coded data of the geometry image using a decoding method for 2D images to generate (restore) the geometry image.
- the 2D decoding unit 616 can also be said to be a geometry decoding unit that decodes the encoded data of the geometry image and generates the geometry image.
- the 2D decoding unit 616 supplies the generated geometry image to the pair information generation unit 617 .
- the pair information generation unit 617 acquires the geometry image supplied from the 2D decoding unit 616. Moreover, the pair information generation unit 617 may acquire information such as the connectivity 351, the vertex information 352, and the UV map 353 as necessary. Based on the information, the pair information generation unit 617 generates pair information indicating a pair composed of one vertex or a plurality of vertices that were overlapping points in the mesh. That is, the pair information generation unit 617 divides the mesh representing the three-dimensional structure object into at least a first patch and a second patch, arranges them in a single image, and arranges at least one of the first patches.
- Pair information is generated indicating that the two vertices are paired with at least one vertex of a second patch at the same position as the vertex of the first patch in the object before encoding. Then, the pair information generation unit 617 generates the pair information based on the geometry image generated by the geometry decoding unit. This pair information is ⁇ 2. Transmission of Pair Information>, ⁇ 5. Derivation of Correct Coordinates> and ⁇ 6. Two-Dimensional Pairing Processing>, etc. may be included. The pair information generator 617 supplies the generated pair information to the pair information encoder 618 . Also, the pair information generation unit 617 supplies the generated pair information and the acquired information (geometry image, meta information, etc.) to the pairing processing unit 619 .
- the pair information encoding unit 618 acquires the pair information supplied from the pair information generation unit 617.
- the pair information encoding unit 618 encodes the acquired pair information using a predetermined encoding method to generate encoded data of the pair information. This encoding method is arbitrary.
- the pair information encoding unit 618 supplies the generated pair information encoded data to the multiplexing unit 622 .
- the pairing processing unit 619 acquires pair information, geometry images, meta information, etc. supplied from the pair information generation unit 617 .
- the pairing processing unit 619 performs pairing processing on patches included in the geometry image based on the acquired pair information.
- the pairing processing unit 619 performs ⁇ 2. Transmission of Pair Information>, ⁇ 5. Derivation of Correct Coordinates> and ⁇ 6. Two-Dimensional Pairing Processing>, the pairing process is executed.
- the pairing processing unit 619 may perform this pairing processing in a two-dimensional plane or in a three-dimensional space.
- the pairing processing unit 619 performs pairing processing after reconstructing 3D data using a geometry image, and uses the 3D data after the pairing processing to generate a geometry image. to generate
- the pairing processing unit 619 supplies the geometry image after pairing processing to the image generation unit 620 .
- the image generator 620 acquires the UV map 353 and the texture 354 input to the encoding device 600. Also, the image generator 620 acquires the patch image supplied from the patch generator 612 . Furthermore, the image generation unit 620 acquires the geometry image after the pairing processing supplied from the pairing processing unit 619 . The image generator 620 updates the texture 354 using the acquired patch image, geometry image, UV map 353, etc., and generates a texture image corresponding to the geometry image after pairing processing. The image generation unit 620 may also update the UV map 353 as necessary. The image generator 620 supplies the generated texture image to the 2D encoder 621 .
- the 2D encoding unit 621 acquires the texture image supplied from the image generation unit 620.
- the 2D encoding unit 621 encodes the acquired texture image using a 2D image encoding method to generate encoded data of the texture image.
- the 2D encoding unit 621 supplies the encoded data of the generated texture image to the multiplexing unit 622 .
- the multiplexing unit 321 acquires encoded data of meta information supplied from the meta information encoding unit 613 . Furthermore, the multiplexing unit 622 acquires the encoded data of the geometry image and the encoded data of the occupancy image supplied from the 2D encoding unit 615 . Furthermore, the multiplexing unit 622 acquires encoded data of the pair information supplied from the pair information encoding unit 618 . Also, the multiplexing unit 622 acquires the encoded data of the texture image supplied from the 2D encoding unit 621 . The multiplexing unit 622 multiplexes the obtained information to generate one bitstream. The multiplexing unit 622 outputs the generated bitstream to the outside of the encoding device 600 .
- the encoding device 600 enables the decoder to more reliably suppress the occurrence of cracks and perform pairing processing between more appropriate vertices. In other words, the encoding device 600 can suppress deterioration in the quality of 3D data due to encoding and decoding.
- each processing unit may be configured by a logic circuit that implements the above processing.
- each processing unit has, for example, a CPU (Central Processing Unit), ROM (Read Only Memory), RAM (Random Access Memory), etc., and by executing programs using these, the above processing is realized. You may do so.
- each processing unit may have both configurations, implement some of the above-described processes by a logic circuit, and implement others by executing a program.
- the configuration of each processing unit may be independent of each other. , and another processing unit may implement the above-described processing by executing both the logic circuit and the program.
- the mesh voxelization unit 611 converts the coordinates of each vertex included in the vertex information 352 into a voxel grid in step S601, thereby converting the mesh into a voxel grid.
- step S602 the patch generation unit 612 generates patches using the vertex information 352 or the like that has been voxel-gridded in step S601, projects the generated patches onto the projection plane, and generates patch images.
- step S603 the meta information encoding unit 613 encodes meta information (connectivity 351, UV map 353, etc.) to generate encoded data of meta information.
- step S604 the image generation unit 614 generates a geometry image and an occupancy image based on the patch image generated in step S602 and the UV map 353.
- step S605 the 2D encoding unit 615 encodes the geometry image generated in step S604 to generate coded data of the geometry image.
- the 2D encoding unit 615 also encodes the occupancy image generated in step S604 to generate encoded data of the occupancy image.
- step S606 the 2D decoding unit 616 decodes the encoded data of the geometry image generated in step S605 to generate a geometry image.
- step S607 the pair information generation unit 617 uses the geometry image and meta information generated in step S606 to generate pair information indicating a pair formed by one vertex or multiple vertices that were overlapping points in the mesh. to generate This pair information is ⁇ 2. Transmission of Pair Information>, ⁇ 5. Derivation of Correct Coordinates> and ⁇ 6. Two-Dimensional Pairing Processing>, etc. may be included.
- step S608 the pair information encoding unit 618 encodes the pair information generated in step S607 using a predetermined encoding method to generate encoded data of pair information.
- This encoding method is arbitrary.
- step S609 the pairing processing unit 619 performs pairing processing on the geometry image generated in step S606 based on the pair information generated in step S607. At that time, the pairing processing unit 619 performs ⁇ 2. Transmission of Pair Information>, ⁇ 5. Derivation of Correct Coordinates> and ⁇ 6. Two-Dimensional Pairing Processing>, the pairing process is executed.
- step S610 the image generation unit 620 updates the texture 354 using the patch image generated in step S602 and the geometry image after pairing processing generated in step S609 to generate a texture image.
- step S611 the 2D encoding unit 621 encodes the texture image generated in step S610 to generate encoded data of the texture image.
- step S612 the multiplexing unit 622 extracts the coded data of the meta information generated in step S603, the coded data of the geometry image and the coded data of the occupancy image generated in step S605, and the pair generated in step S608.
- the coded data of the information and the coded data of the texture image generated in step S611 are multiplexed to generate a bitstream.
- the encoding device 600 can ensure that the decoder suppresses the occurrence of cracks and performs the pairing process between more appropriate vertices. In other words, the encoding device 600 can suppress deterioration in the quality of 3D data due to encoding and decoding.
- FIG. 31 is a block diagram showing an example of a configuration of a decoding device which is one aspect of an image processing device to which the present technology is applied.
- This is a device that decodes encoded data using a decoding method for two-dimensional images and generates (reconstructs) 3D data using meshes.
- the decoding device 700 applies a single method or a combination of a plurality of methods among the various methods of the present technology described above to decode the encoded data and reconstruct the 3D data. do. However, the decoding device 700 performs pairing processing on a two-dimensional plane.
- FIG. 31 shows main elements such as the processing unit and data flow, and what is shown in FIG. 31 is not necessarily all. That is, decoding device 700 may include processing units not shown as blocks in FIG. 31, or processes and data flows not shown as arrows or the like in FIG.
- the decoding device 700 includes a demultiplexing unit 711, a pair information decoding unit 712, a meta information decoding unit 713, a 2D decoding unit 714, a pairing processing unit 715, a patch reconstruction unit 716, and a vertex information reconstruction unit. It has a configuration unit 717 and a 2D decoding unit 718 .
- the demultiplexing unit 711 acquires the bitstream input to the decoding device 700 .
- This bitstream is a bitstream generated by, for example, the encoding device 300 or the encoding device 600 as described above in the first embodiment, and the 3D data using the mesh is encoded by extending the VPCC. It is what was done.
- the demultiplexing unit 711 demultiplexes this bitstream to generate each coded data included in the bitstream. That is, the demultiplexing unit 711 extracts each coded data from the bitstream by the demultiplexing. For example, the demultiplexer 711 extracts encoded data of pair information from the bitstream. Also, the demultiplexer 711 extracts encoded data of meta information from the bitstream. Furthermore, the demultiplexer 711 extracts the coded data of the geometry image from the bitstream. Also, the demultiplexer 711 extracts the encoded data of the occupancy image from the bitstream. Furthermore, the demultiplexer 711 extracts the coded data of the texture image from the bitstream. In other words, the demultiplexer 711 can also be said to be an acquisition unit that acquires these encoded data from the bitstream.
- the demultiplexing unit 711 supplies the encoded data of the extracted pair information to the pair information decoding unit 712 .
- the demultiplexing unit 711 also supplies the encoded data of the extracted meta information to the meta information decoding unit 713 .
- the demultiplexing unit 711 supplies the extracted encoded data of the geometry image and the extracted encoded data of the occupancy image to the 2D decoding unit 714 .
- the demultiplexing unit 711 also supplies the encoded data of the extracted texture image to the 2D decoding unit 718 .
- the pair information decoding unit 712 acquires encoded data of pair information supplied from the demultiplexing unit 711 .
- Pair information decoding section 712 decodes the encoded data by a predetermined decoding method to generate pair information. This decoding method is arbitrary as long as it corresponds to the encoding method applied by the encoding device 300 or the encoding device 600 in encoding the pair information.
- the pair information decoding unit 712 divides the mesh representing the object of the three-dimensional structure into at least a first patch and a second patch, arranges them in a single image, and divides the mesh into at least one patch of the first patch. decoding the encoded data of the pair information indicating that the vertex and at least one vertex of the second patch at the same position as the position of the vertex of the first patch in the object before encoding are paired; obtain. The pair information decoding unit 712 supplies the generated pair information to the pairing processing unit 715 .
- the meta information decoding unit 713 acquires encoded data of meta information supplied from the demultiplexing unit 711 .
- the meta information decoding unit 713 decodes the encoded data of the acquired meta information to generate meta information.
- This meta information includes connectivity 451 and UV map 452 .
- the meta-information decoding unit 713 outputs the generated connectivity 451 and UV map 452 to the outside of the decoding device 700 as (data constituting) 3D data using the restored mesh.
- the meta information decoding unit 713 also supplies the generated connectivity 451 and UV map 452 to the patch reconstruction unit 716 .
- the 2D decoding unit 714 acquires the coded data of the geometry image and the coded data of the occupancy image supplied from the demultiplexing unit 711 .
- the 2D decoding unit 714 decodes the obtained coded data of the geometry image using a 2D image decoding method to generate a geometry image.
- the 2D decoding unit 714 decodes the obtained encoded data of the occupancy image using a decoding method for 2D images to generate an occupancy image.
- These decoding methods correspond to the encoding methods applied by the encoding device 300 and the encoding device 600 in encoding the geometry image.
- the 2D decoding unit 714 supplies the generated geometry image and occupancy image to the pairing processing unit 715 .
- the pairing processing unit 715 acquires pair information supplied from the pair information decoding unit 712 .
- This pair information is, for example, information transmitted from the encoding device 300 or the encoding device 600. ⁇ 2. Transmission of pair information>, ⁇ 5. Derivation of Correct Coordinates>, ⁇ 6. Two-Dimensional Pairing Processing>, etc., may include the information described above.
- the pairing processing unit 715 acquires the geometry image and the occupancy image supplied from the 2D decoding unit 714 .
- the pairing processing unit 715 performs pairing processing on the patches included in the geometry image based on the acquired pair information. In other words, the pairing processing unit 715 can also be said to be a correction unit that corrects the geometry of the vertices forming the pair based on the pair information.
- the pairing processing unit 715 executes pairing processing on a two-dimensional plane (for example, a geometry image), as described in ⁇ 6. Two-dimensional pairing processing>.
- the pairing processing unit 715 supplies the geometry image, the occupancy image, etc. after the pairing processing to the patch reconstruction unit 716 .
- the patch reconstruction unit 716 acquires meta information (connectivity 451, UV map 452, etc.) supplied from the meta information decoding unit 713. Also, the patch reconstruction unit 716 acquires the geometry image and the occupancy image after pairing processing supplied from the pairing processing unit 715 . The patch reconstruction unit 716 extracts patch images from the geometry image using the occupancy image and meta information, and reconstructs patches corresponding to the extracted patch images. The patch reconstruction unit 716 supplies the reconstructed patches and used meta information (connectivity 451 and UV map 452, etc.) to the vertex information reconstruction unit 717.
- the vertex information reconstruction unit 717 acquires patches and meta information supplied from the patch reconstruction unit 716 .
- the vertex information reconstruction unit 717 reconstructs vertices included in the area of the patch from the acquired patch, and generates vertex information 453 .
- the vertex information reconstruction unit 717 can also be said to be a vertex reconstruction unit that reconstructs vertices using the reconstructed patches.
- the vertex information reconstruction unit 717 outputs the generated vertex information 453 to the outside of the decoding device 700 as (data constituting) 3D data using the restored mesh.
- the 2D decoding unit 718 acquires encoded data of texture images supplied from the demultiplexing unit 711 .
- the 2D decoding unit 718 decodes the acquired encoded data of the texture image using a decoding method for 2D images to generate a texture image (texture 454).
- This decoding method corresponds to the encoding method applied by the encoding device 300 or the encoding device 600 in encoding the texture image.
- the 2D decoding unit 718 outputs the generated texture image (texture 454) to the outside of the decoding device 700 as (data constituting) 3D data using the restored mesh.
- the decoding device 700 can more reliably suppress the occurrence of cracks and perform pairing processing between more appropriate vertices. In other words, the decoding device 700 can suppress deterioration in the quality of 3D data due to encoding and decoding.
- each processing unit may be configured by a logic circuit that implements the above processing.
- each processing unit may have, for example, a CPU, ROM, RAM, etc., and may implement the above-described processing by executing a program using them.
- each processing unit may have both configurations, implement some of the above-described processes by a logic circuit, and implement others by executing a program.
- the configuration of each processing unit may be independent of each other.
- another processing unit may implement the above-described processing by executing both the logic circuit and the program.
- the demultiplexing unit 711 demultiplexes the bitstream input to the decoding device 700 in step S701. Through this demultiplexing, the demultiplexing unit 711 extracts (obtains) encoded data of pair information from the bitstream. The demultiplexer 711 also extracts (obtains) encoded data of meta information from the bitstream. Further, the demultiplexer 711 extracts (obtains) encoded data of the geometry image from the bitstream. The demultiplexer 711 also extracts (obtains) encoded data of the occupancy image from the bitstream. Further, the demultiplexing unit 711 extracts (acquires) the encoded data of the texture image from the bitstream.
- step S702 the pair information decoding unit 712 decodes the encoded data of the pair information extracted from the bitstream in step S701 using a predetermined decoding method to generate (restore) pair information.
- This pair information is information transmitted from the encoding device 300, the encoding device 600, etc. ⁇ 2. Transmission of pair information>, ⁇ 5. Derivation of Correct Coordinates>, ⁇ 6. Two-Dimensional Pairing Processing>, etc., may include the information described above.
- the pair information decoding unit 712 divides a mesh representing a three-dimensional structure object into patches, and consists of a plurality of vertices of a patch generated from a single vertex of the mesh or a plurality of vertices at the same position. decode the encoded data of the pair information indicating the pair to obtain the pair information.
- step S703 the meta information decoding unit 713 decodes the encoded data of the meta information extracted from the bitstream in step S701 to generate (restore) meta information.
- This meta information includes connectivity 451 and UV map 452 .
- step S704 the 2D decoding unit 714 decodes the coded data of the geometry image extracted from the bitstream in step S701 to generate (restore) the geometry image. Also, the 2D decoding unit 714 decodes the encoded data of the occupancy image extracted from the bitstream in step S701 to generate (restore) the occupancy image.
- step S705 the pairing processing unit 715 performs pairing processing of the vertices included in the vertex information 453 based on the pair information generated (restored) in step S702. At that time, the pairing processing unit 715 performs pairing processing on a two-dimensional plane (for example, a geometry image), as described in ⁇ 6. Two-dimensional pairing processing>.
- step S706 the patch reconstruction unit 716 extracts patch images from the geometry image generated in step S704 using the meta information (connectivity 451, UV map 452, etc.) generated in step S702, and Reconstruct patches corresponding to the patch image.
- step S707 the vertex information reconstruction unit 717 reconstructs the vertices included in the area of the patch from the patch reconstructed in step S706, and generates vertex information 453.
- step S708 the 2D decoding unit 718 decodes the coded data of the texture image extracted from the bitstream in step S701 to generate (restore) the texture image (texture 454).
- the decoding device 700 can more reliably suppress the occurrence of cracks and perform the pairing process between more appropriate vertices. In other words, the decoding device 700 can suppress deterioration in the quality of 3D data due to encoding and decoding.
- V3C Video Volumetric Video-based Coding
- MIV metadata immersive video
- the series of processes described above can be executed by hardware or by software.
- a program that constitutes the software is installed in the computer.
- the computer includes, for example, a computer built into dedicated hardware and a general-purpose personal computer capable of executing various functions by installing various programs.
- FIG. 33 is a block diagram showing an example of the hardware configuration of a computer that executes the series of processes described above by a program.
- a CPU Central Processing Unit
- ROM Read Only Memory
- RAM Random Access Memory
- An input/output interface 910 is also connected to the bus 904 .
- An input unit 911 , an output unit 912 , a storage unit 913 , a communication unit 914 and a drive 915 are connected to the input/output interface 910 .
- the input unit 911 consists of, for example, a keyboard, mouse, microphone, touch panel, input terminal, and the like.
- the output unit 912 includes, for example, a display, a speaker, an output terminal, and the like.
- the storage unit 913 is composed of, for example, a hard disk, a RAM disk, a nonvolatile memory, or the like.
- the communication unit 914 is composed of, for example, a network interface.
- Drive 915 drives removable media 921 such as a magnetic disk, optical disk, magneto-optical disk, or semiconductor memory.
- the CPU 901 loads, for example, a program stored in the storage unit 913 into the RAM 903 via the input/output interface 910 and the bus 904, and executes the above-described series of programs. is processed.
- the RAM 903 also appropriately stores data necessary for the CPU 901 to execute various processes.
- a program executed by a computer can be applied by being recorded on removable media 921 such as package media, for example.
- the program can be installed in the storage unit 913 via the input/output interface 910 by loading the removable medium 921 into the drive 915 .
- This program can also be provided via wired or wireless transmission media such as local area networks, the Internet, and digital satellite broadcasting.
- the program can be received by the communication unit 914 and installed in the storage unit 913 .
- this program can be installed in the ROM 902 or the storage unit 913 in advance.
- This technology can be applied to any configuration.
- the present technology can be applied to various electronic devices.
- the present technology includes a processor (e.g., video processor) as a system LSI (Large Scale Integration), etc., a module (e.g., video module) using a plurality of processors, etc., a unit (e.g., video unit) using a plurality of modules, etc.
- a processor e.g., video processor
- LSI Large Scale Integration
- module e.g., video module
- a unit e.g., video unit
- it can be implemented as a part of the configuration of the device, such as a set (for example, a video set) in which other functions are added to the unit.
- the present technology can also be applied to a network system configured by a plurality of devices.
- the present technology may be implemented as cloud computing in which a plurality of devices share and jointly process via a network.
- this technology is implemented in cloud services that provide image (moving image) services to arbitrary terminals such as computers, AV (Audio Visual) equipment, portable information processing terminals, and IoT (Internet of Things) devices. You may make it
- a system means a set of multiple components (devices, modules (parts), etc.), and it does not matter whether all the components are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and a single device housing a plurality of modules in one housing, are both systems. .
- Systems, devices, processing units, etc. to which this technology is applied can be used in any field, such as transportation, medical care, crime prevention, agriculture, livestock industry, mining, beauty, factories, home appliances, weather, and nature monitoring. . Moreover, its use is arbitrary.
- “flag” is information for identifying a plurality of states, not only information used for identifying two states of true (1) or false (0), Information that can identify the state is also included. Therefore, the value that this "flag” can take may be, for example, two values of 1/0, or three or more values. That is, the number of bits constituting this "flag” is arbitrary, and may be 1 bit or multiple bits.
- the identification information (including the flag) is assumed not only to include the identification information in the bitstream, but also to include the difference information of the identification information with respect to certain reference information in the bitstream.
- the "flag” and “identification information” include not only that information but also difference information with respect to reference information.
- various types of information (metadata, etc.) related to the encoded data may be transmitted or recorded in any form as long as they are associated with the encoded data.
- the term "associating" means, for example, making it possible to use (link) data of one side while processing the other data. That is, the data associated with each other may be collected as one piece of data, or may be individual pieces of data.
- information associated with coded data (image) may be transmitted on a transmission path different from that of the coded data (image).
- the information associated with the encoded data (image) may be recorded on a different recording medium (or another recording area of the same recording medium) than the encoded data (image). good.
- this "association" may be a part of the data instead of the entire data. For example, an image and information corresponding to the image may be associated with each other in arbitrary units such as multiple frames, one frame, or a portion within a frame.
- a configuration described as one device may be divided and configured as a plurality of devices (or processing units).
- the configuration described above as a plurality of devices (or processing units) may be collectively configured as one device (or processing unit).
- part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit) as long as the configuration and operation of the system as a whole are substantially the same. .
- the above-described program may be executed on any device.
- the device should have the necessary functions (functional blocks, etc.) and be able to obtain the necessary information.
- each step of one flowchart may be executed by one device, or may be executed by a plurality of devices.
- the plurality of processes may be executed by one device, or may be shared by a plurality of devices.
- a plurality of processes included in one step can also be executed as processes of a plurality of steps.
- the processing described as multiple steps can also be collectively executed as one step.
- a computer-executed program may be configured such that the processing of the steps described in the program is executed in chronological order according to the order described in this specification, in parallel, or when calls are executed. It may also be executed individually at necessary timings such as when it is interrupted. That is, as long as there is no contradiction, the processing of each step may be executed in an order different from the order described above. Furthermore, the processing of the steps describing this program may be executed in parallel with the processing of other programs, or may be executed in combination with the processing of other programs.
- the present technology can also take the following configuration. (1) dividing a mesh representing an object with a three-dimensional structure into at least a first patch and a second patch and arranging them in a single image; a generation unit that generates pair information indicating that at least one vertex of the second patch at the same position as the vertex of the first patch in the object is paired; An information processing apparatus comprising: an encoding unit that encodes the pair information. (2) The information processing apparatus according to (1), wherein the pair information is information indicating only the pair formed by the vertices included in the pair information. (3) The information processing apparatus according to (1), wherein the pair information also indicates the pair formed by the vertices not indicated by the pair information.
- the pair information is the first edge of the first patch and the edge of the second patch respectively corresponding to the boundary between the first patch and the second patch in the object before encoding.
- the second edge a combination of the vertices located at both ends of the first edge and the vertices located in the middle of the first edge, and the combination of the vertices located at both ends of the second edge and the second edge.
- the information processing device according to (3), further including information indicating a correspondence relationship between the combinations of the vertices positioned between the two edges.
- the pair information includes the first edge of the first patch and the edge of the second patch respectively corresponding to the boundary between the first patch and the second patch in the object before encoding.
- the information processing according to (3) or (4) including information indicating a correspondence relationship between a scanning direction for the first edge at the time of decoding and a scanning direction for the second edge at the time of decoding, regarding the second edge.
- the pair information indicates that the plurality of vertices of the first patch and the corresponding plurality of vertices of the second patch are each paired; The information processing device described.
- the pair information includes information indicating a group of the vertices of the first patch and a group of the vertices of the second patch. 1.
- the information processing device according to claim 1.
- the information processing apparatus indicates the pair using identification information corresponding to the state of each of the vertices in the object before encoding.
- the identification information is identification information for identifying each vertex among the vertices included in the mesh.
- the identification information is identification information for identifying each vertex among the vertices included in the patch.
- the pair information further includes identification information of the patch.
- the pair information includes identification information of the patch for each pair.
- the information processing apparatus includes identification information of the patch for each of the plurality of pairs.
- the identification information is identification information for identifying each vertex among the vertices located on the boundary of the patch.
- the encoding unit further encodes the list of vertices located on the boundary of the patch.
- the pair information indicates the pair using an absolute value of the identification information.
- the pair information indicates the pair using a relative value of the identification information from the identification information of the other vertex.
- the information processing apparatus indicates the pair based on each coordinate of the plurality of vertices on the two-dimensional plane of the image.
- the pair information indicates the pair using the coordinates of each vertex that constitutes the pair.
- the information processing apparatus indicates relative coordinates of the vertex that is different from the reference vertex with respect to the coordinates of the reference vertex among the plurality of vertices.
- the pair information is different from the reference vertex based on the position of the relative vector between the first patch and the second patch based on the coordinates of the reference vertex among the plurality of vertices.
- the information processing device according to any one of (19) to (21), which indicates relative coordinates of the vertex.
- the pair information is based on the position of the relative vector between the first patch and the second patch with respect to the coordinates of the reference vertex among the plurality of vertices, and the posture is corrected.
- the information processing apparatus according to any one of (19) to (22), which indicates relative coordinates of the vertex that is different from the reference vertex in the second patch in the folded state.
- the pair information is the reference vertex of the pair to be processed, based on the relative coordinates of the vertex different from the reference vertex of the plurality of vertices of the other pair, with reference to the coordinates of the reference vertex.
- the information processing apparatus according to any one of (19) to (23), which indicates relative coordinates of the vertex that are different from. (25) dividing a mesh representing an object of three-dimensional structure into at least a first patch and a second patch and arranging them in a single image; generating pair information indicating that at least one vertex of the second patch at the same position as the position of the vertex of the first patch in the object of is a pair; An information processing method for encoding the generated pair information.
- An information processing apparatus comprising: a correction unit that corrects the reconstructed mesh based on the pair information.
- the correcting unit in the reconstructed mesh, selects one of the vertices of the first patch and the vertices of the second patch indicated by the pair information to be the pair. is deleted, and the deleted vertex connection is converted to the other vertex connection.
- the information processing apparatus (32), wherein the correction unit sets the position of the single vertex to any one of the plurality of vertices.
- the correction unit sets the position of the single vertex based on information indicating one of the plurality of vertices.
- the information processing apparatus according to any one of (32) to (34), wherein the correction unit sets the position of the single vertex to an average of the positions of the plurality of vertices.
- the correcting unit selects one of the vertices of the first patch and the vertices of the second patch indicated by the pair information to be the pair. to the position of the other vertex. (31) to (35).
- a geometry encoding unit that encodes a geometry image in which the patches of the geometry of the mesh are arranged and generates encoded data of the geometry image; a geometry decoding unit that decodes encoded data of the geometry image to generate the geometry image;
- the information processing device according to (51) or (52), wherein the pair information generation unit generates the pair information based on the geometry image generated by the geometry decoding unit.
- dividing a mesh representing an object of three-dimensional structure into at least a first patch and a second patch and placing them in a single image; generating pair information indicating that at least one vertex of the second patch at the same position as the position of the vertex of the first patch in the object of is a pair; An information processing method that encodes the pair information.
- An information processing apparatus comprising: a correction unit that corrects the geometry of vertices that form the pair based on the pair information. (62) When the normal direction of the first patch and the normal direction of the second patch do not match, the correcting unit corrects the vertices of the first patch and the second patch forming the pair.
- the information processing device wherein a vertex of a patch is moved to an intersection of a normal of the first patch and a normal of the second patch. (63) When the normal direction of the first patch and the normal direction of the second patch match, the correcting unit corrects the vertex of the first patch and the second patch forming the pair.
- the information processing device according to (61) or (62), wherein the vertices of the patch are moved to the weighted average positions of the respective positions. (64)
- the correction unit moves the patch to the position indicated by the pair information (61) to (63).
- the information processing device according to any one of .
- the correction unit moves the vertices of the first patch and the vertices of the second patch, which form the pair, to the same positions in the geometry image generated by decoding the encoded data.
- a patch reconstruction unit that reconstructs a patch using the geometry image corrected by the correction unit;
- the information processing apparatus according to any one of (61) to (64), further comprising: a vertex reconstruction unit that reconstructs vertices using the reconstructed patches.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
1.VPCC拡張でのMesh圧縮
2.ペア情報の伝送
3.第1の実施の形態(符号化装置)
4.第2の実施の形態(復号装置)
5.正解座標の導出
6.2次元によるペアリング処理
7.第3の実施の形態(符号化装置)
8.第4の実施の形態(復号装置)
9.付記
<技術内容・技術用語をサポートする文献等>
本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献等に記載されている内容や以下の非特許文献において参照されている他の文献の内容等も含まれる。
非特許文献2:(上述)
"Information technology - Coded Representation of Immersive Media - Part 5: Visual Volumetric Video-based Coding (V3C) and Video-based Point Cloud Compression (V-PCC)", ISO/IEC 23090-5:2020(E),ISO/IEC JTC 1/SC 29/WG 11 w19579
従来、点の位置情報や属性情報等により3次元構造を表すポイントクラウド(Point cloud)等の3Dデータが存在した。
VPCC(Video-based Point Cloud Compression)は、このようなポイントクラウドの符号化技術の1つであり、3次元構造を表す3Dデータであるポイントクラウドデータを、2次元画像用のコーデックを用いて符号化する。
ところで、3次元構造のオブジェクトを表現する3Dデータとして、ポイントクラウドの他に、例えばメッシュ(Mesh)が存在した。メッシュは、図2に示されるように、頂点21同士を結ぶ辺22によって囲まれる平面(多角形)であるポリゴンによって3次元空間のオブジェクトの表面を表現する。そのオブジェクトを表現する3Dデータとしては、図2に示されるように、このメッシュと、各ポリゴンに張り付けられるテクスチャ23とを含む。
このようなメッシュを用いた3Dデータの圧縮方法として、例えば非特許文献1等において、上述したVPCCを拡張してメッシュを用いた3Dデータを圧縮(符号化)する方法が提案された。
そこで、例えば、非特許文献2に記載されているような、ジッパーリング(Zippering)というアルゴリズムが提案された。ジッパーリングでは、3Dで近隣の境界頂点がサーチされ、処理対象の頂点が移動されて、サーチした点と一致させられる(マッチングとも称する)。クラックが発生した部分の各頂点座標をこのように補正することによりクラックが消去される。
そこで、メッシュを再構成する際に互いに同一の位置の頂点とするパッチの頂点のペアを示すペア情報をエンコーダからデコーダに伝送するようにする。つまり、図5の表の最上段に示されるように、ペア情報を伝送する(例えばエンコーダがペア情報を生成して符号化し、デコーダがその符号化データを復号して利用する)ようにする。
次に、ペア情報の生成の仕方について説明する。図5に示される表の上から3段目に示されるように、メッシュをパッチに分割する際に分けられた各頂点(またはエッジ)がペアとされる。このメッシュをパッチに分割する処理をパッチセグメンテーションとも称する。パッチセグメンテーションにおいては、メッシュの互いに隣接するポリゴン(三角形)同士を繋げることにより、パッチが生成される。隣接するポリゴンの情報は、コネクティビティから得られる。隣接するポリゴン同士が互いに異なるパッチになった場合、それらのポリゴンが共有するエッジ(頂点や辺)が複数に分けられる(各頂点が複数のUV座標を有するようになる)。この複数のUV座標のそれぞれに位置する頂点が、ペアとされる。
次に、以上のように生成されるペア情報について説明する。ペア情報は、例えば図5に示される表の上から5段目に示されるように、そのペア情報に含まれる頂点により構成されるペアのみを示すようにしてもよい。換言するに、ペア情報が、メッシュに対してパッチセグメンテーションを行うことにより得られる全てのペアを示す情報であってもよい。
まず、ペア情報が、そのペア情報に含まれる頂点により構成されるペアのみを示す場合について説明する。
ペア情報における各ペアの伝送順について説明する。つまり、ペア情報においてペアがどのような順序で示されるかを説明する。
ペア情報において、ペアを構成する頂点(またはエッジ)を示す情報は任意である。
例えば、図5に示される表の上から15段目に示されるように、ペア情報が、符号化前のオブジェクトにおける頂点それぞれの状態に対応する識別情報を用いてペアを示してもよい。この識別情報はどのような情報であってもよい。
また、例えば、図6に示される表の最上段に示されるように、ペア情報が、上述した識別情報の代わりに、画像の2次元平面における複数の頂点の各座標に基づいてペアを示してもよい。
<ペア毎(全ペア)のペア情報>からここまでは、ペア情報がそのペア情報に含まれる頂点により構成されるペアのみを示す場合について説明した。ここからは、ペア情報が、そのペア情報により示されていない頂点により構成されるペアも示す場合について説明する。
この場合のペア情報に含まれる情報(換言するに、情報の省略の仕方)は任意である。
例えば、図5に示される表の上から7段目に示されるように、ペア情報が、符号化前のオブジェクトにおける第1のパッチと第2のパッチの境界にそれぞれ対応する第1のパッチの第1のエッジおよび第2のパッチの第2のエッジに関し、第1のエッジの両端に位置する頂点と第1のエッジの中間に位置する頂点の組み合わせと、第2のエッジの両端に位置する頂点と第2のエッジの中間に位置する頂点の組み合わせの対応関係を示す情報を含むようにしてもよい。つまり、ペア情報が、エッジの端点が構成するペアと中間点が構成するペアとを示す情報を有し、その他の頂点により構成されるペアに関する情報が省略されてもよい。
また、例えば、図5に示される表の上から8段目に示されるように、ペア情報が、符号化前のオブジェクトにおける第1のパッチと第2のパッチの境界にそれぞれ対応する第1のパッチの第1のエッジおよび第2のパッチの第2のエッジに関し、復号時における第1のエッジに対するスキャン方向と復号時における第2のエッジに対するスキャン方向の対応関係を示す情報を含むようにしてもよい。
次に、<3点ペア>や<2点ペア>において説明したデコーダによる頂点の補間について説明する。<3点ペア>や<2点ペア>において説明したフォーマットのペア情報を取得すると、デコーダの補正部は、そのペア情報において示されていない頂点を補間し、それらの点についてもペアリング処理を行う。つまり、デコーダの補正部は、ペアを構成する頂点であって、ペア情報に含まれない頂点を補間する。
次に、ペアリング処理について説明する。デコーダの補正部はペア情報に基づいてペアリング処理を行う。このペアリング処理において、頂点のマッチングの方法は任意である。
以上のように、ペアリング処理において、ペアを構成する頂点を1つの頂点に変換する場合の、変換後の頂点の座標の決定方法は任意である。
なお、ペア情報は、ペアを構成する頂点(またはエッジ)について全て伝送してもよいし、一部の頂点(またはエッジ)について伝送してもよい。一部の頂点についてのみペア情報を伝送することにより、ペア情報の符号量の増大を抑制することができる。つまり、ペア情報の符号化効率の低減を抑制することができる。
<符号化装置>
以上において説明した本技術は、任意の装置に適用し得る。例えば、図21に示されるような符号化装置300に、本技術を適用することができる。図21は、本技術を適用した情報処理装置の一実施の形態である符号化装置の構成の一例を示すブロック図である。図21に示される符号化装置300は、VPCCを拡張してMeshを用いた3Dデータをビデオフレームとして2次元画像用の符号化方法により符号化する装置である。その際、符号化装置300は、上述した本技術の各種方法の内の、単数の方法を適用して、または複数の方法を組み合わせて適用して、符号化する。
この符号化装置300により実行される符号化処理の流れの例を、図22のフローチャートを参照して説明する。
<復号装置>
本技術はまた、例えば、図23に示されるような復号装置400に適用することができる。図23は、本技術を適用した画像処理装置の一態様である復号装置の構成の一例を示すブロック図である。図23に示される復号装置400は、VPCCを拡張してメッシュを用いた3Dデータをビデオフレームとして2次元画像用の符号化方法により符号化された符号化データを、2次元画像用の復号方法により復号し、メッシュを用いた3Dデータを生成(再構成)する装置である。その際、復号装置400は、上述した本技術の各種方法の内の、単数の方法を適用して、または複数の方法を組み合わせて適用して、符号化データを復号し、3Dデータを再構成する。
この復号装置400により実行される復号処理の流れの例を、図24のフローチャートを参照して説明する。
ペアリング処理において、ペアを構成する頂点を1つの頂点に変換する場合の、変換後の頂点の座標の決定方法として、例えば、符号化前のその頂点の座標(正解座標とも称する)を変換後の頂点の座標としてもよい。つまり、ペアリング処理において、符号化および復号により移動した頂点が元の位置に戻されるようにしてもよい。
第2の実施の形態においては、ペアリング処理が3次元空間において行われる(すなわち、ペアを構成する各頂点の3次元座標が補正される)ように説明した。つまり、この場合、例えば図27に示されるように、ジオメトリの2D復号531が行われ、3Dデータの再構成532が行われた後、3次元空間の3Dデータについてペアリング処理533が行われる。例えば、図27に示されるように、ポリゴン541の頂点542とポリゴン544の頂点545とがペアを構成し、ポリゴン541の頂点543とポリゴン544の頂点546とがペアを構成するとする。そして、ペアリング処理により、頂点545が頂点542の位置に移動され、頂点546が頂点543の位置に移動されるとする。この場合、ペアリング処理により、頂点545の3次元座標(x4, y4, z4)が頂点542の3次元座標(x2, y2, z2)に変換される。また、頂点546の3次元座標(x6, y6, z6)が頂点543の3次元座標(x3, y3, z3)に変換される。
<符号化装置>
図29は、本技術を適用した情報処理装置の一実施の形態である符号化装置の構成の他の例を示すブロック図である。図29に示される符号化装置600は、図21に示される符号化装置300と同様に、VPCCを拡張してMeshを用いた3Dデータをビデオフレームとして2次元画像用の符号化方法により符号化する装置である。この符号化装置600は、ローカルデコード機能を有しており、符号化されたジオメトリを復号し、その復号結果を用いてテクスチャ画像を更新する。その際、符号化装置600は、上述した本技術の各種方法の内の、単数の方法を適用して、または複数の方法を組み合わせて適用して、ペア情報を生成したり、ペアリング処理を行ったりする。
この符号化装置600により実行される符号化処理の流れの例を、図30のフローチャートを参照して説明する。
<復号装置>
図31は、本技術を適用した画像処理装置の一態様である復号装置の構成の一例を示すブロック図である。図31に示される復号装置700は、図23に示される復号装置400と同様に、VPCCを拡張してメッシュを用いた3Dデータをビデオフレームとして2次元画像用の符号化方法により符号化された符号化データを、2次元画像用の復号方法により復号し、メッシュを用いた3Dデータを生成(再構成)する装置である。その際、復号装置700は、上述した本技術の各種方法の内の、単数の方法を適用して、または複数の方法を組み合わせて適用して、符号化データを復号し、3Dデータを再構成する。ただし、復号装置700は、2次元平面においてペアリング処理を行う。
この復号装置700により実行される復号処理の流れの例を、図32のフローチャートを参照して説明する。
以上においては、メッシュを用いた3Dデータを、VPCCという規格を拡張して符号化する場合について説明したが、VPCCの代わりにV3C(Visual Volumetric Video-based Coding)やMIV(metadata immersive video)を適用してもよい。V3CやMIVは、VPCCとほぼ同様の符号化技術を用いた規格であり、VPCCの場合と同様に拡張して、メッシュを用いた3Dデータを符号化することができる。したがって、メッシュを用いた3Dデータの符号化にV3CやMIVを適用する場合も、上述した本技術を適用することができる。
以上においては、メッシュの符号化・復号に本技術を適用する場合について説明したが、本技術は、これらの例に限らず、任意の規格の3Dデータの符号化・復号に対して適用することができる。つまり、上述した本技術と矛盾しない限り、符号化・復号方式等の各種処理、並びに、3Dデータやメタデータ等の各種データの仕様は任意である。また、本技術と矛盾しない限り、上述した一部の処理や仕様を省略してもよい。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
本技術は、任意の構成に適用することができる。例えば、本技術は、様々な電子機器に適用され得る。
本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
(1) 3次元構造のオブジェクトを表現するメッシュを少なくとも第1のパッチと第2のパッチに分割して単一の画像内に配置し、前記第1のパッチの少なくとも1つの頂点と符号化前の前記オブジェクトにおいて前記第1のパッチの頂点の位置と同位置にある前記第2のパッチの少なくとも1つの頂点がペアであることを示すペア情報を生成する生成部と、
前記ペア情報を符号化する符号化部と
を備える情報処理装置。
(2) 前記ペア情報は、前記ペア情報に含まれる前記頂点により構成される前記ペアのみを示す情報である
(1)に記載の情報処理装置。
(3) 前記ペア情報は、前記ペア情報により示されていない前記頂点により構成される前記ペアも示す情報である
(1)に記載の情報処理装置。
(4) 前記ペア情報は、前記符号化前の前記オブジェクトにおける前記第1のパッチと前記第2のパッチの境界にそれぞれ対応する前記第1のパッチの第1のエッジおよび前記第2のパッチの第2のエッジに関し、前記第1のエッジの両端に位置する前記頂点と前記第1のエッジの中間に位置する前記頂点の組み合わせと、前記第2のエッジの両端に位置する前記頂点と前記第2のエッジの中間に位置する前記頂点の組み合わせの対応関係を示す情報を含む
(3)に記載の情報処理装置。
(5) 前記ペア情報は、前記符号化前の前記オブジェクトにおける前記第1のパッチと前記第2のパッチの境界にそれぞれ対応する前記第1のパッチの第1のエッジおよび前記第2のパッチの第2のエッジに関し、復号時における前記第1のエッジに対するスキャン方向と前記復号時における前記第2のエッジに対するスキャン方向の対応関係を示す情報を含む
(3)または(4)に記載の情報処理装置。
(6) 前記ペア情報は、前記第1のパッチの複数の前記頂点と前記第2のパッチの対応する複数の前記頂点がそれぞれペアであることを示す
(1)乃至(5)のいずれかに記載の情報処理装置。
(7) 前記ペア情報は、前記ペアを構成する前記頂点の数を示すパラメータを含む
(6)に記載の情報処理装置。
(8) 前記ペア情報は、前記第1のパッチの複数の前記頂点からなるグループと、前記第2のパッチの複数の前記頂点からなるグループを示す情報を含む
(1)乃至(5)のいずれかに記載の情報処理装置。
(9) 前記ペア情報は、前記符号化前のオブジェクトにおける前記頂点それぞれの状態に対応する識別情報を用いて前記ペアを示す
(1)乃至(8)のいずれかに記載の情報処理装置。
(10) 前記識別情報は、前記メッシュに含まれる前記頂点の中で各頂点を識別するための識別情報である
(9)に記載の情報処理装置。
(11) 前記識別情報は、前記パッチに含まれる前記頂点の中で各頂点を識別するための識別情報である
(9)または(10)に記載の情報処理装置。
(12) 前記ペア情報は、前記パッチの識別情報をさらに含む
(11)に記載の情報処理装置。
(13) 前記ペア情報は、前記ペア毎に前記パッチの識別情報を含む
(12)に記載の情報処理装置。
(14) 前記ペア情報は、複数の前記ペア毎に前記パッチの識別情報を含む
(12)に記載の情報処理装置。
(15) 前記識別情報は、前記パッチの境界に位置する前記頂点の中で各頂点を識別するための識別情報である
(9)乃至(14)のいずれかに記載の情報処理装置。
(16) 前記符号化部は、前記パッチの境界に位置する前記頂点のリストをさらに符号化する
(15)に記載の情報処理装置。
(17) 前記ペア情報は、前記識別情報の絶対値を用いて前記ペアを示す
(9)乃至(16)のいずれかに記載の情報処理装置。
(18) 前記ペア情報は、前記識別情報の、他の前記頂点の前記識別情報からの相対値を用いて前記ペアを示す
(9)乃至(17)のいずれかに記載の情報処理装置。
(19) 前記ペア情報は、前記画像の2次元平面における複数の前記頂点の各座標に基づいて前記ペアを示す
(1)乃至(18)のいずれかに記載の情報処理装置。
(20) 前記ペア情報は、前記ペアを構成する各頂点の前記座標を用いて前記ペアを示す
(19)に記載の情報処理装置。
(21) 前記ペア情報は、前記複数の頂点のうち基準頂点の前記座標を基準とした前記基準頂点と異なる前記頂点の相対座標を示す
(19)または(20)に記載の情報処理装置。
(22) 前記ペア情報は、前記複数の頂点のうち基準頂点の前記座標を基準とした前記第1のパッチと前記第2のパッチの間の相対ベクトルの位置を基準とした前記基準頂点と異なる前記頂点の相対座標を示す
(19)乃至(21)のいずれかに記載の情報処理装置。
(23) 前記ペア情報は、前記複数の頂点のうち基準頂点の前記座標を基準とした前記第1のパッチと前記第2のパッチの間の相対ベクトルの位置を基準とした、姿勢が補正された状態の前記第2のパッチにおける、前記基準頂点と異なる前記頂点の相対座標を示す
(19)乃至(22)のいずれかに記載の情報処理装置。
(24) 前記ペア情報は、他のペアの、前記複数の頂点のうち基準頂点の前記座標を基準とした前記基準頂点と異なる前記頂点の相対座標を基準とした、処理対象ペアの前記基準頂点と異なる前記頂点の相対座標を示す
(19)乃至(23)のいずれかに記載の情報処理装置。
(25) 3次元構造のオブジェクトを表現するメッシュを少なくとも第1のパッチと第2のパッチに分割して単一の画像内に配置し、前記第1のパッチの少なくとも1つの頂点と符号化前の前記オブジェクトにおいて前記第1のパッチの頂点の位置と同位置にある前記第2のパッチの少なくとも1つの頂点がペアであることを示すペア情報を生成し、
生成された前記ペア情報を符号化する
情報処理方法。
再構成された前記メッシュを、前記ペア情報に基づいて補正する補正部と
を備える情報処理装置。
(32) 前記補正部は、再構成された前記メッシュにおいて、前記ペア情報により前記ペアであることが示される前記第1のパッチの頂点と前記第2のパッチの頂点とのうちの一方の頂点を削除し、削除した前記頂点の接続を他方の頂点の接続に変換する
(31)に記載の情報処理装置。
(33) 前記補正部は、前記単数の頂点の位置を、前記複数の頂点の内のいずれかの位置に設定する
(32)に記載の情報処理装置。
(34) 前記補正部は、前記複数の頂点の内のいずれかを示す情報に基づいて、前記単数の頂点の位置を設定する
(33)に記載の情報処理装置。
(35) 前記補正部は、前記単数の頂点の位置を、前記複数の頂点の位置の平均に設定する
(32)乃至(34)のいずれかに記載の情報処理装置。
(36) 前記補正部は、再構成された前記メッシュにおいて、前記ペア情報により前記ペアであることが示される前記第1のパッチの頂点と前記第2のパッチの頂点とのうちの一方の頂点を他方の頂点の位置に移動する
(31)乃至(35)のいずれかに記載の情報処理装置。
(37) 前記補正部は、前記重複点の位置を、前記複数の頂点の内のいずれかの位置に設定する
(36)に記載の情報処理装置。
(38) 前記補正部は、前記複数の頂点の内のいずれかを示す情報に基づいて、前記重複点の位置を設定する
(37)に記載の情報処理装置。
(39) 前記補正部は、前記重複点の位置を、前記複数の頂点の位置の平均に設定する
(36)乃至(38)のいずれかに記載の情報処理装置。
(40) 前記補正部は、再構成された前記メッシュにおいて、前記ペア情報により前記ペアであることが示される前記第1のパッチの頂点と前記第2のパッチの頂点とを含むポリゴンを形成する
(31)乃至(39)のいずれかに記載の情報処理装置。
(41) 前記補正部は、前記ペアを構成する前記頂点であって、前記ペア情報に含まれない前記頂点を補間する
(31)乃至(40)のいずれかに記載の情報処理装置。
(42) 前記補正部は、オキュパンシー画像に基づいて、前記頂点の補間を実行する
(41)に記載の情報処理装置。
(43) 前記補正部は、コネクティビティ情報に基づいて、前記頂点の補間を実行する
(41)または(42)に記載の情報処理装置。
(44) 3次元構造のオブジェクトを表現するメッシュを少なくとも第1のパッチと第2のパッチに分割して単一の画像内に配置し、前記第1のパッチの少なくとも1つの頂点と符号化前の前記オブジェクトにおいて前記第1のパッチの頂点の位置と同位置にある前記第2のパッチの少なくとも1つの頂点がペアであることを示すペア情報の符号化データを復号し、
再構成された前記メッシュを、前記符号化データを復号して得られた前記ペア情報に基づいて補正する
情報処理方法。
前記ペア情報を符号化するペア情報符号化部と
を備える情報処理装置。
(52) 前記ペア情報は、前記ペアを構成する各頂点を互いに同一の位置に移動させる場合の、移動先となる位置を示す情報を含む
(51)に記載の情報処理装置。
(53) 前記メッシュのジオメトリのパッチが配置されたジオメトリ画像を符号化し、前記ジオメトリ画像の符号化データを生成するジオメトリ符号化部と、
前記ジオメトリ画像の符号化データを復号し、前記ジオメトリ画像を生成するジオメトリ復号部と
を備え、
前記ペア情報生成部は、前記ジオメトリ復号部により生成された前記ジオメトリ画像に基づいて前記ペア情報を生成する
(51)または(52)に記載の情報処理装置。
(54) 3次元構造のオブジェクトを表現するメッシュを少なくとも第1のパッチと第2のパッチに分割して単一の画像内に配置し、前記第1のパッチの少なくとも1つの頂点と符号化前の前記オブジェクトにおいて前記第1のパッチの頂点の位置と同位置にある前記第2のパッチの少なくとも1つの頂点がペアであることを示すペア情報を生成し、
前記ペア情報を符号化する
情報処理方法。
前記ペアを構成する頂点のジオメトリを、前記ペア情報に基づいて補正する補正部と
を備える情報処理装置。
(62) 前記補正部は、前記第1のパッチの法線方向と前記第2のパッチの法線方向とが一致しない場合、前記ペアを構成する前記第1のパッチの頂点および前記第2のパッチの頂点を、前記第1のパッチの法線と前記第2のパッチの法線との交点に移動させる
(61)に記載の情報処理装置。
(63) 前記補正部は、前記第1のパッチの法線方向と前記第2のパッチの法線方向とが一致する場合、前記ペアを構成する前記第1のパッチの頂点および前記第2のパッチの頂点を、それぞれの位置の重み付き平均の位置に移動させる
(61)または(62)に記載の情報処理装置。
(64) 前記補正部は、前記第1のパッチの法線方向と前記第2のパッチの法線方向とが一致する場合、前記ペア情報により示される位置に移動させる
(61)乃至(63)のいずれかに記載の情報処理装置。
(65) 前記補正部は、符号化データが復号されて生成されたジオメトリ画像において、前記ペアを構成する前記第1のパッチの頂点および前記第2のパッチの頂点を、互いに同一の位置に移動させ、
前記補正部により補正された前記ジオメトリ画像を用いてパッチを再構成するパッチ再構成部と、
再構成された前記パッチを用いて頂点を再構成する頂点再構成部と
をさらに備える(61)乃至(64)のいずれかに記載の情報処理装置。
(66) 3次元構造のオブジェクトを表現するメッシュを少なくとも第1のパッチと第2のパッチに分割して単一の画像内に配置し、前記第1のパッチの少なくとも1つの頂点と符号化前の前記オブジェクトにおいて前記第1のパッチの頂点の位置と同位置にある前記第2のパッチの少なくとも1つの頂点がペアであることを示すペア情報の符号化データを復号し、前記ペア情報を取得し、
前記ペアを構成する頂点のジオメトリを、前記ペア情報に基づいて補正する
情報処理方法。
Claims (20)
- 3次元構造のオブジェクトを表現するメッシュを少なくとも第1のパッチと第2のパッチに分割して単一の画像内に配置し、前記第1のパッチの少なくとも1つの頂点と符号化前の前記オブジェクトにおいて前記第1のパッチの頂点の位置と同位置にある前記第2のパッチの少なくとも1つの頂点がペアであることを示すペア情報を生成する生成部と、
前記ペア情報を符号化する符号化部と
を備える情報処理装置。 - 前記ペア情報は、前記ペア情報に含まれる前記頂点により構成される前記ペアのみを示す情報である
請求項1に記載の情報処理装置。 - 前記ペア情報は、前記符号化前の前記オブジェクトにおける前記第1のパッチと前記第2のパッチの境界にそれぞれ対応する前記第1のパッチの第1のエッジおよび前記第2のパッチの第2のエッジに関し、前記第1のエッジの両端に位置する前記頂点と前記第1のエッジの中間に位置する前記頂点の組み合わせと、前記第2のエッジの両端に位置する前記頂点と前記第2のエッジの中間に位置する前記頂点の組み合わせの対応関係を示す情報を含む
請求項1に記載の情報処理装置。 - 前記ペア情報は、前記符号化前の前記オブジェクトにおける前記第1のパッチと前記第2のパッチの境界にそれぞれ対応する前記第1のパッチの第1のエッジおよび前記第2のパッチの第2のエッジに関し、復号時における前記第1のエッジに対するスキャン方向と前記復号時における前記第2のエッジに対するスキャン方向の対応関係を示す情報を含む
請求項1に記載の情報処理装置。 - 前記ペア情報は、前記第1のパッチの複数の前記頂点と前記第2のパッチの対応する複数の前記頂点がそれぞれペアであることを示す
請求項1に記載の情報処理装置。 - 前記ペア情報は、前記ペアを構成する前記頂点の数を示すパラメータを含む
請求項5に記載の情報処理装置。 - 前記ペア情報は、前記第1のパッチの複数の前記頂点からなるグループと、前記第2のパッチの複数の前記頂点からなるグループを示す情報を含む
請求項1に記載の情報処理装置。 - 前記ペア情報は、前記符号化前のオブジェクトにおける前記頂点それぞれの状態に対応する識別情報を用いて前記ペアを示す
請求項1に記載の情報処理装置。 - 前記ペア情報は、前記画像の2次元平面における複数の前記頂点の各座標に基づいて前記ペアを示す
請求項1に記載の情報処理装置。 - 前記ペア情報は、前記複数の頂点のうち基準頂点の前記座標を基準とした前記基準頂点と異なる前記頂点の相対座標を示す
請求項9に記載の情報処理装置。 - 前記ペア情報は、前記複数の頂点のうち基準頂点の前記座標を基準とした前記第1のパッチと前記第2のパッチの間の相対ベクトルの位置を基準とした前記基準頂点と異なる前記頂点の相対座標を示す
請求項10に記載の情報処理装置。 - 前記ペア情報は、前記複数の頂点のうち基準頂点の前記座標を基準とした前記第1のパッチと前記第2のパッチの間の相対ベクトルの位置を基準とした、姿勢が補正された状態の前記第2のパッチにおける、前記基準頂点と異なる前記頂点の相対座標を示す
請求項11に記載の情報処理装置。 - 前記ペア情報は、他のペアの、前記複数の頂点のうち基準頂点の前記座標を基準とした前記基準頂点と異なる前記頂点の相対座標を基準とした、処理対象ペアの前記基準頂点と異なる前記頂点の相対座標を示す
請求項9に記載の情報処理装置。 - 3次元構造のオブジェクトを表現するメッシュを少なくとも第1のパッチと第2のパッチに分割して単一の画像内に配置し、前記第1のパッチの少なくとも1つの頂点と符号化前の前記オブジェクトにおいて前記第1のパッチの頂点の位置と同位置にある前記第2のパッチの少なくとも1つの頂点がペアであることを示すペア情報を生成し、
生成された前記ペア情報を符号化する
情報処理方法。 - 3次元構造のオブジェクトを表現するメッシュを少なくとも第1のパッチと第2のパッチに分割して単一の画像内に配置し、前記第1のパッチの少なくとも1つの頂点と符号化前の前記オブジェクトにおいて前記第1のパッチの頂点の位置と同位置にある前記第2のパッチの少なくとも1つの頂点がペアであることを示すペア情報の符号化データを復号し、前記ペア情報を得る復号部と、
再構成された前記メッシュを、前記ペア情報に基づいて補正する補正部と
を備える情報処理装置。 - 前記補正部は、再構成された前記メッシュにおいて、前記ペア情報により前記ペアであることが示される前記第1のパッチの頂点と前記第2のパッチの頂点とのうちの一方の頂点を削除し、削除した前記頂点の接続を他方の頂点の接続に変換する
請求項15に記載の情報処理装置。 - 前記補正部は、再構成された前記メッシュにおいて、前記ペア情報により前記ペアであることが示される前記第1のパッチの頂点と前記第2のパッチの頂点とのうちの一方の頂点を他方の頂点の位置に移動する
請求項15に記載の情報処理装置。 - 前記補正部は、再構成された前記メッシュにおいて、前記ペア情報により前記ペアであることが示される前記第1のパッチの頂点と前記第2のパッチの頂点とを含むポリゴンを形成する
請求項15に記載の情報処理装置。 - 前記補正部は、前記ペアを構成する前記頂点であって、前記ペア情報に含まれない前記頂点を補間する
請求項15に記載の情報処理装置。 - 3次元構造のオブジェクトを表現するメッシュを少なくとも第1のパッチと第2のパッチに分割して単一の画像内に配置し、前記第1のパッチの少なくとも1つの頂点と符号化前の前記オブジェクトにおいて前記第1のパッチの頂点の位置と同位置にある前記第2のパッチの少なくとも1つの頂点がペアであることを示すペア情報の符号化データを復号し、
再構成された前記メッシュを、前記符号化データを復号して得られた前記ペア情報に基づいて補正する
情報処理方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21947223.0A EP4361959A4 (en) | 2021-06-25 | 2021-11-25 | DEVICE AND METHOD FOR PROCESSING INFORMATION |
JP2023529443A JPWO2022269944A1 (ja) | 2021-06-25 | 2021-11-25 | |
KR1020237042154A KR20240024069A (ko) | 2021-06-25 | 2021-11-25 | 정보 처리 장치 및 방법 |
CN202180099545.0A CN117546207A (zh) | 2021-06-25 | 2021-11-25 | 信息处理装置和方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021-105856 | 2021-06-25 | ||
JP2021105856 | 2021-06-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022269944A1 true WO2022269944A1 (ja) | 2022-12-29 |
Family
ID=84544382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/043204 WO2022269944A1 (ja) | 2021-06-25 | 2021-11-25 | 情報処理装置および方法 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP4361959A4 (ja) |
JP (1) | JPWO2022269944A1 (ja) |
KR (1) | KR20240024069A (ja) |
CN (1) | CN117546207A (ja) |
WO (1) | WO2022269944A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116030022A (zh) * | 2023-02-01 | 2023-04-28 | 天津风霖物联网科技有限公司 | 建筑预制构件的质量检测系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200219286A1 (en) * | 2019-01-09 | 2020-07-09 | Samsung Electronics Co., Ltd. | Patch splitting for improving video-based point cloud compression performance |
US20210092430A1 (en) * | 2019-09-19 | 2021-03-25 | Nokia Technologies Oy | Video-Based Point Cloud Compression Model to World Signalling Information |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10846814B2 (en) * | 2018-07-31 | 2020-11-24 | Intel Corporation | Patch processing mechanism |
US11450030B2 (en) * | 2019-09-24 | 2022-09-20 | Apple Inc. | Three-dimensional mesh compression using a video encoder |
-
2021
- 2021-11-25 CN CN202180099545.0A patent/CN117546207A/zh active Pending
- 2021-11-25 WO PCT/JP2021/043204 patent/WO2022269944A1/ja active Application Filing
- 2021-11-25 EP EP21947223.0A patent/EP4361959A4/en active Pending
- 2021-11-25 KR KR1020237042154A patent/KR20240024069A/ko unknown
- 2021-11-25 JP JP2023529443A patent/JPWO2022269944A1/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200219286A1 (en) * | 2019-01-09 | 2020-07-09 | Samsung Electronics Co., Ltd. | Patch splitting for improving video-based point cloud compression performance |
US20210092430A1 (en) * | 2019-09-19 | 2021-03-25 | Nokia Technologies Oy | Video-Based Point Cloud Compression Model to World Signalling Information |
Non-Patent Citations (7)
Title |
---|
"Information technology - Coded Representation of Immersive Media - Part 5: Visual Volumetric Video-based Coding (V3C", VIDEO-BASED POINT CLOUD COMPRESSION (V-PCC |
DANILLO GRAZIOSI (SONY), ALEXANDRE ZAGHETTO (SONY), ALI TABATABAI (SONY): "[V-PCC][EE2.6-related] Mesh Geometry Smoothing Filter", 132. MPEG MEETING; 20201012 - 20201016; ONLINE; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), no. m55374, 13 October 2020 (2020-10-13), XP030291885 * |
DANILLO GRAZIOSI (SONY), ALEXANDRE ZAGHETTO (SONY), ALI TABATABAI (SONY): "[V-PCC][EE2.6-related] Mesh Patch Data", 132. MPEG MEETING; 20201012 - 20201016; ONLINE; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), no. m55368, 7 October 2020 (2020-10-07), XP030292889 * |
DANILLO GRAZIOSIALEXANDRE ZAGHETTOALI TABATABAI: "VPCC] [EE2.6-related] Mesh Geometry Smoothing Filter", ISO/IEC JTC 1/SC 29/WG 7, October 2020 (2020-10-01), pages 55374 |
DANILLO GRAZIOSIALEXANDRE ZAGHETTOALI TABATABAI: "VPCC] [EE2.6-related] Mesh Patch Data", ISO/IEC JTC 1/SC 29/WG 7 M 55368, October 2020 (2020-10-01) |
See also references of EP4361959A4 |
TANG DANHANG; SINGH SAURABH; CHOU PHILIP A.; HANE CHRISTIAN; DOU MINGSONG; FANELLO SEAN; TAYLOR JONATHAN; DAVIDSON PHILIP; GULERYU: "Deep Implicit Volume Compression", 2020 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR), IEEE, 13 June 2020 (2020-06-13), pages 1290 - 1300, XP033805314, DOI: 10.1109/CVPR42600.2020.00137 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116030022A (zh) * | 2023-02-01 | 2023-04-28 | 天津风霖物联网科技有限公司 | 建筑预制构件的质量检测系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20240024069A (ko) | 2024-02-23 |
EP4361959A1 (en) | 2024-05-01 |
CN117546207A (zh) | 2024-02-09 |
EP4361959A4 (en) | 2024-06-19 |
JPWO2022269944A1 (ja) | 2022-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7384159B2 (ja) | 画像処理装置および方法 | |
US11546512B2 (en) | Method and apparatus for reconstructing 360-degree image according to projection format | |
WO2019198523A1 (ja) | 画像処理装置および方法 | |
US11004173B2 (en) | Method for processing projection-based frame that includes at least one projection face packed in 360-degree virtual reality projection layout | |
KR20240049654A (ko) | 영상 데이터 부호화/복호화 방법 및 장치 | |
US20230068178A1 (en) | A method, an apparatus and a computer program product for volumetric video encoding and decoding | |
US11979607B2 (en) | Apparatus and method for processing point cloud data | |
US11836953B2 (en) | Video based mesh compression | |
CN114762334B (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
RU2767771C1 (ru) | Способ и оборудование для кодирования/декодирования облака точек, представляющего трехмерный объект | |
US20230059625A1 (en) | Transform-based image coding method and apparatus therefor | |
WO2022269944A1 (ja) | 情報処理装置および方法 | |
WO2021193213A1 (ja) | 情報処理装置、3dモデル生成方法およびプログラム | |
WO2023181875A1 (ja) | 情報処理装置および方法 | |
US20220360823A1 (en) | Device and method for processing point cloud data | |
CN111768482A (zh) | 拼贴扩充方法、编码器与解码器 | |
US20220319053A1 (en) | Point cloud data processing device and method | |
WO2023095625A1 (ja) | 情報処理装置および方法 | |
WO2023127513A1 (ja) | 情報処理装置および方法 | |
WO2023281929A1 (ja) | 情報処理装置および方法 | |
WO2022201787A1 (ja) | 画像処理装置および方法 | |
US20230410374A1 (en) | Method and apparatus for mesh compression using point cloud coding | |
WO2022230941A1 (ja) | 情報処理装置および方法 | |
US20240153147A1 (en) | V3c syntax extension for mesh compression | |
US20240020885A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device |
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: 21947223 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2023529443 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202180099545.0 Country of ref document: CN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2021947223 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: 2021947223 Country of ref document: EP Effective date: 20240125 |