Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

JP7630681B2Active Publication Date: 2025-02-17PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024050915
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-08-30
Filing Date
2024-03-27
Publication Date
2025-02-17
Estimated Expiration
2039-08-29

AI Technical Summary

Benefits of technology

【0011】 本開示は、符号化効率を向上できる三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、又は三次元データ復号装置を提供できる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007630681000001
    Figure 0007630681000001
  • Figure 0007630681000002
    Figure 0007630681000002
  • Figure 0007630681000003
    Figure 0007630681000003
Patent Text Reader

Abstract

To improve a coding efficiency.SOLUTION: A three-dimensional coding method generates a plurality of coding data by coding a plurality of sub-spaces in which a target spacing including a plurality of three-dimensional points is divided, and generates a bit stream including first information (tile_overlap_flag) indicating whether the plurality of sub-spaces overlap. For example, the bit stream may include second information (type_of_divide) indicating the division method of the plurality of sub-spaces is a division method using a top view.SELECTED DRAWING: Figure 68
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to a three-dimensional data encoding method, a three-dimensional data decoding method, a three-dimensional data encoding device, and a three-dimensional data decoding device. [Background technology]

[0002] In the future, devices and services that utilize 3D data are expected to become widespread in a wide range of fields, such as computer vision for autonomous operation of automobiles or robots, map information, monitoring, infrastructure inspection, video distribution, etc. 3D data is acquired in various ways, such as distance sensors such as range finders, stereo cameras, or a combination of multiple monocular cameras.

[0003] One method of expressing three-dimensional data is a method called a point cloud, which represents the shape of a three-dimensional structure using a group of points in a three-dimensional space. In a point cloud, the positions and colors of the points are stored. Point clouds are expected to become the mainstream method of expressing three-dimensional data, but point clouds have a very large amount of data. Therefore, when storing or transmitting three-dimensional data, it is essential to compress the amount of data by encoding, just like two-dimensional video images (examples include MPEG-4 AVC or HEVC standardized by MPEG).

[0004] In addition, compression of point clouds is partially supported by public libraries (Point Cloud Library) that perform point cloud-related processing.

[0005] Furthermore, a technique is known that uses three-dimensional map data to search for and display facilities located around a vehicle (see, for example, Patent Document 1). [Prior art documents] [Patent documents]

[0006] [Patent Document 1] International Publication No. 2014 / 020663 Summary of the Invention [Problem to be solved by the invention]

[0007] In the encoding and decoding of three-dimensional data, it is desirable to be able to improve the encoding efficiency.

[0008] An object of the present disclosure is to provide a three-dimensional data encoding method, a three-dimensional data decoding method, a three-dimensional data encoding device, or a three-dimensional data decoding device that can improve encoding efficiency. [Means for solving the problem]

[0009] A three-dimensional data encoding method according to one embodiment of the present disclosure generates multiple encoded data by encoding multiple subspaces obtained by dividing a target space containing multiple three-dimensional points, and generates a bitstream including first information indicating whether the multiple subspaces overlap.

[0010] A three-dimensional data decoding method according to one embodiment of the present disclosure restores a plurality of subspaces by decoding a plurality of encoded data generated by encoding a plurality of subspaces obtained by dividing a target space containing a plurality of three-dimensional points, the subspaces being included in a bitstream, the bitstream including first information indicating whether the plurality of subspaces overlap. Effect of the Invention

[0011] The present disclosure can provide a three-dimensional data encoding method, a three-dimensional data decoding method, a three-dimensional data encoding device, or a three-dimensional data decoding device that can improve encoding efficiency. [Brief description of the drawings]

[0012] [Figure 1] FIG. 1 is a diagram showing a configuration of a three-dimensional data encoding / decoding system according to the first embodiment. [Diagram 2] FIG. 2 is a diagram illustrating an example of a configuration of point cloud data according to the first embodiment. [Diagram 3]FIG. 3 is a diagram showing an example of a configuration of a data file in which point cloud data information according to the first embodiment is described. [Figure 4] FIG. 4 is a diagram showing types of point cloud data according to the first embodiment. [Diagram 5] FIG. 5 is a diagram showing a configuration of a first encoding unit according to the first embodiment. [Figure 6] FIG. 6 is a block diagram of a first encoding unit according to the first embodiment. [Figure 7] FIG. 7 is a diagram showing a configuration of a first decoding unit according to the first embodiment. [Figure 8] FIG. 8 is a block diagram of a first decoding unit according to the first embodiment. [Figure 9] FIG. 9 is a diagram showing a configuration of a second encoding unit according to the first embodiment. [Figure 10] FIG. 10 is a block diagram of a second encoding unit according to the first embodiment. [Figure 11] FIG. 11 is a diagram illustrating a configuration of a second decoding unit according to the first embodiment. [Figure 12] FIG. 12 is a block diagram of a second decoding unit according to the first embodiment. [Figure 13] FIG. 13 is a diagram showing a protocol stack related to PCC encoded data according to the first embodiment. [Figure 14] FIG. 14 is a block diagram of the encoding unit according to the first embodiment. [Figure 15] FIG. 15 is a block diagram of a decoding unit according to the first embodiment. [Figure 16] FIG. 16 is a flowchart of the encoding process according to the first embodiment. [Figure 17] FIG. 17 is a flowchart of the decoding process according to the first embodiment. [Figure 18] FIG. 18 is a diagram showing a basic structure of an ISOBMFF according to the second embodiment. [Figure 19] FIG. 19 is a diagram illustrating a protocol stack according to the second embodiment. [Figure 20]FIG. 20 is a diagram showing an example in which the NAL unit according to the second embodiment is stored in a file for codec 1. In FIG. [Figure 21] FIG. 21 is a diagram showing an example in which the NAL unit according to the second embodiment is stored in a file for codec 2. In FIG. [Figure 22] FIG. 22 is a diagram illustrating a configuration of a first multiplexing unit according to the second embodiment. In FIG. [Figure 23] FIG. 23 is a diagram showing a configuration of a first demultiplexing unit according to the second embodiment. In FIG. [Figure 24] FIG. 24 is a diagram illustrating a configuration of a second multiplexing unit according to the second embodiment. In FIG. [Diagram 25] FIG. 25 is a diagram showing a configuration of a second demultiplexing unit according to the second embodiment. In FIG. [Figure 26] FIG. 26 is a flowchart of a process by the first multiplexing unit according to the second embodiment. [Figure 27] FIG. 27 is a flowchart of a process by the second multiplexing unit according to the second embodiment. [Figure 28] FIG. 28 is a flowchart of processing by the first demultiplexing unit and the first decoding unit according to the second embodiment. [Figure 29] FIG. 29 is a flowchart of processing by the second demultiplexing unit and the second decoding unit according to the second embodiment. [Diagram 30] FIG. 30 is a diagram showing configurations of an encoding unit and a third multiplexing unit according to the third embodiment. In FIG. [Diagram 31] FIG. 31 is a diagram showing configurations of a third demultiplexing unit and a decoding unit according to the third embodiment. In FIG. [Diagram 32] FIG. 32 is a flowchart of a process performed by the third multiplexing unit according to the third embodiment. [Diagram 33] FIG. 33 is a flowchart of a process performed by a third demultiplexing unit and a decoding unit according to the third embodiment. [Diagram 34] FIG. 34 is a flowchart of a process performed by the three-dimensional data storage device according to the third embodiment. [Diagram 35]FIG. 35 is a flowchart of a process performed by the three-dimensional data acquisition device according to the third embodiment. [Diagram 36] FIG. 36 is a diagram showing configurations of an encoding unit and a multiplexing unit according to the fourth embodiment. In FIG. [Figure 37] FIG. 37 is a diagram showing an example of a structure of encoded data according to the fourth embodiment. In FIG. [Figure 38] FIG. 38 is a diagram showing an example of the structure of coded data and a NAL unit according to the fourth embodiment. [Figure 39] FIG. 39 is a diagram illustrating an example of the semantics of pcc_nal_unit_type according to the fourth embodiment. [Diagram 40] FIG. 40 is a diagram showing an example of a transmission order of NAL units according to the fourth embodiment. [Diagram 41] FIG. 41 is a flowchart of processing by the three-dimensional data encoding device according to the fourth embodiment. [Diagram 42] FIG. 42 is a flowchart of the process performed by the three-dimensional data decoding device according to the fourth embodiment. [Diagram 43] FIG. 43 is a flowchart of a multiplexing process according to the fourth embodiment. [Diagram 44] FIG. 44 is a flowchart of a demultiplexing process according to the fourth embodiment. [Diagram 45] FIG. 45 is a flowchart of processing by the three-dimensional data encoding device according to the fourth embodiment. [Figure 46] FIG. 46 is a flowchart of processing by the three-dimensional data decoding device according to the fourth embodiment. [Figure 47] FIG. 47 is a diagram showing an example of division into slices and tiles according to the fifth embodiment. [Figure 48] FIG. 48 is a diagram showing an example of a division pattern of slices and tiles according to the fifth embodiment. [Figure 49] FIG. 49 is a block diagram of a first encoding unit according to the sixth embodiment. [Figure 50] FIG. 50 is a block diagram of a first decoding unit according to the sixth embodiment. [Figure 51] FIG. 51 is a diagram showing examples of the shape of tiles according to the sixth embodiment. [Figure 52] FIG. 52 is a diagram showing examples of tiles and slices according to the sixth embodiment. In FIG. [Figure 53] FIG. 53 is a block diagram of a division unit according to the sixth embodiment. [Figure 54] FIG. 54 is a diagram showing an example of a map in which the point cloud data according to the sixth embodiment is viewed from above. [Figure 55] FIG. 55 is a diagram showing an example of tile division according to the sixth embodiment. [Figure 56] FIG. 56 is a diagram showing an example of tile division according to the sixth embodiment. [Figure 57] FIG. 57 is a diagram showing an example of tile division according to the sixth embodiment. [Figure 58] FIG. 58 is a diagram showing an example of tile data stored in the server according to the sixth embodiment. [Figure 59] FIG. 59 is a diagram showing a system relating to tile division according to the sixth embodiment. [Figure 60] FIG. 60 is a diagram showing an example of slice division according to the sixth embodiment. [Figure 61] FIG. 61 is a diagram showing an example of a dependency relationship according to the sixth embodiment. In FIG. [Figure 62] FIG. 62 is a diagram showing an example of a data decoding order according to the sixth embodiment. [Figure 63] FIG. 63 is a diagram showing an example of coded data of a tile according to the sixth embodiment. In FIG. [Figure 64] FIG. 64 is a block diagram of a coupling unit according to the sixth embodiment. [Figure 65] FIG. 65 is a diagram showing an example of the structure of coded data and an NAL unit according to the sixth embodiment. [Figure 66] FIG. 66 is a flowchart of the encoding process according to the sixth embodiment. [Figure 67] FIG. 67 is a flowchart of the decoding process according to the sixth embodiment. [Figure 68]FIG. 68 is a diagram illustrating an example of the syntax of the tile additional information according to the sixth embodiment. [Figure 69] FIG. 69 is a block diagram of an encoding / decoding system according to the sixth embodiment. [Figure 70] FIG. 70 is a diagram showing an example of the syntax of slice additional information according to the sixth embodiment. [Figure 71] FIG. 71 is a flowchart of the encoding process according to the sixth embodiment. [Figure 72] FIG. 72 is a flowchart of the decoding process according to the sixth embodiment. [Figure 73] FIG. 73 is a flowchart of the encoding process according to the sixth embodiment. [Figure 74] FIG. 74 is a flowchart of the decoding process according to the sixth embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0013] A three-dimensional data encoding method according to one embodiment of the present disclosure generates multiple encoded data by encoding multiple subspaces obtained by dividing a target space containing multiple three-dimensional points, and generates a bitstream including the multiple encoded data and first information indicating the shape of the multiple subspaces.

[0014] According to this, the three-dimensional data encoding method can improve encoding efficiency because an arbitrary shape can be selected from a plurality of types of subspace shapes.

[0015] For example, the shape may be the shape in two dimensions of the subspaces, or the shape in three dimensions.

[0016] For example, the shape may be a rectangle or a circle.

[0017] For example, the bitstream may include second information indicating whether the sub-intervals overlap.

[0018] According to this, the three-dimensional data encoding method can overlap the subspaces, so that the subspaces can be generated without complicating the shapes of the subspaces.

[0019] For example, the bitstream may include third information indicating whether the division method for the plurality of sub-sections is a division method using a top view.

[0020] For example, the bitstream may include fourth information indicating at least one of a height, a width, a depth, and a radius of the plurality of sub-sections.

[0021] For example, the bitstream may include fifth information indicating a position of each of the plurality of sub-intervals.

[0022] For example, the bitstream may include sixth information indicating the number of the plurality of subintervals.

[0023] For example, the bit stream may include seventh information indicating intervals between the plurality of sub-intervals.

[0024] A three-dimensional data decoding method according to one embodiment of the present disclosure reconstructs a plurality of subspaces by decoding a plurality of encoded data generated by encoding a plurality of subspaces obtained by dividing a target space containing a plurality of three-dimensional points and included in a bitstream, and reconstructs the target space by combining the plurality of subspaces using first information included in the bitstream that indicates the shapes of the plurality of subspaces.

[0025] According to this, the three-dimensional data decoding method can decode a bitstream with improved coding efficiency that is generated by selecting an arbitrary shape from a plurality of types of subspace shapes.

[0026] For example, the shape may be the shape in two dimensions of the subspaces, or the shape in three dimensions.

[0027] For example, the shape may be a rectangle or a circle.

[0028] For example, the bitstream may include second information indicating whether the multiple sub-intervals overlap, and the reconstruction of the target space may further use the second information to combine the multiple sub-spaces.

[0029] For example, the bitstream may include third information indicating whether the division method of the plurality of sub-intervals is a division method using a top view, and if the third information indicates that the division method of the plurality of sub-intervals is a division method using a top view, the plurality of subspaces may be combined using the first information.

[0030] For example, the bitstream may include fourth information indicating at least one of the height, width, depth and radius of the plurality of sub-sections, and in reconstructing the object space, the fourth information may further be used to combine the plurality of sub-spaces.

[0031] For example, the bit stream may include fifth information indicating the position of each of the plurality of sub-intervals, and in the reconstruction of the object space, the fifth information may be further used to combine the plurality of sub-spaces.

[0032] For example, the bitstream may include sixth information indicating the number of the plurality of subintervals, and in the reconstruction of the object space, the sixth information may be further used to combine the plurality of subspaces.

[0033] For example, the bit stream may include seventh information indicating intervals between the plurality of sub-intervals, and in the reconstruction of the object space, the seventh information may be further used to combine the plurality of sub-spaces.

[0034] In addition, a three-dimensional data encoding device according to one embodiment of the present disclosure includes a processor and a memory, and the processor uses the memory to generate multiple encoded data by encoding multiple subspaces obtained by dividing a target space containing multiple three-dimensional points, and generates a bit stream including the multiple encoded data and first information indicating the shape of the multiple subspaces.

[0035] According to this, the three-dimensional data encoding device can select an arbitrary shape from a plurality of types of subspace shapes, thereby improving encoding efficiency.

[0036] Moreover, a three-dimensional data decoding device according to one embodiment of the present disclosure includes a processor and a memory, and the processor uses the memory to decode a plurality of encoded data generated by encoding a plurality of subspaces obtained by dividing a target space including a plurality of three-dimensional points, which is included in a bitstream, to restore the plurality of subspaces, and to restore the target space by combining the plurality of subspaces using first information included in the bitstream that indicates the shapes of the plurality of subspaces.

[0037] This allows the three-dimensional data decoding device to decode a bitstream with improved coding efficiency that has been generated by selecting an arbitrary shape from a plurality of types of subspace shapes.

[0038] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or may be realized as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.

[0039] Hereinafter, the embodiments will be described in detail with reference to the drawings. Note that each of the embodiments described below shows a specific example of the present disclosure. The numerical values, shapes, materials, components, arrangement and connection forms of the components, steps, and order of steps shown in the following embodiments are merely examples and are not intended to limit the present disclosure. In addition, among the components in the following embodiments, components that are not described in an independent claim showing a top concept are described as optional components.

[0040] (Embodiment 1) When using the encoded data of a point cloud in an actual device or service, it is desirable to transmit and receive the necessary information according to the purpose in order to reduce the network bandwidth. However, until now, such a function has not existed in the encoding structure of three-dimensional data, and there has been no encoding method for this purpose.

[0041] In this embodiment, we describe a three-dimensional data encoding method and a three-dimensional data encoding device for providing the function of transmitting and receiving necessary information depending on the application in encoded data of a three-dimensional point cloud, as well as a three-dimensional data decoding method and a three-dimensional data decoding device for decoding the encoded data, a three-dimensional data multiplexing method for multiplexing the encoded data, and a three-dimensional data transmission method for transmitting the encoded data.

[0042] In particular, the first and second encoding methods are currently being considered as methods (encoding schemes) for encoding point cloud data; however, the structure of the encoded data and the method for storing the encoded data in a system format have not been defined, and as things stand, there is a problem that MUX processing (multiplexing) in the encoding unit, or transmission or storage, is not possible.

[0043] Also, there has been no method to date that supports a format in which two codecs, the first encoding method and the second encoding method, are mixed, such as PCC (Point Cloud Compression).

[0044] In this embodiment, a structure of PCC encoded data in which two codecs, a first encoding method and a second encoding method, are mixed, and a method of storing the encoded data in a system format will be described.

[0045] First, the configuration of a three-dimensional data (point cloud data) encoding / decoding system according to this embodiment will be described. Fig. 1 is a diagram showing an example of the configuration of a three-dimensional data encoding / decoding system according to this embodiment. As shown in Fig. 1, the three-dimensional data encoding / decoding system includes a three-dimensional data encoding system 4601, a three-dimensional data decoding system 4602, a sensor terminal 4603, and an external connection unit 4604.

[0046] The three-dimensional data encoding system 4601 generates encoded data or multiplexed data by encoding point cloud data, which is three-dimensional data. The three-dimensional data encoding system 4601 may be a three-dimensional data encoding device realized by a single device, or may be a system realized by multiple devices. The three-dimensional data encoding device may include some of the multiple processing units included in the three-dimensional data encoding system 4601.

[0047] The three-dimensional data encoding system 4601 includes a point cloud data generation system 4611, a presentation unit 4612, an encoding unit 4613, a multiplexing unit 4614, an input / output unit 4615, and a control unit 4616. The point cloud data generation system 4611 includes a sensor information acquisition unit 4617 and a point cloud data generation unit 4618.

[0048] The sensor information acquisition unit 4617 acquires sensor information from the sensor terminal 4603, and outputs the sensor information to the point cloud data generation unit 4618. The point cloud data generation unit 4618 generates point cloud data from the sensor information, and outputs the point cloud data to the encoding unit 4613.

[0049] The presentation unit 4612 presents the sensor information or the point cloud data to the user. For example, the presentation unit 4612 displays information or an image based on the sensor information or the point cloud data.

[0050] The encoding unit 4613 encodes (compresses) the point cloud data, and outputs the obtained encoded data, control information obtained in the encoding process, and other additional information to the multiplexing unit 4614. The additional information includes, for example, sensor information.

[0051] The multiplexing unit 4614 generates multiplexed data by multiplexing the coded data, control information, and additional information input from the coding unit 4613. The format of the multiplexed data is, for example, a file format for storage, or a packet format for transmission.

[0052] The input / output unit 4615 (e.g., a communication unit or an interface) outputs the multiplexed data to the outside. Alternatively, the multiplexed data is stored in a storage unit such as an internal memory. The control unit 4616 (or an application execution unit) controls each processing unit. In other words, the control unit 4616 controls encoding, multiplexing, etc.

[0053] The sensor information may be input to the encoding unit 4613 or the multiplexing unit 4614. Furthermore, the input / output unit 4615 may output the point cloud data or the encoded data directly to the outside.

[0054] The transmission signal (multiplexed data) output from the three-dimensional data encoding system 4601 is input to the three-dimensional data decoding system 4602 via the external connection unit 4604.

[0055] The three-dimensional data decoding system 4602 generates point cloud data, which is three-dimensional data, by decoding the encoded data or multiplexed data. The three-dimensional data decoding system 4602 may be a three-dimensional data decoding device realized by a single device, or may be a system realized by multiple devices. The three-dimensional data decoding device may also include some of the multiple processing units included in the three-dimensional data decoding system 4602.

[0056] The three-dimensional data decoding system 4602 includes a sensor information acquisition unit 4621 , an input / output unit 4622 , a demultiplexing unit 4623 , a decoding unit 4624 , a presentation unit 4625 , a user interface 4626 , and a control unit 4627 .

[0057] The sensor information acquisition unit 4621 acquires sensor information from the sensor terminal 4603 .

[0058] The input / output unit 4622 acquires a transmission signal, decodes multiplexed data (file format or packets) from the transmission signal, and outputs the multiplexed data to the demultiplexer 4623.

[0059] The demultiplexer 4623 obtains the coded data, control information, and additional information from the multiplexed data, and outputs the coded data, control information, and additional information to the decoder 4624.

[0060] The decoding unit 4624 reconstructs the point cloud data by decoding the encoded data.

[0061] The presentation unit 4625 presents the point cloud data to the user. For example, the presentation unit 4625 displays information or an image based on the point cloud data. The user interface 4626 acquires an instruction based on a user's operation. The control unit 4627 (or the application execution unit) controls each processing unit. That is, the control unit 4627 controls demultiplexing, decoding, presentation, etc.

[0062] The input / output unit 4622 may obtain the point cloud data or the encoded data directly from the outside. The presentation unit 4625 may obtain additional information such as sensor information and present information based on the additional information. The presentation unit 4625 may present information based on a user instruction obtained by the user interface 4626.

[0063] The sensor terminal 4603 generates sensor information obtained by a sensor. The sensor terminal 4603 is a terminal equipped with a sensor or a camera, and examples of the sensor terminal include a moving body such as an automobile, a flying object such as an airplane, a mobile terminal, and a camera.

[0064] The sensor information that can be acquired by the sensor terminal 4603 is, for example, (1) the distance between the sensor terminal 4603 and an object, or the reflectance of the object, obtained from a LIDAR, millimeter wave radar, or an infrared sensor, and (2) the distance between a camera and an object, or the reflectance of the object, obtained from a plurality of monocular camera images or stereo camera images. The sensor information may also include the attitude, direction, gyro (angular velocity), position (GPS information or altitude), speed, acceleration, etc. of the sensor. The sensor information may also include temperature, air pressure, humidity, magnetism, etc.

[0065] The external connection unit 4604 is realized by an integrated circuit (LSI or IC), an external storage unit, communication with a cloud server via the Internet, broadcasting, or the like.

[0066] Next, the point cloud data will be described. Fig. 2 is a diagram showing the configuration of the point cloud data. Fig. 3 is a diagram showing an example of the configuration of a data file in which information on the point cloud data is written.

[0067] Point cloud data includes data on multiple points. The data on each point includes position information (three-dimensional coordinates) and attribute information for that position information. A collection of multiple points is called a point cloud. For example, a point cloud may represent the three-dimensional shape of an object.

[0068] Position information such as three-dimensional coordinates is sometimes called geometry. Data for each point may include attribute information of multiple attribute types. The attribute types may be, for example, color or reflectance.

[0069] One piece of attribute information may be associated with one piece of location information, or multiple pieces of attribute information having different attribute types may be associated with one piece of location information, or multiple pieces of attribute information of the same attribute type may be associated with one piece of location information.

[0070] The configuration example of the data file shown in FIG. 3 is an example in which position information and attribute information correspond one-to-one, and shows the position information and attribute information of N points that make up the point cloud data.

[0071] The position information is, for example, information on three axes, x, y, and z. The attribute information is, for example, RGB color information. A typical data file is a ply file.

[0072] Next, the types of point cloud data will be described. Fig. 4 is a diagram showing the types of point cloud data. As shown in Fig. 4, point cloud data includes static objects and dynamic objects.

[0073] A static object is 3D point cloud data at any time (a certain time). A dynamic object is 3D point cloud data that changes over time. Hereinafter, 3D point cloud data at a certain time will be called a PCC frame, or a frame.

[0074] The object may be a point cloud whose area is restricted to a certain extent, such as ordinary video data, or a large-scale point cloud whose area is not restricted, such as map information.

[0075] Also, there may be point cloud data of various densities, and there may be sparse point cloud data and dense point cloud data.

[0076] The details of each processing unit will be described below. The sensor information is acquired by various methods such as a distance sensor such as a LIDAR or a range finder, a stereo camera, or a combination of multiple monocular cameras. The point cloud data generation unit 4618 generates point cloud data based on the sensor information acquired by the sensor information acquisition unit 4617. The point cloud data generation unit 4618 generates position information as point cloud data, and adds attribute information for the position information to the position information.

[0077] The point cloud data generating unit 4618 may process the point cloud data when generating the position information or adding the attribute information. For example, the point cloud data generating unit 4618 may reduce the amount of data by deleting point clouds with overlapping positions. In addition, the point cloud data generating unit 4618 may convert the position information (position shift, rotation, normalization, etc.) or render the attribute information.

[0078] In FIG. 1, the point cloud data generation system 4611 is included in the three-dimensional data encoding system 4601, but it may be provided independently outside the three-dimensional data encoding system 4601.

[0079] The encoding unit 4613 generates encoded data by encoding the point cloud data based on a predefined encoding method. There are two main types of encoding methods: the first is an encoding method using position information, and this encoding method will be referred to as the first encoding method hereinafter; the second is an encoding method using a video codec, and this encoding method will be referred to as the second encoding method hereinafter.

[0080] The decoding unit 4624 decodes the encoded data based on a predefined encoding method to decode the point group data.

[0081] The multiplexing unit 4614 generates multiplexed data by multiplexing the encoded data using an existing multiplexing method. The generated multiplexed data is transmitted or stored. In addition to the PCC encoded data, the multiplexing unit 4614 multiplexes other media such as video, audio, subtitles, applications, and files, or reference time information. The multiplexing unit 4614 may further multiplex attribute information related to sensor information or point cloud data.

[0082] Multiplexing methods or file formats include ISOBMFF, MPEG-DASH, which is an ISOBMFF-based transmission method, MMT, MPEG-2 TS Systems, and RMP.

[0083] The demultiplexer 4623 extracts the PCC encoded data, other media, time information, and the like from the multiplexed data.

[0084] The input / output unit 4615 transmits the multiplexed data using a method suited to a transmission medium or a storage medium, such as broadcasting or communication. The input / output unit 4615 may communicate with other devices via the Internet, or may communicate with a storage unit such as a cloud server.

[0085] The communication protocol used may be http, ftp, TCP, UDP, etc. A PULL type communication method or a PUSH type communication method may be used.

[0086] Either wired transmission or wireless transmission may be used. For wired transmission, Ethernet (registered trademark), USB, RS-232C, HDMI (registered trademark), coaxial cable, etc. are used. For wireless transmission, wireless LAN, Wi-Fi (registered trademark), Bluetooth (registered trademark), millimeter wave, etc. are used.

[0087] As a broadcasting system, for example, DVB-T2, DVB-S2, DVB-C2, ATSC3.0, or ISDB-S3 is used.

[0088] Fig. 5 is a diagram showing a configuration of a first encoding unit 4630 which is an example of the encoding unit 4613 that performs encoding using the first encoding method. Fig. 6 is a block diagram of the first encoding unit 4630. The first encoding unit 4630 generates encoded data (encoded stream) by encoding point cloud data using the first encoding method. The first encoding unit 4630 includes a position information encoding unit 4631, an attribute information encoding unit 4632, an additional information encoding unit 4633, and a multiplexing unit 4634.

[0089] The first encoding unit 4630 has a feature of performing encoding in consideration of a three-dimensional structure. Also, the first encoding unit 4630 has a feature that the attribute information encoding unit 4632 performs encoding using information obtained from the position information encoding unit 4631. The first encoding method is also called GPCC (Geometry based PCC).

[0090] The point cloud data is PCC point cloud data such as a PLY file, or PCC point cloud data generated from sensor information, and includes position information (Position), attribute information (Attribute), and other additional information (MetaData). The position information is input to a position information encoding unit 4631, the attribute information is input to an attribute information encoding unit 4632, and the additional information is input to an additional information encoding unit 4633.

[0091] The position information encoding unit 4631 generates encoded position information (Compressed Geometry) that is encoded data by encoding the position information. For example, the position information encoding unit 4631 encodes the position information using an N-ary tree structure such as an octet tree. Specifically, in the octet tree, the target space is divided into eight nodes (subspaces), and 8-bit information (occupancy code) indicating whether or not a point cloud is included in each node is generated. In addition, the node that includes the point cloud is further divided into eight nodes, and 8-bit information indicating whether or not a point cloud is included in each of the eight nodes is generated. This process is repeated until the number of point clouds included in a predetermined hierarchy or node is equal to or less than a threshold value.

[0092] The attribute information encoding unit 4632 generates encoded attribute information (Compressed Attribute) that is encoded data by encoding using the configuration information generated by the position information encoding unit 4631. For example, the attribute information encoding unit 4632 determines a reference point (reference node) to be referenced in encoding a target point (target node) to be processed based on the octree structure generated by the position information encoding unit 4631. For example, the attribute information encoding unit 4632 refers to a node, among peripheral nodes or adjacent nodes, whose parent node in the octree is the same as that of the target node. Note that the method of determining the reference relationship is not limited to this.

[0093] Furthermore, the encoding process of the attribute information may include at least one of a quantization process, a prediction process, and an arithmetic coding process. In this case, the reference means using a reference node to calculate a predicted value of the attribute information, or using a state of the reference node (e.g., occupancy information indicating whether or not a point group is included in the reference node) to determine a parameter of the encoding. For example, the parameter of the encoding is a quantization parameter in the quantization process, or a context in the arithmetic coding.

[0094] The additional information encoding unit 4633 generates encoded additional information (Compressed MetaData) that is encoded data by encoding compressible data from the additional information.

[0095] The multiplexing unit 4634 multiplexes the encoding position information, the encoding attribute information, the encoding additional information, and other additional information to generate an encoded stream (Compressed Stream) that is encoded data. The generated encoded stream is output to a processing unit of a system layer (not shown).

[0096] Next, a first decoding unit 4640 which is an example of the decoding unit 4624 that performs decoding of the first encoding method will be described. FIG. 7 is a diagram showing a configuration of the first decoding unit 4640. FIG. 8 is a block diagram of the first decoding unit 4640. The first decoding unit 4640 generates point group data by decoding, by the first encoding method, encoded data (encoded stream) encoded by the first encoding method. The first decoding unit 4640 includes a demultiplexing unit 4641, a position information decoding unit 4642, an attribute information decoding unit 4643, and an additional information decoding unit 4644.

[0097] A coded stream (compressed stream), which is coded data, is input to the first decoding unit 4640 from a processing unit in a system layer (not shown).

[0098] The demultiplexer 4641 separates the encoded position information (Compressed Geometry), the encoded attribute information (Compressed Attribute), the encoded additional information (Compressed MetaData), and other additional information from the encoded data.

[0099] The position information decoding unit 4642 generates position information by decoding the encoded position information. For example, the position information decoding unit 4642 restores the position information of a point group represented by three-dimensional coordinates from the encoded position information represented by an N-ary tree structure such as an octree.

[0100] The attribute information decoding unit 4643 decodes the encoded attribute information based on the configuration information generated by the position information decoding unit 4642. For example, the attribute information decoding unit 4643 determines a reference point (reference node) to be referenced in decoding a target point (target node) to be processed based on the octree structure obtained by the position information decoding unit 4642. For example, the attribute information decoding unit 4643 refers to a node, among peripheral nodes or adjacent nodes, whose parent node in the octree is the same as that of the target node. Note that the method of determining the reference relationship is not limited to this.

[0101] In addition, the decoding process of the attribute information may include at least one of an inverse quantization process, a prediction process, and an arithmetic decoding process. In this case, the reference means using a reference node to calculate a predicted value of the attribute information, or using a state of the reference node (e.g., occupancy information indicating whether or not a point group is included in the reference node) to determine a parameter of the decoding. For example, the parameter of the decoding is a quantization parameter in the inverse quantization process, or a context in the arithmetic decoding.

[0102] The additional information decoding unit 4644 generates additional information by decoding the encoded additional information. The first decoding unit 4640 uses the additional information required for decoding the position information and attribute information during decoding, and outputs the additional information required for an application to the outside.

[0103] Next, a second encoding unit 4650, which is an example of the encoding unit 4613 that performs encoding by the second encoding method, will be described. Fig. 9 is a diagram showing a configuration of the second encoding unit 4650. Fig. 10 is a block diagram of the second encoding unit 4650.

[0104] The second encoding unit 4650 generates encoded data (encoded stream) by encoding the point cloud data by a second encoding method. The second encoding unit 4650 includes an additional information generating unit 4651, a position image generating unit 4652, an attribute image generating unit 4653, a video encoding unit 4654, an additional information encoding unit 4655, and a multiplexing unit 4656.

[0105] The second encoding unit 4650 has a feature of generating a position image and an attribute image by projecting a three-dimensional structure onto a two-dimensional image, and encoding the generated position image and attribute image using an existing video encoding method. The second encoding method is also called VPCC (Video based PCC).

[0106] The point cloud data is PCC point cloud data such as a PLY file, or PCC point cloud data generated from sensor information, and includes position information (Position), attribute information (Attribute), and other additional information (MetaData).

[0107] The additional information generating unit 4651 generates map information of a plurality of two-dimensional images by projecting a three-dimensional structure onto the two-dimensional images.

[0108] The position image generating unit 4652 generates a position image (Geometry Image) based on the position information and the map information generated by the additional information generating unit 4651. This position image is, for example, a distance image in which distance (Depth) is indicated as a pixel value. Note that this distance image may be an image in which a plurality of point clouds are viewed from one viewpoint (an image in which a plurality of point clouds are projected onto one two-dimensional plane), a plurality of images in which a plurality of point clouds are viewed from multiple viewpoints, or a single image in which these multiple images are integrated.

[0109] The attribute image generating unit 4653 generates an attribute image based on the attribute information and the map information generated by the additional information generating unit 4651. This attribute image is, for example, an image in which the attribute information (for example, color (RGB)) is indicated as pixel values. Note that this image may be an image in which multiple point clouds are viewed from one viewpoint (an image in which multiple point clouds are projected onto one two-dimensional plane), or multiple images in which multiple point clouds are viewed from multiple viewpoints, or a single image in which these multiple images are integrated.

[0110] The video encoding unit 4654 generates an encoded position image (Compressed Geometry Image) and an encoded attribute image (Compressed Attribute Image), which are encoded data, by encoding the position image and the attribute image using a video encoding method. Note that any known encoding method may be used as the video encoding method. For example, the video encoding method is AVC, HEVC, or the like.

[0111] The additional information encoding unit 4655 generates encoded additional information (Compressed MetaData) by encoding the additional information and map information included in the point cloud data.

[0112] The multiplexing unit 4656 multiplexes the encoding position image, the encoding attribute image, the encoding additional information, and other additional information to generate an encoded stream (Compressed Stream) that is encoded data. The generated encoded stream is output to a processing unit of a system layer (not shown).

[0113] Next, a second decoding unit 4660 which is an example of the decoding unit 4624 that performs decoding of the second encoding method will be described. FIG. 11 is a diagram showing a configuration of the second decoding unit 4660. FIG. 12 is a block diagram of the second decoding unit 4660. The second decoding unit 4660 generates point group data by decoding, by the second encoding method, encoded data (encoded stream) encoded by the second encoding method. The second decoding unit 4660 includes a demultiplexing unit 4661, a video decoding unit 4662, an additional information decoding unit 4663, a position information generating unit 4664, and an attribute information generating unit 4665.

[0114] A coded stream (compressed stream), which is coded data, is input to the second decoding unit 4660 from a processing unit in a system layer (not shown).

[0115] The demultiplexer 4661 separates the encoded position image (Compressed Geometry Image), the encoded attribute image (Compressed Attribute Image), the encoded additional information (Compressed MetaData), and other additional information from the encoded data.

[0116] The video decoding unit 4662 generates a position image and an attribute image by decoding the encoded position image and the encoded attribute image using a video encoding method. Note that any known encoding method may be used as the video encoding method. For example, the video encoding method is AVC or HEVC.

[0117] The additional information decoding unit 4663 decodes the encoded additional information to generate additional information including map information and the like.

[0118] The position information generating unit 4664 generates position information using the position image and map information. The attribute information generating unit 4665 generates attribute information using the attribute image and map information.

[0119] The second decoding unit 4660 uses the additional information necessary for decoding during decoding, and outputs the additional information necessary for an application to the outside.

[0120] Problems with the PCC encoding method will be described below. Fig. 13 is a diagram showing a protocol stack related to PCC encoded data. Fig. 13 shows an example in which other media data such as video (e.g., HEVC) or audio is multiplexed with PCC encoded data and transmitted or stored.

[0121] The multiplexing method and file format have the function of multiplexing various encoded data and transmitting or storing them. In order to transmit or store the encoded data, the encoded data must be converted into the format of the multiplexing method. For example, HEVC specifies a technology for storing encoded data in a data structure called a NAL unit and storing the NAL unit in ISOBMFF.

[0122] Meanwhile, a first encoding method (Codec1) and a second encoding method (Codec2) are currently being considered as methods for encoding point cloud data. However, the structure of the encoded data and the method for storing the encoded data in a system format have not been defined, which poses the problem that MUX processing (multiplexing) in the encoding unit, transmission, and storage cannot be performed as is.

[0123] In the following description, unless a specific encoding method is specified, it refers to either the first encoding method or the second encoding method.

[0124] Hereinafter, a method of defining an NAL unit according to the present embodiment will be described. For example, in conventional codecs such as HEVC, one format of NAL unit is defined for one codec. However, there has been no method to support a format in which two codecs, a first encoding method and a second encoding method (hereinafter referred to as PCC codec), are mixed, such as PCC.

[0125] First, we will explain the encoding unit 4670, which has the functions of both the first encoding unit 4630 and the second encoding unit 4650 described above, and the decoding unit 4680, which has the functions of both the first decoding unit 4640 and the second decoding unit 4660.

[0126] 14 is a block diagram of an encoding unit 4670 according to this embodiment. This encoding unit 4670 includes the above-mentioned first encoding unit 4630 and second encoding unit 4650, and a multiplexing unit 4671. The multiplexing unit 4671 multiplexes the encoded data generated by the first encoding unit 4630 and the encoded data generated by the second encoding unit 4650, and outputs the obtained encoded data.

[0127] 15 is a block diagram of a decoding unit 4680 according to this embodiment. This decoding unit 4680 includes the above-mentioned first decoding unit 4640 and second decoding unit 4660, and a demultiplexing unit 4681. The demultiplexing unit 4681 extracts, from the input coded data, coded data for which the first coding method is used and coded data for which the second coding method is used. The demultiplexing unit 4681 outputs the coded data for which the first coding method is used to the first decoding unit 4640, and outputs the coded data for which the second coding method is used to the second decoding unit 4660.

[0128] With the above configuration, the encoding unit 4670 can selectively use the first encoding method and the second encoding method to encode the point cloud data. Furthermore, the decoding unit 4680 can decode encoded data encoded using the first encoding method, encoded data encoded using the second encoding method, and encoded data encoded using both the first encoding method and the second encoding method.

[0129] For example, the encoding unit 4670 may switch the encoding method (the first encoding method and the second encoding method) in units of point cloud data or in units of frames. Furthermore, the encoding unit 4670 may switch the encoding method in units that can be encoded.

[0130] The encoding unit 4670 generates encoded data (encoded stream) including, for example, identification information of the PCC codec.

[0131] The demultiplexing unit 4681 included in the decoding unit 4680 identifies data using, for example, PCC codec identification information. If the data is data encoded by a first encoding method, the demultiplexing unit 4681 outputs the data to the first decoding unit 4640, and if the data is data encoded by a second encoding method, the demultiplexing unit 4681 outputs the data to the second decoding unit 4660.

[0132] In addition to the PCC codec identification information, the encoding unit 4670 may also send information indicating whether both encoding methods or one of the encoding methods has been used as control information.

[0133] Next, the encoding process according to this embodiment will be described. Fig. 16 is a flowchart of the encoding process according to this embodiment. By using the identification information of the PCC codec, it becomes possible to perform the encoding process corresponding to a plurality of codecs.

[0134] First, the encoding unit 4670 encodes the PCC data using either one or both of the codecs of the first encoding method and the second encoding method (S4681).

[0135] If the codec used is the second encoding method (second encoding method in S4682), the encoding unit 4670 sets pcc_codec_type included in the NAL unit header to a value indicating that the data included in the payload of the NAL unit is data encoded using the second encoding method (S4683). Next, the encoding unit 4670 sets an identifier of the NAL unit for the second encoding method to pcc_nal_unit_type in the NAL unit header (S4684). Then, the encoding unit 4670 generates a NAL unit that has the set NAL unit header and includes encoded data in its payload. Then, the encoding unit 4670 transmits the generated NAL unit (S4685).

[0136] On the other hand, if the codec used is the first encoding method (first encoding method in S4682), the encoding unit 4670 sets pcc_codec_type included in the NAL unit header to a value indicating that the data included in the payload of the NAL unit is data encoded using the first encoding method (S4686). Next, the encoding unit 4670 sets an identifier of the NAL unit for the first encoding method to pcc_nal_unit_type included in the NAL unit header (S4687). Next, the encoding unit 4670 generates a NAL unit that has the set NAL unit header and includes encoded data in its payload. Then, the encoding unit 4670 transmits the generated NAL unit (S4685).

[0137] Next, the decoding process according to this embodiment will be described. Fig. 17 is a flowchart of the decoding process according to this embodiment. By using the identification information of the PCC codec, the decoding process corresponding to a plurality of codecs becomes possible.

[0138] First, the decoding unit 4680 receives an NAL unit (S4691). For example, this NAL unit is generated by the processing in the encoding unit 4670 described above.

[0139] Next, the decoding unit 4680 determines whether pcc_codec_type included in the NAL unit header indicates the first encoding method or the second encoding method (S4692).

[0140] If pcc_codec_type indicates the second encoding method (second encoding method in S4692), the decoding unit 4680 determines that the data included in the payload of the NAL unit is data encoded using the second encoding method (S4693). Then, the second decoding unit 4660 identifies the data as pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the second encoding method (S4694). Then, the decoding unit 4680 decodes the PCC data using the decoding process of the second encoding method (S4695).

[0141] On the other hand, if pcc_codec_type indicates the first encoding method (first encoding method in S4692), the decoding unit 4680 determines that the data included in the payload of the NAL unit is data encoded using the first encoding method (S4696).Then, the decoding unit 4680 identifies the data as pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the first encoding method (S4697).Then, the decoding unit 4680 decodes the PCC data using the decoding process of the first encoding method (S4698).

[0142] As described above, a three-dimensional data encoding device according to one embodiment of the present disclosure generates an encoded stream by encoding three-dimensional data (e.g., point cloud data), and stores information indicating the encoding method used for the encoding, either the first encoding method or the second encoding method (e.g., codec identification information), in control information (e.g., a parameter set) of the encoded stream.

[0143] According to this, when decoding the encoded stream generated by the three-dimensional data encoding device, the three-dimensional data decoding device can determine the encoding method used for encoding by using the information stored in the control information, and therefore the three-dimensional data decoding device can correctly decode the encoded stream even when multiple encoding methods are used.

[0144] For example, the three-dimensional data includes position information. In the encoding, the three-dimensional data encoding device encodes the position information. In the storing, the three-dimensional data encoding device stores, in control information of the position information, information indicating an encoding method used to encode the position information, out of the first encoding method and the second encoding method.

[0145] For example, the three-dimensional data includes position information and attribute information. In the encoding, the three-dimensional data encoding device encodes the position information and the attribute information. In the storing, the three-dimensional data encoding device stores, in control information for the position information, information indicating an encoding method, out of the first encoding method and the second encoding method, used to encode the position information, and stores, in control information for the attribute information, information indicating an encoding method, out of the first encoding method and the second encoding method, used to encode the attribute information.

[0146] According to this, different encoding methods can be used for the position information and the attribute information, thereby improving the encoding efficiency.

[0147] For example, the three-dimensional data encoding method further stores the encoded stream in one or more units (eg, NAL units).

[0148] For example, the unit has a format common to the first encoding method and the second encoding method, and includes information indicating the type of data contained in the unit, and having independent definitions in the first encoding method and the second encoding method (e.g., pcc_nal_unit_type).

[0149] For example, the unit has a format that is independent between the first encoding method and the second encoding method, and includes information indicating the type of data contained in the unit, the information having a definition that is independent between the first encoding method and the second encoding method (e.g., codec1_nal_unit_type or codec2_nal_unit_type).

[0150] For example, the unit has a format common to the first encoding method and the second encoding method, and includes information indicating the type of data contained in the unit, the information having a definition common to the first encoding method and the second encoding method (e.g., pcc_nal_unit_type).

[0151] For example, the three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.

[0152] In addition, the three-dimensional data decoding device of this embodiment determines the encoding method used to encode the encoded stream based on information (e.g., codec identification information) indicating which of the first and second encoding methods was used to encode the three-dimensional data, which is included in control information (e.g., a parameter set) of the encoded stream generated by encoding three-dimensional data, and decodes the encoded stream using the determined encoding method.

[0153] According to this, when decoding an encoded stream, the three-dimensional data decoding device can determine the encoding method used for encoding by using the information stored in the control information, and therefore can correctly decode the encoded stream even when multiple encoding methods are used.

[0154] For example, the three-dimensional data includes position information, and the encoded stream includes encoded data of the position information. In the determination, the three-dimensional data decoding device determines an encoding method used to encode the position information based on information indicating an encoding method used to encode the position information, out of the first encoding method and the second encoding method, which is included in control information of the position information included in the encoded stream. In the decoding, the three-dimensional data decoding device decodes the encoded data of the position information using the determined encoding method used to encode the position information.

[0155] For example, the three-dimensional data includes position information and attribute information, and the encoded stream includes encoded data of the position information and encoded data of the attribute information. In the determination, the three-dimensional data decoding device determines the encoding method used to encode the position information based on information indicating the encoding method used to encode the position information out of the first encoding method and the second encoding method, which is included in control information of the position information included in the encoded stream, and determines the encoding method used to encode the attribute information based on information indicating the encoding method used to encode the attribute information out of the first encoding method and the second encoding method, which is included in control information of the attribute information included in the encoded stream. In the decoding, the three-dimensional data decoding device decodes the encoded data of the position information using the determined encoding method used to encode the position information, and decodes the encoded data of the attribute information using the determined encoding method used to encode the attribute information.

[0156] According to this, different encoding methods can be used for the position information and the attribute information, thereby improving the encoding efficiency.

[0157] For example, the encoded stream is stored in one or more units (for example, NAL units), and the three-dimensional data decoding device further obtains the encoded stream from the one or more units.

[0158] For example, the unit has a format common to the first encoding method and the second encoding method, and includes information indicating the type of data contained in the unit, and having independent definitions in the first encoding method and the second encoding method (e.g., pcc_nal_unit_type).

[0159] For example, the unit has a format that is independent between the first encoding method and the second encoding method, and includes information indicating the type of data contained in the unit, the information having a definition that is independent between the first encoding method and the second encoding method (e.g., codec1_nal_unit_type or codec2_nal_unit_type).

[0160] For example, the unit has a format common to the first encoding method and the second encoding method, and includes information indicating the type of data contained in the unit, the information having a definition common to the first encoding method and the second encoding method (e.g., pcc_nal_unit_type).

[0161] For example, the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.

[0162] (Embodiment 2) In this embodiment, a method for storing NAL units in an ISOBMFF file will be described.

[0163] ISOBMFF (ISO based media file format) is a file format standard defined in ISO / IEC 14496-12. ISOBMFF specifies a format that can store multiplexed media such as video, audio, and text, and is a media-independent standard.

[0164] The basic structure (file) of ISOBMFF is explained. The basic unit in ISOBMFF is a box. A box consists of type, length, and data, and a file is a collection of boxes of various types.

[0165] 18 is a diagram showing the basic structure (file) of ISOBMFF. An ISOBMFF file mainly includes boxes such as ftyp, which indicates the brand of the file with 4CC (4-character code), moov, which stores metadata such as control information, and mdat, which stores data.

[0166] A method of storing each medium in an ISOBMFF file is specified separately, and for example, a method of storing AVC video and HEVC video is specified in ISO / IEC14496-15. Here, it is considered that the function of ISOBMFF is extended and used to accumulate or transmit PCC encoded data, but there is no provision yet for storing PCC encoded data in an ISOBMFF file. Therefore, in this embodiment, a method of storing PCC encoded data in an ISOBMFF file will be described.

[0167] 19 is a diagram showing a protocol stack when a NAL unit common to PCC codecs is stored in an ISOBMFF file. Here, a NAL unit common to PCC codecs is stored in an ISOBMFF file. Although the NAL unit is common to PCC codecs, since multiple PCC codecs are stored in the NAL unit, it is desirable to define a storage method (Carriage of Codec1, Carriage of Codec2) according to each codec.

[0168] Next, a method of storing a common PCC NAL unit that supports multiple PCC codecs in an ISOBMFF file will be described. Fig. 20 is a diagram showing an example of storing a common PCC NAL unit in an ISOBMFF file in a storage method for codec 1 (Carriage of Codec1). Fig. 21 is a diagram showing an example of storing a common PCC NAL unit in an ISOBMFF file in a storage method for codec 2 (Carriage of Codec2).

[0169] Here, ftyp is important information for identifying the file format, and a different identifier is defined for ftyp for each codec. When PCC encoded data encoded with a first encoding method (encoding format) is stored in a file, ftyp=pcc1 is set. When PCC encoded data encoded with a second encoding method is stored in a file, ftyp=pcc2 is set.

[0170] Here, pcc1 indicates that PCC codec 1 (first encoding method) is used. pcc2 indicates that PCC codec 2 (second encoding method) is used. In other words, pcc1 and pcc2 indicate that the data is PCC (coded data of three-dimensional data (point cloud data)), and indicate PCC codecs (first and second encoding methods).

[0171] A method of storing NAL units in an ISOBMFF file will be described below. The multiplexing unit analyzes the NAL unit header, and if pcc_codec_type=Codec1, writes pcc1 in ftyp of ISOBMFF.

[0172] In addition, the multiplexing unit analyzes the NAL unit header, and if pcc_codec_type=Codec2, writes pcc2 in the ftyp of ISOBMFF.

[0173] Furthermore, if pcc_nal_unit_type is metadata, the multiplexing unit stores the NAL unit in a predetermined manner, for example, in moov or mdat. If pcc_nal_unit_type is data, the multiplexing unit stores the NAL unit in a predetermined manner, for example, in moov or mdat.

[0174] For example, the multiplexing unit may store the NAL unit size in the NAL unit in the same manner as in HEVC.

[0175] This storage method makes it possible to determine whether the PCC encoded data has been encoded by the first encoding method or the second encoding method by analyzing the ftyp included in the file in the demultiplexer (system layer). Furthermore, as described above, by determining whether the PCC encoded data has been encoded by the first encoding method or the second encoding method, it is possible to extract encoded data encoded by one of the encoding methods from data in which encoded data encoded by both encoding methods are mixed. This makes it possible to reduce the amount of data transmitted when transmitting encoded data. Furthermore, this storage method makes it possible to use a common data format for the first encoding method and the second encoding method without setting different data (file) formats.

[0176] In addition, when codec identification information is indicated in metadata of the system layer, such as ftyp in ISOBMFF, the multiplexing unit may store the NAL unit from which pcc_nal_unit_type has been deleted in the ISOBMFF file.

[0177] Next, the configuration and operation of the multiplexing unit provided in the three-dimensional data encoding system (three-dimensional data encoding device) of this embodiment, and the demultiplexing unit provided in the three-dimensional data decoding system (three-dimensional data decoding device) of this embodiment will be described.

[0178] Fig. 22 is a diagram showing a configuration of the first multiplexing unit 4710. The first multiplexing unit 4710 includes a file conversion unit 4711 that generates multiplexed data (file) by storing the coded data and control information (NAL units) generated by the first coding unit 4630 in an ISOBMFF file. This first multiplexing unit 4710 is included in the multiplexing unit 4614 shown in Fig. 1, for example.

[0179] Fig. 23 is a diagram showing a configuration of the first demultiplexing unit 4720. The first demultiplexing unit 4720 includes a file inverse conversion unit 4721 that acquires coded data and control information (NAL units) from multiplexed data (file) and outputs the acquired coded data and control information to the first decoding unit 4640. This first demultiplexing unit 4720 is included in the demultiplexing unit 4623 shown in Fig. 1, for example.

[0180] Fig. 24 is a diagram showing a configuration of the second multiplexing unit 4730. The second multiplexing unit 4730 includes a file conversion unit 4731 that generates multiplexed data (file) by storing the coded data and control information (NAL units) generated by the second coding unit 4650 in an ISOBMFF file. This second multiplexing unit 4730 is included in the multiplexing unit 4614 shown in Fig. 1, for example.

[0181] Fig. 25 is a diagram showing a configuration of the second demultiplexing unit 4740. The second demultiplexing unit 4740 includes a file inverse conversion unit 4741 that acquires coded data and control information (NAL units) from multiplexed data (file) and outputs the acquired coded data and control information to the second decoding unit 4660. This second demultiplexing unit 4740 is included in the demultiplexing unit 4623 shown in Fig. 1, for example.

[0182] 26 is a flowchart of the multiplexing process by the first multiplexing unit 4710. First, the first multiplexing unit 4710 analyzes pcc_codec_type included in the NAL unit header to determine whether the codec being used is the first encoding method or the second encoding method (S4701).

[0183] If pcc_codec_type indicates the second encoding method (second encoding method in S4702), the first multiplexing unit 4710 does not process the NAL unit (S4703).

[0184] On the other hand, if pcc_codec_type indicates the second encoding method (first encoding method in S4702), the first multiplexing unit 4710 writes pcc1 in ftyp (S4704). That is, the first multiplexing unit 4710 writes information indicating that data encoded by the first encoding method is stored in the file in ftyp.

[0185] Next, the first multiplexing unit 4710 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov, mdat, or the like) in a predetermined method according to the data type indicated by pcc_nal_unit_type (S4705).Then, the first multiplexing unit 4710 creates an ISOBMFF file including the ftyp and the box (S4706).

[0186] 27 is a flowchart of the multiplexing process by the second multiplexing unit 4730. First, the second multiplexing unit 4730 analyzes pcc_codec_type included in the NAL unit header to determine whether the codec being used is the first encoding method or the second encoding method (S4711).

[0187] When pcc_unit_type indicates the second encoding method (second encoding method in S4712), the second multiplexing unit 4730 writes pcc2 in ftyp (S4713). That is, the second multiplexing unit 4730 writes information indicating that data encoded by the second encoding method is stored in the file in ftyp.

[0188] Next, the second multiplexing unit 4730 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov, mdat, or the like) in a predetermined method according to the data type indicated by pcc_nal_unit_type (S4714).Then, the second multiplexing unit 4730 creates an ISOBMFF file including the ftyp and the box (S4715).

[0189] On the other hand, if pcc_unit_type indicates the first encoding method (first encoding method in S4712), the second multiplexing unit 4730 does not process the NAL unit (S4716).

[0190] The above process shows an example of encoding the PCC data by either the first encoding method or the second encoding method. The first multiplexing unit 4710 and the second multiplexing unit 4730 store the desired NAL unit in a file by identifying the codec type of the NAL unit. If the PCC codec identification information is included in addition to the NAL unit header, the first multiplexing unit 4710 and the second multiplexing unit 4730 may identify the codec type (the first encoding method or the second encoding method) in steps S4701 and S4711 using the PCC codec identification information included in addition to the NAL unit header.

[0191] Furthermore, when storing the data in a file in steps S4706 and S4714, the first multiplexing unit 4710 and the second multiplexing unit 4730 may delete pcc_nal_unit_type from the NAL unit header before storing the data in the file.

[0192] 28 is a flowchart showing the processing by the first demultiplexing unit 4720 and the first decoding unit 4640. First, the first demultiplexing unit 4720 analyzes ftyp included in the ISOBMFF file (S4721). If the codec indicated by ftyp is the second encoding method (pcc2) (second encoding method in S4722), the first demultiplexing unit 4720 determines that the data included in the payload of the NAL unit is data encoded by the second encoding method (S4723). In addition, the first demultiplexing unit 4720 conveys the result of the determination to the first decoding unit 4640. The first decoding unit 4640 does not process the NAL unit (S4724).

[0193] On the other hand, if the codec indicated by ftyp is the first encoding method (pcc1) (first encoding method in S4722), the first demultiplexing unit 4720 determines that the data included in the payload of the NAL unit is data encoded by the first encoding method (S4725). In addition, the first demultiplexing unit 4720 conveys the result of the determination to the first decoding unit 4640.

[0194] The first decoding unit 4640 identifies the data by determining that the pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the first encoding method (S4726).Then, the first decoding unit 4640 decodes the PCC data using the decoding process for the first encoding method (S4727).

[0195] 29 is a flowchart showing the processing by the second demultiplexing unit 4740 and the second decoding unit 4660. First, the second demultiplexing unit 4740 analyzes ftyp included in the ISOBMFF file (S4731). If the codec indicated by ftyp is the second encoding method (pcc2) (second encoding method in S4732), the second demultiplexing unit 4740 determines that the data included in the payload of the NAL unit is data encoded by the second encoding method (S4733). In addition, the second demultiplexing unit 4740 conveys the result of the determination to the second decoding unit 4660.

[0196] The second decoding unit 4660 identifies the data by determining that the pcc_nal_unit_type included in the NAL unit header is an identifier of a NAL unit for the second encoding method (S4734).Then, the second decoding unit 4660 decodes the PCC data using the decoding process for the second encoding method (S4735).

[0197] On the other hand, if the codec indicated by ftyp is the first encoding method (pcc1) (first encoding method in S4732), the second demultiplexing unit 4740 determines that the data included in the payload of the NAL unit is data encoded by the first encoding method (S4736). In addition, the second demultiplexing unit 4740 conveys the result of the determination to the second decoding unit 4660. The second decoding unit 4660 does not process the NAL unit (S4737).

[0198] In this way, for example, by identifying the codec type of the NAL unit in the first demultiplexing unit 4720 or the second demultiplexing unit 4740, the codec type can be identified at an early stage. Furthermore, the desired NAL unit can be input to the first decoding unit 4640 or the second decoding unit 4660, and unnecessary NAL units can be removed. In this case, the process of analyzing the codec identification information in the first decoding unit 4640 or the second decoding unit 4660 may become unnecessary. Note that the first decoding unit 4640 or the second decoding unit 4660 may perform the process of analyzing the codec identification information by referring to the NAL unit type again.

[0199] In addition, if the first multiplexing unit 4710 or the second multiplexing unit 4730 removes pcc_nal_unit_type from the NAL unit header, the first demultiplexing unit 4720 or the second demultiplexing unit 4740 may add pcc_nal_unit_type to the NAL unit and then output it to the first decoding unit 4640 or the second decoding unit 4660.

[0200] (Embodiment 3) This embodiment will describe a multiplexing unit and a demultiplexing unit corresponding to the encoding unit 4670 and the decoding unit 4680 compatible with a plurality of codecs, as described in Embodiment 1. Fig. 30 is a diagram showing configurations of the encoding unit 4670 and the third multiplexing unit 4750 according to this embodiment.

[0201] The encoding unit 4670 encodes the point cloud data using either one or both of the first and second encoding methods. The encoding unit 4670 may switch the encoding method (the first and second encoding methods) in units of point cloud data or in units of frames. The encoding unit 4670 may also switch the encoding method in units that can be encoded.

[0202] The encoding unit 4670 generates encoded data (encoded stream) including identification information of the PCC codec.

[0203] The third multiplexing unit 4750 includes a file conversion unit 4751. The file conversion unit 4751 converts the NAL units output from the encoding unit 4670 into a PCC data file. The file conversion unit 4751 analyzes the codec identification information included in the NAL unit header, and determines whether the PCC encoded data is data encoded by a first encoding method, data encoded by a second encoding method, or data encoded by both methods. The file conversion unit 4751 writes a brand name capable of identifying the codec in ftyp. For example, when indicating that the data is encoded by both methods, pcc3 is written in ftyp.

[0204] If the encoding unit 4670 describes identification information of the PCC codec outside the NAL unit, the file conversion unit 4751 may determine the PCC codec (encoding method) using the identification information.

[0205] FIG. 31 is a diagram showing the configuration of the third demultiplexing unit 4760 and the decoding unit 4680 according to the present embodiment.

[0206] The third demultiplexing unit 4760 includes a file inverse conversion unit 4761. The file inverse conversion unit 4761 analyzes the ftyp included in the file, and determines whether the PCC encoded data is data encoded by the first encoding method, data encoded by the second encoding method, or data encoded by both methods.

[0207] When the PCC encoded data is encoded by one of the encoding methods, the data is input to the corresponding decoding unit of the first decoding unit 4640 or the second decoding unit 4660, and the data is not input to the other decoding unit. When the PCC encoded data is encoded by both encoding methods, the data is input to the decoding unit 4680 that supports both methods.

[0208] The decoding unit 4680 decodes the PCC encoded data using either or both of the first encoding method and the second encoding method.

[0209] FIG. 32 is a flowchart showing processing by the third multiplexing section 4750 according to this embodiment.

[0210] First, the third multiplexing unit 4750 analyzes the pcc_codec_type included in the NAL unit header to determine whether the codec being used is the first encoding method, the second encoding method, or both the first encoding method and the second encoding method (S4741).

[0211] If the second encoding method is used (Yes in S4742 and the second encoding method in S4743), the third multiplexing unit 4750 writes pcc2 in ftyp (S4744). That is, the third multiplexing unit 4750 writes information indicating that data encoded by the second encoding method is stored in the file in ftyp.

[0212] Next, the third multiplexing unit 4750 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov, mdat, or the like) in a predetermined method according to the data type indicated by pcc_unit_type (S4745).Then, the third multiplexing unit 4750 creates an ISOBMFF file including the above ftyp and the above box (S4746).

[0213] On the other hand, if the first encoding method is used (Yes in S4742 and the first encoding method in S4743), the third multiplexing unit 4750 writes pcc1 in ftyp (S4747). That is, the third multiplexing unit 4750 writes information indicating that data encoded by the first encoding method is stored in the file in ftyp.

[0214] Next, the third multiplexing unit 4750 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov, mdat, or the like) in a predetermined method according to the data type indicated by pcc_unit_type (S4748).Then, the third multiplexing unit 4750 creates an ISOBMFF file including the above ftyp and the above box (S4746).

[0215] On the other hand, when both the first encoding method and the second encoding method are used (No in S4742), the third multiplexing unit 4750 writes pcc3 in ftyp (S4749). That is, the third multiplexing unit 4750 writes information indicating that data encoded by both encoding methods is stored in the file in ftyp.

[0216] Next, the third multiplexing unit 4750 analyzes pcc_nal_unit_type included in the NAL unit header, and stores the data in a box (moov, mdat, or the like) in a predetermined method according to the data type indicated by pcc_unit_type (S4750).Then, the third multiplexing unit 4750 creates an ISOBMFF file including the above ftyp and the above box (S4746).

[0217] 33 is a flowchart showing the processing by the third demultiplexing unit 4760 and the decoding unit 4680. First, the third demultiplexing unit 4760 analyzes ftyp included in the ISOBMFF file (S4761). If the codec indicated by ftyp is the second encoding method (pcc2) (Yes in S4762 and the second encoding method in S4763), the third demultiplexing unit 4760 determines that the data included in the payload of the NAL unit is data encoded by the second encoding method (S4764). In addition, the third demultiplexing unit 4760 conveys the result of the determination to the decoding unit 4680.

[0218] The decoding unit 4680 identifies the data by determining that the pcc_nal_unit_type included in the NAL unit header is an identifier of a NAL unit for the second encoding method (S4765). Then, the decoding unit 4680 decodes the PCC data using the decoding process for the second encoding method (S4766).

[0219] On the other hand, if the codec indicated by ftyp is the first encoding method (pcc1) (Yes in S4762 and the first encoding method in S4763), the third demultiplexing unit 4760 determines that the data included in the payload of the NAL unit is data encoded by the first encoding method (S4767). In addition, the third demultiplexing unit 4760 conveys the result of the determination to the decoding unit 4680.

[0220] The decoding unit 4680 identifies the data by determining that pcc_nal_unit_type included in the NAL unit header is an identifier of a NAL unit for the first encoding method (S4768). Then, the decoding unit 4680 decodes the PCC data using the decoding process for the first encoding method (S4769).

[0221] On the other hand, if ftyp indicates that both encoding methods are used (pcc3) (No in S4762), the third demultiplexing unit 4760 determines that the data included in the payload of the NAL unit is data encoded by both the first encoding method and the second encoding method (S4770). In addition, the third demultiplexing unit 4760 conveys the result of the determination to the decoding unit 4680.

[0222] The decoding unit 4680 identifies the data by determining that pcc_nal_unit_type included in the NAL unit header is an identifier of the NAL unit for the codec described in pcc_codec_type (S4771). Then, the decoding unit 4680 decodes the PCC data using the decoding processes of both encoding methods (S4772). That is, the decoding unit 4680 decodes data encoded by a first encoding method using the decoding process of the first encoding method, and decodes data encoded by a second encoding method using the decoding process of the second encoding method.

[0223] A modified example of this embodiment will be described below. As the type of brand indicated in ftyp, the following types may be indicated by the identification information. Also, a combination of the following types may be indicated by the identification information.

[0224] The identification information may indicate whether an object in the original data before PCC encoding is a point cloud with a restricted area or a large-scale point cloud with no restricted area such as map information.

[0225] The identification information may indicate whether the original data before PCC encoding is a static object or a dynamic object.

[0226] As described above, the identification information may indicate whether the PCC encoded data is data encoded using a first encoding method or data encoded using a second encoding method.

[0227] The identification information may indicate an algorithm used in the PCC encoding, where the algorithm is, for example, an encoding method that can be used in the first encoding method or the second encoding method.

[0228] The identification information may indicate different storage methods of the PCC encoded data in the ISOBMFF file, for example, the identification information may indicate whether the storage method used is a storage method for storage or a storage method for real-time transmission such as dynamic streaming.

[0229] Although the second and third embodiments have been described with reference to an example in which ISOBMFF is used as the file format, other formats may be used. For example, the same method as in the present embodiment may be used when storing PCC encoded data in MPEG-2 TS Systems, MPEG-DASH, MMT, or RMP.

[0230] In the above example, metadata such as identification information is stored in ftyp, but the metadata may be stored in a location other than ftyp. For example, the metadata may be stored in moov.

[0231] As described above, the three-dimensional data storage device (or the three-dimensional data multiplexing device, or the three-dimensional data encoding device) performs the process shown in FIG.

[0232] First, the three-dimensional data storage device (including, for example, the first multiplexing unit 4710, the second multiplexing unit 4730, or the third multiplexing unit 4750) acquires one or more units (for example, NAL units) in which an encoded stream in which point cloud data is encoded is stored (S4781). Next, the three-dimensional data storage device stores the one or more units in a file (for example, an ISOBMFF file) (S4782). In addition, in the storage (S4782), the three-dimensional data storage device stores information (for example, pcc1, pcc2, or pcc3) indicating that the data stored in the file is data in which point cloud data is encoded, in control information (for example, ftyp) of the file.

[0233] According to this, in a device that processes a file generated by the three-dimensional data storage device, it is possible to refer to the control information of the file and quickly determine whether the data stored in the file is encoded data of point cloud data or not, thereby realizing a reduction in the amount of processing of the device or an increase in the processing speed.

[0234] For example, the information further indicates which of the first and second encoding methods was used to encode the point cloud data. Note that the fact that the data stored in the file is data obtained by encoding the point cloud data and which of the first and second encoding methods was used to encode the point cloud data may be indicated by a single piece of information or may be indicated by different pieces of information.

[0235] According to this, a device that processes a file generated by the three-dimensional data storage device can refer to the control information of the file and quickly determine the codec used for the data stored in the file, thereby reducing the amount of processing of the device and speeding up the processing.

[0236] For example, the first encoding method is a method (GPCC) that encodes position information representing the positions of point cloud data as an N-ary tree (N is an integer equal to or greater than 2) and encodes attribute information using the position information, and the second encoding method is a method (VPCC) that generates a two-dimensional image from the point cloud data and encodes the two-dimensional image using a video encoding method.

[0237] For example, the file conforms to ISOBMFF (ISO based media file format).

[0238] For example, the three-dimensional data storage device includes a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.

[0239] As described above, the three-dimensional data acquisition device (or the three-dimensional data demultiplexing device, or the three-dimensional data decoding device) performs the process shown in FIG.

[0240] The three-dimensional data acquisition device (including, for example, the first demultiplexing unit 4720, the second demultiplexing unit 4740, or the third demultiplexing unit 4760) acquires a file (for example, an ISOBMFF file) that stores one or more units (for example, NAL units) in which an encoded stream in which point cloud data is encoded is stored (S4791). Next, the three-dimensional data acquisition device acquires one or more units from the file (S4792). In addition, the control information of the file (for example, ftyp) includes information (for example, pcc1, pcc2, or pcc3) that indicates that the data stored in the file is data in which point cloud data is encoded.

[0241] For example, the three-dimensional data acquisition device refers to the information and determines whether the data stored in the file is data obtained by encoding point cloud data. When the three-dimensional data acquisition device determines that the data stored in the file is data obtained by encoding point cloud data, the three-dimensional data acquisition device generates point cloud data by decoding the data obtained by encoding point cloud data included in one or more units. When the three-dimensional data acquisition device determines that the data stored in the file is data obtained by encoding point cloud data, the three-dimensional data acquisition device outputs (notifies) information indicating that the data included in one or more units is data obtained by encoding point cloud data to a downstream processing unit (for example, the first decoding unit 4640, the second decoding unit 4660, or the decoding unit 4680).

[0242] According to this, the three-dimensional data acquisition device can refer to the control information of the file and quickly determine whether the data stored in the file is encoded data of point cloud data or not, thereby reducing the amount of processing or speeding up the processing of the three-dimensional data acquisition device or a downstream device.

[0243] For example, the information further indicates the encoding method used for the encoding, either the first encoding method or the second encoding method. Note that the fact that the data stored in the file is data obtained by encoding point cloud data and the encoding method used for encoding the point cloud data, either the first encoding method or the second encoding method, may be indicated by a single piece of information or may be indicated by different pieces of information.

[0244] This allows the 3D data acquisition device to refer to the control information of the file and quickly determine the codec used for the data stored in the file, thereby reducing the amount of processing or speeding up the processing of the 3D data acquisition device or a downstream device.

[0245] For example, based on the information, the three-dimensional data acquisition device acquires data encoded by one of the encoding methods from encoded point cloud data which includes data encoded by a first encoding method and data encoded by a second encoding method.

[0246] For example, the first encoding method is a method (GPCC) that encodes position information representing the positions of point cloud data as an N-ary tree (N is an integer equal to or greater than 2) and encodes attribute information using the position information, and the second encoding method is a method (VPCC) that generates a two-dimensional image from the point cloud data and encodes the two-dimensional image using a video encoding method.

[0247] For example, the file conforms to ISOBMFF (ISO based media file format).

[0248] For example, the three-dimensional data acquisition device includes a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.

[0249] (Embodiment 4) In this embodiment, the types of encoded data (position information (Geometry), attribute information (Attribute), additional information (Metadata)) generated by the above-mentioned first encoding unit 4630 or second encoding unit 4650, a generation method of the additional information (metadata), and multiplexing processing in the multiplexing unit will be described. Note that the additional information (metadata) may also be referred to as a parameter set or control information.

[0250] In this embodiment, the dynamic object (three-dimensional point cloud data that changes over time) described in Figure 4 will be used as an example, but a similar method may also be used in the case of a static object (three-dimensional point cloud data at any time).

[0251] 36 is a diagram showing configurations of an encoding unit 4801 and a multiplexing unit 4802 included in the three-dimensional data encoding device according to this embodiment. The encoding unit 4801 corresponds to, for example, the first encoding unit 4630 or the second encoding unit 4650 described above. The multiplexing unit 4802 corresponds to the multiplexing unit 4634 or 46456 described above.

[0252] The encoding unit 4801 encodes point cloud data of multiple PCC (Point Cloud Compression) frames, and generates encoded data (Multiple Compressed Data) of multiple pieces of position information, attribute information, and additional information.

[0253] The multiplexing unit 4802 converts data of multiple data types (position information, attribute information, and additional information) into NAL units, thereby converting the data into a data structure that takes into consideration data access in the decoding device.

[0254] 37 is a diagram showing an example of the structure of coded data generated by the coding unit 4801. The arrows in the diagram indicate dependencies related to the decoding of coded data, and the source of the arrow depends on the data at the tip of the arrow. In other words, the decoding device decodes the data at the tip of the arrow, and uses the decoded data to decode the data at the tip of the arrow. In other words, dependency means that the data at the destination of dependency is referenced (used) in the processing (encoding, decoding, etc.) of the data at the source of dependency.

[0255] First, the process of generating encoded data of position information will be described. The encoding unit 4801 generates encoded position data (compressed geometry data) for each frame by encoding the position information of each frame. The encoded position data is represented as G(i), where i indicates the frame number, the time of the frame, etc.

[0256] The encoding unit 4801 also generates a position parameter set (GPS(i)) corresponding to each frame. The position parameter set includes parameters that can be used to decode the encoded position data. The encoded position data for each frame depends on the corresponding position parameter set.

[0257] Moreover, encoded position data consisting of multiple frames is defined as a position sequence (Geometry Sequence). The encoding unit 4801 generates a position sequence parameter set (Geometry Sequence PS: also written as position SPS) that stores parameters commonly used in decoding processes for multiple frames in the position sequence. The position sequence depends on the position SPS.

[0258] Next, a process for generating encoded data of attribute information will be described. Encoding unit 4801 generates encoded attribute data (Compressed Attribute Data) for each frame by encoding the attribute information of each frame. The encoded attribute data is represented as A(i). Fig. 37 shows an example in which attribute X and attribute Y exist, and the encoded attribute data of attribute X is represented as AX(i) and the encoded attribute data of attribute Y is represented as AY(i).

[0259] The encoding unit 4801 also generates an attribute parameter set (APS(i)) corresponding to each frame. The attribute parameter set for attribute X is represented as AXPS(i), and the attribute parameter set for attribute Y is represented as AYPS(i). The attribute parameter set includes parameters that can be used to decode the encoded attribute information. The encoded attribute data depends on the corresponding attribute parameter set.

[0260] Moreover, encoded attribute data consisting of multiple frames is defined as an attribute sequence. The encoding unit 4801 generates an attribute sequence parameter set (Attribute Sequence PS: also referred to as attribute SPS) that stores parameters commonly used in decoding processes for multiple frames in the attribute sequence. The attribute sequence depends on the attribute SPS.

[0261] Furthermore, in the first encoding method, the encoded attribute data depends on the encoded position data.

[0262] Also, Fig. 37 shows an example in which two types of attribute information (attribute X and attribute Y) exist. When there are two types of attribute information, for example, two encoding units generate respective data and metadata. Also, for example, an attribute sequence is defined for each type of attribute information, and an attribute SPS is generated for each type of attribute information.

[0263] In addition, while FIG. 37 shows an example in which there is one type of position information and two types of attribute information, the present invention is not limited to this, and there may be one type of attribute information, or three or more types. In this case, encoded data can be generated in a similar manner. In addition, in the case of point cloud data that does not have attribute information, attribute information may not be required. In this case, the encoding unit 4801 does not need to generate a parameter set related to the attribute information.

[0264] Next, a process of generating additional information (metadata) will be described. The encoding unit 4801 generates a PCC stream PS (also written as stream PS), which is a parameter set for the entire PCC stream. The encoding unit 4801 stores parameters that can be commonly used in decoding processes for one or more position sequences and one or more attribute sequences in the stream PS. For example, the stream PS includes identification information indicating the codec of the point cloud data, information indicating the algorithm used for encoding, and the like. The position sequence and the attribute sequence depend on the stream PS.

[0265] Next, an access unit and a GOF will be described. In this embodiment, the concept of an access unit (AU) and a group of frames (GOF) are newly introduced.

[0266] An access unit is a basic unit for accessing data during decoding, and is composed of one or more pieces of data and one or more pieces of metadata. For example, an access unit is composed of position information at the same time and one or more pieces of attribute information. A GOF is a random access unit, and is composed of one or more access units.

[0267] The encoding unit 4801 generates an access unit header (AU Header) as identification information indicating the beginning of an access unit. The encoding unit 4801 stores parameters related to the access unit in the access unit header. For example, the access unit header includes the configuration or information of the encoded data included in the access unit. The access unit header also includes parameters commonly used for data included in the access unit, such as parameters related to the decoding of the encoded data.

[0268] Alternatively, instead of an access unit header, the encoding unit 4801 may generate an access unit delimiter that does not include parameters related to the access unit. This access unit delimiter is used as identification information indicating the beginning of the access unit. The decoding device identifies the beginning of the access unit by detecting the access unit header or the access unit delimiter.

[0269] Next, generation of identification information for the start of a GOF will be described. The encoding unit 4801 generates a GOF header as identification information indicating the start of a GOF. The encoding unit 4801 stores parameters related to the GOF in the GOF header. For example, the GOF header includes the configuration or information of the encoded data included in the GOF. The GOF header also includes parameters commonly used for data included in the GOF, such as parameters related to the decoding of the encoded data.

[0270] Instead of a GOF header, the encoding unit 4801 may generate a GOF delimiter that does not include parameters related to the GOF. This GOF delimiter is used as identification information indicating the beginning of the GOF. The decoding device identifies the beginning of the GOF by detecting the GOF header or the GOF delimiter.

[0271] In PCC encoded data, for example, an access unit is defined as a PCC frame unit, and a decoding device accesses a PCC frame based on identification information at the beginning of the access unit.

[0272] Also, for example, GOF is defined as one random access unit. The decoding device accesses the random access unit based on the identification information at the beginning of the GOF. For example, if PCC frames are not dependent on each other and can be decoded independently, the PCC frames may be defined as the random access unit.

[0273] Note that two or more PCC frames may be assigned to one access unit, and multiple random access units may be assigned to one GOF.

[0274] Furthermore, the encoding unit 4801 may define and generate parameter sets or metadata other than those described above. For example, the encoding unit 4801 may generate SEI (Supplemental Enhancement Information) that stores parameters (optional parameters) that may not necessarily be used during decoding.

[0275] Next, the structure of the coded data and the method of storing the coded data in the NAL unit will be described.

[0276] For example, a data format is defined for each type of encoded data. Figure 38 shows an example of encoded data and NAL units.

[0277] For example, as shown in Fig. 38, the encoded data includes a header and a payload. The encoded data may include length information indicating the length (amount of data) of the encoded data, the header, or the payload. The encoded data may not include a header.

[0278] The header includes, for example, identification information for identifying the data, which indicates, for example, the data type or the frame number.

[0279] The header includes, for example, identification information indicating a reference relationship. This identification information is stored in the header when, for example, there is a dependency between data, and is information for referring to the reference destination from the reference source. For example, the header of the reference destination includes identification information for identifying the data. The header of the reference source includes identification information indicating the reference destination.

[0280] In addition, when the reference destination or the reference source can be identified or derived from other information, the identification information for specifying the data or the identification information indicating the reference relationship may be omitted.

[0281] The multiplexing unit 4802 stores the encoded data in the payload of the NAL unit. The NAL unit header includes pcc_nal_unit_type, which is identification information of the encoded data. Figure 39 shows an example of the semantics of pcc_nal_unit_type.

[0282] 39, when pcc_codec_type is codec 1 (Codec1: first encoding method), values ​​0 to 10 of pcc_nal_unit_type are assigned to the encoded position data (Geometry), encoded attribute X data (AttributeX), encoded attribute Y data (AttributeY), position PS (Geom.PS), attribute XPS (AttrX.PS), attribute YPS (AttrX.PS), position SPS (Geometry Sequence PS), attribute XSPS (AttributeX Sequence PS), attribute YSPS (AttributeY Sequence PS), AU header (AU Header), and GOF header (GOF Header) in codec 1. Values ​​11 and above are assigned as spares for codec 1.

[0283] When pcc_codec_type is Codec2 (Codec2: second encoding method), values ​​0 to 2 of pcc_nal_unit_type are assigned to codec data A (DataA), metadata A (MetaDataA), and metadata B (MetaDataB). Values ​​3 and above are assigned as spares for Codec2.

[0284] Next, the data transmission order will be described. The following describes the constraints on the transmission order of NAL units.

[0285] The multiplexing unit 4802 collectively transmits NAL units in units of GOF or AU. The multiplexing unit 4802 places a GOF header at the beginning of a GOF, and places an AU header at the beginning of an AU.

[0286] The multiplexing unit 4802 may allocate a sequence parameter set (SPS) for each AU so that the decoding device can decode from the next AU even if data is lost due to packet loss or the like.

[0287] If there is a dependency relationship related to decoding in the encoded data, the decoding device decodes the reference data after decoding the reference data. In order to enable the decoding device to decode the data in the order in which it was received without rearranging the data, the multiplexing unit 4802 sends out the reference data first.

[0288] Fig. 40 is a diagram showing examples of the transmission order of NAL units, showing three examples: position information priority, parameter priority, and data integration.

[0289] The position information priority transmission order is an example in which information related to position information and information related to attribute information are transmitted together. In this transmission order, the transmission of information related to position information is completed earlier than the transmission of information related to attribute information.

[0290] For example, by using this transmission order, a decoding device that does not decode attribute information may be able to set a time during which it does not process the attribute information by ignoring the decoding of the attribute information. Also, for example, in the case of a decoding device that wishes to decode position information quickly, it may be able to decode the position information more quickly by obtaining the encoded data of the position information quickly.

[0291] In FIG. 40, the attributes XSPS and YSPS are integrated and written as the attribute SPS, but the attributes XSPS and YSPS may be arranged separately.

[0292] In a parameter set priority sending order, the parameter sets are sent first and the data is sent later.

[0293] As described above, as long as the constraints on the NAL unit transmission order are met, the multiplexing unit 4802 may transmit the NAL units in any order. For example, order identification information may be defined, and the multiplexing unit 4802 may have a function for transmitting the NAL units in a number of different orders. For example, the NAL unit order identification information may be stored in the stream PS.

[0294] The three-dimensional data decoding device may perform decoding based on the order identification information. The three-dimensional data decoding device may instruct the three-dimensional data encoding device of a desired transmission order, and the three-dimensional data encoding device (multiplexing unit 4802) may control the transmission order according to the instructed transmission order.

[0295] The multiplexing unit 4802 may generate coded data in which multiple functions are merged, as long as the data is transmitted in a certain order, such as in the transmission order of the integrated data. For example, as shown in FIG. 40, the GOF header and the AU header may be integrated, or the AXPS and the AYPS may be integrated. In this case, an identifier indicating that the data has multiple functions is defined in the pcc_nal_unit_type.

[0296] A modified example of this embodiment will be described below. If the PS has levels, such as a frame-level PS, a sequence-level PS, and a PCC sequence-level PS, and the PCC sequence level is the higher level and the frame level is the lower level, the following method may be used to store parameters.

[0297] The default PS value is indicated in the higher PS. Also, if the value of the lower PS differs from the value of the higher PS, the PS value is indicated in the lower PS. Or, the PS value is not written in the higher PS, and is written in the lower PS. Or, information on whether the PS value is to be written in the lower PS, the higher PS, or both is indicated in either or both of the lower PS and the higher PS. Or, the lower PS may be merged into the higher PS. Or, if the lower PS and the higher PS overlap, the multiplexing unit 4802 may omit sending one of them.

[0298] The encoding unit 4801 or the multiplexing unit 4802 may divide data into slices or tiles, and transmit the divided data. The divided data includes information for identifying the divided data, and parameters used for decoding the divided data are included in the parameter set. In this case, an identifier indicating that the data stores data or parameters related to tiles or slices is defined in pcc_nal_unit_type.

[0299] The processing related to the order identification information will be explained below. Fig. 41 is a flowchart of processing by the three-dimensional data encoding device (the encoding unit 4801 and the multiplexing unit 4802) related to the transmission order of NAL units.

[0300] First, the three-dimensional data encoding device determines the transmission order (positional information priority or parameter set priority) of the NAL units (S4801). For example, the three-dimensional data encoding device determines the transmission order based on a specification from a user or an external device (e.g., a three-dimensional data decoding device).

[0301] If the determined transmission order is position information priority (position information priority in S4802), the three-dimensional data encoding device sets the order identification information included in the stream PS to position information priority (S4803). That is, in this case, the order identification information indicates that the NAL units are to be transmitted in a position information priority order. Then, the three-dimensional data encoding device transmits the NAL units in the position information priority order (S4804).

[0302] On the other hand, if the determined transmission order is parameter set priority (parameter set priority in S4802), the three-dimensional data encoding device sets the order identification information included in the stream PS to parameter set priority (S4805). That is, in this case, the order identification information indicates that the NAL units are to be transmitted in parameter set priority order. Then, the three-dimensional data encoding device transmits the NAL units in parameter set parameter set priority order (S4806).

[0303] 42 is a flowchart of a process performed by the three-dimensional data decoding device relating to the transmission order of NAL units. First, the three-dimensional data decoding device analyzes the order identification information included in the stream PS (S4811).

[0304] If the transmission order indicated by the order identification information has priority over positional information (positional information priority in S4812), the three-dimensional data decoding device assumes that the transmission order of the NAL units has priority over positional information and decodes the NAL units (S4813).

[0305] On the other hand, if the transmission order indicated by the order identification information is parameter set priority (parameter set priority in S4812), the three-dimensional data decoding device decodes the NAL unit assuming that the transmission order of the NAL unit is parameter set priority (S4814).

[0306] For example, if the three-dimensional data decoding device does not decode attribute information, in step S4813, it may obtain NAL units related to position information without obtaining all NAL units, and decode the position information from the obtained NAL units.

[0307] Next, a process related to generation of AUs and GOFs will be described. Fig. 43 is a flowchart of a process by the three-dimensional data encoding device (the multiplexing unit 4802) related to generation of AUs and GOFs in multiplexing of NAL units.

[0308] First, the three-dimensional data encoding device determines the type of encoded data (S4821). Specifically, the three-dimensional data encoding device determines whether the encoded data to be processed is data at the beginning of an AU, data at the beginning of a GOF, or other data.

[0309] If the encoded data is data at the start of a GOF (GOF start in S4822), the three-dimensional data encoding device places a GOF header and an AU header at the start of the encoded data belonging to the GOF to generate a NAL unit (S4823).

[0310] If the encoded data is data at the beginning of an AU (AU beginning in S4822), the three-dimensional data encoding device places an AU header at the beginning of the encoded data belonging to the AU and generates a NAL unit (S4824).

[0311] If the encoded data is not at the beginning of a GOF or an AU (other than the beginning of a GOF or an AU in S4822), the three-dimensional data encoding device places the encoded data after the AU header of the AU to which the encoded data belongs and generates a NAL unit (S4825).

[0312] Next, a process related to access to AUs and GOFs will be described. Fig. 44 is a flowchart of a process of a three-dimensional data decoding device related to access to AUs and GOFs in demultiplexing of NAL units.

[0313] First, the three-dimensional data decoding device analyzes the nal_unit_type included in the NAL unit to determine the type of coded data included in the NAL unit (S4831). Specifically, the three-dimensional data decoding device determines whether the coded data included in the NAL unit is data at the beginning of an AU, data at the beginning of a GOF, or other data.

[0314] If the encoded data contained in the NAL unit is data at the start of the GOF (start of GOF in S4832), the three-dimensional data decoding device determines that the NAL unit is the start position of random access, accesses the NAL unit, and starts the decoding process (S4833).

[0315] On the other hand, if the encoded data contained in the NAL unit is data at the beginning of an AU (AU beginning in S4832), the three-dimensional data decoding device determines that the NAL unit is the beginning of an AU, accesses the data contained in the NAL unit, and decodes the AU (S4834).

[0316] On the other hand, if the coded data included in the NAL unit is neither the start of a GOF nor the start of an AU (other than the start of a GOF or an AU in S4832), the three-dimensional data decoding device does not process the NAL unit.

[0317] As described above, the three-dimensional data encoding device performs the process shown in Fig. 45. The three-dimensional data encoding device encodes time-series three-dimensional data (for example, point cloud data of a dynamic object). The three-dimensional data includes position information and attribute information for each time.

[0318] First, the three-dimensional data encoding device encodes position information (S4841). Next, the three-dimensional data encoding device encodes the attribute information to be processed by referring to position information at the same time as the attribute information to be processed (S4842). Here, as shown in Fig. 37, the position information at the same time and the attribute information form an access unit (AU). In other words, the three-dimensional data encoding device encodes the attribute information to be processed by referring to position information included in the same access unit as the attribute information to be processed.

[0319] This allows the three-dimensional data encoding device to easily control references in encoding using the access unit, thereby reducing the amount of processing in the encoding process.

[0320] For example, a three-dimensional data encoding device generates a bitstream including encoded position information (encoded position data), encoded attribute information (encoded attribute data), and information indicating the position information referenced by the attribute information to be processed.

[0321] For example, the bit stream includes a position parameter set (position PS) including control information for position information at each time, and an attribute parameter set (attribute PS) including control information for attribute information at each time.

[0322] For example, the bit stream includes a position sequence parameter set (position SPS) including control information common to position information at multiple times, and an attribute sequence parameter set (attribute SPS) including control information common to attribute information at multiple times.

[0323] For example, the bit stream includes a stream parameter set (stream PS) that includes control information common to position information at a plurality of times and attribute information at a plurality of times.

[0324] For example, the bitstream includes an access unit header (AU header) that contains control information that is common within an access unit.

[0325] For example, a three-dimensional data encoding device encodes a GOF (group of frames), which is made up of one or more access units, so that the GOF can be decoded independently. In other words, a GOF is a random access unit.

[0326] For example, the bitstream includes a GOF header that contains control information that is common within a GOF.

[0327] For example, the three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.

[0328] As described above, the three-dimensional data decoding device performs the process shown in Fig. 46. The three-dimensional data decoding device decodes time-series three-dimensional data (for example, point cloud data of a dynamic object). The three-dimensional data includes position information and attribute information for each time. Position information and attribute information at the same time constitute an access unit (AU).

[0329] First, the three-dimensional data decoding device decodes position information from the bit stream (S4851). That is, the three-dimensional data decoding device generates position information by decoding the encoded position information (encoded position data) included in the bit stream.

[0330] Next, the three-dimensional data decoding device decodes the attribute information to be processed from the bit stream by referring to position information at the same time as the attribute information to be processed (S4852). That is, the three-dimensional data decoding device generates attribute information by decoding the encoded attribute information (encoded attribute data) included in the bit stream. At this time, the three-dimensional data decoding device refers to the decoded position information included in the same access unit as the attribute information.

[0331] According to this, the three-dimensional data decoding device can easily control references in decoding by using the access unit, and therefore the three-dimensional data decoding method can reduce the amount of processing in the decoding process.

[0332] For example, the three-dimensional data decoding device acquires information indicating the location information of the reference destination of the attribute information to be processed from the bit stream, and decodes the attribute information to be processed by referring to the location information of the reference destination indicated in the acquired information.

[0333] For example, the bit stream includes a position parameter set (position PS) including control information for position information at each time, and an attribute parameter set (attribute PS) including control information for attribute information at each time. That is, the three-dimensional data decoding device decodes the position information at the processing target time using the control information included in the position parameter set at the processing target time, and decodes the attribute information at the processing target time using the control information included in the attribute parameter set at the processing target time.

[0334] For example, the bit stream includes a position sequence parameter set (position SPS) including control information common to position information at multiple times, and an attribute sequence parameter set (attribute SPS) including control information common to attribute information at multiple times. That is, the three-dimensional data decoding device decodes the position information at multiple times using the control information included in the position sequence parameter set, and decodes the attribute information at multiple times using the control information included in the attribute sequence parameter set.

[0335] For example, the bit stream includes a stream parameter set (stream PS) including control information common to position information at multiple times and attribute information at multiple times. That is, the three-dimensional data decoding device decodes the position information at multiple times and the attribute information at multiple times using the control information included in the stream parameter set.

[0336] For example, the bit stream includes an access unit header (AU header) including common control information within an access unit. That is, the three-dimensional data decoding device decodes the position information and attribute information included in the access unit by using the control information included in the access unit header.

[0337] For example, a three-dimensional data decoding device independently decodes a group of frames (GOF), which is made up of one or more access units. In other words, a GOF is a random access unit.

[0338] For example, the bitstream includes a GOF header that includes control information common within a GOF. That is, the three-dimensional data decoding device decodes the position information and attribute information included in the GOF using the control information included in the GOF header.

[0339] For example, the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.

[0340] (Embodiment 5) A method for dividing point cloud data will be described below. Fig. 47 is a diagram showing an example of division into slices and tiles.

[0341] First, a method of dividing into slices will be described. The three-dimensional data encoding device divides the three-dimensional point group data into arbitrary point groups in slice units. In the slice division, the three-dimensional data encoding device does not divide the position information and attribute information constituting a point, but divides the position information and attribute information together. That is, the three-dimensional data encoding device divides into slices so that the position information and attribute information at an arbitrary point belong to the same slice. In addition, according to these, the number of divisions and the division method may be any method. In addition, the minimum unit of division is a point. For example, the number of divisions of the position information and the attribute information are the same. For example, the three-dimensional point corresponding to the position information after the slice division and the three-dimensional point corresponding to the attribute information are included in the same slice.

[0342] Furthermore, the 3D data encoding device generates slice additional information, which is additional information related to the number of divisions and the division method when dividing a slice. The slice additional information is the same as the position information and the attribute information. For example, the slice additional information includes information indicating the reference coordinate position, size, or side length of the bounding box after division. Furthermore, the slice additional information includes information indicating the number of divisions, the division type, etc.

[0343] Next, a tile division method will be described. The three-dimensional data encoding device divides the sliced ​​data into slice position information (G slices) and slice attribute information (A slices), and divides each of the slice position information and slice attribute information into tiles.

[0344] Although FIG. 47 shows an example of division using an octree structure, the number of divisions and the division method may be any method.

[0345] Furthermore, the three-dimensional data encoding device may divide the position information and the attribute information using different division methods or the same division method. Furthermore, the three-dimensional data encoding device may divide a plurality of slices into tiles using different division methods or the same division method.

[0346] Furthermore, the 3D data encoding device generates tile additional information related to the number of divisions and the division method when dividing tiles. The tile additional information (position tile additional information and attribute tile additional information) is independent of position information and attribute information. For example, the tile additional information includes information indicating the reference coordinate position, size, or side length of the bounding box after division. The tile additional information also includes information indicating the number of divisions, the division type, etc.

[0347] Next, an example of a method for dividing the point cloud data into slices or tiles will be described. The three-dimensional data encoding device may use a predetermined method as a method for dividing the point cloud data into slices or tiles, or may adaptively switch the method to be used depending on the point cloud data.

[0348] When dividing into slices, the three-dimensional data encoding device divides the three-dimensional space collectively based on the position information and the attribute information. For example, the three-dimensional data encoding device determines the shape of an object and divides the three-dimensional space into slices according to the shape of the object. For example, the three-dimensional data encoding device extracts objects such as trees or buildings, and divides the space on an object-by-object basis. For example, the three-dimensional data encoding device divides the space into slices so that one or more objects are entirely included in one slice. Alternatively, the three-dimensional data encoding device divides one object into multiple slices.

[0349] In this case, the encoding device may change the encoding method for each slice, for example. For example, the encoding device may use a high-quality compression method for a specific object or a specific part of an object. In this case, the encoding device may store information indicating the encoding method for each slice in additional information (metadata).

[0350] Furthermore, the three-dimensional data encoding device may divide the image into slices based on map information or position information so that each slice corresponds to a predetermined coordinate space.

[0351] When dividing into tiles, the three-dimensional data encoding device divides the position information and the attribute information independently. For example, the three-dimensional data encoding device divides a slice into tiles according to the amount of data or the amount of processing. For example, the three-dimensional data encoding device determines whether the amount of data of a slice (e.g., the number of three-dimensional points included in a slice) is greater than a predetermined threshold. If the amount of data of a slice is greater than the threshold, the three-dimensional data encoding device divides the slice into tiles. If the amount of data of a slice is less than the threshold, the three-dimensional data encoding device does not divide the slice into tiles.

[0352] For example, a three-dimensional data encoding device divides slices into tiles so that the amount of processing or processing time in a decoding device is within a certain range (a predetermined value or less). This makes the amount of processing per tile in the decoding device constant, facilitating distributed processing in the decoding device.

[0353] In addition, when the processing amount differs between the position information and the attribute information, for example, when the processing amount of the position information is greater than the processing amount of the attribute information, the three-dimensional data encoding device makes the number of divisions of the position information greater than the number of divisions of the attribute information.

[0354] Also, for example, in the case where the decoding device may decode and display the position information quickly and the attribute information may be decoded and displayed slowly later depending on the content, the three-dimensional data encoding device may divide the position information into a number greater than the number of divisions of the attribute information. This allows the decoding device to process a larger number of pieces of position information in parallel, thereby making it possible to process the position information faster than the attribute information.

[0355] Note that the decoding device does not necessarily need to process sliced ​​or tiled data in parallel, and may determine whether to process the data in parallel depending on the number or capabilities of the decoding processing units.

[0356] By dividing the image in the above manner, it is possible to realize adaptive encoding according to the content or object. In addition, it is possible to realize parallel processing in the decoding process. This improves the flexibility of the point cloud encoding system or the point cloud decoding system.

[0357] Fig. 48 is a diagram showing an example of a division pattern of slices and tiles. DU in the diagram is a data unit (DataUnit) and indicates data of a tile or slice. Each DU includes a slice index (SliceIndex) and a tile index (TileIndex). The numerical value in the upper right of the DU in the diagram indicates the slice index, and the numerical value in the lower left of the DU indicates the tile index.

[0358] In pattern 1, the number of divisions and the division method are the same for G slices and A slices in slice division. In tile division, the number of divisions and the division method for G slices are different from the number of divisions and the division method for A slices. Furthermore, the same number of divisions and the division method are used among multiple G slices. The same number of divisions and the division method are used among multiple A slices.

[0359] In pattern 2, the number of divisions and the division method are the same for G slices and A slices in slice division. In tile division, the number of divisions and the division method for G slices are different from the number of divisions and the division method for A slices. In addition, the number of divisions and the division method are different between multiple G slices. The number of divisions and the division method are different between multiple A slices.

[0360] (Embodiment 6) An example of dividing the data into tiles and then dividing the data into slices will be described below. In an autonomous application such as an automatic driving vehicle, point cloud data of the area around the vehicle or the area in the direction of travel of the vehicle is required, rather than point cloud data of the entire area. Here, tiles and slices can be used to selectively decode the original point cloud data. By dividing the three-dimensional point cloud data into tiles and further dividing the slices, it is possible to improve the coding efficiency or realize parallel processing. When dividing the data, additional information (metadata) is generated, and the generated additional information is sent to a multiplexing unit.

[0361] 49 is a block diagram showing a configuration of a first encoding unit 5010 included in the three-dimensional data encoding device according to this embodiment. The first encoding unit 5010 generates encoded data (encoded stream) by encoding point cloud data using a first encoding method (GPCC (Geometry based PCC)). The first encoding unit 5010 includes a division unit 5011, a plurality of position information encoding units 5012, a plurality of attribute information encoding units 5013, an additional information encoding unit 5014, and a multiplexing unit 5015.

[0362] The dividing unit 5011 divides the point cloud data to generate a plurality of divided data. Specifically, the dividing unit 5011 divides the space of the point cloud data into a plurality of subspaces to generate a plurality of divided data. Here, the subspace is one of a tile and a slice, or a combination of a tile and a slice. More specifically, the point cloud data includes position information, attribute information, and additional information. The dividing unit 5011 divides the position information into a plurality of divided position information, and divides the attribute information into a plurality of divided attribute information. In addition, the dividing unit 5011 generates additional information related to the division.

[0363] For example, the dividing unit 5011 first divides the point cloud into tiles, and then further divides the obtained tiles into slices.

[0364] The position information encoding units 5012 generate a plurality of pieces of encoded position information by encoding the plurality of pieces of divided position information. For example, the position information encoding units 5012 process the plurality of pieces of divided position information in parallel.

[0365] The attribute information encoding units 5013 generate a plurality of pieces of encoded attribute information by encoding the plurality of pieces of divided attribute information. For example, the attribute information encoding units 5013 process the plurality of pieces of divided attribute information in parallel.

[0366] The additional information encoding unit 5014 generates encoded additional information by encoding the additional information included in the point cloud data and the additional information related to the data division generated by the division unit 5011 at the time of division.

[0367] The multiplexing unit 5015 multiplexes a plurality of pieces of encoding position information, a plurality of pieces of encoding attribute information, and encoding additional information to generate encoded data (encoded stream), and transmits the generated encoded data. In addition, the encoded additional information is used during decoding.

[0368] 49 shows an example in which there are two position information encoders 5012 and two attribute information encoders 5013, but the number of position information encoders 5012 and two attribute information encoders 5013 may be one each, or three or more. Furthermore, multiple pieces of divided data may be processed in parallel within the same chip, such as multiple cores in a CPU, or may be processed in parallel by cores on multiple chips, or may be processed in parallel by multiple cores on multiple chips.

[0369] Next, the decoding process will be described. Fig. 50 is a block diagram showing the configuration of a first decoding unit 5020. The first decoding unit 5020 restores the point cloud data by decoding the encoded data (encoded stream) generated by encoding the point cloud data by a first encoding method (GPCC). The first decoding unit 5020 includes a demultiplexing unit 5021, a plurality of position information decoding units 5022, a plurality of attribute information decoding units 5023, an additional information decoding unit 5024, and a combining unit 5025.

[0370] The demultiplexer 5021 demultiplexes the coded data (coded stream) to generate a plurality of pieces of coding position information, a plurality of pieces of coding attribute information, and coded additional information.

[0371] The position information decoding units 5022 generate a plurality of pieces of divided position information by decoding the plurality of pieces of encoded position information. For example, the position information decoding units 5022 process the plurality of pieces of encoded position information in parallel.

[0372] The multiple attribute information decoding units 5023 generate multiple pieces of divided attribute information by decoding the multiple pieces of encoded attribute information. For example, the multiple attribute information decoding units 5023 process the multiple pieces of encoded attribute information in parallel.

[0373] The multiple additional information decoders 5024 generate additional information by decoding the encoded additional information.

[0374] The combining unit 5025 generates position information by combining a plurality of pieces of divided position information using the additional information. The combining unit 5025 generates attribute information by combining a plurality of pieces of divided attribute information using the additional information. For example, the combining unit 5025 first generates point cloud data corresponding to a tile by combining decoded point cloud data for a slice using the slice additional information. Next, the combining unit 5025 restores the original point cloud data by combining the point cloud data corresponding to the tile using the tile additional information.

[0375] 49 shows an example in which the number of each of the position information decoding units 5022 and the attribute information decoding units 5023 is two, but the number of each of the position information decoding units 5022 and the attribute information decoding units 5023 may be one, or three or more. Furthermore, the multiple pieces of divided data may be processed in parallel within the same chip, such as multiple cores within a CPU, or may be processed in parallel by cores on multiple chips, or may be processed in parallel by multiple cores on multiple chips.

[0376] Next, a method for dividing point cloud data will be described. In an autonomous application such as an automatic driving of a vehicle, point cloud data of an area around a vehicle or an area in a traveling direction of the vehicle is required, instead of point cloud data of an entire area.

[0377] Fig. 51 is a diagram showing examples of tile shapes. As shown in Fig. 51, various shapes such as a circle, a rectangle, or an ellipse may be used as the tile shape.

[0378] FIG. 52 is a diagram showing an example of tiles and slices. The configuration of slices may differ between tiles. For example, the configuration of tiles or slices may be optimized based on the amount of data. Or, the configuration of tiles or slices may be optimized based on the decoding speed.

[0379] Alternatively, tile division may be performed based on position information, in which case attribute information is divided in the same manner as the corresponding position information.

[0380] In addition, after dividing into tiles, the image may be divided into slices using a method different from that used for the position information and the attribute information. For example, the method for dividing into slices in each tile may be selected according to a request from an application. A different method for dividing into slices or a method for dividing into tiles may be used based on the request from the application.

[0381] For example, the dividing unit 5011 divides the three-dimensional point cloud data into one or more tiles based on position information such as map information in a two-dimensional shape viewed from above. Then, the dividing unit 5011 divides each tile into one or more slices.

[0382] The dividing unit 5011 may divide the position information (Geometry) and the attribute information (Attribute) into slices in the same manner.

[0383] The position information and the attribute information may each be of one type or of two or more types. In addition, in the case of point cloud data that does not have attribute information, the attribute information may not be included.

[0384] 53 is a block diagram of the dividing unit 5011. The dividing unit 5011 includes a tile dividing unit 5031, a geometry slice dividing unit 5032, and an attribute slice dividing unit 5033.

[0385] The tile division unit 5031 generates a plurality of pieces of tile position information by dividing position information (Position (Geometry)) into tiles. The tile division unit 5031 also generates a plurality of pieces of tile attribute information by dividing attribute information (Attribute) into tiles. The tile division unit 5031 also outputs tile additional information (TileMetaData) including information related to the tile division and information generated in the tile division.

[0386] The position information slice division unit 5032 divides a plurality of pieces of tile position information into slices to generate a plurality of pieces of divided position information (a plurality of pieces of slice position information). In addition, the position information slice division unit 5032 outputs position slice additional information (Geometry Slice MetaData) including information related to the division of the position information into slices and information generated in the division of the position information into slices.

[0387] The attribute information slice division unit 5033 divides a plurality of pieces of tile attribute information into slices to generate a plurality of pieces of divided attribute information (a plurality of pieces of slice attribute information). In addition, the attribute information slice division unit 5033 outputs attribute slice additional information (Attribute Slice MetaData) including information related to the division of the attribute information into slices and information generated in the division of the attribute information into slices.

[0388] Next, examples of tile shapes will be described. The entire three-dimensional map (3D map) is divided into a plurality of tiles. Data of the plurality of tiles is selectively transmitted to the three-dimensional data decoding device. Alternatively, data of the plurality of tiles is transmitted to the three-dimensional data decoding device in descending order of importance. The shape of the tile may be selected from a plurality of shapes depending on the situation.

[0389] Fig. 54 is a diagram showing an example of a map in which point cloud data obtained by LiDAR is viewed from above. The example shown in Fig. 54 is point cloud data of a highway, and includes a multi-level intersection (flyover).

[0390] FIG. 55 is a diagram showing an example in which the point cloud data shown in FIG. 54 is divided into square tiles. Such division into squares can be easily performed by the map server. Furthermore, the height of the tiles is set low for normal roads. For multi-level intersections, the height of the tiles is set higher than that of normal roads so that the tiles include the multi-level intersections.

[0391] Fig. 56 is a diagram showing an example in which the point cloud data shown in Fig. 54 is divided into circular tiles. In this case, adjacent tiles may overlap in a plan view. When the vehicle requires point cloud data of the surrounding area, the three-dimensional data encoding device transmits point cloud data of a cylindrical area (a circle in a top view) around the vehicle to the vehicle.

[0392] Also, as in the example of Figure 55, the tile height is set low for normal roads. At intersections, the tile height is set higher than for normal roads so that the tile encompasses the intersection.

[0393] The three-dimensional data encoding device may change the height of a tile according to, for example, the shape or height of a road or a building. The three-dimensional data encoding device may also change the height of a tile according to position information or area information. The three-dimensional data encoding device may also change the height of a tile for each tile. Or, the three-dimensional data encoding device may change the height of a tile for each section that includes multiple tiles. In other words, the three-dimensional data encoding device may make the heights of multiple tiles within a section the same. Also, tiles of different heights may overlap when viewed from above.

[0394] 57 is a diagram showing an example of tile division when tiles of various shapes, sizes, or heights are used. The shape of the tiles may be any shape, any size, or a combination of these.

[0395] For example, in addition to the above-mentioned examples of dividing into square tiles without overlapping and into overlapping circular tiles, the three-dimensional data encoding device may divide into overlapping square tiles. Also, the shape of the tiles does not have to be square or circular, and a polygon with three or more vertices or a shape with no vertices may be used.

[0396] In addition, the tile shapes may be of two or more types, or tiles of different shapes may overlap. In addition, the tile shapes may be of one or more types, and shapes of different sizes may be combined in the same shape to be divided, or they may overlap.

[0397] For example, tiles larger than those used for areas where objects such as roads do not exist are used. Furthermore, the three-dimensional data encoding device may adaptively change the shape or size of tiles depending on the object.

[0398] Also, for example, since it is highly likely that the three-dimensional data encoding device will need to read tiles far in front of the automobile, which is the direction of travel of the automobile (vehicle), the tiles in the direction of travel may be set to a larger size, and since it is unlikely that the automobile will travel to the side of the automobile, the tiles to the side may be set to a smaller size than the tiles in the direction of travel.

[0399] FIG. 58 is a diagram showing an example of tile data stored in a server. For example, point cloud data is divided into tiles in advance and encoded, and the resulting encoded data is stored in the server. A user obtains data of a desired tile from the server when necessary. Alternatively, the server (three-dimensional data encoding device) may perform tile division and encoding in response to an instruction from the user so as to include data desired by the user.

[0400] For example, when the moving body (vehicle) moves at a high speed, it is considered that point cloud data covering a wider range is required. Therefore, the server may determine the shape and size of the tile based on the vehicle speed estimated in advance (for example, the legal speed limit of the road, the vehicle speed estimated from the width and shape of the road, or a statistical speed, etc.) and perform tile division. Alternatively, as shown in FIG. 58, the server may encode tiles of a plurality of shapes or sizes in advance and store the obtained data. The moving body may obtain tile data of an appropriate shape and size according to the moving direction and speed of the moving body.

[0401] Fig. 59 is a diagram showing an example of a system related to tile division. As shown in Fig. 59, the shape and area of ​​the tile may be determined based on the position of an antenna (base station), which is a communication means for transmitting point cloud data, or the communication area supported by the antenna. Alternatively, when the point cloud data is generated by a sensor such as a camera, the shape and area of ​​the tile may be determined based on the position of the sensor or the target range (detection range) of the sensor.

[0402] One tile may be assigned to one antenna or sensor, or one tile may be assigned to multiple antennas or sensors. Multiple tiles may be assigned to one antenna or sensor. The antennas or sensors may be fixed or movable.

[0403] For example, the coded data divided into tiles may be managed by a server connected to an antenna or a sensor for an area assigned to the tile. The server may manage the coded data for its own area and tile information for adjacent areas. A centralized management server (cloud) that manages a plurality of servers corresponding to each tile may manage a plurality of coded data for a plurality of tiles. Alternatively, a server corresponding to each tile may not be provided, and an antenna or a sensor may be directly connected to the centralized management server.

[0404] The target range of an antenna or a sensor may vary depending on the power of radio waves, differences in equipment, and installation conditions, and the shape and size of the tiles may also vary accordingly. Based on the target range of an antenna or a sensor, slices, rather than tiles, may be assigned, or PCC frames may be assigned.

[0405] Next, we explain how to divide tiles into slices, which can improve coding efficiency by assigning similar objects to the same slice.

[0406] For example, the three-dimensional data encoding device may recognize objects (roads, buildings, trees, etc.) using the features of the point cloud data, and divide the point cloud into slices by clustering the point cloud for each object.

[0407] Alternatively, the three-dimensional data encoding device may perform slice division by grouping objects having the same attribute and allocating slices to each group. Here, the attribute is, for example, information related to movement, and grouping is performed by classifying objects into dynamic information such as pedestrians and cars, semi-dynamic information such as accidents and congestion, semi-static information such as traffic regulations and road construction, and static information such as road surfaces and structures.

[0408] Note that data may overlap between multiple slices. For example, when dividing slices into multiple object groups, any object may belong to one object group, or may belong to two or more object groups.

[0409] Fig. 60 is a diagram showing an example of this slice division. For example, in the example shown in Fig. 60, the tiles are rectangular parallelepipeds. Note that the tiles may be cylindrical or may have other shapes.

[0410] The points in a tile are grouped into object groups, e.g., roads, buildings, trees, etc. Then, the slicing is performed such that each object group is contained in one slice, and each slice is coded separately.

[0411] Next, a method for encoding divided data will be described. A three-dimensional data encoding device (first encoding unit 5010) encodes each of the divided data. When encoding attribute information, the three-dimensional data encoding device generates dependency information indicating which configuration information (position information, additional information, or other attribute information) was used for encoding as additional information. That is, the dependency information indicates, for example, the configuration information of the reference destination (dependency destination). In this case, the three-dimensional data encoding device generates dependency information based on configuration information corresponding to the division shape of the attribute information. The three-dimensional data encoding device may generate dependency information based on configuration information corresponding to a plurality of division shapes.

[0412] The dependency information may be generated by the three-dimensional data encoding device, and the generated dependency information may be sent to the three-dimensional data decoding device. Alternatively, the three-dimensional data decoding device may generate the dependency information, and the three-dimensional data encoding device may not send the dependency information. Also, the dependency relationships used by the three-dimensional data encoding device may be determined in advance, and the three-dimensional data encoding device may not send the dependency information.

[0413] Figure 61 is a diagram showing an example of the dependency relationship of each data. The tip of the arrow in the figure indicates the dependency destination, and the start of the arrow indicates the dependency source. The three-dimensional data decoding device decodes data in the order from the dependency destination to the dependency source. Also, data shown by solid lines in the figure is data that is actually sent, and data shown by dotted lines is data that is not sent.

[0414] In the figure, G indicates location information, and A indicates attribute information. t1 indicates the position information of tile number 1, and G t2 indicates the position information of tile number 2. t1s1 indicates the position information of tile number 1 and slice number 1, and G t1s2 indicates the position information of tile number 1 and slice number 2, and G t2s1 indicates the position information of tile number 2 and slice number 1, and G t2s2 indicates the position information of tile number 2 and slice number 2. Similarly, A t1indicates the attribute information of tile number 1, and A t2 indicates the attribute information of tile number 2. t1s1 indicates the attribute information of tile number 1 and slice number 1, and A t1s2 indicates the attribute information of tile number 1 and slice number 2, and A t2s1 indicates the attribute information of tile number 2 and slice number 1, and A t2s2 indicates attribute information of tile number 2 and slice number 2.

[0415] Mtile indicates tile additional information, MGslice indicates position slice additional information, and MAslice indicates attribute slice additional information. t1s1 is attribute information A t1s1 D t2s1 is attribute information A t2s1 This shows dependency information for

[0416] It should be noted that different tile or slice division structures may be used depending on the application, etc.

[0417] Furthermore, the three-dimensional data encoding device may rearrange the data in the decoding order so that there is no need to rearrange the data in the three-dimensional data decoding device. Note that the data may be rearranged in the three-dimensional data decoding device, or the data may be rearranged in both the three-dimensional data encoding device and the three-dimensional data decoding device.

[0418] Fig. 62 is a diagram showing an example of the data decoding order. In the example of Fig. 62, decoding is performed in order from the left data. When data has a dependency relationship, the three-dimensional data decoding device decodes the dependent data first. For example, the three-dimensional data encoding device rearranges the data in advance so that the data is in this order, and transmits it. Any order may be used as long as the dependent data comes first. The three-dimensional data encoding device may also transmit the additional information and dependency information before the data.

[0419] Also, the three-dimensional data decoding device may selectively decode tiles based on a request from an application and information obtained from the NAL unit header. Figure 63 is a diagram showing an example of encoded data of tiles. For example, the order of decoding tiles is arbitrary. In other words, there may be no dependency between tiles.

[0420] Next, a description will be given of the configuration of the combining unit 5025 included in the first decoding unit 5020. Fig. 64 is a block diagram showing the configuration of the combining unit 5025. The combining unit 5025 includes a position information slice combining unit 5041 (geometry slice combiner), an attribute information slice combining unit 5042 (attribute slice combiner), and a tile combining unit (tile combiner).

[0421] The position information slice combining unit 5041 generates a plurality of pieces of tile position information by combining a plurality of pieces of divided position information using the position slice additional information. The attribute information slice combining unit 5042 generates a plurality of pieces of tile attribute information by combining a plurality of pieces of divided attribute information using the attribute slice additional information.

[0422] The tile combining unit 5043 generates position information by combining multiple pieces of tile position information using the tile additional information. Also, the tile combining unit 5043 generates attribute information by combining multiple pieces of tile attribute information using the tile additional information.

[0423] The number of slices or tiles to be divided is equal to or greater than 1. In other words, the division into slices or tiles does not necessarily have to be performed.

[0424] Next, a structure of coded data divided into slices or tiles and a method of storing the coded data in NAL units (multiplexing method) will be described. Figure 65 is a diagram showing a structure of coded data and a method of storing the coded data in NAL units.

[0425] The encoded data (partition position information and partition attribute information) is stored in the payload of the NAL unit.

[0426] The encoded data includes a header and a payload. The header includes identification information for identifying data included in the payload. This identification information includes, for example, a type of slice division or tile division (slice_type, tile_type), index information for identifying a slice or tile (slice_idx, tile_idx), position information of data (slice or tile), or an address of data (address). The index information for identifying a slice is also referred to as a slice index (SliceIndex). The index information for identifying a tile is also referred to as a tile index (TileIndex). The type of division is, for example, a method based on an object shape as described above, a method based on map information or position information, or a method based on a data amount or a processing amount.

[0427] Furthermore, the header of the encoded data includes identification information indicating a dependency relationship. That is, when there is a dependency relationship between data, the header includes identification information for referring to the dependency from the dependency source. For example, the header of the dependency destination data includes identification information for identifying the data. The header of the dependency source data includes identification information indicating the dependency. Note that, when the identification information for identifying the data, the additional information related to the slice division or tile division, and the identification information indicating the dependency relationship can be identified or derived from other information, these pieces of information may be omitted.

[0428] Next, a flow of encoding and decoding processing of point cloud data according to this embodiment will be described. Fig. 66 is a flowchart of encoding processing of point cloud data according to this embodiment.

[0429] First, the three-dimensional data encoding device determines a division method to be used (S5011). The division method includes whether or not to perform tile division and whether or not to perform slice division. The division method may also include the number of divisions when performing tile division or slice division, and the type of division. The type of division may be a method based on the object shape as described above, a method based on map information or position information, or a method based on the amount of data or the amount of processing. The division method may be determined in advance.

[0430] If tile division is performed (Yes in S5012), the three-dimensional data encoding device generates multiple pieces of tile position information and multiple pieces of tile attribute information by dividing the position information and attribute information together (S5013). The three-dimensional data encoding device also generates tile additional information related to the tile division. Note that the three-dimensional data encoding device may divide the position information and the attribute information independently.

[0431] When slice division is performed (Yes in S5014), the three-dimensional data encoding device generates a plurality of division position information and a plurality of division attribute information by independently dividing a plurality of pieces of tile position information and a plurality of pieces of tile attribute information (or position information and attribute information) (S5015). In addition, the three-dimensional data encoding device generates position slice additional information and attribute slice additional information related to the slice division. Note that the three-dimensional data encoding device may divide the tile position information and the tile attribute information together.

[0432] Next, the three-dimensional data encoding device generates a plurality of pieces of encoding position information and a plurality of pieces of encoding attribute information by encoding each of the plurality of pieces of division position information and the plurality of pieces of division attribute information (S5016). Also, the three-dimensional data encoding device generates dependency relationship information.

[0433] Next, the three-dimensional data encoding device generates encoded data (encoded stream) by forming (multiplexing) the plurality of pieces of encoding position information, the plurality of pieces of encoding attribute information, and the additional information into NAL units (S5017). In addition, the three-dimensional data encoding device transmits the generated encoded data.

[0434] 67 is a flowchart of a decoding process of point cloud data according to this embodiment. First, the three-dimensional data decoding device analyzes additional information (tile additional information, position slice additional information, and attribute slice additional information) related to the division method included in the encoded data (encoded stream) to determine the division method (S5021). This division method includes whether or not to perform tile division and whether or not to perform slice division. In addition, the division method may include the number of divisions when performing tile division or slice division, the type of division, and the like.

[0435] Next, the three-dimensional data decoding device generates split position information and split attribute information by decoding the multiple pieces of encoded position information and multiple pieces of encoded attribute information contained in the encoded data using dependency information contained in the encoded data (S5022).

[0436] When the additional information indicates that slice division has been performed (Yes in S5023), the three-dimensional data decoding device generates a plurality of tile position information and a plurality of tile attribute information by combining the plurality of pieces of division position information and the plurality of pieces of division attribute information by respective methods based on the position slice additional information and the attribute slice additional information (S5024). Note that the three-dimensional data decoding device may combine the plurality of pieces of division position information and the plurality of pieces of division attribute information by the same method.

[0437] If the additional information indicates that tile division has been performed (Yes in S5025), the three-dimensional data decoding device generates position information and attribute information by combining multiple pieces of tile position information and multiple pieces of tile attribute information (multiple pieces of division position information and multiple pieces of division attribute information) in the same manner based on the tile additional information (S5026). Note that the three-dimensional data decoding device may combine multiple pieces of tile position information and multiple pieces of tile attribute information in different manners.

[0438] Next, the tile additional information will be described. The three-dimensional data encoding device generates tile additional information, which is metadata related to a method of dividing tiles, and transmits the generated tile additional information to the three-dimensional data decoding device.

[0439] Fig. 68 is a diagram showing an example of the syntax of tile additional information (TileMetaData). As shown in Fig. 68, for example, the tile additional information includes division method information (type_of_divide), shape information (topview_shape), overlap flag (tile_overlap_flag), overlap information (type_of_overlap), height information (tile_height), number of tiles (tile_number), and tile position information (global_position, relative_position).

[0440] The division method information (type_of_divide) indicates a division method of tiles. For example, the division method information indicates whether the division method of tiles is based on map information, that is, division based on a top view (top_view), or other (other).

[0441] The shape information (topview_shape) is included in the tile additional information, for example, when the tile division method is division based on a top view. The shape information indicates the shape of the tile when viewed from above. For example, this shape includes a square and a circle. Note that this shape may include an ellipse, a rectangle, or a polygon other than a quadrangle, or may include other shapes. Note that the shape information is not limited to the shape of the tile when viewed from above, and may also indicate the three-dimensional shape of the tile (for example, a cube, a cylinder, etc.).

[0442] The overlap flag (tile_overlap_flag) indicates whether tiles overlap. For example, the overlap flag is included in the tile additional information when the tile division method is division based on a top view. In this case, the overlap flag indicates whether tiles overlap in a top view. Note that the overlap flag may also indicate whether tiles overlap in a three-dimensional space.

[0443] The overlap information (type_of_overlap) is included in the tile additional information when tiles overlap, for example. The overlap information indicates how the tiles overlap, etc. For example, the overlap information indicates the size of the overlapping area, etc.

[0444] Height information (tile_height) indicates the height of a tile. The height information may include information indicating the shape of the tile. For example, if the shape of the tile in top view is rectangular, the information may indicate the lengths of the sides of the rectangle (the vertical length and the horizontal length). Furthermore, if the shape of the tile in top view is circular, the information may indicate the diameter or radius of the circle.

[0445] The height information may indicate the height of each tile, or may indicate a common height for multiple tiles. Multiple height types, such as roads and intersections, may be set in advance, and the height information may indicate the height of each height type and the height type of each tile. Alternatively, the height of each height type may be defined in advance, and the height information may indicate the height type of each tile. In other words, the height of each height type does not have to be indicated by the height information.

[0446] The tile number (tile_number) indicates the number of tiles. The tile additional information may include information indicating the spacing between tiles.

[0447] The tile position information (global_position, relative_position) is information for identifying the position of each tile. For example, the tile position information indicates the absolute coordinates or relative coordinates of each tile.

[0448] Note that some or all of the above information may be provided for each tile, or for each set of tiles (for example, for each frame or for each set of frames).

[0449] The three-dimensional data encoding device may include the tile additional information in SEI (Supplemental Enhancement Information) and transmit it. Alternatively, the three-dimensional data encoding device may store the tile additional information in an existing parameter set (such as PPS, GPS, or APS) and transmit it.

[0450] For example, if the tile additional information changes for each frame, the tile additional information may be stored in a parameter set for each frame (GPS or APS, etc.). If the tile additional information does not change within a sequence, the tile additional information may be stored in a parameter set for each sequence (position SPS or attribute SPS). Furthermore, if the same tile division information is used for position information and attribute information, the tile additional information may be stored in a parameter set of a PCC stream (stream PS).

[0451] Furthermore, the tile additional information may be stored in any one of the above parameter sets, or in multiple parameter sets. Furthermore, the tile additional information may be stored in a header of the encoded data. Furthermore, the tile additional information may be stored in a header of a NAL unit.

[0452] In addition, all or part of the tile additional information may be stored in one of the headers of the divided position information and the divided attribute information, and not in the other. For example, when the same tile additional information is used in the position information and the attribute information, the tile additional information may be included in the header of either the position information or the attribute information. For example, when the attribute information depends on the position information, the position information is processed first. Therefore, the header of the position information may include these tile additional information, and the header of the attribute information may not include the tile additional information. In this case, the three-dimensional data decoding device determines, for example, that the dependent attribute information belongs to the same tile as the tile of the dependent position information.

[0453] The three-dimensional data decoding device reconstructs the point cloud data divided into tiles based on the tile additional information. If there is overlapping point cloud data, the three-dimensional data decoding device identifies the overlapping multiple point cloud data and selects one of them or merges the multiple point cloud data.

[0454] The three-dimensional data decoding device may also perform decoding using tile additional information. For example, when multiple tiles overlap, the three-dimensional data decoding device may perform decoding for each tile, and perform processing (e.g., smoothing or filtering) using the multiple decoded data to generate point cloud data. This may enable highly accurate decoding.

[0455] 69 is a diagram showing an example of the configuration of a system including a three-dimensional data encoding device and a three-dimensional data decoding device. A tile dividing unit 5051 divides point cloud data including position information and attribute information into a first tile and a second tile. The tile dividing unit 5051 also sends tile additional information related to the tile division to a decoding unit 5053 and a tile combining unit 5054.

[0456] The encoding unit 5052 generates encoded data by encoding the first tile and the second tile.

[0457] The decoding unit 5053 restores the first tile and the second tile by decoding the coded data generated by the coding unit 5052. The tile combining unit 5054 restores the point cloud data (position information and attribute information) by combining the first tile and the second tile using the tile additional information.

[0458] Next, slice additional information will be described. The three-dimensional data encoding device generates slice additional information, which is metadata related to a method of dividing a slice, and transmits the generated slice additional information to the three-dimensional data decoding device.

[0459] Fig. 70 is a diagram showing an example of the syntax of slice additional information (SliceMetaData). As shown in Fig. 70, for example, the slice additional information includes division method information (type_of_divide), an overlap flag (slice_overlap_flag), overlap information (type_of_overlap), the number of slices (slice_number), slice position information (global_position, relative_position), and slice size information (slice_bounding_box_size).

[0460] The division method information (type_of_divide) indicates a division method of a slice. For example, the division method information indicates whether the division method of a slice is division based on object information as shown in FIG. 60 (object). The slice additional information may include information indicating a method of object division. For example, this information indicates whether one object is divided into multiple slices or assigned to one slice. This information may also indicate the number of divisions when one object is divided into multiple slices.

[0461] The overlap flag (slice_overlap_flag) indicates whether the slices overlap. The overlap information (type_of_overlap) is included in the slice additional information when the slices overlap, for example. The overlap information indicates how the slices overlap, etc. For example, the overlap information indicates the size of the overlapping area, etc.

[0462] The slice number (slice_number) indicates the number of slices.

[0463] Slice position information (global_position, relative_position) and slice size information (slice_bounding_box_size) are information related to the area of ​​a slice. Slice position information is information for identifying the position of each slice. For example, slice position information indicates absolute coordinates or relative coordinates of each slice. Slice size information (slice_bounding_box_size) indicates the size of each slice. For example, slice size information indicates the size of the bounding box of each slice.

[0464] The three-dimensional data encoding device may include the slice additional information in the SEI and transmit it. Alternatively, the three-dimensional data encoding device may store the slice additional information in an existing parameter set (such as PPS, GPS, or APS) and transmit it.

[0465] For example, when slice additional information changes for each frame, the slice additional information may be stored in a parameter set for each frame (GPS or APS, etc.). When slice additional information does not change within a sequence, the slice additional information may be stored in a parameter set for each sequence (position SPS or attribute SPS). Furthermore, when the same slice division information is used for position information and attribute information, the slice additional information may be stored in a parameter set of a PCC stream (stream PS).

[0466] Furthermore, the slice additional information may be stored in any one of the above parameter sets, or in a plurality of parameter sets. Furthermore, the slice additional information may be stored in a header of the encoded data. Furthermore, the slice additional information may be stored in a header of the NAL unit.

[0467] In addition, all or a part of the slice additional information may be stored in one of the headers of the division position information and the header of the division attribute information, and may not be stored in the other. For example, when the same slice additional information is used in the position information and the attribute information, the slice additional information may be included in the header of one of the position information and the attribute information. For example, when the attribute information depends on the position information, the position information is processed first. Therefore, the header of the position information may include these slice additional information, and the header of the attribute information may not include the slice additional information. In this case, the three-dimensional data decoding device determines that the dependent attribute information belongs to the same slice as the slice of the dependent position information, for example.

[0468] The three-dimensional data decoding device reconstructs the point cloud data divided into slices based on the slice additional information. If there is overlapping point cloud data, the three-dimensional data decoding device identifies the overlapping multiple point cloud data and selects one of them or merges the multiple point cloud data.

[0469] The three-dimensional data decoding device may also perform decoding using slice additional information. For example, when multiple slices overlap, the three-dimensional data decoding device may perform decoding for each slice, and perform processing (e.g., smoothing or filtering) using the multiple decoded data to generate point cloud data. This may enable highly accurate decoding.

[0470] FIG. 71 is a flowchart of three-dimensional data encoding processing, including processing for generating tile additional information, performed by the three-dimensional data encoding device according to this embodiment.

[0471] First, the three-dimensional data encoding device determines a tile division method (S5031). Specifically, the three-dimensional data encoding device determines whether to use a division method based on a top view (top_view) or another method (other) as a tile division method. The three-dimensional data encoding device also determines the shape of the tile when using a division method based on a top view. The three-dimensional data encoding device also determines whether the tile overlaps with other tiles.

[0472] If the tile division method determined in step S5031 is a division method based on a top view (Yes in S5032), the three-dimensional data encoding device describes in the tile additional information that the tile division method is a division method based on a top view (top_view) (S5033).

[0473] On the other hand, if the tile division method determined in step S5031 is other than a division method based on a top view (No in S5032), the three-dimensional data encoding device describes in the tile additional information that the tile division method is other than a division method based on a top view (top_view) (S5034).

[0474] Furthermore, if the shape of the tile viewed from above determined in step S5031 is a square (square in S5035), the three-dimensional data encoding device records in the tile additional information that the shape of the tile viewed from above is a square (S5036).On the other hand, if the shape of the tile viewed from above determined in step S5031 is a circle (circle in S5035), the three-dimensional data encoding device records in the tile additional information that the shape of the tile viewed from above is a circle (S5037).

[0475] Next, the three-dimensional data encoding device determines whether the tile overlaps with other tiles (S5038). If the tile overlaps with other tiles (Yes in S5038), the three-dimensional data encoding device records in the tile additional information that the tile overlaps (S5039). On the other hand, if the tile does not overlap with other tiles (No in S5038), the three-dimensional data encoding device records in the tile additional information that the tile does not overlap (S5040).

[0476] Next, the three-dimensional data encoding device divides the tiles based on the tile division method determined in step S5031, encodes each tile, and transmits the generated encoded data and tile additional information (S5041).

[0477] FIG. 72 is a flowchart of three-dimensional data decoding processing using tile additional information by the three-dimensional data decoding device according to this embodiment.

[0478] First, the 3D data decoding device analyzes the tile additional information included in the bitstream (S5051).

[0479] If the tile additional information indicates that the tile does not overlap with other tiles (No in S5052), the 3D data decoding device generates point cloud data for each tile by decoding each tile (S5053). Next, the 3D data decoding device reconstructs point cloud data from the point cloud data for each tile based on the tile division method and tile shape indicated in the tile additional information (S5054).

[0480] On the other hand, if the tile additional information indicates that the tile overlaps with other tiles (Yes in S5052), the three-dimensional data decoding device generates point cloud data for each tile by decoding each tile. The three-dimensional data decoding device also identifies overlapping parts of the tiles based on the tile additional information (S5055). Note that the three-dimensional data decoding device may perform decoding processing for the overlapping parts using multiple pieces of overlapping information. Next, the three-dimensional data decoding device reconstructs point cloud data from the point cloud data of each tile based on the tile division method, tile shape, and overlap information indicated in the tile additional information (S5056).

[0481] Modifications and the like regarding slices will be described below. The three-dimensional data encoding device may transmit information indicating the type (road, building, tree, etc.) or attribute (dynamic information, static information, etc.) of an object as additional information. Alternatively, encoding parameters may be predefined according to the object, and the three-dimensional data encoding device may notify the three-dimensional data decoding device of the encoding parameters by sending the type or attribute of the object.

[0482] The following methods may be used for the coding order and transmission order of slice data. For example, the three-dimensional data encoding device may encode slice data in the order of data that is easiest to recognize or cluster. Alternatively, the three-dimensional data encoding device may encode slice data in the order of slice data that has been clustered first. Furthermore, the three-dimensional data encoding device may transmit the encoded slice data in the order of decreasing priority for decoding in an application. For example, when the priority of decoding dynamic information is high, the three-dimensional data encoding device may transmit the slice data in the order of decreasing priority for decoding dynamic information.

[0483] Furthermore, when the order of the encoded data differs from the order of the decoding priority, the three-dimensional data encoding device may rearrange the encoded data before transmitting it. Furthermore, when storing the encoded data, the three-dimensional data encoding device may store the encoded data after rearranging the encoded data.

[0484] An application (a three-dimensional data decoding device) requests a server (a three-dimensional data encoding device) to transmit slices containing desired data. The server transmits slice data required by the application, but does not need to transmit unnecessary slice data.

[0485] An application requests the server to send tiles containing desired data. The server sends the tile data required by the application, but does not need to send unnecessary tile data.

[0486] As described above, the three-dimensional data encoding device according to this embodiment performs the process shown in Fig. 73. First, the three-dimensional data encoding device generates a plurality of encoded data by encoding a plurality of subspaces (e.g., tiles) obtained by dividing a target space including a plurality of three-dimensional points (S5061). The three-dimensional data encoding device generates a bit stream including the plurality of encoded data and first information (e.g., topview_shape) indicating the shapes of the plurality of subspaces (S5062).

[0487] According to this, the three-dimensional data encoding device can select any shape from a plurality of types of subspace shapes, thereby improving encoding efficiency.

[0488] For example, the shape is a two-dimensional shape or a three-dimensional shape of the multiple subspaces. For example, the shape is a top view shape of the multiple subspaces. That is, the first information indicates a shape of the subspace when viewed from a specific direction (e.g., from above). In other words, the first information indicates a bird's-eye view shape of the subspace. For example, the shape is a rectangle or a circle.

[0489] For example, the bitstream includes second information (eg, tile_overlap_flag) indicating whether the multiple sub-intervals overlap.

[0490] According to this, the three-dimensional data encoding device can overlap the subspaces, so that the subspaces can be generated without complicating the shapes of the subspaces.

[0491] For example, the bitstream includes third information (eg, type_of_divide) indicating whether the division method for the plurality of sub-sections is a division method using a top view.

[0492] For example, the bitstream includes fourth information (eg, tile_height) indicating at least one of a height, a width, a depth, and a radius of the plurality of sub-sections.

[0493] For example, the bitstream includes fifth information (eg, global_position or relative_position) indicating a position of each of the plurality of sub-sections.

[0494] For example, the bitstream includes sixth information (eg, tile_number) indicating the number of the plurality of subintervals.

[0495] For example, the bit stream includes seventh information indicating intervals between the plurality of sub-intervals.

[0496] For example, the three-dimensional data encoding device includes a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.

[0497] Moreover, the three-dimensional data decoding device according to this embodiment performs the process shown in FIG. 74. First, the three-dimensional data decoding device restores the multiple subspaces by decoding multiple encoded data generated by encoding multiple subspaces (e.g., tiles) obtained by dividing a target space including multiple three-dimensional points and included in a bit stream (S5071). The three-dimensional data decoding device restores the target space by combining the multiple subspaces using first information (e.g., topview_shape) included in the bit stream and indicating the shapes of the multiple subspaces (S5072). For example, the three-dimensional data decoding device can recognize the shapes of the multiple subspaces using the first information, thereby grasping the position and range of each subspace in the target space. The three-dimensional data decoding device can combine the multiple subspaces based on the grasped positions and ranges of the multiple subspaces. This allows the three-dimensional data decoding device to correctly combine the multiple subspaces.

[0498] For example, the shape is a shape in two dimensions of the subspaces, or a shape in three dimensions, for example, the shape is a rectangle or a circle.

[0499] For example, the bitstream includes second information (e.g., tile_overlap_flag) indicating whether the multiple subintervals overlap. In restoring the target space, the three-dimensional data decoding device further uses the second information to combine the multiple subspaces. For example, the three-dimensional data decoding device uses the second information to determine whether the subspaces overlap. If the subspaces overlap, the three-dimensional data decoding device identifies an overlapping area and takes a predetermined action for the identified overlapping area.

[0500] For example, the bit stream includes third information (e.g., type_of_divide) indicating whether the division method of the sub-intervals is a division method using a top view. When the third information indicates that the division method of the sub-intervals is a division method using a top view, the three-dimensional data decoding device combines the sub-spaces using the first information.

[0501] For example, the bitstream includes fourth information (e.g., tile_height) indicating at least one of height, width, depth, and radius of the plurality of subsections. In restoring the target space, the three-dimensional data decoding device further uses the fourth information to combine the plurality of subspaces. For example, the three-dimensional data decoding device can recognize the heights of the plurality of subspaces using the fourth information, thereby grasping the position and range of each subspace in the target space. The three-dimensional data decoding device can combine the plurality of subspaces based on the grasped positions and ranges of the plurality of subspaces.

[0502] For example, the bit stream includes fifth information (e.g., global_position or relative_position) indicating a position of each of the plurality of subintervals. In restoring the target space, the three-dimensional data decoding device further uses the fifth information to combine the plurality of subspaces. For example, the three-dimensional data decoding device can grasp the position of each subspace in the target space by recognizing the positions of the plurality of subspaces using the fifth information. The three-dimensional data decoding device can combine the plurality of subspaces based on the grasped positions of the plurality of subspaces.

[0503] For example, the bitstream includes sixth information (e.g., tile_number) indicating the number of the plurality of subintervals. In the reconstruction of the object space, the 3D data decoding device further uses the sixth information to combine the plurality of subspaces.

[0504] For example, the bit stream includes seventh information indicating intervals between the plurality of subintervals. In restoring the target space, the three-dimensional data decoding device further uses the seventh information to combine the plurality of subspaces. For example, the three-dimensional data decoding device can recognize the intervals between the plurality of subspaces using the seventh information, thereby grasping the position and range of each subspace in the target space. The three-dimensional data decoding device can combine the plurality of subspaces based on the grasped positions and ranges of the plurality of subspaces.

[0505] For example, the three-dimensional data decoding device includes a processor and a memory, and the processor uses the memory to perform the above-mentioned processing.

[0506] Although the three-dimensional data encoding device and the three-dimensional data decoding device according to the embodiments of the present disclosure have been described above, the present disclosure is not limited to these embodiments.

[0507] Furthermore, each processing unit included in the three-dimensional data encoding device and the three-dimensional data decoding device according to the above-mentioned embodiments is typically realized as an LSI, which is an integrated circuit. These may be individually implemented as single chips, or some or all of them may be included in a single chip.

[0508] The integrated circuit is not limited to an LSI, but may be realized by a dedicated circuit or a general-purpose processor. A field programmable gate array (FPGA) that can be programmed after the LSI is manufactured, or a reconfigurable processor that can reconfigure the connections and settings of the circuit cells inside the LSI may also be used.

[0509] In each of the above embodiments, each component may be implemented by dedicated hardware or by executing a software program suitable for each component. Each component may be implemented by a program execution unit such as a CPU or processor reading and executing a software program recorded on a recording medium such as a hard disk or semiconductor memory.

[0510] Furthermore, the present disclosure may be realized as a three-dimensional data encoding method or a three-dimensional data decoding method executed by a three-dimensional data encoding device, a three-dimensional data decoding device, or the like.

[0511] In addition, the division of functional blocks in the block diagram is an example, and multiple functional blocks may be realized as one functional block, one functional block may be divided into multiple blocks, or some functions may be transferred to another functional block. Furthermore, the functions of multiple functional blocks having similar functions may be processed in parallel or in a time-sharing manner by a single piece of hardware or software.

[0512] In addition, the order in which each step is performed in the flowchart is merely an example for specifically explaining the present disclosure, and the steps may be performed in an order other than the above. In addition, some of the steps may be performed simultaneously (in parallel) with other steps.

[0513] Although the three-dimensional data encoding device and the three-dimensional data decoding device according to one or more aspects have been described based on the embodiments, the present disclosure is not limited to these embodiments. As long as it does not deviate from the spirit of the present disclosure, various modifications conceived by a person skilled in the art to the present embodiment and forms constructed by combining components in different embodiments may also be included within the scope of one or more aspects. [Industrial Applicability]

[0514] The present disclosure is applicable to a three-dimensional data encoding device and a three-dimensional data decoding device. [Explanation of symbols]

[0515] 4601 Three-dimensional data encoding system 4602 Three-dimensional data decoding system 4603 Sensor terminal 4604 External connection part 4611 Point Cloud Data Generation System 4612 Presentation section 4613 Encoding section 4614 Multiplexer 4615 Input / output section 4616 Control Unit 4617 Sensor information acquisition unit 4618 Point Cloud Data Generation Unit 4621 Sensor Information Acquisition Unit 4622 Input / output section 4623 Demultiplexer 4624 Decoding section 4625 Presentation section 4626 User Interface 4627 Control Unit 4630 First Encoding Section 4631 Location information encoder 4632 Attribute information encoder 4633 Additional Information Encoding Unit 4634 Multiplexer 4640 First Decoding Unit 4641 Demultiplexer 4642 Location Information Decoding Unit 4643 Attribute Information Decoding Unit 4644 Additional Information Decoding Unit 4650 Second Encoding Section 4651 Additional Information Generation Unit 4652 Position image generation unit 4653 Attribute Image Generation Unit 4654 Video Encoding Unit 4655 Additional Information Encoding Unit 4656 Multiplexer 4660 Second Decryption Unit 4661 Demultiplexer 4662 Video Decoding Unit 4663 Additional Information Decoding Unit 4664 Location information generator 4665 Attribute information generation section 4670 Encoding section 4671 Multiplexer 4680 Decoding section 4681 Demultiplexer 4710 First Multiplexing Unit 4711 File Conversion Department 4720 First Demultiplexer 4721 File Reverse Conversion Unit 4730 Second Multiplexing Unit 4731 File Conversion Department 4740 Second Demultiplexer 4741 File Reverse Conversion Unit 4750 Third Multiplexer 4751 File Conversion Department 4760 3rd Demultiplexer 4761 File Reverse Conversion Unit 4801 Encoding section 4802 Multiplexer 5010 First encoding unit 5011 Split section 5012 Location information encoder 5013 Attribute information encoder 5014 Additional information coding unit 5015 Multiplexer 5020 First Decryption Unit 5021 Demultiplexer 5022 Location information decoding unit 5023 Attribute Information Decoding Unit 5024 Additional information decoding unit 5025 Joint 5031 Tile division section 5032 Position information slice division part 5033 Attribute Information Slice Division Unit 5041 Position information slice combination part 5042 Attribute information slice combination part 5043 Tile joint 5051 Tile division section 5052 Encoding section 5053 Decryption Unit 5054 Tile joint

Claims

1. A plurality of encoded data are generated by encoding a plurality of subspaces obtained by dividing a target space including a plurality of three-dimensional points; generating a bitstream including first information indicating whether the plurality of subspaces overlap; Three-dimensional data encoding method.

2. The bit stream includes second information indicating whether the division method of the plurality of subspaces is a division method using a top view.

2. The three-dimensional data encoding method according to claim 1.

3. The bitstream includes third information indicating at least one of a height, a width, a depth, and a radius of the plurality of subspaces.

3. The three-dimensional data encoding method according to claim 1 or 2.

4. The bit stream includes fourth information indicating a position of each of the plurality of subspaces. The three-dimensional data encoding method according to any one of claims 1 to 3.

5. The bit stream includes fifth information indicating a number of the plurality of subspaces. The three-dimensional data encoding method according to any one of claims 1 to 4.

6. The bit stream includes sixth information indicating intervals between the plurality of subspaces. The three-dimensional data encoding method according to any one of claims 1 to 5.

7. A plurality of encoded data pieces are generated by encoding a plurality of subspaces obtained by dividing a target space including a plurality of three-dimensional points included in the bit stream, thereby restoring the plurality of subspaces; The bitstream includes first information indicating whether the subspaces overlap. A method for decoding three-dimensional data.

8. The bit stream includes second information indicating whether the division method of the plurality of subspaces is a division method using a top view.

8. The three-dimensional data decoding method according to claim 7.

9. The bitstream includes third information indicating at least one of a height, a width, a depth, and a radius of the plurality of subspaces.

9. The three-dimensional data decoding method according to claim 7 or 8.

10. The bit stream includes fourth information indicating a position of each of the plurality of subspaces. The three-dimensional data decoding method according to any one of claims 7 to 9.

11. The bit stream includes fifth information indicating a number of the plurality of subspaces. The three-dimensional data decoding method according to any one of claims 7 to 10.

12. The bit stream includes sixth information indicating intervals between the plurality of subspaces. The three-dimensional data decoding method according to any one of claims 7 to 11.

13. A processor; A memory. The processor uses the memory to: A plurality of encoded data are generated by encoding a plurality of subspaces obtained by dividing a target space including a plurality of three-dimensional points; generating a bitstream including first information indicating whether the plurality of subspaces overlap; Three-dimensional data encoding device.

14. A processor; A memory. The processor uses the memory to: A plurality of encoded data pieces are generated by encoding a plurality of subspaces obtained by dividing a target space including a plurality of three-dimensional points included in the bit stream, thereby restoring the plurality of subspaces; The bitstream includes first information indicating whether the subspaces overlap. Three-dimensional data decoding device.

Citation Information

Patent Citations

  • Method, apparatus and stream for encoding / decoding volumetric video

    EP3489900A1

  • Map display device

    WO2014020663A1