WO2025009366A1 - Information processing device and method - Google Patents
Information processing device and method Download PDFInfo
- Publication number
- WO2025009366A1 WO2025009366A1 PCT/JP2024/021822 JP2024021822W WO2025009366A1 WO 2025009366 A1 WO2025009366 A1 WO 2025009366A1 JP 2024021822 W JP2024021822 W JP 2024021822W WO 2025009366 A1 WO2025009366 A1 WO 2025009366A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- guide surface
- unit
- feature
- cnn
- feature amount
- 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
Images
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 an information processing device and method, and in particular to an information processing device and method that can suppress a decrease in coding efficiency.
- AI-PCC Artificial Intelligence - Point Cloud Compression
- Non-Patent Document 1 the method described in Non-Patent Document 1 is known as one such AI-PCC method.
- This method uses a sparse 3D-CNN (3-dimensional Convolutional Neural Network) (a type of neural network) in the encoder and decoder.
- Non-Patent Document 1 is not always the best method, and other methods are needed. In other words, there is a risk that the coding efficiency will decrease with the conventional methods.
- An information processing device includes a guide surface feature derivation unit that uses a first coordinate set, which is a set of coordinates of points forming a point cloud, a first feature set, which is a set of features of the coordinates, and a guide surface, which is a reference surface formed in three-dimensional space, to derive guide surface features, which are features based on the positional relationship between the guide surface and the points; a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature set reflecting the guide surface features, to derive a second coordinate set and a second feature set; a coordinate encoding unit that encodes the derived second coordinate set; and a feature encoding unit that encodes the derived second feature set, and the information processing device has a code size smaller than the code size of the encoded data of the first coordinate set and the first feature set.
- An information processing method uses a first coordinate set, which is a set of coordinates of points forming a point cloud, a first feature set, which is a set of features of the coordinates, and a guide surface, which is a reference surface formed in three-dimensional space, to derive guide surface features, which are features based on the positional relationship between the guide surface and the points, perform a predetermined calculation using the first coordinate set and the first feature set reflecting the guide surface features, derive a second coordinate set and a second feature set, encode the derived second coordinate set, encode the derived second feature set, and the amount of code for the encoded data of the second coordinate set and the second feature set is less than the amount of code for the encoded data of the first coordinate set and the first feature set.
- An information processing device including: a coordinate decoding unit that decodes encoded data to generate a first coordinate set, which is a set of coordinates of points that form a point cloud; a feature decoding unit that decodes encoded data to generate a first feature set, which is a set of features of the coordinates; a guide surface feature derivation unit that uses the generated first coordinate set, the generated first feature set, and a guide surface that is a reference surface formed in three-dimensional space to derive guide surface features, which are features based on the positional relationship between the guide surface and the points; and a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature set that reflects the guide surface features, to derive a second coordinate set and a second feature set.
- An information processing method is an information processing method that decodes encoded data to generate a first coordinate set, which is a set of coordinates of points forming a point cloud, decodes the encoded data to generate a first feature set, which is a set of features of the coordinates, derives guide surface features, which are features based on the positional relationship between the guide surface and the points, using the generated first coordinate set, the generated first feature set, and a guide surface, which is a reference surface formed in three-dimensional space, and performs a calculation using the first coordinate set and the first feature set reflecting the guide surface features, to derive a second coordinate set and a second feature set.
- a first coordinate set which is a set of coordinates of points forming a point cloud
- a first feature set which is a set of features of those coordinates
- a guide surface which is a reference surface formed in three-dimensional space
- encoded data is decoded to generate a first coordinate set which is a set of coordinates of points forming a point cloud
- the encoded data is decoded to generate a first feature set which is a set of features of the coordinates
- the generated first coordinate set, the generated first feature set, and a guide surface which is a reference surface formed in three-dimensional space are used to derive guide surface features which are features based on the positional relationship between the guide surface and the points
- a predetermined calculation is performed using the first coordinate set and the first feature set reflecting the guide surface features to derive a second coordinate set and a second feature set.
- FIG. 1 is a diagram illustrating an example of a main configuration of a conventional calculation unit.
- FIG. 1 is a diagram illustrating an example of a main configuration of a conventional encoding device.
- FIG. 1 is a diagram illustrating an example of a main configuration of a conventional encoding device.
- FIG. 1 is a diagram illustrating an example of an encoding/decoding method to which the present technology is applied.
- FIG. 2 is a diagram illustrating an example of a main configuration of a calculation unit.
- FIG. 13 is a diagram showing an example of a guide surface.
- FIG. 2 is a block diagram showing an example of the main configuration of an encoding device.
- 11 is a flowchart illustrating an example of the flow of an encoding process.
- FIG. 9 is a flowchart continuing from FIG. 8 , illustrating an example of the flow of the encoding process.
- 13 is a flowchart illustrating an example of the flow of a guide surface feature amount set derivation process.
- FIG. 2 is a block diagram showing an example of the main configuration of a decoding device.
- 13 is a flowchart illustrating an example of the flow of a decoding process.
- 13 is a flowchart continuing from FIG. 12, illustrating an example of the flow of a decoding process.
- 13A and 13B are diagrams illustrating examples of guide surface feature amounts.
- FIG. 13 is a diagram showing an example of fitting.
- FIG. 2 is a block diagram showing an example of the main configuration of a decoding device.
- FIG. 13 is a flowchart illustrating an example of the flow of a decoding process.
- FIG. 1 is a diagram showing an example of Trisoup.
- FIG. 2 is a block diagram showing an example of the main configuration of an encoding device.
- 11 is a flowchart illustrating an example of the flow of an encoding process.
- 9 is a flowchart continuing from FIG. 8 , illustrating an example of the flow of the encoding process.
- FIG. 2 is a block diagram showing an example of the main configuration of an encoding device.
- 11 is a flowchart illustrating an example of the flow of an encoding process.
- FIG. 2 is a block diagram showing an example of the main configuration of an encoding device.
- FIG. 11 is a flowchart illustrating an example of the flow of an encoding process.
- 9 is a flowchart continuing from FIG. 8 , illustrating an example of the flow of the encoding process.
- 13 is a flowchart illustrating an example of the flow of a guide surface feature amount set derivation process.
- FIG. 2 is a block diagram showing an example of the main configuration of a decoding device. 13 is a flowchart illustrating an example of the flow of a decoding process. 30 is a flowchart continuing from FIG. 29 , illustrating an example of the flow of a decoding process.
- FIG. 13 is a diagram illustrating an example of a simulation result.
- FIG. 2 is a block diagram showing an example of a main configuration of a computer.
- Non-patent document 1 (mentioned above)
- Non-patent document 2 Michael Kazhdan, Matthew Bolitho, Hugues Hoppe, "Poisson Surface Reconstruction", Eurographics Symposium on Geometry Processing (2006), Konrad Polthier, Alla Sheffer (Editors)
- Non-patent document 3 Stoll Carsten, Karni Zachi, Rossl Christian, Hitoshi Yamauchi, Seidel Hans-Peter, "Template Deformation for Point Cloud Fitting”
- Non-patent document 4 Danhang Tang, Philip A. Chou, Christian Hane, Mingsong Dou, Sean Fanello, Jonathan Taylor, Philip Davidson, Onur G.
- the contents of the above-mentioned non-patent documents and the contents of other documents referenced in the above-mentioned non-patent documents are also used as the basis for determining the support requirements.
- Point Cloud> As 3D data representing the three-dimensional structure of a three-dimensional structure (object of a three-dimensional shape), there exists a point cloud (also called a point group) that represents the object as a collection of many points.
- Point cloud data (also called point cloud data) is composed of the geometry (position information) and attributes (attribute information) of each point that constitutes the point cloud.
- the geometry indicates the position of the point in three-dimensional space.
- the attributes indicate the attributes of the point.
- the attributes can include any information.
- the attributes may include color information, reflectance information, normal information, etc. of each point.
- the point cloud has a relatively simple data structure and can represent any three-dimensional structure with sufficient accuracy by using a sufficient number of points.
- AI-PCC Artificial Intelligence - Point Cloud Compression
- Non-Patent Document 1 the method described in Non-Patent Document 1 is known as one such AI-PCC method.
- this method is also referred to as a "conventional AI-PCC method.”
- This conventional AI-PCC method uses a sparse 3D-CNN (3-dimensional Convolutional Neural Network) (a type of neural network) in the encoder and decoder.
- 3D-CNN 3-dimensional Convolutional Neural Network
- a CNN (Convolution Neural Network) 11 that converts an input sparse tensor into an output sparse tensor is used.
- some kind of calculation unit 21 that converts an input coordinate set and an input feature set into an output coordinate set and an output feature set, such as a 3D-CNN, a multilayer perceptron, or another neural network, is used.
- FIG. 2 shows an example of the main configuration of an encoder for this conventional AI-PCC method.
- CNN 52 (CNN_E1), CNN 53 (CNN_E2), CNN 54 (CNN_E3), CNN 55 (CNN_E4), CNN 56 (CNN_E5), and CNN 57 (CNN_E6) receive the sparse tensor and return the converted sparse tensor.
- a point encoding unit 58 encodes the points of C_X, the points of the coordinate set obtained by downscaling C_X by 1/2, and the points of the coordinate set obtained by downscaling C_X by 1/4, and outputs a score bit stream.
- the coordinate encoding unit 59 encodes (Octree encodes) the coordinate set C_Y, which is obtained by downscaling the input point group C_X by 1/8, and outputs a coordinate bit stream.
- the feature encoding unit 60 encodes the feature set F_Y associated with each coordinate in the coordinate set C_Y, and outputs a feature bit stream.
- the main configuration of a decoder for this conventional AI-PCC method is shown in Figure 3.
- the score decoding unit 71 decodes the score bit stream.
- the coordinate decoding unit 72 is a G-PCC decoder that performs lossless decoding of the coordinate set bit stream and generates (restores) the coordinate set C_Y.
- the feature decoding unit 73 entropy decodes the feature bit stream and generates (restores) the feature set F_Y.
- the feature bit stream is lossy compressed, and strictly speaking, the restored feature set F_Y may differ from F_Y before encoding.
- CNN74 (CNN_D1), CNN75 (CNN_D2), CNN77 (CNN_D3), CNN78 (CNN_D4), CNN80 (CNN_D5), and CNN81 (CNN_D6) are sparse 3D-CNNs that receive sparse tensors and return sparse tensors after transformation. These are mainly composed of sparse 3D convolution layers and nonlinear transformation layers.
- the occupancy state classification unit 76, the occupancy state classification unit 79, and the occupancy state classification unit 82 are each composed of a single sparse 3D convolution layer. This sparse 3D convolution layer inputs a sparse tensor and outputs a sparse tensor as a result of the operation.
- the feature of the sparse tensor as a result of the operation of this sparse 3D convolution layer represents the occupancy probability value of the coordinate.
- the occupancy state classification unit 76, the occupancy state classification unit 79, and the occupancy state classification unit 82 leave only the top k coordinates with the highest occupancy probability value and delete the other coordinates.
- the occupancy state classification unit 76, the occupancy state classification unit 79, and the occupancy state classification unit 82 output a coordinate set in which the coordinate set of the input sparse tensor is deleted except for the top k coordinates, and a feature set corresponding to the coordinate set (i.e., the feature set of the input sparse tensor in which the feature corresponding to the deleted coordinates has been deleted).
- k uses the corresponding scale among N_X, N_X', and N_X''.
- the feature corresponding to the deleted coordinate in F ⁇ out is also deleted.
- Non-Patent Document 1 is not always the best method, and other methods were needed. In other words, there was a risk that the coding efficiency would decrease with the conventional methods.
- the guide surface feature derivation unit 101 reflects the set of guide surface features g(C ⁇ in) in the input sparse tensor ⁇ C ⁇ in, F ⁇ in ⁇ , and inputs the input sparse tensor ⁇ C ⁇ in, [F ⁇ in, g(C ⁇ in)] ⁇ to the CNN 102.
- the guide surface feature derivation unit 121 reflects the set of guide surface features g(C ⁇ in) in the input coordinate set and input feature set ⁇ C ⁇ in, F ⁇ in ⁇ , and inputs the input coordinate set and input feature set ⁇ C ⁇ in, [F ⁇ in, g(C ⁇ in)] ⁇ to the calculation unit 122.
- This calculation unit 122 may have any configuration, such as a 3D-CNN, a multilayer perceptron, or other neural network.
- a guide surface 142 is provided.
- This guide surface 142 is a virtual surface in a three-dimensional space set in the present technology, which is used to convert the information of each point 141.
- This guide surface 142 may be any surface, and may be a flat surface or a curved surface.
- this guide surface 142 may represent the three-dimensional shape (outer shape) of the same 3D object as the point cloud with a predetermined resolution, or may be a surface unrelated to the outer shape of the 3D object.
- the information of each point 141 is converted into information (guide surface feature amount) based on this guide surface 142 and encoded. Therefore, in 2D encoding, the amount of information to be encoded can be reduced, as in the case of encoding a prediction residual. Therefore, it is possible to suppress a decrease in encoding efficiency.
- the first information processing device is provided with a guide surface feature derivation unit that uses a first coordinate set, which is a set of coordinates of points forming a point cloud, a first feature set, which is a set of features of the coordinates, and a guide surface, which is a reference surface formed in three-dimensional space, to derive guide surface features, which are features based on the positional relationship between the guide surface and the points; a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature set reflecting the guide surface features, to derive a second coordinate set and a second feature set; a coordinate encoding unit that encodes the derived second coordinate set; and a feature encoding unit that encodes the derived second feature set.
- a first coordinate set which is a set of coordinates of points forming a point cloud
- a first feature set which is a set of features of the coordinates
- a guide surface which is a reference surface formed in three-dimensional space
- a first coordinate set which is a set of coordinates of points forming a point cloud
- a first feature set which is a set of features of the coordinates
- a guide surface which is a reference surface formed in three-dimensional space
- a predetermined calculation is performed using the first coordinate set and the first feature set reflecting the guide surface features to derive a second coordinate set and a second feature set
- the derived second coordinate set is encoded
- the derived second feature set is encoded.
- the scale of the second coordinate set and the second feature set may be smaller than the scale of the first coordinate set and the first feature set.
- the calculation unit may derive the second coordinate set and the second feature set by recursively repeating a predetermined calculation multiple times.
- the calculation unit may downscale the input coordinate set and feature set in all or a part of the multiple predetermined calculations.
- the guide surface feature may be derived for each scale.
- the guide surface feature derivation unit may derive guide surface feature for some or all scales of the coordinate set and feature set.
- the guide surface may also be encoded.
- the bit stream may also be decoded to generate (restore) the guide surface.
- the guide surface may also be generated.
- the first information processing device may further include a guide surface generation unit that generates a guide surface using a point cloud, a guide surface encoding unit that encodes the guide surface and generates encoded data for the guide surface, and a guide surface decoding unit that decodes the encoded data for the guide surface and generates a guide surface.
- the first information processing device may further include a score encoding unit that encodes the score.
- the score encoding unit may also encode the score for each scale.
- the calculation unit may be configured with a CNN (Convolution Neural Network).
- the first information processing device may further include a sparse tensor construction unit that constructs a sparse tensor from the point cloud.
- the CNN may input the constructed sparse tensor.
- the second information processing device also includes a coordinate decoding unit that decodes encoded data to generate a first coordinate set, which is a set of coordinates of points forming a point cloud; a feature decoding unit that decodes encoded data to generate a first feature set, which is a set of features of the coordinates; a guide surface feature derivation unit that uses the generated first coordinate set, the generated first feature set, and a guide surface that is a reference surface formed in three-dimensional space to derive guide surface features, which are features based on the positional relationship between the guide surface and the points; and a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature set reflecting the guide surface features to derive a second coordinate set and a second feature set, so that the code amount of the encoded data of the first coordinate set and the first feature set is smaller than the code amount of the encoded data of the second coordinate set and the second feature set.
- a coordinate decoding unit that decodes encoded data to generate a first coordinate set, which is
- encoded data is decoded to generate a first coordinate set which is a set of coordinates of points forming a point cloud
- encoded data is decoded to generate a first feature set which is a set of coordinate features
- the generated first coordinate set, the generated first feature set, and a guide surface which is a reference surface formed in three-dimensional space are used to derive guide surface features which are features based on the positional relationship between the guide surface and the points
- a predetermined calculation is performed using the first coordinate set and the first feature set reflecting the guide surface features
- a new coordinate set and feature set are derived
- the amount of code of the encoded data of the first coordinate set and the first feature set is made smaller than the amount of code of the encoded data of the second coordinate set and the second feature set.
- the scale of the second coordinate set and the second feature set may be larger than the scale of the first coordinate set and the first feature set.
- the calculation unit may derive the second coordinate set and the second feature set by recursively repeating a predetermined calculation multiple times.
- the calculation unit may upscale the input coordinate set and feature set in all or a part of the multiple predetermined calculations.
- the guide surface feature may be derived for each scale.
- the guide surface feature derivation unit may derive guide surface feature for some or all scales of the coordinate set and feature set.
- the second information processing device may also decode and generate (restore) the guide surface.
- the second information processing device may further include a guide surface decoding unit that decodes the encoded data of the guide surface and generates the guide surface.
- the second information processing device may also include an occupancy state classification unit that predicts an occupancy probability value for each coordinate and extracts some coordinates and features with high occupancy probability values.
- the second information processing device may also include a score decoding unit that decodes to generate (restore) a score.
- the score decoding unit may also decode to generate (restore) a score for each scale.
- the calculation unit may be configured using a Convolution Neural Network (CNN).
- CNN Convolution Neural Network
- the first information processing device may be any device.
- it may be an encoding device that encodes 3D data (e.g., a point cloud).
- FIG. 7 is a block diagram showing an example of the configuration of an encoding device, which is one aspect of an information processing device to which the present technology is applied.
- the encoding device 300 shown in FIG. 7 is a device that encodes the geometry of a point cloud (3D data).
- the encoding device 300 encodes the geometry by applying the above-mentioned method 1.
- FIG. 7 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 7.
- processing units that are not shown as blocks in FIG. 7, and there may be processing and data flows that are not shown as arrows, etc. in FIG. 7.
- the encoding device 300 has a guide surface generation unit 311, a guide surface encoding unit 312, a guide surface decoding unit 313, a sparse tensor construction unit 314, a guide surface feature derivation unit 315, a CNN 316 (CNN_E1), a guide surface feature derivation unit 317, a CNN 318 (CNN_E2), a CNN 319 (CNN_E3), a guide surface feature derivation unit 320, a CNN 321 (CNN_E4), a CNN 322 (CNN_E5), a CNN 323 (CNN_E6), a coordinate encoding unit 324, a feature encoding unit 325, and a score encoding unit 326.
- CNN_E1 CNN 316
- CNN_E2 CNN 318
- CNN 319 CNN_E3
- a guide surface feature derivation unit 320 a CNN 321 (CNN_E4), a CNN 322 (CNN_E5), a CNN 3
- the guide surface generation unit 311 generates a guide surface from the input point cloud C_X.
- the guide surface is a reference surface formed in three-dimensional space, and is used for encoding the point cloud.
- the guide surface generation unit 311 may generate a mesh from the point cloud and use the mesh as the guide surface. Any method may be used to generate a mesh from this point cloud, and an existing method such as Poisson surface reconstruction described in Non-Patent Document 2 may be applied. However, this method requires normal data, so it is necessary to calculate the normals of the point cloud.
- the guide surface generation unit 311 supplies data indicating the generated guide surface to the guide surface encoding unit 312.
- the guide surface encoding unit 312 encodes the supplied guide surface to generate encoded data of the guide surface (also referred to as a guide surface bit stream). Any encoding method may be used. For example, if the guide surface is composed of a mesh, the guide surface encoding unit 312 may encode the guide surface by applying an encoding method for meshes. For example, an existing method such as reducing the number of triangles by mesh decimation and then performing Draco encoding may be applied. The guide surface encoding unit 312 may output the generated guide surface bit stream to the outside of the encoding device 300. The guide surface encoding unit 312 may also supply the generated guide surface bit stream to the guide surface decoding unit 313.
- the guide surface decoding unit 313 decodes the supplied guide surface bit stream and generates (restores) the guide surface.
- This decoding method may be any method that corresponds to the encoding method applied by the guide surface encoding unit 312.
- the guide surface decoding unit 313 may apply a decoding method for meshes to decode the guide surface bit stream.
- This decoding method may be an existing method.
- Draco decoding may be applied. Note that the encoding and decoding of this guide surface may be a lossless method or a lossy method.
- the guide surface generated (restored) by the guide surface decoding unit 313 may not completely match the guide surface before encoding (for example, the guide surface generated by the guide surface generating unit 311).
- the guide surface decoding unit 313 may supply the generated decoded guide surface to the guide surface feature amount derivation unit 315, the guide surface feature amount derivation unit 317, and the guide surface feature amount derivation unit 320.
- feature f_i is arranged at coordinates (x_i, y_i, z_i).
- [F ⁇ in, g(C ⁇ in)] is a feature set obtained by concatenating the guide surface feature g(c_i) calculated from the coordinate values corresponding to each feature f_i ⁇ F ⁇ in.
- [F ⁇ in, g(C ⁇ in)] ⁇ [f_i, g(c_i)] ⁇ _i.
- the dimension of the feature quantity set [F ⁇ in, g(C ⁇ in)] resulting from the calculation is three more than the dimension of the feature quantity set F ⁇ in to be processed.
- the guide surface feature derivation unit 315 may also obtain the decoded guide surface supplied from the guide surface decoding unit 313.
- the guide surface feature derivation unit 315 may then use the decoded guide surface to perform the above-mentioned processing on the input sparse tensor to generate a sparse tensor as the calculation result.
- the guide surface feature derivation unit 315 may also supply the generated sparse tensor as the calculation result to the CNN 316 (CNN_E1).
- CNN316 (CNN_E1) is a sparse 3D-CNN.
- Sparse 3D-CNN is a 3D-CNN with a sparse 3D convolutional layer, which inputs the sparse tensor ⁇ C ⁇ in, F ⁇ in ⁇ to be processed and outputs the sparse tensor ⁇ C ⁇ out, F ⁇ out ⁇ as the result of the calculation.
- 3D-CNN is a neural network mainly composed of a 3D convolutional layer and a nonlinear transformation layer. The 3D convolutional layer performs a kernel convolution operation on a set of features arranged in a three-dimensional space, and outputs the set of features as the result of the calculation.
- the 3D convolutional layer performs an operation to aggregate nearby feature sets in three-dimensional space by weighting each feature with the corresponding kernel value. This realizes feature transformation that takes into account nearby features.
- 3D-CNN realizes more nonlinear and complex feature transformation by stacking 3D convolutional layers and nonlinear transformation layers.
- a sparse 3D convolutional layer is a 3D convolutional layer whose input and output are sparse tensors.
- a sparse 3D convolutional layer has the advantage of being computationally more efficient (because empty coordinates with no corresponding features are ignored) than a normal 3D convolutional layer (also called a dense 3D convolutional layer for comparison).
- the calculation of a sparse 3D convolutional layer can be expressed as the following equation (1).
- C ⁇ in is the input coordinate set (also called the coordinate set of the processing target), and C ⁇ out is the output coordinate set (also called the coordinate set of the calculation result).
- f_u ⁇ in is the input feature vector at coordinate u (also called the feature vector of the processing target), and f_u ⁇ out is the output feature vector at coordinate u (also called the feature vector of the calculation result).
- N ⁇ 3(u, C ⁇ in) ⁇ i
- W_i represents the kernel value at offset value i.
- the coordinate set of the processing target C ⁇ in and the coordinate set of the calculation result C ⁇ out are not always the same. For example, C ⁇ out is different from C ⁇ in when downscaling or upscaling.
- CNN316 may obtain the sparse tensor of the calculation result of the guide surface feature derivation unit 315 as the sparse tensor to be processed. In other words, since the dimension of the feature increases by the amount of the guide surface feature, the input/output dimension of each sparse 3D-CNN is changed accordingly. This also applies to the following CNNs (CNN318, CNN319, CNN321, CNN322, and CNN323).
- CNN316 (CNN_E1) is composed of two sparse 3D convolution layers and two ReLU (Rectified Linear Unit) layers, which are a type of nonlinear transformation layer, and may perform 1/2 downscaling on the sparse tensor to be processed.
- CNN316 may supply the sparse tensor of the calculation result obtained to the guide surface feature derivation unit 317.
- the guide surface feature derivation unit 317 is a processing unit similar to the guide surface feature derivation unit 315, and performs processing related to the derivation of guide surface features.
- the guide surface feature derivation unit 317 may obtain a sparse tensor resulting from the calculation of the CNN 316 (CNN_E1) as a sparse tensor to be processed.
- the guide surface feature derivation unit 317 may also obtain a decoded guide surface supplied from the guide surface decoding unit 313.
- the guide surface feature derivation unit 317 may then use the decoded guide surface to perform the above-mentioned processing on the obtained sparse tensor to generate a sparse tensor resulting from the calculation.
- the guide surface feature derivation unit 317 may supply the sparse tensor resulting from the calculation that has been generated to the CNN 318 (CNN_E2).
- CNN318 is a sparse 3D-CNN, similar to CNN316 (CNN_E1).
- CNN318 (CNN_E2) may obtain the sparse tensor resulting from the calculation of the guide surface feature derivation unit 317 as the sparse tensor to be processed.
- CNN318 (CNN_E2) may be configured with a three-layer IRN (Inception-Residual Network).
- the IRN is also a sparse 3D-CNN, and is configured with a sparse 3D convolutional layer and a nonlinear transformation layer.
- CNN318 (CNN_E2) may perform calculations using the three-layer IRN on the sparse tensor to be processed.
- the CNN319 is a sparse 3D-CNN, similar to the CNN316 (CNN_E1).
- the CNN319 (CNN_E3) may obtain the sparse tensor resulting from the calculation of the CNN318 (CNN_E2) as the sparse tensor to be processed.
- the CNN319 (CNN_E3) is composed of two sparse 3D convolutional layers and two ReLU layers, and may perform 1/2 downscaling on the sparse tensor to be processed.
- the CNN319 (CNN_E3) may supply the sparse tensor resulting from the calculation to the guide surface feature derivation unit 320.
- the guide surface feature derivation unit 320 is a processing unit similar to the guide surface feature derivation unit 315, and performs processing related to the derivation of guide surface features.
- the guide surface feature derivation unit 320 may obtain the sparse tensor resulting from the calculation of CNN 319 (CNN_E3) as the sparse tensor to be processed.
- the guide surface feature derivation unit 320 may also obtain the decoded guide surface supplied from the guide surface decoding unit 313.
- the guide surface feature derivation unit 320 may then use the decoded guide surface to perform the above-described processing on the sparse tensor to be processed, to generate a sparse tensor resulting from the calculation.
- the guide surface feature derivation unit 320 may supply the sparse tensor resulting from the calculation that has been generated to CNN 321 (CNN_E4).
- the CNN321 (CNN_E4) is a sparse 3D-CNN, similar to the CNN318 (CNN_E2).
- the CNN321 (CNN_E4) may obtain the sparse tensor resulting from the calculation of the guide surface feature derivation unit 320 as the sparse tensor to be processed.
- the CNN321 (CNN_E4) may be configured with three layers of IRNs, and may perform calculations using the three layers of IRNs on the sparse tensor to be processed.
- CNN322 (CNN_E5) is a sparse 3D-CNN, similar to CNN316 (CNN_E1). CNN322 (CNN_E5) may obtain the sparse tensor resulting from the computation of CNN321 (CNN_E4) as the sparse tensor to be processed.
- CNN322 (CNN_E5) is composed of two sparse 3D convolutional layers and two ReLU layers, and may perform 1/2 downscaling on the sparse tensor to be processed.
- CNN322 (CNN_E5) may supply the sparse tensor resulting from the computation obtained to CNN323 (CNN_E6).
- CNN323 is a sparse 3D-CNN, similar to CNN318 (CNN_E2).
- CNN323 (CNN_E6) may obtain the sparse tensor resulting from the computation of CNN322 (CNN_E5) as the sparse tensor to be processed.
- CNN323 (CNN_E6) may be configured with three layers of IRN and one layer of sparse 3D convolutional layer, and may perform computations on the sparse tensor to be processed using the three layers of IRN and one layer of sparse 3D convolutional layer.
- the coordinate encoding unit 324 is a G-PCC (Geometry-based Point Cloud Compression) encoder, and performs processing related to encoding of coordinates (coordinate set).
- the coordinate encoding unit 324 may encode the coordinate set C_Y and generate encoded data (also called a coordinate bit stream) of the coordinate set.
- the coordinate encoding unit 324 may encode the coordinate set C_Y using a lossless method.
- the coordinate encoding unit 324 may encode the coordinate set C_Y using an octree.
- the coordinate encoding unit 324 may output the generated coordinate bit stream to the outside of the encoding device 300.
- the feature encoding unit 325 performs processing related to encoding of features (feature set).
- the feature encoding unit 325 may quantize and entropy encode the feature set F_Y to generate encoded data of the feature set (also referred to as a feature bit stream). In other words, the feature encoding unit 325 encodes the feature set F_Y using a lossy method.
- the feature encoding unit 325 may output the generated feature bit stream to the outside of the encoding device 300.
- the score encoding unit 326 performs processing related to encoding the scores of the coordinate sets of each scale.
- the score encoding unit 326 may encode these N_X, N_X', and N_X'' to generate encoded data of the scores (also referred to as a score bit stream).
- the score encoding unit 326 may output the generated score bitstream outside the encoding device 300.
- the guide surface feature derivation unit 315, the guide surface feature derivation unit 317, and the guide surface feature derivation unit 320 derive guide surface feature amounts, which are features based on the positional relationship between the guide surface and the points, using a first coordinate set, which is a set of coordinates of points forming a point cloud, a first feature set, which is a set of features of the coordinates, and a guide surface, which is a reference surface formed in a three-dimensional space.
- CNN316, CNN318, CNN319, CNN321, CNN322, and CNN323 perform a predetermined calculation using the first coordinate set and the first feature set reflecting the guide surface feature amounts (using features including the guide surface feature amounts) to derive a second coordinate set and a second feature set. Therefore, CNN316, CNN318, CNN319, CNN321, CNN322, and CNN323 can also be said to be calculation units.
- the coordinate encoding unit 324 encodes the derived second coordinate set.
- the feature encoding unit 325 encodes the derived second feature set. The amount of code for the encoded data of the second coordinate set and the second feature set is smaller than the amount of code for the encoded data of the first coordinate set and the first feature set.
- the encoding device 300 can reduce the amount of information to be encoded, and suppress a decrease in encoding efficiency.
- the CNN and guide surface feature derivation unit may have any configuration and are not limited to the example in FIG. 7.
- the number of downscalings and the conversion rate for each downscaling may be any number.
- FIG. 7 illustrates an example in which the calculation unit is 3D-CNN
- the calculation unit may have any configuration, such as 3D-CNN, a multilayer perceptron, or other neural networks, as in the calculation unit 122 in FIG. 5.
- the guide surface feature amount derivation unit only needs to be provided at least at the beginning of the CNN sequence. In addition, it may be provided anywhere in the CNN sequence.
- the guide surface feature amount may be derived for each scale.
- the guide surface feature amount derivation unit 315 may derive the guide surface feature amount at 1/1 scale
- the guide surface feature amount derivation unit 317 may derive the guide surface feature amount at 1/2 scale
- the guide surface feature amount derivation unit 320 may derive the guide surface feature amount at 1/4 scale.
- the guide surface feature amount may also be derived for 1/8 scale.
- the scale of the second coordinate set and the second feature amount set may be smaller than the scale of the first coordinate set and the first feature amount set.
- the calculation unit may derive the second coordinate set and the second feature amount set by recursively repeating a predetermined calculation multiple times.
- the calculation unit may also downscale the input coordinate set and feature set in all or part of the multiple predetermined calculations.
- the guide surface feature derivation unit may then derive guide surface feature values for some or all of the scales of the coordinate set and feature set.
- the guide surface may also be encoded.
- the bit stream may also be decoded to generate (restore) the guide surface.
- the guide surface may also be generated.
- the guide surface generation unit 311 may generate a guide surface using a point cloud
- the guide surface encoding unit 312 may encode the guide surface to generate encoded data for the guide surface
- the guide surface decoding unit 313 may decode the encoded data for the guide surface to generate the guide surface.
- the encoding device 300 performs an encoding process to encode the geometry as described above. An example of the flow of the encoding process will be described with reference to the flowcharts of FIGS.
- the guide surface generation unit 311 and the sparse tensor construction unit 314 acquire the input point group C_X, which is the point cloud to be input to the encoding device 300, in step S301 of FIG. 8.
- step S302 the guide surface generation unit 311 generates a guide surface from the input point group C_X.
- step S303 the guide surface encoding unit 312 encodes the generated guide surface to generate a guide surface bit stream.
- the guide surface encoding unit 312 outputs the guide surface bit stream to the outside of the encoding device 300.
- step S304 the guide surface decoding unit 313 decodes the guide surface bitstream and generates (restores) the decoded guide surface.
- step S306 the guide surface feature derivation unit 315 sets ⁇ C ⁇ in, F ⁇ in ⁇ ⁇ (C_X, F_X).
- step S307 the guide surface feature derivation unit 315, the guide surface feature derivation unit 317, or the guide surface feature derivation unit 320 determines whether or not to input the guide surface feature to the next 3D-CNN. If it is determined that the guide surface feature is to be input to the next 3D-CNN, the process proceeds to step S308.
- step S308 the guide surface feature derivation unit 315, the guide surface feature derivation unit 317, or the guide surface feature derivation unit 320 executes a guide surface feature set derivation process, and derives a guide surface feature set g(C ⁇ in) using the sparse tensor to be processed and the decoded guide surface.
- step S309 the guide surface feature derivation unit 315, the guide surface feature derivation unit 317, or the guide surface feature derivation unit 320 sets F ⁇ in ⁇ [F ⁇ in, g(C ⁇ in)].
- the guide surface feature derivation unit 315, the guide surface feature derivation unit 317, or the guide surface feature derivation unit 320 sets the concatenation of the feature set to be processed and the guide surface feature set g(C ⁇ in) as the feature set to be processed by the next 3D-CNN.
- step S309 When the processing of step S309 is completed, the processing proceeds to FIG. 9. Also, in step S307, if it is determined that the guide surface feature amount is not to be input to the next 3D-CNN, the processing proceeds to FIG. 9. In other words, if there is no guide surface feature amount derivation unit immediately before the 3D-CNN, the processing of steps S308 and S309 is omitted.
- the processing of steps S308 and S309 is omitted.
- the encoding device 300 has the configuration example shown in FIG.
- CNN316 (CNN_E1), CNN318 (CNN_E2), CNN319 (CNN_E3), CNN321 (CNN_E4), CNN322 (CNN_E5), or CNN323 (CNN_E6) performs 3D-CNN operations on the sparse tensor ⁇ C ⁇ in, F ⁇ in ⁇ to be processed, and derives the sparse tensor ⁇ C ⁇ out, F ⁇ out ⁇ as the operation result.
- CNN323 determines whether or not all 3D-CNNs have been processed. If it is determined that all 3D-CNNs have not been processed (i.e., there are unprocessed 3D-CNNs (at least CNN323 (CNN_E6) has not been processed)), the process proceeds to step S323.
- CNN316 (CNN_E1), CNN318 (CNN_E2), CNN319 (CNN_E3), CNN321 (CNN_E4), or CNN322 (CNN_E5) sets ⁇ C ⁇ in, F ⁇ in ⁇ ⁇ ⁇ C ⁇ out, F ⁇ out ⁇ .
- CNN316 (CNN_E1), CNN318 (CNN_E2), CNN319 (CNN_E3), CNN321 (CNN_E4), or CNN322 (CNN_E5) sets the sparse tensor ⁇ C ⁇ out, F ⁇ out ⁇ resulting from the calculation it derived as the sparse tensor ⁇ C ⁇ in, F ⁇ in ⁇ to be processed by the next processing unit (guide surface feature derivation unit or 3D-CNN).
- step S323 When the processing of step S323 is completed, the process returns to step S307 in FIG. 8, and the subsequent processing is executed. That is, the processing of each of steps S307 to S309 in FIG. 8 and the processing of each of steps S321 to S323 in FIG. 9 are executed for each 3D-CNN (including the guide surface feature derivation unit if one exists immediately before the 3D-CNN).
- step S322 of FIG. 9 If it is determined in step S322 of FIG. 9 that processing has been performed for all 3D-CNNs (i.e., processing has been performed for CNN323 (CNN_E6)), processing proceeds to step S324.
- CNN323 sets ⁇ C_Y, F_Y ⁇ ⁇ ⁇ C ⁇ out, F ⁇ out ⁇ .
- the last CNN323 sets the sparse tensor ⁇ C ⁇ out, F ⁇ out ⁇ , which is the result of the calculation it derived, as the output sparse tensor ⁇ C_Y, F_Y ⁇ .
- step S325 the coordinate encoding unit 324 encodes the coordinate set C_Y of the output sparse tensor ⁇ C_Y, F_Y ⁇ to generate a coordinate bitstream. It also outputs the coordinate bitstream to the outside of the encoding device 300.
- step S326 the feature encoding unit 325 encodes the feature set F_Y of the output sparse tensor ⁇ C_Y, F_Y ⁇ to generate a feature bitstream.
- the feature bitstream is then output to the outside of the encoding device 300.
- step S327 the scores for each scale are encoded to generate a score bit stream.
- the score bit stream is then output to the outside of the encoding device 300.
- step S327 When step S327 is completed, the encoding process ends.
- step S331 the guide surface feature amount derivation unit 315, the guide surface feature amount derivation unit 317, or the guide surface feature amount derivation unit 320 extracts coordinates c_i ⁇ C ⁇ in.
- the guide surface feature amount derivation unit 315, the guide surface feature amount derivation unit 317, or the guide surface feature amount derivation unit 320 selects one coordinate c_i from the coordinate set C ⁇ in to be processed, and makes it the processing target.
- step S332 the guide surface feature amount derivation unit 315, the guide surface feature amount derivation unit 317, or the guide surface feature amount derivation unit 320 searches for the nearest point p_i on the decoded guide surface from the selected coordinate c_i.
- the guide surface feature amount derivation unit 315, the guide surface feature amount derivation unit 317, or the guide surface feature amount derivation unit 320 derives the guide surface feature amount g(c_i) based on the positional relationship between the guide surface and the point (in this example, p_i - c_i).
- step S334 the guide surface feature derivation unit 315, the guide surface feature derivation unit 317, or the guide surface feature derivation unit 320 determines whether or not processing has been performed for all coordinates c_i ⁇ C ⁇ in. If it is determined that an unprocessed coordinate c_i exists, the process returns to step S331, and the subsequent processes are executed. In other words, the processes of steps S331 to S334 are executed for each coordinate value c_i in the coordinate set C ⁇ in to be processed.
- step S334 If it is determined in step S334 that processing has been performed for all coordinate values c_i, the guide surface feature set derivation process ends and processing returns to FIG. 8.
- the encoding device 300 can reduce the amount of information to be encoded and suppress a decrease in encoding efficiency.
- Fig. 11 is a block diagram showing an example of the configuration of a decoding device, which is one aspect of an information processing device to which the present technology is applied.
- the decoding device 350 shown in Fig. 11 is a device that decodes a bit stream in which the geometry of a point cloud (3D data) is encoded.
- the decoding device 350 decodes bit streams (guide surface bit stream, coordinate bit stream, feature bit stream, and point number bit stream) generated by encoding (the geometry of) the point cloud by the encoding device 300, and generates (restores) (the geometry of) the point cloud.
- FIG. 11 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 11.
- processing units that are not shown as blocks in FIG. 11, and there may be processing and data flows that are not shown as arrows, etc. in FIG. 11.
- the decoding device 350 has a score decoding unit 361, a coordinate decoding unit 362, a feature decoding unit 363, a guide surface decoding unit 364, a CNN 365 (CNN_D1), a guide surface feature derivation unit 366, a CNN 367 (CNN_D2), an occupancy state classification unit 368, a CNN 369 (CNN_D3), a guide surface feature derivation unit 370, a CNN 371 (CNN_D4), an occupancy state classification unit 372, a CNN 373 (CNN_D5), a guide surface feature derivation unit 374, a CNN 375 (CNN_D6), and an occupancy state classification unit 376.
- CNN_D1 CNN
- CNN_D2 CNN 367
- CNN_D3 an occupancy state classification unit 368
- CNN 369 CNN 369
- a guide surface feature derivation unit 370 a CNN 371 (CNN_D4)
- N_X'
- N_X''
- the score decoding unit 361 may supply the generated N_X to the occupancy state classification unit 376.
- the score decoding unit 361 may supply the generated N_X' to the occupancy state classification unit 372.
- the score decoding unit 361 may supply the generated N_X'' to the occupancy state classification unit 368.
- the coordinate decoding unit 362 is a G-PCC decoder and executes processing related to decoding of the coordinate bit stream. For example, the coordinate decoding unit 362 may acquire the coordinate bit stream input to the decoding device 350. The coordinate decoding unit 362 may decode the acquired coordinate bit stream and generate (restore) the coordinate set C_Y. In this case, the coordinate decoding unit 362 may decode the coordinate bit stream using a lossless method. For example, the coordinate decoding unit 362 may decode the coordinate bit stream using an octree. The coordinate decoding unit 362 may supply the generated coordinate set C_Y to the CNN 365 (CNN_D1).
- the feature decoding unit 363 executes processing related to the decoding of the feature bit stream. For example, the feature decoding unit 363 may acquire the feature bit stream input to the decoding device 350. The feature decoding unit 363 may entropy decode the acquired feature bit stream to generate (restore) a feature set F_Y. In this case, the feature decoding unit 363 decodes the feature bit stream using a lossy method. Therefore, the feature set F_Y generated by the feature decoding unit 363 does not have to completely match the feature set F_Y before being encoded by the feature encoding unit 325 ( Figure 7). The feature decoding unit 363 may supply the generated feature set F_Y to the CNN 365 (CNN_D1).
- the guide surface decoding unit 364 is a processing unit similar to the guide surface decoding unit 313 (FIG. 7), and executes processing related to the decoding of the guide surface bit stream.
- the guide surface decoding unit 364 may acquire the guide surface bit stream input to the decoding device 350.
- the guide surface decoding unit 364 may decode the acquired guide surface bit stream and generate a decoded guide surface.
- This decoding method may be any method that corresponds to the encoding method applied by the guide surface encoding unit 312 (FIG. 7).
- the guide surface decoding unit 364 may decode the guide surface bit stream by applying a decoding method for meshes.
- This decoding method may be an existing method.
- Draco decoding may be applied.
- the encoding and decoding of the guide surface may be a lossless method or a lossy method.
- the guide surface (also referred to as the decoded guide surface) generated (restored) by the guide surface decoding unit 364 does not have to completely match the guide surface before encoding (for example, the guide surface generated by the guide surface generating unit 311).
- the guide surface decoding unit 364 may supply the generated decoded guide surface to the guide surface feature amount derivation unit 366, the guide surface feature amount derivation unit 370, and the guide surface feature amount derivation unit 374.
- CNN365 (CNN_D1) is a sparse 3D-CNN, and is mainly composed of sparse 3D convolution layers and nonlinear transformation layers. It acquires a sparse tensor as a processing target, performs a predetermined operation on the sparse tensor to be processed, and outputs a sparse tensor as the result of the operation.
- CNN365 (CNN_D1) is composed of two sparse 3D convolution layers and two ReLU layers, and may perform upscaling by 2 times on the sparse tensor to be processed.
- the CNN 365 (CNN_D1) may supply the sparse tensor of the obtained calculation result to the guide surface feature derivation unit 366.
- the guide surface feature derivation unit 366 is a processing unit similar to the guide surface feature derivation units of the encoding device 300 such as the guide surface feature derivation unit 315, and performs processing related to the derivation of guide surface features.
- the dimension of the feature quantity set [F ⁇ in, g(C ⁇ in)] resulting from the calculation is three more than the dimension of the feature quantity set F ⁇ in to be processed.
- the guide surface feature derivation unit 366 may obtain the sparse tensor resulting from the calculation of CNN 365 (CNN_D1) as the sparse tensor to be processed.
- the guide surface feature derivation unit 366 may also obtain the decoded guide surface supplied from the guide surface decoding unit 364.
- the guide surface feature derivation unit 366 may then use the decoded guide surface to perform the above-mentioned processing on the sparse tensor to be processed, to generate a sparse tensor resulting from the calculation.
- the guide surface feature derivation unit 366 may also supply the sparse tensor resulting from the calculation that has been generated to CNN 367 (CNN_D2).
- CNN367 (CNN_D2), like CNN365 (CNN_D1), is a sparse 3D-CNN, and is mainly composed of a sparse 3D convolution layer and a nonlinear transformation layer.
- CNN367 (CNN_D2) acquires a sparse tensor as a processing target, performs a predetermined operation on the sparse tensor to be processed, and outputs a sparse tensor as the operation result.
- CNN367 (CNN_D2) may acquire a sparse tensor as the operation result of the guide surface feature derivation unit 366 as the sparse tensor to be processed.
- CNN367 is composed of a three-layer IRN, and may perform an operation using the three-layer IRN on the sparse tensor to be processed.
- the CNN 367 (CNN_D2) may supply the sparse tensor ⁇ Up(C_Y), F_X'' ⁇ obtained as the result of the calculation to the occupancy state classification unit 368.
- Up() represents a process of upsampling by a factor of two in the x, y, and z directions. For example, the score of Up(C_Y) is eight times the score of C_Y.
- the occupancy state classification unit 368 is composed of one sparse 3D convolutional layer. This sparse 3D convolutional layer inputs the sparse tensor to be processed and outputs the sparse tensor that is the result of the calculation. The feature values of the sparse tensor that is the result of the calculation of this sparse 3D convolutional layer represent the occupancy probability value of the coordinates.
- the occupancy state classification unit 368 extracts a predetermined number of coordinates (top k coordinates) from those with the highest occupancy probability value, and deletes the other coordinates.
- the occupancy state classification unit 368 outputs a coordinate set in which the coordinate set of the input sparse tensor has been deleted except for the top k coordinates, and a feature set corresponding to the coordinate set (i.e., the feature set of the input sparse tensor in which the feature values corresponding to the deleted coordinates have been deleted).
- a feature set corresponding to the coordinate set i.e., the feature set of the input sparse tensor in which the feature values corresponding to the deleted coordinates have been deleted.
- the scale value corresponding to the sparse tensor to be processed among N_X, N_X', and N_X'', is applied to this k.
- the occupancy state classification unit 368 also deletes the feature values corresponding to the deleted coordinates in F ⁇ out.
- the occupancy state classification unit 368 may obtain the sparse tensor ⁇ Up(C_Y), F_X'' ⁇ resulting from the calculation of the CNN 367 (CNN_D2) as the sparse tensor to be processed.
- CNN369 (CNN_D3), like CNN365 (CNN_D1), is a sparse 3D-CNN, and is mainly composed of sparse 3D convolutional layers and nonlinear transformation layers.
- CNN369 (CNN_D3) acquires a sparse tensor as a processing target, performs a predetermined operation on the sparse tensor to be processed, and outputs a sparse tensor as the operation result.
- CNN369 (CNN_D3) is composed of two sparse 3D convolutional layers and two ReLU layers, and may perform upscaling by 2 times on the sparse tensor to be processed.
- the CNN 369 (CNN_D3) may supply the sparse tensor of the obtained calculation result to the guide surface feature derivation unit 370.
- the guide surface feature derivation unit 370 may obtain the sparse tensor resulting from the calculation of CNN 369 (CNN_D3) as the sparse tensor to be processed.
- the guide surface feature derivation unit 370 may also obtain the decoded guide surface supplied from the guide surface decoding unit 364.
- the guide surface feature derivation unit 370 may then use the decoded guide surface to perform the above-mentioned processing on the sparse tensor to be processed, to generate a sparse tensor resulting from the calculation.
- the guide surface feature derivation unit 370 may also supply the sparse tensor resulting from the calculation that has been generated to CNN 371 (CNN_D4).
- CNN371 (CNN_D4) is a sparse 3D-CNN, similar to CNN367 (CNN_D2), and is mainly composed of a sparse 3D convolution layer and a nonlinear transformation layer.
- CNN371 (CNN_D4) acquires a sparse tensor as a processing target, performs a predetermined operation on the sparse tensor to be processed, and outputs a sparse tensor as the operation result.
- CNN371 (CNN_D4) may acquire a sparse tensor as the operation result of the guide surface feature derivation unit 370 as the sparse tensor to be processed.
- CNN371 is composed of a three-layer IRN, and may perform an operation using the three-layer IRN on the sparse tensor to be processed.
- the CNN 371 may supply the sparse tensor ⁇ Up(C_X''), F_X' ⁇ obtained as the calculation result to the occupancy state classification unit 372.
- the occupancy state classification unit 372 is a processing unit similar to the occupancy state classification unit 368, and is composed of one sparse 3D convolutional layer. It predicts the occupancy probability value of the sparse tensor to be processed, extracts a predetermined number of coordinates (the top k coordinates) with the highest occupancy probability values, and deletes the remaining coordinates. The occupancy state classification unit 372 also deletes the features in F ⁇ out that correspond to the deleted coordinates.
- the occupancy state classification unit 372 may obtain the sparse tensor ⁇ Up(C_X'', F_X' ⁇ resulting from the calculation of the CNN 371 (CNN_D4) as the sparse tensor to be processed.
- CNN373 (CNN_D5), like CNN365 (CNN_D1), is a sparse 3D-CNN, and is mainly composed of sparse 3D convolutional layers and nonlinear transformation layers.
- CNN373 (CNN_D5) acquires a sparse tensor as the processing target, performs a predetermined operation on the sparse tensor to be processed, and outputs a sparse tensor as the operation result.
- CNN373 (CNN_D5) is composed of two sparse 3D convolutional layers and two ReLU layers, and may perform upscaling by 2 times on the sparse tensor to be processed.
- the CNN 373 (CNN_D5) may supply the sparse tensor of the obtained calculation result to the guide surface feature derivation unit 374.
- the guide surface feature derivation unit 374 may obtain the sparse tensor resulting from the calculation of CNN 373 (CNN_D5) as the sparse tensor to be processed.
- the guide surface feature derivation unit 374 may also obtain the decoded guide surface supplied from the guide surface decoding unit 364.
- the guide surface feature derivation unit 374 may then use the decoded guide surface to perform the above-mentioned processing on the sparse tensor to be processed, to generate a sparse tensor resulting from the calculation.
- the guide surface feature derivation unit 374 may also supply the sparse tensor resulting from the calculation that has been generated to CNN 375 (CNN_D6).
- CNN375 is a sparse 3D-CNN, similar to CNN367 (CNN_D2), and is mainly composed of a sparse 3D convolution layer and a nonlinear transformation layer.
- CNN375 (CNN_D6) acquires a sparse tensor as a processing target, performs a predetermined operation on the sparse tensor to be processed, and outputs a sparse tensor as the operation result.
- CNN375 (CNN_D6) may acquire a sparse tensor as the operation result of the guide surface feature derivation unit 374 as the sparse tensor to be processed.
- CNN375 is composed of a three-layer IRN, and may perform an operation using the three-layer IRN on the sparse tensor to be processed.
- the CNN 375 (CNN_D6) may supply the sparse tensor ⁇ Up(C_X'), F_X ⁇ obtained as the calculation result to the occupancy state classification unit 376.
- the occupancy state classification unit 376 is a processing unit similar to the occupancy state classification unit 368, and is composed of one sparse 3D convolutional layer. It predicts the occupancy probability value of the sparse tensor to be processed, extracts a predetermined number of coordinates (the top k coordinates) with the highest occupancy probability values, and deletes the remaining coordinates. The occupancy state classification unit 376 also deletes the features in F ⁇ out that correspond to the deleted coordinates.
- the occupancy state classification unit 376 may obtain the sparse tensor ⁇ Up(C_X'), F_X ⁇ resulting from the computation of the CNN 375 (CNN_D6) as the sparse tensor to be processed.
- the scale of this sparse tensor X ⁇ C_X, F_X ⁇ is 1x (x1) the scale before encoding.
- the occupancy state classification unit 376 may generate (restore) a point cloud obtained by decoding the bit stream group (score bit stream, guide surface bit stream, coordinate bit stream, and feature bit stream). This point cloud is also referred to as the decoded point group C ⁇ X.
- the occupancy state classification unit 376 may output the decoded point group C_X resulting from the calculation to outside the decoding device 350.
- the coordinate decoding unit 362 decodes the encoded data to generate a first coordinate set, which is a set of coordinates of points forming a point cloud.
- the feature decoding unit 363 decodes the encoded data to generate a first feature set, which is a set of features of the coordinates.
- the guide surface feature derivation unit 366, the guide surface feature derivation unit 370, and the guide surface feature derivation unit 374 use the first coordinate set, the first feature set, and the guide surface, which is a reference surface formed in three-dimensional space, to derive guide surface features, which are features based on the positional relationship between the guide surface and the points.
- the CNNs 365, 367, 369, CNN 371, CNN 373, and CNN 375 perform a predetermined calculation using the first coordinate set and the first feature set reflecting the guide surface features, to derive a second coordinate set and a second feature set. Therefore, CNN365, CNN367, CNN369, CNN371, CNN373, and CNN375 can also be considered calculation units.
- the decoding device 350 can suppress a decrease in encoding efficiency.
- the configurations of the CNN, guide surface feature derivation unit, occupancy state classification unit, etc. may be any configuration and are not limited to the example of FIG. 11.
- the number of downscalings and the conversion rate for each downscaling may be any number.
- FIG. 11 illustrates an example in which the calculation unit is 3D-CNN
- the calculation unit may have any configuration, such as 3D-CNN, a multilayer perceptron, or other neural networks, as in the calculation unit 122 of FIG. 5.
- the guide surface feature amount derivation unit may be provided anywhere in the CNN sequence.
- the guide surface feature amount may be derived for each scale.
- the guide surface feature amount derivation unit 366 may derive the guide surface feature amount at 1/4 scale
- the guide surface feature amount derivation unit 370 may derive the guide surface feature amount at 1/2 scale
- the guide surface feature amount derivation unit 374 may derive the guide surface feature amount at 1/1 scale.
- the guide surface feature amount may also be derived for 1/8 scale. That is, the scale of the second coordinate set and the second feature amount set may be larger than the scale of the first coordinate set and the first feature amount set.
- the calculation unit may derive the second coordinate set and the second feature amount set by recursively repeating a predetermined calculation multiple times.
- the calculation unit may upscale the input coordinate set and feature amount set in all or part of the multiple predetermined calculations.
- the guide surface feature derivation unit may then derive guide surface feature values for some or all of the scales of the coordinate set and feature set.
- the guide surface may also be generated (restored) by decoding.
- the guide surface decoding unit 364 may decode the encoded data of the guide surface and generate the guide surface.
- the decoding device 350 executes the decoding process to decode the bit stream and generate (restore) the geometry as described above.
- An example of the flow of this decoding process will be described with reference to the flowcharts of Figs. 12 and 13.
- the score decoding unit 361 decodes the score bit stream in step S351 of FIG. 12, and generates scores for each scale (N_X, N_X', N_X'').
- step S352 the coordinate decoding unit 362 decodes the coordinate bit stream and generates a coordinate set C_Y.
- step S353 the feature decoding unit 363 decodes the feature bit stream and generates a feature set F_Y.
- step S354 the guide surface decoding unit 364 decodes the guide surface bitstream and generates a decoded guide surface.
- CNN365 sets ⁇ C ⁇ in, F ⁇ in ⁇ ⁇ ⁇ C_Y, F_Y ⁇ .
- CNN365 determines whether or not to input guide surface features to its own 3D-CNN. If it is determined that the guide surface features are to be input, the process proceeds to step S357. In other words, if the CNN to be processed is CNN367 (CNN_D2), CNN371 (CNN_D4), or CNN375 (CNN_D6), the process proceeds to step S357.
- step S357 the guide surface feature amount derivation unit 366, the guide surface feature amount derivation unit 370, or the guide surface feature amount derivation unit 374 executes a guide surface feature amount set derivation process to derive the guide surface feature amount set g(C ⁇ in).
- This guide surface feature amount set derivation process is executed in the same manner as described with reference to the flowchart in FIG. 10.
- step S358 the guide surface feature derivation unit 366, the guide surface feature derivation unit 370, or the guide surface feature derivation unit 374 sets F ⁇ in ⁇ [F ⁇ in, g(C ⁇ in)].
- the guide surface feature derivation unit 366, the guide surface feature derivation unit 370, or the guide surface feature derivation unit 374 sets the concatenation of the feature set to be processed and the guide surface feature set g(C ⁇ in) as the feature set to be processed by the next 3D-CNN.
- step S358 ends, the process proceeds to FIG. 13. Also, if it is determined in step S356 of FIG. 12 that guide surface features are not to be input to its own 3D-CNN, the processing of steps S357 and S358 is omitted, and the process proceeds to FIG. 13. In other words, if the CNN to be processed is CNN365 (CNN_D1), CNN369 (CNN_D3), or CNN373 (CNN_D5), the processing of steps S357 and S358 is omitted, and the process proceeds to FIG. 13.
- CNN365 (CNN_D1), CNN367 (CNN_D2), CNN369 (CNN_D3), CNN371 (CNN_D4), CNN373 (CNN_D5), or CNN375 (CNN_D6) performs 3D-CNN operations on the sparse tensor ⁇ C ⁇ in, F ⁇ in ⁇ to be processed, and derives the sparse tensor ⁇ C ⁇ out, F ⁇ out ⁇ as the operation result.
- step S372 the occupancy state classification unit 368, the occupancy state classification unit 372, or the occupancy state classification unit 376 determines whether or not to classify the occupancy state. If it is determined that the occupancy state is to be classified, the process proceeds to step S373. In other words, if the process of step S371 is executed by CNN 367 (CNN_D2), CNN 371 (CNN_D4), or CNN 375 (CNN_D6), the process proceeds to step S373.
- CNN_D2 CNN 367
- CNN_D4 CNN 371
- CNN_D6 CNN 375
- step S373 the occupancy state classification unit 368, the occupancy state classification unit 372, or the occupancy state classification unit 376 predicts the occupancy probability of each coordinate in the coordinate set C ⁇ out, extracts the top k coordinates with the highest occupancy probability, and deletes the remaining coordinates.
- the scale value corresponding to the sparse tensor to be processed, among N_X, N_X', or N_X'', is applied to this k.
- the occupancy state classification unit 368, the occupancy state classification unit 372, or the occupancy state classification unit 376 also deletes the features corresponding to the deleted coordinates in F ⁇ out.
- step S373 ends, the process proceeds to step S374. Also, if it is determined in step S372 that occupancy state classification is not to be performed, the process of step S373 is omitted and the process proceeds to step S374. In other words, if the process of step S371 is performed by CNN365 (CNN_D1), CNN369 (CNN_D3), or CNN373 (CNN_D5), the process of step S373 is omitted and the process proceeds to step S374.
- CNN365 CNN_D1
- CNN369 CNN369
- CNN373 CNN373
- step S374 CNN375 (CNN_D6) determines whether processing has been performed for all 3D-CNNs. If it is determined that processing has not been performed for all 3D-CNNs (i.e., there are unprocessed 3D-CNNs (at least CNN375 (CNN_D6) is unprocessed)), processing proceeds to step S375.
- CNN365 sets ⁇ C ⁇ in, F ⁇ in ⁇ ⁇ ⁇ C ⁇ out, F ⁇ out ⁇ .
- CNN365 sets the sparse tensor ⁇ C ⁇ out, F ⁇ out ⁇ of the calculation result derived by itself as the sparse tensor ⁇ C ⁇ in, F ⁇ in ⁇ to be processed by the next processing unit (guide surface feature derivation unit or occupancy state classification unit).
- the processing of step S375 returns to step S356 in FIG. 12, and subsequent processing is executed. That is, the processes of steps S356 to S358 in FIG. 12 and steps S371 to S375 in FIG. 13 are executed for each 3D-CNN (which may include a guide surface feature derivation unit and an occupancy state classification unit).
- step S374 of FIG. 13 If it is determined in step S374 of FIG. 13 that processing has been performed for all 3D-CNNs, processing proceeds to step S376.
- step S376 the occupancy state classification unit 376 sets C_X ⁇ C ⁇ out. In other words, the occupancy state classification unit 376 sets the coordinate set C ⁇ out of the calculation result as the decoding result (decoded point group C_X).
- step S377 the occupancy state classification unit 376 outputs the decoded point group C_X to the outside of the decoding device 350.
- step S377 the decoding process ends.
- the decoding device 350 can suppress a decrease in encoding efficiency.
- the guide surface feature amount may be a feature amount based on the nearest point on the guide surface from the point (method 1-1).
- the guide surface feature amount may be a feature amount based on the nearest point on the guide surface with respect to the point.
- the guide surface feature amount may be a vector from a point to the nearest point, as shown in the third row from the top of the table in FIG. 4 (method 1-1-1).
- the nearest point p_i on the guide surface 142 is derived.
- the guide surface feature amount may be a feature amount relating to the distance between a point and a nearest neighboring point (method 1-1-2).
- the guide surface feature may be a signed distance.
- a signed distance is a scalar value obtained by multiplying the distance from a point to a boundary surface by +1 if the point is included within the boundary, and by -1 if not.
- the distance from coordinate c_i to the nearest point p_i on the guide surface is expressed as
- signed distance can only be defined for faces that have an inside and an outside.
- the guide surface is a mesh
- the mesh must be watertight (in simple terms, a mesh without holes).
- the unsigned distance g(c_i)
- may be applied instead of the signed distance.
- the unsigned distance simply indicates the distance only, and can be calculated even for meshes that are not watertight.
- a truncated signed distance which limits the range of absolute values in the signed distance, may be applied as a guide surface feature.
- a certain maximum absolute value ⁇ is determined, and if the absolute value of the signed distance is greater than ⁇ , it is truncated to - ⁇ or ⁇ .
- the guide surface feature amount may be the feature amount of the nearest point (method 1-1-3).
- some feature value h(p_i) at the nearest point p_i on the guide surface may be applied as the guide surface feature value g(c_i).
- g(c_i) h(p_i) is defined.
- This feature value h(p_i) may be anything. For example, it may be the normal vector at the nearest point p_i, or it may be the curvature of the guide surface at the nearest point p_i (a numerical value that indicates the degree of curvature of the surface, and Gaussian curvature or mean curvature can be specifically calculated).
- the guide surface which is a reference surface formed in a three-dimensional space, may be configured with any 3D data.
- the guide surface may be a mesh (method 1-2), as shown in the sixth row from the top of the table in FIG. 4.
- the guide surface may be a mesh.
- a mesh contains less information than a point cloud.
- guide surface features that use the mesh as a guide surface (reference surface)
- the amount of information to be encoded can be reduced compared to encoding the point cloud as is. This makes it possible to prevent a decrease in encoding efficiency.
- the guide surface when the guide surface is a mesh, the guide surface may be output as 3D data of the decoding result. For example, the restoration of the point cloud may be omitted, and the decoded guide surface may be output as the decoding result. In this way, the increase in the load of the decoding process can be suppressed. Also, the decoded guide surface may be fitted with the restored point cloud. That is, when the above-mentioned method 1-2 is applied, the guide surface may be fitted to the point cloud as shown in the seventh row from the top of the table in FIG. 4 (method 1-2-1).
- three-dimensional space 380A and three-dimensional space 380B in FIG. 15 are two-dimensional representations of three-dimensional space.
- grey squares 381 indicate points of the restored point cloud.
- all grey squares indicate points of the point cloud.
- guide surface 382A is restored like three-dimensional space 380A. If the guide surface is a mesh, as in this example, there may be cases where the mesh surfaces and vertices are misaligned with respect to the point cloud. In other words, if such a guide surface is used as the decoded result, the resolution will be lower than in the case of a point cloud, and there is a risk that the quality of the decoded result will be reduced.
- fitting may be performed on the guide surface using points of the point cloud (so that the surfaces and vertices of the guide surface are brought closer to the points of the point cloud).
- the second information processing device may further include a fitting unit that fits the guide surface to the point cloud.
- FIG. 16 is a block diagram showing an example of the main configuration of a decoding device when this method 1-2-1 is applied.
- the decoding device 400 shown in FIG. 16 is a device that decodes a bit stream in which the geometry of a point cloud (3D data) is encoded, similar to the decoding device 350.
- the decoding device 400 decodes the bit streams (guide surface bit stream, coordinate bit stream, feature bit stream, and point number bit stream) generated by encoding the point cloud (geometry) by the encoding device 300.
- the decoding device 400 outputs a decoded guide surface (mesh) as the decoding result.
- FIG. 16 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 16.
- processing units that are not shown as blocks in FIG. 16, and there may be processing and data flows that are not shown as arrows, etc. in FIG. 16.
- the decoding device 400 has a decoding unit 411 and a fitting unit 412.
- the decoding unit 411 has the same configuration as the decoding device 350 (FIG. 11) and performs the same processing. That is, the explanation given above with reference to FIGS. 11 to 13 can be applied to the decoding unit 411.
- the decoding unit 411 decodes the point bit stream, coordinate bit stream, feature bit stream, and guide surface bit stream, and supplies the decoded point group C_X to the fitting unit 412.
- the decoding unit 411 also supplies the generated decoded guide surface (in this case, the guide surface is a mesh, so it is also called a decoded guide mesh) to the fitting unit 412.
- the fitting unit 412 obtains the decoded point group C_X and the decoded guide mesh.
- the fitting unit 412 fits the decoded guide mesh to the decoded point group C_X.
- any method may be used for this fitting.
- an existing method for fitting a mesh to a point cloud may be applied.
- the fitting unit 412 may perform mesh subdivision, which subdivides polygons, on the guide mesh, and mesh smoothing, which is a smoothing process.
- the fitting unit 412 may then perform fitting using Template Deformation for Point Cloud Fitting, as described in Non-Patent Document 3, on the guide mesh whose surface shape has been smoothed by increasing the number of triangles.
- This method is a process for fitting a template mesh to a point cloud.
- the template mesh corresponds to the guide mesh
- the point cloud corresponds to the decoded point cloud.
- a small number of corresponding point pairs (information indicating which vertices of the template mesh correspond to which points in the point cloud) are required.
- the nearest point in the point cloud is searched for from each vertex of the template mesh, and the top few pairs with the shortest distance to the nearest point can be used as the initial corresponding point pairs.
- no rotation is input, and fitting can be performed with a rotation angle of 0.
- all rotation matrices in the algorithm can be set to unit matrices.
- the fitting unit 412 outputs the guide mesh after fitting to the outside of the decoding device 400 as the decoding result.
- the decoding device 400 can output the guide mesh as the decoding result while suppressing any reduction in the quality of the decoding result.
- step S401 the decoding unit 411 executes the decoding process described with reference to Figures 8 and 9, and decodes the bit stream to generate a decoded point group and a guide mesh.
- step S402 the fitting unit 412 fits the guide mesh to the decoded point cloud.
- step S403 the fitting unit 412 outputs the mesh resulting from the fitting to the outside of the decoding device 400 as a decoding result.
- the decoding processing ends.
- the decoding device 400 can output the guide mesh as the decoding result while suppressing any reduction in the quality of the decoding result.
- the guide surface may be a triangle soup, as shown in the eighth row from the top of the table in FIG. 4 (method 1-3).
- the guide surface may be a triangle soup.
- the guide surface is stored as a type of mesh called a triangle soup, and is encoded using Trisoup coding.
- Trisoup coding is one option of G-PCC for encoding dense point clouds.
- the Triangle soup is the low-resolution Octree and the triangular data in each Octree node.
- the low-resolution Octree is encoded using Octree coding, and the intersections (also called vertices) between the triangles in each node and each edge are encoded.
- the decoder decodes the Triangle soup, samples the points from the surface, and outputs them.
- ⁇ Encoding device> An example of the main configuration of the encoding device 300 when applying this method 1-3 is shown in Fig. 19. As shown in Fig. 19, in this case, the encoding device 300 has a Trisoup encoding unit 431 instead of the guide surface generating unit 311 and the guide surface encoding unit 312 in the example of Fig. 7. Also, the encoding device 300 has a Trisoup decoding unit 432 instead of the guide surface decoding unit 313 in the example of Fig. 7.
- the Trisoup encoding unit 431 performs Trisoup encoding on the input point group C_X, estimates the Triangle soup internally, and generates encoded data (guide surface bit stream).
- the Trisoup encoding unit 431 supplies the generated guide surface bit stream to the Trisoup decoding unit 432.
- the Trisoup encoding unit 431 also outputs the guide surface bit stream to the outside of the encoding device 300.
- the Trisoup encoding unit 431 has the functions of both the guide surface generation unit 311 and the guide surface encoding unit 312.
- the Trisoup decoding unit 432 obtains the guide surface bit stream supplied from the Trisoup encoding unit 431.
- the Trisoup decoding unit 432 Trisoup decodes the guide surface bit stream, generates a Triangle soup internally, and generates a point cloud sampled from that surface. However, instead of the point cloud, the Trisoup decoding unit 432 uses the Triangle soup generated internally during the decoding as the decoded guide surface, and supplies this to the guide surface feature derivation unit 315, the guide surface feature derivation unit 317, and the guide surface feature derivation unit 320.
- the encoding device 300 can encode the guide surface as a triangle soup. In other words, in this case too, the encoding device 300 can reduce the amount of information to be encoded, and suppress a decrease in encoding efficiency.
- the Trisoup encoding unit 431 encodes the low-resolution Octree.
- the coordinate encoding unit 324 performs Octree encoding and encodes the Octree corresponding to the coordinate set C_Y. These two Octrees are not necessarily identical, but if the two Octrees match, the encoding device 300 may encode and output one of the Octrees. In this case, the decoding device 350 can reuse one of the Octrees obtained by decoding as the other Octree. In this way, it is possible to suppress an increase in the amount of code and further suppress a decrease in encoding efficiency.
- the encoding device 300 may encode and output only the high-resolution octree.
- the decoding device 350 may downscale the high-resolution octree obtained by decoding to restore the low-resolution octree. In this way, it is possible to suppress an increase in the amount of code and further suppress a decrease in encoding efficiency.
- the Trisoup encoding unit 431 and the sparse tensor construction unit 314 acquire the input point cloud C_X, which is the point cloud to be input to the encoding device 300, in step S431 of FIG. 20.
- step S432 the Trisoup encoding unit 431 performs Trisoup encoding on the input point group C_X to generate a guide plane bit stream.
- the Trisoup encoding unit 431 outputs the guide plane bit stream to the outside of the encoding device 300.
- step S433 the Triangle soup decoding unit 432 decodes the guide surface bit stream and generates a Triangle soup as the decoded guide surface.
- steps S434 to S438 in FIG. 20 and steps S441 to S447 in FIG. 21 are executed in the same manner as the processes of steps S305 to S309 in FIG. 8 and steps S321 to S327 in FIG. 9. Then, when the process of step S447 in FIG. 21 ends, the encoding process ends.
- the encoding device 300 can reduce the amount of information to be encoded and suppress a decrease in encoding efficiency.
- the decoding device 350 may include a Trisoup decoding unit instead of the guide surface decoding unit 364 in Fig. 11.
- This Trisoup decoding unit is a processing unit similar to the Trisoup decoding unit 432 of the encoding device 300, and performs similar processing.
- this Trisoup decoding unit acquires the guide surface bit stream supplied to the decoding device 350, Trisoup-decodes the guide surface bit stream, generates a Triangle soup inside, sets it as a decoded guide surface, and supplies it to the guide surface feature amount derivation unit 366, the guide surface feature amount derivation unit 370, and the guide surface feature amount derivation unit 374.
- the other configurations are the same as those in Fig. 11.
- step S364 the Triangle soup decoding unit performs Triangle decoding on the guide surface bit stream, and the obtained Triangle soup is used as the decoded guide surface.
- the guide surface may be an implicit function expressing a three-dimensional shape, as shown in the ninth row from the top of the table in FIG. 4 (method 1-4).
- the guide surface may be an implicit function.
- the signed distance from a point (x, y, z) to a guide surface may be represented as f(x, y, z).
- the unsigned distance or the truncated signed distance may be represented as f(x, y, z).
- the occupancy probability value at a point (x, y, z) may also be represented as f(x, y, z).
- an appropriately scaled value of the occupancy probability value may be represented as f(x, y, z).
- the guide surface feature amount may be the output of the implicit function at that coordinate or the gradient vector of that output (method 1-4-1).
- the value of the gradient vector ⁇ f at that coordinate value of the implicit function f or the Laplacian value ⁇ f may also be applied. Roughly speaking, when the implicit function f is a signed distance function, the gradient vector ⁇ f on the guide surface coincides with the normal vector.
- the guide surface generating unit 311 estimates an implicit function as a guide surface from the input point group C_X. For example, the guide surface generating unit 311 generates a mesh from the input point group C_X, quantizes a three-dimensional space with an appropriate resolution (i.e., initializes a three-dimensional array), calculates the signed distance (or unsigned distance) from the center of each cell to the estimated mesh, and generates a three-dimensional array representing the signed distance. This three-dimensional array is supplied to the guide surface encoding unit 312 as a guide surface of the implicit function. This guide surface of the implicit function is also called a guide implicit function.
- the guide surface encoding unit 312 encodes the guide implicit function to generate a guide surface bit stream. Any encoding method may be used.
- the guide surface encoding unit 312 may apply an existing implicit function encoding method.
- deep implicit volume compression as described in Non-Patent Document 4 may be applied. This method is capable of encoding a truncated signed distance.
- the guide surface decoding unit 313 decodes the guide surface bit stream and generates (restores) a guide implicit function. Therefore, the obtained decoded guide surface is also called a decoded guide implicit function. Any decoding method may be applied as long as it corresponds to the encoding method of the guide surface encoding unit 312.
- the decoded guide implicit function is supplied to the guide surface feature amount derivation unit 315, the guide surface feature amount derivation unit 317, and the guide surface feature amount derivation unit 320.
- the guide surface feature amount derivation unit 315, the guide surface feature amount derivation unit 317, and the guide surface feature amount derivation unit 320 use the decoded guide implicit function to derive the guide surface feature amount.
- the guide surface feature amount derivation unit 315, the guide surface feature amount derivation unit 317, and the guide surface feature amount derivation unit 320 may use the output of the implicit function at the coordinates of the point or the gradient vector of that output as this guide surface feature amount.
- step S302 a guide implicit function is generated from the input point group.
- the guide implicit function is encoded to generate a guide plane bit stream.
- step S304 the guide plane bit stream is decoded to generate a decoded guide implicit function.
- step S308 the output of the implicit function at the coordinates of the point and the gradient vector of that output are derived as guide surface features.
- ⁇ Decryption device> The configuration of the decoding device 350 when applying this method 1-4-1 is the same as that described with reference to FIG. 11. However, the guide surface decoding unit 364 decodes the acquired guide surface bit stream and generates (restores) a guide implicit function. Any decoding method may be applied as long as it corresponds to the encoding method of the guide surface encoding unit 312. The guide surface decoding unit 364 supplies the generated decoded guide implicit function to the guide surface feature amount derivation unit 366, the guide surface feature amount derivation unit 370, and the guide surface feature amount derivation unit 374.
- the guide surface feature amount derivation unit 366, the guide surface feature amount derivation unit 370, and the guide surface feature amount derivation unit 374 use the decoded guide implicit function to derive the guide surface feature amount.
- the guide surface feature amount derivation unit 366, the guide surface feature amount derivation unit 370, and the guide surface feature amount derivation unit 374 may use the output of the implicit function at the coordinates of the point or the gradient vector of that output as this guide surface feature amount.
- step S354 the guide surface bit stream is decoded to generate a decoded guide implicit function.
- step S357 the output of the implicit function at the coordinates of the point and the gradient vector of the output are derived as guide surface feature amounts.
- Method 1-5 when the above-mentioned method 1 is applied, the parameter set to be applied may be selected as shown in the eleventh row from the top of the table in FIG. 4 (method 1-5).
- the first information processing device may further include a parameter set selection unit that selects a parameter set to be applied to the encoding of the point cloud.
- the first information processing device may further include a guide surface generation unit that generates a guide surface using the point cloud, and a guide surface encoding unit that applies the selected parameter set to encode the guide surface and generate encoded data for the guide surface.
- coding parameter sets that affect the coding efficiency and decoding error of the guide surface.
- examples of coding parameter sets include the target number of triangles in decimation (the smaller the number, the better the coding efficiency but the larger the error) and the quantization parameter (QP (Quantization Parameter)) in the Draco encoder (the smaller the number, the better the coding efficiency but the larger the error).
- QP Quantization Parameter
- the encoder may select and apply the parameter set that provides the highest coding efficiency for the point cloud from a candidate set of parameter sets (also called guide surface coding parameter sets) that are applied to coding of such guide surfaces.
- Fig. 22 is a block diagram showing a main configuration example of an encoding device when methods 1-5 are applied.
- the encoding device 500 shown in Fig. 22 is a device that encodes the geometry of a point cloud (3D data) in the same manner as the encoding device 300.
- the encoding device 500 encodes the geometry by applying the above-mentioned methods 1-5.
- FIG. 22 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 22.
- processing units that are not shown as blocks in FIG. 22, and there may be processing and data flows that are not shown as arrows, etc. in FIG. 22.
- the encoding device 500 has a parameter set supply unit 511, an encoding unit 512, a decoding unit 513, and a parameter set selection unit 514.
- the parameter set supply unit 511 selects one parameter set from the candidate set of guide surface encoding parameter sets as the processing target, and supplies it to the encoding unit 512 and the parameter set selection unit 514.
- the encoding unit 512 acquires the input point group C_X input to the encoding device 500.
- the encoding unit 512 also acquires the guide surface encoding parameter set supplied from the parameter set supply unit 511.
- the encoding unit 512 also applies the guide surface encoding parameter set to encode the input point group C_X and generate a bit stream.
- the encoding unit 512 may have a configuration similar to that of the encoding device 300 (FIG. 7), for example, and perform similar processing. That is, the encoding unit 512 encodes the input point group C_X and generates a point number bit stream, a coordinate bit stream, a feature amount bit stream, and a guide surface bit stream.
- the encoding unit 512 applies the guide surface encoding parameter set supplied from the parameter set supply unit 511 in the guide surface encoding unit 312. That is, the guide surface encoding unit 312 of the encoding unit 512 encodes the guide surface using the guide surface encoding parameter set supplied from the parameter set supply unit 511, and generates a guide surface bit stream.
- the encoding unit 512 supplies the bit streams generated in this manner (score bit stream, coordinate bit stream, feature bit stream, and guide surface bit stream) to the decoding unit 513 and the parameter set selection unit 514.
- the decoding unit 513 obtains the bit stream supplied from the encoding unit 512.
- the decoding unit 513 decodes the bit stream and generates (restores) the decoded point group C_X.
- the decoding unit 513 may have a configuration similar to that of the decoding device 350 (FIG. 11), for example, and may perform similar processing. That is, the decoding unit 513 decodes the point number bit stream, coordinate bit stream, feature amount bit stream, and guide surface bit stream, and generates the decoded point group C_X.
- the decoding unit 513 supplies the generated decoded point group C_X to the parameter set selection unit 514.
- the parameter set selection unit 514 acquires a guide surface encoding parameter set supplied from the parameter set supply unit 511.
- the parameter set selection unit 514 acquires an input point group C_X input to the encoding device 500.
- the parameter set selection unit 514 acquires bit streams (e.g., a point number bit stream, a coordinate bit stream, a feature amount bit stream, and a guide surface bit stream) supplied from the encoding unit 512.
- the parameter set selection unit 514 acquires the decoded point group C_X supplied from the decoding unit 513 .
- the parameter set selection unit 514 selects a guide plane coding parameter set that maximizes the coding efficiency of the input point group C_X based on these.
- the parameter set selection unit 514 selects a bit stream corresponding to the selected guide plane coding parameter set and outputs it to the outside of the coding device 500.
- R indicates the total size of the bit stream.
- D indicates the error between the decoded geometry and the input geometry.
- the coefficient ⁇ is a parameter that determines whether the bit size or the decoding error is to be emphasized.
- the D1 metric which is an index that measures the distance between point clouds, or the D2 metric, which also takes into account the normal direction, may be applied.
- the coding device 500 can suppress a decrease in coding efficiency.
- step S501 the parameter set supply unit 511 sets the coefficient ⁇ of the RD cost function and a candidate set of guide surface encoding parameter sets.
- step S502 the parameter set supply unit 511 selects the i-th guide surface encoding parameter set from the set candidate set. In other words, the parameter set supply unit 511 selects one unprocessed guide surface encoding parameter set.
- step S503 the encoding unit 512 executes the encoding process described with reference to the flowcharts of, for example, FIG. 8 and FIG. 9.
- the encoding unit 512 applies the guide surface encoding parameters selected in step S502 to encode the guide surface and generate a guide surface bit stream.
- the encoding unit 512 then decodes the guide surface bit stream to generate a decoded guide surface, and encodes the point group to generate a point number bit stream, a coordinate bit stream, and a feature bit stream.
- the guide surface encoding parameter set to be applied changes, the size of the guide surface bit stream and the decoded guide surface change. In other words, the overall bit stream size and the decoded point group C_X also change. Therefore, the encoding unit 512 derives not only the guide surface bit stream, but all bit streams.
- step S504 the parameter set selection unit 514 calculates the total size R_i of all bit streams (score bit stream, coordinate bit stream, feature bit stream, and guide surface bit stream) generated in step S503.
- step S505 the decoding unit 513 executes the decoding process described with reference to the flowcharts in Figures 12 and 13, decodes the bit streams (point number bit stream, coordinate bit stream, feature bit stream, and guide surface bit stream) generated in step S503, and generates a decoded point group C_X.
- step S506 the parameter set selection unit 514 derives the error D_i between the decoded geometry (the decoded point group C_X generated in step S505) and the input geometry (the input point group C_X).
- step S508 the parameter set selection unit 514 determines whether all parameter sets have been processed. If it is determined that an unprocessed parameter set exists, the process returns to step S502, and the subsequent processes are executed. In other words, the processes of steps S502 to S508 are executed for each parameter set, and the value C_i of the RD cost function is derived.
- step S508 If it is determined in step S508 that processing has been performed for all parameter sets, processing proceeds to step S509.
- step S509 the parameter set selection unit 514 compares the RD cost function values C_i corresponding to each parameter set derived as described above, and selects the parameter set for which the RD cost function value C_i is the smallest.
- step S510 the parameter set selection unit 514 outputs a bit stream corresponding to the selected parameter set to the outside of the encoding device 500.
- step S510 When the processing of step S510 is completed, the decoding process ends.
- the encoding device 500 can select a guide surface encoding parameter set that optimizes the RD cost and apply it to the encoding of the input point group C_X (for encoding the guide surface). Therefore, the encoding device 500 can suppress a decrease in encoding efficiency.
- Method 1-6 attributes may be transmitted (method 1-6) as shown in the bottom row of the table in Fig. 4. That is, although the transmission (encoding/decoding) of geometry has been described above, not only geometry but also attributes may be transmitted (encoding/decoding).
- the guide surface feature derivation unit may derive guide surface features using a coordinate set, a feature set including attribute information, and a guide surface including texture. Then, the calculation unit may perform calculations using the guide surface features to derive a new coordinate set and a feature set including attributes. Then, the coordinate encoding unit may encode the coordinate set to generate a coordinate bit stream. Also, the feature encoding unit may encode the feature set including attributes to generate a feature bit stream. Also, the guide surface encoding unit may encode the guide surface including texture to generate a guide surface bit stream. Also, the score encoding unit may encode information indicating the score of each scale to generate a score bit stream.
- the coordinate decoding unit may decode the coordinate bit stream to generate a coordinate set.
- the feature decoding unit may decode the feature bit stream to generate a feature set including attribute information.
- the guide surface decoding unit may decode the guide surface bit stream to generate a decoded guide surface including texture.
- the guide surface feature derivation unit may derive guide surface features using the coordinate set, the feature set including attributes, and the decoded guide surface including texture.
- the calculation unit may then perform calculations using the derived guide surface features to derive a new coordinate set and feature set including attributes.
- attributes are attached to each point in the input point cloud.
- the attributes can be any kind of information. For example, they can include color information or reflected brightness.
- Such point cloud attributes can be transmitted (encoded and decoded) in the same framework as geometry.
- Fig. 24 is a block diagram showing an example of the main configuration of an encoding device when methods 1-6 are applied.
- the encoding device 600 shown in Fig. 24 is a device that encodes a point cloud (3D data) in the same manner as the encoding device 300.
- the encoding device 600 performs encoding by applying the above-mentioned methods 1-6. That is, the encoding device 600 encodes attributes together with geometry.
- FIG. 24 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 24.
- processing units that are not shown as blocks in FIG. 24, and there may be processing and data flows that are not shown as arrows, etc. in FIG. 24.
- the encoding device 600 has a guide surface generation unit 611, a guide surface encoding unit 612, a guide surface decoding unit 613, a sparse tensor construction unit 614, a guide surface feature derivation unit 615, a CNN 616 (CNN_E1), a guide surface feature derivation unit 617, a CNN 618 (CNN_E2), a CNN 619 (CNN_E3), a guide surface feature derivation unit 620, a CNN 621 (CNN_E4), a CNN 622 (CNN_E5), a CNN 623 (CNN_E6), a coordinate encoding unit 624, a feature encoding unit 625, and a score encoding unit 626.
- the input point group input to the encoding device 600 is composed of geometry and attributes.
- each point has coordinate values (x, y, z) and attribute values (e.g., RGB values in the case of color information).
- the guide surface generation unit 611 is a processing unit similar to the guide surface generation unit 311 ( Figure 7) and performs similar processing. However, the guide surface generation unit 611 obtains an input point group composed of geometry and attributes, and generates a guide surface including the attributes. For example, if the guide surface is composed of a mesh, the attributes are formed as a texture. Therefore, in this case, the guide surface generation unit 611 generates a guide surface including a texture.
- texture coordinate values values that indicate where that vertex is located in the texture image
- UV coordinates also called UV coordinates
- the guide surface generator 611 In addition to generating a guide surface (mesh) from the input point cloud, the guide surface generator 611 must also generate a texture from the input attributes. For each point in the input point cloud, the guide surface generator 611 searches for the nearest point on the guide mesh and copies the attributes of that point to the texel (one pixel in texture data is called a texel) that corresponds to that nearest point. However, after the above processing, there is a possibility that empty texels will exist. In that case, the guide surface generator 611 may use neighboring values to complement the empty texel value.
- the guide surface encoding unit 612 is a processing unit similar to the guide surface encoding unit 312 (FIG. 7) and performs similar processing. However, the guide surface encoding unit 612 encodes the guide surface including the texture supplied from the guide surface generation unit 611 to generate a guide surface bit stream. That is, the guide surface encoding unit 612 needs to encode the texture data in addition to encoding the mesh data. That is, the guide surface encoding unit 612 not only encodes the geometry but also encodes the texture coordinates and texture image of each vertex. Any encoding method may be applied to encode the texture coordinates of each vertex. For example, Draco encoding may be applied (the Draco encoder can encode the texture coordinates in addition to the mesh).
- the guide surface bit stream in this case includes a bit stream that encodes the texture in addition to the bit stream that encodes the mesh.
- the guide surface decoding unit 613 is a processing unit similar to the guide surface decoding unit 313 (FIG. 7) and performs similar processing. However, the guide surface decoding unit 613 decodes the guide surface bit stream and generates a decoded guide surface including texture. In other words, the guide surface decoding unit 613 decodes the bit stream to not only generate geometry, but also generate texture coordinates and texture images for each vertex. Any decoding method may be applied to the decoding when generating texture coordinates for each vertex. For example, Draco decoding may be applied (a Draco decoder can generate texture coordinates in addition to meshes). In addition, an existing image decoding method (for example, JPEG, PNG, etc.) may be applied to the decoding when generating texture images.
- Draco decoding may be applied (a Draco decoder can generate texture coordinates in addition to meshes).
- an existing image decoding method for example, JPEG, PNG, etc.
- the feature set F_X is a vector that lists the attributes of each coordinate.
- each feature f_i ⁇ F_X is the attribute value of each point (e.g., RGB value).
- the input dimension of the CNN 616 (CNN_E1) must also be increased accordingly.
- a_i e.g., RGB values for color information
- CNN616 (CNN_E1) is a processing unit similar to CNN316 (CNN_E1) ( Figure 7) and performs similar processing.
- F_X is changed to a vector that lists the attributes of each coordinate.
- each feature f_i ⁇ F_X is the attribute value of each point (for example, RGB value).
- the input dimension of CNN616 (CNN_E1) must also be increased accordingly.
- the guide surface feature amount derivation unit 617 is a processing unit similar to the guide surface feature amount derivation unit 317 ( Figure 7) and performs similar processing. However, like the guide surface feature amount derivation unit 615, the guide surface feature amount derivation unit 617 also includes features extracted from the texture in the guide surface feature amount in order to use attribute information on the texture for encoding and decoding.
- CNN618 (CNN_E2) is a processing unit similar to CNN318 (CNN_E2) ( Figure 7) and performs similar processing. However, in this case, it is necessary to increase the input dimensions of CNN618 (CNN_E2), as in the case of CNN616 (CNN_E1).
- CNN619 is a processing unit similar to CNN319 (CNN_E3) ( Figure 7) and performs similar processing.
- the guide surface feature amount derivation unit 620 is a processing unit similar to the guide surface feature amount derivation unit 320 ( Figure 7) and performs similar processing. However, like the guide surface feature amount derivation unit 615, the guide surface feature amount derivation unit 620 also includes features extracted from the texture in the guide surface feature amount in order to use attribute information on the texture for encoding and decoding.
- CNN621 (CNN_E4) is a processing unit similar to CNN321 (CNN_E4) ( Figure 7) and performs similar processing. However, in this case, it is necessary to increase the input dimensions of CNN621 (CNN_E4), as in the case of CNN616 (CNN_E1).
- CNN622 (CNN_E5) is a processing unit similar to CNN322 (CNN_E5) ( Figure 7) and performs similar processing.
- CNN623 (CNN_E6) is a processing unit similar to CNN323 (CNN_E6) ( Figure 7) and performs similar processing.
- the coordinate encoding unit 624 is a processing unit similar to the coordinate encoding unit 324 ( Figure 7) and performs similar processing.
- the feature encoding unit 625 is a processing unit similar to the feature encoding unit 325 ( Figure 7) and performs similar processing. In this case, however, the feature set encoded by the feature encoding unit 625 includes not only geometry information but also attribute information.
- the score encoding unit 626 is a processing unit similar to the score encoding unit 326 ( Figure 7) and performs similar processing.
- the encoding device 600 can encode not only geometry but also attributes.
- the guide surface generation unit 611 and the sparse tensor construction unit 614 acquire the input point group C_X, which is the point cloud input to the encoding device 600, and its attributes in step S601 of FIG. 25.
- step S602 the guide surface generation unit 611 generates a guide surface and texture data from the input point group C_X and attributes.
- step S603 the guide surface encoding unit 612 encodes the generated guide surface and texture data to generate a guide surface bit stream.
- the guide surface encoding unit 612 outputs the guide surface bit stream to the outside of the encoding device 600.
- step S604 the guide surface decoding unit 613 decodes the guide surface bitstream and generates (restores) a decoded guide surface and decoded texture data.
- step S606 the guide surface feature derivation unit 615 sets ⁇ C ⁇ in, F ⁇ in ⁇ ⁇ (C_X, F_X).
- step S607 the guide surface feature derivation unit 615, the guide surface feature derivation unit 617, or the guide surface feature derivation unit 620 determines whether or not to input the guide surface feature to the next 3D-CNN. If it is determined that the guide surface feature is to be input to the next 3D-CNN, the process proceeds to step S608.
- step S608 the guide surface feature derivation unit 615, the guide surface feature derivation unit 617, or the guide surface feature derivation unit 620 executes a guide surface feature set derivation process, and derives a guide surface feature set g(C ⁇ in) using the sparse tensor to be processed, the decoded guide surface, and the decoded texture data.
- step S609 the guide surface feature derivation unit 615, the guide surface feature derivation unit 617, or the guide surface feature derivation unit 620 sets F ⁇ in ⁇ [F ⁇ in, g(C ⁇ in)].
- the guide surface feature derivation unit 615, the guide surface feature derivation unit 617, or the guide surface feature derivation unit 620 sets the concatenation of the feature set to be processed and the guide surface feature set g(C ⁇ in) as the feature set to be processed by the next 3D-CNN.
- step S609 When the processing of step S609 is completed, the processing proceeds to FIG. 26. Also, in step S607 of FIG. 25, if it is determined that the guide surface feature amount is not to be input to the next 3D-CNN, the processing proceeds to FIG. 26. In other words, if there is no guide surface feature amount derivation unit immediately before the 3D-CNN, the processing of steps S608 and S609 is omitted. For example, when the encoding device 600 has the configuration example shown in FIG.
- CNN616 (CNN_E1), CNN618 (CNN_E2), CNN619 (CNN_E3), CNN621 (CNN_E4), CNN622 (CNN_E5), or CNN623 (CNN_E6) performs 3D-CNN operations on the sparse tensor ⁇ C ⁇ in, F ⁇ in ⁇ to be processed, and derives the sparse tensor ⁇ C ⁇ out, F ⁇ out ⁇ as the operation result.
- CNN623 determines whether processing has been performed for all 3D-CNNs. If it is determined that processing has not been performed for all 3D-CNNs (i.e., there are unprocessed 3D-CNNs (at least CNN623 (CNN_E6) is unprocessed)), processing proceeds to step S623.
- CNN616 (CNN_E1), CNN618 (CNN_E2), CNN619 (CNN_E3), CNN621 (CNN_E4), or CNN622 (CNN_E5) sets ⁇ C ⁇ in, F ⁇ in ⁇ ⁇ ⁇ C ⁇ out, F ⁇ out ⁇ .
- CNN616 (CNN_E1), CNN618 (CNN_E2), CNN619 (CNN_E3), CNN621 (CNN_E4), or CNN622 (CNN_E5) sets the sparse tensor ⁇ C ⁇ out, F ⁇ out ⁇ resulting from the calculation it derived as the sparse tensor ⁇ C ⁇ in, F ⁇ in ⁇ to be processed by the next processing unit (guide surface feature derivation unit or 3D-CNN).
- step S623 When the processing of step S623 ends, the process returns to step S607 in FIG. 25, and the subsequent processing is executed.
- the processing of each of steps S607 to S609 in FIG. 25 and the processing of each of steps S621 to S623 in FIG. 26 are executed for each 3D-CNN (including the guide surface feature derivation unit if one exists immediately before the 3D-CNN).
- step S622 of FIG. 26 If it is determined in step S622 of FIG. 26 that processing has been performed for all 3D-CNNs (i.e., processing has been performed for CNN623 (CNN_E6)), processing proceeds to step S624.
- step S624 CNN 623 (CNN_E6) sets ⁇ C_Y, F_Y ⁇ ⁇ ⁇ C ⁇ out, F ⁇ out ⁇ .
- CNN 623 sets the sparse tensor ⁇ C ⁇ out, F ⁇ out ⁇ , which is the result of the calculation it derived, as the output sparse tensor ⁇ C_Y, F_Y ⁇ .
- step S625 the coordinate encoding unit 624 encodes the coordinate set C_Y of the output sparse tensor ⁇ C_Y, F_Y ⁇ to generate a coordinate bitstream. It also outputs the coordinate bitstream to the outside of the encoding device 600.
- step S626 the feature encoding unit 625 encodes the feature set F_Y of the output sparse tensor ⁇ C_Y, F_Y ⁇ to generate a feature bitstream.
- the feature bitstream is then output to the outside of the encoding device 600.
- step S627 the scores for each scale are encoded to generate a score bit stream.
- the score bit stream is then output to the outside of the encoding device 600.
- step S627 When the processing of step S627 is completed, the encoding process ends.
- step S631 the guide surface feature amount derivation unit 615, the guide surface feature amount derivation unit 617, or the guide surface feature amount derivation unit 620 extracts coordinates c_i ⁇ C ⁇ in.
- the guide surface feature amount derivation unit 615, the guide surface feature amount derivation unit 617, or the guide surface feature amount derivation unit 620 selects one coordinate c_i from the coordinate set C ⁇ in to be processed, and makes it the processing target.
- step S632 the guide surface feature amount derivation unit 615, the guide surface feature amount derivation unit 617, or the guide surface feature amount derivation unit 620 searches for the nearest point p_i on the decoded guide surface from the selected coordinate c_i.
- the guide surface feature amount derivation unit 615, the guide surface feature amount derivation unit 617, or the guide surface feature amount derivation unit 620 derives the guide surface feature amount g(c_i) based on the positional relationship between the guide surface and the point (in this example, p_i - c_i) and the attribute value (in this example, a_i).
- step S634 the guide surface feature derivation unit 615, the guide surface feature derivation unit 617, or the guide surface feature derivation unit 620 determines whether or not processing has been performed for all coordinates c_i ⁇ C ⁇ in. If it is determined that an unprocessed coordinate c_i exists, the process returns to step S631, and the subsequent processes are executed. In other words, the processes of steps S631 to S634 are executed for each coordinate value c_i in the coordinate set C ⁇ in to be processed.
- step S634 If it is determined in step S634 that processing has been performed for all coordinate values c_i, the guide surface feature set derivation process ends and processing returns to FIG. 25.
- the encoding device 600 can encode not only geometry but also attributes.
- FIG. 28 is a block diagram showing a main configuration example of a decoding device when applying methods 1-6.
- the decoding device 650 shown in FIG. 28 is a device that decodes a bit stream in which the geometry of a point cloud (3D data) is encoded, similar to the case of the decoding device 350.
- the decoding device 650 decodes bit streams (guide surface bit stream, coordinate bit stream, feature bit stream, and point number bit stream) generated by encoding the point cloud (geometry and attributes) by the encoding device 600, and generates (restores) the point cloud (geometry and attributes).
- FIG. 28 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 28.
- the decoding device 650 there may be processing units that are not shown as blocks in FIG. 28, and there may be processing and data flows that are not shown as arrows, etc. in FIG. 28.
- the decoding device 650 has a score decoding unit 661, a coordinate decoding unit 662, a feature decoding unit 663, a guide surface decoding unit 664, a CNN 665 (CNN_D1), a guide surface feature derivation unit 666, a CNN 667 (CNN_D2), an occupancy state classification unit 668, a CNN 669 (CNN_D3), a guide surface feature derivation unit 670, a CNN 671 (CNN_D4), an occupancy state classification unit 672, a CNN 673 (CNN_D5), a guide surface feature derivation unit 674, a CNN 675 (CNN_D6), and an occupancy state classification unit 676.
- the score decoding unit 661 is a processing unit similar to the score decoding unit 361 (FIG. 11) and performs similar processing. For example, the score decoding unit 661 may obtain the score bit stream input to the decoding device 650, decode it, and generate (restore) information indicating the scores of the coordinate sets at each scale (N_X, N_X', N_X''). The score decoding unit 661 may supply N_X to the occupancy state classification unit 676, supply N_X' to the occupancy state classification unit 672, and supply N_X'' to the occupancy state classification unit 668.
- the coordinate decoding unit 662 is a processing unit similar to the coordinate decoding unit 362 (FIG. 11) and performs similar processing. For example, the coordinate decoding unit 662 may obtain the coordinate bit stream input to the decoding device 650, decode it, and generate (restore) the coordinate set C_Y. The coordinate decoding unit 662 may supply the generated coordinate set C_Y to the CNN 665 (CNN_D1).
- the feature decoding unit 663 is a processing unit similar to the feature decoding unit 363 (FIG. 11) and performs similar processing. For example, the feature decoding unit 663 may obtain the feature bit stream input to the decoding device 650, perform entropy decoding, and generate (restore) a feature set F_Y. The feature decoding unit 663 may supply the generated feature set F_Y to the CNN 665 (CNN_D1).
- the guide surface decoding unit 664 is a processing unit similar to the guide surface decoding unit 613 (FIG. 24), and executes processing related to the decoding of the guide surface bit stream. For example, the guide surface decoding unit 664 acquires the guide surface bit stream input to the decoding device 650, decodes it, and generates a decoded guide surface including texture. In other words, the guide surface decoding unit 664 decodes the bit stream to generate not only geometry, but also texture coordinates and texture images of each vertex. This decoding method is arbitrary, similar to the case of the guide surface decoding unit 613 (FIG. 24). The guide surface decoding unit 664 may supply the generated decoded guide surface (including texture) to the guide surface feature amount derivation unit 666, the guide surface feature amount derivation unit 670, and the guide surface feature amount derivation unit 674.
- CNN665 (CNN_D1) is a processing unit similar to CNN365 (CNN_D1) ( Figure 11) and performs similar processing.
- the feature set in the sparse tensor processed by CNN665 includes not only geometry information but also attribute information.
- CNN667 (CNN_D2) is a processing unit similar to CNN367 (CNN_D2) ( Figure 11) and performs similar processing.
- CNN367 CNN367
- Figure 11 the number of dimensions of the guide surface feature increases by the number of dimensions of the attribute value, so it is necessary to increase the input dimensions of CNN667 (CNN_D2).
- CNN669 is a processing unit similar to CNN369 (CNN_D3) ( Figure 11) and performs similar processing.
- the guide surface feature amount derivation unit 670 is a processing unit similar to the guide surface feature amount derivation unit 370 (FIG. 11) and performs similar processing. However, like the guide surface feature amount derivation unit 666, the guide surface feature amount derivation unit 670 also includes features extracted from the texture in the guide surface feature amount in order to use attribute information on the texture for encoding and decoding.
- CNN671 (CNN_D4) is a processing unit similar to CNN371 (CNN_D4) ( Figure 11) and performs similar processing.
- the number of dimensions of the guide surface feature increases by the number of dimensions of the attribute value, so it is necessary to increase the input dimensions of CNN671 (CNN_D4).
- CNN673 (CNN_D5) is a processing unit similar to CNN373 (CNN_D5) ( Figure 11) and performs similar processing.
- the guide surface feature amount derivation unit 674 is a processing unit similar to the guide surface feature amount derivation unit 374 ( Figure 11) and performs similar processing. However, like the guide surface feature amount derivation unit 666, the guide surface feature amount derivation unit 674 also includes features extracted from the texture in the guide surface feature amount in order to use attribute information on the texture for encoding and decoding.
- CNN675 (CNN_D6) is a processing unit similar to CNN375 (CNN_D6) ( Figure 11) and performs similar processing.
- the number of dimensions of the guide surface features increases by the number of dimensions of the attribute values, so it is necessary to increase the input dimensions of CNN675 (CNN_D6).
- CNN675 (CNN_D6) needs to increase the output dimensions by the number of attribute values.
- each feature vector f_i ⁇ F_X in the feature vector set F_X output by the CNN 675 (CNN_D6) is expanded by three dimensions to become an RGB value.
- the occupancy state classification unit 676 sets the attribute value as the attribute of each point in the decoded point group C_X and outputs it.
- the decoding device 650 can decode not only geometry but also attributes.
- the score decoding unit 661 decodes the score bit stream in step S651 of FIG. 29, and generates scores for each scale (N_X, N_X', N_X'').
- step S652 the coordinate decoding unit 662 decodes the coordinate bit stream and generates a coordinate set C_Y.
- step S653 the feature decoding unit 663 decodes the feature bit stream and generates a feature set F_Y.
- step S654 the guide surface decoding unit 664 decodes the guide surface bitstream and generates a decoded guide surface and decoded texture data.
- CNN665 sets ⁇ C ⁇ in, F ⁇ in ⁇ ⁇ ⁇ C_Y, F_Y ⁇ .
- CNN665 determines whether or not to input guide surface features to its own 3D-CNN. If it is determined that the guide surface features are to be input, the process proceeds to step S657. In other words, if the CNN to be processed is CNN667 (CNN_D2), CNN671 (CNN_D4), or CNN375 (CNN_D6), the process proceeds to step S657.
- step S657 the guide surface feature amount derivation unit 666, the guide surface feature amount derivation unit 670, or the guide surface feature amount derivation unit 674 executes a guide surface feature amount set derivation process to derive a guide surface feature amount set g(C ⁇ in).
- This guide surface feature amount set derivation process is executed in the same manner as described with reference to the flowchart in FIG. 27.
- the guide surface feature amount derivation unit 666, the guide surface feature amount derivation unit 670, or the guide surface feature amount derivation unit 674 derives the guide surface feature amount set g(C ⁇ in) using the sparse tensor to be processed, the decoded guide surface, and the decoded texture data.
- step S658 the guide surface feature derivation unit 666, the guide surface feature derivation unit 670, or the guide surface feature derivation unit 674 sets F ⁇ in ⁇ [F ⁇ in, g(C ⁇ in)].
- the guide surface feature derivation unit 766, the guide surface feature derivation unit 670, or the guide surface feature derivation unit 674 sets the concatenation of the feature set to be processed and the guide surface feature set g(C ⁇ in) as the feature set to be processed by the next 3D-CNN.
- step S658 ends, the process proceeds to FIG. 30. Also, if it is determined in step S656 of FIG. 29 that guide surface features are not to be input to its own 3D-CNN, the processing of steps S657 and S658 is omitted, and the process proceeds to FIG. 30. In other words, if the CNN to be processed is CNN665 (CNN_D1), CNN669 (CNN_D3), or CNN673 (CNN_D5), the processing of steps S657 and S658 is omitted, and the process proceeds to FIG. 30.
- CNN665 (CNN_D1), CNN667 (CNN_D2), CNN669 (CNN_D3), CNN671 (CNN_D4), CNN673 (CNN_D5), or CNN675 (CNN_D6) performs 3D-CNN operations on the sparse tensor ⁇ C ⁇ in, F ⁇ in ⁇ to be processed, and derives the sparse tensor ⁇ C ⁇ out, F ⁇ out ⁇ as the operation result.
- step S672 the occupancy state classification unit 668, the occupancy state classification unit 672, or the occupancy state classification unit 676 determines whether or not to classify the occupancy state. If it is determined that the occupancy state is to be classified, the process proceeds to step S673. In other words, if the process of step S671 is executed by CNN 667 (CNN_D2), CNN 671 (CNN_D4), or CNN 675 (CNN_D6), the process proceeds to step S673.
- step S673 the occupancy state classification unit 668, occupancy state classification unit 672, or occupancy state classification unit 676 predicts the occupancy probability of each coordinate in the coordinate set C ⁇ out, extracts the top k coordinates with the highest occupancy probability, and deletes the remaining coordinates.
- the scale value corresponding to the sparse tensor to be processed, among N_X, N_X', or N_X'', is applied to this k.
- the occupancy state classification unit 668, occupancy state classification unit 672, or occupancy state classification unit 676 also deletes the features corresponding to the deleted coordinates in F ⁇ out.
- step S673 ends, the process proceeds to step S674. Also, if it is determined in step S672 that occupancy state classification is not to be performed, the process of step S673 is omitted and the process proceeds to step S674. In other words, if the process of step S671 is performed by CNN665 (CNN_D1), CNN669 (CNN_D3), or CNN673 (CNN_D5), the process of step S673 is omitted and the process proceeds to step S674.
- CNN665 CNN_D1
- CNN669 CNN669
- CNN_D5 CNN673
- step S674 CNN675 (CNN_D6) determines whether processing has been performed for all 3D-CNNs. If it is determined that processing has not been performed for all 3D-CNNs (i.e., there are unprocessed 3D-CNNs (at least CNN675 (CNN_D6) is unprocessed)), processing proceeds to step S675.
- CNN665 (CNN_D1), CNN667 (CNN_D2), CNN669 (CNN_D3), CNN671 (CNN_D4), CNN673 (CNN_D5), or CNN675 (CNN_D6) sets ⁇ C ⁇ in, F ⁇ in ⁇ ⁇ ⁇ C ⁇ out, F ⁇ out ⁇ .
- CNN665 (CNN_D1), CNN667 (CNN_D2), CNN669 (CNN_D3), CNN671 (CNN_D4), CNN673 (CNN_D5), or CNN675 (CNN_D6) sets the sparse tensor ⁇ C ⁇ out, F ⁇ out ⁇ of the calculation result derived by itself as the sparse tensor ⁇ C ⁇ in, F ⁇ in ⁇ to be processed by the next processing unit (guide surface feature derivation unit or occupancy state classification unit).
- the process returns to step S656 in FIG. 29, and subsequent processing is executed. That is, the processes of steps S656 to S658 in FIG. 29 and steps S671 to S675 in FIG. 30 are executed for each 3D-CNN (which may include a guide surface feature derivation unit and an occupancy state classification unit).
- step S674 of FIG. 30 If it is determined in step S674 of FIG. 30 that processing has been performed for all 3D-CNNs, processing proceeds to step S676.
- step S676 the occupancy state classification unit 676 sets C_X ⁇ C ⁇ out.
- the occupancy state classification unit 676 sets the coordinate set C ⁇ out of the calculation result as the decoding result (decoded point group C_X).
- the occupancy state classification unit 676 also extracts attribute values from F ⁇ out. For example, if the attribute is an RGB value, the occupancy state classification unit 676 extracts the last three dimensions of each feature vector of F ⁇ out and sets this vector as the attribute.
- step S677 the occupancy state classification unit 676 outputs the obtained decoded point group C_X to the outside of the decoding device 650. In addition, the occupancy state classification unit 676 outputs the obtained attributes to the outside of the decoding device 650.
- step S677 the decoding process ends.
- the decoding device 350 can decode not only geometry but also attributes.
- FIG. 31 shows an example of a comparison result of RD costs between the case where the present technology described above is applied and the case where the conventional method is applied.
- the graph in Figure 31 shows an example of an RD curve plot when a point cloud (one frame, approximately 900,000 points, 10-bit accuracy) obtained by scanning a specific person is intra-encoded and intra-decoded.
- the vertical axis shows mseF PSNR (p2point), or the so-called D1 Metric PSNR.
- the horizontal axis shows the bit size per point (bpp (bits per point)). In other words, if the position on the vertical axis is the same, the further to the left the position on the horizontal axis, the less code there is.
- the solid line in the graph of Figure 31 is an RD curve showing the relationship between bit size and PSNR when encoding a point cloud using a conventional method without using a guide surface.
- the dotted line in the graph of Figure 31 is an RD curve showing the relationship between bit size and PSNR (Peak Signal-to-Noise Ratio) when encoding a point cloud using a guide surface by applying this technology.
- the dotted lines are generally positioned above the solid lines. Therefore, encoding using a method that applies this technology (a method that uses a guide surface) can obtain better results (higher quality and lower code volume) than conventional methods (methods that do not use a guide surface). In other words, by applying this technology, it is possible to suppress a decrease in encoding efficiency.
- FIG. 32 is a block diagram showing an example of the hardware configuration of a computer that executes the above-mentioned series of processes using a program.
- a CPU Central Processing Unit
- ROM Read Only Memory
- RAM Random Access Memory
- An input/output interface 910 Also connected to the bus 904 is an input/output interface 910.
- An input unit 911, an output unit 912, a memory unit 913, a communication unit 914, and a drive 915 are connected to the input/output interface 910.
- the input unit 911 includes, for example, a keyboard, a mouse, a microphone, a touch panel, an input terminal, etc.
- the output unit 912 includes, for example, a display, a speaker, an output terminal, etc.
- the storage unit 913 includes, for example, a hard disk, a RAM disk, a non-volatile memory, etc.
- the communication unit 914 includes, for example, a network interface.
- the drive 915 drives removable media 921 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
- the CPU 901 loads a program stored in the storage unit 913, for example, into the RAM 903 via the input/output interface 910 and the bus 904, and executes the program, thereby carrying out the above-mentioned series of processes.
- the RAM 903 also stores data necessary for the CPU 901 to execute various processes, as appropriate.
- the program executed by the computer can be applied by recording it on removable media 921 such as package media, for example.
- the program can be installed in the storage unit 913 via the input/output interface 910 by inserting the removable media 921 into the drive 915.
- This program can also be provided via a wired or wireless transmission medium, such as a local area network, the Internet, or digital satellite broadcasting. In that case, the program can be received by the communication unit 914 and installed in the storage unit 913.
- a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
- the program can be received by the communication unit 914 and installed in the storage unit 913.
- this program can also be pre-installed in the ROM 902 or memory unit 913.
- the present technology may be applied to any configuration, for example, to various electronic devices.
- the present technology can be implemented as part of an apparatus, such as a processor (e.g., a video processor) as a system LSI (Large Scale Integration), a module using multiple processors (e.g., a video module), a unit using multiple modules (e.g., a video unit), or a set in which other functions are added to a unit (e.g., a video set).
- a processor e.g., a video processor
- system LSI Large Scale Integration
- modules using multiple processors e.g., a video module
- a unit using multiple modules e.g., a video unit
- a set in which other functions are added to a unit e.g., a video set.
- the present technology can also be applied to a network system consisting of multiple devices.
- the present technology may be implemented as cloud computing in which multiple devices share and collaborate on processing via a network.
- the present technology may be implemented in a cloud service that provides image (video) related services to any terminal, such as a computer, AV (Audio Visual) equipment, portable information processing terminal, or IoT (Internet of Things) device.
- a system refers to a collection of multiple components (devices, modules (parts), etc.), regardless of whether all the components are in the same housing. Therefore, multiple devices housed in separate housings and connected via a network, and a single device in which multiple modules are housed in a single housing, are both systems.
- Systems, devices, processing units, etc. to which the present technology is applied can be used in any field, such as transportation, medical care, crime prevention, agriculture, livestock farming, mining, beauty, factories, home appliances, weather, and nature monitoring.
- the applications are also arbitrary.
- This technology can be used, for example, as a technology (so-called smart construction) aimed at improving productivity and safety at construction sites and resolving labor shortages, to create digital twins of construction sites through 3D surveying and use them for construction management.
- this technology can be applied to 3D surveying using sensors mounted on drones or construction machinery, and feedback based on 3D data (e.g. point clouds) obtained by the surveying (e.g. construction progress management and soil volume management).
- Such surveys are generally carried out multiple times at different times (e.g., every other day).
- point cloud data obtained by surveys at different times is accumulated. Therefore, as the number of surveys increases, the increase in storage capacity and transmission costs for point cloud data sequences can become a problem.
- There is redundancy between such point clouds from different times such as having similar structures.
- a "flag” refers to information for identifying multiple states, and includes not only information used to identify two states, true (1) or false (0), but also information capable of identifying three or more states.
- the value that this "flag” can take may be, for example, two values, 1/0, or three or more values. That is, the number of bits constituting this "flag” is arbitrary, and may be one bit or multiple bits.
- identification information including flags
- identification information includes flags
- “flag” and “identification information” include not only the information itself, but also difference information with respect to the reference information.
- various information (metadata, etc.) related to the encoded data may be transmitted or recorded in any form as long as it is associated with the encoded data.
- the term "associate" means, for example, that one piece of data can be used (linked) when processing the other piece of data.
- data that are associated with each other may be combined into one piece of data, or each piece of data may be individual data.
- information associated with encoded data (image) may be transmitted on a transmission path different from that of the encoded data (image).
- information associated with encoded data (image) may be recorded on a recording medium different from that of the encoded data (image) (or on a different recording area of the same recording medium).
- this "association" may be a part of the data, not the entire data.
- an image and information corresponding to that image may be associated with each other in any unit, such as multiple frames, one frame, or a part of a frame.
- the configuration described above as one device (or processing unit) may be divided and configured as multiple devices (or processing units).
- the configurations described above as multiple devices (or processing units) may be combined and configured as one device (or processing unit).
- configurations other than those described above may be added to the configuration of each device (or processing unit).
- part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit).
- the above-mentioned program may be executed in any device.
- the device has the necessary functions (functional blocks, etc.) and is capable of obtaining the necessary information.
- each step of a single flowchart may be executed by a single device, or may be shared among multiple devices.
- a single step includes multiple processes, those multiple processes may be executed by a single device, or may be shared among multiple devices.
- multiple processes included in a single step may be executed as multiple step processes.
- processes described as multiple steps may be executed collectively as a single step.
- the processing of the steps describing a program executed by a computer may be executed chronologically in the order described in this specification, or may be executed in parallel, or individually at a required timing such as when a call is made. In other words, as long as no contradiction arises, the processing of each step may be executed in an order different from the order described above. Furthermore, the processing of the steps describing this program may be executed in parallel with the processing of other programs, or may be executed in combination with the processing of other programs.
- the multiple technologies related to the present technology can be implemented independently and individually, so long as no contradictions arise.
- any multiple of the present technologies can also be implemented in combination.
- part or all of the present technology described in any embodiment can be implemented in combination with part or all of the present technology described in another embodiment.
- part or all of any of the present technologies described above can be implemented in combination with other technologies not described above.
- the present technology can also be configured as follows.
- a guide surface feature amount derivation unit that derives guide surface feature amounts, which are feature amounts based on a positional relationship between the guide surface and the points, using a first coordinate set, which is a set of coordinates of points forming a point cloud, a first feature amount set, which is a set of feature amounts of the coordinates, and a guide surface, which is a reference surface formed in a three-dimensional space; a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature amount set that reflects the guide surface feature amount, and derives a second coordinate set and a second feature amount set; a coordinate encoding unit that encodes the derived second coordinate set; a feature encoding unit that encodes the derived second feature set; an amount of code for the encoded data of the second coordinate set and the second feature set is smaller than an amount of code for the encoded data of the first coordinate set and the first feature set.
- a guide surface generation unit that generates the guide surface by using the point cloud; a guide surface encoding unit that encodes the guide surface and generates encoded data of the guide surface;
- the information processing device according to any one of (1) to (5), further comprising: a guide surface decoding unit that decodes encoded data of the guide surface and generates the guide surface.
- the guide surface feature amount is a feature amount based on a nearest point on the guide surface with respect to the point.
- the guide surface is a mesh.
- the information processing device according to any one of (1) to (7), wherein the guide surface is a triangle soup.
- the information processing device according to any one of (1) to (7), wherein the guide surface is an implicit function.
- the information processing device according to any one of (1) to (10), further comprising: a parameter set selection unit that selects a parameter set to be applied to encoding the point cloud.
- a guide surface generation unit that generates the guide surface by using the point cloud;
- the information processing device according to (11), further comprising: a guide surface encoding unit that applies the selected parameter set to encode the guide surface and generates encoded data of the guide surface.
- the guide surface feature amount derivation unit derives the guide surface feature amount by using the coordinate set, the feature amount set including attribute information, and the guide surface including a texture.
- a guide surface feature amount which is a feature amount based on a positional relationship between the guide surface and the points, using a first coordinate set, which is a set of coordinates of points forming the point cloud, a first feature amount set, which is a set of feature amounts of the coordinates, and a guide surface, which is a reference surface formed in a three-dimensional space; performing a calculation using the first coordinate set and the first feature amount set reflecting the guide surface feature amount to derive a second coordinate set and a second feature amount set; encoding the derived second set of coordinates; encoding the derived second feature set.
- a coordinate decoding unit that decodes encoded data to generate a first coordinate set that is a set of coordinates of points that form the point cloud; a feature decoding unit that decodes the encoded data to generate a first feature set that is a set of features of the coordinates; a guide surface feature amount derivation unit that derives a guide surface feature amount, which is a feature amount based on a positional relationship between the guide surface and the point, by using the generated first coordinate set, the generated first feature amount set, and a guide surface, which is a reference surface formed in a three-dimensional space; a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature amount set that reflects the guide surface feature amount, and derives a second coordinate set and a second feature amount set, an amount of code for encoded data of the first coordinate set and the first feature set is smaller than an amount of code for encoded data of the second coordinate set and the second feature set.
- the information processing device according to any one of (21) to (25), further comprising: a guide surface decoding unit that decodes encoded data of the guide surface and generates the guide surface.
- the guide surface feature amount is a feature amount based on a nearest point on the guide surface with respect to the point.
- the information processing device according to any one of (21) to (27), wherein the guide surface is a mesh.
- the information processing device according to (28), further comprising: a fitting unit that fits the guide surface to the point cloud.
- the information processing device according to any one of (21) to (27), wherein the guide surface is a triangle soup.
- (33) Decoding the encoded data to generate a first set of coordinates that is a set of coordinates of points that form the point cloud; Decoding the encoded data to generate a first feature set that is a set of features of the coordinates; deriving a guide surface feature amount, which is a feature amount based on a positional relationship between the guide surface and the point, using the generated first coordinate set, the generated first feature amount set, and a guide surface, which is a reference surface formed in a three-dimensional space; performing a predetermined calculation using the first coordinate set and the first feature amount set reflecting the guide surface feature amount to derive a second coordinate set and a second feature amount set; an amount of code for the encoded data of the first coordinate set and the first feature set is smaller than an amount of code for the encoded data of the second coordinate set and the second feature set.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
Description
本開示は、情報処理装置および方法に関し、特に、符号化効率の低減を抑制することができるようにした情報処理装置および方法に関する。 This disclosure relates to an information processing device and method, and in particular to an information processing device and method that can suppress a decrease in coding efficiency.
昨今、エンコーダまたはデコーダにニューラルネットワークをもつ点群圧縮手法であるAI(Artificial Intelligence)ベース点群圧縮手法(以下、AI-PCC(Artificial Intelligence - Point Cloud Compression)とも称する)が開発されている。このようなAI-PCCの一手法として、例えば、非特許文献1に記載の手法が知られている。この手法はエンコーダとデコーダにスパース3D-CNN(3-dimensional Convolutional Neural Network)(ニューラルネットワークの一種)を使用する。
Recently, an AI (Artificial Intelligence)-based point cloud compression method (hereinafter referred to as AI-PCC (Artificial Intelligence - Point Cloud Compression)) has been developed, which is a point cloud compression method that has a neural network in the encoder or decoder. For example, the method described in Non-Patent
しかしながら、非特許文献1に記載の方法が常に最善の手法であるとは限らず、他の方法が求められていた。換言するに、従来の方法では、符号化効率が低減するおそれがあった。
However, the method described in Non-Patent
本開示は、このような状況に鑑みてなされたものであり、符号化効率の低減を抑制することができるようにするものである。 This disclosure has been made in light of these circumstances, and makes it possible to suppress the reduction in coding efficiency.
本技術の一側面の情報処理装置は、ポイントクラウドを形成する点の座標の集合である第1の座標集合、前記座標の特徴量の集合である第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、前記ガイド面および前記点の位置関係に基づく特徴量であるガイド面特徴量を導出するガイド面特徴量導出部と、前記第1の座標集合と、前記ガイド面特徴量を反映させた前記第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出する演算部と、導出された前記第2の座標集合を符号化する座標符号化部と、導出された前記第2の特徴量集合を符号化する特徴量符号化部とを備え、前記第2の座標集合および前記第2の特徴量集合の符号化データの符号量は、前記第1の座標集合および前記第1の特徴量集合の符号化データの符号量よりも少ない情報処理装置である。 An information processing device according to one aspect of the present technology includes a guide surface feature derivation unit that uses a first coordinate set, which is a set of coordinates of points forming a point cloud, a first feature set, which is a set of features of the coordinates, and a guide surface, which is a reference surface formed in three-dimensional space, to derive guide surface features, which are features based on the positional relationship between the guide surface and the points; a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature set reflecting the guide surface features, to derive a second coordinate set and a second feature set; a coordinate encoding unit that encodes the derived second coordinate set; and a feature encoding unit that encodes the derived second feature set, and the information processing device has a code size smaller than the code size of the encoded data of the first coordinate set and the first feature set.
本技術の一側面の情報処理方法は、ポイントクラウドを形成する点の座標の集合である第1の座標集合、前記座標の特徴量の集合である第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、前記ガイド面および前記点の位置関係に基づく特徴量であるガイド面特徴量を導出し、前記第1の座標集合と、前記ガイド面特徴量を反映させた前記第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出し、導出された前記第2の座標集合を符号化し、導出された前記第2の特徴量集合を符号化し、前記第2の座標集合および前記第2の特徴量集合の符号化データの符号量は、前記第1の座標集合および前記第1の特徴量集合の符号化データの符号量よりも少ない情報処理方法である。 An information processing method according to one aspect of the present technology uses a first coordinate set, which is a set of coordinates of points forming a point cloud, a first feature set, which is a set of features of the coordinates, and a guide surface, which is a reference surface formed in three-dimensional space, to derive guide surface features, which are features based on the positional relationship between the guide surface and the points, perform a predetermined calculation using the first coordinate set and the first feature set reflecting the guide surface features, derive a second coordinate set and a second feature set, encode the derived second coordinate set, encode the derived second feature set, and the amount of code for the encoded data of the second coordinate set and the second feature set is less than the amount of code for the encoded data of the first coordinate set and the first feature set.
本技術の他の側面の情報処理装置は、符号化データを復号して、ポイントクラウドを形成する点の座標の集合である第1の座標集合を生成する座標復号部と、符号化データを復号して、前記座標の特徴量の集合である第1の特徴量集合を生成する特徴量復号部と、生成された前記第1の座標集合、生成された前記第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、前記ガイド面および前記点の位置関係に基づく特徴量であるガイド面特徴量を導出するガイド面特徴量導出部と、前記第1の座標集合と、前記ガイド面特徴量を反映させた前記第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出する演算部とを備える情報処理装置である。 An information processing device according to another aspect of the present technology is an information processing device including: a coordinate decoding unit that decodes encoded data to generate a first coordinate set, which is a set of coordinates of points that form a point cloud; a feature decoding unit that decodes encoded data to generate a first feature set, which is a set of features of the coordinates; a guide surface feature derivation unit that uses the generated first coordinate set, the generated first feature set, and a guide surface that is a reference surface formed in three-dimensional space to derive guide surface features, which are features based on the positional relationship between the guide surface and the points; and a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature set that reflects the guide surface features, to derive a second coordinate set and a second feature set.
本技術の他の側面の情報処理方法は、符号化データを復号して、ポイントクラウドを形成する点の座標の集合である第1の座標集合を生成し、符号化データを復号して、前記座標の特徴量の集合である第1の特徴量集合を生成し、生成された前記第1の座標集合、生成された前記第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、前記ガイド面および前記点の位置関係に基づく特徴量であるガイド面特徴量を導出し、前記第1の座標集合と、前記ガイド面特徴量を反映させた前記第1の特徴量集合とを用いて演算を行い、第2の座標集合および第2の特徴量集合を導出する情報処理方法である。 An information processing method according to another aspect of the present technology is an information processing method that decodes encoded data to generate a first coordinate set, which is a set of coordinates of points forming a point cloud, decodes the encoded data to generate a first feature set, which is a set of features of the coordinates, derives guide surface features, which are features based on the positional relationship between the guide surface and the points, using the generated first coordinate set, the generated first feature set, and a guide surface, which is a reference surface formed in three-dimensional space, and performs a calculation using the first coordinate set and the first feature set reflecting the guide surface features, to derive a second coordinate set and a second feature set.
本技術の一側面の情報処理装置および方法においては、ポイントクラウドを形成する点の座標の集合である第1の座標集合、その座標の特徴量の集合である第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、そのガイド面および点の位置関係に基づく特徴量であるガイド面特徴量が導出され、その第1の座標集合と、そのガイド面特徴量を反映させた第1の特徴量集合とを用いて演算が行われ、第2の座標集合および第2の特徴量集合が導出され、その導出された第2の座標集合が符号化され、その導出された第2の特徴量集合が符号化される。 In an information processing device and method according to one aspect of the present technology, a first coordinate set, which is a set of coordinates of points forming a point cloud, a first feature set, which is a set of features of those coordinates, and a guide surface, which is a reference surface formed in three-dimensional space, are used to derive guide surface features, which are features based on the positional relationship between the guide surface and the points, and an operation is performed using the first coordinate set and the first feature set reflecting the guide surface features to derive a second coordinate set and a second feature set, the derived second coordinate set is encoded, and the derived second feature set is encoded.
本技術の他の側面の情報処理装置および方法においては、符号化データが復号されて、ポイントクラウドを形成する点の座標の集合である第1の座標集合が生成され、符号化データが復号されて、その座標の特徴量の集合である第1の特徴量集合が生成され、その生成された第1の座標集合、その生成された第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、そのガイド面および点の位置関係に基づく特徴量であるガイド面特徴量が導出され、第1の座標集合と、ガイド面特徴量を反映させた第1の特徴量集合とを用いて所定の演算が行われ、第2の座標集合および第2の特徴量集合が導出される。 In the information processing device and method of another aspect of the present technology, encoded data is decoded to generate a first coordinate set which is a set of coordinates of points forming a point cloud, the encoded data is decoded to generate a first feature set which is a set of features of the coordinates, the generated first coordinate set, the generated first feature set, and a guide surface which is a reference surface formed in three-dimensional space are used to derive guide surface features which are features based on the positional relationship between the guide surface and the points, and a predetermined calculation is performed using the first coordinate set and the first feature set reflecting the guide surface features to derive a second coordinate set and a second feature set.
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.技術内容・技術用語をサポートする文献等
2.ポイントクラウドの符号化・復号
3.ガイド面を用いたポイントクラウドの符号化・復号
4.付記
Hereinafter, modes for carrying out the present disclosure (hereinafter referred to as embodiments) will be described in the following order.
1. Literature supporting technical content and
<1.技術内容・技術用語をサポートする文献等>
本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献等に記載されている内容や以下の非特許文献において参照されている他の文献の内容等も含まれる。
<1. Literature supporting technical content and technical terminology>
The scope of disclosure of the present technology includes not only the contents described in the embodiments, but also the contents described in the following non-patent documents that were publicly known at the time of filing the application, and the contents of other documents referenced in the following non-patent documents.
非特許文献1:(上述)
非特許文献2:Michael Kazhdan, Matthew Bolitho, Hugues Hoppe, "Poisson Surface Reconstruction", Eurographics Symposium on Geometry Processing (2006), Konrad Polthier, Alla Sheffer (Editors)
非特許文献3:Stoll Carsten, Karni Zachi, Rossl Christian, Yamauchi Hitoshi, Seidel Hans-Peter, "Template Deformation for Point Cloud Fitting",
非特許文献4:Danhang Tang, Philip A. Chou, Christian Hane, Mingsong Dou, Sean Fanello, Jonathan Taylor, Philip Davidson, Onur G. Guleryuz, Yinda Zhang, Shahram Izadi, Andrea Tagliasacchi, Sofien Bouaziz, Cem Keskin, "Deep Implicit Volume Compression", Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2020, pp. 1293-1303
Non-patent document 1: (mentioned above)
Non-patent document 2: Michael Kazhdan, Matthew Bolitho, Hugues Hoppe, "Poisson Surface Reconstruction", Eurographics Symposium on Geometry Processing (2006), Konrad Polthier, Alla Sheffer (Editors)
Non-patent document 3: Stoll Carsten, Karni Zachi, Rossl Christian, Hitoshi Yamauchi, Seidel Hans-Peter, "Template Deformation for Point Cloud Fitting",
Non-patent document 4: Danhang Tang, Philip A. Chou, Christian Hane, Mingsong Dou, Sean Fanello, Jonathan Taylor, Philip Davidson, Onur G. Guleryuz, Yinda Zhang, Shahram Izadi, Andrea Tagliasacchi, Sofien Bouaziz, Cem Keskin, "Deep "Implicit Volume Compression", Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2020, pp. 1293-1303
つまり、上述の非特許文献に記載されている内容や、上述の非特許文献において参照されている他の文献の内容等も、サポート要件を判断する際の根拠となる。 In other words, the contents of the above-mentioned non-patent documents and the contents of other documents referenced in the above-mentioned non-patent documents are also used as the basis for determining the support requirements.
<2.ポイントクラウドの符号化・復号>
<ポイントクラウド>
従来、立体構造物(3次元形状のオブジェクト)の3次元構造を表す3Dデータとして、そのオブジェクトを多数のポイントの集合として表現するポイントクラウド(点群とも称する)が存在した。ポイントクラウドのデータ(ポイントクラウドデータとも称する)は、そのポイントクラウドを構成する各ポイントのジオメトリ(位置情報)とアトリビュート(属性情報)とにより構成される。ジオメトリは、そのポイントの3次元空間における位置を示す。アトリビュートは、そのポイントの属性を示す。このアトリビュートは任意の情報を含むことができる。例えば、各ポイントの色情報、反射率情報、法線情報等がアトリビュートに含まれるようにしてもよい。このようにポイントクラウドは、データ構造が比較的単純であるとともに、十分に多くの点を用いることにより任意の立体構造物を十分な精度で表現することができる。
<2. Encoding and Decoding Point Cloud>
<Point Cloud>
Conventionally, as 3D data representing the three-dimensional structure of a three-dimensional structure (object of a three-dimensional shape), there exists a point cloud (also called a point group) that represents the object as a collection of many points. Point cloud data (also called point cloud data) is composed of the geometry (position information) and attributes (attribute information) of each point that constitutes the point cloud. The geometry indicates the position of the point in three-dimensional space. The attributes indicate the attributes of the point. The attributes can include any information. For example, the attributes may include color information, reflectance information, normal information, etc. of each point. In this way, the point cloud has a relatively simple data structure and can represent any three-dimensional structure with sufficient accuracy by using a sufficient number of points.
<AI-PCC>
昨今、エンコーダまたはデコーダにニューラルネットワークをもつ点群圧縮手法であるAIベース点群圧縮手法(以下、AI-PCC(Artificial Intelligence - Point Cloud Compression)とも称する)が開発されている。このようなAI-PCCの一手法として、例えば、非特許文献1に記載の手法が知られている。本明細書において、この手法を「従来のAI-PCC手法」とも称する。この従来のAI-PCC手法は、エンコーダとデコーダにスパース3D-CNN(3-dimensional Convolutional Neural Network)(ニューラルネットワークの一種)を使用する。例えば、この従来のAI-PCC手法の場合、図1に示されるように、入力疎テンソルを出力疎テンソルに変換するCNN(Convolution Neural Network)11が用いられる。その他の一般的なAI-PCC手法の場合、3D-CNN、多層パーセプトロン、または、その他のニューラルネットワーク等の、入力座標集合および入力特徴量集合を出力座標集合および出力特徴量集合に変換するなんらかの演算部21が用いられる。
<AI-PCC>
Recently, an AI-based point cloud compression method (hereinafter also referred to as AI-PCC (Artificial Intelligence - Point Cloud Compression)) has been developed, which is a point cloud compression method having a neural network in the encoder or decoder. For example, the method described in
この従来のAI-PCC手法のエンコーダの主な構成例を図2に示す。図2に示されるように、このエンコーダ50においては、疎テンソル構築部51が、入力点群C_Xから入力疎テンソルX = {C_X, F_X}を構築する。入力特徴量集合F_Xには1を並べたダミーの特徴量を使う。CNN52(CNN_E1)、CNN53(CNN_E2)、CNN54(CNN_E3)、CNN55(CNN_E4)、CNN56(CNN_E5)、およびCNN57(CNN_E6)は、疎テンソルを受け取り、変換後の疎テンソルを返す。点数符号化部58は、C_Xの点数、C_Xを1/2ダウンスケールした座標集合の点数、1/4ダウンスケールした座標集合の点数をそれぞれ符号化し、点数ビットストリームを出力する。座標符号化部59は、入力点群C_Xを1/8ダウンスケールした座標集合C_Yを符号化(Octree符号化)し、座標ビットストリームを出力する。特徴量符号化部60は、その座標集合C_Yの各座標に結び付いた特徴量集合F_Yを符号化し、特徴量ビットストリームを出力する。
Figure 2 shows an example of the main configuration of an encoder for this conventional AI-PCC method. As shown in Figure 2, in this
この従来のAI-PCC手法のデコーダの主な構成例を図3に示す。このデコーダ70において、点数復号部71は、点数ビットストリームを復号する。座標復号部72は、G-PCC復号器であり、座標集合ビットストリームをLossless復号し、座標集合C_Yを生成(復元)する。特徴量復号部73は、特徴量ビットストリームをエントロピ復号し、特徴量集合F_Yを生成(復元)する。ただし、特徴量ビットストリームは、Lossy圧縮されており、厳密には、復元された特徴量集合F_Yは、符号化前のF_Yと異なり得る。CNN74(CNN_D1)、CNN75(CNN_D2)、CNN77(CNN_D3)、CNN78(CNN_D4)、CNN80(CNN_D5)、およびCNN81(CNN_D6)は、スパース3D-CNNであり、疎テンソルを受け取り、変換後の疎テンソルを返す。これらは、主にスパース3D畳み込み層や非線形変換層により構成される。占有状態分類部76、占有状態分類部79、占有状態分類部82は、一層のスパース3D畳み込み層から構成される。このスパース3D畳み込み層は、疎テンソルを入力し、演算結果の疎テンソルを出力する。なお、このスパース3D畳み込み層の演算結果の疎テンソルの特徴量は、その座標の占有確率値を表す。占有状態分類部76、占有状態分類部79、占有状態分類部82は、その占有確率値が高い上位k個の座標のみを残し、それ以外の座標を削除する。つまり、占有状態分類部76、占有状態分類部79、占有状態分類部82は、入力疎テンソルの座標集合の内の上位k個以外を削除した座標集合と、その座標集合に対応する特徴量集合(つまり、入力疎テンソルの特徴量集合のうち、削除された座標に対応する特徴量を削除したもの)とを出力する。kは、N_X,N_X',N_X''のうち、対応するスケールのものを使用する。F^out中の削除される座標に対応する特徴量も削除される。
The main configuration of a decoder for this conventional AI-PCC method is shown in Figure 3. In this
しかしながら、非特許文献1に記載の方法が常に最善の手法であるとは限らず、他の方法が求められていた。換言するに、従来の方法では、符号化効率が低減するおそれがあった。
However, the method described in
<3.ガイド面を用いたポイントクラウドの符号化・復号>
<方法1>
そこで、図4の表の最上段に示されるように、ガイド面特徴量を用いて導出した座標集合および特徴量集合を伝送する(方法1)。つまり、送信側において、このガイド面特徴量を用いて導出した座標集合および特徴量集合を符号化してビットストリームを送信し、受信側においてそのビットストリームを受信して復号する。
<3. Encoding and decoding of point clouds using guide surfaces>
<
Therefore, as shown in the top row of the table in Fig. 4, a coordinate set and a feature set derived using the guide surface feature are transmitted (Method 1). That is, on the transmitting side, the coordinate set and the feature set derived using the guide surface feature are encoded and a bit stream is transmitted, and on the receiving side, the bit stream is received and decoded.
例えば、上述の従来のAI-PCC手法のようにCNNを用いる演算器100の場合、図5に示されるように、ガイド面特徴量導出部101によってガイド面の特徴量の集合g(C^in)を入力疎テンソル{C^in, F^in}に反映させ、入力疎テンソル{C^in, [F^in, g(C^in)]}をCNN102へ入力する。従来のAI-PCC手法以外の演算器120の場合も同様に、ガイド面特徴量導出部121によってガイド面の特徴量の集合g(C^in)を入力座標集合および入力特徴量集合{C^in, F^in}に反映させ、入力座標集合および入力特徴量集合{C^in, [F^in, g(C^in)]}を演算部122へ入力する。この演算部122は、3D-CNN、多層パーセプトロン、その他のニューラルネットワーク等、どのような構成を有してもよい。
For example, in the case of a
例えば、図6に示されるような3次元空間140においてポイント141が存在する場合、従来の方法では、各ポイント141の情報がそれぞれ符号化されていた。これに対して、方法1の場合、ガイド面142が設けられる。このガイド面142は、各ポイント141の情報を変換するために利用される、本技術において設定する3次元空間上の仮想的な面である。このガイド面142は、どのような面であってもよく、平面であってもよいし、曲面であってもよい。また、このガイド面142は、ポイントクラウドと同一の3Dオブジェクトの3次元形状(外形)を所定の精細度で表現するものであってもよいし、その3Dオブジェクトの外形とは無関係の面であってもよい。そして、方法1の場合、各ポイント141の情報が、このガイド面142を基準とする情報(ガイド面特徴量)に変換されて符号化される。したがって、2D符号化において、予測残差を符号化する場合のように、符号化する情報量を低減させることができる。したがって、符号化効率の低減を抑制することができる。
For example, when
例えば、第1の情報処理装置が、ポイントクラウドを形成する点の座標の集合である第1の座標集合、その座標の特徴量の集合である第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、そのガイド面および点の位置関係に基づく特徴量であるガイド面特徴量を導出するガイド面特徴量導出部と、その第1の座標集合と、そのガイド面特徴量を反映させた第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出する演算部と、その導出された第2の座標集合を符号化する座標符号化部と、その導出された第2の特徴量集合を符号化する特徴量符号化部とを備えるようにする。 For example, the first information processing device is provided with a guide surface feature derivation unit that uses a first coordinate set, which is a set of coordinates of points forming a point cloud, a first feature set, which is a set of features of the coordinates, and a guide surface, which is a reference surface formed in three-dimensional space, to derive guide surface features, which are features based on the positional relationship between the guide surface and the points; a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature set reflecting the guide surface features, to derive a second coordinate set and a second feature set; a coordinate encoding unit that encodes the derived second coordinate set; and a feature encoding unit that encodes the derived second feature set.
また、第1の情報処理装置が実行する第1の情報処理方法において、ポイントクラウドを形成する点の座標の集合である第1の座標集合、その座標の特徴量の集合である第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、そのガイド面および点の位置関係に基づく特徴量であるガイド面特徴量を導出し、その第1の座標集合と、そのガイド面特徴量を反映させた第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出し、その導出された第2の座標集合を符号化し、その導出された第2の特徴量集合を符号化する。 In addition, in a first information processing method executed by a first information processing device, a first coordinate set, which is a set of coordinates of points forming a point cloud, a first feature set, which is a set of features of the coordinates, and a guide surface, which is a reference surface formed in three-dimensional space, are used to derive guide surface features, which are features based on the positional relationship between the guide surface and the points, and a predetermined calculation is performed using the first coordinate set and the first feature set reflecting the guide surface features to derive a second coordinate set and a second feature set, the derived second coordinate set is encoded, and the derived second feature set is encoded.
このようにすることにより、上述のように、符号化する情報量を低減させることができ、符号化効率の低減を抑制することができる。 By doing this, as described above, it is possible to reduce the amount of information to be encoded, and to prevent a decrease in encoding efficiency.
なお、第2の座標集合および第2の特徴量集合のスケールが、第1の座標集合および第1の特徴量集合のスケールよりも小さくてもよい。また、第1の情報処理装置において、演算部が、所定の演算を再帰的に複数回繰り返すことにより、第2の座標集合および第2の特徴量集合を導出してもよい。また、演算部が、複数回の全部または一部の所定の演算において、入力される座標集合および特徴量集合をダウンスケールしてもよい。また、スケール毎にガイド面特徴量を導出してもよい。例えば、ガイド面特徴量導出部は、座標集合および特徴量集合の一部のスケールまたは全てのスケールについて、それぞれガイド面特徴量を導出してもよい。 The scale of the second coordinate set and the second feature set may be smaller than the scale of the first coordinate set and the first feature set. In the first information processing device, the calculation unit may derive the second coordinate set and the second feature set by recursively repeating a predetermined calculation multiple times. The calculation unit may downscale the input coordinate set and feature set in all or a part of the multiple predetermined calculations. The guide surface feature may be derived for each scale. For example, the guide surface feature derivation unit may derive guide surface feature for some or all scales of the coordinate set and feature set.
また、ガイド面を符号化してもよい。また、ビットストリームを復号してガイド面を生成(復元)してもよい。また、ガイド面を生成してもよい。例えば、第1の情報処理装置が、ポイントクラウドを用いてガイド面を生成するガイド面生成部と、そのガイド面を符号化し、ガイド面の符号化データを生成するガイド面符号化部と、そのガイド面の符号化データを復号し、ガイド面を生成するガイド面復号部とをさらに備えてもよい。 The guide surface may also be encoded. The bit stream may also be decoded to generate (restore) the guide surface. The guide surface may also be generated. For example, the first information processing device may further include a guide surface generation unit that generates a guide surface using a point cloud, a guide surface encoding unit that encodes the guide surface and generates encoded data for the guide surface, and a guide surface decoding unit that decodes the encoded data for the guide surface and generates a guide surface.
また、第1の情報処理装置が、点数を符号化する点数符号化部をさらに備えてもよい。
また、その点数符号化部が、スケール毎の点数を符号化してもよい。
The first information processing device may further include a score encoding unit that encodes the score.
The score encoding unit may also encode the score for each scale.
また、第1の情報処理装置において、演算部がCNN(Convolution Neural Network)により構成されてもよい。その場合、第1の情報処理装置が、ポイントクラウドから疎テンソルを構築する疎テンソル構築部をさらに備えてもよい。その場合、CNNがその構築された疎テンソルを入力してもよい。 Furthermore, in the first information processing device, the calculation unit may be configured with a CNN (Convolution Neural Network). In that case, the first information processing device may further include a sparse tensor construction unit that constructs a sparse tensor from the point cloud. In that case, the CNN may input the constructed sparse tensor.
また、第2の情報処理装置が、符号化データを復号して、ポイントクラウドを形成する点の座標の集合である第1の座標集合を生成する座標復号部と、符号化データを復号して、その座標の特徴量の集合である第1の特徴量集合を生成する特徴量復号部と、その生成された第1の座標集合、その生成された第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、ガイド面および点の位置関係に基づく特徴量であるガイド面特徴量を導出するガイド面特徴量導出部と、その第1の座標集合と、ガイド面特徴量を反映させた第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出する演算部とを備え前記第1の座標集合および前記第1の特徴量集合の符号化データの符号量は、前記第2の座標集合および前記第2の特徴量集合の符号化データの符号量よりも少ないようにする。 The second information processing device also includes a coordinate decoding unit that decodes encoded data to generate a first coordinate set, which is a set of coordinates of points forming a point cloud; a feature decoding unit that decodes encoded data to generate a first feature set, which is a set of features of the coordinates; a guide surface feature derivation unit that uses the generated first coordinate set, the generated first feature set, and a guide surface that is a reference surface formed in three-dimensional space to derive guide surface features, which are features based on the positional relationship between the guide surface and the points; and a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature set reflecting the guide surface features to derive a second coordinate set and a second feature set, so that the code amount of the encoded data of the first coordinate set and the first feature set is smaller than the code amount of the encoded data of the second coordinate set and the second feature set.
また、第2の情報処理装置が実行する第2の情報処理方法において、符号化データを復号して、ポイントクラウドを形成する点の座標の集合である第1の座標集合を生成し、符号化データを復号して、座標の特徴量の集合である第1の特徴量集合を生成し、その生成された第1の座標集合、その生成された第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、そのガイド面および点の位置関係に基づく特徴量であるガイド面特徴量を導出し、その第1の座標集合と、ガイド面特徴量を反映させた第1の特徴量集合とを用いて所定の演算を行い、新たな座標集合および特徴量集合を導出し、第1の座標集合および第1の特徴量集合の符号化データの符号量は、第2の座標集合および第2の特徴量集合の符号化データの符号量よりも少ないようにする。 In addition, in a second information processing method executed by a second information processing device, encoded data is decoded to generate a first coordinate set which is a set of coordinates of points forming a point cloud, encoded data is decoded to generate a first feature set which is a set of coordinate features, the generated first coordinate set, the generated first feature set, and a guide surface which is a reference surface formed in three-dimensional space are used to derive guide surface features which are features based on the positional relationship between the guide surface and the points, a predetermined calculation is performed using the first coordinate set and the first feature set reflecting the guide surface features, and a new coordinate set and feature set are derived, and the amount of code of the encoded data of the first coordinate set and the first feature set is made smaller than the amount of code of the encoded data of the second coordinate set and the second feature set.
このようにすることにより、上述のように、符号化する情報量を低減させることができ、符号化効率の低減を抑制することができる。 By doing this, as described above, it is possible to reduce the amount of information to be encoded, and to prevent a decrease in encoding efficiency.
なお、第2の座標集合および第2の特徴量集合のスケールは、第1の座標集合および第1の特徴量集合のスケールよりも大きくてもよい。また、第2の情報処理装置において、演算部が、所定の演算を再帰的に複数回繰り返すことにより、第2の座標集合および第2の特徴量集合を導出してもよい。また、演算部が、複数回の全部または一部の所定の演算において、入力される座標集合および特徴量集合をアップスケールしてもよい。また、スケール毎にガイド面特徴量を導出してもよい。例えば、ガイド面特徴量導出部は、座標集合および特徴量集合の一部のスケールまたは全てのスケールについて、それぞれガイド面特徴量を導出してもよい。 The scale of the second coordinate set and the second feature set may be larger than the scale of the first coordinate set and the first feature set. In the second information processing device, the calculation unit may derive the second coordinate set and the second feature set by recursively repeating a predetermined calculation multiple times. The calculation unit may upscale the input coordinate set and feature set in all or a part of the multiple predetermined calculations. The guide surface feature may be derived for each scale. For example, the guide surface feature derivation unit may derive guide surface feature for some or all scales of the coordinate set and feature set.
また、第2の情報処理装置が、復号してガイド面を生成(復元)してもよい。例えば、第2の情報処理装置が、ガイド面の符号化データを復号し、そのガイド面を生成するガイド面復号部をさらに備えてもよい。 The second information processing device may also decode and generate (restore) the guide surface. For example, the second information processing device may further include a guide surface decoding unit that decodes the encoded data of the guide surface and generates the guide surface.
また、第2の情報処理装置が、各座標の占有確率値を予測し、占有確率値の高い一部の座標および特徴量を抽出する占有状態分類部を備えてもよい。また、第2の情報処理装置が、復号して点数を生成(復元)する点数復号部を備えてもよい。また、その点数復号部が、復号してスケール毎の点数を生成(復元)してもよい。 The second information processing device may also include an occupancy state classification unit that predicts an occupancy probability value for each coordinate and extracts some coordinates and features with high occupancy probability values. The second information processing device may also include a score decoding unit that decodes to generate (restore) a score. The score decoding unit may also decode to generate (restore) a score for each scale.
また、第2の情報処理装置において、演算部がCNN(Convolution Neural Network)により構成されてもよい。 In addition, in the second information processing device, the calculation unit may be configured using a Convolution Neural Network (CNN).
<符号化装置>
第1の情報処理装置は、どのような装置であってもよい。例えば、3Dデータ(例えばポイントクラウド)を符号化する符号化装置であってもよい。図7は、本技術を適用した情報処理装置の一態様である符号化装置の構成の一例を示すブロック図である。図7に示される符号化装置300は、ポイントクラウド(3Dデータ)のジオメトリを符号化する装置である。符号化装置300は、上述した方法1を適用してそのジオメトリを符号化する。
<Encoding device>
The first information processing device may be any device. For example, it may be an encoding device that encodes 3D data (e.g., a point cloud). FIG. 7 is a block diagram showing an example of the configuration of an encoding device, which is one aspect of an information processing device to which the present technology is applied. The
なお、図7においては、処理部やデータの流れ等の主なものを示しており、図7に示されるものが全てとは限らない。つまり、符号化装置300において、図7においてブロックとして示されていない処理部が存在したり、図7において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
Note that FIG. 7 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 7. In other words, in the
図7に示されるように、符号化装置300は、ガイド面生成部311、ガイド面符号化部312、ガイド面復号部313、疎テンソル構築部314、ガイド面特徴量導出部315、CNN316(CNN_E1)、ガイド面特徴量導出部317、CNN318(CNN_E2)、CNN319(CNN_E3)、ガイド面特徴量導出部320、CNN321(CNN_E4)、CNN322(CNN_E5)、CNN323(CNN_E6)、座標符号化部324、特徴量符号化部325、および点数符号化部326を有する。
As shown in FIG. 7, the
ガイド面生成部311は、入力点群C_Xからガイド面を生成する。ガイド面は、3次元空間に形成される基準面であり、ポイントクラウドの符号化に利用される。例えば、ガイド面生成部311は、ポイントクラウドからメッシュを生成し、そのメッシュをガイド面としてもよい。このポイントクラウドからメッシュを生成する手法は任意であり、例えば、非特許文献2に記載のPoisson surface reconstructionといった既存の手法が適用されてもよい。ただし、この手法は法線データを必要とするので、点群の法線を計算する必要がある。ガイド面生成部311は、生成したガイド面を示すデータをガイド面符号化部312へ供給する。
The guide
ガイド面符号化部312は、供給されたガイド面を符号化し、ガイド面の符号化データ(ガイド面ビットストリームとも称する)を生成する。この符号化方法はどのようなものであってもよい。例えばガイド面がメッシュにより構成される場合、ガイド面符号化部312は、メッシュ用の符号化方法を適用してガイド面を符号化してもよい。例えば、Mesh decimationによる三角形数削減後にDraco符号化する等の既存の手法を適用してもよい。ガイド面符号化部312は、生成したガイド面ビットストリームを符号化装置300の外部に出力してもよい。また、ガイド面符号化部312は、生成したガイド面ビットストリームをガイド面復号部313へ供給してもよい。
The guide
ガイド面復号部313は、供給されたガイド面ビットストリームを復号し、ガイド面を生成(復元)する。この復号方法は、ガイド面符号化部312が適用する符号化方法に対応するものであればどのようなものであってもよい。例えばガイド面がメッシュにより構成される場合、ガイド面復号部313は、メッシュ用の復号方法を適用してガイド面ビットストリームを復号してもよい。この復号方法は既存の手法であってもよい。例えば、ガイド面がメッシュの場合、Draco復号を適用してもよい。なお、このガイド面の符号化・復号は、ロスレスな方式であってもよいし、ロッシーな方式であってもよい。つまり、ガイド面復号部313が生成(復元)するガイド面(復号ガイド面とも称する)は、符号化前のガイド面(例えばガイド面生成部311が生成したガイド面)と完全に一致しなくてもよい。ガイド面復号部313は、生成した復号ガイド面をガイド面特徴量導出部315、ガイド面特徴量導出部317、およびガイド面特徴量導出部320へ供給してもよい。
The guide
疎テンソル構築部314は、入力点群C_Xから入力疎テンソルX = {C_X, F_X}を構築する。疎テンソルは、空間中に配置された特徴量ベクトルの集合を表すためのデータ構造である。各特徴量ベクトルは空間中のある1つの座標に結び付けられる。具体的には、3次元空間中の疎テンソルは座標集合C = {(x_i, y_i, z_i)}_iと特徴量集合F = {f_i}_iの組{C, F}により表現される。ここに特徴量f_iが座標(x_i, y_i, z_i)に配置されている。なお、入力特徴量集合F_Xには値「1」を並べたダミーの特徴量が適用される。疎テンソル構築部314により構築された入力疎テンソルX = {C_X, F_X}のスケールは、1倍(x1)である。疎テンソル構築部314は、構築した入力疎テンソルX = {C_X, F_X}をガイド面特徴量導出部315へ供給してもよい。
The sparse
ガイド面特徴量導出部315は、ガイド面特徴量の導出に関する処理を行う。例えば、ガイド面特徴量導出部315は、処理対象の疎テンソル{C^in, F^in}を受け取り、その処理対象の座標集合C^inの各座標c_i ∈ C^inについてガイド面特徴量g(c_i)を導出する。そして、ガイド面特徴量導出部315は、得られたガイド面特徴量集合g(C^in) = {g(c_i)}_iを処理対象の特徴量集合F^inに連結し、演算結果の疎テンソル{C^in, [F^in, g(C^in)]}を返す。ここで、[F^in, g(C^in)]は各特徴量f_i ∈ F^inに対応する座標値から計算したガイド面特徴量g(c_i)を連結して得られる特徴量集合である。[F^in, g(C^in)] = {[f_i, g(c_i)]}_iと定義する。ガイド面特徴量を計算する方法g(c_i)としては、例えば、座標値c_iから見てガイド面上の最近傍点p_iを検索し、g(c_i) = p_i - c_i ∈ R^3とする方法がある。つまり、この場合、演算結果の特徴量集合[F^in, g(C^in)]の次元は処理対象の特徴量集合F^inの次元よりも3だけ増える。
The guide surface
ガイド面特徴量導出部315は、疎テンソル構築部314から供給される入力疎テンソルX = {C_X, F_X}を処理対象の疎テンソルとして取得してもよい。また、ガイド面特徴量導出部315は、ガイド面復号部313から供給される復号ガイド面を取得してもよい。そして、ガイド面特徴量導出部315は、その復号ガイド面を用いて、その入力疎テンソルに対して上述のような処理を行い、演算結果の疎テンソルを生成してもよい。また、ガイド面特徴量導出部315は、その生成した演算結果の疎テンソルをCNN316(CNN_E1)へ供給してもよい。
The guide surface
CNN316(CNN_E1)は、スパース3D-CNNである。スパース3D-CNNは、スパース3D畳み込み層を持つ3D-CNNであり、処理対象の疎テンソル{C^in, F^in}を入力し、演算結果の出力疎テンソル{C^out, F^out}を出力する。3D-CNNは、主に3D畳み込み層と非線形変換層などから構成されるニューラルネットワークである。3D畳み込み層は、3次元空間中に配置された特徴量集合に対して、カーネルを畳み込む演算を行い、演算結果の特徴量集合を出力する。大まかには、3D畳み込み層は、各特徴量について3次元空間中で近傍の特徴量群を対応するカーネル値で重み付けて集約する演算を行う。これにより、近傍の特徴量を考慮した特徴量変換を実現する。3D-CNNは、3D畳み込み層と非線形変換層を積み上げることで、より非線形で複雑な特徴量変換を実現する。スパース3D畳み込み層は、入出力が疎テンソルである3D畳み込み層である。スパース3D畳み込み層は、通常の3D畳み込み層(対比するためにデンス3D畳み込み層とも称する)と比較して演算効率が良い(対応する特徴量がない空の座標は無視するため)という特徴を有する。例えば、スパース3D畳み込み層の演算は、以下の式(1)のように表すことができる。 CNN316 (CNN_E1) is a sparse 3D-CNN. Sparse 3D-CNN is a 3D-CNN with a sparse 3D convolutional layer, which inputs the sparse tensor {C^in, F^in} to be processed and outputs the sparse tensor {C^out, F^out} as the result of the calculation. 3D-CNN is a neural network mainly composed of a 3D convolutional layer and a nonlinear transformation layer. The 3D convolutional layer performs a kernel convolution operation on a set of features arranged in a three-dimensional space, and outputs the set of features as the result of the calculation. Roughly speaking, the 3D convolutional layer performs an operation to aggregate nearby feature sets in three-dimensional space by weighting each feature with the corresponding kernel value. This realizes feature transformation that takes into account nearby features. 3D-CNN realizes more nonlinear and complex feature transformation by stacking 3D convolutional layers and nonlinear transformation layers. A sparse 3D convolutional layer is a 3D convolutional layer whose input and output are sparse tensors. A sparse 3D convolutional layer has the advantage of being computationally more efficient (because empty coordinates with no corresponding features are ignored) than a normal 3D convolutional layer (also called a dense 3D convolutional layer for comparison). For example, the calculation of a sparse 3D convolutional layer can be expressed as the following equation (1).
なお、C^inは入力座標集合(処理対象の座標集合とも称する)であり、C^outは出力座標集合(演算結果の座標集合とも称する)である。f_u^inは、座標uにおける入力特徴量ベクトル(処理対象の特徴量ベクトルとも称する)であり、f_u^outは座標uにおける出力特徴量ベクトル(演算結果の特徴量ベクトルとも称する)である。N^3(u, C^in) = {i|u + i ∈ C^in, i ∈ N^3}は3D畳み込みカーネルを定義し、座標uを中心とするC^in中の近傍座標へのオフセット値iの集合である。W_iはオフセット値iにおけるカーネル値を表す。また、処理対象の座標集合C^inおよび演算結果の座標集合C^outは常に等しくなるとは限らない。例えばダウンスケールやアップスケールをする場合にC^outはC^inと異なる。 Note that C^in is the input coordinate set (also called the coordinate set of the processing target), and C^out is the output coordinate set (also called the coordinate set of the calculation result). f_u^in is the input feature vector at coordinate u (also called the feature vector of the processing target), and f_u^out is the output feature vector at coordinate u (also called the feature vector of the calculation result). N^3(u, C^in) = {i|u + i ∈ C^in, i ∈ N^3} defines the 3D convolution kernel and is the set of offset values i to the neighboring coordinates in C^in centered on coordinate u. W_i represents the kernel value at offset value i. Also, the coordinate set of the processing target C^in and the coordinate set of the calculation result C^out are not always the same. For example, C^out is different from C^in when downscaling or upscaling.
CNN316(CNN_E1)は、ガイド面特徴量導出部315の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。つまり、ガイド面特徴量の分だけ特徴量の次元が増えるため、それに応じて各スパース3D-CNNの入出力次元も変更される。このことは、以下のCNN(CNN318、CNN319、CNN321、CNN322、およびCNN323)についても同様である。CNN316(CNN_E1)は、2層のスパース3D畳み込み層と、非線形変換層の一種である2層のReLU(Rectified Linear Unit)層により構成され、処理対象の疎テンソルに対して1/2ダウンスケールを行ってもよい。CNN316(CNN_E1)は、得られた演算結果の疎テンソルをガイド面特徴量導出部317に供給してもよい。CNN316(CNN_E1)は、座標集合C_Xの点数に対応するN_X = |C_X|を点数符号化部326へ供給してもよい。
CNN316 (CNN_E1) may obtain the sparse tensor of the calculation result of the guide surface
ガイド面特徴量導出部317は、ガイド面特徴量導出部315と同様の処理部であり、ガイド面特徴量の導出に関する処理を行う。つまり、ガイド面特徴量導出部317は、上述したように、処理対象の疎テンソル{C^in, F^in}を取得し、その処理対象の座標集合C^inの各座標c_i ∈ C^inについてガイド面特徴量g(c_i)を導出し、得られたガイド面特徴量集合g(C^in) = {g(c_i)}_iを処理対象の特徴量集合F^inに連結し、演算結果の疎テンソル{C^in, [F^in, g(C^in)]}を返す。
The guide surface
ガイド面特徴量導出部317は、CNN316(CNN_E1)の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。また、ガイド面特徴量導出部317は、ガイド面復号部313から供給される復号ガイド面を取得してもよい。そして、ガイド面特徴量導出部317は、その復号ガイド面を用いて、取得した疎テンソルに対して上述のような処理を行い、演算結果の疎テンソルを生成してもよい。ガイド面特徴量導出部317は、その生成した演算結果の疎テンソルをCNN318(CNN_E2)へ供給してもよい。
The guide surface
CNN318(CNN_E2)は、CNN316(CNN_E1)と同様に、スパース3D-CNNである。CNN318(CNN_E2)は、ガイド面特徴量導出部317の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。CNN318(CNN_E2)は、3層のIRN(Inception-Residual Network)により構成されてもよい。IRNもスパース3D-CNNであり、スパース3D畳み込み層と非線形変換層により構成される。CNN318(CNN_E2)は、処理対象の疎テンソルに対してその3層のIRNを用いた演算を行ってもよい。CNN318(CNN_E2)は、得られた演算結果の疎テンソルX' = [C_X', F_X']をCNN319(CNN_E3)へ供給してもよい。なお、この疎テンソルX' = [C_X', F_X']のスケールは、1/2倍(x1/2)である。
CNN318 (CNN_E2) is a sparse 3D-CNN, similar to CNN316 (CNN_E1). CNN318 (CNN_E2) may obtain the sparse tensor resulting from the calculation of the guide surface
CNN319(CNN_E3)は、CNN316(CNN_E1)と同様に、スパース3D-CNNである。CNN319(CNN_E3)は、CNN318(CNN_E2)の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。CNN319(CNN_E3)は、2層のスパース3D畳み込み層と2層のReLU層により構成され、処理対象の疎テンソルに対して1/2ダウンスケールを行ってもよい。CNN319(CNN_E3)は、得られた演算結果の疎テンソルをガイド面特徴量導出部320へ供給してもよい。CNN319(CNN_E3)は、座標集合C_Xを1/2ダウンスケールした座標集合C_X'の点数に対応するN_X' = |C_X'|を点数符号化部326へ供給してもよい。
The CNN319 (CNN_E3) is a sparse 3D-CNN, similar to the CNN316 (CNN_E1). The CNN319 (CNN_E3) may obtain the sparse tensor resulting from the calculation of the CNN318 (CNN_E2) as the sparse tensor to be processed. The CNN319 (CNN_E3) is composed of two sparse 3D convolutional layers and two ReLU layers, and may perform 1/2 downscaling on the sparse tensor to be processed. The CNN319 (CNN_E3) may supply the sparse tensor resulting from the calculation to the guide surface
ガイド面特徴量導出部320は、ガイド面特徴量導出部315と同様の処理部であり、ガイド面特徴量の導出に関する処理を行う。つまり、ガイド面特徴量導出部320は、上述したように、処理対象の疎テンソル{C^in, F^in}を取得し、その処理対象の座標集合C^inの各座標c_i ∈ C^inについてガイド面特徴量g(c_i)を導出し、得られたガイド面特徴量集合g(C^in) = {g(c_i)}_iを処理対象の特徴量集合F^inに連結し、演算結果の疎テンソル{C^in, [F^in, g(C^in)]}を返す。
The guide surface
ガイド面特徴量導出部320は、CNN319(CNN_E3)の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。また、ガイド面特徴量導出部320は、ガイド面復号部313から供給される復号ガイド面を取得してもよい。そして、ガイド面特徴量導出部320は、その復号ガイド面を用いて、処理対象の疎テンソルに対して上述のような処理を行い、演算結果の疎テンソルを生成してもよい。ガイド面特徴量導出部320は、その生成した演算結果の疎テンソルをCNN321(CNN_E4)へ供給してもよい。
The guide surface
CNN321(CNN_E4)は、CNN318(CNN_E2)と同様に、スパース3D-CNNである。CNN321(CNN_E4)は、ガイド面特徴量導出部320の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。CNN321(CNN_E4)は、3層のIRNにより構成され、その処理対象の疎テンソルに対してその3層のIRNを用いた演算を行ってもよい。CNN321(CNN_E4)は、得られた演算結果の疎テンソルX'' = [C_X'', F_X'']をCNN322(CNN_E5)へ供給してもよい。なお、この疎テンソルX'' = [C_X'', F_X'']のスケールは、1/4倍(x1/4)である。
The CNN321 (CNN_E4) is a sparse 3D-CNN, similar to the CNN318 (CNN_E2). The CNN321 (CNN_E4) may obtain the sparse tensor resulting from the calculation of the guide surface
CNN322(CNN_E5)は、CNN316(CNN_E1)と同様に、スパース3D-CNNである。CNN322(CNN_E5)は、CNN321(CNN_E4)の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。CNN322(CNN_E5)は、2層のスパース3D畳み込み層と2層のReLU層により構成され、処理対象の疎テンソルに対して1/2ダウンスケールを行ってもよい。CNN322(CNN_E5)は、得られた演算結果の疎テンソルをCNN323(CNN_E6)へ供給してもよい。CNN322(CNN_E5)は、座標集合C_Xを1/4ダウンスケールした座標集合C_X''の点数に対応するN_X'' = |C_X''|を点数符号化部326へ供給してもよい。
CNN322 (CNN_E5) is a sparse 3D-CNN, similar to CNN316 (CNN_E1). CNN322 (CNN_E5) may obtain the sparse tensor resulting from the computation of CNN321 (CNN_E4) as the sparse tensor to be processed. CNN322 (CNN_E5) is composed of two sparse 3D convolutional layers and two ReLU layers, and may perform 1/2 downscaling on the sparse tensor to be processed. CNN322 (CNN_E5) may supply the sparse tensor resulting from the computation obtained to CNN323 (CNN_E6). CNN322 (CNN_E5) may supply N_X'' = |C_X''|, which corresponds to the points of the coordinate set C_X'' obtained by downscaling the coordinate set C_X by 1/4, to the
CNN323(CNN_E6)は、CNN318(CNN_E2)と同様に、スパース3D-CNNである。CNN323(CNN_E6)は、CNN322(CNN_E5)の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。CNN323(CNN_E6)は、3層のIRNと1層のスパース3D畳み込み層により構成され、その処理対象の疎テンソルに対してその3層のIRNおよび1層のスパース3D畳み込み層を用いた演算を行ってもよい。CNN323(CNN_E6)は、得られた演算結果の疎テンソルY = {C_Y, F_Y}を座標符号化部324および特徴量符号化部325へ供給してもよい。また、CNN323(CNN_E6)は、演算結果の座標集合C_Yを座標符号化部324へ供給し、演算結果の特徴量集合F_Yを特徴量符号化部325へ供給してもよい。なお、この疎テンソルY = {C_Y, F_Y}のスケールは、1/8倍(x1/8)である。
CNN323 (CNN_E6) is a sparse 3D-CNN, similar to CNN318 (CNN_E2). CNN323 (CNN_E6) may obtain the sparse tensor resulting from the computation of CNN322 (CNN_E5) as the sparse tensor to be processed. CNN323 (CNN_E6) may be configured with three layers of IRN and one layer of sparse 3D convolutional layer, and may perform computations on the sparse tensor to be processed using the three layers of IRN and one layer of sparse 3D convolutional layer. CNN323 (CNN_E6) may supply the sparse tensor Y = {C_Y, F_Y} resulting from the computation to the coordinate
座標符号化部324は、G-PCC(Geometry-based Point Cloud Compression)符号化器であり、座標(座標集合)の符号化に関する処理を行う。座標符号化部324は、CNN323(CNN_E6)から供給される疎テンソルY = {C_Y, F_Y}(またはその座標集合C_Y)を取得してもよい。座標符号化部324は、その座標集合C_Yを符号化し、その座標集合の符号化データ(座標ビットストリームとも称する)を生成してもよい。その際、座標符号化部324は、座標集合C_Yをロスレス方式で符号化してもよい。例えば、座標符号化部324は、座標集合C_Yを、オクツリー(Octree)を用いて符号化してもよい。座標符号化部324は、生成した座標ビットストリームを符号化装置300の外部に出力してもよい。
The coordinate
特徴量符号化部325は、特徴量(特徴量集合)の符号化に関する処理を行う。特徴量符号化部325は、CNN323(CNN_E6)から供給される疎テンソルY = {C_Y, F_Y}(またはその特徴量集合F_Y)を取得してもよい。特徴量符号化部325は、その特徴量集合F_Yを量子化してエントロピ符号化し、その特徴量集合の符号化データ(特徴量ビットストリームとも称する)を生成してもよい。つまり、特徴量符号化部325は、特徴量集合F_Yをロッシー方式で符号化する。特徴量符号化部325は、生成した特徴量ビットストリームを符号化装置300の外部に出力してもよい。
The
点数符号化部326は、各スケールの座標集合の点数の符号化に関する処理を行う。点数符号化部326は、CNN316(CNN_E1)から供給される座標集合C_Xの点数に対応するN_X = |C_X|を取得してもよい。点数符号化部326は、CNN319(CNN_E3)から供給される座標集合C_Xを1/2ダウンスケールした座標集合C_X'の点数に対応するN_X' = |C_X'|を取得してもよい。点数符号化部326は、CNN322(CNN_E5)から供給される座標集合C_Xを1/4ダウンスケールした座標集合C_X''の点数に対応するN_X'' = |C_X''|を取得してもよい。点数符号化部326は、それらのN_X、N_X'、およびN_X''を符号化し、点数の符号化データ(点数ビットストリームとも称する)を生成してもよい。点数符号化部326は、生成した点数ビットストリームを符号化装置300の外部に出力してもよい。
The
つまり、符号化装置300において、ガイド面特徴量導出部315、ガイド面特徴量導出部317、およびガイド面特徴量導出部320は、ポイントクラウドを形成する点の座標の集合である第1の座標集合、その座標の特徴量の集合である第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、ガイド面および点の位置関係に基づく特徴量であるガイド面特徴量を導出する。また、CNN316、CNN318、CNN319、CNN321、CNN322、およびCNN323は、その第1の座標集合と、そのガイド面特徴量を反映させた第1の特徴量集合とを用いて(ガイド面特徴量を含む特徴量を用いて)所定の演算を行い、第2の座標集合および第2の特徴量集合を導出する。したがって、CNN316、CNN318、CNN319、CNN321、CNN322、およびCNN323は、演算部とも言える。また、座標符号化部324は、導出された第2の座標集合を符号化する。また、特徴量符号化部325は、導出された第2の特徴量集合を符号化する。そして、第2の座標集合および第2の特徴量集合の符号化データの符号量は、第1の座標集合および第1の特徴量集合の符号化データの符号量よりも少ない。
That is, in the
このような構成を有することにより、符号化装置300は、符号化する情報量を低減させることができ、符号化効率の低減を抑制することができる。
By having such a configuration, the
なお、CNNやガイド面特徴量導出部の構成はどのようなものであってもよく、図7の例に限定されない。例えば、CNNやガイド面特徴量導出部の数はいくつであってもよい。また、ダウンスケールの回数や各回の変換率はいくつであってもよい。また、図7においては演算部が3D-CNNの場合を例に説明したが、演算部は、図5の演算部122のように、3D-CNN、多層パーセプトロン、その他のニューラルネットワーク等、どのような構成を有してもよい。
Note that the CNN and guide surface feature derivation unit may have any configuration and are not limited to the example in FIG. 7. For example, there may be any number of CNNs and guide surface feature derivation units. Furthermore, the number of downscalings and the conversion rate for each downscaling may be any number. Furthermore, while FIG. 7 illustrates an example in which the calculation unit is 3D-CNN, the calculation unit may have any configuration, such as 3D-CNN, a multilayer perceptron, or other neural networks, as in the
また、ガイド面特徴量導出部は、少なくともCNN列の先頭に設けられていればよい。その他に、CNN列の何処に設けられていてもよい。例えば、上述したように、ガイド面特徴量は、スケール毎に導出されてもよい。例えば、図7に示されるように、ガイド面特徴量導出部315は1/1スケールにおいてガイド面特徴量を導出し、ガイド面特徴量導出部317は1/2スケールにおいてガイド面特徴量を導出し、ガイド面特徴量導出部320は1/4スケールにおいてガイド面特徴量を導出してもよい。なお、図7の例では省略されているが、1/8スケールについてもガイド面特徴量を導出してもよい。つまり、第2の座標集合および第2の特徴量集合のスケールが、第1の座標集合および第1の特徴量集合のスケールよりも小さくてもよい。また、演算部は、所定の演算を再帰的に複数回繰り返すことにより、第2の座標集合および第2の特徴量集合を導出してもよい。また、演算部は、その複数回の全部または一部の所定の演算において、入力される座標集合および特徴量集合をダウンスケールしてもよい。そして、ガイド面特徴量導出部が、座標集合および特徴量集合の一部のスケールまたは全てのスケールについて、それぞれガイド面特徴量を導出してもよい。
Furthermore, the guide surface feature amount derivation unit only needs to be provided at least at the beginning of the CNN sequence. In addition, it may be provided anywhere in the CNN sequence. For example, as described above, the guide surface feature amount may be derived for each scale. For example, as shown in FIG. 7, the guide surface feature
また、ガイド面を符号化してもよい。また、ビットストリームを復号してガイド面を生成(復元)してもよい。また、ガイド面を生成してもよい。例えば、図7に示されるように、ガイド面生成部311がポイントクラウドを用いてガイド面を生成し、ガイド面符号化部312がそのガイド面を符号化してガイド面の符号化データを生成し、ガイド面復号部313がそのガイド面の符号化データを復号し、ガイド面を生成してもよい。
The guide surface may also be encoded. The bit stream may also be decoded to generate (restore) the guide surface. The guide surface may also be generated. For example, as shown in FIG. 7, the guide
<符号化処理の流れ>
符号化装置300は、符号化処理を実行することにより、上述のようにジオメトリを符号化する。この符号化処理の流れの例を、図8および図9のフローチャートを参照して説明する。
<Encoding process flow>
The
符号化処理が開始されると、ガイド面生成部311および疎テンソル構築部314は、図8のステップS301において、符号化装置300へ入力されるポイントクラウドである入力点群C_Xを取得する。
When the encoding process is started, the guide
ステップS302において、ガイド面生成部311は、その入力点群C_Xからガイド面を生成する。
In step S302, the guide
ステップS303において、ガイド面符号化部312は、その生成されたガイド面を符号化し、ガイド面ビットストリームを生成する。ガイド面符号化部312は、そのガイド面ビットストリームを符号化装置300の外部へ出力する。
In step S303, the guide
ステップS304において、ガイド面復号部313は、そのガイド面ビットストリームを復号し、復号ガイド面を生成(復元)する。
In step S304, the guide
ステップS305において、疎テンソル構築部314は、入力点群C_Xから入力疎テンソルX={C_X, F_X}(スケール1倍)を生成する。
In step S305, the sparse
ステップS306において、ガイド面特徴量導出部315は、{C^in, F^in} ← (C_X, F_X)とする。つまり、ガイド面特徴量導出部315は、入力疎テンソルX={C_X, F_X}を、処理対象の疎テンソル(C^in, F^in)とする。
In step S306, the guide surface
ステップS307において、ガイド面特徴量導出部315、ガイド面特徴量導出部317、または、ガイド面特徴量導出部320は、次の3D-CNNにガイド面特徴量を入力するか否かを判定する。次の3D-CNNにガイド面特徴量を入力すると判定された場合、処理はステップS308へ進む。
In step S307, the guide surface
ステップS308において、ガイド面特徴量導出部315、ガイド面特徴量導出部317、または、ガイド面特徴量導出部320は、ガイド面特徴量集合導出処理を実行し、処理対象の疎テンソルと復号ガイド面とを用いてガイド面特徴量集合g(C^in)を導出する。
In step S308, the guide surface
ステップS309において、ガイド面特徴量導出部315、ガイド面特徴量導出部317、または、ガイド面特徴量導出部320は、F^in ← [F^in, g(C^in)]とする。つまり、ガイド面特徴量導出部315、ガイド面特徴量導出部317、または、ガイド面特徴量導出部320は、処理対象の特徴量集合およびガイド面特徴量集合g(C^in)を連結したものを次の3D-CNNの処理対象の特徴量集合とする。
In step S309, the guide surface
ステップS309の処理が終了すると、処理は図9へ進む。また、ステップS307において、次の3D-CNNにガイド面特徴量を入力しないと判定された場合、処理は図9へ進む。つまり、3D-CNNの直前にガイド面特徴量導出部が存在しない場合、ステップS308およびステップS309の処理が省略される。例えば符号化装置300が図7に示される構成例である場合、次の3D-CNNがCNN316(CNN_E1)、CNN318(CNN_E2)、またはCNN321(CNN_E4)のとき、ステップS308およびステップS309の処理が実行され、次の3D-CNNがCNN319(CNN_E3)、CNN322(CNN_E5)、またはCNN323(CNN_E6)のとき、ステップS308およびステップS309の処理が省略される。
When the processing of step S309 is completed, the processing proceeds to FIG. 9. Also, in step S307, if it is determined that the guide surface feature amount is not to be input to the next 3D-CNN, the processing proceeds to FIG. 9. In other words, if there is no guide surface feature amount derivation unit immediately before the 3D-CNN, the processing of steps S308 and S309 is omitted. For example, in the case where the
図9のステップS321において、CNN316(CNN_E1)、CNN318(CNN_E2)、CNN319(CNN_E3)、CNN321(CNN_E4)、CNN322(CNN_E5)、またはCNN323(CNN_E6)は、処理対象の疎テンソル{C^in, F^in}に3D-CNN演算を行い、演算結果の疎テンソル{C^out, F^out}を導出する。 In step S321 of FIG. 9, CNN316 (CNN_E1), CNN318 (CNN_E2), CNN319 (CNN_E3), CNN321 (CNN_E4), CNN322 (CNN_E5), or CNN323 (CNN_E6) performs 3D-CNN operations on the sparse tensor {C^in, F^in} to be processed, and derives the sparse tensor {C^out, F^out} as the operation result.
ステップS322において、CNN323(CNN_E6)は、全ての3D-CNNについて処理を行ったか否かを判定する。全ての3D-CNNについて処理を行っていない(すなわち、未処理の3D-CNNが存在する(少なくともCNN323(CNN_E6)が未処理である))と判定された場合、処理はステップS323へ進む。 In step S322, CNN323 (CNN_E6) determines whether or not all 3D-CNNs have been processed. If it is determined that all 3D-CNNs have not been processed (i.e., there are unprocessed 3D-CNNs (at least CNN323 (CNN_E6) has not been processed)), the process proceeds to step S323.
ステップS323において、CNN316(CNN_E1)、CNN318(CNN_E2)、CNN319(CNN_E3)、CNN321(CNN_E4)、またはCNN322(CNN_E5)は、{C^in, F^in} ← {C^out, F^out}とする。つまり、CNN316(CNN_E1)、CNN318(CNN_E2)、CNN319(CNN_E3)、CNN321(CNN_E4)、またはCNN322(CNN_E5)は、自身が導出した演算結果の疎テンソル{C^out, F^out}を、次の処理部(ガイド面特徴量導出部または3D-CNN)の処理対象の疎テンソル{C^in, F^in}とする。 In step S323, CNN316 (CNN_E1), CNN318 (CNN_E2), CNN319 (CNN_E3), CNN321 (CNN_E4), or CNN322 (CNN_E5) sets {C^in, F^in} ← {C^out, F^out}. In other words, CNN316 (CNN_E1), CNN318 (CNN_E2), CNN319 (CNN_E3), CNN321 (CNN_E4), or CNN322 (CNN_E5) sets the sparse tensor {C^out, F^out} resulting from the calculation it derived as the sparse tensor {C^in, F^in} to be processed by the next processing unit (guide surface feature derivation unit or 3D-CNN).
ステップS323の処理が終了すると、処理は図8のステップS307へ戻り、それ以降の処理が実行される。つまり、図8のステップS307乃至ステップS309の各処理、並びに、図9のステップS321乃至ステップS323の各処理が、各3D-CNN(3D-CNNの直前にガイド面特徴量導出部が存在する場合は、そのガイド面特徴量導出部も含む)に対して実行される。 When the processing of step S323 is completed, the process returns to step S307 in FIG. 8, and the subsequent processing is executed. That is, the processing of each of steps S307 to S309 in FIG. 8 and the processing of each of steps S321 to S323 in FIG. 9 are executed for each 3D-CNN (including the guide surface feature derivation unit if one exists immediately before the 3D-CNN).
そして、図9のステップS322において、全ての3D-CNNについて処理を行った(すなわち、CNN323(CNN_E6)について処理が行われた)と判定された場合、処理はステップS324へ進む。 If it is determined in step S322 of FIG. 9 that processing has been performed for all 3D-CNNs (i.e., processing has been performed for CNN323 (CNN_E6)), processing proceeds to step S324.
ステップS324において、CNN323(CNN_E6)は、{C_Y, F_Y} ← {C^out, F^out}とする。つまり、最後のCNN323(CNN_E6)は、自身が導出した演算結果の疎テンソル{C^out, F^out}を、出力疎テンソル{C_Y, F_Y}とする。 In step S324, CNN323 (CNN_E6) sets {C_Y, F_Y} ← {C^out, F^out}. In other words, the last CNN323 (CNN_E6) sets the sparse tensor {C^out, F^out}, which is the result of the calculation it derived, as the output sparse tensor {C_Y, F_Y}.
ステップS325において、座標符号化部324は、その出力疎テンソル{C_Y, F_Y}の座標集合C_Yを符号化し、座標ビットストリームを生成する。また、その座標ビットストリームを符号化装置300の外部へ出力する。
In step S325, the coordinate
ステップS326において、特徴量符号化部325は、その出力疎テンソル{C_Y, F_Y}の特徴量集合F_Yを符号化し、特徴量ビットストリームを生成する。また、その特徴量ビットストリームを符号化装置300の外部へ出力する。
In step S326, the
ステップS327において、スケール毎の点数を符号化し、点数ビットストリームを生成する。また、その点数ビットストリームを符号化装置300の外部へ出力する。
In step S327, the scores for each scale are encoded to generate a score bit stream. The score bit stream is then output to the outside of the
ステップS327の処理が終了すると、符号化処理が終了する。 When step S327 is completed, the encoding process ends.
<ガイド面特徴量集合導出処理の流れ>
次に、図8のステップS308において実行されるガイド面特徴量集合導出処理の流れの例を、図10のフローチャートを参照して説明する。
<Flow of guide surface feature set derivation process>
Next, an example of the flow of the guide surface feature amount set derivation process executed in step S308 in FIG. 8 will be described with reference to the flowchart in FIG.
ガイド面特徴量集合導出処理が開始されると、ステップS331において、ガイド面特徴量導出部315、ガイド面特徴量導出部317、または、ガイド面特徴量導出部320は、座標c_i ∈ C^inを取り出す。つまり、ガイド面特徴量導出部315、ガイド面特徴量導出部317、または、ガイド面特徴量導出部320は、処理対象の座標集合C^inから1つの座標c_iを選択し、それを処理対象とする。
When the guide surface feature amount set derivation process is started, in step S331, the guide surface feature
ステップS332において、ガイド面特徴量導出部315、ガイド面特徴量導出部317、または、ガイド面特徴量導出部320は、その選択した座標c_iから見て、復号ガイド面上の最近傍点p_iを検索する。
In step S332, the guide surface feature
ステップS333において、ガイド面特徴量導出部315、ガイド面特徴量導出部317、または、ガイド面特徴量導出部320は、g(c_i) = p_i - c_iを返す。つまり、ガイド面特徴量導出部315、ガイド面特徴量導出部317、または、ガイド面特徴量導出部320は、ガイド面および点の位置関係(この例では、p_i - c_i)に基づくガイド面特徴量g(c_i)を導出する。
In step S333, the guide surface feature
ステップS334において、ガイド面特徴量導出部315、ガイド面特徴量導出部317、または、ガイド面特徴量導出部320は、全ての座標c_i ∈ C^inについて処理を行ったか否かを判定する。未処理の座標c_iが存在すると判定された場合、処理はステップS331に戻り、それ以降の処理が実行される。つまり、処理対象の座標集合C^inの各座標値c_iについて、ステップS331乃至ステップS334の各処理が実行される。
In step S334, the guide surface
そして、ステップS334において、全ての座標値c_iについて処理を行ったと判定された場合、ガイド面特徴量集合導出処理が終了し、処理は図8に戻る。 If it is determined in step S334 that processing has been performed for all coordinate values c_i, the guide surface feature set derivation process ends and processing returns to FIG. 8.
このように各処理を実行することにより、符号化装置300は、符号化する情報量を低減させることができ、符号化効率の低減を抑制することができる。
By performing each process in this manner, the
<復号装置>
図11は、本技術を適用した情報処理装置の一態様である復号装置の構成の一例を示すブロック図である。図11に示される復号装置350は、ポイントクラウド(3Dデータ)のジオメトリが符号化されたビットストリームを復号する装置である。例えば、復号装置350は、符号化装置300によりポイントクラウド(のジオメトリ)が符号化されて生成されたビットストリーム(ガイド面ビットストリーム、座標ビットストリーム、特徴量ビットストリーム、および点数ビットストリーム)を復号し、ポイントクラウド(のジオメトリ)を生成(復元)する。
<Decoding device>
Fig. 11 is a block diagram showing an example of the configuration of a decoding device, which is one aspect of an information processing device to which the present technology is applied. The
なお、図11においては、処理部やデータの流れ等の主なものを示しており、図11に示されるものが全てとは限らない。つまり、復号装置350において、図11においてブロックとして示されていない処理部が存在したり、図11において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
Note that FIG. 11 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 11. In other words, in the
図11に示されるように、復号装置350は、点数復号部361、座標復号部362、特徴量復号部363、ガイド面復号部364、CNN365(CNN_D1)、ガイド面特徴量導出部366、CNN367(CNN_D2)、占有状態分類部368、CNN369(CNN_D3)、ガイド面特徴量導出部370、CNN371(CNN_D4)、占有状態分類部372、CNN373(CNN_D5)、ガイド面特徴量導出部374、CNN375(CNN_D6)、および占有状態分類部376を有する。
As shown in FIG. 11, the
点数復号部361は、点数ビットストリームの復号に関する処理を実行する。例えば、点数復号部361は、復号装置350に入力される点数ビットストリームを取得してもよい。点数復号部361は、その取得した点数ビットストリームを復号し、各スケールの座標集合の点数を示す情報を生成(復元)してもよい。例えば、点数復号部361は、点数ビットストリームを復号し、点数符号化部326(図7)により符号化された、符号化前の座標集合C_Xの点数に対応するN_X = |C_X|、符号化前の座標集合C_Xを1/2ダウンスケールした座標集合C_X'の点数に対応するN_X' = |C_X'|、符号化前の座標集合C_Xを1/4ダウンスケールした座標集合C_X''の点数に対応するN_X'' = |C_X''|を生成(復元)してもよい。点数復号部361は、生成したN_Xを占有状態分類部376へ供給してもよい。点数復号部361は、生成したN_X'を占有状態分類部372へ供給してもよい。点数復号部361は、生成したN_X''を占有状態分類部368へ供給してもよい。
The
座標復号部362は、G-PCC復号器であり、座標ビットストリームの復号に関する処理を実行する。例えば、座標復号部362は、復号装置350に入力される座標ビットストリームを取得してもよい。座標復号部362は、その取得した座標ビットストリームを復号し、座標集合C_Yを生成(復元)してもよい。その際、座標復号部362は、座標ビットストリームをロスレス方式で復号してもよい。例えば、座標復号部362は、座標ビットストリームを、オクツリー(Octree)を用いて復号してもよい。座標復号部362は、生成した座標集合C_YをCNN365(CNN_D1)へ供給してもよい。
The coordinate
特徴量復号部363は、特徴量ビットストリームの復号に関する処理を実行する。例えば、特徴量復号部363は、復号装置350に入力される特徴量ビットストリームを取得してもよい。特徴量復号部363は、その取得した特徴量ビットストリームをエントロピ復号し、特徴量集合F_Yを生成(復元)してもよい。その際、特徴量復号部363は、特徴量ビットストリームをロッシー方式で復号する。したがって、特徴量復号部363により生成される特徴量集合F_Yは、特徴量符号化部325(図7)により符号化される前の特徴量集合F_Yと完全に一致しなくてもよい。特徴量復号部363は、生成した特徴量集合F_YをCNN365(CNN_D1)へ供給してもよい。
The
ガイド面復号部364は、ガイド面復号部313(図7)と同様の処理部であり、ガイド面ビットストリームの復号に関する処理を実行する。例えば、ガイド面復号部364は、復号装置350に入力されるガイド面ビットストリームを取得してもよい。ガイド面復号部364は、その取得したガイド面ビットストリームを復号し、復号ガイド面を生成してもよい。この復号方法は、ガイド面符号化部312(図7)が適用する符号化方法に対応するものであればどのようなものであってもよい。例えばガイド面がメッシュにより構成される場合、ガイド面復号部364は、メッシュ用の復号方法を適用してガイド面ビットストリームを復号してもよい。この復号方法は既存の手法であってもよい。例えば、ガイド面がメッシュの場合、Draco復号を適用してもよい。なお、このガイド面の符号化・復号は、ロスレスな方式であってもよいし、ロッシーな方式であってもよい。つまり、ガイド面復号部364が生成(復元)するガイド面(復号ガイド面とも称する)は、符号化前のガイド面(例えばガイド面生成部311が生成したガイド面)と完全に一致しなくてもよい。ガイド面復号部364は、生成した復号ガイド面を、ガイド面特徴量導出部366、ガイド面特徴量導出部370、およびガイド面特徴量導出部374へ供給してもよい。
The guide
CNN365(CNN_D1)は、スパース3D-CNNであり、主にスパース3D畳み込み層や非線形変換層により構成され、疎テンソルを処理対象として取得し、その処理対象の疎テンソルに対して所定の演算を行い、その演算結果の疎テンソルを出力する。例えば、CNN365(CNN_D1)は、座標復号部362から供給される座標集合C_Yと、特徴量復号部363から供給される特徴量集合F_Yを、処理対象の疎テンソルY = {C_Y, F_Y}として取得してもよい。この疎テンソルY = {C_Y, F_Y}のスケールは、符号化前の1/8倍(x1/8)である。CNN365(CNN_D1)は、2層のスパース3D畳み込み層と2層のReLU層により構成され、処理対象の疎テンソルに対して2倍のアップスケールを行ってもよい。CNN365(CNN_D1)は、得られた演算結果の疎テンソルをガイド面特徴量導出部366へ供給してもよい。
CNN365 (CNN_D1) is a sparse 3D-CNN, and is mainly composed of sparse 3D convolution layers and nonlinear transformation layers. It acquires a sparse tensor as a processing target, performs a predetermined operation on the sparse tensor to be processed, and outputs a sparse tensor as the result of the operation. For example, CNN365 (CNN_D1) may acquire a coordinate set C_Y supplied from the coordinate
ガイド面特徴量導出部366は、ガイド面特徴量導出部315等の符号化装置300のガイド面特徴量導出部と同様の処理部であり、ガイド面特徴量の導出に関する処理を行う。ガイド面特徴量導出部366は、処理対象の疎テンソル{C^in, F^in}を取得し、その処理対象の座標集合C^inの各座標c_i ∈ C^inについてガイド面特徴量g(c_i)を導出し、得られたガイド面特徴量集合g(C^in) = {g(c_i)}_iを処理対象の特徴量集合F^inに連結し、演算結果の疎テンソル{C^in, [F^in, g(C^in)]}を返す。ガイド面特徴量を計算する方法g(c_i)としては、符号化装置300の場合と同様、座標値c_iから見てガイド面上の最近傍点p_iを検索し、g(c_i) = p_i - c_i ∈ R^3とする方法がある。つまり、この場合、演算結果の特徴量集合[F^in, g(C^in)]の次元は処理対象の特徴量集合F^inの次元よりも3だけ増える。
The guide surface
ガイド面特徴量導出部366は、CNN365(CNN_D1)の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。また、ガイド面特徴量導出部366は、ガイド面復号部364から供給される復号ガイド面を取得してもよい。そして、ガイド面特徴量導出部366は、その復号ガイド面を用いて、その処理対象の疎テンソルに対して上述のような処理を行い、演算結果の疎テンソルを生成してもよい。また、ガイド面特徴量導出部366は、その生成した演算結果の疎テンソルをCNN367(CNN_D2)へ供給してもよい。
The guide surface
CNN367(CNN_D2)は、CNN365(CNN_D1)と同様に、スパース3D-CNNであり、主にスパース3D畳み込み層や非線形変換層により構成される。つまり、CNN367(CNN_D2)は、疎テンソルを処理対象として取得し、その処理対象の疎テンソルに対して所定の演算を行い、その演算結果の疎テンソルを出力する。例えば、CNN367(CNN_D2)は、ガイド面特徴量導出部366の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。ただし、その処理対象の疎テンソルは、ガイド面特徴量の分だけ次元が増えているため、CNN367(CNN_D2)の入出力次元もそれに合わせて変更される。CNN367(CNN_D2)は、3層のIRNにより構成され、処理対象の疎テンソルに対してその3層のIRNを用いた演算を行ってもよい。CNN367(CNN_D2)は、得られた演算結果の疎テンソル{Up(C_Y), F_X''}を占有状態分類部368へ供給してもよい。なお、Up()はxyz方向に2倍ずつアップサンプルする処理を表す。例えばUp(C_Y)の点数はC_Yの点数の8倍となる。
CNN367 (CNN_D2), like CNN365 (CNN_D1), is a sparse 3D-CNN, and is mainly composed of a sparse 3D convolution layer and a nonlinear transformation layer. In other words, CNN367 (CNN_D2) acquires a sparse tensor as a processing target, performs a predetermined operation on the sparse tensor to be processed, and outputs a sparse tensor as the operation result. For example, CNN367 (CNN_D2) may acquire a sparse tensor as the operation result of the guide surface
占有状態分類部368は、1層のスパース3D畳み込み層により構成される。このスパース3D畳み込み層は、処理対象の疎テンソルを入力し、演算結果の疎テンソルを出力する。なお、このスパース3D畳み込み層の演算結果の疎テンソルの特徴量はその座標の占有確率値を表す。占有状態分類部368は、占有確率値が高い方から所定数の座標(上位k個の座標)を抽出し、それ以外の座標を削除する。つまり、占有状態分類部368は、入力疎テンソルの座標集合の内の上位k個以外を削除した座標集合と、その座標集合に対応する特徴量集合(つまり、入力疎テンソルの特徴量集合のうち、削除された座標に対応する特徴量を削除したもの)とを出力する。なお、このkには、N_X、N_X'、N_X''のうちの、処理対象の疎テンソルに対応するスケールの値が適用される。また、占有状態分類部368は、F^out中の削除される座標に対応する特徴量も削除する。
The occupancy
占有状態分類部368は、CNN367(CNN_D2)の演算結果の疎テンソル{Up(C_Y), F_X''}を処理対象の疎テンソルとして取得してもよい。占有状態分類部368は、点数復号部361から供給される、符号化前の座標集合C_Xを1/4ダウンスケールした座標集合C_X''の点数に対応するN_X'' = |C_X''|を取得してもよい。占有状態分類部368は、その処理対象の疎テンソルを用いて占有確率値を予測し、占有確率値の上位N_X''個の座標値を抽出し、それ以外の座標値を削除し、演算結果の疎テンソルX'' = {C_X'', F_X''}を生成してもよい。占有状態分類部368は、その演算結果の疎テンソルX'' = {C_X'', F_X''}をCNN369(CNN_D3)へ供給してもよい。
The occupancy
CNN369(CNN_D3)は、CNN365(CNN_D1)と同様に、スパース3D-CNNであり、主にスパース3D畳み込み層や非線形変換層により構成される。つまり、CNN369(CNN_D3)は、疎テンソルを処理対象として取得し、その処理対象の疎テンソルに対して所定の演算を行い、その演算結果の疎テンソルを出力する。例えば、CNN369(CNN_D3)は、占有状態分類部368の演算結果の疎テンソルX'' = {C_X'', F_X''}を処理対象の疎テンソルとして取得してもよい。この疎テンソルX'' = {C_X'', F_X''}のスケールは、符号化前の1/4倍(x1/4)である。CNN369(CNN_D3)は、2層のスパース3D畳み込み層と2層のReLU層により構成され、処理対象の疎テンソルに対して2倍のアップスケールを行ってもよい。CNN369(CNN_D3)は、得られた演算結果の疎テンソルをガイド面特徴量導出部370へ供給してもよい。
CNN369 (CNN_D3), like CNN365 (CNN_D1), is a sparse 3D-CNN, and is mainly composed of sparse 3D convolutional layers and nonlinear transformation layers. In other words, CNN369 (CNN_D3) acquires a sparse tensor as a processing target, performs a predetermined operation on the sparse tensor to be processed, and outputs a sparse tensor as the operation result. For example, CNN369 (CNN_D3) may acquire the sparse tensor X'' = {C_X'', F_X''}, which is the operation result of the occupancy
ガイド面特徴量導出部370は、ガイド面特徴量導出部366と同様の処理部であり、ガイド面特徴量の導出に関する処理を行う。ガイド面特徴量導出部370は、ガイド面特徴量導出部366の場合と同様に、処理対象の疎テンソル{C^in, F^in}を取得し、その処理対象の座標集合C^inの各座標c_i ∈ C^inについてガイド面特徴量g(c_i)を導出し、得られたガイド面特徴量集合g(C^in) = {g(c_i)}_iを処理対象の特徴量集合F^inに連結し、演算結果の疎テンソル{C^in, [F^in, g(C^in)]}を返す。
The guide surface
ガイド面特徴量導出部370は、CNN369(CNN_D3)の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。また、ガイド面特徴量導出部370は、ガイド面復号部364から供給される復号ガイド面を取得してもよい。そして、ガイド面特徴量導出部370は、その復号ガイド面を用いて、その処理対象の疎テンソルに対して上述のような処理を行い、演算結果の疎テンソルを生成してもよい。また、ガイド面特徴量導出部370は、その生成した演算結果の疎テンソルをCNN371(CNN_D4)へ供給してもよい。
The guide surface
CNN371(CNN_D4)は、CNN367(CNN_D2)と同様に、スパース3D-CNNであり、主にスパース3D畳み込み層や非線形変換層により構成される。つまり、CNN371(CNN_D4)は、疎テンソルを処理対象として取得し、その処理対象の疎テンソルに対して所定の演算を行い、その演算結果の疎テンソルを出力する。例えば、CNN371(CNN_D4)は、ガイド面特徴量導出部370の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。ただし、その処理対象の疎テンソルは、ガイド面特徴量の分だけ次元が増えているため、CNN371(CNN_D4)の入出力次元もそれに合わせて変更される。CNN371(CNN_D4)は、3層のIRNにより構成され、処理対象の疎テンソルに対してその3層のIRNを用いた演算を行ってもよい。CNN371(CNN_D4)は、得られた演算結果の疎テンソル{Up(C_X''), F_X'}を占有状態分類部372へ供給してもよい。
CNN371 (CNN_D4) is a sparse 3D-CNN, similar to CNN367 (CNN_D2), and is mainly composed of a sparse 3D convolution layer and a nonlinear transformation layer. In other words, CNN371 (CNN_D4) acquires a sparse tensor as a processing target, performs a predetermined operation on the sparse tensor to be processed, and outputs a sparse tensor as the operation result. For example, CNN371 (CNN_D4) may acquire a sparse tensor as the operation result of the guide surface
占有状態分類部372は、占有状態分類部368と同様の処理部であり、1層のスパース3D畳み込み層により構成され、処理対象の疎テンソルの占有確率値を予測し、その占有確率値が高い方から所定数の座標(上位k個の座標)を抽出し、それ以外の座標を削除する。また、占有状態分類部372は、F^out中の削除される座標に対応する特徴量も削除する。
The occupancy
例えば、占有状態分類部372は、CNN371(CNN_D4)の演算結果の疎テンソル{Up(C_X''), F_X'}を処理対象の疎テンソルとして取得してもよい。占有状態分類部372は、点数復号部361から供給される、符号化前の座標集合C_Xを1/2ダウンスケールした座標集合C_X'の点数に対応するN_X' = |C_X'|を取得してもよい。占有状態分類部372は、その処理対象の疎テンソルを用いて占有確率値を予測し、占有確率値の上位N_X'個の座標値を抽出し、それ以外の座標値を削除し、演算結果の疎テンソルX' = {C_X', F_X'}を生成してもよい。占有状態分類部372は、その演算結果の疎テンソルX' = {C_X', F_X'}をCNN373(CNN_D5)へ供給してもよい。
For example, the occupancy
CNN373(CNN_D5)は、CNN365(CNN_D1)と同様に、スパース3D-CNNであり、主にスパース3D畳み込み層や非線形変換層により構成される。つまり、CNN373(CNN_D5)は、疎テンソルを処理対象として取得し、その処理対象の疎テンソルに対して所定の演算を行い、その演算結果の疎テンソルを出力する。例えば、CNN373(CNN_D5)は、占有状態分類部372の演算結果の疎テンソルX' = {C_X', F_X'}を処理対象の疎テンソルとして取得してもよい。この疎テンソルX' = {C_X', F_X'}のスケールは、符号化前の1/2倍(x1/2)である。CNN373(CNN_D5)は、2層のスパース3D畳み込み層と2層のReLU層により構成され、処理対象の疎テンソルに対して2倍のアップスケールを行ってもよい。CNN373(CNN_D5)は、得られた演算結果の疎テンソルをガイド面特徴量導出部374へ供給してもよい。
CNN373 (CNN_D5), like CNN365 (CNN_D1), is a sparse 3D-CNN, and is mainly composed of sparse 3D convolutional layers and nonlinear transformation layers. In other words, CNN373 (CNN_D5) acquires a sparse tensor as the processing target, performs a predetermined operation on the sparse tensor to be processed, and outputs a sparse tensor as the operation result. For example, CNN373 (CNN_D5) may acquire the sparse tensor X' = {C_X', F_X'}, which is the operation result of the occupancy
ガイド面特徴量導出部374は、ガイド面特徴量導出部366と同様の処理部であり、ガイド面特徴量の導出に関する処理を行う。ガイド面特徴量導出部374は、ガイド面特徴量導出部366の場合と同様に、処理対象の疎テンソル{C^in, F^in}を取得し、その処理対象の座標集合C^inの各座標c_i ∈ C^inについてガイド面特徴量g(c_i)を導出し、得られたガイド面特徴量集合g(C^in) = {g(c_i)}_iを処理対象の特徴量集合F^inに連結し、演算結果の疎テンソル{C^in, [F^in, g(C^in)]}を返す。
The guide surface
ガイド面特徴量導出部374は、CNN373(CNN_D5)の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。また、ガイド面特徴量導出部374は、ガイド面復号部364から供給される復号ガイド面を取得してもよい。そして、ガイド面特徴量導出部374は、その復号ガイド面を用いて、その処理対象の疎テンソルに対して上述のような処理を行い、演算結果の疎テンソルを生成してもよい。また、ガイド面特徴量導出部374は、その生成した演算結果の疎テンソルをCNN375(CNN_D6)へ供給してもよい。
The guide surface
CNN375(CNN_D6)は、CNN367(CNN_D2)と同様に、スパース3D-CNNであり、主にスパース3D畳み込み層や非線形変換層により構成される。つまり、CNN375(CNN_D6)は、疎テンソルを処理対象として取得し、その処理対象の疎テンソルに対して所定の演算を行い、その演算結果の疎テンソルを出力する。例えば、CNN375(CNN_D6)は、ガイド面特徴量導出部374の演算結果の疎テンソルを処理対象の疎テンソルとして取得してもよい。ただし、その処理対象の疎テンソルは、ガイド面特徴量の分だけ次元が増えているため、CNN375(CNN_D6)の入出力次元もそれに合わせて変更される。CNN375(CNN_D6)は、3層のIRNにより構成され、処理対象の疎テンソルに対してその3層のIRNを用いた演算を行ってもよい。CNN375(CNN_D6)は、得られた演算結果の疎テンソル{Up(C_X'), F_X}を占有状態分類部376へ供給してもよい。
CNN375 (CNN_D6) is a sparse 3D-CNN, similar to CNN367 (CNN_D2), and is mainly composed of a sparse 3D convolution layer and a nonlinear transformation layer. In other words, CNN375 (CNN_D6) acquires a sparse tensor as a processing target, performs a predetermined operation on the sparse tensor to be processed, and outputs a sparse tensor as the operation result. For example, CNN375 (CNN_D6) may acquire a sparse tensor as the operation result of the guide surface
占有状態分類部376は、占有状態分類部368と同様の処理部であり、1層のスパース3D畳み込み層により構成され、処理対象の疎テンソルの占有確率値を予測し、その占有確率値が高い方から所定数の座標(上位k個の座標)を抽出し、それ以外の座標を削除する。また、占有状態分類部376は、F^out中の削除される座標に対応する特徴量も削除する。
The occupancy
例えば、占有状態分類部376は、CNN375(CNN_D6)の演算結果の疎テンソル{Up(C_X'), F_X}を処理対象の疎テンソルとして取得してもよい。占有状態分類部376は、点数復号部361から供給される、符号化前の座標集合C_Xの点数に対応するN_X = |C_X|を取得してもよい。占有状態分類部376は、その処理対象の疎テンソルを用いて占有確率値を予測し、占有確率値の上位N_X個の座標値を抽出し、それ以外の座標値を削除し、演算結果の疎テンソルX = {C_X, F_X}を生成してもよい。この疎テンソルX = {C_X, F_X}のスケールは、符号化前の1倍(x1)である。つまり、占有状態分類部376は、ビットストリーム群(点数ビットストリーム、ガイド面ビットストリーム、座標ビットストリーム、および特徴量ビットストリーム)を復号して得られるポイントクラウドを生成(復元)してもよい。このポイントクラウドを復号点群C^Xとも称する。占有状態分類部376は、その演算結果の復号点群C_Xを復号装置350の外部へ出力してもよい。
For example, the occupancy
つまり、復号装置350において、座標復号部362が、符号化データを復号して、ポイントクラウドを形成する点の座標の集合である第1の座標集合を生成する。特徴量復号部363が、符号化データを復号して、その座標の特徴量の集合である第1の特徴量集合を生成する。ガイド面特徴量導出部366、ガイド面特徴量導出部370、およびガイド面特徴量導出部374が、第1の座標集合、第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、ガイド面および点の位置関係に基づく特徴量であるガイド面特徴量を導出する。CNN365、CNN367、CNN369、CNN371、CNN373、およびCNN375が、第1の座標集合と、ガイド面特徴量を反映させた前記第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出する。したがって、CNN365、CNN367、CNN369、CNN371、CNN373、およびCNN375は、演算部とも言える。
That is, in the
このような構成を有することにより、復号装置350は、符号化効率の低減を抑制することができる。
By having such a configuration, the
なお、CNN、ガイド面特徴量導出部、占有状態分類部等の構成はどのようなものであってもよく、図11の例に限定されない。例えば、CNN、ガイド面特徴量導出部、占有状態分類部のそれぞれの数はいくつであってもよい。また、ダウンスケールの回数や各回の変換率はいくつであってもよい。また、図11においては演算部が3D-CNNの場合を例に説明したが、演算部は、図5の演算部122のように、3D-CNN、多層パーセプトロン、その他のニューラルネットワーク等、どのような構成を有してもよい。
Note that the configurations of the CNN, guide surface feature derivation unit, occupancy state classification unit, etc. may be any configuration and are not limited to the example of FIG. 11. For example, there may be any number of CNNs, guide surface feature derivation units, and occupancy state classification units. Furthermore, the number of downscalings and the conversion rate for each downscaling may be any number. Furthermore, while FIG. 11 illustrates an example in which the calculation unit is 3D-CNN, the calculation unit may have any configuration, such as 3D-CNN, a multilayer perceptron, or other neural networks, as in the
また、ガイド面特徴量導出部は、CNN列の何処に設けられていてもよい。例えば、上述したように、ガイド面特徴量は、スケール毎に導出されてもよい。例えば、図11に示されるように、ガイド面特徴量導出部366は1/4スケールにおいてガイド面特徴量を導出し、ガイド面特徴量導出部370は1/2スケールにおいてガイド面特徴量を導出し、ガイド面特徴量導出部374は1/1スケールにおいてガイド面特徴量を導出してもよい。なお、図11の例では省略されているが、1/8スケールについてもガイド面特徴量を導出してもよい。つまり、第2の座標集合および第2の特徴量集合のスケールは、第1の座標集合および第1の特徴量集合のスケールよりも大きくてもよい。また、演算部が、所定の演算を再帰的に複数回繰り返すことにより、第2の座標集合および第2の特徴量集合を導出してもよい。また、演算部が、複数回の全部または一部の所定の演算において、入力される座標集合および特徴量集合をアップスケールしてもよい。そして、ガイド面特徴量導出部が、座標集合および特徴量集合の一部のスケールまたは全てのスケールについて、それぞれガイド面特徴量を導出してもよい。
The guide surface feature amount derivation unit may be provided anywhere in the CNN sequence. For example, as described above, the guide surface feature amount may be derived for each scale. For example, as shown in FIG. 11, the guide surface feature
また、復号してガイド面を生成(復元)してもよい。例えば、図11に示されるように、ガイド面復号部364が、ガイド面の符号化データを復号し、そのガイド面を生成してもよい。
The guide surface may also be generated (restored) by decoding. For example, as shown in FIG. 11, the guide
<復号処理の流れ>
復号装置350は、復号処理を実行することにより、上述のようにビットストリームを復号してジオメトリを生成(復元)する。この復号処理の流れの例を、図12および図13のフローチャートを参照して説明する。
<Decryption process flow>
The
復号処理が開始されると、点数復号部361は、図12のステップS351において、点数ビットストリームを復号し、各スケールの点数(N_X、N_X'、N_X'')を生成する。
When the decoding process starts, the
ステップS352において、座標復号部362は、座標ビットストリームを復号し、座標集合C_Yを生成する。
In step S352, the coordinate
ステップS353において、特徴量復号部363は、特徴量ビットストリームを復号し、特徴量集合F_Yを生成する。
In step S353, the
ステップS354において、ガイド面復号部364は、ガイド面ビットストリームを復号し、復号ガイド面を生成する。
In step S354, the guide
ステップS355において、CNN365(CNN_D1)は、{C^in, F^in} ← {C_Y, F_Y}とする。つまり、CNN365(CNN_D1)は、疎テンソルY = {C_Y, F_Y}を処理対象の疎テンソル{C^in, F^in}とする。 In step S355, CNN365 (CNN_D1) sets {C^in, F^in} ← {C_Y, F_Y}. In other words, CNN365 (CNN_D1) sets the sparse tensor Y = {C_Y, F_Y} as the sparse tensor {C^in, F^in} to be processed.
ステップS356において、CNN365(CNN_D1)、CNN367(CNN_D2)、CNN369(CNN_D3)、CNN371(CNN_D4)、CNN373(CNN_D5)、またはCNN375(CNN_D6)は、自身の3D-CNNにガイド面特徴量を入力するか否かを判定する。入力すると判定された場合、処理はステップS357へ進む。つまり処理対象のCNNが、CNN367(CNN_D2)、CNN371(CNN_D4)、またはCNN375(CNN_D6)である場合、処理はステップS357へ進む。 In step S356, CNN365 (CNN_D1), CNN367 (CNN_D2), CNN369 (CNN_D3), CNN371 (CNN_D4), CNN373 (CNN_D5), or CNN375 (CNN_D6) determines whether or not to input guide surface features to its own 3D-CNN. If it is determined that the guide surface features are to be input, the process proceeds to step S357. In other words, if the CNN to be processed is CNN367 (CNN_D2), CNN371 (CNN_D4), or CNN375 (CNN_D6), the process proceeds to step S357.
ステップS357において、ガイド面特徴量導出部366、ガイド面特徴量導出部370、またはガイド面特徴量導出部374は、ガイド面特徴量集合導出処理を実行し、ガイド面特徴量集合g(C^in)を導出する。このガイド面特徴量集合導出処理は、図10のフローチャートを参照して説明した場合と同様に実行される。
In step S357, the guide surface feature
ステップS358において、ガイド面特徴量導出部366、ガイド面特徴量導出部370、またはガイド面特徴量導出部374は、F^in ← [F^in, g(C^in)]とする。つまり、ガイド面特徴量導出部366、ガイド面特徴量導出部370、またはガイド面特徴量導出部374は、処理対象の特徴量集合およびガイド面特徴量集合g(C^in)を連結したものを次の3D-CNNの処理対象の特徴量集合とする。
In step S358, the guide surface
ステップS358の処理が終了すると処理は図13へ進む。また、図12のステップS356において、自身の3D-CNNにガイド面特徴量を入力しないと判定された場合、ステップS357およびステップS358の処理が省略され、処理は図13へ進む。つまり処理対象のCNNが、CNN365(CNN_D1)、CNN369(CNN_D3)、またはCNN373(CNN_D5)である場合、ステップS357およびステップS358の処理が省略され、処理は図13へ進む。 When the processing of step S358 ends, the process proceeds to FIG. 13. Also, if it is determined in step S356 of FIG. 12 that guide surface features are not to be input to its own 3D-CNN, the processing of steps S357 and S358 is omitted, and the process proceeds to FIG. 13. In other words, if the CNN to be processed is CNN365 (CNN_D1), CNN369 (CNN_D3), or CNN373 (CNN_D5), the processing of steps S357 and S358 is omitted, and the process proceeds to FIG. 13.
図13のステップS371において、CNN365(CNN_D1)、CNN367(CNN_D2)、CNN369(CNN_D3)、CNN371(CNN_D4)、CNN373(CNN_D5)、またはCNN375(CNN_D6)は、処理対象の疎テンソル{C^in, F^in}に3D-CNN演算を行い、演算結果の疎テンソル{C^out, F^out}を導出する。 In step S371 of FIG. 13, CNN365 (CNN_D1), CNN367 (CNN_D2), CNN369 (CNN_D3), CNN371 (CNN_D4), CNN373 (CNN_D5), or CNN375 (CNN_D6) performs 3D-CNN operations on the sparse tensor {C^in, F^in} to be processed, and derives the sparse tensor {C^out, F^out} as the operation result.
ステップS372において、占有状態分類部368、占有状態分類部372、または占有状態分類部376は、占有状態の分類を行うか否かを判定する。占有状態の分類を行うと判定された場合、処理はステップS373へ進む。つまり、ステップS371の処理をCNN367(CNN_D2)、CNN371(CNN_D4)、またはCNN375(CNN_D6)が実行する場合、処理はステップS373へ進む。
In step S372, the occupancy
ステップS373において、占有状態分類部368、占有状態分類部372、または占有状態分類部376は、座標集合C^out中の各座標の占有確率を予測し、占有確率の高い方から上位k個の座標を抽出し、それ以外の座標を削除する。その際、このkには、N_X、N_X'、N_X''のうちの、処理対象の疎テンソルに対応するスケールの値が適用される。また、占有状態分類部368、占有状態分類部372、または占有状態分類部376は、F^out中の削除される座標に対応する特徴量も削除する。
In step S373, the occupancy
ステップS373の処理が終了すると処理はステップS374へ進む。また、ステップS372において、占有状態の分類を行わないと判定された場合、ステップS373の処理が省略され、処理はステップS374へ進む。つまり、ステップS371の処理をCNN365(CNN_D1)、CNN369(CNN_D3)、またはCNN373(CNN_D5)が実行する場合、ステップS373の処理が省略され、処理はステップS374へ進む。 When the process of step S373 ends, the process proceeds to step S374. Also, if it is determined in step S372 that occupancy state classification is not to be performed, the process of step S373 is omitted and the process proceeds to step S374. In other words, if the process of step S371 is performed by CNN365 (CNN_D1), CNN369 (CNN_D3), or CNN373 (CNN_D5), the process of step S373 is omitted and the process proceeds to step S374.
ステップS374において、CNN375(CNN_D6)は、全ての3D-CNNについて処理を行ったか否かを判定する。全ての3D-CNNについて処理を行っていない(すなわち、未処理の3D-CNNが存在する(少なくともCNN375(CNN_D6)が未処理である))と判定された場合、処理はステップS375へ進む。 In step S374, CNN375 (CNN_D6) determines whether processing has been performed for all 3D-CNNs. If it is determined that processing has not been performed for all 3D-CNNs (i.e., there are unprocessed 3D-CNNs (at least CNN375 (CNN_D6) is unprocessed)), processing proceeds to step S375.
ステップS375において、CNN365(CNN_D1)、CNN367(CNN_D2)、CNN369(CNN_D3)、CNN371(CNN_D4)、CNN373(CNN_D5)、またはCNN375(CNN_D6)は、{C^in, F^in} ← {C^out, F^out}とする。つまり、CNN365(CNN_D1)、CNN367(CNN_D2)、CNN369(CNN_D3)、CNN371(CNN_D4)、CNN373(CNN_D5)、またはCNN375(CNN_D6)は、自身が導出した演算結果の疎テンソル{C^out, F^out}を、次の処理部(ガイド面特徴量導出部または占有状態分類部)の処理対象の疎テンソル{C^in, F^in}とする。ステップS375の処理が終了すると、処理は図12のステップS356へ戻り、それ以降の処理が実行される。つまり、図12のステップS356乃至ステップS358の各処理、並びに、図13のステップS371乃至ステップS375の各処理が、各3D-CNN(ガイド面特徴量導出部や占有状態分類部を含み得る)に対して実行される。 In step S375, CNN365 (CNN_D1), CNN367 (CNN_D2), CNN369 (CNN_D3), CNN371 (CNN_D4), CNN373 (CNN_D5), or CNN375 (CNN_D6) sets {C^in, F^in} ← {C^out, F^out}. In other words, CNN365 (CNN_D1), CNN367 (CNN_D2), CNN369 (CNN_D3), CNN371 (CNN_D4), CNN373 (CNN_D5), or CNN375 (CNN_D6) sets the sparse tensor {C^out, F^out} of the calculation result derived by itself as the sparse tensor {C^in, F^in} to be processed by the next processing unit (guide surface feature derivation unit or occupancy state classification unit). When the processing of step S375 is completed, the process returns to step S356 in FIG. 12, and subsequent processing is executed. That is, the processes of steps S356 to S358 in FIG. 12 and steps S371 to S375 in FIG. 13 are executed for each 3D-CNN (which may include a guide surface feature derivation unit and an occupancy state classification unit).
そして、図13のステップS374において、全ての3D-CNNについて処理が行われたと判定された場合、処理はステップS376へ進む。 If it is determined in step S374 of FIG. 13 that processing has been performed for all 3D-CNNs, processing proceeds to step S376.
ステップS376において、占有状態分類部376は、C_X ← C^outとする。つまり、占有状態分類部376は、演算結果の座標集合C^outを復号結果(復号点群C_X)とする。
In step S376, the occupancy
ステップS377において、占有状態分類部376は、その復号点群C_Xを復号装置350の外部に出力する。
In step S377, the occupancy
ステップS377の処理が終了すると復号処理が終了する。 When step S377 is completed, the decoding process ends.
このように各処理を実行することにより、復号装置350は、符号化効率の低減を抑制することができる。
By performing each process in this manner, the
<方法1-1>
また、上述の方法1が適用される場合において、図4の表の上から2段目に示されるように、ガイド面特徴量は、点からのガイド面最近傍点に基づく特徴量であってもよい(方法1-1)。
<Method 1-1>
In addition, when the above-mentioned
例えば、第1の情報処理装置や第2の情報処理装置において、ガイド面特徴量は、点を基準とするガイド面上の最近傍点に基づく特徴量であってもよい。 For example, in the first information processing device or the second information processing device, the guide surface feature amount may be a feature amount based on the nearest point on the guide surface with respect to the point.
<方法1-1-1>
また、上述の方法1-1が適用される場合において、図4の表の上から3段目に示されるように、ガイド面特徴量は、点から最近傍点に向かうベクトルであってもよい(方法1-1-1)。例えば、図14に示されるように、座標集合C^inの各座標c_i = (x_i, y_i, z_i)に対して、ガイド面142上の最近傍点p_iを導出する。ベクトルp_i - c_i ∈ R^3をガイド面特徴量とする。つまり、この場合g(c_i) = p_i - c_iとなる。このようにすることにより、大まかには、デコーダは、その座標がガイド面を基準にしてどれくらい離れているのか等の情報を活用できるようになる。
<Method 1-1-1>
In addition, when the above-mentioned method 1-1 is applied, the guide surface feature amount may be a vector from a point to the nearest point, as shown in the third row from the top of the table in FIG. 4 (method 1-1-1). For example, as shown in FIG. 14, for each coordinate c_i = (x_i, y_i, z_i) of the coordinate set C^in, the nearest point p_i on the
<方法1-1-2>
また、上述の方法1-1が適用される場合において、図4の表の上から4段目に示されるように、ガイド面特徴量は、点と最近傍点との距離に関する特徴量であってもよい(方法1-1-2)。
<Method 1-1-2>
Furthermore, when the above-mentioned method 1-1 is applied, as shown in the fourth row from the top of the table in FIG. 4, the guide surface feature amount may be a feature amount relating to the distance between a point and a nearest neighboring point (method 1-1-2).
例えば、ガイド面特徴量は、符号付き距離(signed distance)であってもよい。符号付き距離(signed distance)は、ある点からある境界面までの距離に、その点がその境界内に含まれれば+1を、そうでなければ-1を掛けたスカラー値である。つまり、座標c_iからガイド面上の最近傍点p_iまでの距離を||p_i - c_i||と表すと、g(c_i)は次の式(2)のように定義される。 For example, the guide surface feature may be a signed distance. A signed distance is a scalar value obtained by multiplying the distance from a point to a boundary surface by +1 if the point is included within the boundary, and by -1 if not. In other words, if the distance from coordinate c_i to the nearest point p_i on the guide surface is expressed as ||p_i - c_i||, then g(c_i) is defined as the following equation (2).
ただし、符号付き距離は、内側と外側が存在する面に対してのみ定義できる。例えば、ガイド面がメッシュであれば、そのメッシュは水密(平易に言うと穴がないメッシュ)である必要がある。メッシュが水密ではない場合、符号付き距離の代わりに、符号なし距離(unsigned distance)g(c_i) = ||p_i - c_i||を適用してもよい。符号なし距離は、単純に距離のみを示し、水密ではないメッシュに対しても計算できる。 However, signed distance can only be defined for faces that have an inside and an outside. For example, if the guide surface is a mesh, the mesh must be watertight (in simple terms, a mesh without holes). If the mesh is not watertight, the unsigned distance g(c_i) = ||p_i - c_i|| may be applied instead of the signed distance. The unsigned distance simply indicates the distance only, and can be calculated even for meshes that are not watertight.
また、ガイド面特徴量として、符号付き距離において絶対値の範囲を限定した切り捨て符号付き距離(truncated signed distance)を適用してもよい。つまり、ある最大絶対値τを決めておき、符号付き距離の絶対値がτより大きければ-τまたはτに切り捨てる。 Also, a truncated signed distance, which limits the range of absolute values in the signed distance, may be applied as a guide surface feature. In other words, a certain maximum absolute value τ is determined, and if the absolute value of the signed distance is greater than τ, it is truncated to -τ or τ.
<方法1-1-3>
また、上述の方法1-1が適用される場合において、図4の表の上から5段目に示されるように、ガイド面特徴量は、最近傍点の特徴量であってもよい(方法1-1-3)。
<Method 1-1-3>
Furthermore, in the case where the above-mentioned method 1-1 is applied, as shown in the fifth row from the top of the table in FIG. 4, the guide surface feature amount may be the feature amount of the nearest point (method 1-1-3).
つまり、ガイド面上の最近傍点p_iにおけるなんらかの特徴量h(p_i)をガイド面特徴量g(c_i)として適用してもよい。つまりこの場合g(c_i) = h(p_i)と定義される。この特徴量h(p_i)は、どのようなものであってもよい。例えば、最近傍点p_iにおける法線ベクトルであってもよいし、最近傍点p_iにおけるガイド面の曲率(曲面の曲がり具合を表す数値で、ガウス曲率や平均曲率が具体的に計算できる)であってもよい。 In other words, some feature value h(p_i) at the nearest point p_i on the guide surface may be applied as the guide surface feature value g(c_i). In this case, g(c_i) = h(p_i) is defined. This feature value h(p_i) may be anything. For example, it may be the normal vector at the nearest point p_i, or it may be the curvature of the guide surface at the nearest point p_i (a numerical value that indicates the degree of curvature of the surface, and Gaussian curvature or mean curvature can be specifically calculated).
<方法1-2>
なお、3次元空間に形成される基準面であるガイド面は、どのような3Dデータにより構成されてもよい。例えば、上述の方法1が適用される場合において、図4の表の上から6段目に示されるように、ガイド面がメッシュであってもよい(方法1-2)。
<Method 1-2>
The guide surface, which is a reference surface formed in a three-dimensional space, may be configured with any 3D data. For example, when the above-mentioned
例えば、第1の情報処理装置や第2の情報処理装置において、ガイド面はメッシュであってもよい。 For example, in the first information processing device and the second information processing device, the guide surface may be a mesh.
一般的に、メッシュはポイントクラウドよりも情報量が少ない。そのメッシュをガイド面(基準面)とするガイド面特徴量を符号化することにより、ポイントクラウドのまま符号化する場合よりも、符号化する情報量を低減させることができる。したがって、符号化効率の低減を抑制することができる。 Generally, a mesh contains less information than a point cloud. By encoding guide surface features that use the mesh as a guide surface (reference surface), the amount of information to be encoded can be reduced compared to encoding the point cloud as is. This makes it possible to prevent a decrease in encoding efficiency.
<方法1-2-1>
また、ガイド面がメッシュである場合、そのガイド面を復号結果の3Dデータとして出力してもよい。例えば、ポイントクラウドの復元を省略し、復号ガイド面を復号結果として出力してもよい。このようにすることにより、復号処理の負荷の増大を抑制することができる。また、復号ガイド面を復元したポイントクラウドでフィッティングしてもよい。つまり、上述の方法1-2が適用される場合において、図4の表の上から7段目に示されるように、ガイド面をポイントクラウドにフィッティングしてもよい(方法1-2-1)。
<Method 1-2-1>
Also, when the guide surface is a mesh, the guide surface may be output as 3D data of the decoding result. For example, the restoration of the point cloud may be omitted, and the decoded guide surface may be output as the decoding result. In this way, the increase in the load of the decoding process can be suppressed. Also, the decoded guide surface may be fitted with the restored point cloud. That is, when the above-mentioned method 1-2 is applied, the guide surface may be fitted to the point cloud as shown in the seventh row from the top of the table in FIG. 4 (method 1-2-1).
例えば、図15の3次元空間380Aおよび3次元空間380Bは、3次元空間を2次元で表現したものである。これらの3次元空間380Aおよび3次元空間380Bにおいてグレー地の四角381は、復元されたポイントクラウドの点を示す。図15においては、1つの四角のみに符号を付しているが、グレー地の四角は、全てポイントクラウドの点を示す。これに対して、ガイド面382Aが3次元空間380Aのように復元されるとする。ガイド面がメッシュである場合、この例のように、ポイントクラウドに対してメッシュの面や頂点の位置ずれてしまう場合があり得る。つまり、そのようなガイド面を復号結果とすると、ポイントクラウドの場合よりも精細度が低減し、復号結果の品質が低減するおそれがあった。
For example, three-
そこで、3次元空間380Bのガイド面382Bのように、ガイド面に対して、ポイントクラウドの点を用いて(ガイド面の面や頂点をポイントクラウドの点に近づけるように)フィッティングを行ってもよい。このようにすることにより、ガイド面の精細度の低減を抑制することができ、復号結果の品質の低減を抑制することができる。
Therefore, like
例えば、第2の情報処理装置が、ガイド面をポイントクラウドにフィッティングするフィッティング部をさらに備えてもよい。 For example, the second information processing device may further include a fitting unit that fits the guide surface to the point cloud.
<復号装置>
このような方法1-2-1を適用する場合も、符号化装置の構成や復号処理の流れは、図7乃至図10を参照して説明した場合と同様である。
<Decoding device>
When such method 1-2-1 is applied, the configuration of the encoding device and the flow of the decoding process are similar to those described with reference to FIGS.
図16は、この方法1-2-1を適用する場合の復号装置の主な構成例を示すブロック図である。図16に示される復号装置400は、復号装置350と同様に、ポイントクラウド(3Dデータ)のジオメトリが符号化されたビットストリームを復号する装置である。例えば、復号装置400は、符号化装置300によりポイントクラウド(のジオメトリ)が符号化されて生成されたビットストリーム(ガイド面ビットストリーム、座標ビットストリーム、特徴量ビットストリーム、および点数ビットストリーム)を復号する。ただし、復号装置400は、復号結果として復号ガイド面(メッシュ)を出力する。
FIG. 16 is a block diagram showing an example of the main configuration of a decoding device when this method 1-2-1 is applied. The
なお、図16においては、処理部やデータの流れ等の主なものを示しており、図16に示されるものが全てとは限らない。つまり、復号装置400において、図16においてブロックとして示されていない処理部が存在したり、図16において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
Note that FIG. 16 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 16. In other words, in the
図16に示されるように、復号装置400は、復号部411およびフィッティング部412を有する。
As shown in FIG. 16, the
復号部411は、復号装置350(図11)と同様の構成を有し、同様の処理を行う。すなわち、図11乃至図13を用いて上述した説明を復号部411の説明として適用することができる。復号部411は、点数ビットストリーム、座標ビットストリーム、特徴量ビットストリーム、およびガイド面ビットストリームを復号し、復号点群C_Xをフィッティング部412へ供給する。また、復号部411は、生成した復号ガイド面(この場合、ガイド面はメッシュであるので、復号ガイドメッシュとも称する)をフィッティング部412へ供給する。
The
フィッティング部412は、その復号点群C_Xおよび復号ガイドメッシュを取得する。フィッティング部412は、その復号ガイドメッシュを復号点群C_Xにフィッティングする。
The
このフィッティングの方法は、どのような方法であってもよい。例えば、メッシュを点群にフィッティングさせる既存手法が適用されてもよい。例えば、フィッティング部412は、ガイドメッシュに対してポリゴンを細分化するメッシュサブディビジョン(mesh subdivision)とスムージング処理であるメッシュスムージング(mesh smoothing)を行ってもよい。そして、フィッティング部412は、その三角形数を増やして面形状を滑らかにしたガイドメッシュに対して、非特許文献3に記載のTemplate Deformation for Point Cloud Fittingによるフィッティングを行ってもよい。この手法はテンプレートメッシュを点群にフィッティングする処理である。ここではテンプレートメッシュがガイドメッシュ、点群が復号した点群に対応する。
Any method may be used for this fitting. For example, an existing method for fitting a mesh to a point cloud may be applied. For example, the
ただし、初期条件として、少数の対応点ペア(テンプレートメッシュのある頂点が点群中のどの点と対応するかを示す情報)が必要になる。ここでは、テンプレートメッシュの各頂点から点群中の最近傍点を検索し、最近傍点までの距離が近い上位数個のペアを初期対応点ペアして適用してもよい。なお、ここでは、局所回転は行われないので、回転の入力はせず、回転角は0としてフィッティングを行ってもよい。そのためには例えばアルゴリズム中の回転行列をすべて単位行列とすればよい。 However, as an initial condition, a small number of corresponding point pairs (information indicating which vertices of the template mesh correspond to which points in the point cloud) are required. Here, the nearest point in the point cloud is searched for from each vertex of the template mesh, and the top few pairs with the shortest distance to the nearest point can be used as the initial corresponding point pairs. Note that since no local rotation is performed here, no rotation is input, and fitting can be performed with a rotation angle of 0. To do this, for example, all rotation matrices in the algorithm can be set to unit matrices.
フィッティング部412は、フィッティング後のガイドメッシュを復号結果として復号装置400の外部に出力する。
The
このような構成を有することにより、復号装置400は、復号結果の品質の低減を抑制しながら、ガイドメッシュを復号結果として出力することができる。
By having such a configuration, the
<復号処理の流れ>
復号装置400により実行される復号処理の流れの例を図17のフローチャートを参照して説明する。
<Decryption process flow>
An example of the flow of the decoding process executed by the
復号処理が開始されると、復号部411は、ステップS401において、図8および図9を参照して説明した復号処理を実行し、ビットストリームを復号して復号点群およびガイドメッシュを生成する。
When the decoding process is started, in step S401, the
ステップS402において、フィッティング部412は、そのガイドメッシュを復号点群にフィッティングする。ステップS403において、フィッティング部412は、そのフィッティング結果のメッシュを復号結果として復号装置400の外部に出力する。ステップS403の処理が終了すると復号処理が終了する。
In step S402, the
このように各処理を実行することにより、復号装置400は、復号結果の品質の低減を抑制しながら、ガイドメッシュを復号結果として出力することができる。
By performing each process in this manner, the
<方法1-3>
また、上述の方法1が適用される場合において、図4の表の上から8段目に示されるように、ガイド面がTriangle soupであってもよい(方法1-3)。
<Method 1-3>
Furthermore, when the above-mentioned
例えば、第1の情報処理装置や第2の情報処理装置において、ガイド面はTriangle soupであってもよい。 For example, in the first information processing device and the second information processing device, the guide surface may be a triangle soup.
この場合、ガイド面をTriangle soupというメッシュの一種として保持し、Trisoup符号化により符号化する。Trisoup符号化は密な点群を符号化するためのG-PCCの1つのオプションである。エンコーダは、図18に示されるような入力点群を近似する三角形集合(=Triangle soup)を推定し、Triangle soupを符号化する。Triangle soupは、低解像度Octreeと各Octreeノード内の三角形データである。低解像度OctreeはOctree符号化により符号化され、各ノード内の三角形と各エッジとの交点(頂点とも称する)が符号化される。デコーダはTriangle soupを復号し、その面上から点群をサンプルして出力する。 In this case, the guide surface is stored as a type of mesh called a triangle soup, and is encoded using Trisoup coding. Trisoup coding is one option of G-PCC for encoding dense point clouds. The encoder estimates a set of triangles (=Triangle soup) that approximates the input point cloud as shown in Figure 18, and encodes the Triangle soup. The Triangle soup is the low-resolution Octree and the triangular data in each Octree node. The low-resolution Octree is encoded using Octree coding, and the intersections (also called vertices) between the triangles in each node and each edge are encoded. The decoder decodes the Triangle soup, samples the points from the surface, and outputs them.
<符号化装置>
この方法1-3を適用する場合の符号化装置300の主な構成例を図19に示す。図19に示されるように、この場合、符号化装置300は、図7の例のガイド面生成部311およびガイド面符号化部312の代わりに、Trisoup符号化部431を有する。また、符号化装置300は、図7の例のガイド面復号部313の代わりに、Trisoup復号部432を有する。
<Encoding device>
An example of the main configuration of the
Trisoup符号化部431は、入力点群C_XをTrisoup符号化し、内部でTriangle soupを推定し、符号化データ(ガイド面ビットストリーム)を生成する。Trisoup符号化部431は、その生成したガイド面ビットストリームをTrisoup復号部432へ供給する。また、Trisoup符号化部431は、そのガイド面ビットストリームを符号化装置300の外部に出力する。つまりTrisoup符号化部431は、ガイド面生成部311およびガイド面符号化部312の両方の機能を有する。
The
Trisoup復号部432は、Trisoup符号化部431から供給されるガイド面ビットストリームを取得する。Trisoup復号部432は、そのガイド面ビットストリームをTrisoup復号し、内部でTriangle soupを生成し、その面からサンプリングした点群を生成する。ただし、Trisoup復号部432は、その点群ではなく、復号の途中に内部で生成したTriangle soupを復号ガイド面とし、ガイド面特徴量導出部315、ガイド面特徴量導出部317、およびガイド面特徴量導出部320へ供給する。
The
このような構成を有することにより、符号化装置300は、ガイド面をTriangle soupとして符号化することができる。つまり、この場合も、符号化装置300は、符号化する情報量を低減させることができ、符号化効率の低減を抑制することができる。
By having such a configuration, the
なお、上述したように、Trisoup符号化部431は、低解像度Octreeを符号化する。また、座標符号化部324は、Octree符号化を行い、座標集合C_Yに対応するOctreeを符号化する。これら2つのOctreeは必ずしも同一とはならないが、もし2つのOctreeが一致する場合、符号化装置300が、いずれか一方のOctreeを符号化して出力してもよい。この場合、復号装置350は、復号して得られた一方のOctreeを他方のOctreeとして流用すればよい。このようにすることにより、符号量の増大を抑制し、符号化効率の低減をさらに抑制することができる。
As described above, the
また、一方のOctreeが他方のOctreeをダウンスケールしたOctreeと一致する場合も、符号化装置300は、高解像度のOctreeのみを符号化して出力してもよい。その場合、復号装置350は、復号して得られたその高解像度のOctreeをダウンスケールして低解像度のOctreeを復元すればよい。このようにすることにより、符号量の増大を抑制し、符号化効率の低減をさらに抑制することができる。
Also, when one octree matches an octree obtained by downscaling the other octree, the
<符号化処理の流れ>
この方法1-3を適用する場合の符号化装置300により実行される符号化処理の流れの例を、図20および図21のフローチャートを参照して説明する。
<Encoding process flow>
An example of the flow of the encoding process executed by the
符号化処理が開始されると、Trisoup符号化部431および疎テンソル構築部314は、図20のステップS431において、符号化装置300へ入力されるポイントクラウドである入力点群C_Xを取得する。
When the encoding process starts, the
ステップS432において、Trisoup符号化部431は、その入力点群C_XをTrisoup符号化し、ガイド面ビットストリームを生成する。Trisoup符号化部431は、そのガイド面ビットストリームを符号化装置300の外部へ出力する。
In step S432, the
ステップS433において、Trisoup復号部432は、そのガイド面ビットストリームを復号し、復号ガイド面としてTriangle soupを生成する。
In step S433, the Triangle
図20のステップS434乃至ステップS438の各処理、並びに、図21のステップS441乃至ステップS447の各処理は、図8のステップS305乃至ステップS309の各処理、並びに、図9のステップS321乃至ステップS327の各処理と同様に実行される。そして、図21のステップS447の処理が終了すると、符号化処理が終了する。 The processes of steps S434 to S438 in FIG. 20 and steps S441 to S447 in FIG. 21 are executed in the same manner as the processes of steps S305 to S309 in FIG. 8 and steps S321 to S327 in FIG. 9. Then, when the process of step S447 in FIG. 21 ends, the encoding process ends.
このように各処理を実行することにより、符号化装置300は、符号化する情報量を低減させることができ、符号化効率の低減を抑制することができる。
By performing each process in this manner, the
<復号側について>
なお、この方法1-3を適用する場合の復号装置350は、図11のガイド面復号部364の代わりにTrisoup復号部を備えればよい。このTrisoup復号部は、符号化装置300のTrisoup復号部432と同様の処理部であり、同様の処理を行う。つまり、このTrisoup復号部は、復号装置350に供給されたガイド面ビットストリームを取得し、そのガイド面ビットストリームをTrisoup復号し、内部でTriangle soupを生成し、それを復号ガイド面とし、ガイド面特徴量導出部366、ガイド面特徴量導出部370、およびガイド面特徴量導出部374へ供給する。その他の構成は、図11の場合と同様である。
<About the Decryption Side>
In addition, when applying this method 1-3, the
この場合の復号装置350により実行される復号処理の流れは、図12および図13のフローチャートを参照して説明した場合と基本的に同様である。ただし、ステップS364において、Trisoup復号部が、ガイド面ビットストリームをTrisoup復号し、得られたTriangle soupを復号ガイド面とすればよい。
In this case, the flow of the decoding process executed by the
<方法1-4>
また、上述の方法1が適用される場合において、図4の表の上から9段目に示されるように、ガイド面が3次元形状を表現する陰関数であってもよい(方法1-4)。
<Method 1-4>
Furthermore, when the above-mentioned
例えば、第1の情報処理装置や第2の情報処理装置において、ガイド面は陰関数であってもよい。 For example, in the first information processing device and the second information processing device, the guide surface may be an implicit function.
3次元形状の陰関数表現は、3次元座標値(x, y, z)についてのある関数f(x, y, z)を用いて、f(x, y, z) = 0となる座標集合により3次元形状を表現する手法である。例えば、単位球面はf(x, y, z) = x^2 + y^2 + z^2 - 1と表現することができる。一般的な3次元形状を表現する場合、例えば、点(x, y, z)からガイド面までの符号付き距離をf(x, y, z)としてもよい。同様に、符号なし距離や切り捨て符号付き距離をf(x, y, z)としてもよい。また、点(x, y, z)における占有確率値をf(x, y, z)としてもよい。ただし、占有確率値の取りうる範囲は[0, 1]であるため、実際には占有確率値を適当にスケールした値をf(x, y, z)としてもよい。 The implicit function representation of a three-dimensional shape is a method of representing a three-dimensional shape by a set of coordinates where f(x, y, z) = 0, using a function f(x, y, z) for three-dimensional coordinate values (x, y, z). For example, a unit sphere can be represented as f(x, y, z) = x^2 + y^2 + z^2 - 1. When representing a general three-dimensional shape, for example, the signed distance from a point (x, y, z) to a guide surface may be represented as f(x, y, z). Similarly, the unsigned distance or the truncated signed distance may be represented as f(x, y, z). The occupancy probability value at a point (x, y, z) may also be represented as f(x, y, z). However, since the possible range of the occupancy probability value is [0, 1], in practice, an appropriately scaled value of the occupancy probability value may be represented as f(x, y, z).
<方法1-4-1>
なお、ガイド面が陰関数の場合、ガイド面上の最近傍点を検索する処理は一般的に容易ではない。そこで、上述の方法1-4が適用される場合において、図4の表の上から10段目に示されるように、ガイド面特徴量が、その座標での陰関数の出力やその出力の勾配ベクトルであってもよい(方法1-4-1)。
<Method 1-4-1>
In addition, when the guide surface is an implicit function, the process of searching for the nearest point on the guide surface is generally not easy. Therefore, when the above-mentioned method 1-4 is applied, as shown in the 10th row from the top of the table in Figure 4, the guide surface feature amount may be the output of the implicit function at that coordinate or the gradient vector of that output (method 1-4-1).
例えば、点の座標c_i = (x_i, y_i ,z_i)における陰関数値f(x_i, y_i, z_i)をガイド面特徴量g(c_i)としてもよい(g(c_i) = f(x_i, y_i, z_i))。また、陰関数fのその座標値での勾配ベクトル∇fの値や、ラプラシアン値Δfを合わせて適用してもよい。大まかな説明としては、陰関数fが符号付き距離関数の場合、ガイド面上での勾配ベクトル∇fは法線ベクトルと一致する。例えば、以上の特徴量をすべて連結したベクトルをガイド面特徴量として適用してもよい(g(c_i) = [f(x_i, y_i, z_i), ∇f(x_i, y_i, z_i), Δf(x_i, y_i, z_i)])。 For example, the implicit function value f(x_i, y_i, z_i) at the coordinates of the point c_i = (x_i, y_i, z_i) may be used as the guide surface feature g(c_i) (g(c_i) = f(x_i, y_i, z_i)). In addition, the value of the gradient vector ∇f at that coordinate value of the implicit function f or the Laplacian value Δf may also be applied. Roughly speaking, when the implicit function f is a signed distance function, the gradient vector ∇f on the guide surface coincides with the normal vector. For example, a vector concatenating all of the above features may be applied as the guide surface feature (g(c_i) = [f(x_i, y_i, z_i), ∇f(x_i, y_i, z_i), Δf(x_i, y_i, z_i)]).
<符号化装置について>
この方法1―4-1を適用する場合の符号化装置300の構成は、図7を参照して説明した場合と同様である。ただし、ガイド面生成部311は、入力点群C_Xからガイド面として陰関数を推定する。例えば、ガイド面生成部311は、入力点群C_Xからメッシュを生成し、適当な解像度で3次元空間を量子化し(つまり3次元配列を初期化し)、各セルの中心から推定したメッシュまでの符号付き距離(または符号なし距離)を計算し、符号付き距離を表す3次元配列を生成する。この3次元配列が陰関数のガイド面としてガイド面符号化部312へ供給される。この陰関数のガイド面をガイド陰関数とも称する。
<About the encoding device>
The configuration of the
ガイド面符号化部312は、そのガイド陰関数を符号化し、ガイド面ビットストリームを生成する。この符号化方法はどのようなものであってもよい。例えば、ガイド面符号化部312は、既存の陰関数符号化手法を適用してもよい。例えば、非特許文献4に記載のDeep implicit volume compressionが適用されてもよい。この手法は切り捨て符号付き距離を符号化することができる。
The guide
ガイド面復号部313は、そのガイド面ビットストリームを復号し、ガイド陰関数を生成(復元)する。したがって得られた復号ガイド面を復号ガイド陰関数とも称する。ガイド面符号化部312の符号化方法に対応するものであれば、どのような復号方法を適用してもよい。
The guide
ガイド面特徴量導出部315、ガイド面特徴量導出部317、およびガイド面特徴量導出部320には、復号ガイド陰関数が供給される。ガイド面特徴量導出部315、ガイド面特徴量導出部317、およびガイド面特徴量導出部320は、その復号ガイド陰関数を用いて、ガイド面特徴量を導出する。ガイド面特徴量導出部315、ガイド面特徴量導出部317、およびガイド面特徴量導出部320は、点の座標での陰関数の出力やその出力の勾配ベクトルをこのガイド面特徴量としてもよい。
The decoded guide implicit function is supplied to the guide surface feature
<符号化処理について>
この場合の符号化処理の流れは、図8乃至図10のフローチャートを参照して説明した場合と同様である。ただし、符号化装置の説明において上述したように、ステップS302においては、入力点群からガイド陰関数が生成される。ステップS303においては、ガイド陰関数が符号化されてガイド面ビットストリームが生成される。ステップS304においては、ガイド面ビットストリームが復号されて復号ガイド陰関数が生成される。
<About the encoding process>
The flow of the encoding process in this case is the same as that described with reference to the flowcharts of Figures 8 to 10. However, as described above in the description of the encoding device, in step S302, a guide implicit function is generated from the input point group. In step S303, the guide implicit function is encoded to generate a guide plane bit stream. In step S304, the guide plane bit stream is decoded to generate a decoded guide implicit function.
また、ステップS308においては、点の座標での陰関数の出力やその出力の勾配ベクトルがガイド面特徴量として導出される。 In addition, in step S308, the output of the implicit function at the coordinates of the point and the gradient vector of that output are derived as guide surface features.
<復号装置について>
この方法1―4-1を適用する場合の復号装置350の構成は、図11を参照して説明した場合と同様である。ただし、ガイド面復号部364は、取得したガイド面ビットストリームを復号し、ガイド陰関数を生成(復元)する。この復号方法は、ガイド面符号化部312の符号化方法に対応するものであれば、どのような復号方法を適用してもよい。ガイド面復号部364は、生成した復号ガイド陰関数をガイド面特徴量導出部366、ガイド面特徴量導出部370、およびガイド面特徴量導出部374へ供給する。
<Decryption device>
The configuration of the
ガイド面特徴量導出部366、ガイド面特徴量導出部370、およびガイド面特徴量導出部374は、その復号ガイド陰関数を用いて、ガイド面特徴量を導出する。ガイド面特徴量導出部366、ガイド面特徴量導出部370、およびガイド面特徴量導出部374は、点の座標での陰関数の出力やその出力の勾配ベクトルをこのガイド面特徴量としてもよい。
The guide surface feature
<復号処理について>
この場合の符号化処理の流れは、図12および図13のフローチャートを参照して説明した場合と同様である。ただし、復号装置の説明において上述したように、ステップS354においては、ガイド面ビットストリームが復号されて復号ガイド陰関数が生成される。また、ステップS357においては、点の座標での陰関数の出力やその出力の勾配ベクトルがガイド面特徴量として導出される。
<Decryption process>
The flow of the encoding process in this case is the same as that described with reference to the flowcharts of Fig. 12 and Fig. 13. However, as described above in the description of the decoding device, in step S354, the guide surface bit stream is decoded to generate a decoded guide implicit function. In addition, in step S357, the output of the implicit function at the coordinates of the point and the gradient vector of the output are derived as guide surface feature amounts.
<方法1-5>
また、上述の方法1が適用される場合において、図4の表の上から11段目に示されるように、適用するパラメータセットを選択してもよい(方法1-5)。
<Method 1-5>
Furthermore, when the above-mentioned
例えば、第1の情報処理装置が、ポイントクラウドの符号化に適用するパラメータセットを選択するパラメータセット選択部をさらに備えてもよい。また、第1の情報処理装置が、ポイントクラウドを用いてガイド面を生成するガイド面生成部と、その選択されたパラメータセットを適用してガイド面を符号化し、そのガイド面の符号化データを生成するガイド面符号化部とをさらに備えてもよい。 For example, the first information processing device may further include a parameter set selection unit that selects a parameter set to be applied to the encoding of the point cloud. The first information processing device may further include a guide surface generation unit that generates a guide surface using the point cloud, and a guide surface encoding unit that applies the selected parameter set to encode the guide surface and generate encoded data for the guide surface.
ガイド面符号化において、ガイド面の符号化効率と復号誤差に影響するパラメータセットが存在する場合がある。例えばメッシュのデシメーション(Mesh decimation)とDraco符号化を使用する場合、デシメーション(Decimation)における目標三角形数(小さいほど符号化効率は向上するが誤差が大きくなる)やDraco符号化器における量子化パラメータ(QP(Quantization Parameter))(小さいほど符号化効率は向上するが誤差が大きくなる)が符号化パラメータセットとして挙げられる。エンコーダは、そのようなガイド面の符号化に適用されるパラメータセット(ガイド面符号化パラメータセットとも称する)の候補集合の中から、点群の符号化効率が最高となるパラメータセットを選択し、適用してもよい。 In guide surface coding, there may be parameter sets that affect the coding efficiency and decoding error of the guide surface. For example, when using mesh decimation and Draco coding, examples of coding parameter sets include the target number of triangles in decimation (the smaller the number, the better the coding efficiency but the larger the error) and the quantization parameter (QP (Quantization Parameter)) in the Draco encoder (the smaller the number, the better the coding efficiency but the larger the error). The encoder may select and apply the parameter set that provides the highest coding efficiency for the point cloud from a candidate set of parameter sets (also called guide surface coding parameter sets) that are applied to coding of such guide surfaces.
このようにすることにより、適用するパラメータセットによる符号化効率の低減を抑制することができる。 By doing this, it is possible to suppress the reduction in coding efficiency due to the applied parameter set.
<符号化装置>
図22は、方法1-5を適用する場合の符号化装置の主な構成例を示すブロック図である。図22に示される符号化装置500は、符号化装置300の場合と同様に、ポイントクラウド(3Dデータ)のジオメトリを符号化する装置である。符号化装置500は、上述した方法1-5を適用してそのジオメトリを符号化する。
<Encoding device>
Fig. 22 is a block diagram showing a main configuration example of an encoding device when methods 1-5 are applied. The
なお、図22においては、処理部やデータの流れ等の主なものを示しており、図22に示されるものが全てとは限らない。つまり、符号化装置500において、図22においてブロックとして示されていない処理部が存在したり、図22において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
Note that FIG. 22 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 22. In other words, in
図22に示されるように、符号化装置500は、パラメータセット供給部511、符号化部512、復号部513、およびパラメータセット選択部514を有する。
As shown in FIG. 22, the
パラメータセット供給部511は、ガイド面符号化パラメータセットの候補集合から、1つのパラメータセットを処理対象として選択し、符号化部512およびパラメータセット選択部514へ供給する。
The parameter set
符号化部512は、符号化装置500に入力される入力点群C_Xを取得する。また、符号化部512は、パラメータセット供給部511から供給されるガイド面符号化パラメータセットを取得する。また、符号化部512は、そのガイド面符号化パラメータセットを適用して、入力点群C_Xを符号化し、ビットストリームを生成する。符号化部512は、例えば、符号化装置300(図7)と同様の構成を有し、同様の処理を行ってもよい。つまり、符号化部512は、入力点群C_Xを符号化し、点数ビットストリーム、座標ビットストリーム、特徴量ビットストリーム、およびガイド面ビットストリームを生成する。その際、符号化部512は、ガイド面符号化部312において、パラメータセット供給部511から供給されたガイド面符号化パラメータセットを適用する。つまり、符号化部512のガイド面符号化部312は、パラメータセット供給部511から供給されたガイド面符号化パラメータセットを用いて、ガイド面を符号化し、ガイド面ビットストリームを生成する。符号化部512は、このようにして生成したビットストリーム(点数ビットストリーム、座標ビットストリーム、特徴量ビットストリーム、およびガイド面ビットストリーム)を、復号部513およびパラメータセット選択部514へ供給する。
The
復号部513は、符号化部512から供給されるビットストリームを取得する。復号部513は、そのビットストリームを復号し、復号点群C_Xを生成(復元)する。復号部513は、例えば、復号装置350(図11)と同様の構成を有し、同様の処理を行ってもよい。つまり、復号部513は、点数ビットストリーム、座標ビットストリーム、特徴量ビットストリーム、およびガイド面ビットストリームを復号し、復号点群C_Xを生成する。復号部513は、生成した復号点群C_Xをパラメータセット選択部514へ供給する。
The
パラメータセット選択部514は、パラメータセット供給部511から供給されるガイド面符号化パラメータセットを取得する。パラメータセット選択部514は、符号化装置500に入力される入力点群C_Xを取得する。パラメータセット選択部514は、符号化部512から供給されるビットストリーム(例えば、点数ビットストリーム、座標ビットストリーム、特徴量ビットストリーム、およびガイド面ビットストリーム)を取得する。
パラメータセット選択部514は、復号部513から供給される復号点群C_Xを取得する。
The parameter
The parameter
パラメータセット選択部514は、それらに基づいて、入力点群C_Xの符号化効率を最大化するガイド面符号化パラメータセットを選択する。パラメータセット選択部514は、選択したガイド面符号化パラメータセットに対応するビットストリームを選択し、符号化装置500の外部に出力する。
The parameter
このパラメータセットの選択において、パラメータセット選択部514は、例えば、RDコスト関数の値C = R + λ・Dを最小とするパラメータセットを選択してもよい。ここで、Rはビットストリームの合計サイズを示す。Dは復号したジオメトリと入力ジオメトリの誤差を示す。係数λはビットサイズと復号誤差のどちらを重視するかを決めるパラメータである。点群間の誤差の指標としては、例えば、点群間の距離を測る指標であるD1 metricや、さらに法線方向も考慮するD2 metricが適用されてもよい。
In selecting this parameter set, the parameter
このようにRDコストを用いて最適化するように、適用するガイド面符号化パラメータセットを選択することにより、符号化装置500は、符号化効率の低減を抑制することができる。
By selecting the guide surface coding parameter set to be applied so as to optimize it using the RD cost in this manner, the
<符号化処理の流れ>
この符号化装置500により実行される符号化処理の流れの例を、図23のフローチャートを参照して説明する。
<Encoding process flow>
An example of the flow of the encoding process executed by the
符号化処理が開始されると、ステップS501において、パラメータセット供給部511が、RDコスト関数の係数λとガイド面符号化パラメータセットの候補集合をセットする。
When the encoding process starts, in step S501, the parameter
ステップS502において、パラメータセット供給部511は、そのセットされた候補集合の中からi番目のガイド面符号化パラメータセットを選択する。つまり、パラメータセット供給部511は、未処理のガイド面符号化パラメータセットを1組選択する。
In step S502, the parameter
ステップS503において、符号化部512は、例えば図8および図9のフローチャートを参照して説明した符号化処理を実行する。その際、符号化部512は、ステップS502において選択されたガイド面符号化パラメータを適用してガイド面を符号化し、ガイド面ビットストリームを生成する。そして、符号化部512は、そのガイド面ビットストリームを復号して生成した復号ガイド面を用いて点群の符号化を行い、点数ビットストリーム、座標ビットストリーム、および特徴量ビットストリームを生成する。適用するガイド面符号化パラメータセットが変化すると、ガイド面ビットストリームのサイズと復号ガイド面が変化する。つまり、全体のビットストリームサイズと復号点群C_Xも変化する。そのため、符号化部512は、ガイド面ビットストリームだけでなく、全てのビットストリームを導出する。
In step S503, the
ステップS504において、パラメータセット選択部514は、ステップS503において生成された全てのビットストリーム(点数ビットストリーム、座標ビットストリーム、特徴量ビットストリーム、およびガイド面ビットストリーム)の合計サイズR_iを計算する。
In step S504, the parameter
ステップS505において、復号部513は、図12および図13のフローチャートを参照して説明した復号処理を実行し、ステップS503において生成されたビットストリーム(点数ビットストリーム、座標ビットストリーム、特徴量ビットストリーム、およびガイド面ビットストリーム)を復号し、復号点群C_Xを生成する。
In step S505, the
ステップS506において、パラメータセット選択部514は、復号されたジオメトリ(ステップS505において生成された復号点群C_X)と入力ジオメトリ(入力点群C_X)との誤差D_iを導出する。
In step S506, the parameter
ステップS507において、パラメータセット選択部514は、ステップS501においてセットされた係数λ、ステップS504において導出されたビットストリームのサイズR_i、およびステップS506において導出された誤差D_iを用いて、RDコスト関数の値C_i = R_i + λ・D_iを導出する。
In step S507, the parameter
ステップS508において、パラメータセット選択部514は、全てのパラメータセットについて処理したか否かを判定する。未処理のパラメータセットが存在すると判定された場合、処理はステップS502に戻り、それ以降の処理が実行される。つまり、各パラメータセットについて、ステップS502乃至ステップS508の処理が実行され、RDコスト関数の値C_iが導出される。
In step S508, the parameter
そして、ステップS508において、全てのパラメータセットについて処理が行われたと判定された場合、処理はステップS509へ進む。 If it is determined in step S508 that processing has been performed for all parameter sets, processing proceeds to step S509.
ステップS509において、パラメータセット選択部514は、以上のように導出された各パラメータセットに対応するRDコスト関数の値C_iを比較し、そのRDコスト関数の値C_iが最小となるパラメータセットを選択する。
In step S509, the parameter
ステップS510において、パラメータセット選択部514は、その選択したパラメータセットに対応するビットストリームを符号化装置500の外部に出力する。
In step S510, the parameter
ステップS510の処理が終了すると、復号処理が終了する。 When the processing of step S510 is completed, the decoding process ends.
以上のように各処理を実行することにより、符号化装置500は、RDコストが最適となるガイド面符号化パラメータセットを選択し、入力点群C_Xの符号化(のためのガイド面の符号化)に適用することができる。したがって、符号化装置500は、符号化効率の低減を抑制することができる。
By performing each process as described above, the
<復号について>
なお、方法1-5が適用される場合も、復号装置350は、図11と同様の構成を有し、同様の復号処理を行う。つまり、図11乃至図13を参照して行った説明は、この場合にも適用することができる。
<About Decryption>
Note that even when Method 1-5 is applied, the
<方法1-6>
また、上述の方法1が適用される場合において、図4の表の最下段に示されるように、アトリビュートを伝送してもよい(方法1-6)。つまり、以上においては、ジオメトリの伝送(符号化・復号)について説明したが、ジオメトリだけでなくアトリビュートも伝送(符号化・復号)されるようにしてもよい。
<Method 1-6>
In addition, when the above-mentioned
例えば、第1の情報処理装置において、ガイド面特徴量導出部が、座標集合、アトリビュートの情報を含む特徴量集合、およびテクスチャを含むガイド面を用いて、ガイド面特徴量を導出してもよい。そして、演算部が、そのガイド面特徴量を用いて演算を行い、新たな座標集合、および、アトリビュートを含む特徴量集合を導出してもよい。そして、座標符号化部が、座標集合を符号化して座標ビットストリームを生成してもよい。また、特徴量符号化部が、アトリビュートを含む特徴量集合を符号化して特徴量ビットストリームを生成してもよい。また、ガイド面符号化部が、テクスチャを含むガイド面を符号化して、ガイド面ビットストリームを生成してもよい。また、点数符号化部が各スケールの点数を示す情報を符号化し、点数ビットストリームを生成してもよい。 For example, in the first information processing device, the guide surface feature derivation unit may derive guide surface features using a coordinate set, a feature set including attribute information, and a guide surface including texture. Then, the calculation unit may perform calculations using the guide surface features to derive a new coordinate set and a feature set including attributes. Then, the coordinate encoding unit may encode the coordinate set to generate a coordinate bit stream. Also, the feature encoding unit may encode the feature set including attributes to generate a feature bit stream. Also, the guide surface encoding unit may encode the guide surface including texture to generate a guide surface bit stream. Also, the score encoding unit may encode information indicating the score of each scale to generate a score bit stream.
例えば、第2の情報処理装置において、座標復号部が座標ビットストリームを復号して座標集合を生成してもよい。また、特徴量復号部が特徴量ビットストリームを復号してアトリビュートの情報を含む特徴量集合を生成してもよい。また、ガイド面復号部がガイド面ビットストリームを復号し、テクスチャを含む復号ガイド面を生成してもよい。また、ガイド面特徴量導出部が、座標集合、アトリビュートを含む特徴量集合、およびテクスチャを含む復号ガイド面を用いて、ガイド面特徴量を導出してもよい。そして、演算部が、その導出されたガイド面特徴量を用いて演算を行い、新たな座標集合、および、アトリビュートを含む特徴量集合を導出してもよい。 For example, in the second information processing device, the coordinate decoding unit may decode the coordinate bit stream to generate a coordinate set. The feature decoding unit may decode the feature bit stream to generate a feature set including attribute information. The guide surface decoding unit may decode the guide surface bit stream to generate a decoded guide surface including texture. The guide surface feature derivation unit may derive guide surface features using the coordinate set, the feature set including attributes, and the decoded guide surface including texture. The calculation unit may then perform calculations using the derived guide surface features to derive a new coordinate set and feature set including attributes.
入力点群の各点にアトリビュートが付随している場合を考える。アトリビュートは、どのような情報であってもよい。例えば、色情報や反射輝度が含まれていてもよい。このような点群のアトリビュートは、ジオメトリと同様の枠組みで伝送する(符号化・復号する)ことができる。 Let us consider the case where attributes are attached to each point in the input point cloud. The attributes can be any kind of information. For example, they can include color information or reflected brightness. Such point cloud attributes can be transmitted (encoded and decoded) in the same framework as geometry.
<符号化装置>
図24は、方法1-6を適用する場合の符号化装置の主な構成例を示すブロック図である。図24に示される符号化装置600は、符号化装置300の場合と同様に、ポイントクラウド(3Dデータ)を符号化する装置である。符号化装置600は、上述した方法1-6を適用して符号化を行う。つまり、符号化装置600は、ジオメトリとともにアトリビュートを符号化する。
<Encoding device>
Fig. 24 is a block diagram showing an example of the main configuration of an encoding device when methods 1-6 are applied. The
なお、図24においては、処理部やデータの流れ等の主なものを示しており、図24に示されるものが全てとは限らない。つまり、符号化装置600において、図24においてブロックとして示されていない処理部が存在したり、図24において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
Note that FIG. 24 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 24. In other words, in the
図24に示されるように、符号化装置600は、ガイド面生成部611、ガイド面符号化部612、ガイド面復号部613、疎テンソル構築部614、ガイド面特徴量導出部615、CNN616(CNN_E1)、ガイド面特徴量導出部617、CNN618(CNN_E2)、CNN619(CNN_E3)、ガイド面特徴量導出部620、CNN621(CNN_E4)、CNN622(CNN_E5)、CNN623(CNN_E6)、座標符号化部624、特徴量符号化部625、および点数符号化部626を有する。
As shown in FIG. 24, the
符号化装置600に入力される入力点群は、ジオメトリとアトリビュートにより構成される。つまり、各点は座標値(x, y, z)とアトリビュート値(例えば色情報の場合RGB値)を持つ。
The input point group input to the
ガイド面生成部611は、ガイド面生成部311(図7)と同様の処理部であり、同様の処理を行う。ただし、ガイド面生成部611は、ジオメトリとアトリビュートにより構成される入力点群を取得し、アトリビュートを含むガイド面を生成する。例えば、ガイド面がメッシュにより構成されるとすると、アトリビュートはテクスチャとして形成される。したがって、その場合、ガイド面生成部611は、テクスチャを含むガイド面を生成する。
The guide
テクスチャを保持する方法としては、例えば、テクスチャデータを画像として保持し、メッシュの各頂点にテクスチャ座標値(その頂点がテクスチャ画像中のどこに位置するのかを表す値)(UV座標とも称する)を追加する方法がある。 One way to store textures is to store the texture data as an image and add texture coordinate values (values that indicate where that vertex is located in the texture image) (also called UV coordinates) to each vertex of the mesh.
ガイド面生成部611は、入力点群からガイド面(メッシュ)を生成するのに加えて、入力アトリビュートからテクスチャを生成する必要がある。ガイド面生成部611は、入力点群中の各点について、ガイドメッシュ上の最近傍点を検索し、その最近傍点に対応するテクセル(テクスチャデータにおける1画素をテクセルと称する)にその点のアトリビュートをコピーする。しかしながら、上述の処理後には空のテクセルが存在する可能性がある。その場合、ガイド面生成部611は、近傍値を使って空のテクセル値を補完してもよい。
In addition to generating a guide surface (mesh) from the input point cloud, the
ガイド面符号化部612は、ガイド面符号化部312(図7)と同様の処理部であり、同様の処理を行う。ただし、ガイド面符号化部612は、ガイド面生成部611から供給された、テクスチャを含むガイド面を符号化し、ガイド面ビットストリームを生成する。つまり、ガイド面符号化部612は、メッシュデータを符号化するのに加えて、テクスチャデータも符号化する必要がある。つまり、ガイド面符号化部612は、ジオメトリを符号化するだけでなく、各頂点のテクスチャ座標とテクスチャ画像も符号化する。各頂点のテクスチャ座標の符号化には、どのような符号化方法が適用されてもよい。例えば、Draco符号化が適用されてもよい(Draco符号化器はメッシュに加えてテクスチャ座標も符号化することができる)。また、テクスチャ画像の符号化には、既存の画像圧縮手法(例えば、JPEG(Joint Photographic Experts Group)やPNG(Portable Network Graphics)等)が適用されてもよい。したがって、この場合のガイド面ビットストリームは、メッシュを符号化したビットストリームに加えて、テクスチャを符号化したビットストリームも含まれる。
The guide
ガイド面復号部613は、ガイド面復号部313(図7)と同様の処理部であり、同様の処理を行う。ただし、ガイド面復号部613は、ガイド面ビットストリームを復号し、テクスチャを含む復号ガイド面を生成する。つまり、ガイド面復号部613は、ビットストリームを復号して、ジオメトリを生成するだけでなく、各頂点のテクスチャ座標とテクスチャ画像も生成する。各頂点のテクスチャ座標を生成する際の復号には、どのような復号方法が適用されてもよい。例えば、Draco復号が適用されてもよい(Draco復号器はメッシュに加えてテクスチャ座標も生成することができる)。また、テクスチャ画像を生成する際の復号には、既存の画像復号手法(例えば、JPEGやPNG等)が適用されてもよい。
The guide
疎テンソル構築部614は、疎テンソル構築部314(図7)と同様の処理部であり、同様の処理を行う。ただし、疎テンソル構築部614は、ジオメトリとアトリビュートにより構成される入力点群から入力疎テンソルX = {C_X, F_X}を構築する。この場合、アトリビュートを入力するために、特徴量集合F_Xは、各座標のアトリビュートを並べたベクトルとする。つまり、各特徴量f_i ∈ F_Xは、各点のアトリビュート値(例えば、RGB値)である。また、特徴量ベクトルの次元が増えるため、CNN616(CNN_E1)の入力次元もその分増やす必要がある。
The sparse
ガイド面特徴量導出部615は、ガイド面特徴量導出部315(図7)と同様の処理部であり、同様の処理を行う。ただし、ガイド面特徴量導出部615は、テクスチャ上のアトリビュートの情報も符号化と復号に利用するために、ガイド面特徴量にテクスチャから抽出した特徴量も含める。具体的には、ガイド面特徴量導出部615は、ガイドメッシュ上の最近傍点p_iにおけるテクスチャ値a_i(例えば色情報であればRGB値)を連結する。つまり、ベクトルを連結してg(c_i) = [p_i - c_i, a_i]となる。
The guide surface feature
CNN616(CNN_E1)は、CNN316(CNN_E1)(図7)と同様の処理部であり、同様の処理を行う。ただし、この場合、CNN616(CNN_E1)の処理対象の疎テンソルにおいて、F_Xは各座標のアトリビュートを並べたベクトルに変更される。つまり、各特徴量f_i ∈ F_Xは各点のアトリビュート値(例えばRGB値)である。また、特徴量ベクトルの次元が増えるため、CNN616(CNN_E1)の入力次元もその分増やす必要がある。 CNN616 (CNN_E1) is a processing unit similar to CNN316 (CNN_E1) (Figure 7) and performs similar processing. However, in this case, in the sparse tensor processed by CNN616 (CNN_E1), F_X is changed to a vector that lists the attributes of each coordinate. In other words, each feature f_i ∈ F_X is the attribute value of each point (for example, RGB value). In addition, because the dimension of the feature vector increases, the input dimension of CNN616 (CNN_E1) must also be increased accordingly.
ガイド面特徴量導出部617は、ガイド面特徴量導出部317(図7)と同様の処理部であり、同様の処理を行う。ただし、ガイド面特徴量導出部617は、ガイド面特徴量導出部615の場合と同様に、テクスチャ上のアトリビュートの情報も符号化と復号に利用するために、ガイド面特徴量にテクスチャから抽出した特徴量も含める。
The guide surface feature
CNN618(CNN_E2)は、CNN318(CNN_E2)(図7)と同様の処理部であり、同様の処理を行う。ただし、この場合、CNN616(CNN_E1)の場合と同様に、CNN618(CNN_E2)の入力次元を増やす必要がある。 CNN618 (CNN_E2) is a processing unit similar to CNN318 (CNN_E2) (Figure 7) and performs similar processing. However, in this case, it is necessary to increase the input dimensions of CNN618 (CNN_E2), as in the case of CNN616 (CNN_E1).
CNN619(CNN_E3)は、CNN319(CNN_E3)(図7)と同様の処理部であり、同様の処理を行う。 CNN619 (CNN_E3) is a processing unit similar to CNN319 (CNN_E3) (Figure 7) and performs similar processing.
ガイド面特徴量導出部620は、ガイド面特徴量導出部320(図7)と同様の処理部であり、同様の処理を行う。ただし、ガイド面特徴量導出部620は、ガイド面特徴量導出部615の場合と同様に、テクスチャ上のアトリビュートの情報も符号化と復号に利用するために、ガイド面特徴量にテクスチャから抽出した特徴量も含める。
The guide surface feature
CNN621(CNN_E4)は、CNN321(CNN_E4)(図7)と同様の処理部であり、同様の処理を行う。ただし、この場合、CNN616(CNN_E1)の場合と同様に、CNN621(CNN_E4)の入力次元を増やす必要がある。 CNN621 (CNN_E4) is a processing unit similar to CNN321 (CNN_E4) (Figure 7) and performs similar processing. However, in this case, it is necessary to increase the input dimensions of CNN621 (CNN_E4), as in the case of CNN616 (CNN_E1).
CNN622(CNN_E5)は、CNN322(CNN_E5)(図7)と同様の処理部であり、同様の処理を行う。 CNN622 (CNN_E5) is a processing unit similar to CNN322 (CNN_E5) (Figure 7) and performs similar processing.
CNN623(CNN_E6)は、CNN323(CNN_E6)(図7)と同様の処理部であり、同様の処理を行う。 CNN623 (CNN_E6) is a processing unit similar to CNN323 (CNN_E6) (Figure 7) and performs similar processing.
座標符号化部624は、座標符号化部324(図7)と同様の処理部であり、同様の処理を行う。特徴量符号化部625は、特徴量符号化部325(図7)と同様の処理部であり、同様の処理を行う。ただし、この場合、特徴量符号化部625が符号化する特徴量集合には、ジオメトリ情報だけでなくアトリビュート情報も含まれる。点数符号化部626は、点数符号化部326(図7)と同様の処理部であり、同様の処理を行う。
The coordinate
このような構成を有することにより、符号化装置600は、ジオメトリだけでなくアトリビュートも符号化することができる。
With this configuration, the
<符号化処理の流れ>
符号化装置600により実行される符号化処理の流れの例を、図25および図26のフローチャートを参照して説明する。
<Encoding process flow>
An example of the flow of the encoding process executed by the
この場合、符号化処理が開始されると、ガイド面生成部611および疎テンソル構築部614は、図25のステップS601において、符号化装置600へ入力されるポイントクラウドである入力点群C_Xとそのアトリビュートを取得する。
In this case, when the encoding process is started, the guide
ステップS602において、ガイド面生成部611は、その入力点群C_Xとアトリビュートからガイド面とテクスチャデータを生成する。
In step S602, the guide
ステップS603において、ガイド面符号化部612は、その生成されたガイド面とテクスチャデータを符号化し、ガイド面ビットストリームを生成する。ガイド面符号化部612は、そのガイド面ビットストリームを符号化装置600の外部へ出力する。
In step S603, the guide
ステップS604において、ガイド面復号部613は、そのガイド面ビットストリームを復号し、復号ガイド面と復号テクスチャデータを生成(復元)する。
In step S604, the guide
ステップS605において、疎テンソル構築部614は、入力点群C_Xとアトリビュートから入力疎テンソルX={C_X, F_X}(スケール1倍)を生成する。
In step S605, the sparse
ステップS606において、ガイド面特徴量導出部615は、{C^in, F^in} ← (C_X, F_X)とする。つまり、ガイド面特徴量導出部615は、入力疎テンソルX={C_X, F_X}を、処理対象の疎テンソル(C^in, F^in)とする。
In step S606, the guide surface
ステップS607において、ガイド面特徴量導出部615、ガイド面特徴量導出部617、または、ガイド面特徴量導出部620は、次の3D-CNNにガイド面特徴量を入力するか否かを判定する。次の3D-CNNにガイド面特徴量を入力すると判定された場合、処理はステップS608へ進む。
In step S607, the guide surface
ステップS608において、ガイド面特徴量導出部615、ガイド面特徴量導出部617、または、ガイド面特徴量導出部620は、ガイド面特徴量集合導出処理を実行し、処理対象の疎テンソルと、復号ガイド面と、復号テクスチャデータとを用いて、ガイド面特徴量集合g(C^in)を導出する。
In step S608, the guide surface
ステップS609において、ガイド面特徴量導出部615、ガイド面特徴量導出部617、または、ガイド面特徴量導出部620は、F^in ← [F^in, g(C^in)]とする。つまり、ガイド面特徴量導出部615、ガイド面特徴量導出部617、または、ガイド面特徴量導出部620は、処理対象の特徴量集合およびガイド面特徴量集合g(C^in)を連結したものを次の3D-CNNの処理対象の特徴量集合とする。
In step S609, the guide surface
ステップS609の処理が終了すると、処理は図26へ進む。また、図25のステップS607において、次の3D-CNNにガイド面特徴量を入力しないと判定された場合、処理は図26へ進む。つまり、3D-CNNの直前にガイド面特徴量導出部が存在しない場合、ステップS608およびステップS609の処理が省略される。例えば符号化装置600が図24に示される構成例である場合、次の3D-CNNがCNN616(CNN_E1)、CNN618(CNN_E2)、またはCNN621(CNN_E4)のとき、ステップS608およびステップS609の処理が実行され、次の3D-CNNがCNN619(CNN_E3)、CNN622(CNN_E5)、またはCNN623(CNN_E6)のとき、ステップS608およびステップS609の処理が省略される。
When the processing of step S609 is completed, the processing proceeds to FIG. 26. Also, in step S607 of FIG. 25, if it is determined that the guide surface feature amount is not to be input to the next 3D-CNN, the processing proceeds to FIG. 26. In other words, if there is no guide surface feature amount derivation unit immediately before the 3D-CNN, the processing of steps S608 and S609 is omitted. For example, when the
図26のステップS621において、CNN616(CNN_E1)、CNN618(CNN_E2)、CNN619(CNN_E3)、CNN621(CNN_E4)、CNN622(CNN_E5)、またはCNN623(CNN_E6)は、処理対象の疎テンソル{C^in, F^in}に3D-CNN演算を行い、演算結果の疎テンソル{C^out, F^out}を導出する。 In step S621 of FIG. 26, CNN616 (CNN_E1), CNN618 (CNN_E2), CNN619 (CNN_E3), CNN621 (CNN_E4), CNN622 (CNN_E5), or CNN623 (CNN_E6) performs 3D-CNN operations on the sparse tensor {C^in, F^in} to be processed, and derives the sparse tensor {C^out, F^out} as the operation result.
ステップS622において、CNN623(CNN_E6)は、全ての3D-CNNについて処理を行ったか否かを判定する。全ての3D-CNNについて処理を行っていない(すなわち、未処理の3D-CNNが存在する(少なくともCNN623(CNN_E6)が未処理である))と判定された場合、処理はステップS623へ進む。 In step S622, CNN623 (CNN_E6) determines whether processing has been performed for all 3D-CNNs. If it is determined that processing has not been performed for all 3D-CNNs (i.e., there are unprocessed 3D-CNNs (at least CNN623 (CNN_E6) is unprocessed)), processing proceeds to step S623.
ステップS623において、CNN616(CNN_E1)、CNN618(CNN_E2)、CNN619(CNN_E3)、CNN621(CNN_E4)、またはCNN622(CNN_E5)は、{C^in, F^in} ← {C^out, F^out}とする。つまり、CNN616(CNN_E1)、CNN618(CNN_E2)、CNN619(CNN_E3)、CNN621(CNN_E4)、またはCNN622(CNN_E5)は、自身が導出した演算結果の疎テンソル{C^out, F^out}を、次の処理部(ガイド面特徴量導出部または3D-CNN)の処理対象の疎テンソル{C^in, F^in}とする。 In step S623, CNN616 (CNN_E1), CNN618 (CNN_E2), CNN619 (CNN_E3), CNN621 (CNN_E4), or CNN622 (CNN_E5) sets {C^in, F^in} ← {C^out, F^out}. In other words, CNN616 (CNN_E1), CNN618 (CNN_E2), CNN619 (CNN_E3), CNN621 (CNN_E4), or CNN622 (CNN_E5) sets the sparse tensor {C^out, F^out} resulting from the calculation it derived as the sparse tensor {C^in, F^in} to be processed by the next processing unit (guide surface feature derivation unit or 3D-CNN).
ステップS623の処理が終了すると、処理は図25のステップS607へ戻り、それ以降の処理が実行される。つまり、図25のステップS607乃至ステップS609の各処理、並びに、図26のステップS621乃至ステップS623の各処理が、各3D-CNN(3D-CNNの直前にガイド面特徴量導出部が存在する場合は、そのガイド面特徴量導出部も含む)に対して実行される。 When the processing of step S623 ends, the process returns to step S607 in FIG. 25, and the subsequent processing is executed. In other words, the processing of each of steps S607 to S609 in FIG. 25 and the processing of each of steps S621 to S623 in FIG. 26 are executed for each 3D-CNN (including the guide surface feature derivation unit if one exists immediately before the 3D-CNN).
そして、図26のステップS622において、全ての3D-CNNについて処理を行った(すなわち、CNN623(CNN_E6)について処理が行われた)と判定された場合、処理はステップS624へ進む。 If it is determined in step S622 of FIG. 26 that processing has been performed for all 3D-CNNs (i.e., processing has been performed for CNN623 (CNN_E6)), processing proceeds to step S624.
ステップS624において、CNN623(CNN_E6)は、{C_Y, F_Y} ← {C^out, F^out}とする。つまり、最後のCNN623(CNN_E6)は、自身が導出した演算結果の疎テンソル{C^out, F^out}を、出力疎テンソル{C_Y, F_Y}とする。 In step S624, CNN 623 (CNN_E6) sets {C_Y, F_Y} ← {C^out, F^out}. In other words, the last CNN 623 (CNN_E6) sets the sparse tensor {C^out, F^out}, which is the result of the calculation it derived, as the output sparse tensor {C_Y, F_Y}.
ステップS625において、座標符号化部624は、その出力疎テンソル{C_Y, F_Y}の座標集合C_Yを符号化し、座標ビットストリームを生成する。また、その座標ビットストリームを符号化装置600の外部へ出力する。
In step S625, the coordinate
ステップS626において、特徴量符号化部625は、その出力疎テンソル{C_Y, F_Y}の特徴量集合F_Yを符号化し、特徴量ビットストリームを生成する。また、その特徴量ビットストリームを符号化装置600の外部へ出力する。
In step S626, the
ステップS627において、スケール毎の点数を符号化し、点数ビットストリームを生成する。また、その点数ビットストリームを符号化装置600の外部へ出力する。
In step S627, the scores for each scale are encoded to generate a score bit stream. The score bit stream is then output to the outside of the
ステップS627の処理が終了すると、符号化処理が終了する。 When the processing of step S627 is completed, the encoding process ends.
<ガイド面特徴量集合導出処理の流れ>
次に、図25のステップS608において実行されるガイド面特徴量集合導出処理の流れの例を、図27のフローチャートを参照して説明する。
<Flow of guide surface feature set derivation process>
Next, an example of the flow of the guide surface feature amount set derivation process executed in step S608 in FIG. 25 will be described with reference to the flowchart in FIG.
ガイド面特徴量集合導出処理が開始されると、ステップS631において、ガイド面特徴量導出部615、ガイド面特徴量導出部617、または、ガイド面特徴量導出部620は、座標c_i ∈ C^inを取り出す。つまり、ガイド面特徴量導出部615、ガイド面特徴量導出部617、または、ガイド面特徴量導出部620は、処理対象の座標集合C^inから1つの座標c_iを選択し、それを処理対象とする。
When the guide surface feature amount set derivation process is started, in step S631, the guide surface feature
ステップS632において、ガイド面特徴量導出部615、ガイド面特徴量導出部617、または、ガイド面特徴量導出部620は、その選択した座標c_iから見て、復号ガイド面上の最近傍点p_iを検索する。
In step S632, the guide surface feature
ステップS633において、ガイド面特徴量導出部615、ガイド面特徴量導出部617、または、ガイド面特徴量導出部620は、検索した最近傍点までのベクトルとアトリビュート値を並べたベクトルg(c_i) = [p_i - c_i, a_i]を返す。つまり、ガイド面特徴量導出部615、ガイド面特徴量導出部617、または、ガイド面特徴量導出部620は、ガイド面および点の位置関係(この例では、p_i - c_i)とアトリビュート値(この例ではa_i)に基づくガイド面特徴量g(c_i)を導出する。
In step S633, the guide surface feature
ステップS634において、ガイド面特徴量導出部615、ガイド面特徴量導出部617、または、ガイド面特徴量導出部620は、全ての座標c_i ∈ C^inについて処理を行ったか否かを判定する。未処理の座標c_iが存在すると判定された場合、処理はステップS631に戻り、それ以降の処理が実行される。つまり、処理対象の座標集合C^inの各座標値c_iについて、ステップS631乃至ステップS634の各処理が実行される。
In step S634, the guide surface
そして、ステップS634において、全ての座標値c_iについて処理を行ったと判定された場合、ガイド面特徴量集合導出処理が終了し、処理は図25に戻る。 If it is determined in step S634 that processing has been performed for all coordinate values c_i, the guide surface feature set derivation process ends and processing returns to FIG. 25.
このように各処理を実行することにより、符号化装置600は、ジオメトリだけでなくアトリビュートも符号化することができる。
By performing each process in this manner, the
<復号装置>
図28は、方法1-6を適用する場合の復号装置の主な構成例を示すブロック図である。図28に示される復号装置650は、復号装置350の場合と同様に、ポイントクラウド(3Dデータ)のジオメトリが符号化されたビットストリームを復号する装置である。例えば、復号装置650は、符号化装置600によりポイントクラウド(のジオメトリおよびアトリビュート)が符号化されて生成されたビットストリーム(ガイド面ビットストリーム、座標ビットストリーム、特徴量ビットストリーム、および点数ビットストリーム)を復号し、ポイントクラウド(のジオメトリおよびアトリビュート)を生成(復元)する。
<Decoding device>
FIG. 28 is a block diagram showing a main configuration example of a decoding device when applying methods 1-6. The
なお、図28においては、処理部やデータの流れ等の主なものを示しており、図28に示されるものが全てとは限らない。つまり、復号装置650において、図28においてブロックとして示されていない処理部が存在したり、図28において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
Note that FIG. 28 shows the main processing units, data flows, etc., and is not necessarily all that is shown in FIG. 28. In other words, in the
図28に示されるように、復号装置650は、点数復号部661、座標復号部662、特徴量復号部663、ガイド面復号部664、CNN665(CNN_D1)、ガイド面特徴量導出部666、CNN667(CNN_D2)、占有状態分類部668、CNN669(CNN_D3)、ガイド面特徴量導出部670、CNN671(CNN_D4)、占有状態分類部672、CNN673(CNN_D5)、ガイド面特徴量導出部674、CNN675(CNN_D6)、および占有状態分類部676を有する。
As shown in FIG. 28, the
点数復号部661は、点数復号部361(図11)と同様の処理部であり、同様の処理を行う。例えば、点数復号部661は、復号装置650に入力される点数ビットストリームを取得し、復号し、各スケールの座標集合の点数を示す情報(N_X、N_X'、N_X'')を生成(復元)してもよい。点数復号部661は、N_Xを占有状態分類部676へ供給し、N_X'を占有状態分類部672へ供給し、N_X''を占有状態分類部668へ供給してもよい。
The
座標復号部662は、座標復号部362(図11)と同様の処理部であり、同様の処理を行う。例えば、座標復号部662は、復号装置650に入力される座標ビットストリームを取得し、復号し、座標集合C_Yを生成(復元)してもよい。座標復号部662は、生成した座標集合C_YをCNN665(CNN_D1)へ供給してもよい。
The coordinate
特徴量復号部663は、特徴量復号部363(図11)と同様の処理部であり、同様の処理を行う。例えば、特徴量復号部663は、復号装置650に入力される特徴量ビットストリームを取得し、エントロピ復号し、特徴量集合F_Yを生成(復元)してもよい。特徴量復号部663は、生成した特徴量集合F_YをCNN665(CNN_D1)へ供給してもよい。
The
ガイド面復号部664は、ガイド面復号部613(図24)と同様の処理部であり、ガイド面ビットストリームの復号に関する処理を実行する。例えば、ガイド面復号部664は、復号装置650に入力されるガイド面ビットストリームを取得し、復号し、テクスチャを含む復号ガイド面を生成する。つまり、ガイド面復号部664は、ビットストリームを復号して、ジオメトリを生成するだけでなく、各頂点のテクスチャ座標とテクスチャ画像も生成する。この復号方法はガイド面復号部613(図24)の場合と同様に任意である。ガイド面復号部664は、生成した復号ガイド面(テクスチャを含む)を、ガイド面特徴量導出部666、ガイド面特徴量導出部670、およびガイド面特徴量導出部674へ供給してもよい。
The guide
CNN665(CNN_D1)は、CNN365(CNN_D1)(図11)と同様の処理部であり、同様の処理を行う。ただし、この場合、CNN665(CNN_D1)の処理対象の疎テンソルにおいて、特徴量集合には、ジオメトリ情報だけでなくアトリビュート情報も含まれる。 CNN665 (CNN_D1) is a processing unit similar to CNN365 (CNN_D1) (Figure 11) and performs similar processing. However, in this case, the feature set in the sparse tensor processed by CNN665 (CNN_D1) includes not only geometry information but also attribute information.
ガイド面特徴量導出部666は、ガイド面特徴量導出部366(図11)と同様の処理部であり、同様の処理を行う。ただし、ガイド面特徴量導出部666は、テクスチャ上のアトリビュートの情報も符号化と復号に利用するために、ガイド面特徴量にテクスチャから抽出した特徴量も含める。具体的には、ガイド面特徴量導出部666は、ガイドメッシュ上の最近傍点p_iにおけるテクスチャ値a_i(例えば色情報であればRGB値)を連結する。つまり、ベクトルを連結してg(c_i) = [p_i - c_i, a_i]となる。
The guide surface feature
CNN667(CNN_D2)は、CNN367(CNN_D2)(図11)と同様の処理部であり、同様の処理を行う。ただし、この場合、ガイド面特徴量の次元数がアトリビュート値の次元数の分だけ増えるため、CNN667(CNN_D2)の入力次元を増やす必要がある。 CNN667 (CNN_D2) is a processing unit similar to CNN367 (CNN_D2) (Figure 11) and performs similar processing. However, in this case, the number of dimensions of the guide surface feature increases by the number of dimensions of the attribute value, so it is necessary to increase the input dimensions of CNN667 (CNN_D2).
占有状態分類部668は、占有状態分類部368(図11)と同様の処理部であり、同様の処理を行う。例えば、占有状態分類部668は、処理対象の疎テンソルを用いて占有確率値を予測し、占有確率値の上位N_X''個の座標値を抽出し、それ以外の座標値を削除し、演算結果の疎テンソルX'' = {C_X'', F_X''}を生成してもよい。占有状態分類部668は、その演算結果の疎テンソルX'' = {C_X'', F_X''}をCNN669(CNN_D3)へ供給してもよい。
The occupancy
CNN669(CNN_D3)は、CNN369(CNN_D3)(図11)と同様の処理部であり、同様の処理を行う。 CNN669 (CNN_D3) is a processing unit similar to CNN369 (CNN_D3) (Figure 11) and performs similar processing.
ガイド面特徴量導出部670は、ガイド面特徴量導出部370(図11)と同様の処理部であり、同様の処理を行う。ただし、ガイド面特徴量導出部670は、ガイド面特徴量導出部666の場合と同様に、テクスチャ上のアトリビュートの情報も符号化と復号に利用するために、ガイド面特徴量にテクスチャから抽出した特徴量も含める。
The guide surface feature
CNN671(CNN_D4)は、CNN371(CNN_D4)(図11)と同様の処理部であり、同様の処理を行う。ただし、この場合、ガイド面特徴量の次元数がアトリビュート値の次元数の分だけ増えるため、CNN671(CNN_D4)の入力次元を増やす必要がある。 CNN671 (CNN_D4) is a processing unit similar to CNN371 (CNN_D4) (Figure 11) and performs similar processing. However, in this case, the number of dimensions of the guide surface feature increases by the number of dimensions of the attribute value, so it is necessary to increase the input dimensions of CNN671 (CNN_D4).
占有状態分類部672は、占有状態分類部372(図11)と同様の処理部であり、同様の処理を行う。例えば、占有状態分類部672は、処理対象の疎テンソルを用いて占有確率値を予測し、占有確率値の上位N_X'個の座標値を抽出し、それ以外の座標値を削除し、演算結果の疎テンソルX' = {C_X', F_X'}を生成してもよい。占有状態分類部672は、その演算結果の疎テンソルX' = {C_X', F_X'}をCNN673(CNN_D5)へ供給してもよい。
The occupancy
CNN673(CNN_D5)は、CNN373(CNN_D5)(図11)と同様の処理部であり、同様の処理を行う。 CNN673 (CNN_D5) is a processing unit similar to CNN373 (CNN_D5) (Figure 11) and performs similar processing.
ガイド面特徴量導出部674は、ガイド面特徴量導出部374(図11)と同様の処理部であり、同様の処理を行う。ただし、ガイド面特徴量導出部674は、ガイド面特徴量導出部666の場合と同様に、テクスチャ上のアトリビュートの情報も符号化と復号に利用するために、ガイド面特徴量にテクスチャから抽出した特徴量も含める。
The guide surface feature
CNN675(CNN_D6)は、CNN375(CNN_D6)(図11)と同様の処理部であり、同様の処理を行う。ただし、この場合、ガイド面特徴量の次元数がアトリビュート値の次元数の分だけ増えるため、CNN675(CNN_D6)の入力次元を増やす必要がある。さらに、CNN675(CNN_D6)は、アトリビュート値の分だけ出力次元を増やす必要があります。 CNN675 (CNN_D6) is a processing unit similar to CNN375 (CNN_D6) (Figure 11) and performs similar processing. However, in this case, the number of dimensions of the guide surface features increases by the number of dimensions of the attribute values, so it is necessary to increase the input dimensions of CNN675 (CNN_D6). Furthermore, CNN675 (CNN_D6) needs to increase the output dimensions by the number of attribute values.
占有状態分類部676は、占有状態分類部376(図11)と同様の処理部であり、同様の処理を行う。例えば、占有状態分類部676は、処理対象の疎テンソルを用いて占有確率値を予測し、占有確率値の上位N_X個の座標値を抽出し、それ以外の座標値を削除し、演算結果の疎テンソルX = {C_X, F_X}を生成してもよい。占有状態分類部676は、その演算結果の復号点群C_Xを復号装置650の外部へ出力してもよい。また、占有状態分類部676は、その演算結果のアトリビュートを復号装置650の外部へ出力してもよい。
The occupancy
例えばアトリビュートがRGB値の場合、CNN675(CNN_D6)が出力する特徴量ベクトル集合F_Xの各特徴量ベクトルf_i ∈ F_Xを3次元増やし、RGB値とする。占有状態分類部676は、そのアトリビュート値を復号点群C_Xの各点のアトリビュートとして設定し、出力する。
For example, if the attribute is an RGB value, each feature vector f_i ∈ F_X in the feature vector set F_X output by the CNN 675 (CNN_D6) is expanded by three dimensions to become an RGB value. The occupancy
このような構成を有することにより、復号装置650は、ジオメトリだけでなくアトリビュートの復号も行うことができる。
With this configuration, the
<復号処理の流れ>
復号装置650により実行される復号処理の流れの例を、図29および図30のフローチャートを参照して説明する。
<Decryption process flow>
An example of the flow of the decoding process executed by the
この場合、復号処理が開始されると、点数復号部661は、図29のステップS651において、点数ビットストリームを復号し、各スケールの点数(N_X、N_X'、N_X'')を生成する。
In this case, when the decoding process starts, the
ステップS652において、座標復号部662は、座標ビットストリームを復号し、座標集合C_Yを生成する。
In step S652, the coordinate
ステップS653において、特徴量復号部663は、特徴量ビットストリームを復号し、特徴量集合F_Yを生成する。
In step S653, the
ステップS654において、ガイド面復号部664は、ガイド面ビットストリームを復号し、復号ガイド面と復号テクスチャデータを生成する。
In step S654, the guide
ステップS655において、CNN665(CNN_D1)は、{C^in, F^in} ← {C_Y, F_Y}とする。つまり、CNN665(CNN_D1)は、疎テンソルY = {C_Y, F_Y}を処理対象の疎テンソル{C^in, F^in}とする。 In step S655, CNN665 (CNN_D1) sets {C^in, F^in} ← {C_Y, F_Y}. In other words, CNN665 (CNN_D1) sets the sparse tensor Y = {C_Y, F_Y} as the sparse tensor {C^in, F^in} to be processed.
ステップS656において、CNN665(CNN_D1)、CNN667(CNN_D2)、CNN669(CNN_D3)、CNN671(CNN_D4)、CNN673(CNN_D5)、またはCNN675(CNN_D6)は、自身の3D-CNNにガイド面特徴量を入力するか否かを判定する。入力すると判定された場合、処理はステップS657へ進む。つまり処理対象のCNNが、CNN667(CNN_D2)、CNN671(CNN_D4)、またはCNN375(CNN_D6)である場合、処理はステップS657へ進む。 In step S656, CNN665 (CNN_D1), CNN667 (CNN_D2), CNN669 (CNN_D3), CNN671 (CNN_D4), CNN673 (CNN_D5), or CNN675 (CNN_D6) determines whether or not to input guide surface features to its own 3D-CNN. If it is determined that the guide surface features are to be input, the process proceeds to step S657. In other words, if the CNN to be processed is CNN667 (CNN_D2), CNN671 (CNN_D4), or CNN375 (CNN_D6), the process proceeds to step S657.
ステップS657において、ガイド面特徴量導出部666、ガイド面特徴量導出部670、またはガイド面特徴量導出部674は、ガイド面特徴量集合導出処理を実行し、ガイド面特徴量集合g(C^in)を導出する。このガイド面特徴量集合導出処理は、図27のフローチャートを参照して説明した場合と同様に実行される。つまり、ガイド面特徴量導出部666、ガイド面特徴量導出部670、またはガイド面特徴量導出部674は、処理対象の疎テンソルと、復号ガイド面と、復号テクスチャデータとを用いて、ガイド面特徴量集合g(C^in)を導出する。
In step S657, the guide surface feature
ステップS658において、ガイド面特徴量導出部666、ガイド面特徴量導出部670、またはガイド面特徴量導出部674は、F^in ← [F^in, g(C^in)]とする。つまり、ガイド面特徴量導出部766、ガイド面特徴量導出部670、またはガイド面特徴量導出部674は、処理対象の特徴量集合およびガイド面特徴量集合g(C^in)を連結したものを次の3D-CNNの処理対象の特徴量集合とする。
In step S658, the guide surface
ステップS658の処理が終了すると処理は図30へ進む。また、図29のステップS656において、自身の3D-CNNにガイド面特徴量を入力しないと判定された場合、ステップS657およびステップS658の処理が省略され、処理は図30へ進む。つまり処理対象のCNNが、CNN665(CNN_D1)、CNN669(CNN_D3)、またはCNN673(CNN_D5)である場合、ステップS657およびステップS658の処理が省略され、処理は図30へ進む。 When the processing of step S658 ends, the process proceeds to FIG. 30. Also, if it is determined in step S656 of FIG. 29 that guide surface features are not to be input to its own 3D-CNN, the processing of steps S657 and S658 is omitted, and the process proceeds to FIG. 30. In other words, if the CNN to be processed is CNN665 (CNN_D1), CNN669 (CNN_D3), or CNN673 (CNN_D5), the processing of steps S657 and S658 is omitted, and the process proceeds to FIG. 30.
図30のステップS671において、CNN665(CNN_D1)、CNN667(CNN_D2)、CNN669(CNN_D3)、CNN671(CNN_D4)、CNN673(CNN_D5)、またはCNN675(CNN_D6)は、処理対象の疎テンソル{C^in, F^in}に3D-CNN演算を行い、演算結果の疎テンソル{C^out, F^out}を導出する。 In step S671 of FIG. 30, CNN665 (CNN_D1), CNN667 (CNN_D2), CNN669 (CNN_D3), CNN671 (CNN_D4), CNN673 (CNN_D5), or CNN675 (CNN_D6) performs 3D-CNN operations on the sparse tensor {C^in, F^in} to be processed, and derives the sparse tensor {C^out, F^out} as the operation result.
ステップS672において、占有状態分類部668、占有状態分類部672、または占有状態分類部676は、占有状態の分類を行うか否かを判定する。占有状態の分類を行うと判定された場合、処理はステップS673へ進む。つまり、ステップS671の処理をCNN667(CNN_D2)、CNN671(CNN_D4)、またはCNN675(CNN_D6)が実行する場合、処理はステップS673へ進む。
In step S672, the occupancy
ステップS673において、占有状態分類部668、占有状態分類部672、または占有状態分類部676は、座標集合C^out中の各座標の占有確率を予測し、占有確率の高い方から上位k個の座標を抽出し、それ以外の座標を削除する。その際、このkには、N_X、N_X'、N_X''のうちの、処理対象の疎テンソルに対応するスケールの値が適用される。また、占有状態分類部668、占有状態分類部672、または占有状態分類部676は、F^out中の削除される座標に対応する特徴量も削除する。
In step S673, the occupancy
ステップS673の処理が終了すると処理はステップS674へ進む。また、ステップS672において、占有状態の分類を行わないと判定された場合、ステップS673の処理が省略され、処理はステップS674へ進む。つまり、ステップS671の処理をCNN665(CNN_D1)、CNN669(CNN_D3)、またはCNN673(CNN_D5)が実行する場合、ステップS673の処理が省略され、処理はステップS674へ進む。 When the process of step S673 ends, the process proceeds to step S674. Also, if it is determined in step S672 that occupancy state classification is not to be performed, the process of step S673 is omitted and the process proceeds to step S674. In other words, if the process of step S671 is performed by CNN665 (CNN_D1), CNN669 (CNN_D3), or CNN673 (CNN_D5), the process of step S673 is omitted and the process proceeds to step S674.
ステップS674において、CNN675(CNN_D6)は、全ての3D-CNNについて処理を行ったか否かを判定する。全ての3D-CNNについて処理を行っていない(すなわち、未処理の3D-CNNが存在する(少なくともCNN675(CNN_D6)が未処理である))と判定された場合、処理はステップS675へ進む。 In step S674, CNN675 (CNN_D6) determines whether processing has been performed for all 3D-CNNs. If it is determined that processing has not been performed for all 3D-CNNs (i.e., there are unprocessed 3D-CNNs (at least CNN675 (CNN_D6) is unprocessed)), processing proceeds to step S675.
ステップS675において、CNN665(CNN_D1)、CNN667(CNN_D2)、CNN669(CNN_D3)、CNN671(CNN_D4)、CNN673(CNN_D5)、またはCNN675(CNN_D6)は、{C^in, F^in} ← {C^out, F^out}とする。つまり、CNN665(CNN_D1)、CNN667(CNN_D2)、CNN669(CNN_D3)、CNN671(CNN_D4)、CNN673(CNN_D5)、またはCNN675(CNN_D6)は、自身が導出した演算結果の疎テンソル{C^out, F^out}を、次の処理部(ガイド面特徴量導出部または占有状態分類部)の処理対象の疎テンソル{C^in, F^in}とする。ステップS675の処理が終了すると、処理は図29のステップS656へ戻り、それ以降の処理が実行される。つまり、図29のステップS656乃至ステップS658の各処理、並びに、図30のステップS671乃至ステップS675の各処理が、各3D-CNN(ガイド面特徴量導出部や占有状態分類部を含み得る)に対して実行される。 In step S675, CNN665 (CNN_D1), CNN667 (CNN_D2), CNN669 (CNN_D3), CNN671 (CNN_D4), CNN673 (CNN_D5), or CNN675 (CNN_D6) sets {C^in, F^in} ← {C^out, F^out}. In other words, CNN665 (CNN_D1), CNN667 (CNN_D2), CNN669 (CNN_D3), CNN671 (CNN_D4), CNN673 (CNN_D5), or CNN675 (CNN_D6) sets the sparse tensor {C^out, F^out} of the calculation result derived by itself as the sparse tensor {C^in, F^in} to be processed by the next processing unit (guide surface feature derivation unit or occupancy state classification unit). When the processing of step S675 is completed, the process returns to step S656 in FIG. 29, and subsequent processing is executed. That is, the processes of steps S656 to S658 in FIG. 29 and steps S671 to S675 in FIG. 30 are executed for each 3D-CNN (which may include a guide surface feature derivation unit and an occupancy state classification unit).
そして、図30のステップS674において、全ての3D-CNNについて処理が行われたと判定された場合、処理はステップS676へ進む。 If it is determined in step S674 of FIG. 30 that processing has been performed for all 3D-CNNs, processing proceeds to step S676.
ステップS676において、占有状態分類部676は、C_X ← C^outとする。つまり、占有状態分類部676は、演算結果の座標集合C^outを復号結果(復号点群C_X)とする。また、占有状態分類部676は、F^outからアトリビュート値を取り出す。例えば、アトリビュートがRGB値の場合、占有状態分類部676は、F^outの各特徴量ベクトルの最後の3次元を取り出し、そのベクトルをアトリビュートとする。
In step S676, the occupancy
ステップS677において、占有状態分類部676は、得られた復号点群C_Xを復号装置650の外部に出力する。また、占有状態分類部676は、得られたアトリビュートを復号装置650の外部に出力する。
In step S677, the occupancy
ステップS677の処理が終了すると復号処理が終了する。 When step S677 is completed, the decoding process ends.
このように各処理を実行することにより、復号装置350は、ジオメトリだけでなくアトリビュートの復号も行うことができる。
By performing each process in this manner, the
<比較>
以上に説明した本技術を適用した場合と従来の方法を適用した場合とで、RDコストの比較結果の例を図31に示す。
<Comparison>
FIG. 31 shows an example of a comparison result of RD costs between the case where the present technology described above is applied and the case where the conventional method is applied.
図31のグラフは、所定の人物をスキャンした、ある1つの点群(1フレーム、約90万点、ビット精度10ビット)をイントラ符号化・イントラ復号した場合のRDカーブのプロット例を示す。 The graph in Figure 31 shows an example of an RD curve plot when a point cloud (one frame, approximately 900,000 points, 10-bit accuracy) obtained by scanning a specific person is intra-encoded and intra-decoded.
図31のグラフにおいて、縦軸は、mseF PSNR (p2point)、所謂D1 MetricのPSNRを示す。つまり、横軸方向の位置が同一であれば、縦軸方向の位置が高いほど、復号結果は高品質と言える。横軸は、1点あたりのビットサイズ(bpp(bit per point))を示す。つまり、縦軸方向の位置が同一であれば、横軸方向の位置が左側である程、符号量が少ないと言える。 In the graph of Figure 31, the vertical axis shows mseF PSNR (p2point), or the so-called D1 Metric PSNR. In other words, if the position on the horizontal axis is the same, the higher the position on the vertical axis, the higher the quality of the decoded result. The horizontal axis shows the bit size per point (bpp (bits per point)). In other words, if the position on the vertical axis is the same, the further to the left the position on the horizontal axis, the less code there is.
図31のグラフに示される実線は、ガイド面を用いずに従来の方法でポイントクラウドを符号化する場合の、ビットサイズおよびPSNRの関係を示すRDカーブである。図31のグラフに示される点線は、本技術を適用し、ガイド面を用いてポイントクラウドを符号化する場合の、ビットサイズおよびPSNR(Peak Signal-to-Noise Ratio)の関係を示すRDカーブである。 The solid line in the graph of Figure 31 is an RD curve showing the relationship between bit size and PSNR when encoding a point cloud using a conventional method without using a guide surface. The dotted line in the graph of Figure 31 is an RD curve showing the relationship between bit size and PSNR (Peak Signal-to-Noise Ratio) when encoding a point cloud using a guide surface by applying this technology.
図31に示されるように、全体的に、点線の方が実線よりも上に位置している。したがって、本技術を適用する手法(ガイド面を用いる手法)で符号化する方が、従来の手法(ガイド面を用いない手法)よりも、好適な結果(高品質・低符号量)を得ることができる。つまり、本技術を適用することにより、符号化効率の低減を抑制することができる。 As shown in Figure 31, the dotted lines are generally positioned above the solid lines. Therefore, encoding using a method that applies this technology (a method that uses a guide surface) can obtain better results (higher quality and lower code volume) than conventional methods (methods that do not use a guide surface). In other words, by applying this technology, it is possible to suppress a decrease in encoding efficiency.
<4.付記>
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
<4. Notes>
<Computer>
The above-mentioned series of processes can be executed by hardware or software. When the series of processes is executed by software, the programs constituting the software are installed in a computer. Here, the computer includes a computer built into dedicated hardware, and a general-purpose personal computer, etc., capable of executing various functions by installing various programs.
図32は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。 FIG. 32 is a block diagram showing an example of the hardware configuration of a computer that executes the above-mentioned series of processes using a program.
図32に示されるコンピュータ900において、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903は、バス904を介して相互に接続されている。
In the
バス904にはまた、入出力インタフェース910も接続されている。入出力インタフェース910には、入力部911、出力部912、記憶部913、通信部914、およびドライブ915が接続されている。
Also connected to the
入力部911は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部912は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部913は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部914は、例えば、ネットワークインタフェースよりなる。ドライブ915は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア921を駆動する。
The
以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部913に記憶されているプログラムを、入出力インタフェース910およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
In a computer configured as described above, the
コンピュータが実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。
The program executed by the computer can be applied by recording it on
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。
This program can also be provided via a wired or wireless transmission medium, such as a local area network, the Internet, or digital satellite broadcasting. In that case, the program can be received by the
その他、このプログラムは、ROM902や記憶部913に、あらかじめインストールしておくこともできる。
In addition, this program can also be pre-installed in the
<本技術の適用対象>
本技術は、任意の構成に適用することができる。例えば、本技術は、様々な電子機器に適用され得る。
<Applicable subjects of this technology>
The present technology may be applied to any configuration, for example, to various electronic devices.
また、例えば、本技術は、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、または、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等、装置の一部の構成として実施することもできる。 Furthermore, for example, the present technology can be implemented as part of an apparatus, such as a processor (e.g., a video processor) as a system LSI (Large Scale Integration), a module using multiple processors (e.g., a video module), a unit using multiple modules (e.g., a video unit), or a set in which other functions are added to a unit (e.g., a video set).
また、例えば、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、本技術を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングとして実施するようにしてもよい。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスにおいて本技術を実施するようにしてもよい。 Furthermore, for example, the present technology can also be applied to a network system consisting of multiple devices. For example, the present technology may be implemented as cloud computing in which multiple devices share and collaborate on processing via a network. For example, the present technology may be implemented in a cloud service that provides image (video) related services to any terminal, such as a computer, AV (Audio Visual) equipment, portable information processing terminal, or IoT (Internet of Things) device.
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。 In this specification, a system refers to a collection of multiple components (devices, modules (parts), etc.), regardless of whether all the components are in the same housing. Therefore, multiple devices housed in separate housings and connected via a network, and a single device in which multiple modules are housed in a single housing, are both systems.
<本技術を適用可能な分野・用途>
本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
<Fields and applications where this technology can be applied>
Systems, devices, processing units, etc. to which the present technology is applied can be used in any field, such as transportation, medical care, crime prevention, agriculture, livestock farming, mining, beauty, factories, home appliances, weather, and nature monitoring. In addition, the applications are also arbitrary.
本技術は、例えば、建設現場の生産性・安全性の向上、人手不足の解消を目的とする技術(所謂スマートコンストラクション)として、3次元測量による建設現場のデジタルツイン作成や、それらを用いた施工管理などに利用することができる。例えば、本技術は、ドローンや建機に搭載されたセンサによる3次元測量と、測量により得られる3次元データ(例えばポイントクラウド)に基づくフィードバック(例えば施工進捗管理や土量管理等)に適用し得る。 This technology can be used, for example, as a technology (so-called smart construction) aimed at improving productivity and safety at construction sites and resolving labor shortages, to create digital twins of construction sites through 3D surveying and use them for construction management. For example, this technology can be applied to 3D surveying using sensors mounted on drones or construction machinery, and feedback based on 3D data (e.g. point clouds) obtained by the surveying (e.g. construction progress management and soil volume management).
このような測量は、一般的に、異なる時刻(例えば、1日おき等)にて複数回行われる。つまり、異なる時刻での測量により得られた点群データが蓄積していく。したがって、測量回数が増加するに従い、点群データ列の保存容量や伝送コストの増大が問題となる場合がある。このような異なる時刻の点群間には、類似した構造を持つなどの冗長性がある。つまり、時間的な冗長性が存在する。本技術を適用することにより、時間方向の冗長性を利用した点群圧縮、つまり点群列圧縮が有効であると期待される。 Such surveys are generally carried out multiple times at different times (e.g., every other day). In other words, point cloud data obtained by surveys at different times is accumulated. Therefore, as the number of surveys increases, the increase in storage capacity and transmission costs for point cloud data sequences can become a problem. There is redundancy between such point clouds from different times, such as having similar structures. In other words, there is temporal redundancy. It is expected that the application of this technology will be effective in compressing point clouds by utilizing redundancy in the temporal direction, i.e., compressing point cloud sequences.
<その他>
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
<Other>
In this specification, a "flag" refers to information for identifying multiple states, and includes not only information used to identify two states, true (1) or false (0), but also information capable of identifying three or more states. Thus, the value that this "flag" can take may be, for example, two values, 1/0, or three or more values. That is, the number of bits constituting this "flag" is arbitrary, and may be one bit or multiple bits. In addition, it is assumed that identification information (including flags) is not only included in the bit stream, but also includes difference information of the identification information with respect to certain reference information in the bit stream. Therefore, in this specification, "flag" and "identification information" include not only the information itself, but also difference information with respect to the reference information.
また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連付けられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。 Furthermore, various information (metadata, etc.) related to the encoded data (bit stream) may be transmitted or recorded in any form as long as it is associated with the encoded data. Here, the term "associate" means, for example, that one piece of data can be used (linked) when processing the other piece of data. In other words, data that are associated with each other may be combined into one piece of data, or each piece of data may be individual data. For example, information associated with encoded data (image) may be transmitted on a transmission path different from that of the encoded data (image). Also, for example, information associated with encoded data (image) may be recorded on a recording medium different from that of the encoded data (image) (or on a different recording area of the same recording medium). Note that this "association" may be a part of the data, not the entire data. For example, an image and information corresponding to that image may be associated with each other in any unit, such as multiple frames, one frame, or a part of a frame.
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。 In this specification, terms such as "composite," "multiplex," "append," "integrate," "include," "store," "embed," "insert," and the like refer to combining multiple items into one, such as combining encoded data and metadata into one piece of data, and refer to one method of "associating" as described above.
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。 Furthermore, the embodiments of this technology are not limited to the above-mentioned embodiments, and various modifications are possible without departing from the spirit of this technology.
例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。 For example, the configuration described above as one device (or processing unit) may be divided and configured as multiple devices (or processing units). Conversely, the configurations described above as multiple devices (or processing units) may be combined and configured as one device (or processing unit). Of course, configurations other than those described above may be added to the configuration of each device (or processing unit). Furthermore, as long as the configuration and operation of the system as a whole are substantially the same, part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit).
また、例えば、上述したプログラムは、任意の装置において実行されるようにしてもよい。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。 Also, for example, the above-mentioned program may be executed in any device. In that case, it is sufficient that the device has the necessary functions (functional blocks, etc.) and is capable of obtaining the necessary information.
また、例えば、1つのフローチャートの各ステップを、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。さらに、1つのステップに複数の処理が含まれる場合、その複数の処理を、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。 Also, for example, each step of a single flowchart may be executed by a single device, or may be shared among multiple devices. Furthermore, if a single step includes multiple processes, those multiple processes may be executed by a single device, or may be shared among multiple devices. In other words, multiple processes included in a single step may be executed as multiple step processes. Conversely, processes described as multiple steps may be executed collectively as a single step.
また、例えば、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。 Furthermore, for example, the processing of the steps describing a program executed by a computer may be executed chronologically in the order described in this specification, or may be executed in parallel, or individually at a required timing such as when a call is made. In other words, as long as no contradiction arises, the processing of each step may be executed in an order different from the order described above. Furthermore, the processing of the steps describing this program may be executed in parallel with the processing of other programs, or may be executed in combination with the processing of other programs.
また、例えば、本技術に関する複数の技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。 Furthermore, for example, the multiple technologies related to the present technology can be implemented independently and individually, so long as no contradictions arise. Of course, any multiple of the present technologies can also be implemented in combination. For example, part or all of the present technology described in any embodiment can be implemented in combination with part or all of the present technology described in another embodiment. Furthermore, part or all of any of the present technologies described above can be implemented in combination with other technologies not described above.
なお、本技術は以下のような構成も取ることができる。
(1) ポイントクラウドを形成する点の座標の集合である第1の座標集合、前記座標の特徴量の集合である第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、前記ガイド面および前記点の位置関係に基づく特徴量であるガイド面特徴量を導出するガイド面特徴量導出部と、
前記第1の座標集合と、前記ガイド面特徴量を反映させた前記第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出する演算部と、
導出された前記第2の座標集合を符号化する座標符号化部と、
導出された前記第2の特徴量集合を符号化する特徴量符号化部と
を備え、
前記第2の座標集合および前記第2の特徴量集合の符号化データの符号量は、前記第1の座標集合および前記第1の特徴量集合の符号化データの符号量よりも少ない
情報処理装置。
(2) 前記第2の座標集合および前記第2の特徴量集合のスケールは、前記第1の座標集合および前記第1の特徴量集合のスケールよりも小さい
(1)に記載の情報処理装置。
(3) 前記演算部は、前記所定の演算を再帰的に複数回繰り返すことにより、前記第2の座標集合および前記第2の特徴量集合を導出する
(2)に記載の情報処理装置。
(4) 前記演算部は、前記複数回の全部または一部の前記所定の演算において、入力される座標集合および特徴量集合をダウンスケールする
(3)に記載の情報処理装置。
(5) 前記ガイド面特徴量導出部は、前記座標集合および前記特徴量集合の一部のスケールまたは全てのスケールについて、それぞれ前記ガイド面特徴量を導出する
(4)に記載の情報処理装置。
(6) 前記ポイントクラウドを用いて前記ガイド面を生成するガイド面生成部と、
前記ガイド面を符号化し、前記ガイド面の符号化データを生成するガイド面符号化部と、
前記ガイド面の符号化データを復号し、前記ガイド面を生成するガイド面復号部と
をさらに備える(1)乃至(5)のいずれかに記載の情報処理装置。
(7) 前記ガイド面特徴量は、前記点を基準とする前記ガイド面上の最近傍点に基づく特徴量である
(1)乃至(6)のいずれかに記載の情報処理装置。
(8) 前記ガイド面は、メッシュである
(1)乃至(7)のいずれかに記載の情報処理装置。
(9) 前記ガイド面は、Triangle soupである
(1)乃至(7)のいずれかに記載の情報処理装置。
(10) 前記ガイド面は、陰関数である
(1)乃至(7)のいずれかに記載の情報処理装置。
(11) 前記ポイントクラウドの符号化に適用するパラメータセットを選択するパラメータセット選択部
をさらに備える(1)乃至(10)のいずれかに記載の情報処理装置。
(12) 前記ポイントクラウドを用いて前記ガイド面を生成するガイド面生成部と、
選択された前記パラメータセットを適用して前記ガイド面を符号化し、前記ガイド面の符号化データを生成するガイド面符号化部と
をさらに備える(11)に記載の情報処理装置。
(13) 前記ガイド面特徴量導出部は、前記座標集合、アトリビュートの情報を含む前記特徴量集合、およびテクスチャを含む前記ガイド面を用いて、前記ガイド面特徴量を導出する
(1)乃至(12)のいずれかに記載の情報処理装置。
(14) ポイントクラウドを形成する点の座標の集合である第1の座標集合、前記座標の特徴量の集合である第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、前記ガイド面および前記点の位置関係に基づく特徴量であるガイド面特徴量を導出し、
前記第1の座標集合と、前記ガイド面特徴量を反映させた前記第1の特徴量集合とを用いて演算を行い、第2の座標集合および第2の特徴量集合を導出し、
導出された前記第2の座標集合を符号化し、
導出された前記第2の特徴量集合を符号化する
情報処理方法。
The present technology can also be configured as follows.
(1) a guide surface feature amount derivation unit that derives guide surface feature amounts, which are feature amounts based on a positional relationship between the guide surface and the points, using a first coordinate set, which is a set of coordinates of points forming a point cloud, a first feature amount set, which is a set of feature amounts of the coordinates, and a guide surface, which is a reference surface formed in a three-dimensional space;
a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature amount set that reflects the guide surface feature amount, and derives a second coordinate set and a second feature amount set;
a coordinate encoding unit that encodes the derived second coordinate set;
a feature encoding unit that encodes the derived second feature set;
an amount of code for the encoded data of the second coordinate set and the second feature set is smaller than an amount of code for the encoded data of the first coordinate set and the first feature set.
(2) The information processing device according to (1), in which a scale of the second coordinate set and the second feature amount set is smaller than a scale of the first coordinate set and the first feature amount set.
(3) The information processing device according to (2), wherein the calculation unit derives the second coordinate set and the second feature amount set by recursively repeating the predetermined calculation a number of times.
(4) The information processing device according to (3), wherein the calculation unit downscales an input coordinate set and a feature amount set in all or a part of the plurality of times of the predetermined calculation.
(5) The information processing device according to (4), wherein the guide surface feature amount derivation unit derives the guide surface feature amount for each of the coordinate set and the feature amount set at some scales or all scales.
(6) a guide surface generation unit that generates the guide surface by using the point cloud;
a guide surface encoding unit that encodes the guide surface and generates encoded data of the guide surface;
The information processing device according to any one of (1) to (5), further comprising: a guide surface decoding unit that decodes encoded data of the guide surface and generates the guide surface.
(7) The information processing device according to any one of (1) to (6), wherein the guide surface feature amount is a feature amount based on a nearest point on the guide surface with respect to the point.
(8) The information processing device according to any one of (1) to (7), wherein the guide surface is a mesh.
(9) The information processing device according to any one of (1) to (7), wherein the guide surface is a triangle soup.
(10) The information processing device according to any one of (1) to (7), wherein the guide surface is an implicit function.
(11) The information processing device according to any one of (1) to (10), further comprising: a parameter set selection unit that selects a parameter set to be applied to encoding the point cloud.
(12) a guide surface generation unit that generates the guide surface by using the point cloud;
The information processing device according to (11), further comprising: a guide surface encoding unit that applies the selected parameter set to encode the guide surface and generates encoded data of the guide surface.
(13) The information processing device according to any one of (1) to (12), wherein the guide surface feature amount derivation unit derives the guide surface feature amount by using the coordinate set, the feature amount set including attribute information, and the guide surface including a texture.
(14) deriving a guide surface feature amount, which is a feature amount based on a positional relationship between the guide surface and the points, using a first coordinate set, which is a set of coordinates of points forming the point cloud, a first feature amount set, which is a set of feature amounts of the coordinates, and a guide surface, which is a reference surface formed in a three-dimensional space;
performing a calculation using the first coordinate set and the first feature amount set reflecting the guide surface feature amount to derive a second coordinate set and a second feature amount set;
encoding the derived second set of coordinates;
encoding the derived second feature set.
(21) 符号化データを復号して、ポイントクラウドを形成する点の座標の集合である第1の座標集合を生成する座標復号部と、
符号化データを復号して、前記座標の特徴量の集合である第1の特徴量集合を生成する特徴量復号部と、
生成された前記第1の座標集合、生成された前記第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、前記ガイド面および前記点の位置関係に基づく特徴量であるガイド面特徴量を導出するガイド面特徴量導出部と、
前記第1の座標集合と、前記ガイド面特徴量を反映させた前記第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出する演算部と
を備え、
前記第1の座標集合および前記第1の特徴量集合の符号化データの符号量は、前記第2の座標集合および前記第2の特徴量集合の符号化データの符号量よりも少ない
情報処理装置。
(22) 前記第2の座標集合および前記第2の特徴量集合のスケールは、前記第1の座標集合および前記第1の特徴量集合のスケールよりも大きい
(21)に記載の情報処理装置。
(23) 前記演算部は、前記所定の演算を再帰的に複数回繰り返すことにより、前記第2の座標集合および前記第2の特徴量集合を導出する
(22)に記載の情報処理装置。
(24) 前記演算部は、前記複数回の全部または一部の前記所定の演算において、入力される座標集合および特徴量集合をアップスケールする
(23)に記載の情報処理装置。
(25) 前記ガイド面特徴量導出部は、前記座標集合および前記特徴量集合の一部のスケールまたは全てのスケールについて、それぞれ前記ガイド面特徴量を導出する
(24)に記載の情報処理装置。
(26) 前記ガイド面の符号化データを復号し、前記ガイド面を生成するガイド面復号部
をさらに備える(21)乃至(25)のいずれかに記載の情報処理装置。
(27) 前記ガイド面特徴量は、前記点を基準とする前記ガイド面上の最近傍点に基づく特徴量である
(21)乃至(26)のいずれかに記載の情報処理装置。
(28) 前記ガイド面は、メッシュである
(21)乃至(27)のいずれかに記載の情報処理装置。
(29) 前記ガイド面を前記ポイントクラウドにフィッティングするフィッティング部を備える
(28)に記載の情報処理装置。
(30) 前記ガイド面は、Triangle soupである
(21)乃至(27)のいずれかに記載の情報処理装置。
(31) 前記ガイド面は、陰関数である
(21)乃至(27)のいずれかに記載の情報処理装置。
(32) 前記ガイド面特徴量導出部は、前記座標集合、アトリビュートの情報を含む前記特徴量集合、およびテクスチャを含む前記ガイド面を用いて、前記ガイド面特徴量を導出する
(21)乃至(31)のいずれかに記載の情報処理装置。
(33) 符号化データを復号して、ポイントクラウドを形成する点の座標の集合である第1の座標集合を生成し、
符号化データを復号して、前記座標の特徴量の集合である第1の特徴量集合を生成し、
生成された前記第1の座標集合、生成された前記第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、前記ガイド面および前記点の位置関係に基づく特徴量であるガイド面特徴量を導出し、
前記第1の座標集合と、前記ガイド面特徴量を反映させた前記第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出し、
前記第1の座標集合および前記第1の特徴量集合の符号化データの符号量は、前記第2の座標集合および前記第2の特徴量集合の符号化データの符号量よりも少ない
情報処理方法。
(21) A coordinate decoding unit that decodes encoded data to generate a first coordinate set that is a set of coordinates of points that form the point cloud;
a feature decoding unit that decodes the encoded data to generate a first feature set that is a set of features of the coordinates;
a guide surface feature amount derivation unit that derives a guide surface feature amount, which is a feature amount based on a positional relationship between the guide surface and the point, by using the generated first coordinate set, the generated first feature amount set, and a guide surface, which is a reference surface formed in a three-dimensional space;
a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature amount set that reflects the guide surface feature amount, and derives a second coordinate set and a second feature amount set,
an amount of code for encoded data of the first coordinate set and the first feature set is smaller than an amount of code for encoded data of the second coordinate set and the second feature set.
(22) The information processing device according to (21), in which a scale of the second coordinate set and the second feature amount set is larger than a scale of the first coordinate set and the first feature amount set.
(23) The information processing device according to (22), wherein the calculation unit derives the second coordinate set and the second feature amount set by recursively repeating the predetermined calculation a number of times.
(24) The information processing device according to (23), wherein the calculation unit upscales a set of coordinates and a set of feature amounts that are input in all or a part of the plurality of times of the predetermined calculation.
(25) The information processing device according to (24), wherein the guide surface feature amount derivation unit derives the guide surface feature amount for each of the coordinate set and the feature amount set at some scales or all scales.
(26) The information processing device according to any one of (21) to (25), further comprising: a guide surface decoding unit that decodes encoded data of the guide surface and generates the guide surface.
(27) The information processing device according to any one of (21) to (26), wherein the guide surface feature amount is a feature amount based on a nearest point on the guide surface with respect to the point.
(28) The information processing device according to any one of (21) to (27), wherein the guide surface is a mesh.
(29) The information processing device according to (28), further comprising: a fitting unit that fits the guide surface to the point cloud.
(30) The information processing device according to any one of (21) to (27), wherein the guide surface is a triangle soup.
(31) The information processing device according to any one of (21) to (27), wherein the guide surface is an implicit function.
(32) The information processing device according to any one of (21) to (31), wherein the guide surface feature amount derivation unit derives the guide surface feature amount by using the coordinate set, the feature amount set including attribute information, and the guide surface including a texture.
(33) Decoding the encoded data to generate a first set of coordinates that is a set of coordinates of points that form the point cloud;
Decoding the encoded data to generate a first feature set that is a set of features of the coordinates;
deriving a guide surface feature amount, which is a feature amount based on a positional relationship between the guide surface and the point, using the generated first coordinate set, the generated first feature amount set, and a guide surface, which is a reference surface formed in a three-dimensional space;
performing a predetermined calculation using the first coordinate set and the first feature amount set reflecting the guide surface feature amount to derive a second coordinate set and a second feature amount set;
an amount of code for the encoded data of the first coordinate set and the first feature set is smaller than an amount of code for the encoded data of the second coordinate set and the second feature set.
100 演算器, 101 ガイド面特徴量導出部, 102 CNN, 120 演算器, 121 ガイド面特徴量導出部, 122 演算部, 300 符号化装置, 311 ガイド面生成部, 312 ガイド面符号化部, 313 ガイド面復号部, 314 疎テンソル構築部, 315 ガイド面特徴量導出部, 316 CNN(CNN_E1), 317 ガイド面特徴量導出部, 318 CNN(CNN_E2), 319 CNN(CNN_E3), 320 ガイド面特徴量導出部, 321 CNN(CNN_E4), 322 CNN(CNN_E5), 323 CNN(CNN_E6), 324 座標符号化部, 325 特徴量符号化部, 326 点数符号化部, 350 復号装置, 361 点数復号部, 362 座標復号部, 363 特徴量復号部, 364 ガイド面復号部, 365 CNN(CNN_D1), 366 ガイド面特徴量導出部, 367 CNN(CNN_D2), 368 占有状態分類部, 369 CNN(CNN_D3), 370 ガイド面特徴量導出部, 371 CNN(CNN_D4), 372 占有状態分類部, 373 CNN(CNN_D5), 374 ガイド面特徴量導出部, 375 CNN(CNN_D6), 376 占有状態分類部, 900 コンピュータ 100 Calculator, 101 Guide surface feature derivation unit, 102 CNN, 120 Calculator, 121 Guide surface feature derivation unit, 122 Calculation unit, 300 Encoding device, 311 Guide surface generation unit, 312 Guide surface encoding unit, 313 Guide surface decoding unit, 314 Sparse tensor construction unit, 315 Guide surface feature derivation unit, 316 CNN (CNN_E1), 317 Guide surface feature derivation unit, 318 CNN (CNN_E2), 319 CNN (CNN_E3), 320 Guide surface feature derivation unit, 321 CNN (CNN_E4), 322 CNN (CNN_E5), 323 CNN (CNN_E6), 324 Coordinate encoding unit, 325 feature encoding unit, 326 score encoding unit, 350 decoding device, 361 score decoding unit, 362 coordinate decoding unit, 363 feature decoding unit, 364 guide surface decoding unit, 365 CNN (CNN_D1), 366 guide surface feature derivation unit, 367 CNN (CNN_D2), 368 occupancy state classification unit, 369 CNN (CNN_D3), 370 guide surface feature derivation unit, 371 CNN (CNN_D4), 372 occupancy state classification unit, 373 CNN (CNN_D5), 374 guide surface feature derivation unit, 375 CNN (CNN_D6), 376 occupancy state classification unit, 900 computer
Claims (20)
前記第1の座標集合と、前記ガイド面特徴量を反映させた前記第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出する演算部と、
導出された前記第2の座標集合を符号化する座標符号化部と、
導出された前記第2の特徴量集合を符号化する特徴量符号化部と
を備え、
前記第2の座標集合および前記第2の特徴量集合の符号化データの符号量は、前記第1の座標集合および前記第1の特徴量集合の符号化データの符号量よりも少ない
情報処理装置。 a guide surface feature amount derivation unit that derives guide surface feature amounts, which are feature amounts based on a positional relationship between the guide surface and the points, using a first coordinate set, which is a set of coordinates of points forming the point cloud, a first feature amount set, which is a set of feature amounts of the coordinates, and a guide surface, which is a reference surface formed in a three-dimensional space;
a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature amount set that reflects the guide surface feature amount, and derives a second coordinate set and a second feature amount set;
a coordinate encoding unit that encodes the derived second coordinate set;
a feature encoding unit that encodes the derived second feature set;
an amount of code for the encoded data of the second coordinate set and the second feature set is smaller than an amount of code for the encoded data of the first coordinate set and the first feature set.
前記ガイド面特徴量導出部は、前記座標集合および前記特徴量集合の一部のスケールまたは全てのスケールについて、それぞれ前記ガイド面特徴量を導出する
請求項1に記載の情報処理装置。 the calculation unit recursively repeats the predetermined calculation a plurality of times, and downscales the input coordinate set and feature amount set in all or a portion of the predetermined calculation performed a plurality of times to derive the second coordinate set and the second feature amount set having a smaller scale than the first coordinate set and the first feature amount set;
The information processing device according to claim 1 , wherein the guide surface feature amount derivation unit derives the guide surface feature amount for each of the coordinate set and the feature amount set at some or all of the scales.
前記ガイド面を符号化し、前記ガイド面の符号化データを生成するガイド面符号化部と、
前記ガイド面の符号化データを復号し、前記ガイド面を生成するガイド面復号部と
をさらに備える請求項1に記載の情報処理装置。 a guide surface generation unit that generates the guide surface using the point cloud;
a guide surface encoding unit that encodes the guide surface and generates encoded data of the guide surface;
The information processing device according to claim 1 , further comprising: a guide surface decoding unit that decodes encoded data of the guide surface and generates the guide surface.
請求項1に記載の情報処理装置。 The information processing apparatus according to claim 1 , wherein the guide surface feature amount is a feature amount based on a nearest point on the guide surface with respect to the point as a reference.
請求項1に記載の情報処理装置。 The information processing device according to claim 1 , wherein the guide surface is a mesh.
請求項1に記載の情報処理装置。 The information processing device according to claim 1 , wherein the guide surface is a triangle soup.
請求項1に記載の情報処理装置。 The information processing apparatus according to claim 1 , wherein the guide surface is an implicit function.
をさらに備える請求項1に記載の情報処理装置。 The information processing device according to claim 1 , further comprising a parameter set selection unit that selects a parameter set to be applied to encoding the point cloud.
請求項1に記載の情報処理装置。 The information processing device according to claim 1 , wherein the guide surface feature amount derivation unit derives the guide surface feature amount by using the coordinate set, the feature amount set including attribute information, and the guide surface including a texture.
前記第1の座標集合と、前記ガイド面特徴量を反映させた前記第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出し、
導出された前記第2の座標集合を符号化し、
導出された前記第2の特徴量集合を符号化し、
前記第2の座標集合および前記第2の特徴量集合の符号化データの符号量は、前記第1の座標集合および前記第1の特徴量集合の符号化データの符号量よりも少ない
情報処理方法。 deriving a guide surface feature amount, which is a feature amount based on a positional relationship between the guide surface and the points, using a first coordinate set, which is a set of coordinates of points forming the point cloud, a first feature amount set, which is a set of feature amounts of the coordinates, and a guide surface, which is a reference surface formed in a three-dimensional space;
performing a predetermined calculation using the first coordinate set and the first feature amount set reflecting the guide surface feature amount to derive a second coordinate set and a second feature amount set;
encoding the derived second set of coordinates;
encoding the derived second set of features;
a code amount of the encoded data of the second coordinate set and the second feature set is smaller than a code amount of the encoded data of the first coordinate set and the first feature set.
符号化データを復号して、前記座標の特徴量の集合である第1の特徴量集合を生成する特徴量復号部と、
生成された前記第1の座標集合、生成された前記第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、前記ガイド面および前記点の位置関係に基づく特徴量であるガイド面特徴量を導出するガイド面特徴量導出部と、
前記第1の座標集合と、前記ガイド面特徴量を反映させた前記第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出する演算部と
を備え、
前記第1の座標集合および前記第1の特徴量集合の符号化データの符号量は、前記第2の座標集合および前記第2の特徴量集合の符号化データの符号量よりも少ない
情報処理装置。 a coordinate decoding unit that decodes the encoded data to generate a first set of coordinates that is a set of coordinates of points that form the point cloud;
a feature decoding unit that decodes the encoded data to generate a first feature set that is a set of features of the coordinates;
a guide surface feature amount derivation unit that derives a guide surface feature amount, which is a feature amount based on a positional relationship between the guide surface and the point, by using the generated first coordinate set, the generated first feature amount set, and a guide surface, which is a reference surface formed in a three-dimensional space;
a calculation unit that performs a predetermined calculation using the first coordinate set and the first feature amount set that reflects the guide surface feature amount, and derives a second coordinate set and a second feature amount set,
an amount of code for the encoded data of the first coordinate set and the first feature set is smaller than an amount of code for the encoded data of the second coordinate set and the second feature set.
前記ガイド面特徴量導出部は、前記座標集合および前記特徴量集合の一部のスケールまたは全てのスケールについて、それぞれ前記ガイド面特徴量を導出する
請求項11に記載の情報処理装置。 the calculation unit recursively repeats the predetermined calculation a plurality of times, and upscales the input coordinate set and feature amount set in all or a portion of the predetermined calculation performed a plurality of times to derive the second coordinate set and the second feature amount set having a larger scale than the first coordinate set and the first feature amount set;
The information processing device according to claim 11 , wherein the guide surface feature amount derivation unit derives the guide surface feature amount for each of the coordinate set and a part of scales or all of the scales of the feature amount set.
をさらに備える請求項11に記載の情報処理装置。 The information processing device according to claim 11 , further comprising: a guide surface decoding unit that decodes encoded data of the guide surface and generates the guide surface.
請求項11に記載の情報処理装置。 The information processing apparatus according to claim 11 , wherein the guide surface feature amount is a feature amount based on a nearest point on the guide surface with respect to the point.
請求項11に記載の情報処理装置。 The information processing device according to claim 11 , wherein the guide surface is a mesh.
請求項11に記載の情報処理装置。 The information processing device according to claim 11 , further comprising a fitting unit that fits the guide surface to the point cloud.
請求項11に記載の情報処理装置。 The information processing device according to claim 11 , wherein the guide surface is a triangle soup.
請求項11に記載の情報処理装置。 The information processing device according to claim 11 , wherein the guide surface is an implicit function.
請求項11に記載の情報処理装置。 The information processing device according to claim 11 , wherein the guide surface feature amount derivation unit derives the guide surface feature amount by using the coordinate set, the feature amount set including attribute information, and the guide surface including a texture.
符号化データを復号して、前記座標の特徴量の集合である第1の特徴量集合を生成し、
生成された前記第1の座標集合、生成された前記第1の特徴量集合、および、3次元空間に形成される基準面であるガイド面を用いて、前記ガイド面および前記点の位置関係に基づく特徴量であるガイド面特徴量を導出し、
前記第1の座標集合と、前記ガイド面特徴量を反映させた前記第1の特徴量集合とを用いて所定の演算を行い、第2の座標集合および第2の特徴量集合を導出し、
前記第1の座標集合および前記第1の特徴量集合の符号化データの符号量は、前記第2の座標集合および前記第2の特徴量集合の符号化データの符号量よりも少ない
情報処理方法。 Decoding the encoded data to generate a first set of coordinates that are a set of coordinates of points that form the point cloud;
Decoding the encoded data to generate a first feature set that is a set of features of the coordinates;
Using the generated first coordinate set, the generated first feature amount set, and a guide surface that is a reference surface formed in a three-dimensional space, a guide surface feature amount that is a feature amount based on a positional relationship between the guide surface and the point is derived;
performing a predetermined calculation using the first coordinate set and the first feature amount set reflecting the guide surface feature amount to derive a second coordinate set and a second feature amount set;
an amount of code for the encoded data of the first coordinate set and the first feature set is smaller than an amount of code for the encoded data of the second coordinate set and the second feature set.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023111216 | 2023-07-06 | ||
| JP2023-111216 | 2023-07-06 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025009366A1 true WO2025009366A1 (en) | 2025-01-09 |
Family
ID=94172032
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2024/021822 Pending WO2025009366A1 (en) | 2023-07-06 | 2024-06-17 | Information processing device and method |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025009366A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020071114A1 (en) * | 2018-10-02 | 2020-04-09 | ソニー株式会社 | Image processing device and method |
| JP2020515937A (en) * | 2017-01-13 | 2020-05-28 | インターデジタル ヴイシー ホールディングス, インコーポレイテッド | Method, apparatus and stream for immersive video format |
| WO2021065536A1 (en) * | 2019-10-01 | 2021-04-08 | ソニー株式会社 | Information processing device and method |
| JP2022540569A (en) * | 2019-06-30 | 2022-09-16 | オッポ広東移動通信有限公司 | Transform method, inverse transform method, encoder, decoder and storage medium |
| JP2023522702A (en) * | 2020-06-23 | 2023-05-31 | ソニーグループ株式会社 | TRISOUP node size per slice |
-
2024
- 2024-06-17 WO PCT/JP2024/021822 patent/WO2025009366A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2020515937A (en) * | 2017-01-13 | 2020-05-28 | インターデジタル ヴイシー ホールディングス, インコーポレイテッド | Method, apparatus and stream for immersive video format |
| WO2020071114A1 (en) * | 2018-10-02 | 2020-04-09 | ソニー株式会社 | Image processing device and method |
| JP2022540569A (en) * | 2019-06-30 | 2022-09-16 | オッポ広東移動通信有限公司 | Transform method, inverse transform method, encoder, decoder and storage medium |
| WO2021065536A1 (en) * | 2019-10-01 | 2021-04-08 | ソニー株式会社 | Information processing device and method |
| JP2023522702A (en) * | 2020-06-23 | 2023-05-31 | ソニーグループ株式会社 | TRISOUP node size per slice |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Huang et al. | 3d point cloud geometry compression on deep learning | |
| CN110996098B (en) | Method and device for processing point cloud data | |
| US9165403B2 (en) | Planetary scale object rendering | |
| US8805097B2 (en) | Apparatus and method for coding a three dimensional mesh | |
| Daribo et al. | Efficient rate-distortion compression of dynamic point cloud for grid-pattern-based 3D scanning systems | |
| JP5735114B2 (en) | Encoding method, encoding device, decoding method and decoding device | |
| US20250148652A1 (en) | Method, apparatus, and medium for point cloud coding | |
| KR20250016274A (en) | Encoding method, decoding method, device and apparatus | |
| TW202406344A (en) | Point cloud geometry data augmentation method and apparatus, encoding method and apparatus, decoding method and apparatus, and encoding and decoding system | |
| US12288367B2 (en) | Point cloud geometry compression | |
| WO2022131948A1 (en) | Devices and methods for sequential coding for point cloud compression | |
| Lee et al. | Progressive 3D mesh compression using MOG-based Bayesian entropy coding and gradual prediction | |
| US20250232483A1 (en) | Method, apparatus, and medium for point cloud coding | |
| WO2025009366A1 (en) | Information processing device and method | |
| Yim et al. | Mamba-pcgc: Mamba-based point cloud geometry compression | |
| KR20240097892A (en) | Methods, devices and media for point cloud coding | |
| CN119366184A (en) | A point cloud inter-frame compensation method, encoding and decoding method, device and system | |
| EP4542492A1 (en) | Information processing device and method | |
| JP7689093B2 (en) | Information compression system and information compression method | |
| WO2025081769A1 (en) | Coding and decoding methods, bitstream, encoder, decoder and storage medium | |
| EP4233006B1 (en) | Devices and methods for spatial quantization for point cloud compression | |
| WO2025033111A1 (en) | Information processing device and method | |
| WO2024213067A1 (en) | Decoding method, encoding method, bitstream, decoder, encoder and storage medium | |
| Cao et al. | Entropy Modelling with Voxel Grouping and Cross-Group Attention for Point Cloud Geometry Compression | |
| WO2025147965A1 (en) | Encoding method, decoding method, decoder, encoder, and computer readable storage medium |
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: 24835881 Country of ref document: EP Kind code of ref document: A1 |