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

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

Info

Publication number
WO2021065536A1
WO2021065536A1 PCT/JP2020/035206 JP2020035206W WO2021065536A1 WO 2021065536 A1 WO2021065536 A1 WO 2021065536A1 JP 2020035206 W JP2020035206 W JP 2020035206W WO 2021065536 A1 WO2021065536 A1 WO 2021065536A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
points
information
unit
decoding
Prior art date
Application number
PCT/JP2020/035206
Other languages
English (en)
French (fr)
Inventor
弘幸 安田
央二 中神
加藤 毅
幸司 矢野
智 隈
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to US17/762,995 priority Critical patent/US20220414940A1/en
Publication of WO2021065536A1 publication Critical patent/WO2021065536A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present disclosure relates to an information processing device and a method, and more particularly to an information processing device and a method capable of controlling the number of points in a point cloud obtained by decoding.
  • the present disclosure has been made in view of such a situation, and when the points of the point cloud are expressed as a surface and encoded, the number of points of the point cloud obtained by decoding the encoded data is controlled. It allows you to do it.
  • the information processing device of one aspect of the present technology is obtained by decoding the coded data of 3D data representing the points of the point cloud representing the three-dimensional shaped object as a set of points and the coded data. It is an information processing apparatus including a generation unit that generates a bit stream including control information that controls the number of points derived from the 3D data.
  • the information processing method of one aspect of the present technology is obtained by decoding the coded data of 3D data representing the points of the point cloud representing the three-dimensional shaped object as a set of points and the coded data. It is an information processing method for generating a bit stream including control information for controlling the number of points derived from the 3D data.
  • the information processing device of the other aspect of the present technology is derived from the 3D data representing the points of the point cloud representing the points of the point cloud, which decodes the bit stream and expresses the object having a three-dimensional shape as a set of points, and the 3D data. It is an information processing apparatus including a decoding unit that generates control information that controls the number of points, and a derivation unit that derives the points from the 3D data based on the control information.
  • the information processing method of the other aspect of the present technology is derived from the 3D data expressing the points of the point cloud expressing the points of the point cloud as a surface by decoding the bit stream and expressing the object of the three-dimensional shape as a set of points, and the 3D data.
  • This is an information processing method for generating control information for controlling the number of points and deriving the points from the 3D data based on the control information.
  • the coded data of 3D data representing the points of the point cloud representing the three-dimensional shaped object as a set of points and the coded data are decoded.
  • a bit stream is generated that includes control information that controls the number of points derived from the 3D data obtained.
  • the bit stream is decoded and the 3D data representing the point of the point cloud representing the object of the three-dimensional shape as a set of points and the 3D data thereof.
  • Control information that controls the number of points derived from is generated, and points are derived from the 3D data based on the control information.
  • Non-Patent Document 1 (above)
  • Non-Patent Document 2 (above)
  • ⁇ Point cloud> Conventionally, a point cloud that represents a three-dimensional structure based on point position information and attribute information, and a mesh that is composed of vertices, edges, and faces and defines a three-dimensional shape using polygonal representation. There was 3D data such as.
  • a three-dimensional structure (three-dimensional object) is expressed as a set of a large number of points.
  • the point cloud data (also referred to as point cloud data) is composed of position information (also referred to as geometry data) and attribute information (also referred to as attribute data) at each point of the point cloud.
  • Attribute data can contain arbitrary information. For example, the color information, reflectance information, normal information, etc. of each point may be included in the attribute data.
  • the point cloud data has a relatively simple data structure, and by using a sufficiently large number of points, an arbitrary three-dimensional structure can be expressed with sufficient accuracy.
  • a voxel is a three-dimensional area for quantizing geometry data (position information).
  • the three-dimensional area containing the point cloud is divided into small three-dimensional areas called voxels, and each voxel indicates whether or not the points are included. By doing so, the position of each point is quantized in voxel units. Therefore, by converting the point cloud data into such voxel data (also referred to as voxel data), the increase in the amount of information is suppressed (typically, the amount of information is reduced). Can be done.
  • Octree is a tree-structured version of voxel data.
  • the value of each bit of the lowest node of this Octree indicates the presence or absence of a point for each voxel. For example, a value "1" indicates a voxel containing points, and a value "0" indicates a voxel containing no points.
  • one node corresponds to eight voxels. That is, each node of the Octtree is composed of 8 bits of data, and the 8 bits indicate the presence or absence of points of 8 voxels.
  • the upper node of Octtree indicates the presence or absence of a point in the area where eight voxels corresponding to the lower node belonging to the node are combined into one. That is, the upper node is generated by collecting the voxel information of the lower node. If a node with a value of "0", that is, all eight corresponding voxels do not contain points, that node is deleted.
  • Octree can indicate the presence or absence of voxel points at each resolution.
  • the position information can be decoded from the highest resolution (highest layer) to a desired layer (resolution), and the point cloud data of that resolution can be restored. That is, it is possible to easily decode information at an arbitrary resolution without decoding unnecessary layer (resolution) information. In other words, voxel (resolution) scalability can be achieved.
  • the voxel in the area where the point does not exist can be reduced in resolution, so that further increase in the amount of information can be suppressed (typically, the amount of information). Can be reduced).
  • attribute data As a method for encoding attribute data, for example, a method using a transformation called RAHT (Region Adaptive Hierarchical Transform) or Lifting has been considered.
  • RAHT Restion Adaptive Hierarchical Transform
  • attribute data can also be hierarchized, as in the case of geometry data Octree.
  • Trisoup As one of such point cloud coding methods, for example, as described in Non-Patent Document 2, a tri-soup (also referred to as a triangular plane) in which points in a voxel are represented by a triangular plane (also referred to as a triangular plane) is used. A method called Trisoup) was considered. In this method, a triangular surface is formed in the voxel, and only the apex coordinates of the triangular surface are encoded assuming that all the points in the voxel exist. Then, at the time of decoding, each point is restored on the triangular surface derived from the vertex coordinates.
  • Tri-Soup When Tri-Soup is applied, the points are restored on the triangular surface during decoding.
  • a triangular surface is derived from the decoded vertex coordinates, a sufficient number of points are arbitrarily arranged on the triangular surface, and some points are deleted so as to leave points at the required resolution.
  • Non-Patent Document 2 as a method of restoring this point, a vector (6 directions) parallel to the triaxial directions (X, Y, Z) perpendicular to each other is arranged in the voxel, and the vector intersects the triangular surface.
  • a method has been proposed in which a point (called an intersection) is used as a point.
  • the sides of the bounding box containing the data to be encoded and the vector Vi having the same direction and the same length are generated at the interval d.
  • a vector Vi as shown by an arrow 23 is set for the triangular surface 22 existing in the bounding box 21.
  • d is the quantization size when voxels the bounding box. That is, the vector Vi whose starting origin is the position coordinate corresponding to the specified voxel resolution is set.
  • intersection of the set vector Vi (arrow 23) and the decoded triangular surface 22 (that is, triangular mesh) is determined.
  • the coordinate values of the intersection 24 are derived.
  • this vector Vi two positive and negative directions can be set for each direction (direction parallel to each side of the bounding box) in the three axial directions (X, Y, Z) perpendicular to each other. That is, the intersection determination may be performed for each of the six types of vector Vis. In this way, by performing the intersection determination in more directions, the intersection can be detected more reliably.
  • the starting point of the vector Vi may be limited to the range of the three vertices of the triangular surface. By doing so, the number of vectors Vi to be processed can be reduced, so that an increase in load can be suppressed (for example, processing can be made faster).
  • auxiliary process if the coordinate values of the intersections overlap due to different vectors or triangular faces, one point may be left and deleted. By removing the overlapping points in this way, it is possible to suppress an increase in unnecessary processing and an increase in load (for example, the processing can be made faster).
  • the position of the intersection may be clipped (moved) into the bounding box by the clip process. .. Alternatively, the intersection may be deleted.
  • the points with the obtained coordinate values are output as the decoding result.
  • voxel data corresponding to the input resolution can be generated from the triangular surface in one process. Therefore, it is possible to suppress an increase in the load when the point cloud is generated from the triangular surface.
  • the load of the decoding process cannot be guaranteed.
  • the load of the decoding process is too large for the performance of the decoder, which may cause a delay in the decoding process or a failure of the decoding process. there were.
  • the points of the point cloud are expressed as a surface and encoded, the number of points of the point cloud obtained by decoding the encoded data is controlled.
  • control information that controls the number of points derived from 3D data that expresses points in a point cloud that expresses a three-dimensional object as a set of points is expressed from the coding side that encodes the 3D data. Encoded 3D data The data is supplied to the decoding side for decoding.
  • the points when decoding the coded data of the 3D data, the points can be derived from the 3D data based on the control information, and the point cloud can be restored. Therefore, the number of points in the point cloud obtained by decoding can be controlled on the coding side.
  • This control information may be supplied from the coding side to the decoding side in any way.
  • this control information may be supplied from the coding side to the decoding side as data different from the coded data of the 3D data.
  • the control information and the 3D data may be associated with each other so that the control information can be used when decoding the 3D data.
  • control information and the coded data of the 3D data may be included in one bit stream and supplied from the coding side to the decoding side. That is, on the coding side, from the coded data of the 3D data that expresses the point of the point cloud that expresses the object of the three-dimensional shape as a set of points as a surface, and the 3D data obtained by decoding the coded data.
  • a bit stream containing control information that controls the number of derived points may be generated.
  • an information processing device from 3D data encoded data that expresses the points of a point cloud that expresses a three-dimensional shaped object as a set of points as a surface, and 3D data obtained by decoding the encoded data. It may be provided with a generator that generates a bit stream including control information that controls the number of points to be derived.
  • the points of the point cloud are expressed as a surface and coded, the number of points of the point cloud obtained by decoding the coded data can be controlled.
  • the bit stream is decoded and the 3D data expressing the points of the point cloud expressing the object of the three-dimensional shape as a set of points and the number of points derived from the 3D data are controlled.
  • the control information to be used may be generated, and points may be derived from the 3D data based on the control information.
  • 3D data that decodes a bit stream and expresses a 3D-shaped object as a set of points, and 3D data that expresses the points as a surface, and the number of points derived from the 3D data.
  • a decoding unit that generates control information to be controlled and a derivation unit that derives points from 3D data based on the control information may be provided.
  • points can be derived from the 3D data according to the control on the coding side. That is, the coding side can control the number of points in the point cloud obtained by decoding the coded data.
  • the surface expressing the point may be any surface, a flat surface, or a curved surface.
  • a point When a point is represented by a plane, the shape of the plane is arbitrary. For example, it may have a polygonal shape.
  • the polygonal plane can be represented by, for example, the coordinates of each vertex (vertex coordinates). Further, the polygon may be, for example, a triangle, a quadrangle, or a polygon of pentagon or more.
  • a point with a triangular plane also called a triangular surface
  • the point By expressing a point with a triangular plane (also called a triangular surface), the point can be expressed with the coordinates of three vertices, so that information is more information than when expressing a point with a plane having a polygonal shape of a quadrangle or more. The increase in quantity can be suppressed.
  • the method of expressing points in terms of planes can be performed for each arbitrary area.
  • the points may be represented by a surface for each voxel having a predetermined resolution. That is, a surface may be formed in the voxel having a predetermined intermediate resolution, and all the points having the highest resolution located in the voxel may be represented by the surface.
  • a high resolution (lower layer) portion in which the amount of information increases remarkably can be represented by a surface, and the information can be expressed. The increase in quantity can be suppressed.
  • the tri-soup described in Non-Patent Document 2 or the like may be applied as 3D data expressing the points of the point cloud in terms of surface. Further, as described in Non-Patent Document 2, the point may be derived as the intersection of the triangular surface and the vector in the three axial directions perpendicular to each other on the decoding side. By applying such a method, points can be derived more easily.
  • Non-Patent Document 2 the case of applying the tri-soup as described in Non-Patent Document 2 and the like will be described. That is, an example is a case where the points of the point cloud are expressed and encoded using a triangular surface, and the points are derived as the intersection of the triangular surface and the vector in the three axial directions perpendicular to each other at the time of decoding. explain.
  • the above-mentioned control information may be information on what and how to control as long as the number of points derived from the 3D data (also referred to as tri-soup data) to which the tri-soup is applied can be controlled as a result. ..
  • it may include sampling information that specifies the spacing of the vectors in the three axes perpendicular to each other as described above.
  • the vectors Vi in the three axial directions perpendicular to each other are arranged at an interval d. This interval d may be specified.
  • the upper limit of the number of points may be set according to the profile or level.
  • the maximum number of points per slice may be determined for each level. In the case of the example of FIG. 3, at level 0, the number of points per slice is limited to a maximum of 100,000. At level 1, the number of points per slice is limited to a maximum of 1,000,000. At level 2, the number of points per slice is limited to a maximum of 10,000,000. Similarly, the maximum number of points for each level is set, and at level 255, the number of points per slice is unlimited.
  • the number of points restored on the decoding side can be controlled on the coding side. That is, the number of points restored on the decoding side can be limited on the coding side by the control information as described above. For example, in the case of the example of FIG. 2, the number of restored points can be reduced by increasing the interval d of the vector Vi.
  • a tile is a data unit that divides a three-dimensional area in which a point cloud exists. For example, as shown in A of FIG. 4, when a certain area 110 is divided into a plurality of partial areas 111 according to the position, the partial area 111 is referred to as a tile.
  • a slice is a data unit that divides a point cloud into multiple parts.
  • B of FIG. 4 it is assumed that a plurality of points 121 exist in a certain region 120.
  • C of FIG. 4 and D of FIG. 4 each of the plurality of points 121 divided into two groups of points 121A and 121B is referred to as a slice. That is, in the case of FIG. 4, the point cloud of the area 120 (B in FIG. 4) is divided into a slice 120A (C in FIG. 4) and a slice 120B (D in FIG. 4).
  • regions may overlap between a plurality of slices.
  • a point cloud in one area is divided into multiple slices.
  • a point cloud in a tile can be split into multiple slices.
  • the point cloud of each slice can be encoded / decoded independently of each other. Therefore, for example, the point clouds of each slice can process in parallel with each other.
  • the slice is a data unit for facilitating parallel processing of the point cloud in a predetermined area.
  • control information may be set for each arbitrary data unit. For example, it may be set for each slice.
  • control information (sampling information) may specify the interval d of the vector Vi for each slice.
  • the control can be made easier by controlling the number of points for each slice. For example, when switching the value of the interval d, the switching can be performed at independent timings of coding and decoding, so that complicated processing such as considering the influence of the change of the interval d on other processing is unnecessary. become.
  • FIG. 5 shows a main configuration example of a bit stream including the above control information.
  • the control information controls the number of points to be restored for each slice (the interval d of the vector Vi is specified for each slice).
  • this point cloud bitstream (GPCC bitstream syntax) is a sequence parameter set (SequenceParameterSet), geometry parameter set (GeometryParameterSet), attribute parameter set (AttributeParameterSet), tile inventory. (TileInventory), general geometry slice bitstream (general_geometry_slice_bitstream), and general attribute slice bitstream (general_attribute_slice_bitstream) can be included.
  • the sequence parameter set may include parameters related to this sequence.
  • the geometry parameter set may include parameters for the geometry data of this sequence.
  • the attribute parameter set may contain parameters for the attribute data of each sequence.
  • the tile inventory can contain information about tiles.
  • the general geometry slice bitstream may include a bitstream for each slice of geometry data.
  • the general attribute slice bitstream may include a bitstream for each slice of attribute data.
  • the general geometry slice bitstream may include a geometry slice header (geometry_slice_header) and geometry slice data (geometry_slice_data).
  • the geometry slice header may include metadata and the like for each slice of geometry data.
  • the geometry slice data may include coded data for each slice of geometry data.
  • the geometry slice header contains the geometry parameter set ID (gsh_goemetry_parameter_set_id), tile ID (gsh_tile_id), slice ID (gsh_slice_id), and size information (gsh_box_log2_scale) position.
  • the geometry parameter set ID may include the identification information of the geometry parameter set corresponding to this geometry slice header.
  • the tile ID may include identification information of the tile corresponding to each slice.
  • the slice ID may include identification information for each slice.
  • the size information may include information about the size of the box (three-dimensional area) of each slice.
  • the information about the position may include information about the position of the box of each slice, for example, the coordinates of the reference position of the box of each slice.
  • gsh_box_origin_x may contain the X coordinate of the box reference position for each slice.
  • gsh_box_origin_y may contain the Y coordinate of the box reference position for each slice.
  • gsh_box_origin_z may contain the Z coordinate of the box reference position for each slice.
  • the X-axis, Y-axis, and Z-axis are three axes perpendicular to each other, the X-coordinate indicates the coordinate in the X-axis direction, the Y-coordinate indicates the coordinate in the Y-axis direction, and the Z-coordinate indicates the Z-axis direction. Show the coordinates.
  • the information regarding the node size may include information indicating the maximum value of the node size of each slice.
  • the information regarding the number of points may include information indicating the number of points included in each slice.
  • the geometry slice data may include a geometry node (geometry_node) and a geometry try-up data (geometry_trisoup_data).
  • the geometry node can contain encoded data of Octree data.
  • the geometry tri-soup data may include encoded data of the tri-soup data.
  • the geometry try-up data includes information on the number of segments (num_unique_segments), segment indicators (segment_indicators), information on the number of vertices (num_vertices), and information on vertex coordinates. Includes (vertex_positions) and sampling information (sampling_value).
  • the information regarding the number of segments may include information indicating the number of indicators of the segments contained in this slice.
  • the indicator of the segment may include the indicator of each segment as shown in the seventh row from the top of FIG.
  • the information about the number of vertices may include information indicating the number of vertex coordinates contained in this slice.
  • Information about the coordinates of the vertices may include information indicating the coordinates of each vertex, as shown in the sixth row from the top of FIG.
  • the sampling information is control information including information that specifies the interval d of the vector Vi described above. This interval d is set so that the number of points restored from the triangular surface at the time of decoding is equal to or less than the number of points specified in the above-mentioned "information on the number of points".
  • FIG 6 and 7 are diagrams showing more specific examples of the syntax of the general geometry slice bitstream (general_geometry_slice_bitstream).
  • Figure 6A shows an example of the geometry slice header (geometry_slice_header) included in the general geometry slice bitstream.
  • the geometry slice header has a geometry parameter set ID (gsh_goemetry_parameter_set_id), a tile ID (gsh_tile_id), and a slice ID (gsh_slice_id) as shown in the third row from the top of FIG.
  • Size information (gsh_box_log2_scale) Position information (gsh_box_origin_x, gsh_box_origin_y, gsh_box_origin_z), Node size information (gsh_log2_max_nodesize), Point number information (gsh_num_points), and other various syntax elements can be described.
  • Figure 6B shows an example of geometry slice data (geometry_slice_data) included in the general geometry slice bitstream.
  • the geometry slice data includes the geometry node (geometry_node (depth, nodeIdx, xN, yN, zN)) and the geometry as shown in the fourth row from the top of FIG.
  • Tri-soup data can be described.
  • FIG. 6C An example of conventional geometry try soup data is shown in FIG. 6C.
  • syntax elements such as num_unique_segments, segment_indicator [i], num_vertices, and vertex_position [i] can be described in the conventional geometry try-up data.
  • Sampling information (sampling_value) shown in the fifth row from the top of FIG. 5 should be described in this geometry try soup data.
  • FIG. 7 shows an example of geometry try soup data in that case.
  • this sampling information is described as a syntax element "trisoup_sampling_param". That is, this trisoup_sampling_param is a syntax element that specifies the interval d of the vector Vi.
  • the vector Vi is arranged so that the spacing in the X-axis direction, the spacing in the Y-axis direction, and the spacing in the Z-axis direction of the vector Vi all have this value d.
  • the decoding side that performs decoding using this information uses the processing target.
  • the control information corresponding to the slice can be specified more easily. Therefore, the decoding process can be facilitated and the increase in the decoding load can be suppressed.
  • the interval d may be specified as an integer value or a decimal value. It may be specified by. Decoding processing can be facilitated when the control information specifies the interval d as an integer value. However, the number of points can be controlled more finely when the control information specifies the interval d as a decimal value.
  • the interval d of the vectors Vi may be controlled independently for each of the vector directions (three-axis directions (x, y, z directions) perpendicular to each other).
  • the distances between the starting origins of each vector Vi603 in the three axial directions (x, y, z directions) perpendicular to each other may be independent of each other in each direction.
  • FIG. 8 is a diagram for explaining the state of the voxel in a two-dimensional plane.
  • a triangular surface 202 is formed on the voxel 201.
  • the intersection 204 between the vector Vi and the triangular surface 202 is shown in FIG. Will be. That is, the vertical spacing of the intersection 204 in the figure is twice as wide as the horizontal spacing in the drawing. That is, as for the interval d of the vector Vi, the interval in the vertical direction in the figure is twice as wide as the interval in the horizontal direction in the figure.
  • the interval d of the vectors Vi the interval in the vertical direction in the figure is twice as wide as the interval in the horizontal direction in the figure.
  • the interval d of the vector Vi may be set independently of each other in each of the three directions of the X direction, the Y direction, and the Z direction. That is, the sampling information may set the X-axis direction spacing d X , the Y-axis direction spacing d Y , and the Z-axis direction spacing d Z independently of each other.
  • FIG. 9 shows an example of the syntax of the geometry try soup data in that case.
  • the syntax elements "trisoup_sampling_param_x”, “trisoup_sampling_param_y”, and “trisoup_sampling_param_z” are described as sampling information.
  • This "trisoup_sampling_param_x” is a syntax element that specifies the spacing of the vector Vi in the X-axis direction.
  • “Trisoup_sampling_param_y” is a syntax element that specifies the spacing of the vector Vi in the Y-axis direction.
  • “Trisoup_sampling_param_z” is a syntax element that specifies the Z-axis spacing of the vector Vi. That is, in this case, the sampling information can set the intervals in the X-axis direction, the Y-axis direction, and the Z-axis direction of the vector Vi independently of each other.
  • the method of controlling the number of restored points is arbitrary, and may be other than the control of the vector Vi interval as in the above example of sampling information.
  • the control information may be able to specify an operation mode in which the intersection of the inner portion of the triangular surface is preferentially deleted. In that case, on the decoding side, the operation mode is selected based on the control information, and processing is performed so as to preferentially delete the intersection of the inner portion of the triangular surface.
  • the resolution around each side of the triangular surface can be improved compared to other parts. That is, in the point cloud data, the configuration of each side of the triangular surface can be expressed more accurately. Therefore, the three-dimensional structure represented by this triangular surface can be more accurately represented in the point cloud data.
  • a point not located at the intersection of the vector Vi and the triangular surface may be generated and included in the point cloud data.
  • the vector Vi in the direction perpendicular to the paper surface is arranged at the intersection of the solid lines 203 in the vertical direction and the horizontal direction in the figure of the voxel 201.
  • a point 221 (white circle) is generated at a position close to each side of the triangular surface 202 of the vector Vi that does not intersect the triangular surface 202, and is included in the point cloud data. You may.
  • the method of determining the position where the point is generated is arbitrary.
  • control information may be able to specify an operation mode for restoring a point at a position where the vector Vi and each side of the triangular surface are approximated in this way.
  • the operation mode is selected based on the control information, and processing is performed so as to restore the point to a position where the vector Vi and each side of the triangular surface are close to each other.
  • the resolution around each side of the triangular surface can be improved compared to other parts. That is, in the point cloud data, the configuration of each side of the triangular surface can be expressed more accurately. Therefore, the three-dimensional structure represented by this triangular surface can be more accurately represented in the point cloud data.
  • the position of the start origin of the vector Vi may be controlled.
  • the vector Vi in the direction perpendicular to the paper surface is the intersection of the straight lines 203, that is, the position in the horizontal direction in the figure is any of 0, 2, 4, 6, and 8.
  • the position in the vertical direction in the figure is 0, 2, 4, 6, or 8. Therefore, as shown in FIG. 11, eight intersections 204 of the vector Vi and the triangular surface 202 are formed.
  • the vector Vi in the direction perpendicular to the paper surface is the intersection of the straight lines 203, that is, the position in the horizontal direction in the figure is any one of 1, 3, 5, and 7.
  • the position in the vertical direction in the drawing is 0, 2, 4, 6, or 8. Therefore, as shown in FIG. 12, six intersections 204 of the vector Vi and the triangular surface 202 are formed.
  • control information may be able to specify the position of the vector Vi (the position of the start origin of the vector Vi) in this way.
  • control information may include information that specifies the position of the vector Vi. In that case, on the decoding side, the vector Vi is arranged at a position designated based on the control information, and the intersection of the vector Vi and the triangular surface is derived.
  • the number of points can be controlled without changing the resolution of the point cloud. This enables finer control of the number of points.
  • points may be generated at a part of the intersection between the vector Vi and the triangular surface. In other words, it does not have to generate points even at intersections. That is, by reducing the number of intersections that generate points, the resolution of the point cloud may be reduced (that is, the scalability of the resolution may be realized).
  • the method of selecting an intersection that generates points (or does not generate points) is arbitrary. For example, as shown in FIG. 13, points may be generated in a staggered pattern (at every other intersection in each of the three axial directions).
  • control information may be able to specify in which of the intersections the points are generated in this way.
  • control information may include information that specifies a pattern (for example, a zigzag pattern) of intersections that generate points. In that case, on the decoding side, the point is restored to the intersection at the position corresponding to the designated pattern among the derived intersections based on the control information.
  • the number of points to be restored can be controlled regardless of the interval between vector Vis (or the number of vector Vis). Therefore, more diverse control of the number of points is possible.
  • a desired method (or a combination thereof) may be selected and applied from a part or all of the methods described above in the present specification.
  • the selection method is arbitrary. For example, all applicable patterns may be evaluated and the best may be selected. By doing so, the point cloud data can be generated by the method most suitable for the three-dimensional structure or the like.
  • control information is included in the slice data, but the storage position of the control information in the bit stream is arbitrary and is not limited to the above example.
  • control information may be stored in a geometry parameter set (geometry_parameter_set).
  • control information (trisoup_sampling_scale) set for each slice is stored in this geometry parameter set. That is, control information for all slices is stored in this geometry parameter set.
  • control information of all slices can be easily obtained by referring to this geometry parameter set.
  • control information may be stored in the sequence parameter set (seq_parameter_set).
  • control information (trisoup_sampling_scale) set for each slice is stored in this sequence parameter set. That is, the control information of all slices is stored in this sequence parameter set.
  • this control information may be stored at a plurality of positions in the bitstream.
  • this control information may be stored in the geometry try-up data, the geometry parameter set, and the sequence parameter set (FIGS. 7, 14, and 15).
  • the control information stored in the lower data unit may be applied preferentially.
  • the control information may be applied preferentially, and if it does not exist, the control information stored in the geometry parameter set may be applied. ..
  • FIG. 16 is a block diagram showing an example of a configuration of a coding device, which is an aspect of an image processing device to which the present technology is applied.
  • the coding device 300 shown in FIG. 16 is a device that encodes 3D data such as a point cloud.
  • the coding device 300 encodes the point cloud using a technique such as voxel, Octree, or tri-soup.
  • the coding apparatus 300 has ⁇ 1.
  • Control the number of points in the tri-soup> As described above, the number of points in the point cloud obtained by decoding the coded data is controlled.
  • the coding device 300 generates control information that controls the number of points derived from the triangular surface of the tri-soup, and supplies the control information to the decoding side that decodes the coded data of the tri-soup.
  • the coding device 300 is ⁇ 1.
  • the various methods described above can be applied in the control of the number of points of the tri-soup>.
  • FIG. 16 shows the main things such as the processing unit and the data flow, and not all of them are shown in FIG. That is, in the coding apparatus 300, there may be a processing unit that is not shown as a block in FIG. 16, or there may be a processing or data flow that is not shown as an arrow or the like in FIG. This also applies to other figures for explaining the processing unit and the like in the coding apparatus 300.
  • the coding device 300 includes a voxel generation unit 301, a position information coding unit 302, a position information decoding unit 303, an attribute information coding unit 304, and a bitstream generation unit 305.
  • the voxel generation unit 301 performs processing related to voxelization of the point cloud. For example, the voxel generation unit 301 can acquire the point cloud data input to the coding device 300. Further, the voxel generation unit 301 can set a bounding box for the area including the point cloud based on the geometry data of the acquired point cloud data. Further, the voxel generation unit 301 can divide the bounding box and set voxels. By setting this voxel, the geometry data of the point cloud data is quantized. The voxel generation unit 301 can supply the voxel data generated in this way to the position information coding unit 302.
  • the position information coding unit 302 performs processing related to coding of geometry data (position information). For example, the position information coding unit 302 can acquire voxel data supplied from the voxel generation unit 301. Further, the position information coding unit 302 can encode the acquired voxel data and generate the encoded data of the geometry data. The details of this coding will be described later. The position information coding unit 302 can supply the coded data of the generated geometry data to the bit stream. Further, the position information coding unit 302 can supply intermediate data (geometry data before lossless coding) to the position information decoding unit 303.
  • the position information decoding unit 303 performs processing related to decoding geometry data.
  • the position information decoding unit 303 can acquire intermediate data (geometry data before lossless coding) supplied from the position information coding unit 302.
  • the position information decoding unit 303 can acquire the point cloud data input to the coding device 300.
  • the position information decoding unit 303 can decode the acquired intermediate data and restore the points. The details of this decoding will be described later.
  • the position information decoding unit 303 can perform recolor processing using the geometry data in which the points are restored and the attribute data of the acquired point cloud data, and can update the attribute data so as to match the geometry data.
  • the position information decoding unit 303 can supply the geometry data and the attribute data to the attribute information coding unit 304.
  • the position information decoding unit 303 can generate control information for controlling the number of points restored at the time of decoding and supply it to the bit stream generation unit 305.
  • the attribute information coding unit 304 performs processing related to coding of attribute information.
  • the attribute information coding unit 304 can acquire the geometry data and the attribute data supplied from the position information decoding unit 303. Further, the attribute information coding unit 304 can encode the attribute data (attribute information) using the geometry data and generate the coded data of the attribute data. The encoding method of this attribute data is arbitrary. Further, the attribute information coding unit 304 can supply the coded data of the generated attribute data to the bitstream generation unit 305.
  • the bitstream generation unit 305 performs processing related to bitstream generation. For example, the bitstream generation unit 305 can acquire the coded data of the geometry data supplied from the position information coding unit 302. Further, the bitstream generation unit 305 can acquire the coded data of the attribute data supplied from the attribute information coding unit 304. Further, the bitstream generation unit 305 can acquire the control information supplied from the position information decoding unit 303. The bitstream generation unit 305 can generate a bitstream including the coded data of the geometry data, the coded data of the attribute data, and the control information. The bitstream generation unit 305 can output the generated bitstream to the outside of the coding device 300.
  • the bitstream generation unit 305 can transmit the bitstream to another device via a predetermined communication medium. Further, the bitstream generation unit 305 can store the bitstream in a predetermined storage medium. The bit stream output from the coding device 300 in this way is supplied to a decoding-side device that decodes the bit stream, for example, via a communication medium or a storage medium.
  • the position information coding unit 302 includes, for example, an Octree generation unit 311, a mesh generation unit 312, and a lossless coding unit 313.
  • Octree generation unit 311 performs processing related to octree generation. For example, the Octree generation unit 311 can acquire voxel data supplied from the voxel generation unit 301. Further, the Octree generation unit 311 can construct an Octree using the voxel data and generate the Octree data. The Octree generation unit 311 can supply the generated Octree data to the mesh generation unit 312.
  • the mesh generation unit 312 performs processing related to the generation of tri-soup data expressing the points of the point cloud using the triangular surface.
  • the mesh generation unit 312 can acquire the Octree data supplied from the Octree generation unit 311.
  • the mesh generation unit 312 can generate tri-soup data in which nodes (points) having a resolution equal to or lower than a predetermined resolution of the Octree data are represented by a triangular surface.
  • the mesh generation unit 312 can supply the geometry data including the generated tri-soup data and the Octree data to the lossless coding unit 313.
  • the mesh generation unit 312 can supply the geometry data to the position information decoding unit 303.
  • the lossless coding unit 313 performs processing related to lossless coding of geometry data. For example, the lossless coding unit 313 can acquire the geometry data supplied from the mesh generation unit 312. Further, the lossless coding unit 313 can losslessly code the acquired geometry data and generate the coded data of the geometry data. Further, the lossless coding unit 313 can supply the coded data of the generated geometry data to the bitstream generation unit 305.
  • the position information decoding unit 303 includes, for example, a mesh shape restoration unit 321 and a point generation unit 322, and a recolor processing unit 323.
  • the mesh shape restoration unit 321 performs processing related to restoration of the triangular surface from the tri-soup data.
  • the mesh shape restoration unit 321 can acquire the geometry data supplied from the position information coding unit 302 (mesh generation unit 312). This geometry data is composed of Octree data and tri-soup data. Further, the mesh shape restoration unit 321 can restore each triangular surface based on the tri-soup data of the geometry data.
  • the tri-soup data includes the coordinates of the vertices of the triangular surface, and the mesh shape restoration unit 321 can restore the triangular surface using the coordinates of the vertices. Further, the mesh shape restoration unit 321 can supply the geometry data having the restored triangular surface to the point generation unit 322.
  • the point generation unit 322 performs processing related to point generation.
  • the point generation unit 322 can acquire the geometry data having a triangular surface supplied from the mesh shape restoration unit 321.
  • the point generation unit 322 can generate (restore) points using the triangular surface of the geometry data, and generate (restore) point cloud data.
  • the point generation unit 322 has ⁇ 1.
  • Points can be generated by appropriately applying the various methods described in Controlling the number of points in the tri-soup.
  • the point generation unit 322 can generate points so that the points do not exceed a predetermined limit value (for example, to comply with restrictions on the profile and level).
  • the point generation unit 322 can supply the geometry data of the point cloud data including the restored points to the recolor processing unit 323.
  • the point generation unit 322 can generate control information that controls the number of points restored in decoding. At that time, the point generation unit 322 has ⁇ 1. Control information can be generated by appropriately applying various methods described in Control of the number of points of tri-soup>.
  • the point generation unit 322 can generate control information for controlling the number of points so that the number of points restored at the time of decoding does not exceed a predetermined limit value.
  • the point generator 322 controls information so that the number of points restored at the time of decoding keeps the constraint on the profile or level (that is, the number of points is limited to the upper limit according to the profile or level). Can be generated.
  • the point generation unit 322 sets the number of points restored at the time of decoding to be equal to or less than the number of points of the point cloud data input to the coding device 300 (that is, the number of points of the point cloud before coding). Control information can be generated to limit to.
  • the point generation unit 322 can supply the generated control information to the bitstream generation unit 305.
  • the recolor processing unit 323 performs processing related to the recolor processing.
  • the recolor processing unit 323 can acquire the geometry data supplied from the point generation unit 322.
  • the recolor processing unit 323 can acquire the point cloud data input to the coding device 300.
  • the recolor processing unit 323 can perform recolor processing, which is a process of matching the attribute data of the point cloud data acquired from the outside of the coding apparatus 300 with the geometry data acquired from the point generation unit 322.
  • the method of this recoloring process is arbitrary.
  • the recolor processing unit 323 can supply the result of this recolor processing, that is, the geometry data and the attribute data corresponding to the geometry data to the attribute information coding unit 304.
  • each processing unit may be configured by a logic circuit that realizes the above-mentioned processing.
  • each processing unit has, for example, a CPU (Central Processing Unit), a ROM (Read Only Memory), a RAM (Random Access Memory), and the like, and the above-mentioned processing is realized by executing a program using them. You may do so.
  • each processing unit may have both configurations, and a part of the above-mentioned processing may be realized by a logic circuit, and the other may be realized by executing a program.
  • the configurations of the respective processing units may be independent of each other. For example, some processing units realize a part of the above-mentioned processing by a logic circuit, and some other processing units execute a program.
  • the above-mentioned processing may be realized by the other processing unit by both the logic circuit and the execution of the program.
  • the bitstream generation unit 305 in the point generation unit 322 ⁇ 1.
  • a bit stream containing the generated control information is generated by appropriately applying the various methods described in Control the number of points of the tri-soup. Therefore, the coding device 300 can control the number of points in the point cloud obtained by decoding the coded data. That is, when the points of the point cloud are expressed as a surface and coded, the number of points of the point cloud obtained by decoding the coded data can be controlled.
  • FIG. 17 is a block diagram showing a main configuration example of the point generation unit 322 of FIG.
  • the point generation unit 3322 includes a vector setting unit 331, an intersection determination unit 332, an auxiliary processing unit 333, a point number determination unit 334, and a sampling interval setting unit 335.
  • the vector setting unit 331 performs processing related to the setting of the vector Vi for restoring the point from the triangular surface.
  • the vector setting unit 331 can acquire the geometry data having a triangular surface supplied from the mesh shape restoration unit 321. Further, the vector setting unit 331 can acquire sampling information supplied from the sampling interval setting unit 335. This sampling information is ⁇ 1. As described above in the control of the number of points of the tri-soup>, it is the information for controlling the interval d of the vector Vi. Further, the vector setting unit 331 has an interval based on the sampling information for the geometry data having the triangular surface, and ⁇ 1. The above-mentioned vector Vi can be set in the control of the number of points of the tri-soup>. Further, the vector setting unit 331 can supply the geometry data having a triangular surface in which the vector Vi is set to the intersection determination unit 332.
  • the intersection determination unit 332 performs processing related to determination of the intersection between the vector Vi and the triangular surface. For example, the intersection determination unit 332 can acquire the geometry data having the triangular surface in which the vector Vi is set, which is supplied from the vector setting unit 331. Further, the intersection determination unit 332 can determine the intersection of the triangular surface and the vector Vi with respect to the geometry data, and can derive the coordinates of the intersection between the triangular surface and the vector Vi (also referred to as the intersection coordinates). Further, the intersection determination unit 332 can supply the derived intersection coordinates to the auxiliary processing unit 333.
  • Auxiliary processing unit 333 performs auxiliary processing for intersections.
  • the auxiliary processing unit 333 can acquire the intersection coordinates supplied from the intersection determination unit 332.
  • the auxiliary processing unit 333 can perform a predetermined auxiliary processing on the acquired intersection coordinates.
  • the auxiliary processing unit 333 may delete one point. By removing the overlapping points in this way, it is possible to suppress an increase in unnecessary processing and an increase in load (for example, the processing can be made faster). Further, when the coordinate value of the intersection is outside the bounding box, the auxiliary processing unit 333 may clip (move) the position of the intersection into the bounding box by clipping processing. May be good). You may also delete the intersection.
  • the auxiliary processing unit 333 can supply the intersection coordinates that have undergone the supplementary processing to the point number determination unit 334.
  • the point number determination unit 334 determines the number of intersections (points). For example, the point number determination unit 334 can acquire the intersection coordinates from the auxiliary processing unit 333. Further, the point number determination unit 334 can determine whether or not the number of intersection coordinates (that is, the number of restored points) satisfies a predetermined condition. For example, the number of intersection coordinates can be compared with the upper limit defined by the profile or level. When it is determined that the number of points does not meet the conditions (for example, the upper limit value specified by the profile or level is exceeded), the point number determination unit 334 notifies the sampling interval setting unit 335 to that effect. Can be done.
  • the point number determination unit 334 can notify the sampling interval setting unit 335 to that effect, and further, the intersection coordinates are used as geometry data in the recolor processing unit 323. Can be supplied to.
  • the sampling interval setting unit 335 performs processing related to the setting of sampling information. For example, the sampling interval setting unit 335 can generate sampling information (set the interval d of the vector Vi) and supply the generated sampling information to the vector setting unit 331. At that time, the sampling interval setting unit 335 is set to ⁇ 1. Sampling information can be generated by appropriately applying the various methods described in Control the number of points of tri-soup>.
  • sampling interval setting unit 335 can obtain a notification from the point number determination unit 334 whether or not the restored number of points satisfies a predetermined condition.
  • the sampling interval setting unit 335 updates the sampling information (updates the setting value of the vector Vi interval d) when the number of restored points does not satisfy the predetermined condition.
  • the sampled sampling information can be supplied to the vector setting unit 331. At that time, the sampling interval setting unit 335 is set to ⁇ 1.
  • the sampling information can be updated by appropriately applying the various methods described in Control the number of points of the tri-soup>.
  • sampling interval setting unit 335 generates a bit stream using the currently set sampling information as control information when the restored number of points satisfies a predetermined condition based on the notification from the point number determination unit 334. It can be supplied to the unit 305.
  • control information may control other than the interval d of the vector Vi.
  • the sampling interval setting unit 335 has ⁇ 1. Since the control information is generated by appropriately applying the various methods described in ⁇ Control of the number of points of the tri-soup> and supplied to the bitstream generation unit 305, the bitstream generation unit 305 performs ⁇ 1. It is possible to generate a bit stream including control information generated by appropriately applying various methods described in Control of the number of points of tri-soup>. Therefore, the coding device 300 can control the number of points in the point cloud obtained by decoding the coded data. That is, when the points of the point cloud are expressed as a surface and coded, the number of points of the point cloud obtained by decoding the coded data can be controlled.
  • the sampling interval setting unit 335 can set the control information so as to satisfy the condition. Therefore, the coding device 300 can control the number of points in the point cloud obtained by decoding the coded data so as to satisfy a predetermined condition. For example, the coding device 300 can control the number of points in the point cloud obtained by decoding the coded data so as to keep the restrictions of the profile and the level.
  • the voxel generation unit 301 When the coding process is started, the voxel generation unit 301 generates voxel data using the point cloud data in step S101.
  • step S102 the Octree generation unit 311 constructs an Octree using the voxel data and generates Octree data.
  • step S103 the mesh generation unit 312 generates tri-soup data (also referred to as mesh data) based on the Octree data.
  • step S104 the lossless coding unit 313 losslessly encodes the geometry data including the Octree data generated in step S102 and the tri-soup data generated in step S103, and generates the coded data of the geometry data.
  • step S105 the mesh shape restoration unit 321 restores the mesh shape (that is, the triangular surface) from the tri-soup data (mesh data) included in the geometry data.
  • step S106 the point generation unit 322 executes the point generation process and generates (restores) points from the restored mesh shape. At that time, the point generation unit 322 has ⁇ 1.
  • Various methods described in Control the number of points of the tri-soup> are appropriately applied to generate points, and further, control information (sampling information, etc.) for controlling the number of points restored in decoding is generated.
  • step S107 the recolor processing unit 323 performs the recolor processing and matches the attribute data with the geometry data in which the points have been restored.
  • step S108 the attribute information coding unit 304 encodes the attribute data using the geometry data and generates the coded data of the attribute data.
  • the bitstream generation unit 305 includes the coded data of the geometry data generated in step S104, the coded data of the attribute data generated in step S108, and the control information generated in step S106. Generate a bitstream.
  • the bitstream generation unit 305 outputs the generated bitstream to the outside of the coding device 500.
  • step S109 When the process of step S109 is completed, the coding process is completed.
  • the coding device 300 can control the number of points in the point cloud obtained by decoding the coded data. That is, when the points of the point cloud are expressed as a surface and coded, the number of points of the point cloud obtained by decoding the coded data can be controlled.
  • the vector setting unit 331 sets the vector Vi whose start origin is the position coordinates corresponding to the sampling interval specified by the sampling information generated by the sampling interval setting unit 335 in step S121. To do.
  • step S122 the intersection determination unit 332 obtains the intersection of the vector and the triangular surface (mesh).
  • step S123 the auxiliary processing unit 333 deletes the intersections whose positions overlap among the intersections derived in step S122 (eliminates the duplication).
  • step S124 the auxiliary processing unit 333 processes the intersection outside the bounding box. For example, the auxiliary processing unit 333 can delete an intersection located outside the bounding box. Further, the auxiliary processing unit 333 can also move the intersection located outside the bounding box into the bounding box by clip processing.
  • step S125 the point number determination unit 334 determines whether or not the number of points at the intersection is equal to or less than the number of points in the input point cloud data. That is, here, the predetermined condition is "less than or equal to the number of points of the point cloud data input to the coding device 300". If it is determined that the number of points at the intersection after the auxiliary processing is larger than the number of points in the input point cloud data, the processing proceeds to step S126.
  • the sampling interval setting unit 335 changes the sampling interval (updates the sampling information) so that the number of points at the intersection after the auxiliary processing is equal to or less than the number of points of the input point cloud data.
  • the sampling interval setting unit 335 is set to ⁇ 1.
  • step S126 When the process of step S126 is completed, the process returns to step S121. That is, the processes of steps S121 to S125 are repeated using the updated sampling information.
  • step S125 If it is determined in step S125 that the number of points at the intersection after the auxiliary processing is less than or equal to the number of points in the input point cloud data, the processing proceeds to step S127.
  • step S127 the sampling interval setting unit 335 supplies the current sampling information to the bitstream generation unit 305, includes it in the bitstream, and outputs it.
  • step S127 When the process of step S127 is completed, the point generation process is completed, and the process returns to FIG.
  • the bitstream generation unit 305 can perform ⁇ 1. It is possible to generate a bit stream including control information generated by appropriately applying various methods described in Control of the number of points of tri-soup>. Therefore, the coding device 300 can control the number of points in the point cloud obtained by decoding the coded data. That is, when the points of the point cloud are expressed as a surface and coded, the number of points of the point cloud obtained by decoding the coded data can be controlled.
  • FIG. 20 is a block diagram showing an example of a configuration of a decoding device, which is an aspect of an image processing device to which the present technology is applied.
  • the decoding device 400 shown in FIG. 20 is a device that decodes coded data of 3D data such as a point cloud.
  • the decoding device 400 decodes the coded data in which the point cloud is encoded by using a technique such as voxel, Octree, or tri-soup. Further, the decoding device 400 may perform ⁇ 1.
  • the coded data is decoded according to the control information that controls the number of points in the point cloud obtained by decoding the coded data.
  • the decoding device 400 decodes the coded data of the tri-soup based on the control information that controls the number of points derived from the triangular surface of the tri-soup contained in the bit stream.
  • the decoding device 400 corresponds to, for example, the coding device 300, and can decode the bit stream generated by the coding device 300 (the bit stream generated as described in the first embodiment).
  • FIG. 20 shows the main things such as the processing unit and the data flow, and not all of them are shown in FIG. 20. That is, in the decoding device 400, there may be a processing unit that is not shown as a block in FIG. 20, or there may be a processing or data flow that is not shown as an arrow or the like in FIG. This also applies to other figures illustrating the processing unit and the like in the decoding device 400.
  • the decoding device 400 includes a coded data extraction unit 401, a position information decoding unit 402, an attribute information decoding unit 403, and a point cloud generation unit 404.
  • the coded data extraction unit 401 performs processing related to extraction of coded data from the bit stream. For example, the coded data extraction unit 401 can acquire the bit stream to be decoded. Further, the coded data extraction unit 401 can extract the coded data of the geometry data and the attribute data included in the acquired bit stream.
  • the coded data extraction unit 401 can supply the coded data of the extracted geometry data to the position information decoding unit 402. Further, the coded data extraction unit 401 can supply the coded data of the extracted attribute data to the attribute information decoding unit 403.
  • the position information decoding unit 402 performs processing related to decoding the encoded data of the geometry data. For example, the position information decoding unit 402 can acquire the coded data of the geometry data supplied from the coded data extraction unit 401. Further, the position information decoding unit 402 can decode the encoded data of the acquired geometry data and generate the geometry data. Further, the position information decoding unit 402 can supply the generated geometry data to the point cloud generation unit 404. Further, the position information decoding unit 402 can supply the generated geometry data to the attribute information decoding unit 403.
  • the attribute information decoding unit 403 performs processing related to decoding of the coded data of the attribute data. For example, the attribute information decoding unit 403 can acquire the coded data of the attribute data supplied from the coded data extraction unit 401. Further, the attribute information decoding unit 403 can acquire the geometry data supplied from the position information decoding unit 402 (point generation unit 414).
  • the attribute information decoding unit 403 can decode the encoded data of the acquired attribute data using the acquired geometry data and generate the attribute data. Further, the attribute information decoding unit 403 can supply the generated attribute data to the point cloud generation unit 404.
  • the point cloud generation unit 404 performs processing related to the generation of point cloud data. For example, the point cloud generation unit 404 can acquire the geometry data supplied from the position information decoding unit 402. Further, the point cloud generation unit 404 can acquire the attribute data supplied from the attribute information decoding unit 403. Further, the point cloud generation unit 404 can generate point cloud data using the acquired geometry data and attribute data. Further, the point cloud generation unit 404 can output the generated point cloud data to the outside of the decoding device 400.
  • the position information decoding unit 402 has a reversible decoding unit 411, an Octree decoding unit 412, a mesh shape restoration unit 413, and a point generation unit 414.
  • the reversible decoding unit 411 performs processing related to the reversible decoding of the coded data of the geometry data. For example, the reversible decoding unit 411 can acquire the coded data of the geometry data supplied from the coded data extraction unit 401. In this coded data, the geometry data is losslessly coded. The lossless decoding unit 411 can generate the geometry data by losslessly decoding the coded data of the geometry data by the lossless decoding method corresponding to the lossless coding unit 313. Further, the lossless decoding unit 411 can supply the geometry data (including the Octree data and the tri-soup data) generated by losslessly decoding the encoded data to the Octree decoding unit 412. The tri-soup data includes control information (for example, sampling information) that controls the number of points restored in decoding.
  • control information for example, sampling information
  • Octree decoding unit 412 performs processing related to decoding Octree data.
  • the Octree decoding unit 412 can acquire the geometry data supplied from the reversible decoding unit 411. Further, the Octree decoding unit 412 can generate voxel data from the Octree data included in the geometry data. Further, the Octree decoding unit 412 can supply the geometry data including the generated voxel data and the tri-soup data to the mesh shape restoration unit 413.
  • the mesh shape restoration unit 413 performs processing related to restoration of the triangular surface (mesh). For example, the mesh shape restoration unit 413 can acquire voxel data and tri-soup data supplied from the Octree decoding unit 412 as geometry data. Further, the mesh shape restoration unit 413 can restore the triangular surface (mesh) by using the tri-soup data. Further, the mesh shape restoration unit 413 can supply the geometry data in which the triangular surface is restored to the point generation unit 414.
  • the geometry data includes control information (for example, sampling information) that controls the number of points restored in decoding.
  • the point generation unit 414 performs processing related to point generation (restoration). For example, the point generation unit 414 can acquire the geometry data obtained by restoring the triangular surface supplied from the mesh shape restoration unit 413. Further, the point generation unit 414 can generate (restore) points from the triangular surface based on the control information (for example, sampling information) that controls the number of points restored in decoding included in the geometry data. it can.
  • the control information for example, sampling information
  • This control information is ⁇ 1. This is information generated by appropriately applying various methods described in Control of the number of points of tri-soup>. Therefore, the point generation unit 414 can restore the number of points according to the control on the coding side by restoring the points according to this control information.
  • the point generation unit 414 can supply the geometry data in which the points are restored as described above to the point cloud generation unit 404.
  • the point generator 414 restores the points from the triangular surface as described above, and the geometry data of all the restored points. Can be supplied to the point cloud generation unit 404 as a decoding result.
  • each processing unit may be configured by a logic circuit that realizes the above-mentioned processing.
  • each processing unit may have, for example, a CPU, ROM, RAM, etc., and execute a program using them to realize the above-mentioned processing.
  • each processing unit may have both configurations, and a part of the above-mentioned processing may be realized by a logic circuit, and the other may be realized by executing a program.
  • the configurations of the respective processing units may be independent of each other. For example, some processing units realize a part of the above-mentioned processing by a logic circuit, and some other processing units execute a program.
  • the above-mentioned processing may be realized by the other processing unit by both the logic circuit and the execution of the program.
  • the reversible decoding unit 411 decodes the coded data of the geometry data, and the point generation unit 414 restores the points according to the control information, so that the decoding device 400 is controlled from the try-up data according to the control of the coding side.
  • Points can be derived. That is, the coding side can control the number of points in the point cloud obtained by decoding the coded data.
  • FIG. 21 is a block diagram showing a main configuration example of the point generation unit 414.
  • the point generation unit 414 includes a vector setting unit 421, an intersection determination unit 422, and an auxiliary processing unit 423.
  • the vector setting unit 421 performs processing related to the setting of the vector Vi.
  • the vector setting unit 421 can acquire the geometry data supplied from the mesh shape restoration unit 413. Further, the vector setting unit 421 can set the vector Vi on the triangular surface of the geometry data based on the control information included in the geometry data. That is, the vector setting unit 421 can set the vector Vi according to the control on the coding side.
  • the vector setting unit 421 can supply the set vector Vi to the intersection determination unit 422.
  • the intersection determination unit 422 performs processing related to the intersection determination between the triangular surface and the vector Vi. For example, the intersection determination unit 422 can acquire the geometry data supplied from the mesh shape restoration unit 413. Further, the intersection determination unit 422 can acquire the vector Vi supplied from the vector setting unit 421. Further, the intersection determination unit 422 can compare them and obtain the intersection of the triangular surface and the vector Vi included in the geometry data (derive the intersection coordinates). Further, the intersection determination unit 422 can supply the derived intersection coordinates to the auxiliary processing unit 423.
  • Auxiliary processing unit 423 performs auxiliary processing for intersections.
  • the auxiliary processing unit 423 can acquire the intersection coordinates supplied from the intersection determination unit 422.
  • the auxiliary processing unit 423 can perform a predetermined auxiliary processing on the acquired intersection coordinates.
  • the auxiliary processing unit 423 may delete one point. By removing the overlapping points in this way, it is possible to suppress an increase in unnecessary processing and an increase in load (for example, the processing can be made faster). Further, when the coordinate value of the intersection is outside the bounding box, the auxiliary processing unit 423 may clip (move) the position of the intersection into the bounding box by clipping processing. May be good). You may also delete the intersection.
  • the auxiliary processing unit 423 can supply the intersection coordinates to which the auxiliary processing has been performed to the point cloud generation unit 404 as the decoding result of the geometry data. Further, the auxiliary processing unit 423 can also supply the decoding result to the attribute information decoding unit 403.
  • the decoding device 400 can derive points from the tri-soup data according to the control on the coding side. .. That is, the coding side can control the number of points in the point cloud obtained by decoding the coded data.
  • the coded data extraction unit 401 analyzes the header information included in the bit stream in step S201. Further, in step S202, the coded data extraction unit 401 extracts the coded data of the geometry data and the coded data of the attribute data from the bit stream.
  • step S203 the reversible decoding unit 411 reversibly decodes the encoded data of the geometry data extracted in step S203, and generates geometry data including Octree data and try-up data.
  • step S204 the Octree decoding unit 412 restores the voxel data from the Octree data included in the geometry data.
  • step S205 the mesh shape restoration unit 413 restores the mesh shape (triangular surface) from the voxel data restored in step S204.
  • step S206 the point generation unit 414 executes the point generation process and generates (restores) points from the mesh shape (triangular surface) restored in step S205.
  • step S207 the attribute information decoding unit 403 decodes the attribute data.
  • step S208 the point cloud generation unit 404 generates point cloud data using the geometry data generated in step S206 and the attribute data generated in step S207.
  • step S208 When the process of step S208 is completed, the decoding process is completed.
  • the decoding device 400 can derive points from the tri-soup data according to the control of the coding side. That is, the coding side can control the number of points in the point cloud obtained by decoding the coded data.
  • the vector setting unit 421 sets the vector Vi whose start origin is the position coordinates corresponding to the sampling interval specified by the sampling information (control information) included in the coded data in step S221. Set.
  • step S222 the intersection determination unit 422 obtains the intersection of the mesh (triangular surface) of the geometry data and the vector Vi set in step S221 (deriving the intersection coordinates).
  • the auxiliary processing unit 423 deletes the overlapping intersections as auxiliary processing (eliminates the overlapping of the intersections).
  • the auxiliary processing unit 423 processes the intersection outside the bounding box as an auxiliary process. For example, the auxiliary processing unit 423 can delete an intersection located outside the bounding box. Further, the auxiliary processing unit 423 can also move the intersection located outside the bounding box into the bounding box by clip processing.
  • step S223 When the process of step S223 is completed, the point generation process is completed, and the process returns to FIG. 22.
  • the decoding device 400 can derive points from the tri-soup data according to the control of the coding side. That is, the coding side can control the number of points in the point cloud obtained by decoding the coded data.
  • the point number determination unit 334 sets a predetermined condition that "the number of points is equal to or less than the number of points of the point cloud data input to the encoding device 300". , Explained to determine whether the number of restored points meets a predetermined condition.
  • the predetermined condition is arbitrary and is not limited to this example.
  • the predetermined condition may be "a predetermined maximum number of points that is larger than the number of points of the point cloud data input to the encoding device 300".
  • the upper limit of the number of points specified by the profile or level is set to be larger than the number of points of the point cloud data input to the encoding device 300, and the number of restored points does not exceed the upper limit. It may be controlled as follows.
  • each process of steps S301 to S305 is executed in the same manner as each process of steps S121 to S125 of FIG.
  • step S305 If it is determined in step S305 that the number of points at the intersection after the auxiliary processing is larger than the number of points in the input point cloud data, the processing proceeds to step S306.
  • step S306 the point number determination unit 334 determines whether or not the number of points at the intersection is equal to or less than the preset maximum number of points (for example, the maximum number of points specified by the profile or level). If it is determined that the number of points at the intersection after the auxiliary processing is greater than the maximum number of points, the processing proceeds to step S307.
  • the preset maximum number of points for example, the maximum number of points specified by the profile or level.
  • step S307 is executed in the same manner as in step S126 of FIG.
  • the process returns to step S301. That is, the processes of steps S301 to S305 (step S306) are repeated using the updated sampling information.
  • step S306 If it is determined in step S306 that the number of points at the intersection after the auxiliary processing is equal to or less than the preset maximum number of points, the processing proceeds to step S308.
  • step S305 If it is determined in step S305 that the number of points at the intersection after the auxiliary processing is less than or equal to the number of points in the input point cloud data, the processing proceeds to step S308.
  • step S308 is executed in the same manner as in step S127 of FIG.
  • the point generation process is completed, and the process returns to FIG.
  • the bitstream generation unit 305 can perform ⁇ 1. It is possible to generate a bit stream including control information generated by appropriately applying various methods described in Control of the number of points of tri-soup>. Therefore, the coding device 300 can control the number of points in the point cloud obtained by decoding the coded data. That is, when the points of the point cloud are expressed as a surface and coded, the number of points of the point cloud obtained by decoding the coded data can be controlled.
  • control flag related to the present technology described in each of the above embodiments may be transmitted from the coding side to the decoding side.
  • a control flag for example, enabled_flag
  • enabled_flag that controls whether or not the application of the present technology described above is permitted (or prohibited) may be transmitted.
  • the series of processes described above can be executed by hardware or software.
  • the programs constituting the software are installed on the computer.
  • the computer includes a computer embedded in dedicated hardware, a general-purpose personal computer capable of executing various functions by installing various programs, and the like.
  • FIG. 25 is a block diagram showing a configuration example of computer hardware that executes the above-mentioned series of processes programmatically.
  • the CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the input / output interface 910 is also connected to the bus 904.
  • An input unit 911, an output unit 912, a storage unit 913, a communication unit 914, and a drive 915 are connected to the input / output interface 910.
  • the input unit 911 includes, for example, a keyboard, a mouse, a microphone, a touch panel, an input terminal, and the like.
  • the output unit 912 includes, for example, a display, a speaker, an output terminal, and the like.
  • the storage unit 913 is composed of, for example, a hard disk, a RAM disk, a non-volatile memory, or the like.
  • the communication unit 914 includes, for example, a network interface.
  • the drive 915 drives a removable medium 921 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 901 loads the program stored in the storage unit 913 into the RAM 903 via the input / output interface 910 and the bus 904 and executes the above-described series. Is processed.
  • the RAM 903 also appropriately stores data and the like necessary for the CPU 901 to execute various processes.
  • the program executed by the computer can be recorded and applied to the removable media 921 as a package media or the like, for example.
  • the program can be installed in the storage unit 913 via the input / output interface 910 by mounting the removable media 921 in the drive 915.
  • This program can also be provided via wired or wireless transmission media such as local area networks, the Internet, and digital satellite broadcasting. In that case, the program can be received by the communication unit 914 and installed in the storage unit 913.
  • this program can be installed in advance in ROM 902 or storage unit 913.
  • the coding device 300 and the decoding device 400 have been described as application examples of the present technology, but the present technology can be applied to any configuration.
  • this technology is a transmitter or receiver (for example, a television receiver or mobile phone) for satellite broadcasting, cable broadcasting such as cable TV, distribution on the Internet, and distribution to terminals by cellular communication, or It can be applied to various electronic devices such as devices (for example, hard disk recorders and cameras) that record images on media such as optical disks, magnetic disks, and flash memories, and reproduce images from these storage media.
  • devices for example, hard disk recorders and cameras
  • a processor as a system LSI (Large Scale Integration) or the like (for example, a video processor), a module using a plurality of processors (for example, a video module), a unit using a plurality of modules (for example, a video unit)
  • a processor as a system LSI (Large Scale Integration) or the like
  • a module using a plurality of processors for example, a video module
  • a unit using a plurality of modules for example, a video unit
  • it can be implemented as a configuration of a part of the device, such as a set (for example, a video set) in which other functions are added to the unit.
  • this technology can be applied to a network system composed of a plurality of devices.
  • the present technology may be implemented as cloud computing that is shared and jointly processed by a plurality of devices via a network.
  • this technology is implemented in a cloud service that provides services related to images (moving images) to arbitrary terminals such as computers, AV (AudioVisual) devices, portable information processing terminals, and IoT (Internet of Things) devices. You may try to do it.
  • the system means a set of a plurality of components (devices, modules (parts), etc.), and it does not matter whether all the components are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and a device in which a plurality of modules are housed in one housing are both systems. ..
  • Systems, devices, processing units, etc. to which this technology is applied can be used in any field such as transportation, medical care, crime prevention, agriculture, livestock industry, mining, beauty, factories, home appliances, weather, nature monitoring, etc. .. Moreover, the use is arbitrary.
  • the "flag” is information for identifying a plurality of states, and is not only information used for identifying two states of true (1) or false (0), but also three or more states. It also contains information that can identify the state. Therefore, the value that this "flag” can take may be, for example, 2 values of 1/0 or 3 or more values. That is, the number of bits constituting this "flag” is arbitrary, and may be 1 bit or a plurality of bits.
  • the identification information (including the flag) is assumed to include not only the identification information in the bit stream but also the difference information of the identification information with respect to a certain reference information in the bit stream. In, the "flag” and “identification information” include not only the information but also the difference information with respect to the reference information.
  • various information (metadata, etc.) regarding the coded data may be transmitted or recorded in any form as long as it is associated with the coded data.
  • the term "associate" means, for example, to make the other data available (linkable) when processing one data. That is, the data associated with each other may be combined as one data or may be individual data.
  • the information associated with the coded data (image) may be transmitted on a transmission path different from the coded data (image).
  • the information associated with the coded data (image) may be recorded on a recording medium (or another recording area of the same recording medium) different from the coded data (image). Good.
  • this "association" may be a part of the data, not the entire data. For example, an image and information corresponding to the image may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part within the frame.
  • the embodiment of the present technology is not limited to the above-described embodiment, and various changes can be made without departing from the gist of the present technology.
  • the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
  • the configurations described above as a plurality of devices (or processing units) may be collectively configured as one device (or processing unit).
  • a configuration other than the above may be added to the configuration of each device (or each processing unit).
  • a 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 may have necessary functions (functional blocks, etc.) so that necessary information can be obtained.
  • each step of one flowchart may be executed by one device, or may be shared and executed by a plurality of devices.
  • the plurality of processes may be executed by one device, or may be shared and executed by a plurality of devices.
  • a plurality of processes included in one step can be executed as processes of a plurality of steps.
  • the processes described as a plurality of steps can be collectively executed as one step.
  • the processing of the steps for writing the program may be executed in chronological order in the order described in the present specification, or may be executed in parallel or in calls. It may be executed individually at the required timing such as when it is broken. That is, as long as there is no contradiction, the processing of each step may be executed in an order different from the above-mentioned order. Further, the processing of the step for writing this program may be executed in parallel with the processing of another program, or may be executed in combination with the processing of another program.
  • a plurality of technologies related to this technology can be independently implemented independently as long as there is no contradiction.
  • any plurality of the present technologies can be used in combination.
  • some or all of the techniques described in any of the embodiments may be combined with some or all of the techniques described in other embodiments. It is also possible to carry out a part or all of any of the above-mentioned techniques in combination with other techniques not described above.
  • the present technology can also have the following configurations. (1) Derived from the coded data of 3D data representing the points of the point cloud representing the object of the three-dimensional shape as a set of points and the 3D data obtained by decoding the coded data. An information processing device including a generator that generates a bit stream including control information that controls the number of points. (2) The information processing apparatus according to (1), wherein the 3D data includes vertex coordinates of a triangular plane and expresses the point as the triangular plane. (3) The information processing apparatus according to (2), wherein the point is derived as an intersection of the triangular plane and a vector in three axial directions perpendicular to each other.
  • control information includes sampling information that specifies an interval between the vectors.
  • sampling information specifies the interval between the vectors as an integer value.
  • sampling information specifies the interval between the vectors independently for each direction of the vectors.
  • (7) Further provided with a setting unit for setting the control information.
  • generation unit generates the bit stream including the coded data of the 3D data and the control information set by the setting unit.
  • the information processing apparatus sets the control information so as to limit the number of points derived from the 3D data to or less than an upper limit value depending on a profile or level.
  • the setting unit sets the control information so as to limit the number of the points derived from the 3D data to or less than the number of points of the point cloud before coding.
  • Information processing equipment Derived from the coded data of 3D data representing the points of the point cloud representing the object of the three-dimensional shape as a set of points and the 3D data obtained by decoding the coded data. An information processing method that generates a bit stream including control information that controls the number of points.
  • Control for controlling the number of 3D data in which the points in the point cloud, which decodes a bit stream and expresses a three-dimensional object as a set of points, are represented as surfaces, and the number of points derived from the 3D data.
  • a decoding unit that generates information
  • An information processing device including a derivation unit for deriving the points from the 3D data based on the control information.
  • the 3D data includes the coordinates of the vertices of the triangular plane, and represents the points as the triangular plane.
  • the information processing apparatus according to (11), wherein the derivation unit derives the point using the triangular plane indicated by the apex coordinates.
  • the information processing apparatus (13) The information processing apparatus according to (12), wherein the derivation unit derives the point as an intersection of the triangular plane and a vector in three axial directions perpendicular to each other.
  • the control information includes sampling information that specifies an interval between the vectors.
  • the information processing apparatus 13), wherein the derivation unit derives the point as an intersection of the triangular plane and the vector at an interval specified by the sampling information.
  • the sampling information is information for designating the interval between the vectors with an integer value.
  • the sampling information is information for designating the intervals between the vectors independently for each direction of the vectors.
  • sampling information is information for designating the interval between the vectors for each slice.
  • sampling information is stored in the data for each slice of the bit stream.
  • sampling information is stored in a parameter set of geometry data of the bitstream.
  • Control for controlling the number of 3D data in which the points in the point cloud, which decodes a bit stream and expresses a three-dimensional object as a set of points, are represented as surfaces, and the number of points derived from the 3D data. Generate information and An information processing method for deriving the points from the 3D data based on the control information.
  • 300 coding device 301 voxel generation unit, 302 position information coding unit, 303 position information decoding unit, 304 attribute information coding unit, 305 bit stream generation unit, 311 Octree generation unit, 312 mesh generation unit, 313 reversible coding Unit, 321 mesh shape restoration unit, 322 point generation unit, 323 recolor processing unit, 331 vector setting unit, 332 intersection determination unit, 333 auxiliary processing unit, 334 point number determination unit, 335 sampling interval setting unit, 400 decoding device, 401 Coded data extraction unit, 402 position information decoding unit, 403 attribute information decoding unit, 404 point cloud generation unit, 411 reversible decoding unit, 412 Octree decoding unit, 413 mesh shape restoration unit, 414 point generation unit, 421 vector setting unit, 422 intersection judgment unit, 423 auxiliary processing unit

Landscapes

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

Abstract

本開示は、復号して得られるポイント数を制御することができるようにする情報処理装置および方法に関する。 3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドのそのポイントを面として表現する3Dデータの符号化データと、その符号化データを復号して得られる3Dデータから導出されるポイントの数を制御する制御情報とを含むビットストリームを生成する。本開示は、例えば、情報処理装置、画像処理装置、符号化装置、復号装置、電子機器、情報処理方法、またはプログラム等に適用することができる。

Description

情報処理装置および方法
 本開示は、情報処理装置および方法に関し、特に、復号して得られるポイントクラウドのポイント数を制御することができるようにした情報処理装置および方法に関する。
 従来、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドデータ(Point cloud data)の符号化・復号の標準化がMPEG(Moving Picture Experts Group)で進められている(例えば、非特許文献1参照)。また、このポイントクラウドデータの符号化において、ボクセル内のポイントを三角形状の平面で表現するトライスープ(Trisoup)という手法が考えられた。さらに、そのトライスープが適用された符号化データの復号においてボクセル内のポイントを復元する際に、三角形状の平面と3軸方向に平行なベクトルとの交点をそのポイントとする方法が提案された(例えば、非特許文献2参照)。
"Information technology - MPEG-I (Coded Representation of Immersive Media) - Part 9: Geometry-based Point Cloud Compression", ISO/IEC 23090-9:2019(E) Ohji Nakagami, "PCC On Trisoup decode in G-PCC", ISO/IEC JTC1/SC29/WG11 MPEG2018/ m44706, October 2018, Macao, CN
 しかしながら、従来のトライスープでは、符号化の際に、復号して得られるポイントクラウドのポイント数を制御することができなかった。
 本開示は、このような状況に鑑みてなされたものであり、ポイントクラウドのポイントを面として表現して符号化する際に、その符号化データを復号して得られるポイントクラウドのポイント数を制御することができるようにするものである。
 本技術の一側面の情報処理装置は、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイントを面として表現する3Dデータの符号化データと、前記符号化データを復号して得られる前記3Dデータから導出される前記ポイントの数を制御する制御情報とを含むビットストリームを生成する生成部を備える情報処理装置である。
 本技術の一側面の情報処理方法は、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイントを面として表現する3Dデータの符号化データと、前記符号化データを復号して得られる前記3Dデータから導出される前記ポイントの数を制御する制御情報とを含むビットストリームを生成する情報処理方法である。
 本技術の他の側面の情報処理装置は、ビットストリームを復号し、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイントを面として表現する3Dデータと、前記3Dデータから導出される前記ポイントの数を制御する制御情報とを生成する復号部と、前記制御情報に基づいて、前記3Dデータから前記ポイントを導出する導出部とを備える情報処理装置である。
 本技術の他の側面の情報処理方法は、ビットストリームを復号し、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイントを面として表現する3Dデータと、前記3Dデータから導出される前記ポイントの数を制御する制御情報とを生成し、前記制御情報に基づいて、前記3Dデータから前記ポイントを導出する情報処理方法である。
 本技術の一側面の情報処理装置および方法においては、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドのそのポイントを面として表現する3Dデータの符号化データと、その符号化データを復号して得られる3Dデータから導出されるポイントの数を制御する制御情報とを含むビットストリームが生成される。
 本技術の他の側面の情報処理装置および方法においては、ビットストリームが復号され、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドのそのポイントを面として表現する3Dデータと、その3Dデータから導出されるポイントの数を制御する制御情報とが生成され、その制御情報に基づいて、その3Dデータからポイントが導出される。
従来のトライスープの概要について説明する図である。 サンプリング間隔の制御の例を説明する図である。 レベルによるポイント数の制限の例を示す図である。 ビットストリームの主な構成例を示す図である。 スライスについて説明する図である。 シンタックスの例を示す図である。 シンタックスの例を示す図である。 ポイント数の制御例を説明する図である。 シンタックスの例を示す図である。 ポイント数の制御例を説明する図である。 ポイント数の制御例を説明する図である。 ポイント数の制御例を説明する図である。 ポイント数の制御例を説明する図である。 シンタックスの例を示す図である。 シンタックスの例を示す図である。 符号化装置の主な構成例を示すブロック図である。 ポイント生成部の主な構成例を示すブロック図である。 符号化処理の流れの例を説明するフローチャートである。 ポイント生成処理の流れの例を説明するフローチャートである。 符号化装置の主な構成例を示すブロック図である。 ポイント生成部の主な構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 ポイント生成処理の流れの例を説明するフローチャートである。 ポイント生成処理の流れの例を説明するフローチャートである。 コンピュータの主な構成例を示すブロック図である。
 以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
 1.トライスープのポイント数制御
 2.第1の実施の形態(符号化装置)
 3.第2の実施の形態(復号装置)
 4.第3の実施の形態(ポイント生成処理の他の例)
 5.付記
 <1.トライスープのポイント数制御>
  <技術内容・技術用語をサポートする文献等>
 本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献等に記載されている内容や以下の非特許文献において参照されている他の文献の内容等も含まれる。
 非特許文献1:(上述)
 非特許文献2:(上述)
 つまり、上述の非特許文献に記載されている内容や、上述の非特許文献において参照されている他の文献の内容等も、サポート要件を判断する際の根拠となる。
  <ポイントクラウド>
 従来、点の位置情報や属性情報等により3次元構造を表すポイントクラウド(Point cloud)や、頂点、エッジ、面で構成され、多角形表現を使用して3次元形状を定義するメッシュ(Mesh)等の3Dデータが存在した。
 例えばポイントクラウドの場合、立体構造物(3次元形状のオブジェクト)を多数の点の集合として表現する。ポイントクラウドのデータ(ポイントクラウドデータとも称する)は、このポイントクラウドの各点の位置情報(ジオメトリデータとも称する)と属性情報(アトリビュートデータとも称する)とにより構成される。アトリビュートデータは任意の情報を含むことができる。例えば、各ポイントの色情報、反射率情報、法線情報等がアトリビュートデータに含まれるようにしてもよい。このようにポイントクラウドデータは、データ構造が比較的単純であるとともに、十分に多くの点を用いることにより任意の立体構造物を十分な精度で表現することができる。
  <ボクセルを用いた位置情報の量子化>
 このようなポイントクラウドデータはそのデータ量が比較的大きいので、符号化等によるデータ量を圧縮するために、ボクセル(Voxel)を用いた符号化方法が考えられた。ボクセルは、ジオメトリデータ(位置情報)を量子化するための3次元領域である。
 つまり、ポイントクラウドを内包する3次元領域をボクセルと称する小さな3次元領域に分割し、そのボクセル毎に、ポイントを内包するか否かを示すようにする。このようにすることにより、各ポイントの位置はボクセル単位に量子化される。したがって、ポイントクラウド(Point cloud)データをこのようなボクセルのデータ(ボクセル(Voxel)データとも称する)に変換することにより、情報量の増大を抑制する(典型的には情報量を削減する)ことができる。
  <Octree>
 さらに、ジオメトリデータについて、このようなボクセル(Voxel)データを用いてOctreeを構築することが考えられた。Octreeは、ボクセルデータを木構造化したものである。このOctreeの最下位のノードの各ビットの値が、各ボクセルのポイントの有無を示す。例えば、値「1」がポイントを内包するボクセルを示し、値「0」がポイントを内包しないボクセルを示す。Octreeでは、1ノードが8つのボクセルに対応する。つまり、Octreeの各ノードは、8ビットのデータにより構成され、その8ビットが8つのボクセルのポイントの有無を示す。
 そして、Octreeの上位のノードは、そのノードに属する下位ノードに対応する8つのボクセルを1つにまとめた領域のポイントの有無を示す。つまり、下位ノードのボクセルの情報をまとめることにより上位ノードが生成される。なお、値が「0」のノード、すなわち、対応する8つのボクセルが全てポイントを内包しない場合、そのノードは削除される。
 このようにすることにより、値が「0」でないノードからなる木構造(Octree)が構築される。つまり、Octreeは、各解像度のボクセルのポイントの有無を示すことができる。Octree化して符号化することにより、位置情報は、最高解像度(最上位層)から所望の階層(解像度)まで復号することにより、その解像度のポイントクラウドデータを復元することができる。つまり、不要な階層(解像度)の情報を復号せずに、容易に任意の解像度で復号することができる。換言するに、ボクセル(解像度)のスケーラビリティを実現することができる。
 また、上述のように値が「0」のノードを省略することにより、ポイントが存在しない領域のボクセルを低解像度化することができるので、さらなる情報量の増大の抑制(典型的には情報量の削減)を行うことができる。
  <アトリビュートデータ>
 アトリビュートデータの符号化方法としては、例えば、RAHT(Region Adaptive Hierarchical Transform)やLiftingと称する変換を用いる方法等が考えられた。これらの技術を適用することにより、ジオメトリデータのOctreeのように、アトリビュートデータを階層化することもできる。
  <ポイントクラウドの符号化>
 2019年9月現在、ポイントクラウドデータの符号化・復号の標準化がMPEG(Moving Picture Experts Group)で進められている。これまでには、例えば非特許文献1に記載のように、上述のようなボクセルやOctreeを用いる手法が提案された。
  <Trisoup>
 このようなポイントクラウドの符号化方法の1つとして、例えば、非特許文献2に記載のように、ボクセル(Voxel)内のポイントを三角形状の平面(三角面とも称する)で表現するトライスープ(Trisoup)という手法が考えられた。この手法では、ボクセル内に三角面を形成し、そのボクセル内の全ポイントが存在するものとして三角面の頂点座標のみが符号化される。そして、復号の際には、頂点座標から導出される三角面上に各ポイントを復元する。
 このようにすることにより、ボクセル内の複数のポイントを三角面(の頂点座標)のみで表現することができる。つまり、トライスープを適用することにより、例えばOctreeデータの所定の中間解像度以下を、このトライスープのデータ(三角面の頂点座標)に置き換えることができる。換言するに、最高解像度(Leaf)までボクセル化する必要がなくなる。したがって、情報量を低減させ、符号化効率を向上させることができる。
  <ポイント復元方法の改善>
 トライスープを適用した場合、復号の際、ポイントは三角面上に復元される。例えば、復号された頂点座標から三角面を導出し、その三角面上に十分な数のポイントを任意に配置し、必要な解像度でポイントを残すように一部のポイントを削除していく。各ボクセルにおいて、このように復号を行うことにより、所望の解像度のポイントクラウドを復元することができる。
 非特許文献2においては、このポイントの復元の方法として、ボクセル内に互いに垂直な3軸方向(X,Y,Z)に平行なベクトル(6方向)を配置し、そのベクトルが三角面と交差する点(交差点と称する)をポイントとする方法が提案された。
 まず、図1の例のように、符号化対象のデータを含むバウンディングボックス(Bounding box)の辺と、同じ方向および同じ長さを持つベクトルViが間隔dで生成される。図1においては、バウンディングボックス21内に存在する三角面22に対して、矢印23で示されるようなベクトルViが設定される。dは、バウンディングボックスをボクセル化する際の量子化サイズである。つまり、指定のボクセル解像度に対応する位置座標を開始原点とするベクトルViが設定される。
 次に、設定したベクトルVi(矢印23)と、デコードした三角面22(つまり三角Mesh)との交差判定が行われる。ベクトルViと三角形の面22とが交差する場合は、その交差点24の座標値が導出される。
 なお、このベクトルViの向きとして、互いに垂直な3軸方向(X,Y,Z)の各方向(バウンディングボックスの各辺に平行な方向)に対し、正負2つの向きを設定することができる。つまり、6種類の向きのベクトルViについて、それぞれ、交差判定を行うようにしてもよい。このように、より多くの向きで交差判定を行うことにより、より確実に交差点を検出することができる。
 なお、ベクトルViの開始点は、三角面の3つの頂点の範囲内に限定するようにしてもよい。このようにすることにより、処理するベクトルViの数を低減させることができるので、負荷の増大を抑制することができる(例えば、処理をより高速化することができる)。
 また、補助処理として、異なるベクトルまたは三角面により、交差点の座標値が重複した場合は、1点を残し削除を行うようにしてもよい。このように重複した点を除去することにより、不要な処理の増大を抑制し、負荷の増大を抑制することができる(例えば、処理をより高速化することができる)。
 また、補助処理として、交差点の座標値がバウンディングボックス(Bounding box)の外側になった場合、クリップ(Clip)処理によりその交差点の位置をバウンディングボックス内にクリップする(移動させる)ようにしてもよい。また、その交差点を削除するようにしてもよい。
 以上のように、求められた座標値を持つポイントを、デコード結果として出力する。このようにすることにより、三角面から1回の処理で入力解像度相当のボクセルデータを生成することができる。したがって、三角面からポイントクラウドを生成する際の負荷の増大を抑制することができる。
  <符号化時のポイント数の制御>
 しかしながら、従来のトライスープでは、符号化の際に、復号して得られるポイントクラウドのポイント数を制御することができなかった。
 例えば、プロファイルやレベルによりポイント数の上限が定められる場合、復号側においてその制約が守られる保証が無かった。そのため、復号処理の負荷の大きさを保証することができず、例えば、デコーダの性能に対して復号処理の負荷が大きすぎ、復号処理に遅延が生じたり、復号処理が破綻したりするおそれがあった。
 そこで、ポイントクラウドのポイントを面として表現して符号化する際に、その符号化データを復号して得られるポイントクラウドのポイント数を制御するようにする。
 例えば、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドのポイントを面として表現する3Dデータから導出されるポイントの数を制御する制御情報を、3Dデータを符号化する符号化側から、3Dデータの符号化データを復号する復号側に供給するようにする。
 このようにすることにより、3Dデータの符号化データの復号の際に、その制御情報に基づいて3Dデータからポイントを導出し、ポイントクラウドを復元することができる。したがって、復号して得られるポイントクラウドのポイント数を符号化側において制御することができる。
 この制御情報は、どのように符号化側から復号側に供給するようにしてもよい。例えば、この制御情報が、3Dデータの符号化データとは異なるデータとして、符号化側から復号側に供給されるようにしてもよい。その場合、3Dデータの復号の際に制御情報を利用することができるように、制御情報と3Dデータとが互いに関連付けられていればよい。
 また、この制御情報と3Dデータの符号化データとが1つのビットストリームに含められて、符号化側から復号側に供給されるようにしてもよい。つまり、符号化側において、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドのそのポイントを面として表現する3Dデータの符号化データと、その符号化データを復号して得られる3Dデータから導出されるポイントの数を制御する制御情報とを含むビットストリームを生成するようにしてもよい。
 例えば、情報処理装置において、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドのそのポイントを面として表現する3Dデータの符号化データと、その符号化データを復号して得られる3Dデータから導出されるポイントの数を制御する制御情報とを含むビットストリームを生成する生成部を備えるようにしてもよい。
 このようにすることにより、ポイントクラウドのポイントを面として表現して符号化する際に、その符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。
 また、復号側において、ビットストリームを復号し、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドのそのポイントを面として表現する3Dデータと、その3Dデータから導出されるポイントの数を制御する制御情報とを生成し、その制御情報に基づいて、3Dデータからポイントを導出するようにしてもよい。
 例えば、情報処理装置において、ビットストリームを復号し、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドのそのポイントを面として表現する3Dデータと、その3Dデータから導出されるポイントの数を制御する制御情報とを生成する復号部と、その制御情報に基づいて、3Dデータからポイントを導出する導出部とを備えるようにしてもよい。
 このようにすることにより、符号化側の制御に従って3Dデータからポイントを導出することができる。つまり、符号化側が、符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。
 なお、ポイントを表現する面は、どのような面であってもよく、平面であってもよいし、曲面であってもよい。また、平面でポイントを表現する場合、その平面の形状は任意である。例えば、多角形状であってもよい。多角形状の平面は、例えば、各頂点の座標(頂点座標)により表すことができる。また、この多角形は、例えば、三角形であってもよいし、四角形であってもよいし、5角形以上の多角形であってもよい。三角形状の平面(三角面とも称する)によってポイントを表現することにより、3つの頂点座標によりポイントを表現することができるので、4角形以上の多角形状の平面でポイントを表現する場合よりも、情報量の増大を抑制することができる。
 また、ポイントを面で表現する方法は、任意の領域毎に行うことができる。例えば、所定の解像度のボクセル毎に、ポイントを面で表現するようにしてもよい。つまり、その所定の中間解像度のボクセル内に面を形成し、そのボクセル内に位置する最高解像度のポイントを全てその面で表現するようにしてもよい。このようにすることにより、例えば、ポイントクラウドを解像度に応じて階層化して符号化する場合の、情報量が顕著に増大する高解像度(下位層)部分を面で表現することができ、その情報量の増大を抑制することができる。
 つまり、ポイントクラウドのポイントを面で表現する3Dデータとして、非特許文献2等に記載のトライスープを適用してもよい。また、その非特許文献2に記載のように、復号側において、ポイントが、三角面と、互いに垂直な3軸方向のベクトルとの交点として導出されるようにしてもよい。このような方法を適用することにより、より容易にポイントを導出することができる。
 以下においては、非特許文献2等に記載のようなトライスープを適用する場合について説明する。つまり、ポイントクラウドのポイントが三角面を用いて表現されて符号化され、復号の際に、その三角面と、互いに垂直な3軸方向のベクトルとの交点としてポイントが導出される場合を例に説明する。
 上述の制御情報は、結果的にトライスープを適用した3Dデータ(トライスープデータとも称する)から導出されるポイントの数を制御することができれば、何をどのように制御する情報であってもよい。例えば、上述した互いに垂直な3軸方向のベクトルの間隔を指定するサンプリング情報を含むようにしてもよい。図1を参照して説明したように、互いに垂直な3軸方向のベクトルViは、間隔dで配置される。この間隔dを指定するようにしてもよい。
 例えば、図2のAに示されるように、間隔d=1とする場合に、ベクトルVi(矢印23)と三角面22との交差点24が6個得られるとする。この間隔dを2倍(d=2)とすると、例えば、図2のBの例のように、得られる交差点24の数が低減する(この例の場合2個)。つまり、間隔dを制御することにより、容易に復元されるポイントの数を制御することができる。
  <レベルによるポイント数の制限>
 例えば、プロファイルやレベルによりポイント数の上限を定めるようにしてもよい。例えば、図3に示されるように、1スライス当たりの最大ポイント数がレベル毎に定められるようにしてもよい。図3の例の場合、レベル0では、1スライス当たりのポイント数が最大100,000個に制限されている。レベル1では、1スライス当たりのポイント数が最大1,000,000個に制限されている。レベル2では、1スライス当たりのポイント数が最大10,000,000個に制限されている。同様にして、各レベルの最大ポイント数が設定され、レベル255では、1スライス当たりのポイント数が無制限(unlimited)とされている。
 上述のような制御情報により、復号側において復元されるポイント数を符号化側において制御することができる。つまり、上述のような制御情報により、復号側において復元されるポイント数を符号化側において制限することができる。例えば、図2の例の場合、ベクトルViの間隔dを拡げることにより、復元されるポイントの数を低減させることができる。
 したがって、図3の例のように、プロファイルやレベルによりポイント数の上限が定められる場合、上述のような制御情報を適用することにより、このプロファイルやレベルによる制約を守れるようにすることができる。
  <スライスとタイル>
 ここで、ポイントクラウドの符号化・復号におけるスライス(slice)とタイル(tile)について図4を参照して説明する。図4においては、説明の便宜上、3次元領域を2次元領域として説明する。
 タイル(tile)は、ポイントクラウドが存在する3次元領域を分割するデータ単位である。例えば、図4のAに示されるように、ある領域110をその位置に応じて複数の部分領域111に分割した場合の、部分領域111をタイルと称する。
 これに対してスライス(slice)は、ポイントクラウドを複数に分割するデータ単位である。例えば、図4のBに示されるように、ある領域120に、複数のポイント121が存在するとする。図4のCや図4のDに示されるように、この複数のポイント121をポイント121Aとポイント121Bの2つのグループに分けたそれぞれをスライスと称する。つまり、図4の場合、領域120のポイントクラウド(図4のB)がスライス120A(図4のC)とスライス120B(図4のD)とに分けられている。
 このように、領域に依らずポイント群を分割するデータ単位である。したがって、図4の例のように複数のスライス同士で領域が重複し得る。典型的には、1つの領域のポイントクラウドが複数のスライスに分割される。例えば、タイル内のポイントクラウドを複数のスライスに分割することができる。
 各スライスのポイントクラウドは、互いに独立に符号化・復号することができる。したがって例えば各スライスのポイントクラウドは、互いに並列に処理を行うことができる。このように、スライスは、所定の領域内のポイントクラウドの並列処理を容易にするためのデータ単位である。
  <スライス毎の制御>
 上述の制御情報は、任意のデータ単位毎に設定されるようにしてもよい。例えば、このスライス毎に設定されるようにしてもよい。例えば、制御情報(サンプリング情報)が、ベクトルViの間隔dをスライス毎に指定するようにしてもよい。上述のように、ポイントクラウドの符号化・復号はスライス毎に独立しているので、このスライス毎にポイント数の制御を行うことにより、その制御をより容易化することができる。例えば、間隔dの値を切り替える場合、その切り替えを符号化・復号が独立したタイミングで行うことができるので、間隔dが変わることによる他の処理への影響を考慮する等の煩雑な処理が不要になる。
  <ビットストリームの構成>
 以上のような制御情報を含むビットストリームの主な構成例を図5に示す。なお、制御情報(サンプリング情報)は、復元されるポイント数をスライス毎に制御する(ベクトルViの間隔dをスライス毎に指定する)ものとする。図5の一番上の段に示されるように、このポイントクラウドのビットストリーム(GPCC bitstream syntax)は、シーケンスパラメータセット(SequenceParameterSet)、ジオメトリパラメータセット(GeometryParameterSet)、アトリビュートパラメータセット(AttributeParameterSet)、タイルインベントリ(TileInventory)、ゼネラルジオメトリスライスビットストリーム(general_geometry_slice_bitstream)、およびゼネラルアトリビュートスライスビットストリーム(general_attribute_slice_bitstream)を含み得る。
 シーケンスパラメータセットは、このシーケンスに関するパラメータを含み得る。ジオメトリパラメータセットは、このシーケンスのジオメトリデータに関するパラメータを含み得る。アトリビュートパラメータセットは、おのシーケンスのアトリビュートデータに関するパラメータを含み得る。タイルインベントリは、タイルに関する情報を含み得る。ゼネラルジオメトリスライスビットストリームは、ジオメトリデータのスライス毎のビットストリームを含み得る。ゼネラルアトリビュートスライスビットストリームは、アトリビュートデータのスライス毎のビットストリームを含み得る。
 また、図5の上から2番目の段に示されるように、ゼネラルジオメトリスライスビットストリームは、ジオメトリスライスヘッダ(geometry_slice_header)とジオメトリスライスデータ(geometry_slice_data)とを含み得る。ジオメトリスライスヘッダは、ジオメトリデータの各スライスに関するメタデータ等を含み得る。ジオメトリスライスデータは、ジオメトリデータの各スライスの符号化データを含み得る。
 さらに、図5の上から3番目の段に示されるように、ジオメトリスライスヘッダは、ジオメトリパラメータセットID(gsh_goemetry_parameter_set_id)、タイルID(gsh_tile_id)、スライスID(gsh_slice_id)、大きさに関する情報(gsh_box_log2_scale)位置に関する情報(gsh_box_origin_x, gsh_box_origin_y, gsh_box_origin_z)、ノードサイズに関する情報(gsh_log2_max_nodesize)、およびポイント数に関する情報(gsh_num_points)を含み得る。
 ジオメトリパラメータセットIDは、このジオメトリスライスヘッダに対応するジオメトリパラメータセットの識別情報を含み得る。タイルIDは、各スライスに対応するタイルの識別情報を含み得る。スライスIDは、各スライスの識別情報を含み得る。大きさに関する情報は、各スライスのボックス(3次元領域)の大きさに関する情報を含み得る。位置に関する情報は、例えば、各スライスのボックスの基準位置の座標等、各スライスのボックスの位置に関する情報を含み得る。例えば、gsh_box_origin_xは、各スライスのボックスの基準位置のX座標を含み得る。gsh_box_origin_yは、各スライスのボックスの基準位置のY座標を含み得る。gsh_box_origin_zは、各スライスのボックスの基準位置のZ座標を含み得る。なお、X軸、Y軸、およびZ軸は、互いに垂直な3軸であり、X座標はX軸方向の座標を示し、Y座標はY軸方向の座標を示し、Z座標はZ軸方向の座標を示す。また、ノードサイズに関する情報は、各スライスのノードサイズの最大値を示す情報を含み得る。
 ポイント数に関する情報は、各スライスに含まれるポイント数を示す情報を含み得る。
 また、図5の上から4番目の段に示されるように、ジオメトリスライスデータは、ジオメトリノード(geometry_node)と、ジオメトリトライスープデータ(geometry_trisoup_data)とを含み得る。ジオメトリノードは、Octreeデータの符号化データを含み得る。ジオメトリトライスープデータは、トライスープデータの符号化データを含み得る。
 さらに、図5の上から5番目の段に示されるように、ジオメトリトライスープデータは、セグメント数に関する情報(num_unique_segments)、セグメントのインジケータ(segment_indicators)、頂点数に関する情報(num_vertices)、頂点座標に関する情報(vertex_positions)、およびサンプリング情報(sampling_value)を含む。
 セグメント数に関する情報は、このスライスに含まれるセグメントのインジケータの数を示す情報を含み得る。セグメントのインジケータは、図5の上から7番目の段に示されるように、各セグメントのインジケータを含み得る。頂点数に関する情報は、このスライスに含まれる頂点座標の数を示す情報を含み得る。頂点座標に関する情報は、図5の上から6番目の段に示されるように、各頂点の座標を示す情報を含み得る。
 サンプリング情報は、上述のベクトルViの間隔dを指定する情報を含む制御情報である。この間隔dは、復号の際に三角面から復元されるポイント数が、上述の「ポイント数に関する情報」において指定されるポイント数以下となるように設定されている。
 図6および図7は、ゼネラルジオメトリスライスビットストリーム(general_geometry_slice_bitstream)のシンタックスのより具体的な例を示す図である。
 図6のAに、ゼネラルジオメトリスライスビットストリームに含まれるジオメトリスライスヘッダ(geometry_slice_header)の例を示す。図6のAに示されるように、ジオメトリスライスヘッダには、図5の上から3番目の段に示したように、ジオメトリパラメータセットID(gsh_goemetry_parameter_set_id)、タイルID(gsh_tile_id)、スライスID(gsh_slice_id)、大きさに関する情報(gsh_box_log2_scale)位置に関する情報(gsh_box_origin_x, gsh_box_origin_y, gsh_box_origin_z)、ノードサイズに関する情報(gsh_log2_max_nodesize)、およびポイント数に関する情報(gsh_num_points)等の各種シンタックス要素が記述され得る。
 図6のBに、ゼネラルジオメトリスライスビットストリームに含まれるジオメトリスライスデータ(geometry_slice_data)の例を示す。図6のBに示されるように、ジオメトリスライスデータには、図5の上から4番目の段に示したように、ジオメトリノード(geometry_node(depth, nodeIdx, xN, yN, zN))と、ジオメトリトライスープデータ(geometry_trisoup_data())とが記述され得る。
 従来のジオメトリトライスープデータの例を図6のCに示す。図6のCに示されるように、従来のジオメトリトライスープデータには、num_unique_segments、segment_indicator[i]、num_vertices、vertex_position[i]等のシンタックス要素が記述され得る。
 このジオメトリトライスープデータに、図5の上から5番目の段に示されるサンプリング情報(sampling_value)を記述するようにする。図7にその場合のジオメトリトライスープデータの例を示す。図7の例においては、このサンプリング情報がシンタックス要素「trisoup_sampling_param」として記述されている。つまり、このtrisoup_sampling_paramは、ベクトルViの間隔dを指定するシンタックス要素である。この場合、ベクトルViのX軸方向の間隔、Y軸方向の間隔、およびZ軸方向の間隔が全てこの値dとなるように、ベクトルViが配置される。
 このように、復元されるポイント数をスライス毎に制御する制御情報をスライスのデータ(例えばジオメトリトライスープデータ)に格納することにより、この情報を利用して復号を行う復号側において、処理対象のスライスに対応する制御情報をより容易に特定することができる。したがって、復号処理をより容易化し、復号の負荷の増大を抑制することができる。
  <d値>
 なお、このような復元されるポイント数を制御する制御情報が、サンプリング情報のようにベクトルViの間隔dを指定する場合、この間隔dを整数値で指定するようにしてもよいし、小数値で指定するようにしてもよい。制御情報が間隔dを整数値で指定する場合の方が、復号処理を容易化することができる。ただし、制御情報が間隔dを小数値で指定する場合の方が、ポイント数をより細かく制御することができる。
  <方向毎に独立した制御>
 また、このベクトルViの間隔dは、ベクトルの方向(互いに垂直な3軸方向(x,y,z方向))毎に互いに独立して制御することができるようにしてもよい。換言するに、各ベクトルVi603の開始原点の、互いに垂直な3軸方向(x,y,z方向)の間隔が、その方向毎に互いに独立していてもよい。
 図8は、ボクセルの様子を2次元平面化して説明する図である。図8において、ボクセル201に三角面202が形成されている。例えば、ボクセル201の図中縦方向および図中横方向の実線203の交点に、紙面に対して垂直方向のベクトルViを配置すると、そのベクトルViと三角面202との交差点204は、図8のようになる。つまり、交差点204の図中縦方向の間隔は、図中横方向の間隔の2倍広い。つまり、ベクトルViの間隔dは、図中縦方向の間隔は、図中横方向の間隔の2倍広い。このように、ベクトルViの間隔dを軸方向毎に互いに独立に設定することにより、全軸方向共通の値により制御する場合よりも、ポイント数をより細かく制御することができる。
 実際には、ボクセルは、3次元領域であるので、ベクトルViの間隔dは、X方向、Y方向、Z方向の3方向それぞれについて、互いに独立に設定するようにしてもよい。つまり、サンプリング情報が、X軸方向の間隔dX、Y軸方向の間隔dY、Z軸方向の間隔dZを互いに独立に設定してもよい。
 その場合のジオメトリトライスープデータのシンタックスの例を図9に示す。図9の例においては、サンプリング情報として、シンタックス要素「trisoup_sampling_param_x」、「trisoup_sampling_param_y」、「trisoup_sampling_param_z」が記述されている。この「trisoup_sampling_param_x」は、ベクトルViのX軸方向の間隔を指定するシンタックス要素である。「trisoup_sampling_param_y」は、ベクトルViのY軸方向の間隔を指定するシンタックス要素である。「trisoup_sampling_param_z」は、ベクトルViのZ軸方向の間隔を指定するシンタックス要素である。つまり、この場合、サンプリング情報は、ベクトルViのX軸方向、Y軸方向、Z軸方向のそれぞれの軸方向の間隔を互いに独立に設定することができる。
  <間隔以外の制御>
   <三角面内部のポイントの優先的削除>
 なお、復元されるポイント数の制御方法は、任意であり、上述のサンプリング情報の例のような、ベクトルViの間隔の制御以外であってもよい。例えば、ポイント数を低減させる場合に、三角面とベクトルViの交差点の内、三角面の内側部分(三角面の各辺から遠い部分)の交差点が優先的に削除されるようにしてもよい。例えば、制御情報が、三角面の内側部分の交差点が優先的に削除される動作モードを指定することができるようにしてもよい。その場合、復号側においては、その制御情報に基づいてその動作モードが選択され、三角面の内側部分の交差点を優先的に削除するように処理が行われる。
 このようにすることにより、三角面の各辺の周辺の解像度を、他の部分よりも向上させることができる。つまりポイントクラウドデータにおいて、三角面の各辺の構成をより正確に表現することができる。したがって、この三角面により表現される3次元構造を、ポイントクラウドデータにおいてより正確に表現することが可能になる。
   <ポイントの追加>
 また、ベクトルViと三角面との交差点に位置しないポイントを生成し、ポイントクラウドデータに含めるようにしてもよい。例えば、図10において、ボクセル201の図中縦方向および図中横方向の実線203の交点に、紙面に対して垂直方向のベクトルViが配置されるとする。この場合において、図10に示されるように、三角面202と交差しないベクトルViの、三角面202の各辺と近似する位置にポイント221(白丸)が生成され、ポイントクラウドデータに含められるようにしてもよい。なお、ポイントを生成する位置の判定方法(各辺からの近似点の判定方法)は、任意である。
 例えば、制御情報が、このようにベクトルViと三角面の各辺とが近似する位置にポイントを復元する動作モードを指定することができるようにしてもよい。その場合、復号側においては、その制御情報に基づいてその動作モードが選択され、ベクトルViと三角面の各辺とが近似する位置にポイントを復元するように処理が行われる。
 このようにすることにより、三角面の各辺の周辺の解像度を、他の部分よりも向上させることができる。つまりポイントクラウドデータにおいて、三角面の各辺の構成をより正確に表現することができる。したがって、この三角面により表現される3次元構造を、ポイントクラウドデータにおいてより正確に表現することが可能になる。
   <開始原点の位置の制御>
 また、ベクトルViの開始原点の位置を制御することができるようにしてもよい。例えば、図11の場合、紙面に対して垂直な方向のベクトルViは、直線203同士の交点、すなわち、図中水平方向の位置が0、2、4、6、8のいずれかであり、かつ、図中垂直方向の位置が0、2、4、6、8のいずれかである位置に配置される。したがって、図11に示されるように、ベクトルViと三角面202との交差点204は、8個形成される。
 これに対して、図12の場合、紙面に対して垂直な方向のベクトルViは、直線203同士の交点、すなわち、図中水平方向の位置が1、3、5、7のいずれかであり、かつ、図中垂直方向の位置が0、2、4、6、8のいずれかである位置に配置される。したがって、図12に示されるように、ベクトルViと三角面202との交差点204は、6個形成される。
 このようにベクトルViの位置を変えることにより、三角面との交差点の数を変えることができる。つまり、ベクトルViの位置を制御することにより、復元されるポイント数を制御することができる。
 例えば、制御情報が、このようにベクトルViの位置(ベクトルViの開始原点の位置)を指定することができるようにしてもよい。例えば、制御情報がベクトルViの位置を指定する情報を含むようにしてもよい。その場合、復号側においては、その制御情報に基づいて指定された位置にベクトルViが配置され、そのベクトルViと三角面との交差点が導出される。
 このようにすることにより、ポイントクラウドの解像度を変更させずにポイント数を制御することができる。これにより、ポイント数のより細かな制御が可能になる。
   <交差点の一部においてポイント生成>
 なお、ベクトルViと三角面との交差点の一部においてポイントを生成するようにしてもよい。換言するに、交差点であってもポイントを生成しなくてもよい。つまり、ポイントを生成する交差点の数を低減させることにより、ポイントクラウドの低解像度化を実現する(すなわち、解像度のスケーラビリティを実現する)ようにしてもよい。
 ポイントを生成する(またはポイントを生成しない)交差点の選択方法は任意である。例えば、図13に示されるように、千鳥状に(3軸方向のそれぞれについて1つ置きの交差点において)ポイントを生成するようにしてもよい。
 例えば、制御情報が、このように交差点の内のいずれにおいてポイントを生成するかを指定することができるようにしてもよい。例えば、制御情報が、ポイントを生成する交差点のパタン(例えば千鳥状等)を指定する情報を含むようにしてもよい。その場合、復号側においては、その制御情報に基づいて、導出された交差点の内の、指定されたパタンに相当する位置の交差点にポイントが復元される。
 このようにすることにより、ベクトルViの間隔(またはベクトルViの数)に依らずに、復元されるポイント数を制御することができる。したがって、ポイント数のより多様な制御が可能になる。
  <組み合わせ>
 本実施の形態において上述した各手法は、任意の複数の手法を組み合わせて適用することができる。
  <方法の選択>
 また、本明細書において上述した各手法の一部または全部の中から、所望の手法(またはその組み合わせ)が選択され、適用されるようにしてもよい。その場合、その選択方法は任意である。例えば、全ての適用パタンを評価し、最善を選択するようにしてもよい。このようにすることにより、3次元構造等に最も適した手法によりポイントクラウドデータを生成することができる。
  <制御情報の格納位置>
 図5や図7においては、制御情報をスライスのデータに含めるように説明したが、ビットストリームにおける制御情報の格納位置は、任意であり、上述の例に限定されない。例えば、図14に示されるように、ジオメトリパラメータセット(geometry_parameter_set)に制御情報を格納するようにしてもよい。
 図14の例の場合、スライス毎に設定される制御情報(trisoup_sampling_scale)が、このジオメトリパラメータセットに格納される。つまり、全スライスの制御情報がこのジオメトリパラメータセットに格納される。
 したがって、復号側においては、このジオメトリパラメータセットを参照することにより、容易に全てのスライスの制御情報を得ることができる。
 また、例えば、図15に示されるように、シーケンスパラメータセット(seq_parameter_set)に制御情報を格納するようにしてもよい。
 図15の例の場合、スライス毎に設定される制御情報(trisoup_sampling_scale)が、このシーケンスパラメータセットに格納される。つまり、全スライスの制御情報がこのシーケンスパラメータセットに格納される。
 なお、この制御情報が、ビットストリームの複数の位置に格納されるようにしてもよい。例えば、この制御情報が、ジオメトリトライスープデータとジオメトリパラメータセットとシーケンスパラメータセットとに格納されるようにしてもよい(図7、図14、図15)。その場合、より下位のデータ単位に格納されている制御情報が優先的に適用されるようにしてもよい。例えば、処理対象のスライスに対応する制御情報が存在する場合、その制御情報が優先的に適用され、存在しない場合は、ジオメトリパラメータセットに格納されている制御情報が適用されるようにしてもよい。
 <2.第1の実施の形態>
  <符号化装置>
 図16は、本技術を適用した画像処理装置の一態様である符号化装置の構成の一例を示すブロック図である。図16に示される符号化装置300は、ポイントクラウドのような3Dデータを符号化する装置である。この符号化において、符号化装置300は、ポイントクラウドを、ボクセル、Octree、トライスープ等の手法を用いて符号化する。また、符号化装置300は、その符号化の際に、<1.トライスープのポイント数制御>において上述したように、符号化データを復号して得られるポイントクラウドのポイント数を制御する。例えば、符号化装置300は、トライスープの三角面から導出されるポイントの数を制御する制御情報を生成し、それを、そのトライスープの符号化データを復号する復号側に供給する。
 その際、符号化装置300は、<1.トライスープのポイント数制御>において上述した各種手法を適用することができる。
 なお、図16においては、処理部やデータの流れ等の主なものを示しており、図16に示されるものが全てとは限らない。つまり、符号化装置300において、図16においてブロックとして示されていない処理部が存在したり、図16において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、符号化装置300内の処理部等を説明する他の図においても同様である。
 図16に示されるように、符号化装置300は、ボクセル生成部301、位置情報符号化部302、位置情報復号部303、属性情報符号化部304、およびビットストリーム生成部305を有する。
 ボクセル生成部301は、ポイントクラウドのボクセル化に関する処理を行う。例えば、ボクセル生成部301は、符号化装置300に入力されるポイントクラウドデータを取得することができる。また、ボクセル生成部301は、その取得したポイントクラウドデータのジオメトリデータに基づいて、そのポイントクラウドを含む領域に対してバウンディングボックスを設定することができる。さらに、ボクセル生成部301は、そのバウンディングボックスを分割し、ボクセルを設定することができる。このボクセルの設定により、ポイントクラウドデータのジオメトリデータが量子化される。ボクセル生成部301は、このようにして生成したボクセルデータを位置情報符号化部302に供給することができる。
 位置情報符号化部302は、ジオメトリデータ(位置情報)の符号化に関する処理を行う。例えば、位置情報符号化部302は、ボクセル生成部301から供給されるボクセルデータを取得することができる。また、位置情報符号化部302は、その取得したボクセルデータを符号化し、ジオメトリデータの符号化データを生成することができる。この符号化の詳細については後述する。位置情報符号化部302は、生成したジオメトリデータの符号化データをビットストリームに供給することができる。また、位置情報符号化部302は、中間データ(可逆符号化前のジオメトリデータ)を位置情報復号部303に供給することができる。
 位置情報復号部303は、ジオメトリデータの復号に関する処理を行う。例えば、位置情報復号部303は、位置情報符号化部302から供給される中間データ(可逆符号化前のジオメトリデータ)を取得することができる。また、位置情報復号部303は、符号化装置300に入力されるポイントクラウドデータを取得することができる。さらに、位置情報復号部303は、取得した中間データを復号し、ポイントを復元することができる。この復号の詳細については後述する。また、位置情報復号部303は、ポイントを復元したジオメトリデータと取得したポイントクラウドデータのアトリビュートデータとを用いてリカラー処理を行い、ジオメトリデータに合わせるようにアトリビュートデータを更新することができる。さらに、位置情報復号部303は、そのジオメトリデータとアトリビュートデータとを属性情報符号化部304に供給することができる。また、位置情報復号部303は、復号の際に復元されるポイントの数を制御する制御情報を生成し、ビットストリーム生成部305に供給することができる。
 属性情報符号化部304は、属性情報の符号化に関する処理を行う。例えば、属性情報符号化部304は、位置情報復号部303から供給されるジオメトリデータとアトリビュートデータとを取得することができる。また、属性情報符号化部304は、そのジオメトリデータを用いて、そのアトリビュートデータ(属性情報)を符号化し、アトリビュートデータの符号化データを生成することができる。このアトリビュートデータの符号化方法は任意である。さらに、属性情報符号化部304は、生成したアトリビュートデータの符号化データをビットストリーム生成部305に供給することができる。
 ビットストリーム生成部305は、ビットストリームの生成に関する処理を行う。例えば、ビットストリーム生成部305は、位置情報符号化部302から供給されるジオメトリデータの符号化データを取得することができる。また、ビットストリーム生成部305は、属性情報符号化部304から供給されるアトリビュートデータの符号化データを取得することができる。さらに、ビットストリーム生成部305は、位置情報復号部303から供給される制御情報を取得することができる。ビットストリーム生成部305は、それらのジオメトリデータの符号化データ、アトリビュートデータの符号化データ、および制御情報を含むビットストリームを生成することができる。ビットストリーム生成部305は、生成したビットストリームを符号化装置300の外部に出力することができる。
 例えば、ビットストリーム生成部305は、そのビットストリームを、所定の通信媒体を介して他の装置に送信することができる。また、ビットストリーム生成部305は、そのビットストリームを、所定の記憶媒体に記憶することができる。このように符号化装置300から出力されたビットストリームは、例えば、通信媒体や記憶媒体を介して、そのビットストリームを復号する復号側の装置に供給される。
   <位置情報符号化部>
 位置情報符号化部302は、図16に示されるように、例えば、Octree生成部311、メッシュ生成部312、および可逆符号化部313を有する。
 Octree生成部311は、Octreeの生成に関する処理を行う。例えば、Octree生成部311は、ボクセル生成部301から供給されるボクセルデータを取得することができる。また、Octree生成部311は、そのボクセルデータを用いてOctreeを構築し、Octreeデータを生成することができる。Octree生成部311は、生成したOctreeデータをメッシュ生成部312に供給することができる。
 メッシュ生成部312は、三角面を用いてポイントクラウドのポイントを表現するトライスープデータの生成に関する処理を行う。例えば、メッシュ生成部312は、Octree生成部311から供給されるOctreeデータを取得することができる。また、メッシュ生成部312は、そのOctreeデータの所定の解像度以下のノード(ポイント)を三角面で表現するトライスープデータを生成することができる。さらに、メッシュ生成部312は、生成したトライスープデータとOctreeデータとからなるジオメトリデータを可逆符号化部313に供給することができる。また、メッシュ生成部312は、そのジオメトリデータを位置情報復号部303に供給することができる。
 可逆符号化部313は、ジオメトリデータの可逆符号化に関する処理を行う。例えば、可逆符号化部313は、メッシュ生成部312から供給されるジオメトリデータを取得することができる。また、可逆符号化部313は、取得したジオメトリデータを可逆符号化し、ジオメトリデータの符号化データを生成することができる。さらに、可逆符号化部313は、生成したジオメトリデータの符号化データをビットストリーム生成部305に供給することができる。
   <位置情報復号部>
 位置情報復号部303は、図16に示されるように、例えば、メッシュ形状復元部321、ポイント生成部322、およびリカラー処理部323を有する。
 メッシュ形状復元部321は、トライスープデータからの三角面の復元に関する処理を行う。例えば、メッシュ形状復元部321は、位置情報符号化部302(メッシュ生成部312)から供給されるジオメトリデータを取得することができる。このジオメトリデータは、Octreeデータとトライスープデータとにより構成される。また、メッシュ形状復元部321は、そのジオメトリデータのトライスープデータに基づいて各三角面を復元することができる。トライスープデータには、三角面の頂点座標が含まれており、メッシュ形状復元部321は、その頂点座標を用いて三角面を復元することができる。さらに、メッシュ形状復元部321は、復元した三角面を有するジオメトリデータをポイント生成部322に供給することができる。
 ポイント生成部322は、ポイントの生成に関する処理を行う。例えば、ポイント生成部322は、メッシュ形状復元部321から供給される、三角面を有するジオメトリデータを取得することができる。また、ポイント生成部322は、そのジオメトリデータの三角面を用いてポイントを生成(復元)し、ポイントクラウドデータを生成(復元)することができる。その際、ポイント生成部322は、<1.トライスープのポイント数制御>において説明した各種方法を適宜適用してポイントを生成することができる。例えば、ポイント生成部322は、ポイントが所定の制限値を超えないように(例えば、プロファイルやレベルにおける制約を守るように)、ポイントを生成することができる。さらに、ポイント生成部322は、復元したポイントを含むポイントクラウドデータのジオメトリデータをリカラー処理部323に供給することができる。
 また、ポイント生成部322は、復号において復元されるポイントの数を制御する制御情報を生成することができる。その際、ポイント生成部322は、<1.トライスープのポイント数制御>において説明した各種方法を適宜適用して制御情報を生成することができる。
 例えば、ポイント生成部322は、復号の際に復元されるポイントの数が所定の制限値を超えないように、そのポイント数を制御する制御情報を生成することができる。例えば、ポイント生成部322は、復号の際に復元されるポイントの数がプロファイルやレベルにおける制約を守るように(つまり、ポイント数をプロファイルまたはレベルによる上限値以下に制限するように)、制御情報を生成することができる。また、例えば、ポイント生成部322は、復号の際に復元されるポイントの数を、符号化装置300に入力されるポイントクラウドデータのポイント数(つまり、符号化前のポイントクラウドのポイント数)以下に制限するように、制御情報を生成することができる。
 さらに、ポイント生成部322は、生成した制御情報をビットストリーム生成部305に供給することができる。
 リカラー処理部323は、リカラー処理に関する処理を行う。例えば、リカラー処理部323は、ポイント生成部322から供給されるジオメトリデータを取得することができる。また、リカラー処理部323は、符号化装置300に入力されるポイントクラウドデータを取得することができる。リカラー処理部323は、ポイント生成部322から取得したジオメトリデータに、符号化装置300の外部から取得したポイントクラウドデータのアトリビュートデータを合わせる処理であるリカラー処理を行うことができる。このリカラー処理の方法は任意である。さらに、リカラー処理部323は、このリカラー処理の結果、すなわち、ジオメトリデータと、そのジオメトリデータに対応させたアトリビュートデータとを属性情報符号化部304に供給することができる。
 なお、符号化装置300のこれらの処理部(ボクセル生成部301乃至ビットストリーム生成部305)は、それぞれ、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
 以上のように、ビットストリーム生成部305が、ポイント生成部322において<1.トライスープのポイント数制御>において説明した各種方法を適宜適用して生成された制御情報を含むビットストリームを生成する。したがって、符号化装置300は、符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。つまり、ポイントクラウドのポイントを面として表現して符号化する際に、その符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。
  <ポイント生成部>
 図17は、図16のポイント生成部322の主な構成例を示すブロック図である。図17に示されるように、ポイント生成部3322は、ベクトル設定部331、交差判定部332、補助処理部333、ポイント数判定部334、およびサンプリング間隔設定部335を有する。
 ベクトル設定部331は、三角面からポイントを復元するためのベクトルViの設定に関する処理を行う。例えば、ベクトル設定部331は、メッシュ形状復元部321から供給される、三角面を有するジオメトリデータを取得することができる。また、ベクトル設定部331は、サンプリング間隔設定部335から供給されるサンプリング情報を取得することができる。このサンプリング情報は、<1.トライスープのポイント数制御>において上述したように、ベクトルViの間隔dを制御する情報である。さらに、ベクトル設定部331は、その三角面を有するジオメトリデータに対して、そのサンプリング情報に基づく間隔で、<1.トライスープのポイント数制御>において上述したベクトルViを設定することができる。また、ベクトル設定部331は、ベクトルViを設定した、三角面を有するジオメトリデータを交差判定部332に供給することができる。
 交差判定部332は、ベクトルViと三角面との交差の判定に関する処理を行う。例えば、交差判定部332は、ベクトル設定部331から供給される、ベクトルViが設定された、三角面を有するジオメトリデータを取得することができる。また、交差判定部332は、そのジオメトリデータについて、三角面とベクトルViとの交差判定を行い、三角面とベクトルViとの交差点の座標(交差点座標とも称する)を導出することができる。さらに、交差判定部332は、その導出した交差点座標を補助処理部333に供給することができる。
 補助処理部333は、交差点に対する補助処理を行う。例えば、補助処理部333は、交差判定部332から供給される交差点座標を取得することができる。また、補助処理部333は、取得した交差点座標に対して所定の補助処理を行うことができる。
 例えば、補助処理部333は、異なるベクトルまたは三角面により、交差点の座標値が重複した場合、1点を残し削除を行ってもよい。このように重複した点を除去することにより、不要な処理の増大を抑制し、負荷の増大を抑制することができる(例えば、処理をより高速化することができる)。また、補助処理部333は、交差点の座標値がバウンディングボックス(Bounding box)の外側になった場合、クリップ(Clip)処理によりその交差点の位置をバウンディングボックス内にクリップしてもよい(移動させてもよい)。また、その交差点を削除してもよい。
 補助処理部333は、補処理を施した交差点座標をポイント数判定部334に供給することができる。
 ポイント数判定部334は、交差点(ポイント)の数の判定を行う。例えば、ポイント数判定部334は、補助処理部333から交差点座標を取得することができる。また、ポイント数判定部334は、その交差点座標の数(すなわち、復元されたポイントの数)が、所定の条件を満たしているか否かを判定することができる。例えば、交差点座標の数と、プロファイルやレベルにより規定される上限値とを比較することができる。ポイント数が条件を満たしていない(例えば、プロファイルやレベルにより規定される上限値を超えている)と判定された場合、ポイント数判定部334は、その旨をサンプリング間隔設定部335に通知することができる。また、ポイント数が条件を満たしていると判定された場合、ポイント数判定部334は、その旨をサンプリング間隔設定部335に通知することができ、さらに、交差点座標をジオメトリデータとしてリカラー処理部323に供給することができる。
 サンプリング間隔設定部335は、サンプリング情報の設定に関する処理を行う。例えば、サンプリング間隔設定部335は、サンプリング情報を生成し(ベクトルViの間隔dを設定し)、生成したサンプリング情報をベクトル設定部331に供給することができる。その際、サンプリング間隔設定部335は、<1.トライスープのポイント数制御>において説明した各種方法を適宜適用してサンプリング情報を生成することができる。
 また、サンプリング間隔設定部335は、ポイント数判定部334より、復元されたポイント数が所定の条件を満たしているか否かの通知を取得することができる。
 さらに、サンプリング間隔設定部335は、その通知に基づいて、復元されたポイント数が所定の条件を満たしていない場合、サンプリング情報を更新し(ベクトルViの間隔dの設定値を更新し)、更新したサンプリング情報をベクトル設定部331に供給することができる。その際、サンプリング間隔設定部335は、<1.トライスープのポイント数制御>において説明した各種方法を適宜適用してサンプリング情報を更新することができる。
 また、サンプリング間隔設定部335は、ポイント数判定部334からの通知に基づいて、復元されたポイント数が所定の条件を満たしている場合、現在設定されているサンプリング情報を制御情報としてビットストリーム生成部305に供給することができる。
 なお、ここでは制御情報としてサンプリング情報を例に説明したが、<1.トライスープのポイント数制御>において上述したように、この制御情報は、ベクトルViの間隔d以外を制御するものであってもよい。
 以上のように、サンプリング間隔設定部335が、<1.トライスープのポイント数制御>において説明した各種方法を適宜適用して制御情報を生成し、ビットストリーム生成部305に供給するので、ビットストリーム生成部305が、<1.トライスープのポイント数制御>において説明した各種方法を適宜適用して生成された制御情報を含むビットストリームを生成することができる。したがって、符号化装置300は、符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。つまり、ポイントクラウドのポイントを面として表現して符号化する際に、その符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。
 また、ポイント数判定部334が、復元されたポイント数が所定の条件を満たすか否かを判定するので、サンプリング間隔設定部335は、その条件を満たすように制御情報を設定することができる。したがって、符号化装置300は、符号化データを復号して得られるポイントクラウドのポイント数が所定の条件を満たすように制御することができる。例えば、符号化装置300は、プロファイルやレベルの制約を守るように、符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。
  <符号化処理の流れ>
 次に、符号化装置300において実行される符号化処理の流れの例を、図18のフローチャートを参照して説明する。
 符号化処理が開始されると、ボクセル生成部301は、ステップS101において、ポイントクラウドデータを用いてボクセルデータを生成する。
 ステップS102において、Octree生成部311は、そのボクセルデータを用いてOctreeを構築し、Octreeデータを生成する。
 ステップS103において、メッシュ生成部312は、そのOctreeデータに基づいて、トライスープデータ(メッシュデータとも称する)を生成する。
 ステップS104において、可逆符号化部313は、ステップS102において生成されたOctreeデータとステップS103において生成されたトライスープデータとを含むジオメトリデータを可逆符号化し、ジオメトリデータの符号化データを生成する。
 ステップS105において、メッシュ形状復元部321は、そのジオメトリデータに含まれるトライスープデータ(メッシュデータ)からメッシュ形状(すなわち三角面)を復元する。
 ステップS106において、ポイント生成部322は、ポイント生成処理を実行し、復元されたそのメッシュ形状からポイントを生成(復元)する。その際、ポイント生成部322は、<1.トライスープのポイント数制御>において説明した各種方法を適宜適用してポイントを生成し、さらに、復号において復元されるポイントの数を制御する制御情報(サンプリング情報等)を生成する。
 ステップS107において、リカラー処理部323は、リカラー処理を行い、ポイントが復元されたジオメトリデータにアトリビュートデータを合わせる。
 ステップS108において、属性情報符号化部304は、そのジオメトリデータを用いて、そのアトリビュートデータを符号化し、アトリビュートデータの符号化データを生成する。
 ステップS109において、ビットストリーム生成部305は、ステップS104において生成されたジオメトリデータの符号化データと、ステップS108において生成されたアトリビュートデータの符号化データと、ステップS106において生成された制御情報とを含むビットストリームを生成する。ビットストリーム生成部305は、生成したビットストリームを符号化装置500の外部に出力する。
 ステップS109の処理が終了すると、符号化処理が終了する。
 以上のように、各処理を実行することにより、符号化装置300は、符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。つまり、ポイントクラウドのポイントを面として表現して符号化する際に、その符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。
  <ポイント生成処理の流れ>
 次に、図19のフローチャートを参照して、図18のステップS106において実行されるポイント生成処理の流れの例を説明する。
 ポイント生成処理が開始されると、ベクトル設定部331は、ステップS121において、サンプリング間隔設定部335により生成されたサンプリング情報により指定されたサンプリング間隔に対応する位置座標を開始原点とするベクトルViを設定する。
 ステップS122において、交差判定部332は、ベクトルと三角面(メッシュ)との交差点を求める。
 ステップS123において、補助処理部333は、ステップS122において導出された交差点の内、位置が重複する交差点を削除する(重複を解消する)。
 ステップS124において、補助処理部333は、バウンディングボックス外の交差点を処理する。例えば、補助処理部333は、バウンディングボックス外に位置する交差点を削除することができる。また、補助処理部333は、バウンディングボックス外に位置する交差点をクリップ処理によりバウンディングボックス内に移動させることもできる。
 ステップS125において、ポイント数判定部334は、交差点のポイント数が入力ポイントクラウドデータのポイント数以下であるか否かを判定する。つまり、ここでは、所定の条件を「符号化装置300に入力されるポイントクラウドデータのポイント数以下」とする。補助処理後の交差点のポイント数が、入力ポイントクラウドデータのポイント数より多いと判定された場合、処理はステップS126に進む。
 ステップS126において、サンプリング間隔設定部335は、補助処理後の交差点のポイント数が入力ポイントクラウドデータのポイント数以下となるように、サンプリング間隔を変更する(サンプリング情報を更新する)。その際、サンプリング間隔設定部335は、<1.トライスープのポイント数制御>において説明した各種方法を適宜適用してポイントを生成し、さらに、復号において復元されるポイントの数を制御する制御情報(サンプリング情報等)を生成する。
 ステップS126の処理が終了すると、処理はステップS121に戻る。つまり、更新されたサンプリング情報を用いて、ステップS121乃至ステップS125の処理が繰り返される。
 ステップS125において、補助処理後の交差点のポイント数が入力ポイントクラウドデータのポイント数以下であると判定された場合、処理はステップS127に進む。
 ステップS127において、サンプリング間隔設定部335は、現在のサンプリング情報をビットストリーム生成部305に供給し、ビットストリームに含めて出力させる。
 ステップS127の処理が終了するとポイント生成処理が終了し、処理は図18に戻る。
 以上のように各処理を行うことにより、ビットストリーム生成部305が、<1.トライスープのポイント数制御>において説明した各種方法を適宜適用して生成された制御情報を含むビットストリームを生成することができる。したがって、符号化装置300は、符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。つまり、ポイントクラウドのポイントを面として表現して符号化する際に、その符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。
 <3.第2の実施の形態>
  <復号装置>
 図20は、本技術を適用した画像処理装置の一態様である復号装置の構成の一例を示すブロック図である。図20に示される復号装置400は、ポイントクラウドのような3Dデータの符号化データを復号する装置である。この復号において、復号装置400は、ポイントクラウドを、ボクセル、Octree、トライスープ等の手法を用いて符号化した符号化データを復号する。また、復号装置400は、その復号の際に、<1.トライスープのポイント数制御>において上述したように、符号化データを復号して得られるポイントクラウドのポイント数を制御する制御情報に従って、符号化データを復号する。例えば、復号装置400は、ビットストリームに含まれる、トライスープの三角面から導出されるポイントの数を制御する制御情報に基づいて、トライスープの符号化データを復号する。
 復号装置400は、例えば、符号化装置300に対応し、符号化装置300により生成されたビットストリーム(第1の実施の形態において説明したように生成されるビットストリーム)を復号することができる。
 なお、図20においては、処理部やデータの流れ等の主なものを示しており、図20に示されるものが全てとは限らない。つまり、復号装置400において、図20においてブロックとして示されていない処理部が存在したり、図20において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、復号装置400内の処理部等を説明する他の図においても同様である。
 図20に示されるように、復号装置400は、符号化データ抽出部401、位置情報復号部402、属性情報復号部403、およびポイントクラウド生成部404を有する。
 符号化データ抽出部401は、ビットストリームからの符号化データの抽出に関する処理を行う。例えば、符号化データ抽出部401は、復号対象のビットストリームを取得することができる。また、符号化データ抽出部401は、取得したビットストリームに含まれるジオメトリデータやアトリビュートデータの符号化データを抽出することができる。
 また、符号化データ抽出部401は、抽出したジオメトリデータの符号化データを位置情報復号部402に供給することができる。さらに、符号化データ抽出部401は、抽出したアトリビュートデータの符号化データを属性情報復号部403に供給することができる。
 位置情報復号部402は、ジオメトリデータの符号化データの復号に関する処理を行う。例えば、位置情報復号部402は、符号化データ抽出部401から供給されるジオメトリデータの符号化データを取得することができる。また、位置情報復号部402は、取得したジオメトリデータの符号化データを復号し、ジオメトリデータを生成することができる。さらに、位置情報復号部402は、生成したジオメトリデータをポイントクラウド生成部404に供給することができる。また、位置情報復号部402は、生成したジオメトリデータを属性情報復号部403に供給することができる。
 属性情報復号部403は、アトリビュートデータの符号化データの復号に関する処理を行う。例えば、属性情報復号部403は、符号化データ抽出部401から供給されるアトリビュートデータの符号化データを取得することができる。また、属性情報復号部403は、位置情報復号部402(ポイント生成部414)から供給されるジオメトリデータを取得することができる。
 さらに、属性情報復号部403は、取得したジオメトリデータを用いて、取得したアトリビュートデータの符号化データを復号し、アトリビュートデータを生成することができる。また、属性情報復号部403は、生成したアトリビュートデータをポイントクラウド生成部404に供給することができる。
 ポイントクラウド生成部404は、ポイントクラウドデータの生成に関する処理を行う。例えば、ポイントクラウド生成部404は、位置情報復号部402から供給されるジオメトリデータを取得することができる。また、ポイントクラウド生成部404は、属性情報復号部403から供給されるアトリビュートデータを取得することができる。さらに、ポイントクラウド生成部404は、取得したジオメトリデータおよびアトリビュートデータを用いてポイントクラウドデータを生成することができる。また、ポイントクラウド生成部404は、生成したポイントクラウドデータを復号装置400の外部に出力することができる。
 また、図20に示されるように、位置情報復号部402は、可逆復号部411、Octree復号部412、メッシュ形状復元部413、およびポイント生成部414を有する。
 可逆復号部411は、ジオメトリデータの符号化データの可逆復号に関する処理を行う。例えば、可逆復号部411は、符号化データ抽出部401から供給されるジオメトリデータの符号化データを取得することができる。この符号化データは、ジオメトリデータが可逆符号化されている。可逆復号部411は、そのジオメトリデータの符号化データを、可逆符号化部313に対応する可逆復号方法により可逆復号し、ジオメトリデータを生成することができる。また、可逆復号部411は、符号化データを可逆復号して生成したジオメトリデータ(Octreeデータおよびトライスープデータを含む)を、Octree復号部412に供給することができる。なお、このトライスープデータには、復号において復元されるポイントの数を制御する制御情報(例えばサンプリング情報)が含まれる。
 Octree復号部412は、Octreeデータの復号に関する処理を行う。例えば、Octree復号部412は、可逆復号部411から供給されるジオメトリデータを取得することができる。また、Octree復号部412は、そのジオメトリデータに含まれるOctreeデータからボクセルデータを生成することができる。さらに、Octree復号部412は、生成したボクセルデータとトライスープデータとを含むジオメトリデータをメッシュ形状復元部413に供給することができる。
 メッシュ形状復元部413は、三角面(メッシュ)の復元に関する処理を行う。例えば、メッシュ形状復元部413は、Octree復号部412から供給されるボクセルデータおよびトライスープデータをジオメトリデータとして取得することができる。また、メッシュ形状復元部413は、そのトライスープデータを用いて三角面(メッシュ)を復元することができる。さらに、メッシュ形状復元部413は、三角面を復元したジオメトリデータをポイント生成部414に供給することができる。なお、このジオメトリデータには、復号において復元されるポイントの数を制御する制御情報(例えばサンプリング情報)が含まれる。
 ポイント生成部414は、ポイントの生成(復元)に関する処理を行う。例えば、ポイント生成部414は、メッシュ形状復元部413から供給される三角面を復元したジオメトリデータを取得することができる。また、ポイント生成部414は、そのジオメトリデータに含まれる、復号において復元されるポイントの数を制御する制御情報(例えば、サンプリング情報)に基づいて、三角面からポイントを生成(復元)することができる。
 この制御情報は、<1.トライスープのポイント数制御>において説明した各種方法を適宜適用して生成された情報である。したがって、ポイント生成部414は、この制御情報に従ってポイントを復元することにより、符号化側の制御に従ったポイント数のポイントを復元することができる。
 さらに、ポイント生成部414は、以上のようにポイントが復元されたジオメトリデータをポイントクラウド生成部404に供給することができる。
 例えば、最高解像度のポイントクラウドの全ポイントが三角面により表現されて符号化されている場合、ポイント生成部414は、上述のように三角面からポイントを復元し、その復元した全ポイントのジオメトリデータを復号結果としてポイントクラウド生成部404に供給することができる。
 なお、復号装置400のこれらの処理部(符号化データ抽出部401乃至ポイントクラウド生成部404)は、それぞれ、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
 このように、可逆復号部411がジオメトリデータの符号化データを復号し、ポイント生成部414が、制御情報に従ってポイントを復元することにより、復号装置400は、符号化側の制御に従ってトライスープデータからポイントを導出することができる。つまり、符号化側が、符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。
  <ポイント生成部>
 図21は、ポイント生成部414の主な構成例を示すブロック図である。図21に示されるように、ポイント生成部414は、ベクトル設定部421、交差判定部422、および補助処理部423を有する。
 ベクトル設定部421は、ベクトルViの設定に関する処理を行う。例えば、ベクトル設定部421は、メッシュ形状復元部413から供給されるジオメトリデータを取得することができる。また、ベクトル設定部421は、そのジオメトリデータに含まれる制御情報に基づいて、ジオメトリデータの三角面に対してベクトルViを設定することができる。つまり、ベクトル設定部421は、符号化側の制御に従ってベクトルViを設定することができる。ベクトル設定部421は、設定したベクトルViを交差判定部422に供給することができる。
 交差判定部422は、三角面とベクトルViとの交差判定に関する処理を行う。例えば、交差判定部422は、メッシュ形状復元部413から供給されるジオメトリデータを取得することができる。また、交差判定部422は、ベクトル設定部421から供給されるベクトルViを取得することができる。さらに、交差判定部422は、それらを比較し、ジオメトリデータに含まれる三角面とベクトルViとの交差点を求める(交差点座標を導出する)ことができる。また、交差判定部422は、導出した交差点座標を補助処理部423に供給することができる。
 補助処理部423は、交差点に対する補助処理を行う。例えば、補助処理部423は、交差判定部422から供給される交差点座標を取得することができる。また、補助処理部423は、取得した交差点座標に対して所定の補助処理を行うことができる。
 例えば、補助処理部423は、異なるベクトルまたは三角面により、交差点の座標値が重複した場合、1点を残し削除を行ってもよい。このように重複した点を除去することにより、不要な処理の増大を抑制し、負荷の増大を抑制することができる(例えば、処理をより高速化することができる)。また、補助処理部423は、交差点の座標値がバウンディングボックス(Bounding box)の外側になった場合、クリップ(Clip)処理によりその交差点の位置をバウンディングボックス内にクリップしてもよい(移動させてもよい)。また、その交差点を削除してもよい。
 補助処理部423は、補助処理を施した交差点座標をジオメトリデータの復号結果としてポイントクラウド生成部404に供給することができる。また、補助処理部423は、この復号結果を属性情報復号部403にも供給することができる。
 以上のように、ベクトル設定部421が、制御情報(符号化側の制御)に従ってベクトルViを設定するので、復号装置400は、符号化側の制御に従ってトライスープデータからポイントを導出することができる。つまり、符号化側が、符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。
  <復号処理の流れ>
 次に、図22のフローチャートを参照して、復号装置400により実行される復号処理の流れの例を説明する。
 復号処理が開始されると、符号化データ抽出部401は、ステップS201において、ビットストリームに含まれるヘッダ情報を解析する。また、ステップS202において、符号化データ抽出部401は、ビットストリームからジオメトリデータの符号化データやアトリビュートデータの符号化データを抽出する。
 ステップS203において、可逆復号部411は、ステップS203において抽出されたジオメトリデータの符号化データを可逆復号し、Octreeデータやトライスープデータを含むジオメトリデータを生成する。
 ステップS204において、Octree復号部412は、ジオメトリデータに含まれるOctreeデータからボクセルデータを復元する。
 ステップS205において、メッシュ形状復元部413は、ステップS204において復元されたボクセルデータからメッシュ形状(三角面)を復元する。
 ステップS206において、ポイント生成部414は、ポイント生成処理を実行し、ステップS205において復元されたメッシュ形状(三角面)からポイントを生成(復元)する。
 ステップS207において、属性情報復号部403は、アトリビュートデータを復号する。
 ステップS208において、ポイントクラウド生成部404は、ステップS206において生成されたジオメトリデータと、ステップS207において生成されたアトリビュートデータとを用いてポイントクラウドデータを生成する。
 ステップS208の処理が終了すると復号処理が終了する。
 以上のように、各処理を実行することにより、復号装置400は、符号化側の制御に従ってトライスープデータからポイントを導出することができる。つまり、符号化側が、符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。
  <ポイント生成処理の流れ>
 図23のフローチャートを参照して、図22のステップS206において実行されるポイント生成処理の流れの例を説明する。
 ポイント生成処理が開始されると、ベクトル設定部421は、ステップS221において、符号化データに含まれるサンプリング情報(制御情報)により指定されたサンプリング間隔に対応する位置座標を開始原点とするベクトルViを設定する。
 ステップS222において、交差判定部422は、ジオメトリデータのメッシュ(三角面)と、ステップS221において設定されたベクトルViとの交差点を求める(交差点座標を導出する)。
 ステップS223において、補助処理部423は、補助処理として、重複する交差点を削除する(交差点の重複を解消する)。ステップS224において、補助処理部423は、補助処理として、バウンディングボックス外の交差点を処理する。例えば、補助処理部423は、バウンディングボックス外に位置する交差点を削除することができる。また、補助処理部423は、バウンディングボックス外に位置する交差点をクリップ処理によりバウンディングボックス内に移動させることもできる。
 ステップS223の処理が終了すると、ポイント生成処理が終了し、処理は図22に戻る。
 以上のように、各処理を実行することにより、復号装置400は、符号化側の制御に従ってトライスープデータからポイントを導出することができる。つまり、符号化側が、符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。
 <4.第3の実施の形態>
  <ポイント生成処理の流れ>
 図19のフローチャートを参照して説明したポイント生成処理の例においては、「符号化装置300に入力されるポイントクラウドデータのポイント数以下」とすることを所定の条件とし、ポイント数判定部334が、復元されたポイントの数が、所定の条件を満たしているか否かを判定するように説明した。
 この所定の条件の例は、任意であり、この例に限定されない。例えば、「符号化装置300に入力されるポイントクラウドデータのポイント数よりも大きい所定の最大ポイント数以下」とすることを所定の条件としてもよい。例えば、プロファイルやレベルにより指定されるポイント数の上限値が、符号化装置300に入力されるポイントクラウドデータのポイント数よりも大きい値とし、復元されたポイントの数が、その上限値を超えないように制御されるようにしてもよい。
 その場合の、符号化装置300により実行されるポイント生成処理の流れの例を、図24のフローチャートを参照して説明する。なお、このポイント生成処理は、図19のフローチャートに対応する。
 ポイント生成処理が開始されると、ステップS301乃至ステップS305の各処理が、図19のステップS121乃至ステップS125の各処理と同様に実行される。
 ステップS305において、補助処理後の交差点のポイント数が、入力ポイントクラウドデータのポイント数より多いと判定された場合、処理はステップS306に進む。
 ステップS306において、ポイント数判定部334は、交差点のポイント数が予め設定された最大ポイント数(例えば、プロファイルやレベルにより指定される最大ポイント数)以下であるか否かを判定する。補助処理後の交差点のポイント数が、この最大ポイント数より多いと判定された場合、処理はステップS307に進む。
 ステップS307の処理は、図19のステップS126と同様に実行される。ステップS307の処理が終了すると、処理はステップS301に戻る。つまり、更新されたサンプリング情報を用いて、ステップS301乃至ステップS305(ステップS306)の処理が繰り返される。
 ステップS306において、補助処理後の交差点のポイント数が予め設定された最大ポイント数以下であると判定された場合、処理はステップS308に進む。
 また、ステップS305において、補助処理後の交差点のポイント数が入力ポイントクラウドデータのポイント数以下であると判定された場合、処理はステップS308に進む。
 ステップS308の処理は、図19のステップS127と同様に実行される。ステップS308の処理が終了するとポイント生成処理が終了し、処理は図18に戻る。
 以上のように各処理を行うことにより、図19の場合と同様に、ビットストリーム生成部305が、<1.トライスープのポイント数制御>において説明した各種方法を適宜適用して生成された制御情報を含むビットストリームを生成することができる。したがって、符号化装置300は、符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。つまり、ポイントクラウドのポイントを面として表現して符号化する際に、その符号化データを復号して得られるポイントクラウドのポイント数を制御することができる。
 <5.付記>
  <制御フラグの伝送>
 以上の各実施の形態において説明した本技術に関する制御フラグを符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御フラグ(例えばenabled_flag)を伝送するようにしてもよい。
  <コンピュータ>
 上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
 図25は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 図25に示されるコンピュータ900において、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903は、バス904を介して相互に接続されている。
 バス904にはまた、入出力インタフェース910も接続されている。入出力インタフェース910には、入力部911、出力部912、記憶部913、通信部914、およびドライブ915が接続されている。
 入力部911は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部912は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部913は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部914は、例えば、ネットワークインタフェースよりなる。ドライブ915は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア921を駆動する。
 以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部913に記憶されているプログラムを、入出力インタフェース910およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
 コンピュータが実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。
 また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。
 その他、このプログラムは、ROM902や記憶部913に、あらかじめインストールしておくこともできる。
  <本技術の適用対象>
 以上においては、ポイントクラウドデータの符号化・復号に本技術を適用する場合について説明したが、本技術は、これらの例に限らず、任意の規格の3Dデータの符号化・復号に対して適用することができる。つまり、上述した本技術と矛盾しない限り、符号化・復号方式等の各種処理、並びに、3Dデータやメタデータ等の各種データの仕様は任意である。また、本技術と矛盾しない限り、上述した一部の処理や仕様を省略してもよい。
 また、以上においては、本技術の適用例として符号化装置300および復号装置400について説明したが、本技術は、任意の構成に適用することができる。
 例えば、本技術は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に適用され得る。
 また、例えば、本技術は、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、または、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等、装置の一部の構成として実施することもできる。
 また、例えば、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、本技術を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングとして実施するようにしてもよい。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスにおいて本技術を実施するようにしてもよい。
 なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
  <本技術を適用可能な分野・用途>
 本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
  <その他>
 なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
 また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連付けられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
 なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
 また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
 また、例えば、上述したプログラムは、任意の装置において実行されるようにしてもよい。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
 また、例えば、1つのフローチャートの各ステップを、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。さらに、1つのステップに複数の処理が含まれる場合、その複数の処理を、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
 また、例えば、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
 また、例えば、本技術に関する複数の技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
 なお、本技術は以下のような構成も取ることができる。
 (1) 3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイントを面として表現する3Dデータの符号化データと、前記符号化データを復号して得られる前記3Dデータから導出される前記ポイントの数を制御する制御情報とを含むビットストリームを生成する生成部
 を備える情報処理装置。
 (2) 前記3Dデータは、三角形状の平面の頂点座標を含み、前記ポイントを前記三角形状の平面として表現するデータである
 (1)に記載の情報処理装置。
 (3) 前記ポイントは、前記三角形状の平面と、互いに垂直な3軸方向のベクトルとの交点として導出される
 (2)に記載の情報処理装置。
 (4) 前記制御情報は、前記ベクトルの間隔を指定するサンプリング情報を含む
 (3)に記載の情報処理装置。
 (5) 前記サンプリング情報は、前記ベクトルの間隔を整数値で指定する
 (4)に記載の情報処理装置。
 (6) 前記サンプリング情報は、前記ベクトルの間隔を、前記ベクトルの方向毎に互いに独立に指定する
 (4)または(5)に記載の情報処理装置。
 (7) 前記制御情報を設定する設定部をさらに備え、
 前記生成部は、前記3Dデータの符号化データと、前記設定部により設定された前記制御情報とを含む前記ビットストリームを生成する
 (1)乃至(6)のいずれかに記載の情報処理装置。
 (8) 前記設定部は、前記3Dデータから導出される前記ポイントの数をプロファイルまたはレベルによる上限値以下に制限するように、前記制御情報を設定する
 (7)に記載の情報処理装置。
 (9) 前記設定部は、前記3Dデータから導出される前記ポイントの数を、符号化前の前記ポイントクラウドのポイントの数以下に制限するように、前記制御情報を設定する
 (7)に記載の情報処理装置。
 (10) 3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイントを面として表現する3Dデータの符号化データと、前記符号化データを復号して得られる前記3Dデータから導出される前記ポイントの数を制御する制御情報とを含むビットストリームを生成する
 情報処理方法。
 (11) ビットストリームを復号し、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイントを面として表現する3Dデータと、前記3Dデータから導出される前記ポイントの数を制御する制御情報とを生成する復号部と、
 前記制御情報に基づいて、前記3Dデータから前記ポイントを導出する導出部と
 を備える情報処理装置。
 (12) 前記3Dデータは、三角形状の平面の頂点座標を含み、前記ポイントを前記三角形状の平面として表現するデータであり、
 前記導出部は、前記頂点座標により示される前記三角形状の平面を用いて前記ポイントを導出する
 (11)に記載の情報処理装置。
 (13) 前記導出部は、前記三角形状の平面と、互いに垂直な3軸方向のベクトルとの交点として前記ポイントを導出する
 (12)に記載の情報処理装置。
 (14) 前記制御情報は、前記ベクトルの間隔を指定するサンプリング情報を含み、
 前記導出部は、前記三角形状の平面と、前記サンプリング情報により指定された間隔の前記ベクトルとの交点として、前記ポイントを導出する
 (13)に記載の情報処理装置。
 (15) 前記サンプリング情報は、前記ベクトルの間隔を整数値で指定する情報である
 (14)に記載の情報処理装置。
 (16) 前記サンプリング情報は、前記ベクトルの間隔を、前記ベクトルの方向毎に互いに独立に指定する情報である
 (14)または(15)に記載の情報処理装置。
 (17) 前記サンプリング情報は、前記ベクトルの間隔をスライス毎に指定する情報である
 (14)乃至(16)のいずれかに記載の情報処理装置。
 (18) 前記サンプリング情報は、前記ビットストリームの、スライス毎のデータに格納される
 (17)に記載の情報処理装置。
 (19) 前記サンプリング情報は、前記ビットストリームの、ジオメトリデータのパラメータセットに格納される
 (17)に記載の情報処理装置。
 (20) ビットストリームを復号し、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイントを面として表現する3Dデータと、前記3Dデータから導出される前記ポイントの数を制御する制御情報とを生成し、
 前記制御情報に基づいて、前記3Dデータから前記ポイントを導出する
 情報処理方法。
 300 符号化装置, 301 ボクセル生成部, 302 位置情報符号化部, 303 位置情報復号部, 304 属性情報符号化部, 305 ビットストリーム生成部, 311 Octree生成部, 312 メッシュ生成部, 313 可逆符号化部, 321 メッシュ形状復元部, 322 ポイント生成部, 323 リカラー処理部, 331 ベクトル設定部, 332 交差判定部, 333 補助処理部, 334 ポイント数判定部, 335 サンプリング間隔設定部, 400 復号装置, 401 符号化データ抽出部, 402 位置情報復号部, 403 属性情報復号部, 404 ポイントクラウド生成部, 411 可逆復号部, 412 Octree復号部, 413 メッシュ形状復元部, 414 ポイント生成部, 421 ベクトル設定部, 422 交差判定部, 423 補助処理部

Claims (20)

  1.  3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイントを面として表現する3Dデータの符号化データと、前記符号化データを復号して得られる前記3Dデータから導出される前記ポイントの数を制御する制御情報とを含むビットストリームを生成する生成部
     を備える情報処理装置。
  2.  前記3Dデータは、三角形状の平面の頂点座標を含み、前記ポイントを前記三角形状の平面として表現するデータである
     請求項1に記載の情報処理装置。
  3.  前記ポイントは、前記三角形状の平面と、互いに垂直な3軸方向のベクトルとの交点として導出される
     請求項2に記載の情報処理装置。
  4.  前記制御情報は、前記ベクトルの間隔を指定するサンプリング情報を含む
     請求項3に記載の情報処理装置。
  5.  前記サンプリング情報は、前記ベクトルの間隔を整数値で指定する
     請求項4に記載の情報処理装置。
  6.  前記サンプリング情報は、前記ベクトルの間隔を、前記ベクトルの方向毎に互いに独立に指定する
     請求項4に記載の情報処理装置。
  7.  前記制御情報を設定する設定部をさらに備え、
     前記生成部は、前記3Dデータの符号化データと、前記設定部により設定された前記制御情報とを含む前記ビットストリームを生成する
     請求項1に記載の情報処理装置。
  8.  前記設定部は、前記3Dデータから導出される前記ポイントの数をプロファイルまたはレベルによる上限値以下に制限するように、前記制御情報を設定する
     請求項7に記載の情報処理装置。
  9.  前記設定部は、前記3Dデータから導出される前記ポイントの数を、符号化前の前記ポイントクラウドのポイントの数以下に制限するように、前記制御情報を設定する
     請求項7に記載の情報処理装置。
  10.  3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイントを面として表現する3Dデータの符号化データと、前記符号化データを復号して得られる前記3Dデータから導出される前記ポイントの数を制御する制御情報とを含むビットストリームを生成する
     情報処理方法。
  11.  ビットストリームを復号し、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイントを面として表現する3Dデータと、前記3Dデータから導出される前記ポイントの数を制御する制御情報とを生成する復号部と、
     前記制御情報に基づいて、前記3Dデータから前記ポイントを導出する導出部と
     を備える情報処理装置。
  12.  前記3Dデータは、三角形状の平面の頂点座標を含み、前記ポイントを前記三角形状の平面として表現するデータであり、
     前記導出部は、前記頂点座標により示される前記三角形状の平面を用いて前記ポイントを導出する
     請求項11に記載の情報処理装置。
  13.  前記導出部は、前記三角形状の平面と、互いに垂直な3軸方向のベクトルとの交点として前記ポイントを導出する
     請求項12に記載の情報処理装置。
  14.  前記制御情報は、前記ベクトルの間隔を指定するサンプリング情報を含み、
     前記導出部は、前記三角形状の平面と、前記サンプリング情報により指定された間隔の前記ベクトルとの交点として、前記ポイントを導出する
     請求項13に記載の情報処理装置。
  15.  前記サンプリング情報は、前記ベクトルの間隔を整数値で指定する情報である
     請求項14に記載の情報処理装置。
  16.  前記サンプリング情報は、前記ベクトルの間隔を、前記ベクトルの方向毎に互いに独立に指定する情報である
     請求項14に記載の情報処理装置。
  17.  前記サンプリング情報は、前記ベクトルの間隔をスライス毎に指定する情報である
     請求項14に記載の情報処理装置。
  18.  前記サンプリング情報は、前記ビットストリームの、スライス毎のデータに格納される
     請求項17に記載の情報処理装置。
  19.  前記サンプリング情報は、前記ビットストリームの、ジオメトリデータのパラメータセットに格納される
     請求項17に記載の情報処理装置。
  20.  ビットストリームを復号し、3次元形状のオブジェクトをポイントの集合として表現するポイントクラウドの前記ポイントを面として表現する3Dデータと、前記3Dデータから導出される前記ポイントの数を制御する制御情報とを生成し、
     前記制御情報に基づいて、前記3Dデータから前記ポイントを導出する
     情報処理方法。
PCT/JP2020/035206 2019-10-01 2020-09-17 情報処理装置および方法 WO2021065536A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/762,995 US20220414940A1 (en) 2019-10-01 2020-09-17 Information processing apparatus and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019181401 2019-10-01
JP2019-181401 2019-10-01

Publications (1)

Publication Number Publication Date
WO2021065536A1 true WO2021065536A1 (ja) 2021-04-08

Family

ID=75338001

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/035206 WO2021065536A1 (ja) 2019-10-01 2020-09-17 情報処理装置および方法

Country Status (2)

Country Link
US (1) US20220414940A1 (ja)
WO (1) WO2021065536A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023132330A1 (ja) * 2022-01-07 2023-07-13 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
WO2023132329A1 (ja) * 2022-01-07 2023-07-13 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
WO2023169019A1 (zh) * 2022-03-11 2023-09-14 腾讯科技(深圳)有限公司 点云编解码方法、装置、计算机、存储介质
WO2024009676A1 (ja) * 2022-07-08 2024-01-11 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
WO2024009561A1 (ja) * 2022-07-08 2024-01-11 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
WO2024009675A1 (ja) * 2022-07-08 2024-01-11 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
WO2024009562A1 (ja) * 2022-07-08 2024-01-11 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
WO2024053454A1 (ja) * 2022-09-09 2024-03-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号方法、符号化方法、復号装置及び符号化装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019065298A1 (ja) * 2017-09-29 2019-04-04 ソニー株式会社 情報処理装置および方法
WO2020071114A1 (ja) * 2018-10-02 2020-04-09 ソニー株式会社 画像処理装置および方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019065298A1 (ja) * 2017-09-29 2019-04-04 ソニー株式会社 情報処理装置および方法
WO2020071114A1 (ja) * 2018-10-02 2020-04-09 ソニー株式会社 画像処理装置および方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DRICOT, ANTOINE ET AL.: "Adaptive Multi-level Triangle Soup for Geometry-based Point Cloud Coding", IEEE 21ST INTERNATIONAL WORKSHOP ON MULTIMEDIA SIGNAL PROCESSING (MMSP, September 2019 (2019-09-01), XP033660072, Retrieved from the Internet <URL:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8901791> [retrieved on 20201130] *
SCHWARZ, SEBASTIAN ET AL.: "Emerging MPEG Standards for Point Cloud Compression", IEEE JOURNAL ON EMERGING AND SELECTED TOPICS IN CIRCUITS AND SYSTEMS, vol. 9, no. 1, March 2019 (2019-03-01), pages 133 - 148, XP011714044, DOI: 10.1109/JETCAS.2018.2885981 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023132330A1 (ja) * 2022-01-07 2023-07-13 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
WO2023132329A1 (ja) * 2022-01-07 2023-07-13 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
WO2023169019A1 (zh) * 2022-03-11 2023-09-14 腾讯科技(深圳)有限公司 点云编解码方法、装置、计算机、存储介质
WO2024009676A1 (ja) * 2022-07-08 2024-01-11 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
WO2024009561A1 (ja) * 2022-07-08 2024-01-11 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
WO2024009675A1 (ja) * 2022-07-08 2024-01-11 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
WO2024009562A1 (ja) * 2022-07-08 2024-01-11 Kddi株式会社 点群復号装置、点群復号方法及びプログラム
WO2024053454A1 (ja) * 2022-09-09 2024-03-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号方法、符号化方法、復号装置及び符号化装置

Also Published As

Publication number Publication date
US20220414940A1 (en) 2022-12-29

Similar Documents

Publication Publication Date Title
WO2021065536A1 (ja) 情報処理装置および方法
JP7384159B2 (ja) 画像処理装置および方法
EP3709273A1 (en) Signalling of metadata for volumetric video
WO2019198523A1 (ja) 画像処理装置および方法
KR20230155019A (ko) 화상 처리 장치 및 방법
US20210233278A1 (en) Image processing apparatus and method
US11922579B2 (en) Image processing apparatus and method for image processing by deriving voxel and mesh data to generate point cloud data
WO2019142665A1 (ja) 情報処理装置および方法
CN112425175A (zh) 图像处理装置和方法
US11989919B2 (en) Method and apparatus for encoding and decoding volumetric video data
WO2020188932A1 (ja) 情報処理装置および情報生成方法
WO2021010200A1 (ja) 情報処理装置および方法
JPWO2020071115A1 (ja) 画像処理装置および方法
US11790602B2 (en) Information processing device and method
JP7415937B2 (ja) 画像処理装置および方法
JP2022063882A (ja) 情報処理装置および方法、並びに、再生装置および方法
WO2020262020A1 (ja) 情報処理装置および方法
WO2021261237A1 (ja) 情報処理装置および方法
WO2021095565A1 (ja) 画像処理装置および方法
KR20240056739A (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

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: 20872559

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20872559

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP