WO2025205261A1 - 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置及び三次元データ復号装置 - Google Patents
三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置及び三次元データ復号装置Info
- Publication number
- WO2025205261A1 WO2025205261A1 PCT/JP2025/010526 JP2025010526W WO2025205261A1 WO 2025205261 A1 WO2025205261 A1 WO 2025205261A1 JP 2025010526 W JP2025010526 W JP 2025010526W WO 2025205261 A1 WO2025205261 A1 WO 2025205261A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- encoding
- information
- components
- unit
- 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
- This disclosure relates to a three-dimensional data encoding method, a three-dimensional data decoding method, a three-dimensional data encoding device, and a three-dimensional data decoding device.
- 3D data can be acquired in a variety of ways, including distance sensors such as rangefinders, stereo cameras, or a combination of multiple monocular cameras.
- a three-dimensional data decoding method is a three-dimensional data decoding method for decoding Gaussian data, wherein the Gaussian data includes a plurality of first components, each of which is expressed in one or more dimensions, and the plurality of first components includes a first component indicating position coordinates and a first component indicating information on a scale value based on the position coordinates, and the three-dimensional data decoding method obtains a bitstream including encoded data generated by encoding the plurality of first components, and generates the plurality of first components by decoding the encoded data using a point cloud decoding method.
- FIG. 24 is a block diagram of an attribute information decoding unit according to the embodiment.
- FIG. 25 is a block diagram of a three-dimensional data encoding device according to an embodiment.
- FIG. 26 is a block diagram of a three-dimensional data decoding device according to an embodiment.
- FIG. 27 is a diagram showing the relationship between tiles and slices according to the embodiment.
- FIG. 28 is a diagram illustrating an example of the configuration of a bitstream according to the embodiment.
- FIG. 29 is a block diagram showing an example of the configuration of a three-dimensional data encoding device according to an embodiment.
- FIG. 30 is a diagram showing an example of the structure of coded data and NAL units according to an embodiment.
- the number of dimensions of the multiple second components may be equal to or less than a predetermined number, and the conversion may involve dividing a first component of the multiple first components whose number of dimensions is greater than the predetermined number into two or more second components.
- the three-dimensional data encoding method can encode Gaussian data using a point cloud encoding method by converting the data into a format compatible with the point cloud encoding method.
- the bitstream may include a parameter set including information indicating the types of the multiple first components. This allows the decoding device to determine the types of the multiple first components using the information included in the bitstream.
- a three-dimensional data decoding method is a three-dimensional data decoding method for decoding Gaussian data, wherein the Gaussian data includes a plurality of first components, each of which is expressed in one or more dimensions, and the plurality of first components includes a first component indicating position coordinates and a first component indicating information on a scale value based on the position coordinates, and the three-dimensional data decoding method obtains a bitstream including encoded data generated by encoding the plurality of first components, and generates the plurality of first components by decoding the encoded data using a point cloud decoding method.
- the encoding device to encode Gaussian data using a point cloud encoding method. Therefore, Gaussian data can be encoded without creating a new encoding method for Gaussian data, enabling efficient processing. Furthermore, the three-dimensional data decoding method can appropriately decode encoded data generated by the encoding device.
- the plurality of first components may further include a first component indicating information about a rotation value based on the position coordinates.
- the plurality of first components may further include a first component indicating color information or a first component indicating transmittance.
- the rotation values and scale values may be represented as covariance matrix information.
- the plurality of first components may further include a first component representing a coefficient of a spherical harmonic function.
- the number of dimensions of the plurality of second components may be equal to or less than a predetermined number, and the transformation may combine two or more of the plurality of second components into a first component with a number of dimensions greater than the predetermined number.
- the encoding device can encode Gaussian data using the point cloud encoding method by converting the data into a format compatible with the point cloud encoding method. Furthermore, the three-dimensional data decoding method can appropriately decode the encoded data generated by the encoding device.
- a three-dimensional data encoding device is a three-dimensional data encoding device that encodes Gaussian data, and includes a processor and a memory.
- the Gaussian data includes a plurality of first components, each of which is expressed in one or more dimensions, and which include a first component that indicates position coordinates and a first component that indicates information about a scale value based on the position coordinates.
- the processor uses the memory to generate encoded data by encoding the plurality of first components using a point cloud encoding method, and generates a bitstream that includes the encoded data.
- Gaussian data can be encoded without creating a new encoding method for Gaussian data, enabling efficient processing.
- the encoding device to encode Gaussian data using a point cloud encoding method. Therefore, Gaussian data can be encoded without creating a new encoding method for Gaussian data, enabling efficient processing. Furthermore, the three-dimensional data decoding device can appropriately decode the encoded data generated by the encoding device.
- a three-dimensional data encoding method is a three-dimensional data encoding method for encoding Gaussian data, wherein the Gaussian data includes a plurality of first components, each of which is represented in one or more dimensions; the three-dimensional data encoding method selects one of a plurality of encoding methods, generates encoded data by encoding the plurality of first components using the selected encoding method, and generates a bitstream including the encoded data and first information indicating the selected encoding method.
- the three-dimensional data encoding method can encode Gaussian data using the selected encoding method by converting the data into a format that corresponds to the selected encoding method. Furthermore, the decoding device can convert multiple second components into multiple first components using second information included in the bitstream.
- the plurality of encoding methods may further include an encoding method for a neural network.
- the bitstream may include a parameter set common to the plurality of encoding methods, and the parameter set may include the first information.
- a three-dimensional data decoding method is a three-dimensional data decoding method for decoding Gaussian data, wherein the Gaussian data includes a plurality of first components, each of which is represented in one or more dimensions; the three-dimensional data decoding method acquires a bit stream including encoded data generated by encoding the plurality of first components; acquires first information indicating an encoding method used to encode the plurality of first components from among a plurality of encoding methods included in the bit stream; and generates the plurality of first components by decoding the encoded data using a decoding method corresponding to the encoding method indicated by the first information.
- the encoded data may be generated by encoding a plurality of second components into which the plurality of first components are converted, and the three-dimensional data decoding method may further acquire second information indicating a correspondence between the plurality of first components and the plurality of second components from the bitstream, and in the decoding, generate the plurality of second components by decoding the encoded data using the decoding method, and convert the plurality of second components into the plurality of first components using the correspondence indicated by the second information.
- the plurality of encoding methods may further include an encoding method for a neural network.
- the bitstream may include a parameter set common to the plurality of encoding methods, and the parameter set may include the first information.
- the bitstream may include a plurality of units common to the plurality of encoding methods
- the first information may include a plurality of pieces of third information included in the headers of each of the plurality of units
- each of the plurality of units may store either first encoded data encoded using the geometry-based encoding method, second encoded data encoded using the video-based encoding method, or a plurality of pieces of data including the common parameters
- each of the plurality of pieces of third information may indicate the type of data stored in the unit containing the third information.
- the encoding device can selectively select from multiple encoding methods the encoding method to use for encoding Gaussian data. This potentially improves encoding efficiency. Furthermore, the three-dimensional data decoding device can properly decode the encoded data generated by the encoding device.
- the three-dimensional data encoding system 101 generates encoded data or multiplexed data by encoding three-dimensional data such as three-dimensional point cloud data or three-dimensional mesh data.
- the three-dimensional data encoding system 101 may be a three-dimensional data encoding device implemented by a single device, or a system implemented by multiple devices.
- the three-dimensional data encoding device may also include some of the multiple processing units included in the three-dimensional data encoding system 101.
- the three-dimensional data encoding system 101 includes a three-dimensional data generation system 111, a presentation unit 112, an encoding unit 113, a multiplexing unit 114, an input/output unit 115, and a control unit 116.
- the three-dimensional data generation system 111 includes a sensor information acquisition unit 117 and a three-dimensional data generation unit 118.
- the sensor information acquisition unit 117 acquires sensor information (sensor signals) from the sensor terminal 103 and outputs the sensor information to the three-dimensional data generation unit 118.
- the three-dimensional data generation unit 118 generates three-dimensional data from the sensor information and outputs the three-dimensional data to the encoding unit 113.
- the encoding unit 113 encodes (compresses) the three-dimensional data and outputs the resulting encoded data, control information obtained during the encoding process, and other additional information to the multiplexing unit 114.
- the additional information includes, for example, sensor information.
- the input/output unit 115 (e.g., a communication unit or interface) outputs the multiplexed data to the outside.
- the multiplexed data is stored in a storage unit such as internal memory.
- the control unit 116 (or application execution unit) controls each processing unit. In other words, the control unit 116 controls encoding, multiplexing, etc.
- the three-dimensional data decoding system 102 generates three-dimensional data such as three-dimensional point cloud data or three-dimensional mesh data by decoding the encoded data or multiplexed data.
- the three-dimensional data decoding system 102 may be a three-dimensional data decoding device realized by a single device, or may be a system realized by multiple devices.
- the three-dimensional data decoding device may also include some of the multiple processing units included in the three-dimensional data decoding system 102.
- the sensor information acquisition unit 121 acquires sensor information (sensor signals) from the sensor terminal 103.
- the input/output unit 122 acquires the transmission signal, decodes the multiplexed data (file format or packets) from the transmission signal, and outputs the multiplexed data to the demultiplexer unit 123.
- the decoding unit 124 reconstructs the three-dimensional data by decoding the encoded data.
- the presentation unit 125 presents the three-dimensional data to the user. For example, the presentation unit 125 displays information or images based on the three-dimensional data.
- the user interface 126 acquires instructions based on user operations.
- the control unit 127 (or application execution unit) controls each processing unit. In other words, the control unit 127 controls demultiplexing, decoding, presentation, etc.
- the input/output unit 122 may acquire the three-dimensional data or encoded data directly from outside.
- the presentation unit 125 may also acquire additional information such as sensor information and present information based on the additional information.
- the presentation unit 125 may also present information based on user instructions acquired by the user interface 126.
- Sensor information that can be acquired by the sensor terminal 103 includes, for example, (1) the distance between the sensor terminal 103 and an object, or the reflectance of the object, obtained from a LIDAR, millimeter-wave radar, or infrared sensor, and (2) the distance between the camera and the object, or the reflectance of the object, obtained from multiple monocular camera images or stereo camera images.
- the sensor information may also include the sensor's attitude, orientation, gyro (angular velocity), position (GPS information or altitude), speed, acceleration, etc.
- the sensor information may also include temperature, air pressure, humidity, magnetism, etc.
- FIG. 2 is a diagram showing the structure of point cloud data.
- Figure 3 is a diagram showing an example of the structure of a data file in which information about point cloud data is described.
- One piece of attribute information may be associated with one piece of location information, or multiple pieces of attribute information with different attribute types may be associated with one piece of location information. Furthermore, multiple pieces of attribute information of the same attribute type may be associated with one piece of location information.
- the data file configuration example shown in Figure 3 is an example where there is a one-to-one correspondence between location information and attribute information, and shows the location information and attribute information of N points that make up the point cloud data.
- Mesh data is a data format used in CG (Computer Graphics).
- Mesh data represents the three-dimensional shape of an object through a collection of surface information.
- the surface information is polygons such as triangles or quadrangles, and is also called a polygon or polygon mesh.
- Mesh data consists of a 3D point cloud (a set of points with 3D position information and attribute information corresponding to that position information), as well as a set of 3D points as vertices, edges connecting two vertices, and faces enclosed by the edges.
- Vertices may have attribute information such as color information, reflectance, or normal vectors for the point. Information indicating the relationship between the vertices that make up an edge or face is also called connectivity. The front and back of a face can be expressed by the direction of the normal vector for the point. Mesh data may also have attribute information for faces.
- Face information is represented by a combination of vertex indices.
- Figure 6 is a diagram showing the types of three-dimensional data. As shown in Figure 6, three-dimensional data includes static objects and dynamic objects.
- Sensor information is acquired by various methods, such as distance sensors such as LIDAR or range finders, stereo cameras, or a combination of multiple monocular cameras.
- the three-dimensional data generation unit 118 generates three-dimensional data based on the sensor information acquired by the sensor information acquisition unit 117.
- the three-dimensional data generation unit 118 generates position information as three-dimensional data and adds attribute information for that position information to the position information.
- the three-dimensional data generation unit 118 may process the three-dimensional data when generating position information or adding attribute information. For example, the three-dimensional data generation unit 118 may reduce the amount of data by deleting point clouds with overlapping positions. The three-dimensional data generation unit 118 may also transform the position information (such as by shifting the position, rotating, or normalizing). The three-dimensional data generation unit 118 may also generate mesh data from the point cloud data. The three-dimensional data generation unit 118 may also render the attribute information.
- the encoding unit 113 generates encoded data by encoding the three-dimensional data.
- the first is an encoding method that uses position information, and this encoding method will be referred to as the first encoding method hereafter.
- the second is an encoding method that uses a video codec, and this encoding method will be referred to as the second encoding method hereafter.
- the decoding unit 124 decodes the encoded data to decode the point cloud data.
- the multiplexing unit 114 generates multiplexed data by multiplexing the encoded data using an existing multiplexing method. The generated multiplexed data is transmitted or stored. In addition to the PCC encoded data, the multiplexing unit 114 multiplexes other media such as video, audio, subtitles, applications, and files, or reference time information.
- the multiplexing unit 114 may also multiplex sensor information or attribute information related to the three-dimensional data.
- Multiplexing methods or file formats include ISOBMFF, and ISOBMFF-based transmission methods such as MPEG-DASH, MMT, MPEG-2 TS Systems, and RTP.
- the input/output unit 115 transmits the multiplexed data using a method suited to the transmission medium or storage medium, such as broadcasting or communication.
- the input/output unit 115 may communicate with other devices via the Internet, or with a storage unit such as a cloud server.
- Communication protocols include http, ftp, TCP, and UDP.
- a pull-type communication method or a push-type communication method may be used.
- Either wired or wireless transmission may be used.
- Ethernet registered trademark
- USB registered trademark
- RS-232C USB
- HDMI registered trademark
- coaxial cable may be used.
- wireless transmission wireless LAN, Wi-Fi (registered trademark), Bluetooth (registered trademark), or millimeter waves may be used.
- broadcasting systems such as DVB-T2, DVB-S2, DVB-C2, ATSC3.0, or ISDB-S3 are used.
- the first encoding unit 130 is characterized by performing encoding with consideration of three-dimensional structure.
- the first encoding unit 130 is also characterized by the attribute information encoding unit 132 performing encoding using information obtained from the position information encoding unit 131.
- the first encoding method is also known as G-PCC (Geometry-based PCC).
- the point cloud data is PCC point cloud data such as a PLY file, or PCC point cloud data generated from sensor information, and includes position information (Position), attribute information (Attribute), and other additional information (MetaData).
- Position information is input to the position information encoding unit 131
- attribute information is input to the attribute information encoding unit 132
- additional information is input to the additional information encoding unit 133.
- the position information of the vertex information is input to the position information encoding unit 131, and the face information, or attribute information for the faces and vertices, is input to the attribute information encoding unit 132.
- the position information encoding unit 131 encodes the position information to generate encoded position information (Compressed Geometry), which is encoded data.
- the position information encoding unit 131 encodes the position information using an N-ary tree structure such as an octree.
- an octree the target space is divided into eight nodes (subspaces), and 8-bit information (occupancy code) indicating whether or not a point cloud is included in each node is generated.
- the node that includes a point cloud is further divided into eight nodes, and 8-bit information indicating whether or not a point cloud is included in each of the eight nodes is generated. This process is repeated until the number of point clouds included in a predetermined hierarchy or node falls below a threshold.
- the attribute information encoding unit 132 generates encoded attribute information (Compressed Attribute), which is encoded data, by encoding using the configuration information generated by the position information encoding unit 131. For example, the attribute information encoding unit 132 determines a reference point (reference node) to reference when encoding the target point (target node) to be processed, based on the octree structure generated by the position information encoding unit 131. For example, the attribute information encoding unit 132 references a peripheral or adjacent node whose parent node in the octree is the same as that of the target node. Note that the method of determining the reference relationship is not limited to this.
- the encoding process for attribute information may include at least one of quantization, prediction, and arithmetic coding.
- referencing means using a reference node to calculate a predicted value for attribute information, or using the state of the reference node (e.g., occupancy information indicating whether the reference node contains a point group) to determine encoding parameters.
- encoding parameters include quantization parameters in quantization, or context in arithmetic coding.
- the additional information encoding unit 133 generates encoded additional information (Compressed MetaData), which is encoded data, by encoding compressible data from the additional information.
- Compressed MetaData encoded additional information
- the first decoding unit 140 which is an example of the decoding unit 124 that performs decoding using the first encoding method.
- Figure 9 is a diagram showing the configuration of the first decoding unit 140.
- Figure 10 is a block diagram of the first decoding unit 140.
- the first decoding unit 140 generates point cloud data by decoding, using the first encoding method, coded data (coded stream).
- This first decoding unit 140 includes a demultiplexing unit 141, a position information decoding unit 142, an attribute information decoding unit 143, and an additional information decoding unit 144.
- An encoded stream (compressed stream), which is encoded data, is input to the first decoding unit 140 from a system layer processing unit (not shown).
- the demultiplexing unit 141 separates the encoded position information (Compressed Geometry), encoded attribute information (Compressed Attribute), encoded additional information (Compressed MetaData), and other additional information from the encoded data.
- the attribute information decoding unit 143 decodes the encoded attribute information based on the configuration information generated by the position information decoding unit 142. For example, the attribute information decoding unit 143 determines the reference point (reference node) to reference when decoding the target point (target node) to be processed, based on the octree structure obtained by the position information decoding unit 142. For example, the attribute information decoding unit 143 references a peripheral or adjacent node whose parent node in the octree is the same as that of the target node. Note that the method of determining the reference relationship is not limited to this.
- the attribute information decoding process may include at least one of inverse quantization, prediction, and arithmetic decoding.
- referencing means using a reference node to calculate a predicted value of the attribute information, or using the state of the reference node (e.g., occupancy information indicating whether the reference node contains a point group) to determine decoding parameters.
- decoding parameters include quantization parameters in inverse quantization, or context in arithmetic decoding.
- the additional information decoding unit 144 generates additional information by decoding the encoded additional information.
- the first decoding unit 140 uses the additional information required for decoding the position information and attribute information during decoding, and outputs the additional information required for the application to the outside.
- a second encoding unit 150 which is an example of the encoding unit 113 that performs encoding using the second encoding method, will be described.
- Fig. 11 is a diagram showing the configuration of the second encoding unit 150.
- Fig. 12 is a block diagram of the second encoding unit 150.
- the second encoding unit 150 is characterized by generating position images and attribute images by projecting a three-dimensional structure onto a two-dimensional image, and encoding the generated position images and attribute images using an existing video encoding method.
- the second encoding method is also called VPCC (Video-based PCC).
- the point cloud data is PCC point cloud data such as a PLY file, or PCC point cloud data generated from sensor information, and includes position information (Position), attribute information (Attribute), and other additional information (MetaData).
- the additional information generation unit 151 generates map information for multiple two-dimensional images by projecting three-dimensional structures onto two-dimensional images.
- the position image generation unit 152 generates a position image (Geometry Image) based on the position information and the map information generated by the additional information generation unit 151.
- This position image is, for example, a distance image in which distance (Depth) is indicated as pixel values. Note that this distance image may be an image of multiple point clouds viewed from a single viewpoint (an image in which multiple point clouds are projected onto a single two-dimensional plane), or multiple images of multiple point clouds viewed from multiple viewpoints, or a single image in which these multiple images are integrated.
- the position information of the vertex information is input to the position image generation unit 152, and the face information or attribute information for the faces and vertices is input to the attribute image generation unit 153.
- the video encoding unit 154 generates encoded data, an encoded position image (Compressed Geometry Image) and an encoded attribute image (Compressed Attribute Image), by encoding the position image and attribute image using a video encoding method.
- Any known encoding method may be used as the video encoding method.
- the video encoding method is AVC or HEVC.
- the additional information encoding unit 155 generates encoded additional information (Compressed MetaData) by encoding the additional information and map information contained in the point cloud data.
- the multiplexing unit 156 generates a compressed stream, which is encoded data, by multiplexing the encoded position image, encoded attribute image, encoded additional information, and other additional information.
- the generated compressed stream is output to a processing unit in the system layer (not shown).
- the encoded stream (compressed stream), which is encoded data, is input to the second decoding unit 160 from a system layer processing unit (not shown).
- the additional information decoding unit 163 decodes the encoded additional information to generate additional information including map information, etc.
- the location information generation unit 164 generates location information using the location image and map information.
- the attribute information generation unit 165 generates attribute information using the attribute image and map information.
- the second decoding unit 160 uses the additional information required for decoding during decoding and outputs the additional information required for the application to the outside.
- [Position information encoding in the first encoding method] 15 is a block diagram showing an example configuration of the position information encoding unit 131.
- the position information encoding unit 131 includes an octree encoding unit 171 and a predictive tree encoding unit 172.
- the octree encoding unit 171 generates encoded position information and metadata by encoding the position information using an encoding method that uses an octree (octree encoding).
- the predictive tree encoding unit 172 generates encoded position information and metadata by encoding the position information using an encoding method that uses a predictive tree (predictive tree encoding).
- FIG. 17 is a block diagram of the octree encoding unit 171 according to this embodiment.
- the octree encoding unit 171 includes an octree generation unit 181, a geometric information calculation unit 182, a coding table selection unit 183, and an entropy encoding unit 184.
- the entropy coding unit 184 generates coding position information and metadata by entropy coding the occupancy code of the target node using the coding table of the selected index number.
- the entropy coding unit 184 may add information indicating the selected coding table to the coding position information.
- Position information (position data) is converted (octreeized) into an octree structure and then encoded.
- the octree structure consists of nodes and leaves. Each node has eight nodes or leaves, and each leaf has voxel (VXL) information.
- Figure 18 is a diagram showing an example of the structure of position information containing multiple voxels.
- Figure 19 is a diagram showing an example of the position information shown in Figure 18 converted into an octree structure.
- leaves 1, 2, and 3 represent voxels VXL1, VXL2, and VXL3 shown in Figure 18, respectively, and represent a VXL containing a point cloud (hereinafter referred to as a valid VXL).
- FIG 20 is a block diagram of the octree decoding unit 173 according to this embodiment.
- the octree decoding unit 173 includes an octree generation unit 191, a geometric information calculation unit 192, an encoding table selection unit 193, and an entropy decoding unit 194.
- the octree generator 191 generates an octree for a space (node) using header information or metadata from the bitstream. For example, the octree generator 191 generates a large space (root node) using the dimensions of the x-axis, y-axis, and z-axis of a space added to the header information, and then generates an octree by dividing that space into two along the x-axis, y-axis, and z-axis to generate eight small spaces A (nodes A0 to A7). Nodes A0 to A7 are set in order as target nodes.
- the geometric information calculation unit 192 obtains occupancy information indicating whether an adjacent node of the target node is an occupied node. For example, the geometric information calculation unit 192 calculates the occupancy information of the adjacent node from the occupancy code of the parent node to which the target node belongs. The geometric information calculation unit 192 may also store decoded nodes in a list and search for adjacent nodes from within that list. The geometric information calculation unit 192 may also switch adjacent nodes depending on the position of the target node within the parent node.
- the entropy decoding unit 194 generates position information by entropy decoding the occupancy code of the target node using the selected encoding table.
- the entropy decoding unit 194 may also obtain information about the selected encoding table by decoding it from the bitstream, and entropy decode the occupancy code of the target node using the encoding table indicated by that information.
- the attribute information encoding unit 132 includes an LoD attribute information encoding unit 201 and a transformed attribute information encoding unit 202.
- the LoD attribute information encoding unit 201 uses the position information of each 3D point to classify the 3D points into multiple layers, predicts the attribute information of the 3D points belonging to each layer, and encodes the prediction residual.
- each classified layer is called an LoD (Level of Detail).
- the transformed attribute information encoding unit 202 encodes the attribute information using RAHT (Region Adaptive Hierarchical Transform). Specifically, the transformed attribute information encoding unit 202 applies RAHT or Haar transform to each piece of attribute information based on the position information of the three-dimensional points, generating high-frequency and low-frequency components for each layer, and then encodes these values using quantization, entropy coding, etc.
- RAHT Restion Adaptive Hierarchical Transform
- FIG. 22 is a block diagram showing an example configuration of the attribute information decoding unit 143.
- the attribute information decoding unit may include multiple decoding units that execute different decoding methods. For example, the attribute information decoding unit may switch between the following two methods based on information contained in the header or metadata.
- the attribute information decoding unit 143 includes an LoD attribute information decoding unit 203 and a converted attribute information decoding unit 204.
- the LoD attribute information decoding unit 203 classifies each 3D point into multiple layers using the position information of the 3D points, and decodes the attribute values while predicting the attribute information of the 3D points belonging to each layer.
- the transformed attribute information decoding unit 204 decodes the attribute information using RAHT (Region Adaptive Hierarchical Transform). Specifically, the transformed attribute information decoding unit 204 decodes the attribute values by applying an inverse RAHT or inverse Haar transform to the high-frequency and low-frequency components of each attribute value based on the position information of the three-dimensional points.
- RAHT Restion Adaptive Hierarchical Transform
- the sorting unit 211 generates a Morton code using the position information of the 3D points and sorts the multiple 3D points in Morton code order.
- the Haar transform unit 212 generates coding coefficients by applying a Haar transform to the attribute information.
- the quantization unit 213 quantizes the coding coefficients of the attribute information.
- the inverse quantization unit 214 inversely quantizes the quantized coding coefficients.
- the inverse Haar transform unit 215 applies an inverse Haar transform to the coding coefficients.
- the memory 216 stores values of attribute information for multiple decoded 3D points. For example, the attribute information for decoded 3D points stored in the memory 216 may be used for predicting uncoded 3D points.
- the arithmetic coding unit 217 calculates ZeroCnt from the coding coefficients after quantization and arithmetically codes ZeroCnt.
- the arithmetic coding unit 217 also arithmetically codes the non-zero coding coefficients after quantization.
- the arithmetic coding unit 217 may also binarize the coding coefficients before arithmetically coding them.
- the arithmetic coding unit 217 may also generate and code various header information.
- FIG. 24 is a block diagram of a transformed attribute information decoding unit 204, which is an example of the transformed attribute information decoding unit 204.
- the transformed attribute information decoding unit 204 includes an arithmetic decoding unit 221, an inverse quantization unit 222, an inverse Haar transform unit 223, and a memory 224.
- the arithmetic decoding unit 221 arithmetically decodes the ZeroCnt and coding coefficients contained in the bitstream.
- the arithmetic decoding unit 221 may also decode various header information.
- the inverse quantization unit 222 inverse quantizes the arithmetically decoded coding coefficients.
- the inverse Haar transform unit 223 applies an inverse Haar transform to the coding coefficients after inverse quantization.
- the memory 224 stores values of attribute information for multiple decoded 3D points. For example, the attribute information for decoded 3D points stored in the memory 224 may be used to predict undecoded 3D points.
- the encoding device may divide the three-dimensional data into one or more pieces of three-dimensional data and encode them.
- the divided three-dimensional point cloud is called a slice.
- a slice is a set of points each having position information (geometry) and attribute information (attribute).
- FIG. 25 is a block diagram showing an example configuration of a three-dimensional data encoding device in this case.
- the three-dimensional data encoding device includes a data division unit 231 and an encoding unit 232.
- the data division unit 231 divides the three-dimensional data to generate multiple pieces of divided three-dimensional data. Each piece of divided three-dimensional data corresponds to a slice.
- the encoding unit 232 generates encoded data by encoding the position information and attribute information of each piece of divided three-dimensional data (slice).
- FIG. 26 is a block diagram showing an example configuration of a three-dimensional data decoding device in this case.
- the three-dimensional data decoding device includes a decoding unit 233 and a data combining unit 234.
- the decoding unit 233 generates multiple pieces of divided three-dimensional data by decoding the encoded data.
- Each piece of divided three-dimensional data includes slice position information and attribute information.
- the data combining unit 234 restores the three-dimensional data by combining the multiple pieces of divided three-dimensional data.
- an identifier indicating the dependency is stored in the bitstream, and encoding or decoding is performed starting with the dependent data (referenced data).
- the number of divisions or division method may be any method.
- the three-dimensional data encoding device may determine the shape of the object and divide the point cloud for each object, or may perform division based on the number of points contained in a slice.
- the three-dimensional data encoding device may also use map information or location information to perform division based on whether the point cloud is contained in the three-dimensional space (tile information).
- APS may also be shared by multiple attribute information.
- the referenced parameter set is sent before the referenced parameter set.
- the identification information for specifying the data or the identification information indicating the reference relationship may be omitted.
- pcc_codec_type is Codec 1 (Codec1: first encoding method)
- the values 0 to 10 of pcc_nal_unit_type represent the encoded position data (Geometry), encoded attribute X data (AttributeX), encoded attribute Y data (AttributeY), and position PS (Geom.PS) in Codec 1.
- attribute XPS (AttrX.PS), attribute YPS (AttrY.PS), position SPS (Geometry Sequence PS), attribute XSPS (AttributeX Sequence PS), attribute YSPS (AttributeY Sequence PS), AU header (AU Header), and GOF header (GOF Header).
- Values 11 and above are assigned as spares for codec 1.
- PS has levels, such as frame-level PS, sequence-level PS, and PCC sequence-level PS. If the PCC sequence level is the higher level and the frame level is the lower level, the following method may be used to store parameters.
- the default PS value is indicated in the higher PS. Also, if the value of the lower PS differs from the value of the higher PS, the PS value is indicated in the lower PS. Alternatively, the PS value is not written in the higher PS, but written in the lower PS. Alternatively, information on whether the PS value is to be written in the lower PS, the higher PS, or both is written in either the lower PS or the higher PS, or both. Alternatively, the lower PS may be merged with the higher PS. Alternatively, if the lower PS and the higher PS overlap, the three-dimensional data encoding device may omit sending one of them.
- the three-dimensional data encoding device may also divide the data into slices or tiles and transmit the divided data.
- the divided data includes information for identifying the divided data, and the parameters used to decode the divided data are included in the parameter set.
- pcc_nal_unit_type defines an identifier indicating that the data stores data or parameters related to tiles or slices.
- Gaussian data Gaussian Splatting 3D data
- the configuration of a system for encoding or decoding three-dimensional data generated using the Gaussian Splatting method will be described.
- Figure 35 shows an example of the number of SH coefficients in a spherical harmonic function.
- the number of elements (number of SH coefficients) in a spherical harmonic function is determined according to the level indicating the resolution. For example, the higher the level (the larger the level number), the higher the resolution. For example, the higher the level, the more high-frequency component information is added.
- the three-dimensional coordinates are not processed by the first pre-processing unit 331, but are input directly to the second pre-processing unit 332.
- the second pre-processing unit 332 converts the input three-dimensional coordinates into positive integer information (three-dimensional coordinates).
- the scale and offset values used during the conversion are stored in metadata such as SPS and notified to the decoding device.
- the rotation encoding unit 342, scale encoding unit 343, SH coefficient encoding unit 344, and transparency encoding unit 345 generate multiple pieces of coded data by encoding the rotation, scale, SH coefficient, and transparency, respectively, using the attribute encoding method in the G-PCC coding method.
- Each of the multiple pieces of coded data generated is stored in an ADU (Attribute Data Unit) and output.
- the metadata required for decoding the ADU is stored in an APS (Attribute Parameter Set) and output.
- the attribute information is encoded using three-dimensional coordinates.
- the multiplexing unit 347 stores the coded data (ADU and GDU) and parameter sets (APS, GPS, and SPS) in TLV units and transmits them as a bit stream (coded data).
- the bit stream may be multiplexed using a predetermined multiplexing method.
- the bit stream may also be formatted.
- the demultiplexing unit 361 analyzes multiple TLV units contained in the input bitstream and generates data units of encoded data such as GDU, ADU, SPS, GPS, and APS.
- the position information decoding unit 362, rotation decoding unit 363, scale decoding unit 364, SH coefficient decoding unit 365, transmittance decoding unit 366, and metadata decoding unit 367 use the parameter set information to decode these data units using the respective encoding methods for each attribute component.
- the second post-processing unit 352 generates second Gaussian data by inversely transforming the decoded data.
- the inverse transformation is the reverse of the transformation process performed by the second pre-processing unit 332, and is performed based on the transformation information (transformation parameters) included in the metadata.
- mapping rotation rotates, scale, and SH coefficients
- transparency is omitted. Note that similar processing can also be applied when other attribute information is added.
- the SH coefficients have a total of 48 dimensional elements (C1 to C48). These 48 dimensional elements are mapped to 16 G-PCC components with three-dimensional subcomponents.
- ID in Figure 42 is the attribute component ID, which indicates the identification number used to identify the attribute component of the encoded data.
- ND is the number of dimensions, which indicates the number of elements (number of subcomponents) per attribute component.
- mapping method for Gaussian data are not limited to the above examples, and any combination of mapping method and number of dimensions may be used.
- the second pre-processing unit 332 In the mapping process, the second pre-processing unit 332 generates mapping information indicating the G-PCC components corresponding to the Gaussian components. This mapping information is stored as metadata in the header or SEI.
- the decoding device decodes the mapping information from the bitstream.
- the second post-processing unit 352 reconstructs the Gaussian data by remapping the decoded data for each G-PCC component into Gaussian data based on the mapping information.
- Figure 43 is a diagram showing an example of mapping information.
- the mapping information is stored in SEI (Gaussian data attribute mapping information SEI).
- SEI Sesian data attribute mapping information SEI
- the mapping information includes the number of Gaussian data components.
- the number of Gaussian data components indicates the number of attribute information included in the Gaussian data. For example, in the example shown in Figure 42, rotation, scale, and SH coefficients are present, and the number of Gaussian data components is 3.
- the Gaussian component ID is identification information for uniquely identifying a Gaussian component.
- the Gaussian data type indicates the type of Gaussian component. For example, a value of 0 indicates “rotation”, a value of 1 indicates “scale”, a value of 2 indicates “SH coefficient”, and a value of 3 indicates “transmittance”. Note that the combinations of value and type here are just examples, and the combinations are not limited to these.
- the number of Gaussian data dimensions indicates the number of dimensions of the Gaussian component (number of subcomponents). For example, in the example shown in Figure 42, the number of Gaussian data dimensions for rotation is 4, the number of Gaussian data dimensions for scale is 3, and the number of Gaussian data dimensions for SH coefficients is 48.
- mapping information indicates the G-PCC component ID and dimension ID corresponding to each dimension of each component of the Gaussian data.
- Figure 43 shows an example of mapping information indicating the correspondence between Gaussian data subcomponents and G-PCC subcomponents, but if there are no restrictions on the number of subcomponents in a G-PCC component, mapping information indicating the correspondence between Gaussian components and G-PCC components may also be used. In other words, it is not necessary to indicate the correspondence between dimensions.
- the conversion information indicates the parameters (conversion parameters) used when converting the component data.
- Figure 44 shows an example of the configuration of conversion information. For example, if a scale and offset are used in the conversion, the conversion information includes a scale value and an offset value.
- the conversion is performed using the scale value and offset value according to the following formula:
- Converted data Pre-conversion data x Scale value + Offset
- the formula used for the conversion may be a predefined formula, or multiple conversion formulas may be defined and the formula used may be switched according to predetermined conditions. Information indicating the conversion formula used may also be stored in the bitstream.
- the Gaussian data component ID, Gaussian data type, and number of Gaussian data dimensions may be omitted.
- the SPS describes the G-PCC attribute component ID (attr_id), G-PCC attribute type (attribute_type), and number of dimensions of the G-PCC attribute component (num_dimension) for each G-PCC component.
- a new G-PCC attribute type may be defined here to indicate that each element of the Gaussian data is to be coded.
- FIG 46 shows an example of G-PCC attribute types for Gaussian data.
- G-PCC attribute types may be defined that indicate the rotation, scale, SH coefficient, and transparency of Gaussian data.
- mapping information may be transmitted as SEI or may be included in the SPS.
- the SPS may include mapping information indicating the Gaussian components corresponding to the G-PCC components.
- FIG. 47 is a flowchart of processing by a decoding device according to this embodiment.
- the decoding device obtains multiple TLV units from the bitstream, and then obtains multiple data units (GDU, ADU) and multiple parameter sets (SPS, GPS, APS) from the multiple TLV units (S101).
- GDU data units
- SPS GPS, APS
- the decoding device decodes the three-dimensional coordinates using the SPS, GPS, and GDU (S102).
- the decoding device decodes the multiple attribute components described in the SPS using the APS, ADU, and three-dimensional coordinates (S103).
- the decoding device obtains mapping information by analyzing the Gaussian data attribute mapping information SEI (S104). Next, the decoding device reconstructs second Gaussian data from the decoded attribute components and the mapping information (S105). Next, the decoding device obtains transformation information and generates first Gaussian data by inversely transforming the second Gaussian data using the transformation information (S106).
- Gaussian data is one frame
- this method can also be applied when there are multiple frames of Gaussian data.
- multi-frame coding in the G-PCC method or inter-prediction in the G-PCC method may be used.
- the encoding device may also generate multiple pieces of divided data by dividing the Gaussian data into multiple regions, and encode each of the multiple pieces of divided data.
- the encoding device may also assign the divided data to tiles or slices in the G-PCC and encode them.
- FIG. 48 is a block diagram showing a system for encoding and decoding first Gaussian data.
- the system shown in FIG. 48 includes a second pre-processing unit 371, a G-PCC encoding unit 372, a G-PCC decoding unit 373, and a second post-processing unit 374.
- FIG. 49 is a block diagram showing an example configuration of the second pre-processing unit 371.
- the second pre-processing unit 371 includes a conversion unit 375 and a mapping unit 376.
- the conversion unit 375 included in the second pre-processing unit 371 converts the format of the covariance matrix.
- the mapping unit 376 generates converted first Gaussian data by mapping the format-converted covariance matrix to G-PCC attribute information.
- the G-PCC encoding unit 372 generates encoded data by encoding the converted first Gaussian data, the conversion information, and the mapping information.
- the G-PCC decoding unit 373 decodes the encoded data to generate transformed first Gaussian data, transformation information, and mapping information.
- the second post-processing unit 374 uses the mapping information and transformation information to inversely transform the transformed first Gaussian data, thereby restoring the first Gaussian data. In other words, the covariance matrix is restored. In this way, the system can encode and decode first Gaussian data.
- the conversion unit 375 may convert a 3x3 covariance matrix into a format that can be encoded using G-PCC. For example, the conversion unit 375 divides the 3x3 covariance matrix into three three-dimensional components. Alternatively, if the covariance matrix is a symmetric matrix, the conversion unit 375 may divide the six-dimensional elements, excluding elements with the same value, into two three-dimensional components.
- Figure 50 is a diagram illustrating this conversion process.
- conversion information indicating the details of the conversion is generated.
- the conversion information is stored in the metadata. Note that if the conversion method is uniquely defined in advance, the conversion information does not need to be stored in the coded data (bitstream).
- the encoding device encodes the three-dimensional coordinates contained in the Gaussian data using position information encoding in G-PCC.
- the encoding device also encodes attribute information associated with the three-dimensional coordinates (scale, rotation, SH coefficient, transparency, etc.) using attribute information encoding in G-PCC.
- the encoding device also converts each element of the Gaussian data's attribute information into a data format that can be encoded using G-PCC.
- the encoding device also stores conversion information indicating the details of the conversion in metadata. This allows the decoding device to reconstruct Gaussian data from the decoded data.
- the encoding device also associates the components or dimensions of the Gaussian data with attribute components or dimensions, which are units that can be coded using G-PCC. This allows the encoding device to code the Gaussian data using the G-PCC coding method. Furthermore, by defining a G-PCC attribute type that corresponds to the Gaussian data, the encoding device can code the Gaussian data using the G-PCC coding method.
- the encoding device stores mapping information in the metadata that indicates the correspondence between the components and dimensions of the Gaussian data and the attribute components and dimensions. This allows the decoding device to reconstruct Gaussian data from the decoded data.
- a general-purpose method can be realized that can encode Gaussian data using a variety of 3D encoding methods or 3D codec standards. This makes it possible to encode Gaussian data using a variety of 3D codec methods, including standards created by various standards organizations, international standards, national standards, and standards established by any organization.
- Figure 51 shows the protocol stack of an encoding standard for encoding Gaussian data.
- 3D Gaussian Codec is an encoding standard for encoding Gaussian data.
- Specific encoding methods for 3D Gaussian Codec include the V3C standard (ISO/IEC 23090-5), which encodes 3D data using one or more video codecs; the G-PCC standard (ISO-IEC 23090-9), which is a point cloud compression standard; and Draco, which is used for 3D mesh data.
- V3C standard video codec standards
- HEVC Very High Efficiency Video Coding
- FIG. 52 is a block diagram showing an example configuration of an encoding device 400 (three-dimensional data encoding device) according to this embodiment.
- the encoding device 400 generates a bit stream (encoded data) by encoding second Gaussian data.
- This encoding device 400 includes a second pre-processing unit 401, a G-PCC encoding unit 402, a V3C encoding unit 403, a metadata encoding unit 404, and a multiplexing unit 405.
- the second pre-processing unit 401 converts and maps the second Gaussian data into data that can be encoded by the 3D codec used, depending on the 3D codec used.
- the second pre-processing unit 401 converts and maps the second Gaussian data into data that can be coded using the G-PCC coding method.
- the G-PCC coding unit 402 generates a G-PCC TLV unit by coding the converted data using the G-PCC coding method.
- the second pre-processing unit 401 converts and maps the second Gaussian data into data that can be coded using the V3C coding method.
- the V3C coding unit 403 generates V3C units by coding the converted data using the V3C coding method.
- the metadata encoding unit 404 generates metadata by encoding the conversion information and mapping information related to the conversion and mapping performed by the second pre-processing unit 401. For example, the metadata encoding unit 404 stores the conversion information and mapping information in the metadata.
- the multiplexing unit 405 generates a bitstream by unitizing and multiplexing the G-PCC TLV unit or V3C unit and the metadata. Specifically, the multiplexing unit 405 stores the G-PCC TLV unit or V3C unit and the metadata in a 3D Data Unit, which is a data unit of the 3D Gaussian Codec Layer.
- FIG. 53 is a block diagram showing an example configuration of a decoding device 410 (three-dimensional data decoding device) according to this embodiment.
- the decoding device 410 generates second Gaussian data by decoding a bitstream. This bitstream is generated, for example, by the encoding device 400 shown in FIG. 52.
- the decoding device 410 includes a demultiplexing unit 411, a G-PCC decoding unit 412, a V3C decoding unit 413, a metadata decoding unit 414, and a second post-processing unit 415.
- the demultiplexing unit 411 demultiplexes and demultiplexes the 3D data units contained in the bitstream to generate G-PCC TLV units or V3C units and metadata.
- FIG. 54 is a flowchart of the encoding process performed by the encoding device 400.
- the encoding device 400 determines the codec type to be used for encoding (S201).
- the codec type to be used for encoding may be specified by the user, or may be determined based on the contents of the Gaussian data.
- the encoding device 400 encodes the Gaussian data using the G-PCC encoding method and outputs a G-PCC TLV unit (S202).
- the encoding device 400 encodes the Gaussian data using the V3C encoding method and outputs a V3C unit (S203).
- the encoding device 400 stores information indicating the codec type used for encoding in common metadata (S204).
- common metadata refers to metadata that can be used in common across multiple encoding methods (G-PCC encoding method and V3C encoding method).
- the decoding device 410 acquires the TLV unit and decodes it using the G-PCC decoding method to generate a component (S214).
- the codec type used for encoding is V3C (V3C in S213)
- the decoding device 410 acquires the V3C unit and decodes it using the V3C decoding method to generate a component (S215).
- Figure 56 shows the basic data structure of a Gaussian codec.
- the 3D data unit in the 3D Gaussian codec layer is a common unit in Gaussian codecs.
- Figure 57 is a diagram showing an example of the structure of a 3D data unit (3DDataUnit).
- the payload (3DDU_data) of the 3D data unit stores various data units that make up the Gaussian codec.
- the header (3DDU_header) of the 3D data unit contains a 3D data unit type (3DDataUnitType) that indicates the type of data stored in the payload.
- the 3D data unit may also store a Draco unit based on standards such as Draco.
- FIG 58 is a diagram showing an example of the configuration of a 3DPS (3DParameterset), which is a common parameter set used in Gaussian encoding.
- 3DPS includes information (profile_level) indicating the profile and level that indicate the combination of the encoding standard, encoding method, and toolset used to encode Gaussian data, as well as Gaussian component information (3D_codec_type).
- This information includes information indicating the profile (profile), information indicating the level (level), and information indicating the encoding standard and encoding method (3D_codec_type).
- the decoding device can determine the decoding method by analyzing 3D_codec_type.
- the decoding device may switch the decoding method based on 3D_codec_type, or may decide not to decode if it does not support the decoding function for the encoding method indicated by 3D_codec_type.
- the profile and level may also include information indicating the encoding standard.
- 3DDataUnitType restrictions may be placed on the 3D data unit type (3DDataUnitType) depending on the encoding method. For example, if the encoding method is G-PCC, the use of V3C units may be prohibited, and if the encoding method is V3C, the use of G-PCC TLV units may be prohibited.
- Gaussian data component information includes information indicating the configuration of Gaussian components.
- Figure 59 is a diagram showing an example configuration of Gaussian data component information.
- Gaussian data component information includes the number of Gaussian data components, which indicates the number of Gaussian components.
- FIG. 60 shows an example of the configuration of G-PCC mapping information.
- the G-PCC mapping information includes a G-PCC component ID, a G-PCC dimension ID, and conversion information as information for each dimension of the Gaussian component.
- the G-PCC subcomponent ID is an identifier that indicates the G-PCC component number.
- the G-PCC dimension ID is an identifier that indicates the subcomponent number of the G-PCC component.
- the conversion information indicates the parameters (conversion parameters) used when converting the data of the dimension in question.
- the Gaussian data component information includes V3C mapping information that indicates the correspondence between the Gaussian data components and the V3C codec components.
- FIG 61 shows an example of the configuration of V3C mapping information.
- the V3C mapping information includes a V3C component ID, a V3C dimension ID, and conversion information as information for each dimension of the Gaussian component.
- the V3C subcomponent ID is an identifier that indicates the V3C component number.
- the V3C dimension ID is an identifier that indicates the subcomponent number of the V3C component.
- the conversion information indicates the parameters (conversion parameters) used when converting the data of the dimension.
- Gaussian data component information may include geometry component information in addition to attribute component information.
- mapping information indicating G-PCC components corresponding to Gaussian components may also be used.
- mapping information indicating the correspondence between subcomponents of Gaussian data and subcomponents of G-PCC may also be used. In other words, the correspondence between subcomponents does not have to be shown.
- the Gaussian data component ID, Gaussian data type, and number of Gaussian data dimensions may be omitted.
- Figure 62 is a diagram showing an example of the configuration of a Gaussian data unit.
- the header of a Gaussian data unit includes a Gaussian DataUnit Type, which corresponds to the 3D data unit type (3DDataUnitType) described above.
- the Gaussian data unit type indicates the type of data stored in the payload of the Gaussian data unit.
- the Gaussian data unit type includes a geometry data unit and an attribute data unit.
- the payloads of the geometry data unit and attribute data unit store encoded geometry data and attribute data, respectively.
- the header of an attribute data unit contains an attribute data unit type.
- the attribute data unit type indicates the type of data stored in the payload of the attribute data unit.
- the attribute data unit type indicates an element of attribute information, and includes, for example, a rotation data unit (Rotation Data Unit), a scale data unit (Scale Data Unit), a color coefficient data unit (Color Coeff Data Unit), an alpha data unit (Alpha Data Unit), etc.
- the payloads of the rotation data unit, scale data unit, color coefficient data unit, and alpha data unit store encoded rotation, scale, SH coefficient, and transparency, respectively.
- a similar technique may be applied to data other than 3D Gaussian data.
- a similar technique may be used for 3D models or 3D data using AI.
- the encoding methods are V3C and G-PCC
- encoding methods other than V3C and G-PCC may also be used.
- the encoding method may be other than a 3D codec.
- an image codec, a neural network codec, an audio codec, or the like may also be used as the encoding method.
- Figure 63 shows a protocol stack for a standard for encoding 3D Gaussian data.
- a protocol stack or data structure for encoding 3D Gaussian data using at least one of a video base codec and a geometry base codec may be used as a method for encoding 3D Gaussian data.
- Video-based codecs are image encoding methods that use video codecs, such as standards such as AVC, HEVC, or VVC standardized by MPEG, or standards such as VPCC (Video-based Point Cloud Compression), VCM (Video Coding for Machines), or VDMC (Video-based Dynamic Mesh Compression).
- VPCC Video-based Point Cloud Compression
- VCM Video Coding for Machines
- VDMC Video-based Dynamic Mesh Compression
- Geometry-based codecs include point cloud compression standards such as G-PCC or Draco, or mesh data compression standards. Note that the method for encoding 3D Gaussians may be expanded to include neural network-based codecs such as NNC (Neural Network Coding).
- NNC Neuron Coding
- Figure 64 is a diagram showing a protocol stack for a standard for encoding a 3D model.
- a protocol stack and data structure for encoding a 3D model using at least one of V3C and G-PCC may be used.
- the 3D model may include (1) a point cloud, (2) a mesh, (3) a 3D model created using NeRF (Neural Radiance Fields), and (4) a 3D model generated using Gaussian Splating, etc.
- NeRF Neral Radiance Fields
- the encoding device may encode some of the components of the 3D model data using video encoding, and other components using geometry-based encoding.
- the encoding device may encode the information contained in the Gaussian data that represents shape information, such as three-dimensional coordinates, rotation, and scale, using G-PCC, and encode the SH coefficients using a video-based encoding method.
- shape information such as three-dimensional coordinates, rotation, and scale
- G-PCC shape information
- SH coefficients such as three-dimensional coordinates, rotation, and scale
- geometry-based encoding may be suitable for sparse geometric structure shapes
- video-based encoding may be suitable for multidimensional SH coefficients. Therefore, in such cases, encoding efficiency can be improved.
- Figure 65 is a diagram showing an example of the configuration of Gaussian component information in this case.
- the Gaussian component information shown in Figure 65 includes a 3D codec type (3D_codec_type) for each Gaussian component. This makes it possible to set a 3D codec type for each component, thereby realizing the above function. Note that when a standard for encoding 3D models is used as shown in Figure 64, for example, similar information is stored in 3D model component information indicating information about the components of a 3D model, instead of Gaussian component information.
- Gaussian data can be encoded without creating a new encoding method for Gaussian data, enabling efficient processing.
- the multiple first components further include a first component indicating information about a rotation value based on the position coordinate.
- the multiple first components further include a first component indicating color information, or a first component indicating transmittance.
- the rotation value and scale value are expressed as information about a covariance matrix.
- the multiple first components further include a first component indicating a coefficient of a spherical harmonic function.
- the encoding device further converts multiple first components (e.g., Gaussian components) into multiple second components (e.g., attribute components), and in encoding (S301), encodes the multiple second components.
- first components e.g., Gaussian components
- second components e.g., attribute components
- S301 encoding
- the encoding device further stores information (e.g., mapping information) indicating the correspondence between multiple first components and multiple second components in metadata, and the bitstream further includes metadata. This allows the decoding device to convert multiple second components into multiple first components using the information included in the bitstream.
- information e.g., mapping information
- the encoding device encodes the first component indicating the position coordinates using a geometry encoding method included in the point cloud encoding method, and encodes the first component indicating the scale value information using an attribute encoding method included in the point cloud encoding method. This allows the encoding device to appropriately encode each piece of information using the geometry encoding method and attribute encoding method included in the point cloud encoding method.
- Figure 67 is a block diagram of the encoding device 10.
- the encoding device 10 includes a processor 11 and a memory 12, and the processor 11 performs the above processing using the memory 12.
- a decoding device (three-dimensional data decoding device) performs the processing shown in FIG. 68.
- FIG. 68 is a flowchart of the decoding processing by the decoding device.
- the decoding device decodes Gaussian data.
- the Gaussian data includes multiple first components (e.g., multiple Gaussian components), each of which is expressed in one or more dimensions, and which include a first component indicating position coordinates (e.g., three-dimensional point coordinates or two-dimensional coordinates) and a first component indicating scale value information based on the position coordinates.
- the decoding device acquires a bitstream including encoded data generated by encoding the multiple first components (S311), and generates multiple first components by decoding the encoded data using a point cloud decoding method (e.g., a decoding method corresponding to the G-PCC encoding method) (S312).
- a point cloud decoding method e.g., a decoding method corresponding to the G-PCC encoding method
- the encoding device can encode Gaussian data using a point cloud encoding method. Therefore, Gaussian data can be encoded without creating a new encoding method for Gaussian data, enabling efficient processing. Furthermore, the decoding device can appropriately decode the encoded data generated by the encoding device.
- the rotation value and scale value are represented as covariance matrix information.
- the multiple first components further include a first component representing a coefficient of a spherical harmonic function.
- the coded data is generated by encoding multiple second components (e.g., multiple attribute components) that are converted from multiple first components (e.g., multiple Gaussian components).
- the decoding device decodes the coded data using a point cloud decoding method to generate multiple second components, and then converts the multiple second components into multiple first components.
- the decoding device further acquires information indicating the correspondence between multiple first components and multiple second components (e.g., mapping information) from metadata included in the bitstream. This allows the decoding device to convert multiple second components into multiple first components using the information included in the bitstream.
- information indicating the correspondence between multiple first components and multiple second components e.g., mapping information
- the number of dimensions of the multiple second components is equal to or less than a predetermined number.
- the decoding device combines two or more of the multiple second components into a first component with a number of dimensions greater than the predetermined number.
- an encoding device to encode Gaussian data using point cloud encoding by converting the data into a format compatible with the point cloud encoding method.
- a decoding device can appropriately decode the encoded data generated by the encoding device.
- the decoding device decodes the first component indicating the position coordinates using a geometry decoding method included in the point cloud decoding method, and decodes the first component indicating the scale value information using an attribute decoding method included in the point cloud decoding method.
- the encoding device can properly encode each piece of information using the geometry encoding method and attribute encoding method included in the point cloud encoding method. Furthermore, the decoding device can properly decode the encoded data generated by the encoding device.
- the bitstream includes a parameter set that includes information indicating the types of multiple first components. This allows the decoding device to determine the types of multiple first components using the information included in the bitstream.
- Figure 69 is a block diagram of the decoding device 20.
- the decoding device 20 includes a processor 21 and a memory 22, and the processor 21 performs the above processing using the memory 22.
- an encoding device (three-dimensional data encoding device) performs the processing shown in FIG. 70.
- FIG. 70 is a flowchart of the encoding process performed by the encoding device.
- the encoding device encodes Gaussian data.
- the Gaussian data includes multiple first components (e.g., multiple Gaussian components), each of which is represented by one or more dimensions.
- the encoding device selects one of multiple encoding methods (S321), generates encoded data by encoding the multiple first components using the selected encoding method (S322), and generates a bitstream including the encoded data and first information indicating the selected encoding method (e.g., 3D codec type (3D_codec_type)) (S323).
- 3D codec type 3D_codec_type
- the encoding device further converts multiple first components (e.g., multiple Gaussian components) into multiple second components (e.g., attribute components) corresponding to the selected encoding method, and in encoding (S322), encodes the multiple second components, and the bitstream further includes second information (e.g., mapping information) indicating the correspondence between the multiple first components and the multiple second components.
- first components e.g., multiple Gaussian components
- second components e.g., attribute components
- the bitstream further includes second information (e.g., mapping information) indicating the correspondence between the multiple first components and the multiple second components.
- the encoding device can encode Gaussian data using the selected encoding method by converting the data into a format compatible with the selected encoding method. Furthermore, the decoding device can convert multiple second components into multiple first components using second information included in the bitstream.
- the multiple first components include a first component indicating position coordinates (e.g., three-dimensional point coordinates or two-dimensional coordinates) and a first component indicating information about a scale value based on the position coordinates.
- a first component indicating position coordinates e.g., three-dimensional point coordinates or two-dimensional coordinates
- a first component indicating information about a scale value based on the position coordinates e.g., three-dimensional point coordinates or two-dimensional coordinates
- the multiple encoding methods include a geometry-based encoding method and a video-based encoding method.
- the multiple encoding methods further include an encoding method for a neural network.
- the bitstream includes a parameter set common to the multiple encoding methods, and the parameter set includes the first information.
- the bitstream includes multiple units common to multiple encoding methods
- the first information includes multiple pieces of third information included in the headers of each of the multiple units
- each of the multiple units stores either first encoded data encoded using a geometry-based encoding method, second encoded data encoded using a video-based encoding method, or multiple pieces of data including common parameters
- each piece of third information indicates the type of data stored in the unit containing the third information.
- the decoding device acquires a bitstream including encoded data generated by encoding the multiple first components (S331), acquires first information (e.g., a 3D codec type (3D_codec_type)) indicating the encoding method used to encode the multiple first components from among the multiple encoding methods included in the bitstream (S332), and generates multiple first components by decoding the encoded data using a decoding method corresponding to the encoding method indicated by the first information (S333).
- first information e.g., a 3D codec type (3D_codec_type)
- the decoding device can properly decode the encoded data generated by the encoding device.
- the encoded data is generated by encoding multiple second components into which multiple first components have been converted.
- the decoding device further acquires second information (e.g., mapping information) indicating the correspondence between the multiple first components and multiple second components from the bitstream, and in decoding (S333), generates multiple second components by decoding the encoded data using a decoding method, and converts the multiple second components into multiple first components using the correspondence indicated by the second information.
- second information e.g., mapping information
- the encoding device can encode Gaussian data using the selected encoding method by converting the data into a format compatible with the selected encoding method. Furthermore, the decoding device can convert multiple second components into multiple first components using second information included in the bitstream.
- the multiple first components include a first component indicating position coordinates (e.g., three-dimensional point coordinates or two-dimensional coordinates) and a first component indicating information about a scale value based on the position coordinates.
- a first component indicating position coordinates e.g., three-dimensional point coordinates or two-dimensional coordinates
- a first component indicating information about a scale value based on the position coordinates e.g., three-dimensional point coordinates or two-dimensional coordinates
- the bitstream includes multiple units common to multiple encoding methods
- the first information includes multiple pieces of third information included in the headers of each of the multiple units
- each of the multiple units stores either first encoded data encoded using a geometry-based encoding method, second encoded data encoded using a video-based encoding method, or multiple pieces of data including common parameters
- each piece of third information indicates the type of data stored in the unit containing the third information.
- each processing unit included in the encoding device, decoding device, etc. is typically realized as an LSI, which is an integrated circuit. These may be individually implemented on a single chip, or some or all of them may be included on a single chip.
- integrated circuits are not limited to LSIs, but may be realized using dedicated circuits or general-purpose processors.
- FPGAs Field Programmable Gate Arrays
- reconfigurable processors which allow the connections and settings of circuit cells within the LSI to be reconfigured, may also be used.
- each component may be configured with dedicated hardware, or may be realized by executing a software program appropriate for that component.
- Each component may also be realized by a program execution unit such as a CPU or processor reading and executing a software program recorded on a recording medium such as a hard disk or semiconductor memory.
- the present disclosure may also be realized as an encoding method (three-dimensional data encoding method) or a decoding method (three-dimensional data decoding method) executed by an encoding device (three-dimensional data encoding device) and a decoding device (three-dimensional data decoding device), etc.
- the present disclosure may also be realized as a program that causes a computer, processor, or device to execute the encoding method or decoding method.
- the present disclosure may also be realized as a bitstream generated by the encoding method.
- the present disclosure may also be realized as a recording medium on which the program or bitstream is recorded.
- the present disclosure may also be realized as a non-transitory computer-readable recording medium on which the program or bitstream is recorded.
- the division of functional blocks in the block diagram is one example; multiple functional blocks may be realized as a single functional block, one functional block may be divided into multiple blocks, or some functions may be moved to other functional blocks. Furthermore, the functions of multiple functional blocks with similar functions may be processed in parallel or time-shared by a single piece of hardware or software.
- This disclosure can be applied to encoding devices and decoding devices.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
三次元データ符号化方法は、ガウシアンデータを符号化する三次元データ符号化方法であって、ガウシアンデータは、複数の第1コンポーネントを含み、複数の第1コンポーネントの各々は1以上の次元で表され、複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含み、三次元データ符号化方法は、複数の第1コンポーネントを、点群符号化方式を用いて符号化することで符号化データを生成し(S301)、符号化データを含むビットストリームを生成する(S302)。
Description
本開示は、三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置及び三次元データ復号装置に関する。
自動車或いはロボットが自律的に動作するためのコンピュータビジョン、マップ情報、監視、インフラ点検、又は、映像配信など、幅広い分野において、今後、三次元データを活用した装置又はサービスの普及が見込まれる。三次元データは、レンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組み合わせなど様々な方法で取得される。
三次元データの表現方法の1つとして、三次元空間内の点群によって三次元構造の形状を表すポイントクラウドと呼ばれる表現方法がある。ポイントクラウドでは、点群の位置と色とが格納される。ポイントクラウドは三次元データの表現方法として主流になると予想されるが、点群はデータ量が非常に大きい。よって、三次元データの蓄積又は伝送においては二次元の動画像(一例として、MPEGで規格化されたMPEG-4 AVC(Advanced Video Coding)又はHEVC(High Efficiency Video Coding)などがある)と同様に、符号化によるデータ量の圧縮が必須となる。
また、ポイントクラウドの圧縮については、ポイントクラウド関連の処理を行う公開のライブラリ(Point Cloud Library)などによって一部サポートされている。
また、三次元の地図データを用いて、車両周辺に位置する施設を検索し、表示する技術が知られている(例えば、特許文献1参照)。
このような、三次元データの符号化及び復号では、効率的な処理を実現できることが望まれている。
本開示は、効率的な処理を実現できる三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置又は三次元データ復号装置を提供することを目的とする。
本開示の一態様に係る三次元データ符号化方法は、ガウシアンデータを符号化する三次元データ符号化方法であって、前記ガウシアンデータは、複数の第1コンポーネントを含み、前記複数の第1コンポーネントの各々は1以上の次元で表され、前記複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、前記位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含み、前記三次元データ符号化方法は、前記複数の第1コンポーネントを、点群符号化方式を用いて符号化することで符号化データを生成し、前記符号化データを含むビットストリームを生成する。
本開示の一態様に係る三次元データ復号方法は、ガウシアンデータを復号する三次元データ復号方法であって、前記ガウシアンデータは、複数の第1コンポーネントを含み、前記複数の第1コンポーネントの各々は1以上の次元で表され、前記複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、前記位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含み、前記三次元データ復号方法は、前記複数の第1コンポーネントが符号化されることで生成された符号化データを含むビットストリームを取得し、前記符号化データを、点群復号方式を用いて復号することで前記複数の第1コンポーネントを生成する。
本開示は、効率的な処理を実現できる三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置又は三次元データ復号装置を提供できる。
[序論]
本開示の一態様に係る三次元データ符号化方法は、ガウシアンデータを符号化する三次元データ符号化方法であって、前記ガウシアンデータは、複数の第1コンポーネントを含み、前記複数の第1コンポーネントの各々は1以上の次元で表され、前記複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、前記位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含み、前記三次元データ符号化方法は、前記複数の第1コンポーネントを、点群符号化方式を用いて符号化することで符号化データを生成し、前記符号化データを含むビットストリームを生成する。
本開示の一態様に係る三次元データ符号化方法は、ガウシアンデータを符号化する三次元データ符号化方法であって、前記ガウシアンデータは、複数の第1コンポーネントを含み、前記複数の第1コンポーネントの各々は1以上の次元で表され、前記複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、前記位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含み、前記三次元データ符号化方法は、前記複数の第1コンポーネントを、点群符号化方式を用いて符号化することで符号化データを生成し、前記符号化データを含むビットストリームを生成する。
これによれば、三次元データ符号化方法は、ガウシアンデータを、点群符号化方式を用いて符号化できる。よって、新たにガウシアンデータのための符号化方式を作成することなく、ガウシアンデータを符号化できるので効率的な処理を実現できる。
例えば、前記複数の第1コンポーネントは、さらに、前記位置座標を基準とする回転値の情報を示す第1コンポーネントを含んでもよい。例えば、前記複数の第1コンポーネントは、さらに、色情報を示す第1コンポーネント、又は透過率を示す第1コンポーネントを含んでもよい。
例えば、前記回転値及びスケール値は、共分散行列の情報として表されてもよい。例えば、前記複数の第1コンポーネントは、さらに、球面調和関数の係数を示す第1コンポーネントを含んでもよい。
例えば、前記三次元データ符号化方法は、さらに、前記複数の第1コンポーネントを、複数の第2コンポーネントに変換し、前記符号化では、前記複数の第2コンポーネントを符号化してもよい。これによれば、例えば、三次元データ符号化方法は、点群符号化方式に対応した形式にデータを変更することで、点群符号化方式を用いてガウシアンデータを符号化できる。
例えば、前記三次元データ符号化方法は、さらに、前記複数の第1コンポーネントと前記複数の第2コンポーネントとの対応関係を示す情報をメタデータに格納し、前記ビットストリームは、さらに前記メタデータを含んでもよい。これによれば、復号装置は、ビットストリームに含まれる情報を用いて、複数の第2コンポーネントを複数の第1コンポーネントに変換できる。
例えば、前記複数の第2コンポーネントの次元数は、予め定められた数以下であり、前記変換では、前記複数の第1コンポーネントのうち、次元数が前記予め定められた数より大きい第1コンポーネントを、2以上の第2コンポーネントに分割してもよい。これによれば、例えば、三次元データ符号化方法は、点群符号化方式に対応した形式にデータを変更することで、点群符号化方式を用いてガウシアンデータを符号化できる。
例えば、前記符号化では、前記位置座標を示す前記第1コンポーネントを前記点群符号化方式に含まれるジオメトリ符号化方式を用いて符号化し、前記スケール値の情報を示す前記第1コンポーネントを前記点群符号化方式に含まれる属性符号化方式を用いて符号化してもよい。これによれば、三次元データ符号化方法は、点群符号化方式に含まれるジオメトリ符号化方式及び属性符号化方式を用いて各情報を適切に符号化できる。
例えば、前記ビットストリームは、前記複数の第1コンポーネントの種別を示す情報を含むパラメータセットを含んでもよい。これによれば、復号装置は、ビットストリームに含まれる情報を用いて複数の第1コンポーネントの種別を判定できる。
本開示の一態様に係る三次元データ復号方法は、ガウシアンデータを復号する三次元データ復号方法であって、前記ガウシアンデータは、複数の第1コンポーネントを含み、前記複数の第1コンポーネントの各々は1以上の次元で表され、前記複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、前記位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含み、前記三次元データ復号方法は、前記複数の第1コンポーネントが符号化されることで生成された符号化データを含むビットストリームを取得し、前記符号化データを、点群復号方式を用いて復号することで前記複数の第1コンポーネントを生成する。
これによれば、符号化装置は、ガウシアンデータを、点群符号化方式を用いて符号化できる。よって、新たにガウシアンデータのための符号化方式を作成することなく、ガウシアンデータを符号化できるので効率的な処理を実現できる。また、三次元データ復号方法は、符号化装置で生成された符号化データを適切に復号できる。
例えば、前記複数の第1コンポーネントは、さらに、前記位置座標を基準とする回転値の情報を示す第1コンポーネントを含んでもよい。例えば、前記複数の第1コンポーネントは、さらに、色情報を示す第1コンポーネント、又は透過率を示す第1コンポーネントを含んでもよい。
例えば、前記回転値及びスケール値は、共分散行列の情報として表されてもよい。例えば、前記複数の第1コンポーネントは、さらに、球面調和関数の係数を示す第1コンポーネントを含んでもよい。
例えば、前記符号化データは、前記複数の第1コンポーネントが変換された複数の第2コンポーネントが符号化されることで生成され、前記復号では、前記符号化データを、点群復号方式を用いて復号することで前記複数の第2コンポーネントを生成し、前記複数の第2コンポーネントを前記複数の第1コンポーネントに変換してもよい。
これによれば、例えば、符号化装置は、点群符号化方式に対応した形式にデータを変更することで、点群符号化方式を用いてガウシアンデータを符号化することで符号化データを生成できる。また、三次元データ復号方法は、符号化装置で生成された符号化データを適切に復号できる。
例えば、前記三次元データ復号方法は、さらに、前記複数の第1コンポーネントと前記複数の第2コンポーネントとの対応関係を示す情報を、前記ビットストリームに含まれるメタデータから取得してもよい。これによれば、三次元データ復号方法は、ビットストリームに含まれる情報を用いて、複数の第2コンポーネントを複数の第1コンポーネントに変換できる。
例えば、前記複数の第2コンポーネントの次元数は、予め定められた数以下であり、前記変換では、前記複数の第2コンポーネントのうち、2以上の第2コンポーネントを前記予め定められた数より大きい次元数の第1コンポーネントに結合してもよい。
これによれば、例えば、符号化装置は、点群符号化方式に対応した形式にデータを変更することで、点群符号化方式を用いてガウシアンデータを符号化できる。また、三次元データ復号方法は、符号化装置で生成された符号化データを適切に復号できる。
例えば、前記復号では、前記位置座標を示す前記第1コンポーネントを前記点群復号方式に含まれるジオメトリ復号方式を用いて復号し、前記スケール値の情報を示す前記第1コンポーネントを前記点群復号方式に含まれる属性復号方式を用いて復号してもよい。
これによれば、符号化装置は、点群符号化方式に含まれるジオメトリ符号化方式及び属性符号化方式を用いて各情報を適切に符号化できる。また、復号装置は、符号化装置で生成された符号化データを適切に復号できる。
例えば、前記ビットストリームは、前記複数の第1コンポーネントの種別を示す情報を含むパラメータセットを含んでもよい。これによれば、三次元データ復号方法は、ビットストリームに含まれる情報を用いて複数の第1コンポーネントの種別を判定できる。
本開示の一態様に係る三次元データ符号化装置は、ガウシアンデータを符号化する三次元データ符号化装置であって、プロセッサと、メモリと、を備え、前記ガウシアンデータは、複数の第1コンポーネントを含み、前記複数の第1コンポーネントの各々は1以上の次元で表され、前記複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、前記位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含み、前記プロセッサは、前記メモリを用いて、前記複数の第1コンポーネントを、点群符号化方式を用いて符号化することで符号化データを生成し、前記符号化データを含むビットストリームを生成する。
これによれば、三次元データ符号化装置は、ガウシアンデータを、点群符号化方式を用いて符号化できる。よって、新たにガウシアンデータのための符号化方式を作成することなく、ガウシアンデータを符号化できるので効率的な処理を実現できる。
本開示の一態様に係る三次元データ復号装置は、ガウシアンデータを復号する三次元データ復号装置であって、プロセッサと、メモリと、を備え、前記ガウシアンデータは、複数の第1コンポーネントを含み、前記複数の第1コンポーネントの各々は1以上の次元で表され、前記複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、前記位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含み、前記プロセッサは、前記メモリを用いて、前記複数の第1コンポーネントが符号化されることで生成された符号化データを含むビットストリームを取得し、前記符号化データを、点群復号方式を用いて復号することで前記複数の第1コンポーネントを生成する。
これによれば、符号化装置は、ガウシアンデータを、点群符号化方式を用いて符号化できる。よって、新たにガウシアンデータのための符号化方式を作成することなく、ガウシアンデータを符号化できるので効率的な処理を実現できる。また、三次元データ復号装置は、符号化装置で生成された符号化データを適切に復号できる。
本開示の一態様に係る三次元データ符号化方法は、ガウシアンデータを符号化する三次元データ符号化方法であって、前記ガウシアンデータは、複数の第1コンポーネントを含み、前記複数の第1コンポーネントの各々は1以上の次元で表され、前記三次元データ符号化方法は、複数の符号化方式のうちいずれか一つを選択し、前記複数の第1コンポーネントを、前記選択された符号化方式を用いて符号化することで符号化データを生成し、前記符号化データと、前記選択された符号化方式を示す第1情報とを含むビットストリームを生成する。
これによれば、三次元データ符号化方法は、複数の符号化方式から選択的にガウシアンデータの符号化に用いる符号化方式を選択できる。よって、符号化効率を向上できる可能性がある。
例えば、前記三次元データ符号化方法は、さらに、前記複数の第1コンポーネントを、前記選択された符号化方式に対応する複数の第2コンポーネントに変換し、前記符号化では、前記複数の第2コンポーネントを符号化し、前記ビットストリームは、さらに、前記複数の第1コンポーネントと前記複数の第2コンポーネントとの対応関係を示す第2情報を含んでもよい。
これによれば、三次元データ符号化方法は、選択された符号化方式に対応した形式にデータを変更することで、選択した符号化方式を用いてガウシアンデータを符号化できる。また、復号装置は、ビットストリームに含まれる第2情報を用いて、複数の第2コンポーネントを複数の第1コンポーネントに変換できる。
例えば、前記複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、前記位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含んでもよい。例えば、前記複数の符号化方式は、ジオメトリベースの符号化方式とビデオベースの符号化方式とを含んでもよい。
例えば、前記複数の符号化方式は、さらに、ニューラルネットワークのための符号化方式を含んでもよい。例えば、前記ビットストリームは、前記複数の符号化方式に共通のパラメータセットを含み、前記パラメータセットは、前記第1情報を含んでもよい。
例えば、前記ビットストリームは、前記複数の符号化方式に共通の複数のユニットを含み、前記第1情報は、前記複数のユニットの各々のヘッダに含まれる複数の第3情報を含み、前記複数のユニットの各々は、前記ジオメトリベースの符号化方式で符号化された第1符号化データ、前記ビデオベースの符号化方式で符号化された第2符号化データ、及び前記共通のパラメータを含む複数のデータのいずれかが格納され、前記複数の第3情報の各々は、当該第3情報が含まれるユニットに格納されているデータの種別を示してもよい。
本開示の一態様に係る三次元データ復号方法は、ガウシアンデータを復号する三次元データ復号方法であって、前記ガウシアンデータは、複数の第1コンポーネントを含み、前記複数の第1コンポーネントの各々は1以上の次元で表され、前記三次元データ復号方法は、前記複数の第1コンポーネントが符号化されることで生成された符号化データを含むビットストリームを取得し、前記ビットストリームに含まれる、複数の符号化方式のうち、前記複数の第1コンポーネントの符号化に用いられた符号化方式を示す第1情報を取得し、前記符号化データを、前記第1情報で示される符号化方式に対応する復号方式を用いて復号することで前記複数の第1コンポーネントを生成する。
これによれば、符号化装置は、複数の符号化方式から選択的にガウシアンデータの符号化に用いる符号化方式を選択できる。よって、符号化効率を向上できる可能性がある。また、三次元データ復号方法は、符号化装置で生成された符号化データを適切に復号できる。
例えば、前記符号化データは、前記複数の第1コンポーネントが変換された複数の第2コンポーネントが符号化されることで生成され、前記三次元データ復号方法は、さらに、前記複数の第1コンポーネントと前記複数の第2コンポーネントとの対応関係を示す第2情報を、前記ビットストリームから取得し、前記復号では、前記符号化データを、前記復号方式を用いて復号することで前記複数の第2コンポーネントを生成し、前記第2情報で示される前記対応関係を用いて、前記複数の第2コンポーネントを前記複数の第1コンポーネントに変換してもよい。
これによれば、符号化装置は、選択された符号化方式に対応した形式にデータを変更することで、選択した符号化方式を用いてガウシアンデータを符号化できる。また、三次元データ復号方法は、ビットストリームに含まれる第2情報を用いて、複数の第2コンポーネントを複数の第1コンポーネントに変換できる。
例えば、前記複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、前記位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含んでもよい。例えば、前記複数の符号化方式は、ジオメトリベースの符号化方式とビデオベースの符号化方式とを含んでもよい。
例えば、前記複数の符号化方式は、さらに、ニューラルネットワークのための符号化方式を含んでもよい。例えば、前記ビットストリームは、前記複数の符号化方式に共通のパラメータセットを含み、前記パラメータセットは、前記第1情報を含んでもよい。
例えば、前記ビットストリームは、前記複数の符号化方式に共通の複数のユニットを含み、前記第1情報は、前記複数のユニットの各々のヘッダに含まれる複数の第3情報を含み、前記複数のユニットの各々は、前記ジオメトリベースの符号化方式で符号化された第1符号化データ、前記ビデオベースの符号化方式で符号化された第2符号化データ、及び前記共通のパラメータを含む複数のデータのいずれかが格納され、前記複数の第3情報の各々は、当該第3情報が含まれるユニットに格納されているデータの種別を示してもよい。
本開示の一態様に係る三次元データ符号化装置は、ガウシアンデータを符号化する三次元データ符号化装置であって、プロセッサと、メモリと、を備え、前記ガウシアンデータは、複数の第1コンポーネントを含み、前記複数の第1コンポーネントの各々は1以上の次元で表され、前記プロセッサは、前記メモリを用いて、複数の符号化方式のうちいずれか一つを選択し、前記複数の第1コンポーネントを、前記選択された符号化方式を用いて符号化することで符号化データを生成し、前記符号化データと、前記選択された符号化方式を示す第1情報とを含むビットストリームを生成する。
これによれば、三次元データ符号化装置は、複数の符号化方式から選択的にガウシアンデータの符号化に用いる符号化方式を選択できる。よって、符号化効率を向上できる可能性がある。
本開示の一態様に係る三次元データ復号装置は、ガウシアンデータを復号する三次元データ復号装置であって、プロセッサと、メモリと、を備え、前記ガウシアンデータは、複数の第1コンポーネントを含み、前記複数の第1コンポーネントの各々は1以上の次元で表され、前記プロセッサは、前記メモリを用いて、前記複数の第1コンポーネントが符号化されることで生成された符号化データを含むビットストリームを取得し、前記ビットストリームに含まれる、複数の符号化方式のうち、前記複数の第1コンポーネントの符号化に用いられた符号化方式を示す第1情報を取得し、前記符号化データを、前記第1情報で示される符号化方式に対応する復号方式を用いて復号することで前記複数の第1コンポーネントを生成する。
これによれば、符号化装置は、複数の符号化方式から選択的にガウシアンデータの符号化に用いる符号化方式を選択できる。よって、符号化効率を向上できる可能性がある。また、三次元データ復号装置は、符号化装置で生成された符号化データを適切に復号できる。
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なCD-ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態)
[三次元データ符号化復号システム]
まず、本実施の形態に係る三次元データ符号化復号システムの構成を説明する。図1は、本実施の形態に係る三次元データ符号化復号システムの構成例を示す図である。図1に示すように、三次元データ符号化復号システムは、三次元データ符号化システム101と、三次元データ復号システム102と、センサ端末103と、外部接続部104とを含む。
[三次元データ符号化復号システム]
まず、本実施の形態に係る三次元データ符号化復号システムの構成を説明する。図1は、本実施の形態に係る三次元データ符号化復号システムの構成例を示す図である。図1に示すように、三次元データ符号化復号システムは、三次元データ符号化システム101と、三次元データ復号システム102と、センサ端末103と、外部接続部104とを含む。
三次元データ符号化システム101は、三次元データである三次元点群データ又は三次元メッシュデータ等を符号化することで符号化データ又は多重化データを生成する。なお、三次元データ符号化システム101は、単一の装置により実現される三次元データ符号化装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ符号化装置は、三次元データ符号化システム101に含まれる複数の処理部のうち一部を含んでもよい。
三次元データ符号化システム101は、三次元データ生成システム111と、提示部112と、符号化部113と、多重化部114と、入出力部115と、制御部116とを含む。三次元データ生成システム111は、センサ情報取得部117と、三次元データ生成部118とを含む。
センサ情報取得部117は、センサ端末103からセンサ情報(センサ信号)を取得し、センサ情報を三次元データ生成部118に出力する。三次元データ生成部118は、センサ情報から三次元データを生成し、三次元データを符号化部113へ出力する。
提示部112は、センサ情報又は三次元データをユーザに提示する。例えば、提示部112は、センサ情報又は三次元データに基づく情報又は画像を表示する。
符号化部113は、三次元データを符号化(圧縮)し、得られた符号化データと、符号化過程において得られた制御情報と、その他の付加情報とを多重化部114へ出力する。付加情報は、例えば、センサ情報を含む。
多重化部114は、符号化部113から入力された符号化データと、制御情報と、付加情報とを多重することで多重化データを生成する。多重化データのフォーマットは、例えば蓄積のためのファイルフォーマット、又は伝送のためのパケットフォーマットである。
入出力部115(例えば、通信部又はインターフェース)は、多重化データを外部へ出力する。または、多重化データは、内部メモリ等の蓄積部に蓄積される。制御部116(またはアプリ実行部)は、各処理部を制御する。つまり、制御部116は、符号化及び多重化等の制御を行う。
なお、センサ情報が符号化部113又は多重化部114へ入力されてもよい。また、入出力部115は、三次元データ又は符号化データをそのまま外部へ出力してもよい。
三次元データ符号化システム101から出力された伝送信号(多重化データ)は、外部接続部104を介して、三次元データ復号システム102に入力される。
三次元データ復号システム102は、符号化データ又は多重化データを復号することで三次元データである三次元点群データ又は三次元メッシュデータ等を生成する。なお、三次元データ復号システム102は、単一の装置により実現される三次元データ復号装置であってもよいし、複数の装置により実現されるシステムであってもよい。また、三次元データ復号装置は、三次元データ復号システム102に含まれる複数の処理部のうち一部を含んでもよい。
三次元データ復号システム102は、センサ情報取得部121と、入出力部122と、逆多重化部123と、復号部124と、提示部125と、ユーザインタフェース126と、制御部127とを含む。
センサ情報取得部121は、センサ端末103からセンサ情報(センサ信号)を取得する。
入出力部122は、伝送信号を取得し、伝送信号から多重化データ(ファイルフォーマット又はパケット)を復号し、多重化データを逆多重化部123へ出力する。
逆多重化部123は、多重化データから符号化データ、制御情報及び付加情報を取得し、符号化データ、制御情報及び付加情報を復号部124へ出力する。
復号部124は、符号化データを復号することで三次元データを再構成する。
提示部125は、三次元データをユーザに提示する。例えば、提示部125は、三次元データに基づく情報又は画像を表示する。ユーザインタフェース126は、ユーザの操作に基づく指示を取得する。制御部127(またはアプリ実行部)は、各処理部を制御する。つまり、制御部127は、逆多重化、復号及び提示等の制御を行う。
なお、入出力部122は、三次元データ又は符号化データをそのまま外部から取得してもよい。また、提示部125は、センサ情報などの付加情報を取得し、付加情報に基づいた情報を提示してもよい。また、提示部125は、ユーザインタフェース126で取得されたユーザの指示に基づき、提示を行ってもよい。
センサ端末103は、センサで得られた情報であるセンサ情報を生成する。センサ端末103は、センサ又はカメラを搭載した端末であり、例えば、自動車などの移動体、飛行機などの飛行物体、携帯端末、又はカメラなどがある。
センサ端末103で取得可能なセンサ情報は、例えば、(1)LIDAR、ミリ波レーダ、又は赤外線センサから得られる、センサ端末103と対象物との距離、又は対象物の反射率、(2)複数の単眼カメラ画像又はステレオカメラ画像から得られるカメラと対象物との距離又は対象物の反射率等である。また、センサ情報は、センサの姿勢、向き、ジャイロ(角速度)、位置(GPS情報又は高度)、速度、又は加速度等を含んでもよい。また、センサ情報は、気温、気圧、湿度、又は磁気等を含んでもよい。
外部接続部104は、集積回路(LSI又はIC)、外部蓄積部、インターネットを介したクラウドサーバとの通信、又は、放送等により実現される。
次に、三次元点群データ(以下、点群データとも記す)について説明する。図2は、点群データの構成を示す図である。図3は、点群データの情報が記述されたデータファイルの構成例を示す図である。
点群データは、複数の点のデータを含む。各点のデータは、位置情報(三次元座標)、及びその位置情報に対する属性情報を含む。この点が複数集まったものを点群と呼ぶ。例えば、点群は対象物(オブジェクト)の三次元形状を示す。
三次元座標等の位置情報(Position)をジオメトリ(geometry)と呼ぶこともある。また、各点のデータは、複数の属性種別の属性情報(attribute)を含んでもよい。属性種別は、例えば色又は反射率などである。
1つの位置情報に対して1つの属性情報が対応付けられてもよいし、1つの位置情報に対して複数の異なる属性種別を持つ属性情報が対応付けられてもよい。また、1つの位置情報に対して同じ属性種別の属性情報が複数対応付けられてもよい。
図3に示すデータファイルの構成例は、位置情報と属性情報とが1対1に対応する場合の例であり、点群データを構成するN個の点の位置情報と属性情報とを示している。
位置情報は、例えば、x、y、zの3軸の情報である。属性情報は、例えば、RGBの色情報である。代表的なデータファイルとしてplyファイルなどがある。
次に三次元メッシュデータ(以下、メッシュデータとも記す)について説明する。図4は、メッシュデータの構成例を示す図である。図5は、メッシュデータの情報が記述されたデータファイルの構成例を示す図である。
メッシュデータは、CG(Computer Graphics)に用いられるデータ形式である。メッシュデータは、面情報の集まりにより対象物の三次元形状を示す。面情報は、三角形又は四角形などの多角形であり、ポリゴン又はポリゴンメッシュとも称される。
メッシュデータの構成要素は、三次元点群(三次元位置情報及びその位置情報に対応する属性情報を持つ点の集合)に加え、三次元点を頂点(vertex)とし、2つの頂点を結んだ辺(edge)、及び辺で囲まれた面(face)の集合である。
頂点(vertex又はpositionとも表現される)は、点に対する色情報、反射率、又は法線ベクトルなどの属性情報を持つ場合もある。辺又は面を構成する頂点の関係性を示す情報を接続性(connectivity)とも言う。点に対する法線ベクトルの向きによって面の表裏を表現できる。また、メッシュデータは、面に対する属性情報を持ってもよい。
メッシュデータファイルの形式としては例えばオブジェクトファイルがある。データファイルは、メッシュを構成するN個頂点の位置情報G(1)~G(N)、及び頂点の属性情報A(1)~A(N)を示す。なお、データファイルは、属性情報を含まなくてもよい。また、属性情報は頂点に1対1に対応しなくてもよい。なお、図5は、データファイルが1~M個の属性情報A2を持つ例を示す。
面情報は、頂点のインデックスの組み合わせで示される。n[1、3、4]は、当該面が、n=1、n=3、n=4の3つの頂点で構成される三角形の面であることを示す。また、m[2、4、6]は3つの頂点に対してm=1、m=4、m=6の属性情報がそれぞれ対応することを示す。
また、属性情報がデータファイルとは別のファイルに記載され、データファイルはそのポインタ情報を示す場合もある。例えば、属性情報が二次元の属性マップ(attribute map)ファイルに格納され、属性マップのファイル名、及び属性マップにおける二次元座標がデータファイルの属性情報A2に記載されてもよい。いずれの方法を用いても、点に対する属性情報を指定することが可能である。
次に、三次元データ(点群データ又はメッシュデータ)の種類について説明する。図6は、三次元データの種類を示す図である。図6に示すように、三次元データには、静的オブジェクトと、動的オブジェクトとがある。
静的オブジェクトは、任意の時間(ある時刻)の三次元データである。動的オブジェクトは、時間的に変化する三次元データである。以降、ある時刻の三次元点群データをPCC(Point Cloud Compression)フレーム、又はフレームと呼ぶ。また、ある時刻の三次元メッシュデータをメッシュフレーム、又はフレームと呼ぶ。
オブジェクトを構成する複数の点は、通常の映像データのように、ある程度領域、画素、又は点の数等が制限されている場合もある。また、オブジェクトを構成する複数の点は、地図情報のように領域が制限されていない場合もある。
また、様々な密度の点群データ又はメッシュデータがあり、疎な点群データ又はメッシュデータと、密な点群データ又はメッシュデータとが存在してもよい。
以下、各処理部の詳細について説明する。センサ情報は、LIDAR或いはレンジファインダなどの距離センサ、ステレオカメラ、又は、複数の単眼カメラの組合せなど様々な方法で取得される。三次元データ生成部118は、センサ情報取得部117で得られたセンサ情報に基づき三次元データを生成する。三次元データ生成部118は、三次元データとして、位置情報を生成し、位置情報に、当該位置情報に対する属性情報を付加する。
三次元データ生成部118は、位置情報の生成又は属性情報の付加の際に、三次元データを加工してもよい。例えば、三次元データ生成部118は、位置が重複する点群を削除することでデータ量を減らしてもよい。また、三次元データ生成部118は、位置情報を変換(位置シフト、回転又は正規化など)してもよい。また、三次元データ生成部118は、点群データからメッシュデータを生成してもよい。また、三次元データ生成部118は、属性情報をレンダリングしてもよい。
なお、図1では、三次元データ生成システム111は、三次元データ符号化システム101に含まれるが、三次元データ符号化システム101の外部に独立して設けられてもよい。
符号化部113は、三次元データを符号化することで符号化データを生成する。符号化方法には以下の方法がある。一つ目は、位置情報を用いた符号化方法であり、この符号化方法を、以降、第1の符号化方法と記載する。二つ目は、ビデオコーデックを用いた符号化方法であり、この符号化方法を、以降、第2の符号化方法と記載する。
復号部124は、符号化データを復号することで点群データを復号する。多重化部114は、符号化データを、既存の多重化方式を用いて多重化することで多重化データを生成する。生成された多重化データは、伝送又は蓄積される。多重化部114は、PCC符号化データの他に、映像、音声、字幕、アプリケーション、ファイルなどの他のメディア、又は基準時刻情報を多重化する。また、多重化部114は、さらに、センサ情報又は三次元データに関連する属性情報を多重してもよい。
多重化方式又はファイルフォーマットとしては、ISOBMFF、ISOBMFFベースの伝送方式であるMPEG-DASH、MMT、MPEG-2 TS Systems、RTPなどがある。
逆多重化部123は、多重化データから符号化データ、その他のメディア、及び時刻情報などを抽出する。
入出力部115は、多重化データを、放送又は通信など、伝送する媒体又は蓄積する媒体にあわせた方法を用いて伝送する。入出力部115は、インターネット経由で他のデバイスと通信してもよいし、クラウドサーバなどの蓄積部と通信してもよい。
通信プロトコルとしては、http、ftp、TCP又はUDPなどが用いられる。PULL型の通信方式が用いられてもよいし、PUSH型の通信方式が用いられてもよい。
有線伝送及び無線伝送のいずれが用いられてもよい。有線伝送としては、Ethernet(登録商標)、USB、RS-232C、HDMI(登録商標)、又は同軸ケーブルなどが用いられる。無線伝送としては、無線LAN、Wi-Fi(登録商標)、Bluetooth(登録商標)又はミリ波などが用いられる。
また、放送方式としては、例えばDVB-T2、DVB-S2、DVB-C2、ATSC3.0、又はISDB-S3などが用いられる。
[第1の符号化方式]
以降、三次元点群又は三次元メッシュの符号化方式及び復号方式について説明する。本開示における装置、処理、又はシンタックスが、点群データの符号化又は復号処理に関する場合、三次元メッシュにおける頂点(vertex)の符号化又は復号にも適用することが可能である。また、三次元メッシュにおける頂点の符号化又は復号処理に関する開示は、点群データの符号化又は復号にも適用することが可能である。また、点群データの属性情報の符号化又は復号処理に関する開示は、三次元メッシュにおける面情報、面又は頂点に対する属性情報の符号化又は復号処理に適用してもよい。さらに、点群符号化とメッシュ符号化とで処理を共通化してもよい。共通化することにより、回路又はソフトの規模を抑制できる可能性がある。
以降、三次元点群又は三次元メッシュの符号化方式及び復号方式について説明する。本開示における装置、処理、又はシンタックスが、点群データの符号化又は復号処理に関する場合、三次元メッシュにおける頂点(vertex)の符号化又は復号にも適用することが可能である。また、三次元メッシュにおける頂点の符号化又は復号処理に関する開示は、点群データの符号化又は復号にも適用することが可能である。また、点群データの属性情報の符号化又は復号処理に関する開示は、三次元メッシュにおける面情報、面又は頂点に対する属性情報の符号化又は復号処理に適用してもよい。さらに、点群符号化とメッシュ符号化とで処理を共通化してもよい。共通化することにより、回路又はソフトの規模を抑制できる可能性がある。
図7は、第1の符号化方法の符号化を行う符号化部113の例である第1の符号化部130の構成を示す図である。図8は、第1の符号化部130のブロック図である。第1の符号化部130は、点群データを第1の符号化方法で符号化することで符号化データ(符号化ストリーム)を生成する。この第1の符号化部130は、位置情報符号化部131と、属性情報符号化部132と、付加情報符号化部133と、多重化部134とを含む。
第1の符号化部130は、三次元構造を意識して符号化を行うという特徴を有する。また、第1の符号化部130は、属性情報符号化部132が、位置情報符号化部131から得られる情報を用いて符号を行うという特徴を有する。第1の符号化方法は、G-PCC(Geometry based PCC)とも呼ばれる。
点群データは、PLYファイルのようなPCC点群データ、又は、センサ情報から生成されたPCC点群データであり、位置情報(Position)、属性情報(Attribute)、及びその他の付加情報(MetaData)を含む。位置情報は位置情報符号化部131に入力され、属性情報は属性情報符号化部132に入力され、付加情報は付加情報符号化部133に入力される。
なお、メッシュデータが符号化される場合には、頂点情報の位置情報が位置情報符号化部131に入力され、面情報、又は面及び頂点に対する属性情報が属性情報符号化部132に入力される。
位置情報符号化部131は、位置情報を符号化することで符号化データである符号化位置情報(Compressed Geometry)を生成する。例えば、位置情報符号化部131は、8分木等のN分木構造を用いて位置情報を符号化する。具体的には、8分木では、対象空間が8個のノード(サブ空間)に分割され、各ノードに点群が含まれるか否かを示す8ビットの情報(オキュパンシー符号)が生成される。また、点群が含まれるノードは、さらに、8個のノードに分割され、当該8個のノードの各々に点群が含まれるか否かを示す8ビットの情報が生成される。この処理が、予め定められた階層又はノードに含まれる点群の数の閾値以下になるまで繰り返される。
属性情報符号化部132は、位置情報符号化部131で生成された構成情報を用いて符号化することで符号化データである符号化属性情報(Compressed Attribute)を生成する。例えば、属性情報符号化部132は、位置情報符号化部131で生成された8分木構造に基づき、処理対象の対象点(対象ノード)の符号化において参照する参照点(参照ノード)を決定する。例えば、属性情報符号化部132は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
また、属性情報の符号化処理は、量子化処理、予測処理、及び算術符号化処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、符号化のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、符号化のパラメータとは、量子化処理における量子化パラメータ、又は算術符号化におけるコンテキスト等である。
付加情報符号化部133は、付加情報のうち、圧縮可能なデータを符号化することで符号化データである符号化付加情報(Compressed MetaData)を生成する。
多重化部134は、符号化位置情報、符号化属性情報、符号化付加情報及びその他の付加情報を多重化することで符号化データである符号化ストリーム(Compressed Stream)を生成する。生成された符号化ストリームは、図示しないシステムレイヤの処理部へ出力される。
次に、第1の符号化方法の復号を行う復号部124の例である第1の復号部140について説明する。図9は、第1の復号部140の構成を示す図である。図10は、第1の復号部140のブロック図である。第1の復号部140は、第1の符号化方法で符号化された符号化データ(符号化ストリーム)を、第1の符号化方法で復号することで点群データを生成する。この第1の復号部140は、逆多重化部141と、位置情報復号部142と、属性情報復号部143と、付加情報復号部144とを含む。
図示しないシステムレイヤの処理部から符号化データである符号化ストリーム(Compressed Stream)が第1の復号部140に入力される。
逆多重化部141は、符号化データから、符号化位置情報(Compressed Geometry)、符号化属性情報(Compressed Attribute)、符号化付加情報(Compressed MetaData)、及び、その他の付加情報を分離する。
位置情報復号部142は、符号化位置情報を復号することで位置情報を生成する。例えば、位置情報復号部142は、8分木等のN分木構造で表される符号化位置情報から三次元座標で表される点群の位置情報を復元する。
属性情報復号部143は、位置情報復号部142で生成された構成情報に基づき、符号化属性情報を復号する。例えば、属性情報復号部143は、位置情報復号部142で得られた8分木構造に基づき、処理対象の対象点(対象ノード)の復号において参照する参照点(参照ノード)を決定する。例えば、属性情報復号部143は、周辺ノード又は隣接ノードのうち、8分木における親ノードが対象ノードと同一のノードを参照する。なお、参照関係の決定方法はこれに限らない。
また、属性情報の復号処理は、逆量子化処理、予測処理、及び算術復号処理のうち少なくとも一つを含んでもよい。この場合、参照とは、属性情報の予測値の算出に参照ノードを用いること、又は、復号のパラメータの決定に参照ノードの状態(例えば、参照ノードに点群が含まれる否かを示す占有情報)を用いること、である。例えば、復号のパラメータとは、逆量子化処理における量子化パラメータ、又は算術復号におけるコンテキスト等である。
付加情報復号部144は、符号化付加情報を復号することで付加情報を生成する。また、第1の復号部140は、位置情報及び属性情報の復号処理に必要な付加情報を復号時に使用し、アプリケーションに必要な付加情報を外部に出力する。
[第2の符号化方式]
次に、第2の符号化方法の符号化を行う符号化部113の例である第2の符号化部150について説明する。図11は、第2の符号化部150の構成を示す図である。図12は、第2の符号化部150のブロック図である。
次に、第2の符号化方法の符号化を行う符号化部113の例である第2の符号化部150について説明する。図11は、第2の符号化部150の構成を示す図である。図12は、第2の符号化部150のブロック図である。
第2の符号化部150は、点群データを第2の符号化方法で符号化することで符号化データ(符号化ストリーム)を生成する。この第2の符号化部150は、付加情報生成部151と、位置画像生成部152と、属性画像生成部153と、映像符号化部154と、付加情報符号化部155と、多重化部156とを含む。
第2の符号化部150は、三次元構造を二次元画像に投影することで位置画像及び属性画像を生成し、生成した位置画像及び属性画像を既存の映像符号化方式を用いて符号化するという特徴を有する。第2の符号化方法は、VPCC(Video based PCC)とも呼ばれる。
点群データは、PLYファイルのようなPCC点群データ、又は、センサ情報から生成されたPCC点群データであり、位置情報(Position)、属性情報(Attribute)、及びその他の付加情報MetaData)を含む。
付加情報生成部151は、三次元構造を二次元画像に投影することで、複数の二次元画像のマップ情報を生成する。
位置画像生成部152は、位置情報と、付加情報生成部151で生成されたマップ情報とに基づき、位置画像(Geometry Image)を生成する。この位置画像は、例えば、画素値として距離(Depth)が示される距離画像である。なお、この距離画像は、一つの視点から複数の点群を見た画像(一つの二次元平面に複数の点群を投影した画像)であってもよいし、複数の視点から複数の点群を見た複数の画像であってもよいし、これらの複数の画像を統合した一つの画像であってもよい。
属性画像生成部153は、属性情報と、付加情報生成部151で生成されたマップ情報とに基づき、属性画像を生成する。この属性画像は、例えば、画素値として属性情報(例えば色(RGB))が示される画像である。なお、この画像は、一つの視点から複数の点群を見た画像(一つの二次元平面に複数の点群を投影した画像)であってもよいし、複数の視点から複数の点群を見た複数の画像であってもよいし、これらの複数の画像を統合した一つの画像であってもよい。
なお、メッシュデータが符号化される場合は、頂点情報の位置情報が位置画像生成部152に入力され、面情報、又は、面及び頂点に対する属性情報が属性画像生成部153へ入力される。
映像符号化部154は、位置画像及び属性画像を、映像符号化方式を用いて符号化することで、符号化データである符号化位置画像(Compressed Geometry Image)及び符号化属性画像(Compressed Attribute Image)を生成する。なお、映像符号化方式として、公知の任意の符号化方法が用いられてよい。例えば、映像符号化方式は、AVC又はHEVC等である。
付加情報符号化部155は、点群データに含まれる付加情報、及びマップ情報等を符号化することで符号化付加情報(Compressed MetaData)を生成する。
多重化部156は、符号化位置画像、符号化属性画像、符号化付加情報、及び、その他の付加情報を多重化することで符号化データである符号化ストリーム(Compressed Stream)を生成する。生成された符号化ストリームは、図示しないシステムレイヤの処理部へ出力される。
次に、第2の符号化方法の復号を行う復号部124の例である第2の復号部160について説明する。図13は、第2の復号部160の構成を示す図である。図14は、第2の復号部160のブロック図である。第2の復号部160は、第2の符号化方法で符号化された符号化データ(符号化ストリーム)を、第2の符号化方法で復号することで点群データを生成する。この第2の復号部160は、逆多重化部161と、映像復号部162と、付加情報復号部163と、位置情報生成部164と、属性情報生成部165とを含む。
図示しないシステムレイヤの処理部から符号化データである符号化ストリーム(Compressed Stream)が第2の復号部160に入力される。
逆多重化部161は、符号化データから、符号化位置画像(Compressed Geometry Image)、符号化属性画像(Compressed Attribute Image)、符号化付加情報(Compressed MetaData)、及び、その他の付加情報を分離する。
映像復号部162は、符号化位置画像及び符号化属性画像を、映像符号化方式を用いて復号することで、位置画像及び属性画像を生成する。なお、映像符号化方式として、公知の任意の符号化方式が用いられてよい。例えば、映像符号化方式は、AVC又はHEVC等である。
付加情報復号部163は、符号化付加情報を復号することで、マップ情報等を含む付加情報を生成する。
位置情報生成部164は、位置画像とマップ情報とを用いて位置情報を生成する。属性情報生成部165は、属性画像とマップ情報とを用いて属性情報を生成する。
第2の復号部160は、復号に必要な付加情報を復号時に使用し、アプリケーションに必要な付加情報を外部に出力する。
[第1の符号化方式における位置情報符号化]
図15は、位置情報符号化部131の構成例を示すブロック図である。位置情報符号化部131は、8分木符号化部171と、予測木符号化部172とを備える。8分木符号化部171は、8分木を用いた符号化方式(8分木符号化)を用いて位置情報を符号化することで符号化位置情報及びメタデータを生成する。予測木符号化部172は、予測木を用いた符号化方式(予測木符号化)を用いて位置情報を符号化することで符号化位置情報及びメタデータを生成する。
図15は、位置情報符号化部131の構成例を示すブロック図である。位置情報符号化部131は、8分木符号化部171と、予測木符号化部172とを備える。8分木符号化部171は、8分木を用いた符号化方式(8分木符号化)を用いて位置情報を符号化することで符号化位置情報及びメタデータを生成する。予測木符号化部172は、予測木を用いた符号化方式(予測木符号化)を用いて位置情報を符号化することで符号化位置情報及びメタデータを生成する。
位置情報符号化部131は、8分木符号化と予測木符号化とのいずれか一方又は両方を用いて位置情報を符号化する。位置情報符号化部131は、この2方式を切替えて符号化してもよいし、この2方式以外の符号化方式を用いてもよいし、位置情報を符号化せずにrawデータとしてビットストリームに含めてもよい。符号化データの符号化方式を示す情報は、メタデータに格納され、復号装置へ通知される。
図16は、位置情報復号部142の構成例を示すブロック図である。位置情報復号部142は、8分木復号部173と、予測木復号部174とを備える。8分木復号部173は、8分木を用いた復号方式(8分木復号)を用いて符号化位置情報を復号することで位置情報を生成する。予測木復号部174は、予測木を用いた復号方式(予測木復号)を用いて符号化位置情報を復号することで位置情報を生成する。また、位置情報復号部142は、メタデータで通知された符号化方式を用いて復号を行う。
次に、位置情報符号化部の構成例を説明する。図17は、本実施の形態に係る8分木符号化部171のブロック図である。8分木符号化部171は、8分木生成部181と、幾何情報算出部182と、符号化テーブル選択部183と、エントロピー符号化部184とを備える。
8分木生成部181は、入力された位置情報から、例えば8分木を生成し、8分木の各ノードのオキュパンシー符号を生成する。幾何情報算出部182は、対象ノードの隣接ノードが占有ノードか否かを示す情報を取得する。例えば、幾何情報算出部182は、対象ノードが所属する親ノードのオキュパンシー符号から隣接ノードの占有情報(隣接ノードが占有ノードであるか否かを示す情報)を算出する。また、幾何情報算出部182は、符号化済みのノードをリストに保存しておき、そのリスト内から隣接ノードを探索してもよい。なお、幾何情報算出部182は、対象ノードの親ノード内の位置に応じて隣接ノードを切替えてもよい。
符号化テーブル選択部183は、幾何情報算出部182で算出された隣接ノードの占有情報を用いて対象ノードのエントロピー符号化に用いる符号化テーブルを選択する。例えば、符号化テーブル選択部183は、隣接ノードの占有情報を用いてビット列を生成し、そのビット列から生成されるインデックス番号の符号化テーブルを選択してもよい。
エントロピー符号化部184は、選択されたインデックス番号の符号化テーブルを用いて対象ノードのオキュパンシー符号にエントロピー符号化を行うことで符号化位置情報及びメタデータを生成する。エントロピー符号化部184は、選択された符号化テーブルを示す情報を符号化位置情報に付加してもよい。
以下、8分木表現と位置情報のスキャン順について説明する。位置情報(位置データ)は8分木構造に変換(8分木化)された後、符号化される。8分木構造はノードとリーフとで構成される。各ノードは8つのノード又はリーフを持ち、各リーフはボクセル(VXL)情報を持つ。図18は、複数のボクセルを含む位置情報の構造例を示す図である。図19は、図18に示す位置情報を8分木構造に変換した例を示す図である。ここで、図19に示すリーフのうち、リーフ1、2、3はそれぞれ図18に示すボクセルVXL1、VXL2、VXL3を表し、点群を含むVXL(以下、有効VXL)を表現している。
具体的には、ノード1は、図18の位置情報を包含する全体空間に対応する。ノード1に対応する全体空間は8つのノードに分割され、8つのノードのうち、有効VXLを含むノードが、さらに8つのノードまたはリーフに分割され、この処理が木構造の階層分繰り返される。ここで、各ノードはサブ空間に対応し、ノード情報として分割後のどの位置に次のノードまたはリーフを持つかを示す情報(オキュパンシー符号)を持つ。また、最下層のブロックはリーフに設定され、リーフ情報としてリーフ内に含まれる点群数などが保持される。
次に、位置情報復号部の構成例を説明する。図20は、本実施の形態に係る8分木復号部173のブロック図である。8分木復号部173は、8分木生成部191と、幾何情報算出部192と、符号化テーブル選択部193と、エントロピー復号部194とを備える。
8分木生成部191は、ビットストリームのヘッダ情報又はメタデータ等を用いて、ある空間(ノード)の8分木を生成する。例えば、8分木生成部191は、ヘッダ情報に付加されたある空間のx軸、y軸、z軸方向の大きさを用いて大空間(ルートノード)を生成し、その空間をx軸、y軸、z軸方向にそれぞれ2分割することで8個の小空間A(ノードA0~A7)を生成することで8分木を生成する。また、対象ノードとしてノードA0~A7が順に設定される。
幾何情報算出部192は、対象ノードの隣接ノードが占有ノードであるか否かを示す占有情報を取得する。例えば、幾何情報算出部192は、対象ノードが所属する親ノードのオキュパンシー符号から隣接ノードの占有情報を算出する。また、幾何情報算出部192は、復号済みのノードをリストに保存しておき、そのリスト内から隣接ノードを探索してもよい。なお、幾何情報算出部192は、対象ノードの親ノード内の位置に応じて隣接ノードを切替えてもよい。
符号化テーブル選択部193は、幾何情報算出部192で算出された隣接ノードの占有情報を用いて対象ノードのエントロピー復号に用いる符号化テーブル(復号テーブル)を選択する。例えば、符号化テーブル選択部193は、隣接ノードの占有情報を用いてビット列を生成し、そのビット列から生成されるインデックス番号の符号化テーブルを選択してもよい。
エントロピー復号部194は、選択された符号化テーブルを用いて対象ノードのオキュパンシー符号をエントロピー復号することで、位置情報を生成する。なお、エントロピー復号部194は、選択された符号化テーブルの情報をビットストリームから復号して取得し、当該情報で示される符号化テーブルを用いて、対象ノードのオキュパンシー符号をエントロピー復号してもよい。
[第1の符号化方式における属性情報符号化]
以下、属性情報符号化部及び属性情報復号部の構成を説明する。図21は属性情報符号化部132の構成例を示すブロック図である。属性情報符号化部は異なる符号化方法を実行する複数の符号化部を含んでもよい。例えば、属性情報符号化部は、下記の2方式をユースケースに応じて切替えて用いてもよい。
以下、属性情報符号化部及び属性情報復号部の構成を説明する。図21は属性情報符号化部132の構成例を示すブロック図である。属性情報符号化部は異なる符号化方法を実行する複数の符号化部を含んでもよい。例えば、属性情報符号化部は、下記の2方式をユースケースに応じて切替えて用いてもよい。
属性情報符号化部132は、LoD属性情報符号化部201と、変換属性情報符号化部202とを含む。LoD属性情報符号化部201は、三次元点の位置情報を用いて各三次元点を複数階層に分類し、各階層に属する三次元点の属性情報を予測して、その予測残差を符号化する。ここで、分類した各階層をLoD(Level of Detail)と呼ぶ。
変換属性情報符号化部202は、RAHT(Region Adaptive Hierarchical Transform)を用いて属性情報を符号化する。具体的には、変換属性情報符号化部202は、三次元点の位置情報を元に各属性情報に対してRAHTまたはHaar変換を適用することで、各階層の高周波成分および低周波数成分を生成し、それらの値を量子化及びエントロピー符号化等を用いて符号化する。
図22は属性情報復号部143の構成例を示すブロック図である。属性情報復号部は異なる復号方法を実行する複数の復号部を含んでもよい。例えば、属性情報復号部は、下記の2方式をヘッダやメタデータに含まれる情報を元に切替えて復号してもよい。
属性情報復号部143は、LoD属性情報復号部203と、変換属性情報復号部204とを含む。LoD属性情報復号部203は、三次元点の位置情報を用いて各三次元点を複数階層に分類し、各階層に属する三次元点の属性情報を予測しながら属性値を復号する。
変換属性情報復号部204は、RAHT(Region Adaptive Hierarchical Transform)を用いて属性情報を復号する。具体的には、変換属性情報復号部204は、三次元点の位置情報を元に各属性値の高周波成分および低周波成分に対して、inverse RAHTまたはinverse Haar変換を適用することで属性値を復号する。
図23は、変換属性情報符号化部202の一例である変換属性情報符号化部202のブロック図である。変換属性情報符号化部202は、ソート部211と、Haar変換部212と、量子化部213と、逆量子化部214と、逆Haar変換部215と、メモリ216と、算術符号化部217とを備える。
ソート部211は、三次元点の位置情報を用いてモートン符号を生成し、複数の三次元点をモートン符号順にソートする。Haar変換部212は、属性情報にHaar変換を適用することで符号化係数を生成する。量子化部213は、属性情報の符号化係数を量子化する。
逆量子化部214は、量子化後の符号化係数を逆量子化する。逆Haar変換部215は、符号化係数に逆Haar変換を適用する。メモリ216は、復号済みの複数の三次元点の属性情報の値を記憶する。例えば、メモリ216に記憶される復号済みの三次元点の属性情報は、符号化されていない三次元点の予測等に利用されてもよい。
算術符号化部217は、量子化後の符号化係数からZeroCntを算出し、ZeroCntを算術符号化する。また、算術符号化部217は、量子化後の非ゼロの符号化係数を算術符号化する。算術符号化部217は、符号化係数を算術符号化前に二値化してもよい。また、算術符号化部217は、各種ヘッダ情報を生成及び符号化してもよい。
図24は、変換属性情報復号部204の一例である変換属性情報復号部204のブロック図である。変換属性情報復号部204は、算術復号部221と、逆量子化部222と、逆Haar変換部223と、メモリ224とを備える。
算術復号部221は、ビットストリームに含まれるZeroCntと符号化係数を算術復号する。なお、算術復号部221は、各種ヘッダ情報を復号してもよい。
逆量子化部222は、算術復号した符号化係数を逆量子化する。逆Haar変換部223は、逆量子化後の符号化係数に逆Haar変換を適用する。メモリ224は、復号済みの複数の三次元点の属性情報の値を記憶する。例えば、メモリ224に記憶される復号済みの三次元点の属性情報は、復号されていない三次元点の予測に利用されてもよい。
[スライス分割]
符号化装置は、三次元データを1以上の三次元データに分割して符号化してもよい。複数に分割された三次元点群をスライスと呼ぶ。スライスは、位置情報(Geometry)と属性情報(Attribute)とを持つ点の集合である。
符号化装置は、三次元データを1以上の三次元データに分割して符号化してもよい。複数に分割された三次元点群をスライスと呼ぶ。スライスは、位置情報(Geometry)と属性情報(Attribute)とを持つ点の集合である。
図25は、この場合の三次元データ符号化装置の構成例を示すブロック図である。三次元データ符号化装置は、データ分割部231と、符号化部232とを備える。
データ分割部231は、三次元データを分割することで複数の分割三次元データを生成する。各分割三次元データはスライスに対応する。符号化部232は、複数の分割三次元データ(スライス)の各々の位置情報及び属性情報を符号化することで符号化データを生成する。
図26は、この場合の三次元データ復号装置の構成例を示すブロック図である。三次元データ復号装置は、復号部233と、データ結合部234とを備える。復号部233は、符号化データを復号することで、複数の分割三次元データを生成する。各分割三次元データは、スライスの位置情報及び属性情報を含む。データ結合部234は、複数の分割三次元データを結合することで三次元データを復元する。
なお、符号化において、スライス間に依存関係があってもよいし依存関係がなくてもよい。依存関係がない場合はスライスを独立に符号化又は復号することが可能である。よって、複数のスライスを並列処理することで処理時間を削減できる。また。一部のスライスのみを復号する部分復号により処理量を削減可能である。
依存関係がある場合は、依存関係を示す識別子がビットストリームに格納され、依存されるデータ(参照先のデータ)から順に符号化又は復号が行われる。
分割数、又は分割方法はどのような方法でもよい。三次元データ符号化装置は、オブジェクトの形状を判定し、オブジェクト毎に点群を分割してもよいし、スライスに含まれる点の数を基準に分割を行ってもよい。また、三次元データ符号化装置は、地図情報又は位置情報を用いて、点群が三次元空間(タイル情報)に含まれるか否かに基づき分割を行ってもよい。
図27は、タイル及びスライスの関係を示す図である。図27に示すようにタイルは三次元空間に対応し、スライスは分割された三次元点群に対応する。なお、複数のタイルは重複してもよい。これにより、コンテンツ又はオブジェクトに応じた、適応的な符号化又は復号における並列処理が可能となり、点群符号化システム又は点群復号システムの柔軟性が向上する。
[符号化データの構成]
スライス毎の位置情報及び属性情報はそれぞれ符号化される。得られた符号化データの少なくとも一部はデータユニットのペイロードに格納される。また、ペイロードにヘッダが付加される。
スライス毎の位置情報及び属性情報はそれぞれ符号化される。得られた符号化データの少なくとも一部はデータユニットのペイロードに格納される。また、ペイロードにヘッダが付加される。
各点に対して属性情報が複数存在する場合は、複数の属性情報のそれぞれがデータユニット格納される。図28は、ビットストリーム(符号化データ)の構成例を示す図である。図28は、2種類の属性情報を持つ2フレームの点群の符号化データを示す。ビットストリームは、スライス毎にジオメトリ(位置情報)データユニット(Geometry Data Unit:Geom)と、2つの属性(属性情報)データユニット(Attribute Data Unit:Attr(0)、Attr(1))とを持つ。例えば、各点に対して色と反射率の2つの属性情報を持つ場合、色の符号化データはAttr(0)に格納され、反射率の符号化データはAttr(1)に格納される。ジオメトリデータユニットのヘッダにはスライスの識別子(slice_id)が格納される。属性データユニットのヘッダには対応する(参照する)ジオメトリデータユニットのslice_idが示される。なお、データユニットをスライスと呼び、データユニットヘッダをスライスヘッダと呼ぶこともある。
また、位置情報符号化に関わるメタデータはジオメトリ(位置情報)パラメータセット(Geometry Parameter Set:GPS)に格納される。属性情報符号化に関わるメタデータは属性パラメータセット(Attribute Parameter Set:APS)に格納される。複数のPCCフレーム(PCCシーケンス)に共通のメタデータはシーケンスパラメータセット(Sequence Parameter Set:SPS)に格納される。
それぞれのデータユニット及びパラメータセットは、NAL(Network Access Layer)ユニット又はTLV(Type Length Value)ユニットの形式に変換され、ユニットのデータ列(ストリーム)が出力される。
図29は、TLVユニットのストリームを出力する三次元データ符号化装置の構成例を示すブロック図である。三次元データ符号化装置は、符号化部241と、TLV格納部242とを備える。符号化部241は、点群データを符号化することで符号化データを生成する。TLV格納部242は、符号化データを複数のTLVユニットに格納(カプセル化)することでTLVストリーム(TLVユニットの単一ストリーム)を生成する。
ユニットは、データ種別を示すTypeと、長さ情報を示すLengthと、Typeで示されるデータを格納するValueとを含む。なお、ユニットは、長さ情報を含まないなど、別の形式であってもよい。
図28は、データユニット及びパラメータセットを格納するユニット列を示す。図28に示す矢印は符号化データの復号に係る依存関係を示す。矢印の元は矢印の先のデータに依存しており、元データのヘッダには矢印の先(参照先)のデータの識別子が示される。三次元データ復号装置は、矢印の先のデータを復号し、その復号データを用いて矢印の元のデータを復号する。例えば、ジオメトリデータユニット(Geom)には、当該ジオメトリデータユニットに対応するGPSのid及びSPSのidが示される。属性データユニット(Attr)には、当該属性データユニットに対応するAPSのidが示される。
GPS及びAPSはフレーム毎に1つ設けられてもよい。または、スライス毎に符号化方式が変更される場合は、スライス毎にGPS及びAPSが設けられてもよい。また、GPS及びAPSは複数フレーム(シーケンス)で共有されてもよい。
また、APSは複数の属性情報で共有されてもよい。参照先のパラメータセットは参照元より前に送出される。
フレーム間予測を用いる場合など、フレーム間のデータユニットに依存関係がある場合、複数のフレームを含むGOF(Group of Frame)が構成されてもよい。GOFは、ランダムアクセス単位であり、GOFの先頭スライスは依存関係がなく、復号開始のスライスである。ストリームは、フレームの境界或いはGOFの境界を示すデリミタ、又は境界を示すTLVユニットを有してもよい。
次に、符号化データの構成、及び符号化データのNALユニットへの格納方法を説明する。
例えば、符号化データの種類毎にデータフォーマットが規定される。図30は、符号化データ及びNALユニットの例を示す図である。
例えば、図30に示すように符号化データは、ヘッダとペイロードとを含む。なお、符号化データは、符号化データ、ヘッダ又はペイロードの長さ(データ量)を示す長さ情報を含んでもよい。符号化データは、長さ情報を含むTLV形式であってもよい。また、符号化データは、ヘッダを含まなくてもよい。
ヘッダは、例えば、データを特定するための識別情報を含む。この識別情報は、例えば、データ種別又はフレーム番号を示す。
ヘッダは、例えば、参照関係を示す識別情報を含む。この識別情報は、例えば、データ間に依存関係がある場合にヘッダに格納され、参照元から参照先を参照するための情報である。例えば、参照先のヘッダには、当該データを特定するための識別情報が含まれる。参照元のヘッダには、参照先を示す識別情報が含まれる。
なお、他の情報から参照先又は参照元を識別可能又は導出可能である場合は、データを特定するための識別情報、又は参照関係を示す識別情報を省略してもよい。
三次元データ符号化装置は、符号化データを、NALユニットのペイロードに格納する。NALユニットヘッダには、符号化データの識別情報であるpcc_nal_unit_typeが含まれる。図31は、pcc_nal_unit_typeのセマンティクスの例を示す図である。
図31に示すように、pcc_codec_typeがコーデック1(Codec1:第1の符号化方法)である場合、pcc_nal_unit_typeの値0~10は、コーデック1における、符号化位置データ(Geometry)、符号化属性Xデータ(AttributeX)、符号化属性Yデータ(AttributeY)、位置PS(Geom.PS)、属性XPS(AttrX.PS)、属性YPS(AttrY.PS)、位置SPS(Geometry Sequence PS)、属性XSPS(AttributeX Sequence PS)、属性YSPS(AttributeY Sequence PS)、AUヘッダ(AU Header)、GOFヘッダ(GOF Header)に割り当てられる。また、値11以降は、コーデック1の予備に割り当てられる。
以下、本実施の形態の変形例について説明する。フレームレベルのPS、シーケンスレベルのPS、PCCシーケンスレベルのPSのように、PSにはレベルがあり、PCCシーケンスレベルを上位のレベルとし、フレームレベルを下位のレベルとすると、パラメータの格納方法には下記の方法を用いてもよい。
デフォルトのPSの値をより上位のPSで示す。また、下位のPSの値が上位のPSの値と異なる場合には、下位のPSでPSの値が示される。または、上位ではPSの値を記載せず、下位のPSにPSの値を記載する。または、PSの値を、下位のPSで示すか、上位のPSで示すか、両方で示すかの情報を、下位のPSと上位のPSのいずれか一方又は両方に示す。または、下位のPSを上位のPSにマージしてもよい。または、下位のPSと上位のPSとが重複する場合には、三次元データ符号化装置は、いずれか一方の送出を省略してもよい。
なお、三次元データ符号化装置は、データをスライス又はタイルなどに分割し、分割したデータを送出してもよい。分割したデータには、分割したデータを識別するための情報が含まれ、分割データの復号に使用するパラメータがパラメータセットに含まれる。この場合、pcc_nal_unit_typeには、タイル又はスライスに係るデータ又はパラメータを格納するデータであることを示す識別子が定義される。
[ガウシアンデータ]
以下、ガウシアンデータ(Gaussian Splatting 3Dデータ)について説明する。まず、Gaussian Splatting方式を用いて生成された三次元データを符号化、又は復号するシステムの構成について説明する。
以下、ガウシアンデータ(Gaussian Splatting 3Dデータ)について説明する。まず、Gaussian Splatting方式を用いて生成された三次元データを符号化、又は復号するシステムの構成について説明する。
図32は、図1に示す三次元データ生成システムにおける処理の一部を示す図である。図32に示すセンサ情報入力部301及び三次元データ生成部302は、例えば、図1に示すセンサ情報取得部117及び三次元データ生成部118に対応する。
センサ情報入力部301は、点群データ(三次元点群データ)を取得し、取得された点群データを三次元データ生成部302へと出力する。三次元データ生成部302は、点群データから、ガウシアンデータ(Gaussian Splattingデータ)を生成し、生成したガウシアンデータを出力する。
具体的には、三次元データ生成部302は、まず、入力された点群データの密度に応じてグリッドを生成する。点群データの各点は近くのグリッドに投影される。このとき、点に付随する色、反射率又は法線などの属性情報も同時にグリッドに紐づけられる。三次元データ生成部302は、グリッドに投影された情報からガウシアン関数の平均値及び分散などのパラメータを導出する。
なお、ガウシアンデータの生成方法は上記に限らない。例えば、ガウシアンデータは、複数の二次元画像からStructure from Motion(SfM)等を用いて生成された点群データを用いて機械学習により生成されてもよい。
ガウシアンデータは、複数の3Dガウシアン(楕円体)の集合である。各々の3Dガウシアンは、三次元点座標、3×3の共分散行列(Covariance)、色(Color)、及び透過率(Transparent)などのデータを含む。また、3Dガウシアンの上記データをPLYフォーマットに記載される構成要素に変換して表現することも可能である。
図33は、PLYフォーマットで記載されるガウシアンデータの構成要素を示す図である。図33に示すガウシアンデータは、位置(Position)、回転(Orientation)、スケール(Scale)、SH係数(SH Coefficient)、及び透過率(Transparent)を含む。なお、透過率は、透過度、透明度又は不透明度とも呼ばれる。
位置(Position)は、三次元点の三次元座標である。スケール(Scale)、及び回転(Orientation)は、三次元の共分散行列のパラメータである。また、SH係数(SH Coefficient)は、色情報を球面調和関数(Spherical harmonics)で表した場合の球面調和関数の係数である。
つまり、ガウシアンデータは、3Dガウシアン毎の、基準となる三次元座標(位置)と、三次元座標に紐づく情報(回転、スケール、SH係数、透過率)とを含む。
なお、ガウシアンデータの構成は上記に限らない。例えば、ガウシアンデータは、共分散行列を含まなくてもよい。例えば、ガウシアンデータは、三次元点の三次元座標を示す位置(Position)と、各軸に沿ったスケールを示すスケール(Scale)と、例えば、RGBを示す色(Color)と、透過率(Transparency)とを含む。
また、ガウシアンデータは、複数の楕円体の代わりに、3D空間を分割した複数の立方体(ボクセル)を含んでもよい。各ボクセルは、属性情報を有する。例えば、各ボクセルは、ボクセルの中心点の三次元座標を示す位置(Position)と、色、反射率、又は材質などの情報である属性情報と、ボクセルの大きさを示すスケール(Scale)とを含んでもよい。
また、位置(Position)は、三次元座標でなく、二次元点座標(x、y)で表されてもよい。この場合、スケール(Scale)は二次元平面上での楕円体の大きさ又は形状を示してもよい。具体的には、ガウシアンデータは、二次元平面上の位置を示す位置(Position)と、各軸に沿ったスケール(Su、Sv)を示すスケールベクトル(Scale Vector)と、楕円体の向きを示す回転情報(Rotation)とを含んでもよい。
なお、ガウシアンデータを記載する形式はPLYフォーマットに限らない。例えば、ガウシアンデータを記載する形式はSPZフォーマットなどでもよい。
[ガウシアンデータのレンダリング処理]
次に、ガウシアンデータのレンダリング処理について説明する。図34は、ガウシアンデータのレンダリング処理を示す図である。図34に示すように、レンダリング部303は、ガウシアンデータをレンダリングすることにより、3Dモデル(三次元モデル)を生成する。これにより、生成された3Dモデルを3D表示装置などのアプリケーションで提示することが可能となる。3D表示装置とは、例えば、ホログラムのように空間に立体映像を表示する装置、又は裸眼3D表示装置である。
次に、ガウシアンデータのレンダリング処理について説明する。図34は、ガウシアンデータのレンダリング処理を示す図である。図34に示すように、レンダリング部303は、ガウシアンデータをレンダリングすることにより、3Dモデル(三次元モデル)を生成する。これにより、生成された3Dモデルを3D表示装置などのアプリケーションで提示することが可能となる。3D表示装置とは、例えば、ホログラムのように空間に立体映像を表示する装置、又は裸眼3D表示装置である。
図35は、球面調和関数のSH係数の数の例を示す図である。球面調和関数は、解像度を示すレベルに応じて要素数(SH係数の数)が定められている。例えば、レベルが上がるほど(レベルの数値が大きいほど)解像度が高いことが示される。例えば、レベルが上がるほど高周波成分の情報が追加される。
例えば、レベル2を表現する場合は、レベル0~2までの合計9個の要素(SH係数)を球面調和関数は持つ。例えば、レベル3を表現する場合は、レベル0~3までの合計16個の要素(SH係数)を球面調和関数は持つ。
例えば、図33に示す例は、レベル3の色の球面調和関数を示し、色の3要素(R、G、B)がそれぞれ16個のSH係数で表現される。よって、球面調和関数は16×3=48個の要素を持つ。なお、レベル4以上も定めることが可能である。
色を球面調和関数で表現することにより、三次元的な色情報を表現可能である。図36は、球面調和関数の入出力の例を示す図である。例えば、図36に示すように、視点の情報を色の球面調和関数304に入力することにより、その視点から見た色情報(R、G、B)が出力される。
図37は、レンダリング処理を示す図である。図37に示すように、レンダリング部305は、ガウシアンデータと、指定された視点とに基づき、当該視点から見た3Dモデル又は2D画像を生成する。生成された3DモデルはVR表示などのアプリケーションで提示することが可能である。また、生成された2D画像は2D画像表示装置などのアプリケーションで提示することが可能である。
なお、色に限らず、他の属性情報(反射率又は赤外情報など)が球面調和関数を用いて表現されてもよい。その場合は、ガウシアンデータは、属性情報毎の球面調和関数のSH係数を含む。また、属性情報又は解像度に応じてレベルが変更されてもよい。
[ガウシアンデータの符号化及び復号]
次に、ガウシアンデータの符号化処理及び復号処理について説明する。図38は、本実施の形態に係る符号化装置(符号化システム)のブロック図である。この符号化装置は、ガウシアンデータを符号化及び多重する。図39は、本実施の形態に係る復号装置(復号システム)のブロック図である。この復号装置は、ガウシアンデータを復号し、アプリケーションで3Dモデル又は2D画像を提示する。なお、図38及び図39に示す符号化装置及び復号装置は、例えば、図1に示す三次元データ生成システムに含まれる。
次に、ガウシアンデータの符号化処理及び復号処理について説明する。図38は、本実施の形態に係る符号化装置(符号化システム)のブロック図である。この符号化装置は、ガウシアンデータを符号化及び多重する。図39は、本実施の形態に係る復号装置(復号システム)のブロック図である。この復号装置は、ガウシアンデータを復号し、アプリケーションで3Dモデル又は2D画像を提示する。なお、図38及び図39に示す符号化装置及び復号装置は、例えば、図1に示す三次元データ生成システムに含まれる。
図38に示す符号化装置は、符号化部311と、多重化部312とを含む。符号化部311は、入力されたガウシアンデータを所定の符号化方式で符号化することで符号化データ(ビットストリーム)を生成し、生成された符号化データを多重化部312へ出力する。
多重化部312は、入力された符号化データを所定の多重化方法で多重化することで多重化データを生成し、生成された多重化データを出力する。この多重化データは、蓄積又は伝送される。
図39に示す復号装置は、逆多重化部321と、復号部322と、アプリケーション部323とを含む。逆多重化部321は、入力された多重化データを所定の多重化方法で逆多重化することで符号化データを生成し、生成された符号化データを復号部322へ出力する。
復号部322は、入力された符号化データを所定の符号化方式(復号方式)で復号することでガウシアンデータを生成し、生成されたガウシアンデータをアプリケーション部323に出力する。
アプリケーション部323は、入力インターフェース部324と、レンダリング部325と、提示部326とを含む。入力インターフェース部324は、ユーザ操作を取得する。例えば、入力インターフェース部324は、ユーザ操作に基づき、ユーザが入力した視点を示す視点情報を生成する。
レンダリング部325は、入力されたガウシアンデータをレンダリングすることにより、三次元モデル又は二次元画像を生成する。例えば、レンダリング部325は、視点情報で示されるユーザが入力した視点から見た3Dモデル又は2D画像を生成する。なお、レンダリング部325は、予め定められた視点から見た3Dモデル又は2D画像を生成してもよい。
提示部326は、レンダリング部325で生成された三次元モデル又は二次元画像を提示(表示)する。3Dモデルを提示するか2D画像を提示するかは、例えば以下の方法で決定されてもよい。例えば、レンダリング部325は、図34に示す処理のように、まず、三次元モデルを生成し、点の座標情報を生成する。レンダリング部325は、視点情報が入力された後に指定された視点から見た2D画像を生成する。その際、レンダリング部325は、指定された視点とともに領域を指定する情報を受け付けてもよい。このように、先に3Dモデルを生成し、その後指定された領域の2D画像を生成することで、全ての領域の2D画像を生成するよりも処理量を削減できる。よって、レンダリングの速度を上げることができる。または、レンダリングを実行する装置の処理能力に応じて3D表示(3Dモデル)を提示するか2D画像を提示するかが決定されてもよい。例えば処理能力が低い装置の場合、当該装置は、2D画像を生成せず、3Dモデルを提示してもよい。
(第1態様)
[G-PCCを用いたガウシアンデータの符号化]
図40は、本実施の形態に係る符号化装置330(三次元データ符号化装置)の構成例を示すブロック図である。符号化装置330は、第1のガウシアンデータを符号化することでビットストリーム(符号化データ)を生成する。
[G-PCCを用いたガウシアンデータの符号化]
図40は、本実施の形態に係る符号化装置330(三次元データ符号化装置)の構成例を示すブロック図である。符号化装置330は、第1のガウシアンデータを符号化することでビットストリーム(符号化データ)を生成する。
符号化装置330は、第1の前処理部331と、第2の前処理部332と、G-PCC符号化部333とを含む。
第1のガウシアンデータは、例えば、共分散行列などを含む。第1の前処理部331は、第1のガウシアンデータを、plyフォーマットの構成要素で構成される第2のガウシアンデータに変換する。例えば、plyファイルの構成要素は、図33に示すように、三次元座標、スケール、回転、球面調和関数のSH係数、及び透過率を含む。
なお、ここでは、符号化装置330に第1のガウシアンデータが入力され、符号化装置330は第1のガウシアンデータを第2のガウシアンデータに変換する例を述べるが、符号化装置330に第2のガウシアンデータが入力されてもよい。この場合、符号化装置330は、第1の前処理部331を備えなくてもよい。
第2の前処理部332は、第2のガウシアンデータに含まれる複数の構成要素を、各構成要素に対応する符号化方式で符号化可能となるフォーマットに変換し、変換後の複数の構成要素をG-PCC符号化部333に出力する。
G-PCC符号化部333は、三次元座標を、G-PCC符号化方式(Geometry based PCC)におけるジオメトリ(位置情報)符号化方式(8分木符号化方式又は予測木符号化方式、TriSoup方式など)を用いて符号化する。G-PCC符号化部333は、回転、スケール、SH係数及び透過率などの、三次元座標に紐づく情報を、G-PCC符号化方式における属性符号化方式(LoDベース符号化方式(LoD属性情報符号化方式)又はTransformベース符号化方式(変換属性情報符号化方式)など)を用いて符号化する。
G-PCC符号化部333は、位置情報符号化部341と、回転符号化部342と、スケール符号化部343と、SH係数符号化部344と、透過率符号化部345と、メタデータ符号化部346と、多重化部347とを備える。
位置情報符号化部341は、三次元座標を符号化する。三次元座標は、ガウシアンデータの基準又は代表となる三次元座標である。例えば、三次元座標は、ガウシアンデータを構成する楕円の中心座標であってもよいし、その他の座標であってもよい。例えば、三次元座標は、ガウシアンデータの生成に用いられるグリッドの原点座標であってもよい。
また、三次元座標は第1の前処理部331では処理されず、そのまま第2の前処理部332に入力される。第2の前処理部332は、入力された三次元座標を、正の整数型の情報(三次元座標)に変換する。変換の際に用いたスケール値及びオフセット値は、SPSなどのメタデータに格納され、復号装置へ通知される。
位置情報符号化部341は、第2の前処理部332から出力された三次元座標を、G-PCCのジオメトリ符号化方式を用いて符号化することで符号化データを生成する。この符号化データは、GDU(Geometry Data Unit)に格納されて出力される。また、GDUの復号に必要なメタデータはGPS(Geometry Parameter Set)に格納されて出力される。
また、位置情報符号化部341は、複数のガウシアンデータの複数の三次元座標が疎(密度が予め定められた閾値未満)である場合、疎な三次元点の符号化に適した予測木符号化方式を用いてもよい。また、位置情報符号化部341は、複数のガウシアンデータの複数の三次元座標が密(密度が予め定められた閾値以上)である場合、密な三次元点の符号化に適した8分木符号化方式を用いてもよい。
第1の前処理部331は、第1のガウシアンデータに含まれる共分散行列を回転値及びスケール値に変換する。第1の前処理部331は、第1のガウシアンデータに含まれる色情報を、球面調和関数に変換し、球面調和関数におけるSH係数を出力する。
第2の前処理部332は、第2のガウシアンデータに含まれる各データのデータ型を変換する。具体的には、第2の前処理部332は、各データは、G-PCC符号化方式で符号化するために、正の整数型のデータに変換する。例えば、データがfloat型である場合は、第2の前処理部332は、当該データに、スケーリング及びオフセット処理を行うことにより、当該データを正の整数型のデータに変換する。このとき、変換に使用された属性情報毎のスケール値及びオフセット値は、SPSなどのメタデータに格納され、復号装置へ通知される。
また、第2の前処理部332は、各データのフォーマット変換と、各データを属性コンポーネントへマッピングするマッピング処理とを行う。例えば、G-PCCの属性符号化方式で符号化できる属性コンポーネントあたりの要素数(次元数)の最大数が3である場合、第2の前処理部332は、入力された構成要素を、1つの属性コンポーネントあたり三次元(3つの要素)を持つ属性コンポーネントに変換する。例えば、スケール(Scale)は3つの要素を持つため、そのまま1つの属性コンポーネントとして出力される。また、回転(Orientation)は、4つの要素を持つため、2つの二次元の属性コンポーネントに変換される。SH係数は、レベル毎に要素数が変化する。例えば、レベルが3を超えるSH係数は、複数の属性コンポーネントに変換される。
この際、第2の前処理部332は、属性情報毎に、各要素がどの属性コンポーネントにマッピングされかを示すマッピング情報をメタデータとして生成する。
回転符号化部342、スケール符号化部343、SH係数符号化部344、及び透過率符号化部345は、それぞれ、回転、スケール、SH係数、及び透過率を、G-PCC符号化方式における属性符号化方式を用いて符号化することで複数の符号化データを生成する。生成された複数の符号化データの各々は、ADU(Attribute Data Unit)に格納されて出力される。ADUの復号に必要なメタデータはAPS(Attribute Parameter Set)に格納されて出力される。また、属性情報は三次元座標を用いて符号化される。
メタデータ符号化部346は、第1の前処理部331又は第2の前処理部332で用いられた変換パラメータを含む変換情報等を、SPS又はSEIなどのメタデータに格納する。なお、メタデータ符号化部346は、当該変換情報を符号化したうえでメタデータに格納してもよい。また、メタデータには、ガウシアンデータの構成情報、又はガウシアンデータがどのようにG-PCC符号化で伝送されるかの対応関係を示す情報が含まれてもよい。
多重化部347は、符号化データ(ADU並びにGDU)及びパラメータセット(APS、GPS並びにSPS)を、TLVユニットに格納し、ビットストリーム(符号化データ)として伝送する。なお、ビットストリームは、所定の多重化方式を用いて多重化されてもよい。また、ビットストリームはフォーマット化されてもよい。
[G-PCCを用いたガウシアンデータの復号]
図41は、本実施の形態に係る復号装置350(三次元データ復号装置)の構成例を示すブロック図である。復号装置350は、ビットストリーム(符号化データ)を復号することで第1のガウシアンデータ又は第2のガウシアンデータを生成する。例えば、復号装置350は、図40に示す符号化装置330により生成されたビットストリームを復号する。
図41は、本実施の形態に係る復号装置350(三次元データ復号装置)の構成例を示すブロック図である。復号装置350は、ビットストリーム(符号化データ)を復号することで第1のガウシアンデータ又は第2のガウシアンデータを生成する。例えば、復号装置350は、図40に示す符号化装置330により生成されたビットストリームを復号する。
復号装置350は、G-PCC復号部351と、第2の後処理部352と、第1の後処理部353とを含む。
G-PCC復号部351は、ビットストリームを、G-PCC符号化方式を用いて復号することで、三次元座標、回転、スケール、SH係数及び透過率を生成する。G-PCC復号部351は、逆多重化部361と、位置情報復号部362と、回転復号部363と、スケール復号部364と、SH係数復号部365と、透過率復号部366と、メタデータ復号部367とを備える。
逆多重化部361は、入力されたビットストリームに含まれる複数のTLVユニットを解析し、GDU、ADU、SPS、GPS及びAPSなどの符号化データのデータユニットを生成する。位置情報復号部362、回転復号部363、スケール復号部364、SH係数復号部365、透過率復号部366、及びメタデータ復号部367は、これらのデータユニットをパラメータセットの情報を用いて、属性コンポーネントごとにそれぞれの符号化方式を用いて復号する。
位置情報復号部362は、GDUから三次元座標を復号する。回転復号部363、スケール復号部364、SH係数復号部365及び透過率復号部366は、ADUから属性情報(回転、スケール、SH係数及び透過率)を復号する。また、属性情報は三次元座標を用いて復号される。メタデータ復号部367は、変換情報等を、SPS又はSEIなどのメタデータから取得する。なお、メタデータ復号部367は、当該変換情報をメタデータから復号してもよい。また、メタデータには、ガウシアンデータの構成情報、又はガウシアンデータがどのようにG-PCC符号化で伝送されるかの対応関係を示す情報が含まれてもよい。
第2の後処理部352は、復号されたデータを逆変換することで第2のガウシアンデータを生成する。ここで、逆変換は、第2の前処理部332で実施した変換処理と逆の処理であり、メタデータに含まれる変換情報(変換パラメータ)に基づき行われる。
第1の後処理部353は、第2のガウシアンデータを逆変換することで第1のガウシアンデータを生成する。ここで、逆変換は、第1の前処理部331で実施した変換処理と逆の処理である。また、第1のガウシアンデータ及び第2のガウシアンデータの少なくとも一方を出力される。なお、復号装置350は、第1の後処理部353を備えなくてもよい。
[マッピング処理]
第2の前処理部332は、ガウシアンデータをG-PCCの属性コンポーネントへマッピングする。このマッピングの方法と、その際に生成するマッピング情報について説明する。
第2の前処理部332は、ガウシアンデータをG-PCCの属性コンポーネントへマッピングする。このマッピングの方法と、その際に生成するマッピング情報について説明する。
以下では、回転、スケール及びSH係数をマッピングする例を示し、透過率の説明は省略する。なお、他の属性情報が追加される場合にも同様の処理を適用可能である。
図42は、ガウシアンデータに含まれる複数の属性コンポーネントを、符号化方式のコンポーネントであるG-PCCの属性コンポーネントにマッピングする例を示す図である。ここでは、G-PCCにおける属性コンポーネントの符号化において、符号化可能な最大の次元数(サブコンポーネント数)は3である例を示す。
なお、以下では、ガウシアンデータの属性コンポーネントをガウシアンコンポーネントと記し、G-PCCの属性コンポーネントをG-PCCコンポーネントと記す場合もある。また、属性コンポーネントを単にコンポーネントと記す場合もある。
例えば、スケールのガウシアンコンポーネントは、次元数=3のサブコンポーネント(B1~B3)を持ち、三次元のサブコンポーネントを持つ1つのG-PCCコンポーネントにマッピングされる。この場合、スケールのガウシアンコンポーネントの識別子と、G-PCCコンポーネントの識別子とが対応することがマッピング情報に示される。
また、回転のガウシアンコンポーネントは、次元数=4のサブコンポーネント(A1~A4)を持ち、三次元のサブコンポーネントを持つ1つのG-PCCコンポーネントにマッピングできない。そこで、回転の4つのサブコンポーネント(A1~A4)は、二次元のサブコンポーネントを持つ2つのG-PCCコンポーネントにマッピングされる。この場合、回転のガウシアンコンポーネントの識別子及び当該属性コンポーネントに含まれるサブコンポーネントの番号を示す識別子と、G-PCCコンポーネントの識別子及び当該G-PCCコンポーネントに含まれるサブコンポーネント番号を示す識別子とが対応することがマッピング情報に示される。
レベル毎のSH係数16個が三次元(RGB)の要素ごとに存在するため、SH係数は合計48次元の要素(C1~C48)を持つ。この48次元の要素は、三次元のサブコンポーネントを持つ16個のG-PCCコンポーネントにマッピングされる。
なお、図42に示す「ID」は属性コンポーネントIDであり、符号化データの属性コンポーネントを識別するための識別番号を示す。「ND」は、次元数(Number of Demension)であり、属性コンポーネントあたりの要素数(サブコンポーネント数)を示す。
また、ガウシアンデータの分割方法及びマッピング方法は上記の例に限らず、どのようなマッピング方法及び次元数の組み合わせが用いられてもよい。
第2の前処理部332は、マッピング処理において、ガウシアンコンポーネントに対応するG-PCCコンポーネントを示すマッピング情報を生成する。このマッピング情報は、メタデータとしてヘッダ又はSEIに格納される。
復号装置は、ビットストリームからマッピング情報を復号する。第2の後処理部352は、マッピング情報に基づき、G-PCCコンポーネントごとの復号データをガウシアンデータに再マッピングすることで、ガウシアンデータを再構成する。
図43は、マッピング情報の例を示す図である。なお、図43では、マッピング情報は、SEI(ガウシアンデータ属性マッピング情報SEI)に格納される。マッピング情報は、ガウシアンデータコンポーネント数を含む。ガウシアンデータコンポーネント数は、ガウシアンデータに含まれる属性情報の数を示す。例えば、図42に示す例では、回転、スケール及びSH係数が存在し、ガウシアンデータコンポーネント数は3である。
また、マッピング情報は、ガウシアンコンポーネントごとの情報として、ガウシアンデータコンポーネントIDと、ガウシアンデータタイプと、ガウシアンデータ次元数とを含む。
ガウシアンコンポーネントIDは、ガウシアンコンポーネントを一意に識別するための識別情報である。ガウシアンデータタイプは、ガウシアンコンポーネントのタイプを示す。例えば、値0は「回転」を示し、値1は「スケール」を示し、値2は「SH係数」を示し、値3は「透過率」を示す。なお、ここで、値とタイプとの組み合わせは一例であり、組み合わせはこれに限らない。
ガウシアンデータ次元数は、ガウシアンコンポーネントの次元数(サブコンポーネント数)を示す。例えば、図42に示す例では、回転のガウシアンデータ次元数は4であり、スケールのガウシアンデータ次元数は3であり、SH係数のガウシアンデータ次元数は48である。
また、マッピング情報は、ガウシアンコンポーネントの次元ごとの情報として、G-PCCコンポーネントIDと、G-PCC次元IDと、変換情報とを含む。G-PCCサブコンポーネントIDは、図42に示す「ID」に対応する。G-PCC次元IDは、サブコンポーネント番号を示す識別子である。例えば、図42に示すSH係数に含まれるC1はG-PCC次元ID=0であり、C2はG-PCC次元ID=1であり、C3はG-PCC次元ID=2である。
このように、マッピング情報は、ガウシアンデータの各コンポーネントの各次元に対応するG-PCCコンポーネントのID及び次元IDを示す。例えば、図42に示すサブコンポーネントC46に対しては、G-PCCコンポーネントID=18、及びG-PCC次元ID=2が示される。
なお、図43では、ガウシアンデータの各サブコンポーネント(次元)に対応するG-PCCのサブコンポーネント(次元)を示すマッピング情報の例を示したが、G-PCCの各サブコンポーネントに対応するガウシアンデータのサブコンポーネントを示すマッピング情報が用いられてもよい。
また、図43では、ガウシアンデータのサブコンポーネントとG-PCCのサブコンポーネントとの対応関係を示すマッピング情報の例を示したが、G-PCCコンポーネントにおけるサブコンポーネント数に制約がない場合は、ガウシアンコンポーネントとG-PCCコンポーネントとの対応関係を示すマッピング情報が用いられてもよい。つまり、次元間の対応関係は示さなくてもよい。
変換情報は、コンポーネントのデータを変換する際に用いられたパラメータ(変換パラメータ)を示す。図44は、変換情報の構成例を示す図である。例えば、変換情報は、変換においてスケールとオフセットとが用いられた場合、スケール値とオフセット値とを含む。
例えば、スケール値とオフセット値とを用いて下記式により、変換が行われる。
変換後データ=変換前データ×スケール値+オフセット
なお、変換に用いられる式は、予め定義された式であってもよいし、複数の変換式が定義され、使用される変換式が、所定の条件に応じて切り替えられてもよい。また、使用された変換式を示す情報がビットストリームに格納されてもよい。
なお、図43では、変換情報は、ガウシアンデータのサブコンポーネント(次元)毎に設けられるが、変換情報は、ガウシアンデータのコンポーネントごとに設けられてもよい。つまり、変換の方法は、コンポーネント単位で変更されてもよいし、サブコンポーネント単位で変更されてもよい。
なお、図43に示すシンタックスの一部は省略されてもよい。例えば、回転、スケール、及びSH係数の情報の記載順、及び次元数が予め定められている場合、ガウシアンデータコンポーネントID、ガウシアンデータタイプ、及びガウシアンデータ次元数などは省略されてもよい。
また、第2の前処理部332で決定された属性コンポーネントへのマッピング情報に基づき、それぞれの属性情報が符号化される。図45は、ガウシアンデータをG-PCC符号化する場合の符号化データの構成例を示す図である。
SPSには、G-PCCコンポーネントごとに、G-PCC属性コンポーネントID(attr_id)、G-PCC属性タイプ(attribute_type)、G-PCC属性コンポーネントの次元数(num_dimension)が記述される。ここで、ガウシアンデータの各要素を符号化することを示すG-PCC属性タイプが新たに定義されてもよい。
図46は、ガウシアンデータのG-PCC属性タイプの例を示す図である。図46に示すように、例えば、ガウシアンデータの回転、スケール、SH係数及び透過率をそれぞれ示すG-PCC属性タイプが定義されてもよい。
ADUのヘッダには、G-PCC属性コンポーネントID(attr_id)が付与される。復号装置は、ADUのヘッダに含まれるG-PCC属性コンポーネントIDと、SPSに含まれる情報とを用いて、それぞれのADUがどのG-PCC属性タイプであるかを識別できる。
また、マッピング情報(ガウシアンデータ属性マッピング情報SEI)は、SEIとして伝送されてもよいし、SPSに含まれてもよい。例えば、SPSは、G-PCCコンポーネントに対応するガウシアンコンポーネントを示すマッピング情報を含んでもよい。
図47は、本実施の形態に係る復号装置による処理のフローチャートである。まず、復号装置は、ビットストリームから複数のTLVユニットを取得し、複数のTLVユニットから複数のデータユニット(GDU、ADU)及び複数のパラメータセット(SPS、GPS、APS)を取得する(S101)。
次に、復号装置は、SPS、GPS及びGDUを用いて三次元座標を復号する(S102)。次に、復号装置は、APS、ADU及び三次元座標を用いて、SPSに記載される複数の属性コンポーネントを復号する(S103)。
次に、復号装置は、ガウシアンデータ属性マッピング情報SEIを解析することでマッピング情報を取得する(S104)。次に、復号装置は、復号された属性コンポーネントとマッピング情報とから、第2のガウシアンデータを再構成する(S105)。次に、復号装置は、変換情報を取得し、変換情報を用いて第2のガウシアンデータを逆変換することで第1のガウシアンデータを生成する(S106)。
[その他]
なお、上記説明では、説明の簡単可のため、ガウシアンデータが1フレームの場合の例を示したが、ガウシアンデータが複数フレーム存在する場合でも本方式を適用できる。この場合、G-PCC方式におけるマルチフレーム符号化が用いられてもよいし、G-PCC方式におけるインター予測方式が用いられてもよい。
なお、上記説明では、説明の簡単可のため、ガウシアンデータが1フレームの場合の例を示したが、ガウシアンデータが複数フレーム存在する場合でも本方式を適用できる。この場合、G-PCC方式におけるマルチフレーム符号化が用いられてもよいし、G-PCC方式におけるインター予測方式が用いられてもよい。
また、符号化装置は、ガウシアンデータを、複数の領域に分割することで複数の分割データを生成し、複数の分割データの各々を符号化してもよい。また、符号化装置は、分割データをG-PCCにおけるタイル又はスライスに割り当てて符号化してもよい。
なお、上記説明では、第2のガウシアンデータの属性情報(スケール、回転、SH係数、透過率等)を符号化する例を示したが、本実施の形態の方式を用いることにより、その他の属性情報の符号化も可能となる。
図48は、第1のガウシアンデータを符号化及び復号するシステムを示すブロック図である。図48に示すシステムは、第2の前処理部371と、G-PCC符号化部372と、G-PCC復号部373と、第2の後処理部374とを備える。図49は、第2の前処理部371の構成例を示すブロック図である。第2の前処理部371は、変換部375と、マッピング部376とを備える。
例えば、第1のガウシアンデータに含まれる、三次元座標に紐づく共分散行列を符号化する場合、第2の前処理部371に含まれる変換部375は、共分散行列をフォーマット変換する。マッピング部376は、フォーマット変換後の共分散行列をG-PCC属性情報にマッピングすることで変換後の第1のガウシアンデータを生成する。G-PCC符号化部372は、変換後の第1のガウシアンデータ、変換情報及びマッピング情報を符号化することで符号化データを生成する。
G-PCC復号部373は、符号化データを復号することで、変換後の第1のガウシアンデータ、変換情報及びマッピング情報を生成する。第2の後処理部374は、マッピング情報及び変換情報を用いて、変換後の第1のガウシアンデータを逆変換することで第1のガウシアンデータを復元する。つまり、共分散行列が復元される。このように、当該システムは、第1のガウシアンデータを符号化及び復号できる。
また、変換部375は、共分散行列の変換では、3×3の共分散行列を、G-PCCで符号化可能なフォーマットに変換してもよい。例えば、変換部375は、3×3の共分散行列を、三次元の3つのコンポーネントに分割する。または、変換部375は、共分散行列が対称行列である場合には、同じ値を有する要素を除外した6次元の要素を、三次元の2つのコンポーネントに分割してもよい。図50は、この変換処理を示す図である。図50に示す例では、共分散行列の9個の要素のうち、他の要素と同じ値を有する要素(Syz、Szx、Szy)を除く6個の要素([Sxx、Sxy、Sxz、Syy、Syz、Szz])が抽出される。
また、変換の内容を示す変換情報が生成される。変換情報はメタデータに格納される。なお、予め変換方法が一意に定められている場合、変換情報は符号化データ(ビットストリーム)に格納されなくてもよい。
以上のように、本実施の形態で説明した処理及び方法を用いることにより、ガウシアンデータを、G-PCCを用いて符号化することが可能となる。
具体的には、符号化装置は、ガウシアンデータに含まれる三次元座標をG-PCCにおける位置情報符号化を用いて符号化する。また、符号化装置は、三次元座標に紐づく属性情報(スケール、回転、SH係数、透過率等)をG-PCCにおける属性情報符号化を用いて符号化する。
また、符号化装置は、ガウシアンデータの属性情報の各要素を、G-PCCで符号化可能なデータ形式に変換する。また、符号化装置は、変換の内容を示す変換情報をメタデータに格納する。これにより、復号装置は、復号データからガウシアンデータを再構成できる。
また、符号化装置は、ガウシアンデータのコンポーネント又は次元を、G-PCCで符号化可能単位である属性コンポーネント又は次元に対応付ける。これにより、符号化装置は、ガウシアンデータをG-PCC符号化方式を用いて符号化できる。また、ガウシアンデータに対応するG-PCC属性タイプを定義することで、符号化装置は、ガウシアンデータをG-PCC符号化方式を用いて符号化できる。
また、符号化装置は、ガウシアンデータのコンポーネント及び次元と、属性コンポーネント及び次元との対応関係を示すマッピング情報をメタデータに格納する。これにより、復号装置は、復号データからガウシアンデータを再構成できる。
(第2態様)
[ガウシアンデータの符号化方式]
以下、ガウシアンデータを符号化する汎用的なデータ構造、及び、ガウシアンデータをG-PCC又はその他の符号化方式で符号化することを可能とするデータ構造について説明する。
[ガウシアンデータの符号化方式]
以下、ガウシアンデータを符号化する汎用的なデータ構造、及び、ガウシアンデータをG-PCC又はその他の符号化方式で符号化することを可能とするデータ構造について説明する。
下記のデータ構造を用いることで、ガウシアンデータを様々な3D符号化方式、又は3Dコーデック規格を用いて符号化することが可能な汎用的な方式を実現できる。これにより、様々な規格団体で作成された規格、国際規格、国ごとの規格、又は任意の団体が定めた規格など、様々な3Dコーデック方式を用いてガウシアンデータを符号化することが可能となる。
図51は、ガウシアンデータを符号化するための符号化規格のプロトコルスタックを示す図である。3Dガウシアンコーデック(3D Gaussian Codec)は、ガウシアンデータを符号化するための符号化規格である。3Dガウシアンコーデックの具体的な符号化方式として、1以上のビデオコーデックを用いて3Dデータを符号化するV3C規格(ISO/IEC23090-5)、点群の圧縮規格であるG-PCC規格(ISO-IEC23090-9)、及び、3Dメッシュデータに用いられるDracoなどが用いられる。V3C規格が用いられる場合は、HEVC又はVVC(Versatile Video Coding)などのビデオコーデック規格が用いられる。
図52は、本実施の形態に係る符号化装置400(三次元データ符号化装置)の構成例を示すブロック図である。符号化装置400は、第2のガウシアンデータを符号化することでビットストリーム(符号化データ)を生成する。この符号化装置400は、第2の前処理部401と、G-PCC符号化部402と、V3C符号化部403と、メタデータ符号化部404と、多重化部405とを備える。
第2の前処理部401は、使用される3Dコーデックに応じて、第2のガウシアンデータを、使用される3Dコーデックで符号化可能なデータに変換及びマッピングする。
例えば、第2の前処理部401は、第2のガウシアンデータを、G-PCC符号化方式で符号化可能なデータに変換及びマッピングする。G-PCC符号化部402は、変換後のデータをG-PCC符号化方式を用いて符号化することで、G-PCC TLVユニットを生成する。
また、第2の前処理部401は、第2のガウシアンデータを、V3C符号化方式で符号化可能なデータに変換及びマッピングする。V3C符号化部403は、変換後のデータをV3C符号化方式を用いて符号化することで、V3Cユニットを生成する。
メタデータ符号化部404は、第2の前処理部401の変換及びマッピングに関する変換情報及びマッピング情報を符号化することでメタデータを生成する。例えば、メタデータ符号化部404は、変換情報及びマッピング情報をメタデータに格納する。
多重化部405は、G-PCC TLVユニット又はV3Cユニットと、メタデータとをユニット化及び多重化することでビットストリームを生成する。具体的には、多重化部405は、G-PCC TLVユニット又はV3Cユニットと、メタデータとを、3Dガウシアンコーデックレイヤ(3D Gaussian Codec Layer)のデータユニットである3Dデータユニット(3D Data Unit)に格納する。
図53は、本実施の形態に係る復号装置410(三次元データ復号装置)の構成例を示すブロック図である。復号装置410は、ビットストリームを復号することで第2のガウシアンデータを生成する。このビットストリームは、例えば、図52に示す符号化装置400により生成される。復号装置410は、逆多重化部411と、G-PCC復号部412と、V3C復号部413と、メタデータ復号部414と、第2の後処理部415とを備える。
逆多重化部411は、ビットストリームに含まれる3Dデータユニットを逆ユニット化及び逆多重化することで、G-PCC TLVユニット又はV3Cユニットと、メタデータとを生成する。
G-PCC復号部412は、G-PCC TLVユニットをG-PCC復号方式を用いて復号することで復号データを生成する。V3C復号部413は、V3Cユニットを、V3C復号方式を用いて復号することで復号データを生成する。
メタデータ復号部414は、メタデータを復号することで変換情報及びマッピング情報を生成する。例えば、メタデータ復号部414は、メタデータから変換情報及びマッピング情報を取得する。
第2の後処理部415は、復号に使用される3Dコーデックに応じて、復号データを第2のガウシアンデータに逆変換する。
図54は、符号化装置400による符号化処理のフローチャートである。まず、符号化装置400は、符号化に使用するコーデックタイプを判定する(S201)。例えば、符号化に使用するコーデックタイプは、ユーザにより指定されてもよいし、ガウシアンデータの内容に基づき決定されてもよい。
符号化に使用するコーデックタイプがG-PCC符号化方式である場合(S201でG-PCC)、符号化装置400は、G-PCC符号化方式を用いてガウシアンデータを符号化し、G-PCC TLVユニットを出力する(S202)。
一方、符号化に使用するコーデックタイプがV3C符号化方式である場合(S201でV3C)、符号化装置400は、V3C符号化方式を用いてガウシアンデータを符号化し、V3Cユニットを出力する(S203)。
次に符号化装置400は、符号化に使用したコーデックタイプを示す情報を共通のメタデータに格納する(S204)。ここで、共通のメタデータとは、複数の符号化方式(G-PCC符号化方式及びV3C符号化方式)で共通に使用可能なメタデータである。
次に、符号化装置400は、変換情報及びマッピング情報をメタデータに格納する(S205)。次に、符号化装置400は、メタデータ及び符号化ユニット(G-PCC TLVユニット又はV3Cユニット)を、G-PCC符号化方式及びV3C符号化方式で共通に使用可能な3Dデータユニットに多重化する(S206)。
図55は、復号装置410による復号処理のフローチャートである。まず、復号装置410は、共通の3Dデータユニットを取得し、3Dデータユニットからデータユニット及びメタデータを取得する(S211)。次に、復号装置410は、メタデータを解析し、メタデータに含まれるコーデックタイプを示す情報に基づき、符号化に使用されたコーデックタイプ(復号に使用するコーデックタイプ)を判定する(S212)。
符号化に使用されたコーデックタイプがG-PCC符号化方式である場合(S213でG-PCC)、復号装置410は、TLVユニットを取得し、TLVユニットをG-PCC復号方式を用いて復号することで、コンポーネントを生成する(S214)。一方、符号化に使用されたコーデックタイプがV3Cである場合(S213でV3C)、復号装置410は、V3Cユニットを取得し、V3Cユニットを、V3C復号方式を用いて復号することで、コンポーネントを生成する(S215)。
次に、復号装置410は、復号されたコンポーネントとマッピング情報とを用いて、ガウシアンデータを再構成する(S216)。次に、復号装置410は、変換情報を取得し、変換情報を用いてガウシアンデータを逆変換することで第2のガウシアンデータを生成する(S217)。
図56は、ガウシアンコーデックの基本データ構造を示す図である。3Dガウシアンコーデックレイヤ(3D gaussian codec layer)における3Dデータユニットは、ガウシアンコーデックで共通のユニットである。
図57は、3Dデータユニット(3DDataUnit)の構成例を示す図である。3Dデータユニットのペイロード(3DDU_data)には、ガウシアンコーデックを構成する様々なデータユニットが格納される。3Dデータユニットのヘッダ(3DDU_header)は、ペイロードに格納されるデータのタイプを示す3Dデータユニットタイプ(3DDataUnitType)を含む。3Dデータユニットタイプ(3DDataUnitType)は、例えば、(1)V3Cユニット、(2)G-PCC TLVユニット、(3)Dracoユニット、(4)複数のコーデックで共通のパラメータセットである3Dパラメータセット(3DParameter set:3DPS)、(5)シーケンスで共通のメタデータを含むパラメータセットであるガウシアンシーケンスパラメータセット(Gaussian Sequence Parameter set:GSSPS)、(6)フレーム(ある時間又は時間間隔における3Dモデル)に共通のメタデータを含むパラメータセットであるガウシアンフレームパラメータセット(Gaussian Frame Parameter set:GSFPS)、及び(7)SEI(Gaussian GSSEI)などを含む。
さらに、3Dデータユニットタイプ(3DDataUnitType)がV3Cユニットである場合は、V3Cユニットのペイロードは、ACL_NALユニット、又は、VCL_NALユニットを含む。VCL Nalユニットは、ビデオコーデックレイヤ(Video Codec Layer)に属し、HEVC又はVVC等の二次元の動画像圧縮規格で規定される。ACL_NALユニットは、アトラスコーデックレイヤ(Atlas Codec Layer)に属する。ACL_NALユニットには、二次元画像を三次元データに戻すためのデータが格納される。
なお、3Dデータユニットには、Dracoなどの規格に基づくDracoユニットが格納されてもよい。
図58は、ガウシアン符号化における共通のパラメータセットである3DPS(3DParameterset)の構成例を示す図である。3DPSは、ガウシアンデータの符号化方式に用いられる符号化規格、符号化方式、及びツールセットの組み合わせを示すプロファイル及びレベルを示す情報(profile_level)と、ガウシアンコンポーネント情報(3D_codec_type)とを含む。当該情報は、プロファイルを示す情報(profile)と、レベルを示す情報(level)と、符号化規格及び符号化方式を示す情報(3D_codec_type)とを含む。
3D_codec_typeは、ガウシアンデータの符号化方式に用いる符号化規格を示す。例えば、3D_codec_type=0はV3C符号化方式が符号化に用いられたことを示し、3D_codec_type=1はG-PCC符号化方式が符号化に用いられたことを示す。
復号装置は、3D_codec_typeを解析することにより、復号方法を決定することが可能である。復号装置は、3D_codec_typeに基づき復号方法を切り替えてもよいし、3D_codec_typeで示される符号化方式の復号機能をサポートしない場合は復号しないと決定してもよい。なお、プロファイル及びレベルに符号化規格を示す情報が含まれてもよい。
また、符号化方式に応じて、3Dデータユニットタイプ(3DDataUnitType)に制約が与えられてもよい。例えば、符号化方式がG-PCCである場合には、V3Cユニットの使用が禁止されてもよいし、符号化方式がV3Cである場合には、G-PCC TLVユニットの使用が禁止されてもよい。
ガウシアンデータコンポーネント情報は、ガウシアンコンポーネントの構成を示す情報を含む。図59は、ガウシアンデータコンポーネント情報の構成例を示す図である。ガウシアンデータコンポーネント情報は、ガウシアンコンポーネントの数を示すガウシアンデータコンポーネント数を含む。
ガウシアンデータコンポーネント情報は、ガウシアンコンポーネント毎の情報として、ガウシアンコンポーネントIDと、ガウシアンデータタイプと、ガウシアンデータ次元数とを含む。ガウシアンコンポーネントIDは、ガウシアンコンポーネントを一意に識別するための識別情報である。ガウシアンデータタイプは、ガウシアンコンポーネントのタイプ(回転、スケール、SH係数及び透過率等)を示す。ガウシアンデータ次元数は、ガウシアンコンポーネントの次元数(サブコンポーネント数)を示す。
また、ガウシアンデータコンポーネント情報は、コーデックに依存したマッピング情報を含む。例えば、コーデックタイプ(3D_codec_type)がG-PCCである場合には、ガウシアンデータコンポーネント情報は、ガウシアンデータのコンポーネントとG-PCCコーデックのコンポーネントとの対応関係を示すG-PCCマッピング情報(gpcc_mapping_info)を含む。
図60は、G-PCCマッピング情報の構成例を示す図である。G-PCCマッピング情報は、ガウシアンコンポーネントの次元ごとの情報として、G-PCCコンポーネントIDと、G-PCC次元IDと、変換情報とを含む。
G-PCCサブコンポーネントIDは、G-PCCコンポーネント番号を示す識別子である。G-PCC次元IDは、G-PCCコンポーネントのサブコンポーネント番号を示す識別子である。変換情報は、当該次元のデータを変換する際に用いられたパラメータ(変換パラメータ)を示す。
また、ガウシアンデータコンポーネント情報は、コーデックタイプ(3D_codec_type)がV3Cである場合には、ガウシアンデータのコンポーネントとV3Cコーデックのコンポーネントとの対応関係を示すV3Cマッピング情報を含む。
図61は、V3Cマッピング情報の構成例を示す図である。V3Cマッピング情報は、ガウシアンコンポーネントの次元ごとの情報として、V3CコンポーネントIDと、V3C次元IDと、変換情報とを含む。
V3CサブコンポーネントIDは、V3Cコンポーネント番号を示す識別子である。V3C次元IDは、V3Cコンポーネントのサブコンポーネント番号を示す識別子である。変換情報は、当該次元のデータを変換する際に用いられたパラメータ(変換パラメータ)を示す。
なお、ガウシアンデータコンポーネント情報は、属性コンポーネントの情報に加え、ジオメトリコンポーネントの情報を含んでもよい。
また、ここでは、ガウシアンコンポーネントに対応するG-PCCコンポーネントを示すマッピング情報の例を示したが、G-PCCコンポーネントに対応するガウシアンコンポーネントが示されるマッピング情報が用いられてもよい。また、ここでは、ガウシアンデータのサブコンポーネントとG-PCCのサブコンポーネントとの対応関係を示すマッピング情報の例を示したが、ガウシアンコンポーネントとG-PCCコンポーネントとの対応関係を示すマッピング情報が用いられてもよい。つまり、サブコンポーネント間の対応関係は示されなくてもよい。
また、ここに示したシンタックスの一部は省略されてもよい。例えば、回転、スケール及びSH係数の情報の記載順、及び次元数が予め定められている場合、ガウシアンデータコンポーネントID、ガウシアンデータタイプ、及びガウシアンデータ次元数などは省略されてもよい。
以下、データユニットの別の例について説明する。ガウシアンデータをV3Cユニット及びG-PCC TLVユニットのいずれかに格納する方法ではなく、ガウシアンデータ特有のデーユニット(ガウシアンデータユニット)が定義されてもよい。
図62は、ガウシアンデータユニットの構成例を示す図である。例えば、ガウシアンデータユニットのヘッダは、上述した3Dデータユニットタイプ(3DDataUnitType)に相当するガウシアンデータユニットタイプ(Gausisian DataUnitType)を含む。ガウシアンデータユニットタイプは、ガウシアンデータユニットのペイロードに格納されるデータのタイプを示す。例えば、ガウシアンデータユニットタイプは、ジオメトリデータユニット(geometry data unit)と、属性データユニット(attribute dataunit)とを含む。ジオメトリデータユニット及び属性データユニットのペイロードには、それぞれ、符号化されたジオメトリデータ及び属性データが格納される。
属性データユニットのヘッダは、属性データユニットタイプを含む。属性データユニットタイプは、属性データユニットのペイロードに格納されるデータのタイプを示す。属性データユニットタイプは、属性情報の要素を示し、例えば、回転データユニット(Rotation Data Unit)、スケールデータユニット(Scale Data Unit)、色係数データユニット(Color Coeff Data Unit)、アルファデータユニット(Alpha Data Unit)等を含む。回転データユニット、スケールデータユニット、色係数データユニット及びアルファデータユニットのペイロードには、それぞれ、符号化された回転、スケール、SH係数及び透過率が格納される。
なお、上記説明では、3Dガウシアンデータを符号化する例を説明したが、同様の手法を3Dガウシアンデータ以外に適用してもよい。例えば、3Dモデル、又はAIを用いた3Dデータに対して同様の手法を用いてもよい。
また、上記説明では、主に符号化方式がV3C及びG-PCCである例を説明したが、符号化方式として、V3C及びG-PCC以外が用いられてもよい。また、符号化方式は、3Dコーデック以外であってもよい。例えば、符号化方式として、画像コーデック、ニューラルネットワークコーデック、又は音声コーデック等が用いられてもよい。
図63は、3Dガウシアンを符号化する規格のプロトコルスタックを示す図である。3Dガウシアンを符号化する方式として、ビデオベースコーデック(Video Base Codec)とジオメトリベースコーデック(Geometry Base Codec)の少なくとも一方で符号化するためのプロトコルスタック又はデータ構造が用いられてもよい。
ビデオベースコーデックは、ビデオコーデックを用いる画像符号化であり、例えば、MPEGで規格化されるAVC、HEVC或いはVVCなどの規格、又は、VPCC(Video based Point Cloud Compression)、VCM(Video Coding for Machines)或いはVDMC(Video based Dynamic Mesh Compression)などの規格である。
ジオメトリベースコーデックは、G-PCC又はDraco等の点群圧縮規格又はメッシュデータ圧縮規格などである。なお、3Dガウシアンを符号化する方式は、NNC(Neural Network Coding)などのニューラルネットワークベースコーデックを含むように拡張されてもよい。
なお、3Dガウシアンの代わりに、3Dモデルを符号化する規格が規定されてもよい。図64は、3Dモデルを符号化する規格のプロトコルスタックを示す図である。3DモデルをV3CとG-PCCとの少なくとも一方で符号化するためのプロトコルスタック及びデータ構造が用いられてもよい。
3Dモデルは、(1)点群、(2)メッシュ、(3)NeRF(Neural Radiance Fields)で作成された3Dモデル、及び(4)Gaussian Splattingで生成された3Dモデル、等を含んでもよい。
また、符号化装置は、3Dモデルデータのコンポーネントの一部を、ビデオ符号化を用いて符号化し、他の一部をジオメトリベース符号化を用いて符号化してもよい。例えば、符号化装置は、ガウシアンデータに含まれる情報のうち、形状情報を表す情報である、三次元座標、回転、及びスケールをG-PCCを用いて符号化し、SH係数をビデオベースの符号化方式を用いて符号化してもよい。ここで、疎なジオメトリ構造形状はジオメトリベースの符号化が適しており、多次元のSH係数はビデオベースの符号化が適している場合がある。よって、このような場合に、符号化効率を向上できる。
図65は、この場合のガウシアンコンポーネント情報の構成例を示す図である。図65に示すガウシアンコンポーネント情報は、図59に示すガウシアンコンポーネント情報に加え、ガウシアンコンポーネントごとの3Dコーデックタイプ(3D_codec_type)を含む。これにより、コンポーネントごとに3Dコーデックタイプを設定することができるので、上記機能を実現できる。なお、図64に示すように3Dモデルを符号化する規格が用いられる場合には、例えば、ガウシアンコンポーネント情報の代わりに、3Dモデルのコンポーネントの情報を示す3Dモデルコンポーネント情報に同様の情報が格納される。
[まとめ]
以上のように、実施の形態に係る符号化装置(三次元データ符号化装置)は、図66に示す処理を行う。図66は、符号化装置による符号化処理のフローチャートである。符号化装置は、ガウシアンデータを符号化する。ガウシアンデータは、複数の第1コンポーネント(例えば複数のガウシアンコンポーネント)を含み、複数の第1コンポーネントの各々は1以上の次元で表され、複数の第1コンポーネントは、位置座標(例えば三次元点座標又は二次元座標)を示す第1コンポーネントと、位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含む。符号化装置は、複数の第1コンポーネントを、点群符号化方式(例えばG-PCC符号化方式)を用いて符号化することで符号化データを生成し(S301)、符号化データを含むビットストリームを生成する(S302)。
以上のように、実施の形態に係る符号化装置(三次元データ符号化装置)は、図66に示す処理を行う。図66は、符号化装置による符号化処理のフローチャートである。符号化装置は、ガウシアンデータを符号化する。ガウシアンデータは、複数の第1コンポーネント(例えば複数のガウシアンコンポーネント)を含み、複数の第1コンポーネントの各々は1以上の次元で表され、複数の第1コンポーネントは、位置座標(例えば三次元点座標又は二次元座標)を示す第1コンポーネントと、位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含む。符号化装置は、複数の第1コンポーネントを、点群符号化方式(例えばG-PCC符号化方式)を用いて符号化することで符号化データを生成し(S301)、符号化データを含むビットストリームを生成する(S302)。
これによれば、符号化装置は、ガウシアンデータを、点群符号化方式を用いて符号化できる。よって、新たにガウシアンデータのための符号化方式を作成することなく、ガウシアンデータを符号化できるので効率的な処理を実現できる。
例えば、複数の第1コンポーネントは、さらに、位置座標を基準とする回転値の情報を示す第1コンポーネントを含む。例えば、複数の第1コンポーネントは、さらに、色情報を示す第1コンポーネント、又は透過率を示す第1コンポーネントを含む。例えば、回転値及びスケール値は、共分散行列の情報として表される。例えば、複数の第1コンポーネントは、さらに、球面調和関数の係数を示す第1コンポーネントを含む。
例えば、符号化装置は、さらに、複数の第1コンポーネント(例えばガウシアンコンポーネント)を、複数の第2コンポーネント(例えば属性コンポーネント)に変換し、符号化(S301)では、複数の第2コンポーネントを符号化する。これによれば、例えば、符号化装置は、点群符号化方式に対応した形式にデータを変更することで、点群符号化方式を用いてガウシアンデータを符号化できる。
例えば、符号化装置は、さらに、複数の第1コンポーネントと複数の第2コンポーネントとの対応関係を示す情報(例えばマッピング情報)をメタデータに格納し、ビットストリームは、さらにメタデータを含む。これによれば、復号装置は、ビットストリームに含まれる情報を用いて、複数の第2コンポーネントを複数の第1コンポーネントに変換できる。
例えば、複数の第2コンポーネントの次元数は、予め定められた数以下であり、変換では、複数の第1コンポーネントのうち、次元数が予め定められた数より大きい第1コンポーネントを、2以上の第2コンポーネントに分割する。これによれば、例えば、符号化装置は、点群符号化方式に対応した形式にデータを変更することで、点群符号化方式を用いてガウシアンデータを符号化できる。
例えば、符号化装置は、符号化(S301)では、位置座標を示す第1コンポーネントを点群符号化方式に含まれるジオメトリ符号化方式を用いて符号化し、スケール値の情報を示す第1コンポーネントを点群符号化方式に含まれる属性符号化方式を用いて符号化する。これによれば、符号化装置は、点群符号化方式に含まれるジオメトリ符号化方式及び属性符号化方式を用いて各情報を適切に符号化できる。
例えば、ビットストリームは、複数の第1コンポーネントの種別を示す情報を含むパラメータセットを含む。これによれば、復号装置は、ビットストリームに含まれる情報を用いて複数の第1コンポーネントの種別を判定できる。
図67は、符号化装置10のブロック図である。例えば、符号化装置10は、プロセッサ11と、メモリ12とを備え、プロセッサ11は、メモリ12を用いて、上記処理を行う。
また、実施の形態に係る復号装置(三次元データ復号装置)は、図68に示す処理を行う。図68は、復号装置による復号処理のフローチャートである。復号装置は、ガウシアンデータを復号する。ガウシアンデータは、複数の第1コンポーネント(例えば複数のガウシアンコンポーネント)を含み、複数の第1コンポーネントの各々は1以上の次元で表され、複数の第1コンポーネントは、位置座標(例えば三次元点座標又は二次元座標)を示す第1コンポーネントと、位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含む。復号装置は、複数の第1コンポーネントが符号化されることで生成された符号化データを含むビットストリームを取得し(S311)、符号化データを、点群復号方式(例えばG-PCC符号化方式に対応する復号方式)を用いて復号することで複数の第1コンポーネントを生成する(S312)。
これによれば、符号化装置は、ガウシアンデータを、点群符号化方式を用いて符号化できる。よって、新たにガウシアンデータのための符号化方式を作成することなく、ガウシアンデータを符号化できるので効率的な処理を実現できる。また、復号装置は、符号化装置で生成された符号化データを適切に復号できる。
例えば、複数の第1コンポーネントは、さらに、位置座標を基準とする回転値の情報を示す第1コンポーネントを含む。例えば、複数の第1コンポーネントは、さらに、色情報を示す第1コンポーネント、又は透過率を示す第1コンポーネントを含む。
例えば、回転値及びスケール値は、共分散行列の情報として表される。例えば、複数の第1コンポーネントは、さらに、球面調和関数の係数を示す第1コンポーネントを含む。
例えば、符号化データは、複数の第1コンポーネント(例えば複数のガウシアンコンポーネント)が変換された複数の第2コンポーネント(例えば複数の属性コンポーネント)が符号化されることで生成される。復号装置は、復号(S312)では、符号化データを、点群復号方式を用いて復号することで複数の第2コンポーネントを生成し、複数の第2コンポーネントを複数の第1コンポーネントに変換する。
これによれば、例えば、符号化装置は、点群符号化方式に対応した形式にデータを変更することで、点群符号化方式を用いてガウシアンデータを符号化することで符号化データを生成できる。また、復号装置は、符号化装置で生成された符号化データを適切に復号できる。
例えば、復号装置は、さらに、複数の第1コンポーネントと複数の第2コンポーネントとの対応関係を示す情報(例えばマッピング情報)を、ビットストリームに含まれるメタデータから取得する。これによれば、復号装置は、ビットストリームに含まれる情報を用いて、複数の第2コンポーネントを複数の第1コンポーネントに変換できる。
例えば、複数の第2コンポーネントの次元数は、予め定められた数以下である。復号装置は、変換(S312)では、複数の第2コンポーネントのうち、2以上の第2コンポーネントを予め定められた数より大きい次元数の第1コンポーネントに結合する。
これによれば、例えば、符号化装置は、点群符号化方式に対応した形式にデータを変更することで、点群符号化方式を用いてガウシアンデータを符号化できる。また、復号装置は、符号化装置で生成された符号化データを適切に復号できる。
例えば、復号装置は、復号(S312)では、位置座標を示す第1コンポーネントを点群復号方式に含まれるジオメトリ復号方式を用いて復号し、スケール値の情報を示す第1コンポーネントを点群復号方式に含まれる属性復号方式を用いて復号する。
これによれば、符号化装置は、点群符号化方式に含まれるジオメトリ符号化方式及び属性符号化方式を用いて各情報を適切に符号化できる。また、復号装置は、符号化装置で生成された符号化データを適切に復号できる。
例えば、ビットストリームは、複数の第1コンポーネントの種別を示す情報を含むパラメータセットを含む。これによれば、復号装置は、ビットストリームに含まれる情報を用いて複数の第1コンポーネントの種別を判定できる。
図69は、復号装置20のブロック図である。例えば、復号装置20は、プロセッサ21と、メモリ22とを備え、プロセッサ21は、メモリ22を用いて、上記処理を行う。
また、実施の形態に係る符号化装置(三次元データ符号化装置)は、図70に示す処理を行う。図70は、符号化装置による符号化処理のフローチャートである。符号化装置は、ガウシアンデータを符号化する。ガウシアンデータは、複数の第1コンポーネント(例えば複数のガウシアンコンポーネント)を含み、複数の第1コンポーネントの各々は1以上の次元で表される。符号化装置は、複数の符号化方式のうちいずれか一つを選択し(S321)、複数の第1コンポーネントを、選択された符号化方式を用いて符号化することで符号化データを生成し(S322)、符号化データと、選択された符号化方式を示す第1情報(例えば3Dコーデックタイプ(3D_codec_type))とを含むビットストリームを生成する(S323)。
これによれば、符号化装置は、複数の符号化方式から選択的にガウシアンデータの符号化に用いる符号化方式を選択できる。よって、符号化効率を向上できる可能性がある。
例えば、符号化装置は、さらに、複数の第1コンポーネント(例えば複数のガウシアンコンポーネント)を、選択された符号化方式に対応する複数の第2コンポーネント(例えば属性コンポーネント)に変換し、符号化(S322)では、複数の第2コンポーネントを符号化し、ビットストリームは、さらに、複数の第1コンポーネントと複数の第2コンポーネントとの対応関係を示す第2情報(例えばマッピング情報)を含む。
これによれば、符号化装置は、選択された符号化方式に対応した形式にデータを変更することで、選択した符号化方式を用いてガウシアンデータを符号化できる。また、復号装置は、ビットストリームに含まれる第2情報を用いて、複数の第2コンポーネントを複数の第1コンポーネントに変換できる。
例えば、複数の第1コンポーネントは、位置座標(例えば三次元点座標又は二次元座標)を示す第1コンポーネントと、位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含む。
例えば、複数の符号化方式は、ジオメトリベースの符号化方式とビデオベースの符号化方式とを含む。例えば、複数の符号化方式は、さらに、ニューラルネットワークのための符号化方式を含む。例えば、ビットストリームは、複数の符号化方式に共通のパラメータセットを含み、パラメータセットは、第1情報を含む。
例えば、ビットストリームは、複数の符号化方式に共通の複数のユニットを含み、第1情報は、複数のユニットの各々のヘッダに含まれる複数の第3情報を含み、複数のユニットの各々は、ジオメトリベースの符号化方式で符号化された第1符号化データ、ビデオベースの符号化方式で符号化された第2符号化データ、及び共通のパラメータを含む複数のデータのいずれかが格納され、複数の第3情報の各々は、当該第3情報が含まれるユニットに格納されているデータの種別を示す。
また、実施の形態に係る復号装置(三次元データ復号装置)は、図71に示す処理を行う。図71は、復号装置による復号処理のフローチャートである。復号装置は、ガウシアンデータを復号する。ガウシアンデータは、複数の第1コンポーネント(例えば複数のガウシアンコンポーネント)を含み、複数の第1コンポーネントの各々は1以上の次元で表される。復号装置は、複数の第1コンポーネントが符号化されることで生成された符号化データを含むビットストリームを取得し(S331)、ビットストリームに含まれる、複数の符号化方式のうち、複数の第1コンポーネントの符号化に用いられた符号化方式を示す第1情報(例えば3Dコーデックタイプ(3D_codec_type))を取得し(S332)、符号化データを、第1情報で示される符号化方式に対応する復号方式を用いて復号することで複数の第1コンポーネントを生成する(S333)。
これによれば、符号化装置は、複数の符号化方式から選択的にガウシアンデータの符号化に用いる符号化方式を選択できる。よって、符号化効率を向上できる可能性がある。また、復号装置は、符号化装置で生成された符号化データを適切に復号できる。
例えば、符号化データは、複数の第1コンポーネントが変換された複数の第2コンポーネントが符号化されることで生成される。復号装置は、さらに、複数の第1コンポーネントと複数の第2コンポーネントとの対応関係を示す第2情報(例えばマッピング情報)を、ビットストリームから取得し、復号(S333)では、符号化データを、復号方式を用いて復号することで複数の第2コンポーネントを生成し、第2情報で示される対応関係を用いて、複数の第2コンポーネントを複数の第1コンポーネントに変換する。
これによれば、符号化装置は、選択された符号化方式に対応した形式にデータを変更することで、選択した符号化方式を用いてガウシアンデータを符号化できる。また、復号装置は、ビットストリームに含まれる第2情報を用いて、複数の第2コンポーネントを複数の第1コンポーネントに変換できる。
例えば、複数の第1コンポーネントは、位置座標(例えば三次元点座標又は二次元座標)を示す第1コンポーネントと、位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含む。
例えば、複数の符号化方式は、ジオメトリベースの符号化方式とビデオベースの符号化方式とを含む。例えば、複数の符号化方式は、さらに、ニューラルネットワークのための符号化方式を含む。例えば、ビットストリームは、複数の符号化方式に共通のパラメータセットを含み、パラメータセットは、第1情報を含む。
例えば、ビットストリームは、複数の符号化方式に共通の複数のユニットを含み、第1情報は、複数のユニットの各々のヘッダに含まれる複数の第3情報を含み、複数のユニットの各々は、ジオメトリベースの符号化方式で符号化された第1符号化データ、ビデオベースの符号化方式で符号化された第2符号化データ、及び共通のパラメータを含む複数のデータのいずれかが格納され、複数の第3情報の各々は、当該第3情報が含まれるユニットに格納されているデータの種別を示す。
以上、本開示の実施の形態及び変形例に係る符号化装置(三次元データ符号化装置)及び復号装置(三次元データ復号装置)等について説明したが、本開示は、この実施の形態に限定されるものではない。
また、上記実施の形態に係る符号化装置及び復号装置等に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
また、本開示は、符号化装置(三次元データ符号化装置)及び復号装置(三次元データ復号装置)等により実行される符号化方法(三次元データ符号化方法)又は復号方法(三次元データ復号方法)等として実現されてもよい。
また、本開示は、上記符号化方法又は復号方法をコンピュータ、プロセッサ又は装置に実行させるプログラムとして実現されてもよい。また、本開示は、上記符号化方法により生成されたビットストリームとして実現されてもよい。また、本開示は、当該プログラム又は当該ビットストリームが記録された記録媒体として実現されてもよい。例えば、本開示は、当該プログラム又は当該ビットストリームが記録されている非一時的なコンピュータ読み取り可能な記録媒体として実現されてもよい。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
以上、一つまたは複数の態様に係る符号化装置及び復号装置等について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
本開示は、符号化装置及び復号装置に適用できる。
10 符号化装置
11、21 プロセッサ
12、22 メモリ
20 復号装置
101 三次元データ符号化システム
102 三次元データ復号システム
103 センサ端末
104 外部接続部
111 三次元データ生成システム
112 提示部
113 符号化部
114 多重化部
115 入出力部
116 制御部
117 センサ情報取得部
118 三次元データ生成部
121 センサ情報取得部
122 入出力部
123 逆多重化部
124 復号部
125 提示部
126 ユーザインタフェース
127 制御部
130 第1の符号化部
131 位置情報符号化部
132 属性情報符号化部
133 付加情報符号化部
134 多重化部
140 第1の復号部
141 逆多重化部
142 位置情報復号部
143 属性情報復号部
144 付加情報復号部
150 第2の符号化部
151 付加情報生成部
152 位置画像生成部
153 属性画像生成部
154 映像符号化部
155 付加情報符号化部
156 多重化部
160 第2の復号部
161 逆多重化部
162 映像復号部
163 付加情報復号部
164 位置情報生成部
165 属性情報生成部
171 8分木符号化部
172 予測木符号化部
173 8分木復号部
174 予測木復号部
181、191 8分木生成部
182、192 幾何情報算出部
183、193 符号化テーブル選択部
184 エントロピー符号化部
194 エントロピー復号部
201 LoD属性情報符号化部
202 変換属性情報符号化部
203 LoD属性情報復号部
204 変換属性情報復号部
211 ソート部
212 Haar変換部
213 量子化部
214、222 逆量子化部
215、223 逆Haar変換部
216、224 メモリ
217 算術符号化部
221 算術復号部
231 データ分割部
232 符号化部
233 復号部
234 データ結合部
241 符号化部
242 TLV格納部
301 センサ情報入力部
302 三次元データ生成部
303、305 レンダリング部
304 球面調和関数
311 符号化部
312 多重化部
321 逆多重化部
322 復号部
323 アプリケーション部
324 入力インターフェース部
325 レンダリング部
326 提示部
330、400 符号化装置
331 第1の前処理部
332、371、401 第2の前処理部
333、372、402 G-PCC符号化部
341 位置情報符号化部
342 回転符号化部
343 スケール符号化部
344 SH係数符号化部
345 透過率符号化部
346 メタデータ符号化部
347、405 多重化部
350、410 復号装置
351、373、412 G-PCC復号部
352、374、415 第2の後処理部
353 第1の後処理部
361、411 逆多重化部
362 位置情報復号部
363 回転復号部
364 スケール復号部
365 SH係数復号部
366 透過率復号部
367 メタデータ復号部
375 変換部
376 マッピング部
403 V3C符号化部
404 メタデータ符号化部
413 V3C復号部
414 メタデータ復号部
11、21 プロセッサ
12、22 メモリ
20 復号装置
101 三次元データ符号化システム
102 三次元データ復号システム
103 センサ端末
104 外部接続部
111 三次元データ生成システム
112 提示部
113 符号化部
114 多重化部
115 入出力部
116 制御部
117 センサ情報取得部
118 三次元データ生成部
121 センサ情報取得部
122 入出力部
123 逆多重化部
124 復号部
125 提示部
126 ユーザインタフェース
127 制御部
130 第1の符号化部
131 位置情報符号化部
132 属性情報符号化部
133 付加情報符号化部
134 多重化部
140 第1の復号部
141 逆多重化部
142 位置情報復号部
143 属性情報復号部
144 付加情報復号部
150 第2の符号化部
151 付加情報生成部
152 位置画像生成部
153 属性画像生成部
154 映像符号化部
155 付加情報符号化部
156 多重化部
160 第2の復号部
161 逆多重化部
162 映像復号部
163 付加情報復号部
164 位置情報生成部
165 属性情報生成部
171 8分木符号化部
172 予測木符号化部
173 8分木復号部
174 予測木復号部
181、191 8分木生成部
182、192 幾何情報算出部
183、193 符号化テーブル選択部
184 エントロピー符号化部
194 エントロピー復号部
201 LoD属性情報符号化部
202 変換属性情報符号化部
203 LoD属性情報復号部
204 変換属性情報復号部
211 ソート部
212 Haar変換部
213 量子化部
214、222 逆量子化部
215、223 逆Haar変換部
216、224 メモリ
217 算術符号化部
221 算術復号部
231 データ分割部
232 符号化部
233 復号部
234 データ結合部
241 符号化部
242 TLV格納部
301 センサ情報入力部
302 三次元データ生成部
303、305 レンダリング部
304 球面調和関数
311 符号化部
312 多重化部
321 逆多重化部
322 復号部
323 アプリケーション部
324 入力インターフェース部
325 レンダリング部
326 提示部
330、400 符号化装置
331 第1の前処理部
332、371、401 第2の前処理部
333、372、402 G-PCC符号化部
341 位置情報符号化部
342 回転符号化部
343 スケール符号化部
344 SH係数符号化部
345 透過率符号化部
346 メタデータ符号化部
347、405 多重化部
350、410 復号装置
351、373、412 G-PCC復号部
352、374、415 第2の後処理部
353 第1の後処理部
361、411 逆多重化部
362 位置情報復号部
363 回転復号部
364 スケール復号部
365 SH係数復号部
366 透過率復号部
367 メタデータ復号部
375 変換部
376 マッピング部
403 V3C符号化部
404 メタデータ符号化部
413 V3C復号部
414 メタデータ復号部
Claims (22)
- ガウシアンデータを符号化する三次元データ符号化方法であって、
前記ガウシアンデータは、複数の第1コンポーネントを含み、
前記複数の第1コンポーネントの各々は1以上の次元で表され、
前記複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、前記位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含み、
前記三次元データ符号化方法は、
前記複数の第1コンポーネントを、点群符号化方式を用いて符号化することで符号化データを生成し、
前記符号化データを含むビットストリームを生成する
三次元データ符号化方法。 - 前記複数の第1コンポーネントは、さらに、前記位置座標を基準とする回転値の情報を示す第1コンポーネントを含む
請求項1記載の三次元データ符号化方法。 - 前記複数の第1コンポーネントは、さらに、色情報を示す第1コンポーネント、又は透過率を示す第1コンポーネントを含む
請求項1記載の三次元データ符号化方法。 - 前記回転値及びスケール値は、共分散行列の情報として表される
請求項2記載の三次元データ符号化方法。 - 前記複数の第1コンポーネントは、さらに、球面調和関数の係数を示す第1コンポーネントを含む
請求項1記載の三次元データ符号化方法。 - 前記三次元データ符号化方法は、さらに、
前記複数の第1コンポーネントを、複数の第2コンポーネントに変換し、
前記符号化では、前記複数の第2コンポーネントを符号化する
請求項1記載の三次元データ符号化方法。 - 前記三次元データ符号化方法は、さらに、
前記複数の第1コンポーネントと前記複数の第2コンポーネントとの対応関係を示す情報をメタデータに格納し、
前記ビットストリームは、さらに前記メタデータを含む
請求項6記載の三次元データ符号化方法。 - 前記複数の第2コンポーネントの次元数は、予め定められた数以下であり、
前記変換では、前記複数の第1コンポーネントのうち、次元数が前記予め定められた数より大きい第1コンポーネントを、2以上の第2コンポーネントに分割する
請求項6記載の三次元データ符号化方法。 - 前記符号化では、
前記位置座標を示す前記第1コンポーネントを前記点群符号化方式に含まれるジオメトリ符号化方式を用いて符号化し、
前記スケール値の情報を示す前記第1コンポーネントを前記点群符号化方式に含まれる属性符号化方式を用いて符号化する
請求項1記載の三次元データ符号化方法。 - 前記ビットストリームは、前記複数の第1コンポーネントの種別を示す情報を含むパラメータセットを含む
請求項1記載の三次元データ符号化方法。 - ガウシアンデータを復号する三次元データ復号方法であって、
前記ガウシアンデータは、複数の第1コンポーネントを含み、
前記複数の第1コンポーネントの各々は1以上の次元で表され、
前記複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、前記位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含み、
前記三次元データ復号方法は、
前記複数の第1コンポーネントが符号化されることで生成された符号化データを含むビットストリームを取得し、
前記符号化データを、点群復号方式を用いて復号することで前記複数の第1コンポーネントを生成する
三次元データ復号方法。 - 前記複数の第1コンポーネントは、さらに、前記位置座標を基準とする回転値の情報を示す第1コンポーネントを含む
請求項11記載の三次元データ復号方法。 - 前記複数の第1コンポーネントは、さらに、色情報を示す第1コンポーネント、又は透過率を示す第1コンポーネントを含む
請求項11記載の三次元データ復号方法。 - 前記回転値及びスケール値は、共分散行列の情報として表される
請求項12記載の三次元データ復号方法。 - 前記複数の第1コンポーネントは、さらに、球面調和関数の係数を示す第1コンポーネントを含む
請求項11記載の三次元データ復号方法。 - 前記符号化データは、前記複数の第1コンポーネントが変換された複数の第2コンポーネントが符号化されることで生成され、
前記復号では、
前記符号化データを、点群復号方式を用いて復号することで前記複数の第2コンポーネントを生成し、
前記複数の第2コンポーネントを前記複数の第1コンポーネントに変換する
請求項11記載の三次元データ復号方法。 - 前記三次元データ復号方法は、さらに、
前記複数の第1コンポーネントと前記複数の第2コンポーネントとの対応関係を示す情報を、前記ビットストリームに含まれるメタデータから取得する
請求項16記載の三次元データ復号方法。 - 前記複数の第2コンポーネントの次元数は、予め定められた数以下であり、
前記変換では、前記複数の第2コンポーネントのうち、2以上の第2コンポーネントを前記予め定められた数より大きい次元数の第1コンポーネントに結合する
請求項16記載の三次元データ復号方法。 - 前記復号では、
前記位置座標を示す前記第1コンポーネントを前記点群復号方式に含まれるジオメトリ復号方式を用いて復号し、
前記スケール値の情報を示す前記第1コンポーネントを前記点群復号方式に含まれる属性復号方式を用いて復号する
請求項11記載の三次元データ復号方法。 - 前記ビットストリームは、前記複数の第1コンポーネントの種別を示す情報を含むパラメータセットを含む
請求項11記載の三次元データ復号方法。 - ガウシアンデータを符号化する三次元データ符号化装置であって、
プロセッサと、
メモリと、を備え、
前記ガウシアンデータは、複数の第1コンポーネントを含み、
前記複数の第1コンポーネントの各々は1以上の次元で表され、
前記複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、前記位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含み、
前記プロセッサは、前記メモリを用いて、
前記複数の第1コンポーネントを、点群符号化方式を用いて符号化することで符号化データを生成し、
前記符号化データを含むビットストリームを生成する
三次元データ符号化装置。 - ガウシアンデータを復号する三次元データ復号装置であって、
プロセッサと、
メモリと、を備え、
前記ガウシアンデータは、複数の第1コンポーネントを含み、
前記複数の第1コンポーネントの各々は1以上の次元で表され、
前記複数の第1コンポーネントは、位置座標を示す第1コンポーネントと、前記位置座標を基準とするスケール値の情報を示す第1コンポーネントとを含み、
前記プロセッサは、前記メモリを用いて、
前記複数の第1コンポーネントが符号化されることで生成された符号化データを含むビットストリームを取得し、
前記符号化データを、点群復号方式を用いて復号することで前記複数の第1コンポーネントを生成する
三次元データ復号装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202463571699P | 2024-03-29 | 2024-03-29 | |
| US63/571,699 | 2024-03-29 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025205261A1 true WO2025205261A1 (ja) | 2025-10-02 |
Family
ID=97217169
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2025/010526 Pending WO2025205261A1 (ja) | 2024-03-29 | 2025-03-18 | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置及び三次元データ復号装置 |
Country Status (2)
| Country | Link |
|---|---|
| TW (1) | TW202544744A (ja) |
| WO (1) | WO2025205261A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN121330145A (zh) * | 2025-11-04 | 2026-01-13 | 元梦空间数字科技(成都)有限公司 | 基于Unity引擎在VR中的3D高斯泼溅渲染优化方法 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190319851A1 (en) * | 2018-04-11 | 2019-10-17 | Nvidia Corporation | Fast multi-scale point cloud registration with a hierarchical gaussian mixture |
| JP2023503732A (ja) * | 2021-04-15 | 2023-02-01 | センスタイム インターナショナル プライベート リミテッド | ポイントクラウド補完方法、ネットワーク訓練方法、装置、機器及び記憶媒体 |
-
2025
- 2025-03-18 WO PCT/JP2025/010526 patent/WO2025205261A1/ja active Pending
- 2025-03-24 TW TW114110912A patent/TW202544744A/zh unknown
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190319851A1 (en) * | 2018-04-11 | 2019-10-17 | Nvidia Corporation | Fast multi-scale point cloud registration with a hierarchical gaussian mixture |
| JP2023503732A (ja) * | 2021-04-15 | 2023-02-01 | センスタイム インターナショナル プライベート リミテッド | ポイントクラウド補完方法、ネットワーク訓練方法、装置、機器及び記憶媒体 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN121330145A (zh) * | 2025-11-04 | 2026-01-13 | 元梦空间数字科技(成都)有限公司 | 基于Unity引擎在VR中的3D高斯泼溅渲染优化方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202544744A (zh) | 2025-11-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7711155B2 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 | |
| US11483363B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| JP7640526B2 (ja) | ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法。 | |
| US12058370B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| US20230059625A1 (en) | Transform-based image coding method and apparatus therefor | |
| US11395004B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| US20220360823A1 (en) | Device and method for processing point cloud data | |
| JP7785744B2 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 | |
| JP7640542B2 (ja) | ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法 | |
| US20240020885A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
| US12354310B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| US12483721B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| US12549763B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| US20240242390A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
| US20240422355A1 (en) | Point cloud data transmission device and method, and point cloud data reception device and method | |
| JP2024515203A (ja) | ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法 | |
| EP4496315A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| KR20260036027A (ko) | 3차원 데이터 부호화 방법, 3차원 데이터 복호 방법, 3차원 데이터 부호화 장치, 및 3차원 데이터 복호 장치 | |
| US20240357166A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device | |
| US20240179347A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| CN116438799A (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
| TW202544744A (zh) | 三次元資料編碼方法、三次元資料解碼方法、三次元資料編碼裝置及三次元資料解碼裝置 | |
| EP4429250A1 (en) | Point cloud data transmission device and method, and point cloud data reception device and method | |
| US12307726B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method, where the octree includes a direct node having a single position of one point | |
| US20230412837A1 (en) | Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 25775295 Country of ref document: EP Kind code of ref document: A1 |