WO2024084931A1 - 情報処理装置および方法 - Google Patents

情報処理装置および方法 Download PDF

Info

Publication number
WO2024084931A1
WO2024084931A1 PCT/JP2023/035840 JP2023035840W WO2024084931A1 WO 2024084931 A1 WO2024084931 A1 WO 2024084931A1 JP 2023035840 W JP2023035840 W JP 2023035840W WO 2024084931 A1 WO2024084931 A1 WO 2024084931A1
Authority
WO
WIPO (PCT)
Prior art keywords
normal vector
vertex
vertex normal
coordinate system
unit
Prior art date
Application number
PCT/JP2023/035840
Other languages
English (en)
French (fr)
Inventor
智 隈
華央 林
毅 加藤
Original Assignee
ソニーグループ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーグループ株式会社 filed Critical ソニーグループ株式会社
Publication of WO2024084931A1 publication Critical patent/WO2024084931A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Definitions

  • This disclosure relates to an information processing device and method, and in particular to an information processing device and method that can suppress a decrease in coding efficiency.
  • V-DMC Video-based Dynamic Mesh Coding
  • meshes which are 3D data that represent the three-dimensional structure of an object using vertices and connections
  • the mesh to be encoded is represented by a coarse base mesh and displacement vectors of the division points obtained by subdividing the base mesh, and the base mesh and displacement vectors are encoded.
  • the displacement vectors are stored (packed) in a two-dimensional image, and are encoded as a moving image (displacement video) with the two-dimensional images as frames.
  • This normal vector was derived using a "method with interpolation" to make it suitable for shadow processing during rendering.
  • the method with interpolation first the normal vectors of the vertices of the base mesh are derived, and then the normal vectors of the division points are derived using these normal vectors. At that time, the normal vectors of the vertices of the base mesh are weighted according to the positions of the division points (number of divisions), and the normal vectors of the division points are derived by weighted averaging.
  • this local coordinate system controls the quantization value of the displacement vector for each axis.
  • the type of local coordinate system used affects the quality of the displacement vector (i.e., the reconstructed mesh).
  • the displacement vector (local coordinate) expressed in that local coordinate system is determined.
  • the amount of information (i.e., the amount of code) in the displacement video (frame image) may change depending on which local coordinate system is applied.
  • the type of local coordinate system applied affects the encoding efficiency.
  • An information processing device includes a base mesh decoding unit that decodes encoded data of a base mesh, a displacement video decoding unit that decodes encoded data of a displacement video having frames of 2D images in which local coordinates are stored as displacement vectors, a vertex normal vector derivation unit that derives vertex normal vectors that are normal vectors of vertices of the subdivided base mesh, and a displacement vector application unit that applies the local coordinates of the vertices as the displacement vectors to the vertices of the subdivided base mesh using a local coordinate system corresponding to the vertex normal vectors, and the base mesh represents a three-dimensional structure of an object.
  • An information processing device that is a mesh that is coarser than an original mesh to be encoded and is composed of vertices and connections, and is generated by thinning out the vertices from the original mesh, the displacement vector is the difference in position between the vertices of the subdivided base mesh and the vertices of the original mesh, the local coordinate system is a coordinate system for each vertex of the subdivided base mesh that is set based on the vertex normal vector, and the local coordinates are coordinates that represent the displacement vectors of the vertices of the subdivided base mesh in the local coordinate system corresponding to the vertex normal vectors of the vertices.
  • An information processing method includes: decoding encoded data of a base mesh; decoding encoded data of a displacement video, the frames of which are 2D images in which local coordinates are stored as displacement vectors; deriving vertex normal vectors, which are normal vectors of vertices of the subdivided base mesh; and applying the local coordinates of the vertices as the displacement vectors to the vertices of the subdivided base mesh using a local coordinate system corresponding to the vertex normal vectors;
  • the base mesh is a mesh that is coarser than the original mesh to be encoded and is formed of vertices and connections that represent a three-dimensional structure of an object, and is generated by thinning out the vertices;
  • the displacement vectors are the differences in position between the vertices of the subdivided base mesh and the vertices of the original mesh;
  • the local coordinate system is a coordinate system for each vertex of the subdivided base mesh that is set based on the vertex normal vectors; and
  • An information processing device includes a derivation method setting unit that sets a derivation method for a vertex normal vector, which is a normal vector of a vertex of a subdivided base mesh; a vertex normal vector derivation unit that derives the vertex normal vector using the derivation method that has been set; a local coordinate derivation unit that derives a local coordinate that represents a displacement vector in a local coordinate system corresponding to the vertex normal vector; a displacement video encoding unit that encodes a displacement video having a frame of a 2D image in which the local coordinate is stored as the displacement vector; a method designation flag generation unit that generates a method designation flag that designates the set derivation method; and a method designation flag encoding unit that encodes the method designation flag, the base mesh being a mesh that is coarser than the original mesh and is generated by thinning out the vertices from an original mesh to be encoded that is composed of vertices and connections that represent a three-
  • An information processing method includes setting a method for deriving a vertex normal vector, which is a normal vector of a vertex of a subdivided base mesh, deriving the vertex normal vector using the set derivation method, deriving a local coordinate representing a displacement vector in a local coordinate system corresponding to the vertex normal vector, encoding a displacement video having frames of 2D images in which the local coordinate is stored as the displacement vector, generating a method designation flag that designates the set derivation method, and encoding the method designation flag, the base mesh being a mesh that is coarser than the original mesh and is generated by thinning out the vertices from an original mesh to be encoded that is composed of vertices and connections that represent a three-dimensional structure of an object, the displacement vector being a difference in position between the vertices of the subdivided base mesh and the vertices of the original mesh, and the local coordinate system being a coordinate system for each vertex of the subdivided
  • encoded data of a base mesh is decoded
  • encoded data of a displacement video having frames of 2D images in which local coordinates are stored as displacement vectors is decoded
  • vertex normal vectors which are the normal vectors of the vertices of the subdivided base mesh
  • the local coordinates of the vertices are applied as displacement vectors to the vertices of the subdivided base mesh using a local coordinate system corresponding to the vertex normal vectors.
  • a method for deriving a vertex normal vector which is the normal vector of the vertices of a subdivided base mesh, is set, a vertex normal vector is derived using the set derivation method, local coordinates representing a displacement vector in a local coordinate system corresponding to the vertex normal vector are derived, a displacement video is encoded having 2D images as frames in which the local coordinates are stored as the displacement vector, a method designation flag that designates the set derivation method is generated, and the method designation flag is encoded.
  • FIG. 1 is a diagram for explaining V-DMC.
  • FIG. 13 is a diagram for explaining a displacement vector.
  • FIG. 13 is a diagram for explaining a displacement video.
  • 11A and 11B are diagrams for explaining an example of a method for deriving a normal vector.
  • 11A and 11B are diagrams for explaining an example of a method for deriving a normal vector.
  • FIG. 13 is a diagram illustrating an example of an encoding method.
  • FIG. 13 is a diagram for explaining an example of a method without interpolation.
  • FIG. 13 is a diagram for explaining an example of a method without interpolation.
  • FIG. 11 is a diagram for explaining an example of a method for selecting a derivation method.
  • FIG. 11 is a diagram for explaining an example of weight values.
  • FIG. 13 is a diagram illustrating an example of clustering.
  • FIG. 13 is a diagram illustrating an example of quantization.
  • FIG. 2 is a block diagram showing an example of the main configuration of an encoding device.
  • 11 is a block diagram showing an example of a main configuration of a local coordinate system setting unit.
  • FIG. 11 is a flowchart illustrating an example of the flow of an encoding process.
  • 13 is a flowchart illustrating an example of the flow of a local coordinate system setting process.
  • 13 is a flowchart illustrating an example of the flow of a local coordinate system setting process.
  • 13 is a flowchart illustrating an example of the flow of a local coordinate system setting process.
  • FIG. 2 is a block diagram showing an example of the main configuration of a decoding device.
  • FIG. 11 is a block diagram showing an example of a main configuration of a local coordinate system setting unit.
  • FIG. 13 is a flowchart illustrating an example of the flow of a decoding process.
  • 13 is a flowchart illustrating an example of the flow of a local coordinate system setting process.
  • 13 is a flowchart illustrating an example of the flow of a local coordinate system setting process.
  • 13 is a flowchart illustrating an example of the flow of a local coordinate system setting process.
  • 11 is a block diagram showing an example of a main configuration of a local coordinate system setting unit.
  • FIG. 13 is a flowchart illustrating an example of the flow of a local coordinate system setting process.
  • 11 is a block diagram showing an example of a main configuration of a local coordinate system setting unit.
  • FIG. 13 is a flowchart illustrating an example of the flow of a local coordinate system setting process.
  • 11 is a block diagram showing an example of a main configuration of a local coordinate system setting unit.
  • FIG. 13 is a flowchart illustrating an example of the flow of a local coordinate system setting process.
  • 11 is a block diagram showing an example of a main configuration of a local coordinate system setting unit.
  • FIG. 13 is a flowchart illustrating an example of the flow of a local coordinate system setting process.
  • 11 is a block diagram showing an example of a main configuration of a local coordinate system setting unit.
  • FIG. 13 is a flowchart illustrating an example of the flow of a local coordinate system setting process.
  • 11 is a block diagram showing an example of a main configuration of a local coordinate system setting unit.
  • FIG. 13 is a flowchart illustrating an example of the flow of a local coordinate system setting process.
  • 11 is a block diagram showing an example of a main configuration of a local coordinate system setting unit.
  • FIG. 13 is a flowchart illustrating an example of the flow of a local coordinate system setting process.
  • FIG. 2 is a block diagram showing an example of a main configuration of a
  • Non-patent literature 1 (above)
  • the contents of the above-mentioned non-patent documents and the contents of other documents referenced in the above-mentioned non-patent documents are also used as the basis for determining the support requirements.
  • V-DMC Video-based Dynamic Mesh Coding
  • the mesh to be coded is represented as a coarse base mesh and the displacement vectors of the division points obtained by subdividing the base mesh, and the base mesh and the displacement vectors are coded.
  • the shape of this subdivided base mesh differs from the shape of the original mesh. More specifically, as shown in the bottom row of Figure 1, the positions of the division points (on the dotted lines) differ from those of the original mesh. In this specification, the difference between the positions of the division points and the positions of the vertices of the original mesh is referred to as a displacement vector.
  • an original mesh 21 and a subdivided base mesh 22 exist in the positional relationship shown in FIG. 2.
  • the subdivided base mesh 22 has vertices 23 and 24.
  • the position of vertex 23 differs from the position of vertex 23' in the original mesh 21 that corresponds to vertex 23. This difference is expressed as a displacement vector (displacement vector 25).
  • the difference between the position of vertex 24 and the position of vertex 24' in the original mesh 21 that corresponds to vertex 24 is expressed as displacement vector 26. In this way, a displacement vector is set for each vertex of the subdivided base mesh.
  • the original mesh since the original mesh is known, it can generate a base mesh and further derive such a displacement vector. In the decoder, it can generate (restore) the original mesh (or a mesh equivalent to it) by subdividing the base mesh and applying this displacement vector to each vertex.
  • V-DMC supports scalable decoding.
  • the displacement vectors are hierarchically organized by level of resolution (number of divisions of the base mesh) as shown in FIG. 3, for example, and are packed into the two-dimensional image 31 as data for each level.
  • LoD0 packed into the two-dimensional image 31 indicates the data of the displacement vector of the vertex in the highest level (lowest resolution) of the displacement vectors of each vertex hierarchically organized by level of resolution.
  • LoD1 indicates the data of the displacement vector of the vertex in the level one level higher than LoD0.
  • LoD2 indicates the data of the displacement vector of the vertex in the level one level higher than LoD1. In this way, the displacement vectors are divided by level (collected into data for each level) and packed.
  • the displacement vector may be packed into the two-dimensional image as a transform coefficient by coefficient transformation such as wavelet transform.
  • the displacement vector may also be quantized.
  • the displacement vector may be transformed into a transform coefficient by wavelet transform, the transform coefficient may be quantized, and the quantized transform coefficient (quantized coefficient) may be packed.
  • the three-dimensional shape of an object can also change in the time direction.
  • being variable in the time direction is also referred to as being "dynamic.” Therefore, the mesh (i.e., the base mesh and the displacement vector) is also dynamic. Therefore, the displacement vector is encoded as a moving image with the two-dimensional image as a frame. In this specification, this moving image is also referred to as a displacement video.
  • the displacement vector is expressed as a coordinate in an arbitrary coordinate system, and the coordinate value is stored in a two-dimensional image.
  • a local coordinate system that is set for each vertex (for each displacement vector) is used as a coordinate system for expressing such a displacement vector. That is, each displacement vector is expressed in a local coordinate system for that displacement vector.
  • the coordinates that express a displacement vector in this local coordinate system are also referred to as local coordinates.
  • the encoder and decoder it is necessary to apply the same local coordinate system to the same displacement vector, but the local coordinate system is not explicitly transmitted from the encoder to the decoder.
  • the encoder and decoder set their local coordinate systems in a similar manner, based on the normal vector of each vertex used for shadow processing during rendering. For example, a Cartesian coordinate system with the normal vector as one axis was set as the local coordinate system.
  • the normal vector of a vertex of a mesh is also referred to as a vertex normal vector.
  • This vertex normal vector was derived using a "method with interpolation" to make it suitable for shadow processing during rendering.
  • the vertex normal vector of the base mesh is first derived, and then the vertex normal vector of the division point is derived using this vertex normal vector.
  • the vertex normal vector of the base mesh is weighted according to the position of the division point (number of divisions), and the vertex normal vector of the division point is derived by the weighted average.
  • a face (polygon) with edges connecting vertices 42-1 to 42-3 of a base mesh is subdivided, and division points 44-1 to 44-3 are formed on the edge between vertices 42-1 and 42-2.
  • the vertex normal vectors of these vertices are derived based on the normal vectors of the faces (also called surrounding faces) that contain the vertices.
  • the normal vectors of the surrounding faces are weighted according to the position of each division point (the number of times the base mesh is divided), and the vertex normal vectors are derived by weighted averaging, etc.
  • the vertex normal vector 51-1 of vertex 42-1, the vertex normal vector 52-1 of division point 44-1, the vertex normal vector 52-2 of division point 44-2, the vertex normal vector 52-3 of division point 44-3, and the vertex normal vector 51-2 of vertex 42-2 may point in different directions. Therefore, by applying the vertex normal vectors derived in this way in shadow processing, etc., it is possible to derive independent processing results for each vertex, and to obtain more precise processing results.
  • this local coordinate system controls the quantization value of the displacement vector for each axis. Therefore, the quality of the displacement vector (i.e., the reconstructed mesh) may change depending on the orientation of the local coordinate system applied. Also, the local coordinates expressing the displacement vector may change depending on the orientation of the local coordinate system applied. In other words, the amount of information (i.e., the amount of code) in the displacement video (frame images) may also change depending on the orientation of the local coordinate system applied. In other words, the orientation of the local coordinate system applied affects the coding efficiency.
  • the orientation of the local coordinate system that should be applied to improve encoding efficiency depends on various factors, such as the shape of the object. At the very least, applying a local coordinate system based on the vertex normal vectors derived by the "method with interpolation" as described above did not always result in the best encoding efficiency. For example, in the "method with interpolation", weighting is performed according to the position of the vertices, so the difference in orientation between each derived vertex normal vector depends on the weighting method, as in the example of Figure 5. However, such a difference in orientation between each vertex normal vector was not always optimal for expressing each displacement vector.
  • the quality of the displacement vector may be reduced or the amount of information in the displacement video may increase, resulting in a decrease in encoding efficiency.
  • an information processing device may include a base mesh decoding unit that decodes encoded data of a base mesh, a displacement video decoding unit that decodes encoded data of a displacement video whose frames are 2D images in which local coordinates are stored as displacement vectors, a vertex normal vector derivation unit that derives vertex normal vectors that are normal vectors of the vertices of the subdivided base mesh, and a displacement vector application unit that applies the local coordinates corresponding to the vertices as displacement vectors to the vertices of the subdivided base mesh using a local coordinate system corresponding to the vertex normal vectors.
  • encoded data of a base mesh may be decoded, encoded data of a displacement video having frames of 2D images in which local coordinates are stored as displacement vectors, vertex normal vectors that are normal vectors of the vertices of the subdivided base mesh may be derived, and the local coordinates corresponding to the vertices may be applied as displacement vectors to the vertices of the subdivided base mesh using a local coordinate system corresponding to the vertex normal vector.
  • the base mesh is a coarser mesh than the original mesh to be coded, which is composed of vertices and connections that represent the three-dimensional structure of an object, and is generated by thinning out vertices from the original mesh.
  • the displacement vector is the difference in position between a vertex of the subdivided base mesh and a vertex of the original mesh.
  • the local coordinate system is a coordinate system for each vertex of the subdivided base mesh that is set based on the vertex normal vector.
  • the local coordinates are coordinates that express the displacement vector of a vertex of the subdivided base mesh in the local coordinate system that corresponds to the vertex normal vector of that vertex.
  • the vertex normal vector derivation unit may derive the vertex normal vector of a processing target point, which is a processing target vertex of a subdivided base mesh, by using normal vectors of surrounding faces of the processing target point.
  • the non-interpolation method is a method of deriving vertex normal vectors without weighting according to the position of the vertices in the above-mentioned interpolation method. That is, the vertices of the base mesh and the division points are derived in the same way using the normal vectors of the surrounding faces. For example, as in the virtual program shown in square 101 in Figure 7, the normal vector n of each face is derived from the positions of the three vertices of that face, and the average of the normal vectors n of the surrounding faces is derived as the vertex normal vector.
  • the above-mentioned vertex normal vector derivation unit may derive the average of the normal vectors of the surrounding faces and use this value as the vertex normal vector of the point to be processed.
  • the orientation of each face into which the face of the base mesh is subdivided is the same as the orientation of the face of the base mesh. Therefore, at division points located on one edge of the base mesh, such as division points 44-1 to 44-3 in FIG. 4, the orientation of the surrounding faces is the same, and the vertex normal vectors also have the same orientation. For example, in the example of FIG. 5, the orientations of vertex normal vectors 52-1 to 52-3 are the same.
  • the weighting method does not depend on the position of the division point, the weighted average of the normal vectors of the surrounding faces may be applied.
  • the above-mentioned vertex normal vector derivation unit may derive the weighted average of the normal vectors of the surrounding faces, and use this value as the vertex normal vector of the processing target point.
  • the normal vectors of the surrounding faces may be weighted according to the area of the surrounding faces.
  • a weight value v is set for each face according to its size
  • the vertex normal vector is derived by the weighted average of the normal vectors n of the surrounding faces using the weight value v.
  • the faces of the base mesh are also uniformly (uniformly) subdivided, so that the sizes of the surrounding faces at each division point located on one edge of the base mesh, such as division points 44-1 to 44-3 in FIG. 4, are the same, and the vertex normal vectors are in the same direction.
  • the vertex normal vector derivation unit described above may derive the weighted average using a weight value based on the area of the surrounding faces.
  • the normal vectors may also be weighted according to the angle (difference in orientation) between the surrounding faces.
  • weight values ai, aj, ak are set according to the angle (difference in orientation) between the faces, and the vertex normal vector is derived by the weighted average of the normal vectors n of the surrounding faces using the weight values.
  • the orientation of each face into which the face of the base mesh is subdivided is the same as the orientation of the face of the base mesh. Therefore, at each division point located on one edge of the base mesh, such as division points 44-1 to 44-3 in FIG.
  • the vertex normal vector derivation unit described above may derive the weighted average using a weight value based on the difference in orientation of the surrounding faces.
  • the normal vector may also be weighted according to both the area of the surrounding faces and the angle (difference in orientation) between the surrounding faces.
  • a weight value v is set for each face according to its size
  • weight values ai, aj, and ak are set according to the angle (difference in orientation) between the faces
  • the vertex normal vector is derived by the weighted average of the normal vectors n of the surrounding faces using these weight values.
  • the vertex normal vectors of each division point located on one edge of the base mesh such as division points 44-1 to 44-3 in FIG. 4, have the same orientation as in the above example.
  • the above-mentioned vertex normal vector derivation unit may derive the weighted average using weight values based on the area of the surrounding faces and the difference in orientation between the surrounding faces.
  • the decoder may select either "method with interpolation” or "method without interpolation” and apply the selected method to derive the vertex normal vector (method 1-2).
  • the vertex normal vector derivation unit may select a first method (i.e., method with interpolation) in which weighting is performed according to the position of a processing target point, which is a vertex to be processed of a subdivided base mesh, and derive the vertex normal vector of the processing target point using the normal vector of the surrounding face of the processing target point, or a second method (i.e., method without interpolation) in which such weighting is not performed and the vertex normal vector of the processing target point is derived using the normal vector of the surrounding face, and the vertex normal vector may be derived using the selected method.
  • this derivation method is also referred to as a "decoder selection method".
  • the decoder and the encoder simply select the "method with interpolation” or the "method without interpolation” in the same manner (a predetermined method). In other words, in this case, the encoder does not need to explicitly notify the decoder which method it has selected. This makes it possible to suppress an increase in the amount of code. In addition, the encoder and the decoder can apply the more suitable one of the "method with interpolation” and the "method without interpolation,” which makes it possible to further suppress a decrease in encoding efficiency.
  • This selection method may be any method. For example, whether to select the "method with interpolation” or the “method without interpolation” may be determined based on the relationship (difference in orientation) between the orientations of the faces of the base mesh (i.e., the orientations of the normal vectors). For example, the above-mentioned vertex normal vector derivation unit may select the first method or the second method for each face of the base mesh based on the difference in orientation between the face to be processed and the faces located around it (also called surrounding faces).
  • the shapes of the original mesh and base mesh are also flat, and it is thought that the displacement vectors tend to have the same direction (there is little variation in direction). Therefore, it is thought that if the "method with interpolation" is applied to make the directions of the vertex normal vectors (i.e., the directions of the local coordinates) different from each other, the coding efficiency is likely to decrease. Therefore, for example, when the difference in direction between faces of the base mesh is small, the "method without interpolation" may be selected.
  • the vertex normal vector derivation unit described above may make a threshold judgment on the difference in direction between the face to be processed and the surrounding faces, and if the difference is smaller than the threshold (or equal to or smaller than the threshold), the "method without interpolation" may be selected, and if not, the "method with interpolation" may be selected.
  • the vertex normal vector of each vertex is derived based on the normal vectors of its surrounding faces.
  • the normal vectors of the surrounding faces of the face to be processed are indicated by the vertex normal vectors of the three vertices of the face to be processed.
  • the face to be processed 111 shown in gray is the face to be processed
  • the surrounding face 114 shown in the dotted frame is the face located around it.
  • Normal vector 112 is the normal vector of the face to be processed 111.
  • Normal vector 115 is the normal vector of the surrounding face 114. Note that in FIG. 9, only one surrounding face and its normal vector are labeled, but the faces in the dotted frame (triangle) are all surrounding faces 114, and their normal vector is normal vector 115.
  • vertex normal vector 113-1, vertex normal vector 113-2, and vertex normal vector 113-3 are the vertex normal vectors of each vertex of the face to be processed 111.
  • the vertex normal vector 113-1 is derived (for example, by averaging) using the normal vectors 115 of the surrounding faces 114 that share the vertex.
  • the vertex normal vectors 113-2 and 113-3 are also each derived (for example, by averaging) using the normal vectors 115 of the surrounding faces 114 that share the vertex.
  • the vertex normal vectors 113-1 to 113-3 represent the normal vectors 115 of the surrounding faces 114 shown in FIG. 9.
  • the difference in orientation between the face to be processed and the surrounding faces may be found using the normal vector of the face to be processed and the vertex normal vectors of its three vertices.
  • the dot product of the normal vector of the face to be processed described above and the vertex normal vectors of each vertex of the face to be processed may be found, and the minimum value of the dot product may be compared with a threshold value. If the minimum value of the dot product is smaller (or if the minimum value of the dot product is the same as the threshold value), the first method may be selected, and if not (if the dot product is larger, or if the minimum value of the dot product is the same as the threshold value), the second method may be selected.
  • this threshold may be predetermined or may be variable. That is, the encoder and decoder may have a common threshold in advance, or the threshold applied by the encoder may be transmitted to the decoder (the decoder may apply that threshold). For example, the vertex normal vector derivation unit described above may compare the threshold transmitted from the encoder with the minimum value of the dot product. By transmitting the threshold in this manner, the decoder does not need to hold the threshold. Also, the threshold can be easily made variable.
  • the vertex normal vector derivation unit may weight the processing target point, which is the vertex of the subdivided base mesh, according to the position of the processing target point, derive the vertex normal vector (first vertex normal vector) of the processing target point using the normal vector of the surrounding face of the processing target point, and derive the vertex normal vector (second vertex normal vector) of the processing target point using the normal vector of the surrounding face without weighting, and further combine the derived first vertex normal vector and the second vertex normal vector, and the combined result (combined vector) may be the vertex normal vector of the processing target point.
  • this derivation method is also referred to as the "combination method”.
  • the first vertex normal vector and the second vertex normal vector may be combined by a weighted average.
  • the above-mentioned vertex normal vector derivation unit may combine the derived first vertex normal vector and the second vertex normal vector by a weighted average.
  • a weight value w may be set, and a weighted average of the first vertex normal vector (interpolated vector) and the second vertex normal vector (no interpolated vector) may be derived as the combined vector (updated normal vector) as shown in the following equation (1).
  • the weight value may be different for vertices located on the edge of the face (hereinafter also referred to as edge vertices) and vertices located on parts other than the edge of the face (hereinafter also referred to as non-edge vertices).
  • edge vertices vertices located on the edge of the face
  • non-edge vertices vertices located on parts other than the edge of the face
  • gray vertex 122 is an edge vertex
  • black vertex 123 is a non-edge vertex.
  • the above-mentioned vertex normal vector derivation unit may combine the first vertex normal vector and the second vertex normal vector corresponding to the vertices located on the edge of the face of the base mesh by weighted averaging using a first weight value, and combine the first vertex normal vector and the second vertex normal vector corresponding to the vertices located in places other than the edge by weighted averaging using a second weight value different from the first weight value.
  • the weight value may be changed for each face of the base mesh, for each edge, or for each vertex.
  • this weight value may be predetermined or may be variable. That is, the encoder and decoder may have a common weight value in advance, or the weight value applied by the encoder may be transmitted to the decoder (the decoder may apply that weight value).
  • the above-mentioned vertex normal vector derivation unit may combine the derived first vertex normal vector and second vertex normal vector by weighted averaging using the weight value transmitted from the encoder. By transmitting the weight value in this manner, the decoder does not need to hold the weight value. Furthermore, the weight value can be easily made variable.
  • a method designation flag indicating the derivation method applied in the encoder may be transmitted from the encoder to the decoder (Methods 1-4).
  • the first information processing device may further include a derivation method setting unit that sets the vertex normal vector derivation method based on a method designation flag that designates the vertex normal vector derivation method, and the vertex normal vector derivation unit may derive the vertex normal vector using the set derivation method.
  • this derivation method is also referred to as the "flag method”.
  • the encoder can select and apply the most suitable method from among multiple derivation methods, thereby further reducing the decrease in encoding efficiency.
  • the decoder can apply the derivation method based on the method flag, making it easier to apply the same derivation method as the encoder.
  • the selection method used by this encoder may be any method.
  • the derivation method for the candidates to be selected may be any method, and the number of candidates may be any number.
  • the above-mentioned "method with interpolation”, “method without interpolation”, “decoder selection method”, and “synthesis method” may be candidates.
  • the encoder may apply any of these derivation methods.
  • the above-mentioned derivation method setting unit may select one of the following methods as the derivation method of the vertex normal vector: a first method (method with interpolation) in which weighting is performed according to the position of the processing target point, which is the vertex of the subdivided base mesh, and the vertex normal vector of the processing target point is derived using the normal vector of the surrounding face of the processing target point; a second method (method without interpolation) in which the vertex normal vector of the processing target point is derived using the normal vector of the surrounding face without weighting; a third method (decoder selection method) in which the first method or the second method is selected by a predetermined method; and a fourth method (synthesis method) in which the first vertex normal vector derived by
  • the method designation flag may be transmitted in any data unit.
  • the method designation flag may be transmitted for each sequence of the original mesh, for each frame, for each base mesh, for each face of the base mesh, or for each vertex of the base mesh.
  • the method designation flag may designate the vertex normal vector derivation method for each sequence of the original mesh, for each frame, for each base mesh, for each face of the base mesh, or for each vertex of the base mesh.
  • the above-mentioned derivation method setting unit may set the derivation method for each sequence of the original mesh, for each frame, for each base mesh, for each face of the base mesh, or for each vertex of the base mesh based on the method designation flag.
  • the encoder sets a method for deriving vertex normal vectors, applies the method to derive vertex normal vectors, and sets the local coordinate system.
  • the encoder then generates a method specification flag that specifies the derivation method, and transmits it to the decoder.
  • an information processing device may include a derivation method setting unit that sets a derivation method for a vertex normal vector, which is a normal vector of the vertices of a subdivided base mesh, a vertex normal vector derivation unit that derives a vertex normal vector using the set derivation method, a local coordinate derivation unit that derives local coordinates that represent a displacement vector in a local coordinate system corresponding to the vertex normal vector, a displacement video encoding unit that encodes a displacement video having frames of 2D images in which the local coordinates are stored as displacement vectors, a method designation flag generation unit that generates a method designation flag that designates the set derivation method, and a method designation flag encoding unit that encodes the method designation flag.
  • a derivation method setting unit that sets a derivation method for a vertex normal vector, which is a normal vector of the vertices of a subdivided base mesh
  • a vertex normal vector derivation unit that derives
  • a method for deriving a vertex normal vector which is a normal vector of a vertex of a subdivided base mesh, may be set, a vertex normal vector may be derived using the set derivation method, a local coordinate representing a displacement vector in a local coordinate system corresponding to the vertex normal vector may be derived, a displacement video may be encoded having 2D images as frames in which the local coordinate is stored as a displacement vector, a method designation flag for designating the set derivation method may be generated, and the method designation flag may be encoded.
  • the base mesh is a coarser mesh than the original mesh to be coded, which is composed of vertices and connections that represent the three-dimensional structure of an object, and is generated by thinning out vertices from the original mesh.
  • the displacement vector is the difference in position between a vertex of the subdivided base mesh and a vertex of the original mesh.
  • the local coordinate system is a coordinate system for each vertex of the subdivided base mesh that is set based on the vertex normal vector.
  • the local coordinates are coordinates that express the displacement vector of a vertex of the subdivided base mesh in the local coordinate system that corresponds to the vertex normal vector of that vertex.
  • the derivation method setting unit may select one of the following methods as the method for derivation of the vertex normal vector: a first method (method with interpolation) in which weighting is performed according to the position of the processing target point, which is a vertex of the subdivided base mesh, and the vertex normal vector of the processing target point is derived using the normal vectors of the faces surrounding the processing target point; a second method (method without interpolation) in which the vertex normal vector of the processing target point is derived using the normal vectors of the surrounding faces without weighting; a third method (decoder selection method) in which the decoder selects whether to apply the first method or the second method; and a fourth method (synthesis method) in which the first vertex normal vector derived by applying the first method and the second vertex normal vector derived by applying the second method are synthesized, and the synthesis result (synthetic vector) is used as the vertex normal vector of the processing target point.
  • a first method method with interpolation
  • weighting is performed according
  • the vertex normal vector derivation unit may select the first method or the second method in the same manner as the decoder, and apply the selected method to derive the vertex normal vector. For example, the vertex normal vector derivation unit may select the first method or the second method for each face of the base mesh based on the difference in orientation between the face to be processed and the surrounding faces.
  • the vertex normal vector derivation unit may calculate the inner product of the normal vector of the face to be processed and the vertex normal vector of each vertex of the face to be processed, compare the minimum value of the inner product with a threshold, and select the first method if the minimum value of the inner product is smaller (or if the minimum value of the inner product is the same as the threshold), and select the second method if not (if the inner product is larger, or if the minimum value of the inner product is the same as the threshold).
  • This threshold may be transmitted to the decoder.
  • the method designation flag encoding unit may further encode this threshold.
  • the above-mentioned vertex normal vector derivation unit may apply the first method to derive the first vertex normal vector, apply the second method to derive the second vertex normal vector, and combine the derived first vertex normal vector and second vertex normal vector by weighted averaging.
  • the vertex normal vector derivation unit may combine the first vertex normal vector and the second vertex normal vector corresponding to the vertex located on the edge of the face of the base mesh by weighted averaging using a first weight value.
  • the vertex normal vector derivation unit may combine the first vertex normal vector and the second vertex normal vector corresponding to the vertex located at a position not on the edge by weighted averaging using a second weight value different from the first weight value.
  • this threshold value may be transmitted to the decoder.
  • the above-mentioned method designation flag encoding unit may further encode the weight value used for the weighted average.
  • the method designation flag may be transmitted in any data unit.
  • the method designation flag may be transmitted for each sequence of the original mesh, for each frame, for each base mesh, for each face of the base mesh, or for each vertex of the base mesh.
  • the derivation method setting unit may set the vertex normal vector derivation method for each sequence of the original mesh, for each frame, for each base mesh, for each face of the base mesh, or for each vertex of the base mesh.
  • the method designation flag generation unit may generate a method designation flag for each sequence of the original mesh, for each frame, for each base mesh, for each face of the base mesh, or for each vertex of the base mesh.
  • the derived vertex normal vectors may be clustered using vertex normal vector candidates prepared in advance (Method 1-5).
  • the first information processing device may further include a clustering unit that clusters the derived vertex normal vectors with predetermined normal vector candidates prepared in advance.
  • the second information processing device may further include a clustering unit that clusters the derived vertex normal vectors with predetermined normal vector candidates prepared in advance.
  • the clustering unit replaces the vertex normal vector 131 with the candidate (vertex normal vector 132) whose orientation is closest. Then, a local coordinate system is set using the replaced vertex normal vector 132.
  • the orientation of the vertex normal vectors is limited to the orientation of pre-prepared candidates. In other words, it is possible to suppress an increase in the variability in the orientation of each vertex normal vector. In other words, by clustering in this way, the orientation of the local coordinate system is corrected and limited to the orientation of pre-prepared candidates. In other words, it is possible to suppress an increase in the variability in the orientation of the local coordinate system.
  • This method 1-5 can be applied in combination with any of the above-mentioned methods 1-1 to 1-4.
  • the derived vertex normal vectors may be clustered.
  • the example in FIG. 11 is just one example, and the number of candidates may be any number.
  • the orientation of the candidate vectors may be in any direction, and is not limited to the example in FIG. 11.
  • the derived vertex normal vector (orientation) may be quantized in the encoder (Method 1-6).
  • the first information processing device may further include a quantization unit that quantizes the derived vertex normal vector.
  • the second information processing device may further include a quantization unit that quantizes the derived vertex normal vector.
  • the quantization unit moves the vertex normal vector 131 onto a predetermined grid (quantizes the coordinates). Then, a local coordinate system is set using the quantized vertex normal vector 142.
  • the orientation of the vertex normal vectors is limited. In other words, it is possible to suppress the increase in the variation in the orientation of each vertex normal vector. In other words, by such quantization, the orientation of the local coordinate system is corrected and limited to a pre-prepared orientation. In other words, it is possible to suppress the increase in the variation in the orientation of the local coordinate system.
  • any quantization method may be used as long as it is possible to correct the orientation of the vertex normal vectors (i.e., local coordinates).
  • the (orientation of) the vertex normal vectors may be quantized using a spherical coordinate system as shown on the right of Figure 12.
  • ⁇ , ⁇ , r, etc. may be quantized.
  • the quantization method is not limited to the example in Figure 12.
  • This method 1-6 can be applied in combination with any of the above-mentioned methods 1-1 to 1-4. That is, in any of the above-mentioned methods 1-1 to 1-4, the derived vertex normal vectors may be quantized. Of course, methods 1-5 and 1-6 may also be applied in combination. That is, both quantization and clustering may be performed on the vertex normal vectors.
  • each of the above methods can be used in combination with other methods.
  • the method to be applied may be switched in the middle of a sequence. For example, it is possible to apply method 1-1 to one frame, method 1-2 to another frame, and method 1-3 to yet another frame.
  • Embodiment ⁇ Encoding device> The present technology can be applied to an encoding device that encodes a mesh.
  • Fig. 13 is a block diagram showing an example of the configuration of an encoding device, which is one aspect of an information processing device to which the present technology is applied.
  • the encoding device 200 shown in Fig. 13 is a device that encodes a mesh.
  • the encoding device 200 encodes a mesh in a manner basically similar to V-DMC described in Non-Patent Document 1.
  • the encoding device 200 encodes the mesh by applying the method 1 described above in ⁇ 3. Local coordinate system for encoding>.
  • the encoding device 200 may also apply one or more of the methods 1-1 to 1-3 described above.
  • FIG. 13 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 13.
  • processing units that are not shown as blocks in FIG. 13, and there may be processing and data flows that are not shown as arrows, etc. in FIG. 13.
  • the encoding device 200 has a base mesh encoding unit 211, a local coordinate system setting unit 212, a local coordinate derivation unit 213, a displacement vector correction unit 214, a packing unit 215, a displacement video encoding unit 216, a mesh reconstruction unit 217, an attribute map correction unit 218, an attribute video encoding unit 219, a header encoding unit 220, and a synthesis unit 221.
  • the encoding device 200 is provided with a base mesh, a displacement vector, and an attribute map for each frame. These data may be generated from the original mesh, for example, in pre-processing.
  • the base mesh encoding unit 211 encodes the base mesh and supplies the encoded data to the synthesis unit 221. Any encoding method may be used.
  • the base meshes of each frame may be encoded independently of each other (intra-encoding).
  • the base mesh of the target frame may also be encoded as a difference (motion vector) from the base mesh of the reference frame (inter-encoding).
  • the base mesh encoding unit 211 may also decode the generated encoded data to generate (restore) a base mesh. This generated (restored) base mesh includes encoding distortion.
  • the base mesh encoding unit 211 supplies the base mesh to the displacement vector correction unit 214 and the mesh reconstruction unit 217.
  • the local coordinate system setting unit 212 acquires a base mesh and sets a local coordinate system for each vertex of the subdivided base mesh.
  • the local coordinate system setting unit 212 sets the local coordinate system by applying the above-mentioned method 1.
  • the local coordinate system setting unit 212 may set the local coordinate system by applying one or more of the above-mentioned methods 1-1 to 1-3.
  • the local coordinate system setting unit 212 supplies the set local coordinate system to the local coordinate derivation unit 213.
  • the local coordinate system setting unit 212 may apply method 1-2 and supply the threshold value applied in the decoder selection method to the header encoding unit 220.
  • the local coordinate system setting unit 212 may apply method 1-3 and supply the weight value applied in the synthesis method to the header encoding unit 220.
  • the local coordinate derivation unit 213 acquires the displacement vector and the local coordinate system supplied from the local coordinate system setting unit 212, and derives local coordinates that represent the displacement vector in the local coordinate system.
  • the local coordinate derivation unit 213 derives the local coordinates by applying the above-mentioned method 1.
  • the local coordinate derivation unit 213 supplies the derived local coordinates to the displacement vector correction unit 214 as a displacement vector.
  • the displacement vector correction unit 214 acquires a base mesh including encoding distortion, supplied from the base mesh encoding unit 211.
  • the displacement vector correction unit 214 also acquires local coordinates (displacement vectors) supplied from the local coordinate derivation unit 213.
  • the displacement vector correction unit 214 subdivides the base mesh including the encoding distortion, and corrects the local coordinates (displacement vectors) using the subdivided base mesh.
  • the displacement vector correction unit 214 supplies the corrected local coordinates (displacement vectors) to the packing unit 215. Note that this correction may be omitted.
  • the packing unit 215 acquires local coordinates (displacement vectors) supplied from the displacement vector correction unit 214.
  • the packing unit 215 packs the local coordinates (displacement vectors) into a two-dimensional image of the current frame (also called a frame image).
  • the packing unit 215 may perform coefficient transformation (e.g., wavelet transformation) on the local coordinates (displacement vectors) and pack the transformation coefficients into the two-dimensional image.
  • the packing unit 215 may also quantize the local coordinates (or transformation coefficients) and pack the quantized coefficients into the two-dimensional image.
  • the packing unit 215 supplies the two-dimensional image in which the local coordinates (or information equivalent thereto) are packed as a displacement vector to the displacement video encoding unit 216.
  • the displacement video encoding unit 216 acquires the two-dimensional image supplied from the packing unit 215.
  • the displacement video encoding unit 216 treats the two-dimensional image as a frame image and encodes it as a moving image (displacement video).
  • the displacement video encoding unit 216 encodes the displacement video by applying the above-mentioned method 1.
  • the displacement video encoding unit 216 supplies the encoded data of the generated displacement video to the mesh reconstruction unit 217 and the synthesis unit 221.
  • the mesh reconstruction unit 217 decodes the encoded data of the displacement video supplied from the displacement video encoding unit 216, and derives local coordinates (displacement vectors) by unpacking from the two-dimensional image, etc.
  • the mesh reconstruction unit 217 also subdivides the base mesh (including encoding distortion) supplied from the base mesh encoding unit 211, and reconstructs a mesh by applying the derived displacement vector. This mesh includes encoding distortion.
  • the mesh reconstruction unit 217 supplies the reconstructed mesh to the attribute map correction unit 218.
  • the attribute map correction unit 218 acquires an attribute map such as a texture, and corrects the attribute map using the mesh (including encoding distortion) supplied from the mesh reconstruction unit 217.
  • the attribute map correction unit 218 supplies the corrected attribute map to the attribute video encoding unit 219. Note that this correction may be omitted.
  • the attribute video encoding unit 219 converts the attribute map supplied from the attribute map correction unit 218 into frame images and encodes them as a moving image (attribute video).
  • the attribute video encoding unit 219 supplies the generated encoded data of the attribute video to the synthesis unit 221.
  • the header encoding unit 220 applies the above-mentioned method 1 to encode the information to be stored in the header.
  • the header encoding unit 220 may apply the above-mentioned method 1-2 to encode the threshold value applied in the decoder selection method.
  • the header encoding unit 220 may also apply the above-mentioned method 1-3 to encode the weight value applied in the synthesis method. In other words, this threshold value or weight value may be stored in the header and transmitted.
  • the header encoding unit 220 supplies the generated encoded data of the header to the synthesis unit 221.
  • the synthesis unit 221 synthesizes (multiplexes) the supplied encoded data of the header, the encoded data of the base mesh, the encoded data of the displacement video, and the encoded data of the attribute video to generate a single bit stream.
  • the synthesis unit 221 outputs the generated bit stream to the outside of the encoding device 200. This bit stream is transmitted to the decoding device via any transmission medium or any recording medium.
  • Fig. 14 is a block diagram showing an example of the main configuration of the local coordinate system setting unit 212. As shown in Fig. 14, the local coordinate system setting unit 212 has a vertex normal vector derivation unit 241 and a local coordinate system setting unit 242.
  • the vertex normal vector derivation unit 241 applies the above-mentioned method 1 to subdivide the supplied base mesh and derive the vertex normal vectors of the vertices of the subdivided base mesh.
  • the vertex normal vector derivation unit 241 may derive the vertex normal vectors by applying one or more of the above-mentioned methods 1-1 to 1-3.
  • the vertex normal vector derivation unit 241 may apply method 1-1 to derive the vertex normal vectors by a method without interpolation.
  • the vertex normal vector derivation unit 241 may apply method 1-2 to derive a vertex normal vector by a decoder selection method.
  • the vertex normal vector derivation unit 241 may supply the threshold value applied in the decoder selection method to the header encoding unit 220 as a parameter. Furthermore, the vertex normal vector derivation unit 241 may apply method 1-3 to derive a vertex normal vector by a synthesis method. In this case, the vertex normal vector derivation unit 241 may supply the weight value applied in the synthesis method to the header encoding unit 220 as a parameter. The vertex normal vector derivation unit 241 supplies the derived vertex normal vector to the local coordinate system setting unit 242.
  • the local coordinate system setting unit 242 applies the above-mentioned method 1 and sets a local coordinate system based on the vertex normal vector supplied from the vertex normal vector derivation unit 241. For example, the local coordinate system setting unit 242 sets a local coordinate system of an orthogonal coordinate system by treating the vertex normal vector as one coordinate axis and setting two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector. The local coordinate system setting unit 242 sets a local coordinate system for each vertex normal vector. The local coordinate system setting unit 242 supplies the set local coordinate system to the local coordinate derivation unit 213.
  • the encoding device 200 can suppress a decrease in encoding efficiency.
  • the base mesh encoding unit 211 encodes the base mesh in step S201.
  • the base mesh encoding unit 211 also decodes the generated encoded data and generates (restores) a base mesh that includes encoding distortion.
  • step S202 the local coordinate system setting unit 212 executes the local coordinate system setting process by applying the above-mentioned method 1, and sets the local coordinate system. Note that the local coordinate system setting unit 212 may execute this process by applying one or more of the above-mentioned methods 1-1 to 1-3.
  • step S203 the local coordinate derivation unit 213 applies the method 1 described above to derive local coordinates that represent the displacement vector in the local coordinate system set in step S202.
  • step S204 the displacement vector correction unit 214 corrects the local coordinates (displacement vector) derived in step S203 using the base mesh (including encoding distortion) generated in step S201.
  • step S205 the packing unit 215 packs the local coordinates (displacement vector) (or the corrected local coordinates if they were corrected in step S204) into a frame (two-dimensional image).
  • step S206 the displacement video encoding unit 216 applies the above-mentioned method 1 to treat the packed two-dimensional images as frame images and encode them as displacement video.
  • step S207 the mesh reconstruction unit 217 reconstructs a mesh (including encoding distortion) using the base mesh (including encoding distortion) generated in step S201 and the encoded data of the displacement video generated in step S206.
  • step S208 the attribute map correction unit 218 corrects the attribute map using the reconstructed mesh.
  • step S209 the attribute video encoding unit 219 treats the corrected attribute map as a frame image and encodes it as an attribute video.
  • the header encoding unit 220 encodes the information to be stored in the header.
  • the header encoding unit 220 may apply the above-mentioned method 1-2 to encode the threshold value applied in the decoder selection method.
  • the header encoding unit 220 may also apply the above-mentioned method 1-3 to encode the weight value applied in the synthesis method.
  • step S211 the synthesis unit 221 multiplexes the encoded data of the base mesh generated in step S201, the encoded data of the displacement video generated in step S206, the encoded data of the attribute video generated in step S209, and the encoded data of the header generated in step S210 to generate one bitstream.
  • step S211 When step S211 is completed, the encoding process ends.
  • step S231 the vertex normal vector derivation unit 241 subdivides the base mesh and generates division points.
  • step S232 the vertex normal vector derivation unit 241 derives the vertex normal vector for each vertex of the subdivided base mesh using the "non-interpolation method" described above in ⁇ 3. Local coordinate system for encoding>.
  • step S233 the local coordinate system setting unit 242 sets the vertex normal vector derived in step S232 as one coordinate axis, and sets two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector, thereby setting a local coordinate system of a Cartesian coordinate system.
  • step S233 When the processing of step S233 is completed, the local coordinate system setting process ends and the process returns to FIG. 15.
  • step S251 the vertex normal vector derivation unit 241 determines (selects) whether or not to derive the vertex normal vector using the "method with interpolation.”
  • This selection method may be any method. For example, whether to select the "method with interpolation” or the "method without interpolation” may be determined based on the relationship (difference in orientation) between the orientations of the faces of the base mesh (i.e., the orientations of the normal vectors). For example, the vertex normal vector derivation unit 241 may determine the difference in orientation between the face to be processed and the surrounding faces using a threshold, and if the difference is smaller than the threshold (or equal to or smaller than the threshold), select the "method without interpolation", and otherwise select the "method with interpolation”.
  • the vertex normal vector derivation unit 241 may obtain the dot product between the normal vector of the face to be processed and the vertex normal vector of each vertex of the face to be processed, compare the minimum value of the dot product with a threshold, and select the first method if the minimum value of the dot product is smaller (or if the minimum value of the dot product is the same as the threshold), and select the second method otherwise (if the dot product is larger, or if the minimum value of the dot product is the same as the threshold).
  • this threshold may be predetermined or may be variable. That is, the encoder and decoder may have a common threshold in advance, or the threshold applied by the encoder may be transmitted to the decoder (and the decoder may apply that threshold).
  • step S252 If it is determined that the vertex normal vectors will be derived using the "method with interpolation," processing proceeds to step S252.
  • step S252 the vertex normal vector derivation unit 241 derives the vertex normal vectors of the base mesh.
  • step S253 the vertex normal vector derivation unit 241 subdivides the base mesh.
  • step S254 the vertex normal vector derivation unit 241 derives the vertex normal vector of the division point using the "method with interpolation."
  • step S254 ends, the process proceeds to step S257.
  • step S251 If it is determined in step S251 that the vertex normal vectors will be derived using the "non-interpolation method," processing proceeds to step S255.
  • step S255 the vertex normal vector derivation unit 241 subdivides the base mesh.
  • step S256 the vertex normal vector derivation unit 241 derives a vertex normal vector for each vertex of the subdivided base mesh using the "non-interpolation method" described above in ⁇ 3. Local coordinate system for encoding>.
  • step S257 the local coordinate system setting unit 242 sets the vertex normal vector derived as described above as one coordinate axis, and sets two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector, thereby setting a local coordinate system of a Cartesian coordinate system.
  • step S257 When the processing of step S257 is completed, the local coordinate system setting process ends and the process returns to FIG. 15.
  • the vertex normal vector derivation unit 241 derives the vertex normal vectors of the base mesh in step S271.
  • step S272 the vertex normal vector derivation unit 241 subdivides the base mesh.
  • step S273 the vertex normal vector derivation unit 241 derives the vertex normal vectors of the division points using the "method with interpolation.” In other words, by the processing of steps S271 to S273, the vertex normal vectors of each vertex of the subdivided base mesh are derived using the "method with interpolation.”
  • step S274 the vertex normal vector derivation unit 241 derives the vertex normal vector for each vertex of the base mesh subdivided in step S272 using the "non-interpolation method" described above in ⁇ 3. Local coordinate system for encoding>.
  • the vertex normal vector derivation unit 241 combines the vertex normal vector derived by the "method with interpolation” and the vertex normal vector derived by the "method without interpolation” to derive a combined vector.
  • the vertex normal vector derivation unit 241 may combine the vertex normal vector derived by the "method with interpolation” and the vertex normal vector derived by the "method without interpolation” by weighted averaging.
  • the weight value applied to this weighted average may be different for edge vertices and non-edge vertices.
  • this weight value may be different for each face of the base mesh, each edge, or each vertex.
  • this weight value may be predetermined or may be variable.
  • the encoder and decoder may have a common weight value in advance, or the weight value applied by the encoder may be transmitted to the decoder (the decoder may apply the weight value).
  • step S276 the local coordinate system setting unit 242 sets the vertex normal vector (composite vector) derived as described above as one coordinate axis, and sets two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector, thereby setting a local coordinate system of a Cartesian coordinate system.
  • vertex normal vector composite vector
  • two coordinate axes Bi-tangent, tangent and Bi-tangent
  • step S276 the local coordinate system setting process ends and the process returns to FIG. 15.
  • the encoding device 200 can suppress a decrease in encoding efficiency.
  • Fig. 19 is a block diagram showing an example of the configuration of a decoding device, which is one aspect of an information processing device to which the present technology is applied.
  • the decoding device 300 shown in Fig. 19 is a device that decodes mesh encoded data.
  • the decoding device 300 decodes mesh encoded data in a manner basically similar to V-DMC described in Non-Patent Document 1.
  • the decoding device 300 decodes the encoded data of the mesh by applying the method 1 described above in ⁇ 3. Local coordinate system for encoding>.
  • the decoding device 300 may also apply one or more of the methods 1-1 to 1-3 described above.
  • the decoding device 300 is a decoding device corresponding to the encoding device 200 in FIG. 13, and can decode the bit stream generated by the encoding device 200 and reconstruct a mesh.
  • FIG. 19 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 19.
  • processing units that are not shown as blocks in FIG. 19, and there may be processing and data flows that are not shown as arrows, etc. in FIG. 19.
  • the decoding device 300 has a demultiplexing unit 311, a header decoding unit 312, a base mesh decoding unit 313, a subdivision unit 314, a displacement video decoding unit 315, an unpacking unit 316, a local coordinate system setting unit 317, a displacement vector application unit 318, and an attribute video decoding unit 319.
  • the decoding device 300 is supplied with a bitstream generated by an encoding device (e.g., encoding device 200) that encodes the mesh using the V-DMC method.
  • an encoding device e.g., encoding device 200
  • the demultiplexing unit 311 demultiplexes the bitstream and extracts each piece of encoded data contained in the bitstream. For example, the demultiplexing unit 311 extracts header encoded data from the bitstream and supplies it to the header decoding unit 312. The demultiplexing unit 311 also extracts base mesh encoded data from the bitstream and supplies it to the base mesh decoding unit 313. The demultiplexing unit 311 also extracts displacement video encoded data from the bitstream and supplies it to the displacement video decoding unit 315. The demultiplexing unit 311 also extracts attribute video encoded data from the bitstream and supplies it to the attribute video decoding unit 319.
  • the header decoding unit 312 applies the above-mentioned method 1 to decode the encoded data of the header supplied from the demultiplexing unit 311 and generates (restores) information to be stored in the header.
  • the header decoding unit 312 appropriately supplies the generated information to the base mesh decoding unit 313, the subdivision unit 314, the displacement video decoding unit 315, the unpacking unit 316, the local coordinate system setting unit 317, and the attribute video decoding unit 319.
  • the header decoding unit 312 may apply the above-mentioned method 1-2 to supply the threshold value (threshold value applied in the encoder) generated by decoding the encoded data to the local coordinate system setting unit 317.
  • the header decoding unit 312 may also apply the above-mentioned method 1-3 to supply the weight value (weight value applied in the encoder) generated by decoding the encoded data to the local coordinate system setting unit 317.
  • the base mesh decoding unit 313 decodes the coded data of the base mesh supplied from the demultiplexing unit 311, and generates (restores) the base mesh.
  • the coded data of the base mesh may be intra-coded or inter-coded. In other words, the base mesh decoding unit 313 can either intra-decode or inter-decode the coded data.
  • the base mesh decoding unit 313 decodes the coded data by applying the method 1 described above.
  • the base mesh decoding unit 313 supplies the generated base mesh to the subdivision unit 314 and the local coordinate system setting unit 317.
  • the subdivision unit 314 subdivides the base mesh supplied from the base mesh decoding unit 313 and supplies the subdivided base mesh to the displacement vector application unit 318.
  • the displacement video decoding unit 315 decodes the encoded data of the displacement video supplied from the demultiplexing unit 311 and generates (restores) the displacement video.
  • the displacement video decoding unit 315 decodes the encoded data by applying the method 1 described above.
  • the displacement video decoding unit 315 supplies the generated displacement video (the current frame) to the unpacking unit 316.
  • the unpacking unit 316 unpacks local coordinates (displacement vectors) from the current frame of the displacement video supplied from the displacement video decoding unit 315.
  • the unpacking unit 316 may unpack the transform coefficients and perform coefficient transformation (e.g., wavelet transformation) on the transform coefficients to derive the local coordinates (displacement vectors).
  • the unpacking unit 316 may also unpack the quantized coefficients and dequantize the quantized coefficients to derive the local coordinates (displacement vectors).
  • the unpacking unit 316 may also unpack the quantized coefficients and dequantize the quantized coefficients to derive the transform coefficients and perform coefficient transformation (e.g., wavelet transformation) on the transform coefficients to derive the local coordinates (displacement vectors).
  • the unpacking unit 316 supplies the unpacked local coordinates (displacement vectors) to the displacement vector application unit 318.
  • the local coordinate system setting unit 317 acquires the base mesh supplied from the base mesh decoding unit 313, and sets a local coordinate system for each vertex of the subdivided base mesh.
  • the local coordinate system setting unit 317 sets the local coordinate system by applying the above-mentioned method 1.
  • the local coordinate system setting unit 317 may set the local coordinate system by applying one or more of the above-mentioned methods 1-1 to 1-3.
  • the local coordinate system setting unit 317 sets the local coordinate system by the same method as the method applied by the encoder (for example, the local coordinate system setting unit 212 of the encoding device 200).
  • the local coordinate system setting unit 317 supplies the set local coordinate system to the displacement vector application unit 318.
  • the local coordinate system setting unit 317 may apply method 1-2 to derive vertex normal vectors by a decoder selection method using a threshold supplied from the header decoding unit 312, and set the local coordinate system.
  • the local coordinate system setting unit 317 may also apply methods 1-3 to derive vertex normal vectors by a synthesis method using weight values supplied from the header decoding unit 312 to set a local coordinate system.
  • the displacement vector application unit 318 applies the above-mentioned method 1 to the vertices of the subdivided base mesh supplied from the subdivision unit 314 by applying the local coordinates (displacement vectors) supplied from the unpacking unit 316, and reconstructs the mesh. That is, the displacement vector application unit 318 applies local coordinates (displacement vectors) to the vertices of the subdivided base mesh using the local coordinate system supplied from the local coordinate system setting unit 317. In this specification, this reconstructed mesh is also referred to as a decoded mesh. In other words, it can be said that the displacement vector application unit 318 generates a decoded mesh. The displacement vector application unit 318 outputs the generated decoded mesh to the outside of the decoding device 300.
  • the attribute video decoding unit 319 decodes the encoded data of the attribute video supplied from the demultiplexing unit 311 and generates the attribute video (the current frame).
  • the attribute video decoding unit 319 outputs the generated current frame of the attribute video, i.e., the attribute map corresponding to the decoded mesh, to the outside of the decoding device 300.
  • Fig. 20 is a block diagram showing an example of the main configuration of the local coordinate system setting unit 317. As shown in Fig. 20, the local coordinate system setting unit 317 has a vertex normal vector derivation unit 341 and a local coordinate system setting unit 342.
  • the vertex normal vector derivation unit 341 applies the above-mentioned method 1 to subdivide the supplied base mesh and derives the vertex normal vectors of the vertices of the subdivided base mesh.
  • the vertex normal vector derivation unit 341 may apply one or more of the above-mentioned methods 1-1 to 1-3 to derive the vertex normal vectors.
  • the vertex normal vector derivation unit 341 may apply method 1-1 to derive the vertex normal vector by the non-interpolation method.
  • the vertex normal vector derivation unit 341 may also apply method 1-2 to derive the vertex normal vector by the decoder selection method. In this case, the vertex normal vector derivation unit 341 may apply the supplied threshold value to derive the vertex normal vector.
  • the vertex normal vector derivation unit 341 may also apply method 1-3 to derive the vertex normal vector by the synthesis method. In this case, the vertex normal vector derivation unit 341 may apply the supplied weight value to derive the vertex normal vector.
  • the vertex normal vector derivation unit 341 derives the vertex normal vector using the same method as that applied by the encoder (for example, the vertex normal vector derivation unit 241 of the encoding device 200).
  • the vertex normal vector derivation unit 341 supplies the derived vertex normal vector to the local coordinate system setting unit 342.
  • the local coordinate system setting unit 342 applies the above-mentioned method 1 and sets a local coordinate system based on the vertex normal vector supplied from the vertex normal vector derivation unit 341. For example, the local coordinate system setting unit 342 sets a local coordinate system of an orthogonal coordinate system by treating the vertex normal vector as one coordinate axis and setting two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector. The local coordinate system setting unit 342 sets a local coordinate system for each vertex normal vector. The local coordinate system setting unit 342 supplies the set local coordinate system to the displacement vector application unit 318.
  • the decoding device 300 can suppress a decrease in coding efficiency.
  • step S301 the demultiplexer 311 demultiplexes the bit stream and extracts various encoded data.
  • the header decoding unit 312 applies the method 1 described above to decode the encoded data of the header extracted in step S301 and generate (restore) the information to be stored in the header.
  • step S303 the base mesh decoding unit 313 applies the method 1 described above to decode the encoded data of the base mesh extracted in step S301 and generate (restore) the base mesh.
  • step S304 the subdivision unit 314 subdivides the base mesh.
  • step S305 the displacement video decoding unit 315 applies the above-mentioned method 1 to decode the encoded data of the displacement video extracted in step S301, and generates (restores) the displacement video (current frame).
  • the unpacking unit 316 unpacks local coordinates (displacement vectors) from the current frame (two-dimensional image).
  • the unpacking unit 316 may unpack transform coefficients and perform coefficient transformation (e.g., wavelet transformation) on the transform coefficients to derive local coordinates (displacement vectors).
  • the unpacking unit 316 may also unpack quantized coefficients and dequantize the quantized coefficients to derive local coordinates (displacement vectors).
  • the unpacking unit 316 may also unpack quantized coefficients and dequantize the quantized coefficients to derive transform coefficients, and perform coefficient transformation (e.g., wavelet transformation) on the transform coefficients to derive local coordinates (displacement vectors).
  • the local coordinate system setting unit 317 executes the local coordinate system setting process by applying the above-mentioned method 1 to set the local coordinate system.
  • the local coordinate system setting unit 317 may execute this process by applying one or more of the above-mentioned methods 1-1 to 1-3.
  • the local coordinate system setting unit 317 may apply method 1-2 to derive vertex normal vectors by a decoder selection method using a threshold value supplied from the header decoding unit 312 and set the local coordinate system.
  • the local coordinate system setting unit 317 may apply method 1-3 to derive vertex normal vectors by a synthesis method using a weight value supplied from the header decoding unit 312 and set the local coordinate system.
  • the local coordinate system setting unit 317 sets the local coordinate system by the same method as the method applied by the encoder (for example, the local coordinate system setting unit 212 of the encoding device 200).
  • step S308 the displacement vector application unit 318 applies the above-mentioned method 1, and uses the local coordinate system set in step S307 to apply the local coordinates (displacement vectors) unpacked in step S306 to the vertices of the base mesh subdivided in step S304, thereby generating a decoded mesh.
  • step S309 the attribute video decoding unit 319 decodes the encoded data of the attribute video extracted in step S301, and generates (restores) the current frame of the attribute video, i.e., the attribute map.
  • step S309 When the processing of step S309 is completed, the decoding process ends.
  • step S331 the vertex normal vector derivation unit 341 subdivides the base mesh and generates division points.
  • step S332 the vertex normal vector derivation unit 341 derives the vertex normal vector for each vertex of the subdivided base mesh using the "non-interpolation method" described above in ⁇ 3. Local coordinate system for encoding>.
  • step S333 the local coordinate system setting unit 342 sets the vertex normal vector derived in step S332 as one coordinate axis, and sets two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector, thereby setting a local coordinate system of a Cartesian coordinate system.
  • step S333 When the processing of step S333 is completed, the local coordinate system setting process ends and the process returns to FIG. 21.
  • step S351 the vertex normal vector derivation unit 341 determines (selects) whether or not to derive the vertex normal vector using the "method with interpolation.”
  • This selection method may be any method as long as it is the same as the encoder. For example, whether to select the "method with interpolation” or the "method without interpolation” may be determined based on the relationship (difference in orientation) between the orientations of the faces of the base mesh (i.e., the orientations of the normal vectors). For example, the vertex normal vector derivation unit 341 may determine the difference in orientation between the face to be processed and the surrounding faces using a threshold, and if the difference is smaller than the threshold (or equal to or smaller than the threshold), select the "method without interpolation", otherwise select the "method with interpolation”.
  • the vertex normal vector derivation unit 341 may obtain the dot product between the normal vector of the face to be processed and the vertex normal vector of each vertex of the face to be processed, compare the minimum value of the dot product with a threshold, and select the first method if the minimum value of the dot product is smaller (or if the minimum value of the dot product is the same as the threshold), and select the second method otherwise (if the dot product is larger, or if the minimum value of the dot product is the same as the threshold).
  • this threshold may be predetermined or may be variable.
  • the encoder and decoder may have a common threshold in advance, or the threshold applied by the encoder may be transmitted to the decoder (the vertex normal vector derivation unit 341 may apply the threshold transmitted from the encoder).
  • step S352 If it is determined that the vertex normal vectors will be derived using the "method with interpolation," processing proceeds to step S352.
  • step S352 the vertex normal vector derivation unit 341 derives the vertex normal vectors of the base mesh.
  • step S353 the vertex normal vector derivation unit 341 subdivides the base mesh.
  • step S354 the vertex normal vector derivation unit 341 derives the vertex normal vector of the division point using the "method with interpolation."
  • step S354 ends, the process proceeds to step S357.
  • step S351 determines whether the vertex normal vectors are to be derived using the "non-interpolation method." If it is determined in step S351 that the vertex normal vectors are to be derived using the "non-interpolation method," processing proceeds to step S355.
  • step S355 the vertex normal vector derivation unit 341 subdivides the base mesh.
  • step S356 the vertex normal vector derivation unit 341 derives a vertex normal vector for each vertex of the subdivided base mesh using the "non-interpolation method" described above in ⁇ 3. Local coordinate system for encoding>.
  • step S356 ends, the process proceeds to step S357.
  • step S357 the local coordinate system setting unit 342 sets the vertex normal vector derived as described above as one coordinate axis, and sets two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector, thereby setting a local coordinate system of a Cartesian coordinate system.
  • step S357 When the processing of step S357 is completed, the local coordinate system setting process ends and the process returns to FIG. 21.
  • the vertex normal vector derivation unit 341 derives the vertex normal vectors of the base mesh in step S371.
  • step S372 the vertex normal vector derivation unit 341 subdivides the base mesh.
  • step S373 the vertex normal vector derivation unit 341 derives the vertex normal vectors of the division points using the "method with interpolation.” In other words, by the processing of steps S371 to S373, the vertex normal vectors of each vertex of the subdivided base mesh are derived using the "method with interpolation.”
  • step S374 the vertex normal vector derivation unit 341 derives the vertex normal vector for each vertex of the base mesh subdivided in step S372 using the "non-interpolation method" described above in ⁇ 3. Local coordinate system for encoding>.
  • the vertex normal vector derivation unit 341 combines the vertex normal vector derived by the "method with interpolation” and the vertex normal vector derived by the "method without interpolation” to derive a combined vector.
  • the vertex normal vector derivation unit 341 may combine the vertex normal vector derived by the "method with interpolation” and the vertex normal vector derived by the "method without interpolation” by weighted averaging.
  • the weight value applied to this weighted average may be different for edge vertices and non-edge vertices.
  • this weight value may be different for each face of the base mesh, each edge, or each vertex.
  • this weight value may be predetermined or may be variable.
  • the encoder and the decoder may have a common weight value in advance, or the weight value applied by the encoder may be transmitted to the decoder (the vertex normal vector derivation unit 341 may apply the weight value transmitted from the encoder).
  • step S376 the local coordinate system setting unit 342 sets the vertex normal vector (composite vector) derived as described above as one coordinate axis, and sets two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector, thereby setting a local coordinate system of a Cartesian coordinate system.
  • vertex normal vector composite vector
  • two coordinate axes Bi-tangent, tangent and Bi-tangent
  • step S376 When the processing of step S376 is completed, the local coordinate system setting process ends and the process returns to FIG. 21.
  • the decoding device 300 can suppress a decrease in encoding efficiency.
  • the encoding device 200 can apply the above-mentioned methods 1 to 4. That is, the encoding device 200 may derive the vertex normal vectors by the "flag method", set a local coordinate system using the derived vertex normal vectors, and derive the local coordinates of the displacement vector using the local coordinate system.
  • the encoding device 200 has the same configuration as that described with reference to FIG. 13.
  • Each processing unit performs the same processing as in FIG. 13.
  • the local coordinate system setting unit 212 applies the above-mentioned methods 1-4 to set the local coordinate system. That is, the local coordinate system setting unit 212 derives the vertex normal vectors by the flag method, and sets the local coordinate system using the derived vertex normal vectors. Therefore, the local coordinate system setting unit 212 generates a method designation flag indicating the derivation method applied at that time, supplies the method designation flag to the header encoding unit 220, and stores it in the header.
  • the header encoding unit 220 encodes the header including the method designation flag. That is, the header encoding unit 220 encodes the method designation flag.
  • the synthesis unit 221 stores the encoded data of the header (method designation flag) in the bit stream.
  • This bit stream is transmitted to the decoder via any transmission path or storage medium. That is, the method designation flag is transmitted to the decoder.
  • the method designation flag may be transmitted in any data unit. For example, a method designation flag may be transmitted for each sequence of the original mesh, a method designation flag may be transmitted for each frame, a method designation flag may be transmitted for each base mesh, a method designation flag may be transmitted for each face of the base mesh, or a method designation flag may be transmitted for each vertex of the base mesh.
  • the local coordinate system setting unit 212 in this case has a derivation method setting unit 411 and a method designation flag generation unit 412 in addition to the configuration shown in FIG. 14 (the vertex normal vector derivation unit 241 and the local coordinate system setting unit 242).
  • the derivation method setting unit 411 applies the above-mentioned methods 1-4 to set the derivation method of the vertex normal vector. For example, the derivation method setting unit 411 may select one of the candidates "method with interpolation", “method without interpolation”, “decoder selection method”, and "synthesis method” to apply as the derivation method of the vertex normal vector. Note that any method may be used to select this derivation method. The derivation method setting unit 411 may also set the derivation method of the vertex normal vector in any data unit.
  • the derivation method setting unit 411 may set the derivation method of the vertex normal vector for each sequence of the original mesh, for each frame, for each base mesh, for each face of the base mesh, or for each vertex of the base mesh.
  • the derivation method setting unit 411 notifies the vertex normal vector derivation unit 241 and the method designation flag generation unit 412 of the set derivation method.
  • the vertex normal vector derivation unit 241 derives the vertex normal vector using the derivation method set by the derivation method setting unit 411. For example, the vertex normal vector derivation unit 241 may derive the vertex normal vector by applying the "method with interpolation", "method without interpolation", "decoder selection method", or "synthesis method". Each derivation method is as described above.
  • the vertex normal vector derivation unit 241 supplies the derived vertex normal vector to the local coordinate system setting unit 242.
  • the local coordinate system setting unit 242 sets a local coordinate system using the vertex normal vector, as in the case of FIG. 14.
  • the method designation flag generation unit 412 generates a method designation flag, which is flag information indicating the derivation method set by the derivation method setting unit 411.
  • the method designation flag generation unit 412 may generate this method designation flag in any data unit.
  • the method designation flag generation unit 412 may generate a method designation flag for each sequence of the original mesh, for each frame, for each base mesh, for each face of the base mesh, or for each vertex of the base mesh.
  • the method designation flag generation unit 412 supplies the generated method designation flag to the header encoding unit 220.
  • the encoding device 200 can derive the vertex normal vectors by applying methods 1-4. Therefore, the encoding device 200 can suppress a decrease in encoding efficiency.
  • step S2 the local coordinate system setting unit 212 executes the local coordinate system setting process by applying the above-mentioned method 1-4 to set the local coordinate system.
  • step S321 the header encoding unit 220 encodes the header including the method designation flag generated in step S202.
  • step S202 An example of the flow of the local coordinate system setting process (step S202) in this case will be explained with reference to the flowchart in Figure 26.
  • the derivation method setting unit 411 applies the above-mentioned methods 1-4 to set the vertex normal vector derivation method.
  • the derivation method setting unit 411 may select one of the candidates "method with interpolation", “method without interpolation”, “decoder selection method”, and "synthesis method” to apply as the vertex normal vector derivation method. Note that any method may be used to select this derivation method.
  • the derivation method setting unit 411 may also set the vertex normal vector derivation method in any data unit. For example, the derivation method setting unit 411 may set the vertex normal vector derivation method for each sequence of the original mesh, for each frame, for each base mesh, for each face of the base mesh, or for each vertex of the base mesh.
  • step S402 the vertex normal vector derivation unit 241 derives a vertex normal vector using the derivation method set in step S401.
  • the vertex normal vector derivation unit 241 may derive a vertex normal vector using a "method with interpolation", a "method without interpolation”, a "decoder selection method”, or a "synthesis method”.
  • step S403 the local coordinate system setting unit 242 sets the vertex normal vector derived in step S402 as one coordinate axis, and sets two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector, thereby setting a local coordinate system of a Cartesian coordinate system.
  • step S404 the method specification flag generation unit 412 generates a method specification flag that indicates the derivation method set in step S401.
  • step S404 the local coordinate system setting process ends and the process returns to FIG. 15.
  • the encoding device 200 can derive the vertex normal vectors by applying methods 1-4. Therefore, the encoding device 200 can suppress a decrease in encoding efficiency.
  • the decoding device 300 can also apply the above-mentioned methods 1-4. That is, the decoding device 300 may derive a vertex normal vector by the "flag method", set a local coordinate system using the derived vertex normal vector, and derive the local coordinates of the displacement vector using the local coordinate system. That is, the decoding device 300 may set a vertex normal vector derivation method based on a method designation flag transmitted from the encoder, derive a vertex normal vector by the derivation method, set a local coordinate system using the derived vertex normal vector, and derive the local coordinates of the displacement vector using the local coordinate system.
  • the decoding device 300 has the same configuration as that described with reference to FIG. 19. Each processing unit performs the same processing as in FIG. 19. However, the header decoding unit 312 decodes the encoded data of the header including the method designation flag, and generates (restores) the method designation flag transmitted from the encoder. The header decoding unit 312 then supplies the generated (restored) method designation flag to the local coordinate system setting unit 317.
  • the local coordinate system setting unit 317 applies methods 1-4 described above to set the local coordinate system. That is, the local coordinate system setting unit 317 derives vertex normal vectors by the "flag method” and sets the local coordinate system using the derived vertex normal vectors. That is, the local coordinate system setting unit 317 sets the vertex normal vector derivation method based on the method designation flag supplied from the header decoding unit 312 (the method designation flag transmitted from the encoder), derives the vertex normal vectors by the derivation method, and sets the local coordinate system using the derived vertex normal vectors.
  • this method designation flag may be transmitted in any data unit. For example, a method designation flag may be transmitted for each sequence of the original mesh, a method designation flag may be transmitted for each frame, a method designation flag may be transmitted for each base mesh, a method designation flag may be transmitted for each face of the base mesh, or a method designation flag may be transmitted for each vertex of the base mesh.
  • FIG. 27 an example of the main configuration of the local coordinate system setting unit 317 is shown in FIG. 27.
  • the local coordinate system setting unit 317 in this case has a derivation method setting unit 421 in addition to the configuration shown in FIG. 20 (the vertex normal vector derivation unit 241 and the local coordinate system setting unit 242).
  • the derivation method setting unit 421 applies methods 1-4 described above to set the derivation method for the vertex normal vector. For example, the derivation method setting unit 421 acquires a method designation flag supplied from the header decoding unit 312. The derivation method setting unit 421 sets the derivation method indicated by the method designation flag as the derivation method for the vertex normal vector. The derivation method setting unit 421 supplies the set derivation method to the vertex normal vector derivation unit 341. Note that the derivation method setting unit 421 may acquire other parameters (e.g., thresholds and weight values transmitted from the encoder) as necessary and supply them to the vertex normal vector derivation unit 341.
  • the derivation method setting unit 421 may acquire other parameters (e.g., thresholds and weight values transmitted from the encoder) as necessary and supply them to the vertex normal vector derivation unit 341.
  • the vertex normal vector derivation unit 341 derives the vertex normal vector using the derivation method set by the derivation method setting unit 421.
  • the vertex normal vector derivation unit 341 may derive the vertex normal vector by applying the "method with interpolation", "method without interpolation", "decoder selection method", or "synthesis method". Each derivation method is as described above.
  • the vertex normal vector derivation unit 341 supplies the derived vertex normal vector to the local coordinate system setting unit 342.
  • the local coordinate system setting unit 342 sets a local coordinate system using the vertex normal vector, as in the case of FIG. 20, and supplies the local coordinate system to the displacement vector application unit 318.
  • the decoding device 300 can derive vertex normal vectors by applying methods 1-4. Therefore, the decoding device 300 can suppress a decrease in encoding efficiency.
  • the decoding process is executed in the same manner as in the flowchart of Fig. 21.
  • the header decoding unit 312 decodes the encoded data of the header including the method designation flag etc. transmitted from the encoder. That is, the method designation flag transmitted from the encoder is generated (restored).
  • step S307 the local coordinate system setting unit 317 executes the local coordinate system setting process by applying the above-mentioned method 1-4, and sets the local coordinate system.
  • step S307 An example of the flow of the local coordinate system setting process (step S307) in this case will be explained with reference to the flowchart in Figure 28.
  • the derivation method setting unit 421 applies the above-mentioned methods 1-4 to set the vertex normal vector derivation method.
  • the derivation method setting unit 421 sets the vertex normal vector derivation method based on the method designation flag transmitted from the encoder.
  • the derivation method setting unit 421 may select a method designated by the method designation flag from among "method with interpolation”, “method without interpolation”, “decoder selection method”, and "synthesis method” and apply it as the vertex normal vector derivation method. Note that any method may be used to select this derivation method.
  • the derivation method setting unit 411 may also set the vertex normal vector derivation method in any data unit. For example, the derivation method setting unit 411 may set the vertex normal vector derivation method for each sequence of the original mesh, for each frame, for each base mesh, for each face of the base mesh, or for each vertex of the base mesh.
  • step S422 the vertex normal vector derivation unit 341 derives the vertex normal vector using the derivation method set in step S421.
  • the vertex normal vector derivation unit 341 may derive the vertex normal vector using the "method with interpolation", "method without interpolation”, "decoder selection method", or "synthesis method”.
  • step S423 the local coordinate system setting unit 342 sets the vertex normal vector derived in step S422 as one coordinate axis, and sets two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector, thereby setting a local coordinate system of a Cartesian coordinate system.
  • step S423 When the processing of step S423 is completed, the local coordinate system setting process ends and the process returns to FIG. 21.
  • the decoding device 300 can derive the vertex normal vectors by applying methods 1-4. Therefore, the decoding device 300 can suppress a decrease in encoding efficiency.
  • the encoding device 200 may apply the above-mentioned methods 1 to 5. That is, the encoding device 200 may cluster the derived vertex normal vectors using vertex normal vector candidates prepared in advance.
  • the encoding device 200 has the same configuration as that described with reference to FIG. 13.
  • Each processing unit performs the same processing as in FIG. 13.
  • the local coordinate system setting unit 212 applies the above-mentioned method 1-5 to set the local coordinate system.
  • the local coordinate system setting unit 212 clusters the derived vertex normal vectors using vertex normal vector candidates prepared in advance.
  • the local coordinate system setting unit 212 in this case has a vertex normal vector clustering unit 431 between the vertex normal vector derivation unit 241 and the local coordinate system setting unit 242 shown in FIG. 14.
  • the vertex normal vector derivation unit 241 derives a vertex normal vector. Any method may be used for this derivation. For example, the vertex normal vector derivation unit 241 may derive a vertex normal vector by applying a "method with interpolation", a "method without interpolation", a "decoder selection method", or a "synthesis method”. Each derivation method is as described above.
  • the vertex normal vector derivation unit 241 supplies the derived vertex normal vector to the vertex normal vector clustering unit 431.
  • the vertex normal vector derivation unit 241 supplies parameters such as thresholds and weight values applied to the derivation of the vertex normal vector to the header encoding unit 220 as necessary, and stores them in the header for encoding.
  • the vertex normal vector clustering unit 431 clusters the vertex normal vectors supplied from the vertex normal vector derivation unit 241. For example, the vertex normal vector clustering unit 431 clusters the vertex normal vectors using predetermined normal vector candidates prepared in advance. The vertex normal vector clustering unit 431 supplies the vertex normal vectors replaced with the derived vertex normal vectors by the clustering to the local coordinate system setting unit 242.
  • the encoding device 200 can apply methods 1-5 to limit the orientation of the local coordinate system to a candidate orientation prepared in advance. Therefore, the encoding device 200 can suppress a decrease in encoding efficiency.
  • step S202 the local coordinate system setting unit 212 executes the local coordinate system setting process by applying the above-mentioned method 1-5 to set the local coordinate system.
  • the local coordinate system setting unit 212 limits the orientation of the local coordinate system to a candidate orientation prepared in advance.
  • step S202 An example of the flow of the local coordinate system setting process (step S202) in this case will be explained with reference to the flowchart in Figure 30.
  • the vertex normal vector derivation unit 241 derives the vertex normal vector in step S441. Any method may be used for this derivation. For example, the "method with interpolation”, “method without interpolation”, “decoder selection method”, or “synthesis method” may be applied.
  • step S442 the vertex normal vector clustering unit 431 clusters the vertex normal vectors derived in step S441. For example, the vertex normal vector clustering unit 431 clusters the vertex normal vectors using predetermined normal vector candidates prepared in advance.
  • step S443 the local coordinate system setting unit 242 sets the vertex normal vector (selected candidate) clustered in step S442 as one coordinate axis, and sets two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector, thereby setting a local coordinate system of a Cartesian coordinate system.
  • step S443 When the processing of step S443 is completed, the local coordinate system setting process ends and the process returns to FIG. 15.
  • the encoding device 200 can derive the vertex normal vectors by applying methods 1-5. Therefore, the encoding device 200 can suppress a decrease in encoding efficiency.
  • Method 1-5 may be applied to the encoding device 200 to which Method 1-1 to Method 1-3 can be applied.
  • the above-mentioned vertex normal vector clustering unit 431 may be provided between the vertex normal vector derivation unit 241 and the local coordinate system setting unit 242 in the local coordinate system setting unit 212 of the configuration example of FIG. 25. That is, in this case as well, the vertex normal vector clustering unit 431 clusters the vertex normal vectors derived in the vertex normal vector derivation unit 241, and supplies the clustered vertex normal vectors to the local coordinate system setting unit 242.
  • the encoding device 200 can derive the vertex normal vectors by applying methods 1-5. Therefore, the encoding device 200 can suppress a decrease in encoding efficiency.
  • step S442 in the local coordinate system setting process of the example in FIG. 26, the process of step S442 described above can be executed between steps S402 and S403.
  • the encoding device 200 can derive the vertex normal vectors by applying methods 1-5. Therefore, the encoding device 200 can suppress a decrease in encoding efficiency.
  • the above-mentioned methods 1 to 5 can be applied to the decoding device 300. That is, the decoding device 300 may cluster the derived vertex normal vectors using candidates for vertex normal vectors prepared in advance.
  • the decoding device 300 has the same configuration as that described with reference to FIG. 19.
  • Each processing unit performs the same processing as in FIG. 19.
  • the local coordinate system setting unit 317 applies the above-mentioned method 1-5 to set the local coordinate system.
  • the local coordinate system setting unit 317 clusters the derived vertex normal vectors using vertex normal vector candidates prepared in advance.
  • the local coordinate system setting unit 317 in this case has a vertex normal vector clustering unit 441 between the vertex normal vector derivation unit 341 and the local coordinate system setting unit 342 shown in FIG. 20.
  • the vertex normal vector derivation unit 341 derives a vertex normal vector. Any method may be used for this derivation. For example, the vertex normal vector derivation unit 341 may derive a vertex normal vector by applying a "method with interpolation", a "method without interpolation", a "decoder selection method", or a "synthesis method”. Each derivation method is as described above.
  • the vertex normal vector derivation unit 341 supplies the derived vertex normal vector to the vertex normal vector clustering unit 441. Furthermore, the vertex normal vector derivation unit 341 may obtain parameters such as thresholds and weight values supplied from the encoder as necessary, and use them to derive the vertex normal vector.
  • the vertex normal vector clustering unit 441 clusters the vertex normal vectors supplied from the vertex normal vector derivation unit 341. For example, the vertex normal vector clustering unit 441 clusters the vertex normal vectors using predetermined normal vector candidates prepared in advance. The vertex normal vector clustering unit 441 supplies the vertex normal vectors replaced with the derived vertex normal vectors by the clustering to the local coordinate system setting unit 342.
  • the decoding device 300 can apply methods 1-5 to limit the orientation of the local coordinate system to a candidate orientation prepared in advance. Therefore, the decoding device 300 can suppress a decrease in encoding efficiency.
  • step S307 the local coordinate system setting unit 317 executes the local coordinate system setting process by applying the above-mentioned method 1-5 to set the local coordinate system.
  • the local coordinate system setting unit 317 limits the orientation of the local coordinate system to a candidate orientation prepared in advance.
  • step S307 An example of the flow of the local coordinate system setting process (step S307) in this case will be explained with reference to the flowchart in Figure 32.
  • the vertex normal vector derivation unit 341 derives the vertex normal vector in step S461. Any method may be used for this derivation. For example, the "method with interpolation”, “method without interpolation”, “decoder selection method”, or “synthesis method” may be applied.
  • step S462 the vertex normal vector clustering unit 441 clusters the vertex normal vectors derived in step S461. For example, the vertex normal vector clustering unit 441 clusters the vertex normal vectors using predetermined normal vector candidates prepared in advance.
  • step S463 the local coordinate system setting unit 342 sets the vertex normal vector (selected candidate) clustered in step S462 as one coordinate axis, and sets two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector, thereby setting a local coordinate system of a Cartesian coordinate system.
  • step S463 When the processing of step S463 is completed, the local coordinate system setting process ends and the process returns to FIG. 21.
  • the decoding device 300 can derive the vertex normal vectors by applying methods 1-5. Therefore, the decoding device 300 can suppress a decrease in encoding efficiency.
  • the method 1-5 may be applied to the decoding device 300 to which the methods 1-1 to 1-3 can be applied.
  • the above-mentioned vertex normal vector clustering unit 441 may be provided between the vertex normal vector derivation unit 341 and the local coordinate system setting unit 342 in the local coordinate system setting unit 317 of the configuration example of FIG. 27. That is, in this case as well, the vertex normal vector clustering unit 441 clusters the vertex normal vectors derived in the vertex normal vector derivation unit 341, and supplies the clustered vertex normal vectors to the local coordinate system setting unit 342.
  • the decoding device 300 can derive vertex normal vectors by applying methods 1-5. Therefore, the decoding device 300 can suppress a decrease in encoding efficiency.
  • step S462 in the local coordinate system setting process of the example in FIG. 28, the process of step S462 described above can be executed between steps S422 and S423.
  • the decoding device 300 can derive the vertex normal vectors by applying methods 1-5. Therefore, the decoding device 300 can suppress a decrease in encoding efficiency.
  • the encoding device 200 may apply the above-mentioned methods 1-6, that is, the encoding device 200 may quantize the derived vertex normal vectors (orientations of the vertex normal vectors).
  • the encoding device 200 has the same configuration as that described with reference to FIG. 13.
  • Each processing unit performs the same processing as that in FIG. 13.
  • the local coordinate system setting unit 212 applies the above-mentioned method 1-6 to set the local coordinate system.
  • the local coordinate system setting unit 212 quantizes the derived vertex normal vector (the direction of the vector), for example, as described with reference to FIG. 12.
  • the local coordinate system setting unit 212 in this case has a vertex normal vector quantization unit 451 between the vertex normal vector derivation unit 241 and the local coordinate system setting unit 242 shown in FIG. 14.
  • the vertex normal vector derivation unit 241 derives a vertex normal vector. Any method may be used for this derivation. For example, the vertex normal vector derivation unit 241 may derive a vertex normal vector by applying a "method with interpolation", a "method without interpolation", a "decoder selection method", or a "synthesis method”. Each derivation method is as described above.
  • the vertex normal vector derivation unit 241 supplies the derived vertex normal vector to the vertex normal vector quantization unit 451. Furthermore, if necessary, the vertex normal vector derivation unit 241 supplies parameters such as thresholds and weight values applied to derive the vertex normal vectors to the header encoding unit 220, which stores them in the header and encodes them.
  • the vertex normal vector quantization unit 451 quantizes the vertex normal vector (orientation) supplied from the vertex normal vector derivation unit 241. This quantization restricts the orientation of the vertex normal vector. In other words, this quantization corrects and restricts the orientation of the local coordinate system. In other words, this quantization restricts the increase in the variation in the orientation of the local coordinate system.
  • the vertex normal vector quantization unit 451 supplies the vertex normal vector whose orientation has been corrected by this quantization to the local coordinate system setting unit 242.
  • the encoding device 200 can restrict the orientation of the local coordinate system by applying methods 1-6. Therefore, the encoding device 200 can suppress a decrease in encoding efficiency.
  • step S202 the local coordinate system setting unit 212 executes the local coordinate system setting process by applying Method 1-6 described above to set the local coordinate system.
  • the local coordinate system setting unit 212 limits the orientation of the local coordinate system to a candidate orientation prepared in advance.
  • step S202 An example of the flow of the local coordinate system setting process (step S202) in this case will be explained with reference to the flowchart in Figure 34.
  • the vertex normal vector derivation unit 241 derives the vertex normal vector in step S481. Any method may be used for this derivation. For example, the "method with interpolation”, “method without interpolation”, “decoder selection method”, or “synthesis method” may be applied.
  • step S482 the vertex normal vector quantization unit 451 quantizes the vertex normal vector (orientation) derived in step S481.
  • step S483 the local coordinate system setting unit 242 sets the vertex normal vector quantized in step S482 as one coordinate axis, and sets two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector, thereby setting a local coordinate system of a Cartesian coordinate system.
  • step S483 When the processing of step S483 is completed, the local coordinate system setting process ends and the process returns to FIG. 15.
  • the encoding device 200 can derive the vertex normal vectors by applying methods 1-6. Therefore, the encoding device 200 can suppress a decrease in encoding efficiency.
  • Method 1-6 is applied to the encoding device 200 to which Method 1-1 to Method 1-3 can be applied has been described, but Method 1-6 may also be applied to the encoding device 200 to which Method 1-4 can be applied.
  • the above-mentioned vertex normal vector quantization unit 451 may be provided between the vertex normal vector derivation unit 241 and the local coordinate system setting unit 242 in the local coordinate system setting unit 212 of the configuration example of FIG. 25.
  • the vertex normal vector quantization unit 451 quantizes the vertex normal vector (the direction of the vertex normal vector) derived in the vertex normal vector derivation unit 241, and supplies the quantized vertex normal vector to the local coordinate system setting unit 242.
  • the encoding device 200 can derive the vertex normal vectors by applying methods 1-6. Therefore, the encoding device 200 can suppress a decrease in encoding efficiency.
  • step S482 described above can be executed between steps S402 and S403.
  • the encoding device 200 can derive the vertex normal vectors by applying methods 1-6. Therefore, the encoding device 200 can suppress a decrease in encoding efficiency.
  • the decoding device 300 may also apply the above-mentioned methods 1 to 6. That is, the decoding device 300 may quantize the (direction of) the derived vertex normal vector.
  • the decoding device 300 has the same configuration as that described with reference to FIG. 19.
  • Each processing unit performs the same processing as in FIG. 19.
  • the local coordinate system setting unit 317 applies the above-mentioned method 1-6 to set the local coordinate system.
  • the local coordinate system setting unit 317 quantizes the derived vertex normal vector (orientation).
  • the local coordinate system setting unit 317 in this case has a vertex normal vector quantization unit 461 between the vertex normal vector derivation unit 341 and the local coordinate system setting unit 342 shown in FIG. 20.
  • the vertex normal vector derivation unit 341 derives a vertex normal vector. Any method may be used for this derivation. For example, the vertex normal vector derivation unit 341 may derive a vertex normal vector by applying a "method with interpolation", a "method without interpolation", a "decoder selection method", or a "synthesis method”. Each derivation method is as described above.
  • the vertex normal vector derivation unit 341 supplies the derived vertex normal vector to the vertex normal vector quantization unit 461. Furthermore, the vertex normal vector derivation unit 341 may obtain parameters such as thresholds and weight values supplied from the encoder as necessary, and use these to derive the vertex normal vectors.
  • the vertex normal vector quantization unit 461 quantizes the vertex normal vector (orientation) supplied from the vertex normal vector derivation unit 341.
  • the vertex normal vector quantization unit 461 corrects the derived vertex normal vector (orientation) through this quantization. This quantization limits the orientation of the vertex normal vector. In other words, this quantization corrects and limits the orientation of the local coordinate system. In other words, this quantization makes it possible to suppress an increase in the variation in the orientation of the local coordinate system.
  • the vertex normal vector quantization unit 461 supplies the quantized vertex normal vector to the local coordinate system setting unit 342.
  • the decoding device 300 can restrict the orientation of the local coordinate system by applying methods 1-6. Therefore, the decoding device 300 can suppress a decrease in encoding efficiency.
  • step S307 the local coordinate system setting unit 317 executes the local coordinate system setting process by applying the above-mentioned method 1-6 to set the local coordinate system. That is, the local coordinate system setting unit 317 can restrict the orientation of the local coordinate system.
  • step S307 An example of the flow of the local coordinate system setting process (step S307) in this case will be explained with reference to the flowchart in Figure 36.
  • the vertex normal vector derivation unit 341 derives the vertex normal vector in step S501. Any method may be used for this derivation. For example, the "method with interpolation”, “method without interpolation”, “decoder selection method”, or “synthesis method” may be applied.
  • step S502 the vertex normal vector quantization unit 461 quantizes the vertex normal vector (orientation) derived in step S501.
  • step S503 the local coordinate system setting unit 342 sets the vertex normal vector quantized in step S502 as one coordinate axis, and sets two coordinate axes (Bi-tangent, tangent and Bi-tangent) perpendicular to the vertex normal vector, thereby setting a local coordinate system of a Cartesian coordinate system.
  • step S503 When the processing of step S503 is completed, the local coordinate system setting process ends and the process returns to FIG. 21.
  • the decoding device 300 can derive the vertex normal vectors by applying methods 1-6. Therefore, the decoding device 300 can suppress a decrease in encoding efficiency.
  • the vertex normal vector quantization unit 461 quantizes the vertex normal vector (the direction of the vertex normal vector) derived in the vertex normal vector derivation unit 341, and supplies the quantized vertex normal vector to the local coordinate system setting unit 342.
  • the decoding device 300 can derive vertex normal vectors by applying methods 1-6. Therefore, the decoding device 300 can suppress a decrease in encoding efficiency.
  • step S502 in the local coordinate system setting process of the example in FIG. 28, the process of step S502 described above can be executed between steps S422 and S423.
  • the decoding device 300 can derive the vertex normal vectors by applying methods 1-6. Therefore, the decoding device 300 can suppress a decrease in encoding efficiency.
  • the above-mentioned series of processes can be executed by hardware or software.
  • the programs constituting the software are installed in a computer.
  • the computer includes a computer built into dedicated hardware, and a general-purpose personal computer, etc., capable of executing various functions by installing various programs.
  • FIG. 37 is a block diagram showing an example of the hardware configuration of a computer that executes the above-mentioned series of processes using a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • An input/output interface 910 Also connected to the bus 904 is an input/output interface 910.
  • An input unit 911, an output unit 912, a memory 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, etc.
  • the output unit 912 includes, for example, a display, a speaker, an output terminal, etc.
  • the storage unit 913 includes, for example, a hard disk, a RAM disk, a non-volatile memory, etc.
  • the communication unit 914 includes, for example, a network interface.
  • the drive 915 drives removable media 921 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 901 loads a program stored in the storage unit 913, for example, into the RAM 903 via the input/output interface 910 and the bus 904, and executes the program, thereby carrying out the above-mentioned series of processes.
  • the RAM 903 also stores data necessary for the CPU 901 to execute various processes, as appropriate.
  • the program executed by the computer can be applied by recording it on removable media 921 such as package media, for example.
  • the program can be installed in the storage unit 913 via the input/output interface 910 by inserting the removable media 921 into the drive 915.
  • 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 that case, the program can be received by the communication unit 914 and installed in the storage unit 913.
  • a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
  • the program can be received by the communication unit 914 and installed in the storage unit 913.
  • this program can also be pre-installed in the ROM 902 or memory unit 913.
  • the present technology may be applied to any configuration, for example, to various electronic devices.
  • the present technology can be implemented as part of an apparatus, such as a processor (e.g., a video processor) as a system LSI (Large Scale Integration), a module using multiple processors (e.g., a video module), a unit using multiple modules (e.g., a video unit), or a set in which other functions are added to a unit (e.g., a video set).
  • a processor e.g., a video processor
  • system LSI Large Scale Integration
  • modules using multiple processors e.g., a video module
  • a unit using multiple modules e.g., a video unit
  • a set in which other functions are added to a unit e.g., a video set.
  • the present technology can also be applied to a network system consisting of multiple devices.
  • the present technology may be implemented as cloud computing in which multiple devices share and collaborate on processing via a network.
  • the present technology may be implemented in a cloud service that provides image (video) related services to any terminal, such as a computer, AV (Audio Visual) equipment, portable information processing terminal, IoT (Internet of Things) device, etc.
  • a system refers to a collection of multiple components (devices, modules (parts), etc.), regardless of whether all the components are in the same housing. Therefore, multiple devices housed in separate housings and connected via a network, and a single device in which multiple modules are housed in a single housing, are both systems.
  • Systems, devices, processing units, etc. to which the present technology is applied can be used in any field, such as transportation, medical care, crime prevention, agriculture, livestock farming, mining, beauty, factories, home appliances, weather, and nature monitoring.
  • the applications are also arbitrary.
  • a "flag” refers to information for identifying multiple states, and includes not only information used to identify two states, true (1) or false (0), but also information capable of identifying three or more states.
  • the value that this "flag” can take may be, for example, two values, 1/0, or three or more values. That is, the number of bits constituting this "flag” is arbitrary, and may be one bit or multiple bits.
  • identification information including flags
  • identification information includes flags
  • “flag” and “identification information” include not only the information itself, but also difference information with respect to the reference information.
  • various information (metadata, etc.) related to the encoded data may be transmitted or recorded in any form as long as it is associated with the encoded data.
  • the term "associate” means, for example, making one piece of data available (linked) when processing the other piece of data.
  • data associated with each other may be combined into one piece of data, or each piece of data may be individual data.
  • information associated with encoded data (image) may be transmitted on a transmission path different from that of the encoded data (image).
  • information associated with encoded data (image) may be recorded on a recording medium different from that of the encoded data (image) (or on a different recording area of the same recording medium).
  • this "association" may be a part of the data, not the entire data.
  • an image and information corresponding to that image may be associated with each other in any unit, such as multiple frames, one frame, or a part of a frame.
  • the configuration described above as one device (or processing unit) may be divided and configured as multiple devices (or processing units).
  • the configurations described above as multiple devices (or processing units) may be combined and configured as one device (or processing unit).
  • configurations other than those described above may be added to the configuration of each device (or processing unit).
  • part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit).
  • the above-mentioned program may be executed in any device.
  • the device has the necessary functions (functional blocks, etc.) and is capable of obtaining the necessary information.
  • each step of a single flowchart may be executed by a single device, or may be shared among multiple devices.
  • the multiple processes may be executed by a single device, or may be shared among multiple devices.
  • multiple processes included in a single step may be executed as multiple step processes.
  • processes described as multiple steps may be executed collectively as a single step.
  • the processing of the steps describing a program executed by a computer may be executed chronologically in the order described in this specification, or may be executed in parallel, or individually at the required timing, such as when a call is made. In other words, as long as no contradiction arises, the processing of each step may be executed in an order different from the order described above. Furthermore, the processing of the steps describing this program may be executed in parallel with the processing of other programs, or may be executed in combination with the processing of other programs.
  • the multiple technologies related to the present technology can be implemented independently and individually, so long as no contradictions arise.
  • any multiple of the present technologies can also be implemented in combination.
  • part or all of the present technology described in any embodiment can be implemented in combination with part or all of the present technology described in another embodiment.
  • part or all of any of the present technologies described above can be implemented in combination with other technologies not described above.
  • the present technology can also be configured as follows. (1) a derivation method setting unit that sets a derivation method of a vertex normal vector, which is a normal vector of a vertex of a subdivided base mesh; a vertex normal vector derivation unit that derives the vertex normal vector by the set derivation method; a local coordinate derivation unit that derives local coordinates that represent a displacement vector in a local coordinate system corresponding to the vertex normal vector; a displacement video encoding unit that encodes a displacement video having a frame of a 2D image in which the local coordinates are stored as the displacement vector; a method designation flag generating unit for generating a method designation flag for designating the set derivation method; a method designation flag encoding unit that encodes the method designation flag; the base mesh is a mesh that is coarser than an original mesh to be encoded, the original mesh being composed of vertices and connections that represent a three-dimensional structure of an object, and is generated by thinning out the vertice
  • the derivation method setting unit is a first method for weighting a processing point, which is a vertex of the subdivided base mesh, according to a position of the processing point, and deriving the vertex normal vector of the processing point using normal vectors of faces surrounding the processing point; a second method of deriving the vertex normal vector of the processing target point using normal vectors of the surrounding faces without performing the weighting; a third method for allowing a decoder to select whether to apply the first method or the second method; and a fourth method of synthesizing the vertex normal vector derived by applying the first method and the vertex normal vector derived by applying the second method, and setting the method as the derivation method.
  • the vertex normal vector derivation unit selects the first method or the second method in the same manner as the decoder, and derives the vertex normal vector by applying the selected method.
  • the vertex normal vector derivation unit selects the first method or the second method for each face of the base mesh based on a difference in orientation between a processing target face and a surrounding face.
  • vertex normal vector derivation unit calculates an inner product between the normal vector of the face to be processed and the vertex normal vector of each vertex of the face to be processed, compares a minimum value of the inner products with a threshold, and selects the first method if the inner product is smaller, and selects the second method if the inner product is larger.
  • the method designation flag encoding unit further encodes the threshold value.
  • the vertex normal vector derivation unit applying the first method to derive a first vertex normal vector; applying the second method to derive a second vertex normal vector;
  • the information processing device according to any one of (2) to (6), further comprising: combining the derived first vertex normal vector and the derived second vertex normal vector by a weighted average.
  • the vertex normal vector derivation unit combining the first vertex normal vector and the second vertex normal vector corresponding to vertices located on an edge of a face of the base mesh by the weighted average using a first weight value;
  • the information processing device further comprising: combining the first vertex normal vector and the second vertex normal vector corresponding to a vertex located at a position other than the edge by the weighted average using a second weight value different from the first weight value.
  • the method designation flag encoding unit further encodes a weight value used in the weighted average.
  • the information processing device according to any one of (1) to (9), wherein the derivation method setting unit sets the derivation method for each sequence of the original mesh, for each frame, for each of the base meshes, for each face of the base mesh, or for each vertex of the base mesh.
  • the derivation method setting unit sets the derivation method for each sequence of the original mesh, for each frame, for each of the base meshes, for each face of the base mesh, or for each vertex of the base mesh.
  • a clustering unit that clusters the derived vertex normal vectors with predetermined normal vector candidates that are prepared in advance.
  • a quantization unit that quantizes the derived vertex normal vector.
  • vertex normal vectors which are normal vectors of vertices of the subdivided base mesh
  • vertex normal vectors which are normal vectors of vertices of the subdivided base mesh
  • the vertex normal vector using the set derivation method
  • generating a method designation flag for designating the set derivation method Encoding the method specification flag
  • the base mesh is a mesh that is coarser than an original mesh to be encoded, the original mesh being composed of vertices and connections that represent a three-dimensional structure of an object, and is generated by thinning out the vertices from the original mesh
  • the displacement vector is the difference in position between a vertex of the refined base mesh and the vertex of the original mesh
  • the information processing method wherein the local coordinate system is a coordinate system for each vertex of the sub
  • a base mesh decoding unit that decodes encoded data of a base mesh; a displacement video decoding unit that decodes encoded data of a displacement video having frames of 2D images in which local coordinates are stored as displacement vectors; a vertex normal vector derivation unit that derives vertex normal vectors that are normal vectors of vertices of the subdivided base mesh; a displacement vector application unit that applies the local coordinates of the vertices as the displacement vectors to the vertices of the subdivided base mesh using a local coordinate system corresponding to the vertex normal vectors;
  • the base mesh is a mesh that is coarser than an original mesh to be encoded, the original mesh being composed of vertices and connections that represent a three-dimensional structure of an object, and is generated by thinning out the vertices from the original mesh;
  • the displacement vector is the difference in position between a vertex of the refined base mesh and the vertex of the original mesh;
  • the local coordinate system is a coordinate system for each vertex
  • the vertex normal vector derivation unit selects a first method of weighting a processing target point, which is a vertex of the subdivided base mesh, according to a position of the processing target point, and deriving the vertex normal vector of the processing target point using normal vectors of faces surrounding the processing target point, or a second method of deriving the vertex normal vector of the processing target point using normal vectors of the surrounding faces without weighting, and derives the vertex normal vector using the selected method.
  • the information processing device (28), wherein the vertex normal vector derivation unit selects the first method or the second method for each face of the base mesh based on a difference in orientation between a processing target face and a surrounding face.
  • the vertex normal vector derivation unit calculates an inner product between the normal vector of the face to be processed and the vertex normal vector of each vertex of the face to be processed, compares a minimum value of the inner products with a threshold, and selects the first method if the inner product is smaller, and selects the second method if the inner product is larger.
  • the information processing device compares the threshold value transmitted from an encoder with a minimum value of the inner product.
  • the vertex normal vector derivation unit weighting the processing point, which is a vertex of the subdivided base mesh, according to a position of the processing point, and deriving a first vertex normal vector of the processing point using normal vectors of faces surrounding the processing point; deriving a second vertex normal vector of the processing target point using normal vectors of the surrounding faces without performing the weighting;
  • the information processing device according to any one of (21) to (31), further comprising: combining the derived first vertex normal vector and the derived second vertex normal vector.
  • the information processing device wherein the vertex normal vector derivation unit combines the derived first vertex normal vector and the derived second vertex normal vector by a weighted average.
  • the vertex normal vector derivation unit combining the first vertex normal vector and the second vertex normal vector corresponding to vertices located on an edge of a face of the base mesh by the weighted average using a first weight value;
  • the information processing device further comprising: combining the first vertex normal vector and the second vertex normal vector corresponding to a vertex located at a position other than on the edge by the weighted average using a second weight value different from the first weight value.
  • the information processing device according to (33) or (34), wherein the vertex normal vector derivation unit combines the derived first vertex normal vector and the derived second vertex normal vector by the weighted averaging using a weight value transmitted from an encoder.
  • the method further includes a derivation method setting unit that sets a method of deriving the vertex normal vector based on a method designation flag that designates a method of deriving the vertex normal vector,
  • the information processing device according to any one of (21) to (35), wherein the vertex normal vector derivation unit derives the vertex normal vector using a set derivation method.
  • the derivation method setting unit according to the method designation flag, a first method for weighting a processing point, which is a vertex of the subdivided base mesh, according to a position of the processing point, and deriving the vertex normal vector of the processing point using normal vectors of faces surrounding the processing point; a second method of deriving the vertex normal vector of the processing target point using normal vectors of the surrounding faces without performing the weighting; A third method in which the first method or the second method is selected by a predetermined method; and a fourth method of synthesizing a first vertex normal vector derived by applying the first method and a second vertex normal vector derived by applying the second method.
  • the information processing device designates the derivation method for each sequence of the original mesh, for each frame, for each of the base meshes, for each face of the base mesh, or for each vertex of the base mesh.
  • the information processing device according to any one of (21) to (38), further comprising a clustering unit that clusters the derived vertex normal vectors with predetermined normal vector candidates that are prepared in advance.
  • the information processing device according to any one of (21) to (39), further comprising a quantization unit that quantizes the derived vertex normal vector.
  • (41) Decoding the encoded data of the base mesh; Decoding encoded data of a displacement video having frames of 2D images in which local coordinates are stored as displacement vectors; Deriving vertex normal vectors that are normal vectors of the vertices of the subdivided base mesh; applying the local coordinates of the vertices as the displacement vectors to the vertices of the subdivided base mesh using a local coordinate system corresponding to the vertex normal vectors; the base mesh is a mesh that is coarser than an original mesh to be encoded, the original mesh being composed of vertices and connections that represent a three-dimensional structure of an object, and is generated by thinning out the vertices from the original mesh; the displacement vector is the difference in position between a vertex of the refined base mesh and the vertex of the original mesh; the local coordinate system is a coordinate system for each vertex of the subdivided base mesh that is set based on the vertex normal vector; The local coordinates are coordinates that represent the displacement vectors of vertice

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本開示は、符号化効率の低減を抑制することができるようにする情報処理装置および方法に関する。 ベースメッシュの符号化データを復号し、変位ベクトルとしてローカル座標が格納された2D画像をフレームとする変位ビデオの符号化データを復号し、細分化されたベースメッシュの頂点の法線ベクトルである頂点法線ベクトルを導出し、その頂点法線ベクトルに対応するローカル座標系を用いて、細分化されたベースメッシュの頂点に、その頂点のローカル座標を変位ベクトルとして適用する。本開示は、例えば、情報処理装置、電子機器、情報処理方法、またはプログラム等に適用することができる。

Description

情報処理装置および方法
 本開示は、情報処理装置および方法に関し、特に、符号化効率の低減を抑制することができるようにした情報処理装置および方法に関する。
 従来、頂点と接続によりオブジェクトの3次元構造を表現する3Dデータであるメッシュの符号化方法として、V-DMC(Video-based Dynamic Mesh Coding)があった(例えば、非特許文献1参照)。V-DMCでは、符号化対象のメッシュを、粗いベースメッシュと、そのベースメッシュを細分化して得られる分割点の変位ベクトルとで表現し、そのベースメッシュと変位ベクトルを符号化する。変位ベクトルは、2次元画像に格納(パッキング)され、その2次元画像をフレームとする動画像(変位ビデオ)として符号化される。
 変位ベクトルを2次元画像に格納する際の変位ベクトルを表す座標系として、例えば、頂点毎(変位ベクトル毎)に設定されるローカル座標系(Local Coordinate System)がある。エンコーダおよびデコーダで共通の座標系を適用する必要があるが、ローカル座標系は明示的に伝送されない。従来、エンコーダおよびデコーダは、レンダリングの際に影処理等に用いられる各頂点の法線ベクトルを基準として互いに同様の方法でローカル座標系を設定していた。
 この法線ベクトルは、レンダリングの際の影処理等に適するように、「補間有り方法」で導出されていた。補間有り方法では、まず、ベースメッシュの頂点の法線ベクトルが導出され、次に、その法線ベクトルを用いて分割点の法線ベクトルが導出される。その際、ベースメッシュの頂点の法線ベクトルが分割点の位置(分割回数)に応じた重みづけされ、重み付き平均により分割点の法線ベクトルが導出される。この方法により、ベースメッシュの頂点間に複数の分割点が形成される場合も、各分割点の法線ベクトルの向きを変化させることができる。そのため、影処理等においてその法線ベクトルを適用することにより、頂点毎に独立した処理結果を導出することができ、より高精細な処理結果を得ることができる。
Khaled Mammou, Jungsun Kim, Alexis Tourapis, Dimitri Podborski, Krasimir Kolarov, "[V-CG] Apple’s Dynamic Mesh Coding CfP Response", ISO/IEC JTC 1/SC 29/WG 7 m59281, April 2022
 ところで、このローカル座標系によって、その軸毎に変位ベクトルの量子化値が制御される。つまり、このローカル座標系をどのような座標系とするかが、変位ベクトル(すなわち再構成されるメッシュ)の品質に影響する。また、適用するローカル座標系を決定することで、そのローカル座標系で表現された変位ベクトル(ローカル座標(Local Coordinate))が決定される。つまり、どのようなローカル座標系を適用するかによって変位ビデオ(のフレーム画像)の情報量(すなわち符号量)も変化する可能性がある。つまり、どのようなローカル座標系を適用するかが符号化効率に影響する。
 しかしながら、符号化効率を向上させるためにどのようなローカル座標系を適用すべきかは、例えばオブジェクトの形状等、様々な要因に依存する。したがって、上述のように「補間有り方法」で導出された法線ベクトルが、符号化の際に変位ベクトルを表現するためのローカル座標系の導出に対しても常に最適であるとは限らなかった。換言するに、レンダリング用の法線ベクトルをローカル座標系の導出に流用することにより、変位ベクトルの品質が低減したり、変位ビデオの情報量が増大したりして、符号化効率が低減するおそれがあった。
 本開示は、このような状況に鑑みてなされたものであり、符号化効率の低減を抑制することができるようにするものである。
 本技術の一側面の情報処理装置は、ベースメッシュの符号化データを復号するベースメッシュ復号部と、変位ベクトルとしてローカル座標が格納された2D画像をフレームとする変位ビデオの符号化データを復号する変位ビデオ復号部と、細分化された前記ベースメッシュの頂点の法線ベクトルである頂点法線ベクトルを導出する頂点法線ベクトル導出部と、前記頂点法線ベクトルに対応するローカル座標系を用いて、前記細分化されたベースメッシュの頂点に、前記頂点の前記ローカル座標を前記変位ベクトルとして適用する変位ベクトル適用部とを備え、前記ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから前記頂点を間引くことにより生成される、前記オリジナルメッシュよりも粗いメッシュであり、前記変位ベクトルは、前記細分化されたベースメッシュの頂点と前記オリジナルメッシュの前記頂点との間の位置の差であり、前記ローカル座標系は、前記頂点法線ベクトルに基づいて設定される、前記細分化されたベースメッシュの頂点毎の座標系であり、前記ローカル座標は、細分化された前記ベースメッシュの頂点の前記変位ベクトルを、前記頂点の前記頂点法線ベクトルに対応する前記ローカル座標系において表した座標である情報処理装置である。
 本技術の一側面の情報処理方法は、ベースメッシュの符号化データを復号し、変位ベクトルとしてローカル座標が格納された2D画像をフレームとする変位ビデオの符号化データを復号し、細分化された前記ベースメッシュの頂点の法線ベクトルである頂点法線ベクトルを導出し、前記頂点法線ベクトルに対応するローカル座標系を用いて、前記細分化されたベースメッシュの頂点に、前記頂点の前記ローカル座標を前記変位ベクトルとして適用し、前記ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから前記頂点を間引くことにより生成される、前記オリジナルメッシュよりも粗いメッシュであり、前記変位ベクトルは、前記細分化されたベースメッシュの頂点と前記オリジナルメッシュの前記頂点との間の位置の差であり、前記ローカル座標系は、前記頂点法線ベクトルに基づいて設定される、前記細分化されたベースメッシュの頂点毎の座標系であり、前記ローカル座標は、細分化された前記ベースメッシュの頂点の前記変位ベクトルを、前記頂点の前記頂点法線ベクトルに対応する前記ローカル座標系において表した座標である情報処理方法である。
 本技術の他の側面の情報処理装置は、細分化されたベースメッシュの頂点の法線ベクトルである頂点法線ベクトルの導出方法を設定する導出方法設定部と、設定された前記導出方法で前記頂点法線ベクトルを導出する頂点法線ベクトル導出部と、前記頂点法線ベクトルに対応するローカル座標系において変位ベクトルを表すローカル座標を導出するローカル座標導出部と、前記変位ベクトルとして前記ローカル座標が格納された2D画像をフレームとする変位ビデオを符号化する変位ビデオ符号化部と、設定された前記導出方法を指定する方法指定フラグを生成する方法指定フラグ生成部と、前記方法指定フラグを符号化する方法指定フラグ符号化部とを備え、前記ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから前記頂点を間引くことにより生成される、前記オリジナルメッシュよりも粗いメッシュであり、前記変位ベクトルは、前記細分化されたベースメッシュの頂点と前記オリジナルメッシュの前記頂点との間の位置の差であり、前記ローカル座標系は、前記頂点法線ベクトルに基づいて設定される、前記細分化されたベースメッシュの頂点毎の座標系である情報処理装置である。
 本技術の他の側面の情報処理方法は、細分化されたベースメッシュの頂点の法線ベクトルである頂点法線ベクトルの導出方法を設定し、設定された前記導出方法で前記頂点法線ベクトルを導出し、前記頂点法線ベクトルに対応するローカル座標系において変位ベクトルを表すローカル座標を導出し、前記変位ベクトルとして前記ローカル座標が格納された2D画像をフレームとする変位ビデオを符号化し、設定された前記導出方法を指定する方法指定フラグを生成し、前記方法指定フラグを符号化し、前記ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから前記頂点を間引くことにより生成される、前記オリジナルメッシュよりも粗いメッシュであり、前記変位ベクトルは、前記細分化されたベースメッシュの頂点と前記オリジナルメッシュの前記頂点との間の位置の差であり、前記ローカル座標系は、前記頂点法線ベクトルに基づいて設定される、前記細分化されたベースメッシュの頂点毎の座標系である情報処理方法である。
 本技術の一側面の情報処理装置および方法においては、ベースメッシュの符号化データが復号され、変位ベクトルとしてローカル座標が格納された2D画像をフレームとする変位ビデオの符号化データが復号され、その細分化されたベースメッシュの頂点の法線ベクトルである頂点法線ベクトルが導出され、その頂点法線ベクトルに対応するローカル座標系を用いて、細分化されたベースメッシュの頂点に、その頂点のローカル座標が変位ベクトルとして適用される。
 本技術の他の側面の情報処理装置および方法においては、細分化されたベースメッシュの頂点の法線ベクトルである頂点法線ベクトルの導出方法が設定され、その設定された導出方法で頂点法線ベクトルが導出され、その頂点法線ベクトルに対応するローカル座標系において変位ベクトルを表すローカル座標が導出され、その変位ベクトルとしてそのローカル座標が格納された2D画像をフレームとする変位ビデオが符号化され、その設定された導出方法を指定する方法指定フラグが生成され、その方法指定フラグが符号化される。
V-DMCについて説明するための図である。 変位ベクトルについて説明するための図である。 変位ビデオについて説明するための図である。 法線ベクトルの導出方法の例について説明するための図である。 法線ベクトルの導出方法の例について説明するための図である。 符号化方法の例を示す図である。 補間無し方法の例について説明するための図である。 補間無し方法の例について説明するための図である。 導出方法を選択する方法の例について説明するための図である。 重み値の例について説明するための図である。 クラスタリングの例について説明するための図である。 量子化の例について説明するための図である。 符号化装置の主な構成例を示すブロック図である。 ローカル座標系設定部の主な構成例を示すブロック図である。 符号化処理の流れの例を説明するフローチャートである。 ローカル座標系設定処理の流れの例を説明するフローチャートである。 ローカル座標系設定処理の流れの例を説明するフローチャートである。 ローカル座標系設定処理の流れの例を説明するフローチャートである。 復号装置の主な構成例を示すブロック図である。 ローカル座標系設定部の主な構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 ローカル座標系設定処理の流れの例を説明するフローチャートである。 ローカル座標系設定処理の流れの例を説明するフローチャートである。 ローカル座標系設定処理の流れの例を説明するフローチャートである。 ローカル座標系設定部の主な構成例を示すブロック図である。 ローカル座標系設定処理の流れの例を説明するフローチャートである。 ローカル座標系設定部の主な構成例を示すブロック図である。 ローカル座標系設定処理の流れの例を説明するフローチャートである。 ローカル座標系設定部の主な構成例を示すブロック図である。 ローカル座標系設定処理の流れの例を説明するフローチャートである。 ローカル座標系設定部の主な構成例を示すブロック図である。 ローカル座標系設定処理の流れの例を説明するフローチャートである。 ローカル座標系設定部の主な構成例を示すブロック図である。 ローカル座標系設定処理の流れの例を説明するフローチャートである。 ローカル座標系設定部の主な構成例を示すブロック図である。 ローカル座標系設定処理の流れの例を説明するフローチャートである。 コンピュータの主な構成例を示すブロック図である。
 以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
 1.技術内容・技術用語をサポートする文献等
 2.ローカル座標系
 3.符号化用ローカル座標系
 4.実施の形態
 5.付記
 <1.技術内容・技術用語をサポートする文献等>
 本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献等に記載されている内容や以下の非特許文献において参照されている他の文献の内容等も含まれる。
 非特許文献1:(上述)
 つまり、上述の非特許文献に記載されている内容や、上述の非特許文献において参照されている他の文献の内容等も、サポート要件を判断する際の根拠となる。
 <2.ローカル座標系>
  <V-DMC>
 従来、立体構造物(3次元形状のオブジェクト)の3次元構造を表す3Dデータとして、頂点および接続によりポリゴンを形成することによりオブジェクト表面の3次元形状を表現するメッシュ(Mesh)があった。このメッシュの符号化方法として、例えば、非特許文献1に開示されているようなV-DMC(Video-based Dynamic Mesh Coding)があった。
 V-DMCでは、符号化対象のメッシュを、粗いベースメッシュと、そのベースメッシュを細分化して得られる分割点の変位ベクトルとで表現され、そのベースメッシュと変位ベクトルが符号化される。
 例えば、図1の最上段に示されるようなオリジナルメッシュが存在するとする。図1において、黒点が頂点を示し、黒点を結ぶ線が接続を示す。上述のようにメッシュは、本来、頂点と接続によりポリゴンを形成するが、ここでは、説明の便宜上、線状に(直列に)接続される頂点群として説明している。
 オリジナルメッシュの一部の頂点を間引く(Decimate)ことにより、図1の上から2段目に示されるような粗いメッシュが形成される。これをベースメッシュとする。
 このベースメッシュの各メッシュを細分化(Subdivide)することにより、図1の上から3段目に示されるように、頂点が追加される。ここでは、この細分化により、オリジナルメッシュから間引いた数だけ頂点が追加されるものとする。これにより、頂点数がオリジナルメッシュと同数のメッシュが得られる。本明細書において、この追加された頂点を分割点とも称する。
 しかしながら、オリジナルメッシュの頂点を間引く際に接続が更新されており、分割点はこの更新された接続上に形成されるため、この細分化されたベースメッシュの形状は、オリジナルメッシュの形状と異なる。より具体的には、図1の最下段に示されるように、分割点の位置(点線上)がオリジナルメッシュと異なる。本明細書においては、この分割点の位置とオリジナルメッシュの頂点の位置との差分を変位ベクトルと称する。
 例えば、図2に示されるような位置関係で、オリジナルメッシュ21と、細分化されたベースメッシュ22とが存在するとする。また、その細分化されたベースメッシュ22の頂点23および頂点24が存在するとする。この場合、図2に示されるように、頂点23の位置と、オリジナルメッシュ21の、その頂点23に対応する頂点23´の位置とが互いに異なる。この差分が変位ベクトルとして表現される(変位ベクトル25)。同様に、頂点24の位置と、オリジナルメッシュ21の、その頂点24に対応する頂点24´の位置との差分が変位ベクトル26として表現される。このように、細分化されたベースメッシュの頂点毎に変位ベクトルが設定される。
 エンコーダにおいては、オリジナルメッシュが既知であるので、ベースメッシュを生成し、さらにこのような変位ベクトルを導出することができる。デコーダは、ベースメッシュを細分化し、各頂点にこの変位ベクトルを適用することによりオリジナルメッシュ(に相当するメッシュ)を生成(復元)することができる。
 このように、オリジナルメッシュの頂点数を低減させベースメッシュとして符号化することにより、その符号量を低減させることができる。また、変位ベクトルは、2次元画像に格納し、2D符号化を用いて符号化することにより、符号化効率を向上させることができる。本明細書において、2次元画像にデータを格納することをパッキングとも称する。
 なお、V-DMCはスケーラブルな復号に対応している。変位ベクトルは、例えば図3に示されるように、精細度(ベースメッシュの分割数)毎に階層化され、階層毎のデータとして2次元画像31にパッキングされる。図3の例において、2次元画像31にパッキングされたLoD0は、精細度毎に階層化された各頂点の変位ベクトルの内の、最上位層(最低精細度)の頂点の変位ベクトルのデータを示す。同様に、LoD1は、LoD0の1つ上位層の頂点の変位ベクトルのデータを示す。LoD2は、LoD1の1つ上位層の頂点の変位ベクトルのデータを示す。このように変位ベクトルは、階層毎に分けられて(階層毎のデータにまとめられて)パッキングされる。
 なお、変位ベクトルは、例えばウェーブレット変換等の係数変換により変換係数として2次元画像にパッキングされてもよい。また、変位ベクトルは、量子化されてもよい。例えば、変位ベクトルがウェーブレット変換により変換係数に変換され、その変換係数が量子化され、その量子化された変換係数(量子化係数)がパッキングされてもよい。
 また、オブジェクトの3次元形状は、時間方向に変化し得る。本明細書において、時間方向に可変であることを「動的である」とも称する。そのため、メッシュ(つまり、ベースメッシュや変位ベクトル)も動的である。したがって、変位ベクトルは、その2次元画像をフレームとする動画像として符号化される。本明細書においてこの動画像を変位ビデオとも称する。
  <ローカル座標系の設定>
 変位ベクトルは、任意の座標系において座標として表現され、その座標値が2次元画像に格納される。このような変位ベクトルを表す座標系として、例えば、頂点毎(変位ベクトル毎)に設定されるローカル座標系(Local Coordinate System)がある。つまり、各変位ベクトルは、その変位ベクトル用のローカル座標系において表現される。本明細書において、このローカル座標系において変位ベクトルを表現する座標のことをローカル座標(Local Coordinate)とも称する。
 エンコーダおよびデコーダにおいては、同一の変位ベクトルに対して互いに同一のローカル座標系を適用する必要があるが、ローカル座標系は明示的にエンコーダからデコーダへ伝送されない。従来、エンコーダおよびデコーダは、レンダリングの際に影処理等に用いられる各頂点の法線ベクトルを基準として互いに同様の方法でローカル座標系を設定していた。例えば、その法線ベクトルを1つの軸とする直交座標系がローカル座標系として設定されていた。本明細書においては、メッシュの頂点の法線ベクトルのことを、頂点法線ベクトルとも称する。
 この頂点法線ベクトルは、レンダリングの際の影処理等に適するように、「補間有り方法」で導出されていた。補間有り方法では、まず、ベースメッシュの頂点法線ベクトルが導出され、次に、その頂点法線ベクトルを用いて分割点の頂点法線ベクトルが導出される。その際、ベースメッシュの頂点法線ベクトルが分割点の位置(分割回数)に応じて重みづけされ、重み付き平均により分割点の頂点法線ベクトルが導出される。この方法により、ベースメッシュの頂点間に複数の分割点が形成される場合も、各分割点の頂点法線ベクトルの向きを変化させることができる。
 例えば、図4に示されるように、ベースメッシュの頂点42-1乃至頂点42-3を結ぶ接続をエッジとするフェイス(ポリゴン)が細分化され、頂点42-1と頂点42-2との間のエッジに分割点44-1乃至分割点44-3が形成されるとする。これらの頂点の頂点法線ベクトルは、その頂点を含むフェイス(周辺フェイスとも称する)の法線ベクトルに基づいて導出される。「補間有り方法」では、上述したように、各分割点の位置(ベースメッシュの分割回数)に応じて、その周辺フェイスの法線ベクトルに重みづけが行われ、重み付き平均等により頂点法線ベクトルが導出される。
 そのため、図5に示されるように、頂点42-1の頂点法線ベクトル51-1、分割点44-1の頂点法線ベクトル52-1、分割点44-2の頂点法線ベクトル52-2、分割点44-3の頂点法線ベクトル52-3、および、頂点42-2の頂点法線ベクトル51-2は、互いに異なる方向に向きうる。そのため、影処理等においてこのように導出された頂点法線ベクトルを適用することにより、頂点毎に独立した処理結果を導出することができ、より高精細な処理結果を得ることができる。
 ところで、このローカル座標系によって、その軸毎に変位ベクトルの量子化値が制御される。したがって、どのような向きのローカル座標系を適用するかによって、変位ベクトル(すなわち再構成されるメッシュ)の品質が変化する可能性がある。また、適用するローカル座標系の向きによって、変位ベクトルを表現するローカル座標が変化し得る。つまり、どのような向きのローカル座標系を適用するかによって変位ビデオ(のフレーム画像)の情報量(すなわち符号量)も変化する可能性がある。つまり、どのような向きのローカル座標系を適用するかが符号化効率に影響する。
 しかしながら、符号化効率を向上させるためにどのような向きのローカル座標系を適用すべきかは、例えばオブジェクトの形状等、様々な要因に依存する。少なくとも、上述のように「補間有り方法」で導出された頂点法線ベクトルを基準とするローカル座標系を適用しても常に最善の符号化効率が得られるとは限らなかった。例えば、「補間有り方法」では、頂点の位置に応じて重みづけが行われるため、導出された各頂点法線ベクトルの向きの差は、図5の例のように、その重みづけ方法に依存する。しかしながら、このような各頂点法線ベクトルの向きの差が、各変位ベクトルを表現するのに最適であるとは限らなかった。
 換言するに、レンダリング用の法線ベクトルをローカル座標系の導出に流用することにより、変位ベクトルの品質が低減したり、変位ビデオの情報量が増大したりして、符号化効率が低減するおそれがあった。
 <3.符号化用ローカル座標系>
  <方法1>
 そこで、レンダリング用の法線ベクトルを流用せずに、エンコーダおよびデコーダにおいて、ローカル座標系を設定するための頂点法線ベクトルを導出する。その導出方法は、エンコーダおよびデコーダにおいて互いに同一である。つまり、図6の表の最上段に示されるように、デコーダにおいて頂点法線ベクトルを導出し、その導出した頂点法線ベクトルに対応するローカル座標系を用いて、変位ベクトルを細分化されたベースメッシュに適用する(方法1)。
 例えば、情報処理装置(第1の情報処理装置とも称する)が、ベースメッシュの符号化データを復号するベースメッシュ復号部と、変位ベクトルとしてローカル座標が格納された2D画像をフレームとする変位ビデオの符号化データを復号する変位ビデオ復号部と、細分化されたベースメッシュの頂点の法線ベクトルである頂点法線ベクトルを導出する頂点法線ベクトル導出部と、その頂点法線ベクトルに対応するローカル座標系を用いて、細分化されたベースメッシュの頂点に、その頂点に対応するローカル座標を変位ベクトルとして適用する変位ベクトル適用部とを備えてもよい。
 例えば、第1の情報処理装置が実行する情報処理方法において、ベースメッシュの符号化データを復号し、変位ベクトルとしてローカル座標が格納された2D画像をフレームとする変位ビデオの符号化データを復号し、細分化されたベースメッシュの頂点の法線ベクトルである頂点法線ベクトルを導出し、その頂点法線ベクトルに対応するローカル座標系を用いて、細分化されたベースメッシュの頂点に、その頂点に対応するローカル座標を変位ベクトルとして適用してもよい。
 なお、ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから頂点を間引くことにより生成される、そのオリジナルメッシュよりも粗いメッシュである。変位ベクトルは、細分化されたベースメッシュの頂点とオリジナルメッシュの頂点との間の位置の差である。ローカル座標系は、頂点法線ベクトルに基づいて設定される、細分化されたベースメッシュの頂点毎の座標系である。ローカル座標は、細分化されたベースメッシュの頂点の変位ベクトルを、その頂点の頂点法線ベクトルに対応するローカル座標系において表した座標である。
 ベースメッシュの頂点に、ローカル座標(変位ベクトル)が適用されることにより、オリジナルメッシュ相当のメッシュが再構成される。つまり、このようにすることにより、レンダリング用の頂点法線ベクトルとは独立に、ローカル座標系を設定することができる。したがって、符号化効率の低減を抑制することができる。付言するに、レンダリング用の頂点法線ベクトルの導出方法を変更する必要が無いので、影処理等のレンダリングの品質を低減させずに符号化効率の低減を抑制することができる。
  <方法1-1>
 このローカル座標系を設定するための頂点法線ベクトルの導出方法はどのような方法であってもよい。例えば、図6の表の上から2段目に示されるように「補間無し方法」により頂点法線ベクトルを導出してもよい(方法1-1)。例えば、第1の情報処理装置において、頂点法線ベクトル導出部が、細分化されたベースメッシュの処理対象の頂点である処理対象点の周辺フェイスの法線ベクトルを用いて、その処理対象点の頂点法線ベクトルを導出してもよい。
 補間無し方法は、上述の補間有り方法において頂点の位置に応じた重みづけを行わずに頂点法線ベクトルを導出する方法である。つまり、ベースメッシュの頂点も分割点も、互いに同様の方法で、周辺フェイスの法線ベクトルを用いて導出される。例えば、図7の四角101内に示される仮想プログラムのように、各フェイスの法線ベクトルnがそのフェイスの3頂点の位置から導出され、周辺フェイスの法線ベクトルnの平均が頂点法線ベクトルとして導出される。つまり、上述の頂点法線ベクトル導出部は、周辺フェイスの法線ベクトルの平均を導出し、その値を処理対象点の頂点法線ベクトルとしてもよい。
 図4に示されるように、ベースメッシュのフェイスが細分化された各フェイスの向きは、全てそのベースメッシュのフェイスの向きと同一である。したがって、図4の分割点44-1乃至分割点44-3のようにベースメッシュの1つのエッジに位置する各分割点は、周辺フェイスの向きが互いに同一となり、頂点法線ベクトルも互いに同一の向きとなる。例えば図5の例の場合、頂点法線ベクトル52-1乃至頂点法線ベクトル52-3の向きが互いに同一となる。
 つまり、「補間無し方法」を適用することにより、「補間有り方法」の場合とは異なる向きの頂点法線ベクトル(すなわち、ローカル座標系)を得ることができる。したがって、「補間無し方法」を適用することにより、少なくとも、「補間有り方法」を適用することにより生じる頂点法線ベクトルの向きの差による符号化効率の低減を抑制することができる。
 なお、分割点の位置に依らない重みづけ方法であれば、周辺のフェイスの法線ベクトルの重み付き平均を適用してもよい。つまり、上述の頂点法線ベクトル導出部が、周辺フェイスの法線ベクトルの重み付き平均を導出し、その値を処理対象点の頂点法線ベクトルとしてもよい。
 例えば、周辺フェイスの面積に応じて周辺フェイスの法線ベクトルを重みづけしてもよい。この場合、例えば、図7の四角102内に示される仮想プログラムのように、フェイス毎にその大きさに応じて重み値vが設定され、その重み値vを用いた周辺フェイスの法線ベクトルnの重み付き平均により、頂点法線ベクトルが導出される。この場合も、ベースメッシュのフェイスは、一様に(均一に)細分化されるので、図4の分割点44-1乃至分割点44-3のようにベースメッシュの1つのエッジに位置する各分割点は、その周辺フェイスの大きさが互いに同一となり、頂点法線ベクトルは互いに同一の向きとなる。つまり、上述の頂点法線ベクトル導出部が、周辺フェイスの面積に基づく重み値を用いて、重み付き平均を導出してもよい。
 また、周辺フェイス同士の角度(向きの差)に応じてその法線ベクトルを重みづけしてもよい。この場合、例えば、図8の四角103内に示される仮想プログラムのように、フェイス間の角度(向きの差)に応じて重み値ai, aj, akが設定され、その重み値を用いた周辺フェイスの法線ベクトルnの重み付き平均により、頂点法線ベクトルが導出される。この場合も、ベースメッシュのフェイスが細分化された各フェイスの向きは、全てそのベースメッシュのフェイスの向きと同一である。したがって、図4の分割点44-1乃至分割点44-3のようにベースメッシュの1つのエッジに位置する各分割点は、その周辺フェイス同士の向きの差が互いに同一となり、頂点法線ベクトルは互いに同一の向きとなる。つまり、上述の頂点法線ベクトル導出部が、周辺フェイスの向きの差に基づく重み値を用いて、重み付き平均を導出してもよい。
 また、周辺フェイスの面積と、周辺フェイス同士の角度(向きの差)との両方に応じてその法線ベクトルを重みづけしてもよい。この場合、例えば、図8の四角104内に示される仮想プログラムのように、フェイス毎にその大きさに応じて重み値vが設定され、フェイス間の角度(向きの差)に応じて重み値ai, aj, akが設定され、それらの重み値を用いた周辺フェイスの法線ベクトルnの重み付き平均により、頂点法線ベクトルが導出される。この場合も、図4の分割点44-1乃至分割点44-3のようにベースメッシュの1つのエッジに位置する各分割点の頂点法線ベクトルは、上述した例と同様に、互いに同一の向きとなる。つまり、上述の頂点法線ベクトル導出部が、周辺フェイスの面積とその周辺フェイスの向きの差とに基づく重み値を用いて、重み付き平均を導出してもよい。
  <方法1-2>
 また、図6の表の上から3段目に示されるように、デコーダにおいても「補間有り方法」と「補間無し方法」のいずれかを選択し、選択した方法を頂点法線ベクトルの導出に適用してもよい(方法1-2)。例えば、第1の情報処理装置において、頂点法線ベクトル導出部が、細分化されたベースメッシュの処理対象の頂点である処理対象点の位置に応じた重みづけを行って、その処理対象点の周辺フェイスの法線ベクトルを用いてその処理対象点の頂点法線ベクトルを導出する第1の方法(つまり、補間有り方法)、または、そのような重みづけを行わずに周辺フェイスの法線ベクトルを用いて処理対象点の頂点法線ベクトルを導出する第2の方法(つまり、補間無し方法)を選択し、その選択した方法を用いて頂点法線ベクトルを導出してもよい。以下において、この導出方法を「デコーダ選択方法」とも称する。
 この場合、デコーダは、エンコーダは、互いに同様の方法で(予め定められた所定の方法で)、「補間有り方法」または「補間無し方法」を選択すればよい。つまり、この場合、エンコーダがどちらの方法を選択したかをデコーダに対して明示的に通知する必要が無い。そのため、その分の符号量の増大を抑制することができる。また、エンコーダおよびデコーダは、「補間有り方法」および「補間無し方法」の内、より好適な方を適用することができるので、より符号化効率の低減を抑制することができる。
 この選択方法(「補間有り方法」および「補間無し方法」のいずれを選択するかを決定する方法)は、どのような方法であってもよい。例えば、ベースメッシュのフェイス同士の向き(つまり法線ベクトルの向き)の関係性(向きの差)に基づいて、「補間有り方法」および「補間無し方法」のいずれを選択するかが決定されてもよい。例えば、上述の頂点法線ベクトル導出部が、ベースメッシュのフェイス毎に、処理対象フェイスとその周辺に位置するフェイス(周辺フェイスとも称する)との向きの差に基づいて、第1の方法または第2の方法を選択してもよい。
 例えば、一般的に、オブジェクト表面が平らな部分では、オリジナルメッシュやベースメッシュの形状も平らとなり、変位ベクトルも互いに同一の向きとなりやすい(向きのばらつきが小さい)と考えられる。したがって、「補間有り方法」を適用して頂点法線ベクトルの向き(すなわち、ローカル座標の向き)が互いに異なるようにすると、符号化効率が低減しやすいと考えられる。そこで、例えば、ベースメッシュのフェイス同士の向きの差が小さい場合、「補間無し方法」が選択されるようにしてもよい。例えば、上述の頂点法線ベクトル導出部が、処理対象フェイスと周辺フェイスとの向きの差を閾値判定し、その差が閾値より小さい場合(または閾値以下の場合)「補間無し方法」を選択し、そうでない場合「補間有り方法」を選択してもよい。
 各頂点の頂点法線ベクトルは、その周辺フェイスの法線ベクトルに基づいて導出される。換言するに、処理対象フェイスの周辺フェイスの法線ベクトルは、処理対象フェイスの3頂点の頂点法線ベクトルにより示される。例えば、図9において、グレー地で示される処理対象フェイス111を処理対象とし、点線枠で示される周辺フェイス114をその周辺に位置するフェイスとする。法線ベクトル112は、処理対象フェイス111の法線ベクトルである。法線ベクトル115は、周辺フェイス114の法線ベクトルである。なお、図9においては、1つの周辺フェイスとその法線ベクトルに対してのみ符号を付しているが、点線枠のフェイス(三角形)は、全て周辺フェイス114であり、それらの法線ベクトルは、法線ベクトル115である。また、頂点法線ベクトル113-1、頂点法線ベクトル113-2、および頂点法線ベクトル113-3は、処理対象フェイス111の各頂点の頂点法線ベクトルである。この場合、頂点法線ベクトル113-1は、その頂点を共有する周辺フェイス114の法線ベクトル115を用いて(例えば平均等により)導出される。同様に、頂点法線ベクトル113-2および頂点法線ベクトル113-3も、それぞれ、その頂点を共有する周辺フェイス114の法線ベクトル115を用いて(例えば平均等により)導出される。つまり、頂点法線ベクトル113-1乃至頂点法線ベクトル113-3は、図9に示される周辺フェイス114の法線ベクトル115を表しているとも言える。
 したがって、処理対象フェイスの法線ベクトルと、その3頂点の頂点法線ベクトルとを用いて、処理対象フェイスと周辺フェイスとの向きの差を求めてもよい。例えば、上述した処理対象フェイスの法線ベクトルとその処理対象フェイスの各頂点の頂点法線ベクトルとの内積を求め、その内積の最小値を閾値と比較し、内積の最小値の方が小さい場合(または内積の最小値と閾値とが同一である場合)第1の方法を選択し、そうでない場合(内積の方が大きい場合、または、内積の最小値と閾値とが同一である場合)第2の方法を選択してもよい。
 このようにすることにより、符号化効率の増大の抑制を期待することができる。
 なお、この閾値は、予め定められていてもよいし、可変であってもよい。つまり、エンコーダおよびデコーダが予め共通の閾値を有していてもよいし、エンコーダで適用された閾値がデコーダに伝送されてもよい(デコーダがその閾値を適用してもよい)。例えば、上述の頂点法線ベクトル導出部が、エンコーダから伝送された閾値と内積の最小値とを比較してもよい。このように閾値を伝送することにより、デコーダが閾値を保持していなくてもよい。また、容易に閾値を可変とすることができる。
  <方法1-3>
 また、図6の表の上から4段目に示されるように、「補間有り方法」で導出した頂点法線ベクトルと「補間無し方法」で導出した頂点法線ベクトルとを合成してもよい(方法1-3)。例えば、第1の情報処理装置において、頂点法線ベクトル導出部が、細分化されたベースメッシュの処理対象の頂点である処理対象点の位置に応じた重みづけを行って、その処理対象点の周辺フェイスの法線ベクトルを用いてその処理対象点の頂点法線ベクトル(第1の頂点法線ベクトル)を導出し、また、重みづけを行わずに周辺フェイスの法線ベクトルを用いてその処理対象点の頂点法線ベクトル(第2の頂点法線ベクトル)を導出し、さらに、その導出した第1の頂点法線ベクトルと第2の頂点法線ベクトルとを合成し、その合成結果(合成ベクトル)を処理対象点の頂点法線ベクトルとしてもよい。以下において、この導出方法を「合成方法」とも称する。
 このようにすることにより、「補間有り方法」を適用する場合とも、「補間無し方法」を適用する場合とも、異なる向きの頂点法線ベクトルが得られる可能性がある。つまり、それらの場合とは異なる向きのローカル座標系を設定することができる。したがって、この「合成方法」を適用することにより、少なくとも、「補間有り方法」を適用することにより生じる頂点法線ベクトルの向きの差による符号化効率の低減や、「補間無し方法」を適用することにより生じる頂点法線ベクトルの向きが揃うことによる符号化効率の低減を抑制することができる。
 なお、第1の頂点法線ベクトルおよび第2の頂点法線ベクトルを、重み付き平均により合成してもよい。例えば、上述した頂点法線ベクトル導出部が、導出した第1の頂点法線ベクトルおよび第2の頂点法線ベクトルを重み付き平均により合成してもよい。例えば、重み値wを設定し、以下の式(1)のように、第1の頂点法線ベクトル(interpolated vector)および第2の頂点法線ベクトル(no interpolated vector)の重み付き平均を導出し、合成ベクトル(updated normal vector)としてもよい。
 updated normal vector = w*(no interpolated vector) + (1-w)*(interpolated vector)
 ・・・(1)
 その際、重み値は、フェイスのエッジに位置する頂点(以下において、エッジ頂点とも称する)と、フェイスのエッジでない部分に位置する頂点(以下において、非エッジ頂点とも称する)とで変えてもよい。例えば、図10に示されるベースメッシュのフェイス121において、グレーの頂点122がエッジ頂点であり、黒の頂点123が非エッジ頂点である。例えば、上述の頂点法線ベクトル導出部が、ベースメッシュのフェイスのエッジ上に位置する頂点に対応する第1の頂点法線ベクトルおよび第2の頂点法線ベクトルを、第1の重み値を用いた重み付き平均により合成し、エッジ上でない場所に位置する頂点に対応する第1の頂点法線ベクトルおよび第2の頂点法線ベクトルを、第1の重み値と異なる第2の重み値を用いた重み付き平均により合成してもよい。
 なお、重み値は、ベースメッシュのフェイス毎に変えてもよいし、エッジ毎に変えてもよいし、頂点毎に変えてもよい。
 また、この重み値は、予め定められていてもよいし、可変であってもよい。つまり、エンコーダおよびデコーダが予め共通の重み値を有していてもよいし、エンコーダで適用された重み値がデコーダに伝送されてもよい(デコーダがその重み値を適用してもよい)。例えば、上述の頂点法線ベクトル導出部が、導出した第1の頂点法線ベクトルおよび第2の頂点法線ベクトルを、エンコーダから伝送された重み値を用いた重み付き平均により合成してもよい。このように重み値を伝送することにより、デコーダが重み値を保持していなくてもよい。また、容易に重み値を可変とすることができる。
  <方法1-4>
 また、図6の表の上から5段目に示されるように、エンコーダにおいて適用された導出方法を示す方法指定フラグがエンコーダからデコーダに伝送されるようにしてもよい(方法1-4)。例えば、第1の情報処理装置が、頂点法線ベクトルの導出方法を指定する方法指定フラグに基づいて、頂点法線ベクトルの導出方法を設定する導出方法設定部をさらに備え、頂点法線ベクトル導出部が、その設定された導出方法で頂点法線ベクトルを導出してもよい。以下において、この導出方法を「フラグ方法」とも称する。
 このようにすることにより、エンコーダは、複数の導出方法の中からより好適な方法を選択して適用することができるので、より符号化効率の低減を抑制することができる。また、デコーダは、方法してフラグに基づいて導出方法を適用することができるので、より容易に、エンコーダと同一の導出方法を適用することができる。
 このエンコーダによる選択方法はどのような方法であってもよい。また、選択の候補となる導出方法はどのような方法であってもよいし、その候補の数はいくつであってもよい。
 例えば、上述した「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、および「合成方法」を候補としてもよい。つまり、エンコーダがこれらの中のいずれかの導出方法を適用してもよい。デコーダにおいては、例えば、上述した導出方法設定部が、方法指定フラグに従って、細分化されたベースメッシュの処理対象の頂点である処理対象点の位置に応じた重みづけを行って、その処理対象点の周辺フェイスの法線ベクトルを用いて処理対象点の頂点法線ベクトルを導出する第1の方法(補間有り方法)、重みづけを行わずに周辺フェイスの法線ベクトルを用いて処理対象点の頂点法線ベクトルを導出する第2の方法(補間無し方法)、第1の方法または第2の方法を所定の方法により選択する第3の方法(デコーダ選択方法)、並びに、第1の方法を適用して導出した第1の頂点法線ベクトルと第2の方法を適用して導出した第2の頂点法線ベクトルとを合成する第4の方法(合成方法)の中からいずれか1つを選択し、頂点法線ベクトルの導出方法として設定してもよい。
 なお、この方法指定フラグは、任意のデータ単位で伝送されてもよい。例えば、オリジナルメッシュのシーケンス毎に方法指定フラグが伝送されてもよいし、フレーム毎に方法指定フラグが伝送されてもよいし、ベースメッシュ毎に方法指定フラグが伝送されてもよいし、ベースメッシュのフェイス毎に方法指定フラグが伝送されてもよいし、ベースメッシュの頂点毎に方法指定フラグが伝送されてもよい。換言するに、方法指定フラグが、頂点法線ベクトルの導出方法を、オリジナルメッシュのシーケンス毎、フレーム毎、ベースメッシュ毎、ベースメッシュのフェイス毎、または、ベースメッシュの頂点毎に指定してもよい。また、上述の導出方法設定部が、その方法指定フラグに基づいて、オリジナルメッシュのシーケンス毎に導出方法を設定してもよいし、フレーム毎に導出方法を設定してもよいし、ベースメッシュ毎に導出方法を設定してもよいし、ベースメッシュのフェイス毎に導出方法を設定してもよいし、ベースメッシュの頂点毎に導出方法を設定してもよい。
 なお、このフラグ方法の場合、エンコーダは、頂点法線ベクトルの導出方法を設定し、その導出方法を適用して頂点法線ベクトルを導出し、ローカル座標系を設定する。そして、エンコーダは、その導出方法を指定する方法指定フラグを生成し、デコーダに伝送する。
 例えば、情報処理装置(第2の情報処理装置とも称する)が、細分化されたベースメッシュの頂点の法線ベクトルである頂点法線ベクトルの導出方法を設定する導出方法設定部と、その設定された導出方法で頂点法線ベクトルを導出する頂点法線ベクトル導出部と、その頂点法線ベクトルに対応するローカル座標系において変位ベクトルを表すローカル座標を導出するローカル座標導出部と、変位ベクトルとしてそのローカル座標が格納された2D画像をフレームとする変位ビデオを符号化する変位ビデオ符号化部と、その設定された導出方法を指定する方法指定フラグを生成する方法指定フラグ生成部と、その方法指定フラグを符号化する方法指定フラグ符号化部とを備えてもよい。
 また、第2の情報処理装置が実行する情報処理方法において、細分化されたベースメッシュの頂点の法線ベクトルである頂点法線ベクトルの導出方法を設定し、その設定された導出方法で頂点法線ベクトルを導出し、その頂点法線ベクトルに対応するローカル座標系において変位ベクトルを表すローカル座標を導出し、変位ベクトルとしてそのローカル座標が格納された2D画像をフレームとする変位ビデオを符号化し、その設定された導出方法を指定する方法指定フラグを生成し、その方法指定フラグを符号化してもよい。
 なお、ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから頂点を間引くことにより生成される、そのオリジナルメッシュよりも粗いメッシュである。変位ベクトルは、細分化されたベースメッシュの頂点とオリジナルメッシュの頂点との間の位置の差である。ローカル座標系は、頂点法線ベクトルに基づいて設定される、細分化されたベースメッシュの頂点毎の座標系である。ローカル座標は、細分化されたベースメッシュの頂点の変位ベクトルを、その頂点の頂点法線ベクトルに対応するローカル座標系において表した座標である。
 また、この第2の情報処理装置において、導出方法設定部が、細分化されたベースメッシュの処理対象の頂点である処理対象点の位置に応じた重みづけを行って、その処理対象点の周辺のフェイスの法線ベクトルを用いて処理対象点の頂点法線ベクトルを導出する第1の方法(補間有り方法)、その重みづけを行わずに周辺のフェイスの法線ベクトルを用いて処理対象点の頂点法線ベクトルを導出する第2の方法(補間無し方法)、第1の方法および第2の方法のいずれを適用するかをデコーダに選択させる第3の方法(デコーダ選択方法)、並びに、第1の方法を適用して導出した第1の頂点法線ベクトルと第2の方法を適用して導出した第2の頂点法線ベクトルとを合成し、その合成結果(合成ベクトル)を処理対象点の頂点法線ベクトルとする第4の方法(合成方法)の中からいずれか1つを選択し、頂点法線ベクトルの導出方法として設定してもよい。
 なお、上述した頂点法線ベクトル導出部は、第3の方法(デコーダ選択方法)が選択された場合、デコーダと同一の方法で、第1の方法または第2の方法を選択し、その選択した方法を適用して頂点法線ベクトルを導出してもよい。例えば、その頂点法線ベクトル導出部が、ベースメッシュのフェイス毎に、処理対象フェイスと周辺フェイスとの向きの差に基づいて、第1の方法または第2の方法を選択してもよい。例えば、その頂点法線ベクトル導出部が、処理対象フェイスの法線ベクトルと処理対象フェイスの各頂点の頂点法線ベクトルとの内積を求め、その内積の最小値を閾値と比較し、内積の最小値の方が小さい場合(または内積の最小値と閾値とが同一である場合)第1の方法を選択し、そうでない場合(内積の方が大きい場合、または、内積の最小値と閾値とが同一である場合)第2の方法を選択してもよい。なお、この閾値は、デコーダに伝送してもよい。例えば、第2の情報処理装置において、方法指定フラグ符号化部が、さらに、この閾値を符号化してもよい。
 また、上述した頂点法線ベクトル導出部は、第4の方法(合成方法)が選択された場合、第1の方法を適用して第1の頂点法線ベクトルを導出し、第2の方法を適用して第2の頂点法線ベクトルを導出し、導出した第1の頂点法線ベクトルおよび第2の頂点法線ベクトルを、重み付き平均により合成してもよい。例えば、その頂点法線ベクトル導出部は、ベースメッシュのフェイスのエッジ上に位置する頂点に対応する第1の頂点法線ベクトルおよび第2の頂点法線ベクトルを、第1の重み値を用いた重み付き平均により合成してもよい。そして、その頂点法線ベクトル導出部は、エッジ上でない場所に位置する頂点に対応する第1の頂点法線ベクトルおよび第2の頂点法線ベクトルを、第1の重み値と異なる第2の重み値を用いた重み付き平均により合成してもよい。なお、この閾値は、デコーダに伝送されてもよい。例えば、第2の情報処理装置において、上述した方法指定フラグ符号化部が、さらに、重み付き平均に用いられる重み値を符号化してもよい。
 上述したように、この方法指定フラグは、任意のデータ単位で伝送されてもよい。例えば、オリジナルメッシュのシーケンス毎に方法指定フラグが伝送されてもよいし、フレーム毎に方法指定フラグが伝送されてもよいし、ベースメッシュ毎に方法指定フラグが伝送されてもよいし、ベースメッシュのフェイス毎に方法指定フラグが伝送されてもよいし、ベースメッシュの頂点毎に方法指定フラグが伝送されてもよい。換言するに、第2の情報処理装置において、導出方法設定部が、頂点法線ベクトルの導出方法を、オリジナルメッシュのシーケンス毎、フレーム毎、ベースメッシュ毎、ベースメッシュのフェイス毎、または、ベースメッシュの頂点毎に設定してもよい。さらに、換言するに、第2の情報処理装置において、方法指定フラグ生成部が、方法指定フラグを、オリジナルメッシュのシーケンス毎、フレーム毎、ベースメッシュ毎、ベースメッシュのフェイス毎、または、ベースメッシュの頂点毎に生成してもよい。
  <方法1-5>
 また、図6の表の上から6段目に示されるように、エンコーダにおいて、導出された頂点法線ベクトルが、予め用意された頂点法線ベクトルの候補を用いてクラスタリングされてもよい(方法1-5)。例えば、第1の情報処理装置が、導出された頂点法線ベクトルを、予め用意された所定の法線ベクトルの候補でクラスタリングするクラスタリング部をさらに備えてもよい。また、第2の情報処理装置が、導出された頂点法線ベクトルを、予め用意された所定の法線ベクトルの候補でクラスタリングするクラスタリング部をさらに備えてもよい。
 例えば、図11に示されるように、直交座標系の各座標軸に沿う6方向を頂点法線ベクトルの候補とし、何らかの導出方法で頂点法線ベクトル131が導出された場合、クラスタリング部は、その頂点法線ベクトル131を、最も向きが近い候補(頂点法線ベクトル132)に置き換える。そして、その置き換えた頂点法線ベクトル132を用いてローカル座標系が設定される。
 このように頂点法線ベクトルをクラスタリングすることにより、頂点法線ベクトルの向きが予め用意された候補の向きに限定される。つまり、各頂点法線ベクトルの向きのばらつきの増大を抑制することができる。換言するに、このようなクラスタリングにより、ローカル座標系の向きが補正され、予め用意された候補の向きに限定される。つまり、ローカル座標系の向きのばらつきの増大を抑制することができる。
 この方法1-5は、上述した方法1-1乃至方法1-4のいずれとも組み合わせて適用することができる。つまり、上述した方法1-1乃至方法1-4のいずれの場合も、導出された頂点法線ベクトルをクラスタリングしてもよい。
 なお、図11の例は一例であり、候補の数はいくつであってもよい。また、候補とするベクトルの向きはどのような向きであってもよく、図11の例に限定されない。
  <方法1-6>
 また、図6の表の最下段に示されるように、エンコーダにおいて、導出された頂点法線ベクトル(の向き)が量子化されてもよい(方法1-6)。例えば、第1の情報処理装置が、導出された頂点法線ベクトルを量子化する量子化部をさらに備えてもよい。また、第2の情報処理装置が、導出された頂点法線ベクトルを量子化する量子化部をさらに備えてもよい。
 例えば、図12の左に示されるように、何らかの導出方法で頂点法線ベクトル141が導出された場合、量子化部は、その頂点法線ベクトル131を、所定のグリッド上に移動させる(座標を量子化する)。そして、その量子化された頂点法線ベクトル142を用いてローカル座標系が設定される。
 このように頂点法線ベクトルを量子化することにより、頂点法線ベクトルの向きが限定される。つまり、各頂点法線ベクトルの向きのばらつきの増大を抑制することができる。換言するに、このような量子化により、ローカル座標系の向きが補正され、予め用意された向きに限定される。つまり、ローカル座標系の向きのばらつきの増大を抑制することができる。
 なお、頂点法線ベクトル(つまり、ローカル座標)の向きを補正することができれば、量子化の方法はどのような方法であってもよい。例えば、図12の右に示されるように球面座標系を用いて頂点法線ベクトル(の向き)を量子化してもよい。例えば、この球面座標系の場合、θ、φ、r等を量子化してもよい。もちろん、量子化の方法は、図12の例に限定されない。
 この方法1-6は、上述した方法1-1乃至方法1-4のいずれとも組み合わせて適用することができる。つまり、上述した方法1-1乃至方法1-4のいずれの場合も、導出された頂点法線ベクトルを量子化してもよい。もちろん、方法1―5と方法1―6を組み合わせて適用してもよい。つまり、頂点法線ベクトルに対し、量子化とクラスタリングの両方を行ってもよい。
 なお、上述した各方法(方法1-1乃至方法1-6)は、他の方法と併用することができる。例えば、シーケンスの途中において、適用する方法を切り替えてもよい。例えば、あるフレームにおいては方法1-1を適用し、別のフレームにおいては方法1-2を適用し、さらに別のフレームにおいては方法1-3を適用するといったことも可能である。
 <4.実施の形態>
  <符号化装置>
 本技術は、メッシュを符号化する符号化装置に適用することができる。図13は、本技術を適用した情報処理装置の一態様である符号化装置の構成の一例を示すブロック図である。図13に示される符号化装置200は、メッシュを符号化する装置である。符号化装置200は、非特許文献1に記載のV-DMCと基本的に同様の方法でメッシュを符号化する。
 ただし、符号化装置200は、<3.符号化用ローカル座標系>において上述した方法1を適用してメッシュを符号化する。また、符号化装置200は、上述した方法1-1乃至方法1-3の内の1つ以上を適用してもよい。
 なお、図13においては、処理部やデータの流れ等の主なものを示しており、図13に示されるものが全てとは限らない。つまり、符号化装置200において、図13においてブロックとして示されていない処理部が存在したり、図13において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
 図13に示されるように、符号化装置200は、ベースメッシュ符号化部211、ローカル座標系設定部212、ローカル座標導出部213、変位ベクトル補正部214、パッキング部215、変位ビデオ符号化部216、メッシュ再構成部217、アトリビュートマップ補正部218、アトリビュートビデオ符号化部219、ヘッダ符号化部220、および合成部221を有する。
 符号化装置200には、ベースメッシュ、変位ベクトル、およびアトリビュートマップがフレーム毎に供給される。これらのデータは、例えば前処理においてオリジナルメッシュから生成されてもよい。
 ベースメッシュ符号化部211は、ベースメッシュを符号化し、その符号化データを合成部221へ供給する。この符号化方法はどのような方法であってもよい。例えば、各フレームのベースメッシュを互いに独立に符号化してもよい(イントラ符号化)。また、対象フレームのベースメッシュを、参照フレームのベースメッシュからの差分(動きベクトル)として符号化してもよい(インター符号化)。
 また、ベースメッシュ符号化部211は、生成した符号化データを復号し、ベースメッシュを生成(復元)してもよい。この生成(復元)されたベースメッシュには、符号化歪を含む。ベースメッシュ符号化部211は、そのベースメッシュを変位ベクトル補正部214およびメッシュ再構成部217へ供給する。
 ローカル座標系設定部212は、ベースメッシュを取得し、細分化されたベースメッシュの頂点毎のローカル座標系を設定する。ローカル座標系設定部212は、上述した方法1を適用してローカル座標系を設定する。なお、ローカル座標系設定部212は、上述した方法1-1乃至方法1-3の内の1つ以上を適用してローカル座標系を設定してもよい。ローカル座標系設定部212は、設定したローカル座標系をローカル座標導出部213へ供給する。なお、ローカル座標系設定部212は、方法1-2を適用し、デコーダ選択方法において適用した閾値をヘッダ符号化部220へ供給してもよい。また、ローカル座標系設定部212は、方法1-3を適用し、合成方法において適用した重み値をヘッダ符号化部220へ供給してもよい。
 ローカル座標導出部213は、変位ベクトルと、ローカル座標系設定部212から供給されるローカル座標系を取得し、そのローカル座標系においてその変位ベクトルを表すローカル座標を導出する。ローカル座標導出部213は、上述した方法1を適用してローカル座標を導出する。ローカル座標導出部213は、その導出したローカル座標を変位ベクトルとして変位ベクトル補正部214へ供給する。
 変位ベクトル補正部214は、ベースメッシュ符号化部211から供給される、符号化歪を含むベースメッシュを取得する。また、変位ベクトル補正部214は、ローカル座標導出部213から供給されるローカル座標(変位ベクトル)を取得する。変位ベクトル補正部214は、その符号化歪を含むベースメッシュを細分化し、その細分化されたベースメッシュ用いて、ローカル座標(変位ベクトル)を補正する。変位ベクトル補正部214は、その補正後のローカル座標(変位ベクトル)をパッキング部215へ供給する。なお、この補正は省略してもよい。
 パッキング部215は、変位ベクトル補正部214から供給されるローカル座標(変位ベクトル)を取得する。パッキング部215は、そのローカル座標(変位ベクトル)をカレントフレームの2次元画像(フレーム画像とも称する)にパッキングする。その際、パッキング部215は、ローカル座標(変位ベクトル)を係数変換(例えばウェーブレット変換)し、変換係数を2次元画像にパッキングしてもよい。また、パッキング部215は、ローカル座標(または変換係数)を量子化し、量子化係数を2次元画像にパッキングしてもよい。パッキング部215は、変位ベクトルとしてローカル座標(または、それに相当する情報)がパッキングされた2次元画像を変位ビデオ符号化部216へ供給する。
 変位ビデオ符号化部216は、パッキング部215から供給される2次元画像を取得する。変位ビデオ符号化部216は、その2次元画像をフレーム画像とし、動画像(変位ビデオ)として符号化する。変位ビデオ符号化部216は、上述した方法1を適用して変位ビデオを符号化する。変位ビデオ符号化部216は、生成した変位ビデオの符号化データをメッシュ再構成部217および合成部221へ供給する。
 メッシュ再構成部217は、変位ビデオ符号化部216から供給された変位ビデオの符号化データを復号し、2次元画像からアンパッキングする等してローカル座標(変位ベクトル)を導出する。また、メッシュ再構成部217は、ベースメッシュ符号化部211から供給されたベースメッシュ(符号化歪を含む)を細分化し、導出した変位ベクトルを適用してメッシュを再構成する。このメッシュは符号化歪を含む。メッシュ再構成部217は、再構成したメッシュをアトリビュートマップ補正部218へ供給する。
 アトリビュートマップ補正部218は、テクスチャ等のアトリビュートマップを取得し、メッシュ再構成部217から供給されたメッシュ(符号化歪を含む)を用いてそのアトリビュートマップを補正する。アトリビュートマップ補正部218は、その補正後のアトリビュートマップをアトリビュートビデオ符号化部219へ供給する。なお、この補正は省略してもよい。
 アトリビュートビデオ符号化部219は、アトリビュートマップ補正部218から供給されたアトリビュートマップをフレーム画像とし、動画像(アトリビュートビデオ)として符号化する。アトリビュートビデオ符号化部219は、生成したアトリビュートビデオの符号化データを合成部221へ供給する。
 ヘッダ符号化部220は、上述した方法1を適用し、ヘッダに格納される情報を符号化する。例えば、ヘッダ符号化部220は、上述した方法1-2を適用し、デコーダ選択方法において適用される閾値を符号化してもよい。また、ヘッダ符号化部220は、上述した方法1-3を適用し、合成方法において適用される重み値を符号化してもよい。つまり、この閾値や重み値は、ヘッダに格納されて伝送されてもよい。ヘッダ符号化部220は、生成したヘッダの符号化データを合成部221へ供給する。
 合成部221は、供給された、ヘッダの符号化データ、ベースメッシュの符号化データ、変位ビデオの符号化データ、およびアトリビュートビデオの符号化データを合成(多重化)し、1本のビットストリームを生成する。合成部221は、生成したビットストリームを符号化装置200の外部に出力する。このビットストリームは、任意の伝送媒体または任意の記録媒体を介して、復号装置へ伝送される。
  <ローカル座標系設定部>
 図14は、ローカル座標系設定部212の主な構成例を示すブロック図である。図14に示されるように、ローカル座標系設定部212は、頂点法線ベクトル導出部241およびローカル座標系設定部242を有する。
 頂点法線ベクトル導出部241は、上述した方法1を適用し、供給されたベースメッシュを細分化し、その細分化されたベースメッシュの頂点の頂点法線ベクトルを導出する。なお、頂点法線ベクトル導出部241は、上述した方法1-1乃至方法1-3の内の1つ以上を適用して頂点法線ベクトルを導出してもよい。例えば、頂点法線ベクトル導出部241は、方法1-1を適用し、補間無し方法により頂点法線ベクトルを導出してもよい。
また、頂点法線ベクトル導出部241は、方法1-2を適用し、デコーダ選択方法により頂点法線ベクトルを導出してもよい。その場合、頂点法線ベクトル導出部241は、そのデコーダ選択方法において適用した閾値をパラメータとしてヘッダ符号化部220へ供給してもよい。また、頂点法線ベクトル導出部241は、方法1-3を適用し、合成方法により頂点法線ベクトルを導出してもよい。その場合、頂点法線ベクトル導出部241は、その合成方法において適用した重み値をパラメータとしてヘッダ符号化部220へ供給してもよい。頂点法線ベクトル導出部241は、導出した頂点法線ベクトルをローカル座標系設定部242へ供給する。
 ローカル座標系設定部242は、上述した方法1を適用し、頂点法線ベクトル導出部241から供給される頂点法線ベクトルを基準とするローカル座標系を設定する。例えば、ローカル座標系設定部242は、頂点法線ベクトルを1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。ローカル座標系設定部242は、各頂点法線ベクトルに対してローカル座標系を設定する。ローカル座標系設定部242は、設定したローカル座標系をローカル座標導出部213へ供給する。
 このような構成を有することにより、符号化装置200は、符号化効率の低減を抑制することができる。
  <符号化処理の流れ>
 この符号化装置200により実行される符号化処理の流れの例を、図15のフローチャートを参照して説明する。
 符号化処理が開始されると、ベースメッシュ符号化部211は、ステップS201において、ベースメッシュを符号化する。また、ベースメッシュ符号化部211は、生成した符号化データを復号し、符号化歪を含むベースメッシュを生成(復元)する。
 ステップS202において、ローカル座標系設定部212は、上述した方法1を適用してローカル座標系設定処理を実行し、ローカル座標系を設定する。なお、ローカル座標系設定部212は、上述した方法1-1乃至方法1-3の内の1つ以上を適用してこの処理を実行してもよい。
 ステップS203において、ローカル座標導出部213は、上述した方法1を適用して、ステップS202において設定されたローカル座標系において変位ベクトルを表すローカル座標を導出する。
 ステップS204において、変位ベクトル補正部214は、ステップS203において導出されたローカル座標(変位ベクトル)を、ステップS201において生成されたベースメッシュ(符号化歪を含む)を用いて補正する。
 ステップS205において、パッキング部215は、そのローカル座標(変位ベクトル)(ステップS204において補正された場合は、補正後のローカル座標)を、フレーム(2次元画像)にパッキングする。
 ステップS206において、変位ビデオ符号化部216は、上述した方法1を適用し、そのパッキングされた2次元画像をフレーム画像とし、変位ビデオとして符号化する。
 ステップS207において、メッシュ再構成部217は、ステップS201において生成されたベースメッシュ(符号化歪を含む)と、ステップS206において生成された変位ビデオの符号化データを用いてメッシュ(符号化歪を含む)を再構成する。
 ステップS208において、アトリビュートマップ補正部218は、その再構成されたメッシュを用いて、アトリビュートマップを補正する。
 ステップS209において、アトリビュートビデオ符号化部219は、補正されたアトリビュートマップをフレーム画像とし、アトリビュートビデオとして符号化する。
 ステップS210において、ヘッダ符号化部220は、ヘッダに格納される情報を符号化する。例えば、ヘッダ符号化部220は、上述した方法1-2を適用し、デコーダ選択方法において適用される閾値を符号化してもよい。また、ヘッダ符号化部220は、上述した方法1-3を適用し、合成方法において適用される重み値を符号化してもよい。
 ステップS211において、合成部221は、ステップS201において生成されたベースメッシュの符号化データ、ステップS206において生成された変位ビデオの符号化データ、ステップS209において生成されたアトリビュートビデオの符号化データ、およびステップS210において生成されたヘッダの符号化データを多重化し、1本のビットストリームを生成する。
 ステップS211の処理が終了すると符号化処理が終了する。
  <符号化処理のローカル座標系設定処理の流れ1>
 次に、図15のステップS202において実行されるローカル座標系設定処理について説明する。最初に、方法1-1を適用する場合、すなわち、補間無し方法により頂点法線ベクトルを導出する場合のローカル座標系設定処理の流れの例を、図16のフローチャートを参照して説明する。
 ローカル座標系設定処理が開始されると、頂点法線ベクトル導出部241は、ステップS231において、ベースメッシュを細分化し、分割点を生成する。
 ステップS232において、頂点法線ベクトル導出部241は、その細分化されたベースメッシュの各頂点について、<3.符号化用ローカル座標系>において上述した「補間無し方法」で頂点法線ベクトルを導出する。
 ステップS233において、ローカル座標系設定部242は、ステップS232において導出された頂点法線ベクトルを1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。
 ステップS233の処理が終了すると、ローカル座標系設定処理が終了し、処理は図15に戻る。
  <符号化処理のローカル座標系設定処理の流れ2>
 次に、方法1-2を適用する場合、すなわち、デコーダ選択方法により頂点法線ベクトルを導出する場合のローカル座標系設定処理の流れの例を、図17のフローチャートを参照して説明する。
 ローカル座標系設定処理が開始されると、頂点法線ベクトル導出部241は、ステップS251において、「補間有り方法」で頂点法線ベクトルを導出するか否かを判定(選択)する。
 この選択方法はどのような方法であってもよい。例えば、ベースメッシュのフェイス同士の向き(つまり法線ベクトルの向き)の関係性(向きの差)に基づいて、「補間有り方法」および「補間無し方法」のいずれを選択するかが決定されてもよい。例えば、頂点法線ベクトル導出部241が、処理対象フェイスと周辺フェイスとの向きの差を閾値判定し、その差が閾値より小さい場合(または閾値以下の場合)「補間無し方法」を選択し、そうでない場合「補間有り方法」を選択してもよい。例えば、頂点法線ベクトル導出部241が、処理対象フェイスの法線ベクトルとその処理対象フェイスの各頂点の頂点法線ベクトルとの内積を求め、その内積の最小値を閾値と比較し、内積の最小値の方が小さい場合(または内積の最小値と閾値とが同一である場合)第1の方法を選択し、そうでない場合(内積の方が大きい場合、または、内積の最小値と閾値とが同一である場合)第2の方法を選択してもよい。
 なお、この閾値は、予め定められていてもよいし、可変であってもよい。つまり、エンコーダおよびデコーダが予め共通の閾値を有していてもよいし、エンコーダで適用された閾値がデコーダに伝送されてもよい(デコーダがその閾値を適用してもよい)。
 「補間有り方法」で頂点法線ベクトルを導出すると判定された場合、処理はステップS252へ進む。
 ステップS252において、頂点法線ベクトル導出部241は、ベースメッシュの頂点法線ベクトルを導出する。
 ステップS253において、頂点法線ベクトル導出部241は、ベースメッシュを細分化する。
 ステップS254において、頂点法線ベクトル導出部241は、「補間有り方法」で分割点の頂点法線ベクトルを導出する。ステップS254の処理が終了すると、処理はステップS257へ進む。
 また、ステップS251において、「補間無し方法」で頂点法線ベクトルを導出すると判定された場合、処理はステップS255へ進む。
 ステップS255において、頂点法線ベクトル導出部241は、ベースメッシュを細分化する。
 ステップS256において、頂点法線ベクトル導出部241は、その細分化されたベースメッシュの各頂点について、<3.符号化用ローカル座標系>において上述した「補間無し方法」で頂点法線ベクトルを導出する。ステップS256の処理が終了すると、処理はステップS257へ進む。
 ステップS257において、ローカル座標系設定部242は、以上のように導出された頂点法線ベクトルを1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。
 ステップS257の処理が終了すると、ローカル座標系設定処理が終了し、処理は図15に戻る。
  <符号化処理のローカル座標系設定処理の流れ3>
 次に、方法1-3を適用する場合、すなわち、合成方法により頂点法線ベクトルを導出する場合のローカル座標系設定処理の流れの例を、図18のフローチャートを参照して説明する。
 ローカル座標系設定処理が開始されると、頂点法線ベクトル導出部241は、ステップS271において、ベースメッシュの頂点法線ベクトルを導出する。
 ステップS272において、頂点法線ベクトル導出部241は、ベースメッシュを細分化する。
 ステップS273において、頂点法線ベクトル導出部241は、「補間有り方法」で分割点の頂点法線ベクトルを導出する。つまり、ステップS271乃至ステップS273の処理により、細分化されたベースメッシュの各頂点の頂点法線ベクトルを、「補間有り方法」で導出する。
 ステップS274において、頂点法線ベクトル導出部241は、ステップS272において細分化されたベースメッシュの各頂点について、<3.符号化用ローカル座標系>において上述した「補間無し方法」で頂点法線ベクトルを導出する。
 ステップS275において、頂点法線ベクトル導出部241は、「補間有り方法」で導出された頂点法線ベクトルと、「補間無し方法」で導出された頂点法線ベクトルとを合成し、合成ベクトルを導出する。その際、頂点法線ベクトル導出部241は、「補間有り方法」で導出された頂点法線ベクトルと、「補間無し方法」で導出された頂点法線ベクトルとを、重み付き平均により合成してもよい。この重み付き平均に適用される重み値は、エッジ頂点と非エッジ頂点とで変えてもよい。また、この重み値は、ベースメッシュのフェイス毎に変えてもよいし、エッジ毎に変えてもよいし、頂点毎に変えてもよい。また、この重み値は、予め定められていてもよいし、可変であってもよい。つまり、エンコーダおよびデコーダが予め共通の重み値を有していてもよいし、エンコーダで適用された重み値がデコーダに伝送されてもよい(デコーダがその重み値を適用してもよい)。
 ステップS276において、ローカル座標系設定部242は、以上のように導出された頂点法線ベクトル(合成ベクトル)を1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。
 ステップS276の処理が終了すると、ローカル座標系設定処理が終了し、処理は図15に戻る。
 以上のように各処理を実行することにより、符号化装置200は、符号化効率の低減を抑制することができる。
  <復号装置>
 本技術は、メッシュの符号化データを復号する復号装置に適用することができる。図19は、本技術を適用した情報処理装置の一態様である復号装置の構成の一例を示すブロック図である。図19に示される復号装置300は、メッシュの符号化データを復号する装置である。復号装置300は、非特許文献1に記載のV-DMCと基本的に同様の方法でメッシュの符号化データを復号する。
 ただし、復号装置300は、<3.符号化用ローカル座標系>において上述した方法1を適用してメッシュの符号化データを復号する。また、復号装置300は、上述した方法1-1乃至方法1-3の内の1つ以上を適用してもよい。
 つまり、復号装置300は、図13の符号化装置200に対応する復号装置であり、符号化装置200が生成したビットストリームを復号し、メッシュを再構成し得る。
 なお、図19においては、処理部やデータの流れ等の主なものを示しており、図19に示されるものが全てとは限らない。つまり、復号装置300において、図19においてブロックとして示されていない処理部が存在したり、図19において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
 図19に示されるように、復号装置300は、逆多重化部311、ヘッダ復号部312、ベースメッシュ復号部313、細分化部314、変位ビデオ復号部315、アンパッキング部316、ローカル座標系設定部317、変位ベクトル適用部318、およびアトリビュートビデオ復号部319を有する。
 復号装置300には、メッシュをV-DMC方式で符号化する符号化装置(例えば、符号化装置200)により生成されたビットストリームが供給される。
 逆多重化部311は、そのビットストリームを逆多重化し、そのビットストリームに含まれる各符号化データを抽出する。例えば、逆多重化部311は、ビットストリームからヘッダの符号化データを抽出し、ヘッダ復号部312へ供給する。また、逆多重化部311は、ビットストリームからベースメッシュの符号化データを抽出し、ベースメッシュ復号部313へ供給する。また、逆多重化部311は、ビットストリームから変位ビデオの符号化データを抽出し、変位ビデオ復号部315へ供給する。また、逆多重化部311は、ビットストリームからアトリビュートビデオの符号化データを抽出し、アトリビュートビデオ復号部319へ供給する。
 ヘッダ復号部312は、上述した方法1を適用し、逆多重化部311から供給されたヘッダの符号化データを復号し、ヘッダに格納される情報を生成(復元)する。ヘッダ復号部312は、生成した情報をベースメッシュ復号部313、細分化部314、変位ビデオ復号部315、アンパッキング部316、ローカル座標系設定部317、およびアトリビュートビデオ復号部319へ適宜供給する。例えば、ヘッダ復号部312は、上述した方法1-2を適用し、符号化データを復号して生成した閾値(エンコーダにおいて適用された閾値)をローカル座標系設定部317へ供給してもよい。また、ヘッダ復号部312は、上述した方法1-3を適用し、符号化データを復号して生成した重み値(エンコーダにおいて適用された重み値)をローカル座標系設定部317へ供給してもよい。
 ベースメッシュ復号部313は、逆多重化部311から供給されたベースメッシュの符号化データを復号し、ベースメッシュを生成(復元)する。なお、このベースメッシュの符号化データは、イントラ符号化されていてもよいし、インター符号化されていてもよい。つまり、ベースメッシュ復号部313は、その符号化データをイントラ復号することもできるし、インター復号することもできる。ベースメッシュ復号部313は、上述した方法1を適用してその符号化データを復号する。ベースメッシュ復号部313は、生成したベースメッシュを細分化部314およびローカル座標系設定部317へ供給する。
 細分化部314は、ベースメッシュ復号部313から供給されたベースメッシュを細分化し、その細分化したベースメッシュを変位ベクトル適用部318へ供給する。
 変位ビデオ復号部315は、逆多重化部311から供給された変位ビデオの符号化データを復号し、変位ビデオを生成(復元)する。変位ビデオ復号部315は、上述した方法1を適用してその符号化データを復号する。変位ビデオ復号部315は、生成した変位ビデオ(のカレントフレーム)をアンパッキング部316へ供給する。
 アンパッキング部316は、変位ビデオ復号部315から供給された変位ビデオのカレントフレームからローカル座標(変位ベクトル)をアンパッキングする。その際、アンパッキング部316は、変換係数をアンパッキングし、その変換係数を係数変換(例えばウェーブレット変換)してローカル座標(変位ベクトル)を導出してもよい。また、アンパッキング部316は、量子化係数をアンパッキングし、その量子化係数を逆量子化してローカル座標(変位ベクトル)を導出してもよい。また、アンパッキング部316は、量子化係数をアンパッキングし、その量子化係数を逆量子化して変換係数を導出し、その変換係数を係数変換(例えばウェーブレット変換)してローカル座標(変位ベクトル)を導出してもよい。アンパッキング部316は、アンパッキングしたローカル座標(変位ベクトル)を変位ベクトル適用部318へ供給する。
 ローカル座標系設定部317は、ベースメッシュ復号部313から供給されるベースメッシュを取得し、細分化されたベースメッシュの頂点毎のローカル座標系を設定する。ローカル座標系設定部317は、上述した方法1を適用してローカル座標系を設定する。なお、ローカル座標系設定部317は、上述した方法1-1乃至方法1-3の内の1つ以上を適用してローカル座標系を設定してもよい。なお、ローカル座標系設定部317は、エンコーダ(例えば、符号化装置200のローカル座標系設定部212)が適用した方法と同一の方法でローカル座標系を設定する。ローカル座標系設定部317は、設定したローカル座標系を変位ベクトル適用部318へ供給する。なお、ローカル座標系設定部317は、方法1-2を適用し、ヘッダ復号部312から供給される閾値を用いてデコーダ選択方法により頂点法線ベクトルを導出し、ローカル座標系を設定してもよい。また、ローカル座標系設定部317は、方法1-3を適用し、ヘッダ復号部312から供給される重み値を用いて合成方法により頂点法線ベクトルを導出し、ローカル座標系を設定してもよい。
 変位ベクトル適用部318は、上述した方法1を適用して、細分化部314から供給された、細分化されたベースメッシュの頂点に、アンパッキング部316から供給されたローカル座標(変位ベクトル)を適用し、メッシュを再構成する。つまり、変位ベクトル適用部318は、ローカル座標系設定部317から供給されたローカル座標系を用いて、細分化されたベースメッシュの頂点にローカル座標(変位ベクトル)を適用する。本明細書においてこの再構成されたメッシュを復号メッシュとも称する。すなわち、変位ベクトル適用部318は、復号メッシュを生成するとも言える。変位ベクトル適用部318は、生成した復号メッシュを復号装置300の外部に出力する。
 アトリビュートビデオ復号部319は、逆多重化部311から供給されたアトリビュートビデオの符号化データを復号し、アトリビュートビデオ(のカレントフレーム)を生成する。アトリビュートビデオ復号部319は、生成したアトリビュートビデオのカレントフレーム、すなわち、復号メッシュに対応するアトリビュートマップを復号装置300の外部に出力する。
  <ローカル座標系設定部>
 図20は、ローカル座標系設定部317の主な構成例を示すブロック図である。図20に示されるように、ローカル座標系設定部317は、頂点法線ベクトル導出部341およびローカル座標系設定部342を有する。
 頂点法線ベクトル導出部341は、上述した方法1を適用し、供給されたベースメッシュを細分化し、その細分化されたベースメッシュの頂点の頂点法線ベクトルを導出する。なお、頂点法線ベクトル導出部341は、上述した方法1-1乃至方法1-3の内の1つ以上を適用して頂点法線ベクトルを導出してもよい。例えば、頂点法線ベクトル導出部341は、方法1-1を適用し、補間無し方法により頂点法線ベクトルを導出してもよい。また、頂点法線ベクトル導出部341は、方法1-2を適用し、デコーダ選択方法により頂点法線ベクトルを導出してもよい。その場合、頂点法線ベクトル導出部341は、供給された閾値を適用して頂点法線ベクトルを導出してもよい。また、頂点法線ベクトル導出部341は、方法1-3を適用し、合成方法により頂点法線ベクトルを導出してもよい。その場合、頂点法線ベクトル導出部341は、供給された重み値を適用して頂点法線ベクトルを導出してもよい。頂点法線ベクトル導出部341は、エンコーダ(例えば、符号化装置200の頂点法線ベクトル導出部241)が適用した方法と同一の方法で頂点法線ベクトルを導出する。頂点法線ベクトル導出部341は、導出した頂点法線ベクトルをローカル座標系設定部342へ供給する。
 ローカル座標系設定部342は、上述した方法1を適用し、頂点法線ベクトル導出部341から供給される頂点法線ベクトルを基準とするローカル座標系を設定する。例えば、ローカル座標系設定部342は、頂点法線ベクトルを1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。ローカル座標系設定部342は、各頂点法線ベクトルに対してローカル座標系を設定する。ローカル座標系設定部342は、設定したローカル座標系を変位ベクトル適用部318へ供給する。
 このような構成を有することにより、復号装置300は、符号化効率の低減を抑制することができる。
  <復号処理の流れ>
 この復号装置300により実行される復号処理の流れの例を、図21のフローチャートを参照して説明する。
 復号処理が開始されると、逆多重化部311は、ステップS301において、ビットストリームを逆多重化し、各種符号化データを抽出する。
 ステップS302において、ヘッダ復号部312は、上述した方法1を適用し、ステップS301において抽出されたヘッダの符号化データを復号し、ヘッダに格納される情報を生成(復元)する。
 ステップS303において、ベースメッシュ復号部313は、上述した方法1を適用し、ステップS301において抽出されたベースメッシュの符号化データを復号し、ベースメッシュを生成(復元)する。
 ステップS304において、細分化部314は、そのベースメッシュを細分化する。
 ステップS305において、変位ビデオ復号部315は、上述した方法1を適用し、ステップS301において抽出された変位ビデオの符号化データを復号し、変位ビデオ(のカレントフレーム)を生成(復元)する。
 ステップS306において、アンパッキング部316は、そのカレントフレーム(2次元画像)からローカル座標(変位ベクトル)をアンパッキングする。その際、アンパッキング部316は、変換係数をアンパッキングし、その変換係数を係数変換(例えばウェーブレット変換)してローカル座標(変位ベクトル)を導出してもよい。また、アンパッキング部316は、量子化係数をアンパッキングし、その量子化係数を逆量子化してローカル座標(変位ベクトル)を導出してもよい。また、アンパッキング部316は、量子化係数をアンパッキングし、その量子化係数を逆量子化して変換係数を導出し、その変換係数を係数変換(例えばウェーブレット変換)してローカル座標(変位ベクトル)を導出してもよい。
 ステップS307において、ローカル座標系設定部317は、上述した方法1を適用してローカル座標系設定処理を実行し、ローカル座標系を設定する。なお、ローカル座標系設定部317は、上述した方法1-1乃至方法1-3の内の1つ以上を適用してこの処理を実行してもよい。例えば、ローカル座標系設定部317は、方法1-2を適用し、ヘッダ復号部312から供給される閾値を用いてデコーダ選択方法により頂点法線ベクトルを導出し、ローカル座標系を設定してもよい。また、ローカル座標系設定部317は、方法1-3を適用し、ヘッダ復号部312から供給される重み値を用いて合成方法により頂点法線ベクトルを導出し、ローカル座標系を設定してもよい。なお、ローカル座標系設定部317は、エンコーダ(例えば、符号化装置200のローカル座標系設定部212)が適用した方法と同一の方法でローカル座標系を設定する。
 ステップS308において、変位ベクトル適用部318は、上述した方法1を適用し、ステップS307において設定されたローカル座標系を用いて、ステップS304において細分化されたベースメッシュの頂点に、ステップS306においてアンパッキングされたローカル座標(変位ベクトル)を適用し、復号メッシュを生成する。
 ステップS309において、アトリビュートビデオ復号部319は、ステップS301において抽出されたアトリビュートビデオの符号化データを復号し、アトリビュートビデオのカレントフレーム、すなわちアトリビュートマップを生成(復元)する。
 ステップS309の処理が終了すると、復号処理が終了する。
  <復号処理のローカル座標系設定処理の流れ1>
 次に、図21のステップS307において実行されるローカル座標系設定処理について説明する。最初に、方法1-1を適用する場合、すなわち、補間無し方法により頂点法線ベクトルを導出する場合のローカル座標系設定処理の流れの例を、図22のフローチャートを参照して説明する。
 ローカル座標系設定処理が開始されると、頂点法線ベクトル導出部341は、ステップS331において、ベースメッシュを細分化し、分割点を生成する。
 ステップS332において、頂点法線ベクトル導出部341は、その細分化されたベースメッシュの各頂点について、<3.符号化用ローカル座標系>において上述した「補間無し方法」で頂点法線ベクトルを導出する。
 ステップS333において、ローカル座標系設定部342は、ステップS332において導出された頂点法線ベクトルを1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。
 ステップS333の処理が終了すると、ローカル座標系設定処理が終了し、処理は図21に戻る。
  <復号処理のローカル座標系設定処理の流れ2>
 次に、方法1-2を適用する場合、すなわち、デコーダ選択方法により頂点法線ベクトルを導出する場合のローカル座標系設定処理の流れの例を、図23のフローチャートを参照して説明する。
 ローカル座標系設定処理が開始されると、頂点法線ベクトル導出部341は、ステップS351において、「補間有り方法」で頂点法線ベクトルを導出するか否かを判定(選択)する。
 この選択方法は、エンコーダと同一であればどのような方法であってもよい。例えば、ベースメッシュのフェイス同士の向き(つまり法線ベクトルの向き)の関係性(向きの差)に基づいて、「補間有り方法」および「補間無し方法」のいずれを選択するかが決定されてもよい。例えば、頂点法線ベクトル導出部341が、処理対象フェイスと周辺フェイスとの向きの差を閾値判定し、その差が閾値より小さい場合(または閾値以下の場合)「補間無し方法」を選択し、そうでない場合「補間有り方法」を選択してもよい。例えば、頂点法線ベクトル導出部341が、処理対象フェイスの法線ベクトルとその処理対象フェイスの各頂点の頂点法線ベクトルとの内積を求め、その内積の最小値を閾値と比較し、内積の最小値の方が小さい場合(または内積の最小値と閾値とが同一である場合)第1の方法を選択し、そうでない場合(内積の方が大きい場合、または、内積の最小値と閾値とが同一である場合)第2の方法を選択してもよい。
 なお、この閾値は、予め定められていてもよいし、可変であってもよい。つまり、エンコーダおよびデコーダが予め共通の閾値を有していてもよいし、エンコーダで適用された閾値がデコーダに伝送されてもよい(頂点法線ベクトル導出部341がエンコーダから伝送された閾値を適用してもよい)。
 「補間有り方法」で頂点法線ベクトルを導出すると判定された場合、処理はステップS352へ進む。
 ステップS352において、頂点法線ベクトル導出部341は、ベースメッシュの頂点法線ベクトルを導出する。
 ステップS353において、頂点法線ベクトル導出部341は、ベースメッシュを細分化する。
 ステップS354において、頂点法線ベクトル導出部341は、「補間有り方法」で分割点の頂点法線ベクトルを導出する。ステップS354の処理が終了すると、処理はステップS357へ進む。
 また、ステップS351において、「補間無し方法」で頂点法線ベクトルを導出すると判定された場合、処理はステップS355へ進む。
 ステップS355において、頂点法線ベクトル導出部341は、ベースメッシュを細分化する。
 ステップS356において、頂点法線ベクトル導出部341は、その細分化されたベースメッシュの各頂点について、<3.符号化用ローカル座標系>において上述した「補間無し方法」で頂点法線ベクトルを導出する。ステップS356の処理が終了すると、処理はステップS357へ進む。
 ステップS357において、ローカル座標系設定部342は、以上のように導出された頂点法線ベクトルを1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。
 ステップS357の処理が終了すると、ローカル座標系設定処理が終了し、処理は図21に戻る。
  <復号処理のローカル座標系設定処理の流れ3>
 次に、方法1-3を適用する場合、すなわち、合成方法により頂点法線ベクトルを導出する場合のローカル座標系設定処理の流れの例を、図24のフローチャートを参照して説明する。
 ローカル座標系設定処理が開始されると、頂点法線ベクトル導出部341は、ステップS371において、ベースメッシュの頂点法線ベクトルを導出する。
 ステップS372において、頂点法線ベクトル導出部341は、ベースメッシュを細分化する。
 ステップS373において、頂点法線ベクトル導出部341は、「補間有り方法」で分割点の頂点法線ベクトルを導出する。つまり、ステップS371乃至ステップS373の処理により、細分化されたベースメッシュの各頂点の頂点法線ベクトルを、「補間有り方法」で導出する。
 ステップS374において、頂点法線ベクトル導出部341は、ステップS372において細分化されたベースメッシュの各頂点について、<3.符号化用ローカル座標系>において上述した「補間無し方法」で頂点法線ベクトルを導出する。
 ステップS375において、頂点法線ベクトル導出部341は、「補間有り方法」で導出された頂点法線ベクトルと、「補間無し方法」で導出された頂点法線ベクトルとを合成し、合成ベクトルを導出する。その際、頂点法線ベクトル導出部341は、「補間有り方法」で導出された頂点法線ベクトルと、「補間無し方法」で導出された頂点法線ベクトルとを、重み付き平均により合成してもよい。この重み付き平均に適用される重み値は、エッジ頂点と非エッジ頂点とで変えてもよい。また、この重み値は、ベースメッシュのフェイス毎に変えてもよいし、エッジ毎に変えてもよいし、頂点毎に変えてもよい。また、この重み値は、予め定められていてもよいし、可変であってもよい。つまり、エンコーダおよびデコーダが予め共通の重み値を有していてもよいし、エンコーダで適用された重み値がデコーダに伝送されてもよい(頂点法線ベクトル導出部341がエンコーダから伝送された重み値を適用してもよい)。
 ステップS376において、ローカル座標系設定部342は、以上のように導出された頂点法線ベクトル(合成ベクトル)を1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。
 ステップS376の処理が終了すると、ローカル座標系設定処理が終了し、処理は図21に戻る。
 以上のように各処理を実行することにより、復号装置300は、符号化効率の低減を抑制することができる。
  <方法1―4の適用>
   <符号化装置のローカル座標設定部>
 符号化装置200は、上述した方法1-4を適用することができる。つまり、符号化装置200は、「フラグ方法」により頂点法線ベクトルを導出し、その導出した頂点法線ベクトルを用いてローカル座標系を設定し、そのローカル座標系を用いて変位ベクトルのローカル座標を導出してもよい。
 その場合も、符号化装置200は、図13を参照して説明した場合と同様の構成を有する。各処理部は、図13の場合と同様の処理を行う。ただし、ローカル座標系設定部212は、上述した方法1-4を適用し、ローカル座標系を設定する。つまり、ローカル座標系設定部212は、フラグ方法により頂点法線ベクトルを導出し、その導出した頂点法線ベクトルを用いてローカル座標系を設定する。したがって、ローカル座標系設定部212は、その際に適用した導出方法を示す方法指定フラグを生成し、その方法指定フラグをヘッダ符号化部220へ供給し、ヘッダに格納する。ヘッダ符号化部220は、その方法指定フラグを含むヘッダを符号化する。つまり、ヘッダ符号化部220は、方法指定フラグを符号化する。合成部221は、そのヘッダ(方法指定フラグ)の符号化データをビットストリームに格納する。このビットストリームは、任意の伝送路または記憶媒体を介してデコーダへ伝送される。つまり、方法指定フラグは、デコーダへ伝送される。なお、この方法指定フラグは、任意のデータ単位で伝送されてもよい。例えば、オリジナルメッシュのシーケンス毎に方法指定フラグが伝送されてもよいし、フレーム毎に方法指定フラグが伝送されてもよいし、ベースメッシュ毎に方法指定フラグが伝送されてもよいし、ベースメッシュのフェイス毎に方法指定フラグが伝送されてもよいし、ベースメッシュの頂点毎に方法指定フラグが伝送されてもよい。
 この場合の、ローカル座標系設定部212の主な構成例を、図25に示す。図25に示されるように、この場合のローカル座標系設定部212は、図14に示される構成(頂点法線ベクトル導出部241およびローカル座標系設定部242)に加え、導出方法設定部411および方法指定フラグ生成部412を有する。
 導出方法設定部411は、上述した方法1-4を適用し、頂点法線ベクトルの導出方法を設定する。例えば、導出方法設定部411は、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、および「合成方法」を候補とし、これらの中から、いずれか1つを選択し、頂点法線ベクトルの導出方法として適用してもよい。なお、この導出方法の選択はどのような方法で行ってもよい。また、導出方法設定部411は、頂点法線ベクトルの導出方法を任意のデータ単位で設定してもよい。例えば、導出方法設定部411は、頂点法線ベクトルの導出方法を、オリジナルメッシュのシーケンス毎、フレーム毎、ベースメッシュ毎、ベースメッシュのフェイス毎、または、ベースメッシュの頂点毎に設定してもよい。導出方法設定部411は、設定した導出方法を頂点法線ベクトル導出部241および方法指定フラグ生成部412へ通知する。
 頂点法線ベクトル導出部241は、導出方法設定部411により設定された導出方法で頂点法線ベクトルを導出する。例えば、頂点法線ベクトル導出部241は、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、または「合成方法」を適用して頂点法線ベクトルを導出してもよい。各導出方法は上述した通りである。
 頂点法線ベクトル導出部241は、導出した頂点法線ベクトルをローカル座標系設定部242へ供給する。ローカル座標系設定部242は、図14の場合と同様に、その頂点法線ベクトルを用いてローカル座標系を設定する。
 方法指定フラグ生成部412は、導出方法設定部411により設定された導出方法を示すフラグ情報である方法指定フラグを生成する。方法指定フラグ生成部412は、この方法指定フラグを任意のデータ単位で生成してもよい。例えば、方法指定フラグ生成部412は、方法指定フラグを、オリジナルメッシュのシーケンス毎、フレーム毎、ベースメッシュ毎、ベースメッシュのフェイス毎、または、ベースメッシュの頂点毎に生成してもよい。方法指定フラグ生成部412は、生成した方法指定フラグをヘッダ符号化部220へ供給する。
 このような構成を有することにより、符号化装置200は、方法1-4を適用して頂点法線ベクトルを導出することができる。したがって、符号化装置200は、符号化効率の低減を抑制することができる。
   <符号化処理のローカル座標系設定処理の流れ4>
 方法1-4が適用される場合、符号化処理は、図15のフローチャートの場合と同様の流れで実行される。ただし、ステップS202において、ローカル座標系設定部212は、上述した方法1-4を適用してローカル座標系設定処理を実行し、ローカル座標系を設定する。そして、ステップS321において、ヘッダ符号化部220は、ステップS202において生成された方法指定フラグを含むヘッダを符号化する。
 この場合の、ローカル座標系設定処理(ステップS202)の流れの例を、図26のフローチャートを参照して説明する。
 ローカル座標系設定処理が開始されると、導出方法設定部411は、ステップS401において、上述した方法1-4を適用し、頂点法線ベクトルの導出方法を設定する。例えば、導出方法設定部411は、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、および「合成方法」を候補とし、これらの中から、いずれか1つを選択し、頂点法線ベクトルの導出方法として適用してもよい。なお、この導出方法の選択はどのような方法で行ってもよい。また、導出方法設定部411は、頂点法線ベクトルの導出方法を任意のデータ単位で設定してもよい。例えば、導出方法設定部411は、頂点法線ベクトルの導出方法を、オリジナルメッシュのシーケンス毎、フレーム毎、ベースメッシュ毎、ベースメッシュのフェイス毎、または、ベースメッシュの頂点毎に設定してもよい。
 ステップS402において、頂点法線ベクトル導出部241は、ステップS401において設定された導出方法で頂点法線ベクトルを導出する。例えば、頂点法線ベクトル導出部241は、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、または「合成方法」により頂点法線ベクトルを導出してもよい。
 ステップS403において、ローカル座標系設定部242は、ステップS402において導出された頂点法線ベクトルを1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。
 ステップS404において、方法指定フラグ生成部412は、ステップS401において設定された導出方法を示す方法指定フラグを生成する。
 ステップS404の処理が終了すると、ローカル座標系設定処理が終了し、処理は図15に戻る。
 以上のように各処理を実行することにより、符号化装置200は、方法1-4を適用して頂点法線ベクトルを導出することができる。したがって、符号化装置200は、符号化効率の低減を抑制することができる。
   <復号装置のローカル座標設定部>
 同様に、復号装置300も、上述した方法1-4を適用することができる。つまり、復号装置300は、「フラグ方法」により頂点法線ベクトルを導出し、その導出した頂点法線ベクトルを用いてローカル座標系を設定し、そのローカル座標系を用いて変位ベクトルのローカル座標を導出してもよい。つまり、復号装置300は、エンコーダから伝送される方法指定フラグに基づいて頂点法線ベクトルの導出方法を設定し、その導出方法で頂点法線ベクトルを導出し、その導出した頂点法線ベクトルを用いてローカル座標系を設定し、そのローカル座標系を用いて変位ベクトルのローカル座標を導出してもよい。
 その場合も、復号装置300は、図19を参照して説明した場合と同様の構成を有する。各処理部は、図19の場合と同様の処理を行う。ただし、ヘッダ復号部312は、方法指定フラグを含むヘッダの符号化データを復号し、エンコーダから伝送された方法指定フラグを生成(復元)する。そして、ヘッダ復号部312は、その生成(復元)した方法指定フラグをローカル座標系設定部317へ供給する。
 ローカル座標系設定部317は、上述した方法1-4を適用し、ローカル座標系を設定する。つまり、ローカル座標系設定部317は、「フラグ方法」により頂点法線ベクトルを導出し、その導出した頂点法線ベクトルを用いてローカル座標系を設定する。つまり、ローカル座標系設定部317は、ヘッダ復号部312から供給された方法指定フラグ(エンコーダから伝送された方法指定フラグ)に基づいて頂点法線ベクトルの導出方法を設定し、その導出方法により頂点法線ベクトルを導出し、その導出した頂点法線ベクトルを用いてローカル座標系を設定する。
 なお、この方法指定フラグは、任意のデータ単位で伝送されてもよい。例えば、オリジナルメッシュのシーケンス毎に方法指定フラグが伝送されてもよいし、フレーム毎に方法指定フラグが伝送されてもよいし、ベースメッシュ毎に方法指定フラグが伝送されてもよいし、ベースメッシュのフェイス毎に方法指定フラグが伝送されてもよいし、ベースメッシュの頂点毎に方法指定フラグが伝送されてもよい。
 この場合の、ローカル座標系設定部317の主な構成例を、図27に示す。図27に示されるように、この場合のローカル座標系設定部317は、図20に示される構成(頂点法線ベクトル導出部241およびローカル座標系設定部242)に加え、導出方法設定部421を有する。
 導出方法設定部421は、上述した方法1-4を適用し、頂点法線ベクトルの導出方法を設定する。例えば、導出方法設定部421は、ヘッダ復号部312から供給される方法指定フラグを取得する。導出方法設定部421は、その方法指定フラグにより示される導出方法を、頂点法線ベクトルの導出方法として設定する。導出方法設定部421は、その設定した導出方法を頂点法線ベクトル導出部341へ供給する。なお、導出方法設定部421は、必要に応じてその他のパラメータ(例えば、エンコーダから伝送された閾値や重み値等)を取得し、頂点法線ベクトル導出部341へ供給してもよい。
 頂点法線ベクトル導出部341は、導出方法設定部421により設定された導出方法で頂点法線ベクトルを導出する。例えば、頂点法線ベクトル導出部341は、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、または「合成方法」を適用して頂点法線ベクトルを導出してもよい。各導出方法は上述した通りである。
 頂点法線ベクトル導出部341は、導出した頂点法線ベクトルをローカル座標系設定部342へ供給する。ローカル座標系設定部342は、図20の場合と同様に、その頂点法線ベクトルを用いてローカル座標系を設定し、そのローカル座標系を変位ベクトル適用部318へ供給する。
 このような構成を有することにより、復号装置300は、方法1-4を適用して頂点法線ベクトルを導出することができる。したがって、復号装置300は、符号化効率の低減を抑制することができる。
   <復号処理のローカル座標系設定処理の流れ4>
 方法1-4が適用される場合、復号処理は、図21のフローチャートの場合と同様の流れで実行される。ただし、ステップS302において、ヘッダ復号部312は、エンコーダから伝送された方法指定フラグ等を含むヘッダの符号化データを復号する。つまり、エンコーダから伝送された方法指定フラグが生成(復元)される。
 そして、ステップS307において、ローカル座標系設定部317は、上述した方法1-4を適用してローカル座標系設定処理を実行し、ローカル座標系を設定する。
 この場合の、ローカル座標系設定処理(ステップS307)の流れの例を、図28のフローチャートを参照して説明する。
 ローカル座標系設定処理が開始されると、導出方法設定部421は、ステップS421において、上述した方法1-4を適用し、頂点法線ベクトルの導出方法を設定する。例えば、導出方法設定部421は、エンコーダから伝送された方法指定フラグに基づいて頂点法線ベクトルの導出方法を設定する。例えば、導出方法設定部421は、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、および「合成方法」の内、方法指定フラグにより指定される方法を選択し、頂点法線ベクトルの導出方法として適用してもよい。なお、この導出方法の選択はどのような方法で行ってもよい。また、導出方法設定部411は、頂点法線ベクトルの導出方法を任意のデータ単位で設定してもよい。例えば、導出方法設定部411は、頂点法線ベクトルの導出方法を、オリジナルメッシュのシーケンス毎、フレーム毎、ベースメッシュ毎、ベースメッシュのフェイス毎、または、ベースメッシュの頂点毎に設定してもよい。
 ステップS422において、頂点法線ベクトル導出部341は、ステップS421において設定された導出方法で頂点法線ベクトルを導出する。例えば、頂点法線ベクトル導出部341は、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、または「合成方法」により頂点法線ベクトルを導出してもよい。
 ステップS423において、ローカル座標系設定部342は、ステップS422において導出された頂点法線ベクトルを1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。
 ステップS423の処理が終了すると、ローカル座標系設定処理が終了し、処理は図21に戻る。
 以上のように各処理を実行することにより、復号装置300は、方法1-4を適用して頂点法線ベクトルを導出することができる。したがって、復号装置300は、符号化効率の低減を抑制することができる。
  <方法1―5の適用>
   <符号化装置のローカル座標設定部>
 符号化装置200は、上述した方法1-5を適用してもよい。つまり、符号化装置200は、導出された頂点法線ベクトルを、予め用意された頂点法線ベクトルの候補を用いてクラスタリングしてもよい。
 その場合も、符号化装置200は、図13を参照して説明した場合と同様の構成を有する。各処理部は、図13の場合と同様の処理を行う。ただし、ローカル座標系設定部212は、上述した方法1-5を適用し、ローカル座標系を設定する。つまり、ローカル座標系設定部212は、導出された頂点法線ベクトルを、予め用意された頂点法線ベクトルの候補を用いてクラスタリングする。
 この場合の、ローカル座標系設定部212の主な構成例を、図29に示す。図29に示されるように、この場合のローカル座標系設定部212は、図14に示される頂点法線ベクトル導出部241およびローカル座標系設定部242の間に、頂点法線ベクトルクラスタリング部431を有する。
 頂点法線ベクトル導出部241は、頂点法線ベクトルを導出する。この導出方法は、どのような方法であってもよい。例えば、頂点法線ベクトル導出部241は、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、または「合成方法」を適用して頂点法線ベクトルを導出してもよい。各導出方法は上述した通りである。頂点法線ベクトル導出部241は、導出した頂点法線ベクトルを頂点法線ベクトルクラスタリング部431へ供給する。また、頂点法線ベクトル導出部241は、必要に応じて、頂点法線ベクトルの導出に適用された閾値や重み値等のパラメータをヘッダ符号化部220へ供給し、ヘッダに格納して符号化させる。
 頂点法線ベクトルクラスタリング部431は、頂点法線ベクトル導出部241から供給された頂点法線ベクトルをクラスタリングする。例えば、頂点法線ベクトルクラスタリング部431は、予め用意された所定の法線ベクトルの候補でクラスタリングする。頂点法線ベクトルクラスタリング部431は、そのクラスタリングにより、導出された頂点法線ベクトルと置き換えられた頂点法線ベクトルを、ローカル座標系設定部242へ供給する。
 このような構成を有することにより、符号化装置200は、方法1-5を適用してローカル座標系の向きを予め用意された候補の向きに限定することができる。したがって、符号化装置200は、符号化効率の低減を抑制することができる。
   <符号化処理のローカル座標系設定処理の流れ5>
 方法1-5が適用される場合、符号化処理は、図15のフローチャートの場合と同様の流れで実行される。ただし、ステップS202において、ローカル座標系設定部212は、上述した方法1-5を適用してローカル座標系設定処理を実行し、ローカル座標系を設定する。つまり、ローカル座標系設定部212は、ローカル座標系の向きを予め用意された候補の向きに限定する。
 この場合の、ローカル座標系設定処理(ステップS202)の流れの例を、図30のフローチャートを参照して説明する。
 ローカル座標系設定処理が開始されると頂点法線ベクトル導出部241は、ステップS441において、頂点法線ベクトルを導出する。この導出方法は、どのような方法であってもよい。例えば、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、または「合成方法」が適用されてもよい。
 ステップS442において、頂点法線ベクトルクラスタリング部431は、ステップS441において導出された頂点法線ベクトルをクラスタリングする。例えば、頂点法線ベクトルクラスタリング部431は、予め用意された所定の法線ベクトルの候補でクラスタリングする。
 ステップS443において、ローカル座標系設定部242は、ステップS442においてクラスタリングされた頂点法線ベクトル(選択された候補)を1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。
 ステップS443の処理が終了すると、ローカル座標系設定処理が終了し、処理は図15に戻る。
 以上のように各処理を実行することにより、符号化装置200は、方法1-5を適用して頂点法線ベクトルを導出することができる。したがって、符号化装置200は、符号化効率の低減を抑制することができる。
   <方法1-4との併用>
 なお、以上においては、方法1-1乃至方法1-3を適用可能な符号化装置200において、方法1―5を適用する場合について説明したが、方法1-4を適用可能な符号化装置200に方法1―5を適用してもよい。その場合、図25の構成例のローカル座標系設定部212において、頂点法線ベクトル導出部241とローカル座標系設定部242との間に、上述した頂点法線ベクトルクラスタリング部431を設ければよい。つまり、この場合も、頂点法線ベクトルクラスタリング部431は、頂点法線ベクトル導出部241において導出された頂点法線ベクトルをクラスタリングし、クラスタリングされた頂点法線ベクトルをローカル座標系設定部242へ供給する。
 このような構成を有することにより、符号化装置200は、方法1-5を適用して頂点法線ベクトルを導出することができる。したがって、符号化装置200は、符号化効率の低減を抑制することができる。
 また、その場合、図26の例のローカル座標系設定処理において、ステップS402とステップS403との間において、上述のステップS442の処理を実行すればよい。
 このように各処理を実行することにより、符号化装置200は、方法1-5を適用して頂点法線ベクトルを導出することができる。したがって、符号化装置200は、符号化効率の低減を抑制することができる。
   <復号装置のローカル座標設定部>
 同様に、復号装置300も、上述した方法1-5を適用することができる。つまり、復号装置300は、導出された頂点法線ベクトルを、予め用意された頂点法線ベクトルの候補を用いてクラスタリングしてもよい。
 その場合も、復号装置300は、図19を参照して説明した場合と同様の構成を有する。各処理部は、図19の場合と同様の処理を行う。ただし、ローカル座標系設定部317は、上述した方法1-5を適用し、ローカル座標系を設定する。つまり、ローカル座標系設定部317は、導出された頂点法線ベクトルを、予め用意された頂点法線ベクトルの候補を用いてクラスタリングする。
 この場合の、ローカル座標系設定部317の主な構成例を、図31に示す。図31に示されるように、この場合のローカル座標系設定部317は、図20に示される頂点法線ベクトル導出部341およびローカル座標系設定部342の間に、頂点法線ベクトルクラスタリング部441を有する。
 頂点法線ベクトル導出部341は、頂点法線ベクトルを導出する。この導出方法は、どのような方法であってもよい。例えば、頂点法線ベクトル導出部341は、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、または「合成方法」を適用して頂点法線ベクトルを導出してもよい。各導出方法は上述した通りである。頂点法線ベクトル導出部341は、導出した頂点法線ベクトルを頂点法線ベクトルクラスタリング部441へ供給する。また、頂点法線ベクトル導出部341は、必要に応じて、エンコーダから供給された閾値や重み値等のパラメータを取得し、頂点法線ベクトルの導出に利用してもよい。
 頂点法線ベクトルクラスタリング部441は、頂点法線ベクトル導出部341から供給された頂点法線ベクトルをクラスタリングする。例えば、頂点法線ベクトルクラスタリング部441は、予め用意された所定の法線ベクトルの候補でクラスタリングする。頂点法線ベクトルクラスタリング部441は、そのクラスタリングにより、導出された頂点法線ベクトルと置き換えられた頂点法線ベクトルを、ローカル座標系設定部342へ供給する。
 このような構成を有することにより、復号装置300は、方法1-5を適用してローカル座標系の向きを予め用意された候補の向きに限定することができる。したがって、復号装置300は、符号化効率の低減を抑制することができる。
   <復号処理のローカル座標系設定処理の流れ5>
 方法1-5が適用される場合、復号処理は、図21のフローチャートの場合と同様の流れで実行される。ただし、ステップS307において、ローカル座標系設定部317は、上述した方法1-5を適用してローカル座標系設定処理を実行し、ローカル座標系を設定する。つまり、ローカル座標系設定部317は、ローカル座標系の向きを予め用意された候補の向きに限定する。
 この場合の、ローカル座標系設定処理(ステップS307)の流れの例を、図32のフローチャートを参照して説明する。
 ローカル座標系設定処理が開始されると頂点法線ベクトル導出部341は、ステップS461において、頂点法線ベクトルを導出する。この導出方法は、どのような方法であってもよい。例えば、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、または「合成方法」が適用されてもよい。
 ステップS462において、頂点法線ベクトルクラスタリング部441は、ステップS461において導出された頂点法線ベクトルをクラスタリングする。例えば、頂点法線ベクトルクラスタリング部441は、予め用意された所定の法線ベクトルの候補でクラスタリングする。
 ステップS463において、ローカル座標系設定部342は、ステップS462においてクラスタリングされた頂点法線ベクトル(選択された候補)を1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。
 ステップS463の処理が終了すると、ローカル座標系設定処理が終了し、処理は図21に戻る。
 以上のように各処理を実行することにより、復号装置300は、方法1-5を適用して頂点法線ベクトルを導出することができる。したがって、復号装置300は、符号化効率の低減を抑制することができる。
   <方法1-4との併用>
 なお、以上においては、方法1-1乃至方法1-3を適用可能な復号装置300において、方法1-5を適用する場合について説明したが、方法1-4を適用可能な復号装置300に方法1-5を適用してもよい。その場合、図27の構成例のローカル座標系設定部317において、頂点法線ベクトル導出部341とローカル座標系設定部342との間に、上述した頂点法線ベクトルクラスタリング部441を設ければよい。つまり、この場合も、頂点法線ベクトルクラスタリング部441は、頂点法線ベクトル導出部341において導出された頂点法線ベクトルをクラスタリングし、クラスタリングされた頂点法線ベクトルをローカル座標系設定部342へ供給する。
 このような構成を有することにより、復号装置300は、方法1-5を適用して頂点法線ベクトルを導出することができる。したがって、復号装置300は、符号化効率の低減を抑制することができる。
 また、その場合、図28の例のローカル座標系設定処理において、ステップS422とステップS423との間において、上述のステップS462の処理を実行すればよい。
 このように各処理を実行することにより、復号装置300は、方法1-5を適用して頂点法線ベクトルを導出することができる。したがって、復号装置300は、符号化効率の低減を抑制することができる。
  <方法1―6の適用>
   <符号化装置のローカル座標設定部>
 符号化装置200は、上述した方法1-6を適用してもよい。つまり、符号化装置200は、導出された頂点法線ベクトル(の向き)を量子化してもよい。
 その場合も、符号化装置200は、図13を参照して説明した場合と同様の構成を有する。各処理部は、図13の場合と同様の処理を行う。ただし、ローカル座標系設定部212は、上述した方法1-6を適用し、ローカル座標系を設定する。つまり、ローカル座標系設定部212は、例えば図12を参照して説明したように、導出された頂点法線ベクトル(の向き)を量子化する。
 この場合の、ローカル座標系設定部212の主な構成例を、図33に示す。図33に示されるように、この場合のローカル座標系設定部212は、図14に示される頂点法線ベクトル導出部241およびローカル座標系設定部242の間に、頂点法線ベクトル量子化部451を有する。
 頂点法線ベクトル導出部241は、頂点法線ベクトルを導出する。この導出方法は、どのような方法であってもよい。例えば、頂点法線ベクトル導出部241は、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、または「合成方法」を適用して頂点法線ベクトルを導出してもよい。各導出方法は上述した通りである。頂点法線ベクトル導出部241は、導出した頂点法線ベクトルを頂点法線ベクトル量子化部451へ供給する。
また、頂点法線ベクトル導出部241は、必要に応じて、頂点法線ベクトルの導出に適用された閾値や重み値等のパラメータをヘッダ符号化部220へ供給し、ヘッダに格納して符号化させる。
 頂点法線ベクトル量子化部451は、頂点法線ベクトル導出部241から供給された頂点法線ベクトル(の向き)を量子化する。この量子化により、頂点法線ベクトルの向きが制限される。つまり、各頂点法線ベクトルの向きのばらつきの増大を抑制することができる。換言するに、この量子化により、ローカル座標系の向きが補正され、制限される。つまり、ローカル座標系の向きのばらつきの増大を抑制することができる。頂点法線ベクトル量子化部451は、その量子化により向きが補正された頂点法線ベクトルを、ローカル座標系設定部242へ供給する。
 このような構成を有することにより、符号化装置200は、方法1-6を適用してローカル座標系の向きを制限することができる。したがって、符号化装置200は、符号化効率の低減を抑制することができる。
   <符号化処理のローカル座標系設定処理の流れ6>
 方法1-6が適用される場合、符号化処理は、図15のフローチャートの場合と同様の流れで実行される。ただし、ステップS202において、ローカル座標系設定部212は、上述した方法1-6を適用してローカル座標系設定処理を実行し、ローカル座標系を設定する。つまり、ローカル座標系設定部212は、ローカル座標系の向きを予め用意された候補の向きに限定する。
 この場合の、ローカル座標系設定処理(ステップS202)の流れの例を、図34のフローチャートを参照して説明する。
 ローカル座標系設定処理が開始されると頂点法線ベクトル導出部241は、ステップS481において、頂点法線ベクトルを導出する。この導出方法は、どのような方法であってもよい。例えば、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、または「合成方法」が適用されてもよい。
 ステップS482において、頂点法線ベクトル量子化部451は、ステップS481において導出された頂点法線ベクトル(の向き)を量子化する。
 ステップS483において、ローカル座標系設定部242は、ステップS482において量子化された頂点法線ベクトルを1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。
 ステップS483の処理が終了すると、ローカル座標系設定処理が終了し、処理は図15に戻る。
 以上のように各処理を実行することにより、符号化装置200は、方法1-6を適用して頂点法線ベクトルを導出することができる。したがって、符号化装置200は、符号化効率の低減を抑制することができる。
   <方法1-4との併用>
 なお、以上においては、方法1-1乃至方法1-3を適用可能な符号化装置200において、方法1―6を適用する場合について説明したが、方法1-4を適用可能な符号化装置200に方法1―6を適用してもよい。その場合、図25の構成例のローカル座標系設定部212において、頂点法線ベクトル導出部241とローカル座標系設定部242との間に、上述した頂点法線ベクトル量子化部451を設ければよい。つまり、この場合も、頂点法線ベクトル量子化部451は、頂点法線ベクトル導出部241において導出された頂点法線ベクトル(の向き)を量子化し、量子化された頂点法線ベクトルをローカル座標系設定部242へ供給する。
 このような構成を有することにより、符号化装置200は、方法1-6を適用して頂点法線ベクトルを導出することができる。したがって、符号化装置200は、符号化効率の低減を抑制することができる。
 また、その場合、図26の例のローカル座標系設定処理において、ステップS402とステップS403との間において、上述のステップS482の処理を実行すればよい。
 このように各処理を実行することにより、符号化装置200は、方法1-6を適用して頂点法線ベクトルを導出することができる。したがって、符号化装置200は、符号化効率の低減を抑制することができる。
   <復号装置のローカル座標設定部>
 同様に、復号装置300も、上述した方法1-6を適用することができる。つまり、復号装置300は、導出された頂点法線ベクトル(の向き)を量子化してもよい。
 その場合も、復号装置300は、図19を参照して説明した場合と同様の構成を有する。各処理部は、図19の場合と同様の処理を行う。ただし、ローカル座標系設定部317は、上述した方法1-6を適用し、ローカル座標系を設定する。つまり、ローカル座標系設定部317は、導出された頂点法線ベクトル(の向き)を量子化する。
 この場合の、ローカル座標系設定部317の主な構成例を、図35に示す。図35に示されるように、この場合のローカル座標系設定部317は、図20に示される頂点法線ベクトル導出部341およびローカル座標系設定部342の間に、頂点法線ベクトル量子化部461を有する。
 頂点法線ベクトル導出部341は、頂点法線ベクトルを導出する。この導出方法は、どのような方法であってもよい。例えば、頂点法線ベクトル導出部341は、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、または「合成方法」を適用して頂点法線ベクトルを導出してもよい。各導出方法は上述した通りである。頂点法線ベクトル導出部341は、導出した頂点法線ベクトルを頂点法線ベクトル量子化部461へ供給する。
また、頂点法線ベクトル導出部341は、必要に応じて、エンコーダから供給された閾値や重み値等のパラメータを取得し、頂点法線ベクトルの導出に利用してもよい。
 頂点法線ベクトル量子化部461は、頂点法線ベクトル導出部341から供給された頂点法線ベクトル(の向き)を量子化する。頂点法線ベクトル量子化部461は、その量子化により、導出された頂点法線ベクトル(の向き)を補正する。この量子化により、頂点法線ベクトルの向きが制限される。つまり、各頂点法線ベクトルの向きのばらつきの増大を抑制することができる。換言するに、この量子化により、ローカル座標系の向きが補正され、制限される。つまり、ローカル座標系の向きのばらつきの増大を抑制することができる。頂点法線ベクトル量子化部461は、その量子化された頂点法線ベクトルを、ローカル座標系設定部342へ供給する。
 このような構成を有することにより、復号装置300は、方法1-6を適用してローカル座標系の向きを制限することができる。したがって、復号装置300は、符号化効率の低減を抑制することができる。
   <復号処理のローカル座標系設定処理の流れ6>
 方法1-6が適用される場合、復号処理は、図21のフローチャートの場合と同様の流れで実行される。ただし、ステップS307において、ローカル座標系設定部317は、上述した方法1-6を適用してローカル座標系設定処理を実行し、ローカル座標系を設定する。つまり、ローカル座標系設定部317は、ローカル座標系の向きを制限することができる。
 この場合の、ローカル座標系設定処理(ステップS307)の流れの例を、図36のフローチャートを参照して説明する。
 ローカル座標系設定処理が開始されると頂点法線ベクトル導出部341は、ステップS501において、頂点法線ベクトルを導出する。この導出方法は、どのような方法であってもよい。例えば、「補間有り方法」、「補間無し方法」、「デコーダ選択方法」、または「合成方法」が適用されてもよい。
 ステップS502において、頂点法線ベクトル量子化部461は、ステップS501において導出された頂点法線ベクトル(の向き)を量子化する。
 ステップS503において、ローカル座標系設定部342は、ステップS502において量子化された頂点法線ベクトルを1つの座標軸とし、その頂点法線ベクトルに垂直な2つの座標軸(Bi-tangent, tangentおよびBi-tangent)を設定することにより、直交座標系のローカル座標系を設定する。
 ステップS503の処理が終了すると、ローカル座標系設定処理が終了し、処理は図21に戻る。
 以上のように各処理を実行することにより、復号装置300は、方法1-6を適用して頂点法線ベクトルを導出することができる。したがって、復号装置300は、符号化効率の低減を抑制することができる。
   <方法1-4との併用>
 なお、以上においては、方法1-1乃至方法1-3を適用可能な復号装置300において、方法1-6を適用する場合について説明したが、方法1-4を適用可能な復号装置300に方法1-6を適用してもよい。その場合、図27の構成例のローカル座標系設定部317において、頂点法線ベクトル導出部341とローカル座標系設定部342との間に、上述した頂点法線ベクトル量子化部461を設ければよい。つまり、この場合も、頂点法線ベクトル量子化部461は、頂点法線ベクトル導出部341において導出された頂点法線ベクトル(の向き)を量子化し、その量子化された頂点法線ベクトルをローカル座標系設定部342へ供給する。
 このような構成を有することにより、復号装置300は、方法1-6を適用して頂点法線ベクトルを導出することができる。したがって、復号装置300は、符号化効率の低減を抑制することができる。
 また、その場合、図28の例のローカル座標系設定処理において、ステップS422とステップS423との間において、上述のステップS502の処理を実行すればよい。
 このように各処理を実行することにより、復号装置300は、方法1-6を適用して頂点法線ベクトルを導出することができる。したがって、復号装置300は、符号化効率の低減を抑制することができる。
 <5.付記>
  <コンピュータ>
 上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
 図37は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 図37に示されるコンピュータ900において、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903は、バス904を介して相互に接続されている。
 バス904にはまた、入出力インタフェース910も接続されている。入出力インタフェース910には、入力部911、出力部912、記憶部913、通信部914、およびドライブ915が接続されている。
 入力部911は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部912は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部913は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部914は、例えば、ネットワークインタフェースよりなる。ドライブ915は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア921を駆動する。
 以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部913に記憶されているプログラムを、入出力インタフェース910およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
 コンピュータが実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。
 また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。
 その他、このプログラムは、ROM902や記憶部913に、あらかじめインストールしておくこともできる。
  <本技術の適用対象>
 本技術は、任意の構成に適用することができる。例えば、本技術は、様々な電子機器に適用され得る。
 また、例えば、本技術は、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、または、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等、装置の一部の構成として実施することもできる。
 また、例えば、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、本技術を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングとして実施するようにしてもよい。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスにおいて本技術を実施するようにしてもよい。
 なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
  <本技術を適用可能な分野・用途>
 本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
  <その他>
 なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
 また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連付けられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
 なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
 また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
 また、例えば、上述したプログラムは、任意の装置において実行されるようにしてもよい。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
 また、例えば、1つのフローチャートの各ステップを、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。さらに、1つのステップに複数の処理が含まれる場合、その複数の処理を、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
 また、例えば、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
 また、例えば、本技術に関する複数の技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
 なお、本技術は以下のような構成も取ることができる。
 (1) 細分化されたベースメッシュの頂点の法線ベクトルである頂点法線ベクトルの導出方法を設定する導出方法設定部と、
 設定された前記導出方法で前記頂点法線ベクトルを導出する頂点法線ベクトル導出部と、
 前記頂点法線ベクトルに対応するローカル座標系において変位ベクトルを表すローカル座標を導出するローカル座標導出部と、
 前記変位ベクトルとして前記ローカル座標が格納された2D画像をフレームとする変位ビデオを符号化する変位ビデオ符号化部と、
 設定された前記導出方法を指定する方法指定フラグを生成する方法指定フラグ生成部と、
 前記方法指定フラグを符号化する方法指定フラグ符号化部と
 を備え、
 前記ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから前記頂点を間引くことにより生成される、前記オリジナルメッシュよりも粗いメッシュであり、
 前記変位ベクトルは、前記細分化されたベースメッシュの頂点と前記オリジナルメッシュの前記頂点との間の位置の差であり、
 前記ローカル座標系は、前記頂点法線ベクトルに基づいて設定される、前記細分化されたベースメッシュの頂点毎の座標系である
 情報処理装置。
 (2) 前記導出方法設定部は、
  前記細分化されたベースメッシュの処理対象の頂点である処理対象点の位置に応じた重みづけを行って、前記処理対象点の周辺のフェイスの法線ベクトルを用いて前記処理対象点の前記頂点法線ベクトルを導出する第1の方法、
  前記重みづけを行わずに前記周辺のフェイスの法線ベクトルを用いて前記処理対象点の前記頂点法線ベクトルを導出する第2の方法、
  前記第1の方法および前記第2の方法のいずれを適用するかをデコーダに選択させる第3の方法、
  並びに、前記第1の方法を適用して導出した前記頂点法線ベクトルと前記第2の方法を適用して導出した前記頂点法線ベクトルとを合成する第4の方法
 の中からいずれか1つを選択し、前記導出方法として設定する
 (1)に記載の情報処理装置。
 (3) 前記頂点法線ベクトル導出部は、前記第3の方法が選択された場合、前記デコーダと同一の方法で、前記第1の方法または前記第2の方法を選択し、選択した方法を適用して前記頂点法線ベクトルを導出する
 (2)に記載の情報処理装置。
 (4) 前記頂点法線ベクトル導出部は、前記ベースメッシュのフェイス毎に、処理対象フェイスと周辺フェイスとの向きの差に基づいて、前記第1の方法または前記第2の方法を選択する
 (3)に記載の情報処理装置。
 (5) 前記頂点法線ベクトル導出部は、前記処理対象フェイスの法線ベクトルと前記処理対象フェイスの各頂点の前記頂点法線ベクトルとの内積を求め、前記内積の最小値を閾値と比較し、前記内積の方が小さい場合前記第1の方法を選択し、前記内積の方が大きい場合前記第2の方法を選択する
 (4)に記載の情報処理装置。
 (6) 前記方法指定フラグ符号化部は、さらに、前記閾値を符号化する
 (5)に記載の情報処理装置。
 (7) 前記頂点法線ベクトル導出部は、前記第4の方法が選択された場合、
  前記第1の方法を適用して第1の前記頂点法線ベクトルを導出し、
  前記第2の方法を適用して第2の前記頂点法線ベクトルを導出し、
  導出した前記第1の頂点法線ベクトルおよび前記第2の頂点法線ベクトルを、重み付き平均により合成する
 (2)乃至(6)のいずれかに記載の情報処理装置。
 (8) 前記頂点法線ベクトル導出部は、
  前記ベースメッシュのフェイスのエッジ上に位置する頂点に対応する前記第1の頂点法線ベクトルおよび前記第2の頂点法線ベクトルを、第1の重み値を用いた前記重み付き平均により合成し、
  前記エッジ上でない場所に位置する頂点に対応する前記第1の頂点法線ベクトルおよび前記第2の頂点法線ベクトルを、前記第1の重み値と異なる第2の重み値を用いた前記重み付き平均により合成する
 (7)に記載の情報処理装置。
 (9) 前記方法指定フラグ符号化部は、さらに、前記重み付き平均に用いられる重み値を符号化する
 (7)または(8)に記載の情報処理装置。
 (10) 前記導出方法設定部は、前記導出方法を、前記オリジナルメッシュのシーケンス毎、フレーム毎、前記ベースメッシュ毎、前記ベースメッシュのフェイス毎、または、前記ベースメッシュの頂点毎に設定する
 (1)乃至(9)のいずれかに記載の情報処理装置。
 (11) 導出された前記頂点法線ベクトルを、予め用意された所定の法線ベクトルの候補でクラスタリングするクラスタリング部をさらに備える
 (1)乃至(10)のいずれかに記載の情報処理装置。
 (12) 導出された前記頂点法線ベクトルを量子化する量子化部をさらに備える
 (1)乃至(11)のいずれかに記載の情報処理装置。
 (13) 細分化されたベースメッシュの頂点の法線ベクトルである頂点法線ベクトルの導出方法を設定し、
 設定された前記導出方法で前記頂点法線ベクトルを導出し、
 前記頂点法線ベクトルに対応するローカル座標系において変位ベクトルを表すローカル座標を導出し、
 前記変位ベクトルとして前記ローカル座標が格納された2D画像をフレームとする変位ビデオを符号化し、
 設定された前記導出方法を指定する方法指定フラグを生成し、
 前記方法指定フラグを符号化し、
 前記ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから前記頂点を間引くことにより生成される、前記オリジナルメッシュよりも粗いメッシュであり、
 前記変位ベクトルは、前記細分化されたベースメッシュの頂点と前記オリジナルメッシュの前記頂点との間の位置の差であり、
 前記ローカル座標系は、前記頂点法線ベクトルに基づいて設定される、前記細分化されたベースメッシュの頂点毎の座標系である
 情報処理方法。
 (21) ベースメッシュの符号化データを復号するベースメッシュ復号部と、
 変位ベクトルとしてローカル座標が格納された2D画像をフレームとする変位ビデオの符号化データを復号する変位ビデオ復号部と、
 細分化された前記ベースメッシュの頂点の法線ベクトルである頂点法線ベクトルを導出する頂点法線ベクトル導出部と、
 前記頂点法線ベクトルに対応するローカル座標系を用いて、前記細分化されたベースメッシュの頂点に、前記頂点の前記ローカル座標を前記変位ベクトルとして適用する変位ベクトル適用部と
 を備え、
 前記ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから前記頂点を間引くことにより生成される、前記オリジナルメッシュよりも粗いメッシュであり、
 前記変位ベクトルは、前記細分化されたベースメッシュの頂点と前記オリジナルメッシュの前記頂点との間の位置の差であり、
 前記ローカル座標系は、前記頂点法線ベクトルに基づいて設定される、前記細分化されたベースメッシュの頂点毎の座標系であり、
 前記ローカル座標は、細分化された前記ベースメッシュの頂点の前記変位ベクトルを、前記頂点の前記頂点法線ベクトルに対応する前記ローカル座標系において表した座標である
 情報処理装置。
 (22) 前記頂点法線ベクトル導出部は、前記細分化されたベースメッシュの処理対象の頂点である処理対象点の周辺のフェイスの法線ベクトルを用いて前記処理対象点の前記頂点法線ベクトルを導出する
 (21)に記載の情報処理装置。
 (23) 前記頂点法線ベクトル導出部は、前記周辺のフェイスの法線ベクトルの平均を導出し、前記処理対象点の前記頂点法線ベクトルとする
 (22)に記載の情報処理装置。
 (24) 前記頂点法線ベクトル導出部は、前記周辺のフェイスの法線ベクトルの重み付き平均を導出し、前記処理対象点の前記頂点法線ベクトルとする
 (22)に記載の情報処理装置。
 (25) 前記頂点法線ベクトル導出部は、前記周辺のフェイスの面積に基づく重み値を用いて、前記重み付き平均を導出する
 (24)に記載の情報処理装置。
 (26) 前記頂点法線ベクトル導出部は、前記周辺のフェイスの向きの差に基づく重み値を用いて、前記重み付き平均を導出する
 (24)に記載の情報処理装置。
 (27) 前記頂点法線ベクトル導出部は、前記周辺のフェイスの面積と前記周辺のフェイスの向きの差とに基づく重み値を用いて、前記重み付き平均を導出する
 (24)に記載の情報処理装置。
 (28) 前記頂点法線ベクトル導出部は、前記細分化されたベースメッシュの処理対象の頂点である処理対象点の位置に応じた重みづけを行って、前記処理対象点の周辺のフェイスの法線ベクトルを用いて前記処理対象点の前記頂点法線ベクトルを導出する第1の方法、または、前記重みづけを行わずに前記周辺のフェイスの法線ベクトルを用いて前記処理対象点の前記頂点法線ベクトルを導出する第2の方法を選択し、選択した方法を用いて前記頂点法線ベクトルを導出する
 (21)乃至(27)のいずれかに記載の情報処理装置。
 (29) 前記頂点法線ベクトル導出部は、前記ベースメッシュのフェイス毎に、処理対象フェイスと周辺フェイスとの向きの差に基づいて、前記第1の方法または前記第2の方法を選択する
 (28)に記載の情報処理装置。
 (30) 前記頂点法線ベクトル導出部は、前記処理対象フェイスの法線ベクトルと前記処理対象フェイスの各頂点の前記頂点法線ベクトルとの内積を求め、前記内積の最小値を閾値と比較し、前記内積の方が小さい場合前記第1の方法を選択し、前記内積の方が大きい場合前記第2の方法を選択する
 (29)に記載の情報処理装置。
 (31) 前記頂点法線ベクトル導出部は、エンコーダから伝送された前記閾値と前記内積の最小値とを比較する
 (30)に記載の情報処理装置。
 (32) 前記頂点法線ベクトル導出部は、
  前記細分化されたベースメッシュの処理対象の頂点である処理対象点の位置に応じた重みづけを行って、前記処理対象点の周辺のフェイスの法線ベクトルを用いて前記処理対象点の第1の前記頂点法線ベクトルを導出し、
  前記重みづけを行わずに前記周辺のフェイスの法線ベクトルを用いて前記処理対象点の第2の前記頂点法線ベクトルを導出し、
  導出した前記第1の頂点法線ベクトルと前記第2の頂点法線ベクトルとを合成する
 (21)乃至(31)のいずれかに記載の情報処理装置。
 (33) 前記頂点法線ベクトル導出部は、導出した前記第1の頂点法線ベクトルおよび前記第2の頂点法線ベクトルを重み付き平均により合成する
 (32)に記載の情報処理装置。
 (34) 前記頂点法線ベクトル導出部は、
  前記ベースメッシュのフェイスのエッジ上に位置する頂点に対応する前記第1の頂点法線ベクトルおよび前記第2の頂点法線ベクトルを、第1の重み値を用いた前記重み付き平均により合成し、
  前記エッジ上でない場所に位置する頂点に対応する前記第1の頂点法線ベクトルおよび前記第2の頂点法線ベクトルを、前記第1の重み値と異なる第2の重み値を用いた前記重み付き平均により合成する
 (33)に記載の情報処理装置。
 (35) 前記頂点法線ベクトル導出部は、導出した前記第1の頂点法線ベクトルおよび前記第2の頂点法線ベクトルを、エンコーダから伝送された重み値を用いた前記重み付き平均により合成する
 (33)または(34)に記載の情報処理装置。
 (36) 前記頂点法線ベクトルの導出方法を指定する方法指定フラグに基づいて、前記頂点法線ベクトルの導出方法を設定する導出方法設定部をさらに備え、
 前記頂点法線ベクトル導出部は、設定された前記導出方法で前記頂点法線ベクトルを導出する
 (21)乃至(35)のいずれかに記載の情報処理装置。
 (37) 前記導出方法設定部は、前記方法指定フラグに従って、
  前記細分化されたベースメッシュの処理対象の頂点である処理対象点の位置に応じた重みづけを行って、前記処理対象点の周辺のフェイスの法線ベクトルを用いて前記処理対象点の前記頂点法線ベクトルを導出する第1の方法、
  前記重みづけを行わずに前記周辺のフェイスの法線ベクトルを用いて前記処理対象点の前記頂点法線ベクトルを導出する第2の方法、
  前記第1の方法または前記第2の方法を所定の方法により選択する第3の方法、
  並びに、前記第1の方法を適用して導出した第1の前記頂点法線ベクトルと前記第2の方法を適用して導出した第2の前記頂点法線ベクトルとを合成する第4の方法
 の中からいずれか1つを選択し、前記導出方法として設定する
 (36)に記載の情報処理装置。
 (38) 前記方法指定フラグは、前記導出方法を、前記オリジナルメッシュのシーケンス毎、フレーム毎、前記ベースメッシュ毎、前記ベースメッシュのフェイス毎、または、前記ベースメッシュの頂点毎に指定する
 (36)または(37)に記載の情報処理装置。
 (39) 導出された前記頂点法線ベクトルを、予め用意された所定の法線ベクトルの候補でクラスタリングするクラスタリング部をさらに備える
 (21)乃至(38)のいずれかに記載の情報処理装置。
 (40) 導出された前記頂点法線ベクトルを量子化する量子化部をさらに備える
 (21)乃至(39)のいずれかに記載の情報処理装置。
 (41) ベースメッシュの符号化データを復号し、
 変位ベクトルとしてローカル座標が格納された2D画像をフレームとする変位ビデオの符号化データを復号し、
 細分化された前記ベースメッシュの頂点の法線ベクトルである頂点法線ベクトルを導出し、
 前記頂点法線ベクトルに対応するローカル座標系を用いて、前記細分化されたベースメッシュの頂点に、前記頂点の前記ローカル座標を前記変位ベクトルとして適用し、
 前記ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから前記頂点を間引くことにより生成される、前記オリジナルメッシュよりも粗いメッシュであり、
 前記変位ベクトルは、前記細分化されたベースメッシュの頂点と前記オリジナルメッシュの前記頂点との間の位置の差であり、
 前記ローカル座標系は、前記頂点法線ベクトルに基づいて設定される、前記細分化されたベースメッシュの頂点毎の座標系であり、
 前記ローカル座標は、細分化された前記ベースメッシュの頂点の前記変位ベクトルを、前記頂点の前記頂点法線ベクトルに対応する前記ローカル座標系において表した座標である
 情報処理方法。
 200 符号化装置, 211 ベースメッシュ符号化部, 212 ローカル座標系設定部, 213 ローカル座標導出部, 214 変位ベクトル補正部, 215 パッキング部, 216 変位ビデオ符号化部, 217 メッシュ再構成部, 218 アトリビュートマップ補正部, 219 アトリビュートビデオ符号化部, 220 ヘッダ符号化部, 221 合成部, 241 頂点法線ベクトル導出部、 242 ローカル座標系設定部, 300 復号装置, 311 逆多重化部, 312 ヘッダ復号部, 313 ベースメッシュ復号部, 314 細分化部, 315 変位ビデオ復号部, 316 アンパッキング部, 317 ローカル座標系設定部, 318 変位ベクトル適用部, 319 アトリビュートビデオ復号部, 341 頂点法線ベクトル導出部, 342 ローカル座標系設定部, 411 導出方法設定部, 412 方法指定フラグ生成部, 421 導出方法設定部, 431 頂点法線ベクトルクラスタリング部, 441 頂点法線ベクトルクラスタリング部, 451 頂点法線ベクトル量子化部, 461 頂点法線ベクトル量子化部, 900 コンピュータ

Claims (20)

  1.  ベースメッシュの符号化データを復号するベースメッシュ復号部と、
     変位ベクトルとしてローカル座標が格納された2D画像をフレームとする変位ビデオの符号化データを復号する変位ビデオ復号部と、
     細分化された前記ベースメッシュの頂点の法線ベクトルである頂点法線ベクトルを導出する頂点法線ベクトル導出部と、
     前記頂点法線ベクトルに対応するローカル座標系を用いて、前記細分化されたベースメッシュの頂点に、前記頂点の前記ローカル座標を前記変位ベクトルとして適用する変位ベクトル適用部と
     を備え、
     前記ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから前記頂点を間引くことにより生成される、前記オリジナルメッシュよりも粗いメッシュであり、
     前記変位ベクトルは、前記細分化されたベースメッシュの頂点と前記オリジナルメッシュの前記頂点との間の位置の差であり、
     前記ローカル座標系は、前記頂点法線ベクトルに基づいて設定される、前記細分化されたベースメッシュの頂点毎の座標系であり、
     前記ローカル座標は、細分化された前記ベースメッシュの頂点の前記変位ベクトルを、前記頂点の前記頂点法線ベクトルに対応する前記ローカル座標系において表した座標である
     情報処理装置。
  2.  前記頂点法線ベクトル導出部は、前記細分化されたベースメッシュの処理対象の頂点である処理対象点の周辺のフェイスの法線ベクトルを用いて前記処理対象点の前記頂点法線ベクトルを導出する
     請求項1に記載の情報処理装置。
  3.  前記頂点法線ベクトル導出部は、前記周辺のフェイスの法線ベクトルの平均を導出し、前記処理対象点の前記頂点法線ベクトルとする
     請求項2に記載の情報処理装置。
  4.  前記頂点法線ベクトル導出部は、前記周辺のフェイスの法線ベクトルの重み付き平均を導出し、前記処理対象点の前記頂点法線ベクトルとする
     請求項2に記載の情報処理装置。
  5.  前記頂点法線ベクトル導出部は、前記周辺のフェイスの面積に基づく重み値を用いて、前記重み付き平均を導出する
     請求項4に記載の情報処理装置。
  6.  前記頂点法線ベクトル導出部は、前記周辺のフェイスの向きの差に基づく重み値を用いて、前記重み付き平均を導出する
     請求項4に記載の情報処理装置。
  7.  前記頂点法線ベクトル導出部は、前記周辺のフェイスの面積と前記周辺のフェイスの向きの差とに基づく重み値を用いて、前記重み付き平均を導出する
     請求項4に記載の情報処理装置。
  8.  前記頂点法線ベクトル導出部は、前記細分化されたベースメッシュの処理対象の頂点である処理対象点の位置に応じた重みづけを行って、前記処理対象点の周辺のフェイスの法線ベクトルを用いて前記処理対象点の前記頂点法線ベクトルを導出する第1の方法、または、前記重みづけを行わずに前記周辺のフェイスの法線ベクトルを用いて前記処理対象点の前記頂点法線ベクトルを導出する第2の方法を選択し、選択した方法を用いて前記頂点法線ベクトルを導出する
     請求項1に記載の情報処理装置。
  9.  前記頂点法線ベクトル導出部は、前記ベースメッシュのフェイス毎に、処理対象フェイスと周辺フェイスとの向きの差に基づいて、前記第1の方法または前記第2の方法を選択する
     請求項8に記載の情報処理装置。
  10.  前記頂点法線ベクトル導出部は、前記処理対象フェイスの法線ベクトルと前記処理対象フェイスの各頂点の前記頂点法線ベクトルとの内積を求め、前記内積の最小値を閾値と比較し、前記内積の方が小さい場合前記第1の方法を選択し、前記内積の方が大きい場合前記第2の方法を選択する
     請求項9に記載の情報処理装置。
  11.  前記頂点法線ベクトル導出部は、エンコーダから伝送された前記閾値と前記内積の最小値とを比較する
     請求項10に記載の情報処理装置。
  12.  前記頂点法線ベクトル導出部は、
      前記細分化されたベースメッシュの処理対象の頂点である処理対象点の位置に応じた重みづけを行って、前記処理対象点の周辺のフェイスの法線ベクトルを用いて前記処理対象点の第1の前記頂点法線ベクトルを導出し、
      前記重みづけを行わずに前記周辺のフェイスの法線ベクトルを用いて前記処理対象点の第2の前記頂点法線ベクトルを導出し、
      導出した前記第1の頂点法線ベクトルと前記第2の頂点法線ベクトルとを合成する
     請求項1に記載の情報処理装置。
  13.  前記頂点法線ベクトル導出部は、導出した前記第1の頂点法線ベクトルおよび前記第2の頂点法線ベクトルを重み付き平均により合成する
     請求項12に記載の情報処理装置。
  14.  前記頂点法線ベクトル導出部は、導出した前記第1の頂点法線ベクトルおよび前記第2の頂点法線ベクトルを、エンコーダから伝送された重み値を用いた前記重み付き平均により合成する
     請求項13に記載の情報処理装置。
  15.  前記頂点法線ベクトルの導出方法を指定する方法指定フラグに基づいて、前記頂点法線ベクトルの導出方法を設定する導出方法設定部をさらに備え、
     前記頂点法線ベクトル導出部は、設定された前記導出方法で前記頂点法線ベクトルを導出する
     請求項1に記載の情報処理装置。
  16.  導出された前記頂点法線ベクトルを、予め用意された所定の法線ベクトルの候補でクラスタリングするクラスタリング部をさらに備える
     請求項1に記載の情報処理装置。
  17.  導出された前記頂点法線ベクトルを量子化する量子化部をさらに備える
     請求項1に記載の情報処理装置。
  18.  ベースメッシュの符号化データを復号し、
     変位ベクトルとしてローカル座標が格納された2D画像をフレームとする変位ビデオの符号化データを復号し、
     細分化された前記ベースメッシュの頂点の法線ベクトルである頂点法線ベクトルを導出し、
     前記頂点法線ベクトルに対応するローカル座標系を用いて、前記細分化されたベースメッシュの頂点に、前記頂点の前記ローカル座標を前記変位ベクトルとして適用し、
     前記ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから前記頂点を間引くことにより生成される、前記オリジナルメッシュよりも粗いメッシュであり、
     前記変位ベクトルは、前記細分化されたベースメッシュの頂点と前記オリジナルメッシュの前記頂点との間の位置の差であり、
     前記ローカル座標系は、前記頂点法線ベクトルに基づいて設定される、前記細分化されたベースメッシュの頂点毎の座標系であり、
     前記ローカル座標は、細分化された前記ベースメッシュの頂点の前記変位ベクトルを、前記頂点の前記頂点法線ベクトルに対応する前記ローカル座標系において表した座標である
     情報処理方法。
  19.  細分化されたベースメッシュの頂点の法線ベクトルである頂点法線ベクトルの導出方法を設定する導出方法設定部と、
     設定された前記導出方法で前記頂点法線ベクトルを導出する頂点法線ベクトル導出部と、
     前記頂点法線ベクトルに対応するローカル座標系において変位ベクトルを表すローカル座標を導出するローカル座標導出部と、
     前記変位ベクトルとして前記ローカル座標が格納された2D画像をフレームとする変位ビデオを符号化する変位ビデオ符号化部と、
     設定された前記導出方法を指定する方法指定フラグを生成する方法指定フラグ生成部と、
     前記方法指定フラグを符号化する方法指定フラグ符号化部と
     を備え、
     前記ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから前記頂点を間引くことにより生成される、前記オリジナルメッシュよりも粗いメッシュであり、
     前記変位ベクトルは、前記細分化されたベースメッシュの頂点と前記オリジナルメッシュの前記頂点との間の位置の差であり、
     前記ローカル座標系は、前記頂点法線ベクトルに基づいて設定される、前記細分化されたベースメッシュの頂点毎の座標系である
     情報処理装置。
  20.  細分化されたベースメッシュの頂点の法線ベクトルである頂点法線ベクトルの導出方法を設定し、
     設定された前記導出方法で前記頂点法線ベクトルを導出し、
     前記頂点法線ベクトルに対応するローカル座標系において変位ベクトルを表すローカル座標を導出し、
     前記変位ベクトルとして前記ローカル座標が格納された2D画像をフレームとする変位ビデオを符号化し、
     設定された前記導出方法を指定する方法指定フラグを生成し、
     前記方法指定フラグを符号化し、
     前記ベースメッシュは、オブジェクトの3次元構造を表現する頂点および接続により構成される符号化対象のオリジナルメッシュから前記頂点を間引くことにより生成される、前記オリジナルメッシュよりも粗いメッシュであり、
     前記変位ベクトルは、前記細分化されたベースメッシュの頂点と前記オリジナルメッシュの前記頂点との間の位置の差であり、
     前記ローカル座標系は、前記頂点法線ベクトルに基づいて設定される、前記細分化されたベースメッシュの頂点毎の座標系である
     情報処理方法。
PCT/JP2023/035840 2022-10-18 2023-10-02 情報処理装置および方法 WO2024084931A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-166711 2022-10-18
JP2022166711 2022-10-18

Publications (1)

Publication Number Publication Date
WO2024084931A1 true WO2024084931A1 (ja) 2024-04-25

Family

ID=90737722

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/035840 WO2024084931A1 (ja) 2022-10-18 2023-10-02 情報処理装置および方法

Country Status (1)

Country Link
WO (1) WO2024084931A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110091118A1 (en) * 2009-10-16 2011-04-21 Samsung Electronics Co., Ltd. Apparatus and method for coding a three dimensional mesh

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110091118A1 (en) * 2009-10-16 2011-04-21 Samsung Electronics Co., Ltd. Apparatus and method for coding a three dimensional mesh

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHOI YIHYUN; JEONG JONG-BEOM; LEE SOONBIN; RYU EUN-SEOK: "Overview of the Video-based Dynamic Mesh Coding (V-DMC) Standard Work", 2022 13TH INTERNATIONAL CONFERENCE ON INFORMATION AND COMMUNICATION TECHNOLOGY CONVERGENCE (ICTC), IEEE, 19 October 2022 (2022-10-19), pages 578 - 581, XP034233613, DOI: 10.1109/ICTC55196.2022.9952734 *
MAMMOU KHALED; KIM JUNGSUN; TOURAPIS ALEXIS M.; PODBORSKI DIMITRI; FLYNN DAVID: "Video and Subdivision based Mesh Coding", 2022 10TH EUROPEAN WORKSHOP ON VISUAL INFORMATION PROCESSING (EUVIP), IEEE, 11 September 2022 (2022-09-11), pages 1 - 6, XP034212156, DOI: 10.1109/EUVIP53989.2022.9922888 *

Similar Documents

Publication Publication Date Title
JP7384159B2 (ja) 画像処理装置および方法
JP7268599B2 (ja) 情報処理装置および方法
US20210027505A1 (en) Image processing apparatus and method
US11699248B2 (en) Image processing apparatus and method
US11310518B2 (en) Image processing apparatus and method
US11922579B2 (en) Image processing apparatus and method for image processing by deriving voxel and mesh data to generate point cloud data
US11356690B2 (en) Image processing apparatus and method
WO2019142665A1 (ja) 情報処理装置および方法
CN112204985A (zh) 图像处理设备和方法
WO2024084931A1 (ja) 情報処理装置および方法
KR20210070282A (ko) 화상 처리 장치 및 방법
JP2022047546A (ja) 情報処理装置および方法
WO2024084952A1 (ja) 情報処理装置および方法
WO2022075074A1 (ja) 画像処理装置および方法
WO2024057903A1 (ja) 情報処理装置および方法
WO2022230941A1 (ja) 情報処理装置および方法
US20230177735A1 (en) Information processing apparatus and method
CN118318444A (en) Information processing apparatus and method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23879578

Country of ref document: EP

Kind code of ref document: A1