WO2025150425A1 - Decoding method, encoding method, decoding device, and encoding device - Google Patents
Decoding method, encoding method, decoding device, and encoding deviceInfo
- Publication number
- WO2025150425A1 WO2025150425A1 PCT/JP2024/045808 JP2024045808W WO2025150425A1 WO 2025150425 A1 WO2025150425 A1 WO 2025150425A1 JP 2024045808 W JP2024045808 W JP 2024045808W WO 2025150425 A1 WO2025150425 A1 WO 2025150425A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- vertices
- vertex
- dimensional
- submesh
- information
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
Definitions
- FIG. 11 is a flow diagram showing a process of determining whether sub-meshes overlap, which is executed by a decoding device according to an embodiment;
- FIG. 11 is a flow diagram showing a vertex modification process executed by a decoding device according to an embodiment.
- FIG. 11A to 11C are diagrams illustrating a specific example of a vertex modification process according to the embodiment.
- 11A to 11C are diagrams illustrating a specific example of a vertex modification process according to the embodiment.
- 11A and 11B are diagrams showing specific examples of positions where flag information is stored in the embodiment;
- 11 is a diagram for explaining an example of syntax in which flag information in the embodiment is signaled;
- FIG. 13 is a diagram for explaining another example of a syntax in which flag information in the embodiment is signaled.
- a first submesh and a second submesh can be generated from a first base mesh and a second base mesh.
- the decoding method of Example 4 is the decoding method of Example 2 or Example 3, and in the process, one or more vertices may be added to the first boundary edge of the first submesh generated by subdividing the first base mesh the first number of times, or to the second boundary edge of the second submesh generated by subdividing the second base mesh the second number of times, thereby making the total number of the first vertices equal to the total number of the second vertices.
- the decoding method of Example 5 is any of the decoding methods of Examples 2 to 4, and in the process, one or more vertices may be removed from the first boundary edge of the first submesh generated by sub-dividing the first base mesh the first number of times, or from the second boundary edge of the second submesh generated by sub-dividing the second base mesh the second number of times, to make the total number of the first vertices equal to the total number of the second vertices.
- the decoding method of Example 6 may be any of the decoding methods of Examples 1 to 5, and may further generate a three-dimensional mesh by combining the first submesh and the second submesh such that multiple connection points generated by combining the multiple first vertices and the multiple second vertices are positioned on boundary edges corresponding to the first boundary edge and the second boundary edge.
- connection points This allows the three-dimensional and two-dimensional coordinate values of the connection points to be calculated.
- the encoding method of Example 8 performs a process of matching the total number of a plurality of first vertices on a first boundary edge of a first submesh based on a first base mesh with the total number of a plurality of second vertices on a second boundary edge of a second submesh based on a second base mesh, and based on the result of the process, encodes encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating the three-dimensional positions of a plurality of vertices of the first base mesh and the second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in an attribute map corresponding to the plurality of three-dimensional coordinate values, and A bit stream including data is generated, and in the process, (i) the total number of the first three-dimensional coordinate values indicating the three-dimensional positions of the first vertices is made equal to the total number of the second three-dimensional coordinate values indicating the three-dimensional positions of the second vertices, and
- the encoding device of Example 10 comprises a circuit and a memory connected to the circuit, and during operation, the circuit executes a process for matching a total number of a plurality of first vertices on a first boundary edge of a first submesh based on a first base mesh with a total number of a plurality of second vertices on a second boundary edge of a second submesh based on a second base mesh, and generates, based on a result of the execution of the process, encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating three-dimensional positions of a plurality of vertices of the first base mesh and the second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in an attribute map corresponding to the plurality of three-dimensional coordinate values.
- the attribute information is information indicating attributes of a vertex or a face.
- the attribute information indicates attributes such as a color, an image, and a normal vector associated with a vertex or a face.
- the attribute information may be expressed as "Texture.”
- decoding information may mean obtaining information from a bitstream.
- Decoding information from a bitstream may mean decoding the bitstream to obtain information contained in the bitstream.
- ordinal numbers such as first and second may be given to components, etc. These ordinal numbers may be changed as appropriate. In addition, new ordinal numbers may be given to components, etc., or removed. In addition, these ordinal numbers may be given to elements in order to identify the elements, and may not correspond to a meaningful order.
- FIG. 1 is a conceptual diagram showing a three-dimensional mesh according to the present embodiment.
- the three-dimensional mesh is composed of a number of faces. For example, each face is a triangle. The vertices of these triangles are defined in a three-dimensional space.
- the three-dimensional mesh then represents a three-dimensional object. Each face may have a color or an image.
- FIG. 2 is a conceptual diagram showing the basic elements of a three-dimensional mesh according to this embodiment.
- a three-dimensional mesh is composed of vertex information, connection information, and attribute information.
- the vertex information indicates the positions of the vertices of a face in three-dimensional space.
- the connection information indicates the connections between the vertices.
- a face can be identified by the vertex information and connection information.
- a colorless three-dimensional object is formed in three-dimensional space by the vertex information and connection information.
- a color may be associated with a vertex as attribute information.
- the color associated with a vertex may be the color of the vertex, or the color of the face connected to the vertex.
- the color of a face may be the average of multiple colors associated with multiple vertices of the face.
- a normal vector may be associated with a vertex or face as attribute information. Such a normal vector can represent the front and back of a face.
- This attribute information allows texture to be reflected on the three-dimensional object.
- a three-dimensional object with color is formed in three-dimensional space using vertex information, connection information, and attribute information.
- FIG. 3 is a conceptual diagram showing mapping according to this embodiment.
- a region of a two-dimensional image on a two-dimensional plane can be mapped onto a surface of a three-dimensional mesh in three-dimensional space.
- coordinate information of the region in the two-dimensional image is associated with the surface of the three-dimensional mesh. This causes the image of the mapped region in the two-dimensional image to be reflected on the surface of the three-dimensional mesh.
- the vertex information encoder 101, the connection information encoder 102, and the attribute information encoder 103 may be integrated. Alternatively, each of the vertex information encoder 101, the connection information encoder 102, and the attribute information encoder 103 may be further subdivided into multiple components.
- FIG. 6 is a block diagram showing another example of the configuration of the encoding device 100 according to this embodiment.
- the encoding device 100 includes a pre-processor 104 and a post-processor 105 in addition to the configuration shown in FIG. 5.
- the post-processor 105 is an electrical circuit that performs processing after the vertex information, connection information, and attribute information are encoded.
- the post-processor 105 may perform conversion processing, separation processing, multiplexing processing, etc. on the encoded vertex information, connection information, and attribute information. More specifically, for example, the post-processor 105 may multiplex the encoded vertex information, connection information, and attribute information into a bit stream. Also, for example, the post-processor 105 may further perform variable-length coding on the encoded vertex information, connection information, and attribute information.
- ⁇ Decoding device> 7 is a block diagram showing an example of the configuration of a decoding device 200 according to this embodiment.
- the decoding device 200 includes a vertex information decoder 201, a connection information decoder 202, and an attribute information decoder 203.
- connection information decoder 202 is an electrical circuit that decodes the connection information. For example, the connection information decoder 202 decodes the connection information from the bit stream according to a format defined for the connection information.
- Vertex information, connection information, and attribute information may be decoded using variable length decoding or fixed length decoding.
- Variable length decoding may correspond to Huffman coding or context-adaptive binary arithmetic coding (CABAC), etc.
- the vertex information decoder 201, the connection information decoder 202, and the attribute information decoder 203 may be integrated. Alternatively, each of the vertex information decoder 201, the connection information decoder 202, and the attribute information decoder 203 may be divided into multiple components.
- FIG. 8 is a block diagram showing another example of the configuration of the decoding device 200 according to this embodiment.
- the decoding device 200 includes a pre-processor 204 and a post-processor 205 in addition to the configuration shown in FIG. 7.
- the pre-processor 204 is an electrical circuit that performs processing before the vertex information, connection information, and attribute information are decoded.
- the pre-processor 204 may perform conversion processing, separation processing, multiplexing processing, or the like on the bit stream before the vertex information, connection information, and attribute information are decoded.
- the preprocessor 204 may separate from the bitstream a sub-bitstream corresponding to the vertex information, a sub-bitstream corresponding to the connection information, and a sub-bitstream corresponding to the attribute information. Also, for example, the preprocessor 204 may perform variable length decoding on the bitstream in advance before decoding the vertex information, connection information, and attribute information.
- the post-processor 205 is an electrical circuit that performs processing after the vertex information, connection information, and attribute information are decoded.
- the post-processor 205 may perform conversion processing, separation processing, multiplexing processing, etc. on the decoded vertex information, connection information, and attribute information. More specifically, for example, the post-processor 205 may multiplex the decoded vertex information, connection information, and attribute information into a three-dimensional mesh.
- ⁇ Bitstream> The vertex information, connection information, and attribute information are encoded and stored in a bitstream. The relationship between these pieces of information and the bitstream is shown below.
- FIG. 9 is a conceptual diagram showing an example of the configuration of a bitstream according to this embodiment.
- the connection information, vertex information, and attribute information are integrated in the bitstream.
- the connection information, vertex information, and attribute information may be included in a single file.
- multiple parts of this information may be stored sequentially, such as a first part of connection information, a first part of vertex information, a first part of attribute information, a second part of connection information, a second part of vertex information, a second part of attribute information, etc. These multiple parts may correspond to multiple parts that are different in time, multiple parts that are different in space, or multiple different faces.
- connection information is not limited to the above example, and a storage order different from the above example may be used.
- FIG. 10 is a conceptual diagram showing another example of the configuration of a bitstream according to this embodiment.
- multiple files are included in the bitstream, and connection information, vertex information, and attribute information are each stored in different files.
- a file containing connection information, a file containing vertex information, and a file containing attribute information are shown, but the storage format is not limited to this example.
- two types of information out of the connection information, vertex information, and attribute information may be included in one file, and the remaining type of information may be included in another file.
- connection information is not limited to the above example, and a storage order different from the above example may be used.
- connection information is not limited to the examples in Figures 9, 10, and 11, and a storage order different from the above examples may be used.
- these may be stored in the bit stream in the order of vertex information, connection information, and attribute information.
- these may be stored in the bit stream in any of the following orders: connection information, attribute information, and vertex information; vertex information, attribute information, and connection information; attribute information, connection information, and vertex information; and attribute information, vertex information, and connection information.
- connection information may be divided into multiple pieces of data, and the multiple pieces of data may be stored in a periodic or random order within the bit stream.
- the three-dimensional data encoding system 110 comprises a controller 111, an input/output processor 112, a three-dimensional data encoder 113, a three-dimensional data generator 115, and a system multiplexer 114.
- the three-dimensional data decoding system 210 comprises a controller 211, an input/output processor 212, a three-dimensional data decoder 213, a system demultiplexer 214, a presenter 215, and a user interface 216.
- sensor data is input from a sensor terminal to a three-dimensional data generator 115.
- the three-dimensional data generator 115 generates three-dimensional data, such as point cloud data or mesh data, from the sensor data and inputs it to the three-dimensional data encoder 113.
- the three-dimensional data generator 115 generates vertex information, and generates connection information and attribute information corresponding to the vertex information.
- the three-dimensional data generator 115 may process the vertex information when generating the connection information and attribute information.
- the three-dimensional data generator 115 may reduce the amount of data by deleting duplicate vertices, or may transform the vertex information (such as by shifting the position, rotating, or normalizing).
- the three-dimensional data generator 115 may also render the attribute information.
- the three-dimensional data generator 115 is a component of the three-dimensional data encoding system 110 in FIG. 12, it may be disposed externally and independently of the three-dimensional data encoding system 110.
- the sensor terminal that provides the sensor data for generating the three-dimensional data may be, for example, a moving body such as an automobile, a flying object such as an airplane, a mobile terminal, or a camera.
- a distance sensor such as a LIDAR, a millimeter wave radar, an infrared sensor, or a range finder, a stereo camera, or a combination of multiple monocular cameras may be used as the sensor terminal.
- Sensor data may be the distance (position) of the object, monocular camera images, stereo camera images, color, reflectance, sensor attitude, orientation, gyro, sensing position (GPS information or altitude), speed, acceleration, sensing time, temperature, air pressure, humidity, or magnetism, etc.
- the three-dimensional data encoder 113 corresponds to the encoding device 100 shown in FIG. 5 etc.
- the three-dimensional data encoder 113 encodes three-dimensional data to generate encoded data.
- the three-dimensional data encoder 113 also generates control information in encoding the three-dimensional data.
- the three-dimensional data encoder 113 then inputs the encoded data together with the control information to the system multiplexer 114.
- the encoding method for three-dimensional data may be an encoding method that uses geometry, or an encoding method that uses a video codec.
- the encoding method that uses geometry may also be expressed as a geometry-based encoding method.
- the encoding method that uses a video codec is also expressed as a video-based encoding method.
- the system multiplexer 114 multiplexes the encoded data and control information input from the three-dimensional data encoder 113, and generates multiplexed data using a specified multiplexing method.
- the system multiplexer 114 may multiplex other media such as video, audio, subtitles, application data, or document files, or reference time information, together with the encoded data and control information of the three-dimensional data.
- the system multiplexer 114 may multiplex attribute information related to the sensor data or the three-dimensional data.
- the multiplexed data has a file format for storage, or a packet format for transmission.
- ISOBMFF or a format based on ISOBMFF may be used.
- MPEG-DASH, MMT, MPEG-2 TS Systems, RTP, etc. may be used.
- the multiplexed data is output as a transmission signal to the external connector 310 by the input/output processor 112.
- the multiplexed data may be transmitted as a transmission signal by wire or wirelessly.
- the multiplexed data is stored in an internal memory or storage device.
- the multiplexed data may be transmitted to a cloud server via the Internet, or may be stored in an external storage device.
- the transmission or storage of the multiplexed data is performed in a manner appropriate to the medium for transmission or storage, such as broadcasting or communication.
- a communication protocol http, ftp, TCP, UDP, IP, or a combination of these may be used.
- a PULL type communication method or a PUSH type communication method may be used.
- Ethernet registered trademark
- USB registered trademark
- RS-232C HDMI (registered trademark), coaxial cable, etc.
- 3GPP registered trademark
- 3G/4G/5G defined by IEEE wireless LAN, Wi-Fi, Bluetooth, or millimeter waves
- wireless LAN wireless local area network
- Wi-Fi wireless local area network
- Bluetooth wireless personal area network
- millimeter waves may be used.
- DVB-T2, DVB-S2, DVB-C2, ATSC3.0, or ISDB-S3 may be used.
- each operation of the three-dimensional data encoding system 110 may be controlled by a controller 111 that executes an application program.
- a transmission signal is input to an input/output processor 212.
- the input/output processor 212 decodes multiplexed data having a file format or packet format from the transmission signal, and inputs the multiplexed data to a system demultiplexer 214.
- the system demultiplexer 214 obtains encoded data and control information from the multiplexed data, and inputs them to a three-dimensional data decoder 213.
- the system demultiplexer 214 may extract other media or reference time information from the multiplexed data.
- FIG. 14 is a conceptual diagram showing an example of a data file of point cloud data according to this embodiment.
- the location information is information that indicates a three-dimensional coordinate position using three axes, x, y, and z
- the attribute information is information that indicates a color using RGB.
- a PLY file or the like can be used as a representative data file for point cloud data.
- attribute information may indicate color, reflectance, or normal vectors for a vertex, edge, or face.
- the orientation of the normal vector may represent the front and back of a face.
- connection information is represented by a combination of vertex indices.
- FIG. 17 is a conceptual diagram showing the types of three-dimensional data according to this embodiment.
- the point cloud data and mesh data may represent static objects or dynamic objects.
- a static object is an object that does not change over time
- a dynamic object is an object that changes over time.
- a static object may correspond to three-dimensional data for any point in time.
- the area of the object may be limited to a certain range, as in normal video data, or may not be limited, as in map data.
- the density of points or surfaces may be determined in various ways. Sparse point cloud data or sparse mesh data may be used, or dense point cloud data or dense mesh data may be used.
- the device, process, or syntax for encoding and decoding vertex information of a three-dimensional mesh in this disclosure may be applied to the encoding and decoding of point clouds.
- the device, process, or syntax for encoding and decoding vertex information of a three-dimensional mesh in this disclosure may be applied to the encoding and decoding of point clouds.
- the device, process, or syntax for encoding and decoding attribute information of a point cloud in the present disclosure may be applied to encoding and decoding connectivity information or attribute information of a three-dimensional mesh.
- the device, process, or syntax for encoding and decoding connectivity information or attribute information of a three-dimensional mesh in the present disclosure may be applied to encoding and decoding attribute information of a point cloud.
- processing may be shared between the encoding and decoding of point cloud data and the encoding and decoding of mesh data. This can reduce the scale of the circuit and software program.
- the three-dimensional data encoder 113 encodes the three-dimensional data according to a geometry-based encoding method. Encoding according to the geometry-based encoding method takes into account the three-dimensional structure. Also, encoding according to the geometry-based encoding method encodes attribute information using configuration information obtained in encoding the vertex information.
- the vertex information encoder 121 encodes the vertex information into compressed vertex information and outputs the compressed vertex information to the multiplexer 124 as encoded data.
- the vertex information encoder 121 also generates metadata for the compressed vertex information and outputs it to the multiplexer 124.
- the vertex information encoder 121 also generates configuration information and outputs it to the attribute information encoder 122.
- the attribute information encoder 122 uses the configuration information generated by the vertex information encoder 121 to encode the attribute information into compressed attribute information, and outputs the compressed attribute information as encoded data to the multiplexer 124.
- the attribute information encoder 122 also generates metadata for the compressed attribute information and outputs it to the multiplexer 124.
- the metadata encoder 123 encodes compressible metadata into compressed metadata and outputs the compressed metadata to the multiplexer 124 as encoded data.
- the metadata encoded by the metadata encoder 123 may be used to encode vertex information and attribute information.
- the multiplexer 124 multiplexes the compressed vertex information, the metadata of the compressed vertex information, the compressed attribute information, the metadata of the compressed attribute information, and the compressed metadata into a bitstream.
- the multiplexer 124 then inputs the bitstream to the system layer.
- FIG. 19 is a block diagram showing an example configuration of a three-dimensional data decoder 213 according to this embodiment.
- the three-dimensional data decoder 213 includes a vertex information decoder 221, an attribute information decoder 222, a metadata decoder 223, and a demultiplexer 224.
- the vertex information decoder 221, the attribute information decoder 222, and the demultiplexer 224 may correspond to the vertex information decoder 201, the attribute information decoder 203, and the preprocessor 204 in FIG. 8, etc.
- the three-dimensional data decoder 213 decodes the three-dimensional data according to a geometry-based encoding method.
- the three-dimensional structure is taken into consideration.
- attribute information is decoded using configuration information obtained in decoding the vertex information.
- a bitstream is input from the system layer to the demultiplexer 224.
- the demultiplexer 224 separates compressed vertex information, compressed vertex information metadata, compressed attribute information, compressed attribute information metadata, and compressed metadata from the bitstream.
- the compressed vertex information and compressed vertex information metadata are input to the vertex information decoder 221.
- the compressed attribute information and compressed attribute information metadata are input to the attribute information decoder 222.
- the metadata is input to the metadata decoder 223.
- the vertex information decoder 221 decodes vertex information from the compressed vertex information using metadata of the compressed vertex information.
- the vertex information decoder 221 also generates configuration information and outputs it to the attribute information decoder 222.
- the attribute information decoder 222 decodes attribute information from the compressed attribute information using the configuration information generated by the vertex information decoder 221 and the metadata of the compressed attribute information.
- the metadata decoder 223 decodes metadata from the compressed metadata. The metadata decoded by the metadata decoder 223 may be used to decode the vertex information and the attribute information.
- the static three-dimensional mesh may be an intraframe three-dimensional mesh encoded using intra-prediction
- the dynamic three-dimensional mesh may be an interframe three-dimensional mesh encoded using inter-prediction
- the information on the dynamic three-dimensional mesh may be differential information between the vertex information or connection information of the intraframe three-dimensional mesh and the vertex information or connection information of the interframe three-dimensional mesh.
- a flag indicates one or more bits.
- a flag is, for example, a parameter or index represented by two or more bits.
- a flag may indicate not only a value represented by a binary number, but also a value represented by a numeric value other than a binary number.
- a signal is something that is symbolized or coded to transmit information.
- a signal includes a discrete digital signal or a continuous analog signal.
- a stream or bit stream is a digital data string that indicates the flow of digital data.
- a stream or bit stream may be one stream, or may be configured to include multiple streams having multiple layers.
- a stream or bit stream may be transmitted by serial communication using a single transmission path, or may be transmitted by packet communication using multiple transmission paths.
- Chroma is an adjective, denoted by the symbols Cb or Cr, that indicates that a sample array or a single sample represents one of the two color difference signals associated with a primary color.
- the term chroma is sometimes used instead of the term chrominance.
- the encoding/decoding system accepts a three-dimensional mesh (also called a 3D mesh) input in the form of three-dimensional coordinates of vertices (vertex information), connectivity (connection information) and associated attributes (attribute information).
- a three-dimensional mesh also called a 3D mesh
- vertex information three-dimensional coordinates of vertices
- connectivity connection information
- attributes attributes
- the 3D mesh can contain texture maps as well as geometry.
- the encoding device 100 takes in an input 3D mesh (also called input 3D mesh or input mesh) in the form of 3D coordinates of vertices, connectivity and related attributes.
- the encoding device 100 encodes all the related information into a stream.
- the stream may consist of a single bitstream or may consist of multiple bitstreams.
- the network 300 transmits the stream generated by the encoding device 100 to the decoding device 200.
- the network 300 may be the Internet, a WAN (Wide Area Network), a LAN (Local Area Network), or any combination of these.
- the network 300 is not necessarily limited to a two-way communication network, and may be a one-way communication network that transmits broadcast waves such as terrestrial digital broadcasting or satellite broadcasting.
- a recording medium such as a DVD (Digital Versatile Disc) or a BD (Blu-Ray Disc) on which a stream is recorded may be used.
- the stream is transmitted to the decoding device 200 via the network 300.
- the decoding device 200 decodes the bitstream and generates a 3D mesh using the 3D coordinates, connectivity and associated attributes of the decoded vertices.
- the decoding device 200 outputs the generated 3D mesh (also called output 3D mesh or output mesh).
- FIG. 27 shows another example configuration of the encoding device 100.
- the encoding device 100 includes a preprocessor 1103 and a compressor 1106.
- the encoding device 100 reads the input mesh 1101 and the attribute map 1102, and passes them to the preprocessor 1103.
- the preprocessor 1103 processes the input mesh to extract a base mesh 1104 and displacement data 1105.
- the attribute map 1102 is passed to the compressor 1106 together with the extracted base mesh 1104 and displacement data 1105.
- the compressor 1106 also compresses the base mesh 1104, the displacement data 1105, and the attribute map 1102 to generate a bitstream 1107.
- the compressor 1106 can transmit additional information to the decoding device 200 by further including metadata 1108 in the bitstream 1107.
- FIG. 28 shows another example configuration of the decryption device 200.
- the decoding device 200 includes a decompressor 2102 and a post-processor 2106.
- the decoding device 200 reads the bitstream 2101 and passes it to the decompressor 2102.
- the decompressor 2102 decompresses the base mesh 2103, the displacement data 2104, and the attribute map 2108 from the bitstream 2101 and passes them to the post-processor 2106.
- An example of the displacement data 2104 is a displacement vector.
- step S202 the decoding device 200 generates sub-divided vertices by performing a sub-division process on the base mesh frame decoded in step S201.
- An example of a base mesh frame (mesh frame) including sub-divided vertices is shown as base mesh frame 2302 (see FIG. 34).
- the decoded base mesh 1251 is passed to the subdivision unit 1252.
- the subdivision 1252 subdivides any two connected vertices in the entire 3D mesh by adding a new vertex between them. This process can be repeated several times to include vertices created in the previous subdivision step to generate a predefined number of vertices. Each subdivision iteration across the entire 3D mesh generates a new Level of Detail (LoD).
- the subdivided mesh 1253 and the decoded displacement data 1254 are passed to the displacer 1255, which generates the decoded 3D mesh 1256 by moving each vertex to a new position according to the corresponding displacement data.
- the base mesh shown in FIG. 38(a) includes vertices A, B, and C, and connectivity information indicating their connectivity.
- FIG. 38 shows the mesh generated by the first subdivision, in other words, the mesh after the first subdivision.
- the subdivider In the first subdivision, the subdivider generates vertices D, E, and F and connectivity information indicating their connectivity.
- the mesh generated by the subdivider is also called LoD1 or first LoD.
- Vertex G of the mesh after the second subdivision is a vertex generated by subdivision based on vertices A and D.
- vertex H is a vertex generated by subdivision based on vertices A and E.
- Vertex I is a vertex generated by subdivision based on vertices B and D.
- Vertex J is a vertex generated by subdivision based on vertices D and F.
- Vertex K is a vertex generated by subdivision based on vertices E and F.
- Vertex L is a vertex generated by subdivision based on vertices C and E.
- Vertex M is a vertex generated by subdivision based on vertices B and F.
- Vertex N is a vertex generated by subdivision based on vertices C and F.
- Vertex O is a vertex generated by subdivision based on vertices D and E.
- the vertex displacement is performed by the reconstructor.
- Figure 39 is an explanatory diagram showing an example of the displacement of vertices after subdivision.
- Figure 40 is an explanatory diagram showing an example of vertices of the original mesh.
- the base mesh shown in FIG. 39(a) includes vertices A, B, C, and Z, and connectivity information indicating their connectivity.
- FIG. 39(b) shows the mesh generated by the first subdivision, in other words, the mesh after the first subdivision (i.e., the first LoD).
- the subdivision unit In the first subdivision, the subdivision unit generates vertices S, T, U, X, or Y and connectivity information indicating their connectivity. Vertices S, T, U, X, or Y are the same as vertices D, E, and F shown in FIG. 38(b).
- (c) of FIG. 39 shows the mesh generated by the second subdivision, in other words, the mesh after the second subdivision (i.e., the second LoD).
- the subdivision unit In the second subdivision, the subdivision unit generates vertices D, E, F, G, and H and connectivity information indicating their connectivity. Vertices D, E, F, G, and H are the same as vertices G, H, I, J, K, L, M, N, or O shown in (c) of FIG. 38.
- FIG. 39 shows a mesh including the vertices after they have been displaced after subdivision. Vertices A, B, C, D, E, F, G, H, S, T, U, X, Y, and Z shown in (d) in Figure 39 are each located at a position displaced from the position of the vertex shown in (c) in Figure 39 using the displacement information.
- the original mesh shown in FIG. 40 is an example of the mesh input to the encoding device 100, i.e., the mesh before encoding.
- the mesh shown in FIG. 39 has a shape close to that of the original mesh shown in FIG. 40.
- the displacement information is generated by the displacement vector calculator 1207 of the encoding device 100 as information indicating the displacement from the vertices of the base mesh to the vertices of the original mesh, so that a mesh having a shape close to that of the original mesh is generated by reconstructing the mesh using the displacement information thus generated.
- the decoding device 200 can output the mesh shown in FIG. 39(d).
- the decoding device 200 can use an image encoding module to extract the displacement data.
- the displacement data can be in the form of X, Y or Z components in a global coordinate system (e.g., Cartesian coordinate system), or normal, tangent or both tangent components in a local coordinate system.
- Methods for mapping the displacement data to an image frame include the following methods:
- the displacement data is arranged in the image frame in scan order.
- An example of packing of the displacement data in this case is shown in Figure 43.
- the displacement data is directly mapped into the image frame according to a predefined scan order.
- the base mesh is subdivided in a predetermined manner by the subdivider 1402 to generate a subdivided mesh (or a subdivided base mesh), which is the subdivided base mesh.
- Displacement data is generated by the displacement data generator 1403 from the sub-division mesh and the sub-mesh that is the input mesh 1101 after division.
- the encoding device 100 may transmit to the decoding device 200 a subdivision method for encoding and parameters used in the subdivision.
- FIG. 48 is a diagram showing another example of the configuration of a decoding device 200 according to an embodiment. Specifically, FIG. 48 is a diagram showing the configuration of a submesh decoding device which is a device that performs decoding processing when a bit stream 2101 contains multiple submeshes.
- the submesh decoding device includes multiple decoding devices 200.
- the submesh decoding device includes multiple decoding devices 200 and a combiner 2109.
- the encoded data for each submesh contained in the bit stream 2101 is input to the decompressor 2102 of each decoding device 200.
- the processing of the reconstructor is executed in the post-processor 2106.
- the base mesh is subdivided, and the displacement vector is added to the subdivided base mesh to restore the submesh.
- the post-processor 2106 performs the processing of the reconstructor described above for each submesh.
- the combiner 2109 combines (merges) the multiple sub-meshes restored by each of the multiple decoding devices 200 to reconstruct the full mesh (output mesh 2107) before it was divided.
- the decoding device 200 may be realized in such a submesh decoding device configuration.
- the decoding device 200 may be configured to include a plurality of decompressors 2102 and post-processors 2106, and each of the plurality of pairs of decompressors 2102 and post-processors 2106 may execute a predetermined process on the encoded data for each submesh.
- the number of pairs of decompressors 2102 and post-processors 2106 included in the decoding device 200 may be any number and is not particularly limited.
- FIG. 49 is a diagram showing a specific example of the configuration of the decoding device 200 according to the embodiment. Specifically, FIG. 49 shows a specific configuration of the rear decoder 2306 out of the decoder 2305 and rear decoder 2306 included in the decoding device 200.
- the post-decoder 2306 includes a pre-reconstructor 2307, a reconstructor 2308, a post-reconstructor 2309, and an adaptor 2310.
- the pre-reconstructor 2307 performs a pre-reconstruction process.
- the pre-reconstructor 2307 scales the normalized texture coordinates to match the dimensions of the texture image, for example in the context of video-based dynamic mesh coding.
- the post-reconstructor 2309 performs post-reconstruction operations.
- the post-reconstructor 2309 performs a number of smoothing operations on the reconstructed mesh frames, for example in the context of video-based dynamic mesh coding.
- the smoothing operations include, for example, collapsing edges in the mesh or adding new vertices in the mesh.
- the adaptor 2310 performs an adaptation process, which may be applied, for example, by some application to adapt the reconstructed mesh to a given scenario. For example, the vertices of the reconstructed mesh are transformed from the 3D model coordinate system to the 3D world coordinate system.
- the adaptor 2310 outputs the final reconstructed mesh frame (final 3D mesh frame 2311).
- Figure 50 is a diagram showing an example of two sub-divided sub-meshes having boundary edges according to an embodiment. Specifically, (a) of Figure 50 shows an example of a sub-mesh, (b) of Figure 50 shows another example of a sub-mesh, and (c) of Figure 50 shows a 3D mesh in which the sub-mesh shown in (a) of Figure 50 and the sub-mesh shown in (b) of Figure 50 are merged (i.e., combined).
- the decoding device 200 sub-divides each edge that constitutes the submesh based on position information of each vertex that constitutes the submesh and connection information indicating the connection relationship of each vertex, that is, information on the multiple edges that constitute the submesh.
- a new vertex three-dimensional point
- Each of the generated vertices is connected, for example, by a new edge.
- each of the multiple faces included in the submesh is divided into multiple faces by being sub-divided.
- a triangular face enclosed by three vertices included in the submesh is divided into four faces by being sub-divided.
- the decoding device 200 performs subdivision for each submesh and merges the submeshes to reconstruct a three-dimensional mesh corresponding to the original mesh.
- the encoding device 100 generates a number of submeshes from the original mesh, and encodes, for each submesh, the position information, displacement information, etc., of the vertices that constitute each submesh. Therefore, the position information, displacement information, etc., of the vertices that constitute each submesh may be encoded using different encoding parameters for each submesh.
- an edge also called a boundary edge
- an edge shared by two or more submeshes may be subdivision at a different position for each submesh, or the number of times that it is subdivision may differ for each submesh. This may result in a problem where the submeshes cannot be merged appropriately.
- side CD is a boundary edge.
- vertex F is generated on side CD.
- vertex M is generated on side CD. If the positions of vertex F and vertex M are different, or the number of vertices generated on side CD is different, that is, the number of times side CD is subdivided is different, when the submesh shown in FIG. 50(a) and the submesh shown in FIG. 50(b) are merged, gaps will be created around side CD, and they will not be able to be merged properly.
- the present application enforces a constraint that, for example, all boundary edges have the same type of subdivision scheme and the same number of iterations. That is, for example, in the subdivision of a boundary edge, subdivision is performed in each submesh with the same subdivision method and the same number of subdivisions. In this way, if the displacement information (i.e., the value of the displacement vector) of vertex F and vertex M are the same value, the vertices generated by the subdivision are displaced, and after each submesh is merged, it is possible to prevent gaps from existing around the boundary edges, as shown, for example, in FIG. 50(c).
- a predetermined subdivision method and/or a predetermined number of subdivisions may be used for the subdivision of the boundary edge, or the encoding device 100 may determine the predetermined subdivision method and/or the predetermined number of subdivisions and signal the determined information in the bitstream. Also, for example, the alignment of vertex F and vertex M may be performed when subdivision is performed on a submesh, or when merging multiple submeshes.
- FIG. 51 is a flow diagram showing the processing of the decoding device 200 according to the embodiment.
- FIG. 51 is a flow diagram showing an example in which a predetermined subdivision method is used.
- the decoding device 200 decodes, from the bit stream, a first vertex and a second vertex that are connected via an edge (S301). Specifically, the decoding device 200 obtains, from the bit stream, position information of the first vertex and the second vertex, and connection information indicating whether the first vertex and the second vertex are connected.
- the decoding device 200 determines whether the edge connecting the first vertex and the second vertex is a boundary edge (S302).
- the decoding device 200 determines that the edge connecting the first vertex and the second vertex is a boundary edge (Yes in S302), it derives the third vertex from only the first vertex and the second vertex (S303). In other words, the position of the third vertex is derived based only on the positions of the first vertex and the second vertex, and the third vertex is complemented (added).
- the decoding device 200 determines that the edge connecting the first vertex and the second vertex is not a boundary edge (No in S302), it derives a fourth vertex from the first vertex, the second vertex, and at least one fifth vertex (S304).
- the position of the fourth vertex is derived based on the positions of the first vertex, the second vertex, and at least one fifth vertex, and the fourth vertex is complemented.
- the number of fifth vertices may be one or more.
- the fourth vertex may be derived from three or more vertices including the first vertex and the second vertex.
- steps S303 and S304 are merely examples, and other methods may be used.
- FIGS. 52 and 53 are diagrams for explaining examples of boundary edges and non-boundary edges, respectively, according to an embodiment.
- a boundary edge is, for example, an edge that is shared by multiple submeshes.
- a non-boundary edge is an edge that is not shared by multiple submeshes.
- a non-boundary edge is, for example, an edge that is included in only one of the multiple submeshes contained in a base mesh.
- edge BD is connected to two faces: face W formed by edge BD and vertex C, and face X formed by edge BD and vertex F. Therefore, edge BD is a non-boundary edge, not a boundary edge.
- edge DF is connected to two faces: face X formed by edge DF and vertex B, and face Z formed by edge DF and vertex E. Therefore, edge DF is a non-boundary edge, not a boundary edge.
- step S303 if the edge connecting the first vertex and the second vertex is a boundary edge, the decoding device 200 derives the third vertex from only the first vertex and the second vertex.
- vertex A is assumed to be the first vertex
- vertex C is assumed to be the second vertex.
- vertices A and C are assumed to be on the boundary edge.
- vertex B which is the third vertex
- vertex B is derived from only the first vertex and the second vertex.
- the coordinates (position) of B there is a method of assigning the midpoint between vertex A, which is the first vertex, and vertex C, which is the second vertex, to the coordinates.
- the coordinates of the midpoint between vertices A and C may be calculated as the coordinates of intersection B.
- step S304 if the edge connecting the first vertex and the second vertex is not a boundary edge, the decoding device 200 derives the fourth vertex from the first vertex, the second vertex, and at least one fifth vertex.
- vertex B is the first vertex
- vertex D is the second vertex.
- vertex B and vertex D are not on a boundary edge.
- edge BD is a non-boundary edge.
- vertex H which is the fourth vertex
- vertex H is derived from vertex B, which is the first vertex
- vertex D which is the second vertex
- vertex F which is another fifth vertex.
- one or more parameters are decoded from the bitstream.
- the one or more parameters may also be decoded from a header of the bitstream.
- the one or more parameters may also include boundary edge information indicating which of the multiple edges constituting the submesh are boundary edges.
- the decoding device 200 may identify the boundary edges using the decoded boundary edge information.
- FIG. 54 shows an example of syntax for signaling different subdivision types (also called subdivision methods) and the number of subdivisions in a header according to an embodiment.
- the encoding device 100 generates a bitstream that includes in the header of the submesh, for example, information (subdivision_type) indicating the method of subdividing each edge constituting the submesh (also simply referred to as the submesh subdivision method) and information (subdivision_num_iteration) indicating the number of times each edge constituting the submesh is subdivided (also simply referred to as the submesh subdivision count).
- subdivision_type the method of subdividing each edge constituting the submesh
- subdivision_num_iteration information indicating the number of times each edge constituting the submesh is subdivided
- FIG. 55 is a diagram illustrating an example of syntax for signaling a subdivision type and a subdivision count using a sequence parameter set (SPS) relating to an embodiment.
- SPS sequence parameter set
- the encoding device 100 generates a bitstream whose sequence parameter set includes, for example, information indicating whether an edge is a boundary edge (boundary_subdivision_flag), information indicating a method for subdividing the boundary edge (also simply referred to as the boundary edge subdivision method) (boundary_subdivision_type), and information indicating the number of times the boundary edge is subdivided (also simply referred to as the number of times the boundary edge is subdivisioned) (boundary_subdivision_num_iteration).
- boundary_subdivision_flag information indicating whether an edge is a boundary edge
- boundary_subdivision_type information indicating a method for subdividing the boundary edge
- boundary_subdivision_num_iteration information indicating the number of times the boundary edge is subdivided
- FIG. 56 shows an example of syntax for determining the subdivision type and the number of subdivisions using a sequence parameter set according to an embodiment, and for checking whether an edge is on a boundary.
- the decoding device 200 sub-divides the edge based on information indicating a boundary edge sub-division method and information indicating the number of times the boundary edge is sub-divided, which are included in the SPS of the bitstream acquired from the encoding device 100.
- the decoding device 200 sub-divides the edge based on information indicating a sub-division method and information indicating the number of times the sub-division is performed, which are included in the header of the submesh of the bitstream acquired from the encoding device 100.
- the information indicating the subdivision method of the submeshes and/or the information indicating the number of times the submeshes are subdivision may be stored in a parameter set common to each frame if it is common to each frame, or may be stored in a parameter set common to the sequence if it is common to a sequence.
- this information is common to each submesh, this information does not need to be signaled in the header of the submesh.
- the submesh subdivision method and/or the number of times the submesh is subdivisioned are not signaled in the header of any of the adjacent submeshes, it may be determined that the submesh subdivision method and/or the number of times the submesh is subdivisioned are common to each submesh, and it may be determined not to use this method.
- the subdivision method and/or the number of subdivisions indicated by the information stored in the parameter set common to the sequence may be used for the subdivision method of the boundary edge and/or the number of subdivisions of the boundary edge.
- the decoding device 200 may use the value of the submesh header for the subdivision of the submesh and the value of the parameter set common to the sequence for the subdivision of the boundary edge.
- the number of times the boundary edge is subdivision differs from the number of times the submesh is subdivisioned
- the number of times the boundary edge of a submesh may be subdivision differs from the number of times the submesh is subdivisioned
- the number of times the boundary edge of a submesh to be joined may be subdivision differs from the number of times the submesh is subdivisioned.
- FIG. 57 is a flow diagram showing an example of a process for dividing multiple edges that make up a submesh according to an embodiment.
- the decoding device 200 determines whether or not at least one of the multiple edges constituting a mesh (specifically, a submesh) is a boundary edge (S401).
- the decoding device 200 determines that at least one of the multiple edges constituting the submesh is a boundary edge (Yes in S401), it compares the number of subdivisions of the boundary edge with the number of subdivisions of the submesh (S402).
- the decryption device 200 performs subdivision using a method A described below. Also, for example, when A ⁇ B, the decryption device 200 performs subdivision using a method B (method B1 or method B2) described below. Also, for example, when A>B, the decryption device 200 performs subdivision using a method C (method C1 or method C2) described below.
- the decoding device 200 determines that at least one of the multiple edges constituting the submesh is not a boundary edge (No in S401), it sub-divides the multiple edges using the submesh subdivision method and the number of times the submesh is subdivision (S404).
- the decoding device 200 decodes a parameter from the bitstream and derives the number of subdivisions of the boundary edge based on the parameter.
- the parameter may be a value indicating the exact number of subdivisions of the boundary edge, or a value indicating the difference with the number of subdivisions of the submesh.
- the decoding device 200 When the number of subdivisions of the boundary edge is less than the number of subdivisions of the submesh, the decoding device 200 performs subdivision on the boundary edge (edge CD) the number of times as shown in FIG. 58.
- the decoding device 200 generates a vertex F' by subdividing edge CD once.
- the decoding device 200 subdivides each of the edges that are not boundary edges (for example, edges AB, BC, AD, and BD).
- the decoding device 200 subdivides the edges that are not boundary edges and the newly generated edges by connecting the vertices newly generated by the subdivision.
- the edges that are not boundary edges are subdivided twice.
- the decoding device 200 creates an edge CW by connecting vertex C and the newly generated vertex W, and creates an edge DT by connecting vertex D and the newly generated vertex T.
- the decoding device 200 then creates an edge TL.
- the decoding device 200 determines, for example, whether the number of subdivisions of a submesh is different from the number of subdivisions of a boundary edge and whether (the number of subdivisions of a submesh)>(the number of subdivisions of a boundary edge).
- the decoding device 200 first sub-divides each edge constituting the submesh using a conventional method (connecting each of the vertices after division to generate a new mesh) up to the number of sub-divisions of the boundary edge. Furthermore, if the number of sub-divisions of the boundary edge is exceeded, the decoding device 200 repeats the following process until the number of sub-divisions of the submesh is reached.
- the decoding device 200 connects the vertices generated by sub-dividing at least the non-boundary edges, and generates a new mesh using one of two edges formed by connecting the generated vertex to each of the two vertices that make up the boundary edge. Furthermore, for example, the decoding device 200 determines a priority based on whether or not the edge to which the vertex is connected is sub-divided, and determines which edge to use according to the determined priority.
- a new mesh may be generated using both edges.
- the multiple edges that make up a submesh may include edges that are not sub-divided.
- information indicating the edges that are not sub-divided may be included in the bit stream.
- Method B2 when performing subdivision, if the number of subdivisions of a boundary edge is exceeded, the normal subdivision method is performed if there is no boundary edge, and if there is a boundary edge, the non-boundary edge is subdivided.
- method B2 if there is no boundary edge, the normal subdivision method is performed, and if there is a boundary edge, no subdivision is performed.
- FIG. 59 is a diagram for explaining a second example of a process for dividing multiple edges constituting a submesh according to an embodiment.
- polygon ABCD is a submesh
- side CD side CF' and side F'D
- side EC are boundary edges
- the other edges are non-boundary edges.
- the submesh is sub-divided twice
- the boundary edge is sub-divided once.
- the decoding device 200 decodes a parameter from the bit stream and derives the number of subdivisions of the boundary edge based on the parameter.
- the parameter is, for example, a value indicating the exact number of subdivisions of the boundary edge, or a value indicating the difference from the number of subdivisions of the submesh. If the value indicating the number of subdivisions of the boundary edge is smaller than the value indicating the number of subdivisions of the submesh, the decoding device 200 subdivides each edge constituting the submesh a number of times equivalent to the value indicating the number of subdivisions of the boundary edge, as shown in FIG. 59. Thereafter, the decoding device 200 does not explicitly displace vertex W and vertex T.
- the decoding device 200 displaces vertex F based on, for example, the displacement information, and then subdivides sides EF and GF by projecting vertex W onto side EF and projecting vertex T onto side GF. According to this, even after the face (specifically, each vertex constituting the face) is displaced, vertices E, W, and F' and vertices G, T, and F' are located on a straight line. Next, the decoding device 200 creates sides CW and DT, and then creates side TL.
- Method C1 is a diagram for explaining a third example of a process for dividing a plurality of edges constituting a submesh according to an embodiment.
- a polygon CDU is a submesh
- an edge CD is a boundary edge.
- edges CU and DU are non-boundary edges.
- the submesh is sub-divided once
- the boundary edge is sub-divided twice.
- the decoding device 200 first subdivides all edges including the boundary edge the number of times equal to the number of subdivisions of the submesh, as shown in FIG. 60. Next, the decoding device 200 subdivides the boundary edge until the number of times the boundary edge has been subdivided equals the number of subdivisions of the boundary edge.
- Fig. 61 is a diagram for explaining a fourth example of a process for dividing a plurality of edges constituting a submesh according to an embodiment.
- a polygon CDU is a submesh
- an edge CD is a boundary edge.
- edges CU and DU are non-boundary edges.
- the submesh is sub-divided once, and the boundary edge is sub-divided three times.
- the decoding device 200 If the number of subdivisions of the boundary edge is greater than the number of subdivisions of the submesh, the decoding device 200 first subdivides the boundary edge a number of times equal to the number of subdivisions of the boundary edge minus the number of subdivisions of the submesh, in order to generate sides UQ, UM, and UR. Next, the decoding device 200 subdivides all edges including the boundary edge a number of times equal to the number of subdivisions of the submesh, as shown in FIG. 61.
- the subdivision method and the number of subdivisions may be set to be the same.
- the decoding device 200 may determine whether or not the submesh to be the subject of subdivision includes a boundary edge, and if the submesh does not include a boundary edge, may perform subdivision using the submesh subdivision method and the submesh subdivision count. On the other hand, for example, if the submesh includes a boundary edge, the decoding device 200 may perform subdivision using either or both of (i) the submesh subdivision method and the submesh subdivision count, and (ii) the boundary edge subdivision method and the boundary edge subdivision count.
- a predetermined subdivision method and number of subdivisions may be used for the subdivision. Furthermore, the encoding device 100 may determine the subdivision method and the number of subdivisions, and include the determined subdivision method and number of subdivisions in the bitstream and transmit it.
- the subdivision of the submeshes may be performed using a subdivision method suitable for subdivision of submeshes
- the subdivision of the boundary edges may be performed using a subdivision method suitable for subdivision of boundary edges.
- Different subdivision methods may be used for boundary edges and non-boundary edges if suitable subdivision methods exist, and the same subdivision method may be used for boundary edges and non-boundary edges if suitable subdivision methods do not exist.
- the subdivision method may be switched depending on the result of comparing the number of subdivisions of the boundary edges with the number of subdivisions of the submeshes.
- the subdivision count of the boundary edge may be used for boundary edges, and the subdivision count of the submesh may be used for non-boundary edges.
- the subdivision count of the boundary edge or the subdivision count of the submesh may be used.
- the decoding device 200 of this aspect can be implemented by combining with at least a part of other aspects of the present disclosure. Furthermore, this aspect may be implemented by combining a part of the process shown in any of the flowcharts according to this aspect, a part of the configuration of any of the devices, and/or a part of the syntax, etc., with other aspects.
- the above processing of the decoding device 200 can also be executed in the encoding device 100 in a similar manner. Furthermore, not all of the components shown in this embodiment are always necessary, and only some of the components of the first embodiment may be included.
- Fig. 63 is a diagram for explaining a sixth example of a process for dividing a plurality of edges constituting a submesh according to an embodiment of the present invention. Specifically, Fig. 63 is a diagram for explaining another example of the process of step S303.
- the decoding device 200 performs subdivision corresponding to the number of subdivisions of the submesh. As a result, the decoding device 200 performs uniform subdivision along all edges, including the boundary edge, in the modified base mesh corresponding to the submesh that has been subdivided by the number of subdivisions of the submesh.
- the configuration according to the second aspect allows for merging sub-meshes that have been coded using different sub-division methods or sub-division times, thereby improving the subjective quality of the full-mesh.
- the above-mentioned processing of the encoding device 100 can also be executed in the decoding device 200 in a similar manner. Furthermore, not all of the components described in this embodiment are always necessary, and only some of the components of the first embodiment may be included.
- the encoding device 100 does not perform processing for making identical vertices on an edge shared by a plurality of submeshes (also called a boundary edge between submeshes).
- the encoding device 100 transmits to the decoding device 200 metadata for the decoding device 200 to modify vertices on the boundary edge (vertices located on the boundary edge).
- the encoding device 100 signals hint information (e.g., a flag, etc.) in the metadata indicating that the number of subdivisions or the subdivision methods are different between submeshes (i.e., between multiple adjacent submeshes), or that as a result, the vertices after subdivision are not identical (or may not be identical), and transmits the signal to the decoding device 200.
- hint information e.g., a flag, etc.
- the encoding device 100 may signal, in the metadata, information indicating whether the decoding device 200 modifies a vertex at a boundary edge and/or information indicating a method for modifying the vertex, rather than hint information. In that case, for example, the decoding device 200 determines whether to modify the vertex based on the information.
- the encoding device 100 determines that the boundary vertices after subdivision are the same (Yes in S505), it indicates in the metadata that the boundary vertices after subdivision are the same for each submesh (S507). That is, the encoding device 100 includes information indicating that the boundary vertices are the same in the metadata. In other words, the encoding device 100 generates metadata that also includes information indicating that the boundary vertices are the same.
- the encoding device 100 determines that the boundaries between the submeshes do not overlap (No in S503), it indicates in the metadata that the boundaries between the submeshes do not overlap (S508). In other words, the encoding device 100 includes information indicating that the boundaries between the submeshes do not overlap in the metadata. In other words, the encoding device 100 generates metadata including information indicating that the boundaries between the submeshes do not overlap.
- the encoding device 100 checks the number of subdivisions of two or more submeshes, determines whether they are identical or not, and sets a flag indicating the determination result. For example, the encoding device 100 generates a flag (flag information) indicating that they are identical or not identical based on the determination result.
- the encoding device 100 checks the number of subdivisions of each of the two or more submeshes. For example, if the number of subdivisions of the two or more submeshes is different, the encoding device 100 sets a flag (modification flag) to on. On the other hand, for example, if the number of subdivisions of the two or more submeshes is the same, the encoding device 100 sets the flag to off. That is, for example, the flag indicates that the number of subdivisions between the two or more submeshes is different. In other words, it can also be said that the flag indicates that the vertices at the boundary edges of the submeshes after subdivision are not identical or may not become identical.
- the encoding device 100 compares the coordinates of the boundary vertices of two or more submeshes and determines the value of the flag based on the comparison result. For example, the encoding device 100 sets the flag to on if there is at least one boundary vertex that is not common to two or more submeshes. On the other hand, for example, the encoding device 100 sets the flag to off if all the boundary vertices of two or more submeshes are the same. In other words, the flag indicates whether the boundary vertices of two or more submeshes after subdivision n will be the same or not.
- FIG. 65 is a flow diagram showing the process of determining whether submeshes overlap, which is executed by the decoding device 200 according to the embodiment.
- the decoding device 200 analyzes the metadata to determine whether or not the boundaries between the submeshes overlap (S511).
- the decoding device 200 determines that the decoding device 200 or the application processes the overlapping submeshes (Yes in S513), the decoding device 200 processes the overlapping submeshes (S514).
- the decoding device 200 performs, for example, subdivision, detects the boundaries between the submeshes (specifically, boundary edges), and performs a predetermined process on the boundaries between the submeshes after the subdivision, such as modifying the boundary vertices.
- flag information may be decoded from the bitstream, the flag information indicating whether to modify the number of vertices at the boundary edge when two or more sub-meshes are combined.
- the decoding device 200 applies the subdivision process to all edges of a given submesh according to a specified number of subdivisions.
- the decoding device 200 adds or removes a vertex to or from a submesh if the decoded flag information indicates that the number of vertices on the boundary edges is to be equal.
- the flag information is signaled as an SEI message.
- the decoding device 200 adjusts (modifies) the number of vertices. When the number of vertices is changed, the topology of each submesh is updated accordingly.
- triangles in a submesh may be reconstructed after vertices in the boundary edges are modified (added or removed).
- FIG. 67 is a diagram showing a specific example of a vertex modification process according to an embodiment. Specifically, FIG. 67 is a diagram for explaining a process in which a vertex is added to a boundary edge based on method information.
- whether to add or delete a vertex may be determined by any method, such as by the decoding device 200 analyzing the number of times a submesh is sub-divided, without using method information.
- the decoding device 200 adds (generates) new vertices to the boundary edge by copying the coordinates of the vertices from an adjacent submesh.
- submesh 1 having vertices A, B, C, D, and E
- submesh 2 having vertices B1, C1, X, Y, and Z.
- Submesh 1 and submesh 2 are adjacent submeshes in the base mesh.
- Vertices B and B1 are the same vertex in the base mesh
- vertices C and C1 are the same vertex in the base mesh.
- the edge connecting vertices B and C in submesh 1, and the edge connecting vertices B1 and C1 in submesh 2 are each a boundary edge.
- submesh 1 is sub-divided 0 times
- submesh 2 is sub-divided once.
- the decoding device 200 generates submesh 1 shown in FIG. 67(b) by sub-dividing submesh 1 shown in FIG. 67(a) 0 times. That is, when the number of subdivisions is 0, the decoding device 200 does not sub-divide submesh 1 shown in FIG. 67(a) as shown in FIG. 67(b).
- the decoding device 200 generates submesh 2 shown in FIG. 67(f) by sub-dividing submesh 2 shown in FIG. 67(e) once. As shown in FIG.
- new vertices Q1, R, S, T, U, V, and W are added (generated) to submesh 2 by subdivision, and edges (additional edges) connecting these vertices are newly added (generated).
- the decoding device 200 creates a triangle inside submesh 2 by sub-dividing submesh 2.
- the decoding device 200 compares submesh 1 and submesh 2 to remove vertex Q, which has no corresponding vertex in submesh 2, from the boundary edge in submesh 1.
- FIG. 71 is a diagram illustrating another example of a syntax in which flag information related to an embodiment is signaled.
- flag information may be signaled for each submesh.
- flag (flag[i]) is equal to 1, it indicates that the modification process is applied to the submesh associated with the submesh_id.
- flag[i] is equal to 0
- flag[i] is set to 0.
- the flag information indicates whether or not to apply the correction process, but it may also be a flag indicating whether or not the vertices at the boundary edge match.
- the decoding device 200 may determine whether or not to apply the correction process based on the flag.
- the encoding device 100 may not need to transmit the submesh_id. In this case, it may be specified that the loop order is determined based on the submesh_id.
- method information is signaled in an SEI message in the bitstream.
- the method information indicates the identifier of the modification process to be applied to the submesh associated with the current frame.
- FIG. 74 is a diagram illustrating another example of a syntax in which method information related to an embodiment is signaled.
- the method information may indicate an identifier for a modification process to be applied to the submesh associated with the submesh_id.
- the modification process may be derived by the decoding device 200 without the method information being signaled in the bitstream.
- the decoding device 200 may compare the subdivision counts of the two submeshes, for example by calculating the difference in the subdivision counts between the two submeshes, and determine whether to add or remove a vertex. For example, if submesh 1 has a smaller number of subdivision counts than submesh 2, a modification process that adds a vertex is applied to submesh 1. On the other hand, if submesh 1 has a larger number of subdivision counts than submesh 2, a modification process that removes a vertex is applied to submesh 1. Also, for example, if submesh 1 has the same number of subdivision counts as submesh 2, no vertices are added or removed.
- a modification process for adding a vertex is applied to submesh 1.
- the method information indicates a process for deleting a vertex in the modification process, and submesh 1 has been sub-divided more times than submesh 2
- a modification process method for removing a vertex is applied to submesh 1.
- FIG. 70 the example shown in FIG. 71, the example shown in FIG. 73, and the example shown in FIG. 74 may be realized in combination.
- FIG. 76 is a diagram illustrating an example of the relationship between the number of subdivisions of multiple submeshes and flag information in an embodiment.
- submesh 3 is adjacent to submesh 1 and submesh 2, and their boundaries overlap. Furthermore, submesh 1 has been subdivision (iterations) once, submesh 2 has been subdivision twice, and submesh 3 has been subdivision twice. Therefore, the vertices in the boundary edge shared by submeshes 1 and 3 are likely to be different between the vertices generated by subdivision of submesh 1 and the vertices generated by subdivision of submesh 3. Furthermore, the vertices in the boundary edge shared by submeshes 2 and 3 are likely to be the same between the vertices generated by subdivision of submesh 2 and the vertices generated by subdivision of submesh 3.
- submesh 3 shares boundary edges with submeshes 1 and 2.
- the number of subdivisions at the boundary edges of submesh 3 is the same as that of submesh 2, but is not the same as that of submesh 1.
- submesh 3 is adjacent to submesh 1 and submesh 2, and their boundaries overlap. Furthermore, submesh 1 has been subdivision (iterations) once, submesh 2 has been subdivision three times, and submesh 3 has been subdivision two times. Therefore, the vertices at the boundary edge shared by submeshes 1 and 3 are likely to be different between the vertices generated when submesh 1 is subdivision and the vertices generated when submesh 3 is subdivision. Furthermore, the vertices at the boundary edge shared by submeshes 2 and 3 are likely to be different between the vertices generated when submesh 2 is subdivision and the vertices generated when submesh 3 is subdivision.
- the encoding device 100 sets the flag corresponding to submesh 1 to ON because submesh 1 shares a boundary only with submesh 3 and the number of subdivisions is not the same.
- the encoding device 100 sets the flag corresponding to submesh 3 to ON because submesh 3 shares boundary edges with submesh 1 and submesh 2 and has the same number of subdivisions as submesh 1 and submesh 2.
- the encoding device 100 may indicate method information for each submesh by indicating information for multiple submeshes adjacent to one submesh.
- the encoding device 100 determines that the vertices of the boundary edge are the same in the first mesh and the second mesh, and if the first and second numbers are not the same, the encoding device 100 determines that the vertices of the boundary edge are not the same in the first mesh and the second mesh. Also, for example, if the encoding device 100 determines that the vertices of the boundary edge are not the same in the first mesh and the second mesh, it encodes the connection information including the method information into a bit stream. For example, if the encoding device 100 determines that the vertices in the boundary edge are the same in the first mesh and the second mesh, it may generate a bitstream that does not include method information.
- the encoding device 100 may indicate in the bitstream (specifically, in the metadata included in the bitstream) a flag indicating whether or not the boundaries between the submeshes overlap, and, if the boundaries between the submeshes overlap, the type of overlap.
- the encoding device 100 may indicate that the submeshes may overlap with a flag.
- such a flag may be stored in a sequence-level parameter set, a frame-level parameter set, or both. If stored in both parameter sets, for example, the encoding device 100 overwrites the sequence-level parameter set with the frame-level parameter set.
- the decoding device 200 may determine that there is a possibility of overlapping boundaries, and further analyze the number of subdivisions for each submesh to determine whether the boundary vertices after subdivision will be the same or not, and determine whether the boundary vertices need to be modified.
- FIG. 79 is a diagram for explaining LoD according to an embodiment.
- each vertex generated after the base mesh is subdivided once is called LoD1.
- the vertices shown in the squares (vertices D, E, and F) belong to LoD1.
- the vertex generated after the second subdivision is designated as LoD2.
- this is the vertex indicated by a triangle (such as vertex G).
- vertex F of LoD1 is generated using vertices A and C of LoD0.
- vertices A and C are sometimes called the parent vertices of vertex F.
- a parent vertex is a vertex that belongs to the next higher LoD hierarchy.
- vertices A and C that belong to LoD0 are parent vertices of vertex F that belongs to LoD1.
- vertex A belonging to LoD0 and vertex F belonging to LoD1 are parent vertices of vertex G.
- vertex G is a child vertex of vertex A belonging to LoD0 and vertex F belonging to LoD1.
- at least one of the parent vertices is one level higher in the LoD hierarchy than the child vertex.
- the LoD hierarchy is sometimes called the LoD index.
- the LoD index of LoD0 is 0.
- the above method shows an example in which, when merging vertices at the overlapping boundary of multiple submeshes, vertices are generated and merged by adding and/or removing vertices based on information on whether to add or remove vertices.
- Another method is to calculate the distance between adjacent vertices (adjacent points) when joining vertices at the overlapping boundaries of multiple submeshes, and join vertices whose calculated distance is within a given threshold.
- the predetermined threshold may be set arbitrarily, and is not particularly limited.
- the encoding device 100 and the decoding device 200 below perform processing that takes into account the LoD hierarchy of the vertices when connecting vertices (also called boundary vertices) at the boundaries between multiple submeshes.
- a subdivided boundary vertex is only joined if its "parent vertex" is already joined.
- the encoding device 100 and/or the decoding device 200 create new triangles in the 3D geometry and UV map of the adjacent sub-meshes.
- the decoding device 200 combines vertices with the same LoD hierarchy on overlapping edges between adjacent submeshes that are targets of combination (i.e., vertices that are combined with a certain vertex), and does not combine points with different LoD hierarchies.
- two vertices to be combined may be combined if they are in the same LoD hierarchy and the distance between the vertices is within a predetermined threshold.
- the encoding device 100 and the decoding device 200 calculate the position coordinates of the joining point (the vertex generated by joining the two vertices) using a specified method.
- the calculated position coordinates may be, for example, the midpoint or center of gravity of the two points, or the position coordinates may be brought closer to one of the vertices by a weighting coefficient.
- the encoding device 100 and the decoding device 200 determine whether or not to combine a vertex in a lower hierarchical layer (i.e., a layer with a larger LoD index) than the higher hierarchical layer.
- the above conditions may solve the problem of meshes not being generated with the appropriate shape, such as high density vertices or holes in the mesh.
- the above subdivision described as being performed by the decoding device 200 may be performed by the encoding device 100.
- the encoding device 100 may or may not perform subdivision of the base mesh.
- the encoding device 100 may or may not combine the sub-divided sub-meshes after subdividing the sub-meshes.
- the modification process may be derived by the decoding device 200 without the method information being signaled in the bitstream.
- J, B, and Y are the position coordinates of vertices J, B, and Y, respectively.
- the position coordinates of vertex J may be determined based on the position coordinates of a vertex of the LoD (e.g., LoDN) in a higher hierarchy than vertex J.
- LoD e.g., LoDN
- the decoding device 200 uses vector AI and vector CK to calculate the shift amount of vertex B (vector BJ) for calculating the position coordinates of vertex J.
- the amount of calculations can be reduced by using vector information that has already been calculated.
- this embodiment has been described using submeshes as an example of multiple divided meshes, and taking the case of joining the submeshes as an example, but it can also be applied to mesh data other than submeshes.
- this embodiment can also be applied to units obtained by further dividing a submesh (e.g., mesh patches).
- the method of this embodiment may be applied when the number of subdivisions differs between mesh patches. In that case, information on whether to add or remove a vertex for a boundary edge where the LoD hierarchical levels do not match in mesh patch units may be signaled in the bitstream.
- the decoding device 200 may measure the quality of the mesh after the combination and decide to add or remove vertices based on the measured quality.
- the quality may be, for example, quality related to geometry such as the positions of the vertices, the shape of the mesh, and whether the mesh has holes, as well as quality measured based on the evaluation results of the entire mesh including the texture.
- position information of vertices included in polygons that make up the submeshes and connection information regarding the connection relationships of the vertices are obtained from the encoded bitstream (i.e., information is decoded), the polygons are generated using the position information and the connection information (i.e., faces are decoded), it is determined whether an edge that makes up the polygon is a boundary of the submesh (i.e., edge condition determination), a division process for the edge is determined based on the result of the determination (i.e., subdivision process is determined based on the result of the determination), and the edge is divided (subdivision) using the division process.
- the division process may include identifying a method for dividing the edge (division method).
- the division process may specify the number of times to divide the edge (number of divisions).
- the division process may specify the method and number of times to divide the edge (division method and number of divisions).
- the splitting process may be a process of generating new vertices based on position information of the multiple vertices that make up the edge (another definition of the splitting process).
- parameters that specify the splitting process may be decoded from the encoded bitstream (signaling of the splitting process).
- At least one of the division processes may be specified in advance (predetermined division process).
- the splitting process includes not splitting the edge (the option of not splitting).
- the determination process may determine whether or not one of the edges constituting the polygon to be processed is the boundary of the submesh (edge-by-edge determination process).
- the determination process may determine whether or not any of the edges constituting the polygon are edges that are the boundaries of the sub-mesh (determining whether the polygon includes a boundary edge).
- the submesh boundary may be an edge that includes multiple vertices that make up multiple submeshes at both ends (definition of boundary).
- the one side when one side of the processing target is the submesh boundary, the one side may be divided using a first division process.
- the side to be processed when the side to be processed is not the submesh boundary, the side may be divided using a second division process.
- the edge that is the submesh boundary may be divided using a first division process, and the edge that is not the submesh boundary may be divided using a second division process.
- all edges included in the polygon may be split using a second splitting process.
- the splitting process when the polygon includes an edge that is the submesh boundary, it may be determined whether the first splitting process and the second splitting process have a predetermined relationship, and the splitting process may be determined based on the determination result. For example, the splitting process may be switched based on the result of comparing the number of splits specified by the first splitting process and the second splitting process.
- first division process boundary division process
- second division process non-boundary division process
- the first division process and the second division process may be different processes (select different division processes).
- the first split process may be selected from a first split process group, and the second split process may be selected from a second split process group.
- the first split process group and the second split process group may include different split processes (selected from a plurality of split processes; the options are different).
- the same process may be selected that is common to multiple submeshes.
- processes may be selected from the same group in multiple submeshes.
- the first division process may be determined on a sequence-by-sequence or frame-by-frame basis. Furthermore, parameters used in the first division process may be encoded into the encoded bitstream.
- the second division process may be determined for each submesh. Furthermore, parameters used in the second division process may be encoded into the encoded bitstream.
- an encoding device of the present disclosure includes a circuit and a memory connected to the circuit, and the circuit, during operation, encodes a first submesh to generate first encoded data, encodes a second submesh to generate second encoded data, and in a decoding device, generates control information used to select a set of vertices including a first vertex included in the first submesh and a second vertex included in the second submesh, and generates a bitstream including the first encoded data, the second encoded data, and the control information, and the first vertex and the second vertex have the same level of detail (LoD) index value.
- LoD level of detail
- the decoding device of the present disclosure includes a circuit and a memory connected to the circuit, and the circuit, during operation, generates a first submesh and a second submesh, selects a set of vertices including a first vertex included in the first submesh and a second vertex included in the second submesh, modifies the position of the first vertex and the position of the second vertex to modified positions generated from the set of vertices, and the first vertex and the second vertex have the same level of detail (LoD) index value.
- LiD level of detail
- the encoding method of the present disclosure encodes a first submesh to generate first encoded data, encodes a second submesh to generate second encoded data, generates control information in a decoding device used to select a set of vertices including a first vertex included in the first submesh and a second vertex included in the second submesh, and generates a bitstream including the first encoded data, the second encoded data, and the control information, wherein the first vertex and the second vertex have the same level of detail (LoD) index value.
- LoD level of detail
- the decoding method of the present disclosure generates a first submesh and a second submesh, selects a set of vertices including a first vertex included in the first submesh and a second vertex included in the second submesh, modifies the position of the first vertex and the position of the second vertex to modified positions generated from the set of vertices, and the first vertex and the second vertex have the same level of detail (LoD) index value.
- LiD level of detail
- a predetermined subdivision method and/or a predetermined number of subdivisions may be used for subdivision of the boundary edge, or the encoding device may determine the subdivision method and/or the number of subdivisions and signal information indicative of the determined subdivision method and/or the number of subdivisions in the bitstream.
- each of the embodiments, parts of the components, and methods of the present disclosure enables at least one of, for example, improved encoding efficiency, improved image quality, reduced encoding/decoding processing volume, reduced circuit size, and improved encoding/decoding processing speed.
- each of the embodiments, parts of the components, and methods of the present disclosure enables appropriate selection of any of the elements or operations such as filters, blocks, sizes, motion vectors, reference pictures, and reference blocks in encoding and decoding.
- This disclosure includes disclosures of configurations and methods that can provide advantages other than those mentioned above. Examples of such configurations and methods include configurations and methods that improve encoding efficiency while suppressing an increase in processing volume.
- Fig. 90 is a flowchart showing an example of a basic decoding process according to this embodiment.
- the decoding device 200 shown in Fig. 25 includes a circuit 251 and a memory 252 connected to the circuit 251.
- the circuit 251 performs the following processes during operation.
- the decoding device 200 obtains a bitstream including encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating the three-dimensional positions of a plurality of vertices of the first base mesh and the second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in an attribute map corresponding to the plurality of three-dimensional coordinate values (S631).
- the three-dimensional coordinate values are, for example, the position information described above.
- the attribute map is, for example, the UV map described above.
- the two-dimensional coordinate values are, for example, the two-dimensional UV coordinates described above.
- the decoding device 200 receives the bitstream from the encoding device 100, for example.
- the decoding device 200 decodes the encoded 3D point data (S632).
- the first submesh and the second submesh are combined, for example, by combining the first boundary edge and the second boundary edge.
- the first submesh and the second submesh are combined, for example, by combining the vertices on the first boundary edge and the vertices on the second boundary edge.
- the vertices on the first boundary edge and the vertices on the second boundary edge are combined, for example, on a one-to-one basis. Therefore, according to the decoding method of Example 1, when the first submesh and the second submesh are combined, not only the positions (three-dimensional coordinate values) of each vertex to be combined, but also the total number of coordinate values (two-dimensional coordinate values) in the attribute map of each vertex to be combined are made uniform. Therefore, the accuracy of both the three-dimensional coordinate values and the two-dimensional coordinate values of the vertices of the mesh after the first submesh and the second submesh are combined can be improved.
- the first number of times and the second number of times may be different from each other.
- the first base mesh and the second base mesh have different numbers of subdivisions, there is a high possibility that the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh will be different after the subdivision. Therefore, when the first and second numbers of subdivisions are different, the above process can be used to make the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh uniform, thereby effectively improving the accuracy of both the three-dimensional coordinate values and the two-dimensional coordinate values of the vertices of the mesh after the first and second submeshes are combined.
- the decoding device 200 removes one or more vertices from a first boundary edge of a first submesh generated by sub-dividing a first base mesh a first number of times, or from a second boundary edge of a second submesh generated by sub-dividing a second base mesh a second number of times, thereby making the total number of the first vertices equal to the total number of the second vertices.
- the decoding device 200 in generating a three-dimensional mesh, the decoding device 200 generates a third object vertex from among the multiple connection points by connecting a first object vertex of the multiple first vertices and a second object vertex of the multiple second vertices, and in generating the third object vertex, calculates a third object three-dimensional coordinate value indicating the three-dimensional position of the third object vertex by calculating the average value of a first object three-dimensional coordinate value indicating the three-dimensional position of the first object vertex and a second object three-dimensional coordinate value indicating the three-dimensional position of the second object vertex, and calculates a third two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the third object three-dimensional coordinate value by calculating the average value of a first object two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the first object three-dimensional coordinate value and a second object two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the second object
- connection points This allows the three-dimensional and two-dimensional coordinate values of the connection points to be calculated.
- the encoding device 100 performs a process of matching the total number of first vertices on a first boundary edge of a first submesh based on a first base mesh with the total number of second vertices on a second boundary edge of a second submesh based on a second base mesh (S641).
- the encoding device 100 encodes encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating the three-dimensional positions of a plurality of vertices of the first base mesh and the second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the plurality of three-dimensional coordinate values (S642).
- the encoding device 100 corrects the encoding parameters of the coordinate values of the vertices of the base mesh, and encodes the coordinate values (e.g., three-dimensional coordinate values and two-dimensional coordinate values) of the vertices of the base mesh using the corrected encoding parameters. Note that the encoding device 100 may correct the value of the displacement vector based on the execution result of the above process.
- the encoding device 100 generates a bit stream including the encoded 3D point data (S643).
- the encoding device 100 transmits the generated bit stream to the decoding device 200, for example.
- the encoding device 100 (i) matches the total number of the first three-dimensional coordinate values indicating the three-dimensional positions of the first vertices with the total number of the second three-dimensional coordinate values indicating the three-dimensional positions of the second vertices, and (ii) matches the total number of the first two-dimensional coordinate values indicating the two-dimensional coordinates in the attribute map corresponding to the first three-dimensional coordinate values with the total number of the second two-dimensional coordinate values indicating the two-dimensional coordinates in the attribute map corresponding to the second three-dimensional coordinate values, thereby matching the total number of the first vertices with the total number of the second vertices.
- the encoding device 100 can encode the three-dimensional point data so that the three-dimensional and two-dimensional coordinate values of the vertices of the mesh after the first submesh and the second submesh are combined are close to those of the original mesh.
- the encoding device 100 may also perform a process of matching the total number of vertices on the above-mentioned boundary edges, as in the decoding device 200.
- the encoding device 100 further generates a first submesh by sub-dividing the first base mesh a first number of times, in which vertices corresponding to the first number of times are added to the multiple sides of the first base mesh, and generates a second submesh by sub-dividing the second base mesh a second number of times, in which vertices corresponding to the second number of times are added to the multiple sides of the second base mesh.
- a first submesh and a second submesh can be generated from a first base mesh and a second base mesh.
- the first number of times and the second number of times may be different from each other.
- the first base mesh and the second base mesh have different numbers of subdivisions, there is a high possibility that the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh will be different after the subdivision. Therefore, when the first and second numbers of subdivisions are different, the above process can be used to make the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh uniform, thereby effectively improving the accuracy of both the three-dimensional coordinate values and the two-dimensional coordinate values of the vertices of the mesh after the first and second submeshes are combined.
- the encoding device 100 adds one or more vertices to a first boundary edge of a first submesh generated by subdividing a first base mesh a first number of times, or to a second boundary edge of a second submesh generated by subdividing a second base mesh a second number of times, thereby making the total number of the first vertices equal to the total number of the second vertices.
- the encoding device 100 removes one or more vertices from a first boundary edge of a first submesh generated by sub-dividing a first base mesh a first number of times, or from a second boundary edge of a second submesh generated by sub-dividing a second base mesh a second number of times, thereby making the total number of the first vertices equal to the total number of the second vertices.
- the encoding device 100 generates a three-dimensional mesh by connecting the first submesh and the second submesh such that multiple connection points generated by connecting the multiple first vertices and the multiple second vertices are positioned on the boundary edges corresponding to the first boundary edge and the second boundary edge.
- the encoding device 100 in generating a three-dimensional mesh, the encoding device 100 generates a third object vertex from among the multiple connection points by connecting a first object vertex of the multiple first vertices and a second object vertex of the multiple second vertices, and in generating the third object vertex, calculates a third object three-dimensional coordinate value indicating the three-dimensional position of the third object vertex by calculating the average value of a first object three-dimensional coordinate value indicating the three-dimensional position of the first object vertex and a second object three-dimensional coordinate value indicating the three-dimensional position of the second object vertex, and calculates a third two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the third object three-dimensional coordinate value by calculating the average value of a first object two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the first object three-dimensional coordinate value and a second object two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the
- connection points This allows the three-dimensional and two-dimensional coordinate values of the connection points to be calculated.
- a process executed by a specific component may be executed by another component instead of the specific component.
- the order of multiple processes may be changed, and multiple processes may be executed in parallel.
- At least a portion of the configurations of the present disclosure may be implemented as an integrated circuit. At least a portion of the processes of the present disclosure may be used as an encoding method or a decoding method.
- a program for causing a computer to execute the encoding method or the decoding method may be used.
- a non-transitory computer-readable recording medium on which the program is recorded may be used.
- a bitstream for causing the decoding device 200 to perform the decoding process may be used.
- the present disclosure is useful, for example, for encoding devices, decoding devices, transmitting devices, and receiving devices related to three-dimensional meshes, and is applicable to computer graphics systems and three-dimensional data display systems, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本開示は、復号方法等に関する。 This disclosure relates to a decoding method, etc.
特許文献1において、三次元メッシュデータの符号化及び復号のための方法及び装置が提案されている。 Patent document 1 proposes a method and device for encoding and decoding three-dimensional mesh data.
三次元データに関する符号化または復号の処理について更なる改善が望まれている。本開示は、三次元データに関する符号化または復号の処理を改善することを目的とする。 Further improvements are desired in the encoding or decoding process for three-dimensional data. The present disclosure aims to improve the encoding or decoding process for three-dimensional data.
本開示の一態様に係る復号方法は、第1ベースメッシュ及び第2ベースメッシュが有する複数の頂点の三次元位置を示す複数の三次元座標値と、前記複数の三次元座標値に対応する、属性マップにおける二次元座標を示す複数の二次元座標値とを示す符号化された三次元点データを含むビットストリームを取得し、符号化された前記三次元点データを復号し、前記三次元点データに基づいて、前記第1ベースメッシュに基づく第1サブメッシュが有する第1境界エッジ上の複数の第1頂点の総数と、前記第2ベースメッシュに基づく第2サブメッシュが有する第2境界エッジ上の複数の第2頂点の総数とを一致させる処理を実行し、前記処理では、(i)前記複数の第1頂点の三次元位置を示す複数の第1三次元座標値の総数と、前記複数の第2頂点の三次元位置を示す複数の第2三次元座標値の総数とを一致させ、且つ、(ii)前記複数の第1三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第1二次元座標値の総数と、前記複数の第2三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第2二次元座標値の総数とを一致させることにより、前記複数の第1頂点の総数と前記複数の第2頂点の総数とを一致させる。 A decoding method according to one embodiment of the present disclosure includes obtaining a bit stream including encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating three-dimensional positions of a plurality of vertices of a first base mesh and a second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in an attribute map corresponding to the plurality of three-dimensional coordinate values, decoding the encoded three-dimensional point data, and calculating, based on the three-dimensional point data, a total number of a plurality of first vertices on a first boundary edge of a first submesh based on the first base mesh and a total number of a plurality of first vertices on a second boundary edge of a second submesh based on the second base mesh. and a process of matching the total number of the second vertices of the first vertices with the total number of the second vertices of the second vertices, in which (i) the total number of the first three-dimensional coordinate values indicating the three-dimensional positions of the first vertices is matched with the total number of the second three-dimensional coordinate values indicating the three-dimensional positions of the second vertices, and (ii) the total number of the first two-dimensional coordinate values indicating the two-dimensional coordinates in the attribute map corresponding to the first three-dimensional coordinate values is matched with the total number of the second two-dimensional coordinate values indicating the two-dimensional coordinates in the attribute map corresponding to the second three-dimensional coordinate values, thereby matching the total number of the first vertices with the total number of the second vertices.
なお、これらの包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム、又は、コンピュータ読み取り可能なCD-ROMなどの非一時的な記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム、及び、記録媒体の任意な組み合わせで実現されてもよい。 These comprehensive or specific aspects may be realized as a system, device, method, integrated circuit, computer program, or non-transitory recording medium such as a computer-readable CD-ROM, or as any combination of a system, device, method, integrated circuit, computer program, and recording medium.
本開示は、三次元データに関する復号処理等の改善に貢献し得る。 This disclosure may contribute to improvements in decoding processes related to three-dimensional data.
<序論(Introduction)>
例えば、三次元(3D)メッシュは、コンピュータグラフィックス映像に用いられる。例えば、コンピュータグラフィックス映像は、時間的に互いに異なる複数のフレームで構成され、各フレームが三次元メッシュによって表現されてもよい。
<Introduction>
For example, three-dimensional (3D) meshes are used in computer graphics images, which may be composed of multiple temporally distinct frames, each of which may be represented by a three-dimensional mesh.
また、三次元メッシュは、三次元空間における複数の頂点のそれぞれの位置を示す頂点情報、複数の頂点の間の接続を示す接続情報、及び、各頂点又は各面の属性を示す属性情報で構成される。各面は、複数の頂点の接続関係に従って構築される。このような三次元メッシュによって、様々なコンピュータグラフィックス映像が表現され得る。 A three-dimensional mesh is composed of vertex information indicating the positions of each of the multiple vertices in three-dimensional space, connection information indicating the connections between the multiple vertices, and attribute information indicating the attributes of each vertex or each face. Each face is constructed according to the connection relationships between the multiple vertices. A variety of computer graphic images can be expressed using such three-dimensional meshes.
また、三次元メッシュの伝送及び蓄積のため、三次元メッシュの効率的な符号化及び復号が期待される。三次元メッシュの効率的な符号化及び復号のため、算術符号化及び算術復号が用いられてもよい。 Furthermore, for the transmission and storage of the three-dimensional mesh, efficient encoding and decoding of the three-dimensional mesh is expected. For efficient encoding and decoding of the three-dimensional mesh, arithmetic encoding and arithmetic decoding may be used.
三次元データに関する符号化または復号の処理について更なる改善が望まれている。本開示は、三次元データに関する符号化または復号の処理を改善することを目的とする。 Further improvements are desired in the encoding or decoding process for three-dimensional data. The present disclosure aims to improve the encoding or decoding process for three-dimensional data.
以下、本明細書の開示内容から得られる発明を例示し、その発明から得られる効果等を説明する。 Below, we will present examples of inventions that can be obtained from the disclosures in this specification, and explain the effects and other aspects that can be obtained from these inventions.
例1の復号方法は、第1ベースメッシュ及び第2ベースメッシュが有する複数の頂点の三次元位置を示す複数の三次元座標値と、前記複数の三次元座標値に対応する、属性マップにおける二次元座標を示す複数の二次元座標値とを示す符号化された三次元点データを含むビットストリームを取得し、符号化された前記三次元点データを復号し、前記三次元点データに基づいて、前記第1ベースメッシュに基づく第1サブメッシュが有する第1境界エッジ上の複数の第1頂点の総数と、前記第2ベースメッシュに基づく第2サブメッシュが有する第2境界エッジ上の複数の第2頂点の総数とを一致させる処理を実行し、前記処理では、(i)前記複数の第1頂点の三次元位置を示す複数の第1三次元座標値の総数と、前記複数の第2頂点の三次元位置を示す複数の第2三次元座標値の総数とを一致させ、且つ、(ii)前記複数の第1三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第1二次元座標値の総数と、前記複数の第2三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第2二次元座標値の総数とを一致させることにより、前記複数の第1頂点の総数と前記複数の第2頂点の総数とを一致させる。 The decoding method of Example 1 acquires a bit stream including encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating the three-dimensional positions of a plurality of vertices of a first base mesh and a second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in an attribute map corresponding to the plurality of three-dimensional coordinate values, decodes the encoded three-dimensional point data, and determines, based on the three-dimensional point data, a total number of a plurality of first vertices on a first boundary edge of a first submesh based on the first base mesh and a total number of a plurality of second vertices on a second boundary edge of a second submesh based on the second base mesh. A process is performed to match the total number of the first vertices and the total number of the second vertices, in which (i) the total number of the first three-dimensional coordinate values indicating the three-dimensional positions of the first vertices is matched with the total number of the second three-dimensional coordinate values indicating the three-dimensional positions of the second vertices, and (ii) the total number of the first two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the first three-dimensional coordinate values is matched with the total number of the second two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the second three-dimensional coordinate values, thereby matching the total number of the first vertices and the total number of the second vertices.
第1サブメッシュと第2サブメッシュとは、例えば、第1境界エッジと第2境界エッジとが結合されることにより、結合される。言い換えると、第1サブメッシュと第2サブメッシュとは、例えば、第1境界エッジ上の頂点と第2境界エッジ上の頂点とが結合されることにより、結合される。第1境界エッジ上の頂点と第2境界エッジ上の頂点とは、例えば、1対1で結合される。したがって、例1の復号方法によれば、第1サブメッシュと第2サブメッシュとが結合される際に、結合される各頂点の位置(三次元座標値)だけでなく、結合される各頂点の属性マップにおける座標値(二次元座標値)も総数が揃うことになる。したがって、第1サブメッシュと第2サブメッシュとが結合された後のメッシュの頂点の三次元座標値と二次元座標値との両方の精度が向上され得る。 The first submesh and the second submesh are combined, for example, by combining the first boundary edge and the second boundary edge. In other words, the first submesh and the second submesh are combined, for example, by combining the vertices on the first boundary edge and the vertices on the second boundary edge. The vertices on the first boundary edge and the vertices on the second boundary edge are combined, for example, on a one-to-one basis. Therefore, according to the decoding method of Example 1, when the first submesh and the second submesh are combined, not only the positions (three-dimensional coordinate values) of each vertex to be combined, but also the total number of coordinate values (two-dimensional coordinate values) in the attribute map of each vertex to be combined are made uniform. Therefore, the accuracy of both the three-dimensional coordinate values and the two-dimensional coordinate values of the vertices of the mesh after the first submesh and the second submesh are combined can be improved.
例2の復号方法は、例1の復号方法であって、さらに、前記第1ベースメッシュを第1回数だけサブ分割することにより、前記第1ベースメッシュが有する複数の辺上に前記第1回数に応じた頂点を追加した前記第1サブメッシュを生成し、前記第2ベースメッシュを第2回数だけサブ分割することにより、前記第2ベースメッシュが有する複数の辺上に前記第2回数に応じた頂点を追加した前記第2サブメッシュを生成してもよい。 The decoding method of Example 2 may be the decoding method of Example 1, further comprising: sub-dividing the first base mesh a first number of times to generate the first sub-mesh by adding vertices to the multiple sides of the first base mesh according to the first number of times; and sub-dividing the second base mesh a second number of times to generate the second sub-mesh by adding vertices to the multiple sides of the second base mesh according to the second number of times.
これによれば、第1ベースメッシュ及び第2ベースメッシュから第1サブメッシュ及び第2サブメッシュが生成され得る。 In this way, a first submesh and a second submesh can be generated from a first base mesh and a second base mesh.
例3の復号方法は、例2に記載の復号方法であって、前記第1回数と前記第2回数とは、互いに異なる回数であってもよい。 The decoding method of Example 3 is the decoding method of Example 2, and the first number of times and the second number of times may be different from each other.
第1ベースメッシュと第2ベースメッシュとのサブ分割回数が異なると、サブ分割後には、第1サブメッシュにおける第1境界エッジ上、及び、第2サブメッシュにおける第2境界エッジ上の頂点の総数が異なる可能性が高い。したがって、第1回数と第2回数とが異なるような場合に、上記処理によって第1サブメッシュにおける第1境界エッジ上、及び、第2サブメッシュにおける第2境界エッジ上の頂点の総数が揃えられることにより、特に効果的に第1サブメッシュと第2サブメッシュとが結合された後のメッシュの頂点の三次元座標値と二次元座標値との両方の精度が向上され得る。 If the first base mesh and the second base mesh have different numbers of subdivisions, there is a high possibility that the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh will be different after the subdivision. Therefore, when the first and second numbers of subdivisions are different, the above process can be used to make the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh uniform, thereby effectively improving the accuracy of both the three-dimensional coordinate values and the two-dimensional coordinate values of the vertices of the mesh after the first and second submeshes are combined.
例4の復号方法は、例2又は例3の復号方法であって、前記処理では、前記第1ベースメッシュが前記第1回数だけサブ分割されることにより生成された前記第1サブメッシュが有する前記第1境界エッジ上、又は、前記第2ベースメッシュが前記第2回数だけサブ分割されることにより生成された前記第2サブメッシュが有する前記第2境界エッジ上に、1個以上の頂点を追加することで、前記複数の第1頂点の総数と前記複数の第2頂点の総数とを一致させてもよい。 The decoding method of Example 4 is the decoding method of Example 2 or Example 3, and in the process, one or more vertices may be added to the first boundary edge of the first submesh generated by subdividing the first base mesh the first number of times, or to the second boundary edge of the second submesh generated by subdividing the second base mesh the second number of times, thereby making the total number of the first vertices equal to the total number of the second vertices.
これによれば、第1サブメッシュにおける第1境界エッジ上、及び、第2サブメッシュにおける第2境界エッジ上の頂点の総数が揃えられ得る。 This allows the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh to be aligned.
例5の復号方法は、例2~例4のいずれかの復号方法であって、前記処理では、前記第1ベースメッシュが前記第1回数だけサブ分割されることにより生成された前記第1サブメッシュが有する前記第1境界エッジ上、又は、前記第2ベースメッシュが前記第2回数だけサブ分割されることにより生成された前記第2サブメッシュが有する前記第2境界エッジ上から、1個以上の頂点を除去することで、前記複数の第1頂点の総数と前記複数の第2頂点の総数とを一致させてもよい。 The decoding method of Example 5 is any of the decoding methods of Examples 2 to 4, and in the process, one or more vertices may be removed from the first boundary edge of the first submesh generated by sub-dividing the first base mesh the first number of times, or from the second boundary edge of the second submesh generated by sub-dividing the second base mesh the second number of times, to make the total number of the first vertices equal to the total number of the second vertices.
これによれば、第1サブメッシュにおける第1境界エッジ上、及び、第2サブメッシュにおける第2境界エッジ上の頂点の総数が揃えられ得る。 This allows the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh to be aligned.
例6の復号方法は、例1~例5のいずれかの復号方法であって、さらに、前記複数の第1頂点と前記複数の第2頂点とを結合することで生成された複数の結合点が、前記第1境界エッジ及び前記第2境界エッジに対応する境界エッジ上に配置されるように、前記第1サブメッシュと前記第2サブメッシュとを結合した三次元メッシュを生成してもよい。 The decoding method of Example 6 may be any of the decoding methods of Examples 1 to 5, and may further generate a three-dimensional mesh by combining the first submesh and the second submesh such that multiple connection points generated by combining the multiple first vertices and the multiple second vertices are positioned on boundary edges corresponding to the first boundary edge and the second boundary edge.
これによれば、第1ベースメッシュと第2ベースメッシュとから三次元メッシュが再構成される。 In this way, a three-dimensional mesh is reconstructed from the first base mesh and the second base mesh.
例7の復号方法は、例6の復号方法であって、前記三次元メッシュの生成では、前記複数の第1頂点のうちの第1対象頂点と、前記複数の第2頂点のうちの第2対象頂点とを結合することで、前記複数の結合点のうちの第3対象頂点を生成し、前記第3対象頂点の生成では、前記第1対象頂点の三次元位置を示す第1対象三次元座標値と、前記第2対象頂点の三次元位置を示す第2対象三次元座標値との平均値を算出することで、前記第3対象頂点の三次元位置を示す第3対象三次元座標値を算出し、前記第1対象三次元座標値に対応する、前記属性マップにおける二次元座標を示す第1対象二次元座標値と、前記第2対象三次元座標値に対応する、前記属性マップにおける二次元座標を示す第2対象二次元座標値との平均値を算出することで、前記第3対象三次元座標値に対応する、前記属性マップにおける二次元座標を示す第3二次元座標値を算出してもよい。 The decoding method of Example 7 is the decoding method of Example 6, and may include generating a third object vertex among the multiple connection points by combining a first object vertex among the multiple first vertices and a second object vertex among the multiple second vertices in the generation of the three-dimensional mesh, calculating a third object three-dimensional coordinate value indicating the three-dimensional position of the third object vertex by calculating an average value of a first object three-dimensional coordinate value indicating the three-dimensional position of the first object vertex and a second object three-dimensional coordinate value indicating the three-dimensional position of the second object vertex in the generation of the third object vertex, and calculating a third two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the third object three-dimensional coordinate value by calculating an average value of a first object two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the first object three-dimensional coordinate value and a second object two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the second object three-dimensional coordinate value.
これによれば、結合点の三次元座標値及び二次元座標値が算出され得る。 This allows the three-dimensional and two-dimensional coordinate values of the connection points to be calculated.
例8の符号化方法は、第1ベースメッシュに基づく第1サブメッシュが有する第1境界エッジ上の複数の第1頂点の総数と、第2ベースメッシュに基づく第2サブメッシュが有する第2境界エッジ上の複数の第2頂点の総数とを一致させる処理を実行し、前記処理の実行結果に基づいて、前記第1ベースメッシュ及び前記第2ベースメッシュが有する複数の頂点の三次元位置を示す複数の三次元座標値と、前記複数の三次元座標値に対応する、属性マップにおける二次元座標を示す複数の二次元座標値とを示す符号化された三次元点データを符号化し、符号化された前記三次元点データを含むビットストリームを生成し、前記処理では、(i)前記複数の第1頂点の三次元位置を示す複数の第1三次元座標値の総数と、前記複数の第2頂点の三次元位置を示す複数の第2三次元座標値の総数とを一致させ、且つ、(ii)前記複数の第1三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第1二次元座標値の総数と、前記複数の第2三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第2二次元座標値の総数とを一致させることにより、前記複数の第1頂点の総数と前記複数の第2頂点の総数とを一致させる。 The encoding method of Example 8 performs a process of matching the total number of a plurality of first vertices on a first boundary edge of a first submesh based on a first base mesh with the total number of a plurality of second vertices on a second boundary edge of a second submesh based on a second base mesh, and based on the result of the process, encodes encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating the three-dimensional positions of a plurality of vertices of the first base mesh and the second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in an attribute map corresponding to the plurality of three-dimensional coordinate values, and A bit stream including data is generated, and in the process, (i) the total number of the first three-dimensional coordinate values indicating the three-dimensional positions of the first vertices is made equal to the total number of the second three-dimensional coordinate values indicating the three-dimensional positions of the second vertices, and (ii) the total number of the first two-dimensional coordinate values indicating the two-dimensional coordinates in the attribute map corresponding to the first three-dimensional coordinate values is made equal to the total number of the second two-dimensional coordinate values indicating the two-dimensional coordinates in the attribute map corresponding to the second three-dimensional coordinate values, thereby making the total number of the first vertices equal to the total number of the second vertices.
これによれば、第1サブメッシュと第2サブメッシュとが結合された後のメッシュの頂点の三次元座標値と二次元座標値とが、本来のメッシュに近くなるように、三次元点データを符号化できる。 This allows the three-dimensional point data to be encoded so that the three-dimensional and two-dimensional coordinate values of the vertices of the mesh after the first and second submeshes are combined are close to those of the original mesh.
例9の復号装置は、回路と、前記回路に接続されたメモリと、を備え、前記回路が、動作中に、第1ベースメッシュ及び第2ベースメッシュが有する複数の頂点の三次元位置を示す複数の三次元座標値と、前記複数の三次元座標値に対応する、属性マップにおける二次元座標を示す複数の二次元座標値とを示す符号化された三次元点データを含むビットストリームを取得し、符号化された前記三次元点データを復号し、前記三次元点データに基づいて、前記第1ベースメッシュに基づく第1サブメッシュが有する第1境界エッジ上の複数の第1頂点の総数と、前記第2ベースメッシュに基づく第2サブメッシュが有する第2境界エッジ上の複数の第2頂点の総数とを一致させる処理を実行し、前記処理では、(i)前記複数の第1頂点の三次元位置を示す複数の第1三次元座標値の総数と、前記複数の第2頂点の三次元位置を示す複数の第2三次元座標値の総数とを一致させ、且つ、(ii)前記複数の第1三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第1二次元座標値の総数と、前記複数の第2三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第2二次元座標値の総数とを一致させることにより、前記複数の第1頂点の総数と前記複数の第2頂点の総数とを一致させる。 The decoding device of Example 9 comprises a circuit and a memory connected to the circuit, and during operation, the circuit acquires a bit stream including encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating three-dimensional positions of a plurality of vertices of a first base mesh and a second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in an attribute map corresponding to the plurality of three-dimensional coordinate values, decodes the encoded three-dimensional point data, and determines, based on the three-dimensional point data, a total number of a plurality of first vertices on a first boundary edge of a first submesh based on the first base mesh and a number of first vertices on a first boundary edge of a second submesh based on the second base mesh. and a process of matching the total number of the second vertices on the second boundary edge corresponding to the first vertices, in which (i) the total number of the first three-dimensional coordinate values indicating the three-dimensional positions of the first vertices is matched with the total number of the second three-dimensional coordinate values indicating the three-dimensional positions of the second vertices, and (ii) the total number of the first two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the first three-dimensional coordinate values is matched with the total number of the second two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the second three-dimensional coordinate values, thereby matching the total number of the first vertices with the total number of the second vertices.
これによれば、例1の復号方法と同様の効果を奏する。 This provides the same effect as the decoding method in Example 1.
例10の符号化装置は、回路と、前記回路に接続されたメモリと、を備え、前記回路が、動作中に、第1ベースメッシュに基づく第1サブメッシュが有する第1境界エッジ上の複数の第1頂点の総数と、第2ベースメッシュに基づく第2サブメッシュが有する第2境界エッジ上の複数の第2頂点の総数とを一致させる処理を実行し、前記処理の実行結果に基づいて、前記第1ベースメッシュ及び前記第2ベースメッシュが有する複数の頂点の三次元位置を示す複数の三次元座標値と、前記複数の三次元座標値に対応する、属性マップにおける二次元座標を示す複数の二次元座標値とを示す符号化された三次元点データを符号化し、符号化された前記三次元点データを含むビットストリームを生成し、前記処理では、(i)前記複数の第1頂点の三次元位置を示す複数の第1三次元座標値の総数と、前記複数の第2頂点の三次元位置を示す複数の第2三次元座標値の総数とを一致させ、且つ、(ii)前記複数の第1三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第1二次元座標値の総数と、前記複数の第2三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第2二次元座標値の総数とを一致させることにより、前記複数の第1頂点の総数と前記複数の第2頂点の総数とを一致させる。 The encoding device of Example 10 comprises a circuit and a memory connected to the circuit, and during operation, the circuit executes a process for matching a total number of a plurality of first vertices on a first boundary edge of a first submesh based on a first base mesh with a total number of a plurality of second vertices on a second boundary edge of a second submesh based on a second base mesh, and generates, based on a result of the execution of the process, encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating three-dimensional positions of a plurality of vertices of the first base mesh and the second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in an attribute map corresponding to the plurality of three-dimensional coordinate values. and generating a bit stream including the encoded three-dimensional point data, the process (i) matching the total number of the first three-dimensional coordinate values indicating the three-dimensional positions of the first vertices with the total number of the second three-dimensional coordinate values indicating the three-dimensional positions of the second vertices, and (ii) matching the total number of the first two-dimensional coordinate values indicating the two-dimensional coordinates in the attribute map corresponding to the first three-dimensional coordinate values with the total number of the second two-dimensional coordinate values indicating the two-dimensional coordinates in the attribute map corresponding to the second three-dimensional coordinate values, thereby matching the total number of the first vertices with the total number of the second vertices.
これによれば、例8の符号化方法と同様の効果を奏する。 This provides the same effect as the encoding method of Example 8.
さらに、これらの包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム、又は、コンピュータ読み取り可能なCD-ROMなどの非一時的な記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム、及び、記録媒体の任意な組み合わせで実現されてもよい。 Furthermore, these comprehensive or specific aspects may be realized in a system, device, method, integrated circuit, computer program, or non-transitory recording medium such as a computer-readable CD-ROM, or in any combination of a system, device, method, integrated circuit, computer program, and recording medium.
<表現及び用語>
ここでは、以下のような表現及び用語が用いられる。
<Expressions and terms>
The following expressions and terms are used herein:
(1)三次元メッシュ
三次元メッシュは、複数の面の集合であり、例えば、三次元物体を示す。また、三次元メッシュは、主に、頂点情報、接続情報及び属性情報で構成される。三次元メッシュは、ポリゴンメッシュ又はメッシュと表現される場合がある。また、三次元メッシュは、時間的な変化を有していてもよい。三次元メッシュは、頂点情報、接続情報及び属性情報に関するメタデータを含んでいてもよいし、その他の付加情報を含んでいてもよい。
(1) Three-dimensional mesh A three-dimensional mesh is a collection of multiple faces, and represents, for example, a three-dimensional object. A three-dimensional mesh is mainly composed of vertex information, connection information, and attribute information. A three-dimensional mesh may be expressed as a polygon mesh or a mesh. A three-dimensional mesh may have a temporal change. A three-dimensional mesh may include metadata related to the vertex information, connection information, and attribute information, and may include other additional information.
(2)頂点情報
頂点情報は、頂点(Vertex)を示す情報である。例えば、頂点情報は、三次元空間における頂点の位置を示す。また、頂点は、三次元メッシュを構成する面の頂点に対応する。頂点情報は、「Geometory(ジオメトリ)」と表現される場合がある。また、頂点情報は、位置情報と表現される場合もある。
(2) Vertex Information Vertex information is information indicating a vertex. For example, the vertex information indicates the position of a vertex in a three-dimensional space. Furthermore, the vertex corresponds to the vertex of a face that constitutes a three-dimensional mesh. Vertex information may be expressed as "geometry." Furthermore, vertex information may be expressed as position information.
(3)接続情報
接続情報は、頂点間の接続を示す情報である。例えば、接続情報は、三次元メッシュの面又は辺を構成するための接続を示す。接続情報は、「Connectivity(コネクティビティ)」と表現される場合がある。また、接続情報は、面情報と表現される場合もある。
(3) Connection Information The connection information is information indicating a connection between vertices. For example, the connection information indicates a connection for forming a face or an edge of a three-dimensional mesh. The connection information may be expressed as "Connectivity." The connection information may also be expressed as face information.
(4)属性情報
属性情報は、頂点又は面の属性を示す情報である。例えば、属性情報は、頂点又は面に対応付けられる色、画像及び法線ベクトル等の属性を示す。属性情報は、「Texture(テクスチャ)」と表現される場合がある。
(4) Attribute Information The attribute information is information indicating attributes of a vertex or a face. For example, the attribute information indicates attributes such as a color, an image, and a normal vector associated with a vertex or a face. The attribute information may be expressed as "Texture."
(5)面
面は、三次元メッシュを構成する要素である。具体的には、面は、三次元空間における平面上のポリゴンである。例えば、面は、三次元空間における三角形として定められ得る。
(5) Faces A face is an element that constitutes a three-dimensional mesh. Specifically, a face is a polygon on a plane in three-dimensional space. For example, a face can be defined as a triangle in three-dimensional space.
(6)平面
平面は、三次元空間における二次元平面である。例えば、平面上にポリゴンが形成され、複数の平面上に複数のポリゴンが形成される。
(6) Plane A plane is a two-dimensional plane in a three-dimensional space. For example, a polygon is formed on a plane, and multiple polygons are formed on multiple planes.
(7)ビットストリーム
ビットストリームは、符号化された情報に対応する。ビットストリームは、ストリーム、符号化ビットストリーム、圧縮ビットストリーム、又は、符号化信号とも表現され得る。
(7) Bitstream A bitstream corresponds to encoded information. A bitstream may also be expressed as a stream, an encoded bitstream, a compressed bitstream, or an encoded signal.
(8)符号化及び復号
符号化するという表現は、格納する、含める、書き込む、記述する、信号化する、送り出す、通知する、保存する、又は、圧縮する等の表現に置き換えられてもよく、これらの表現が相互に置き換えられてもよい。例えば、情報を符号化することは、ビットストリームに情報を含めることであってもよい。また、情報をビットストリームに符号化することは、情報を符号化して、符号化された情報を含むビットストリームを生成することを意味してもよい。
(8) Encoding and Decoding The term encoding may be substituted with terms such as storing, including, writing, describing, signaling, sending, notifying, saving, or compressing, and these terms may be substituted with each other. For example, encoding information may mean including information in a bitstream. Also, encoding information into a bitstream may mean encoding information to generate a bitstream that includes the encoded information.
また、復号するという表現は、読み出す、読み解く、読み取る、読み込む、導出する、取得する、受け取る、抽出する、復元する、再構成する、圧縮解除する、又は、伸張する等の表現に置き換えられてもよく、これらの表現が相互に置き換えられてもよい。例えば、情報を復号することは、ビットストリームから情報を取得することであってもよい。また、ビットストリームから情報を復号することは、ビットストリームを復号して、ビットストリームに含まれる情報を取得することを意味してもよい。 The term "decode" may also be replaced with terms such as "read out," "interpret," "read," "load," "derive," "obtain," "receive," "extract," "restore," "reconstruct," "decompress," or "expand," and these terms may be replaced with each other. For example, decoding information may mean obtaining information from a bitstream. Decoding information from a bitstream may mean decoding the bitstream to obtain information contained in the bitstream.
(9)序数
説明において、第1及び第2等の序数が、構成要素などに対して付けられる場合がある。これらの序数は、適宜、付け替えられてもよい。また、構成要素などに対して、序数が新たに与えられてもよいし、取り除かれてもよい。また、これらの序数は、要素を識別するため、要素に付けられる場合があり、意味のある順序に対応しない場合がある。
(9) Ordinal Numbers In the description, ordinal numbers such as first and second may be given to components, etc. These ordinal numbers may be changed as appropriate. In addition, new ordinal numbers may be given to components, etc., or removed. In addition, these ordinal numbers may be given to elements in order to identify the elements, and may not correspond to a meaningful order.
<三次元メッシュ>
図1は、本実施の形態に係る三次元メッシュを示す概念図である。三次元メッシュは、複数の面で構成される。例えば、各面は、三角形である。これらの三角形の頂点は、三次元空間において定められる。そして、三次元メッシュは、三次元物体を示す。各面は、色又は画像を有していてもよい。
<3D mesh>
FIG. 1 is a conceptual diagram showing a three-dimensional mesh according to the present embodiment. The three-dimensional mesh is composed of a number of faces. For example, each face is a triangle. The vertices of these triangles are defined in a three-dimensional space. The three-dimensional mesh then represents a three-dimensional object. Each face may have a color or an image.
図2は、本実施の形態に係る三次元メッシュの基本要素を示す概念図である。三次元メッシュは、頂点情報、接続情報及び属性情報で構成される。頂点情報は、三次元空間における面の頂点の位置を示す。接続情報は、頂点間の接続を示す。頂点情報及び接続情報によって面が特定され得る。つまり、頂点情報及び接続情報によって、色を有していない三次元物体が三次元空間に形成される。 FIG. 2 is a conceptual diagram showing the basic elements of a three-dimensional mesh according to this embodiment. A three-dimensional mesh is composed of vertex information, connection information, and attribute information. The vertex information indicates the positions of the vertices of a face in three-dimensional space. The connection information indicates the connections between the vertices. A face can be identified by the vertex information and connection information. In other words, a colorless three-dimensional object is formed in three-dimensional space by the vertex information and connection information.
属性情報は、頂点に対応付けられていてもよいし、面に対応付けられていてもよい。頂点に対応付けられた属性情報は、「Attribute Per Point」と表現される場合がある。頂点に対応付けられた属性情報は、頂点自体の属性を示していてもよいし、頂点に接続される面の属性を示してもよい。 The attribute information may be associated with a vertex or with a face. Attribute information associated with a vertex may be expressed as "Attribute Per Point." Attribute information associated with a vertex may indicate the attributes of the vertex itself, or may indicate the attributes of the face connected to the vertex.
例えば、頂点に色が属性情報として対応付けられていてもよい。頂点に対応づけられた色は、頂点の色であってもよいし、頂点に接続される面の色であってもよい。面の色は、面の複数の頂点に対応付けられた複数の色の平均であってもよい。また、頂点又は面に法線ベクトルが属性情報として対応付けられていてもよい。このような法線ベクトルは、面の表及び裏を表現し得る。 For example, a color may be associated with a vertex as attribute information. The color associated with a vertex may be the color of the vertex, or the color of the face connected to the vertex. The color of a face may be the average of multiple colors associated with multiple vertices of the face. In addition, a normal vector may be associated with a vertex or face as attribute information. Such a normal vector can represent the front and back of a face.
また、面に二次元画像が属性情報として対応付けられていてもよい。面に対応づけられる二次元画像は、テクスチャ画像、又は、「Attribute Map」とも表現される。また、面と二次元画像とのマッピングを示す情報が属性情報として面に対応付けられていてもよい。このようなマッピングを示す情報は、マッピング情報、テクスチャ画像の頂点情報、テクスチャ座標、又は、「Attribute UV Coordinate」と表現される場合がある。 Furthermore, a two-dimensional image may be associated with a surface as attribute information. The two-dimensional image associated with a surface is also expressed as a texture image or an "Attribute Map." Furthermore, information indicating the mapping between the surface and the two-dimensional image may be associated with the surface as attribute information. Such information indicating the mapping may be expressed as mapping information, vertex information of a texture image, texture coordinates, or "Attribute UV Coordinate."
さらに、属性情報として用いられる色、画像及び動画像等の情報は、「Parametric Space」と表現される場合がある。 Furthermore, information such as colors, images, and moving images used as attribute information may be expressed as "Parametric Space."
このような属性情報によって、三次元物体にテクスチャが反映され得る。すなわち、頂点情報、接続情報及び属性情報によって、色を有する三次元物体が三次元空間に形成される。 This attribute information allows texture to be reflected on the three-dimensional object. In other words, a three-dimensional object with color is formed in three-dimensional space using vertex information, connection information, and attribute information.
なお、上記において、属性情報は、頂点又は面に対応付けられているが、辺に対応付けられていてもよい。 In the above, the attribute information is associated with vertices or faces, but it may also be associated with edges.
図3は、本実施の形態に係るマッピングを示す概念図である。例えば、三次元空間における三次元メッシュの面に、二次元平面における二次元画像の領域がマッピングされ得る。具体的には、三次元メッシュの面に対して、二次元画像における領域の座標情報が対応付けられる。これにより、三次元メッシュの面に、二次元画像においてマッピングされた領域の画像が反映される。 FIG. 3 is a conceptual diagram showing mapping according to this embodiment. For example, a region of a two-dimensional image on a two-dimensional plane can be mapped onto a surface of a three-dimensional mesh in three-dimensional space. Specifically, coordinate information of the region in the two-dimensional image is associated with the surface of the three-dimensional mesh. This causes the image of the mapped region in the two-dimensional image to be reflected on the surface of the three-dimensional mesh.
マッピングが用いられることにより、属性情報として用いられる二次元画像が三次元メッシュから分離され得る。例えば、三次元メッシュの符号化において、二次元画像は、画像符号化方式又は映像符号化方式によって、符号化されてもよい。 By using mapping, the two-dimensional image used as attribute information can be separated from the three-dimensional mesh. For example, in encoding the three-dimensional mesh, the two-dimensional image may be encoded by an image encoding method or a video encoding method.
<システム構成>
図4は、本実施の形態に係る符号化復号システムの構成例を示すブロック図である。図4において、符号化復号システムは、符号化装置100及び復号装置200を備える。
<System Configuration>
4 is a block diagram showing an example of the configuration of a coding/decoding system according to this embodiment. In FIG. 4, the coding/decoding system includes a coding device 100 and a decoding device 200.
例えば、符号化装置100は、三次元メッシュを取得し、三次元メッシュをビットストリームに符号化する。そして、符号化装置100は、ビットストリームをネットワーク300に出力する。例えば、ビットストリームには、符号化された三次元メッシュと、符号化された三次元メッシュを復号するための制御情報とが含まれる。三次元メッシュが符号化されることによって、三次元メッシュの情報が圧縮される。 For example, the encoding device 100 obtains a three-dimensional mesh and encodes the three-dimensional mesh into a bitstream. The encoding device 100 then outputs the bitstream to the network 300. For example, the bitstream includes the encoded three-dimensional mesh and control information for decoding the encoded three-dimensional mesh. By encoding the three-dimensional mesh, the information of the three-dimensional mesh is compressed.
ネットワーク300は、ビットストリームを符号化装置100から復号装置200へ伝送する。ネットワーク300は、インターネット、広域ネットワーク(WAN:Wide Area Network)、小規模ネットワーク(LAN:Local Area Network)、又は、これらの組み合わせであってもよい。ネットワーク300は、必ずしも双方向の通信に限らず、地上デジタル放送又は衛星放送等のための一方向の通信網であってもよい。 The network 300 transmits the bit stream from the encoding device 100 to the decoding device 200. The network 300 may be the Internet, a wide area network (WAN), a local area network (LAN), or a combination of these. The network 300 is not necessarily limited to bidirectional communication, and may be a one-way communication network for terrestrial digital broadcasting, satellite broadcasting, etc.
また、ネットワーク300は、DVD(Digital Versatile Disc)、又は、BD(Blu-Ray Disc(登録商標))等の記録媒体によって代替され得る。 The network 300 can also be replaced by a recording medium such as a DVD (Digital Versatile Disc) or a BD (Blu-Ray Disc (registered trademark)).
復号装置200は、ビットストリームを取得し、ビットストリームから三次元メッシュを復号する。三次元メッシュの復号によって、三次元メッシュの情報は伸張される。例えば、復号装置200は、符号化装置100が三次元メッシュを符号化するための符号化方法に対応する復号方法に従って三次元メッシュを復号する。すなわち、符号化装置100及び復号装置200は、互いに対応する符号化方法及び復号方法に従って、符号化及び復号を行う。 The decoding device 200 obtains a bit stream and decodes a three-dimensional mesh from the bit stream. By decoding the three-dimensional mesh, the information of the three-dimensional mesh is expanded. For example, the decoding device 200 decodes the three-dimensional mesh according to a decoding method that corresponds to the encoding method used by the encoding device 100 to encode the three-dimensional mesh. That is, the encoding device 100 and the decoding device 200 perform encoding and decoding according to encoding methods and decoding methods that correspond to each other.
なお、符号化前の三次元メッシュは、原三次元メッシュとも表現され得る。また、復号後の三次元メッシュは、再構成三次元メッシュとも表現される。 The 3D mesh before encoding can also be referred to as the original 3D mesh. The 3D mesh after decoding can also be referred to as the reconstructed 3D mesh.
<符号化装置>
図5は、本実施の形態に係る符号化装置100の構成例を示すブロック図である。例えば、符号化装置100は、頂点情報符号化器101、接続情報符号化器102及び属性情報符号化器103を備える。
<Encoding device>
5 is a block diagram showing an example of the configuration of an encoding device 100 according to this embodiment. For example, the encoding device 100 includes a vertex information encoder 101, a connection information encoder 102, and an attribute information encoder 103.
頂点情報符号化器101は、頂点情報を符号化する電気回路である。例えば、頂点情報符号化器101は、頂点情報に対して規定された形式に従って頂点情報をビットストリームに符号化する。 The vertex information encoder 101 is an electrical circuit that encodes vertex information. For example, the vertex information encoder 101 encodes the vertex information into a bit stream according to a format defined for the vertex information.
接続情報符号化器102は、接続情報を符号化する電気回路である。例えば、接続情報符号化器102は、接続情報に対して規定された形式に従って接続情報をビットストリームに符号化する。 The connection information encoder 102 is an electrical circuit that encodes the connection information. For example, the connection information encoder 102 encodes the connection information into a bit stream according to a format defined for the connection information.
属性情報符号化器103は、属性情報を符号化する電気回路である。例えば、属性情報符号化器103は、属性情報に対して規定された形式に従って属性情報をビットストリームに符号化する。 The attribute information encoder 103 is an electrical circuit that encodes the attribute information. For example, the attribute information encoder 103 encodes the attribute information into a bit stream according to a format defined for the attribute information.
頂点情報、接続情報及び属性情報の符号化には、可変長符号化が用いられてもよいし、固定長符号化が用いられてもよい。可変長符号化は、ハフマン符号化又はコンテキスト適応型二値算術符号化(CABAC)等に対応していてもよい。 The vertex information, connection information, and attribute information may be encoded using variable-length coding or fixed-length coding. The variable-length coding may correspond to Huffman coding or context-adaptive binary arithmetic coding (CABAC), etc.
頂点情報符号化器101、接続情報符号化器102及び属性情報符号化器103は、一体化されていてもよい。あるいは、頂点情報符号化器101、接続情報符号化器102及び属性情報符号化器103のそれぞれが、より細かく複数の構成要素に細分化されていてもよい。 The vertex information encoder 101, the connection information encoder 102, and the attribute information encoder 103 may be integrated. Alternatively, each of the vertex information encoder 101, the connection information encoder 102, and the attribute information encoder 103 may be further subdivided into multiple components.
図6は、本実施の形態に係る符号化装置100の別の構成例を示すブロック図である。例えば、符号化装置100は、図5に示された構成に加えて、前処理器104及び後処理器105を備える。 FIG. 6 is a block diagram showing another example of the configuration of the encoding device 100 according to this embodiment. For example, the encoding device 100 includes a pre-processor 104 and a post-processor 105 in addition to the configuration shown in FIG. 5.
前処理器104は、頂点情報、接続情報及び属性情報の符号化前に、処理を行う電気回路である。例えば、前処理器104は、符号化前の三次元メッシュに対して、変換処理、分離処理、又は、多重化処理等を行ってもよい。より具体的には、例えば、前処理器104は、符号化前の三次元メッシュから頂点情報、接続情報及び属性情報を分離してもよい。 The preprocessor 104 is an electrical circuit that performs processing before encoding the vertex information, connection information, and attribute information. For example, the preprocessor 104 may perform conversion processing, separation processing, multiplexing processing, etc. on the three-dimensional mesh before encoding. More specifically, for example, the preprocessor 104 may separate the vertex information, connection information, and attribute information from the three-dimensional mesh before encoding.
後処理器105は、頂点情報、接続情報及び属性情報の符号化後に、処理を行う電気回路である。例えば、後処理器105は、符号化後の頂点情報、接続情報及び属性情報に対して、変換処理、分離処理、又は、多重化処理等を行ってもよい。より具体的には、例えば、後処理器105は、符号化後の頂点情報、接続情報及び属性情報をビットストリームに多重化してもよい。また、例えば、後処理器105は、符号化後の頂点情報、接続情報及び属性情報に対して、さらに可変長符号化を行ってもよい。 The post-processor 105 is an electrical circuit that performs processing after the vertex information, connection information, and attribute information are encoded. For example, the post-processor 105 may perform conversion processing, separation processing, multiplexing processing, etc. on the encoded vertex information, connection information, and attribute information. More specifically, for example, the post-processor 105 may multiplex the encoded vertex information, connection information, and attribute information into a bit stream. Also, for example, the post-processor 105 may further perform variable-length coding on the encoded vertex information, connection information, and attribute information.
<復号装置>
図7は、本実施の形態に係る復号装置200の構成例を示すブロック図である。例えば、復号装置200は、頂点情報復号器201、接続情報復号器202及び属性情報復号器203を備える。
<Decoding device>
7 is a block diagram showing an example of the configuration of a decoding device 200 according to this embodiment. For example, the decoding device 200 includes a vertex information decoder 201, a connection information decoder 202, and an attribute information decoder 203.
頂点情報復号器201は、頂点情報を復号する電気回路である。例えば、頂点情報復号器201は、頂点情報に対して規定された形式に従って頂点情報をビットストリームから復号する。 The vertex information decoder 201 is an electrical circuit that decodes vertex information. For example, the vertex information decoder 201 decodes the vertex information from the bit stream according to a format defined for the vertex information.
接続情報復号器202は、接続情報を復号する電気回路である。例えば、接続情報復号器202は、接続情報に対して規定された形式に従って接続情報をビットストリームから復号する。 The connection information decoder 202 is an electrical circuit that decodes the connection information. For example, the connection information decoder 202 decodes the connection information from the bit stream according to a format defined for the connection information.
属性情報復号器203は、属性情報を復号する電気回路である。例えば、属性情報復号器203は、属性情報に対して規定された形式に従って属性情報をビットストリームから復号する。 The attribute information decoder 203 is an electrical circuit that decodes the attribute information. For example, the attribute information decoder 203 decodes the attribute information from the bit stream according to a format defined for the attribute information.
頂点情報、接続情報及び属性情報の復号には、可変長復号が用いられてもよいし、固定長復号が用いられてもよい。可変長復号は、ハフマン符号化又はコンテキスト適応型二値算術符号化(CABAC)等に対応していてもよい。 Vertex information, connection information, and attribute information may be decoded using variable length decoding or fixed length decoding. Variable length decoding may correspond to Huffman coding or context-adaptive binary arithmetic coding (CABAC), etc.
頂点情報復号器201、接続情報復号器202及び属性情報復号器203は、一体化されていてもよい。あるいは、頂点情報復号器201、接続情報復号器202及び属性情報復号器203のそれぞれが、より細かく複数の構成要素に細分化されていてもよい。 The vertex information decoder 201, the connection information decoder 202, and the attribute information decoder 203 may be integrated. Alternatively, each of the vertex information decoder 201, the connection information decoder 202, and the attribute information decoder 203 may be divided into multiple components.
図8は、本実施の形態に係る復号装置200の別の構成例を示すブロック図である。例えば、復号装置200は、図7に示された構成に加えて、前処理器204及び後処理器205を備える。 FIG. 8 is a block diagram showing another example of the configuration of the decoding device 200 according to this embodiment. For example, the decoding device 200 includes a pre-processor 204 and a post-processor 205 in addition to the configuration shown in FIG. 7.
前処理器204は、頂点情報、接続情報及び属性情報の復号前に、処理を行う電気回路である。例えば、前処理器204は、頂点情報、接続情報及び属性情報の復号前に、ビットストリームに対して、変換処理、分離処理、又は、多重化処理等を行ってもよい。 The pre-processor 204 is an electrical circuit that performs processing before the vertex information, connection information, and attribute information are decoded. For example, the pre-processor 204 may perform conversion processing, separation processing, multiplexing processing, or the like on the bit stream before the vertex information, connection information, and attribute information are decoded.
より具体的には、例えば、前処理器204は、ビットストリームから、頂点情報に対応するサブビットストリーム、接続情報に対応するサブビットストリーム、及び、属性情報に対応するサブビットストリームを分離してもよい。また、例えば、前処理器204は、頂点情報、接続情報及び属性情報の復号前に、事前にビットストリームに対して可変長復号を行ってもよい。 More specifically, for example, the preprocessor 204 may separate from the bitstream a sub-bitstream corresponding to the vertex information, a sub-bitstream corresponding to the connection information, and a sub-bitstream corresponding to the attribute information. Also, for example, the preprocessor 204 may perform variable length decoding on the bitstream in advance before decoding the vertex information, connection information, and attribute information.
後処理器205は、頂点情報、接続情報及び属性情報の復号後に、処理を行う電気回路である。例えば、後処理器205は、復号後の頂点情報、接続情報及び属性情報に対して、変換処理、分離処理、又は、多重化処理等を行ってもよい。より具体的には、例えば、後処理器205は、復号後の頂点情報、接続情報及び属性情報を三次元メッシュに多重化してもよい。 The post-processor 205 is an electrical circuit that performs processing after the vertex information, connection information, and attribute information are decoded. For example, the post-processor 205 may perform conversion processing, separation processing, multiplexing processing, etc. on the decoded vertex information, connection information, and attribute information. More specifically, for example, the post-processor 205 may multiplex the decoded vertex information, connection information, and attribute information into a three-dimensional mesh.
<ビットストリーム>
頂点情報、接続情報及び属性情報は、符号化されて、ビットストリームに格納される。これらの情報とビットストリームの関係を以下に示す。
<Bitstream>
The vertex information, connection information, and attribute information are encoded and stored in a bitstream. The relationship between these pieces of information and the bitstream is shown below.
図9は、本実施の形態に係るビットストリームの構成例を示す概念図である。この例において、接続情報、頂点情報及び属性情報は、ビットストリームにおいて一体化される。例えば、接続情報、頂点情報及び属性情報は、1つのファイルに含まれていてもよい。 FIG. 9 is a conceptual diagram showing an example of the configuration of a bitstream according to this embodiment. In this example, the connection information, vertex information, and attribute information are integrated in the bitstream. For example, the connection information, vertex information, and attribute information may be included in a single file.
また、接続情報の第1部分、頂点情報の第1部分、属性情報の第1部分、接続情報の第2部分、頂点情報の第2部分、属性情報の第2部分、・・・のように、これらの情報の複数の部分が順次格納されてもよい。これらの複数の部分は、時間的に異なる複数の部分に対応していてもよいし、空間的に異なる複数の部分に対応していてもよいし、異なる複数の面に対応していてもよい。 Furthermore, multiple parts of this information may be stored sequentially, such as a first part of connection information, a first part of vertex information, a first part of attribute information, a second part of connection information, a second part of vertex information, a second part of attribute information, etc. These multiple parts may correspond to multiple parts that are different in time, multiple parts that are different in space, or multiple different faces.
また、接続情報、頂点情報及び属性情報の格納順序は、上記の例に限られず、上記の例とは異なる格納順序が用いられてもよい。 In addition, the order in which the connection information, vertex information, and attribute information are stored is not limited to the above example, and a storage order different from the above example may be used.
図10は、本実施の形態に係るビットストリームの別の構成例を示す概念図である。この例において、複数のファイルがビットストリームに含まれ、接続情報、頂点情報及び属性情報が、それぞれ異なるファイルに格納される。ここでは、接続情報を含むファイルと、頂点情報を含むファイルと、属性情報を含むファイルとが示されているが、格納形式は、このような例に限られない。例えば、接続情報、頂点情報及び属性情報のうち2種類の情報が、1つのファイルに含まれ、残りの1種類の情報が、別のファイルに含まれてもよい。 FIG. 10 is a conceptual diagram showing another example of the configuration of a bitstream according to this embodiment. In this example, multiple files are included in the bitstream, and connection information, vertex information, and attribute information are each stored in different files. Here, a file containing connection information, a file containing vertex information, and a file containing attribute information are shown, but the storage format is not limited to this example. For example, two types of information out of the connection information, vertex information, and attribute information may be included in one file, and the remaining type of information may be included in another file.
あるいは、これらの情報は、より多くのファイルに分割して格納されてもよい。例えば、接続情報の複数の部分が複数のファイルに格納されてもよいし、頂点情報の複数の部分が複数のファイルに格納されてもよいし、属性情報の複数の部分が複数のファイルに格納されてもよい。これらの複数の部分は、時間的に異なる複数の部分に対応していてもよいし、空間的に異なる複数の部分に対応していてもよいし、異なる複数の面に対応していてもよい。 Alternatively, this information may be split and stored in more files. For example, multiple parts of the connection information may be stored in multiple files, multiple parts of the vertex information may be stored in multiple files, or multiple parts of the attribute information may be stored in multiple files. These multiple parts may correspond to multiple parts that are different in time, multiple parts that are different in space, or multiple different faces.
また、接続情報、頂点情報及び属性情報の格納順序は、上記の例に限られず、上記の例とは異なる格納順序が用いられてもよい。 In addition, the order in which the connection information, vertex information, and attribute information are stored is not limited to the above example, and a storage order different from the above example may be used.
図11は、本実施の形態に係るビットストリームの別の構成例を示す概念図である。この例において、分離可能な複数のサブビットストリームによってビットストリームが構成され、接続情報、頂点情報及び属性情報が、それぞれ異なるサブビットストリームに格納される。 FIG. 11 is a conceptual diagram showing another example of the configuration of a bitstream according to this embodiment. In this example, the bitstream is composed of multiple separable sub-bitstreams, and connection information, vertex information, and attribute information are each stored in a different sub-bitstream.
ここでは、接続情報を含むサブビットストリームと、頂点情報を含むサブビットストリームと、属性情報を含むサブビットストリームとが示されているが、格納形式は、このような例に限られない。 Here, a sub-bitstream containing connection information, a sub-bitstream containing vertex information, and a sub-bitstream containing attribute information are shown, but the storage format is not limited to this example.
例えば、接続情報、頂点情報及び属性情報のうち2種類の情報が、1つのサブビットストリームに含まれ、残りの1種類の情報が、別のサブビットストリームに含まれてもよい。具体的には、二次元画像等の属性情報が、接続情報及び頂点情報のサブビットストリームとは別に、画像符号化方式に準拠するサブビットストリームに格納されてもよい。 For example, two types of information among the connection information, vertex information, and attribute information may be included in one sub-bitstream, and the remaining type of information may be included in another sub-bitstream. Specifically, attribute information of a two-dimensional image or the like may be stored in a sub-bitstream that complies with an image coding method, separate from the sub-bitstreams of connection information and vertex information.
また、各サブビットストリームに複数のファイルが含まれていてもよい。そして、接続情報の複数の部分が複数のファイルに格納されてもよいし、頂点情報の複数の部分が複数のファイルに格納されてもよいし、属性情報の複数の部分が複数のファイルに格納されてもよい。 Furthermore, each sub-bitstream may include multiple files. And, multiple pieces of the connection information may be stored in multiple files, multiple pieces of the vertex information may be stored in multiple files, and multiple pieces of the attribute information may be stored in multiple files.
また、接続情報、頂点情報及び属性情報の格納順序は、図9、図10及び図11の例に限られず、上記の例とは異なる格納順序が用いられてもよい。例えば、頂点情報、接続情報及び属性情報の順にこれらがビットストリームに格納されていてもよい。あるいは、それ以外の例えば、接続情報、属性情報及び頂点情報の順、頂点情報、属性情報及び接続情報の順、属性情報、接続情報及び頂点情報の順、及び、属性情報、頂点情報及び接続情報の順のいずれかの順でこれらがビットストリームに格納されてもよい。 Furthermore, the storage order of the connection information, vertex information, and attribute information is not limited to the examples in Figures 9, 10, and 11, and a storage order different from the above examples may be used. For example, these may be stored in the bit stream in the order of vertex information, connection information, and attribute information. Alternatively, these may be stored in the bit stream in any of the following orders: connection information, attribute information, and vertex information; vertex information, attribute information, and connection information; attribute information, connection information, and vertex information; and attribute information, vertex information, and connection information.
また、接続情報、頂点情報及び属性情報のそれぞれが複数のデータに分割され、当該複数のデータがビットストリーム内に周期的な順又はランダムな順で格納されていてもよい。 In addition, each of the connection information, vertex information, and attribute information may be divided into multiple pieces of data, and the multiple pieces of data may be stored in a periodic or random order within the bit stream.
<具体例>
図12は、本実施の形態に係る符号化復号システムの具体例を示すブロック図である。図12において、符号化復号システムは、三次元データ符号化システム110、三次元データ復号システム210及び外部接続器310を備える。
<Specific examples>
12 is a block diagram showing a specific example of an encoding/decoding system according to this embodiment. In FIG. 12, the encoding/decoding system includes a three-dimensional data encoding system 110, a three-dimensional data decoding system 210, and an external connector 310.
三次元データ符号化システム110は、制御器111、入出力処理器112、三次元データ符号化器113、三次元データ生成器115、及び、システム多重化器114を備える。三次元データ復号システム210は、制御器211、入出力処理器212、三次元データ復号器213、システム逆多重化器214、提示器215、及び、ユーザインタフェース216を備える。 The three-dimensional data encoding system 110 comprises a controller 111, an input/output processor 112, a three-dimensional data encoder 113, a three-dimensional data generator 115, and a system multiplexer 114. The three-dimensional data decoding system 210 comprises a controller 211, an input/output processor 212, a three-dimensional data decoder 213, a system demultiplexer 214, a presenter 215, and a user interface 216.
三次元データ符号化システム110では、センサ端末から三次元データ生成器115にセンサデータが入力される。三次元データ生成器115は、センサデータから、点群データ又はメッシュデータ等である三次元データを生成し、三次元データ符号化器113へ入力する。 In the three-dimensional data encoding system 110, sensor data is input from a sensor terminal to a three-dimensional data generator 115. The three-dimensional data generator 115 generates three-dimensional data, such as point cloud data or mesh data, from the sensor data and inputs it to the three-dimensional data encoder 113.
例えば、三次元データ生成器115は、頂点情報を生成し、頂点情報に対応する接続情報及び属性情報を生成する。三次元データ生成器115は、接続情報及び属性情報を生成する際に、頂点情報を加工してもよい。例えば、三次元データ生成器115は、重複する頂点を削除することでデータ量を減らしたり、頂点情報の変換(位置シフト、回転又は正規化など)を行ったりしてもよい。また、三次元データ生成器115は、属性情報をレンダリングしてもよい。 For example, the three-dimensional data generator 115 generates vertex information, and generates connection information and attribute information corresponding to the vertex information. The three-dimensional data generator 115 may process the vertex information when generating the connection information and attribute information. For example, the three-dimensional data generator 115 may reduce the amount of data by deleting duplicate vertices, or may transform the vertex information (such as by shifting the position, rotating, or normalizing). The three-dimensional data generator 115 may also render the attribute information.
また、三次元データ生成器115は、図12において三次元データ符号化システム110の構成要素であるが、三次元データ符号化システム110から独立して外部に配置されてもよい。 In addition, although the three-dimensional data generator 115 is a component of the three-dimensional data encoding system 110 in FIG. 12, it may be disposed externally and independently of the three-dimensional data encoding system 110.
三次元データを生成するためのセンサデータを提供するセンサ端末は、例えば、自動車などの移動体、飛行機などの飛行物体、携帯端末、又は、カメラ等であってもよい。また、LIDAR、ミリ波レーダ、赤外線センサ又はレンジファインダなどの距離センサ、ステレオカメラ、あるいは、複数の単眼カメラの組み合わせ等がセンサ端末として用いられてもよい。 The sensor terminal that provides the sensor data for generating the three-dimensional data may be, for example, a moving body such as an automobile, a flying object such as an airplane, a mobile terminal, or a camera. In addition, a distance sensor such as a LIDAR, a millimeter wave radar, an infrared sensor, or a range finder, a stereo camera, or a combination of multiple monocular cameras may be used as the sensor terminal.
センサデータは、対象物の距離(位置)、単眼カメラ画像、ステレオカメラ画像、色、反射率、センサの姿勢、向き、ジャイロ、センシング位置(GPS情報又は高度)、速度、加速度、センシング時刻、気温、気圧、湿度、又は、磁気などであってもよい。 Sensor data may be the distance (position) of the object, monocular camera images, stereo camera images, color, reflectance, sensor attitude, orientation, gyro, sensing position (GPS information or altitude), speed, acceleration, sensing time, temperature, air pressure, humidity, or magnetism, etc.
三次元データ符号化器113は、図5等に示された符号化装置100に対応する。例えば、三次元データ符号化器113は、三次元データを符号化し、符号化データを生成する。また、三次元データ符号化器113は、三次元データの符号化において、制御情報を生成する。そして、三次元データ符号化器113は、符号化データを制御情報と共にシステム多重化器114へ入力する。 The three-dimensional data encoder 113 corresponds to the encoding device 100 shown in FIG. 5 etc. For example, the three-dimensional data encoder 113 encodes three-dimensional data to generate encoded data. The three-dimensional data encoder 113 also generates control information in encoding the three-dimensional data. The three-dimensional data encoder 113 then inputs the encoded data together with the control information to the system multiplexer 114.
三次元データの符号化方式は、ジオメトリを用いる符号化方式であってもよいし、ビデオコーデックを用いる符号化方式であってもよい。ここでは、ジオメトリを用いる符号化方式は、ジオメトリベース符号化方式とも表現され得る。ビデオコーデックを用いる符号化方式は、ビデオベース符号化方式とも表現される。 The encoding method for three-dimensional data may be an encoding method that uses geometry, or an encoding method that uses a video codec. Here, the encoding method that uses geometry may also be expressed as a geometry-based encoding method. The encoding method that uses a video codec is also expressed as a video-based encoding method.
システム多重化器114は、三次元データ符号化器113から入力された符号化データ及び制御情報を多重化し、規定の多重化方式を用いて多重化データを生成する。システム多重化器114は、三次元データの符号化データ及び制御情報と共に、映像、音声、字幕、アプリケーションデータ又はドキュメントファイルなどの他のメディア、あるいは、基準時刻情報等を多重化してもよい。さらに、システム多重化器114は、センサデータ又は三次元データに関連する属性情報を多重化してもよい。 The system multiplexer 114 multiplexes the encoded data and control information input from the three-dimensional data encoder 113, and generates multiplexed data using a specified multiplexing method. The system multiplexer 114 may multiplex other media such as video, audio, subtitles, application data, or document files, or reference time information, together with the encoded data and control information of the three-dimensional data. Furthermore, the system multiplexer 114 may multiplex attribute information related to the sensor data or the three-dimensional data.
例えば、多重化データは、蓄積のためのファイル形式、又は、伝送のためのパケット形式等を有する。これらの方式として、ISOBMFF、又は、ISOBMFFベースの方式が用いられてもよい。また、MPEG-DASH、MMT、MPEG-2 TS Systems、又は、RTPなどが用いられてもよい。 For example, the multiplexed data has a file format for storage, or a packet format for transmission. As these formats, ISOBMFF or a format based on ISOBMFF may be used. Also, MPEG-DASH, MMT, MPEG-2 TS Systems, RTP, etc. may be used.
そして、多重化データは、入出力処理器112によって外部接続器310へ伝送信号として出力される。多重化データは、伝送信号として、有線によって伝送されてもよいし、無線によって伝送されてもよい。あるいは、多重化データは、内部メモリ又は記憶装置に蓄積される。多重化データは、インターネット経由でクラウドサーバに伝送されてもよいし、外部記憶装置に記憶されてもよい。 Then, the multiplexed data is output as a transmission signal to the external connector 310 by the input/output processor 112. The multiplexed data may be transmitted as a transmission signal by wire or wirelessly. Alternatively, the multiplexed data is stored in an internal memory or storage device. The multiplexed data may be transmitted to a cloud server via the Internet, or may be stored in an external storage device.
例えば、多重化データの伝送又は蓄積は、放送又は通信など、伝送又は蓄積のための媒体に応じた方法で行われる。通信プロトコルとして、http、ftp、TCP、UDP、IP、又は、これらの組み合わせなどが用いられてもよい。また、PULL型の通信方式が用いられてもよいし、PUSH型の通信方式を用いられてもよい。 For example, the transmission or storage of the multiplexed data is performed in a manner appropriate to the medium for transmission or storage, such as broadcasting or communication. As a communication protocol, http, ftp, TCP, UDP, IP, or a combination of these may be used. Also, a PULL type communication method or a PUSH type communication method may be used.
有線の伝送に、Ethernet(登録商標)、USB、RS-232C、HDMI(登録商標)又は同軸ケーブルなどが用いられてもよい。また、無線の伝送に、3GPP(登録商標)、IEEEで規定される3G/4G/5G、無線LAN、Wi-Fi、Bluetooth、又は、ミリ波が用いられてもよい。また、放送の方式として、例えばDVB-T2、DVB-S2、DVB-C2、ATSC3.0、又は、ISDB-S3などが用いられてもよい。 For wired transmission, Ethernet (registered trademark), USB, RS-232C, HDMI (registered trademark), coaxial cable, etc. may be used. For wireless transmission, 3GPP (registered trademark), 3G/4G/5G defined by IEEE, wireless LAN, Wi-Fi, Bluetooth, or millimeter waves may be used. For broadcasting, for example, DVB-T2, DVB-S2, DVB-C2, ATSC3.0, or ISDB-S3 may be used.
なお、センサデータが、三次元データ生成器115又はシステム多重化器114へ入力されてもよい。また、三次元データ又は符号化データが、入出力処理器112を介して外部接続器310へそのまま伝送信号として出力されてもよい。三次元データ符号化システム110から出力された伝送信号は、外部接続器310を介して、三次元データ復号システム210に入力される。 The sensor data may be input to the three-dimensional data generator 115 or the system multiplexer 114. The three-dimensional data or encoded data may be output directly as a transmission signal to the external connector 310 via the input/output processor 112. The transmission signal output from the three-dimensional data encoding system 110 is input to the three-dimensional data decoding system 210 via the external connector 310.
また、三次元データ符号化システム110の各動作は、アプリケーションプログラムを実行する制御器111によって制御されてもよい。 Furthermore, each operation of the three-dimensional data encoding system 110 may be controlled by a controller 111 that executes an application program.
三次元データ復号システム210では、入出力処理器212に伝送信号が入力される。入出力処理器212は、伝送信号から、ファイル形式又はパケット形式を有する多重化データを復号し、多重化データをシステム逆多重化器214へ入力する。システム逆多重化器214は、多重化データから符号化データ及び制御情報を取得し、三次元データ復号器213へ入力する。システム逆多重化器214は、多重化データから他のメディア又は基準時刻情報などを抽出してもよい。 In the three-dimensional data decoding system 210, a transmission signal is input to an input/output processor 212. The input/output processor 212 decodes multiplexed data having a file format or packet format from the transmission signal, and inputs the multiplexed data to a system demultiplexer 214. The system demultiplexer 214 obtains encoded data and control information from the multiplexed data, and inputs them to a three-dimensional data decoder 213. The system demultiplexer 214 may extract other media or reference time information from the multiplexed data.
三次元データ復号器213は、図7等に示された復号装置200に対応する。例えば、三次元データ復号器213は、符号化データから、予め規定された符号化方式に基づいて三次元データを復号する。その後、三次元データは、提示器215によってユーザに提示される。 The three-dimensional data decoder 213 corresponds to the decoding device 200 shown in FIG. 7 etc. For example, the three-dimensional data decoder 213 decodes three-dimensional data from the encoded data based on a predefined encoding method. The three-dimensional data is then presented to the user by the presenter 215.
また、センサデータなどの付加情報が提示器215へ入力されてもよい。提示器215は、付加情報に基づいて三次元データを提示してもよい。また、ユーザ端末からユーザインタフェース216へユーザの指示が入力されてもよい。そして、提示器215は、入力された指示に基づいて三次元データを提示してもよい。 Furthermore, additional information such as sensor data may be input to the presenter 215. The presenter 215 may present three-dimensional data based on the additional information. Furthermore, a user's instruction may be input from a user terminal to the user interface 216. Then, the presenter 215 may present three-dimensional data based on the input instruction.
なお、入出力処理器212は、外部接続器310から三次元データ及び符号化データを取得してもよい。 The input/output processor 212 may also obtain the three-dimensional data and encoded data from the external connector 310.
また、三次元データ復号システム210の各動作は、アプリケーションプログラムを実行する制御器211によって制御されてもよい。 Furthermore, each operation of the three-dimensional data decoding system 210 may be controlled by a controller 211 that executes an application program.
図13は、本実施の形態に係る点群データの構成例を示す概念図である。点群データは、三次元物体を示す点群のデータである。 FIG. 13 is a conceptual diagram showing an example of the configuration of point cloud data according to this embodiment. The point cloud data is data of a group of points that represent a three-dimensional object.
具体的には、点群(Point Cloud)は、複数の点で構成され、各点の三次元座標位置(Position)を示す位置情報、及び、各点の属性(Attribute)を示す属性情報を有する。位置情報は、ジオメトリ(Geometry)とも表現される。 Specifically, a point cloud is made up of multiple points, and has position information indicating the three-dimensional coordinate position (Position) of each point, and attribute information indicating the attributes (Attribute) of each point. Position information is also expressed as geometry.
属性情報の種別は、例えば色又は反射率などであってもよい。1つの点に、1つの種別に関する属性情報に対応付けられていてもよいし、1つの点に、複数の異なる種別に関する属性情報に対応付けられていてもよいし、1つの点に、同じ種別に関して複数の値を有する属性情報に対応付けられていてもよい。 The type of attribute information may be, for example, color or reflectance. A single point may be associated with attribute information of one type, a single point may be associated with attribute information of multiple different types, or a single point may be associated with attribute information having multiple values for the same type.
図14は、本実施の形態に係る点群データのデータファイル例を示す概念図である。この例では、位置情報の項目と属性情報の項目とが1対1に対応する場合の例であり、点群データを構成するN個の点の位置情報及び属性情報を示している。この例において、位置情報は、x、y及びzの3軸で三次元座標位置を示す情報であり、属性情報は、RGBで色を示す情報である。点群データの代表的なデータファイルとして、PLYファイルなどが用いられ得る。 FIG. 14 is a conceptual diagram showing an example of a data file of point cloud data according to this embodiment. In this example, there is a one-to-one correspondence between location information items and attribute information items, and the location information and attribute information of N points that make up the point cloud data are shown. In this example, the location information is information that indicates a three-dimensional coordinate position using three axes, x, y, and z, and the attribute information is information that indicates a color using RGB. A PLY file or the like can be used as a representative data file for point cloud data.
図15は、本実施の形態に係るメッシュデータの構成例を示す概念図である。メッシュデータは、CG(Computer Graphics)等に用いられるデータであって、複数の面で対象物の三次元形状を示す三次元メッシュのデータである。各面は、ポリゴンとも表現され、三角形又は四角形などの多角形の形状を有する。 FIG. 15 is a conceptual diagram showing an example of the configuration of mesh data according to this embodiment. Mesh data is data used in CG (Computer Graphics) and the like, and is three-dimensional mesh data that shows the three-dimensional shape of an object with multiple faces. Each face is also expressed as a polygon, and has a polygonal shape such as a triangle or a rectangle.
具体的には、三次元メッシュは、点群を構成する複数の点に加えて、複数の辺(Edge)、及び、複数の面(Face)で構成される。各点は、頂点(Vertex)又は位置(Position)とも表現される。各辺は、2つの頂点で結ばれた線分に対応する。各面は、3つ以上の辺で囲まれた領域に対応する。 Specifically, a 3D mesh is made up of multiple edges and faces, in addition to multiple points that make up a point cloud. Each point is also expressed as a vertex or position. Each edge corresponds to a line segment connected by two vertices. Each face corresponds to an area surrounded by three or more edges.
また、三次元メッシュは、頂点の三次元座標位置を示す位置情報を有する。位置情報は、頂点情報又はジオメトリ(Geometory)とも表現される。また、三次元メッシュは、辺又は面を構成する複数の頂点の関係性を示す接続情報を有する。接続情報は、接続性(Connectivity)とも表現される。また、三次元メッシュは、頂点、辺又は面に対する属性を示す属性情報を有する。三次元メッシュにおける属性情報は、テクスチャ(Texture)とも表現される。 A three-dimensional mesh also has position information indicating the three-dimensional coordinate positions of the vertices. The position information is also expressed as vertex information or geometry. A three-dimensional mesh also has connection information indicating the relationship between the multiple vertices that make up an edge or face. The connection information is also expressed as connectivity. A three-dimensional mesh also has attribute information indicating the attributes of the vertices, edges, or faces. The attribute information in a three-dimensional mesh is also expressed as texture.
例えば、属性情報は、頂点、辺又は面に対する色、反射率又は法線ベクトルを示してもよい。法線ベクトルの向きは、面の表及び裏を表現し得る。 For example, attribute information may indicate color, reflectance, or normal vectors for a vertex, edge, or face. The orientation of the normal vector may represent the front and back of a face.
メッシュデータのデータファイル形式として、オブジェクトファイル等が用いられてもよい。 An object file or the like may be used as the data file format for mesh data.
図16は、本実施の形態に係るメッシュデータのデータファイル例を示す概念図である。この例において、データファイルには、三次元メッシュを構成するN個の頂点の位置情報G(1)~G(N)、及び、N個の頂点の属性情報A1(1)~A1(N)が含まれる。また、この例において、M個の属性情報A2(1)~A2(M)が含まれる。属性情報の項目は、頂点に1対1に対応していなくてもよいし、面に1対1に対応していなくてもよい。また、属性情報は、存在しなくてもよい。 FIG. 16 is a conceptual diagram showing an example data file of mesh data according to this embodiment. In this example, the data file contains position information G(1) to G(N) of the N vertices that make up the three-dimensional mesh, and attribute information A1(1) to A1(N) of the N vertices. In this example, M pieces of attribute information A2(1) to A2(M) are also included. The attribute information items do not have to correspond one-to-one to the vertices, and do not have to correspond one-to-one to the faces. Also, the attribute information does not have to exist.
接続情報は、頂点のインデックスの組み合わせで示される。n[1、3、4]は、n=1、n=3、及び、n=4の3つの頂点で構成される三角形の面を示す。また、m[2、4、6]は、3つの頂点に対してm=2、m=4、m=6の属性情報がそれぞれ対応することを示す。 The connection information is represented by a combination of vertex indices. n[1, 3, 4] indicates a triangular face composed of three vertices, n=1, n=3, and n=4. Furthermore, m[2, 4, 6] indicates that the attribute information of m=2, m=4, and m=6 corresponds to the three vertices, respectively.
また、属性情報の実質的な内容が、別のファイルに記載されてもよい。そして、その内容に対するポインタが、頂点又は面等に対応付けられていてもよい。例えば、面に対する画像を示す属性情報が、二次元の属性マップ(Attribute Map)ファイルに格納されてもよい。そして、属性マップのファイル名、及び、属性マップにおける二次元座標値が、属性情報A2(1)~A2(M)に記載されてもよい。面に対して属性情報を指定する方法は、これらの方法に限られず、どのような方法が用いられてもよい。 In addition, the actual contents of the attribute information may be recorded in a separate file. A pointer to that content may then be associated with a vertex, face, or the like. For example, attribute information indicating an image for a face may be stored in a two-dimensional attribute map file. The file name of the attribute map and two-dimensional coordinate values in the attribute map may then be recorded in attribute information A2(1)-A2(M). The method of specifying attribute information for a face is not limited to these methods, and any method may be used.
図17は、本実施の形態に係る三次元データの種類を示す概念図である。点群データ及びメッシュデータは、静的オブジェクトを示してもよいし、動的オブジェクトを示してもよい。静的オブジェクトは、時間的に変化しないオブジェクトであり、動的オブジェクトは、時間的に変化するオブジェクトである。静的オブジェクトは、任意の時点に対する三次元データに対応していてもよい。 FIG. 17 is a conceptual diagram showing the types of three-dimensional data according to this embodiment. The point cloud data and mesh data may represent static objects or dynamic objects. A static object is an object that does not change over time, and a dynamic object is an object that changes over time. A static object may correspond to three-dimensional data for any point in time.
例えば、任意の時点に対する点群データは、PCCフレームと表現される場合がある。また、任意の時点に対するメッシュデータは、メッシュフレームと表現される場合がある。さらに、PCCフレーム及びメッシュフレームは、単にフレームと表現される場合がある。 For example, point cloud data for any point in time may be referred to as a PCC frame. Mesh data for any point in time may be referred to as a mesh frame. Furthermore, PCC frames and mesh frames may simply be referred to as frames.
また、オブジェクトの領域は、通常の映像データのように、一定の範囲に制限されていてもよいし、地図データのように、制限されていなくてもよい。また、点又は面の密度は様々に定められ得る。疎な点群データ又は疎なメッシュデータが用いられてもよいし、密な点群データ又は密なメッシュデータが用いられてもよい。 The area of the object may be limited to a certain range, as in normal video data, or may not be limited, as in map data. The density of points or surfaces may be determined in various ways. Sparse point cloud data or sparse mesh data may be used, or dense point cloud data or dense mesh data may be used.
次に、点群又は三次元メッシュの符号化及び復号について説明する。本開示における三次元メッシュの頂点情報の符号化及び復号のための装置、処理又はシンタックスが、点群の符号化及び復号に適用されてもよい。本開示における点群の符号化及び復号のための装置、処理又はシンタックスが、三次元メッシュの頂点情報の符号化及び復号に適用されてもよい。 Next, the encoding and decoding of point clouds or three-dimensional meshes will be described. The device, process, or syntax for encoding and decoding vertex information of a three-dimensional mesh in this disclosure may be applied to the encoding and decoding of point clouds. The device, process, or syntax for encoding and decoding vertex information of a three-dimensional mesh in this disclosure may be applied to the encoding and decoding of point clouds.
また、本開示における点群の属性情報の符号化及び復号のための装置、処理又はシンタックスが、三次元メッシュの接続情報又は属性情報の符号化及び復号に適用されてもよい。また、本開示における三次元メッシュの接続情報又は属性情報の符号化及び復号のための装置、処理又はシンタックスが、点群の属性情報の符号化及び復号に適用されてもよい。 Furthermore, the device, process, or syntax for encoding and decoding attribute information of a point cloud in the present disclosure may be applied to encoding and decoding connectivity information or attribute information of a three-dimensional mesh.Furthermore, the device, process, or syntax for encoding and decoding connectivity information or attribute information of a three-dimensional mesh in the present disclosure may be applied to encoding and decoding attribute information of a point cloud.
さらに、点群データの符号化及び復号と、メッシュデータの符号化及び復号とで、少なくとも一部の処理が共通化されてもよい。これにより、回路及びソフトウェアプログラムの規模が抑制され得る。 Furthermore, at least some of the processing may be shared between the encoding and decoding of point cloud data and the encoding and decoding of mesh data. This can reduce the scale of the circuit and software program.
図18は、本実施の形態に係る三次元データ符号化器113の構成例を示すブロック図である。この例において、三次元データ符号化器113は、頂点情報符号化器121、属性情報符号化器122、メタデータ符号化器123及び多重化器124を備える。頂点情報符号化器121、属性情報符号化器122及び多重化器124は、図6の頂点情報符号化器101、属性情報符号化器103及び後処理器105等に対応していてもよい。 FIG. 18 is a block diagram showing an example of the configuration of the three-dimensional data encoder 113 according to this embodiment. In this example, the three-dimensional data encoder 113 includes a vertex information encoder 121, an attribute information encoder 122, a metadata encoder 123, and a multiplexer 124. The vertex information encoder 121, the attribute information encoder 122, and the multiplexer 124 may correspond to the vertex information encoder 101, the attribute information encoder 103, and the post-processor 105 in FIG. 6, etc.
また、この例において、三次元データ符号化器113は、ジオメトリベース符号化方式に従って、三次元データを符号化する。ジオメトリベース符号化方式に従う符号化では、三次元構造が考慮される。また、ジオメトリベース符号化方式に従う符号化では、頂点情報の符号化において得られる構成情報を用いて属性情報が符号化される。 Also, in this example, the three-dimensional data encoder 113 encodes the three-dimensional data according to a geometry-based encoding method. Encoding according to the geometry-based encoding method takes into account the three-dimensional structure. Also, encoding according to the geometry-based encoding method encodes attribute information using configuration information obtained in encoding the vertex information.
具体的には、まず、センサデータから生成された三次元データに含まれる頂点情報、属性情報及びメタデータが、頂点情報符号化器121、属性情報符号化器122及びメタデータ符号化器123にそれぞれ入力される。ここで、三次元データに含まれる接続情報は、属性情報と同様に扱われてもよい。また、点群データの場合、位置情報が頂点情報として扱われてもよい。 Specifically, first, the vertex information, attribute information, and metadata contained in the three-dimensional data generated from the sensor data are input to a vertex information encoder 121, an attribute information encoder 122, and a metadata encoder 123, respectively. Here, the connection information contained in the three-dimensional data may be treated in the same way as the attribute information. Also, in the case of point cloud data, the position information may be treated as vertex information.
頂点情報符号化器121は、頂点情報を圧縮頂点情報に符号化して、圧縮頂点情報を符号化データとして多重化器124に出力する。また、頂点情報符号化器121は、圧縮頂点情報のメタデータを生成して多重化器124に出力する。また、頂点情報符号化器121は、構成情報を生成して属性情報符号化器122に出力する。 The vertex information encoder 121 encodes the vertex information into compressed vertex information and outputs the compressed vertex information to the multiplexer 124 as encoded data. The vertex information encoder 121 also generates metadata for the compressed vertex information and outputs it to the multiplexer 124. The vertex information encoder 121 also generates configuration information and outputs it to the attribute information encoder 122.
属性情報符号化器122は、頂点情報符号化器121で生成された構成情報を用いて、属性情報を圧縮属性情報に符号化して、圧縮属性情報を符号化データとして多重化器124に出力する。また、属性情報符号化器122は、圧縮属性情報のメタデータを生成して多重化器124に出力する。 The attribute information encoder 122 uses the configuration information generated by the vertex information encoder 121 to encode the attribute information into compressed attribute information, and outputs the compressed attribute information as encoded data to the multiplexer 124. The attribute information encoder 122 also generates metadata for the compressed attribute information and outputs it to the multiplexer 124.
メタデータ符号化器123は、圧縮可能なメタデータを圧縮メタデータに符号化して、圧縮メタデータを符号化データとして多重化器124に出力する。メタデータ符号化器123で符号化されるメタデータは、頂点情報の符号化、及び、属性情報の符号化に用いられてもよい。 The metadata encoder 123 encodes compressible metadata into compressed metadata and outputs the compressed metadata to the multiplexer 124 as encoded data. The metadata encoded by the metadata encoder 123 may be used to encode vertex information and attribute information.
多重化器124は、圧縮頂点情報、圧縮頂点情報のメタデータ、圧縮属性情報、圧縮属性情報のメタデータ、及び、圧縮メタデータをビットストリームに多重化する。そして、多重化器124は、ビットストリームをシステムレイヤに入力する。 The multiplexer 124 multiplexes the compressed vertex information, the metadata of the compressed vertex information, the compressed attribute information, the metadata of the compressed attribute information, and the compressed metadata into a bitstream. The multiplexer 124 then inputs the bitstream to the system layer.
図19は、本実施の形態に係る三次元データ復号器213の構成例を示すブロック図である。この例において、三次元データ復号器213は、頂点情報復号器221、属性情報復号器222、メタデータ復号器223及び逆多重化器224を備える。頂点情報復号器221、属性情報復号器222及び逆多重化器224は、図8の頂点情報復号器201、属性情報復号器203及び前処理器204等に対応していてもよい。 FIG. 19 is a block diagram showing an example configuration of a three-dimensional data decoder 213 according to this embodiment. In this example, the three-dimensional data decoder 213 includes a vertex information decoder 221, an attribute information decoder 222, a metadata decoder 223, and a demultiplexer 224. The vertex information decoder 221, the attribute information decoder 222, and the demultiplexer 224 may correspond to the vertex information decoder 201, the attribute information decoder 203, and the preprocessor 204 in FIG. 8, etc.
また、この例において、三次元データ復号器213は、ジオメトリベース符号化方式に従って、三次元データを復号する。ジオメトリベース符号化方式に従う復号では、三次元構造が考慮される。また、ジオメトリベース符号化方式に従う復号では、頂点情報の復号において得られる構成情報を用いて属性情報が復号される。 Also, in this example, the three-dimensional data decoder 213 decodes the three-dimensional data according to a geometry-based encoding method. In decoding according to the geometry-based encoding method, the three-dimensional structure is taken into consideration. In decoding according to the geometry-based encoding method, attribute information is decoded using configuration information obtained in decoding the vertex information.
具体的には、まず、ビットストリームが、システムレイヤから逆多重化器224に入力される。逆多重化器224は、ビットストリームから、圧縮頂点情報、圧縮頂点情報のメタデータ、圧縮属性情報、圧縮属性情報のメタデータ、及び、圧縮メタデータを分離する。圧縮頂点情報、及び、圧縮頂点情報のメタデータは、頂点情報復号器221に入力される。圧縮属性情報、及び、圧縮属性情報のメタデータは、属性情報復号器222に入力される。メタデータは、メタデータ復号器223に入力される。 Specifically, first, a bitstream is input from the system layer to the demultiplexer 224. The demultiplexer 224 separates compressed vertex information, compressed vertex information metadata, compressed attribute information, compressed attribute information metadata, and compressed metadata from the bitstream. The compressed vertex information and compressed vertex information metadata are input to the vertex information decoder 221. The compressed attribute information and compressed attribute information metadata are input to the attribute information decoder 222. The metadata is input to the metadata decoder 223.
頂点情報復号器221は、圧縮頂点情報のメタデータを用いて、圧縮頂点情報から頂点情報を復号する。また、頂点情報復号器221は、構成情報を生成して属性情報復号器222に出力する。属性情報復号器222は、頂点情報復号器221で生成された構成情報、及び、圧縮属性情報のメタデータを用いて、圧縮属性情報から属性情報を復号する。メタデータ復号器223は、圧縮メタデータからメタデータを復号する。メタデータ復号器223で復号されたメタデータは、頂点情報の復号、及び、属性情報の復号に用いられてもよい。 The vertex information decoder 221 decodes vertex information from the compressed vertex information using metadata of the compressed vertex information. The vertex information decoder 221 also generates configuration information and outputs it to the attribute information decoder 222. The attribute information decoder 222 decodes attribute information from the compressed attribute information using the configuration information generated by the vertex information decoder 221 and the metadata of the compressed attribute information. The metadata decoder 223 decodes metadata from the compressed metadata. The metadata decoded by the metadata decoder 223 may be used to decode the vertex information and the attribute information.
その後、頂点情報、属性情報、及び、メタデータが三次元データとして三次元データ復号器213から出力される。なお、例えば、このメタデータは、頂点情報及び属性情報のメタデータであって、アプリケーションプログラムにおいて用いられ得る。 Then, the vertex information, attribute information, and metadata are output from the 3D data decoder 213 as 3D data. Note that, for example, this metadata is metadata of the vertex information and attribute information, and can be used in an application program.
図20は、本実施の形態に係る三次元データ符号化器113の別の構成例を示すブロック図である。この例において、三次元データ符号化器113は、頂点画像生成器131、属性画像生成器132、メタデータ生成器133、映像符号化器134、メタデータ符号化器123及び多重化器124を備える。頂点画像生成器131、属性画像生成器132及び映像符号化器134は、図6の頂点情報符号化器101及び属性情報符号化器103等に対応していてもよい。 FIG. 20 is a block diagram showing another example of the configuration of the three-dimensional data encoder 113 according to this embodiment. In this example, the three-dimensional data encoder 113 includes a vertex image generator 131, an attribute image generator 132, a metadata generator 133, a video encoder 134, a metadata encoder 123, and a multiplexer 124. The vertex image generator 131, the attribute image generator 132, and the video encoder 134 may correspond to the vertex information encoder 101 and the attribute information encoder 103 in FIG. 6, etc.
また、この例において、三次元データ符号化器113は、ビデオベース符号化方式に従って、三次元データを符号化する。ビデオベース符号化方式に従う符号化では、三次元データから複数の二次元画像が生成され、映像符号化方式に従って複数の二次元画像が符号化される。ここで、映像符号化方式は、HEVC(High Efficiency Video Coding)又はVVC(Versatile Video Coding)等であってもよい。 Also, in this example, the three-dimensional data encoder 113 encodes the three-dimensional data according to a video-based encoding method. In encoding according to the video-based encoding method, multiple two-dimensional images are generated from the three-dimensional data, and the multiple two-dimensional images are encoded according to a video encoding method. Here, the video encoding method may be HEVC (High Efficiency Video Coding) or VVC (Versatile Video Coding), etc.
具体的には、まず、センサデータから生成された三次元データに含まれる頂点情報及び属性情報が、メタデータ生成器133に入力される。また、頂点情報及び属性情報は、頂点画像生成器131及び属性画像生成器132にそれぞれ入力される。また、三次元データに含まれるメタデータは、メタデータ符号化器123に入力される。ここで、三次元データに含まれる接続情報は、属性情報と同様に扱われてもよい。また、点群データの場合、位置情報が頂点情報として扱われてもよい。 Specifically, first, vertex information and attribute information contained in the three-dimensional data generated from the sensor data are input to a metadata generator 133. Furthermore, the vertex information and attribute information are input to a vertex image generator 131 and an attribute image generator 132, respectively. Furthermore, metadata contained in the three-dimensional data is input to a metadata encoder 123. Here, connection information contained in the three-dimensional data may be treated in the same way as attribute information. Furthermore, in the case of point cloud data, position information may be treated as vertex information.
メタデータ生成器133は、頂点情報及び属性情報から複数の二次元画像のマップ情報を生成する。そして、メタデータ生成器133は、マップ情報を頂点画像生成器131、属性画像生成器132及びメタデータ符号化器123に入力する。 The metadata generator 133 generates map information for multiple two-dimensional images from the vertex information and attribute information. The metadata generator 133 then inputs the map information to the vertex image generator 131, the attribute image generator 132, and the metadata encoder 123.
頂点画像生成器131は、頂点情報及びマップ情報に基づいて、頂点画像を生成して映像符号化器134へ入力する。属性画像生成器132は、属性情報及びマップ情報に基づいて、属性画像を生成して映像符号化器134へ入力する。 The vertex image generator 131 generates a vertex image based on the vertex information and map information, and inputs the vertex image to the video encoder 134. The attribute image generator 132 generates an attribute image based on the attribute information and map information, and inputs the attribute image to the video encoder 134.
映像符号化器134は、映像符号化方式に従って、頂点画像及び属性画像を圧縮頂点情報及び圧縮属性情報にそれぞれ符号化して、圧縮頂点情報及び圧縮属性情報を符号化データとして多重化器124に出力する。また、映像符号化器134は、圧縮頂点情報のメタデータ、及び、圧縮属性情報のメタデータを生成して多重化器124に出力する。 The video encoder 134 encodes the vertex images and attribute images into compressed vertex information and compressed attribute information, respectively, according to a video encoding method, and outputs the compressed vertex information and compressed attribute information to the multiplexer 124 as encoded data. The video encoder 134 also generates metadata for the compressed vertex information and metadata for the compressed attribute information, and outputs them to the multiplexer 124.
メタデータ符号化器123は、圧縮可能なメタデータを圧縮メタデータに符号化して、圧縮メタデータを符号化データとして多重化器124に出力する。圧縮可能なメタデータには、マップ情報が含まれる。また、メタデータ符号化器123で符号化されるメタデータは、頂点情報の符号化、及び、属性情報の符号化に用いられてもよい。 The metadata encoder 123 encodes the compressible metadata into compressed metadata and outputs the compressed metadata to the multiplexer 124 as encoded data. The compressible metadata includes map information. The metadata encoded by the metadata encoder 123 may also be used to encode vertex information and attribute information.
多重化器124は、圧縮頂点情報、圧縮頂点情報のメタデータ、圧縮属性情報、圧縮属性情報のメタデータ、及び、圧縮メタデータをビットストリームに多重化する。そして、多重化器124は、ビットストリームをシステムレイヤに入力する。 The multiplexer 124 multiplexes the compressed vertex information, the metadata of the compressed vertex information, the compressed attribute information, the metadata of the compressed attribute information, and the compressed metadata into a bitstream. The multiplexer 124 then inputs the bitstream to the system layer.
図21は、本実施の形態に係る三次元データ復号器213の別の構成例を示すブロック図である。この例において、三次元データ復号器213は、頂点情報生成器231、属性情報生成器232、映像復号器234、メタデータ復号器223及び逆多重化器224を備える。頂点情報生成器231、属性情報生成器232及び映像復号器234は、図8の頂点情報復号器201及び属性情報復号器203等に対応していてもよい。 FIG. 21 is a block diagram showing another example configuration of the 3D data decoder 213 according to this embodiment. In this example, the 3D data decoder 213 includes a vertex information generator 231, an attribute information generator 232, a video decoder 234, a metadata decoder 223, and a demultiplexer 224. The vertex information generator 231, the attribute information generator 232, and the video decoder 234 may correspond to the vertex information decoder 201 and the attribute information decoder 203 in FIG. 8, etc.
また、この例において、三次元データ復号器213は、ビデオベース符号化方式に従って、三次元データを復号する。ビデオベース符号化方式に従う復号では、映像符号化方式に従って複数の二次元画像が復号され、複数の二次元画像から三次元データが生成される。ここで、映像符号化方式は、HEVC(High Efficiency Video Coding)又はVVC(Versatile Video Coding)等であってもよい。 Also, in this example, the three-dimensional data decoder 213 decodes the three-dimensional data according to a video-based coding method. In decoding according to the video-based coding method, multiple two-dimensional images are decoded according to a video coding method, and three-dimensional data is generated from the multiple two-dimensional images. Here, the video coding method may be HEVC (High Efficiency Video Coding) or VVC (Versatile Video Coding), etc.
具体的には、まず、ビットストリームが、システムレイヤから逆多重化器224に入力される。逆多重化器224は、ビットストリームから、圧縮頂点情報、圧縮頂点情報のメタデータ、圧縮属性情報、圧縮属性情報のメタデータ、及び、圧縮メタデータを分離する。圧縮頂点情報、及び、圧縮頂点情報のメタデータ、圧縮属性情報、及び、圧縮属性情報のメタデータは、映像復号器234に入力される。圧縮メタデータは、メタデータ復号器223に入力される。 Specifically, first, the bitstream is input from the system layer to the demultiplexer 224. The demultiplexer 224 separates compressed vertex information, compressed vertex information metadata, compressed attribute information, compressed attribute information metadata, and compressed metadata from the bitstream. The compressed vertex information, compressed vertex information metadata, compressed attribute information, and compressed attribute information metadata are input to the video decoder 234. The compressed metadata is input to the metadata decoder 223.
映像復号器234は、映像符号化方式に従って、頂点画像を復号する。その際、映像復号器234は、圧縮頂点情報のメタデータを用いて、圧縮頂点情報から頂点画像を復号する。そして、映像復号器234は、頂点画像を頂点情報生成器231に入力する。また、映像復号器234は、映像符号化方式に従って、属性画像を復号する。その際、映像復号器234は、圧縮属性情報のメタデータを用いて、圧縮属性情報から属性画像を復号する。そして、映像復号器234は、属性画像を属性情報生成器232に入力する。 The video decoder 234 decodes the vertex image according to the video encoding method. At this time, the video decoder 234 decodes the vertex image from the compressed vertex information using the metadata of the compressed vertex information. Then, the video decoder 234 inputs the vertex image to the vertex information generator 231. Also, the video decoder 234 decodes the attribute image according to the video encoding method. At this time, the video decoder 234 decodes the attribute image from the compressed attribute information using the metadata of the compressed attribute information. Then, the video decoder 234 inputs the attribute image to the attribute information generator 232.
メタデータ復号器223は、圧縮メタデータからメタデータを復号する。メタデータ復号器223で復号されたメタデータには、頂点情報の生成、及び、属性情報の生成に用いられるマップ情報が含まれる。また、メタデータ復号器223で復号されたメタデータは、頂点画像の復号、及び、属性画像の復号に用いられてもよい。 The metadata decoder 223 decodes metadata from the compressed metadata. The metadata decoded by the metadata decoder 223 includes map information used to generate vertex information and attribute information. The metadata decoded by the metadata decoder 223 may also be used to decode vertex images and attribute images.
頂点情報生成器231は、メタデータ復号器223で復号されたメタデータに含まれるマップ情報に従って、頂点画像から頂点情報を再生する。属性情報生成器232は、メタデータ復号器223で復号されたメタデータに含まれるマップ情報に従って、属性画像から属性情報を再生する。 The vertex information generator 231 reproduces vertex information from the vertex image according to the map information included in the metadata decoded by the metadata decoder 223. The attribute information generator 232 reproduces attribute information from the attribute image according to the map information included in the metadata decoded by the metadata decoder 223.
その後、頂点情報、属性情報、及び、メタデータが三次元データとして三次元データ復号器213から出力される。なお、例えば、このメタデータは、頂点情報及び属性情報のメタデータであって、アプリケーションプログラムにおいて用いられ得る。 Then, the vertex information, attribute information, and metadata are output from the 3D data decoder 213 as 3D data. Note that, for example, this metadata is metadata of the vertex information and attribute information, and can be used in an application program.
図22は、本実施の形態に係る符号化処理の具体例を示す概念図である。図22には、三次元データ符号化器113及びデスクリプション符号化器148が示されている。この例において、三次元データ符号化器113は、二次元データ符号化器141及びメッシュデータ符号化器142を備える。二次元データ符号化器141は、テクスチャ符号化器143を備える。メッシュデータ符号化器142は、頂点情報符号化器144及び接続情報符号化器145を備える。 FIG. 22 is a conceptual diagram showing a specific example of the encoding process according to this embodiment. FIG. 22 shows a three-dimensional data encoder 113 and a description encoder 148. In this example, the three-dimensional data encoder 113 includes a two-dimensional data encoder 141 and a mesh data encoder 142. The two-dimensional data encoder 141 includes a texture encoder 143. The mesh data encoder 142 includes a vertex information encoder 144 and a connection information encoder 145.
頂点情報符号化器144、接続情報符号化器145及びテクスチャ符号化器143は、図6の頂点情報符号化器101、接続情報符号化器102及び属性情報符号化器103等に対応していてもよい。 The vertex information encoder 144, the connection information encoder 145, and the texture encoder 143 may correspond to the vertex information encoder 101, the connection information encoder 102, and the attribute information encoder 103 in FIG. 6, etc.
例えば、二次元データ符号化器141は、テクスチャ符号化器143として動作し、画像符号化方式又は映像符号化方式に従って、属性情報に対応するテクスチャを二次元データとして符号化することにより、テクスチャファイルを生成する。 For example, the two-dimensional data encoder 141 operates as a texture encoder 143 and generates a texture file by encoding the texture corresponding to the attribute information as two-dimensional data according to an image encoding method or a video encoding method.
また、メッシュデータ符号化器142は、頂点情報符号化器144及び接続情報符号化器145として動作し、頂点情報及び接続情報を符号化することにより、メッシュファイルを生成する。メッシュデータ符号化器142は、さらに、テクスチャに対するマッピング情報を符号化してもよい。そして、符号化されたマッピング情報が、メッシュファイルに含まれてもよい。 The mesh data encoder 142 also operates as a vertex information encoder 144 and a connection information encoder 145, and generates a mesh file by encoding the vertex information and connection information. The mesh data encoder 142 may further encode mapping information for a texture. The encoded mapping information may then be included in the mesh file.
また、デスクリプション符号化器148は、テキストデータ等のメタデータに対応するデスクリプションを符号化することにより、デスクリプションファイルを生成する。デスクリプション符号化器148は、システムレイヤにおいて、デスクリプションを符号化してもよい。例えば、デスクリプション符号化器148は、図12のシステム多重化器114に含まれていてもよい。 The description encoder 148 also generates a description file by encoding a description that corresponds to metadata such as text data. The description encoder 148 may encode the description in the system layer. For example, the description encoder 148 may be included in the system multiplexer 114 in FIG. 12.
上記の動作により、テクスチャファイル、メッシュファイル及びデスクリプションファイルを含むビットストリームが生成される。これらのファイルは、glTF(Graphics Language Transmission Format)又はUSD(Universal Scene Description)等のファイル形式でビットストリームに多重化されてもよい。 The above operations generate a bitstream that includes texture files, mesh files, and description files. These files may be multiplexed into the bitstream in file formats such as glTF (Graphics Language Transmission Format) or USD (Universal Scene Description).
なお、三次元データ符号化器113は、メッシュデータ符号化器142として、2つのメッシュデータ符号化器を備えていてもよい。例えば、一方のメッシュデータ符号化器は、静的な三次元メッシュの頂点情報及び接続情報を符号化し、他方のメッシュデータ符号化器は、動的な三次元メッシュの頂点情報及び接続情報を符号化する。 The three-dimensional data encoder 113 may include two mesh data encoders as the mesh data encoder 142. For example, one mesh data encoder encodes vertex information and connection information of a static three-dimensional mesh, and the other mesh data encoder encodes vertex information and connection information of a dynamic three-dimensional mesh.
そして、これに対応して、2つのメッシュファイルがビットストリームに含まれてもよい。例えば、一方のメッシュファイルは、静的な三次元メッシュに対応し、他方のメッシュファイルは、動的な三次元メッシュに対応する。 And correspondingly, two mesh files may be included in the bitstream. For example, one mesh file corresponds to a static 3D mesh and the other mesh file corresponds to a dynamic 3D mesh.
また、静的な三次元メッシュはイントラ予測を用いて符号化されるイントラフレームの三次元メッシュであってもよく、動的な三次元メッシュはインター予測を用いて符号化されるインターフレームの三次元メッシュであってもよい。また、動的な三次元メッシュの情報として、イントラフレームの三次元メッシュの頂点情報又は接続情報と、インターフレームの三次元メッシュの頂点情報又は接続情報との差分情報が用いられてもよい。 The static three-dimensional mesh may be an intraframe three-dimensional mesh encoded using intra-prediction, and the dynamic three-dimensional mesh may be an interframe three-dimensional mesh encoded using inter-prediction. Furthermore, the information on the dynamic three-dimensional mesh may be differential information between the vertex information or connection information of the intraframe three-dimensional mesh and the vertex information or connection information of the interframe three-dimensional mesh.
図23は、本実施の形態に係る復号処理の具体例を示す概念図である。図23には、三次元データ復号器213、デスクリプション復号器248及び提示器247が示されている。この例において、三次元データ復号器213は、二次元データ復号器241、メッシュデータ復号器242及びメッシュ再構成器246を備える。二次元データ復号器241は、テクスチャ復号器243を備える。メッシュデータ復号器242は、頂点情報復号器244及び接続情報復号器245を備える。 FIG. 23 is a conceptual diagram showing a specific example of the decoding process according to this embodiment. FIG. 23 shows a three-dimensional data decoder 213, a description decoder 248, and a presenter 247. In this example, the three-dimensional data decoder 213 includes a two-dimensional data decoder 241, a mesh data decoder 242, and a mesh reconstructor 246. The two-dimensional data decoder 241 includes a texture decoder 243. The mesh data decoder 242 includes a vertex information decoder 244 and a connection information decoder 245.
頂点情報復号器244、接続情報復号器245、テクスチャ復号器243及びメッシュ再構成器246は、図8の頂点情報復号器201、接続情報復号器202、属性情報復号器203及び後処理器205等に対応していてもよい。提示器247は、図12の提示器215等に対応していてもよい。 The vertex information decoder 244, the connection information decoder 245, the texture decoder 243, and the mesh reconstructor 246 may correspond to the vertex information decoder 201, the connection information decoder 202, the attribute information decoder 203, and the post-processor 205 in FIG. 8. The presenter 247 may correspond to the presenter 215 in FIG. 12.
例えば、二次元データ復号器241は、テクスチャ復号器243として動作し、画像符号化方式又は映像符号化方式に従って、テクスチャファイルから属性情報に対応するテクスチャを二次元データとして復号する。 For example, the two-dimensional data decoder 241 operates as a texture decoder 243, and decodes the texture corresponding to the attribute information from the texture file as two-dimensional data according to an image encoding method or a video encoding method.
また、メッシュデータ復号器242は、頂点情報復号器244及び接続情報復号器245として動作し、メッシュファイルから頂点情報及び接続情報を復号する。メッシュデータ復号器242は、さらに、メッシュファイルから、テクスチャに対するマッピング情報を復号してもよい。 The mesh data decoder 242 also operates as a vertex information decoder 244 and a connection information decoder 245, and decodes vertex information and connection information from the mesh file. The mesh data decoder 242 may further decode mapping information for textures from the mesh file.
また、デスクリプション復号器248は、デスクリプションファイルから、テキストデータ等のメタデータに対応するデスクリプションを復号する。デスクリプション復号器248は、システムレイヤにおいて、デスクリプションを復号してもよい。例えば、デスクリプション復号器248は、図12のシステム逆多重化器214に含まれていてもよい。 The description decoder 248 also decodes a description corresponding to metadata such as text data from the description file. The description decoder 248 may decode the description at the system layer. For example, the description decoder 248 may be included in the system demultiplexer 214 of FIG. 12.
メッシュ再構成器246は、デスクリプションに従って、頂点情報、接続情報及びテクスチャから、三次元メッシュを再構成する。提示器247は、デスクリプションに従って、三次元メッシュをレンダリングして出力する。 The mesh reconstructor 246 reconstructs a three-dimensional mesh from vertex information, connectivity information, and textures according to the description. The presenter 247 renders and outputs the three-dimensional mesh according to the description.
上記の動作により、テクスチャファイル、メッシュファイル及びデスクリプションファイルを含むビットストリームから三次元メッシュが再構成され出力される。 The above operations result in a 3D mesh being reconstructed and output from a bitstream containing a texture file, mesh file, and description file.
なお、三次元データ復号器213は、メッシュデータ復号器242として、2つのメッシュデータ復号器を備えていてもよい。例えば、一方のメッシュデータ復号器は、静的な三次元メッシュの頂点情報及び接続情報を復号し、他方のメッシュデータ復号器は、動的な三次元メッシュの頂点情報及び接続情報を復号する。 The three-dimensional data decoder 213 may include two mesh data decoders as the mesh data decoder 242. For example, one mesh data decoder decodes vertex information and connection information of a static three-dimensional mesh, and the other mesh data decoder decodes vertex information and connection information of a dynamic three-dimensional mesh.
そして、これに対応して、2つのメッシュファイルがビットストリームに含まれてもよい。例えば、一方のメッシュファイルは、静的な三次元メッシュに対応し、他方のメッシュファイルは、動的な三次元メッシュに対応する。 And correspondingly, two mesh files may be included in the bitstream. For example, one mesh file corresponds to a static 3D mesh and the other mesh file corresponds to a dynamic 3D mesh.
また、静的な三次元メッシュはイントラ予測を用いて符号化されるイントラフレームの三次元メッシュであってもよく、動的な三次元メッシュはインター予測を用いて符号化されるインターフレームの三次元メッシュであってもよい。また、動的な三次元メッシュの情報として、イントラフレームの三次元メッシュの頂点情報又は接続情報と、インターフレームの三次元メッシュの頂点情報又は接続情報との差分情報が用いられてもよい。 The static three-dimensional mesh may be an intraframe three-dimensional mesh encoded using intra-prediction, and the dynamic three-dimensional mesh may be an interframe three-dimensional mesh encoded using inter-prediction. Furthermore, the information on the dynamic three-dimensional mesh may be differential information between the vertex information or connection information of the intraframe three-dimensional mesh and the vertex information or connection information of the interframe three-dimensional mesh.
動的な三次元メッシュの符号化方式は、DMC(Dynamic Mesh Coding:動的メッシュ符号化)と呼ばれる場合がある。また、動的な三次元メッシュのビデオベース符号化方式は、V-DMC(Video-based Dynamic Mesh Coding:ビデオベース動的メッシュ符号化)と呼ばれる場合がある。 The dynamic 3D mesh coding method is sometimes called DMC (Dynamic Mesh Coding). Also, the video-based dynamic 3D mesh coding method is sometimes called V-DMC (Video-based Dynamic Mesh Coding).
点群の符号化方式は、PCC(Point Cloud Compression:点群圧縮)と呼ばれる場合がある。また、点群のビデオベース符号化方式は、V-PCC(Video-based Point Cloud Compression:ビデオベース点群圧縮)と呼ばれる場合がある。また、点群のジオメトリベース符号化方式は、G-PCC(Geometry-based Point Cloud Compression:ジオメトリベース点群圧縮)と呼ばれる場合がある。 The point cloud coding method is sometimes called PCC (Point Cloud Compression). The video-based coding method of point clouds is sometimes called V-PCC (Video-based Point Cloud Compression). The geometry-based coding method of point clouds is sometimes called G-PCC (Geometry-based Point Cloud Compression).
<実装例>
図24は、本実施の形態に係る符号化装置100の実装例を示すブロック図である。符号化装置100は、回路151及びメモリ152を備える。例えば、図5等に示された符号化装置100の複数の構成要素は、図24に示された回路151及びメモリ152によって実装される。
<Implementation example>
Fig. 24 is a block diagram showing an implementation example of the encoding device 100 according to this embodiment. The encoding device 100 includes a circuit 151 and a memory 152. For example, a plurality of components of the encoding device 100 shown in Fig. 5 and the like are implemented by the circuit 151 and the memory 152 shown in Fig. 24.
回路151は、情報処理を行う回路であり、メモリ152にアクセス可能な回路である。例えば、回路151は、三次元メッシュを符号化する専用又は汎用の電気回路である。回路151は、CPUのようなプロセッサであってもよい。また、回路151は、複数の電気回路の集合体であってもよい。 Circuit 151 is a circuit that performs information processing and is capable of accessing memory 152. For example, circuit 151 is a dedicated or general-purpose electric circuit that encodes a three-dimensional mesh. Circuit 151 may be a processor such as a CPU. Circuit 151 may also be a collection of multiple electric circuits.
メモリ152は、回路151が三次元メッシュを符号化するための情報が記憶される専用又は汎用のメモリである。メモリ152は、電気回路であってもよく、回路151に接続されていてもよい。また、メモリ152は、回路151に含まれていてもよい。また、メモリ152は、複数の電気回路の集合体であってもよい。また、メモリ152は、磁気ディスク又は光ディスク等であってもよいし、ストレージ又は記録媒体等と表現されてもよい。また、メモリ152は、不揮発性メモリでもよいし、揮発性メモリでもよい。 Memory 152 is a dedicated or general-purpose memory in which information for circuit 151 to encode the three-dimensional mesh is stored. Memory 152 may be an electric circuit and may be connected to circuit 151. Memory 152 may also be included in circuit 151. Memory 152 may also be a collection of multiple electric circuits. Memory 152 may also be a magnetic disk or an optical disk, etc., and may also be expressed as storage or recording medium, etc. Memory 152 may also be a non-volatile memory or a volatile memory.
例えば、メモリ152には、三次元メッシュが記憶されてもよいし、ビットストリームが記憶されてもよい。また、メモリ152には、回路151が三次元メッシュを符号化するためのプログラムが記憶されていてもよい。 For example, the memory 152 may store a three-dimensional mesh or a bitstream. The memory 152 may also store a program that the circuit 151 uses to encode the three-dimensional mesh.
なお、符号化装置100において、図5等に示された複数の構成要素の全てが実装されなくてもよいし、ここで示された複数の処理の全てが行われなくてもよい。図5等に示された複数の構成要素の一部は、他の装置に含まれていてもよいし、ここで示された複数の処理の一部は、他の装置によって実行されてもよい。また、符号化装置100において、本開示の複数の構成要素が任意に組み合わされて実装されてもよいし、本開示の複数の処理が任意に組み合わされて行われてもよい。 In addition, in the encoding device 100, all of the multiple components shown in FIG. 5 and the like do not have to be implemented, and all of the multiple processes shown here do not have to be performed. Some of the multiple components shown in FIG. 5 and the like may be included in another device, and some of the multiple processes shown here may be executed by another device. Furthermore, in the encoding device 100, the multiple components of the present disclosure may be implemented in any combination, and the multiple processes of the present disclosure may be performed in any combination.
図25は、本実施の形態に係る復号装置200の実装例を示すブロック図である。復号装置200は、回路251及びメモリ252を備える。例えば、図7等に示された復号装置200の複数の構成要素は、図25に示された回路251及びメモリ252によって実装される。 FIG. 25 is a block diagram showing an example implementation of the decoding device 200 according to this embodiment. The decoding device 200 includes a circuit 251 and a memory 252. For example, the components of the decoding device 200 shown in FIG. 7 and the like are implemented by the circuit 251 and memory 252 shown in FIG. 25.
回路251は、情報処理を行う回路であり、メモリ252にアクセス可能な回路である。例えば、回路251は、三次元メッシュを復号する専用又は汎用の電気回路である。回路251は、CPUのようなプロセッサであってもよい。また、回路251は、複数の電気回路の集合体であってもよい。 Circuit 251 is a circuit that performs information processing and is capable of accessing memory 252. For example, circuit 251 is a dedicated or general-purpose electric circuit that decodes a three-dimensional mesh. Circuit 251 may be a processor such as a CPU. Circuit 251 may also be a collection of multiple electric circuits.
メモリ252は、回路251が三次元メッシュを復号するための情報が記憶される専用又は汎用のメモリである。メモリ252は、電気回路であってもよく、回路251に接続されていてもよい。また、メモリ252は、回路251に含まれていてもよい。また、メモリ252は、複数の電気回路の集合体であってもよい。また、メモリ252は、磁気ディスク又は光ディスク等であってもよいし、ストレージ又は記録媒体等と表現されてもよい。また、メモリ252は、不揮発性メモリでもよいし、揮発性メモリでもよい。 Memory 252 is a dedicated or general-purpose memory in which information for circuit 251 to decode the three-dimensional mesh is stored. Memory 252 may be an electric circuit and may be connected to circuit 251. Memory 252 may also be included in circuit 251. Memory 252 may also be a collection of multiple electric circuits. Memory 252 may also be a magnetic disk or an optical disk, etc., and may also be expressed as storage or recording medium, etc. Memory 252 may also be a non-volatile memory or a volatile memory.
例えば、メモリ252には、三次元メッシュが記憶されてもよいし、ビットストリームが記憶されてもよい。また、メモリ252には、回路251が三次元メッシュを復号するためのプログラムが記憶されていてもよい。 For example, the memory 252 may store a three-dimensional mesh or a bitstream. The memory 252 may also store a program for the circuit 251 to decode the three-dimensional mesh.
なお、復号装置200において、図7等に示された複数の構成要素の全てが実装されなくてもよいし、ここで示された複数の処理の全てが行われなくてもよい。図7等に示された複数の構成要素の一部は、他の装置に含まれていてもよいし、ここで示された複数の処理の一部は、他の装置によって実行されてもよい。また、復号装置200において、本開示の複数の構成要素が任意に組み合わされて実装されてもよいし、本開示の複数の処理が任意に組み合わされて行われてもよい。 In addition, in the decoding device 200, all of the multiple components shown in FIG. 7 etc. do not have to be implemented, and all of the multiple processes shown here do not have to be performed. Some of the multiple components shown in FIG. 7 etc. may be included in another device, and some of the multiple processes shown here may be executed by another device. Furthermore, in the decoding device 200, the multiple components of the present disclosure may be implemented in any combination, and the multiple processes of the present disclosure may be performed in any combination.
本開示の符号化装置100及び復号装置200の各構成要素が行うステップを含む符号化方法及び復号方法が任意の装置又はシステムによって実行されてもよい。例えば、符号化方法及び復号方法の一部又は全部が、プロセッサ、メモリ及び入出力回路等を備えるコンピュータによって実行されてもよい。その際、コンピュータに符号化方法及び復号方法を実行させるためのプログラムがコンピュータによって実行されることにより、符号化方法及び復号方法が実行されてもよい。 The encoding method and the decoding method including the steps performed by each component of the encoding device 100 and the decoding device 200 of the present disclosure may be executed by any device or system. For example, a part or all of the encoding method and the decoding method may be executed by a computer including a processor, a memory, an input/output circuit, etc. In this case, the encoding method and the decoding method may be executed by the computer executing a program for causing the computer to execute the encoding method and the decoding method.
また、CD-ROM等の非一時的なコンピュータ読み取り可能な記録媒体に、プログラムが記録されていてもよいし、ビットストリームが記録されていてもよい。 In addition, the program or the bitstream may be recorded on a non-transitory computer-readable recording medium such as a CD-ROM.
プログラムの一例は、ビットストリームであってもよい。例えば、符号化された三次元メッシュを含むビットストリームは、復号装置200に三次元メッシュを復号させるためのシンタックス要素を含む。そして、ビットストリームは、ビットストリームに含まれるシンタックス要素に従って三次元メッシュを復号装置200に復号させる。したがって、ビットストリームは、プログラムと同様の役割を果たし得る。 An example of a program may be a bitstream. For example, a bitstream including an encoded three-dimensional mesh includes syntax elements for causing the decoding device 200 to decode the three-dimensional mesh. The bitstream then causes the decoding device 200 to decode the three-dimensional mesh according to the syntax elements included in the bitstream. Thus, the bitstream may fulfill a role similar to that of a program.
上記のビットストリームは、符号化された三次元メッシュを含む符号化ビットストリームであってもよいし、符号化された三次元メッシュ及びその他の情報を含む多重化ビットストリームであってもよい。 The bitstream may be an encoded bitstream containing the encoded 3D mesh, or it may be a multiplexed bitstream containing the encoded 3D mesh and other information.
また、符号化装置100及び復号装置200の各構成要素は、専用のハードウェアで構成されてもよいし、上記のプログラム等を実行する汎用のハードウェアで構成されてもよいし、これらの組み合わせで構成されてもよい。また、汎用のハードウェアは、プログラムが記録されたメモリ、及び、メモリからプログラムを読み出して実行する汎用のプロセッサ等で構成されてもよい。ここで、メモリは、半導体メモリ又はハードディスク等でもよいし、汎用のプロセッサは、CPU等でもよい。 Furthermore, each component of the encoding device 100 and the decoding device 200 may be configured with dedicated hardware, or may be configured with general-purpose hardware that executes the above-mentioned programs, etc., or may be configured with a combination of these. Furthermore, the general-purpose hardware may be configured with a memory in which the program is recorded, and a general-purpose processor that reads and executes the program from the memory, etc. Here, the memory may be a semiconductor memory or a hard disk, etc., and the general-purpose processor may be a CPU, etc.
また、専用のハードウェアが、メモリ及び専用のプロセッサ等で構成されてもよい。例えば、専用のプロセッサが、データを記録するためのメモリを参照して、符号化方法及び復号方法を実行してもよい。 Furthermore, the dedicated hardware may be configured with a memory and a dedicated processor, etc. For example, the dedicated processor may execute the encoding method and the decoding method by referring to a memory for recording data.
また、符号化装置100及び復号装置200の各構成要素は、上述の通り、電気回路であってもよい。これらの電気回路は、全体として1つの電気回路を構成してもよいし、それぞれ別々の電気回路であってもよい。また、これらの電気回路は、専用のハードウェアに対応していてもよいし、上記のプログラム等を実行する汎用のハードウェアに対応していてもよい。また、符号化装置100及び復号装置200は、集積回路として実装されてもよい。 Furthermore, each component of the encoding device 100 and the decoding device 200 may be an electric circuit, as described above. These electric circuits may form a single electric circuit as a whole, or each may be a separate electric circuit. Furthermore, these electric circuits may correspond to dedicated hardware, or may correspond to general-purpose hardware that executes the above-mentioned programs, etc. Furthermore, the encoding device 100 and the decoding device 200 may be implemented as an integrated circuit.
また、符号化装置100は、三次元メッシュを送信する送信装置であってもよい。復号装置200は、三次元メッシュを受信する受信装置であってもよい。 In addition, the encoding device 100 may be a transmitting device that transmits a three-dimensional mesh. The decoding device 200 may be a receiving device that receives a three-dimensional mesh.
<変位の符号化及び復号>
ここでは、例として、下記の用語が用いられる。
Displacement Encoding and Decoding
The following terms are used herein by way of example:
(1)イメージ
イメージは、画素の集合で構成されるデータ単位であり、ピクチャ、または、ピクチャより小さいブロックを含む。イメージには、動画の他に静止画も含まれる。
(1) Image An image is a data unit composed of a set of pixels, and includes a picture or a block smaller than a picture. Images include still images as well as moving images.
(2)ピクチャ
ピクチャは、画素の集合で構成される画像処理単位であり、フレーム、フィールドともいう。
(2) Picture A picture is a unit of image processing consisting of a set of pixels, and is also called a frame or field.
(3)ブロック
ブロックは、特定の個数の画素で構成される処理単位である。ブロックは、下記の例に示される用語も用いられる。ブロックの形状は特に限定されない。ブロックは、例えば、M×N画素の矩形形状、または、M×M画素の正方形形状であり得る。ブロックは、三角形形状、円形状、その他の形状であってもよい。ブロックの例は、下記のとおりである。
(3) Block A block is a processing unit composed of a specific number of pixels. The term shown in the following example is also used for a block. The shape of a block is not particularly limited. A block may be, for example, a rectangular shape of M×N pixels or a square shape of M×M pixels. A block may also be a triangular shape, a circular shape, or another shape. Examples of blocks are as follows:
・スライス、タイル、または、レンガ
・CTU、スーパーブロック、または、基本分割ユニット
・VPDU、ハードウェア用処理分割ユニット
・CU、処理ブロック単位、予測ブロック単位(PU)、または、直交変換ブロック単位(TU)
・サブブロック
Slice, tile, or brick CTU, superblock, or basic division unit VPDU, processing division unit for hardware CU, processing block unit, prediction block unit (PU), or orthogonal transform block unit (TU)
・Sub-block
(4)ピクセルまたはサンプル
ピクセルまたはサンプルは、画像の最小点、言い換えれば、最小単位である。ピクセルまたはサンプルは、整数位置の画素だけでなく、整数位置の画素をもとに生成されたサブ画素位置の画素も含まれる。
(4) Pixel or Sample A pixel or sample is the smallest point of an image, in other words, the smallest unit. Pixels and samples include not only pixels at integer positions, but also pixels at sub-pixel positions generated based on pixels at integer positions.
(5)画素値またはサンプル値
画素値またはサンプル値は、画素の固有値である。画素値またはサンプル値には、ルマ値、クロマ値、または、RGB階調レベルなどが含まれ、深度値または0または1のバイナリ値も含まれ得る。
(5) Pixel Value or Sample Value A pixel value or sample value is a unique value of a pixel. The pixel value or sample value may include a luma value, a chroma value, or an RGB grayscale level, and may also include a depth value or a binary value of 0 or 1.
(6)フラグ
フラグは、1つ以上のビットを示すものである。フラグは、例えば、2つ以上のビットで表されるパラメータまたはインデックスである。フラグは、また、2進数で表される値だけでなく、2進数以外の数値で表される値を示す場合もある。
(6) Flag A flag indicates one or more bits. A flag is, for example, a parameter or index represented by two or more bits. A flag may indicate not only a value represented by a binary number, but also a value represented by a numeric value other than a binary number.
(7)信号
信号は、情報を伝達するために記号化または符号化されたものをいう。信号は、離散的なデジタル信号、または、連続的なアナログ信号を含む。
(7) Signal A signal is something that is symbolized or coded to transmit information. A signal includes a discrete digital signal or a continuous analog signal.
(8)ストリームまたはビットストリーム
ストリームまたはビットストリームは、デジタルデータの流れを示すデジタルデータ列である。ストリームまたはビットストリームは、1つのストリームであってもよいし、複数の階層を有する複数のストリームを含んで構成されていてもよい。ストリームまたはビットストリームは、単一の伝送路を用いてシリアル通信で伝送される場合もあれば、複数の伝送路を用いてパケット通信で伝送される場合もある。
(8) Stream or Bit Stream A stream or bit stream is a digital data string that indicates the flow of digital data. A stream or bit stream may be one stream, or may be configured to include multiple streams having multiple layers. A stream or bit stream may be transmitted by serial communication using a single transmission path, or may be transmitted by packet communication using multiple transmission paths.
(9)差分
差分は、スカラー量の場合、単純な差分(x-y)と差分計算とが含まれ得る。差分は、差分の絶対値(|x-y|)、差分の2乗(x^2-y^2)、差分の平方根(√(x-y))、重み付け差分(ax-by、ここでa、bは定数)、または、オフセット差分(x-y+a、ここでaはオフセット)などが含まれ得る。
(9) Difference The difference can include simple difference (x-y) and difference calculations for scalar quantities. The difference can include absolute difference (|x-y|), squared difference (x^2-y^2), square root of difference (√(x-y)), weighted difference (ax-by, where a, b are constants), or offset difference (x-y+a, where a is an offset), etc.
(10)和
和は、スカラー量の場合、単純な和(x+y)と加算計算とが含まれ得る。和は、和の絶対値(|x+y|)、二乗和(x^2+y^2)、和の平方根(√(x+y))、重み付き和(ax+by、ここでaとbは定数)、または、オフセット和(x+y+a、ここでaはオフセット)などが含まれ得る。
(10) Sum The sum can include simple sum (x+y) and addition calculations for scalar quantities. The sum can include absolute value of the sum (|x+y|), sum of squares (x^2+y^2), square root of the sum (√(x+y)), weighted sum (ax+by, where a and b are constants), or offset sum (x+y+a, where a is an offset), etc.
(11)「基づいて」(based on)
「何かに基づいて」という表現は、その「何か」以外のものを考慮してもよいことを意味する。また、「基づいて」(based on)は、直接的な結果が得られる場合と、中間的な結果を経て結果が得られる場合とで使われることがある。
(11) "Based on"
The phrase "based on something" means that something other than that "something" may be taken into consideration. Also, "based on" can be used in both cases where a direct result is obtained and where a result is obtained through an intermediate result.
(12)「使用される」または「使用する」
「何かが使用された」または「何かを使用した」という表現は、その「何か」以外のものを考慮してもよいことを意味する。また、「使用された」または「使用した」という表現は、直接的な結果が得られる場合と、中間的な結果を経て結果が得られる場合とで使われることがある。
(12) "Used" or "Using"
The phrase "something was used" or "using something" means that something other than the "something" may be taken into consideration. Also, the phrase "used" or "using" may be used in cases where a direct result is obtained and in cases where a result is obtained via an intermediate result.
(13)禁止
「禁止する」は、「許可しない」と言い換えることができる。また、「禁止されない/禁止される」または「許可される/許可される」は、必ずしも「義務」を意味しない。
(13) Prohibition "Prohibit" can be rephrased as "not permitted." Furthermore, "not prohibited/prohibited" or "permitted/permitted" do not necessarily mean "obligation."
(14)「制限」または「限定」
「制限」または「限定」は、「許可しない・許さない」または「許されない・許されている」と言い換えることができる。また、「禁止されている/禁止されていない」または「許可されていない/許可されている」は、必ずしも「義務」を意味しない。また、量的・質的に禁止されているのは、一部であってもよいし、全部であってもよい。
(14) "Restriction" or "Limitation"
"Restriction" or "Limitation" can be rephrased as "not permitted/not allowed" or "not permitted/permitted." Also, "prohibited/not prohibited" or "not permitted/permitted" does not necessarily mean "obligation." Also, what is quantitatively or qualitatively prohibited may be either partial or complete.
(15)クロマ(chroma)
クロマ(chroma)という用語は、記号であるCbまたはCrで表される形容詞であり、サンプル配列または単一サンプルが、原色に関連する2つの色差信号のうちの1つを表していることを示す。クロマ(chroma)という用語は、クロミナンスという用語の代わりに使用されることがある。
(15) Chroma
The term chroma is an adjective, denoted by the symbols Cb or Cr, that indicates that a sample array or a single sample represents one of the two color difference signals associated with a primary color. The term chroma is sometimes used instead of the term chrominance.
(16)ルマ(luma)
ルマ(luma)という用語は、記号または添え字であるYまたはLで表される形容詞であり、サンプル配列または単一サンプルが、原色に関するモノクロ信号を表現していることを示す。ルマ(luma)という用語は、輝度(luminance)という用語の代わりに使用されることがある。
(16) Luma
The term luma is an adjective, denoted by the symbols or subscripts Y or L, that indicates that the sample array or a single sample represents a monochrome signal for a primary color. The term luma is sometimes used instead of the term luminance.
以降において、本実施の形態の符号化復号システムについて説明する。 The encoding/decoding system of this embodiment will be explained below.
一般的な三次元モデル(3Dモデルともいう)は、ユーザが時間的にレンダリングしながら、3次元すべてでズーム、パンおよび回転を使用してモデルを探索できるように、オブジェクトをデジタル的に表現する。このような表現を構築する1つの方法は、三角形を使用して3Dメッシュを構築することである。上記モデルでは、三角形の頂点の位置、三角形の頂点の互いの接続性、およびそれらに関連する属性(法線またはUVパッチなど)が保存される。 A typical three-dimensional model (also called a 3D model) digitally represents an object in a way that allows a user to explore the model using zoom, pan and rotation in all three dimensions while it is being rendered in time. One way to build such a representation is to build a 3D mesh using triangles. The model stores the positions of the triangle vertices, their connectivity to each other, and their associated attributes (such as normals or UV patches).
これらすべての情報を非圧縮の形式で保存するには、非常に大きな記憶領域が必要であり、したがって伝送のための帯域幅が非常に大きくなる。メッシュを形成する三角形は、特に時間的および空間的近傍において、繰り返しパターンと類似の属性を有することが多い。これらの繰り返しを利用して、記憶と伝送のための効率的な符号化方法および復号方法を策定することができる。そのような符号化方法および復号方法のひとつが、Video-based Dynamic Mesh Coding(V-DMC)である。 Storing all this information in uncompressed form would require a very large storage space and therefore a very large bandwidth for transmission. The triangles that form the mesh often have repeating patterns and similar properties, especially in temporal and spatial neighborhoods. These repetitions can be exploited to develop efficient encoding and decoding methods for storage and transmission. One such encoding and decoding method is Video-based Dynamic Mesh Coding (V-DMC).
図26は、本実施の形態に係る符号化復号システムの別の構成例を示すブロック図である。図26に示すように、符号化復号システムは、符号化装置100及び復号装置200を含む。 FIG. 26 is a block diagram showing another example of the configuration of an encoding/decoding system according to this embodiment. As shown in FIG. 26, the encoding/decoding system includes an encoding device 100 and a decoding device 200.
符号化復号システムは、頂点の三次元座標(頂点情報)、接続性(接続情報)及び関連属性(属性情報)の形式で入力される三次元メッシュ(3Dメッシュともいう)を受け入れる。なお、3Dメッシュは、ジオメトリだけでなくテクスチャマップを含むこともできる。 The encoding/decoding system accepts a three-dimensional mesh (also called a 3D mesh) input in the form of three-dimensional coordinates of vertices (vertex information), connectivity (connection information) and associated attributes (attribute information). Note that the 3D mesh can contain texture maps as well as geometry.
符号化装置100は、入力された3Dメッシュ(入力3Dメッシュまたは入力メッシュともいう)を、頂点の3次元座標、接続性および関連属性の形式で取り込む。符号化装置100は、すべての関連情報をストリームに符号化する。ストリームは、単一のビットストリームで構成されてもよいし、複数のビットストリームで構成されてもよい。 The encoding device 100 takes in an input 3D mesh (also called input 3D mesh or input mesh) in the form of 3D coordinates of vertices, connectivity and related attributes. The encoding device 100 encodes all the related information into a stream. The stream may consist of a single bitstream or may consist of multiple bitstreams.
ネットワーク300は、符号化装置100によって生成されたストリームを復号装置200に伝送する。ネットワーク300は、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、または、これらの任意の組み合わせであってもよい。また、ネットワーク300は、必ずしも双方向通信網に限定されず、地上デジタル放送または衛星放送等の放送波を伝送する単方向通信網であってもよい。また、ネットワーク300に代えて、ストリームが記録されたDVD(Digital Versatile Disc)、または、BD(Blue-Ray Disc)等の記録媒体が用いられてもよい。 The network 300 transmits the stream generated by the encoding device 100 to the decoding device 200. The network 300 may be the Internet, a WAN (Wide Area Network), a LAN (Local Area Network), or any combination of these. Furthermore, the network 300 is not necessarily limited to a two-way communication network, and may be a one-way communication network that transmits broadcast waves such as terrestrial digital broadcasting or satellite broadcasting. Furthermore, instead of the network 300, a recording medium such as a DVD (Digital Versatile Disc) or a BD (Blu-Ray Disc) on which a stream is recorded may be used.
ストリームは、ネットワーク300を介して復号装置200に伝送される。復号装置200は、ビットストリームを復号し、復号された頂点の三次元座標、接続性及び関連属性を用いて三次元メッシュを生成する。復号装置200は、生成した三次元メッシュ(出力3Dメッシュまたは出力メッシュともいう)を出力する。 The stream is transmitted to the decoding device 200 via the network 300. The decoding device 200 decodes the bitstream and generates a 3D mesh using the 3D coordinates, connectivity and associated attributes of the decoded vertices. The decoding device 200 outputs the generated 3D mesh (also called output 3D mesh or output mesh).
図27は、符号化装置100の別の構成例を示す図である。 FIG. 27 shows another example configuration of the encoding device 100.
図27に示されるように、符号化装置100は、前処理器1103と、圧縮器1106とを備える。 As shown in FIG. 27, the encoding device 100 includes a preprocessor 1103 and a compressor 1106.
符号化装置100は、入力メッシュ1101と属性マップ1102とを読み込み、前処理器1103に渡す。前処理器1103は、入力メッシュを処理してベースメッシュ1104と変位データ1105を抽出する。属性マップ1102は、抽出されたベースメッシュ1104、変位データ1105とともに圧縮器1106に渡される。 The encoding device 100 reads the input mesh 1101 and the attribute map 1102, and passes them to the preprocessor 1103. The preprocessor 1103 processes the input mesh to extract a base mesh 1104 and displacement data 1105. The attribute map 1102 is passed to the compressor 1106 together with the extracted base mesh 1104 and displacement data 1105.
また、圧縮器1106は、ベースメッシュ1104、変位データ1105、および属性マップ1102を圧縮してビットストリーム1107を生成する。圧縮器1106は、ビットストリーム1107にメタデータ1108をさらに含めることで、付加情報を復号装置200に送信することができる。 The compressor 1106 also compresses the base mesh 1104, the displacement data 1105, and the attribute map 1102 to generate a bitstream 1107. The compressor 1106 can transmit additional information to the decoding device 200 by further including metadata 1108 in the bitstream 1107.
図28は、復号装置200の別の構成例を示す図である。 FIG. 28 shows another example configuration of the decryption device 200.
図28に示されるように、復号装置200は、伸張器2102と、後処理器2106とを備える。 As shown in FIG. 28, the decoding device 200 includes a decompressor 2102 and a post-processor 2106.
復号装置200は、ビットストリーム2101を読み込み、伸張器2102に渡す。伸張器2102は、ベースメッシュ2103と、変位データ2104と、属性マップ2108とをビットストリーム2101から伸張し、後処理器2106に渡す。変位データ2104の一例は、変位ベクトルである。 The decoding device 200 reads the bitstream 2101 and passes it to the decompressor 2102. The decompressor 2102 decompresses the base mesh 2103, the displacement data 2104, and the attribute map 2108 from the bitstream 2101 and passes them to the post-processor 2106. An example of the displacement data 2104 is a displacement vector.
また、後処理器2106は、変位データ2104および属性マップ2108に従ってベースメッシュ2103を処理することで、出力メッシュ2107を生成する。後処理器2106は、メタデータ2105からの情報をさらに使用して、出力メッシュ2107を生成してもよい。 The post-processor 2106 also processes the base mesh 2103 according to the displacement data 2104 and the attribute map 2108 to generate the output mesh 2107. The post-processor 2106 may further use information from the metadata 2105 to generate the output mesh 2107.
図29は、本実施の形態に係る符号化装置100のさらに別の構成例を示すブロック図である。 FIG. 29 is a block diagram showing yet another example configuration of the encoding device 100 according to this embodiment.
本例では、符号化装置100は、ボリュメトリックキャプチャ器511と、投影器512と、ベースメッシュ符号化器513と、変位符号化器514と、属性符号化器515と、オプションとして1つ以上の他タイプ符号化器516と、を備える。 In this example, the encoding device 100 includes a volumetric capturer 511, a projector 512, a base mesh encoder 513, a displacement encoder 514, an attribute encoder 515, and optionally one or more other type encoders 516.
ボリュメトリックキャプチャ器511は、コンテンツをキャプチャし、キャプチャしたコンテンツを投影器512に出力する。 The volumetric capturer 511 captures the content and outputs the captured content to the projector 512.
投影器512は、ジオメトリ座標(頂点の位置を示す頂点座標)、テクスチャ座標、及び、接続性(接続情報)等を含む入力メッシュ(三次元メッシュフレーム)にコンテンツを投影する。そのデータは、ベースメッシュ符号化器513、変位符号化器514、属性符号化器515、及び、オプションとして1つ以上の他タイプ符号化器516に出力される。それぞれの符号化器は、データをビットストリームに圧縮する。 The projector 512 projects the content onto an input mesh (a 3D mesh frame) including geometry coordinates (vertex coordinates indicating the positions of the vertices), texture coordinates, and connectivity (connection information). The data is output to a base mesh encoder 513, a displacement encoder 514, an attribute encoder 515, and optionally one or more other type encoders 516. Each encoder compresses the data into a bitstream.
図30は、本実施の形態に係る復号装置200のさらに別の構成例を示すブロック図である。 FIG. 30 is a block diagram showing yet another example configuration of the decoding device 200 according to this embodiment.
本例では、復号装置200は、ベースメッシュ復号器613と、変位復号器614と、属性復号器615と、1つ以上の他タイプ復号器616と、三次元再構成器617と、を備える。 In this example, the decoding device 200 includes a base mesh decoder 613, a displacement decoder 614, an attribute decoder 615, one or more other type decoders 616, and a 3D reconstructor 617.
ビットストリームは、ベースメッシュ復号器613、変位復号器614、属性復号器615、及び、オプションとして1つ以上の他タイプ復号器616に送られる。これらの復号器は、ビットストリームを復号することにより、ジオメトリ座標、テクスチャ座標及び接続性等を含むデータ(復号されたデータ)を生成する。そして、復号されたデータは三次元再構成器617に送られ、出力メッシュ(三次元メッシュフレーム)が再構成される。 The bitstream is sent to a base mesh decoder 613, a displacement decoder 614, an attribute decoder 615, and optionally one or more other type decoders 616. These decoders decode the bitstream to generate data (decoded data) including geometry coordinates, texture coordinates, connectivity, etc. The decoded data is then sent to a 3D reconstructor 617, which reconstructs the output mesh (3D mesh frame).
以降において、符号化装置100が行う符号化処理を詳しく説明する。 The encoding process performed by the encoding device 100 will be explained in detail below.
図31は、符号化装置100の処理を示すフロー図である。図32は、メッシュフレームの符号化を概念的に示す説明図である。図31および図32を参照しながら、符号化装置100の処理を説明する。 FIG. 31 is a flow diagram showing the processing of the encoding device 100. FIG. 32 is an explanatory diagram conceptually showing the encoding of a mesh frame. The processing of the encoding device 100 will be explained with reference to FIGS. 31 and 32.
ステップS101において、符号化装置100は、入力メッシュフレームである3Dメッシュフレームとその属性とを読み込む。入力メッシュフレームは、符号化装置100に入力されたメッシュフレームである。入力メッシュフレームである3Dメッシュフレームの例がメッシュフレーム1301として示されている(図32参照)。 In step S101, the encoding device 100 reads a 3D mesh frame, which is an input mesh frame, and its attributes. The input mesh frame is a mesh frame input to the encoding device 100. An example of a 3D mesh frame that is an input mesh frame is shown as mesh frame 1301 (see FIG. 32).
ステップS102において、符号化装置100は、ステップS101で読み込まれた入力メッシュフレームに対してデシメート処理をすることで、入力メッシュフレームより頂点数が少ないベースメッシュフレームを生成する。メッシュフレーム1301をデシメートすることで生成したベースメッシュフレームが、ベースメッシュフレーム1302として示されている(図32参照)。 In step S102, the encoding device 100 performs a decimation process on the input mesh frame read in step S101 to generate a base mesh frame having a smaller number of vertices than the input mesh frame. The base mesh frame generated by decimating the mesh frame 1301 is shown as base mesh frame 1302 (see FIG. 32).
ステップS103において、符号化装置100は、復号装置200がメッシュフレームを再構成するために使用する変位情報を算出する。変位情報は、ステップS102で生成したベースメッシュフレームの頂点から、入力メッシュフレームの頂点に向かう変位ベクトルに相当する。変位情報の算出方法としては、入力メッシュフレームの頂点の座標からベースメッシュフレームの頂点の座標を減算する方法がある。メッシュフレーム1301とベースメッシュフレーム1302とから算出される変位情報が変位情報1303として示されている(図32参照)。変位情報1303は、ベクトル形式であり、言い換えれば、変位ベクトルとして表現されている。 In step S103, the encoding device 100 calculates displacement information that the decoding device 200 uses to reconstruct the mesh frame. The displacement information corresponds to a displacement vector directed from a vertex of the base mesh frame generated in step S102 to a vertex of the input mesh frame. One method for calculating the displacement information is to subtract the coordinates of the vertex of the base mesh frame from the coordinates of the vertex of the input mesh frame. The displacement information calculated from the mesh frame 1301 and the base mesh frame 1302 is shown as displacement information 1303 (see FIG. 32). The displacement information 1303 is in vector format, in other words, expressed as a displacement vector.
ステップS104において、符号化装置100は、ステップS102で生成したベースメッシュフレーム、ステップS103で生成した変位情報、および、入力メッシュフレームの属性をビットストリーム(圧縮ビットストリームに相当)に符号化する。ビットストリームの例がビットストリーム1304として示されている(図32参照)。 In step S104, the encoding device 100 encodes the base mesh frame generated in step S102, the displacement information generated in step S103, and the attributes of the input mesh frame into a bitstream (corresponding to a compressed bitstream). An example of the bitstream is shown as bitstream 1304 (see FIG. 32).
具体的には、ビットストリーム1304には、頂点A、C、EおよびFの頂点座標および接続情報と、変位情報と、テクスチャデータを含むビデオビットストリームと、圧縮された属性マップとが含まれる(図32参照)。変位情報は、サブ分割されたベースメッシュフレームから取得された頂点座標に基づいて頂点を変位させるための変位情報が含まれる。圧縮された属性マップは、ベースメッシュフレームと変位情報を用いて再構成されたメッシュフレームにテクスチャデータを適用するためのテクスチャ座標である。 Specifically, bitstream 1304 includes vertex coordinates and connectivity information for vertices A, C, E, and F, displacement information, a video bitstream including texture data, and a compressed attribute map (see FIG. 32). The displacement information includes displacement information for displacing vertices based on vertex coordinates obtained from a subdivided base mesh frame. The compressed attribute map is texture coordinates for applying texture data to a mesh frame reconstructed using the base mesh frame and the displacement information.
以降において、復号装置200が行う復号処理を詳しく説明する。 The decoding process performed by the decoding device 200 will be explained in detail below.
図33は、復号装置200の処理を示すフロー図である。図34は、メッシュフレーム(3Dメッシュ)の復号を概念的に示す説明図である。図33および図34を参照しながら、復号装置200の処理を説明する。 FIG. 33 is a flow diagram showing the processing of the decoding device 200. FIG. 34 is an explanatory diagram conceptually showing the decoding of a mesh frame (3D mesh). The processing of the decoding device 200 will be explained with reference to FIGS. 33 and 34.
ステップS201において、復号装置200は、ビットストリーム(圧縮ビットストリームに相当)からベースメッシュフレームと属性とを復号する。復号されたベースメッシュフレーム(復号ベースメッシュフレームに相当)の例が、復号されたベースメッシュフレーム2301として示されている(図34参照)。 In step S201, the decoding device 200 decodes the base mesh frame and attributes from the bit stream (corresponding to the compressed bit stream). An example of the decoded base mesh frame (corresponding to the decoded base mesh frame) is shown as the decoded base mesh frame 2301 (see FIG. 34).
ステップS202において、復号装置200は、ステップS201で復号したベースメッシュフレームに対するサブ分割処理により、サブ分割された頂点を生成する。サブ分割された頂点を含むベースメッシュフレーム(メッシュフレーム)の例が、ベースメッシュフレーム2302として示されている(図34参照)。 In step S202, the decoding device 200 generates sub-divided vertices by performing a sub-division process on the base mesh frame decoded in step S201. An example of a base mesh frame (mesh frame) including sub-divided vertices is shown as base mesh frame 2302 (see FIG. 34).
ステップS203において、復号装置200は、ビットストリーム(圧縮ビットストリームに相当)から変位情報を復号する。復号された変位情報の例が変位情報2303として示されている(図34参照)。変位情報2303は、ベクトル形式であり、言い換えれば、変位ベクトルとして表現されている。 In step S203, the decoding device 200 decodes the displacement information from the bit stream (corresponding to the compressed bit stream). An example of the decoded displacement information is shown as displacement information 2303 (see FIG. 34). The displacement information 2303 is in vector format, in other words, expressed as a displacement vector.
ステップS204において、復号装置200は、サブ分割された頂点を含むベースメッシュフレームの頂点を、変位情報を用いて新たな位置へ移動させることでメッシュフレームの形状を再構成し、さらに属性情報を適用することにより、メッシュフレームを復元する。属性の一例はテクスチャである。再構成されたメッシュフレームの例が、メッシュフレーム2304として示されている(図34参照)。 In step S204, the decoding device 200 reconstructs the shape of the mesh frame by moving the vertices of the base mesh frame, including the sub-divided vertices, to new positions using the displacement information, and then applies the attribute information to restore the mesh frame. An example of an attribute is texture. An example of a reconstructed mesh frame is shown as mesh frame 2304 (see FIG. 34).
図35は、本実施の形態に係る復号装置の構成例を示すブロック図である。 FIG. 35 is a block diagram showing an example of the configuration of a decoding device according to this embodiment.
図35は、一般的なイントラ復号のブロック図の一例を示す。 Figure 35 shows an example of a typical block diagram for intra-decoding.
図35に示される復号装置は、逆多重化器1231と、スイッチ1232と、静的メッシュ復号器1233と、メッシュバッファ1234と、モーション復号器1235と、ベースメッシュ再構成器1236と、逆量子化器1237と、ビデオ復号器1238と、イメージアンパッカ1239と、逆量子化器1240と、逆ウェーブレット変換器1241と、再構成器1242と、ビデオ復号器1243と、色変換器1244とを備える。 The decoding device shown in FIG. 35 includes a demultiplexer 1231, a switch 1232, a static mesh decoder 1233, a mesh buffer 1234, a motion decoder 1235, a base mesh reconstructor 1236, an inverse quantizer 1237, a video decoder 1238, an image unpacker 1239, an inverse quantizer 1240, an inverse wavelet transformer 1241, a reconstructor 1242, a video decoder 1243, and a color transformer 1244.
逆多重化器1231は、圧縮されたビットストリームを取得し、ベースメッシュに関する圧縮データ、変位データを含む映像(変位ビットストリームともいう)、属性データを含む映像(属性ビットストリームともいう)を分離する。ベースメッシュに関する圧縮データはスイッチ1232に渡される。スイッチ1232は、ビットストリーム内のパラメータに基づいてイントラ復号処理またはインター復号処理のどちらを実行するかを決定する。 The demultiplexer 1231 takes the compressed bitstream and separates the compressed data for the base mesh, the image containing the displacement data (also called the displacement bitstream), and the image containing the attribute data (also called the attribute bitstream). The compressed data for the base mesh is passed to the switch 1232, which decides whether to perform an intra-decoding operation or an inter-decoding operation based on parameters in the bitstream.
イントラ復号処理が選択された場合、ビットストリームは、量子化されたベースメッシュを生成する静的メッシュ復号器1233に渡される。静的メッシュ復号器1233は、例えば、3Dメッシュデータのデコードにエッジブレーカアルゴリズムを使用する復号器である。静的メッシュ復号器1233は、ビットストリームから、量子化されたベースメッシュを生成する。静的メッシュ復号器1233により生成された、量子化されたベースメッシュは、インター復号処理が選択されたときに参照するためにメッシュバッファ1234に格納される。 If an intra-decoding process is selected, the bitstream is passed to a static mesh decoder 1233 which generates a quantized base mesh. The static mesh decoder 1233 is, for example, a decoder that uses an edge breaker algorithm to decode the 3D mesh data. The static mesh decoder 1233 generates a quantized base mesh from the bitstream. The quantized base mesh generated by the static mesh decoder 1233 is stored in a mesh buffer 1234 for reference when an inter-decoding process is selected.
スイッチ1232は、インター復号処理が選択された場合、ベースメッシュに関する圧縮データをモーション復号器1235に渡す。モーション復号器1235は、以前に復号された、量子化されたベースメッシュを受け取り、メッシュバッファ1234に格納されている、量子化されたベースメッシュと、現在の量子化されたベースメッシュとの間の頂点の座標の差を表すモーションデータを復号する。モーションデータと、メッシュバッファ1234に格納されている、量子化されたベースメッシュは、現在の量子化されたベースメッシュの再構成のためにベースメッシュ再構成器1236で使用される。インター復号処理またはイントラ復号処理から得られた、量子化されたベースメッシュは、逆量子化器1237に渡され、復号されたベースメッシュを得る。 If inter-decoding is selected, the switch 1232 passes compressed data for the base mesh to the motion decoder 1235. The motion decoder 1235 receives the previously decoded quantized base mesh and decodes motion data representing the difference in vertex coordinates between the quantized base mesh stored in the mesh buffer 1234 and the current quantized base mesh. The motion data and the quantized base mesh stored in the mesh buffer 1234 are used by the base mesh reconstructor 1236 for the reconstruction of the current quantized base mesh. The quantized base mesh resulting from the inter-decoding or intra-decoding process is passed to the inverse quantizer 1237 to obtain the decoded base mesh.
変位データを含む映像は、当該ビットストリームが2つのクロマ情報と1つのルマ情報を有する画像フォーマットの変位データを含むので、ビデオ復号器1238に渡される。ビデオ復号器1238は、ビデオフレーム伸張法を用いてデータを復号する。別の例では、変位データは、算術復号器を用いて復号される。この伸張データは、画像形式の伸張データから各頂点に関連するウェーブレット係数を抽出するイメージアンパッカ1239に渡される。逆量子化器1240は、量子化されたウェーブレット係数を各頂点に関連する3成分で逆量子化する。逆ウェーブレット変換器1241は、その結果を逆変換して、最終的に復号された変位データを得る。復号された変位データと復号されたベースメッシュは、再構成器1242に渡される。再構成器1242は、復号されたベースメッシュのエッジの細分化を行い、デコードされた変位データを用いて頂点を変位させ、復号されたメッシュを得る。 The video including the displacement data is passed to a video decoder 1238, as the bitstream includes the displacement data in an image format with two chroma and one luma information. The video decoder 1238 decodes the data using a video frame decompression method. In another example, the displacement data is decoded using an arithmetic decoder. This decompressed data is passed to an image unpacker 1239, which extracts wavelet coefficients associated with each vertex from the decompressed data in image format. The inverse quantizer 1240 dequantizes the quantized wavelet coefficients with the three components associated with each vertex. The inverse wavelet transformer 1241 inverse transforms the result to finally obtain the decoded displacement data. The decoded displacement data and the decoded base mesh are passed to a reconstructor 1242, which performs edge subdivision of the decoded base mesh and displaces the vertices using the decoded displacement data to obtain the decoded mesh.
属性データを含む映像は、復号された属性ビットストリームを得るために、別のビデオ復号器1243に渡される。復号された属性ビットストリームは、色空間とカラーフォーマットの変換のために色変換器1244でさらに処理され、復号された属性マップが得られる。 The video including the attribute data is passed to another video decoder 1243 to obtain a decoded attribute bitstream. The decoded attribute bitstream is further processed in a color converter 1244 for color space and color format conversion to obtain a decoded attribute map.
図36は、本実施の形態に係る符号化装置の構成例を示すブロック図である。 FIG. 36 is a block diagram showing an example of the configuration of an encoding device according to this embodiment.
まず、符号化装置は、ベースメッシュビットストリーム、変位ビットストリーム、及び、三次元メッシュの前処理ステップから得られる属性ビットストリームを取得する。 First, the encoding device obtains the base mesh bitstream, the displacement bitstream, and the attribute bitstream resulting from the 3D mesh preprocessing step.
図36に示される符号化装置は、量子化器1261と、スイッチ1262と、静的メッシュ符号化器1263と、メッシュバッファ1264と、モーション符号化器1265と、ベースメッシュ再構成器1266と、変位データ更新器1267と、ウェーブレット変換器1268と、量子化器1269と、イメージパッカ1270と、ビデオ符号化器1271と、色変換器1272と、ビデオ符号化器1273とを備える。 The encoding device shown in FIG. 36 includes a quantizer 1261, a switch 1262, a static mesh encoder 1263, a mesh buffer 1264, a motion encoder 1265, a base mesh reconstructor 1266, a displacement data updater 1267, a wavelet transformer 1268, a quantizer 1269, an image packer 1270, a video encoder 1271, a color converter 1272, and a video encoder 1273.
ベースメッシュ(具体的には、ベースメッシュを構成する複数の頂点の位置情報)は、まず、量子化器1261で量子化される。量子化されたベースメッシュ(ベースメッシュデータ)は、イントラ符号化又はインター符号化を決定するスイッチ1262に出力される。量子化されたベースメッシュ(ベースメッシュビットストリーム)は、イントラ符号化が選択された場合、量子化されたベースメッシュを生成する静的メッシュ符号化器1263に出力される。静的メッシュ符号化器1263としては、三次元メッシュデータを符号化するためのエッジブレーカアルゴリズムを用いる符号化器が例示される。この符号化(量子化)されたベースメッシュは、インター符号化が選択されたときに参照するためにメッシュバッファ1264に格納される。スイッチ1262は、インター符号化が選択された場合、ベースメッシュに関連する圧縮データをモーション符号化器1265に出力する。メッシュバッファ1264内のモーションデータと静的三次元メッシュとは、現在の量子化ベースメッシュの再構成のためにベースメッシュ再構成器1266で用いられる。 The base mesh (specifically, the position information of the multiple vertices that make up the base mesh) is first quantized by a quantizer 1261. The quantized base mesh (base mesh data) is output to a switch 1262 that determines whether intra-coding or inter-coding is performed. If intra-coding is selected, the quantized base mesh (base mesh bitstream) is output to a static mesh encoder 1263 that generates a quantized base mesh. An example of the static mesh encoder 1263 is an encoder that uses an edge breaker algorithm to encode 3D mesh data. This encoded (quantized) base mesh is stored in a mesh buffer 1264 for reference when inter-coding is selected. If inter-coding is selected, the switch 1262 outputs compressed data related to the base mesh to a motion encoder 1265. The motion data and the static 3D mesh in the mesh buffer 1264 are used by a base mesh reconstructor 1266 to reconstruct the current quantized base mesh.
変位データは、変位データ更新器1267に出力され、そこで量子化された静的ベースメッシュ又は再構成されたインター符号化ベースメッシュに基づいて更新される。次に、ウェーブレット変換器1268が変換処理を行い、続いて、量子化器1269で量子化が行われる。量子化された変位データは、イメージパッカ1270で画像にパックされ、最後にビデオ符号化器1271で符号化される。符号化された変位データは、多重化器1274に出力される。 The displacement data is output to a displacement data updater 1267 where it is updated based on the quantized static base mesh or the reconstructed inter-coded base mesh. Next, a wavelet transformer 1268 performs a transformation process, followed by quantization in a quantizer 1269. The quantized displacement data is packed into an image in an image packer 1270 and finally encoded in a video coder 1271. The encoded displacement data is output to a multiplexer 1274.
属性情報(例えば、属性マップ)は、色空間及び色フォーマットの変換のために色変換器1272に出力される。この変換された属性情報は、ビデオ符号化器1273で符号化され、多重化器1274に出力される。 The attribute information (e.g., an attribute map) is output to a color converter 1272 for color space and color format conversion. This converted attribute information is coded in a video coder 1273 and output to a multiplexer 1274.
多重化器1274は、符号化されたベースメッシュに関するデータ(ベースメッシュに関する圧縮データ)、符号化された変位データを含む映像データ、符号化された属性マップなどの属性情報を含む映像データを取得し、取得したこれらのデータを含むビットストリーム(圧縮ビットストリーム)を生成する。生成された圧縮ビットストリームは、例えば、復号装置に出力される。 The multiplexer 1274 acquires data relating to the encoded base mesh (compressed data relating to the base mesh), video data including encoded displacement data, and video data including attribute information such as encoded attribute maps, and generates a bitstream (compressed bitstream) including these acquired data. The generated compressed bitstream is output to, for example, a decoding device.
図37は、本実施の形態に係る復号装置の構成例を示すブロック図である。 FIG. 37 is a block diagram showing an example of the configuration of a decoding device according to this embodiment.
図37は、復号されたベースメッシュ1251、および、復号された変位データ1254から、復号された3Dメッシュ1256を得る、再構成器の一例を示す図である。 Figure 37 shows an example of a reconstructor that obtains a decoded 3D mesh 1256 from a decoded base mesh 1251 and decoded displacement data 1254.
復号されたベースメッシュ1251は、サブ分割器1252に渡される。 The decoded base mesh 1251 is passed to the subdivision unit 1252.
サブ分割器1252は、3Dメッシュ全体の任意の2つの接続された頂点を、それらの間に新しい頂点を追加することによってサブ分割する。この処理は、予め定義された数の頂点を生成するために、前のサブ分割ステップで作成された頂点を含むように数回繰り返すことができる。3Dメッシュ全体にわたる各サブ分割の反復は、新しい詳細度(LoD)を生成する。サブ分割されたメッシュ1253と、復号された変位データ1254とは、変位器1255に渡される。変位器1255は、対応する変位データに従って各頂点を新しい位置に移動させることで、復号された3Dメッシュ1256を生成する。 The subdivision 1252 subdivides any two connected vertices in the entire 3D mesh by adding a new vertex between them. This process can be repeated several times to include vertices created in the previous subdivision step to generate a predefined number of vertices. Each subdivision iteration across the entire 3D mesh generates a new Level of Detail (LoD). The subdivided mesh 1253 and the decoded displacement data 1254 are passed to the displacer 1255, which generates the decoded 3D mesh 1256 by moving each vertex to a new position according to the corresponding displacement data.
以降において、サブ分割について説明する。サブ分割は、例えば、サブ分割器1252により実行される。 The subdivision is described below. The subdivision is performed, for example, by the subdivision unit 1252.
図38は、サブ分割の例を示す説明図である。 Figure 38 is an explanatory diagram showing an example of subdivision.
図38の(a)に示されるベースメッシュには、頂点A、BおよびCと、それらの接続性を示す接続情報が含まれている。 The base mesh shown in FIG. 38(a) includes vertices A, B, and C, and connectivity information indicating their connectivity.
図38の(b)には、1回目のサブ分割により生成されるメッシュ、言い換えれば、1回目のサブ分割後のメッシュが示されている。サブ分割器は、1回目のサブ分割において、頂点D、EおよびFと、それらの接続性を示す接続情報を生成する。サブ分割器が生成した上記メッシュを、LoD1または第1LoDともいう。 (b) of FIG. 38 shows the mesh generated by the first subdivision, in other words, the mesh after the first subdivision. In the first subdivision, the subdivider generates vertices D, E, and F and connectivity information indicating their connectivity. The mesh generated by the subdivider is also called LoD1 or first LoD.
1回目のサブ分割後のメッシュの頂点Dは、頂点Aおよび頂点Bに基づくサブ分割により生成された頂点である。同様に、頂点Fは、頂点Bおよび頂点Cに基づくサブ分割により生成された頂点である。頂点Eは、頂点Aおよび頂点Cに基づくサブ分割により生成された頂点である。 Vertex D of the mesh after the first subdivision is a vertex generated by subdivision based on vertices A and B. Similarly, vertex F is a vertex generated by subdivision based on vertices B and C. Vertex E is a vertex generated by subdivision based on vertices A and C.
なお、頂点Dは、一例として、その生成の元になった頂点AおよびBを結ぶ線分AB(言い換えれば辺AB)の中点であり得る。同様に、頂点Eは、線分ACの中点であり得る。頂点Fは、線分BCの中点であり得る。 As an example, vertex D may be the midpoint of line segment AB (in other words, side AB) that connects vertices A and B from which it was generated. Similarly, vertex E may be the midpoint of line segment AC. Vertex F may be the midpoint of line segment BC.
図38の(c)には、2回目のサブ分割により生成されるメッシュ、言い換えれば、2回目のサブ分割後のメッシュが示されている。サブ分割器は、2回目のサブ分割において、頂点G、H、I、J、K、L、M、NおよびOと、それらの接続性を示す接続情報を生成する。サブ分割器が生成した上記メッシュを、LoD2または第2LoDともいう。 (c) of FIG. 38 shows the mesh generated by the second subdivision, in other words, the mesh after the second subdivision. In the second subdivision, the subdivider generates vertices G, H, I, J, K, L, M, N, and O and connectivity information indicating their connectivity. The mesh generated by the subdivider is also called LoD2 or second LoD.
2回目のサブ分割後のメッシュの頂点Gは、頂点Aおよび頂点Dに基づくサブ分割により生成された頂点である。同様に、頂点Hは、頂点Aおよび頂点Eに基づくサブ分割により生成された頂点である。頂点Iは、頂点Bおよび頂点Dに基づくサブ分割により生成された頂点である。頂点Jは、頂点Dおよび頂点Fに基づくサブ分割により生成された頂点である。頂点Kは、頂点Eおよび頂点Fに基づくサブ分割により生成された頂点である。頂点Lは、頂点Cおよび頂点Eに基づくサブ分割により生成された頂点である。頂点Mは、頂点Bおよび頂点Fに基づくサブ分割により生成された頂点である。頂点Nは、頂点Cおよび頂点Fに基づくサブ分割により生成された頂点である。頂点Oは、頂点Dおよび頂点Eに基づくサブ分割により生成された頂点である。 Vertex G of the mesh after the second subdivision is a vertex generated by subdivision based on vertices A and D. Similarly, vertex H is a vertex generated by subdivision based on vertices A and E. Vertex I is a vertex generated by subdivision based on vertices B and D. Vertex J is a vertex generated by subdivision based on vertices D and F. Vertex K is a vertex generated by subdivision based on vertices E and F. Vertex L is a vertex generated by subdivision based on vertices C and E. Vertex M is a vertex generated by subdivision based on vertices B and F. Vertex N is a vertex generated by subdivision based on vertices C and F. Vertex O is a vertex generated by subdivision based on vertices D and E.
なお、頂点Gは、一例として、その生成の元になった頂点AおよびDを結ぶ線分AD(言い換えれば辺AD)の中点であり得る。同様に、頂点Hは、線分AEの中点であり得る。頂点Iは、線分BDの中点であり得る。頂点Jは、線分DFの中点であり得る。頂点Kは、線分EFの中点であり得る。頂点Lは、線分CEの中点であり得る。頂点Mは、線分BFの中点であり得る。頂点Nは、線分CFの中点であり得る。頂点Oは、線分DEの中点であり得る。 As an example, vertex G may be the midpoint of line segment AD (in other words, side AD) that connects vertices A and D from which it was generated. Similarly, vertex H may be the midpoint of line segment AE. vertex I may be the midpoint of line segment BD. vertex J may be the midpoint of line segment DF. vertex K may be the midpoint of line segment EF. vertex L may be the midpoint of line segment CE. vertex M may be the midpoint of line segment BF. vertex N may be the midpoint of line segment CF. vertex O may be the midpoint of line segment DE.
以降において、図39および図40を参照しながら頂点の変位について説明する。頂点の変位は、再構成器により実行される。 The following describes vertex displacement with reference to Figures 39 and 40. The vertex displacement is performed by the reconstructor.
図39は、サブ分割後に変位された後の頂点の変位の例を示す説明図である。図40は、オリジナルメッシュの頂点の例を示す説明図である。 Figure 39 is an explanatory diagram showing an example of the displacement of vertices after subdivision. Figure 40 is an explanatory diagram showing an example of vertices of the original mesh.
図39の(a)に示されるベースメッシュには、頂点A、B、CおよびZと、それらの接続性を示す接続情報とが含まれている。 The base mesh shown in FIG. 39(a) includes vertices A, B, C, and Z, and connectivity information indicating their connectivity.
図39の(b)には、1回目のサブ分割により生成されるメッシュ、言い換えれば、1回目のサブ分割後のメッシュ(つまり、第1LoD)が示されている。サブ分割器は、1回目のサブ分割において、頂点S、T、U、XまたはYと、それらの接続性を示す接続情報を生成する。頂点S、T、U、XまたはYについては、図38の(b)に示される頂点D、EおよびFと同様である。 FIG. 39(b) shows the mesh generated by the first subdivision, in other words, the mesh after the first subdivision (i.e., the first LoD). In the first subdivision, the subdivision unit generates vertices S, T, U, X, or Y and connectivity information indicating their connectivity. Vertices S, T, U, X, or Y are the same as vertices D, E, and F shown in FIG. 38(b).
図39の(c)には、2回目のサブ分割により生成されるメッシュ、言い換えれば、2回目のサブ分割後のメッシュ(つまり、第2LoD)が示されている。サブ分割器は、2回目のサブ分割において、頂点D、E、F、G、およびHと、それらの接続性を示す接続情報を生成する。頂点D、E、F、G、およびHについては、図38の(c)に示される頂点G、H、I、J、K、L、M、NまたはOと同様である。 (c) of FIG. 39 shows the mesh generated by the second subdivision, in other words, the mesh after the second subdivision (i.e., the second LoD). In the second subdivision, the subdivision unit generates vertices D, E, F, G, and H and connectivity information indicating their connectivity. Vertices D, E, F, G, and H are the same as vertices G, H, I, J, K, L, M, N, or O shown in (c) of FIG. 38.
図39の(d)は、サブ分割後に変位された後の頂点を含むメッシュを示している。図39の(d)に示される頂点A、B、C、D、E、F、G、H、S、T、U、X、YおよびZは、それぞれ、図39の(c)に示される当該頂点の位置から変位情報を用いて変位された位置に位置している。 (d) in Figure 39 shows a mesh including the vertices after they have been displaced after subdivision. Vertices A, B, C, D, E, F, G, H, S, T, U, X, Y, and Z shown in (d) in Figure 39 are each located at a position displaced from the position of the vertex shown in (c) in Figure 39 using the displacement information.
図40に示されるオリジナルメッシュは、符号化装置100に入力されたメッシュ、つまり、符号化前のメッシュの例である。 The original mesh shown in FIG. 40 is an example of the mesh input to the encoding device 100, i.e., the mesh before encoding.
図39に示されるメッシュは、図40に示されるオリジナルメッシュに近い形状を有している。変位情報は、符号化装置100の変位ベクトル算出器1207により、ベースメッシュの頂点からオリジナルメッシュの頂点への変位を示す情報として生成されたものであるので、そのように生成された変位情報を用いてメッシュを再構成することで、オリジナルメッシュに近い形状を有するメッシュが生成される。 The mesh shown in FIG. 39 has a shape close to that of the original mesh shown in FIG. 40. The displacement information is generated by the displacement vector calculator 1207 of the encoding device 100 as information indicating the displacement from the vertices of the base mesh to the vertices of the original mesh, so that a mesh having a shape close to that of the original mesh is generated by reconstructing the mesh using the displacement information thus generated.
復号装置200は、図39の(d)に示されるメッシュを出力することができる。 The decoding device 200 can output the mesh shown in FIG. 39(d).
次に、図41および図42を参照しながらメッシュのサブメッシュへの分割を説明する。 Next, we will explain how to divide a mesh into sub-meshes with reference to Figures 41 and 42.
メッシュは、当該メッシュより小さい複数の部分に分割され、分割された部分ごとに符号化されることが可能である。メッシュの分割の際に、メッシュの頂点は、各部分に含まれる頂点の座標と接続性とが独立して符号化可能であるように分割される。 A mesh can be divided into smaller parts and each part can be coded. When dividing a mesh, the vertices of the mesh are divided in such a way that the coordinates and connectivity of the vertices in each part can be coded independently.
図41は、メッシュの例を示す説明図である。図42は、メッシュのサブメッシュへの分割の例を示す説明図である。 Figure 41 is an explanatory diagram showing an example of a mesh. Figure 42 is an explanatory diagram showing an example of dividing a mesh into sub-meshes.
図41に示されるメッシュは、オリジナルメッシュであり、サブメッシュと対比してフルメッシュと呼ばれることもある。 The mesh shown in Figure 41 is the original mesh, and is sometimes called a full mesh in contrast to a submesh.
図42は、図41に示されるフルメッシュが2つのサブメッシュに分割される様子を示している。フルメッシュの頂点A、BおよびC(図41参照)について、頂点Aが頂点A1と頂点A2とに複製され、頂点Bが頂点B1と頂点B2とに複製され、頂点Cが頂点C1と頂点C2とに複製されることで、フルメッシュから2つのサブメッシュ(つまり第1サブメッシュおよび第2サブメッシュ)が作成される。第1サブメッシュと第2サブメッシュとは、それぞれ、独立に復号可能なメッシュである。 Figure 42 shows how the full mesh shown in Figure 41 is divided into two submeshes. For vertices A, B, and C of the full mesh (see Figure 41), vertex A is duplicated to vertices A1 and A2, vertex B is duplicated to vertices B1 and B2, and vertex C is duplicated to vertices C1 and C2, thereby creating two submeshes (i.e., a first submesh and a second submesh) from the full mesh. The first submesh and the second submesh are each meshes that can be decoded independently.
以降において、図43、図44および図45を参照しながら、変位情報の画像フレームへのパッキングを説明する。 The following describes packing of displacement information into image frames with reference to Figures 43, 44, and 45.
図43、図44および図45は、変位情報の画像フレームへのパッキングの例を示す説明図である。なお、画像フレームは、ビデオフレームに言い換えることもできる。 Figures 43, 44, and 45 are explanatory diagrams showing examples of packing displacement information into image frames. Note that image frames can also be referred to as video frames.
頂点の変位データは、例えば、YUVフォーマットの画像フレームの各成分(つまり、Y成分(Y Plane)、U成分(U Plane)およびV成分(V Plane)のそれぞれ)にマッピングされることにより画像フレームデータとして符号化される。この場合を例として下記に説明する。なお、別の例として、頂点の変位データは、RGBフォーマットの画像フレームの各成分(R成分、G成分およびB成分のそれぞれ)にマッピングされることによって画像フレームデータとして符号化されてもよい。 The vertex displacement data is encoded as image frame data, for example, by mapping it to each component of an image frame in YUV format (i.e., each of the Y component (Y Plane), U component (U Plane), and V component (V Plane)). This case is described below as an example. As another example, the vertex displacement data may be encoded as image frame data by mapping it to each component of an image frame in RGB format (each of the R component, G component, and B component).
復号装置200は、変位データを抽出するために画像符号化モジュールを使用することができる。変位データは、グローバル座標系(例えば、デカルト座標系)におけるX成分、Y成分もしくはZ成分、または、ローカル座標系における法線、接線、もしくは、両接線成分の形態であってもよい。変位データを画像フレームにマッピングする方法には、下記の方法が含まれる。 The decoding device 200 can use an image encoding module to extract the displacement data. The displacement data can be in the form of X, Y or Z components in a global coordinate system (e.g., Cartesian coordinate system), or normal, tangent or both tangent components in a local coordinate system. Methods for mapping the displacement data to an image frame include the following methods:
例えば、第1の方法では、変位データが画像フレームにおいて走査順に配置される。この場合の変位データのパッキングの例が図43に示されている。変位データは、あらかじめ定義された走査順序に従って、画像フレームに直接マッピングされる。 For example, in the first method, the displacement data is arranged in the image frame in scan order. An example of packing of the displacement data in this case is shown in Figure 43. The displacement data is directly mapped into the image frame according to a predefined scan order.
なお、画像フレームは高さと幅とが固定されているため、変位データがフレームにぴったり収まらない場合がある。このような場合、画像フレームの残りの部分がパディング用のデータ(Padded dataともいう)によりパディングされる(図43参照)。 Note that because an image frame has a fixed height and width, the displacement data may not fit perfectly into the frame. In such cases, the remaining part of the image frame is padded with padding data (see Figure 43).
例えば、第2の方法では、変位データが複数のLoDに分離され、画像フレームのY成分、U成分およびV成分にマッピングされる。この場合の変位データのパッキングの例が図44に示されている。ここで、次の一のLoDの画像フレームの変位データは、前のLoDの変位データが終了した直後に開始される。第1の方法と同様に、変位データが画像フレームにぴったり収まらない場合には、画像フレームの末尾の部分にパディングが行われる(図44参照)。 For example, in the second method, the displacement data is separated into multiple LoDs and mapped to the Y, U, and V components of the image frame. An example of packing of the displacement data in this case is shown in Figure 44, where the displacement data for the next LoD image frame starts immediately after the displacement data for the previous LoD ends. As with the first method, if the displacement data does not fit exactly into the image frame, padding is applied to the end of the image frame (see Figure 44).
例えば、第3の方法では、第2の方法の場合と異なる態様で、LoDに対応する変位データが、画像フレームのY成分、U成分およびV成分にマッピングされる。この場合の変位データのパッキングの例が図45に示されている。このようにすることで、各LoDが独立に復号されることが可能である。第3の方法では、各LoDの変位データに対して中間パディングが行われ、ビデオフレーム末尾のパディングとともにCTUアライメントが行われている(図45参照)。 For example, in the third method, the displacement data corresponding to the LoD is mapped to the Y, U, and V components of the image frame in a manner different from that of the second method. An example of packing of the displacement data in this case is shown in FIG. 45. In this way, each LoD can be decoded independently. In the third method, middle padding is performed on the displacement data of each LoD, and CTU alignment is performed together with padding at the end of the video frame (see FIG. 45).
続いて、メッシュが複数のサブメッシュに分割される場合の符号化装置100及び復号装置200について説明する。 Next, we will explain the encoding device 100 and the decoding device 200 when a mesh is divided into multiple sub-meshes.
図46は、実施の形態に係る符号化装置100の構成の別の一例を示す図である。具体的には、図46は、入力メッシュ1101が分割メッシュ(複数のサブメッシュ)に分割される場合の符号化処理を行う装置であるサブメッシュ符号化装置の構成を示す図である。例えば、サブメッシュ符号化装置は、符号化装置100を複数備える。 FIG. 46 is a diagram showing another example of the configuration of the encoding device 100 according to the embodiment. Specifically, FIG. 46 is a diagram showing the configuration of a submesh encoding device, which is a device that performs encoding processing when the input mesh 1101 is divided into divided meshes (multiple submeshes). For example, the submesh encoding device includes multiple encoding devices 100.
サブメッシュ符号化装置に入力される入力メッシュ1101(フルメッシュ)は、複数のメッシュ(サブメッシュ)に分割される。複数のサブメッシュは、例えば、複数の符号化装置100に入力される。複数のサブメッシュはそれぞれ、複数の符号化装置100のいずれかに入力されてもよい。例えば、サブメッシュ符号化装置は、入力メッシュ1101を複数のサブメッシュに分割し、分割された複数のサブメッシュを複数の符号化装置100に入力する。 The input mesh 1101 (full mesh) input to the submesh encoding device is divided into multiple meshes (submeshes). The multiple submeshes are input to, for example, multiple encoding devices 100. Each of the multiple submeshes may be input to one of the multiple encoding devices 100. For example, the submesh encoding device divides the input mesh 1101 into multiple submeshes and inputs the divided multiple submeshes to the multiple encoding devices 100.
また、複数のサブメッシュに分割された後、サブメッシュの境界に関する符号化処理(重複サブメッシュの処理)が実行される。 After being divided into multiple sub-meshes, coding processing is performed on the boundaries of the sub-meshes (processing of overlapping sub-meshes).
例えば、サブメッシュ毎に、前処理器1103によって前処理(Preprocessing)が実行され、ベースメッシュ、変位データ、及び、メタデータが生成されて符号化される。 For example, for each submesh, preprocessing is performed by the preprocessor 1103, and a base mesh, displacement data, and metadata are generated and encoded.
なお、符号化装置100は、このようなサブメッシュ符号化装置の構成で実現されてもよい。つまり、符号化装置100は、前処理器1103及び圧縮器1106を複数備える構成であってもよく、複数の前処理器1103及び圧縮器1106の組の組毎に、サブメッシュに対して所定の処理を実行してもよい。また、符号化装置100が備える前処理器1103及び圧縮器1106の組の数は任意でよく、特に限定されない。 The encoding device 100 may be realized in such a submesh encoding device configuration. In other words, the encoding device 100 may be configured to include a plurality of preprocessors 1103 and compressors 1106, and may execute a predetermined process on the submesh for each of a plurality of pairs of preprocessors 1103 and compressors 1106. Furthermore, the number of pairs of preprocessors 1103 and compressors 1106 included in the encoding device 100 may be any number and is not particularly limited.
図47は、実施の形態に係る前処理器1103の構成例を示す図である。 FIG. 47 shows an example of the configuration of a preprocessor 1103 according to an embodiment.
前処理器1103は、例えば、ベースメッシュ生成器1401と、サブ分割器1402と、変位データ生成器1403とを備える。 The preprocessor 1103 includes, for example, a base mesh generator 1401, a subdivision unit 1402, and a displacement data generator 1403.
まず、前処理器1103では、ベースメッシュ生成器1401によってベースメッシュが生成される。 First, in the preprocessor 1103, a base mesh is generated by the base mesh generator 1401.
次に、ベースメッシュは、サブ分割器1402によって所定の方法でサブ分割され、サブ分割されたベースメッシュであるサブ分割メッシュ(Subdivided Mesh又は Subdivided Base Mesh)が生成される。 Then, the base mesh is subdivided in a predetermined manner by the subdivider 1402 to generate a subdivided mesh (or a subdivided base mesh), which is the subdivided base mesh.
サブ分割メッシュと分割された後の入力メッシュ1101であるサブメッシュとから、変位データ生成器1403によって変位データが生成される。 Displacement data is generated by the displacement data generator 1403 from the sub-division mesh and the sub-mesh that is the input mesh 1101 after division.
変位データは、例えば、入力メッシュ1101とサブ分割メッシュとの差分ベクトルである。 The displacement data is, for example, a difference vector between the input mesh 1101 and the subdivision mesh.
なお、復号においても、符号化におけるサブ分割と同じ方法が用いられる。 The same subdivision method used for encoding is used for decoding as well.
また、例えば、符号化装置100から復号装置200に、符号化におけるサブ分割の方法及びサブ分割で用いられるパラメータが送信されてもよい。 Furthermore, for example, the encoding device 100 may transmit to the decoding device 200 a subdivision method for encoding and parameters used in the subdivision.
図48は、実施の形態に係る復号装置200の構成の別の一例を示す図である。具体的には、図48は、ビットストリーム2101に含まれる複数のサブメッシュが含まれる場合の復号処理を行う装置であるサブメッシュ復号装置の構成を示す図である。例えば、サブメッシュ復号装置は、復号装置200を複数備える。例えば、サブメッシュ復号装置は、複数の復号装置200と、結合器2109とを備える。 FIG. 48 is a diagram showing another example of the configuration of a decoding device 200 according to an embodiment. Specifically, FIG. 48 is a diagram showing the configuration of a submesh decoding device which is a device that performs decoding processing when a bit stream 2101 contains multiple submeshes. For example, the submesh decoding device includes multiple decoding devices 200. For example, the submesh decoding device includes multiple decoding devices 200 and a combiner 2109.
ビットストリーム2101に含まれるサブメッシュ毎の符号化データが、各復号装置200の伸張器2102に入力される。 The encoded data for each submesh contained in the bit stream 2101 is input to the decompressor 2102 of each decoding device 200.
また、例えば、後処理器2106において、上記の再構成器の処理が実行される。 Furthermore, for example, the processing of the reconstructor is executed in the post-processor 2106.
後処理器2106において、復号されたサブメッシュ毎に、ベースメッシュがサブ分割され、サブ分割されたベースメッシュに変位ベクトルが加算され、サブメッシュが復元される。 In the post-processor 2106, for each decoded submesh, the base mesh is subdivided, and the displacement vector is added to the subdivided base mesh to restore the submesh.
つまり、後処理器2106は、上記の再構成器の処理をサブメッシュ毎に実施する。 In other words, the post-processor 2106 performs the processing of the reconstructor described above for each submesh.
結合器2109は、複数の復号装置200のそれぞれで復元された複数のサブメッシュを結合(マージ)し、分割される前のフルメッシュ(出力メッシュ2107)を再構成する。 The combiner 2109 combines (merges) the multiple sub-meshes restored by each of the multiple decoding devices 200 to reconstruct the full mesh (output mesh 2107) before it was divided.
なお、復号装置200は、このようなサブメッシュ復号装置の構成で実現されてもよい。つまり、復号装置200は、伸張器2102及び後処理器2106を複数備える構成であってもよく、複数の伸張器2102及び後処理器2106の組の組毎に、サブメッシュ毎の符号化データに対して所定の処理を実行してもよい。また、復号装置200が備える伸張器2102及び後処理器2106の組の数は任意でよく、特に限定されない。 Note that the decoding device 200 may be realized in such a submesh decoding device configuration. In other words, the decoding device 200 may be configured to include a plurality of decompressors 2102 and post-processors 2106, and each of the plurality of pairs of decompressors 2102 and post-processors 2106 may execute a predetermined process on the encoded data for each submesh. Furthermore, the number of pairs of decompressors 2102 and post-processors 2106 included in the decoding device 200 may be any number and is not particularly limited.
図49は、実施の形態に係る復号装置200の構成の具体例を示す図である。具体的には、図49は、復号装置200が備える復号器2305と後復号器2306とのうちの後復号器2306の具体的な構成を示す。 FIG. 49 is a diagram showing a specific example of the configuration of the decoding device 200 according to the embodiment. Specifically, FIG. 49 shows a specific configuration of the rear decoder 2306 out of the decoder 2305 and rear decoder 2306 included in the decoding device 200.
後復号器2306は、前再構成器2307と、再構成器2308と、後再構成器2309と、適合器2310とを備える。 The post-decoder 2306 includes a pre-reconstructor 2307, a reconstructor 2308, a post-reconstructor 2309, and an adaptor 2310.
後復号器2306における処理は、アプリケーションによっては任意である。後復号器2306における処理(後復号処理)の例としては、YUV空間からRGB空間へのビデオ変換のように、復号されたデータのノミナルフォーマットへの変換がある。後復号処理は、前再構成処理(Pre-reconstruction)、再構成処理(Reconstruction)、後再構成処理(Post-reconstruction)、及び、適合処理(Adaptation)等の複数のプロセスにカプセル化され得る。 The processing in the post-decoder 2306 is optional depending on the application. An example of the processing in the post-decoder 2306 (post-decoding processing) is conversion of the decoded data to a nominal format, such as video conversion from YUV space to RGB space. The post-decoding processing can be encapsulated into multiple processes such as pre-reconstruction, reconstruction, post-reconstruction, and adaptation.
前再構成器2307は、前再構成処理を実行する。前再構成器2307は、例えば、ビデオベースの動的メッシュ符号化のコンテキストにおいて、テクスチャ画像のディメンジョンと整合させるために、正規化されたテクスチャ座標を拡大する。 The pre-reconstructor 2307 performs a pre-reconstruction process. The pre-reconstructor 2307 scales the normalized texture coordinates to match the dimensions of the texture image, for example in the context of video-based dynamic mesh coding.
再構成器2308は、再構成処理を実行する。再構成処理は、例えば、復号されたアトラスフレーム、復号されたベースメッシュフレーム、復号されたビデオフレーム、及び、同じメッシュシーケンスに関連するシンタックス要素に対して呼び出される。再構成処理による出力は、後再構成処理の前に再構成された一連のメッシュフレームである。 The reconstructor 2308 performs a reconstruction process. The reconstruction process is invoked, for example, on the decoded atlas frame, the decoded base mesh frame, the decoded video frame, and syntax elements associated with the same mesh sequence. The output of the reconstruction process is a sequence of reconstructed mesh frames prior to a post-reconstruction process.
後再構成器2309は、後再構成処理を実行する。後再構成器2309は、例えば、ビデオベースの動的メッシュ符号化のコンテキストにおいて、再構成されたメッシュフレームに対して多数の平滑化処理を実行する。平滑化処理には、例えば、メッシュに含まれる辺の折りたたみ処理、又は、メッシュにおける新たな頂点の追加処理が含まれる。 The post-reconstructor 2309 performs post-reconstruction operations. The post-reconstructor 2309 performs a number of smoothing operations on the reconstructed mesh frames, for example in the context of video-based dynamic mesh coding. The smoothing operations include, for example, collapsing edges in the mesh or adding new vertices in the mesh.
適合器2310は、適合処理を実行する。適合処理は、例えば、再構成されたメッシュを所定のシナリオに適合させるために、何らかのアプリケーションによって適用される。例えば、再構成されたメッシュの頂点は、三次元モデル座標系から三次元ワールド座標系に変換される。適合器2310から、再構成された最終的なメッシュフレーム(最終三次元メッシュフレーム2311)が出力される。 The adaptor 2310 performs an adaptation process, which may be applied, for example, by some application to adapt the reconstructed mesh to a given scenario. For example, the vertices of the reconstructed mesh are transformed from the 3D model coordinate system to the 3D world coordinate system. The adaptor 2310 outputs the final reconstructed mesh frame (final 3D mesh frame 2311).
以降において、サブ分割の詳細を説明する。 The details of subdivision will be explained below.
<サブ分割>
図50は、実施の形態に係る境界エッジを有する2つのサブ分割されたサブメッシュの例を示す図である。具体的には、図50の(a)は、サブメッシュの一例を示し、図50の(b)は、サブメッシュの別の一例を示す。図50の(c)は、図50の(a)に示すサブメッシュと、図50の(b)に示すサブメッシュとがマージされた(つまり、組み合わされた)三次元メッシュを示す。
<Subdivision>
Figure 50 is a diagram showing an example of two sub-divided sub-meshes having boundary edges according to an embodiment. Specifically, (a) of Figure 50 shows an example of a sub-mesh, (b) of Figure 50 shows another example of a sub-mesh, and (c) of Figure 50 shows a 3D mesh in which the sub-mesh shown in (a) of Figure 50 and the sub-mesh shown in (b) of Figure 50 are merged (i.e., combined).
復号装置200は、サブメッシュを構成する各頂点の位置情報、及び、各頂点の接続関係を示す接続情報、つまり、サブメッシュを構成する複数の辺の情報に基づいて、サブメッシュを構成する各辺をサブ分割する。サブ分割では、例えば、辺上に新たな頂点(三次元点)が生成される。生成された各頂点は、例えば、新たな辺によって接続される。これにより、例えば、サブメッシュに含まれる複数の面はそれぞれ、サブ分割されることによって複数の面に分割される。例えば、サブメッシュに含まれる3つの頂点で囲まれた三角形の面は、サブ分割されることによって4つの面に分割される。 The decoding device 200 sub-divides each edge that constitutes the submesh based on position information of each vertex that constitutes the submesh and connection information indicating the connection relationship of each vertex, that is, information on the multiple edges that constitute the submesh. In the sub-division, for example, a new vertex (three-dimensional point) is generated on the edge. Each of the generated vertices is connected, for example, by a new edge. As a result, for example, each of the multiple faces included in the submesh is divided into multiple faces by being sub-divided. For example, a triangular face enclosed by three vertices included in the submesh is divided into four faces by being sub-divided.
復号装置200は、サブメッシュ毎にサブ分割を行い、サブ分割された複数のサブメッシュをマージすることで、上記のオリジナルメッシュに対応する三次元メッシュを再構成する。 The decoding device 200 performs subdivision for each submesh and merges the submeshes to reconstruct a three-dimensional mesh corresponding to the original mesh.
ここで、符号化装置100は、オリジナルメッシュから複数のサブメッシュを生成し、各サブメッシュを構成する頂点の位置情報及び変位情報等を、サブメッシュ毎に符号化する。そのため、各サブメッシュを構成する頂点の位置情報及び変位情報等は、各サブメッシュ毎に異なる符号化パラメータによって符号化される可能性がある。そうすると、符号化されたこれらの情報に基づいて復号装置200がサブ分割を行った際に、2以上のサブメッシュで共有される辺(境界エッジともいう)が、サブメッシュ毎に異なる位置でサブ分割されたり、サブメッシュ毎にサブ分割される回数が異なる可能性がある。そうすると、各サブメッシュを適切にマージできない問題が生じる可能性がある。 Here, the encoding device 100 generates a number of submeshes from the original mesh, and encodes, for each submesh, the position information, displacement information, etc., of the vertices that constitute each submesh. Therefore, the position information, displacement information, etc., of the vertices that constitute each submesh may be encoded using different encoding parameters for each submesh. As a result, when the decoding device 200 performs subdivision based on this encoded information, an edge (also called a boundary edge) shared by two or more submeshes may be subdivision at a different position for each submesh, or the number of times that it is subdivision may differ for each submesh. This may result in a problem where the submeshes cannot be merged appropriately.
例えば、図50に示す例では、辺CDが境界エッジである。図50の(a)に示すサブメッシュがサブ分割されると、例えば辺CD上には頂点Fが生成される。また、図50の(b)に示すサブメッシュがサブ分割されると、例えば辺CD上には頂点Mが生成される。頂点Fと頂点Mとの位置が異なったり、辺CD上に生成される頂点の数が異なる、つまり、辺CDのサブ分割される回数が異なったりすると、図50の(a)に示すサブメッシュと、図50の(b)に示すサブメッシュとがマージされた場合に、辺CDの周辺に隙間ができる等して、適切にマージできない。 For example, in the example shown in FIG. 50, side CD is a boundary edge. When the submesh shown in FIG. 50(a) is subdivided, for example, vertex F is generated on side CD. Also, when the submesh shown in FIG. 50(b) is subdivided, for example, vertex M is generated on side CD. If the positions of vertex F and vertex M are different, or the number of vertices generated on side CD is different, that is, the number of times side CD is subdivided is different, when the submesh shown in FIG. 50(a) and the submesh shown in FIG. 50(b) are merged, gaps will be created around side CD, and they will not be able to be merged properly.
隣接するサブメッシュ(つまり、同じ境界エッジを有するサブメッシュ)で異なるサブ分割スキームを使用することによるこのような問題を解決するために、本願では、例えば、すべての境界エッジに対して、同じタイプのサブ分割スキームと同じ反復回数とを有するという制約を強制する。つまり、例えば、境界エッジのサブ分割では、各サブメッシュにおいて同じサブ分割方法及び同じサブ分割回数でサブ分割が行われる。これにより、頂点Fと頂点Mとの変位情報(つまり、変位ベクトルの値)が同じ値であれば、サブ分割されることで生成された頂点が変位され、各サブメッシュがマージされた後、例えば図50の(c)に示すように、境界エッジの周囲に隙間が存在しないようにできる。 To solve such problems due to the use of different subdivision schemes in adjacent submeshes (i.e., submeshes with the same boundary edges), the present application enforces a constraint that, for example, all boundary edges have the same type of subdivision scheme and the same number of iterations. That is, for example, in the subdivision of a boundary edge, subdivision is performed in each submesh with the same subdivision method and the same number of subdivisions. In this way, if the displacement information (i.e., the value of the displacement vector) of vertex F and vertex M are the same value, the vertices generated by the subdivision are displaced, and after each submesh is merged, it is possible to prevent gaps from existing around the boundary edges, as shown, for example, in FIG. 50(c).
なお、境界エッジのサブ分割には、所定のサブ分割方法、及び/又は、所定のサブ分割回数が用いられてもよいし、符号化装置100が所定のサブ分割方法、及び/又は、所定のサブ分割回数を決定し、決定した情報をビットストリームでシグナリングしてもよい。また、例えば、頂点Fと頂点Mとの位置合わせは、サブメッシュに対してサブ分割する際に行われてもよいし、複数のサブメッシュをマージする際に行われてもよい。 Note that a predetermined subdivision method and/or a predetermined number of subdivisions may be used for the subdivision of the boundary edge, or the encoding device 100 may determine the predetermined subdivision method and/or the predetermined number of subdivisions and signal the determined information in the bitstream. Also, for example, the alignment of vertex F and vertex M may be performed when subdivision is performed on a submesh, or when merging multiple submeshes.
[第1態様]
続いて、サブ分割の第1態様について説明する。
[First aspect]
Next, a first mode of subdivision will be described.
図51は、実施の形態に係る復号装置200の処理を示すフロー図である。図51は、予め定められたサブ分割方法を用いられた場合の例を示すフロー図である。 FIG. 51 is a flow diagram showing the processing of the decoding device 200 according to the embodiment. FIG. 51 is a flow diagram showing an example in which a predetermined subdivision method is used.
まず、復号装置200は、ビットストリームから、辺を介して接続される第1頂点と第2頂点とを復号する(S301)。具体的には、復号装置200は、ビットストリームから、第1頂点及び第2頂点の位置情報と、第1頂点及び第2頂点が接続されているか否かを示す接続情報とを取得する。 First, the decoding device 200 decodes, from the bit stream, a first vertex and a second vertex that are connected via an edge (S301). Specifically, the decoding device 200 obtains, from the bit stream, position information of the first vertex and the second vertex, and connection information indicating whether the first vertex and the second vertex are connected.
次に、復号装置200は、第1頂点と第2頂点とを接続する辺が境界エッジであるか否かを判定する(S302)。 Next, the decoding device 200 determines whether the edge connecting the first vertex and the second vertex is a boundary edge (S302).
復号装置200は、第1頂点と第2頂点とを結ぶ辺が境界エッジであると判定した場合(S302でYes)、第1頂点及び第2頂点のみから第3頂点を導出する(S303)。つまり、第3頂点の位置は、第1頂点の位置及び第2頂点の位置のみに基づいて導出されて第3頂点が補完(追加)される。 If the decoding device 200 determines that the edge connecting the first vertex and the second vertex is a boundary edge (Yes in S302), it derives the third vertex from only the first vertex and the second vertex (S303). In other words, the position of the third vertex is derived based only on the positions of the first vertex and the second vertex, and the third vertex is complemented (added).
一方、復号装置200は、第1頂点と第2頂点とを結ぶ辺が境界エッジではないと判定した場合(S302でNo)、第1頂点及び第2頂点と、少なくとも1つの第5頂点とから第4頂点を導出する(S304)。つまり、第4頂点の位置は、第1頂点の位置及び第2頂点の位置と、少なくとも1つの第5頂点の位置とに基づいて導出されて第4頂点が補完される。 On the other hand, if the decoding device 200 determines that the edge connecting the first vertex and the second vertex is not a boundary edge (No in S302), it derives a fourth vertex from the first vertex, the second vertex, and at least one fifth vertex (S304). In other words, the position of the fourth vertex is derived based on the positions of the first vertex, the second vertex, and at least one fifth vertex, and the fourth vertex is complemented.
なお、第5頂点の数は1つでもよいし複数でもよい。つまり、第4頂点は、第1頂点及び第2頂点を含む3つ以上の頂点から導出されてもよい。 The number of fifth vertices may be one or more. In other words, the fourth vertex may be derived from three or more vertices including the first vertex and the second vertex.
なお、ステップS303及びステップS304における処理は、それぞれ一例であり、その他の方法を用いた処理であってもよい。 Note that the processes in steps S303 and S304 are merely examples, and other methods may be used.
図52及び図53はそれぞれ、実施の形態に係る境界エッジ及び非境界エッジの一例を説明するための図である。 FIGS. 52 and 53 are diagrams for explaining examples of boundary edges and non-boundary edges, respectively, according to an embodiment.
境界エッジは、例えば、複数のサブメッシュで共有される辺である。 A boundary edge is, for example, an edge that is shared by multiple submeshes.
一方、非境界エッジは、複数のサブメッシュで共有されていない辺である。つまり、非境界エッジは、例えば、ベースメッシュに含まれる複数のサブメッシュのうち、1つのサブメッシュにのみ含まれる辺である。 On the other hand, a non-boundary edge is an edge that is not shared by multiple submeshes. In other words, a non-boundary edge is, for example, an edge that is included in only one of the multiple submeshes contained in a base mesh.
図52に示す例では、辺ABには、辺AB及び頂点Fで形成される面Yが1つだけ接続されている。したがって、辺ABは、境界エッジである。また、例えば、辺EFには、辺EF及び頂点Dで形成される面Zが1つだけ接続されている。したがって、辺EFは、境界エッジである。 In the example shown in FIG. 52, only one face Y, which is formed by side AB and vertex F, is connected to side AB. Therefore, side AB is a boundary edge. Also, for example, only one face Z, which is formed by side EF and vertex D, is connected to side EF. Therefore, side EF is a boundary edge.
また、例えば、辺BDには、辺BD及び頂点Cで形成される面Wと、辺BD及び頂点Fで形成される面Xとの2つの面に接続されている。したがって、辺BDは、境界エッジではなく、非境界エッジである。また、例えば、辺DFは、辺DF及び頂点Bで形成される面Xと、辺DF及び頂点Eで形成される面Zとの2つの面に接続されている。したがって、辺DFは、境界エッジではなく、非境界エッジである。 Also, for example, edge BD is connected to two faces: face W formed by edge BD and vertex C, and face X formed by edge BD and vertex F. Therefore, edge BD is a non-boundary edge, not a boundary edge. Also, for example, edge DF is connected to two faces: face X formed by edge DF and vertex B, and face Z formed by edge DF and vertex E. Therefore, edge DF is a non-boundary edge, not a boundary edge.
例えば、ステップS303において、第1頂点と第2頂点とを結ぶ辺が境界エッジである場合、復号装置200は、第1頂点及び第2頂点のみから第3頂点を導出する。例えば、図52において、頂点Aが、第1頂点であるとし、頂点Cが、第2頂点であるとする。さらに、頂点Aと頂点Cとは、境界エッジ上にあるとする。この場合、第3頂点である頂点Bは、第1頂点及び第2頂点のみから導出される。Bの座標(位置)を導出する例としては、第1頂点である頂点Aと第2頂点である頂点Cとの中点を当該座標に割り当てる方法がある。つまり、頂点Aと頂点Cとの中点の座標が交点Bの座標として算出されてもよい。 For example, in step S303, if the edge connecting the first vertex and the second vertex is a boundary edge, the decoding device 200 derives the third vertex from only the first vertex and the second vertex. For example, in FIG. 52, vertex A is assumed to be the first vertex, and vertex C is assumed to be the second vertex. Furthermore, vertices A and C are assumed to be on the boundary edge. In this case, vertex B, which is the third vertex, is derived from only the first vertex and the second vertex. As an example of deriving the coordinates (position) of B, there is a method of assigning the midpoint between vertex A, which is the first vertex, and vertex C, which is the second vertex, to the coordinates. In other words, the coordinates of the midpoint between vertices A and C may be calculated as the coordinates of intersection B.
また、例えば、ステップS304において、第1頂点と第2頂点とを結ぶ辺が境界エッジではない場合、復号装置200は、第1頂点及び第2頂点と、少なくとも1つの第5頂点とから第4頂点を導出する。例えば、図53において、頂点Bが、第1頂点であるとし、頂点Dが、第2頂点であるとする。さらに、頂点Bと頂点Dとは、境界エッジ上にないとする。つまり、辺BDが非境界エッジであるとする。この場合、第4頂点である頂点Hは、第1頂点である頂点B、及び、第2頂点である頂点Dと、さらにもう1つの第5頂点である頂点Fとから導出される。頂点Hの座標を導出する例としては、第5頂点である頂点Fを、辺BD上に直交投影した場合の座標を頂点Hの座標に割り当てる方法がある。 Also, for example, in step S304, if the edge connecting the first vertex and the second vertex is not a boundary edge, the decoding device 200 derives the fourth vertex from the first vertex, the second vertex, and at least one fifth vertex. For example, in FIG. 53, vertex B is the first vertex, and vertex D is the second vertex. Furthermore, vertex B and vertex D are not on a boundary edge. In other words, edge BD is a non-boundary edge. In this case, vertex H, which is the fourth vertex, is derived from vertex B, which is the first vertex, vertex D, which is the second vertex, and vertex F, which is another fifth vertex. As an example of deriving the coordinates of vertex H, there is a method of assigning the coordinates of vertex F, which is the fifth vertex, orthogonally projected onto edge BD, to the coordinates of vertex H.
例えば、1つ又は複数のパラメータがビットストリームから復号される。また、1つ又は複数のパラメータは、ビットストリームのヘッダから復号されてもよい。また、1つ又は複数のパラメータには、サブメッシュを構成する複数の辺のうち、境界エッジである辺を示す境界エッジ情報が含まれていてもよい。復号装置200は、復号された境界エッジ情報を用いて、境界エッジを特定してもよい。 For example, one or more parameters are decoded from the bitstream. The one or more parameters may also be decoded from a header of the bitstream. The one or more parameters may also include boundary edge information indicating which of the multiple edges constituting the submesh are boundary edges. The decoding device 200 may identify the boundary edges using the decoded boundary edge information.
図54は、実施の形態に係るヘッダにおいて異なるサブ分割タイプ(サブ分割方法ともいう)及びサブ分割回数をシグナリングするためのシンタックスの一例を示す図である。 FIG. 54 shows an example of syntax for signaling different subdivision types (also called subdivision methods) and the number of subdivisions in a header according to an embodiment.
符号化装置100は、例えば、サブメッシュを構成する各辺をサブ分割する方法(単にサブメッシュのサブ分割方法ともいう)を示す情報(subdivision_type)と、サブメッシュを構成する各辺のサブ分割の回数(単にサブメッシュのサブ分割回数ともいう)を示す情報(subdivision_num_iteration)とをサブメッシュのヘッダに含むビットストリームを生成する。 The encoding device 100 generates a bitstream that includes in the header of the submesh, for example, information (subdivision_type) indicating the method of subdividing each edge constituting the submesh (also simply referred to as the submesh subdivision method) and information (subdivision_num_iteration) indicating the number of times each edge constituting the submesh is subdivided (also simply referred to as the submesh subdivision count).
図55は、実施の形態に係るシーケンスパラメータセット(SPS)を用いてサブ分割タイプ及びサブ分割回数をシグナリングするためのシンタックスの一例を説明するための図である。 FIG. 55 is a diagram illustrating an example of syntax for signaling a subdivision type and a subdivision count using a sequence parameter set (SPS) relating to an embodiment.
符号化装置100は、例えば、辺が境界エッジであるか否かを示す情報(boundary_subdivision_flag)と、境界エッジをサブ分割する方法(単に境界エッジのサブ分割方法ともいう)を示す情報(boundary_subdivision_type)と、境界エッジをサブ分割する回数(単に境界エッジのサブ分割回数ともいう)を示す情報(boundary_subdivision_num_iteration)とをシーケンスパラメータセットに含むビットストリームを生成する。 The encoding device 100 generates a bitstream whose sequence parameter set includes, for example, information indicating whether an edge is a boundary edge (boundary_subdivision_flag), information indicating a method for subdividing the boundary edge (also simply referred to as the boundary edge subdivision method) (boundary_subdivision_type), and information indicating the number of times the boundary edge is subdivided (also simply referred to as the number of times the boundary edge is subdivisioned) (boundary_subdivision_num_iteration).
図56は、実施の形態に係るシーケンスパラメータセットを用いてサブ分割タイプ及びサブ分割回数を決定し、辺が境界上にあるか否かをチェックするためのシンタックスの一例を示す図である。 FIG. 56 shows an example of syntax for determining the subdivision type and the number of subdivisions using a sequence parameter set according to an embodiment, and for checking whether an edge is on a boundary.
復号装置200は、例えば、辺が境界エッジである場合には、符号化装置100から取得したビットストリームのSPSに含まれる、境界エッジのサブ分割方法を示す情報と、境界エッジのサブ分割回数を示す情報とに基づいて、当該辺をサブ分割する。一方、復号装置200は、例えば、辺が境界エッジではない場合には、符号化装置100から取得したビットストリームのサブメッシュのヘッダに含まれる、サブメッシュのサブ分割方法を示す情報と、サブメッシュのサブ分割回数を示す情報とに基づいて、当該辺をサブ分割する。 For example, if an edge is a boundary edge, the decoding device 200 sub-divides the edge based on information indicating a boundary edge sub-division method and information indicating the number of times the boundary edge is sub-divided, which are included in the SPS of the bitstream acquired from the encoding device 100. On the other hand, if an edge is not a boundary edge, the decoding device 200 sub-divides the edge based on information indicating a sub-division method and information indicating the number of times the sub-division is performed, which are included in the header of the submesh of the bitstream acquired from the encoding device 100.
なお、サブメッシュのサブ分割方法を示す情報、及び/又は、サブメッシュのサブ分割の回数を示す情報は、各フレームで共通であれば各フレームで共通のパラメータセットに格納されてもよいし、シーケンスで共通であればシーケンスで共通のパラメータセットに格納されてもよい。 In addition, the information indicating the subdivision method of the submeshes and/or the information indicating the number of times the submeshes are subdivision may be stored in a parameter set common to each frame if it is common to each frame, or may be stored in a parameter set common to the sequence if it is common to a sequence.
また、これらの情報が各サブメッシュで共通である場合には、これらの情報がサブメッシュのヘッダにはシグナリングされなくてもよい。また、隣接するサブメッシュのヘッダのいずれにもサブメッシュのサブ分割方法、及び/又は、サブメッシュのサブ分割回数がシグナリングされていない場合には、サブメッシュのサブ分割方法、及び/又は、サブメッシュのサブ分割回数が各サブメッシュで共通であるとして、本方式を用いないと判定されてもよい。 In addition, if this information is common to each submesh, this information does not need to be signaled in the header of the submesh. In addition, if the submesh subdivision method and/or the number of times the submesh is subdivisioned are not signaled in the header of any of the adjacent submeshes, it may be determined that the submesh subdivision method and/or the number of times the submesh is subdivisioned are common to each submesh, and it may be determined not to use this method.
なお、上記では、境界エッジのサブ分割方法を示す情報、及び、境界エッジのサブ分割回数を示す情報がシーケンスで共通のパラメータセット(具体的には、SPS)に格納される例を示したが、これらの情報は、フレーム共通のパラメータセットに格納されてもよい。 In the above, an example was given in which information indicating the subdivision method of the boundary edge and information indicating the number of times the boundary edge is subdivision is stored in a parameter set common to the sequence (specifically, the SPS), but this information may also be stored in a parameter set common to the frame.
また、シーケンスで共通のパラメータセットに格納される情報によって示されるサブ分割方法及び/又はサブ分割回数は、境界エッジのサブ分割方法、及び/又は、境界エッジのサブ分割回数に用いられてもよい。つまり、復号装置200は、シーケンスで共通のパラメータセットとサブメッシュのヘッダとの両方に、サブ分割方法及び/又はサブ分割回数がシグナリングされる場合、サブメッシュのサブ分割にはサブメッシュのヘッダの値を用い、且つ、境界エッジのサブ分割にはシーケンスで共通のパラメータセットの値を用いてもよい。 Furthermore, the subdivision method and/or the number of subdivisions indicated by the information stored in the parameter set common to the sequence may be used for the subdivision method of the boundary edge and/or the number of subdivisions of the boundary edge. In other words, when the subdivision method and/or the number of subdivisions are signaled in both the parameter set common to the sequence and the submesh header, the decoding device 200 may use the value of the submesh header for the subdivision of the submesh and the value of the parameter set common to the sequence for the subdivision of the boundary edge.
例えば、サブメッシュを構成する複数の辺のうち、少なくとも1つの辺が境界エッジであり、且つ、境界エッジのサブ分割回数とサブメッシュのサブ分割回数とが異なる場合、境界エッジを含むサブメッシュを構成する複数の辺をどのようにサブ分割し、どのように頂点を結んで新たなメッシュを生成するかを定義する必要がある。なお、サブメッシュの境界エッジのサブ分割回数とサブメッシュのサブ分割回数とが異なる場合でもよいし、結合対象のサブメッシュの境界エッジのサブ分割回数とサブメッシュのサブ分割回数とが異なる場合でもよい。 For example, if at least one of the multiple edges constituting a submesh is a boundary edge, and the number of times the boundary edge is subdivision differs from the number of times the submesh is subdivisioned, it is necessary to define how the multiple edges constituting the submesh including the boundary edge are to be subdivisioned and how the vertices are to be connected to generate a new mesh. Note that the number of times the boundary edge of a submesh may be subdivision differs from the number of times the submesh is subdivisioned, and the number of times the boundary edge of a submesh to be joined may be subdivision differs from the number of times the submesh is subdivisioned.
図57は、実施の形態に係るサブメッシュを構成する複数の辺を分割する処理の一例を示すフロー図である。 FIG. 57 is a flow diagram showing an example of a process for dividing multiple edges that make up a submesh according to an embodiment.
まず、復号装置200は、メッシュ(具体的には、サブメッシュ)を構成する複数の辺のうち、少なくとも1つの辺が境界エッジであるか否かを判定する(S401)。 First, the decoding device 200 determines whether or not at least one of the multiple edges constituting a mesh (specifically, a submesh) is a boundary edge (S401).
復号装置200は、サブメッシュを構成する複数の辺のうち、少なくとも1つの辺が境界エッジであると判定した場合(S401でYes)、境界エッジのサブ分割回数とサブメッシュのサブ分割回数とを比較する(S402)。 If the decoding device 200 determines that at least one of the multiple edges constituting the submesh is a boundary edge (Yes in S401), it compares the number of subdivisions of the boundary edge with the number of subdivisions of the submesh (S402).
次に、復号装置200は、ステップS402における比較結果に基づいてサブ分割を実行する(S403)。 Then, the decoding device 200 performs subdivision based on the comparison result in step S402 (S403).
例えば、境界エッジのサブ分割回数をA回とし、サブメッシュのサブ分割回数をB回とする。 For example, let the boundary edge be sub-divided A times, and the sub-mesh be sub-divided B times.
例えば、復号装置200は、A=Bの場合、後述する方法Aを用いてサブ分割を実行する。また、例えば、復号装置200は、A<Bの場合、後述する方法B(方法B1又は方法B2)を用いてサブ分割を実行する。また、例えば、復号装置200は、A>Bの場合、後述する方法C(方法C1又は方法C2)を用いてサブ分割を実行する。 For example, when A=B, the decryption device 200 performs subdivision using a method A described below. Also, for example, when A<B, the decryption device 200 performs subdivision using a method B (method B1 or method B2) described below. Also, for example, when A>B, the decryption device 200 performs subdivision using a method C (method C1 or method C2) described below.
また、復号装置200は、サブメッシュを構成する複数の辺のうち、少なくとも1つの辺が境界エッジではないと判定した場合(S401でNo)、サブメッシュのサブ分割方法、及び、サブメッシュのサブ分割回数を用いて、複数の辺をサブ分割する(S404)。 Furthermore, if the decoding device 200 determines that at least one of the multiple edges constituting the submesh is not a boundary edge (No in S401), it sub-divides the multiple edges using the submesh subdivision method and the number of times the submesh is subdivision (S404).
[方法A]
復号装置200は、方法Aを用いてサブ分割する場合、つまり、境界エッジのサブ分割回数(A回)とサブメッシュのサブ分割回数(B回)とが同じ回数(A=B)である場合、サブメッシュを構成する各辺をサブ分割し、サブ分割することで生成された頂点同士を連結することで新たなメッシュを生成する。復号装置200は、この処理をA(=B)回繰り返し行う。
[Method A]
When the decoding device 200 performs subdivision using method A, that is, when the number of times the boundary edge is subdivision (A times) is the same as the number of times the submesh is subdivision (B times) (A=B), the decoding device 200 generates a new mesh by subdividing each edge constituting the submesh and connecting the vertices generated by the subdivision. The decoding device 200 repeats this process A (=B) times.
復号装置200は、方法Bを用いてサブ分割する場合、つまり、境界エッジのサブ分割回数(A回)がサブメッシュのサブ分割回数(B回)より少ない回数(A<B)である場合、以下の方法B1又は方法B2を用いてサブ分割する。 When the decoding device 200 performs subdivision using method B, that is, when the number of times the boundary edge is subdivisioned (A times) is less than the number of times the submesh is subdivisioned (B times) (A<B), the decoding device 200 performs subdivision using the following method B1 or method B2.
[方法B1]
図58は、実施の形態に係るサブメッシュを構成する複数の辺を分割する処理の第1例を説明するための図である。なお、図58に示す例では、多角形ABCDがサブメッシュであり、辺CD(辺CF’及び辺F’D)と辺ECとが、境界エッジであり、他の辺が、非境界エッジである。また、図58に示す例では、サブメッシュのサブ分割回数が2回であり、境界エッジのサブ分割回数が1回である。
[Method B1]
Fig. 58 is a diagram for explaining a first example of a process for dividing a plurality of edges constituting a submesh according to an embodiment. In the example shown in Fig. 58, a polygon ABCD is a submesh, edges CD (edges CF' and F'D) and EC are boundary edges, and the other edges are non-boundary edges. In the example shown in Fig. 58, the submesh is sub-divided twice, and the boundary edge is sub-divided once.
ステップS303に示す例では、復号装置200は、ビットストリームからパラメータを復号して、当該パラメータに基づいて境界エッジのサブ分割回数を導出する。パラメータは、境界エッジの正確なサブ分割回数を示す値であってもよいし、サブメッシュのサブ分割回数との差を示す値であってもよい。 In the example shown in step S303, the decoding device 200 decodes a parameter from the bitstream and derives the number of subdivisions of the boundary edge based on the parameter. The parameter may be a value indicating the exact number of subdivisions of the boundary edge, or a value indicating the difference with the number of subdivisions of the submesh.
復号装置200は、境界エッジのサブ分割回数が、サブメッシュのサブ分割回数よりも少ない場合、例えば、図58に示すように、境界エッジ(辺CD)に対して、境界エッジのサブ分割回数だけサブ分割を行う。本例では、例えば、復号装置200は、辺CDを1回サブ分割することにより頂点F’を生成する。その後、復号装置200は、境界エッジではない辺(例えば、辺AB、辺BC、辺AD、及び、辺BD)をそれぞれサブ分割する。さらに、復号装置200は、境界エッジではない辺、及び、サブ分割によって新たに生成された頂点を接続して新たに生成される辺をサブ分割する。これにより、境界エッジではない辺は、2回サブ分割される。また、復号装置200は、頂点Cと新たに生成された頂点Wとを接続することにより辺CWを作成し、頂点Dと新たに生成された頂点Tとを接続することにより辺DTを作成する。復号装置200は、さらにその後に、辺TLを作成する。 When the number of subdivisions of the boundary edge is less than the number of subdivisions of the submesh, the decoding device 200 performs subdivision on the boundary edge (edge CD) the number of times as shown in FIG. 58. In this example, for example, the decoding device 200 generates a vertex F' by subdividing edge CD once. Then, the decoding device 200 subdivides each of the edges that are not boundary edges (for example, edges AB, BC, AD, and BD). Furthermore, the decoding device 200 subdivides the edges that are not boundary edges and the newly generated edges by connecting the vertices newly generated by the subdivision. As a result, the edges that are not boundary edges are subdivided twice. Furthermore, the decoding device 200 creates an edge CW by connecting vertex C and the newly generated vertex W, and creates an edge DT by connecting vertex D and the newly generated vertex T. The decoding device 200 then creates an edge TL.
このように、復号装置200は、例えば、サブメッシュのサブ分割回数と、境界エッジのサブ分割回数が異なり、且つ、(サブメッシュのサブ分割回数)>(境界エッジのサブ分割回数)であるか否かを判定する。 In this way, the decoding device 200 determines, for example, whether the number of subdivisions of a submesh is different from the number of subdivisions of a boundary edge and whether (the number of subdivisions of a submesh)>(the number of subdivisions of a boundary edge).
復号装置200は、この判定がYesの場合、まずは境界エッジのサブ分割回数までは従来の方法(分割後の頂点をそれぞれ繋いで新たなメッシュを生成)を用いてサブメッシュを構成する各辺をサブ分割する。さらに、復号装置200は、境界エッジのサブ分割回数を超えた場合、サブメッシュのサブ分割回数になるまで以下の処理を繰り返す。 If the determination is Yes, the decoding device 200 first sub-divides each edge constituting the submesh using a conventional method (connecting each of the vertices after division to generate a new mesh) up to the number of sub-divisions of the boundary edge. Furthermore, if the number of sub-divisions of the boundary edge is exceeded, the decoding device 200 repeats the following process until the number of sub-divisions of the submesh is reached.
復号装置200は、サブ分割対象のメッシュ(例えば、サブメッシュに含まれる多角形の面)を構成する少なくとも1つの辺がサブメッシュの境界エッジであるか否かを判定する。復号装置200は、境界エッジがない場合には、通常のサブ分割を実施し、境界エッジがある場合には、境界ではない辺をサブ分割する。 The decoding device 200 determines whether or not at least one edge constituting a mesh to be sub-divided (e.g., a face of a polygon contained in the sub-mesh) is a boundary edge of the sub-mesh. If there is no boundary edge, the decoding device 200 performs normal sub-division, and if there is a boundary edge, the decoding device 200 sub-divides the non-boundary edge.
また、復号装置200は、サブ分割対象のメッシュのうち、境界エッジの数が1であり、且つ、非境界エッジの数が2である場合、少なくとも非境界エッジをサブ分割して生成された頂点を接続するともに、生成された頂点を、境界エッジを構成する2つの頂点のそれぞれと接続してできる2本の辺のいずれかを用いて新しいメッシュを生成する。また、例えば、復号装置200は、当該2本の辺のうち、頂点が接続された辺がサブ分割されているか否かに基づいて優先度を決定し、決定した優先度に応じていずれの辺を用いるかを判定する。 Furthermore, when the number of boundary edges and the number of non-boundary edges of the mesh to be sub-divided are one and two, the decoding device 200 connects the vertices generated by sub-dividing at least the non-boundary edges, and generates a new mesh using one of two edges formed by connecting the generated vertex to each of the two vertices that make up the boundary edge. Furthermore, for example, the decoding device 200 determines a priority based on whether or not the edge to which the vertex is connected is sub-divided, and determines which edge to use according to the determined priority.
なお、2つの辺の両方を用いて新しいメッシュが生成されてもよい。 Note that a new mesh may be generated using both edges.
また、例えば、サブメッシュを構成する複数の辺の中には、サブ分割されない辺が含まれていてもよい。例えば、サブ分割されない辺を示す情報がビットストリームに含まれていてもよい。 Also, for example, the multiple edges that make up a submesh may include edges that are not sub-divided. For example, information indicating the edges that are not sub-divided may be included in the bit stream.
[方法B2]
方法B1では、サブ分割を実行している際に、境界エッジのサブ分割回数を超えた場合に、境界エッジがない場合には、通常のサブ分割方法を実施し、境界エッジがある場合には、非境界エッジをサブ分割する。
[Method B2]
In method B1, when performing subdivision, if the number of subdivisions of a boundary edge is exceeded, the normal subdivision method is performed if there is no boundary edge, and if there is a boundary edge, the non-boundary edge is subdivided.
これに対し、方法B2では、境界エッジがない場合には、通常のサブ分割方法を実施し、境界エッジがある場合には、サブ分割しない。 In contrast, in method B2, if there is no boundary edge, the normal subdivision method is performed, and if there is a boundary edge, no subdivision is performed.
図59は、実施の形態に係るサブメッシュを構成する複数の辺を分割する処理の第2例を説明するための図である。なお、図59に示す例では、多角形ABCDがサブメッシュであり、辺CD(辺CF’及び辺F’D)と辺ECとが、境界エッジであり、他の辺が、非境界エッジである。また、図59に示す例では、サブメッシュのサブ分割回数が2回であり、境界エッジのサブ分割回数が1回である。 FIG. 59 is a diagram for explaining a second example of a process for dividing multiple edges constituting a submesh according to an embodiment. In the example shown in FIG. 59, polygon ABCD is a submesh, side CD (side CF' and side F'D) and side EC are boundary edges, and the other edges are non-boundary edges. Also, in the example shown in FIG. 59, the submesh is sub-divided twice, and the boundary edge is sub-divided once.
ステップS303の別の例では、復号装置200は、ビットストリームからパラメータを復号して、当該パラメータに基づいて境界エッジのサブ分割回数を導出する。パラメータは、例えば、正確な境界エッジのサブ分割回数を示す値、又は、サブメッシュのサブ分割回数との差を示す値である。境界エッジのサブ分割回数を示す値が、サブメッシュのサブ分割回数を示す値よりも小さい場合、復号装置200は、図59に示すように、境界エッジのサブ分割回数を示す値に相当する回数だけサブメッシュを構成する各辺をサブ分割する。その後、復号装置200は、頂点Wと頂点Tとの明示的な変位を行わない。その代わりに、復号装置200は、例えば変位情報に基づいて頂点Fを変位し、その後に、辺EFに頂点Wを投影し、辺GFに頂点Tを投影することで、辺EF及び辺GFをサブ分割する。これによれば、面(具体的には、面を構成する各頂点)が変位された後も、頂点E、頂点W及び頂点F’と頂点G、頂点T及び頂点F’とは、それぞれの各頂点が一直線上に位置する。次に、復号装置200は、辺CWと辺DTとを作成し、さらに、辺TLを作成する。 In another example of step S303, the decoding device 200 decodes a parameter from the bit stream and derives the number of subdivisions of the boundary edge based on the parameter. The parameter is, for example, a value indicating the exact number of subdivisions of the boundary edge, or a value indicating the difference from the number of subdivisions of the submesh. If the value indicating the number of subdivisions of the boundary edge is smaller than the value indicating the number of subdivisions of the submesh, the decoding device 200 subdivides each edge constituting the submesh a number of times equivalent to the value indicating the number of subdivisions of the boundary edge, as shown in FIG. 59. Thereafter, the decoding device 200 does not explicitly displace vertex W and vertex T. Instead, the decoding device 200 displaces vertex F based on, for example, the displacement information, and then subdivides sides EF and GF by projecting vertex W onto side EF and projecting vertex T onto side GF. According to this, even after the face (specifically, each vertex constituting the face) is displaced, vertices E, W, and F' and vertices G, T, and F' are located on a straight line. Next, the decoding device 200 creates sides CW and DT, and then creates side TL.
[方法C1]
図60は、実施の形態に係るサブメッシュを構成する複数の辺を分割する処理の第3例を説明するための図である。なお、図60に示す例では、多角形CDUがサブメッシュであり、辺CDが、境界エッジである。また、辺CU及び辺DUは、非境界エッジである。また、図60に示す例では、サブメッシュのサブ分割回数が1回であり、境界エッジのサブ分割回数が2回である。
[Method C1]
60 is a diagram for explaining a third example of a process for dividing a plurality of edges constituting a submesh according to an embodiment. In the example shown in FIG. 60, a polygon CDU is a submesh, and an edge CD is a boundary edge. Also, edges CU and DU are non-boundary edges. Also, in the example shown in FIG. 60, the submesh is sub-divided once, and the boundary edge is sub-divided twice.
境界エッジのサブ分割回数がサブメッシュのサブ分割回数よりも多い場合、まず、復号装置200は、図60に示すように、境界エッジを含むすべての辺を、サブメッシュのサブ分割回数だけサブ分割する。次に、復号装置200は、境界エッジをサブ分割した回数が境界エッジのサブ分割回数になるまで境界エッジをサブ分割する。 If the number of subdivisions of the boundary edge is greater than the number of subdivisions of the submesh, the decoding device 200 first subdivides all edges including the boundary edge the number of times equal to the number of subdivisions of the submesh, as shown in FIG. 60. Next, the decoding device 200 subdivides the boundary edge until the number of times the boundary edge has been subdivided equals the number of subdivisions of the boundary edge.
なお、サブメッシュのサブ分割回数が境界エッジのサブ分割回数よりも少ない場合、境界エッジのサブ分割回数は、サブメッシュのサブ分割回数とみなされてもよい。例えば、(サブメッシュのサブ分割回数)<(境界エッジのサブ分割回数)の場合、復号装置200が(サブメッシュのサブ分割回数)=(境界エッジのサブ分割回数)とみなすことにより、境界エッジのサブ分割回数が、サブメッシュのサブ分割回数を超えないように定義されていてもよい。 Note that if the number of subdivisions of a submesh is less than the number of subdivisions of a boundary edge, the number of subdivisions of the boundary edge may be regarded as the number of subdivisions of the submesh. For example, if (the number of subdivisions of a submesh) < (the number of subdivisions of a boundary edge), the decoding device 200 may consider (the number of subdivisions of a submesh) = (the number of subdivisions of a boundary edge), so that the number of subdivisions of the boundary edge may be defined not to exceed the number of subdivisions of the submesh.
[方法C2]
図61は、実施の形態に係るサブメッシュを構成する複数の辺を分割する処理の第4例を説明するための図である。なお、図61に示す例では、多角形CDUがサブメッシュであり、辺CDが、境界エッジである。また、図61に示す例では、辺CU及び辺DUは、非境界エッジである。また、図61に示す例では、サブメッシュのサブ分割回数が1回であり、境界エッジのサブ分割回数が3回である。
[Method C2]
Fig. 61 is a diagram for explaining a fourth example of a process for dividing a plurality of edges constituting a submesh according to an embodiment. In the example shown in Fig. 61, a polygon CDU is a submesh, and an edge CD is a boundary edge. In the example shown in Fig. 61, edges CU and DU are non-boundary edges. In the example shown in Fig. 61, the submesh is sub-divided once, and the boundary edge is sub-divided three times.
境界エッジのサブ分割回数がサブメッシュのサブ分割回数よりも多い場合、まず、復号装置200は、辺UQ、辺UM、及び、辺URを生成するために、境界エッジを、境界エッジのサブ分割回数からサブメッシュのサブ分割回数を引いた回数だけサブ分割する。次に、復号装置200は、境界エッジを含むすべての辺を、図61に示すように、サブメッシュのサブ分割回数だけサブ分割する。 If the number of subdivisions of the boundary edge is greater than the number of subdivisions of the submesh, the decoding device 200 first subdivides the boundary edge a number of times equal to the number of subdivisions of the boundary edge minus the number of subdivisions of the submesh, in order to generate sides UQ, UM, and UR. Next, the decoding device 200 subdivides all edges including the boundary edge a number of times equal to the number of subdivisions of the submesh, as shown in FIG. 61.
図62は、実施の形態に係るサブメッシュを構成する複数の辺を分割する処理の第5例を説明するための図である。具体的には、図62は、非境界エッジである辺BDをサブ分割する方法の一例を説明するための図である。 FIG. 62 is a diagram for explaining a fifth example of a process for dividing a plurality of edges constituting a submesh according to an embodiment. Specifically, FIG. 62 is a diagram for explaining an example of a method for subdividing an edge BD, which is a non-boundary edge.
ステップS304の例では、復号装置200は、辺BDを非境界エッジと判定する。そして、復号装置200は、頂点B、頂点D及び頂点Aを用いて、頂点Gを導出する。例えば、復号装置200は、角BADの二等分線と辺BDとの交点を頂点Gとする。復号装置200は、例えば、このように頂点Gを生成することにより、辺BDをサブ分割する。 In the example of step S304, the decoding device 200 determines that the side BD is a non-boundary edge. Then, the decoding device 200 derives the vertex G using the vertices B, D, and A. For example, the decoding device 200 determines the intersection of the bisector of the angle BAD and the side BD as the vertex G. For example, the decoding device 200 sub-divides the side BD by generating the vertex G in this manner.
なお、辺をサブ分割する場合には、サブ分割方法、及び、サブ分割回数を共通にすると定められてもよい。 When subdividing an edge, the subdivision method and the number of subdivisions may be set to be the same.
また、例えば、復号装置200は、サブ分割の対象となるサブメッシュが境界エッジを含むか否かを判定し、サブメッシュが境界エッジを含まない場合には、サブメッシュのサブ分割方法、及び、サブメッシュのサブ分割回数を用いてサブ分割してもよい。一方、例えば、復号装置200は、サブメッシュが境界エッジを含む場合には、(i)サブメッシュのサブ分割方法、及び、サブメッシュのサブ分割回数、並びに、(ii)境界エッジのサブ分割方法、及び、境界エッジのサブ分割回数、のいずれか一方又は両方を用いてサブメッシュをサブ分割してもよい。 Furthermore, for example, the decoding device 200 may determine whether or not the submesh to be the subject of subdivision includes a boundary edge, and if the submesh does not include a boundary edge, may perform subdivision using the submesh subdivision method and the submesh subdivision count. On the other hand, for example, if the submesh includes a boundary edge, the decoding device 200 may perform subdivision using either or both of (i) the submesh subdivision method and the submesh subdivision count, and (ii) the boundary edge subdivision method and the boundary edge subdivision count.
サブ分割には、あらかじめ定められたサブ分割方法及びサブ分割回数が用いられてもよい。また、符号化装置100は、サブ分割方法及びサブ分割回数を決定し、決定したサブ分割方法及びサブ分割回数をビットストリームに含めて送信してもよい。 For the subdivision, a predetermined subdivision method and number of subdivisions may be used. Furthermore, the encoding device 100 may determine the subdivision method and the number of subdivisions, and include the determined subdivision method and number of subdivisions in the bitstream and transmit it.
また、例えば、境界エッジのサブ分割に関する情報(例えば、境界エッジのサブ分割方法及び境界エッジのサブ分割回数)、及び、サブメッシュのサブ分割に関する情報(例えば、サブメッシュのサブ分割方法及びサブメッシュのサブ分割回数)のいずれか一方をあらかじめ定められた方法とし、他方をシグナリングで通知する方法が採用されてもよい。 Furthermore, for example, a method may be adopted in which either one of the information regarding the subdivision of boundary edges (e.g., a subdivision method of boundary edges and the number of times the boundary edges are subdivision) and the information regarding the subdivision of submeshes (e.g., a subdivision method of submeshes and the number of times the submeshes are subdivision) is determined in advance, and the other is notified by signaling.
また、サブメッシュのサブ分割には、サブメッシュのサブ分割に適したサブ分割方法が用いられてもよいし、境界エッジのサブ分割には、境界エッジのサブ分割に適した分割方法が用いられてもよい。それぞれ適したサブ分割方法がある場合には、境界エッジと非境界エッジとに異なるサブ分割方法を用いるとしてもよいし、それぞれ適したサブ分割方法がない場合には、境界エッジと非境界エッジとに同じ分割方法を用いるとしてもよい。 Furthermore, the subdivision of the submeshes may be performed using a subdivision method suitable for subdivision of submeshes, and the subdivision of the boundary edges may be performed using a subdivision method suitable for subdivision of boundary edges. Different subdivision methods may be used for boundary edges and non-boundary edges if suitable subdivision methods exist, and the same subdivision method may be used for boundary edges and non-boundary edges if suitable subdivision methods do not exist.
境界エッジのサブ分割回数とサブメッシュのサブ分割回数との比較結果に応じて、サブ分割方法が切り替えられてもよい。 The subdivision method may be switched depending on the result of comparing the number of subdivisions of the boundary edges with the number of subdivisions of the submeshes.
サブ分割の対象となるメッシュにおけるサブ分割では、境界エッジには境界エッジのサブ分割回数が用いられ、非境界エッジにはサブメッシュのサブ分割回数が用いられてもよい。また、サブ分割の対象となるメッシュにおけるサブ分割では、境界エッジのサブ分割回数とサブメッシュのサブ分割回数とのいずれか一方が用いられてもよい。 In the subdivision of a mesh that is the subject of subdivision, the subdivision count of the boundary edge may be used for boundary edges, and the subdivision count of the submesh may be used for non-boundary edges. In addition, in the subdivision of a mesh that is the subject of subdivision, either the subdivision count of the boundary edge or the subdivision count of the submesh may be used.
なお、上記の判定処理が行われる順序は、任意に変更されてもよい。 The order in which the above determination processes are performed may be changed as desired.
[第1態様の効果]
第1態様による構成では、互いに異なるサブ分割方法又はサブ分割回数を用いて符号化されたサブメッシュをマージすることができるため、フルメッシュ(複数のサブメッシュをマージした後の三次元メッシュ)の主観的品質が向上される。
[Effects of the first aspect]
In the configuration according to the first aspect, it is possible to merge sub-meshes that have been coded using different sub-division methods or sub-division times, thereby improving the subjective quality of the full mesh (the three-dimensional mesh after merging multiple sub-meshes).
[他の態様との組み合わせ]
本態様の復号装置200は、本開示における他の態様の少なくとも一部と組み合わせることにより実施することができる。さらに、本態様は、本態様に従ったフローチャートのいずれかに示される処理の一部、いずれかの装置の構成の一部、及び/又は、シンタックスの一部等を他の態様と組み合わせることによって実行されてもよい。
[Combination with other aspects]
The decoding device 200 of this aspect can be implemented by combining with at least a part of other aspects of the present disclosure. Furthermore, this aspect may be implemented by combining a part of the process shown in any of the flowcharts according to this aspect, a part of the configuration of any of the devices, and/or a part of the syntax, etc., with other aspects.
また、復号装置200の上記の処理は、符号化装置100においても同様に実行され得る。また、本態様で示された構成要素のすべてが常に必要であるわけではなく、第1態様の構成要素の一部のみが含まれていてもよい。 The above processing of the decoding device 200 can also be executed in the encoding device 100 in a similar manner. Furthermore, not all of the components shown in this embodiment are always necessary, and only some of the components of the first embodiment may be included.
[第2態様]
図63は、実施の形態に係るサブメッシュを構成する複数の辺を分割する処理の第6例を説明するための図である。具体的には、図63は、ステップS303の処理の別の一例を説明するための図である。
[Second aspect]
Fig. 63 is a diagram for explaining a sixth example of a process for dividing a plurality of edges constituting a submesh according to an embodiment of the present invention. Specifically, Fig. 63 is a diagram for explaining another example of the process of step S303.
ステップS303では、例えば、符号化装置100は、復号装置200が境界エッジのサブ分割回数を導出するためのパラメータをビットストリームに符号化する。パラメータは、正確な境界エッジのサブ分割回数を示す値であってもよいし、サブメッシュのサブ分割回数との差を示す値であってもよい。境界エッジのサブ分割回数を示す値(導出値)が、サブメッシュのサブ分割回数を示す値よりも大きい場合、符号化装置100は、当該導出値に相当する、境界エッジのサブ分割を実行する。例えば、当該導出値が3の場合、図63に示すように、3つの頂点(頂点Q、頂点M、及び、頂点R)が境界エッジに沿って生成され、それらの接続性がサブメッシュのベースメッシュに追加される。復号装置200は、サブメッシュのサブ分割回数に相当するサブ分割を行う。これにより、復号装置200は、サブメッシュのサブ分割回数だけサブ分割されたサブメッシュに相当する変更されたベースメッシュにおける境界エッジを含むすべての辺に沿って均一なサブ分割を行う。 In step S303, for example, the encoding device 100 encodes a parameter for the decoding device 200 to derive the number of subdivisions of the boundary edge into the bitstream. The parameter may be a value indicating the exact number of subdivisions of the boundary edge, or may be a value indicating the difference from the number of subdivisions of the submesh. If the value indicating the number of subdivisions of the boundary edge (derived value) is greater than the value indicating the number of subdivisions of the submesh, the encoding device 100 performs subdivision of the boundary edge corresponding to the derived value. For example, if the derived value is 3, three vertices (vertex Q, vertex M, and vertex R) are generated along the boundary edge, and their connectivity is added to the base mesh of the submesh, as shown in FIG. 63. The decoding device 200 performs subdivision corresponding to the number of subdivisions of the submesh. As a result, the decoding device 200 performs uniform subdivision along all edges, including the boundary edge, in the modified base mesh corresponding to the submesh that has been subdivided by the number of subdivisions of the submesh.
[第2態様の効果]
第2態様による構成では、互いに異なるサブ分割方法又はサブ分割回数で符号化されたサブメッシュをマージすることができるため、フルメッシュの主観的品質が向上される。
[Effects of the second aspect]
The configuration according to the second aspect allows for merging sub-meshes that have been coded using different sub-division methods or sub-division times, thereby improving the subjective quality of the full-mesh.
[他の態様との組み合わせ]
符号化装置100の本態様は、本開示における他の態様の少なくとも一部と組み合わせることにより実施することができる。さらに、本態様は、本態様に従ったフローチャートのいずれかに示される処理の一部、いずれかの装置の構成の一部、及び/又は、シンタックスの一部等を他の態様と組み合わせることによって実行されてもよい。
[Combination with other aspects]
This aspect of the encoding device 100 can be implemented by combining with at least a part of other aspects of the present disclosure. Furthermore, this aspect may be implemented by combining a part of the process shown in any of the flowcharts according to this aspect, a part of the configuration of any of the devices, and/or a part of the syntax, etc., with other aspects.
また、符号化装置100の上記の処理は、復号装置200においても同様に実行され得る。また、本態様に記載されたすべての構成要素が常に必要であるわけではなく、第1態様の構成要素の一部のみが含まれていてもよい。 The above-mentioned processing of the encoding device 100 can also be executed in the decoding device 200 in a similar manner. Furthermore, not all of the components described in this embodiment are always necessary, and only some of the components of the first embodiment may be included.
[第3態様]
第3態様では、符号化装置100は、複数のサブメッシュで共有される辺(サブメッシュ間の境界エッジともいう)における頂点を同一にさせる処理を行わない。一方、第3態様では、符号化装置100は、復号装置200が境界エッジにおける頂点(境界エッジ上に位置する頂点)を復号装置200が修正するためのメタデータを復号装置200に送信する。
[Third aspect]
In the third aspect, the encoding device 100 does not perform processing for making identical vertices on an edge shared by a plurality of submeshes (also called a boundary edge between submeshes). On the other hand, in the third aspect, the encoding device 100 transmits to the decoding device 200 metadata for the decoding device 200 to modify vertices on the boundary edge (vertices located on the boundary edge).
例えば、符号化装置100は、サブメッシュ間(つまり、隣接する複数のサブメッシュ)のサブ分割回数又はサブ分割方法が異なること、或いは、その結果として、サブ分割後の頂点が同一にならないこと(或いは、同一にならない可能性があること)を示すヒント情報(例えば、フラグ等)をメタデータにシグナリングし、復号装置200に送信する。 For example, the encoding device 100 signals hint information (e.g., a flag, etc.) in the metadata indicating that the number of subdivisions or the subdivision methods are different between submeshes (i.e., between multiple adjacent submeshes), or that as a result, the vertices after subdivision are not identical (or may not be identical), and transmits the signal to the decoding device 200.
復号装置200は、メタデータに基づき、サブメッシュ間の境界エッジにおける頂点を修正するか否かを判定する。復号装置200は、修正すると判定した場合には、境界エッジにおける頂点の数を増やす又は減らすことで、境界エッジにおける頂点の数を、境界エッジを含む各サブメッシュで同一となるように修正する。 The decoding device 200 determines whether or not to modify the vertices at the boundary edge between submeshes based on the metadata. If the decoding device 200 determines to modify the vertices, it modifies the number of vertices at the boundary edge by increasing or decreasing the number of vertices at the boundary edge so that the number of vertices at the boundary edge is the same for each submesh that includes the boundary edge.
また、符号化装置100は、メタデータに、ヒント情報でなく、復号装置200が境界エッジにおける頂点を修正するか否かを示す情報、及び/又は、当該頂点を修正する方法を示す情報をシグナリングしてもよい。その場合、例えば、復号装置200は、当該情報に基づき当該頂点を修正するか否かを決定する。 In addition, the encoding device 100 may signal, in the metadata, information indicating whether the decoding device 200 modifies a vertex at a boundary edge and/or information indicating a method for modifying the vertex, rather than hint information. In that case, for example, the decoding device 200 determines whether to modify the vertex based on the information.
なお、符号化装置100は、複数のサブメッシュが重複するか否かを示す情報、及び/又は、複数のサブメッシュがどのように重複するかを示す情報をシグナリングしてもよい。また、符号化装置100は、複数のサブメッシュが重複する可能性がある場合に、重複に関する処理(例えば、頂点を修正するなどの処理)を実行してもよい。 In addition, the encoding device 100 may signal information indicating whether multiple submeshes overlap and/or information indicating how multiple submeshes overlap. In addition, the encoding device 100 may perform processing related to the overlap (e.g., processing such as modifying vertices) when multiple submeshes may overlap.
図64は、実施の形態に係る符号化装置100が実行する境界頂点の判定処理を示すフロー図である。 FIG. 64 is a flow diagram showing the boundary vertex determination process performed by the encoding device 100 according to the embodiment.
まず、符号化装置100は、サブメッシュ毎に、サブ分割回数に基づいてサブ分割を実行する(S501)。 First, the encoding device 100 performs subdivision for each submesh based on the number of subdivisions (S501).
次に、符号化装置100は、サブメッシュ間の境界が重複するか否かを判定する(S502)。例えば、符号化装置100は、サブメッシュが境界エッジ(つまり、他のサブメッシュと共有する辺)を有するか否かを判定する。 Next, the encoding device 100 determines whether the boundaries between the submeshes overlap (S502). For example, the encoding device 100 determines whether the submeshes have a boundary edge (i.e., an edge shared with another submesh).
符号化装置100は、サブメッシュ間の境界が重複すると判定した場合(S503でYes)、メタデータに、サブメッシュ間の境界が重複することを示す(S504)。つまり、符号化装置100は、サブメッシュ間の境界が重複することを示す情報をメタデータに含める。言い換えると、符号化装置100は、サブメッシュ間の境界が重複することを示す情報を含むメタデータを生成する。 If the encoding device 100 determines that the boundaries between the submeshes overlap (Yes in S503), it indicates in the metadata that the boundaries between the submeshes overlap (S504). In other words, the encoding device 100 includes information indicating that the boundaries between the submeshes overlap in the metadata. In other words, the encoding device 100 generates metadata including information indicating that the boundaries between the submeshes overlap.
次に、符号化装置100が、境界エッジ(サブメッシュ間の重複エッジ)において、サブ分割後の境界頂点(具体的には、境界エッジにおける頂点、言い換えると、境界エッジ上に位置する頂点)が同一であるか否かを判定する(S505)。 Next, the encoding device 100 determines whether the boundary vertices (specifically, the vertices at the boundary edge, in other words, the vertices located on the boundary edge) after subdivision are identical at the boundary edge (overlapping edge between submeshes) (S505).
符号化装置100が、サブ分割後の境界頂点が同一ではないと判定した場合(S505でNo)、メタデータに、各サブメッシュにおいて、サブ分割後の境界頂点が同一ではないことを示す(S506)。つまり、符号化装置100は、境界頂点が同一ではないことを示す情報をメタデータに含める。言い換えると、符号化装置100は、境界頂点が同一ではないことを示す情報も含むメタデータを生成する。 If the encoding device 100 determines that the boundary vertices after the subdivision are not identical (No in S505), it indicates in the metadata that the boundary vertices after the subdivision are not identical in each submesh (S506). That is, the encoding device 100 includes information indicating that the boundary vertices are not identical in the metadata. In other words, the encoding device 100 generates metadata that also includes information indicating that the boundary vertices are not identical.
一方、符号化装置100が、サブ分割後の境界頂点が同一であると判定した場合(S505でYes)、メタデータに、各サブメッシュにおいて、サブ分割後の境界頂点が同一であることを示す(S507)。つまり、符号化装置100は、境界頂点が同一であることを示す情報をメタデータに含める。言い換えると、符号化装置100は、境界頂点が同一であることを示す情報も含むメタデータを生成する。 On the other hand, if the encoding device 100 determines that the boundary vertices after subdivision are the same (Yes in S505), it indicates in the metadata that the boundary vertices after subdivision are the same for each submesh (S507). That is, the encoding device 100 includes information indicating that the boundary vertices are the same in the metadata. In other words, the encoding device 100 generates metadata that also includes information indicating that the boundary vertices are the same.
また、符号化装置100は、サブメッシュ間の境界が重複しないと判定した場合(S503でNo)、メタデータに、サブメッシュ間の境界が重複しないことを示す(S508)。つまり、符号化装置100は、サブメッシュ間の境界が重複しないことを示す情報をメタデータに含める。言い換えると、符号化装置100は、サブメッシュ間の境界が重複しないことを示す情報を含むメタデータを生成する。 Furthermore, if the encoding device 100 determines that the boundaries between the submeshes do not overlap (No in S503), it indicates in the metadata that the boundaries between the submeshes do not overlap (S508). In other words, the encoding device 100 includes information indicating that the boundaries between the submeshes do not overlap in the metadata. In other words, the encoding device 100 generates metadata including information indicating that the boundaries between the submeshes do not overlap.
なお、符号化装置100は、さらに、各サブメッシュがどのように重複するのかを判定して、判定結果をメタデータに示してもよい。 In addition, the encoding device 100 may further determine how each submesh overlaps and indicate the determination result in the metadata.
符号化装置100は、例えば、2以上のサブメッシュのサブ分割回数をチェックし、同一か否かを判定し、判定結果を示すフラグを設定する。例えば、符号化装置100は、判定結果に基づいて、同一であること、又は、同一ではないことを示すフラグ(フラグ情報)を生成する。 The encoding device 100, for example, checks the number of subdivisions of two or more submeshes, determines whether they are identical or not, and sets a flag indicating the determination result. For example, the encoding device 100 generates a flag (flag information) indicating that they are identical or not identical based on the determination result.
例えば、符号化装置100は、2以上のサブメッシュのそれぞれのサブ分割回数をチェックする。例えば、符号化装置100は、2以上のサブメッシュのサブ分割回数が異なる場合には、フラグ(修正フラグ)をオンに設定する。一方、例えば、符号化装置100は、2以上のサブメッシュのサブ分割回数が同じである場合には、フラグをオフに設定する。つまり、例えば、フラグは、2以上のサブメッシュ間のサブ分割回数が異なることを示す。言い換えれば、サブ分割後のサブメッシュの境界エッジにおける頂点が同一ではない、又は、同一にならない可能性があることを示すフラグということもできる。 For example, the encoding device 100 checks the number of subdivisions of each of the two or more submeshes. For example, if the number of subdivisions of the two or more submeshes is different, the encoding device 100 sets a flag (modification flag) to on. On the other hand, for example, if the number of subdivisions of the two or more submeshes is the same, the encoding device 100 sets the flag to off. That is, for example, the flag indicates that the number of subdivisions between the two or more submeshes is different. In other words, it can also be said that the flag indicates that the vertices at the boundary edges of the submeshes after subdivision are not identical or may not become identical.
また、例えば、符号化装置100は、2以上のサブメッシュのサブ分割後の全部の境界頂点の座標を比較し、境界頂点が同一であるか否かを判定し、判定結果に基づいてフラグを設定する。 Also, for example, the encoding device 100 compares the coordinates of all boundary vertices after subdivision of two or more submeshes, determines whether the boundary vertices are identical, and sets a flag based on the determination result.
また、例えば、符号化装置100は、2以上のサブメッシュの境界頂点の座標を比較し、比較結果に基づいてフラグの値を決定する。例えば、符号化装置100は、2以上のサブメッシュに共通しない境界頂点が少なくとも1つあれば、フラグをオンに設定する。一方、例えば、符号化装置100は、2以上のサブメッシュの境界頂点が全て同じである場合、フラグをオフに設定する。つまり、フラグは、サブ分割n後の2以上のサブメッシュの境界頂点が同一となるかならないかを示すフラグである。 Also, for example, the encoding device 100 compares the coordinates of the boundary vertices of two or more submeshes and determines the value of the flag based on the comparison result. For example, the encoding device 100 sets the flag to on if there is at least one boundary vertex that is not common to two or more submeshes. On the other hand, for example, the encoding device 100 sets the flag to off if all the boundary vertices of two or more submeshes are the same. In other words, the flag indicates whether the boundary vertices of two or more submeshes after subdivision n will be the same or not.
このフラグは、メッシュフレーム全体に対して設定されてもよい。フラグがメッシュフレーム全体に対して設定される場合、境界頂点の修正処理では、現在のフレームに関連する全てのサブメッシュの境界エッジに適用される。フラグがメッシュフレーム全体に対して設定されない場合、フラグは、サブメッシュ毎に設定されてもよい。フラグがサブメッシュ毎に設定される場合、補正処理では、現在のサブメッシュIDに関連付けられたサブメッシュに適用される。 The flag may be set for the entire mesh frame. If the flag is set for the entire mesh frame, the boundary vertex correction process applies to the boundary edges of all submeshes associated with the current frame. If the flag is not set for the entire mesh frame, the flag may be set per submesh. If the flag is set per submesh, the correction process applies to the submesh associated with the current submesh ID.
[修正方法をシグナリングする方法]
符号化装置100は、フラグに加え、復号装置200がどのように頂点(境界頂点)を修正するのかを判定し、頂点の修正方法の種類(タイプ)をシグナリングしてもよい。復号装置200は、修正方法のタイプに基づいて頂点を修正してもよい。
[Method of signaling correction method]
In addition to the flag, the encoding device 100 may determine how the decoding device 200 modifies the vertex (boundary vertex) and signal the type of the vertex modification method. The decoding device 200 may modify the vertex based on the type of modification method.
図65は、実施の形態に係る復号装置200が実行するサブメッシュの重複の判定処理を示すフロー図である。 FIG. 65 is a flow diagram showing the process of determining whether submeshes overlap, which is executed by the decoding device 200 according to the embodiment.
まず、復号装置200は、メタデータを解析することで、サブメッシュ間の境界が重複するか否かを判定する(S511)。 First, the decoding device 200 analyzes the metadata to determine whether or not the boundaries between the submeshes overlap (S511).
復号装置200は、サブメッシュ間の境界が重複すると判定した場合(S512でYes)、復号装置200、又は、復号に関する処理を行うためのアプリケーションが重複に関する処理(重複サブメッシュの処理)を実行するか否かを判定する(S513)。 If the decoding device 200 determines that the boundaries between submeshes overlap (Yes in S512), it determines whether the decoding device 200 or an application for performing decoding-related processing will execute processing related to the overlap (processing of overlapping submeshes) (S513).
復号装置200は、復号装置200又はアプリケーションが重複サブメッシュの処理を実行すると判定した場合(S513でYes)、重複サブメッシュの処理を実行する(S514)。復号装置200は、重複サブメッシュの処理として、例えば、サブ分割を実行し、サブメッシュ間の境界(具体的には、境界エッジ)を検出し、サブ分割後のサブメッシュ間の境界に対して、境界頂点の修正などの所定の処理を実行する。 When the decoding device 200 or the application determines that the decoding device 200 or the application processes the overlapping submeshes (Yes in S513), the decoding device 200 processes the overlapping submeshes (S514). As the processing of the overlapping submeshes, the decoding device 200 performs, for example, subdivision, detects the boundaries between the submeshes (specifically, boundary edges), and performs a predetermined process on the boundaries between the submeshes after the subdivision, such as modifying the boundary vertices.
一方、例えば、復号装置200は、サブメッシュ間の境界が重複しないと判定した場合(S512でNo)、又は、復号装置200又はアプリケーションが重複サブメッシュの処理を実行しないと判定した場合(S513でNo)、重複サブメッシュの処理、つまり、サブメッシュ間が重複する場合の処理を実行せず、処理を終了する。 On the other hand, for example, if the decoding device 200 determines that the boundaries between the submeshes do not overlap (No in S512), or if the decoding device 200 or the application determines that the processing of the overlapping submeshes will not be performed (No in S513), the processing of the overlapping submeshes, that is, the processing of the case where the submeshes overlap, is not performed, and the processing ends.
図66は、実施の形態に係る復号装置200が実行する頂点の修正処理を示すフロー図である。具体的には、図66は、ステップS514の処理の具体例を示す。 FIG. 66 is a flow diagram showing the vertex modification process executed by the decoding device 200 according to the embodiment. Specifically, FIG. 66 shows a specific example of the process of step S514.
なお、例えば、復号装置200は、図66に示す処理を開始する前に、ビットストリームからデータ及びメタデータを復号して解析することで、複数のサブメッシュをサブ分割する。その後、復号装置200は、図66に示す処理を実行する。 Note that, for example, before starting the process shown in FIG. 66, the decoding device 200 sub-divides the multiple submeshes by decoding and analyzing the data and metadata from the bitstream. After that, the decoding device 200 executes the process shown in FIG. 66.
まず、復号装置200は、ビットストリーム(符号化ビットストリーム)から2以上のサブメッシュとフラグ情報(flag)とメソッド情報(method)を復号する(S521)。 First, the decoding device 200 decodes two or more submeshes, flag information (flag), and method information (method) from the bitstream (encoded bitstream) (S521).
メソッド情報は、境界頂点の修正方法(修正の仕方又は修正方法のタイプ)を示す情報である。 The method information indicates the method of modifying the boundary vertex (the method of modification or the type of modification method).
次に、復号装置200は、フラグ情報が修正を適用することを示しているか否かを判定する(S522)。つまり、復号装置200は、フラグがオンであるかオフであるかを判定する。 Next, the decoding device 200 determines whether the flag information indicates that a correction is to be applied (S522). In other words, the decoding device 200 determines whether the flag is on or off.
復号装置200は、フラグ情報が修正を適用することを示している場合(S522でYes)、メソッド情報が、新たな頂点を追加することを示しているか否かを判定する(S523)。具体的には、復号装置200は、メソッド情報が、2以上のサブメッシュの少なくともいずれかのサブメッシュにおける境界エッジに、新たな頂点を追加することを示しているか否かを判定する。このように、復号装置200は、メソッド情報に基づいて、2以上のサブメッシュにメソッド情報が示す処理を実行する。 If the flag information indicates that a correction is to be applied (Yes in S522), the decoding device 200 determines whether or not the method information indicates that a new vertex is to be added (S523). Specifically, the decoding device 200 determines whether or not the method information indicates that a new vertex is to be added to a boundary edge in at least one of the two or more submeshes. In this way, the decoding device 200 executes the process indicated by the method information on the two or more submeshes based on the method information.
例えば、復号装置200は、メソッド情報が、新たな頂点を追加することを示していると判定した場合(S523でYes)、メソッド情報に基づいて、1以上の頂点を境界エッジに導入する(S524)。具体的には、復号装置200は、メソッド情報に基づいて、2以上のサブメッシュのうちの少なくともいずれかの境界エッジに1以上の頂点を追加する。このように、復号装置200は、メソッド情報に基づいて、2以上のサブメッシュに境界頂点の修正を適用する。 For example, when the decoding device 200 determines that the method information indicates that a new vertex is to be added (Yes in S523), the decoding device 200 introduces one or more vertices to the boundary edge based on the method information (S524). Specifically, the decoding device 200 adds one or more vertices to the boundary edge of at least one of the two or more submeshes based on the method information. In this way, the decoding device 200 applies the modification of the boundary vertices to the two or more submeshes based on the method information.
一方、例えば、復号装置200は、メソッド情報が、新たな頂点を追加することを示していないと判定した場合(S523でNo)、メソッド情報に基づいて、境界エッジにおける1以上の頂点の少なくともいずれかを除去する(S525)。具体的には、復号装置200は、メソッド情報に基づいて、2以上のサブメッシュのうちの少なくともいずれかの境界エッジにおける、サブ分割によって追加(生成)された1以上の頂点のうちの少なくともいずれかを削除する。 On the other hand, for example, if the decoding device 200 determines that the method information does not indicate that a new vertex is to be added (No in S523), it removes at least one of the one or more vertices in the boundary edge based on the method information (S525). Specifically, the decoding device 200 deletes at least one of the one or more vertices added (generated) by subdivision in at least one boundary edge of two or more submeshes based on the method information.
なお、復号装置200は、フラグ情報が修正を適用することを示していない場合(S522でNo)、境界エッジにおける頂点の修正をすることなく、処理を終了する。 If the flag information does not indicate that modification is to be applied (No in S522), the decoding device 200 ends the process without modifying the vertices at the boundary edges.
また、復号装置200は、メソッド情報に基づいて処理を実行してもよいし、しなくてもよい。 In addition, the decryption device 200 may or may not execute processing based on the method information.
また、復号装置200は、境界エッジにおける頂点を追加するか削除するかの判定を、例えば、サブメッシュのサブ分割回数を解析することで判定する等、上記以外の方法で判定してもよい。 The decoding device 200 may also determine whether to add or delete a vertex at a boundary edge using a method other than the above, such as by analyzing the number of times a submesh is sub-divided.
以上のように、第3態様では、ビットストリームからフラグ情報が復号されてもよく、フラグ情報は、2以上のサブメッシュが結合されるときに、境界エッジにおける頂点の数を修正するか否かを示す。 As described above, in the third aspect, flag information may be decoded from the bitstream, the flag information indicating whether to modify the number of vertices at the boundary edge when two or more sub-meshes are combined.
例えば、復号装置200は、指定されたサブ分割回数にしたがって、所定のサブメッシュの全ての辺にサブ分割処理を適用する。 For example, the decoding device 200 applies the subdivision process to all edges of a given submesh according to a specified number of subdivisions.
また、例えば、復号装置200は、復号されたフラグ情報が、境界エッジ上の頂点の数を等しくすることを示す場合、サブメッシュに頂点を追加又はサブメッシュから頂点を削除する。 Also, for example, the decoding device 200 adds or removes a vertex to or from a submesh if the decoded flag information indicates that the number of vertices on the boundary edges is to be equal.
例えば、フラグ情報は、SEIメッセージとしてシグナリングされる。復号装置200は、サブ分割処理を完了し、隣接する2以上のサブメッシュを結合した後、頂点の数を調整(修正)する。頂点の数が変更されると、それに応じて各サブメッシュのトポロジが更新される。 For example, the flag information is signaled as an SEI message. After completing the subdivision process and combining two or more adjacent submeshes, the decoding device 200 adjusts (modifies) the number of vertices. When the number of vertices is changed, the topology of each submesh is updated accordingly.
なお、境界エッジにおける頂点が修正(追加又は除去)された後に、サブメッシュにおける三角形が再構成されてもよい。 Note that triangles in a submesh may be reconstructed after vertices in the boundary edges are modified (added or removed).
図67は、実施の形態に係る頂点の修正処理の具体例を示す図である。具体的には、図67は、メソッド情報に基づいて、境界エッジに頂点が追加される処理を説明するための図である。 FIG. 67 is a diagram showing a specific example of a vertex modification process according to an embodiment. Specifically, FIG. 67 is a diagram for explaining a process in which a vertex is added to a boundary edge based on method information.
なお、頂点を追加するか削除するかは、メソッド情報を用いず、例えば、復号装置200がサブメッシュのサブ分割回数を解析する等、任意の方法で判定されてもよい。 In addition, whether to add or delete a vertex may be determined by any method, such as by the decoding device 200 analyzing the number of times a submesh is sub-divided, without using method information.
例えば、復号装置200は、隣接するサブメッシュから頂点の座標をコピーすることで、境界エッジに新たな頂点を追加(生成)する。 For example, the decoding device 200 adds (generates) new vertices to the boundary edge by copying the coordinates of the vertices from an adjacent submesh.
本例では、頂点A、B、C、D及びEを有するサブメッシュ1と、頂点B1、C1、X、Y、Zを有するサブメッシュ2とを用いて説明する。サブメッシュ1とサブメッシュ2とは、ベースメッシュにおいて隣接するサブメッシュである。頂点Bと頂点B1とは、ベースメッシュにおいて同じ頂点であり、頂点Cと頂点C1とは、ベースメッシュにおいて同じ頂点である。サブメッシュ1における頂点Bと頂点Cとを結ぶ辺と、サブメッシュ2における頂点B1と頂点C1とを結ぶ辺とが、それぞれ、境界エッジである。 In this example, explanation will be given using submesh 1 having vertices A, B, C, D, and E, and submesh 2 having vertices B1, C1, X, Y, and Z. Submesh 1 and submesh 2 are adjacent submeshes in the base mesh. Vertices B and B1 are the same vertex in the base mesh, and vertices C and C1 are the same vertex in the base mesh. The edge connecting vertices B and C in submesh 1, and the edge connecting vertices B1 and C1 in submesh 2 are each a boundary edge.
なお、内部エッジとは、他のサブメッシュとは共有されていない(重複されていない)辺である。 Note that an internal edge is an edge that is not shared (not duplicated) with other submeshes.
また、本例では、サブメッシュ1が0回だけサブ分割され、サブメッシュ2が1回だけサブ分割される。例えば、復号装置200は、図67の(a)に示すサブメッシュ1を0回だけサブ分割することで、図67の(b)に示すサブメッシュ1を生成する。つまり、復号装置200は、サブ分割回数が0回の場合、図67の(b)に示すように、図67の(a)に示すサブメッシュ1に対してサブ分割を行わない。また、例えば、復号装置200は、図67の(e)に示すサブメッシュ2を1回だけサブ分割することで、図67の(f)に示すサブメッシュ2を生成する。図67の(f)に示すように、サブメッシュ2には、サブ分割されることにより、新たな頂点Q1、R、S、T、U、V及びWが追加(生成)され、それらの頂点を結ぶ辺(追加エッジ)が新たに追加(生成)される。このようにして、復号装置200は、サブメッシュ2をサブ分割することにより、サブメッシュ2の内部に三角形を作成する。 In this example, submesh 1 is sub-divided 0 times, and submesh 2 is sub-divided once. For example, the decoding device 200 generates submesh 1 shown in FIG. 67(b) by sub-dividing submesh 1 shown in FIG. 67(a) 0 times. That is, when the number of subdivisions is 0, the decoding device 200 does not sub-divide submesh 1 shown in FIG. 67(a) as shown in FIG. 67(b). For example, the decoding device 200 generates submesh 2 shown in FIG. 67(f) by sub-dividing submesh 2 shown in FIG. 67(e) once. As shown in FIG. 67(f), new vertices Q1, R, S, T, U, V, and W are added (generated) to submesh 2 by subdivision, and edges (additional edges) connecting these vertices are newly added (generated). In this way, the decoding device 200 creates a triangle inside submesh 2 by sub-dividing submesh 2.
復号装置200は、例えば、フラグ情報が頂点を修正しないことを示す(つまり、フラグがオフ、又は、flag=noである)場合、図67の(c)に示すように、図67の(b)に示すサブメッシュ1に対して頂点の修正のための処理を行わない。一方、復号装置200は、例えば、フラグ情報が頂点を修正することを示す(つまり、フラグがオン(flag=ON)、又は、flag=yesである)場合であって、メソッド情報が頂点を追加することを示す(つまり、method=ADD_VERTEXである)場合、図67の(d)に示すように、サブメッシュ1に新たな頂点Qを追加(生成)する。 For example, when the flag information indicates that the vertex is not to be modified (i.e., the flag is off or flag=no), the decoding device 200 does not perform processing to modify the vertex on the submesh 1 shown in FIG. 67(b), as shown in FIG. 67(c). On the other hand, when the flag information indicates that the vertex is to be modified (i.e., the flag is on (flag=ON) or flag=yes) and the method information indicates that a vertex is to be added (i.e., method=ADD_VERTEX), the decoding device 200 adds (generates) a new vertex Q to the submesh 1, as shown in FIG. 67(d).
なお、メソッド情報(method)の具体例については後述する(例えば、図75参照)。 Specific examples of method information (method) will be described later (see, for example, Figure 75).
さらに、復号装置200は、新たな頂点Qを用いて、サブメッシュ1に含まれる三角形を作成する。具体的には、復号装置200は、新たな頂点Qを用いて、三角形ABCを三角形BAQと三角形QACとの2つの三角形に分割する。 Furthermore, the decoding device 200 creates a triangle included in the submesh 1 using the new vertex Q. Specifically, the decoding device 200 divides the triangle ABC into two triangles, triangle BAQ and triangle QAC, using the new vertex Q.
例えば、復号装置200は、サブメッシュ1とサブメッシュ2とを比較することで、頂点Q1に対応する頂点Qをサブメッシュ1における境界エッジに追加する。 For example, the decoding device 200 compares submesh 1 and submesh 2, and adds vertex Q corresponding to vertex Q1 to the boundary edge in submesh 1.
例えば、符号化装置100は、サブメッシュ1等の第1サブメッシュと、サブメッシュ2等の第2サブメッシュとが共有する辺である境界エッジにおける頂点が、第1サブメッシュが第1回数だけサブ分割されることで形成された第1メッシュと、第2サブメッシュが第2回数だけサブ分割されることで形成された第2メッシュとで同一であるか否かの判定を行う。さらに、符号化装置100は、判定結果に基づいて、フラグ情報及び/又はメソッド情報等の、第1メッシュと第2メッシュとを結合する処理に関する結合情報をビットストリームに符号化する。フラグ情報は、例えば、第1メッシュ及び第2メッシュの少なくとも一方の境界エッジにおける頂点(具体的には、頂点の数)を修正する必要があるか否かを示す情報である。また、メソッド情報は、第1メッシュ及び第2メッシュの少なくとも一方の境界エッジにおける頂点の修正の仕方(修正方法)を示す情報である。本例では、符号化装置100は、第1メッシュ及び第2メッシュの少なくとも一方の境界エッジに頂点を追加することを示す情報(ADD_VERTEX)を含むメソッド情報をビットストリームに符号化している。復号装置200は、このような結合情報をビットストリームから復号し、復号した結合情報に基づいて、境界エッジにおける頂点が、第1サブメッシュが第1回数だけサブ分割されることで形成された第1メッシュと、第2サブメッシュが第2回数だけサブ分割されることで形成された第2メッシュとで同一であるか否かの判定を行う。ここで、例えば、復号装置200は、同一ではないと判定した場合、結合情報に含まれるメソッド情報に基づいて、少なくとも一方の境界エッジにおける頂点を修正し、修正された当該頂点に基づいて、少なくとも一方に含まれる三角形を修正し、少なくとも一方に含まれる三角形が修正された第1メッシュ及び第2メッシュを結合する。 For example, the encoding device 100 determines whether or not the vertices of a boundary edge, which is an edge shared by a first submesh such as submesh 1 and a second submesh such as submesh 2, are the same in a first mesh formed by subdividing the first submesh a first number of times and a second mesh formed by subdividing the second submesh a second number of times. Furthermore, based on the determination result, the encoding device 100 encodes, into a bitstream, combination information related to a process of combining the first mesh and the second mesh, such as flag information and/or method information. The flag information is, for example, information indicating whether or not it is necessary to modify the vertices (specifically, the number of vertices) in the boundary edge of at least one of the first mesh and the second mesh. Furthermore, the method information is information indicating the manner (modification method) of modifying the vertices in the boundary edge of at least one of the first mesh and the second mesh. In this example, the encoding device 100 encodes, into a bitstream, method information including information (ADD_VERTEX) indicating that a vertex is to be added to the boundary edge of at least one of the first mesh and the second mesh. The decoding device 200 decodes such connection information from the bit stream, and determines, based on the decoded connection information, whether or not the vertices at the boundary edges of the first mesh formed by sub-dividing the first submesh a first number of times are the same as those of the second mesh formed by sub-dividing the second submesh a second number of times. Here, for example, if the decoding device 200 determines that the vertices are not the same, it modifies the vertices at at least one of the boundary edges based on the method information included in the connection information, modifies a triangle included in at least one of the meshes based on the modified vertices, and combines the first mesh and the second mesh with the modified triangle included in at least one of the meshes.
図68は、実施の形態に係る頂点の修正処理の具体例を示す図である。具体的には、図68は、メソッド情報に基づいて、境界エッジから頂点が除去される処理を説明するための図である。 FIG. 68 is a diagram showing a specific example of a vertex modification process according to an embodiment. Specifically, FIG. 68 is a diagram for explaining a process in which a vertex is removed from a boundary edge based on method information.
本例では、図67に示す例と同様に、サブメッシュ1及びサブメッシュ2を用いて説明する。 In this example, we will use submesh 1 and submesh 2, similar to the example shown in Figure 67.
また、本例では、サブメッシュ1が1回だけサブ分割され、サブメッシュ2が0回だけサブ分割される。例えば、復号装置200は、図68の(a)に示すサブメッシュ1を1回だけサブ分割することで、図68の(b)に示すサブメッシュ1を生成する。図68の(b)に示すように、サブメッシュ1には、サブ分割されることにより、新たな頂点Q、R、S、T、U、V及びWが追加(生成)され、それらの頂点を結ぶ辺(追加エッジ)が新たに追加(生成)される。このようにして、復号装置200は、サブメッシュ1をサブ分割することにより、サブメッシュ1の内部に三角形を作成する。また、例えば、復号装置200は、図68の(e)に示すサブメッシュ2を0回だけサブ分割することで、図68の(f)に示すサブメッシュ2を生成する。つまり、復号装置200は、サブ分割回数が0回の場合、図68の(f)に示すように、図68の(b)に示すサブメッシュ1に対してサブ分割を行わない。 In this example, submesh 1 is sub-divided only once, and submesh 2 is sub-divided 0 times. For example, the decoding device 200 generates submesh 1 shown in FIG. 68(b) by sub-dividing submesh 1 shown in FIG. 68(a) only once. As shown in FIG. 68(b), new vertices Q, R, S, T, U, V, and W are added (generated) to submesh 1 by sub-division, and edges (additional edges) connecting these vertices are newly added (generated). In this way, the decoding device 200 creates triangles inside submesh 1 by sub-dividing submesh 1. For example, the decoding device 200 generates submesh 2 shown in FIG. 68(f) by sub-dividing submesh 2 shown in FIG. 68(e) 0 times. In other words, when the number of sub-divisions is 0, the decoding device 200 does not perform sub-division on submesh 1 shown in FIG. 68(b), as shown in FIG. 68(f).
復号装置200は、例えば、フラグ情報が頂点を修正しないことを示す(つまり、フラグがオフ、又は、flag=noである)場合、図68の(c)に示すように、図68の(b)に示すサブメッシュ1に対して頂点の修正のための処理を行わない。一方、復号装置200は、例えば、フラグ情報が頂点を修正することを示す(つまり、flag=ON、又は、flag=yesである)場合であって、メソッド情報が頂点を除去することを示す(つまり、method=REMOVE_VERTEXである)場合、境界エッジにおける頂点を除去する。本例では、復号装置200は、頂点Qを除去することで、図68の(d)に示すサブメッシュ1を生成する。 For example, when the flag information indicates that the vertex is not to be modified (i.e., the flag is off or flag=no), the decoding device 200 does not perform processing to modify the vertex on the submesh 1 shown in FIG. 68(b), as shown in FIG. 68(c). On the other hand, when the flag information indicates that the vertex is to be modified (i.e., flag=ON or flag=yes) and the method information indicates that the vertex is to be removed (i.e., method=REMOVE_VERTEX), the decoding device 200 removes the vertex on the boundary edge. In this example, the decoding device 200 generates the submesh 1 shown in FIG. 68(d) by removing the vertex Q.
このように、例えば、復号装置200は、2以上の頂点を1に統合することで、境界エッジ上の頂点を除去する。本例では、復号装置200は、サブメッシュ1の境界エッジにおける複数の頂点(頂点B、C及びQ)のうち、サブメッシュ2に対応する頂点がない頂点Qを除去する。 In this way, for example, the decoding device 200 removes vertices on boundary edges by merging two or more vertices into one. In this example, the decoding device 200 removes vertex Q, which has no corresponding vertex in submesh 2, from among multiple vertices (vertices B, C, and Q) on the boundary edge of submesh 1.
さらに、復号装置200は、除去した頂点Qに基づいて、サブメッシュ1に含まれる三角形を再作成する。つまり、復号装置200は、頂点Qを除去したため、頂点Qと結ばれていた辺を削除してサブメッシュ1の内部に新たな三角形が作成されるように、サブメッシュ1を修正する。具体的には、復号装置200は、図68の(d)に示すように、頂点Bと頂点Tとを結ぶ辺を追加することで、三角形UTBと三角形BTCとを作成する。このように、例えば、三角形UQT、三角形BUQ及び三角形QTCが、三角形UTB及び三角形BTCに置き換えられる。 Furthermore, the decoding device 200 recreates the triangles included in submesh 1 based on the removed vertex Q. That is, since the decoding device 200 has removed vertex Q, it modifies submesh 1 so that the edge connected to vertex Q is deleted and a new triangle is created inside submesh 1. Specifically, as shown in (d) of FIG. 68, the decoding device 200 creates triangles UTB and BTC by adding an edge connecting vertex B and vertex T. In this way, for example, triangles UQT, BUQ, and QTC are replaced with triangles UTB and BTC.
例えば、復号装置200は、サブメッシュ1とサブメッシュ2とを比較することで、サブメッシュ2と対応する頂点がない頂点Qをサブメッシュ1における境界エッジから除去する。 For example, the decoding device 200 compares submesh 1 and submesh 2 to remove vertex Q, which has no corresponding vertex in submesh 2, from the boundary edge in submesh 1.
また、本例では、符号化装置100は、第1メッシュ及び第2メッシュの少なくとも一方の境界エッジにおける1以上の頂点のうちの少なくとも1つを取り除くことを示す情報(REMOVE_VERTEX)を含むメソッド情報をビットストリームに符号化している。 In addition, in this example, the encoding device 100 encodes method information into the bitstream, the method information including information (REMOVE_VERTEX) indicating that at least one of one or more vertices in the boundary edge of at least one of the first mesh and the second mesh is to be removed.
図69は、実施の形態に係るフラグ情報が格納される位置の具体例を示す図である。 FIG. 69 shows a specific example of a location where flag information related to an embodiment is stored.
図69に示すように、例えば、フラグ情報は、ビットストリームのSEIメッセージ内にシグナリングされる。 As shown in FIG. 69, for example, flag information is signaled within an SEI message in the bitstream.
なお、フラグ情報は、ビットストリームのヘッダにシグナリングされてもよい。 Flag information may also be signaled in the bitstream header.
図70は、実施の形態に係るフラグ情報がシグナリングされたシンタックスの一例を説明するための図である。 FIG. 70 is a diagram illustrating an example of a syntax in which flag information related to an embodiment is signaled.
図70に示すように、フラグ情報(flag)が示す値は、例えば、2進数の値である。また、フラグ情報が示す値は、フレームレベルでシグナリングされる。フラグ情報は、例えば、フラグ情報が示す値が1に等しい場合には、現在のフレームに関連する全てのサブメッシュに対して修正処理が適用されることを示す。一方、フラグ情報は、例えば、フラグ情報が示す値が0に等しい場合には、修正処理が適用されないことを示す。フラグ情報が存在しない場合には、フラグ情報の値がシグナリングされる箇所の値に0が設定される。 As shown in FIG. 70, the value indicated by the flag information (flag) is, for example, a binary value. The value indicated by the flag information is signaled at the frame level. For example, when the value indicated by the flag information is equal to 1, the flag information indicates that the modification process is applied to all submeshes related to the current frame. On the other hand, when the value indicated by the flag information is equal to 0, the flag information indicates that the modification process is not applied. When the flag information does not exist, the value at the location where the value of the flag information is signaled is set to 0.
図71は、実施の形態に係るフラグ情報がシグナリングされたシンタックスの別の一例を説明するための図である。 FIG. 71 is a diagram illustrating another example of a syntax in which flag information related to an embodiment is signaled.
図71に示すように、サブメッシュ毎にフラグ情報がシグナリングされてもよい。フラグ(flag[i])が1に等しい場合には、submesh_idに関連付けられたサブメッシュに対して修正処理が適用されることを示す。一方、flag[i]が0に等しい場合には、submesh_idに関連付けられたサブメッシュに対して修正処理が適用されないことを示す。flag[i]が存在しない場合には、flag[i]は0に設定される。 As shown in FIG. 71, flag information may be signaled for each submesh. When the flag (flag[i]) is equal to 1, it indicates that the modification process is applied to the submesh associated with the submesh_id. On the other hand, when flag[i] is equal to 0, it indicates that the modification process is not applied to the submesh associated with the submesh_id. If flag[i] is not present, flag[i] is set to 0.
なお、フラグ情報は、修正処理を適用するか否かを示すとしたが、境界エッジにおける頂点が一致するか否かを示すフラグとしてもよい。復号装置200は、当該フラグに基づいて、修正処理を適用するか否を決定してもよい。 In the above description, the flag information indicates whether or not to apply the correction process, but it may also be a flag indicating whether or not the vertices at the boundary edge match. The decoding device 200 may determine whether or not to apply the correction process based on the flag.
また、符号化装置100は、submesh_idを送信しなくてもよい。この場合、ループの順番がsubmesh_idと判断すると規定されてもよい。 Also, the encoding device 100 may not need to transmit the submesh_id. In this case, it may be specified that the loop order is determined based on the submesh_id.
図72は、実施の形態に係るメソッド情報が格納される位置の具体例を示す図である。 FIG. 72 shows a specific example of a location where method information related to an embodiment is stored.
図72に示すように、例えば、メソッド情報(method)は、ビットストリームのSEIメッセージ内にシグナリングされる。 As shown in FIG. 72, for example, method information (method) is signaled in an SEI message in the bitstream.
なお、メソッド情報は、ビットストリームのヘッダにシグナリングされてもよい。 In addition, the method information may be signaled in the bitstream header.
図73は、実施の形態に係るメソッド情報がシグナリングされたシンタックスの一例を説明するための図である。 FIG. 73 is a diagram illustrating an example of a syntax in which method information related to an embodiment is signaled.
図73に示すように、メソッド情報は、現在のフレームに関連するサブメッシュに適用される修正処理の識別子を示す。 As shown in Figure 73, the method information indicates the identifier of the modification process to be applied to the submesh associated with the current frame.
図74は、実施の形態に係るメソッド情報がシグナリングされたシンタックスの別の一例を説明するための図である。 FIG. 74 is a diagram illustrating another example of a syntax in which method information related to an embodiment is signaled.
図74に示すように、メソッド情報は、submesh_idに関連付けられたサブメッシュに適用される修正処理の識別子を示してもよい。 As shown in FIG. 74, the method information may indicate an identifier for a modification process to be applied to the submesh associated with the submesh_id.
図75は、実施の形態に係る頂点の修正方法の具体例を示す図である。具体的には、図75は、メソッド情報が示す識別子と修正方法の種類(修正方法の名称)との関係の一例を示すリストである。 FIG. 75 is a diagram showing a specific example of a vertex modification method according to an embodiment. Specifically, FIG. 75 is a list showing an example of the relationship between an identifier indicated by the method information and the type of modification method (the name of the modification method).
例えば、メソッド情報が0を示す場合、復号装置200が、修正処理を行わないことを示す。また、例えば、メソッド情報が1を示す場合、復号装置200が、修正処理において頂点を追加する処理を行うことを示す。例えば、メソッド情報が2を示す場合、復号装置200が、修正処理において、頂点を除去する処理を行うことを示す。 For example, when the method information indicates 0, this indicates that the decoding device 200 does not perform modification processing. Also, when the method information indicates 1, this indicates that the decoding device 200 performs processing to add a vertex in the modification processing. For example, when the method information indicates 2, this indicates that the decoding device 200 performs processing to remove a vertex in the modification processing.
なお、修正処理は、メソッド情報がビットストリームにシグナリングされずに、復号装置200によって導出されてもよい。 In addition, the modification process may be derived by the decoding device 200 without the method information being signaled in the bitstream.
例えば、復号装置200は、2つのサブメッシュ間のサブ分割回数の差分を算出する等して2つのサブメッシュのサブ分割回数を比較して、頂点を追加するか削除するかを決定してもよい。例えば、サブメッシュ1の方がサブメッシュ2よりもサブ分割回数が少ない場合には、サブメッシュ1に対して頂点の追加する修正処理が適用される。一方、例えば、サブメッシュ1がサブメッシュ2よりもサブ分割回数が多い場合には、サブメッシュ1に対して頂点を除去する修正処理法が適用される。また、例えば、サブメッシュ1がサブメッシュ2と同じサブ分割回数である場合には、頂点が追加も除去もされない。 For example, the decoding device 200 may compare the subdivision counts of the two submeshes, for example by calculating the difference in the subdivision counts between the two submeshes, and determine whether to add or remove a vertex. For example, if submesh 1 has a smaller number of subdivision counts than submesh 2, a modification process that adds a vertex is applied to submesh 1. On the other hand, if submesh 1 has a larger number of subdivision counts than submesh 2, a modification process that removes a vertex is applied to submesh 1. Also, for example, if submesh 1 has the same number of subdivision counts as submesh 2, no vertices are added or removed.
また、例えば、メソッド情報が修正処理において頂点を追加する処理を示す場合、かつ、サブメッシュ1の方がサブメッシュ2よりもサブ分割回数が少ない場合に、サブメッシュ1に対して頂点の追加する修正処理が適用される。一方、例えば、メソッド情報が修正処理において頂点を削除する処理を示す場合、かつ、サブメッシュ1がサブメッシュ2よりもサブ分割回数が多い場合には、サブメッシュ1に対して頂点を除去する修正処理法が適用される。 Also, for example, if the method information indicates a process for adding a vertex in the modification process, and submesh 1 has been sub-divided less times than submesh 2, a modification process for adding a vertex is applied to submesh 1. On the other hand, for example, if the method information indicates a process for deleting a vertex in the modification process, and submesh 1 has been sub-divided more times than submesh 2, a modification process method for removing a vertex is applied to submesh 1.
なお、図69に示す例と図72に示す例とは、組み合わされて実現されてもよい。 Note that the example shown in FIG. 69 and the example shown in FIG. 72 may be realized in combination.
また、図70に示す例と、図71に示す例と、図73に示す例と、図74に示す例とは、組み合わされて実現されてもよい。 In addition, the example shown in FIG. 70, the example shown in FIG. 71, the example shown in FIG. 73, and the example shown in FIG. 74 may be realized in combination.
続いて、複数のサブメッシュと隣接するサブメッシュの例について説明する。 Next, we will explain an example of multiple submeshes and adjacent submeshes.
図76は、実施の形態に係る複数のサブメッシュのサブ分割回数とフラグ情報との関係の一例を説明するための図である。 FIG. 76 is a diagram illustrating an example of the relationship between the number of subdivisions of multiple submeshes and flag information in an embodiment.
図76に示す例では、サブメッシュ3は、サブメッシュ1及びサブメッシュ2と隣接し、境界が重複する。また、サブメッシュ1のサブ分割回数(反復回数)は1回であり、サブメッシュ2のサブ分割回数は2回であり、サブメッシュ3のサブ分割回数は2回である。そのため、サブメッシュ1とサブメッシュ3とが共有する境界エッジにおける頂点は、サブメッシュ1がサブ分割されて生成された頂点と、サブメッシュ3がサブ分割されて生成された頂点とで異なる可能性が高い。また、サブメッシュ2とサブメッシュ3とが共有する境界エッジにおける頂点は、サブメッシュ2がサブ分割されて生成された頂点と、サブメッシュ3がサブ分割されて生成された頂点とで同じ可能性が高い。 In the example shown in FIG. 76, submesh 3 is adjacent to submesh 1 and submesh 2, and their boundaries overlap. Furthermore, submesh 1 has been subdivision (iterations) once, submesh 2 has been subdivision twice, and submesh 3 has been subdivision twice. Therefore, the vertices in the boundary edge shared by submeshes 1 and 3 are likely to be different between the vertices generated by subdivision of submesh 1 and the vertices generated by subdivision of submesh 3. Furthermore, the vertices in the boundary edge shared by submeshes 2 and 3 are likely to be the same between the vertices generated by subdivision of submesh 2 and the vertices generated by subdivision of submesh 3.
例えば、符号化装置100は、サブメッシュ1が、サブメッシュ3のみと境界エッジを共有しており、サブ分割回数が同一でないため、サブメッシュ1に対応するフラグ情報について、flag=ONとする。 For example, the encoding device 100 sets flag information corresponding to submesh 1 to flag=ON because submesh 1 shares a boundary edge only with submesh 3 and the subdivision counts are not the same.
また、例えば、符号化装置100は、サブメッシュ2が、サブメッシュ3のみと境界エッジを共有しており、サブ分割回数が同一であるため、サブメッシュ2に対応するフラグ情報について、flag=OFFとする。 In addition, for example, the encoding device 100 sets the flag information corresponding to submesh 2 to flag=OFF because submesh 2 shares a boundary edge only with submesh 3 and the number of subdivisions is the same.
また、サブメッシュ3は、サブメッシュ1及びサブメッシュ2と境界エッジを共有している。サブメッシュ3は、境界エッジにおけるサブ分割回数が、サブメッシュ2とは同一である一方、サブメッシュ1とは同一ではない。 Furthermore, submesh 3 shares boundary edges with submeshes 1 and 2. The number of subdivisions at the boundary edges of submesh 3 is the same as that of submesh 2, but is not the same as that of submesh 1.
例えば、符号化装置100は、境界が重複する複数のサブメッシュ(言い換えると、境界エッジを共有する複数のサブメッシュ)のうちのいずれか1つのサブ分割回数が異なる場合、又は、サブメッシュのサブ分割後の頂点が同一でない場合に、flag=ONとする。 For example, the encoding device 100 sets flag=ON when the number of subdivisions of any one of multiple submeshes with overlapping boundaries (in other words, multiple submeshes that share a boundary edge) is different, or when the vertices after subdivision of the submeshes are not identical.
図77は、実施の形態に係る複数のサブメッシュのサブ分割回数とフラグ情報との関係の別の一例を説明するための図である。 FIG. 77 is a diagram illustrating another example of the relationship between the number of subdivisions of multiple submeshes and flag information in an embodiment.
図77に示す例では、サブメッシュ3は、サブメッシュ1及びサブメッシュ2と隣接し、境界が重複する。また、サブメッシュ1のサブ分割回数(反復回数)は1回であり、サブメッシュ2のサブ分割回数は3回であり、サブメッシュ3のサブ分割回数は2回である。そのため、サブメッシュ1とサブメッシュ3とが共有する境界エッジにおける頂点は、サブメッシュ1がサブ分割されて生成された頂点と、サブメッシュ3がサブ分割されて生成された頂点とで異なる可能性が高い。また、サブメッシュ2とサブメッシュ3とが共有する境界エッジにおける頂点は、サブメッシュ2がサブ分割されて生成された頂点と、サブメッシュ3がサブ分割されて生成された頂点とで異なる可能性が高い。 In the example shown in FIG. 77, submesh 3 is adjacent to submesh 1 and submesh 2, and their boundaries overlap. Furthermore, submesh 1 has been subdivision (iterations) once, submesh 2 has been subdivision three times, and submesh 3 has been subdivision two times. Therefore, the vertices at the boundary edge shared by submeshes 1 and 3 are likely to be different between the vertices generated when submesh 1 is subdivision and the vertices generated when submesh 3 is subdivision. Furthermore, the vertices at the boundary edge shared by submeshes 2 and 3 are likely to be different between the vertices generated when submesh 2 is subdivision and the vertices generated when submesh 3 is subdivision.
例えば、符号化装置100は、サブメッシュ1が、サブメッシュ3のみと境界を共有しており、サブ分割回数が同一でないため、サブメッシュ1に対応するflag=ONとする。 For example, the encoding device 100 sets the flag corresponding to submesh 1 to ON because submesh 1 shares a boundary only with submesh 3 and the number of subdivisions is not the same.
また、例えば、符号化装置100は、サブメッシュ2が、サブメッシュ3のみと境界エッジを共有しており、サブ分割回数が同一ではないため、サブメッシュ2に対応するflag=ONとする。 Also, for example, the encoding device 100 sets the flag corresponding to submesh 2 to ON because submesh 2 shares a boundary edge only with submesh 3 and the number of subdivisions is not the same.
また、例えば、符号化装置100は、サブメッシュ3が、サブメッシュ1及びサブメッシュ2と境界エッジを共有しており、サブメッシュ1及びサブメッシュ2のいずれともサブ分割回数が同一でないため、サブメッシュ3に対応するflag=ONとする。 Furthermore, for example, the encoding device 100 sets the flag corresponding to submesh 3 to ON because submesh 3 shares boundary edges with submesh 1 and submesh 2 and has the same number of subdivisions as submesh 1 and submesh 2.
なお、符号化装置100がメソッド情報(method)をメタデータに示す場合、1つのサブメッシュに対して、隣接する複数のサブメッシュの情報を示すことで、サブメッシュ毎のメソッド情報を示してもよい。 When the encoding device 100 indicates method information (method) in metadata, the encoding device 100 may indicate method information for each submesh by indicating information for multiple submeshes adjacent to one submesh.
例えば、符号化装置100は、シンタックスにおけるサブメッシュ3のループにおいて、サブメッシュ1に対応するflag=ONかつmethod=addと示し、サブメッシュ2に対応するflag=ONかつmethod=removeと示してもよい。 For example, in the loop for submesh 3 in the syntax, the encoding device 100 may indicate that flag=ON and method=add correspond to submesh 1, and flag=ON and method=remove correspond to submesh 2.
上記のように、例えば、符号化装置100は、サブメッシュ1等の第1サブメッシュと、サブメッシュ2等の第2サブメッシュとが共有する辺である境界エッジにおける頂点が、第1サブメッシュが第1回数だけサブ分割されることで形成された第1メッシュと、第2サブメッシュが第2回数だけサブ分割されることで形成された第2メッシュとで同一であるか否かの判定を行う。ここで、例えば、符号化装置100は、第1回数と第2回数とが同一である場合、境界エッジにおける頂点が、第1メッシュと第2メッシュとで同一であると判定し、第1回数と第2回数とが同一ではない場合、境界エッジにおける頂点が、第1メッシュと第2メッシュとで同一ではないと判定する。また、例えば、符号化装置100は、境界エッジにおける頂点が、第1メッシュと第2メッシュとで同一ではないと判定した場合に、メソッド情報を含む結合情報をビットストリームに符号化する。なお、例えば、符号化装置100は、境界エッジにおける頂点が、第1メッシュと第2メッシュとで同一であると判定した場合に、メソッド情報を含まないビットストリームを生成してもよい。 As described above, for example, the encoding device 100 determines whether or not the vertices of a boundary edge, which is an edge shared by a first submesh such as submesh 1 and a second submesh such as submesh 2, are the same in a first mesh formed by subdividing the first submesh a first number of times and a second mesh formed by subdividing the second submesh a second number of times. Here, for example, if the first and second numbers are the same, the encoding device 100 determines that the vertices of the boundary edge are the same in the first mesh and the second mesh, and if the first and second numbers are not the same, the encoding device 100 determines that the vertices of the boundary edge are not the same in the first mesh and the second mesh. Also, for example, if the encoding device 100 determines that the vertices of the boundary edge are not the same in the first mesh and the second mesh, it encodes the connection information including the method information into a bit stream. For example, if the encoding device 100 determines that the vertices in the boundary edge are the same in the first mesh and the second mesh, it may generate a bitstream that does not include method information.
なお、符号化装置100は、サブメッシュ間の境界が重複するか否か、及び、サブメッシュ間の境界が重複する場合の重複の種類を示すフラグをビットストリーム(具体的には、ビットストリームに含まれるメタデータ)に示してもよい。 In addition, the encoding device 100 may indicate in the bitstream (specifically, in the metadata included in the bitstream) a flag indicating whether or not the boundaries between the submeshes overlap, and, if the boundaries between the submeshes overlap, the type of overlap.
図78は、実施の形態に係る複数のサブメッシュの重複の種類を示す情報がシグナリングされたシンタックスの一例を説明するための図である。 FIG. 78 is a diagram illustrating an example of a syntax in which information indicating the type of overlap between multiple submeshes in an embodiment is signaled.
submesh_duplicate_flagは、メッシュ(例えば、ベースメッシュ)を構成するサブメッシュが、他のサブメッシュと重複するか否かを示すフラグである。例えば、submesh_duplicate_flagは、submesh_duplicate_flag=1の場合、重複することを示す。一方、例えば、submesh_duplicate_flagは、submesh_duplicate_flag=0の場合、重複しないことを示す。 The submesh_duplicate_flag is a flag indicating whether or not a submesh constituting a mesh (e.g., a base mesh) overlaps with another submesh. For example, when submesh_duplicate_flag=1, it indicates that there is overlap. On the other hand, when submesh_duplicate_flag=0, it indicates that there is no overlap.
submesh_duplicate_typeは、サブメッシュの重複の種類(サブメッシュの重複の仕方)を示す情報である。例えば、submesh_duplicate_typeは、submesh_duplicate_type=0の場合、サブメッシュの外周の境界エッジ及びサブメッシュの外周の頂点が重複し、当該外周より内側に位置する辺、頂点及び面(face)が重複しないことを示す。一方、例えば、submesh_duplicate_typeは、submesh_duplicate_type=1の場合、サブメッシュの外周だけでなく、外周より内側に位置する辺、頂点、及び、面が重複することを示す。 submesh_duplicate_type is information indicating the type of duplication of submeshes (how submeshes are duplicated). For example, when submesh_duplicate_type=0, it indicates that the boundary edges of the outer periphery of the submesh and the vertices of the outer periphery of the submesh are duplicated, and the edges, vertices, and faces located inside the periphery are not duplicated. On the other hand, when submesh_duplicate_type=1, it indicates that not only the outer periphery of the submesh but also the edges, vertices, and faces located inside the periphery are duplicated.
なお、符号化装置100は、ビットストリーム(より具体的には、ビットストリームに含まれるメタデータ)に、サブメッシュが重複することを示すフラグの代わりに、サブメッシュが重複する可能性があることをフラグで示してもよい。 In addition, instead of a flag indicating that the submeshes overlap in the bitstream (more specifically, the metadata included in the bitstream), the encoding device 100 may indicate that the submeshes may overlap with a flag.
また、このようなフラグ(パラメータセット)は、シーケンスレベルのパラメータセットに格納されてもよいし、フレームレベルのパラメータセットに格納されてもよいし、両方のパラメータセットに格納されてもよい。両方のパラメータセットに格納される場合には、例えば、符号化装置100は、フレームレベルのパラメータセットを用いてシーケンスレベルのパラメータセットを上書きする。 Furthermore, such a flag (parameter set) may be stored in a sequence-level parameter set, a frame-level parameter set, or both. If stored in both parameter sets, for example, the encoding device 100 overwrites the sequence-level parameter set with the frame-level parameter set.
また、このようなパラメータセットは、SEIに示されてもよい。 Such parameter sets may also be indicated in the SEI.
また、サブメッシュ間の境界エッジにおいてサブ分割後の境界頂点が同一であるか否かを示すフラグ、又は、サブメッシュのサブ分割後の境界頂点を調整するか否かを示すフラグは、submesh_duplicate_flagがONの場合には符号化装置100がシグナリングし、OFFの場合には符号化装置100がシグナリングしないと定められてもよい。また、OFFの場合には符号化装置100がシグナリングしてはいけないと定められてもよい。このように定められている場合に、シグナリングされた場合には、シグナリングによって設定されたフラグが無効であると定められてもよい。 Furthermore, it may be determined that the encoding device 100 signals a flag indicating whether or not the boundary vertices after subdivision at the boundary edge between submeshes are identical or a flag indicating whether or not the boundary vertices after subdivision of the submeshes are adjusted when submesh_duplicate_flag is ON, and does not signal when it is OFF. It may also be determined that the encoding device 100 must not signal when it is OFF. When determined in this way, it may be determined that if signaled, the flag set by the signaling is invalid.
また、submesh_duplicate_flagがONの場合には、復号装置200は、サブ分割後の境界頂点の修正をするか否かの判定処理を実行し、OFFの場合には修正しないと判定してもよい。 In addition, if submesh_duplicate_flag is ON, the decoding device 200 may execute a process of determining whether or not to modify the boundary vertices after subdivision, and if it is OFF, may determine not to modify them.
これによれば、符号化装置100が上記のフラグを上位のメタデータに含めることにより、サブメッシュ間が他のサブメッシュと重複する可能性があるか否かを復号装置200が判定できる。そのため、復号装置200は、重複する境界エッジに対して所定の処理(修正処理)を実施する必要があるか否かを、フラグから判定できる。 By including the above flag in the higher-level metadata by the encoding device 100, the decoding device 200 can determine whether or not there is a possibility of overlap between submeshes with other submeshes. Therefore, the decoding device 200 can determine from the flag whether or not it is necessary to perform a predetermined process (correction process) on the overlapping boundary edge.
このような処理を復号装置200が実行する必要がない場合には、境界情報の検出、及び、境界のサブ分割後の境界頂点の調整の処理が不要となり、関連情報の受信、復号、及び、解析が不要となる。したがって、処理量が削減され得る。 If the decoding device 200 does not need to perform such processing, the processing of detecting boundary information and adjusting boundary vertices after subdivision of the boundary is not required, and the processing of receiving, decoding, and analyzing related information is not required. Therefore, the amount of processing can be reduced.
なお、符号化装置100が、上記のフラグのみを送信することで、復号装置200は、境界が重複する可能性があると判断し、さらにサブメッシュ毎のサブ分割回数を解析することで、サブ分割後の境界頂点が同一となるか否かを判定し、境界頂点の修正が必要であるか否かを判定してもよい。 Incidentally, when the encoding device 100 transmits only the above flag, the decoding device 200 may determine that there is a possibility of overlapping boundaries, and further analyze the number of subdivisions for each submesh to determine whether the boundary vertices after subdivision will be the same or not, and determine whether the boundary vertices need to be modified.
[第3態様の効果]
第3態様による構成により、フルメッシュの主観的品質は、サブ分割回数又はサブ分割方法(サブ分割スキーム)の異なる方法で符号化されたサブメッシュがマージされることにより改善される。
[Effects of the third aspect]
By means of the arrangement according to the third aspect, the subjective quality of a full mesh is improved by merging sub-meshes that have been coded using different subdivision numbers or subdivision schemes.
[他の態様との組み合わせ]
本態様に係る符号化装置100は、本開示における他の態様の少なくとも一部を組み合わせて実施することができる。さらに、本態様は、本態様に従ったフローチャートのいずれかに示される処理の一部、いずれかの装置の構成の一部、及び/又は、シンタックスの一部等を他の態様と組み合わせることによって実行されてもよい。
[Combination with other aspects]
The encoding device 100 according to this aspect can be implemented by combining at least a part of other aspects of the present disclosure. Furthermore, this aspect may be implemented by combining a part of the process shown in any of the flowcharts according to this aspect, a part of the configuration of any of the devices, and/or a part of the syntax, etc., with other aspects.
また、符号化装置100の上記処理は、復号装置200においても同様に実行されてもよい。 The above processing of the encoding device 100 may also be similarly performed in the decoding device 200.
また、本態様に記載された全ての構成要素が常に必要であるわけではなく、第3態様の構成要素の一部のみが含まれていてもよい。 Furthermore, not all of the components described in this embodiment are always necessary, and only some of the components of the third embodiment may be included.
<サブ分割による階層構造>
続いて、サブ分割(Subdivision)におけるLoD(Level of Detail)階層について説明する。
<Hierarchical structure based on subdivision>
Next, the Level of Detail (LoD) hierarchy in subdivision will be described.
図79は、実施の形態に係るLoDを説明するための図である。 FIG. 79 is a diagram for explaining LoD according to an embodiment.
図79に示す三角形ABCは、サブ分割前のメッシュである。具体的には、三角形ABCは、ベースメッシュである。三角形ABC(つまり、ベースメッシュ)を、LoDの階層が0であると定義する。言い換えると、三角形ABCの各頂点をLoD0に属する頂点であると定義する。 Triangle ABC shown in Figure 79 is a mesh before subdivision. Specifically, triangle ABC is a base mesh. Triangle ABC (i.e., the base mesh) is defined as having an LoD hierarchy of 0. In other words, each vertex of triangle ABC is defined as a vertex belonging to LoD0.
次に、ベースメッシュが1回サブ分割された後に生成される各頂点をLoD1とする。図79に示す例では、四角形で示す頂点(頂点D、E、F)がLoD1に属する頂点である。 Next, each vertex generated after the base mesh is subdivided once is called LoD1. In the example shown in Figure 79, the vertices shown in the squares (vertices D, E, and F) belong to LoD1.
さらに、2回目のサブ分割が行われた後に生成された頂点をLoD2とする。図79に示す例では、三角形で示す頂点(頂点G等)である。 Furthermore, the vertex generated after the second subdivision is designated as LoD2. In the example shown in FIG. 79, this is the vertex indicated by a triangle (such as vertex G).
例えば、LoD1の頂点Fは、LoD0の頂点A及びCを用いて生成される。ここで、頂点A、Cは、頂点Fの親頂点と呼ぶこともある。親頂点は、LoD階層が1つ上の階層に属する頂点である。つまり、例えば、LoD0に属する頂点A、Cは、LoD1に属する頂点Fの親頂点である。 For example, vertex F of LoD1 is generated using vertices A and C of LoD0. Here, vertices A and C are sometimes called the parent vertices of vertex F. A parent vertex is a vertex that belongs to the next higher LoD hierarchy. In other words, for example, vertices A and C that belong to LoD0 are parent vertices of vertex F that belongs to LoD1.
また、例えば、LoD0に属する頂点Aと、LoD1に属する頂点Fとは、頂点Gの親頂点である。言い換えると、頂点Gは、LoD0に属する頂点Aと、LoD1に属する頂点Fの子頂点である。このように、親頂点のうちの少なくとも1つが、子頂点よりもLoD階層が1つ上であればよい。 For example, vertex A belonging to LoD0 and vertex F belonging to LoD1 are parent vertices of vertex G. In other words, vertex G is a child vertex of vertex A belonging to LoD0 and vertex F belonging to LoD1. In this way, it is sufficient that at least one of the parent vertices is one level higher in the LoD hierarchy than the child vertex.
ここで、LoD階層をLoDインデックス(LoD Index)とも呼ぶこともある。例えば、LoD0のLoDインデックスは、0である。 Here, the LoD hierarchy is sometimes called the LoD index. For example, the LoD index of LoD0 is 0.
サブメッシュ間のサブ分割回数が異なる場合、つまり、サブメッシュ間でLoD階層の数が異なる場合、上記の方法では、複数のサブメッシュの重複境界において頂点を結合(マージ)する際、頂点を追加するか、除去(削除)するかの情報に基づき、頂点を追加及び/又は除去することで頂点を生成し、結合する例を示した。 When the number of subdivisions between submeshes is different, i.e., when the number of LoD hierarchies is different between submeshes, the above method shows an example in which, when merging vertices at the overlapping boundary of multiple submeshes, vertices are generated and merged by adding and/or removing vertices based on information on whether to add or remove vertices.
別の方法として、複数のサブメッシュの重複境界において頂点を結合する際、隣接する頂点(隣接点)との距離を算出し、算出された距離が所定の閾値以内の頂点同士を結合する方法が考えられる。 Another method is to calculate the distance between adjacent vertices (adjacent points) when joining vertices at the overlapping boundaries of multiple submeshes, and join vertices whose calculated distance is within a given threshold.
なお、ここでは、隣接点との距離が所定の閾値以内の点を結合すると説明したが、重複境界にある一方のサブメッシュの頂点を、他方のサブメッシュの頂点のうち距離が一番近い頂点と対応付け、対応付けられた2つの頂点を結合してもよい。所定の閾値は任意に定められてよく、特に限定されない。 Note that, although it has been described here that points whose distance to adjacent points is within a predetermined threshold are joined, it is also possible to associate a vertex of one submesh on the overlapping boundary with the vertex of the other submesh that is closest in distance, and join the two associated vertices. The predetermined threshold may be set arbitrarily, and is not particularly limited.
しかし、これらの方法では、頂点が誤って生成される場合があり、誤った頂点が結合されることで、密度の高い点が生成されたり、メッシュに穴があいたり等、適切な形状のメッシュが生成されない可能性がある。 However, these methods can sometimes generate incorrect vertices, and by combining the incorrect vertices, they can generate dense points or create holes in the mesh, resulting in an improperly shaped mesh.
そこで、上記課題を解決するために、以下では、符号化装置100及び復号装置200は、複数のサブメッシュ間の境界における頂点(境界頂点ともいう)の結合において、頂点のLoD階層を考慮した処理を行う。 To solve the above problem, the encoding device 100 and the decoding device 200 below perform processing that takes into account the LoD hierarchy of the vertices when connecting vertices (also called boundary vertices) at the boundaries between multiple submeshes.
以下、本実施の形態において、復号装置が備えるサブメッシュ結合部において復号された複数の分割されたサブメッシュを結合する方法の一例を示す。 Below is an example of a method for combining multiple divided submeshes decoded in a submesh combining unit provided in a decoding device in this embodiment.
例えば、サブ分割された境界頂点は、その「親頂点」が既に結合されている場合にのみ結合される。 For example, a subdivided boundary vertex is only joined if its "parent vertex" is already joined.
また、例えば、符号化装置100は、隣接するサブメッシュに、対応するLoDを持たないLoDの境界頂点を除去することを示すフラグ、又は、隣接するサブメッシュに、対応する新しい境界頂点を人工的に生成することを示すフラグをビットストリームにシグナリングする。 Also, for example, the encoding device 100 signals a flag in the bitstream indicating that LoD boundary vertices that do not have a corresponding LoD in adjacent submeshes are to be removed, or a flag indicating that a new corresponding boundary vertex is to be artificially generated in adjacent submeshes.
また、例えば、符号化装置100及び/又は復号装置200は、隣接するサブメッシュの三次元ジオメトリとUVマップとに新しい三角形を作成する。 Also, for example, the encoding device 100 and/or the decoding device 200 create new triangles in the 3D geometry and UV map of the adjacent sub-meshes.
また、例えば、復号装置200は、結合対象(つまり、ある頂点と結合される頂点)の隣接するサブメッシュ間で、重複する辺(エッジ)において、LoD階層が同一の頂点を結合し、LoD階層が同一でない点は結合しない。 Furthermore, for example, the decoding device 200 combines vertices with the same LoD hierarchy on overlapping edges between adjacent submeshes that are targets of combination (i.e., vertices that are combined with a certain vertex), and does not combine points with different LoD hierarchies.
また、例えば、結合される2つの頂点が同一のLoD階層であり、頂点間の距離が所定の閾値以内である場合に、当該2つの頂点が結合されてもよい。 Furthermore, for example, two vertices to be combined may be combined if they are in the same LoD hierarchy and the distance between the vertices is within a predetermined threshold.
また、例えば、符号化装置100及び復号装置200は、距離の離れた2つの頂点を結合する際、所定の方法で結合点(2つの頂点が結合されることで生成された頂点)の位置座標を算出する。 Also, for example, when joining two vertices that are far apart, the encoding device 100 and the decoding device 200 calculate the position coordinates of the joining point (the vertex generated by joining the two vertices) using a specified method.
また、例えば、算出される位置座標(結合点の位置座標)は、例えば、2点の中点又は重心でもよいし、重み係数により一方の頂点に位置座標が近づけられてもよい。 Furthermore, for example, the calculated position coordinates (position coordinates of the connection point) may be, for example, the midpoint or center of gravity of the two points, or the position coordinates may be brought closer to one of the vertices by a weighting coefficient.
また、例えば、符号化装置100及び復号装置200は、上位の階層(つまり、ある頂点よりもLoDインデックスが小さい階層)の頂点が結合されている場合、当該上位の階層よりも下位の階層(つまり、LoDインデックスが大きい階層)の頂点を結合するか否かを判定する。 Also, for example, when a vertex in a higher hierarchical layer (i.e., a layer with a smaller LoD index than a certain vertex) is combined, the encoding device 100 and the decoding device 200 determine whether or not to combine a vertex in a lower hierarchical layer (i.e., a layer with a larger LoD index) than the higher hierarchical layer.
また、例えば、復号装置200は、サブメッシュ間でLoD階層数が異なる場合には、一方のサブメッシュ境界(サブメッシュの境界エッジ)に頂点を生成(例えば、さらにサブ分割を実施)することで、頂点の数(LoD階層数)をサブメッシュ間で合わせてから、頂点を結合する。 Furthermore, for example, when the number of LoD hierarchical layers differs between submeshes, the decoding device 200 generates vertices (e.g., performs further subdivision) at the boundary of one of the submeshes (the boundary edge of the submesh) to match the number of vertices (the number of LoD hierarchical layers) between the submeshes, and then combines the vertices.
また、例えば、復号装置200は、一方のサブメッシュ境界の頂点を除去することで、サブメッシュ間の頂点の階層の数及び頂点の数を合わせてから頂点を結合する。 Also, for example, the decoding device 200 removes a vertex on one of the submesh boundaries to match the number of vertices and the number of hierarchical levels between the submeshes, and then combines the vertices.
なお、頂点を追加するか除去するかは、ビットストリームにシグナリングされた情報に基づき決定されてもよいし、復号装置200が所定の方法で決定してもよい。 The decision as to whether to add or remove a vertex may be based on information signaled in the bitstream, or may be made by the decoding device 200 in a predetermined manner.
以上のような条件によれば、密度の高い頂点が生成されたり、メッシュに穴があいたり等、適切な形状のメッシュが生成されない課題を解決できる可能性がある。 The above conditions may solve the problem of meshes not being generated with the appropriate shape, such as high density vertices or holes in the mesh.
図80は、実施の形態に係る復号装置200における頂点の結合処理を説明するためのフロー図である。なお、結合処理は、マージ又はzippingと呼称することもある。図80に示すフローチャートは、例えば、復号装置200が、ビットストリームから境界頂点(具体的には、位置情報等の境界頂点に関する符号化された情報)をビットストリームから取得してサブメッシュの境界頂点(具体的には、境界頂点に関する符号化された当該情報)を復号し、さらに、2つのサブメッシュをサブ分割してこれからサブ分割された当該2つのサブメッシュを結合する際の処理の具体例を示す。 FIG. 80 is a flow diagram for explaining the vertex merging process in the decoding device 200 according to the embodiment. The merging process is also called merging or zipping. The flowchart in FIG. 80 shows a specific example of the process in which the decoding device 200 acquires boundary vertices (specifically, encoded information related to the boundary vertices, such as position information) from the bit stream, decodes the boundary vertices of sub-meshes (specifically, the encoded information related to the boundary vertices), and further sub-divides two sub-meshes and merges the two sub-divided sub-meshes.
まず、復号装置200は、ビットストリームから隣接するサブメッシュに対応しないLoDの頂点を追加又は除去することを示すフラグ(フラグ情報)を取得する(S601)。具体的には、復号装置200は、ビットストリームから符号化されたフラグ情報を取得して復号する。 First, the decoding device 200 obtains a flag (flag information) indicating the addition or removal of a LoD vertex that does not correspond to an adjacent submesh from the bitstream (S601). Specifically, the decoding device 200 obtains the coded flag information from the bitstream and decodes it.
次に、復号装置200は、一方のサブメッシュの各境界頂点について、隣接するサブメッシュ(他方のサブメッシュ)に対応するLoDインデックスがあるか否かを判定する(S602)。つまり、復号装置200は、2つのサブメッシュのLoD階層数が同じであるか否かを判定する。 Next, the decoding device 200 determines whether or not there is a LoD index corresponding to each boundary vertex of one submesh in an adjacent submesh (the other submesh) (S602). In other words, the decoding device 200 determines whether or not the number of LoD layers of the two submeshes is the same.
復号装置200は、対応するLoDインデックスがあると判定した場合(S602でYes)、一方のサブメッシュと隣接する他方のサブメッシュの境界頂点(より具体的には、同じLoDの境界頂点)を結合する(S603)。つまり、復号装置200は、LoD階層数(より具体的には、サブ分割回数)が同一であるため、頂点の追加及び除去をせずに頂点を結合する。 If the decoding device 200 determines that there is a corresponding LoD index (Yes in S602), it combines the boundary vertices (more specifically, boundary vertices with the same LoD) of one submesh and the other adjacent submesh (S603). In other words, since the number of LoD layers (more specifically, the number of subdivisions) is the same, the decoding device 200 combines the vertices without adding or removing vertices.
一方、復号装置200は、対応するLoDインデックスがないと判定した場合(S602でNo)、復号されたフラグが新しい頂点を追加することを示すか否かを判定する(S604)。 On the other hand, if the decoding device 200 determines that there is no corresponding LoD index (No in S602), it determines whether the decoded flag indicates that a new vertex is to be added (S604).
復号装置200は、復号されたフラグが新しい頂点を追加することを示すと判定した場合(S604でYes)、各境界頂点について、当該境界頂点の親頂点が、隣接するサブメッシュの1つ以上の頂点と結合されている場合には、隣接するサブメッシュに新しい境界頂点を生成する(S605)。なお、復号装置200は、当該境界頂点の親頂点が、隣接するサブメッシュの1つ以上の頂点と結合されていない場合には、隣接するサブメッシュに新しい境界頂点を生成しなくてもよい。 When the decoding device 200 determines that the decoded flag indicates that a new vertex is to be added (Yes in S604), it generates a new boundary vertex in the adjacent submesh for each boundary vertex if the parent vertex of the boundary vertex is connected to one or more vertices of the adjacent submesh (S605). Note that the decoding device 200 does not need to generate a new boundary vertex in the adjacent submesh if the parent vertex of the boundary vertex is not connected to one or more vertices of the adjacent submesh.
次に、復号装置200は、一方のサブメッシュの、フラグに基づいて生成された境界頂点と、他方のサブメッシュのサブ分割によって生成された頂点とを結合する(S606)。 Next, the decoding device 200 combines the boundary vertices of one submesh generated based on the flag with the vertices generated by subdivision of the other submesh (S606).
一方、復号装置200は、復号されたフラグが新しい頂点を追加することを示さないと判定した場合(S604でNo)、頂点を除去することを示すとみなし、現在のサブメッシュの複数の境界頂点の一部の頂点を所定の方法を用いて除去する(S607)。なお、当該所定の方法は、任意に定められてよく、特に限定されない。 On the other hand, if the decoding device 200 determines that the decoded flag does not indicate the addition of a new vertex (No in S604), it regards it as indicating the removal of a vertex, and removes some of the boundary vertices of the current submesh using a predetermined method (S607). Note that the predetermined method may be determined arbitrarily and is not particularly limited.
次に、復号装置200は、除去された頂点を使用せずに境界頂点を結合する(S608)。 Next, the decoding device 200 combines the boundary vertices without using the removed vertices (S608).
なお、復号装置200は、処理の初めに、サブメッシュ間のLoD階層数が一致するか否かを判定し、一致する場合には、フラグの復号及び解析をせずに、頂点を結合してもよい。 In addition, at the beginning of the process, the decoding device 200 determines whether the LoD hierarchy numbers between the submeshes match, and if they match, the vertices may be joined without decoding and analyzing the flags.
また、復号装置200は、初めにLoD階層数が0(ベースメッシュ)であるか否かを判定し、ベースメッシュの場合には本処理をスキップし、LoD階層数が1以上である場合に、本処理を実施してもよい。 The decoding device 200 may also first determine whether the LoD layer count is 0 (base mesh), skip this process if it is the base mesh, and perform this process if the LoD layer count is 1 or more.
また、例えば、復号装置200は、階層数が一致する場合には、対応する階層が存在する場合であるため、頂点の追加又は除去を用いずに頂点を結合する。一方、例えば、復号装置200は、階層数が一致しない場合には、結合する2つのサブメッシュのうちのいずれか一方のサブメッシュの頂点を追加又は除去し、境界エッジの頂点数を合わせた後で、頂点を結合する。 Furthermore, for example, when the number of layers matches, the decoding device 200 combines the vertices without adding or removing vertices, since this means that a corresponding layer exists. On the other hand, for example, when the number of layers does not match, the decoding device 200 adds or removes a vertex from one of the two submeshes to be combined, matches the number of vertices of the boundary edges, and then combines the vertices.
続いて、LoDに関する制約が設けられたサブメッシュ間の頂点の結合方法について説明する。 Next, we will explain how to connect vertices between submeshes that have LoD constraints.
図81は、実施の形態に係る頂点の結合処理の一例を示す説明図である。具体的には、図81は、異なる2つのサブメッシュにおける同じLoDの頂点同士を結合(マージ)することにより、2つのサブメッシュの境界を結合(ジッピング)する例を示す。なお、図81に示すサブメッシュ1とサブメッシュ2とのそれぞれの各線分の両端には頂点が位置している。実線で示す線分の両端にはLoD0に属する頂点が位置し、破線で示す線分の両端にはLoD1に属する頂点が位置し、点線で示す線分の両端にはLoD2に属する頂点が位置している。以下の図82~図84においても同様である。 FIG. 81 is an explanatory diagram showing an example of vertex merging processing according to an embodiment. Specifically, FIG. 81 shows an example of merging (merging) vertices of the same LoD in two different submeshes to merge the boundaries of two submeshes. Note that vertices are located at both ends of each line segment between submesh 1 and submesh 2 shown in FIG. 81. Vertices belonging to LoD0 are located at both ends of the line segment shown by solid lines, vertices belonging to LoD1 are located at both ends of the line segment shown by dashed lines, and vertices belonging to LoD2 are located at both ends of the line segment shown by dotted lines. The same applies to the following FIG. 82 to FIG. 84.
図81は、サブ分割回数の異なる2つのサブメッシュ(具体的には、2回サブ分割されたサブメッシュ1、及び、1回サブ分割されたサブメッシュ2)を結合する例である。また、図81で説明する例では、同一のLoDの頂点が存在する場合には頂点が結合され、同一のLoDの頂点が存在しない場合には頂点が結合されない。 FIG. 81 shows an example of combining two submeshes with different numbers of subdivisions (specifically, submesh 1 that has been subdivision twice, and submesh 2 that has been subdivision once). In the example shown in FIG. 81, if there are vertices with the same LoD, the vertices are combined, and if there are no vertices with the same LoD, the vertices are not combined.
頂点A、B、C、D、E、Fは、LoD0のベースメッシュの頂点であり、頂点X、Y、Z、L、M、Nは、LoD1の頂点であり、残りの頂点は、LoD2の頂点である。 Vertices A, B, C, D, E, and F are vertices of the base mesh in LoD0, vertices X, Y, Z, L, M, and N are vertices of LoD1, and the remaining vertices are vertices of LoD2.
また、それぞれの頂点は、サブ分割後に変位ベクトルにより補正された後の頂点である。 Also, each vertex is the vertex after being corrected by the displacement vector after subdivision.
2つのサブメッシュの境界が結合される場合、異なるサブメッシュにおける同じLoDの頂点同士が結合される。 When the boundaries of two submeshes are joined, vertices with the same LoD in different submeshes are joined.
本例では、サブメッシュ1のLoD0及びLoD1の頂点は、それぞれサブメッシュ2のLoD0及びLoD1の頂点と結合される。2つの頂点間の結合された頂点(結合点)の座標は、例えば、それらの平均等の加重和として算出される。例えば、結合点の座標は、M(A、D)=w1×A+w2×Dで算出される。 In this example, the vertices of LoD0 and LoD1 of submesh 1 are connected to the vertices of LoD0 and LoD1 of submesh 2, respectively. The coordinates of the connected vertex (connection point) between the two vertices are calculated as a weighted sum, for example, their average. For example, the coordinates of the connection point are calculated as M(A,D) = w1 x A + w2 x D.
なお、M(A、D)は、頂点Aと頂点Dとの間に生成される、頂点Aと頂点Bとの結合点の座標である。Aは、頂点Aの座標である。Dは、頂点Dの座標である。w1は、頂点Aの座標に乗じる重み係数である。w2は、頂点Dの座標に乗じる重み係数である。 Note that M(A,D) is the coordinate of the connection point between vertex A and vertex B, which is generated between vertex A and vertex D. A is the coordinate of vertex A. D is the coordinate of vertex D. w1 is a weighting coefficient by which the coordinate of vertex A is multiplied. w2 is a weighting coefficient by which the coordinate of vertex D is multiplied.
例えば、サブメッシュ1のLoD2の頂点は、サブメッシュ2の頂点とは結合されない。結合点の位置座標は、結合前の2つの頂点の位置座標に基づき決定されてもよい。例えば、2つの頂点の座標の中点でもよいし、2つの頂点のうちのいずれかの頂点の座標に重みがかけられてもよい。 For example, a vertex of LoD2 of submesh 1 is not connected to a vertex of submesh 2. The position coordinates of the connection point may be determined based on the position coordinates of the two vertices before the connection. For example, it may be the midpoint of the coordinates of the two vertices, or the coordinates of one of the two vertices may be weighted.
また、結合点の座標は、結合前の2つの頂点でなく、上位階層の頂点の位置情報に基づき決定されてもよいし、結合前の2つの頂点とその2つの頂点の上位の階層の頂点の座標に基づき決定されてもよい。結合点の位置(三次元位置)の座標(三次元座標)についても結合点の属性マップ(UVマップ)の座標(二次元座標)についても同様である。例えば、結合点の位置座標は、結合前の2つの頂点でなく、結合前の2つの頂点とその2つの頂点の上位の階層の頂点の位置情報に基づき決定されてもよい。結合点の属性マップの座標(例えば、属性情報)は、結合前の2つの頂点でなく、結合前の2つの頂点とその2つの頂点の上位の階層の頂点の属性マップの座標(例えば、属性情報)に基づき決定されてもよい。 In addition, the coordinates of the connection point may be determined based on the position information of a vertex in a higher hierarchy, rather than the two vertices before the connection, or based on the coordinates of the two vertices before the connection and a vertex in a higher hierarchy than the two vertices. The same applies to the coordinates (three-dimensional coordinates) of the position (three-dimensional position) of the connection point and the coordinates (two-dimensional coordinates) of the attribute map (UV map) of the connection point. For example, the position coordinates of the connection point may be determined based on the position information of the two vertices before the connection and a vertex in a higher hierarchy than the two vertices, rather than the two vertices before the connection. The coordinates of the attribute map of the connection point (e.g., attribute information) may be determined based on the coordinates (e.g., attribute information) of the attribute map of the connection point, rather than the two vertices before the connection and a vertex in a higher hierarchy than the two vertices.
なお、本方式は、2つのサブメッシュのサブ分割回数が0以上であれば、サブ分割回数の組み合わせであっても適用可能である。例えば、2つのサブメッシュのサブ分割回数の差が2以上であってもよいし、当該差が同一であるサブメッシュの結合にも適用可能である。 This method can also be applied to combinations of the number of subdivisions of two submeshes, as long as the number of subdivisions of the two submeshes is 0 or more. For example, the difference in the number of subdivisions of two submeshes may be 2 or more, and it can also be applied to the combination of submeshes with the same difference.
図82は、実施の形態に係る頂点の結合処理の別の一例を示す説明図である。具体的には、図82は、2つのサブメッシュのうち、サブ分割回数が多い一方のサブメッシュにおける、他方のサブメッシュに存在しないLoD(非マッチLoD)の頂点を除去することで、境界エッジにおける2つのサブメッシュの頂点の数を均等化する例を示す。つまり、本例では、復号装置200は、2つのサブメッシュにおける一致しないLoDの頂点を取り除く。 FIG. 82 is an explanatory diagram showing another example of vertex merging processing according to an embodiment. Specifically, FIG. 82 shows an example of equalizing the number of vertices of two submeshes at a boundary edge by removing vertices with LoD (non-matching LoD) from one submesh with a greater number of subdivisions that do not exist in the other submesh. That is, in this example, the decoding device 200 removes vertices with non-matching LoD from the two submeshes.
復号装置200は、サブ分割回数の異なる2つのサブメッシュ(具体的には、2回サブ分割されたサブメッシュ1、及び、1回サブ分割されたサブメッシュ2)を結合する際に、例えば、同一のLoDの頂点が存在する場合には頂点を結合し、同一のLoDの頂点が存在しない場合には頂点を結合しない。 When the decoding device 200 combines two submeshes with different numbers of subdivisions (specifically, submesh 1 that has been subdivision twice and submesh 2 that has been subdivision once), for example, if there are vertices with the same LoD, the decoding device 200 combines the vertices, and if there are no vertices with the same LoD, the decoding device 200 does not combine the vertices.
また、復号装置200は、同一のLoDの頂点が存在しない場合には、例えば、2つのサブメッシュのうちのサブ分割回数の多いサブメッシュにおいて当該LoDの頂点を除去し、2つのサブメッシュを結合することでメッシュを再構成する。 In addition, if there are no vertices with the same LoD, the decoding device 200 will, for example, remove the vertex with that LoD from the submesh with the greatest number of subdivisions out of the two submeshes, and reconstruct the mesh by combining the two submeshes.
異なる2つのサブメッシュにおける同じLoDの頂点が結合された後、本方法では、サブメッシュから一致しないLoDの頂点を除去する。本例では、サブメッシュ1における一致しないLoDの境界エッジ上の頂点R、Qが除去される。その後、除去された頂点の近傍がリメッシュされる。例えば、頂点Rが除去された後、三角形PAR、PRS、SRXは、三角形PAS、SAXに置き換えられる。同様に、頂点Qが除去された後、三角形TXQ、TQK、KQBは、三角形TXK、KXBに置き換えられる。 After vertices with the same LoD in two different submeshes are merged, the method removes the vertices with non-matching LoD from the submeshes. In this example, vertices R and Q on the boundary edge of the non-matching LoD in submesh 1 are removed. The neighborhood of the removed vertices is then remeshed. For example, after vertex R is removed, triangles PAR, PRS, SRX are replaced with triangles PAS, SAX. Similarly, after vertex Q is removed, triangles TXQ, TQK, KQB are replaced with triangles TXK, KXB.
属性マップが存在する場合には、復号装置200は、同様のリメッシングを属性マップの三角形に対しても行う。属性マップは、例えば、UVマップである。したがって、境界エッジにおける頂点の数が均等化され、結合後にアーティファクトが除去される。UV座標(二次元UV座標)は、メッシュに対応するテクスチャがUVマップ(二次元マップ)におけるどこの位置であるかを示す座標である。1つの点に対して、1つのUV座標が存在する。頂点が除去される場合には、頂点の除去と同時にUV座標(UV座標を示す情報)も除去される。また、頂点の除去により新たに生成されたメッシュを示す情報には、3つの三次元点の組と接続関係とを示す情報を含み、3つの三次元点に対する3つのUV座標に位置するテクスチャを示す情報が、新たなテクスチャを示す情報となる。 If an attribute map exists, the decoding device 200 also performs similar remeshing on the triangles of the attribute map. The attribute map is, for example, a UV map. Thus, the number of vertices on the boundary edges is equalized, and artifacts are removed after merging. UV coordinates (two-dimensional UV coordinates) are coordinates that indicate where the texture corresponding to the mesh is located in the UV map (two-dimensional map). One UV coordinate exists for one point. When a vertex is removed, the UV coordinate (information indicating the UV coordinate) is also removed at the same time as the vertex is removed. In addition, the information indicating the new mesh generated by removing the vertex includes information indicating a set of three three-dimensional points and a connection relationship, and the information indicating the texture located at the three UV coordinates for the three three-dimensional points becomes the information indicating the new texture.
なお、頂点が結合される際に頂点が除去されない場合には、UV座標は、それぞれ元のUV座標がそのまま用いられてもよい。例えば、頂点Aと頂点Dとが結合される際、頂点Aと頂点Dとの位置座標がシフトされる場合であっても、頂点Aと頂点DとのUV座標は、そのまま用いられてもよい。また、所定の方法で、UV座標が補正されてもよい。 Note that if no vertices are removed when the vertices are combined, the original UV coordinates of each vertex may be used as is. For example, when vertices A and D are combined, even if the position coordinates of vertices A and D are shifted, the UV coordinates of vertices A and D may be used as is. The UV coordinates may also be corrected using a specified method.
また、復号装置200は、2つの頂点を結合した場合であっても、当該2つの頂点の情報を結合せず、それぞれの位置情報及びUV座標情報を有してもよい。つまり、復号装置200は、結合点を、位置情報が同じであり、且つ、UV座標情報が異なる頂点A及び頂点Dとしてもよい。 Furthermore, even when two vertices are combined, the decoding device 200 may not combine the information of the two vertices, but may retain the position information and UV coordinate information of each vertex. In other words, the decoding device 200 may set the combining point to vertices A and D, which have the same position information but different UV coordinate information.
図83は、実施の形態に係る頂点の結合処理の別の一例を示す説明図である。具体的には、図83は、2つのサブメッシュのうち、サブ分割回数が少ない一方のサブメッシュに頂点を生成することにより、境界エッジにおける頂点の数を均等化する例を示す。つまり、図83では、非マッチLoDのために頂点が生成される。 FIG. 83 is an explanatory diagram showing another example of vertex merging processing according to an embodiment. Specifically, FIG. 83 shows an example in which the number of vertices on boundary edges is equalized by generating a vertex in one of two submeshes that has been divided into submeshes less times. In other words, in FIG. 83, a vertex is generated due to a non-match LoD.
復号装置200は、サブ分割回数の異なる2つのサブメッシュ(具体的には、2回サブ分割されたサブメッシュ1、及び、1回サブ分割されたサブメッシュ2)を結合する際に、例えば、同一のLoDの頂点が存在する場合には頂点を結合し、同一のLoDの頂点が存在しない場合には頂点を結合しない。 When the decoding device 200 combines two submeshes with different numbers of subdivisions (specifically, submesh 1 that has been subdivision twice and submesh 2 that has been subdivision once), for example, if there are vertices with the same LoD, the decoding device 200 combines the vertices, and if there are no vertices with the same LoD, the decoding device 200 does not combine the vertices.
また、復号装置200は、同一のLoDの頂点が存在しない場合には、例えば、サブ分割回数の少ないサブメッシュにおいて当該LoDの頂点を追加し、2つのサブメッシュを結合することでメッシュを再構成する。 In addition, if there are no vertices with the same LoD, the decoding device 200 reconstructs the mesh by, for example, adding the vertex with the LoD to a submesh with a smaller number of subdivisions and combining the two submeshes.
異なるサブメッシュから同じLoDの頂点が結合された後、本方法では、より少ないサブ分割回数で、サブメッシュにおける一致しないLoDに対して新しい頂点を生成する。例えば、新しい頂点G、Hは、サブメッシュ1の頂点R、Qに対応するように、サブメッシュ2の境界エッジ上に生成される。 After vertices with the same LoD from different submeshes are merged, the method generates new vertices for the non-matching LoD in the submeshes with fewer subdivisions. For example, new vertices G, H are generated on the boundary edges of submesh 2 to correspond to vertices R, Q of submesh 1.
一例として、この方法では、まず、頂点Rの親頂点を見つける。本例では、頂点Rの親頂点は、頂点A及び頂点Xである。また、頂点A及び頂点Xと結合されるサブメッシュ2の頂点は、それぞれ頂点D及び頂点Lである。 As an example, in this method, first, the parent vertex of vertex R is found. In this example, the parent vertices of vertex R are vertex A and vertex X. Furthermore, the vertices of submesh 2 that are connected to vertex A and vertex X are vertex D and vertex L, respectively.
次に、本方法では、サブメッシュ2の頂点Dと頂点Lとの間に頂点Gが生成される。頂点Rと頂点Gとの間に位置する、頂点Rと頂点Gと結合されることで生成される頂点の座標は、例えば、頂点Rの座標と頂点Gの座標との平均等の加重和として算出される。 Next, in this method, vertex G is generated between vertex D and vertex L of submesh 2. The coordinates of the vertex located between vertex R and vertex G and generated by combining vertex R and vertex G are calculated as a weighted sum, such as the average, of the coordinates of vertex R and vertex G.
その後、生成された頂点の近傍がリメッシュされる。例えば、頂点Gが生成された後、三角形DMLは、三角形DMG、GMLに置き換えられる。同様に、頂点Hが生成された後、三角形LNFは、三角形LNH、HNFに置き換えられる。同様のリメッシングは、属性マップが存在する場合には、属性マップの三角形に対しても行われる。属性マップは、例えば、UVマップである。したがって、境界エッジにおける頂点の数が均等化され、結合後にアーティファクトが除去される。 Then, the neighborhood of the generated vertices is remeshed. For example, after vertex G is generated, triangle DML is replaced by triangle DMG, GML. Similarly, after vertex H is generated, triangle LNF is replaced by triangle LNH, HNF. Similar remeshing is also performed on the triangles of the attribute map, if one exists. The attribute map is, for example, a UV map. Thus, the number of vertices at the boundary edges is equalized and artifacts are removed after merging.
また、例えば、復号装置200は、頂点を生成する場合、頂点の位置座標を生成すると同時に、頂点に対するテクスチャのUV座標(UV座標情報)を生成する。復号装置200は、例えば、頂点Dと頂点Lとの中点に頂点Gを生成する場合には、頂点DのUV座標と頂点LのUV座標との中点を新たな頂点GのUV座標とする。このUV座標の算出には、中点以外が用いられてもよい。頂点D及び頂点Lの位置座標の生成方法と同様の式でUV座標が算出されることによって品質が向上される可能性がある。また、頂点Gと頂点Rとの結合の際に、頂点Gの位置が補正される場合であっても、先に算出されたUV座標は、補正されずにそのまま用いられてもよい。つまり、復号装置200は、例えば、同一のサブメッシュ内で頂点を生成する際には、UV座標を生成し、異なるサブメッシュ間で結合する際には、UV座標を補正しなくてもよい。 Furthermore, for example, when generating a vertex, the decoding device 200 generates the position coordinates of the vertex and at the same time generates the UV coordinates (UV coordinate information) of the texture for the vertex. For example, when generating a vertex G at the midpoint between vertices D and L, the decoding device 200 sets the midpoint between the UV coordinates of vertex D and the UV coordinates of vertex L as the UV coordinates of the new vertex G. A point other than the midpoint may be used to calculate this UV coordinate. There is a possibility that the quality will be improved by calculating the UV coordinates using a formula similar to the method for generating the position coordinates of vertices D and L. Furthermore, even if the position of vertex G is corrected when combining vertex G with vertex R, the UV coordinates calculated previously may be used as is without correction. In other words, for example, when generating a vertex within the same submesh, the decoding device 200 may generate UV coordinates, but when combining between different submeshes, the UV coordinates may not need to be corrected.
図84は、実施の形態に係る頂点の結合処理の別の一例を示す説明図である。具体的には、図84は、親頂点の関係に基づいて頂点を結合することにより、2つの部分メッシュの境界をジッピングする例を示す。つまり、図84は、頂点の親子関係が用いられた頂点の結合の例を示す。 FIG. 84 is an explanatory diagram showing another example of vertex merging processing according to an embodiment. Specifically, FIG. 84 shows an example of zipping the boundary between two partial meshes by merging vertices based on the parent-child relationship of the vertices. In other words, FIG. 84 shows an example of vertex merging in which the parent-child relationship of the vertices is used.
本例では、ボーダ・ジッパー法が用いられる。ボーダ・ジッパー法では、まず、異なるサブメッシュのLoD0の頂点が結合される。一例として、復号装置200は、最近傍原理を用いて結合する頂点を見つける。次に、より高いLoDインデックスの頂点は、その頂点の親頂点が互いに結合されている場合にのみ結合される。例えば、頂点Lは、頂点Lの親である頂点D及び頂点Fが、頂点Xの親である頂点A及び頂点Bと結合されているため、頂点Xと結合される。例えば、頂点Wは、サブメッシュ1のLoD1の頂点の中で頂点Lに最も近い頂点であっても、頂点W及び頂点Lの親頂点同士が結合されていないため、頂点Lとは結合されない。その代わりに、頂点Wは、頂点Kに結合される。 In this example, the border zipper method is used. In the border zipper method, first, LoD0 vertices of different submeshes are connected. As an example, the decoding device 200 uses the nearest neighbor principle to find vertices to connect. Then, vertices of higher LoD index are connected only if their parents are connected to each other. For example, vertex L is connected to vertex X because vertex D and vertex F, which are parents of vertex L, are connected to vertex A and vertex B, which are parents of vertex X. For example, vertex W is not connected to vertex L even though it is the closest vertex to vertex L among the vertices of LoD1 of submesh 1 because the parents of vertex W and vertex L are not connected to each other. Instead, vertex W is connected to vertex K.
このように、例えば、復号装置200は、結合対象の頂点の親頂点が結合されているか否かを確認し、結合されていれば、結合された親頂点の子頂点を結合対象と決定する。この処理により、距離情報の導出、及び、距離による探索処理をせずに結合できる。そのため、処理負荷を削減できる。 In this way, for example, the decoding device 200 checks whether the parent vertex of the vertex to be combined is combined, and if it is combined, it determines the child vertex of the combined parent vertex as the vertex to be combined. This process allows combining without deriving distance information and performing distance-based search processing. This reduces the processing load.
なお、復号装置200は、上記処理に加え、結合対象と同一のLoDの頂点を用いて距離を探索し、所定の方法によって、探索された距離に基づいて結合対象とするか否かを判定してもよい。これによれば、処理負荷は増大するが、品質及び精度の高いメッシュ結合が可能となる可能性がある。 In addition to the above process, the decoding device 200 may search for distance using vertices with the same LoD as the merging target, and use a specified method to determine whether or not to merge the vertices based on the searched distance. This increases the processing load, but may enable mesh merging with high quality and accuracy.
図85は、実施の形態に係る復号装置200におけるLoD毎の頂点の結合処理を説明するためのフロー図である。 FIG. 85 is a flow diagram for explaining the process of combining vertices for each LoD in the decoding device 200 according to the embodiment.
まず、復号装置200は、2つのサブメッシュのそれぞれのサブ分割回数を示すメタデータをビットストリームか取得し、取得したメタデータから2つのサブメッシュのそれぞれのサブ分割回数を抽出して比較する(S611)。ここでは、2つのサブメッシュのうちの一方のサブメッシュのサブ分割回数をN回とし、他方のサブメッシュのサブ分割回数をM回とする。N及びMはいずれも0以上の整数である。 First, the decoding device 200 acquires metadata indicating the number of times each of the two submeshes has been sub-divisioned from the bitstream, and extracts and compares the number of times each of the two submeshes has been sub-divisioned from the acquired metadata (S611). Here, the number of times one of the two submeshes has been sub-divisioned is set to N, and the number of times the other submesh has been sub-divisioned is set to M. Both N and M are integers equal to or greater than 0.
次に、復号装置200は、2つのサブメッシュのそれぞれを抽出されたサブ分割回数に基づいてサブ分割し、2つのサブメッシュのLoD0の頂点同士(つまり、2つのサブメッシュのベースメッシュの頂点同士)を結合する(S612)。 Next, the decoding device 200 sub-divides each of the two sub-meshes based on the extracted number of sub-divisions, and connects the LoD0 vertices of the two sub-meshes (i.e., the vertices of the base meshes of the two sub-meshes) (S612).
次に、復号装置200は、2つのサブメッシュのLoD1からLoDXまでの頂点同士を結合する(S613)。ここで、Xは、min(N、M)である。つまり、復号装置200は、2つのサブメッシュに共通して存在するLoD階層の頂点まで結合処理を行う。言い換えると、復号装置200は、結合対象のLoD階層が存在する場合、頂点の追加又は除去をせずにそのまま結合処理を行う。 Next, the decoding device 200 combines the vertices from LoD1 to LoDX of the two submeshes (S613). Here, X is min(N, M). In other words, the decoding device 200 performs the combining process up to the vertices of the LoD hierarchy that are common to the two submeshes. In other words, if there is a LoD hierarchy to be combined, the decoding device 200 performs the combining process as it is without adding or removing vertices.
次に、復号装置200は、2つのサブメッシュのLoDX+1からLoDYまでの頂点同士を結合する(S614)。ここで、Yは、max(N、M)である。つまり、復号装置200は、2つのサブメッシュの一方には存在しないLoD階層の頂点についての結合処理を行う。具体的には、復号装置200は、結合対象のLoD階層が存在しない場合、上記のように頂点の追加又は除去をして結合処理を行う。復号装置200は、例えば、メタデータ(フラグ)を解析することで、つまり、メタデータに基づいて、頂点の追加又は除去を行うか否かを決定する。 Next, the decoding device 200 combines the vertices from LoDX+1 to LoDY of the two submeshes (S614). Here, Y is max(N, M). That is, the decoding device 200 performs combining processing on vertices of the LoD hierarchy that do not exist in one of the two submeshes. Specifically, when there is no LoD hierarchy to be combined, the decoding device 200 adds or removes vertices as described above to perform combining processing. The decoding device 200 determines whether to add or remove a vertex, for example, by analyzing metadata (flags), that is, based on the metadata.
図86は、実施の形態に係る復号装置200におけるLoD0の頂点の結合処理を説明するためのフロー図である。具体的には、図86は、ステップS612の処理の詳細を示すフローチャートである。 FIG. 86 is a flow diagram for explaining the LoD0 vertex joining process in the decoding device 200 according to the embodiment. Specifically, FIG. 86 is a flow chart showing the details of the process of step S612.
まず、復号装置200は、2つのサブメッシュのうちの一方のサブメッシュと結合される他方のサブメッシュ(対応するサブメッシュ)の複数の境界頂点の中から、LoD0の1以上の頂点を探索し、探索されたLoD0の1以上の頂点の中で、一方のサブメッシュのLoD0の頂点と距離が最も近い頂点を、当該一方のサブメッシュのLoD0の頂点の結合対象に決定する(S621)。つまり、復号装置200は、距離が最も近い2つのサブメッシュのLoD0の頂点同士を結合する。 First, the decoding device 200 searches for one or more LoD0 vertices from among multiple boundary vertices of one of the two submeshes (the corresponding submesh) to be combined with the other submesh, and determines, from among the one or more vertices of the searched LoD0, the vertex that is closest to the LoD0 vertex of the one submesh as the vertex to be combined with the LoD0 vertex of the one submesh (S621). In other words, the decoding device 200 combines the LoD0 vertices of the two submeshes that are closest in distance.
次に、復号装置200は、結合される2つの頂点の位置座標に基づいて、結合点の位置座標を決定する(S622)。 Next, the decoding device 200 determines the position coordinates of the joining point based on the position coordinates of the two vertices to be joined (S622).
次に、復号装置200は、結合される2つの頂点のUV座標に基づいて、結合点のUV座標を決定する(S623)。 Next, the decoding device 200 determines the UV coordinates of the joining point based on the UV coordinates of the two vertices to be joined (S623).
次に、復号装置200は、結合点の位置座標及びUV座標に基づいて、メッシュ(2つのサブメッシュが結合されたメッシュ)を再構成する(S624)。 Next, the decoding device 200 reconstructs a mesh (a mesh formed by combining two sub-meshes) based on the position coordinates and UV coordinates of the combining points (S624).
以上の処理は、LoD0以外の頂点についても同様に行われる。 The above process is also performed for vertices other than LoD0.
なお、上記では、XをN及びMの最小値とし、YをN及びMの最大値としたが、X及びYにはその他の値が用いられてもよい。 Note that in the above, X is the minimum value of N and M, and Y is the maximum value of N and M, but other values may be used for X and Y.
また、LoD1~LoDXの処理において、LoD毎に結合処理(結合点の位置座標の決定、結合点の位置座標のシフト、結合点のUV座標の決定、及び、メッシュの再構成)が実行されてもよいし、複数のLoDでまとめて結合処理が実行されてもよい。 In addition, in the processing of LoD1 to LoDX, the joining process (determining the position coordinates of the joining points, shifting the position coordinates of the joining points, determining the UV coordinates of the joining points, and reconstructing the mesh) may be performed for each LoD, or the joining process may be performed for multiple LoDs at once.
また、LoDX+1~LoDYの処理において、LoD毎に結合処理(頂点の追加、頂点の除去、結合点の位置座標の決定、結合点の位置座標のシフト、結合点のUV座標の決定、及び、メッシュの再構成)が実行されてもよいし、複数のLoDでまとめて結合処理が実行されてもよい。 In addition, in the processing of LoDX+1 to LoDY, the merging process (adding vertices, removing vertices, determining the position coordinates of the junction points, shifting the position coordinates of the junction points, determining the UV coordinates of the junction points, and reconstructing the mesh) may be performed for each LoD, or the merging process may be performed for multiple LoDs at once.
また、復号装置200が実行するとして説明した上記のサブ分割は、符号化装置100が実行してもよい。また、符号化装置100は、ベースメッシュのサブ分割をしてもよいし、しなくてもよい。また、符号化装置100は、複数のサブメッシュをサブ分割した後に、サブ分割された複数のサブメッシュを結合してもよいし、しなくてもよい。 Furthermore, the above subdivision described as being performed by the decoding device 200 may be performed by the encoding device 100. Furthermore, the encoding device 100 may or may not perform subdivision of the base mesh. Furthermore, the encoding device 100 may or may not combine the sub-divided sub-meshes after subdividing the sub-meshes.
メソッド情報は、例えば、ビットストリームに符号化される。例えば、メソッド情報は、図72に示されるように、ビットストリームのSEIメッセージ内にシグナリングされる。 The method information is, for example, encoded into the bitstream. For example, the method information is signaled within an SEI message in the bitstream, as shown in FIG. 72.
図87は、実施の形態に係るメソッド情報がシグナリングされたシンタックスの別の一例を説明するための図である。具体的には、図87は、メッシュフレームにパラメータが設定される場合のシンタックスの例を示す。 FIG. 87 is a diagram for explaining another example of a syntax in which method information related to an embodiment is signaled. Specifically, FIG. 87 shows an example of a syntax in which parameters are set in a mesh frame.
メソッド情報は、例えば、フレーム毎にue(v)指数ゴロム符号化が用いられて符号化される。例えば、メソッド情報が示す値(メソッド値)が0に等しい場合、メソッド情報は、一致しないLoDの補正を行わないことを示す。また、例えば、メソッド情報が示す値(メソッド値)が1に等しい場合、メソッド情報は、より少ないサブ分割を行うことによってサブメッシュ上に新しい頂点を生成(つまり、頂点を追加)することを示す。また、例えば、メソッド情報が示す値(メソッド値)が2に等しい場合、メソッド情報は、一致しないLoDの頂点を除去することを示す。メソッド情報が存在しない場合には、例えば、メソッド値は0とみなされる。 The method information is encoded, for example, using ue(v) exponential Golomb coding for each frame. For example, if the value indicated by the method information (method value) is equal to 0, the method information indicates that no correction of mismatched LoD is performed. Also, for example, if the value indicated by the method information (method value) is equal to 1, the method information indicates that new vertices are generated (i.e., vertices are added) on the submesh by performing fewer subdivisions. Also, for example, if the value indicated by the method information (method value) is equal to 2, the method information indicates that vertices of mismatched LoD are removed. If the method information does not exist, for example, the method value is considered to be 0.
例えば、図76に示すように、メソッド情報が0を示す場合、復号装置200が、修正処理を行わないことを示す。また、例えば、メソッド情報が1を示す場合、復号装置200が、修正処理において頂点を追加する処理を行うことを示す。例えば、メソッド情報が2を示す場合、復号装置200が、修正処理において、頂点を除去する処理を行うことを示す。 For example, as shown in FIG. 76, when the method information indicates 0, this indicates that the decoding device 200 does not perform modification processing. Also, for example, when the method information indicates 1, this indicates that the decoding device 200 performs processing to add a vertex in the modification processing. For example, when the method information indicates 2, this indicates that the decoding device 200 performs processing to remove a vertex in the modification processing.
なお、修正処理は、メソッド情報がビットストリームにシグナリングされずに、復号装置200によって導出されてもよい。 In addition, the modification process may be derived by the decoding device 200 without the method information being signaled in the bitstream.
また、例えば、図75に示すように、メソッド情報は、現在のフレームに関連するサブメッシュに適用される修正処理の識別子を示してもよい。例えば、メソッド情報は、submesh_idに関連付けられたサブメッシュに適用される修正処理の識別子を示してもよい。 Also, for example, as shown in FIG. 75, the method information may indicate an identifier of a modification process to be applied to a submesh associated with the current frame. For example, the method information may indicate an identifier of a modification process to be applied to a submesh associated with submesh_id.
続いて、結合方法のバリエーションについて説明する。 Next, we will explain the variations in joining methods.
なお、以下では、結合される2つの頂点の中点を例に説明するが、重みがつけられてもよいし、その他の計算式が採用されてもよい。 In the following, the midpoint of the two vertices to be joined is used as an example, but weighting may be applied, or other calculation formulas may be used.
図88は、実施の形態に係る頂点の結合処理の別の一例を示す説明図である。 FIG. 88 is an explanatory diagram showing another example of vertex joining processing in an embodiment.
なお、本例では、復号装置200は、サブメッシュ1のLoDNの頂点Aと、サブメッシュ2のLoDNの頂点Xとを結合することでLoDNの頂点Iを生成する。また、復号装置200は、サブメッシュ1のLoDNの頂点Cと、サブメッシュ2のLoDNの頂点Zとを結合することでLoDNの頂点Kを生成する。また、復号装置200は、サブメッシュ1のLoDN+1の頂点Bと、サブメッシュ2の頂点Yとを結合することで頂点Jを生成する。頂点Y及び頂点Jは、LoDN+1の頂点に相当する。 In this example, the decoding device 200 generates vertex I of the LoDN by combining vertex A of the LoDN of submesh 1 with vertex X of the LoDN of submesh 2. The decoding device 200 also generates vertex K of the LoDN by combining vertex C of the LoDN of submesh 1 with vertex Z of the LoDN of submesh 2. The decoding device 200 also generates vertex J by combining vertex B of the LoDN+1 of submesh 1 with vertex Y of submesh 2. Vertices Y and J correspond to the vertices of LoDN+1.
復号装置200は、例えば、LoDN及びLoDN+1の結合点の位置座標を、同一のLoD階層の2つの頂点を用いて決定する。復号装置200は、例えば、I=(A+X)/2、K=(C+Z)/2を算出することによって、LoDNの結合点の位置座標を決定する。I、A、Xは、それぞれ、頂点I、A、Xの位置座標である。 The decoding device 200 determines, for example, the position coordinates of the junction points of LoDN and LoDN+1 using two vertices in the same LoD hierarchy. The decoding device 200 determines the position coordinates of the junction points of LoDN, for example, by calculating I = (A + X)/2 and K = (C + Z)/2. I, A, and X are the position coordinates of vertices I, A, and X, respectively.
また、復号装置200は、例えば、J=(B+Y)/2を算出することによって、頂点Jの位置座標を決定する。J、B、Yは、それぞれ、頂点J、B、Yの位置座標である。 The decoding device 200 also determines the position coordinates of vertex J by, for example, calculating J = (B + Y) / 2. J, B, and Y are the position coordinates of vertices J, B, and Y, respectively.
ここで、サブメッシュ2にYがない場合には、復号装置200は、例えば、サブメッシュ2の頂点(例えば、頂点Yの2つの親頂点)の位置座標に基づいて、頂点Yの位置座標を算出する。例えば、復号装置200は、Y=(X+Z)/2を算出することによって、頂点Yの位置座標を算出する。 Here, if Y does not exist in submesh 2, the decoding device 200 calculates the position coordinates of vertex Y based on the position coordinates of the vertices of submesh 2 (e.g., the two parent vertices of vertex Y). For example, the decoding device 200 calculates the position coordinates of vertex Y by calculating Y = (X + Z) / 2.
なお、頂点Jの位置座標は、頂点Jの上位の階層のLoD(例えば、LoDN)の頂点の位置座標に基づいて決定されてもよい。 The position coordinates of vertex J may be determined based on the position coordinates of a vertex of the LoD (e.g., LoDN) in a higher hierarchy than vertex J.
図89は、実施の形態に係る頂点の結合処理の別の一例を示す説明図である。 FIG. 89 is an explanatory diagram showing another example of vertex joining processing in an embodiment.
図89に示す例では、復号装置200は、頂点Yを生成せずに、頂点Bの位置座標をシフトさせることによって、頂点Jの位置座標を算出する。ここで、シフトさせる量を示すベクトルの起点となる頂点は、例えば、サブメッシュ1及びサブメッシュ2のうち、サブ分割回数が多いサブメッシュ(本例では、サブメッシュ1)の頂点が採用される。 In the example shown in FIG. 89, the decoding device 200 calculates the position coordinates of vertex J by shifting the position coordinates of vertex B without generating vertex Y. Here, the vertex that is the starting point of the vector indicating the amount of shift is, for example, the vertex of the submesh with the greatest number of subdivisions (in this example, submesh 1) between submeshes 1 and 2.
まず、復号装置200は、ベクトルAI=I-A(例えば、IはAとXの中点)を算出する。また、復号装置200は、ベクトルCK=K-C(例えば、KはCとZの中点)を算出する。次に、復号装置200は、ベクトルAI及びベクトルCKを用いて、頂点Jの位置座標を算出するための頂点Bのシフト量(ベクトルBJ)を算出する。具体的には、復号装置200は、ベクトルBJ=(ベクトルAI+ベクトルCK)/2、及び、J=B+ベクトルBJを算出する。 First, the decoding device 200 calculates vector AI = I-A (for example, I is the midpoint between A and X). The decoding device 200 also calculates vector CK = K-C (for example, K is the midpoint between C and Z). Next, the decoding device 200 uses vector AI and vector CK to calculate the shift amount of vertex B (vector BJ) for calculating the position coordinates of vertex J. Specifically, the decoding device 200 calculates vector BJ = (vector AI + vector CK)/2 and J = B + vector BJ.
このような方法によれば、復号装置200は、LoDN+1においてLoDNの頂点(頂点X及び頂点Z)の位置座標を用いた計算をすることなく、結合点の位置座標を決定できる。 According to this method, the decryption device 200 can determine the position coordinates of the joining point in LoDN+1 without performing calculations using the position coordinates of the vertices of LoDN (vertex X and vertex Z).
また、すでに算出済みのベクトルの情報を用いて算出することで計算量を抑えることができる。 In addition, the amount of calculations can be reduced by using vector information that has already been calculated.
また、サブメッシュ1と、サブ分割回数がサブメッシュ1より少ないサブメッシュ2との形状を比較すると、サブメッシュ1の形状がサブメッシュ2よりも正確である可能性が高い。そのため、復号装置200は、結合される2つのサブメッシュのうち、サブ分割回数が多いサブメッシュを起点(ここではサブメッシュ1)とし、上位のLoD階層から求められたベクトルだけ頂点をシフトすることで、シフト後の形状をさらに正確に表現できる。 Furthermore, when comparing the shapes of submesh 1 and submesh 2, which has fewer subdivisions than submesh 1, it is highly likely that the shape of submesh 1 is more accurate than that of submesh 2. Therefore, the decoding device 200 takes the submesh with the greater number of subdivisions of the two submeshes to be joined as the starting point (here, submesh 1), and shifts the vertices by the vector determined from the higher LoD hierarchy, thereby making it possible to more accurately represent the shape after the shift.
なお、本実施の形態は、分割された複数のメッシュの例としてサブメッシュを用いて、サブメッシュ間を結合する場合を例に説明したが、サブメッシュ以外のメッシュデータにも適用可能である。例えば、本実施の形態は、サブメッシュをさらに分割した単位(例えば、メッシュパッチ)においても適用可能である。さらに、メッシュパッチ間でサブ分割回数が異なる場合に、本実施の形態の方法を適用してもよい。その場合、メッシュパッチの単位でLoD階層数が一致しない境界エッジに対して頂点を追加するか除去するかの情報がビットストリームにシグナリングされてもよい。 Note that this embodiment has been described using submeshes as an example of multiple divided meshes, and taking the case of joining the submeshes as an example, but it can also be applied to mesh data other than submeshes. For example, this embodiment can also be applied to units obtained by further dividing a submesh (e.g., mesh patches). Furthermore, the method of this embodiment may be applied when the number of subdivisions differs between mesh patches. In that case, information on whether to add or remove a vertex for a boundary edge where the LoD hierarchical levels do not match in mesh patch units may be signaled in the bitstream.
また、上記では、符号化装置100は、サブメッシュに対して頂点を追加又は除去する方法を決定し、当該方法を示す情報をメタデータに格納してビットストリームにシグナリングし、復号装置200において当該メタデータに基づき頂点の追加又は除去を判定する方式を説明した。符号化装置100は、このような情報をビットストリームにシグナリングせずに、復号装置200が追加又は除去のいずれか一方の方法を実行すると予め定められていてもよい。また、符号化装置100と復号装置200とで、所定の方法を用いて切り替える方法が予め定められていてもよい。また、復号装置200が、当該所定の方法を決定してもよい。 Also, in the above description, the encoding device 100 determines a method for adding or removing vertices from a submesh, stores information indicating the method in metadata and signals it to the bitstream, and the decoding device 200 determines whether to add or remove vertices based on the metadata. The encoding device 100 may not signal such information to the bitstream, and the decoding device 200 may predetermine that it will execute either the addition or removal method. Also, the encoding device 100 and the decoding device 200 may predetermine a method for switching between the methods using a predetermined method. Also, the decoding device 200 may determine the predetermined method.
例えば、復号装置200は、結合後のメッシュの品質を測定し、測定された品質に基づいて頂点の追加又は除去を決定してもよい。品質とは、例えば、頂点の位置、メッシュの形状、及び、メッシュに穴が開いていないか等、ジオメトリに関する品質、並びに、テクスチャを加えたメッシュ全体の評価結果に基づき測定された品質である。 For example, the decoding device 200 may measure the quality of the mesh after the combination and decide to add or remove vertices based on the measured quality. The quality may be, for example, quality related to geometry such as the positions of the vertices, the shape of the mesh, and whether the mesh has holes, as well as quality measured based on the evaluation results of the entire mesh including the texture.
また、復号装置200は、メタデータに基づいて複数のサブメッシュを結合してもよいし、結合処理をせずにアプリケーションへメタデータを出力し、当該アプリケーションが複数のサブメッシュを結合してもよい。 The decoding device 200 may also combine multiple submeshes based on the metadata, or may output the metadata to an application without performing a combining process, and the application may combine multiple submeshes.
<本開示の概要>
続いて、本明細書の開示内容から得られる技術の概要を例示する。
<Summary of the Disclosure>
Next, an overview of the technology that can be obtained from the disclosure of this specification will be illustrated.
例えば、本開示の復号方法では、全体像三次元メッシュを構成する複数のサブメッシュについて、前記サブメッシュを構成する多角形に含まれる頂点の位置情報及び前記頂点の接続関係に関する接続情報を符号化ビットストリームから取得し(つまり、情報の復号)、前記位置情報及び前記接続情報を用いて前記多角形を生成し(つまり、面の復号)、前記多角形を構成する辺が前記サブメッシュの境界であるか否かを判定し(つまり、辺の条件判定)、前記判定結果に基づいて前記辺の分割処理を決定し(つまり、判定結果に基づくサブ分割処理の決定)、前記分割処理を用いて前記辺を分割(サブ分割)する。 For example, in the decoding method disclosed herein, for multiple submeshes that make up an overall image three-dimensional mesh, position information of vertices included in polygons that make up the submeshes and connection information regarding the connection relationships of the vertices are obtained from the encoded bitstream (i.e., information is decoded), the polygons are generated using the position information and the connection information (i.e., faces are decoded), it is determined whether an edge that makes up the polygon is a boundary of the submesh (i.e., edge condition determination), a division process for the edge is determined based on the result of the determination (i.e., subdivision process is determined based on the result of the determination), and the edge is divided (subdivision) using the division process.
分割処理の具体例又は変形例について以下に記載する。 Specific examples and variations of the split process are described below.
前記分割処理では、前記辺を分割する方法(分割方法)を特定してもよい。 The division process may include identifying a method for dividing the edge (division method).
前記分割処理では、前記辺を分割する回数(分割回数)を特定してもよい。 The division process may specify the number of times to divide the edge (number of divisions).
前記分割処理では、前記辺を分割する方法及び回数(分割方法及び分割回数)を特定してもよい。 The division process may specify the method and number of times to divide the edge (division method and number of divisions).
前記分割処理は、前記辺を構成する複数の頂点の位置情報に基づいて新たな頂点を生成する処理でもよい(分割処理の別定義)。 The splitting process may be a process of generating new vertices based on position information of the multiple vertices that make up the edge (another definition of the splitting process).
前記復号処理では、前記分割処理を指定するパラメータを符号化ビットストリームから復号してもよい(分割処理のシグナリング)。 In the decoding process, parameters that specify the splitting process may be decoded from the encoded bitstream (signaling of the splitting process).
前記分割処理の少なくともいずれかは、あらかじめ規定されていてもよい(所定の分割処理)。 At least one of the division processes may be specified in advance (predetermined division process).
前記分割処理は、前記辺を分割しないことを含む(分割しないという選択肢)。 The splitting process includes not splitting the edge (the option of not splitting).
判定処理の具体例又は変形例について以下に記載する。 Specific examples and variations of the determination process are described below.
前記判定処理では、前記多角形を構成する辺のうち、処理対象の一辺が前記サブメッシュの境界であるか否かを判定してもよい(辺ごと判定処理)。 The determination process may determine whether or not one of the edges constituting the polygon to be processed is the boundary of the submesh (edge-by-edge determination process).
前記判定処理では、前記多角形を構成する辺のうち、前記サブメッシュの境界である辺が含まれるか否かを判定してもよい(多角形に境界エッジが含まれるかの判定)。 The determination process may determine whether or not any of the edges constituting the polygon are edges that are the boundaries of the sub-mesh (determining whether the polygon includes a boundary edge).
前記サブメッシュ境界とは、複数のサブメッシュを構成する複数の頂点を両端に含む辺であってもよい(境界の定義)。 The submesh boundary may be an edge that includes multiple vertices that make up multiple submeshes at both ends (definition of boundary).
判定結果と分割処理との関係の具体例について以下に記載する。 Specific examples of the relationship between the judgment results and the splitting process are described below.
前記分割処理では、前記処理対象の一辺が前記サブメッシュ境界であるとき、第1分割処理を用いて前記一辺を分割してもよい。 In the division process, when one side of the processing target is the submesh boundary, the one side may be divided using a first division process.
前記分割処理では、前記処理対象の一辺が前記サブメッシュ境界ではないとき、第2分割処理を用いて前記一辺を分割してもよい。 In the division process, when the side to be processed is not the submesh boundary, the side may be divided using a second division process.
前記分割処理では、前記多角形が前記サブメッシュ境界である辺を含むとき、前記サブメッシュ境界である辺を、第1分割処理を用いて分割し、前記サブメッシュ境界でない辺を、第2分割処理を用いて分割してもよい。 In the division process, when the polygon includes an edge that is the submesh boundary, the edge that is the submesh boundary may be divided using a first division process, and the edge that is not the submesh boundary may be divided using a second division process.
前記分割処理では、前記多角形が前記サブメッシュ境界である辺を含まないとき、前記多角形に含まれる全ての辺を、第2分割処理を用いて分割してもよい。 In the splitting process, when the polygon does not include an edge that is the submesh boundary, all edges included in the polygon may be split using a second splitting process.
前記分割処理では、前記多角形が前記サブメッシュ境界である辺を含むとき、第1分割処理と第2分割処理とが所定の関係であるか否かを判定して、判定結果に基づいて分割処理を決定してもよい。例えば、第1分割処理と第2分割処理とによって特定される分割回数を比較した結果に基づき、分割処理を切り替えてもよい。 In the splitting process, when the polygon includes an edge that is the submesh boundary, it may be determined whether the first splitting process and the second splitting process have a predetermined relationship, and the splitting process may be determined based on the determination result. For example, the splitting process may be switched based on the result of comparing the number of splits specified by the first splitting process and the second splitting process.
第1分割処理(境界の分割処理)と第2分割処理(非境界の分割処理)との具体例について以下に記載する。 Specific examples of the first division process (boundary division process) and the second division process (non-boundary division process) are described below.
前記第1分割処理と前記第2分割処理とは、異なる処理であってもよい(違う分割処理を選択)。 The first division process and the second division process may be different processes (select different division processes).
前記第1分割処理は、第1分割処理グループから選択され、前記第2分割処理は、第2分割処理グループから選択されてもよい。前記第1分割処理グループと前記第2分割処理グループとは、異なる分割処理を含んでいてもよい(複数の分割処理から選択する。選択肢が違う)。 The first split process may be selected from a first split process group, and the second split process may be selected from a second split process group. The first split process group and the second split process group may include different split processes (selected from a plurality of split processes; the options are different).
前記第1分割処理では、複数のサブメッシュにおいて共通の同じ処理が選択されてもよい。或いは、前記分割処理では、複数のサブメッシュにおいて同じグループから処理が選択されてもよい。 In the first division process, the same process may be selected that is common to multiple submeshes. Alternatively, in the division process, processes may be selected from the same group in multiple submeshes.
前記第1分割処理は、シーケンス単位又はフレーム単位で決定されてもよい。また、前記第1分割処理に用いられるパラメータが符号化ビットストリームに符号化されてもよい。 The first division process may be determined on a sequence-by-sequence or frame-by-frame basis. Furthermore, parameters used in the first division process may be encoded into the encoded bitstream.
前記第2分割処理は、サブメッシュごとに決定されてもよい。また、前記第2分割処理に用いられるパラメータが符号化ビットストリームに符号化されてもよい。 The second division process may be determined for each submesh. Furthermore, parameters used in the second division process may be encoded into the encoded bitstream.
なお、「異なる処理」とは、分割回数又は分割方法の少なくとも一方が異なる処理であることを意味してもよい。 Note that "different processing" may mean that at least one of the number of divisions or the division method is different.
また、例えば、本開示の符号化装置は、回路と、前記回路に接続されたメモリと、を備え、前記回路が、動作中に、第1のサブメッシュを符号化して第1の符号化データを生成し、第2のサブメッシュを符号化して第2の符号化データを生成し、復号装置において、前記第1のサブメッシュに含まれる第1の頂点、及び、前記第2のサブメッシュに含まれる第2の頂点を含む頂点の組を選択するために使用される制御情報を生成し、前記第1の符号化データ、前記第2の符号化データ、及び、前記制御情報を含むビットストリームを生成し、前記第1の頂点及び前記第2の頂点は、同じ詳細度(LoD)インデックス値を有する。 Also, for example, an encoding device of the present disclosure includes a circuit and a memory connected to the circuit, and the circuit, during operation, encodes a first submesh to generate first encoded data, encodes a second submesh to generate second encoded data, and in a decoding device, generates control information used to select a set of vertices including a first vertex included in the first submesh and a second vertex included in the second submesh, and generates a bitstream including the first encoded data, the second encoded data, and the control information, and the first vertex and the second vertex have the same level of detail (LoD) index value.
また、例えば、本開示の復号装置は、回路と前記回路に接続されたメモリと、を備え、前記回路が、動作中に、第1のサブメッシュ及び第2のサブメッシュを生成し、前記第1のサブメッシュに含まれる第1の頂点、及び、前記第2のサブメッシュに含まれる第2の頂点を含む頂点の組を選択し、前記第1の頂点の位置及び前記第2の頂点の位置を、前記頂点の組から生成された修正位置に修正し、前記第1の頂点及び前記第2の頂点は、同じ詳細度(LoD)インデックス値を有する。 Also, for example, the decoding device of the present disclosure includes a circuit and a memory connected to the circuit, and the circuit, during operation, generates a first submesh and a second submesh, selects a set of vertices including a first vertex included in the first submesh and a second vertex included in the second submesh, modifies the position of the first vertex and the position of the second vertex to modified positions generated from the set of vertices, and the first vertex and the second vertex have the same level of detail (LoD) index value.
また、例えば、本開示の符号化方法は、第1のサブメッシュを符号化して第1の符号化データを生成し、第2のサブメッシュを符号化して第2の符号化データを生成し、復号装置において、前記第1のサブメッシュに含まれる第1の頂点、及び、前記第2のサブメッシュに含まれる第2の頂点を含む頂点の組を選択するために使用される制御情報を生成し、前記第1の符号化データ、前記第2の符号化データ、及び、前記制御情報を含むビットストリームを生成し、前記第1の頂点及び前記第2の頂点は、同じ詳細度(LoD)インデックス値を有する。 Also, for example, the encoding method of the present disclosure encodes a first submesh to generate first encoded data, encodes a second submesh to generate second encoded data, generates control information in a decoding device used to select a set of vertices including a first vertex included in the first submesh and a second vertex included in the second submesh, and generates a bitstream including the first encoded data, the second encoded data, and the control information, wherein the first vertex and the second vertex have the same level of detail (LoD) index value.
また、例えば、本開示の復号方法は、第1のサブメッシュ及び第2のサブメッシュを生成し、前記第1のサブメッシュに含まれる第1の頂点と前記第2のサブメッシュに含まれる第2の頂点とを含む頂点の組を選択し、前記第1の頂点の位置及び前記第2の頂点の位置を、前記頂点の組から生成された修正位置に修正し、前記第1の頂点及び前記第2の頂点は、同じ詳細度(LoD)インデックス値を有する。 Also, for example, the decoding method of the present disclosure generates a first submesh and a second submesh, selects a set of vertices including a first vertex included in the first submesh and a second vertex included in the second submesh, modifies the position of the first vertex and the position of the second vertex to modified positions generated from the set of vertices, and the first vertex and the second vertex have the same level of detail (LoD) index value.
本開示では、隣接するサブメッシュで異なるサブ分割方法を使用することによる問題を解決するために、図50に示すように、すべての境界エッジに沿って同じタイプのサブ分割方法、及び、同じサブ分割回数を有するように制約を強制する。したがって、サブ分割された頂点が変位し、サブメッシュが結合された後、図50の(c)に示すように、境界エッジの周囲に穴は存在しない。ここで、頂点F及び頂点Mの変位ベクトルの値は同じである。 In this disclosure, to solve the problem of using different subdivision methods on adjacent submeshes, we enforce a constraint to have the same type of subdivision method and the same number of subdivisions along all boundary edges, as shown in Figure 50. Therefore, after the subdivided vertices are displaced and the submeshes are merged, there are no holes around the boundary edges, as shown in Figure 50(c), where the values of the displacement vectors of vertex F and vertex M are the same.
境界エッジのサブ分割には、所定のサブ分割方法及び/又は所定のサブ分割回数が用いられてもよいし、符号化装置が、サブ分割方法及び/又はサブ分割回数を決定し、決定したサブ分割方法及び/又はサブ分割回数を示す情報をビットストリームでシグナリングしてもよい。 A predetermined subdivision method and/or a predetermined number of subdivisions may be used for subdivision of the boundary edge, or the encoding device may determine the subdivision method and/or the number of subdivisions and signal information indicative of the determined subdivision method and/or the number of subdivisions in the bitstream.
マルチメディアデータの符号化技術において、符号化効率の向上、画質の向上、及び、回路規模の縮小を図るための新たな手法の提案が望まれている。 In multimedia data coding technology, there is a need to propose new methods to improve coding efficiency, improve image quality, and reduce circuit scale.
本開示における実施形態の各々、構成要素の一部、及び、方法の各々は、例えば、符号化効率の向上、画質の向上、符号化/復号の処理量の削減、回路規模の削減、及び、符号化/復号の処理速度の向上等のうちの少なくとも1つを可能にする。或いは、本開示における各実施形態、各構成要素の一部、及び、各方法は、符号化及び復号において、フィルタ、ブロック、サイズ、動きベクトル、参照ピクチャ、及び、参照ブロック等の要素又は演算のいずれかを適切に選択することを可能にする。本開示は、上記の利点以外の利点を提供し得る構成及び方法に関する開示を含む。このような構成及び方法の例としては、処理量の増加を抑えつつ符号化効率を向上させる構成及び方法が挙げられる。 Each of the embodiments, parts of the components, and methods of the present disclosure enables at least one of, for example, improved encoding efficiency, improved image quality, reduced encoding/decoding processing volume, reduced circuit size, and improved encoding/decoding processing speed. Alternatively, each of the embodiments, parts of the components, and methods of the present disclosure enables appropriate selection of any of the elements or operations such as filters, blocks, sizes, motion vectors, reference pictures, and reference blocks in encoding and decoding. This disclosure includes disclosures of configurations and methods that can provide advantages other than those mentioned above. Examples of such configurations and methods include configurations and methods that improve encoding efficiency while suppressing an increase in processing volume.
本開示の態様による追加の価値及び利点は、明細書及び図面から明らかになる。その価値及び/又は利点は、明細書及び図面の様々な実施形態及び特徴によって個々に得ることができ、そのような価値及び/又は利点の1つ以上を得るために、そのすべてを提供する必要はない。 Additional value and advantages of aspects of the present disclosure will become apparent from the specification and drawings. The value and/or advantages may be obtained individually from various embodiments and features of the specification and drawings, and it is not necessary for all of them to be provided in order to obtain one or more of such value and/or advantages.
これらの一般的又は特定の態様は、システム、集積回路、コンピュータプログラム、又は、CD-ROMのようなコンピュータ読み取り可能な記録媒体、或いは、システム、方法、集積回路、コンピュータプログラム、又は、記録媒体の任意の組合せを用いて実施することができる。 These general or specific aspects may be implemented using a system, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or any combination of a system, method, integrated circuit, computer program, or recording medium.
<代表例>
図90は、本実施の形態に係る基本的な復号処理の例を示すフローチャートである。例えば、図25に示された復号装置200は、回路251と、回路251に接続されたメモリ252と、を備える。復号装置200において、回路251が、動作中に、以下の処理を行う。
<Representative example>
Fig. 90 is a flowchart showing an example of a basic decoding process according to this embodiment. For example, the decoding device 200 shown in Fig. 25 includes a circuit 251 and a memory 252 connected to the circuit 251. In the decoding device 200, the circuit 251 performs the following processes during operation.
まず、復号装置200は、第1ベースメッシュ及び第2ベースメッシュが有する複数の頂点の三次元位置を示す複数の三次元座標値と、複数の三次元座標値に対応する、属性マップにおける二次元座標を示す複数の二次元座標値とを示す符号化された三次元点データを含むビットストリームを取得する(S631)。三次元座標値は、例えば、上記の位置情報である。属性マップは、例えば、上記のUVマップである。二次元座標値は、例えば、上記の二次元UV座標である。復号装置200は、例えば、ビットストリームを符号化装置100から受信する。 First, the decoding device 200 obtains a bitstream including encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating the three-dimensional positions of a plurality of vertices of the first base mesh and the second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in an attribute map corresponding to the plurality of three-dimensional coordinate values (S631). The three-dimensional coordinate values are, for example, the position information described above. The attribute map is, for example, the UV map described above. The two-dimensional coordinate values are, for example, the two-dimensional UV coordinates described above. The decoding device 200 receives the bitstream from the encoding device 100, for example.
次に、復号装置200は、符号化された三次元点データを復号する(S632)。 Next, the decoding device 200 decodes the encoded 3D point data (S632).
次に、復号装置200は、三次元点データに基づいて、第1ベースメッシュに基づく第1サブメッシュが有する第1境界エッジ上の複数の第1頂点の総数と、第2ベースメッシュに基づく第2サブメッシュが有する第2境界エッジ上の複数の第2頂点の総数とを一致させる処理を実行する(S633)。復号装置200は、上記処理(S633)では、(i)複数の第1頂点の三次元位置を示す複数の第1三次元座標値の総数と、複数の第2頂点の三次元位置を示す複数の第2三次元座標値の総数とを一致させ、且つ、(ii)複数の第1三次元座標値に対応する、属性マップにおける二次元座標を示す複数の第1二次元座標値の総数と、複数の第2三次元座標値に対応する、属性マップにおける二次元座標を示す複数の第2二次元座標値の総数とを一致させることにより、複数の第1頂点の総数と複数の第2頂点の総数とを一致させる。 Next, the decoding device 200 executes a process of matching the total number of the first vertices on the first boundary edge of the first submesh based on the first base mesh with the total number of the second vertices on the second boundary edge of the second submesh based on the second base mesh based on the three-dimensional point data (S633). In the process (S633), the decoding device 200 (i) matches the total number of the first three-dimensional coordinate values indicating the three-dimensional positions of the first vertices with the total number of the second three-dimensional coordinate values indicating the three-dimensional positions of the second vertices, and (ii) matches the total number of the first two-dimensional coordinate values indicating the two-dimensional coordinates in the attribute map corresponding to the first three-dimensional coordinate values with the total number of the second two-dimensional coordinate values indicating the two-dimensional coordinates in the attribute map corresponding to the second three-dimensional coordinate values, thereby matching the total number of the first vertices with the total number of the second vertices.
第1サブメッシュと第2サブメッシュとは、例えば、第1境界エッジと第2境界エッジとが結合されることにより、結合される。言い換えると、第1サブメッシュと第2サブメッシュとは、例えば、第1境界エッジ上の頂点と第2境界エッジ上の頂点とが結合されることにより、結合される。第1境界エッジ上の頂点と第2境界エッジ上の頂点とは、例えば、1対1で結合される。したがって、例1の復号方法によれば、第1サブメッシュと第2サブメッシュとが結合される際に、結合される各頂点の位置(三次元座標値)だけでなく、結合される各頂点の属性マップにおける座標値(二次元座標値)も総数が揃うことになる。したがって、第1サブメッシュと第2サブメッシュとが結合された後のメッシュの頂点の三次元座標値と二次元座標値との両方の精度が向上され得る。 The first submesh and the second submesh are combined, for example, by combining the first boundary edge and the second boundary edge. In other words, the first submesh and the second submesh are combined, for example, by combining the vertices on the first boundary edge and the vertices on the second boundary edge. The vertices on the first boundary edge and the vertices on the second boundary edge are combined, for example, on a one-to-one basis. Therefore, according to the decoding method of Example 1, when the first submesh and the second submesh are combined, not only the positions (three-dimensional coordinate values) of each vertex to be combined, but also the total number of coordinate values (two-dimensional coordinate values) in the attribute map of each vertex to be combined are made uniform. Therefore, the accuracy of both the three-dimensional coordinate values and the two-dimensional coordinate values of the vertices of the mesh after the first submesh and the second submesh are combined can be improved.
また、例えば、復号装置200は、さらに、第1ベースメッシュを第1回数だけサブ分割することにより、第1ベースメッシュが有する複数の辺上に第1回数に応じた頂点を追加した第1サブメッシュを生成し、第2ベースメッシュを第2回数だけサブ分割することにより、第2ベースメッシュが有する複数の辺上に第2回数に応じた頂点を追加した第2サブメッシュを生成する。 Furthermore, for example, the decoding device 200 further generates a first submesh by sub-dividing the first base mesh a first number of times, in which vertices corresponding to the first number of times are added to the multiple sides of the first base mesh, and generates a second submesh by sub-dividing the second base mesh a second number of times, in which vertices corresponding to the second number of times are added to the multiple sides of the second base mesh.
これによれば、第1ベースメッシュ及び第2ベースメッシュから第1サブメッシュ及び第2サブメッシュが生成され得る。 In this way, a first submesh and a second submesh can be generated from a first base mesh and a second base mesh.
また、例えば、第1回数と第2回数とは、互いに異なる回数であってもよい。 Also, for example, the first number of times and the second number of times may be different from each other.
第1ベースメッシュと第2ベースメッシュとのサブ分割回数が異なると、サブ分割後には、第1サブメッシュにおける第1境界エッジ上、及び、第2サブメッシュにおける第2境界エッジ上の頂点の総数が異なる可能性が高い。したがって、第1回数と第2回数とが異なるような場合に、上記処理によって第1サブメッシュにおける第1境界エッジ上、及び、第2サブメッシュにおける第2境界エッジ上の頂点の総数が揃えられることにより、特に効果的に第1サブメッシュと第2サブメッシュとが結合された後のメッシュの頂点の三次元座標値と二次元座標値との両方の精度が向上され得る。 If the first base mesh and the second base mesh have different numbers of subdivisions, there is a high possibility that the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh will be different after the subdivision. Therefore, when the first and second numbers of subdivisions are different, the above process can be used to make the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh uniform, thereby effectively improving the accuracy of both the three-dimensional coordinate values and the two-dimensional coordinate values of the vertices of the mesh after the first and second submeshes are combined.
また、例えば、復号装置200は、上記処理では、第1ベースメッシュが第1回数だけサブ分割されることにより生成された第1サブメッシュが有する第1境界エッジ上、又は、第2ベースメッシュが第2回数だけサブ分割されることにより生成された第2サブメッシュが有する第2境界エッジ上に、1個以上の頂点を追加することで、複数の第1頂点の総数と複数の第2頂点の総数とを一致させる。 Furthermore, for example, in the above process, the decoding device 200 adds one or more vertices to a first boundary edge of a first submesh generated by subdividing a first base mesh a first number of times, or to a second boundary edge of a second submesh generated by subdividing a second base mesh a second number of times, thereby making the total number of the first vertices equal to the total number of the second vertices.
これによれば、第1サブメッシュにおける第1境界エッジ上、及び、第2サブメッシュにおける第2境界エッジ上の頂点の総数が揃えられ得る。 This allows the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh to be aligned.
また、例えば、復号装置200は、上記処理では、第1ベースメッシュが第1回数だけサブ分割されることにより生成された第1サブメッシュが有する第1境界エッジ上、又は、第2ベースメッシュが第2回数だけサブ分割されることにより生成された第2サブメッシュが有する第2境界エッジ上から、1個以上の頂点を除去することで、複数の第1頂点の総数と複数の第2頂点の総数とを一致させる。 Furthermore, for example, in the above process, the decoding device 200 removes one or more vertices from a first boundary edge of a first submesh generated by sub-dividing a first base mesh a first number of times, or from a second boundary edge of a second submesh generated by sub-dividing a second base mesh a second number of times, thereby making the total number of the first vertices equal to the total number of the second vertices.
これによれば、第1サブメッシュにおける第1境界エッジ上、及び、第2サブメッシュにおける第2境界エッジ上の頂点の総数が揃えられ得る。 This allows the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh to be aligned.
また、例えば、復号装置200は、さらに、複数の第1頂点と複数の第2頂点とを結合することで生成された複数の結合点が、第1境界エッジ及び第2境界エッジに対応する境界エッジ上に配置されるように、第1サブメッシュと第2サブメッシュとを結合した三次元メッシュを生成する。 Furthermore, for example, the decoding device 200 generates a three-dimensional mesh by connecting the first submesh and the second submesh such that multiple connection points generated by connecting the multiple first vertices and the multiple second vertices are positioned on boundary edges corresponding to the first boundary edge and the second boundary edge.
これによれば、第1ベースメッシュと第2ベースメッシュとから三次元メッシュが再構成される。 In this way, a three-dimensional mesh is reconstructed from the first base mesh and the second base mesh.
また、例えば、復号装置200は、三次元メッシュの生成では、複数の第1頂点のうちの第1対象頂点と、複数の第2頂点のうちの第2対象頂点とを結合することで、複数の結合点のうちの第3対象頂点を生成し、第3対象頂点の生成では、第1対象頂点の三次元位置を示す第1対象三次元座標値と、第2対象頂点の三次元位置を示す第2対象三次元座標値との平均値を算出することで、第3対象頂点の三次元位置を示す第3対象三次元座標値を算出し、第1対象三次元座標値に対応する、属性マップにおける二次元座標を示す第1対象二次元座標値と、第2対象三次元座標値に対応する、属性マップにおける二次元座標を示す第2対象二次元座標値との平均値を算出することで、第3対象三次元座標値に対応する、属性マップにおける二次元座標を示す第3二次元座標値を算出する。 Furthermore, for example, in generating a three-dimensional mesh, the decoding device 200 generates a third object vertex from among the multiple connection points by connecting a first object vertex of the multiple first vertices and a second object vertex of the multiple second vertices, and in generating the third object vertex, calculates a third object three-dimensional coordinate value indicating the three-dimensional position of the third object vertex by calculating the average value of a first object three-dimensional coordinate value indicating the three-dimensional position of the first object vertex and a second object three-dimensional coordinate value indicating the three-dimensional position of the second object vertex, and calculates a third two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the third object three-dimensional coordinate value by calculating the average value of a first object two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the first object three-dimensional coordinate value and a second object two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the second object three-dimensional coordinate value.
これによれば、結合点の三次元座標値及び二次元座標値が算出され得る。 This allows the three-dimensional and two-dimensional coordinate values of the connection points to be calculated.
図91は、本実施の形態に係る基本的な符号化処理の例を示すフローチャートである。例えば、図24に示された符号化装置100は、回路151と、回路151に接続されたメモリ152と、を備える。符号化装置100において、回路151が、動作中に、以下の処理を行う。 FIG. 91 is a flowchart showing an example of a basic encoding process according to this embodiment. For example, the encoding device 100 shown in FIG. 24 includes a circuit 151 and a memory 152 connected to the circuit 151. In the encoding device 100, the circuit 151 performs the following processes during operation.
まず、符号化装置100は、第1ベースメッシュに基づく第1サブメッシュが有する第1境界エッジ上の複数の第1頂点の総数と、第2ベースメッシュに基づく第2サブメッシュが有する第2境界エッジ上の複数の第2頂点の総数とを一致させる処理を実行する(S641)。 First, the encoding device 100 performs a process of matching the total number of first vertices on a first boundary edge of a first submesh based on a first base mesh with the total number of second vertices on a second boundary edge of a second submesh based on a second base mesh (S641).
次に、符号化装置100は、上記処理(S641)の実行結果に基づいて、第1ベースメッシュ及び第2ベースメッシュが有する複数の頂点の三次元位置を示す複数の三次元座標値と、複数の三次元座標値に対応する、属性マップにおける二次元座標を示す複数の二次元座標値とを示す符号化された三次元点データを符号化する(S642)。例えば、符号化装置100は、上記処理の実行結果に基づいて、ベースメッシュの頂点の座標値の符号化パラメータを補正し、補正された符号化パラメータを用いて、ベースメッシュの頂点の座標値(例えば、三次元座標値及び二次元座標値)を符号化する。なお、符号化装置100は、上記処理の実行結果に基づいて、変位ベクトルの値を補正してもよい。 Next, based on the execution result of the above process (S641), the encoding device 100 encodes encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating the three-dimensional positions of a plurality of vertices of the first base mesh and the second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the plurality of three-dimensional coordinate values (S642). For example, based on the execution result of the above process, the encoding device 100 corrects the encoding parameters of the coordinate values of the vertices of the base mesh, and encodes the coordinate values (e.g., three-dimensional coordinate values and two-dimensional coordinate values) of the vertices of the base mesh using the corrected encoding parameters. Note that the encoding device 100 may correct the value of the displacement vector based on the execution result of the above process.
次に、符号化装置100は、符号化された三次元点データを含むビットストリームを生成する(S643)。符号化装置100は、例えば、生成したビットストリームを復号装置200に送信する。 Next, the encoding device 100 generates a bit stream including the encoded 3D point data (S643). The encoding device 100 transmits the generated bit stream to the decoding device 200, for example.
符号化装置100は、上記処理(S641)では、(i)複数の第1頂点の三次元位置を示す複数の第1三次元座標値の総数と、複数の第2頂点の三次元位置を示す複数の第2三次元座標値の総数とを一致させ、且つ、(ii)複数の第1三次元座標値に対応する、属性マップにおける二次元座標を示す複数の第1二次元座標値の総数と、複数の第2三次元座標値に対応する、属性マップにおける二次元座標を示す複数の第2二次元座標値の総数とを一致させることにより、複数の第1頂点の総数と複数の第2頂点の総数とを一致させる。 In the above process (S641), the encoding device 100 (i) matches the total number of the first three-dimensional coordinate values indicating the three-dimensional positions of the first vertices with the total number of the second three-dimensional coordinate values indicating the three-dimensional positions of the second vertices, and (ii) matches the total number of the first two-dimensional coordinate values indicating the two-dimensional coordinates in the attribute map corresponding to the first three-dimensional coordinate values with the total number of the second two-dimensional coordinate values indicating the two-dimensional coordinates in the attribute map corresponding to the second three-dimensional coordinate values, thereby matching the total number of the first vertices with the total number of the second vertices.
これによれば、符号化装置100は、第1サブメッシュと第2サブメッシュとが結合された後のメッシュの頂点の三次元座標値と二次元座標値とが、本来のメッシュに近くなるように、三次元点データを符号化できる。 As a result, the encoding device 100 can encode the three-dimensional point data so that the three-dimensional and two-dimensional coordinate values of the vertices of the mesh after the first submesh and the second submesh are combined are close to those of the original mesh.
なお、符号化装置100においても、復号装置200と同様に、上記の境界エッジにおける頂点の総数を一致させる処理が実行されてもよい。 In addition, the encoding device 100 may also perform a process of matching the total number of vertices on the above-mentioned boundary edges, as in the decoding device 200.
また、例えば、符号化装置100は、さらに、第1ベースメッシュを第1回数だけサブ分割することにより、第1ベースメッシュが有する複数の辺上に第1回数に応じた頂点を追加した第1サブメッシュを生成し、第2ベースメッシュを第2回数だけサブ分割することにより、第2ベースメッシュが有する複数の辺上に第2回数に応じた頂点を追加した第2サブメッシュを生成する。 Furthermore, for example, the encoding device 100 further generates a first submesh by sub-dividing the first base mesh a first number of times, in which vertices corresponding to the first number of times are added to the multiple sides of the first base mesh, and generates a second submesh by sub-dividing the second base mesh a second number of times, in which vertices corresponding to the second number of times are added to the multiple sides of the second base mesh.
これによれば、第1ベースメッシュ及び第2ベースメッシュから第1サブメッシュ及び第2サブメッシュが生成され得る。 In this way, a first submesh and a second submesh can be generated from a first base mesh and a second base mesh.
また、例えば、第1回数と第2回数とは、互いに異なる回数であってもよい。 Also, for example, the first number of times and the second number of times may be different from each other.
第1ベースメッシュと第2ベースメッシュとのサブ分割回数が異なると、サブ分割後には、第1サブメッシュにおける第1境界エッジ上、及び、第2サブメッシュにおける第2境界エッジ上の頂点の総数が異なる可能性が高い。したがって、第1回数と第2回数とが異なるような場合に、上記処理によって第1サブメッシュにおける第1境界エッジ上、及び、第2サブメッシュにおける第2境界エッジ上の頂点の総数が揃えられることにより、特に効果的に第1サブメッシュと第2サブメッシュとが結合された後のメッシュの頂点の三次元座標値と二次元座標値との両方の精度が向上され得る。 If the first base mesh and the second base mesh have different numbers of subdivisions, there is a high possibility that the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh will be different after the subdivision. Therefore, when the first and second numbers of subdivisions are different, the above process can be used to make the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh uniform, thereby effectively improving the accuracy of both the three-dimensional coordinate values and the two-dimensional coordinate values of the vertices of the mesh after the first and second submeshes are combined.
また、例えば、符号化装置100は、上記処理では、第1ベースメッシュが第1回数だけサブ分割されることにより生成された第1サブメッシュが有する第1境界エッジ上、又は、第2ベースメッシュが第2回数だけサブ分割されることにより生成された第2サブメッシュが有する第2境界エッジ上に、1個以上の頂点を追加することで、複数の第1頂点の総数と複数の第2頂点の総数とを一致させる。 Furthermore, for example, in the above process, the encoding device 100 adds one or more vertices to a first boundary edge of a first submesh generated by subdividing a first base mesh a first number of times, or to a second boundary edge of a second submesh generated by subdividing a second base mesh a second number of times, thereby making the total number of the first vertices equal to the total number of the second vertices.
これによれば、第1サブメッシュにおける第1境界エッジ上、及び、第2サブメッシュにおける第2境界エッジ上の頂点の総数が揃えられ得る。 This allows the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh to be aligned.
また、例えば、符号化装置100は、上記処理では、第1ベースメッシュが第1回数だけサブ分割されることにより生成された第1サブメッシュが有する第1境界エッジ上、又は、第2ベースメッシュが第2回数だけサブ分割されることにより生成された第2サブメッシュが有する第2境界エッジ上から、1個以上の頂点を除去することで、複数の第1頂点の総数と複数の第2頂点の総数とを一致させる。 Furthermore, for example, in the above process, the encoding device 100 removes one or more vertices from a first boundary edge of a first submesh generated by sub-dividing a first base mesh a first number of times, or from a second boundary edge of a second submesh generated by sub-dividing a second base mesh a second number of times, thereby making the total number of the first vertices equal to the total number of the second vertices.
これによれば、第1サブメッシュにおける第1境界エッジ上、及び、第2サブメッシュにおける第2境界エッジ上の頂点の総数が揃えられ得る。 This allows the total number of vertices on the first boundary edge in the first submesh and the second boundary edge in the second submesh to be aligned.
また、例えば、符号化装置100は、さらに、複数の第1頂点と複数の第2頂点とを結合することで生成された複数の結合点が、第1境界エッジ及び第2境界エッジに対応する境界エッジ上に配置されるように、第1サブメッシュと第2サブメッシュとを結合した三次元メッシュを生成する。 Furthermore, for example, the encoding device 100 generates a three-dimensional mesh by connecting the first submesh and the second submesh such that multiple connection points generated by connecting the multiple first vertices and the multiple second vertices are positioned on the boundary edges corresponding to the first boundary edge and the second boundary edge.
これによれば、第1ベースメッシュと第2ベースメッシュとから三次元メッシュが再構成される。 In this way, a three-dimensional mesh is reconstructed from the first base mesh and the second base mesh.
また、例えば、符号化装置100は、三次元メッシュの生成では、複数の第1頂点のうちの第1対象頂点と、複数の第2頂点のうちの第2対象頂点とを結合することで、複数の結合点のうちの第3対象頂点を生成し、第3対象頂点の生成では、第1対象頂点の三次元位置を示す第1対象三次元座標値と、第2対象頂点の三次元位置を示す第2対象三次元座標値との平均値を算出することで、第3対象頂点の三次元位置を示す第3対象三次元座標値を算出し、第1対象三次元座標値に対応する、属性マップにおける二次元座標を示す第1対象二次元座標値と、第2対象三次元座標値に対応する、属性マップにおける二次元座標を示す第2対象二次元座標値との平均値を算出することで、第3対象三次元座標値に対応する、属性マップにおける二次元座標を示す第3二次元座標値を算出する。 Furthermore, for example, in generating a three-dimensional mesh, the encoding device 100 generates a third object vertex from among the multiple connection points by connecting a first object vertex of the multiple first vertices and a second object vertex of the multiple second vertices, and in generating the third object vertex, calculates a third object three-dimensional coordinate value indicating the three-dimensional position of the third object vertex by calculating the average value of a first object three-dimensional coordinate value indicating the three-dimensional position of the first object vertex and a second object three-dimensional coordinate value indicating the three-dimensional position of the second object vertex, and calculates a third two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the third object three-dimensional coordinate value by calculating the average value of a first object two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the first object three-dimensional coordinate value and a second object two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the second object three-dimensional coordinate value.
これによれば、結合点の三次元座標値及び二次元座標値が算出され得る。 This allows the three-dimensional and two-dimensional coordinate values of the connection points to be calculated.
<その他の例>
以上、符号化装置100及び復号装置200の態様を実施の形態に従って説明したが、符号化装置100及び復号装置200の態様は、実施の形態に限定されない。実施の形態に対して当業者が思いつく変形が施されてもよいし、実施の形態における複数の構成要素が任意に組み合わされてもよい。
<Other examples>
Although the aspects of the encoding device 100 and the decoding device 200 have been described according to the embodiments, the aspects of the encoding device 100 and the decoding device 200 are not limited to the embodiments. Modifications conceived by those skilled in the art may be applied to the embodiments, and multiple components in the embodiments may be combined in any manner.
例えば、実施の形態において特定の構成要素によって実行される処理を特定の構成要素の代わりに別の構成要素が実行してもよい。また、複数の処理の順序が変更されてもよいし、複数の処理が並行して実行されてもよい。 For example, in an embodiment, a process executed by a specific component may be executed by another component instead of the specific component. In addition, the order of multiple processes may be changed, and multiple processes may be executed in parallel.
また、上述した通り、本開示の複数の構成の少なくとも一部は、集積回路として実装され得る。本開示の複数の処理の少なくとも一部が符号化方法又は復号方法として利用されてもよい。当該符号化方法又は当該復号方法をコンピュータに実行させるためのプログラムが利用されてもよい。また、当該プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体が利用されてもよい。また、復号装置200に復号処理を行わせるためのビットストリームが利用されてもよい。 Furthermore, as described above, at least a portion of the configurations of the present disclosure may be implemented as an integrated circuit. At least a portion of the processes of the present disclosure may be used as an encoding method or a decoding method. A program for causing a computer to execute the encoding method or the decoding method may be used. A non-transitory computer-readable recording medium on which the program is recorded may be used. A bitstream for causing the decoding device 200 to perform the decoding process may be used.
また、本開示の複数の構成及び複数の処理の少なくとも一部が、送信装置、受信装置、送信方法及び受信方法として利用されてもよい。当該送信方法又は当該受信方法をコンピュータに実行させるためのプログラムが利用されてもよい。また、当該プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体が利用されてもよい。 Furthermore, at least a portion of the configurations and processes of the present disclosure may be used as a transmitting device, a receiving device, a transmitting method, and a receiving method. A program for causing a computer to execute the transmitting method or the receiving method may be used. Furthermore, a non-transitory computer-readable recording medium on which the program is recorded may be used.
本開示は、例えば、三次元メッシュに関する符号化装置、復号装置、送信装置及び受信装置等に有用であり、コンピュータグラフィックスシステム、及び、三次元データ表示システム等に適用可能である。 The present disclosure is useful, for example, for encoding devices, decoding devices, transmitting devices, and receiving devices related to three-dimensional meshes, and is applicable to computer graphics systems and three-dimensional data display systems, etc.
100 符号化装置
101、121、144 頂点情報符号化器
102、145 接続情報符号化器
103、122 属性情報符号化器
104、204、1103 前処理器
105、205、2106 後処理器
110 三次元データ符号化システム
111、211 制御器
112、212 入出力処理器
113 三次元データ符号化器
114 システム多重化器
115 三次元データ生成器
123 メタデータ符号化器
124、1274 多重化器
131 頂点画像生成器
132 属性画像生成器
133 メタデータ生成器
134 映像符号化器
141 二次元データ符号化器
142 メッシュデータ符号化器
143 テクスチャ符号化器
148 デスクリプション符号化器
151、251 回路
152、252 メモリ
200 復号装置
201、221、244 頂点情報復号器
202、245 接続情報復号器
203、222 属性情報復号器
210 三次元データ復号システム
213 三次元データ復号器
214 システム逆多重化器
215、247 提示器
216 ユーザインタフェース
223 メタデータ復号器
224 逆多重化器
231 頂点情報生成器
232 属性情報生成器
234 映像復号器
241 二次元データ復号器
242 メッシュデータ復号器
243 テクスチャ復号器
246 メッシュ再構成器
248 デスクリプション復号器
300 ネットワーク
310 外部接続器
511 ボリュメトリックキャプチャ器
512 投影器
513 ベースメッシュ符号化器
514 変位符号化器
515 属性符号化器
516 他タイプ符号化器
613 ベースメッシュ復号器
614 変位復号器
615 属性復号器
616 他タイプ復号器
617 三次元再構成器
1101 入力メッシュ
1102、2108 属性マップ
1104、2103 ベースメッシュ
1105、2104 変位データ
1106 圧縮器
1107、1304、2101 ビットストリーム
1108、2105 メタデータ
1231 逆多重化器
1232、1262 スイッチ
1233 静的メッシュ復号器
1234、1264 メッシュバッファ
1235 モーション復号器
1236、1266 ベースメッシュ再構成器
1237、1240 逆量子化器
1238、1243 ビデオ復号器
1239 イメージアンパッカ
1241 逆ウェーブレット変換器
1242 再構成器
1244、1272 色変換器
1251 復号されたベースメッシュ
1252、1402 サブ分割器
1253 サブ分割されたメッシュ
1254 復号された変位データ
1255 変位器
1256 復号された3Dメッシュ
1261、1269 量子化器
1263 静的メッシュ符号化器
1265 モーション符号化器
1267 変位データ更新器
1268 ウェーブレット変換器
1270 イメージパッカ
1271、1273 ビデオ符号化器
1301、2304 メッシュフレーム
1302、2301、2302 ベースメッシュフレーム
1303、2303 変位情報
1401 ベースメッシュ生成器
1403 変位データ生成器
2102 伸張器
2107 出力メッシュ
2109 結合器
2305 復号器
2306 後復号器
2307 前再構成器
2308 再構成器
2309 後再構成器
2310 適合器
2311 最終三次元メッシュフレーム
100 Encoding device 101, 121, 144 Vertex information encoder 102, 145 Connection information encoder 103, 122 Attribute information encoder 104, 204, 1103 Pre-processor 105, 205, 2106 Post-processor 110 Three-dimensional data encoding system 111, 211 Controller 112, 212 Input/output processor 113 Three-dimensional data encoder 114 System multiplexer 115 Three-dimensional data generator 123 Metadata encoder 124, 1274 Multiplexer 131 Vertex image generator 132 Attribute image generator 133 Metadata generator 134 Video encoder 141 Two-dimensional data encoder 142 Mesh data encoder 143 Texture encoder 148 Description encoder 151, 251 Circuit 152, 252 Memory 200 Decoding device 201, 221, 244 Vertex information decoder 202, 245 Connection information decoder 203, 222 Attribute information decoder 210 3D data decoding system 213 3D data decoder 214 System demultiplexer 215, 247 Presentation device 216 User interface 223 Metadata decoder 224 Demultiplexer 231 Vertex information generator 232 Attribute information generator 234 Video decoder 241 2D data decoder 242 Mesh data decoder 243 Texture decoder 246 Mesh reconstructor 248 Description decoder 300 Network 310 External connection device 511 Volumetric capture device 512 Projector 513 Base mesh encoder 514 Displacement encoder 515 Attribute Encoder 516 Other Type Encoder 613 Base Mesh Decoder 614 Displacement Decoder 615 Attribute Decoder 616 Other Type Decoder 617 3D Reconstructor 1101 Input Mesh 1102, 2108 Attribute Map 1104, 2103 Base Mesh 1105, 2104 Displacement Data 1106 Compressor 1107, 1304, 2101 Bitstream 1108, 2105 Metadata 1231 Demultiplexer 1232, 1262 Switch 1233 Static Mesh Decoder 1234, 1264 Mesh Buffer 1235 Motion Decoder 1236, 1266 Base Mesh Reconstructor 1237, 1240 Inverse Quantizer 1238, 1243 Video Decoder 1239 Image Unpacker 1241 Inverse Wavelet Transformer 1242 Reconstructor 1244, 1272 Colour Transformer 1251 Decoded Base Mesh 1252, 1402 Subdivision 1253 Subdivision Mesh 1254 Decoded Displacement Data 1255 Displacer 1256 Decoded 3D Mesh 1261, 1269 Quantiser 1263 Static Mesh Coder 1265 Motion Coder 1267 Displacement Data Updater 1268 Wavelet Transformer 1270 Image Packer 1271, 1273 Video Coder 1301, 2304 Mesh Frame 1302, 2301, 2302 Base Mesh Frame 1303, 2303 Displacement Information 1401 Base Mesh Generator 1403 Displacement Data Generator 2102 Decompressor 2107 Output mesh 2109 Combiner 2305 Decoder 2306 Post-decoder 2307 Pre-reconstructor 2308 Reconstructor 2309 Post-reconstructor 2310 Fitter 2311 Final 3D mesh frame
Claims (10)
符号化された前記三次元点データを復号し、
前記三次元点データに基づいて、前記第1ベースメッシュに基づく第1サブメッシュが有する第1境界エッジ上の複数の第1頂点の総数と、前記第2ベースメッシュに基づく第2サブメッシュが有する第2境界エッジ上の複数の第2頂点の総数とを一致させる処理を実行し、
前記処理では、(i)前記複数の第1頂点の三次元位置を示す複数の第1三次元座標値の総数と、前記複数の第2頂点の三次元位置を示す複数の第2三次元座標値の総数とを一致させ、且つ、(ii)前記複数の第1三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第1二次元座標値の総数と、前記複数の第2三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第2二次元座標値の総数とを一致させることにより、前記複数の第1頂点の総数と前記複数の第2頂点の総数とを一致させる、
復号方法。 Obtaining a bitstream including encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating three-dimensional positions of a plurality of vertices of a first base mesh and a second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in an attribute map corresponding to the plurality of three-dimensional coordinate values;
Decoding the encoded three-dimensional point data;
executing a process of matching a total number of a plurality of first vertices on a first boundary edge of a first submesh based on the first base mesh with a total number of a plurality of second vertices on a second boundary edge of a second submesh based on the second base mesh, based on the three-dimensional point data;
In the process, (i) a total number of a plurality of first three-dimensional coordinate values indicating three-dimensional positions of the plurality of first vertices is made to match a total number of a plurality of second three-dimensional coordinate values indicating three-dimensional positions of the plurality of second vertices, and (ii) a total number of a plurality of first two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the plurality of first three-dimensional coordinate values is made to match a total number of a plurality of second two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the plurality of second three-dimensional coordinate values, thereby making the total number of the plurality of first vertices match the total number of the plurality of second vertices.
Decryption method.
前記第1ベースメッシュを第1回数だけサブ分割することにより、前記第1ベースメッシュが有する複数の辺上に前記第1回数に応じた頂点を追加した前記第1サブメッシュを生成し、
前記第2ベースメッシュを第2回数だけサブ分割することにより、前記第2ベースメッシュが有する複数の辺上に前記第2回数に応じた頂点を追加した前記第2サブメッシュを生成する、
請求項1に記載の復号方法。 moreover,
dividing the first base mesh into sub-divisions a first number of times to generate the first sub-mesh by adding vertices to a plurality of sides of the first base mesh according to the first number of times;
dividing the second base mesh into sub-divisions a second number of times to generate the second sub-mesh by adding vertices to a plurality of sides of the second base mesh according to the second number of times;
The method of decoding according to claim 1 .
請求項2に記載の復号方法。 The first number of times and the second number of times are different from each other.
The decoding method according to claim 2.
前記第1ベースメッシュが前記第1回数だけサブ分割されることにより生成された前記第1サブメッシュが有する前記第1境界エッジ上、又は、前記第2ベースメッシュが前記第2回数だけサブ分割されることにより生成された前記第2サブメッシュが有する前記第2境界エッジ上に、1個以上の頂点を追加することで、前記複数の第1頂点の総数と前記複数の第2頂点の総数とを一致させる、
請求項2に記載の復号方法。 In the process,
adding one or more vertices on the first boundary edge of the first submesh generated by sub-dividing the first base mesh the first number of times, or on the second boundary edge of the second submesh generated by sub-dividing the second base mesh the second number of times, so that a total number of the first vertices and a total number of the second vertices are equal to each other;
The decoding method according to claim 2.
前記第1ベースメッシュが前記第1回数だけサブ分割されることにより生成された前記第1サブメッシュが有する前記第1境界エッジ上、又は、前記第2ベースメッシュが前記第2回数だけサブ分割されることにより生成された前記第2サブメッシュが有する前記第2境界エッジ上から、1個以上の頂点を除去することで、前記複数の第1頂点の総数と前記複数の第2頂点の総数とを一致させる、
請求項2に記載の復号方法。 In the process,
removing one or more vertices from the first boundary edge of the first submesh generated by sub-dividing the first base mesh the first number of times, or from the second boundary edge of the second submesh generated by sub-dividing the second base mesh the second number of times, thereby making a total number of the first vertices equal to a total number of the second vertices;
The decoding method according to claim 2.
請求項1に記載の復号方法。 further generating a three-dimensional mesh by combining the first submesh and the second submesh such that a plurality of connection points generated by combining the plurality of first vertices and the plurality of second vertices are located on boundary edges corresponding to the first boundary edge and the second boundary edge;
The method of decoding according to claim 1 .
前記第3対象頂点の生成では、
前記第1対象頂点の三次元位置を示す第1対象三次元座標値と、前記第2対象頂点の三次元位置を示す第2対象三次元座標値との平均値を算出することで、前記第3対象頂点の三次元位置を示す第3対象三次元座標値を算出し、
前記第1対象三次元座標値に対応する、前記属性マップにおける二次元座標を示す第1対象二次元座標値と、前記第2対象三次元座標値に対応する、前記属性マップにおける二次元座標を示す第2対象二次元座標値との平均値を算出することで、前記第3対象三次元座標値に対応する、前記属性マップにおける二次元座標を示す第3二次元座標値を算出する、
請求項6に記載の復号方法。 In generating the three-dimensional mesh, a first target vertex of the plurality of first vertices is connected to a second target vertex of the plurality of second vertices to generate a third target vertex of the plurality of connection points;
In generating the third target vertex,
calculating an average value of a first object three-dimensional coordinate value indicating the three-dimensional position of the first object vertex and a second object three-dimensional coordinate value indicating the three-dimensional position of the second object vertex, thereby calculating a third object three-dimensional coordinate value indicating the three-dimensional position of the third object vertex;
calculating an average value of a first object two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the first object three-dimensional coordinate value and a second object two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the second object three-dimensional coordinate value, thereby calculating a third two-dimensional coordinate value indicating a two-dimensional coordinate in the attribute map corresponding to the third object three-dimensional coordinate value;
The decoding method according to claim 6.
前記処理の実行結果に基づいて、前記第1ベースメッシュ及び前記第2ベースメッシュが有する複数の頂点の三次元位置を示す複数の三次元座標値と、前記複数の三次元座標値に対応する、属性マップにおける二次元座標を示す複数の二次元座標値とを示す符号化された三次元点データを符号化し、
符号化された前記三次元点データを含むビットストリームを生成し、
前記処理では、(i)前記複数の第1頂点の三次元位置を示す複数の第1三次元座標値の総数と、前記複数の第2頂点の三次元位置を示す複数の第2三次元座標値の総数とを一致させ、且つ、(ii)前記複数の第1三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第1二次元座標値の総数と、前記複数の第2三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第2二次元座標値の総数とを一致させることにより、前記複数の第1頂点の総数と前記複数の第2頂点の総数とを一致させる、
符号化方法。 performing a process of matching a total number of first vertices on a first boundary edge of a first submesh based on a first base mesh with a total number of second vertices on a second boundary edge of a second submesh based on a second base mesh;
Based on the execution result of the process, encode encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating three-dimensional positions of a plurality of vertices of the first base mesh and the second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in an attribute map corresponding to the plurality of three-dimensional coordinate values;
generating a bitstream including the encoded 3D point data;
In the process, (i) a total number of a plurality of first three-dimensional coordinate values indicating three-dimensional positions of the plurality of first vertices is made to match a total number of a plurality of second three-dimensional coordinate values indicating three-dimensional positions of the plurality of second vertices, and (ii) a total number of a plurality of first two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the plurality of first three-dimensional coordinate values is made to match a total number of a plurality of second two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the plurality of second three-dimensional coordinate values, thereby making the total number of the plurality of first vertices match the total number of the plurality of second vertices.
Encoding method.
前記回路に接続されたメモリと、を備え、
前記回路が、動作中に、
第1ベースメッシュ及び第2ベースメッシュが有する複数の頂点の三次元位置を示す複数の三次元座標値と、前記複数の三次元座標値に対応する、属性マップにおける二次元座標を示す複数の二次元座標値とを示す符号化された三次元点データを含むビットストリームを取得し、
符号化された前記三次元点データを復号し、
前記三次元点データに基づいて、前記第1ベースメッシュに基づく第1サブメッシュが有する第1境界エッジ上の複数の第1頂点の総数と、前記第2ベースメッシュに基づく第2サブメッシュが有する第2境界エッジ上の複数の第2頂点の総数とを一致させる処理を実行し、
前記処理では、(i)前記複数の第1頂点の三次元位置を示す複数の第1三次元座標値の総数と、前記複数の第2頂点の三次元位置を示す複数の第2三次元座標値の総数とを一致させ、且つ、(ii)前記複数の第1三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第1二次元座標値の総数と、前記複数の第2三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第2二次元座標値の総数とを一致させることにより、前記複数の第1頂点の総数と前記複数の第2頂点の総数とを一致させる、
復号装置。 The circuit,
a memory connected to the circuit,
The circuit, during operation,
Obtaining a bitstream including encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating three-dimensional positions of a plurality of vertices of a first base mesh and a second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in an attribute map corresponding to the plurality of three-dimensional coordinate values;
Decoding the encoded three-dimensional point data;
executing a process of matching a total number of a plurality of first vertices on a first boundary edge of a first submesh based on the first base mesh with a total number of a plurality of second vertices on a second boundary edge of a second submesh based on the second base mesh, based on the three-dimensional point data;
In the process, (i) a total number of a plurality of first three-dimensional coordinate values indicating three-dimensional positions of the plurality of first vertices is made to match a total number of a plurality of second three-dimensional coordinate values indicating three-dimensional positions of the plurality of second vertices, and (ii) a total number of a plurality of first two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the plurality of first three-dimensional coordinate values is made to match a total number of a plurality of second two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the plurality of second three-dimensional coordinate values, thereby making the total number of the plurality of first vertices match the total number of the plurality of second vertices.
Decryption device.
前記回路に接続されたメモリと、を備え、
前記回路が、動作中に、
第1ベースメッシュに基づく第1サブメッシュが有する第1境界エッジ上の複数の第1頂点の総数と、第2ベースメッシュに基づく第2サブメッシュが有する第2境界エッジ上の複数の第2頂点の総数とを一致させる処理を実行し、
前記処理の実行結果に基づいて、前記第1ベースメッシュ及び前記第2ベースメッシュが有する複数の頂点の三次元位置を示す複数の三次元座標値と、前記複数の三次元座標値に対応する、属性マップにおける二次元座標を示す複数の二次元座標値とを示す符号化された三次元点データを符号化し、
符号化された前記三次元点データを含むビットストリームを生成し、
前記処理では、(i)前記複数の第1頂点の三次元位置を示す複数の第1三次元座標値の総数と、前記複数の第2頂点の三次元位置を示す複数の第2三次元座標値の総数とを一致させ、且つ、(ii)前記複数の第1三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第1二次元座標値の総数と、前記複数の第2三次元座標値に対応する、前記属性マップにおける二次元座標を示す複数の第2二次元座標値の総数とを一致させることにより、前記複数の第1頂点の総数と前記複数の第2頂点の総数とを一致させる、
符号化装置。 The circuit,
a memory connected to the circuit,
The circuit, during operation,
performing a process of matching a total number of first vertices on a first boundary edge of a first submesh based on a first base mesh with a total number of second vertices on a second boundary edge of a second submesh based on a second base mesh;
Based on the execution result of the process, encode encoded three-dimensional point data indicating a plurality of three-dimensional coordinate values indicating three-dimensional positions of a plurality of vertices of the first base mesh and the second base mesh, and a plurality of two-dimensional coordinate values indicating two-dimensional coordinates in an attribute map corresponding to the plurality of three-dimensional coordinate values;
generating a bitstream including the encoded 3D point data;
In the process, (i) a total number of a plurality of first three-dimensional coordinate values indicating three-dimensional positions of the plurality of first vertices is made to match a total number of a plurality of second three-dimensional coordinate values indicating three-dimensional positions of the plurality of second vertices, and (ii) a total number of a plurality of first two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the plurality of first three-dimensional coordinate values is made to match a total number of a plurality of second two-dimensional coordinate values indicating two-dimensional coordinates in the attribute map corresponding to the plurality of second three-dimensional coordinate values, thereby making the total number of the plurality of first vertices match the total number of the plurality of second vertices.
Encoding device.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202463619969P | 2024-01-11 | 2024-01-11 | |
| US63/619,969 | 2024-01-11 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025150425A1 true WO2025150425A1 (en) | 2025-07-17 |
Family
ID=96386976
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2024/045808 Pending WO2025150425A1 (en) | 2024-01-11 | 2024-12-25 | Decoding method, encoding method, decoding device, and encoding device |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025150425A1 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015161951A (en) * | 2014-02-25 | 2015-09-07 | キヤノン株式会社 | Image processor and image processing method |
| US20230063575A1 (en) * | 2021-08-25 | 2023-03-02 | Tencent America LLC | Patch zippering for mesh compression |
| US20230290008A1 (en) * | 2022-03-11 | 2023-09-14 | Apple Inc. | Image/video-based mesh compression |
| US20230319293A1 (en) * | 2022-04-04 | 2023-10-05 | Tencent America LLC | Triangulation methods with boundary information for dynamic mesh compression |
-
2024
- 2024-12-25 WO PCT/JP2024/045808 patent/WO2025150425A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015161951A (en) * | 2014-02-25 | 2015-09-07 | キヤノン株式会社 | Image processor and image processing method |
| US20230063575A1 (en) * | 2021-08-25 | 2023-03-02 | Tencent America LLC | Patch zippering for mesh compression |
| US20230290008A1 (en) * | 2022-03-11 | 2023-09-14 | Apple Inc. | Image/video-based mesh compression |
| US20230319293A1 (en) * | 2022-04-04 | 2023-10-05 | Tencent America LLC | Triangulation methods with boundary information for dynamic mesh compression |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20240259595A1 (en) | Encoding device, decoding device, encoding method, and decoding method | |
| US20250322550A1 (en) | Encoding method, decoding method, encoding device, and decoding device | |
| US20250095214A1 (en) | Encoding device, decoding device, encoding method, and decoding method | |
| CN118556400A (en) | Point cloud data transmitting device, point cloud data transmitting method, point cloud data receiving device and point cloud data receiving method | |
| WO2024214745A1 (en) | Encoding device, decoding device, encoding method, and decoding method | |
| US20250371743A1 (en) | Encoding method, decoding method, encoding device, and decoding device | |
| US20250220233A1 (en) | Encoding device, decoding device, encoding method, and decoding method | |
| WO2025084224A1 (en) | Encoding method, decoding method, encoding device, and decoding device | |
| WO2024195505A1 (en) | Encoding device, decoding device, encoding method, and decoding method | |
| WO2025150425A1 (en) | Decoding method, encoding method, decoding device, and encoding device | |
| WO2025216315A1 (en) | Encoding method, decoding method, encoding device, and decoding device | |
| WO2025070342A1 (en) | Encoding device, decoding device, encoding method, and decoding method | |
| WO2025220615A1 (en) | Encoding method, decoding method, encoding device, and decoding device | |
| WO2024232318A1 (en) | Decoding method, encoding method, decoding device, and encoding device | |
| WO2025216144A1 (en) | Encoding method, decoding method, encoding device, and decoding device | |
| WO2025009527A1 (en) | Encoding device, decoding device, encoding method, and decoding method | |
| WO2025074908A1 (en) | Encoding device, decoding device, encoding method, and decoding method | |
| WO2025142886A1 (en) | Encoding method, decoding method, encoding device, and decoding device | |
| WO2025004935A1 (en) | Encoding method, decoding method, encoding device, and decoding device | |
| WO2025220701A1 (en) | Encoding method, decoding method, encoding device, and decoding device | |
| WO2025220696A1 (en) | Encoding method, decoding method, encoding device, and decoding device | |
| WO2025154742A1 (en) | Encoding method, decoding method, encoding device, and decoding device | |
| US20240236305A1 (en) | Vertices grouping in mesh motion vector coding | |
| WO2025182831A1 (en) | Encoding method, decoding method, encoding device, and decoding device | |
| RU2799041C1 (en) | Method and device for encoding point cloud |
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: 24916927 Country of ref document: EP Kind code of ref document: A1 |