The present disclosure relates to an information processing device and method, and more particularly to an information processing device and method that can mitigate a reduction in the quality of 3D data due to encoding and decoding.
Conventionally, a mesh has been used as 3D data that represents an object with a three-dimensional shape. As a mesh compression method, a method of extending video-based point cloud compression (VPCC) to compress a mesh has been proposed (e.g., see Non-Patent Document 1).
However, in this method, the vertex of the patch boundary may be distorted due to encoding and decoding to cause cracks (tears) in the object (3D data), leading to a deterioration in appearance. Therefore, an algorithm called “zippering” has been proposed, in which neighboring boundary vertices are searched in 3D and vertex coordinates are moved to correct the cracks (e.g., see Non-Patent Document 2).
However, correcting the position of the boundary vertex located at the patch boundary, as in this zippering, may change the positional relationship with the surrounding vertices of the boundary and reduce the quality of the 3D data.
The present disclosure has been made in view of such a situation, and aims to mitigate a reduction in the quality of 3D data due to encoding and decoding.
An information processing apparatus according to one aspect of the present technology is an information processing device including: a decoding unit that decodes a bitstream obtained by dividing a mesh that represents an object with a three-dimensional structure into at least a first patch and a second patch, placing the first patch and the second patch within a single image, and encoding the single image; a boundary correction unit that executes a boundary correction process to correct a geometry for a boundary vertex located at a boundary of the patches decoded; and a smoothing unit that sets the boundary vertex subjected to the boundary correction process as a reference point and executes a smoothing process to smooth a geometry for a vertex within a partial area based on the reference point.
An information processing method according to one aspect of the present technology is an information processing method including: decoding a bitstream obtained by dividing a mesh that represents an object with a three-dimensional structure into at least a first patch and a second patch, placing the first patch and the second patch within a single image, and encoding the single image; executing a boundary correction process to correct a geometry for a boundary vertex located at a boundary of the patches decoded; and setting the boundary vertex subjected to the boundary correction process as a reference point and executing a smoothing process to smooth a geometry for a vertex within a partial area based on the reference point.
An information processing apparatus according to another aspect of the present technology is an information processing device including: a smoothing information generation unit that uses a boundary vertex subjected to a boundary correction process as a reference point to generate smoothing information including information regarding a smoothing process to smooth a geometry of a vertex within a partial area based on the reference point; and a provision unit that provides the smoothing information. The boundary vertex is a vertex located at a boundary of a patch corresponding to a part of a mesh that represents an object with a three-dimensional structure, and the boundary correction process is a process of correcting a geometry of the boundary vertex.
An information processing method according to another aspect of the present technology includes: setting a boundary vertex subjected to a boundary correction process as a reference point, and generating smoothing information including information regarding a smoothing process to smooth a geometry of a vertex within a partial area based on the reference point; and providing the smoothing information. The boundary vertex is a vertex located at a boundary of a patch corresponding to a part of a mesh that represents an object with a three-dimensional structure. The boundary correction process is an information processing method that is a process of correcting the geometry of the boundary vertex.
In an information processing device method according to one aspect of the present technology, a bitstream is decoded, the bitstream having been obtained by dividing a mesh that represents an object with a three-dimensional structure into at least a first patch and a second patch, placing the first patch and the second patch within a single image, and encoding the single image. A boundary correction process is executed to correct a geometry for a boundary vertex located at a boundary of the patches decoded. The boundary vertex subjected to the boundary correction process is set as a reference point, and a smoothing process is executed to smooth a geometry for a vertex within a partial area based on the reference point.
In an information processing device and method according to another aspect of the present technology, setting a boundary vertex subjected to a boundary correction process as a reference point, smoothing information is generated including information regarding a smoothing process to smooth a geometry of a vertex within a partial area based on the reference point. The smoothing information is then provided.
Hereinafter, a mode for carrying out the present disclosure (hereinafter referred to as an embodiment) will be described. Note that the description will be given in the following order.
The scope disclosed in the present technology includes, in addition to the contents disclosed in the embodiment, contents described in the following Non-Patent Documents and the like known at the time of filing, the contents of other documents referred to in the following Non-Patent Documents and the like.
That is, the contents described in the above Non-Patent Documents, the contents of the other documents referred to in the Non-Patent Documents, and the like are also basis for determining the support requirement.
Conventionally, there has been 3D data such as a point cloud that represents a three-dimensional structure with point position information, attribute information, and the like.
For example, in the case of a point cloud, a three-dimensional structure (an object with a three-dimensional shape) is represented as a set of large number of points. The point cloud includes position information (also referred to as geometry) and attribute information (also referred to as attribute) of each point. The attribute can include any information. For example, color information, reflectance information, normal line information, and the like of each point may be included in the attribute. As described above, 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.
Video-based point cloud compression (VPCC) is one of such point cloud encoding techniques, and encodes point cloud data, which is 3D data representing a three-dimensional structure, using a codec for two-dimensional images.
In VPCC, the geometry and the attribute of a point cloud are each decomposed into small areas (also referred to as patches), and each patch is projected onto a projection surface that is a two-dimensional plane. For example, the geometry and the attribute are projected onto any of six surfaces of a bounding box containing the object. The geometry and the attribute projected on the projection surface are also referred to as projection images. Furthermore, the patch projected on the projection surface is also referred to as a patch image.
For example, the geometry of a point cloud 1, which shows an object with a three-dimensional structure illustrated in A of
The attribute of the point cloud 1 is also decomposed into patches 2 similarly to the geometry, and each patch is projected onto the same projection surface as the geometry. That is, a patch image of an attribute, having the same size and shape as the patch image of the geometry, is generated. Each pixel value of the patch image of the attribute indicates an attribute (color, normal line vector, reflectance, etc.) of a point at the same position of the patch image of the corresponding geometry.
Then, each patch image thus generated is placed within a frame image (also referred to as a video frame) of a video sequence. That is, each patch image on the projection surface is placed on a predetermined two-dimensional plane.
For example, the frame image in which the patch images of the geometry are placed is also referred to as a geometry video frame. Furthermore, this geometry video frame is also referred to as a geometry image, a geometry map, or the like. The geometry image 11 illustrated in C of
Furthermore, the frame image in which the patch images of the attribute are placed is also referred to as an attribute video frame. In addition, the attribute video frame is also referred to as an attribute image or an attribute map. An attribute image 12 illustrated in D of
Then, these video frames are encoded by an encoding method for two-dimensional images, such as, for example, advanced video coding (AVC) or high efficiency video coding (HEVC). That is, point cloud data, which is 3D data representing a three-dimensional structure, can be encoded using a codec for two-dimensional images. Generally, compared to a 3D data encoder, a 2D data encoder is more widespread and can be implemented at lower cost. That is, by applying the video-based approach as described above, an increase in cost can be reduced.
Note that, in the case of such a video-based approach, an occupancy image (also referred to as an occupancy map) can also be used. The occupancy image is map information indicating the presence or absence of a projection image (patch image) for each N×N pixel block in the geometry video frame and the attribute video frame. For example, an occupancy image uses the value “1” to indicate an area (N×N pixel block) in the geometry or the attribute image where a patch image exists, and uses the value “0” to indicate an area (N×N pixel block) where a patch image does not exist.
Such an occupancy image is encoded as data different from the geometry image and the attribute image and transmitted to the decoding side. By referring to this occupancy map, a decoder can determine whether or not the area is an area where the patch exists, thereby enabling a reduction in the influence of noise and the like that occur due to encoding/decoding, and more accurate reconstruction of the point cloud. For example, even when a depth value changes due to encoding/decoding, by referring to the occupancy map, the decoder can ignore the depth value of the area where no patch image exists (avoid processing the depth value as the position information of the 3D data).
For example, an occupancy image 13 as illustrated in E of
Note that, similarly to the geometry video frame, the attribute video frame, and the like, this occupancy image can also be transmitted as a video frame. That is, similarly to the geometry and the attribute, encoding is performed by an encoding method for two-dimensional images, such as AVC or HEVC.
In other words, in the case of VPCC, the geometry and the attribute of the point cloud are projected onto the same projection surface and are placed at the same position in the frame image. That is, the geometry and the attribute of each point are associated with each other by the position on the frame image.
Meanwhile, for example, there has been a mesh, in addition to a point cloud, as 3D data that represents an object by a three-dimensional structure. As illustrated in
For example, as illustrated in the lower row of
In the case of 3D data using meshes, unlike the case of the VPCC described above, the correspondence between each vertex 21 and the texture 23 is indicated by the UV map 34. Thus, as in the example of
As a method of compressing 3D data using such a mesh, for example, the method of extending the VPCC described above to compress 3D data using a mesh has been proposed in Non-Patent Document 1 and the like.
However, in this method, the vertex of the patch boundary may be distorted due to encoding and decoding to cause cracks (tears) in the object (3D data), leading to a deterioration in appearance.
In the mesh, as illustrated in A of
In contrast, in VPCC, as illustrated in B of
That is, a vertex shared by a plurality of polygons in a mesh is placed as a vertex constituting each polygon in a geometry image, and thus can be placed as a plurality of points. For example, in the case of the example of B of
As described above, one vertex in the mesh can be represented as a plurality of vertices in the geometry image. Furthermore, a plurality of vertices existing at the same position in the mesh (also referred to as overlapping points) may be placed at different positions in the geometry image.
When encoding distortion occurs (positional deviation occurs) in the geometry of such vertices, each vertex of the originally single geometry becomes a vertex at a position different from each other when the mesh is reconfigured, and cracks (tears) may occur in the object (mesh). That is, the quality of the 3D data using the mesh may be reduced.
Therefore, for example, an algorithm called zippering as described in Non-Patent Document 2 has been proposed. In zippering, neighboring boundary vertices are searched in 3D, and the vertex to be processed is moved to match the searched point (also referred to as matching). The coordinates of each vertex in a cracked portion are corrected in this way to erase the crack
For example, as shown in
The boundary correction process is not limited to zippering. For example, pair information regarding a combination of vertices to be matched (a pair of vertices) may be transmitted from the encoder to the decoder, and correction may be performed on the basis of the pair information to match the position of each vertex constituting the pair.
For example, as illustrated in A of
By extending VPCC and encoding the mesh, for example, as illustrated in B of
In such a case, the encoder generates pair information that represents the vertices 71-1, 71-2, the vertices 72-1, 72-2, and the edges 75-1, 75-2 as pairs, respectively. The decoder performs matching according to the pair information. That is, the decoder corrects the positions of the vertices 71-1, 71-2 to become one vertex after reconfiguration. Similarly, the decoder also corrects the positions of the vertices 72-1, 72-2 to become one vertex after reconfiguration. With this correction, the edge 75-1 and the edge 75-2 also become one edge after reconfiguration. Therefore, the occurrence of cracks can be reduced.
Since which vertices are matched is indicated by the pair information (transmitted from the encoder), the decoder can match the vertices more reliably and accurately than in the case of zippering. That is, the cracks can be erased more reliably, and matching with a more appropriate vertex can be performed (the occurrence of discontinuity of texture can be reduced). Therefore, it is possible to mitigate a reduction in the quality of the 3D data due to encoding and decoding. In addition, since a search processing is not required, an increase in processing load can be reduced.
Note that, in the present specification, a “pair” refers to a “set” (which may also be represented as a “pair” or a “group”) including a plurality of vertices of patches generated from a single vertex in a mesh. That is, each vertex constituting the pair correspond to the same vertex in the mesh. In other words, the “pair information” indicating this pair is information indicating a correspondence between vertices of a plurality of patches (which vertex corresponds to which vertex). Note that the pair may include three or more vertices. That is, one vertex in the mesh may be divided into three or more patches.
In addition, the boundary correction process based on such pair information is also referred to as a pairing process.
Note that, in the above description, an example has been described in which one vertex in a mesh is divided into a plurality of patches, but each vertex constituting a pair may correspond to an “overlapping point” in the mesh. That is, a plurality of vertices at the same position in the mesh may be divided into different patches to form a pair.
Furthermore, in the above description, a pair has been described to be constituted by vertices, but may be constituted by “edges” instead of vertices. Adjacent polygons share not only vertices but also “sides” (“connections” connecting vertices). A “set” of consecutive sides or vertices shared by a pair of patches is also referred to as an “edge”. That is, the pair may indicate a “set” including a plurality of edges. In other words, the pair information may be information indicating a correspondence relationship between edges of a plurality of patches.
When the boundary correction process such as the zippering or pairing process described above is performed, only the boundary vertices of the patch are corrected (i.e., move). In other words, vertices inside the patch (also referred to as in-patch vertices) are not corrected (do not move) by the boundary correction. Hence the boundary correction may change the positional relationship between the boundary vertices and its surrounding in-patch vertices. Therefore, there has been a risk of a reduction in the subjective quality of the 3D data, such as deformation of an object with a three-dimensional structure. For example, in the displayed image, there has been a risk of a reduction in the subjective image, such as a change in the shape of the 3D object compared to the state before encoding.
Therefore, as described above, when VPCC is extended to compress (encode) 3D data using a mesh, and boundary correction is performed after decoding, as illustrated in the top row of the table in
For example, then information processing device incudes: a decoding unit that decodes a bitstream obtained by dividing a mesh that represents an object with a three-dimensional structure into at least a first patch and a second patch, placing the first patch and the second patch within a single image, and encoding the single image; a boundary correction unit that executes a boundary correction process to correct a geometry for a boundary vertex located at a boundary of the patches decoded; and a smoothing unit that sets the boundary vertex subjected to the boundary correction process as a reference point and executes a smoothing process to smooth a geometry for a vertex within a partial area based on the reference point.
For example, in the information processing method, a bitstream is decoded, the bitstream having been obtained by dividing a mesh that represents an object with a three-dimensional structure into at least a first patch and a second patch, placing the first patch and the second patch within a single image, and encoding the single image. A boundary correction process is executed to correct a geometry for a boundary vertex located at a boundary of the patches decoded. The boundary vertex subjected to the boundary correction process is set as a reference point, and a smoothing process is executed to smooth a geometry for a vertex within a partial area based on the reference point.
Here, the boundary correction process is a process of correcting the geometry of the boundary vertices, such as the zippering or pairing process described above. The smoothing process is a process of correcting the positions of the vertices to reduce variations of the difference in position between the vertices, and is also referred to as the smoothing process. The decoder sets the boundary vertex subjected to the boundary correction process as a reference point, and performs the smoothing process on the vertex within the partial area specified on the basis of the reference point. Note that, since the reference point has been corrected to a more appropriate position by the boundary correction process, the position of the reference point is not corrected in the smoothing process (the reference point is not a correction target).
A more specific example will be described. For example, as illustrated in
In such a case, it is assumed that the boundary correction such as the zippering or the pairing process is performed, and the positions of the vertex 114′ and the vertex 114″, which are the boundary vertices of the patches, are corrected to the original position of the vertex 114 as illustrated in
Therefore, by performing the smoothing process on the surrounding vertices of the boundary-corrected boundary vertices (the vertex 114′ and the vertex 114″), it is possible to reduce the variations of the difference in position between the vertices, as illustrated in
When Method 1 described above is applied, as illustrated in the second row from the top of the table in
When Method 1-1 is applied, as illustrated in the third row from the top of the table in
For example, a zippered boundary vertex may be used as the reference point. In addition, among the zippered boundary vertices, only the boundary vertex satisfying some condition may be used as the reference point. For example, a boundary vertex where the amount of movement by zippering is larger than a predetermined threshold may be used as the reference point. In addition, a boundary vertex having a difference in position from an adjacent vertex larger than a predetermined threshold may be used as the reference point.
Furthermore, for example, the boundary vertex subjected to the pairing process may be used as the reference point. Moreover, among the boundary vertices subjected to the pairing process, only the boundary vertex satisfying some condition may be used as the reference point. For example, a boundary vertex where the amount of movement by pairing is larger than a predetermined threshold may be used as the reference point. In addition, a boundary vertex having a difference in position from an adjacent vertex larger than a predetermined threshold may be used as the reference point.
Furthermore, when Method 1-1 described above is applied, as illustrated in the fourth row from the top of the table in
For example, a triangle including the reference point and a triangle reached through a path of k (k is any natural number) edges or fewer within a patch may be set as target triangles, and an inner vertex of this group of target triangles may be set as the correction target point. Furthermore, an external vertex of the group of target triangles may be used as the correction utilization point. Note that the correction target point is a vertex other than correction target points used in the smoothing process. For example, surrounding vertices of a partial area where the correction target point exists (a partial area specified on the basis of the reference point) are set as the correction utilization points.
For example, in a patch 150 illustrated in
Furthermore, for example, a point connected to the reference point through a path of k (k is any natural number) edges or fewer within the patch may be set as the correction target point. In addition, a point connected to the reference point via k+1 (or more) edges may be used as the correction utilization point. For example, in a patch 160 illustrated in
Furthermore, for example, k (k is any natural number) vertices from the side closer to the reference point within the patch may be set as the correction target points. In addition, a vertex (excluding the correction target point) connected to the correction target point by an edge may be used as the correction utilization point. For example, in a patch 170 illustrated in
Then, a vertex (excluding the correction target point) connected to the correction target point by an edge is set as the correction utilization point.
Furthermore, for example, a vertex within the patch that is a distance k (k is any positive value) or less from the reference point may be set as the correction target point. In addition, a vertex (excluding the correction target point) connected to the correction target point by an edge may be used as the correction utilization point. For example, in a patch 180 illustrated in
Furthermore, when Method 1-1 described above is applied, as illustrated in the fifth row from the top of the table in
For example, in the process (grid smoothing) described in Non-Patent Document 4, a point near a patch boundary in the 3D is brought to the center of gravity. However, in the case of this process, the correction target point (in other words, the reference point for specifying the correction target point) cannot be specified. Therefore, the position of the boundary vertex, which is the reference point, may also be corrected. In contrast, since the 3D smoothing process described above can specify the reference point (correction target point) and execute the process, it is possible to smooth the difference in position between the vertices without correcting the position of the boundary vertex corrected to a more preferable position by the boundary correction process. Therefore, it is possible to mitigate a reduction in the quality of the 3D data due to encoding and decoding.
Note that the boundary correction process is executed before the smoothing process. Thus, when the 3D smoothing process is applied, the boundary correction process may be performed in three-dimensional space or in a two-dimensional image. When the boundary correction process is performed in three-dimensional space, the boundary correction process such as zippering or the pairing process is performed on the boundary vertex in three-dimensional space after the 3D data (mesh) is reconfigured. That is, in this case, the three-dimensional coordinates (also referred to as 3D coordinates) of the boundary vertex are corrected by the boundary correction process. The boundary correction process performed in such three-dimensional space is also referred to as 3D boundary correction process. In contrast, when the boundary correction process is performed on a two-dimensional image, the boundary correction process such as the pairing process is performed on the boundary vertex in the geometry image obtained by decoding the bitstream. That is, in this case, the pixel value (depth value) of the boundary vertex in the geometry image are corrected by the boundary correction process. The boundary correction process performed in such a two-dimensional image is also referred to as 2D boundary correction process. Note that the two-dimensional image may be an xyz image used in texel-based projection or the like.
Any method (algorithm) for the 3D smoothing process may be used.
For example, when Method 1-1-3 is applied, as illustrated in the sixth row from the top of the table in
Furthermore, when Method 1-1-3 is applied, as illustrated in the seventh row from the top of the table in
Furthermore, when Method 1-1 described above is applied, the information processing device may perform the smoothing process on a two-dimensional image as illustrated in the eighth row from the top of the table in
For example, in the process (patch border filtering) described in Non-Patent Document 5, a patch is projected again in a projection direction of an adjacent patch, and the number of vertices is increased or decreased for smoothing. However, in the case of this process, the number of vertices can be increased or decreased, but the coordinates thereof are not corrected.
This may reduce the degree of freedom of correction. In addition, the data amount and accuracy of the 3D data may change. In contrast, since the 2D smoothing process described above corrects the position (pixel value) of the correction target point, the difference in position between the vertices can be smoothed with a higher degree of freedom. In addition, it is possible to reduce an increase in the amount of data and the change in accuracy. Therefore, it is possible to mitigate a reduction in the quality of the 3D data due to encoding and decoding.
Note that, even when the 2D smoothing process is applied, the boundary correction process is executed before the 2D smoothing process. That is, in this case, the 2D boundary correction process described above is applied.
Any method (algorithm) for the 2D smoothing process may be used.
For example, when Method 1-1-4 is applied, as illustrated in the ninth row from the top of the table in
For example, it is assumed that vertices 201 to 204 exist as illustrated in A of
Furthermore, when Method 1-1-4 is applied, as illustrated in the tenth row from the top of the table in
At that time, for example, the information processing device may use only that patch to perform the smoothing filter process on the partial area within the patch. In addition, the information processing device may redefine the patch and perform the smoothing filter process on the reprojected image. In that case, for example, the information processing device may redefine the patch by reprojecting the triangles including the triangle outside the patch close to the triangle in contact with the patch boundary. Note that this reprojection may be performed by an encoder or a decoder.
Furthermore, the information processing device may reproject the entire object in a plurality of predetermined directions (e.g., six directions, etc.). By performing the smoothing filter process in this way, including the area outside the patch, it may be possible to further mitigate a reduction) in the quality of the 3D data.
In addition, when Method 1-1-4 is applied, as illustrated in the eleventh row from the top of the table in
The surface (triangle) may be, for example, a triangle having one boundary vertex and two correction utilization points in the vicinity as vertices. For example, the information processing device may paste such a surface 222 onto a patch 220 illustrated in
Note that while
As illustrated in
Demultiplexing unit 311 acquires a bitstream input to the decoding device 300. This bitstream is obtained by extending VPCC and encoding 3D data using a mesh.
The demultiplexing unit 311 demultiplexes the bitstream and extracts (acquires) various data included in the bitstream. For example, demultiplexing unit 311 extracts the encoded data of meta information from the bitstream. Furthermore, the demultiplexing unit 311 extracts the encoded data of the geometry image and the encoded data of the occupancy image from the bitstream. Moreover, the demultiplexing unit 311 extracts the encoded data of the texture image from the bitstream.
The demultiplexing unit 311 supplies the encoded data of the extracted meta information to the meta information decoding unit 312. In addition, the demultiplexing unit 311 supplies the encoded data of the extracted geometry image and the encoded data of the occupancy image to the 2D decoding unit 313.
Furthermore, the demultiplexing unit 311 supplies the encoded data of the extracted texture image to the 2D decoding unit 314.
The meta information decoding unit 312 acquires the encoded data of the meta information supplied from the demultiplexing unit 311. The meta information decoding unit 312 decodes the encoded data of the acquired meta information to generate meta information. The meta information includes a connectivity 331 indicating vertices and sides constituting each polygon. In addition, the meta information includes a UV map 332 indicating the position of each vertex in the texture image by UV coordinates. The meta information decoding unit 312 outputs the generated connectivity 331 and UV map 332 to the outside of the decoding device 300 as (data constituting) 3D data using the restored mesh.
Furthermore, the meta information decoding unit 312 supplies the generated connectivity 331 and UV map 332 to the patch reconfiguration unit 315.
The 2D decoding unit 313 acquires the encoded data of the geometry image and the encoded data of the occupancy image supplied from the demultiplexing unit 311. The 2D decoding unit 313 decodes the acquired encoded data of the geometry image by the decoding method for 2D images to generate a geometry image. In addition, the 2D decoding unit 313 decodes the acquired encoded data of the occupancy image by the decoding method for 2D images to generate an occupancy image. The 2D decoding unit 313 supplies the generated geometry image and occupancy image to the patch reconfiguration unit 315.
The 2D decoding unit 314 acquires the encoded data of the texture image supplied from the demultiplexing unit 311. The 2D decoding unit 314 decodes the encoded data of the acquired texture image by the decoding method for 2D images to generate a texture image (texture 334) in which a texture to be attached on each polygon is placed for each patch. The 2D decoding unit 314 outputs the generated texture image (texture 334) to the outside of the decoding device 300 as (data constituting) 3D data using the restored mesh.
The patch reconfiguration unit 315 acquires the meta information (connectivity 331, UV map 332, etc.) supplied from the meta information decoding unit 312. Furthermore, the patch reconfiguration unit 315 acquires the geometry image and the occupancy image supplied from the 2D decoding unit 313. The patch reconfiguration unit 315 extracts a patch image from the geometry image, using the occupancy image and the meta information, and reconfigures a patch corresponding to the extracted patch image. The patch reconfiguration unit 315 supplies the reconfigured patch and the used meta information (connectivity 331, UV map 332, etc.) to the vertex information reconfiguration unit 316.
The vertex information reconfiguration unit 316 acquires the patch and the meta information supplied from the patch reconfiguration unit 315. The vertex information reconfiguration unit 316 reconfigures vertices included in the area of the patch from the acquired patch to generate vertex information configured by three-dimensional coordinates of each vertex. The vertex information reconfiguration unit 316 supplies the generated vertex information and meta information (connectivity 331, UV map 332, etc.) to the 3D boundary correction processing unit 317.
The 3D boundary correction processing unit 317 acquires the vertex information and the meta information (connectivity 331, UV map 332, etc.) supplied from the vertex information reconfiguration unit 316. The 3D boundary correction processing unit 317 performs the boundary correction process on the vertex information. That is, the 3D boundary correction processing unit 317 executes the 3D boundary correction process. The 3D boundary correction processing unit 317 performs, for example, zippering or a pairing process as the 3D boundary correction process. When the 3D boundary correction processing unit 317 performs the pairing process, the bitstream acquired by the demultiplexing unit 311 includes pair information. The demultiplexing unit 311 extracts the pair information from the bitstream and supplies the pair information to the 3D boundary correction processing unit 317. The 3D boundary correction processing unit 317 acquires the pair information and performs the pairing process using the pair information. The 3D boundary correction processing unit 317 corrects the three-dimensional coordinates of the boundary vertices by this boundary correction process. The 3D boundary correction processing unit 317 supplies the vertex information after boundary correction to the 3D smoothing processing unit 318. Furthermore, the 3D boundary correction processing unit 317 supplies other information such as the meta information (connectivity 331, UV map 332, etc.) and the pair information to the 3D smoothing processing unit 318 as necessary.
The 3D smoothing processing unit 318 acquires the vertex information and other information (meta information, pair information, etc.) supplied from the 3D boundary correction processing unit 317. The 3D smoothing processing unit 318 applies Method 1-1-3 described above, and executes the 3D smoothing process on the correction target point within the partial area with the boundary-corrected patch boundary point as the reference point. That is, the 3D smoothing processing unit 318 corrects the three-dimensional coordinates of the correction target point. At that time, the 3D smoothing processing unit 318 may also apply Method 1-1-1 and Method 1-1-2. The 3D smoothing processing unit 318 outputs vertex information 333 after the 3D smoothing process to the outside of the decoding device 300 as (data constituting) 3D data using the restored mesh.
Note that these processing units may have any configuration. For example, each processing unit may be configured by a logic circuit that achieves the processes described above. Furthermore, each of the processing units may include, for example, a central processing unit (CPU), a read-only memory (ROM), a random-access memory
(RAM), and the like, and execute a program, using the CPU, the ROM, the RAM, and the like, thereby implementing the processes described above. Needless to say, each processing unit may have both the configurations, and some of the processes described above may be implemented by a logic circuit and the others may be achieved by executing the program. The configurations of the processing units may be independent from each other, and, for example, among the processing units, some processing units may achieve some of the processes described above with a logic circuit, some other processing units may achieve the processes described above by executing a program, and still some other processing units may achieve the processes described above with both a logic circuit and execution of a program.
With such a configuration, the decoding device 300 can bring the shape of the object after reconfiguration close to the shape of the object before encoding, and can mitigate a reduction in the subjective quality of the 3D data.
An example of the flow of the decoding process executed by the decoding device 300 will be described with reference to the flowchart of
When the decoding process is started, in step S301, the demultiplexing unit 311 demultiplexes the bitstream input to the decoding device 300 and extracts various data. For example, the demultiplexing unit 311 extracts, from the bitstream, the encoded data of the meta information, the encoded data of the geometry image, the encoded data of the occupancy image, the encoded data of the texture image, and the like.
In step S302, meta information decoding unit 312 decodes the encoded data of the meta information extracted from the bitstream in step S301 to generate (restore) the meta information. This meta information includes the connectivity 331 and the UV map 332.
In step S303, the 2D decoding unit 313 decodes the encoded data of the geometry image extracted from the bitstream in step S301 to generate (restore) the geometry image. In addition, the 2D decoding unit 313 decodes the encoded data of the occupancy image extracted from the bitstream in step S301 to generate (restore) the occupancy image.
In step S304, the 2D decoding unit 314 decodes the encoded data of the texture image extracted from the bitstream in step S301 to generate (restore) the texture image (texture 334).
In step S305, the patch reconfiguration unit 315 extracts a patch image from the geometry image generated in step S303 using the meta information (connectivity 331, UV map 332, etc.) generated in step S302, and reconfigures a patch corresponding to the patch image.
In step S306, the vertex information reconfiguration unit 316 reconfigures vertices included in the area of the patch from the patch reconfigured in step S305 to generate vertex information.
In step S307, the 3D boundary correction processing unit 317 executes the 3D boundary correction process, and corrects the three-dimensional coordinates of the boundary vertices included in the vertex information generated in step S306.
In step S308, the 3D smoothing processing unit 318 executes the 3D smoothing process using the boundary-corrected vertex information in step S307 as the reference point on the basis of the geometry after boundary correction, and corrects the three-dimensional coordinates of the correction target point corresponding to the reference point.
When the process of step S308 ends, the decoding process ends.
By executing each process in this manner, the decoding device 300 can bring the shape of the object after reconfiguration close to the shape of the object before encoding, and can mitigate a reduction in subjective quality of the 3D data.
As described above, the 2D smoothing process may be applied.
Note that, in
In this case, the decoding device 300 includes a 2D boundary correction processing unit 341 and a 2D smoothing processing unit 342 instead of the 3D boundary correction processing unit 317 and the 3D smoothing processing unit 318. In this case, the 2D decoding unit 313 supplies the generated geometry image and occupancy image to the 2D boundary correction processing unit 341.
The 2D boundary correction processing unit 341 acquires the geometry image and the occupancy image. The 2D boundary correction processing unit 341 executes the 2D boundary correction process such as the pairing process on the geometry image. As a result, the pixel value (depth value) of the boundary vertex in the geometry image is corrected. For example, when the 2D boundary correction processing unit 341 performs the pairing process, the bitstream acquired by the demultiplexing unit 311 includes pair information. The demultiplexing unit 311 extracts the pair information from the bitstream and supplies the pair information to the 2D boundary correction processing unit 341. The 2D boundary correction processing unit 341 acquires the pair information and performs the pairing process using the pair information. The 2D boundary correction processing unit 341 corrects the pixel value (depth value) of the boundary vertex in the geometry image by this boundary correction process. The 2D boundary correction processing unit 341 supplies the geometry image after boundary correction to the 2D smoothing processing unit 342. In addition, the 2D boundary correction processing unit 341 supplies an occupancy image, pair information, and the like to the 2D smoothing processing unit 342.
The 2D smoothing processing unit 342 acquires the geometry image, the occupancy image, the pair information, and the like supplied from the 2D boundary correction processing unit 341. The 2D smoothing processing unit 342 applies Method 1-1-4 described above, and executes the 2D smoothing process on the correction target point within the partial area with the boundary-corrected patch boundary point as the reference point. That is, the 2D smoothing processing unit 342 corrects the pixel value (depth value) of the correction target point in the geometry image. At that time, the 2D smoothing processing unit 342 may also apply Method 1-1-1 and Method 1-1-2. The 2D smoothing processing unit 342 supplies the geometry image after the 2D smoothing process to the patch reconfiguration unit 315 together with the occupancy image, the pair information, and the like.
With such a configuration, the decoding device 300 can bring the shape of the object after reconfiguration close to the shape of the object before encoding, and can mitigate a reduction in the subjective quality of the 3D data.
An example of the flow of the decoding process executed by the decoding device 300 will be described with reference to the flowchart in
When the decoding process is started, the respective processes of steps S331 to $334 are executed similarly to the respective processes of steps S301 to S304 in
In step S335, the 2D boundary correction processing unit 341 executes the 2D boundary correction process such as the pairing process, and corrects the pixel value (depth value) of the boundary vertex in the geometry image obtained in step S333.
In step S336, the 2D smoothing processing unit 342 executes the 2D smoothing process using the boundary-corrected vertex information in step S335 as the reference point on the basis of the geometry after boundary correction, and corrects the pixel value (depth value) of the correction target point corresponding to the reference point in the geometry image.
The respective processes of steps S337 and S338 are performed similarly to the respective processes of steps S305 and S306 of
When the process of step S338 ends, the decoding process ends.
By executing each process in this manner, the decoding device 300 can bring the shape of the object after reconfiguration close to the shape of the object before encoding, and can mitigate a reduction in subjective quality of the 3D data.
Note that the example described with reference to
For example, the 2D boundary correction process and the 3D smoothing process may be applied. For example, in the decoding device 300, the 2D boundary correction processing unit 341 and the 3D smoothing processing unit 318 may be applied. In addition, in the decoding process, the process of step S335 and the process of step S308 may be applied.
Furthermore, for example, the decoding device 300 may support both the 2D smoothing process and the 3D smoothing process. That is, one of the 2D smoothing process and the 3D smoothing process may be selected and executed. For example, in the decoding device 300, the 2D smoothing processing unit 342 and the 3D smoothing processing unit 318 may be applied. In addition, in the decoding process, the process of step S336 and the process of step S308 may be applied.
When Method 1 described above is applied, the information processing device may perform this smoothing process on the basis of position correction coordinate information as illustrated in the twelfth row from the top of the table in
For example, when the position correction of the vertex is performed in the decoding device, the original position (also referred to as correct coordinates) of the vertex before encoding may not be able to be specified. For example, when a plurality of boundary vertices is integrated by the boundary correction process, a case where the patches of the respective boundary vertices are projected in the same direction (forward direction or reverse direction), or other cases, correct coordinates may not be obtained in the decoding device.
In such cases, the encoding device transmits information indicating the correct coordinates (coordinates before encoding) to the decoding device, and the decoding device corrects the vertex on the basis of the information, so that it is possible to achieve correction that mitigates a reduction in the subjective quality of the 3D data.
The position correction process described above is a process of performing such correction on the basis of the position correction coordinate information transmitted from the encoding device. That is, the position correction process is a process of setting a vertex specified on the basis of the position correction coordinate information transmitted from the encoding device as a processing target and moving the process target vertex to a position derived on the basis of the position correction coordinate information.
For example, as described above, by using the position correction process to correct the boundary vertex for which the correct coordinates cannot be obtained in the boundary correction process (i.e., moving the boundary to the correct coordinates specified by the encoding device), it is possible to achieve correction that mitigates a reduction in the subjective quality of the 3D data.
That is, the encoding device generates the position correction coordinate information and provides the position correction coordinate information to the decoding device. The decoding device executes the position correction process on the basis of the provided position correction coordinate information. Then, in the case of Method 1-2, the decoding device performs the smoothing process on the basis of the provided position correction coordinate information. For example, the decoding device may further include a position correction unit that executes, on the basis of position correction coordinate information including information regarding a position correction target point to be corrected and a geometry after correction, the position correction process to correct the geometry of the position correction target point, and the smoothing unit of the decoding device may set the reference point on the basis of the position correction coordinate information.
When Method 1-2 described above is applied, the position correction target point may be the boundary vertex (the boundary correction target point) as illustrated in the thirteenth row from the top of the table in
After boundary correction, the decoding device may perform the position correction process on the basis of the position correction coordinate information, and move the boundary vertex to the correct coordinates. Moreover, when the decoding device specifies the reference point of the smoothing process, the boundary vertex (boundary vertex to be subjected to the position correction process) corresponding to the position correction coordinate information may be used as the reference point.
In this way, the smoothing process can also be executed on the correction target point having the boundary vertex subjected to the position correction process instead of the boundary correction as the reference point. Therefore, it is possible to achieve correction that mitigates a reduction in the subjective quality of the 3D data.
Furthermore, when Method 1-2 described above is applied, as illustrated in the fourteenth row from the top of the table in
Then, the decoding device may perform the position correction process on the basis of the position correction coordinate information and move the in-patch vertex to the correct coordinates. Moreover, when the decoding device specifies the reference point of the smoothing process, the in-patch vertex (the in-patch vertex to be subjected to the position correction process) corresponding to the position correction coordinate information may be used as the reference point. For example, in the patch 351 illustrated in
In this way, the smoothing process can also be executed on the correction target point having the in-patch vertex having the large encoding distortion as the reference point. Therefore, it is possible to achieve correction that mitigates a reduction in the subjective quality of the 3D data.
When Method 1-2 described above is applied, the position correction coordinate information may include information for specifying the position correction target point as illustrated in the fifteenth row from the top of the table of
When Method 1-2 described above is applied, the position correction coordinate information may include information regarding the coordinates (correct coordinates) after position correction as illustrated in the sixteenth row from the top of the table of
Note that, in
As illustrated in
The encoding device 400 is supplied with a connectivity 451, a vertex information 452, a UV map 453, and a texture 454 as 3D data using a mesh.
The connectivity 451 is information similar to the connectivity 32 (
That is, the texture 454 is information including a texture image.
The mesh voxelization unit 411 acquires the vertex information 452 supplied to the encoding device 400. The mesh voxelization unit 411 converts the coordinates of each vertex included in the acquired vertex information 452 into a voxel grid. The mesh voxelization unit 411 supplies the vertex information of the voxel grid after conversion to the patch generation unit 412.
The patch generation unit 412 acquires the connectivity 451 supplied to the encoding device 400. Furthermore, the patch generation unit 412 acquires vertex information of the voxel grid supplied from the mesh voxelization unit 411. The patch generation unit 412 generates a geometry patch on the basis of the information. In addition, the patch generation unit 412 projects the generated geometry patch onto the projection surface to generate a patch image.
The patch generation unit 412 supplies the generated patch image to the image generation unit 413. Furthermore, the patch generation unit 412 supplies information such as the connectivity 451 and vertex information to the meta information encoding unit 414 as meta information. Moreover, the patch generation unit 412 supplies the generated patch image to the image generation unit 419.
The image generation unit 413 acquires the patch image supplied from the patch generation unit 412. The image generation unit 413 places the patch image on a two-dimensional plane to generate a geometry image and an occupancy image”. The image generation unit 413 supplies the generated geometry image and occupancy image to the 2D encoding unit 415.
The meta information encoding unit 414 acquires the meta information (connectivity 451, vertex information, etc.) supplied from the patch generation unit 412. The meta information encoding unit 414 encodes the acquired meta information and generates encoded data of the meta information. The meta information encoding unit 414 supplies the generated encoded data of the meta information to the multiplexing unit 421.
The 2D encoding unit 415 acquires the geometry image and the occupancy image supplied from the image generation unit 413. The 2D encoding unit 415 encodes the acquired geometry image and occupancy image by the encoding method for 2D images to generate the encoded data of the geometry image and encoded data of the occupancy image. The 2D encoding unit 415 supplies the multiplexing unit 421 with the generated encoded data of the geometry image and the generated encoded data of the occupancy image. Furthermore, the 2D encoding unit 415 supplies the generated encoded data of the geometry image to the 2D decoding unit 416.
The 2D decoding unit 416 decodes the encoded data of the geometry image supplied from the 2D encoding unit 415 by the decoding method for 2D images to generate a geometry image. The 2D decoding unit 416 supplies the geometry image to the boundary correction processing unit 417.
The boundary correction processing unit 417 executes the boundary correction process using the geometry image supplied from the 2D decoding unit 416, and corrects the positions of the boundary vertices as necessary. This boundary correction process may be a 2D boundary correction process or a 3D boundary correction process. Furthermore, when the pairing process is performed as the boundary correction process, the boundary correction processing unit 417 generates pair information and supplies the pair information to the multiplexing unit 421. The boundary correction processing unit 417 supplies the geometry image after boundary correction to the position correction coordinate information generation unit 418.
On the basis of the geometry image supplied from the boundary correction processing unit 417, the position correction coordinate information generation unit 418 obtains a position correction process target and its correct coordinates to generate position correction coordinate information related thereto. At that time, the position correction coordinate information generation unit 418 can apply Methods 1-2-1 to 1-2-4. The position correction coordinate information generation unit 418 supplies the generated position correction coordinate information to the multiplexing unit 421.
The image generation unit 419 acquires the UV map 453 and the texture 454 supplied to the encoding device 400. In addition, the image generation unit 419 acquires the patch image of the geometry supplied from the patch generation unit 412. The image generation unit 419 updates the texture 454 on the basis of these pieces of information to generate a texture image. The image generation unit 419 supplies the generated texture image to the 2D encoding unit 420.
The 2D encoding unit 420 encodes the texture image supplied from the image generation unit 419 by the encoding method for 2D images to generate the encoded data of the texture image. The 2D encoding unit 420 supplies the generated encoded data of the texture image to the multiplexing unit 421.
The multiplexing unit 421 acquires the encoded data of the meta information supplied from the meta information encoding unit 414. The multiplexing unit 421 acquires the encoded data of the geometry image and the encoded data of the occupancy image supplied from the 2D encoding unit 415. The multiplexing unit 421 acquires the pair information supplied from the boundary correction processing unit 417. The multiplexing unit 421 acquires the position correction coordinate information supplied from the position correction coordinate information generation unit 418. The multiplexing unit 421 acquires the encoded data of the texture image supplied from the 2D encoding unit 420.
The multiplexing unit 421 multiplexes the acquired information to generate one bitstream. The multiplexing unit 421 outputs the generated bitstream to the outside of the encoding device 400. This bitstream is provided to the decoding device 300, for example. Therefore, the multiplexing unit 421 can also be said to be a provision unit that provides information.
Note that these processing units may have any configuration. For example, each processing unit may be configured by a logic circuit that achieves the processes described above. Furthermore, each of the processing units may include, for example, a central processing unit (CPU), a read-only memory (ROM), a random-access memory (RAM), and the like, and execute a program, using the CPU, the ROM, the RAM, and the like, thereby implementing the processes described above. Needless to say, each processing unit may have both the configurations, and some of the processes described above may be implemented by a logic circuit and the others may be achieved by executing the program. The configurations of the processing units may be independent from each other, and, for example, among the processing units, some processing units may achieve some of the processes described above with a logic circuit, some other processing units may achieve the processes described above by executing a program, and still some other processing units may achieve the processes described above with both a logic circuit and execution of a program.
With such a configuration, the encoding device 400 can generate the position correction coordinate information and provide the position correction coordinate information to the decoding device. Thus, the decoding device can execute the position correction process and the smoothing process on the basis of the position correction coordinate information. Therefore, it is possible to mitigate a reduction in the subjective quality of the 3D data.
An example of the flow of the encoding process executed by the encoding device 400 will be described with reference to the flowchart in
When the encoding process is started, in step S401, the mesh voxelization unit 411 voxelizes the coordinates of each vertex included in the vertex information 452 to voxelize the mesh.
In step S402, the patch generation unit 412 generates a patch using the vertex information and the like voxelized in step S401, and projects the generated patch on the projection surface to generate a patch image.
In step S403, the image generation unit 413 generates a geometry image and an occupancy image on the basis of the patch image generated in step S402.
In step S404, the meta information encoding unit 414 encodes the meta information (connectivity 451, vertex information, etc.) to generate the encoded data of the meta information.
In step S405, the 2D encoding unit 415 performs 2D encoding on each of the geometry image and the occupancy image generated in step S403 to generate the encoded data of the geometry image and encoded data of the occupancy image.
In step S406, the 2D decoding unit 416 2D decodes the encoded data of the geometry image generated in step S405 to generate a geometry image.
In step S407, the boundary correction processing unit 417 executes the boundary correction process using the geometry image generated in step S406.
In step S408, the position correction coordinate information generation unit 418 generates position correction coordinate information using the geometry image. At that time, the position correction coordinate information generation unit 418 can apply Methods 1-2-1 to 1-2-4.
In step S409, the image generation unit 419 updates the texture 454 and generates a texture image in accordance with the geometry image.
In step S410, the 2D encoding unit 420 encodes the texture image to generate the encoded data of the texture image.
In step S411, the multiplexing unit 421 multiplexes the encoded data of the meta information generated in step S404, the encoded data of the geometry image and the encoded data of the occupancy image generated in step S405, the pair information generated in step S407, the position correction coordinate information generated in step S408, and the encoded data of the texture image generated in step S410 to generate one bitstream. The multiplexing unit 421 outputs the generated bitstream to the outside of the encoding device 400.
When the process of step S411 ends, the encoding process ends.
By executing each process in this manner, the encoding device 400 can generate position correction coordinate information and provide the position correction coordinate information to the decoding device. Thus, the decoding device can execute the position correction process and the smoothing process on the basis of the position correction coordinate information. Therefore, it is possible to mitigate a reduction in the subjective quality of the 3D data.
Note that, in
In this case, the decoding device 300 further includes a 3D position correction unit 511 in addition to the configuration illustrated in
Furthermore, in this case, the position correction coordinate information is included in the bitstream, and the demultiplexing unit 311 extracts the position correction coordinate information from the bitstream and supplies the position correction coordinate information to the 3D position correction unit 511 and the 3D smoothing processing unit 318.
The 3D position correction unit 511 corrects the positions of the vertices included in the vertex information after boundary correction supplied from the 3D boundary correction processing unit 317 on the basis of the position correction coordinate information. The 3D position correction unit 511 supplies the vertex information after position correction to the 3D smoothing processing unit 318.
The 3D smoothing processing unit 318 applies Method 1-2 described above, and executes the 3D smoothing process on the vertex information supplied from the 3D position correction unit 511 on the basis of the position correction coordinate information supplied from the demultiplexing unit 311. That is, on the basis of the position correction coordinate information, the 3D smoothing processing unit 318 executes the 3D smoothing process using the vertex to be subjected to the position correction process as the reference point, and corrects the three-dimensional coordinates of the correction target point corresponding to the reference point. At that time, the 3D smoothing processing unit 318 may also apply Methods 1-2-1 to 1-2-4. The 3D smoothing processing unit 318 outputs vertex information 333 after the 3D smoothing process to the outside of the decoding device 300 as (data constituting) 3D data using the restored mesh.
With such a configuration, the decoding device 300 can bring the shape of the object after reconfiguration close to the shape of the object before encoding, and can mitigate a reduction in the subjective quality of the 3D data.
An example of a flow of the decoding process executed by the decoding device 300 will be described with reference to the flowchart in
When the decoding process is started, the respective processes of steps S501 to S507 are executed similarly to the respective processes of steps S301 to S307 in
In step S508, the 3D position correction unit 511 corrects the positions of the vertices included in the vertex information after boundary correction on the basis of the position correction coordinate information obtained in step S501.
In step S509, the 3D smoothing processing unit 318 applies Method 1-2 described above, executes the 3D smoothing process using the vertex to be subjected to the position correction process as the reference point on the basis of the position correction coordinate information obtained in step S501, and corrects the three-dimensional coordinates of the correction target point corresponding to the reference point. At that time, the 3D smoothing processing unit 318 may also apply Methods 1-2-1 to 1-2-4.
When the process of step S509 ends, the decoding process ends.
By executing each process in this manner, the decoding device 300 can bring the shape of the object after reconfiguration close to the shape of the object before encoding, and can mitigate a reduction in subjective quality of the 3D data.
In the case of Method 1-2 as well, the 2D smoothing process may be applied as described above.
Note that, in
In this case, the decoding device 300 further includes a 2D position correction unit 521 in addition to the configuration illustrated in
The 2D smoothing processing unit 342 applies Method 1-2 described above, and executes the 2D smoothing process on the geometry image supplied from the 3D position correction unit 511 on the basis of the position correction coordinate information supplied from the demultiplexing unit 311. That is, on the basis of the position correction coordinate information, the 2D smoothing processing unit 342 executes the 2D smoothing process using the vertex to be subjected to the position correction process as the reference point, and corrects the three-dimensional coordinates of the correction target point corresponding to the reference point. At that time, the 2D smoothing processing unit 342 may also apply Methods 1-2-1 to 1-2-4. The 2D smoothing processing unit 342 supplies the geometry image after the 2D smoothing process to the patch reconfiguration unit 315.
With such a configuration, the decoding device 300 can bring the shape of the object after reconfiguration close to the shape of the object before encoding, and can mitigate a reduction in the subjective quality of the 3D data.
An example of the flow of the decoding process executed by the decoding device 300 will be described with reference to the flowchart in
When the decoding process is started, the respective processes of steps $531 to $535 are executed similarly to the respective processes of steps S331 to S335 in
In step S536, the 2D position correction unit 521 executes the 2D position correction process on the geometry image after boundary correction on the basis of the position correction coordinate information obtained in step S531, and corrects the pixel value of the position correction target point process in the geometry image.
In step S537, the 2D smoothing processing unit 342 applies Method 1-2 described above, executes the 2D smoothing process using the vertex to be subjected to the position correction process as the reference point on the basis of the position correction coordinate information obtained in step S531, and corrects the pixel value (depth value) of the correction target point corresponding to the reference point in the geometry image. At that time, the 2D smoothing processing unit 342 may also apply Methods 1-2-1 to 1-2-4.
The respective processes of steps S538 and S539 are performed similarly to the respective processes of steps
S337 and S338 of
When the process of step S539 ends, the decoding process ends.
By executing each process in this manner, the decoding device 300 can bring the shape of the object after reconfiguration close to the shape of the object before encoding, and can mitigate a reduction in subjective quality of the 3D data.
Note that the example described with reference to
For example, the 2D position correction process and the 3D smoothing process may be applied. For example, the 2D position correction unit 521 and the 3D smoothing processing unit 318 may be applied in the decoding device 300. In addition, in the decoding process, the process of step S536 and the process of step S509 may be applied.
Furthermore, for example, the decoding device 300 may support both the 2D smoothing process and the 3D smoothing process. That is, one of the 2D smoothing process and the 3D smoothing process may be selected and executed. For example, in the decoding device 300, the 2D smoothing processing unit 342 and the 3D smoothing processing unit 318 may be applied. In addition, in the decoding process, the process of step S537 and the process of step S509 may be applied.
When Method 1 described above is applied, the information processing device may perform this smoothing process on the basis of the smoothing information as illustrated in the seventeenth row from the top of the table in
The smoothing information is information regarding the smoothing process, and is generated by the encoding device and provided to the decoding device. The decoding device executes the smoothing process on the basis of the provided smoothing information. For example, the information processing device further includes an acquisition unit that acquires smoothing information including the transmitted information regarding smoothing, and the smoothing unit of the information processing device executes the smoothing process on the basis of the acquired smoothing information. In this way, the encoding device can control the smoothing process executed in the encoding device. In other words, the decoding device can execute the smoothing process according to the control of the encoding device.
In such a case as described above where the smoothing information is transmitted from the encoding device to the decoding device, the decoding device may apply Method 1-3 described above to perform the smoothing process on the basis of the smoothing information.
When Method 1-3 described above is applied, the decoding device may specify the reference point on the basis of the reference point specification information included in the smoothing information as illustrated in the eighteenth row from the top of the table in
For example, a flag or the like for selecting a method (algorithm) for specifying the reference point may be used. For example, the following methods are prepared as options: a method of using a vertex corrected by zippering as the reference point; a method of using a vertex corrected by the pairing process as the reference point; a method of using a vertex having been a position correction target as the reference point; a method of using a vertex indicated by the reference point flag indicating whether or not to use the vertex as the reference point; and other methods. Then, a selection flag indicating which one of these candidates is applied may be stored in the smoothing information as the reference point specification information.
That is, in the case of Method 1-3-1, the encoding device generates smoothing information including such reference point specification information. Then, the decoding device applies the method specified by the reference point specification information to specify the reference point. In this way, the encoding device can control the method (algorithm) by which the decoding device specifies the reference point.
Furthermore, when Method 1-3 described above is applied, the decoding device may specify the correction target point (and the correction utilization point) on the basis of the correction target point specification information included in the smoothing information as illustrated in the nineteenth row from the top of the table in
For example, when the decoding device specifies the correction target point (and the correction utilization point) by the method (algorithm) using the parameter k as described above in the description of Method 1-1-2, the parameter k may be transmitted as the correction target point specification information. Furthermore, Information designating a method of specifying the correction target point (and the correction utilization point) using the pixel value (2D) of the geometry image, with the area within the surface rasterized, may be transmitted as the correction target point specification information. Moreover, information designating a method of specifying the correction target point (and the correction utilization point) using the geometry (3D) of the sampled vertex may be transmitted as the correction target point specification information. In addition, a plurality of methods may be set as candidates, and a selection flag or the like designating a method to be applied from the candidates may be transmitted as the correction target point specification information.
That is, in the case of Method 1-3-2, the encoding device generates smoothing information including such correction target point specification information. Then, the decoding device applies the method specified by the correction target point specification information to specify the correction target point (and the correction utilization point). In this way, the encoding device can control a method (algorithm) by which the decoding device specifies the correction target point (and the correction utilization point).
<Correction method specification information>
Furthermore, when Method 1-3 described above is applied, as illustrated in the bottom row of the table in
For example, a plurality of correction methods may be set as candidates, and a selection flag or the like designating a method to be applied from the candidates may be transmitted as the correction method specification information. For example, Method 1-1-3-1, Method 1-1-3-2, Method 1-1-4-1, Method 1-1-4-2, and Method 1-1-4-3 described above may be selected, and a selection flag designating a method to be applied among these methods may be stored in the smoothing information as the correction method specification information.
That is, in the case of Method 1-3-3, the encoding device generates smoothing information including such correction method specification information. Then, the decoding device applies the method designated by the correction method specification information to execute the smoothing process. In this way, the encoding device can control the method for the smoothing process performed by the decoding device.
Note that, in
As illustrated in
The smoothing information generation unit 611 acquires the geometry image supplied from the boundary correction processing unit 417. The smoothing information generation unit 611 generates smoothing information on the basis of the geometry image. Any method for the generation may be used. For example, the smoothing information generation unit 611 may generate the smoothing information such that the boundary-corrected boundary vertex is set as the reference point. That is, the smoothing information generation unit 611 may set the boundary vertex subjected to the boundary correction process as the reference point, and generate smoothing information including information regarding the smoothing process to smooth a geometry of a vertex within a partial area based on the reference point. In addition, the smoothing information generation unit 611 may generate the smoothing information such that a boundary vertex having a difference in position between vertices larger than a predetermined threshold by the boundary correction is set as the reference point.
The smoothing information generation unit 611 supplies the generated smoothing information to the multiplexing unit 421. The multiplexing unit 421 multiplexes the smoothing information with other encoded data or the like to generate a bitstream. This bitstream is provided to, for example, a decoding device. Therefore, the multiplexing unit 421 can be said to be a provision unit that provides the smoothing information.
In addition, the smoothing information generation unit 611 supplies the generated smoothing information to the smoothing processing unit 612 together with the geometry image and the like. The smoothing processing unit 612 executes the smoothing process on the acquired geometry image on the basis of the smoothing information. For example, the smoothing processing unit 612 specifies the reference point and the correction target point from the geometry image on the basis of the smoothing information, and corrects the position of the correction target point. This smoothing process may be the 2D smoothing process or the 3D smoothing process. The smoothing processing unit 612 supplies the geometry image subjected to the smoothing process to the image generation unit 419.
The image generation unit 419 updates a texture 4542 using the geometry image to generate a texture image corresponding to the geometry image.
With such a configuration, the encoding device 400 can generate the smoothing information and provide the smoothing information to the decoding device. The decoding device can execute the smoothing process on the basis of the smoothing information. Therefore, the encoding device can control the smoothing process performed by the decoding device.
An example of the flow of the encoding process executed by the encoding device 400 will be described with reference to the flowchart in
In this case, when the encoding process is started, the respective processes of steps $601 to S607 are executed similarly to the respective processes of steps S401 to $407 of
In step S608, the smoothing information generation unit 611 applies Method 1-3 to generate the smoothing information. At that time, the smoothing information generation unit 611 can apply Methods 1-3-1 to 1-3-3.
In step S609, the smoothing processing unit 612 applies Method 1-3 and executes the smoothing process on the basis of the smoothing information generated in step S608.
The respective processes of steps S610 to $612 are executed similarly to the respective processes of steps S409 to $411 of
When the process of step S612 ends, the encoding process ends.
By executing each process in this manner, the encoding device 400 can generate the smoothing information and provide the smoothing information to the decoding device. The decoding device can execute the smoothing process on the basis of the smoothing information. Therefore, the encoding device can control the smoothing process performed by the decoding device.
In the above description, the encoding device 400 decodes the encoded data of the geometry image and performs the smoothing process using the obtained geometry image. However, the encoding device 400 is not limited to this example. For example, the encoding device 400 may generate the geometry information without decoding the encoded data of the geometry image.
Note that, in
As illustrated in
In this case, the patch generation unit 412 also supplies information such as the connectivity 451 and vertex information to the pair information generation unit 621.
The pair information generation unit 621 acquires the information such as the connectivity 451 and vertex information supplied from the patch generation unit 412, and generates pair information for the pairing process on the basis of the information. That is, the pair information can also be said to be boundary correction information regarding the boundary correction process. The pair information generation unit 621 supplies the generated pair information to the multiplexing unit 421. The multiplexing unit 421 stores the pair information in the bitstream by multiplexing the pair information with other data. Furthermore, the pair information generation unit 621 supplies the generated pair information and information such as the connectivity 451 and vertex information to the smoothing information generation unit 622.
The smoothing information generation unit 622 generates the smoothing information on the basis of the information supplied from the pair information generation unit 621. The smoothing information generation unit 622 supplies the generated smoothing information to the multiplexing unit 421. The multiplexing unit 421 multiplexes the smoothing information with other encoded data or the like to generate a bitstream. This bitstream is provided to, for example, a decoding device. Therefore, the multiplexing unit 421 can be said to be a provision unit that provides the smoothing information.
With such a configuration, the encoding device 400 can generate the smoothing information and provide the smoothing information to the decoding device. The decoding device can execute the smoothing process on the basis of the smoothing information. Therefore, the encoding device can control the smoothing process performed by the decoding device.
An example of the flow of the encoding process executed by the encoding device 400 in this case will be described with reference to the flowchart in
In this case, when the encoding process is started, the respective processes of steps $641 to S645 are executed similarly to the respective processes of steps
S601 to S605 of
In step S646, the image generation unit 419 updates the texture 454 on the basis of the patch or the like of the geometry generated in step S642 to generate a texture image. In step S647, the 2D encoding unit 420 encodes the texture image to generate the encoded data of the texture image.
In step S648, the pair information generation unit 621 generates pair information.
In step S649, the smoothing information generation unit 622 applies Method 1-3 to generate the smoothing information. At that time, the smoothing information generation unit 622 can apply Methods 1-3-1 to 1-3-3.
In step S650, the multiplexing unit 421 multiplexes the smoothing information generated in step S649 with other data, and stores the smoothing information in the bitstream.
When the process of step S650 ends, the encoding process ends.
By executing each process in this manner, the encoding device 400 can generate the smoothing information and provide the smoothing information to the decoding device. The decoding device can execute the smoothing process on the basis of the smoothing information. Therefore, the encoding device can control the smoothing process performed by the decoding device.
Note that, in
In this case, the decoding device 300 has a configuration similar to the example of
In this case, the 3D smoothing processing unit 318 acquires the smoothing information supplied from the demultiplexing unit 311. Then, the 3D smoothing processing unit 318 applies Method 1-3 and executes the 3D smoothing process on the basis of the smoothing information. At that time, the 3D smoothing processing unit 318 may also apply Methods 1-3-1 to 1-3-3. The 3D smoothing processing unit 318 outputs vertex information 333 after the 3D smoothing process to the outside of the decoding device 300 as (data constituting) 3D data using the restored mesh.
With such a configuration, the decoding device 300 can execute the 3D smoothing process on the basis of the smoothing information. That is, the decoding device 300 can execute the 3D smoothing process according to the control of the encoding device. Then, in this case as well, the decoding device 300 can bring the shape of the object after reconfiguration close to the shape of the object before encoding, and can mitigate a reduction in the subjective quality of the 3D data.
An example of the flow of the decoding process executed by the decoding device 300 in this case will be described with reference to the flowchart in
When the decoding process is started, the respective processes of steps $701 to $707 are executed similarly to the respective processes of steps S301 to S307 in
In step S708, the 3D smoothing processing unit 318 applies Method 1-3 described above, executes the 3D smoothing process on the basis of the smoothing information obtained in step S701, and corrects the three-dimensional coordinates of the correction target point corresponding to the reference point. At that time, the 3D smoothing processing unit 318 may also apply
When the process of step S708 ends, the decoding process ends.
By executing each process, the decoding device 300 can execute the 3D smoothing process on the basis of the smoothing information. That is, the decoding device 300 can execute the 3D smoothing process according to the control of the encoding device. Then, in this case as well, the decoding device 300 can bring the shape of the object after reconfiguration close to the shape of the object before encoding, and can mitigate a reduction in the subjective quality of the 3D data.
In the case of Method 1-3 as well, the 2D smoothing process may be applied as described above.
Note that, in
In this case, the decoding device 300 has a configuration similar to the example of
However, in this case, the demultiplexing unit 311 demultiplexes the bitstream and acquires the smoothing information included in the bitstream. That is, the demultiplexing unit 311 can also be said to be an acquisition unit that acquires the transmitted smoothing information. The demultiplexing unit 311 supplies the smoothing information to the 2D smoothing processing unit 342.
In this case, the 2D smoothing processing unit 342 acquires the smoothing information supplied from the demultiplexing unit 311. Then, the 2D smoothing processing unit 342 applies Method 1-3 and executes the 2D smoothing process on the basis of the smoothing information. At that time, the 2D smoothing processing unit 342 may also apply Methods 1-3-1 to 1-3-3. The 2D smoothing processing unit 342 supplies the geometry image after the 2D smoothing process to the patch reconfiguration unit 315.
With such a configuration, the decoding device 300 can execute the 2D smoothing process on the basis of the smoothing information. That is, the decoding device 300 can execute the 2D smoothing process according to the control of the encoding device. Then, in this case as well, the decoding device 300 can bring the shape of the object after reconfiguration close to the shape of the object before encoding, and can mitigate a reduction in the subjective quality of the 3D data.
An example of the flow of the decoding process executed by the decoding device 300 in this case will be described with reference to the flowchart in
When the decoding process is started, the respective processes of steps S731 to $735 are executed similarly to the respective processes of steps S331 to S335 in
In step S736, the 2D smoothing processing unit 342 applies Method 1-3 described above, executes the 2D smoothing process on the basis of the smoothing information obtained in step S731, and corrects the pixel value (depth value) of the correction target point corresponding to the reference point in the geometry image. At that time, the 2D smoothing processing unit 342 may also apply Methods 1-3-1 to 1-3-3.
The respective processes of steps $737 and S738 are performed similarly to the respective processes of steps S337 and S338 of
When the process of step S738 ends, the decoding process ends.
By executing each process in this manner, the decoding device 300 can execute the 2D smoothing process on the basis of the smoothing information. That is, the decoding device 300 can execute the 2D smoothing process according to the control of the encoding device. Then, in this case as well, the decoding device 300 can bring the shape of the object after reconfiguration close to the shape of the object before encoding, and can mitigate a reduction in the subjective quality of the 3D data.
In the above description, the case where 3D data using a mesh is encoded by extending the standard called VPCC has been described, but visual volumetric video-based coding (V3C) or metadata immersive video (MIV) may be applied instead of VPCC. V3C and MIV are standards using substantially similar encoding technique as VPCC, and can be extended similarly to the case of VPCC to encode 3D data using a mesh. Therefore, the present technology described above can also be applied to a case where V3C or MIV is applied to the encoding of 3D data using a mesh.
Although the case where the present technology is applied to mesh encoding/decoding has been described above, the present technology is not limited to these examples, and can be applied to encoding/decoding of 3D data of an arbitrary standard. That is, as long as there is no contradiction with the present technology described above, any specifications can be used for various processes such as an encoding/decoding method and various types of data such as 3D data and metadata. Furthermore, as long as there is no contradiction with the present technology, some processes and specifications described above may be omitted.
The series of processes described above can be executed by hardware or software. When the series of processes is executed by software, a program forming the software is installed in a computer. Here, examples of the computer include a computer built in dedicated hardware, a general-purpose personal computer that can execute various functions by being installed with various programs and the like, for example.
In a computer 900 illustrated in
Furthermore, 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 includes, for example, a keyboard, a mouse, a microphone, a touch panel, an 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 includes, for example, a hard disk, a RAM disk, a nonvolatile memory, and the like. The communication unit 914 includes, for example, a network interface. The drive 915 drives a removable medium 921 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
In the computer configured as above, the series of processes described above is performed, for example, by the CPU 901 loading a program stored in the storage unit 913 into the RAM 903 via the input/output interface 910 and the bus 904, and executing the program. Furthermore, the RAM 903 also appropriately stores data and the like required for the CPU 901 to execute various processes.
The program executed by the computer can be applied by being recorded on, for example, the removable medium 921 as a package medium or the like. In this case, the program can be installed in the storage unit 913 via the input/output interface 910 by attaching the removable medium 921 to the drive 915.
Furthermore, the program can also be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting. In this case, the program can be received by the communication unit 914 and installed in the storage unit 913.
Besides, the program can be installed in advance in the ROM 902 and the storage unit 913.
The present technology may be applied to any configuration. For example, the present technology may be applied to various electronic devices.
Furthermore, for example, the present technology can also be implemented as a partial configuration of a device, such as a processor (e.g., video processor) as a system large-scale integration (LSI) and the like, a module (e.g., video module) using a plurality of the processors and the like, a unit (e.g., video unit) using a plurality of the modules and the like, or a set (e.g., video set) obtained by further adding other functions to the unit.
Furthermore, for example, the present technology can also be applied to a network system including a plurality of devices. For example, the present technology may be implemented as cloud computing in which a plurality of devices shares and processes in cooperation via a network. For example, the present technology may be implemented in a cloud service that provides a service regarding an image (moving image) to any terminal such as a computer, an audiovisual (AV) device, a portable information processing terminal, or an Internet of things (IoT) device.
Note that, in the present specification, a system means a set of a plurality of components (devices, modules (parts), etc.), and it does not matter whether or not all the components are in the same housing. Therefore, a plurality of devices housed in different housings and connected via a network, and one device in which a plurality of modules is housed in one housing are both systems.
The system, device, processing unit and the like to which the present technology is applied can be used in any field such as traffic, medical care, crime prevention, agriculture, livestock industry, mining, beauty care, factory, household appliance, weather, and natural surveillance, for example. Furthermore, the present technology can be applied for any use.
Note that, in the present specification, a “flag” is information for identifying a plurality of states, and includes not only information used for identifying two states of true (1) or false (0), but also information that can identify three or more states. Therefore, a value that may be taken by the “flag” may be, for example, a binary of I/O or a ternary or more. That is, the number of bits forming this “flag” is any number, and may be one bit or a plurality of bits. Furthermore, identification information (including the flag) is assumed to include not only identification information thereof in a bitstream but also difference information of the identification information relative to certain reference information in the bitstream, and thus, in the present specification, the “flag” and “identification information” include not only the information thereof but also the difference information relative to the reference information.
Furthermore, various types of information (such as metadata) related to encoded data (bitstream) may be transmitted or recorded in any form as long as this is associated with the encoded data. Here, the term “associate” means, for example, that one data can be used (linked) when the other data is processed. That is, the data associated with each other may be collected as one data or may be made individual data. For example, information associated with the encoded data (image) may be transmitted on a transmission path different from that of the encoded data (image). In addition, for example, the information associated with the encoded data (image) may be recorded in a recording medium different from that of the encoded data (image) (or another recording area of the same recording medium). Note that, this “association” may be not the entire data but a part of data. For example, an image and information corresponding to the image may be associated with each other in any unit such as a plurality of frames, one frame, or a part within a frame.
Note that, in the present specification, terms such as “synthesize”, “multiplex”, “add”, “integrate”, “include”, “store”, “put in”, “introduce”, “insert” and the like mean, for example, to combine a plurality of objects into one, such as to combine encoded data and metadata into one data, and mean one method of “associating” described above.
Furthermore, the embodiments of the present technology are not limited to the embodiment described above, and various modifications are possible without departing from the scope of the present technology.
For example, the configuration described as one device (or processing unit) may be divided to form a plurality of devices (or processing units). Conversely, the configurations described above as a plurality of devices (or processing units) may be collectively configured as one device (or processing unit).
Furthermore, it goes without saying that a configuration other than the configurations described above may be added to the configuration of each device (or each processing unit). Moreover, when the configuration and operation as the entire system are substantially the same, a part of the configuration of a certain device (or processing unit) may be included in the configuration of another device (or another processing unit).
In addition, for example, the program described above may be executed in any device. In this case, the device is only required to have a necessary function (functional block, etc.) and obtain necessary information.
In addition, for example, each step of one flowchart may be executed by one device, or may be shared and executed by a plurality of devices. Moreover, when a plurality of processes is included in one step, the plurality of processes may be executed by one device, or may be shared and executed by a plurality of devices. In other words, a plurality of processes included in one step can also be executed as processes of a plurality of steps. Conversely, the processes described as a plurality of steps can also be collectively executed as one step.
Furthermore, for example, in a program executed by the computer, the processes of steps describing the program may be executed in time series in the order described in the present specification, or may be executed in parallel or individually at a required timing such as when a call is made. That is, as long as there is no contradiction, the processes of the respective steps may be executed in an order different from the order described above. Moreover, the processes of the steps describing the program may be executed in parallel with processes of another program, or may be executed in combination with processes of the other program.
Furthermore, for example, a plurality of technologies regarding the present technology can be implemented independently as a single entity as long as there is no contradiction. It goes without saying that any plurality of present technologies can be implemented in combination. For example, a part or all of the present technologies described in any of the embodiments can be implemented in combination with a part or all of the present technologies described in other embodiments. Furthermore, a part or all of any of the present technologies described above can be implemented together with another technology that is not described above.
Note that the present technology may also have the following configurations.
(1) An information processing device including:
(2) The information processing device according to (1), in which
(3) The information processing device according to (2), in which
(4) The information processing device according to (3), in which
(5) The information processing device according to (3), in which
(6) The information processing device according to any one of (1) to (5), further including a position correction unit that executes, on the basis of position correction coordinate information including information regarding a position correction target point to be corrected and a geometry after correction, a position correction process to correct a geometry of the position correction target point, in which
(7) The information processing device according to (6), in which
(8) The information processing device according to (6) or (7), in which
(9) The information processing device according to any one of (1) to (8), further including an acquisition unit that acquires smoothing information including transmitted information regarding the smoothing, in which the smoothing unit executes the smoothing process on the basis of the smoothing information acquired.
(10) The information processing device according to (9), in which
(11) The information processing device according to (9) or (10), in which
(12) The information processing device according to any one of (9) to (11), in which
(13) An information processing method including:
(14) An information processing device including:
(15) The information processing device according to (14), in which
(16) The information processing device according to (14) or (15), in which
(17) The information processing device according to any one of (14) to (16), in which
(18) The information processing device according to any one of (14) to (17), further including a boundary correction unit that executes the boundary correction process, in which
(19) The information processing device according to any one of (14) to (17), further including a boundary correction information generation unit that generates boundary correction information regarding the boundary correction process, in which
(20) An information processing method including:
| Number | Date | Country | Kind |
|---|---|---|---|
| 2021-189829 | Nov 2021 | JP | national |
| Filing Document | Filing Date | Country | Kind |
|---|---|---|---|
| PCT/JP2022/041872 | 11/10/2022 | WO |