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

By employing a hierarchical structure to encode and decode three-dimensional data, the processing demands are reduced, enhancing the efficiency of data handling and transmission.

JP2025108544AActive Publication Date: 2025-07-23PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2025064672
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2019-06-14
Filing Date
2025-04-10
Publication Date
2025-07-23
Estimated Expiration
2040-06-12

AI Technical Summary

Technical Problem

Existing three-dimensional data encoding and decoding processes are inefficient, leading to high processing demands.

Method used

A hierarchical structure with multiple layers is used to encode and decode position and attribute information of three-dimensional data, allowing for efficient access and reduced processing requirements.

Benefits of technology

This approach significantly reduces the processing amount required for three-dimensional data encoding and decoding, facilitating more efficient data handling and transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025108544000001_ABST
    Figure 2025108544000001_ABST
Patent Text Reader

Abstract

To provide a three-dimensional encoding method, a three-dimensional decoding method, a three-dimensional encoding device, and a three-dimensional decoding device for reducing processing amount.SOLUTION: A three-dimensional data decoding method includes: obtaining, by a processor, from a bitstream, encoded position data obtained by encoding position information of three-dimensional data using a hierarchical structure having a plurality of layers; obtaining, by the processor, from the bitstream, encoded attribute data obtained by encoding attribute information of the three-dimensional data using the hierarchical structure having the plurality of layers; and obtaining, from the bitstream, metadata related to the hierarchical structure.SELECTED DRAWING: Figure 63
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 apparatus, and a three-dimensional data decoding apparatus.

Background Art

[0002] In a wide range of fields such as computer vision, map information, monitoring, infrastructure inspection, or video distribution for autonomous operation of automobiles or robots, the spread of devices or services utilizing three-dimensional data is expected in the future. Three-dimensional data is acquired by various methods such as a distance sensor such as a range finder, a stereo camera, or a combination of a plurality of monocular cameras.

[0003] As one of the methods for expressing three-dimensional data, there is a method called point cloud that represents the shape of a three-dimensional structure by a point group in a three-dimensional space. In a point cloud, the positions and colors of the point group are stored. Although the point cloud is expected to become mainstream as a method for expressing three-dimensional data, the point group has a very large amount of data. Therefore, in the accumulation or transmission of three-dimensional data, as in the case of two-dimensional moving images (for example, MPEG-4 AVC or HEVC standardized by MPEG), compression of the data amount by encoding is essential.

[0004] Also, regarding the compression of point clouds, it is partially supported by a publicly available library (Point Cloud Library) that performs point cloud-related processing.

[0005] Also, a technique is known for searching for and displaying facilities located around a vehicle using three-dimensional map data (see, for example, Patent Document 1).

Prior Art Documents

Patent Documents

[0006]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0007] In the encoding process and decoding process of three-dimensional data, it is desired to reduce the processing amount.

[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 capable of reducing the processing amount.

Means for Solving the Problems

[0009] A three-dimensional data decoding method according to an aspect of the present disclosure acquires, by a processor, encoded position data in which position information of three-dimensional data is encoded using a hierarchical structure having a plurality of layers from a bit stream, and acquires, by the processor, encoded attribute data in which attribute information of the three-dimensional data is encoded using the hierarchical structure having the plurality of layers from the bit stream, and acquires metadata regarding the hierarchical structure from the bit stream.

[0010] A three-dimensional data encoding method according to an aspect of the present disclosure generates, by a processor, encoded position data in which position information of three-dimensional data is encoded using a hierarchical structure having a plurality of layers, generates, by the processor, encoded attribute data in which attribute information of the three-dimensional data is encoded using the hierarchical structure having the plurality of layers, generates, by the processor, metadata regarding the hierarchical structure, and generates a bit stream including the encoded position data, the encoded attribute data, and the metadata.

Effects 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 capable of reducing the processing amount.

Brief Description of the Drawings

[0012]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

Figure 22

Figure 23

Figure 24

Figure 25

Figure 26

Figure 27

Figure 28

Figure 29

Figure 30

Figure 31

Figure 32

Figure 33

Figure 34

Figure 35

Figure 36

Figure 37

Figure 38

Figure 39

Figure 40

Figure 41

Figure 42

Figure 43

Figure 44

Figure 45

Figure 46

Figure 47

Figure 48

Figure 49

Figure 50

Figure 51

Figure 52

Figure 53

Figure 54

Figure 55

Figure 56

Figure 57

Figure 58

Figure 59

Figure 60

Figure 61

Figure 62

Figure 63

Figure 64

Figure 65

Figure 66

Figure 67

Figure 68

Figure 69

Figure 70

Figure 71

Figure 72

Figure 73

Figure 74

Figure 75

Figure 76

Figure 77

Figure 78

Figure 79

Figure 80

Figure 81

Figure 82

Figure 83

Figure 84

Figure 85

Figure 86

Figure 87

Figure 88

Figure 89

Figure 90

Figure 91

Figure 92

Figure 93

Figure 94

Figure 95

Figure 96

Figure 97

Figure 98

Figure 99

Figure 100

Figure 101

Figure 102

Figure 103

Figure 104

Figure 105

Figure 106

Figure 107

Figure 108

Figure 109

Figure 110

Figure 111

Figure 112

Figure 113

Figure 114

Figure 115

Figure 116

Figure 117

Figure 118

Figure 119

Figure 120

Figure 121

Figure 122

[0013] The three-dimensional data encoding method according to one aspect of the present disclosure sets a hierarchical structure having a plurality of depths and a plurality of hierarchies each including one or more depths for a plurality of position information of a plurality of three-dimensional points included in point cloud data, generates a plurality of first encoded data for each depth by encoding the plurality of position information for each depth, generates a bit stream including a plurality of second encoded data that are encoded data for each hierarchy and include one or more first encoded data of one or more depths included in the corresponding hierarchy, and the bit stream includes first information indicating the data length of each of the plurality of second encoded data.

[0014] According to this, a three-dimensional data decoding device that decodes a bit stream can easily access data of any layer using the first information. Therefore, the three-dimensional data encoding method can reduce the processing amount of the three-dimensional data decoding device.

[0015] For example, the first information may include second information indicating the number of depths included in each of the plurality of layers, and third information indicating the data length of each of the plurality of first encoded data.

[0016] For example, the bit stream includes a first header common to the plurality of second encoded data, and the first header may include the first information.

[0017] For example, the bit stream includes a plurality of second headers for each second encoded data, the first information includes a plurality of fourth information corresponding to any of the plurality of second encoded data and indicating the data length of the corresponding second encoded data, and each of the plurality of second headers may include fourth information indicating the data length of the second encoded data corresponding to the second header.

[0018] For example, the bit stream includes a plurality of third headers for each of the plurality of first encoded data, the first information includes second information indicating the number of depths included in each of the plurality of layers, and fifth information corresponding to each of the plurality of first encoded data and indicating the data length of the corresponding first encoded data, and each of the plurality of third headers may include fifth information indicating the data length of the first encoded data corresponding to the third header.

[0019] For example, the three-dimensional data encoding method further generates a plurality of third encoded data for each depth by encoding a plurality of attribute information possessed by the plurality of three-dimensional points for each depth, the bit stream includes a plurality of fourth encoded data that are encoded data for each layer and include one or more third encoded data of one or more depths included in the corresponding layer, and the bit stream may include sixth information indicating the data length of each of the plurality of fourth encoded data.

[0020] A three-dimensional data decoding method according to one aspect of the present disclosure acquires the first information from a bit stream including a plurality of second encoded data and first information indicating the data length of each of the plurality of second encoded data, and uses the first information to acquire at least one second encoded data among the plurality of second encoded data, decodes the acquired at least one second encoded data, the bit stream is a plurality of position information of a plurality of three-dimensional points included in point cloud data, and a plurality of first encoded data for each depth generated by encoding, for each depth, a plurality of position information having a hierarchical structure having a plurality of depths and a plurality of layers each including one or more depths, each of the plurality of second encoded data corresponds to any one of the plurality of layers, and includes one or more first encoded data included in the layer corresponding to the second encoded data among the plurality of first encoded data.

[0021] According to this, the three-dimensional data decoding method can easily access the data of any layer using the first information. Therefore, the three-dimensional data decoding method can reduce the processing amount.

[0022] For example, the first information may include second information indicating the number of depths included in each of the plurality of layers and third information indicating the data length of each of the plurality of first encoded data.

[0023] For example, the bit stream may include a first header common to the plurality of second encoded data, and the first header may include the first information.

[0024] For example, the bit stream includes a plurality of second headers for each second encoded data, the first information corresponds to any one of the plurality of second encoded data, and includes a plurality of fourth information indicating the data length of the corresponding second encoded data, and each of the plurality of second headers may include fourth information indicating the data length of the second encoded data corresponding to the second header.

[0025] For example, the bitstream includes a plurality of third headers for each of the plurality of first encoded data, and the first information includes second information indicating the number of depths included in each of the plurality of layers, and fifth information corresponding to each of the plurality of first encoded data and indicating the data length of the corresponding first encoded data. Each of the plurality of third headers may include fifth information indicating the data length of the first encoded data corresponding to the third header.

[0026] For example, the bitstream includes a plurality of third encoded data for each depth generated by encoding a plurality of attribute information of the plurality of three-dimensional points for each depth. The bitstream is encoded data for each layer and includes a plurality of fourth encoded data including one or more third encoded data of one or more depths included in the corresponding layer. The bitstream includes sixth information indicating the data length of each of the plurality of fourth encoded data. The three-dimensional data decoding method may further obtain the sixth information from the bitstream, use the sixth information to obtain at least one of the plurality of fourth encoded data, and decode the obtained at least one fourth encoded data.

[0027] In addition, a three-dimensional data encoding apparatus according to an aspect of the present disclosure includes a processor and a memory. The processor uses the memory to set a hierarchical structure having a plurality of depths and a plurality of layers each including one or more depths for a plurality of position information of a plurality of three-dimensional points included in point cloud data, generates a plurality of first encoded data for each depth by encoding the plurality of position information for each depth, generates a bitstream including a plurality of second encoded data that are encoded data for each layer and include one or more first encoded data of one or more depths included in the corresponding layer, and the bitstream includes first information indicating the data length of each of the plurality of second encoded data.

[0028] According to this, the three-dimensional data decoding device that decodes the bitstream can easily access the data of any layer using the first information. Therefore, the three-dimensional data encoding device can reduce the processing amount of the three-dimensional data decoding device.

[0029] Further, the three-dimensional data decoding device according to one aspect of the present disclosure includes a processor and a memory. The processor uses the memory to obtain the first information from a bitstream including a plurality of second encoded data and first information indicating the data length of each of the plurality of second encoded data, and uses the first information to obtain at least one of the plurality of second encoded data, decode the obtained at least one second encoded data. The bitstream is a plurality of position information of a plurality of three-dimensional points included in point cloud data, and is generated by encoding, for each depth, a plurality of position information having a hierarchical structure having a plurality of depths and a plurality of layers each including one or more depths. Each of the plurality of second encoded data corresponds to one of the plurality of layers and includes one or more first encoded data included in the layer corresponding to the second encoded data among the plurality of first encoded data.

[0030] According to this, the three-dimensional data decoding device can easily access the data of any layer using the first information. Therefore, the three-dimensional data decoding device can reduce the processing amount.

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

[0032] Hereinafter, embodiments will be specifically described with reference to the drawings. Note that all the embodiments described below are specific examples of the present disclosure. The numerical values, shapes, materials, components, arrangement positions and connection forms of the components, steps, order of steps, etc. 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, the components not described in the independent claims are described as optional components.

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

[0034] In the present embodiment, a three-dimensional data encoding method and a three-dimensional data encoding device for providing a function of transmitting and receiving the necessary information according to the application in the encoded data of the three-dimensional point cloud, 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 will be described.

[0035] In particular, currently, as encoding methods (encoding schemes) for point cloud data, a first encoding method and a second encoding method are being considered. However, the configuration of the encoded data and the method of storing the encoded data in the system format are not defined, and there is a problem that MUX processing (multiplexing), transmission, or storage cannot be performed in the encoding unit as it is.

[0036] In addition, there has been no method for supporting a format in which two codecs, a first encoding method and a second encoding method, are mixed, such as PCC (Point Cloud Compression).

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

[0038] 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 a configuration example 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.

[0039] The three-dimensional data encoding system 4601 generates encoded data or multiplexed data by encoding point cloud data, which is three-dimensional data. Note that 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 a plurality of devices. Further, the three-dimensional data encoding device may include a part of a plurality of processing units included in the three-dimensional data encoding system 4601.

[0040] 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.

[0041] 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.

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

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

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

[0045] The input / output unit 4615 (for example, 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 the application execution unit) controls each processing unit. That is, the control unit 4616 performs controls such as encoding and multiplexing.

[0046] Note that the sensor information may be input to the symbolization unit 4613 or the multiplexing unit 4614. Also, the input / output unit 4615 may output the point cloud data or the encoded data as it is to the outside.

[0047] 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.

[0048] The three-dimensional data decoding system 4602 generates point cloud data, which is three-dimensional data, by decoding the encoded data or the multiplexed data. Note that the three-dimensional data decoding system 4602 may be a three-dimensional data decoding device realized by a single device, or a system realized by a plurality of devices. Also, the three-dimensional data decoding device may include a part of the plurality of processing units included in the three-dimensional data decoding system 4602.

[0049] 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.

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

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

[0052] The demultiplexing unit 4623 acquires encoded data, control information, and additional information from the multiplexed data, and outputs the encoded data, control information, and additional information to the decoding unit 4624.

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

[0054] 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 the user's operation. The control unit 4627 (or the application execution unit) controls each processing unit. That is, the control unit 4627 performs control such as demultiplexing, decoding, and presentation.

[0055] Note that the input / output unit 4622 may directly acquire point cloud data or encoded data from the outside. Also, the presentation unit 4625 may acquire additional information such as sensor information and present information based on the additional information. Further, the presentation unit 4625 may perform presentation based on the user's instruction acquired by the user interface 4626.

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

[0057] The sensor information that can be obtained by the sensor terminal 4603 is, for example, (1) the distance between the sensor terminal 4603 and the object, or the reflectivity of the object, obtained from a LIDAR, millimeter-wave radar, or infrared sensor, (2) the distance between the camera and the object or the reflectivity of the object obtained from a plurality of monocular camera images or stereo camera images, etc. Further, the sensor information may include the posture, orientation, gyro (angular velocity), position (GPS information or altitude), speed, or acceleration, etc. of the sensor. Further, the sensor information may include temperature, atmospheric pressure, humidity, or magnetism, etc.

[0058] 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, or broadcast, etc.

[0059] 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 a configuration example of a data file in which the information of the point cloud data is described.

[0060] The point cloud data includes data of a plurality of points. The data of each point includes position information (three-dimensional coordinates) and attribute information for the position information. A collection of these points is called a point cloud. For example, the point cloud shows the three-dimensional shape of an object.

[0061] The position information (Position) such as three-dimensional coordinates may also be called geometry. Further, the data of each point may include attribute information (attribute) of a plurality of attribute types. The attribute types are, for example, color or reflectivity, etc.

[0062] One piece of attribute information may be associated with one piece of position information, or attribute information having a plurality of different attribute types may be associated with one piece of position information. Further, a plurality of pieces of attribute information of the same attribute type may be associated with one piece of position information.

[0063] The configuration example of the data file shown in FIG. 3 is an example where the position information and the attribute information correspond one-to-one, and shows the position information and the attribute information of N points constituting the point cloud data.

[0064] The position information is, for example, information on three axes of x, y, and z. The attribute information is, for example, color information of RGB. As a typical data file, there is a ply file or the like.

[0065] 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, the point cloud data includes a static object and a dynamic object.

[0066] The static object is three-dimensional point cloud data at an arbitrary time (a certain time). The dynamic object is three-dimensional point cloud data that changes over time. Hereinafter, the three-dimensional point cloud data at a certain time is referred to as a PCC frame or a frame.

[0067] The object may be a point cloud with a limited area to some extent like ordinary video data, or a large-scale point cloud with an unlimited area like map information.

[0068] Also, there is point cloud data with various densities, and there may be sparse point cloud data and dense point cloud data.

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

[0070] When generating position information or adding attribute information, the point cloud data generation unit 4618 may process the point cloud data. For example, the point cloud data generation unit 4618 may reduce the data volume by deleting point clouds with overlapping positions. Further, the point cloud data generation unit 4618 may convert the position information (such as position shift, rotation, or normalization), or may render the attribute information.

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

[0072] The encoding unit 4613 generates encoded data by encoding the point cloud data based on a predefined encoding method. There are roughly two types of encoding methods as follows. The first is an encoding method using position information, which will be described as the first encoding method hereinafter. The second is an encoding method using a video codec, which will be described as the second encoding method hereinafter.

[0073] The decoding unit 4624 decodes the point cloud data by decoding the encoded data based on a predefined encoding method.

[0074] 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, files, or reference time information. Further, the multiplexing unit 4614 may further multiplex sensor information or attribute information related to the point cloud data.

[0075] Examples of the multiplexing method or file format include ISOBMFF, MPEG-DASH which is an ISOBMFF-based transmission method, MMT, MPEG-2 TS Systems, RMP, etc.

[0076] The inverse multiplexing unit 4623 extracts PCC-encoded data, other media, time information, etc. from the multiplexed data.

[0077] The input / output unit 4615 transmits the multiplexed data using a method suitable for the medium for transmission such as broadcasting or communication or the medium for storage. 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.

[0078] As the communication protocol, http, ftp, TCP, UDP, etc. are used. A PULL-type communication method may be used or a PUSH-type communication method may be used.

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

[0080] Also, as the broadcasting method, for example, DVB-T2, DVB-S2, DVB-C2, ATSC 3.0, or ISDB-S3, etc. are used.

[0081] FIG. 5 is a diagram showing the configuration of a first encoding unit 4630 which is an example of the encoding unit 4613 that performs encoding by 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 the point cloud data by the first encoding method. This 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.

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

[0083] 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, attribute information, and other additional information (MetaData). The position information is input to the position information encoding unit 4631, the attribute information is input to the attribute information encoding unit 4632, and the additional information is input to the additional information encoding unit 4633.

[0084] The position information encoding unit 4631 generates encoded position information (Compressed Geometry), which 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 octree. Specifically, in an octree, the target space is divided into eight nodes (sub-spaces), and 8-bit information (occupancy code) indicating whether each node contains a point cloud is generated. Also, the node containing the point cloud is further divided into eight nodes, and 8-bit information indicating whether each of the eight nodes contains a point cloud is generated. This process is repeated until the number of point clouds included in a predetermined hierarchy or node is below a threshold value.

[0085] The attribute information encoding unit 4632 generates encoded attribute information (Compressed Attribute), which 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 referred to in the encoding of the 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 the peripheral nodes or adjacent nodes whose parent node in the octree is the same as the target node. Note that the method for determining the reference relationship is not limited to this.

[0086] Also, the encoding process of the attribute information may include at least one of quantization processing, prediction processing, and arithmetic encoding processing. In this case, reference means using the reference node to calculate the predicted value of the attribute information, or using the state of the reference node (for example, occupancy information indicating whether the reference node includes a point cloud) to determine the encoding parameter. For example, the encoding parameter is a quantization parameter in quantization processing or a context in arithmetic encoding.

[0087] The additional information encoding unit 4633 generates encoded additional information (Compressed MetaData), which is encoded data, by encoding compressible data among the additional information.

[0088] The multiplexing unit 4634 generates an encoded stream (Compressed Stream), which is encoded data, by multiplexing the encoded position information, encoded attribute information, encoded additional information, and other additional information. The generated encoded stream is output to a processing unit of a system layer (not shown).

[0089] Next, a first decoding unit 4640, which is an example of a decoding unit 4624 that decodes using the first encoding method, will be described. FIG. 7 is a diagram showing the 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 cloud data by decoding encoded data (encoded stream) encoded by the first encoding method using the first encoding method. This 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.

[0090] An encoded stream (Compressed Stream), which is encoded data, is input to the first decoding unit 4640 from a processing unit in a system layer (not shown).

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

[0092] 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 the point cloud represented by three-dimensional coordinates from the encoded position information represented by an N-ary tree structure such as an octree.

[0093] 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 referred to in decoding the 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 in which the parent node in the octree is the same as the target node among the surrounding nodes or adjacent nodes. Note that the method for determining the reference relationship is not limited to this.

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

[0095] The additional information decoding unit 4644 generates additional information by decoding the encoded additional information. In addition, the first decoding unit 4640 uses the additional information required for the decoding process of the position information and the attribute information during decoding, and outputs the additional information required for the application to the outside.

[0096] Next, a configuration example of the position information encoding unit will be described. FIG. 9 is a block diagram of the position information encoding unit 2700 according to the present embodiment. The position information encoding unit 2700 includes an octree generation unit 2701, a geometric information calculation unit 2702, an encoding table selection unit 2703, and an entropy encoding unit 2704.

[0097] The octree generation unit 2701 generates, for example, an octree from the input position information and generates an occupancy code for each node of the octree. The geometric information calculation unit 2702 acquires information indicating whether an adjacent node of the target node is an occupied node. For example, the geometric information calculation unit 2702 calculates occupancy information (information indicating whether an adjacent node is an occupied node) of the adjacent node from the occupancy code of the parent node to which the target node belongs. In addition, the geometric information calculation unit 2702 may save the encoded nodes in a list and search for adjacent nodes from within the list. Note that the geometric information calculation unit 2702 may switch the adjacent nodes according to the position within the parent node of the target node.

[0098] The symbolic table selection unit 2703 selects a coding table to be used for entropy coding of the target node by using the occupancy information of adjacent nodes calculated by the geometric information calculation unit 2702. For example, the symbolic table selection unit 2703 may generate a bit string by using the occupancy information of adjacent nodes, and select a coding table with an index number generated from the bit string.

[0099] The entropy coding unit 2704 generates coding position information and metadata by performing entropy coding on the occupancy code of the target node by using the coding table with the selected index number. The entropy coding unit 2704 may add information indicating the selected coding table to the coding position information.

[0100] Hereinafter, the octree representation and the scanning order of position information will be described. The position information (position data) is coded after being converted (octreed) into an octree structure. The octree structure is composed of nodes and leaves. Each node has eight nodes or leaves, and each leaf has voxel (VXL) information. FIG. 10 is a diagram showing an example of the structure of position information including a plurality of voxels. FIG. 11 is a diagram showing an example of converting the position information shown in FIG. 10 into an octree structure. Here, among the leaves shown in FIG. 11, leaves 1, 2, and 3 represent voxels VXL1, VXL2, and VXL3 shown in FIG. 10, respectively, and represent VXLs (hereinafter, valid VXLs) including point clouds.

[0101] Specifically, node 1 corresponds to the entire space including the position information in FIG. 10. The entire space corresponding to node 1 is divided into eight nodes, and among the eight nodes, the nodes including valid VXLs are further divided into eight nodes or leaves, and this process is repeated for the hierarchy of the tree structure. Here, each node corresponds to a sub-space and has information (occupancy code) indicating at which position of the division the next node or leaf is located as node information. In addition, the lowermost block is set as a leaf, and the number of point clouds included in the leaf and the like are held as leaf information.

[0102] Next, a configuration example of the position information decoding unit will be described. FIG. 12 is a block diagram of the position information decoding unit 2710 according to the present embodiment. The position information decoding unit 2710 includes an octree generation unit 2711, a geometric information calculation unit 2712, a coding table selection unit 2713, and an entropy decoding unit 2714.

[0103] The octree generation unit 2711 generates an octree of a certain space (node) using the header information or metadata of the bitstream, etc. For example, the octree generation unit 2711 generates a large space (root node) using the sizes in the x-axis, y-axis, and z-axis directions of a certain space added to the header information, and divides the space into two parts in the x-axis, y-axis, and z-axis directions respectively to generate eight small spaces A (nodes A0 to A7), thereby generating an octree. Also, nodes A0 to A7 are sequentially set as the target nodes.

[0104] The geometric information calculation unit 2712 acquires occupancy information indicating whether an adjacent node of the target node is an occupied node. For example, the geometric information calculation unit 2712 calculates the occupancy information of the adjacent node from the occupancy code of the parent node to which the target node belongs. Also, the geometric information calculation unit 2712 may save the decoded nodes in a list and search for adjacent nodes from within the list. Note that the geometric information calculation unit 2712 may switch the adjacent nodes according to the position within the parent node of the target node.

[0105] The coding table selection unit 2713 selects a coding table (decoding table) to be used for entropy decoding of the target node using the occupancy information of the adjacent node calculated by the geometric information calculation unit 2712. For example, the coding table selection unit 2713 may generate a bit string using the occupancy information of the adjacent node and select the coding table of the index number generated from the bit string.

[0106] The entropy decoding unit 2714 generates position information by entropy-decoding the occupancy code of the target node using the selected encoding table. Note that the entropy decoding unit 2714 may decode and obtain the information of the selected encoding table from the bit stream, and entropy-decode the occupancy code of the target node using the encoding table indicated by the information.

[0107] Hereinafter, the configurations of the attribute information encoding unit and the attribute information decoding unit will be described. FIG. 13 is a block diagram showing a configuration example of the attribute information encoding unit A100. The attribute information encoding unit may include a plurality of encoding units that execute different encoding methods. For example, the attribute information encoding unit may switch and use the following two methods according to the use case.

[0108] The attribute information encoding unit A100 includes a LoD attribute information encoding unit A101 and a transformed attribute information encoding unit A102. The LoD attribute information encoding unit A101 classifies each three-dimensional point into a plurality of levels using the position information of the three-dimensional points, predicts the attribute information of the three-dimensional points belonging to each level, and encodes the prediction residual. Here, each classified level is called LoD (Level of Detail).

[0109] The transformed attribute information encoding unit A102 encodes the attribute information using RAHT (Region Adaptive Hierarchical Transform). Specifically, the transformed attribute information encoding unit A102 generates high-frequency components and low-frequency components of each level by applying RAHT or Haar transform to each attribute information based on the position information of the three-dimensional points, and encodes their values using quantization, entropy encoding, etc.

[0110] FIG. 14 is a block diagram showing a configuration example of the attribute information decoding unit A110. The attribute information decoding unit may include a plurality of decoding units that execute different decoding methods. For example, the attribute information decoding unit may switch and decode based on the information included in the header and metadata using the following two methods.

[0111] The attribute information decoding unit A110 includes a LoD attribute information decoding unit A111 and a transformed attribute information decoding unit A112. The LoD attribute information decoding unit A111 classifies each three-dimensional point into a plurality of levels using the position information of the three-dimensional points, and decodes the attribute values while predicting the attribute information of the three-dimensional points belonging to each level.

[0112] The transformed attribute information decoding unit A112 decodes the attribute information using RAHT (Region Adaptive Hierarchical Transform). Specifically, the transformed attribute information decoding unit A112 decodes the attribute values by applying inverse RAHT or inverse Haar transform to the high-frequency components and low-frequency components of each attribute value based on the position information of the three-dimensional points.

[0113] FIG. 15 is a block diagram showing the configuration of an attribute information encoding unit 3140 which is an example of the LoD attribute information encoding unit A101.

[0114] The attribute information encoding unit 3140 includes a LoD generation unit 3141, a surrounding search unit 3142, a prediction unit 3143, a prediction residual calculation unit 3144, a quantization unit 3145, an arithmetic encoding unit 3146, an inverse quantization unit 3147, a decoded value generation unit 3148, and a memory 3149.

[0115] The LoD generation unit 3141 generates LoD using the position information of the three-dimensional points.

[0116] The surrounding search unit 3142 searches for neighboring three-dimensional points adjacent to each three-dimensional point using the LoD generation result by the LoD generation unit 3141 and distance information indicating the distance between each three-dimensional point.

[0117] The prediction unit 3143 generates a predicted value of the attribute information of the target three-dimensional point to be encoded.

[0118] The prediction residual calculation unit 3144 calculates (generates) the prediction residual of the predicted value of the attribute information generated by the prediction unit 3143.

[0119] The quantization unit 3145 quantizes the prediction residual of the attribute information calculated by the prediction residual calculation unit 3144.

[0120] The arithmetic coding unit 3146 arithmetically codes the prediction residual after quantization by the quantization unit 3145. The arithmetic coding unit 3146 outputs a bitstream including the arithmetically coded prediction residual to, for example, a three-dimensional data decoding device.

[0121] Note that the prediction residual may be binarized by, for example, the quantization unit 3145 before being arithmetically coded by the arithmetic coding unit 3146.

[0122] Also, for example, the arithmetic coding unit 3146 may initialize the coding table used for arithmetic coding before arithmetic coding. The arithmetic coding unit 3146 may initialize the coding table for each layer. Further, the arithmetic coding unit 3146 may output information indicating the position of the layer for which the coding table has been initialized, included in the bitstream.

[0123] The inverse quantization unit 3147 inversely quantizes the prediction residual after quantization by the quantization unit 3145.

[0124] The decoded value generation unit 3148 generates a decoded value by adding the predicted value of the attribute information generated by the prediction unit 3143 and the prediction residual after inverse quantization by the inverse quantization unit 3147.

[0125] The memory 3149 is a memory that stores the decoded values of the attribute information of each three-dimensional point decoded by the decoded value generation unit 3148. For example, when the prediction unit 3143 generates a predicted value of a three-dimensional point that has not yet been coded, the prediction unit 3143 generates a predicted value using the decoded values of the attribute information of each three-dimensional point stored in the memory 3149.

[0126] FIG. 16 is a block diagram of an attribute information encoding unit 6600 which is an example of the conversion attribute information encoding unit A102. The attribute information encoding unit 6600 includes a sorting unit 6601, a Haar transform unit 6602, a quantization unit 6603, an inverse quantization unit 6604, an inverse Haar transform unit 6605, a memory 6606, and an arithmetic encoding unit 6607.

[0127] The sorting unit 6601 generates a Morton code using the position information of three-dimensional points and sorts a plurality of three-dimensional points in the order of the Morton code. The Haar transform unit 6602 generates encoded coefficients by applying a Haar transform to the attribute information. The quantization unit 6603 quantizes the encoded coefficients of the attribute information.

[0128] The inverse quantization unit 6604 inverse-quantizes the quantized encoded coefficients. The inverse Haar transform unit 6605 applies an inverse Haar transform to the encoded coefficients. The memory 6606 stores the values of the attribute information of a plurality of decoded three-dimensional points. For example, the decoded attribute information of the three-dimensional points stored in the memory 6606 may be used for prediction of non-encoded three-dimensional points and the like.

[0129] The arithmetic encoding unit 6607 calculates ZeroCnt from the quantized encoded coefficients and arithmetically encodes ZeroCnt. Also, the arithmetic encoding unit 6607 arithmetically encodes the non-zero quantized encoded coefficients. The arithmetic encoding unit 6607 may binarize the encoded coefficients before arithmetic encoding. Also, the arithmetic encoding unit 6607 may generate and encode various header information.

[0130] FIG. 17 is a block diagram showing the configuration of an attribute information decoding unit 3150 which is an example of the LoD attribute information decoding unit A111.

[0131] The attribute information decoding unit 3150 includes a LoD generation unit 3151, a surrounding search unit 3152, a prediction unit 3153, an arithmetic decoding unit 3154, an inverse quantization unit 3155, a decoded value generation unit 3156, and a memory 3157.

[0132] The LoD generation unit 3151 generates LoD using the position information of the three-dimensional points decoded by a position information decoding unit (not shown in FIG. 17).

[0133] The surrounding search unit 3152 searches for neighboring three-dimensional points adjacent to each three-dimensional point using the LoD generation result by the LoD generation unit 3151 and distance information indicating the distance between each three-dimensional point.

[0134] The prediction unit 3153 generates a predicted value of the attribute information of the target three-dimensional point to be decoded.

[0135] The arithmetic decoding unit 3154 arithmetically decodes the prediction residual in the bit stream obtained from the attribute information encoding unit 3140 shown in FIG. 15. Note that the arithmetic decoding unit 3154 may initialize the decoding table used for arithmetic decoding. The arithmetic decoding unit 3154 initializes the decoding table used for arithmetic decoding for the layer in which the arithmetic encoding unit 3146 shown in FIG. 15 performed the encoding process. The arithmetic decoding unit 3154 may initialize the decoding table for each layer. Also, the arithmetic decoding unit 3154 may initialize the decoding table based on the information indicating the position of the layer in which the encoding table was initialized, included in the bit stream.

[0136] The inverse quantization unit 3155 inverse quantizes the prediction residual arithmetically decoded by the arithmetic decoding unit 3154.

[0137] The decoded value generation unit 3156 generates a decoded value by adding the predicted value generated by the prediction unit 3153 and the prediction residual after being inverse quantized by the inverse quantization unit 3155. The decoded value generation unit 3156 outputs the decoded attribute information data to another device.

[0138] The memory 3157 is a memory that stores the decoded values of the attribute information of each three-dimensional point decoded by the decoded value generation unit 3156. For example, when the prediction unit 3153 generates a predicted value of a three-dimensional point that has not been decoded yet, the prediction unit 3153 generates a predicted value using the decoded values of the attribute information of each three-dimensional point stored in the memory 3157.

[0139] FIG. 18 is a block diagram of an attribute information decoding unit 6610 which is an example of the conversion attribute information decoding unit A112. The attribute information decoding unit 6610 includes an arithmetic decoding unit 6611, an inverse quantization unit 6612, an inverse Haar transform unit 6613, and a memory 6614.

[0140] The arithmetic decoding unit 6611 arithmetically decodes ZeroCnt and the encoded coefficients included in the bit stream. Note that the arithmetic decoding unit 6611 may decode various header information.

[0141] The inverse quantization unit 6612 inverse quantizes the arithmetically decoded encoded coefficients. The inverse Haar transform unit 6613 applies an inverse Haar transform to the encoded coefficients after inverse quantization. The memory 6614 stores the values of the attribute information of a plurality of decoded three-dimensional points. For example, the decoded attribute information of the three-dimensional points stored in the memory 6614 may be used for prediction of non-decoded three-dimensional points.

[0142] Next, a second encoding unit 4650 which is an example of an encoding unit 4613 that performs encoding using the second encoding method will be described. FIG. 19 is a diagram showing the configuration of the second encoding unit 4650. FIG. 20 is a block diagram of the second encoding unit 4650.

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

[0144] The second encoding unit 4650 is characterized in that it generates a position image and an attribute image by projecting a three-dimensional structure onto a two-dimensional image, and encodes the generated position image and attribute image using an existing video encoding method. The second encoding method is also called VPCC (Video based PCC).

[0145] 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).

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

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

[0148] The attribute image generation unit 4653 generates an attribute image based on the attribute information and the map information generated by the additional information generation unit 4651. This attribute image is, for example, an image in which attribute information (e.g., color (RGB)) is indicated as a pixel value. Note that this image may be an image of a plurality of point clouds viewed from one viewpoint (an image obtained by projecting a plurality of point clouds onto one two-dimensional plane), or may be a plurality of images of a plurality of point clouds viewed from a plurality of viewpoints, or may be one image obtained by integrating these plurality of images.

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

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

[0151] The multiplexing unit 4656 generates an encoded stream (Compressed Stream), which is encoded data, by multiplexing the encoded position image, the encoded attribute image, the encoded additional information, and other additional information. The generated encoded stream is output to a processing unit in a system layer (not shown).

[0152] Next, a second decoding unit 4660, which is an example of a decoding unit 4624 that decodes the second encoding method, will be described. FIG. 21 is a diagram showing the configuration of the second decoding unit 4660. FIG. 22 is a block diagram of the second decoding unit 4660. The second decoding unit 4660 generates point cloud data by decoding the encoded data (encoded stream) encoded by the second encoding method using the second encoding method. This second decoding unit 4660 includes a demultiplexing unit 4661, a video decoding unit 4662, an additional information decoding unit 4663, a position information generation unit 4664, and an attribute information generation unit 4665.

[0153] An encoded stream (Compressed Stream), which is encoded data, is input from a processing unit in a system layer (not shown) to the second decoding unit 4660.

[0154] The demultiplexing unit 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.

[0155] 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 or the like.

[0156] The additional information decoding unit 4663 generates additional information including map information and the like by decoding the encoded additional information.

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

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

[0159] Hereinafter, the problems in the PCC encoding method will be described. FIG. 23 is a diagram showing a protocol stack related to PCC encoded data. FIG. 23 shows an example in which data of other media such as video (for example, HEVC) or audio is multiplexed with the PCC encoded data and transmitted or stored.

[0160] The multiplexing method and the file format have functions for multiplexing various encoded data and transmitting or storing it. In order to transmit or store the encoded data, the encoded data must be converted into the format of the multiplexing method. For example, in HEVC, a technique of storing the encoded data in a data structure called a NAL unit and storing the NAL unit in ISOBMFF is defined.

[0161] On the other hand, currently, as encoding methods for point cloud data, a first encoding method (Codec1) and a second encoding method (Codec2) are being studied, but the configuration of the encoded data and the method of storing the encoded data in the system format are not defined, and there is a problem that MUX processing (multiplexing), transmission, and storage in the encoding unit cannot be performed as it is.

[0162] In the following, unless otherwise specified for a specific encoding method, it shall indicate either the first encoding method or the second encoding method.

[0163] (Embodiment 2) In this embodiment, the type of encoded data (Geometry, Attribute, Metadata) generated by the above-described first encoding unit 4630 or second encoding unit 4650, the method for generating additional information (metadata), and the multiplexing process 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.

[0164] In this embodiment, the dynamic object (three-dimensional point cloud data that changes over time) described with reference to FIG. 4 will be used as an example, but the same method may also be used for a static object (three-dimensional point cloud data at any given time).

[0165] FIG. 24 is a diagram showing the configuration of an encoding unit 4801 and a multiplexing unit 4802 included in the three-dimensional data encoding apparatus according to this embodiment. The encoding unit 4801 corresponds to, for example, the above-described first encoding unit 4630 or second encoding unit 4650. The multiplexing unit 4802 corresponds to the above-described multiplexing unit 4634 or 4656.

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

[0167] The multiplexing unit 4802 converts the data into a data configuration considering data access in the decoding apparatus by NAL unitizing the data of a plurality of data types (position information, attribute information, and additional information).

[0168] FIG. 25 is a diagram showing a configuration example of encoded data generated by the encoding unit 4801. The arrows in the figure indicate the dependency relationships related to the decoding of the encoded data, and the source of the arrow depends on the data at the destination of the arrow. That is, the decoding device decodes the data at the destination of the arrow and uses the decoded data to decode the data at the source of the arrow. In other words, dependency means that the data at the destination is referenced (used) in the processing (encoding or decoding, etc.) of the data at the source.

[0169] First, the generation process of the encoded data of the 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 by G(i). Here, i indicates the frame number, or the time of the frame, etc.

[0170] In addition, the encoding unit 4801 generates a position parameter set (GPS(i)) corresponding to each frame. The position parameter set includes parameters that can be used for decoding the encoded position data. Also, the encoded position data for each frame depends on the corresponding position parameter set.

[0171] Furthermore, the encoded position data composed of a plurality of frames is defined as a position sequence (Geometry Sequence). The encoding unit 4801 generates a position sequence parameter set (Geometry Sequence PS, also denoted as position SPS) that stores parameters commonly used for the decoding process of a plurality of frames in the position sequence. The position sequence depends on the position SPS.

[0172] Next, the generation process of the encoded data of the attribute information will be described. The encoding unit 4801 generates encoded attribute data (Compressed Attribute Data) for each frame by encoding the attribute information of each frame. Also, the encoded attribute data is represented by A(i). In FIG. 25, an example where there are attribute X and attribute Y is shown. The encoded attribute data of attribute X is represented by AX(i), and the encoded attribute data of attribute Y is represented by AY(i).

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

[0174] Also, the encoded attribute data consisting of a plurality of frames is defined as an attribute sequence. The encoding unit 4801 generates an attribute sequence parameter set (Attribute Sequence PS: also denoted as attribute SPS) that stores parameters commonly used for the decoding process for a plurality of frames within the attribute sequence. The attribute sequence depends on the attribute SPS.

[0175] Also, in the first encoding method, the encoded attribute data depends on the encoding position data.

[0176] Also, FIG. 25 shows an example where there are two types of attribute information (attribute X and attribute Y). 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.

[0177] Note that, in FIG. 25, an example is shown where there is one type of position information and two types of attribute information. However, this is not the only case. The attribute information may be one type or three or more types. Even in this case, encoded data can be generated in the same way. Also, in the case of point cloud data without attribute information, the attribute information may not be present. In that case, the encoding unit 4801 does not necessarily need to generate a parameter set related to the attribute information.

[0178] Next, the generation process of additional information (metadata) will be described. The encoding unit 4801 generates a PCC stream PS (PCC Stream PS, also denoted as stream PS), which is a parameter set for the entire PCC stream. The encoding unit 4801 stores in the stream PS parameters that can be commonly used for the decoding process of one or more position sequences and one or more attribute sequences. 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.

[0179] Next, the access unit and GOF will be described. In the present embodiment, the concepts of a new access unit (Access Unit: AU) and GOF (Group of Frame) are introduced.

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

[0181] The symbolization unit 4801 generates an access unit header (AU Header) as identification information indicating the start of an access unit. The symbolization 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. Also, the access unit header includes parameters commonly used for the data included in the access unit, such as parameters related to the decoding of the encoded data.

[0182] Note that the symbolization unit 4801 may generate an access unit delimiter that does not include parameters related to the access unit instead of the access unit header. This access unit delimiter is used as identification information indicating the start of the access unit. The decoding device identifies the start of the access unit by detecting the access unit header or the access unit delimiter.

[0183] Next, the generation of the identification information at the start of the GOP is described. The symbolization unit 4801 generates a GOP header (GOP Header) as identification information indicating the start of the GOP. The symbolization unit 4801 stores parameters related to the GOP in the GOP header. For example, the GOP header includes the configuration or information of the encoded data included in the GOP. Also, the GOP header includes parameters commonly used for the data included in the GOP, such as parameters related to the decoding of the encoded data.

[0184] Note that the symbolization unit 4801 may generate a GOP delimiter that does not include parameters related to the GOP instead of the GOP header. This GOP delimiter is used as identification information indicating the start of the GOP. The decoding device identifies the start of the GOP by detecting the GOP header or the GOP delimiter.

[0185] In the PCC encoded data, for example, an access unit is defined in units of PCC frames. The decoding device accesses the PCC frame based on the identification information at the start of the access unit.

[0186] Also, for example, a GOF is defined as one random access unit. The decoding device accesses the random access unit based on the identification information at the head of the GOF. For example, if PCC frames are independent of each other and can be decoded alone, a PCC frame may be defined as a random access unit.

[0187] Note that two or more PCC frames may be assigned to one access unit, or a plurality of random access units may be assigned to one GOF.

[0188] Also, 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 an SEI (Supplemental Enhancement Information) that stores parameters (optional parameters) that may not necessarily be used during decoding.

[0189] Next, the configuration of the encoded data and the method of storing the encoded data in the NAL unit will be described.

[0190] For example, a data format is defined for each type of encoded data. FIG. 26 is a diagram showing an example of encoded data and NAL units.

[0191] For example, as shown in FIG. 26, the encoded data includes a header and a payload. Note that the encoded data may include length information indicating the length (data amount) of the encoded data, the header, or the payload. Also, the encoded data may not include a header.

[0192] The header includes, for example, identification information for specifying the data. This identification information indicates, for example, the data type or frame number.

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

[0194] Note that when the destination or 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.

[0195] 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 for the encoded data. FIG. 27 is a diagram showing an example of the semantics of pcc_nal_unit_type.

[0196] As shown in FIG. 27, when pcc_codec_type is Codec1 (the first encoding method), the 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 Codec1. Also, the values 11 and later are assigned for future use in Codec1.

[0197] When the pcc_codec_type is Codec2 (the second encoding method), the values 0 to 2 of pcc_nal_unit_type are assigned to the codec's Data A, MetaData A, and MetaData B. Also, values 3 and above are assigned to the reserve of Codec2.

[0198] Next, the data transmission order will be described. Hereinafter, the constraints on the transmission order of NAL units will be described.

[0199] The multiplexing unit 4802 transmits NAL units in units of GOF or AU. The multiplexing unit 4802 arranges a GOF header at the head of the GOF and an AU header at the head of the AU.

[0200] Even if data is lost due to packet loss or the like, the multiplexing unit 4802 may arrange the sequence parameter set (SPS) for each AU so that the decoder can decode from the next AU.

[0201] When there is a decoding dependency relationship in the encoded data, the decoder decodes the reference destination data first and then the reference source data. In the decoder, in order to be able to decode in the received order without rearranging the data, the multiplexing unit 4802 transmits the reference destination data first.

[0202] Figure 28 is a diagram showing an example of the transmission order of NAL units. Figure 28 shows three examples: position information priority, parameter priority, and data integration.

[0203] The transmission order of position information priority is an example of transmitting the information related to position information and the information related to attribute information together. In this transmission order, the transmission of the information related to position information is completed earlier than the transmission of the information related to attribute information.

[0204] For example, by using this transmission order, a decoder that does not decrypt the attribute information may be able to provide a time for not processing by ignoring the decryption of the attribute information. Also, for example, in the case of a decoder that wants to quickly decrypt the position information, it may be possible to decrypt the position information earlier by obtaining the encoded data of the position information earlier.

[0205] Note that in FIG. 28, the attribute XSPS and the attribute YSPS are integrated and described as the attribute SPS, but the attribute XSPS and the attribute YSPS may be arranged individually.

[0206] In the transmission order with parameter set priority, the parameter set is transmitted first and the data is transmitted later.

[0207] As described above, according to the constraints of the NAL unit transmission order, the multiplexing unit 4802 may transmit the NAL units in any order. For example, order identification information is defined, and the multiplexing unit 4802 may have a function of transmitting the NAL units in a plurality of pattern orders. For example, the order identification information of the NAL unit is stored in the stream PS.

[0208] The three-dimensional data decoder may perform decoding based on the order identification information. A desired transmission order is instructed from the three-dimensional data decoder to the three-dimensional data encoder, and the three-dimensional data encoder (multiplexing unit 4802) may control the transmission order according to the instructed transmission order.

[0209] Note that the multiplexing unit 4802 may generate encoded data in which a plurality of functions are merged as long as it is within the range that follows the constraints of the transmission order, such as the transmission order of data integration. For example, as shown in FIG. 28, 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 a plurality of functions is defined for pcc_nal_unit_type.

[0210] Hereinafter, a modification example of the present embodiment will be described. PS has levels such as frame-level PS, sequence-level PS, and PCC sequence-level PS. When the PCC sequence level is the upper level and the frame level is the lower level, the following method may be used for the parameter storage method.

[0211] The value of the default PS is indicated by the higher-level PS. Also, when the value of the lower-level PS is different from the value of the higher-level PS, the value of the PS is indicated by the lower-level PS. Or, the value of the PS is not described at the higher level, and the value of the PS is described in the lower-level PS. Or, information indicating whether the value of the PS is indicated by the lower-level PS, the higher-level PS, or both is indicated in either one or both of the lower-level PS and the higher-level PS. Or, the lower-level PS may be merged into the higher-level PS. Or, when the lower-level PS and the higher-level PS overlap, the multiplexing unit 4802 may omit the transmission of either one.

[0212] Note that the encoding unit 4801 or the multiplexing unit 4802 may divide the data into slices or tiles, etc., 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 pcc_nal_unit_type is data storing data or parameters related to tiles or slices is defined.

[0213] (Embodiment 3) In HEVC encoding, there are data division tools such as slices or tiles to enable parallel processing in the decoding device, but there is no such thing in PCC (Point Cloud Compression) encoding yet.

[0214] In PCC, various data division methods can be considered depending on parallel processing, compression efficiency, and compression algorithms. Here, the definitions of slices and tiles, data structures, and transmission / reception methods will be described.

[0215] FIG. 29 is a block diagram showing the configuration of a first encoding unit 4910 included in the three-dimensional data encoding apparatus according to the present embodiment. The first encoding unit 4910 generates encoded data (encoded stream) by encoding point cloud data using a first encoding method (GPCC (Geometry based PCC)). The first encoding unit 4910 includes a splitting unit 4911, a plurality of position information encoding units 4912, a plurality of attribute information encoding units 4913, an additional information encoding unit 4914, and a multiplexing unit 4915.

[0216] The splitting unit 4911 generates a plurality of split data by splitting the point cloud data. Specifically, the splitting unit 4911 generates a plurality of split data by splitting the space of the point cloud data into a plurality of subspaces. Here, the subspace is either 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 splitting unit 4911 splits the position information into a plurality of split position information, and splits the attribute information into a plurality of split attribute information. The splitting unit 4911 also generates additional information regarding the splitting.

[0217] The plurality of position information encoding units 4912 generate a plurality of encoded position information by encoding the plurality of split position information. For example, the plurality of position information encoding units 4912 perform parallel processing on the plurality of split position information.

[0218] The plurality of attribute information encoding units 4913 generate a plurality of encoded attribute information by encoding the plurality of split attribute information. For example, the plurality of attribute information encoding units 4913 perform parallel processing on the plurality of split attribute information.

[0219] The additional information encoding unit 4914 generates encoded additional information by encoding the additional information included in the point cloud data and the additional information regarding data splitting generated at the time of splitting by the splitting unit 4911.

[0220] The multiplexing unit 4915 generates encoded data (encoded stream) by multiplexing a plurality of encoded position information, a plurality of encoded attribute information, and encoded additional information, and transmits the generated encoded data. The encoded additional information is used during decoding.

[0221] In FIG. 29, examples are shown where the number of the position information encoding units 4912 and the number of the attribute information encoding units 4913 are each two, but the number of the position information encoding units 4912 and the number of the attribute information encoding units 4913 may each be one, or may be three or more. Also, the plurality of divided data may be processed in parallel within the same chip like the plurality of cores in the CPU, or may be processed in parallel by the cores of a plurality of chips, or may be processed in parallel by the plurality of cores of a plurality of chips.

[0222] FIG. 30 is a block diagram showing the configuration of the first decoding unit 4920. The first decoding unit 4920 restores the point cloud data by decoding the encoded data (encoded stream) generated by encoding the point cloud data by the first encoding method (GPCC). The first decoding unit 4920 includes a demultiplexing unit 4921, a plurality of position information decoding units 4922, a plurality of attribute information decoding units 4923, an additional information decoding unit 4924, and a combining unit 4925.

[0223] The demultiplexing unit 4921 generates a plurality of encoded position information, a plurality of encoded attribute information, and encoded additional information by demultiplexing the encoded data (encoded stream).

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

[0225] The plurality of attribute information decoding units 4923 generate a plurality of divided attribute information by decoding the plurality of encoded attribute information. For example, the plurality of attribute information decoding units 4923 process the plurality of encoded attribute information in parallel.

[0226] A plurality of additional information decoding units 4924 generate additional information by decoding the encoded additional information.

[0227] The combining unit 4925 generates position information by combining a plurality of split position information using the additional information. The combining unit 4925 generates attribute information by combining a plurality of split attribute information using the additional information.

[0228] In FIG. 30, examples are shown where the numbers of the position information decoding unit 4922 and the attribute information decoding unit 4923 are each two, but the numbers of the position information decoding unit 4922 and the attribute information decoding unit 4923 may each be one, or may be three or more. Also, the plurality of split data may be processed in parallel within the same chip like the plurality of cores in the CPU, or may be processed in parallel by the cores of a plurality of chips, or may be processed in parallel by the plurality of cores of a plurality of chips.

[0229] Next, the configuration of the splitting unit 4911 will be described. FIG. 31 is a block diagram of the splitting unit 4911. The splitting unit 4911 includes a slice splitting unit 4931 (Slice Divider), a position information tile splitting unit 4932 (Geometry Tile Divider), and an attribute information tile splitting unit 4933 (Attribute Tile Divider).

[0230] The slice splitting unit 4931 generates a plurality of slice position information by splitting the position information (Position(Geometry)) into slices. Also, the slice splitting unit 4931 generates a plurality of slice attribute information by splitting the attribute information (Attribute) into slices. Also, the slice splitting unit 4931 outputs slice additional information (SliceMetaData) including information related to the slice splitting and information generated in the slice splitting.

[0231] The position information tile division unit 4932 generates a plurality of divided position information (a plurality of tile position information) by dividing a plurality of slice position information into tiles. Further, the position information tile division unit 4932 outputs position tile additional information (Geometry Tile MetaData) including information related to the tile division of the position information and information generated in the tile division of the position information.

[0232] The attribute information tile division unit 4933 generates a plurality of divided attribute information (a plurality of tile attribute information) by dividing a plurality of slice attribute information into tiles. Further, the attribute information tile division unit 4933 outputs attribute tile additional information (Attribute Tile MetaData) including information related to the tile division of the attribute information and information generated in the tile division of the attribute information.

[0233] Note that the number of slices or tiles to be divided is 1 or more. That is, it is not necessary to perform the division of slices or tiles.

[0234] Also, here, an example in which tile division is performed after slice division is shown, but slice division may be performed after tile division. Further, in addition to slices and tiles, a new division type may be defined, and division may be performed with three or more division types.

[0235] Hereinafter, a method for dividing point cloud data will be described. FIG. 32 is a diagram showing an example of slice and tile division.

[0236] First, the method of slice division will be described. The division unit 4911 divides the three-dimensional point cloud data into arbitrary point clouds in slice units. In slice division, the division unit 4911 does not divide the position information and the attribute information that constitute a point, but divides the position information and the attribute information together. That is, the division unit 4911 performs slice division so that the position information and the attribute information at an arbitrary point belong to the same slice. According to these, the number of divisions and the division method may be any method. Also, the minimum unit of division is a point. For example, the number of divisions of the position information and the attribute information is the same. For example, the three-dimensional point corresponding to the position information after slice division and the three-dimensional point corresponding to the attribute information are included in the same slice.

[0237] Also, the division unit 4911 generates slice additional information, which is additional information related to the number of divisions and the division method during slice division. The slice additional information is the same for 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. Also, the slice additional information includes information indicating the number of divisions, the division type, and the like.

[0238] Next, the method of tile division will be described. The division unit 4911 divides the data divided by slice into slice position information (G slice) and slice attribute information (A slice), and divides the slice position information and the slice attribute information into tile units respectively.

[0239] Note that FIG. 32 shows an example of division in an octree structure, but the number of divisions and the division method may be any method.

[0240] Also, the division unit 4911 may divide the position information and the attribute information by different division methods or by the same division method. Also, the division unit 4911 may divide a plurality of slices into tiles by different division methods or by the same division method.

[0241] Further, the splitting unit 4911 generates tile addition information related to the number of splits and the splitting method during tile splitting. The tile addition information (position tile addition information and attribute tile addition information) is independent of the position information and the attribute information. For example, the tile addition information includes information indicating the reference coordinate position, size, or side length of the bounding box after splitting. Also, the tile addition information includes information indicating the number of splits, the split type, and the like.

[0242] Next, an example of a method for splitting point cloud data into slices or tiles will be described. The splitting unit 4911 may use a predetermined method as the method for slice or tile splitting, or may adaptively switch the method to be used according to the point cloud data.

[0243] During slice splitting, the splitting unit 4911 divides the three-dimensional space all at once with respect to the position information and the attribute information. For example, the splitting unit 4911 determines the shape of the object and divides the three-dimensional space into slices according to the shape of the object. For example, the splitting unit 4911 extracts an object such as a tree or a building and performs splitting in units of objects. For example, the splitting unit 4911 performs slice splitting so that the whole of one or a plurality of objects is included in one slice. Or, the splitting unit 4911 divides one object into a plurality of slices.

[0244] 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 the object. In this case, the encoding device may store information indicating the encoding method for each slice in the additional information (metadata).

[0245] Further, the splitting unit 4911 may perform slice splitting so that each slice corresponds to a predetermined coordinate space based on the map information or the position information.

[0246] When performing tile division, the division unit 4911 divides the position information and the attribute information independently. For example, the division unit 4911 divides the slices into tiles according to the data volume or the processing volume. For example, the division unit 4911 determines whether the data volume of the slice (for example, the number of three-dimensional points included in the slice) is greater than a predetermined threshold. When the data volume of the slice is greater than the threshold, the division unit 4911 divides the slice into tiles. When the data volume of the slice is less than the threshold, the division unit 4911 does not divide the slice into tiles.

[0247] For example, the division unit 4911 divides the slice into tiles so that the processing volume or the processing time in the decoding device is within a certain range (equal to or less than a predetermined value). Thereby, the processing volume per tile in the decoding device becomes constant, and parallel processing in the decoding device becomes easy.

[0248] Also, when the processing volumes of the position information and the attribute information are different, for example, when the processing volume of the position information is greater than the processing volume of the attribute information, the division unit 4911 increases the number of divisions of the position information compared to the number of divisions of the attribute information.

[0249] Also, for example, when, depending on the content, in the decoding device, the position information may be decoded and displayed quickly, and the attribute information may be decoded and displayed slowly later, the division unit 4911 may increase the number of divisions of the position information compared to the number of divisions of the attribute information. Thereby, the decoding device can increase the parallelism of the position information, so that the processing of the position information can be made faster than the processing of the attribute information.

[0250] Note that the decoding device does not necessarily have to perform parallel processing on the sliced or tiled data, and may determine whether to perform parallel processing according to the number or capabilities of the decoding processing units.

[0251] By dividing in the above-described manner, adaptive encoding according to the content or object can be realized. Also, parallel processing in the decoding process can be realized. Thereby, the flexibility of the point cloud encoding system or the point cloud decoding system is improved.

[0252] FIG. 33 is a diagram showing an example of a pattern of slicing and tiling. In the figure, DU is a DataUnit, indicating the data of a tile or a slice. Each DU also includes a SliceIndex and a TileIndex. The numerical value at the upper right of the DU in the figure indicates the slice index, and the numerical value at the lower left of the DU indicates the tile index.

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

[0254] In Pattern 2, in slice division, the number of divisions and the division method are the same for the G slice and the A slice. In tile division, the number of divisions and the division method for the G slice are different from those for the A slice. Also, the number of divisions and the division method are different among multiple G slices. The number of divisions and the division method are different among multiple A slices.

[0255] Next, a method for encoding the divided data will be described. The three-dimensional data encoding device (the first encoding unit 4910) encodes the divided data respectively. When encoding the attribute information, the three-dimensional data encoding device generates dependency information indicating based on which configuration information (position information, additional information, or other attribute information) the encoding is performed 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 the dependency information based on the configuration information corresponding to the divided shape of the attribute information. Note that the three-dimensional data encoding device may generate the dependency information based on the configuration information corresponding to a plurality of divided shapes.

[0256] Dependency information is 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 need to send the dependency information. Also, the dependencies used by the three-dimensional data encoding device may be determined in advance, and the three-dimensional data encoding device may not need to send the dependency information.

[0257] FIG. 34 is a diagram showing an example of the dependency of each data. The tip of the arrow in the figure indicates the destination of the dependency, and the base of the arrow indicates the source of the dependency. The three-dimensional data decoding device decodes the data in the order from the destination of the dependency to the source of the dependency. Also, the data shown by the solid line in the figure is the data actually sent, and the data shown by the dotted line is the data not sent.

[0258] Also, in the same figure, G indicates position information, and A indicates attribute information. G s1 indicates the position information of slice number 1, G s2 indicates the position information of slice number 2. G s1t1 indicates the position information of slice number 1 and tile number 1, G s1t2 indicates the position information of slice number 1 and tile number 2, G s2t1 indicates the position information of slice number 2 and tile number 1, G s2t2 indicates the position information of slice number 2 and tile number 2. Similarly, A s1 indicates the attribute information of slice number 1, A s2 indicates the attribute information of slice number 2. A s1t1 indicates the attribute information of slice number 1 and tile number 1, A s1t2 indicates the attribute information of slice number 1 and tile number 2, A s2t1 indicates the attribute information of slice number 2 and tile number 1, A s2t2 indicates the attribute information of slice number 2 and tile number 2.

[0259] Mslice indicates slice addition information, MGtile indicates position tile addition information, and MAtile indicates attribute tile addition information. D s1t1 is the attribute information As1t1 shows the dependency information of D s2t1 and D is the attribute information A s2t1 shows the dependency information of

[0260] Also, the three-dimensional data encoding device may rearrange the data in the decoding order so that the three-dimensional data decoding device does not need to rearrange the data. Note that the three-dimensional data decoding device may rearrange the data, or both the three-dimensional data encoding device and the three-dimensional data decoding device may rearrange the data.

[0261] FIG. 35 is a diagram showing an example of the decoding order of data. In the example of FIG. 35, decoding is performed in order from the left data. The three-dimensional data decoding device decodes the dependent data first from the dependent data. For example, the three-dimensional data encoding device rearranges and sends out the data in this order in advance. Note that any order may be used as long as the dependent data comes first. Also, the three-dimensional data encoding device may send out the additional information and the dependency information before the data.

[0262] FIG. 36 is a flowchart showing the processing flow by the three-dimensional data encoding device. First, the three-dimensional data encoding device encodes the data of a plurality of slices or tiles as described above (S4901). Next, the three-dimensional data encoding device rearranges the data so that the dependent data comes first as shown in FIG. 35 (S4902). Next, the three-dimensional data encoding device multiplexes (NAL unitizes) the rearranged data (S4903).

[0263] Next, the configuration of the combining unit 4925 included in the first decoding unit 4920 will be described. FIG. 37 is a block diagram showing the configuration of the combining unit 4925. The combining unit 4925 includes a position information tile combining unit 4941 (Geometry Tile Combiner), an attribute information tile combining unit 4942 (Attribute Tile Combiner), and a slice combining unit (Slice Combiner).

[0264] The position information tile junction 4941 generates a plurality of slice position information by combining a plurality of divided position information using position tile additional information. The attribute information tile junction 4942 generates a plurality of slice attribute information by combining a plurality of divided attribute information using attribute tile additional information.

[0265] The slice junction 4943 generates position information by combining a plurality of slice position information using slice additional information. Also, the slice junction 4943 generates attribute information by combining a plurality of slice attribute information using slice additional information.

[0266] Note that the number of slices or tiles to be divided is 1 or more. That is, the slicing or tiling may not be performed.

[0267] Also, here, an example in which tile division is performed after slice division is shown, but slice division may be performed after tile division. Also, in addition to slices and tiles, a new division type may be defined, and division may be performed using three or more division types.

[0268] Next, the configuration of the sliced or tiled encoded data and the method of storing the encoded data in the NAL unit (multiplexing method) will be described. FIG. 38 is a diagram showing the configuration of the encoded data and the method of storing the encoded data in the NAL unit.

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

[0270] The symbolic data includes a header and a payload. The header includes identification information for specifying the data included in the payload. This identification information includes, for example, the type of slice division or tile division (slice_type, tile_type), index information for specifying a slice or tile (slice_idx, tile_idx), position information of the data (slice or tile), or the address of the data, etc. The index information for specifying a slice is also referred to as a slice index (SliceIndex). The index information for specifying a tile is also referred to as a tile index (TileIndex). Also, 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 the amount of data or the amount of processing, etc.

[0271] Note that all or part of the above information may be stored in one of the header 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 division method is used for the position information and the attribute information, the type of division (slice_type, tile_type) and the index information (slice_idx, tile_idx) are the same for the position information and the attribute information. Therefore, these information may be included in one of the headers 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, these information may be included in the header of the position information and may not be included in the header of the attribute information. In this case, the three-dimensional data decoding device determines, for example, that the attribute information of the dependency source belongs to the same slice or tile as the slice or tile of the position information of the dependency destination.

[0272] In addition, additional information related to slice division or tile division (slice additional information, position tile additional information, or attribute tile additional information), and dependency information indicating dependencies, etc. may be stored in and transmitted by an existing parameter set (such as GPS, APS, position SPS, or attribute SPS). When the division method changes for each frame, information indicating the division method may be stored in a parameter set for each frame (such as GPS or APS). When the division method does not change within a sequence, information indicating the division method may be stored in a parameter set for each sequence (position SPS or attribute SPS). Furthermore, when the same division method is used for position information and attribute information, information indicating the division method may be stored in a parameter set of the PCC stream (stream PS).

[0273] Also, the above information may be stored in any of the above parameter sets, or may be stored in multiple parameter sets. Also, a parameter set for tile division or slice division may be defined, and the above information may be stored in the parameter set. Also, these information may be stored in the header of the encoded data.

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

[0275] Next, the flow of the encoding process and decoding process of the point cloud data according to this embodiment will be described. FIG. 39 is a flowchart of the encoding process of the point cloud data according to this embodiment.

[0276] First, the three-dimensional data encoding device determines the splitting method to be used (S4911). This splitting method includes whether to perform slice splitting or tile splitting. Further, the splitting method may include the number of splits when performing slice splitting or tile splitting, and the type of splitting, etc. The type of splitting is 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 data volume or processing volume, etc. Note that the splitting method may be predetermined.

[0277] When slice splitting is performed (Yes in S4912), the three-dimensional data encoding device generates a plurality of slice position information and a plurality of slice attribute information by splitting the position information and the attribute information together (S4913). Further, the three-dimensional data encoding device generates slice addition information related to the slice splitting. Note that the three-dimensional data encoding device may split the position information and the attribute information independently.

[0278] When tile splitting is performed (Yes in S4914), the three-dimensional data encoding device generates a plurality of split position information and a plurality of split attribute information by independently splitting a plurality of slice position information and a plurality of slice attribute information (or position information and attribute information) (S4915). Further, the three-dimensional data encoding device generates position tile addition information and attribute tile addition information related to the tile splitting. Note that the three-dimensional data encoding device may split the slice position information and the slice attribute information together.

[0279] Next, the three-dimensional data encoding device generates a plurality of encoded position information and a plurality of encoded attribute information by encoding each of the plurality of split position information and the plurality of split attribute information (S4916). Further, the three-dimensional data encoding device generates dependency information.

[0280] Next, the three-dimensional data encoding device generates encoded data (encoded stream) by NAL unitizing (multiplexing) the plurality of encoded position information, the plurality of encoded attribute information, and the addition information (S4917). Further, the three-dimensional data encoding device transmits the generated encoded data.

[0281] Figure 40 is a flowchart of the decoding process of the point cloud data according to this embodiment. First, the three-dimensional data decoding device determines the splitting method (S4921) by analyzing the additional information related to the splitting method (slice additional information, position tile additional information, and attribute tile additional information) included in the encoded data (encoded stream). This splitting method includes whether to perform slice splitting or tile splitting. Further, the splitting method may include the number of splits and the type of split when performing slice splitting or tile splitting.

[0282] Next, the three-dimensional data decoding device generates split position information and split attribute information by decoding a plurality of encoded position information and a plurality of encoded attribute information included in the encoded data using the dependency information included in the encoded data (S4922).

[0283] When it is shown by the additional information that tile splitting is performed (Yes in S4923), the three-dimensional data decoding device generates a plurality of slice position information and a plurality of slice attribute information by combining the plurality of split position information and the plurality of split attribute information in their respective ways based on the position tile additional information and the attribute tile additional information (S4924). Note that the three-dimensional data decoding device may combine the plurality of split position information and the plurality of split attribute information in the same way.

[0284] When it is shown by the additional information that slice splitting is performed (Yes in S4925), the three-dimensional data decoding device generates position information and attribute information by combining the plurality of slice position information and the plurality of slice attribute information (the plurality of split position information and the plurality of split attribute information) in the same way based on the slice additional information (S4926). Note that the three-dimensional data decoding device may combine the plurality of slice position information and the plurality of slice attribute information in different ways.

[0285] Note that the attribute information (identifier, area information, address information, position information, etc.) of tiles or slices may be stored not only in SEI but also in other control information. For example, the attribute information may be stored in control information indicating the configuration of the entire PCC data, or may be stored in control information for each tile or slice.

[0286] In addition, when transmitting PCC data to other devices, the three-dimensional data encoding device (three-dimensional data transmission device) may convert control information such as SEI into control information specific to the protocol of the system and indicate it.

[0287] For example, when converting PCC data including attribute information into ISOBMFF (ISO Base Media File Format), the three-dimensional data encoding device may store SEI together with the PCC data in the "mdat box", or may store it in the "track box" that describes control information regarding the stream. That is, the three-dimensional data encoding device may store the control information in a table for random access. Also, when packetizing and transmitting PCC data, the three-dimensional data encoding device may store SEI in the packet header. By making the attribute information acquirable at the system layer in this way, access to the attribute information and tile data or slice data becomes easy, and the access speed can be improved.

[0288] Note that in the configuration of the three-dimensional data decoding device, the memory management unit may determine in advance whether the information necessary for the decoding process is in the memory, and if there is no information necessary for the decoding process, the information may be obtained from the storage or network.

[0289] When the 3D data decoding device acquires PCC data from a storage or a network using Pull in a protocol such as MPEG-DASH, the memory management unit may identify the attribute information of the data necessary for the decoding process based on information from the localization unit or the like, request a tile or a slice including the identified attribute information, and acquire the necessary data (PCC stream). The identification of a tile or a slice including the attribute information may be performed on the storage or network side, or may be performed by the memory management unit. For example, the memory management unit may acquire the SEI of all PCC data in advance and identify a tile or a slice based on the information.

[0290] When all PCC data is transmitted from a storage or a network using Push in a protocol such as UDP, the memory management unit may identify the attribute information of the data necessary for the decoding process and a tile or a slice based on information from the localization unit or the like, and acquire the desired data by filtering the desired tile or slice from the transmitted PCC data.

[0291] In addition, the 3D data encoding device may determine whether there is desired data, whether real-time processing is possible based on the data size or the like, or the communication state or the like when acquiring data. When the 3D data encoding device determines based on this determination result that it is difficult to acquire data, it may select and acquire another slice or tile with a different priority or data amount.

[0292] In addition, the 3D data decoding device may transmit information from the localization unit or the like to a cloud server, and the cloud server may determine the necessary information based on the information.

[0293] (Embodiment 4) Next, the tile additional information will be described. The 3D data encoding device generates tile additional information which is metadata regarding the tile division method, and transmits the generated tile additional information to the 3D data decoding device.

[0294] FIG. 41 is a diagram showing an example of the syntax of tile additional information (TileMetaData). As shown in FIG. 41, 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).

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

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

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

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

[0299] Height information (tile_height) indicates the height of a tile. Note that the height information may include information indicating the shape of the tile. For example, when the shape of the tile in a top view is a rectangle, this information may indicate the lengths of the sides of the rectangle (vertical and horizontal lengths). Also, when the shape of the tile in a top view is a circle, this information may indicate the diameter or radius of the circle.

[0300] Also, the height information may indicate the height of each tile, or may indicate a common height for a plurality of tiles. Also, a plurality of 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 predefined, and the height information may indicate the height type of each tile. That is, the height of each height type may not be indicated by the height information.

[0301] The number of tiles (tile_number) indicates the number of tiles. Note that the tile addition information may include information indicating the interval between tiles.

[0302] Tile position information (global_position, relative_position) is information for specifying the position of each tile. For example, the tile position information indicates the absolute coordinates or relative coordinates of each tile.

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

[0304] The three-dimensional data encoding device may send the tile additional information included in SEI (Supplemental Enhancement Information). 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 then send it.

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

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

[0307] Also, all or part of the tile additional information may be stored in one of the headers of the division position information and the division attribute information, and may not be stored in the other. For example, when the same tile additional information is used for position information and attribute information, the tile additional information may be included in one of the headers 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, these tile additional information may be included in the header of the position information, and the tile additional information may not be included in the header of the attribute information. In this case, the three-dimensional data decoding device determines, for example, that the attribute information of the dependency source belongs to the same tile as the tile of the position information of the dependency destination.

[0308] The three-dimensional data decoding device reconstructs the tile-divided point cloud data based on the tile addition information. When there is overlapping point cloud data, the three-dimensional data decoding device identifies the multiple overlapping point cloud data and selects any one of them or merges the multiple point cloud data.

[0309] Alternatively, the three-dimensional data decoding device may perform decoding using the tile addition information. For example, when multiple tiles overlap, the three-dimensional data decoding device performs decoding for each tile, performs processing (such as smoothing or filtering) using the decoded multiple data, and may generate point cloud data. This may enable highly accurate decoding.

[0310] FIG. 42 is a diagram showing a configuration example of a system including a three-dimensional data encoding device and a three-dimensional data decoding device. The tile division unit 5051 divides the point cloud data including position information and attribute information into a first tile and a second tile. The tile division unit 5051 also sends the tile addition information related to the tile division to the decoding unit 5053 and the tile combination unit 5054.

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

[0312] The decoding unit 5053 restores the first tile and the second tile by decoding the encoded data generated by the encoding unit 5052. The tile combination unit 5054 restores the point cloud data (position information and attribute information) by combining the first tile and the second tile using the tile addition information.

[0313] Next, the slice addition information will be described. The three-dimensional data encoding device generates slice addition information, which is metadata regarding the slice division method, and sends the generated slice addition information to the three-dimensional data decoding device.

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

[0315] The division method information (type_of_divide) indicates the division method of the slice. For example, the division method information indicates whether the division method of the slice is division based on the information of an object as shown in FIG. 60 (object). Note that the slice additional information may include information indicating the method of object division. For example, this information indicates whether to divide one object into a plurality of slices or assign it to one slice. Further, this information may indicate the number of divisions when dividing one object into a plurality of slices, etc.

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

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

[0318] Slice position information (global_position, relative_position) and slice size information (slice_bounding_box_size) are information regarding the area of a slice. The slice position information is information for specifying the position of each slice. For example, the slice position information indicates the absolute coordinates or relative coordinates of each slice. The slice size information (slice_bounding_box_size) indicates the size of each slice. For example, the slice size information indicates the size of the bounding box of each slice.

[0319] The three-dimensional data encoding device may send the slice additional information included in the SEI. Alternatively, the three-dimensional data encoding device may store the slice additional information in an existing parameter set (PPS, GPS, or APS, etc.) and then send it.

[0320] For example, when the slice additional information changes for each frame, the slice additional information may be stored in a parameter set (GPS or APS, etc.) for each frame. When the slice additional information does not change within a sequence, the slice additional information may be stored in a parameter set (position SPS or attribute SPS) for each sequence. 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 (stream PS) of the PCC stream.

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

[0322] In addition, all or part of the slice addition information may be stored in one of the headers of the division position information and the division attribute information, and may not be stored in the other. For example, when the same slice addition information is used for the position information and the attribute information, the slice addition information may be included in one of the headers 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, these slice addition information may be included in the header of the position information, and the slice addition information may not be included in the header of the attribute information. In this case, the three-dimensional data decoding device determines, for example, that the attribute information of the dependency source belongs to the same slice as the slice of the position information of the dependency destination.

[0323] The three-dimensional data decoding device reconstructs the point cloud data sliced based on the slice addition information. When there is overlapping point cloud data, the three-dimensional data decoding device identifies the multiple overlapping point cloud data and selects any one of them, or merges the multiple point cloud data.

[0324] In addition, the three-dimensional data decoding device may perform decoding using the slice addition information. For example, when multiple slices overlap, the three-dimensional data decoding device decodes each slice and performs processing (such as smoothing or filtering) using the multiple decoded data to generate point cloud data. This may enable more accurate decoding.

[0325] FIG. 44 is a flowchart of three-dimensional data encoding processing including tile addition information generation processing by the three-dimensional data encoding device according to the present embodiment.

[0326] 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 the tile division method. In addition, when using the division method based on the top view, the three-dimensional data encoding device determines the shape of the tile. In addition, the three-dimensional data encoding device determines whether the tile overlaps with other tiles.

[0327] 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).

[0328] On the other hand, if the tile division method determined in step S5031 is other than the 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 the division method based on a top view (top_view) (S5034).

[0329] Also, 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 describes 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 describes in the tile additional information that the shape of the tile viewed from above is a circle (S5037).

[0330] 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 describes 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 describes in the tile additional information that the tile does not overlap (S5040).

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

[0332] FIG. 45 is a flowchart of three-dimensional data decoding processing using tile addition information by the three-dimensional data decoding apparatus according to the present embodiment.

[0333] First, the three-dimensional data decoding apparatus analyzes tile addition information included in the bit stream (S5051).

[0334] When the tile addition information indicates that the tile does not overlap with other tiles (No in S5052), the three-dimensional data decoding apparatus generates point cloud data for each tile by decoding each tile (S5053). Next, the three-dimensional data decoding apparatus reconstructs the point cloud data from the point cloud data of each tile based on the tile division method and the tile shape indicated by the tile addition information (S5054).

[0335] On the other hand, when the tile addition information indicates that the tile overlaps with other tiles (Yes in S5052), the three-dimensional data decoding apparatus generates point cloud data for each tile by decoding each tile. Further, the three-dimensional data decoding apparatus specifies the overlapping portion of the tiles based on the tile addition information (S5055). Note that the three-dimensional data decoding apparatus may perform decoding processing using a plurality of overlapping pieces of information for the overlapping portion. Next, the three-dimensional data decoding apparatus reconstructs the point cloud data from the point cloud data of each tile based on the tile division method, the tile shape, and the overlapping information indicated by the tile addition information (S5056).

[0336] Hereinafter, a modification example and the like regarding slices will be described. The three-dimensional data encoding apparatus may transmit information indicating the type of object (road, building, tree, etc.) or attribute (dynamic information, static information, etc.) as additional information. Alternatively, encoding parameters may be defined in advance according to the object, and the three-dimensional data encoding apparatus may notify the three-dimensional data decoding apparatus of the encoding parameters by sending out the type or attribute of the object.

[0337] The following method may be used for the encoding order and transmission order of slice data. For example, the three-dimensional data encoding device may encode slice data in order from data that is easy to recognize or cluster objects. Or, the three-dimensional data encoding device may perform encoding in order from slice data for which clustering has finished early. Also, the three-dimensional data encoding device may transmit the encoded slice data in order. Or, the three-dimensional data encoding device may transmit slice data in order of decreasing decoding priority in the application. For example, when the decoding priority of dynamic information is high, the three-dimensional data encoding device may transmit slice data in order from slices grouped by dynamic information.

[0338] Also, when the order of the encoded data and the order of the decoding priority are different, the three-dimensional data encoding device may rearrange the encoded data and then transmit it. Also, when storing the encoded data, the three-dimensional data encoding device may store the encoded data after rearranging it.

[0339] The application (three-dimensional data decoding device) requests the server (three-dimensional data encoding device) to transmit a slice including desired data. The server may transmit the slice data required by the application and not transmit unnecessary slice data.

[0340] The application requests the server to transmit a tile including desired data. The server may transmit the tile data required by the application and not transmit unnecessary tile data.

[0341] (Embodiment 5) Encoding of position information (geometry) will be described. In encoding the position information, the three-dimensional data encoding device divides a region including point cloud data using an octree and converts it into a set of occupancy information of points for each node. The occupancy information is 8-bit information indicating whether or not there is a point in each of the child nodes, and whether or not each child node contains a point is indicated by 0 or 1.

[0342] As the order of dividing into an octree, there are methods such as using the breadth-first search method to divide in order from nodes with a small depth (value of depth), and using the depth-first search method to search a point to the deepest depth of the bottom layer and then return to the upper depth to search again. In encoding, occupancy information is arranged and encoded in the above order.

[0343] FIG. 46 is a diagram showing a tree structure when dividing a point group having a depth of depth = 6 into an octree. FIG. 47 is a diagram showing an example of the data structure of encoded data of an octree structure using the breadth-first search method. The encoded data of the point group includes a header and a payload. In the payload, information for each depth (depth #0 to #6) is arranged in order. FIG. 48 is a diagram showing an example of the syntax of the payload. The payload includes an occupancy code for each depth.

[0344] Next, the hierarchical structure will be described. For example, as shown in FIG. 46, a plurality of levels (also called hierarchical levels) are defined. Level 2 is a point group represented by using point group data obtained by performing octree division from depth = 0 to the final depth (depth = 6), and level 1 is a point group represented by using point group data obtained by performing octree division from depth = 0 to depth = 5, and level 0 is a point group represented by using point group data obtained by performing octree division from depth = 0 to depth = 4. That is, the resolution of the point group increases in the order of level 0, level 1, and level 2. Conversely, the resolution of the point group decreases in the order of level 2, level 1, and level 0. This can also be said to be quantized by 1 / 2 each time the level decreases. In this way, by using levels, the entire point group can be represented using all the data up to the bottom layer, or low-resolution point group data can be represented by using data from depth = 0 to some upper layers. Note that levels can be adaptively set in various combinations as needed according to the resolution of data to be handled or the amount of data.

[0345] FIG. 49 is a flowchart of a decoding process for decoding encoded data in which position information is encoded at a target resolution. First, the three-dimensional data decoding device determines the level (resolution) to be decoded and the depth corresponding to that level (S8801).

[0346] Next, the three-dimensional data decoding device decodes the encoded data at the determined depth. Specifically, the three-dimensional data decoding device decodes the first depth (depth 0 (depth = 0)) (S8802). If the decoding of all depths to be decoded is not complete (No in S8803), the three-dimensional data decoding device decodes the next depth (S8804). Note that the three-dimensional data decoding device may decode the depth to be decoded using the data at the previous level (or depth). When the decoding of all depths to be decoded is complete (Yes in S8803), the three-dimensional data decoding device displays the obtained point cloud (S8805).

[0347] Also, the three-dimensional data decoding device may decode the encoded data at the determined depth and not decode the encoded data at the remaining depths. FIG. 50 is a diagram showing the relationship between the level and the data to be decoded. FIG. 51 is a schematic diagram showing the level. For example, in FIG. 50, in order to decode the point cloud at level 0, it is necessary to decode depth #0 to depth #4. Therefore, the three-dimensional data decoding device decodes up to the encoded data of A.

[0348] Also, in order to decode the point cloud at level 1, it is necessary to decode depth #0 to depth #5. Therefore, the three-dimensional data decoding device decodes up to the encoded data of B. Also, in order to decode the point cloud at level 2 (all), it is necessary to decode depth #0 to depth #6. Therefore, the three-dimensional data decoding device decodes up to the encoded data of C.

[0349] Through the above processing, the three-dimensional data decoding device can decode low-resolution data. Therefore, when the three-dimensional data decoding device does not require a high-resolution point cloud, it can reduce the data volume or reduce the processing amount by skipping the decoding process.

[0350] Alternatively, after decrypting the low-resolution data, the three-dimensional data decrypting device can display the low-resolution data without waiting for the decryption of the remaining data, and can display the remaining data after decrypting the high-resolution decrypted data. Thereby, the initial delay in decryption and display can be shortened.

[0351] Here, in order for the three-dimensional data decrypting device to decrypt the intermediate data, it is necessary to have acquired the data up to point A or B, that is, to determine the boundary between the depths or the depth information in the encoded data. FIG. 52 is a diagram showing an example of the syntax of the header. FIG. 53 is a diagram showing an example of the syntax of the payload.

[0352] For example, the three-dimensional data decrypting device may use the number of points (numPoint) of the point cloud indicated in the header, the number of depths (depth), and the encoded data (occupancy_code) for each node or leaf stored for each depth indicated in the payload, decrypt the encoded data in order from the beginning, and analyze the information of the decrypted occupancy code to determine the boundary between the depths or the depth information.

[0353] In the present embodiment, a data configuration that facilitates such partial decryption of depth data and data splitting and combining will be described. Here, a data structure that newly takes into account a hierarchical structure is defined. By using this data structure, data splitting and combining at the hierarchical data unit are possible. The three-dimensional data encoding device or the three-dimensional data decrypting device can reduce the amount of data required for transmission by extracting specific necessary hierarchical data. In addition, the three-dimensional data encoding device or the three-dimensional data decrypting device can improve functionality by being able to perform data splitting or combining without decrypting the encoded data.

[0354] FIG. 54 is a diagram showing the configuration of encoded data having all position information from depth 0 to depth 6 (depth#0 to depth#6). Note that this encoded data is also referred to as overall encoded data or a bit stream (encoded bit stream). In this example, the overall encoded data does not include information indicating an explicit boundary between depths. The three-dimensional data decoding device can obtain the boundary between depths or depth information by analyzing the occupancy code. Here, the number of points (numPoint) included in the header indicates the total number of all points included in the overall encoded data. Also, the number of depths depth, which indicates the number of depths, is "7" in this example.

[0355] FIG. 55 is a diagram showing the configuration of the overall encoded data. The overall encoded data shown in FIG. 55 includes hierarchical structure metadata, which is metadata indicating a hierarchical structure, in addition to the configuration shown in FIG. 54. FIG. 56 is a diagram showing an example of the syntax of depth information (depth_info). FIG. 57 is a diagram showing an example in which the depth information is stored in the hierarchical structure metadata (layer_metadata).

[0356] The depth information includes the number of depths (depth) and length information (length) indicating the length of the data for each depth. The length information indicates, for example, the difference between the start position and the end position of the encoded data (also referred to as depth data) corresponding to the depth, in terms of the number of bytes or bits.

[0357] The hierarchical structure metadata including the length information may be sent before or after the encoded data. Also, the length information may be stored in the header of the overall encoded data. FIG. 58 is a diagram showing an example of the syntax of the header in this case. The header includes the number of points (numPoint) and the depth information (depth_info).

[0358] In this way, for example, data boundaries between depths are explicitly shown in the hierarchical structure metadata or the header. Note that the three-dimensional data decoding device may not use the hierarchical structure metadata for decoding. In this case, the three-dimensional data decoding device uses the hierarchical structure metadata when dividing or reconstructing the hierarchical data.

[0359] Note that in the case of the configurations shown in FIGS. 54 and 55, all depth data is continuous, and the context information used for entropy encoding is also not initialized and is continuous.

[0360] By using this structure, the three-dimensional data decoding device can easily divide the entire encoded data into data for each depth, so that the processing amount can be reduced. Also, the transmission amount can be reduced because the divided data can be transmitted.

[0361] Next, the case where the concept of a layer (hierarchy) is introduced will be described. FIG. 59 is a diagram showing a configuration example of the entire encoded data in this case. In the figure, depths 0 to 4 (depth#0 to depth#4) are defined as layer 0, depth 5 (depth#5) is defined as layer 1, and depth 6 (depth#6) is defined as layer 2. That is, when compared with the above-described level (hierarchical level), the level is defined by a plurality of depths from depth 0 to a desired depth, whereas the plurality of layers are defined by non-overlapping depths. For example, layer 0 includes the same depth as level 0, layer 1 corresponds to the depth difference between level 1 and level 0, and layer 2 corresponds to the difference between level 2 and level 1.

[0362] In this case, the hierarchical information (layer_info) is added to the overall encoded data. FIG. 60 is a diagram showing an example of the syntax of the hierarchical information. The hierarchical information includes the number of layers (layer) indicating the number of layers, and the number of layer depths (num_depth) indicating the number of depths included in each layer. FIG. 61 is a diagram showing an example of the syntax of the hierarchical structure metadata. For example, the hierarchical structure metadata includes the hierarchical information (layer_info). FIG. 62 is a diagram showing an example of the syntax of the header of the overall encoded data. For example, as shown in FIG. 62, the header includes the depth information (depth_info). Note that both the hierarchical information and the depth information may be included in the header or the hierarchical structure metadata. Note that the syntax structure shown here is an example and is not limited thereto. The information included in the overall encoded data may be any information that allows the three-dimensional data decoder to obtain the number of depths, the number of layers, the number of layer depths, and the length information. For example, the overall encoded data may include information indicating the length of each layer.

[0363] Also, if the layer structure is common among a plurality of processing units (e.g., frames, etc.), some or all of this information may be included in higher-level metadata such as a sequence-level parameter set (e.g., SPS).

[0364] Note that a flag indicating whether the overall encoded data includes the hierarchical information (layer_info) and the depth information (depth_info) may be included in the overall encoded data. When the flag is on (e.g., value 1), the hierarchical information and the depth information may be included in the overall encoded data. Note that the flag may be provided individually for the hierarchical information and the depth information.

[0365] By using this structure, it becomes easy to divide the data into data for each depth or divide the data into data for each layer from this data, so that the processing amount can be reduced. Also, since the divided data can be transmitted, the transmission amount can be reduced.

[0366] Next, the configuration of the entire point cloud data will be described. The point cloud data may have one or more pieces of attribute information (Attribute), such as color or reflectivity, in addition to the position information (geometry). The attribute information may also have a hierarchical structure similar to the position information.

[0367] When the attribute information has a hierarchical structure similar to the position information, the three-dimensional data encoding device stores the hierarchical structure information in the hierarchical structure metadata or the data header in the same manner as the position information. For example, the three-dimensional data encoding device stores the hierarchical structure information in each of the attribute information header and the position information header. When storing the hierarchical structure information in the hierarchical structure metadata, the three-dimensional data encoding device may store the hierarchical structure metadata in individual parameter sets for the position information and the attribute information, such as GPS or APS, or may store it in a common parameter set such as SPS. Further, the three-dimensional data encoding device may store the hierarchical structure metadata in the SEI or other metadata.

[0368] FIG. 63 is a diagram showing a configuration example of a bitstream when the position information and the attribute information each have a hierarchical structure and the hierarchical structure information is stored in the hierarchical structure metadata. By using this structure, it becomes easy to divide the data into data for each hierarchy, so that the processing amount can be reduced. Further, since the divided data can be transmitted, the transmission amount can be reduced. Also, it becomes possible to divide the position information and the attribute information in the same way for each hierarchy.

[0369] FIG. 64 is a diagram showing a syntax example of the hierarchical structure metadata. The figure shows an example when the hierarchical structure metadata common to the position information and the attribute information is applied.

[0370] The hierarchical structure metadata includes hierarchical information (layer_info), the number of components (component), and depth information (depth_info) for each component. The number of components indicates the number of components such as position information and attribute information. For example, when point cloud data has color and reflectivity in addition to position information, the number of components is 3. Assuming that the position information always exists, the number of components of the attribute information may be indicated. Also, if the number of components of the attribute information is indicated in the SPS, this information may be omitted. Thereby, the data volume is reduced.

[0371] The hierarchical information (layer_info) indicates the number of layers and the number of depths included in each layer. For example, the hierarchical information is common to all components.

[0372] The depth information (depth_info) indicates the number of depths and the data length (length information) of each depth data. The depth information is set for each component, for example. Note that part or all of the depth information may be common to all components.

[0373] Also, when making the hierarchical structure independent for each component, the hierarchical information may be generated for each component.

[0374] Here, a method of hierarchical classification based on depth has been described, but hierarchical classification may be performed based on time information or space information. When hierarchical classification is performed, the hierarchical structure metadata is indicated by the above method. Also, a configuration without a hierarchical structure may be generated. Information indicating whether the encoded data has a hierarchical structure may be included in the header or metadata. Thereby, data with a hierarchical structure and data without a hierarchical structure can be mixed. For example, the position information may have a hierarchical structure, and the attribute information may not have a hierarchical structure. Also, information indicating this may be shown in the header or the like.

[0375] Next, the data reference relationship and dependency relationship between the position information and the attribute information will be described. FIGS. 65, 66, and 67 are diagrams showing the reference relationship between the position information and the attribute information.

[0376] When the encoded data has a hierarchical structure, layer 0 is the base layer and is data that can be decoded independently. On the other hand, layer 1 cannot be decoded independently and is decoded in integration with the data of layer 0. Also, layer 2 cannot be decoded independently and is decoded in integration with the data of layer 0 and layer 1. When using an octree-based encoding method, as shown in FIG. 65, layer 0 of the attribute information is decoded by referring to layer 0 of the position information. For example, as shown in FIG. 66, layer 1 of the attribute information is decoded by referring to layer 0 of the attribute information, and layers 0 and 1 of the position information. When there is a reference relationship or dependency relationship in decoding, the data of the reference destination is sent first. By transmitting the data of the reference destination first, it becomes possible to decode in the order in which the data is acquired in the three-dimensional data decoding device, and efficient decoding such as reducing the capacity of the reception buffer becomes possible.

[0377] Hereinafter, a method of storing the encoded data in a file format such as ISOBMFF will be described. FIG. 68 is a diagram showing a configuration example of a bit stream. FIG. 69 is a diagram showing a configuration example of a three-dimensional data encoding device. The three-dimensional data encoding device includes an encoding unit 8801 and a file conversion unit 8802. The encoding unit 8801 generates a bit stream including encoded data and control information by encoding point cloud data. The file conversion unit 8802 converts the bit stream into a file format.

[0378] FIG. 70 is a diagram showing a configuration example of a three-dimensional data decoding device. The three-dimensional data decoding device includes a file inverse conversion unit 8811 and a decoding unit 8812. The file inverse conversion unit 8811 converts the file format into a bit stream including encoded data and control information. The decoding unit 8812 generates point cloud data by decoding the bit stream.

[0379] FIG. 71 is a diagram showing the basic structure of ISOBMFF. FIG. 72 is a protocol stack diagram when storing NAL units common to the PCC codec in ISOBMFF. Here, what is stored in ISOBMFF is the NAL unit of the PCC codec.

[0380] NAL units include NAL units for data and NAL units for metadata. NAL units for data include position information slice data (Geometry Slice Data), attribute information slice data (Attribute Slice Data), etc. NAL units for metadata include SPS, GPS, APS, and SEI, etc.

[0381] ISOBMFF (ISO based media file format) is a file format standard defined in ISO / IEC 14496-12, which defines a format that can multiplex and store various media such as video, audio, and text, and is a standard independent of media.

[0382] The basic unit in ISOBMFF is a box. A box is composed of type, length, and data, and a set of boxes of various types combined is a file. Mainly, a file is composed of boxes such as ftyp that indicates the brand of the file in 4CC, moov that stores metadata such as control information, and mdat that stores data.

[0383] The storage method for each media in ISOBMFF is separately defined. For example, the storage methods for AVC video and HEVC video are defined in ISO / IEC 14496-15. Also, in order to accumulate and transmit PCC encoded data, it is conceivable to extend and use the functions of ISOBMFF.

[0384] When storing NAL units for metadata in ISOBMFF, SEI may be stored in the "mdat box" together with PCC data, or may be stored in the "track box" that describes control information regarding the stream. Also, when data is packetized and transmitted, SEI may be stored in the packet header. By indicating SEI at the system layer, access to attribute information, tiles, and slice data becomes easier, thus improving the access speed.

[0385] Next, a first example of format conversion of PCC hierarchical data will be described. The encoding method is a technique for compressing data. On the other hand, additional functions are provided in the system format and have different roles from the encoding method. Such additional functions are defined by a standard different from the encoding method. In order to use the optimal format for providing additional functions, the three-dimensional data encoding device converts the data. At that time, the three-dimensional data encoding device stores in advance, in the encoded data, information that facilitates the conversion. Thereby, the processing amount related to the conversion can be reduced.

[0386] Hereinafter, a method for converting data for each layer and hierarchical structure metadata including hierarchical information into a file format will be described. Slice data such as position information and attribute information is stored in samples of the file format respectively. The samples are stored in mdat. Also, for accessing the sample data, information indicating the data configuration, offset information indicating the position of the data, and length information of the data are stored in metadata such as a random access table. Note that these pieces of information may be stored in a table different from the random access table.

[0387] Hereinafter, the case where slice data is stored in samples will be described. FIG. 73 is a diagram showing a conversion process from a bit stream to a file format. The three-dimensional data encoding device stores the position information slice and the attribute information slice in a one-to-one correspondence with samples. Here, the slice includes information (hierarchical data) of all layers.

[0388] The position information samples belong to a position information track (Geometry Track), and the attribute information samples belong to an attribute information track (Attribute Track). The hierarchical information is stored in the metadata for each frame belonging to a metadata track (Meta Data Track). Also, information indicating that the position information samples and the attribute information samples belong to the same frame, information indicating whether the attribute information samples reference the position information samples in the case of a quadtree-based encoding method, common timestamp information for the position information samples and the attribute information samples, etc. may be stored in the metadata samples.

[0389] A frame unit that operates with a common timestamp may be called an access unit. Note that the hierarchical information (layer_information) may be stored in moov. Here, the hierarchical information includes, for example, the above-described hierarchical information (layer_info). Note that the hierarchical information may include at least a part of other information included in the above-described hierarchical structure metadata or header, such as depth information (depth_info).

[0390] When using this method, since slices can be stored as samples as they are, the processing is easy.

[0391] FIG. 74 is a flowchart of the format conversion process. First, the three-dimensional data encoding device starts the format conversion of the encoded data (S8811). Next, the three-dimensional data encoding device stores one slice including a plurality of layers as one sample (S8812). Also, the three-dimensional data encoding device stores the hierarchical information in the metadata (S8813). The three-dimensional data encoding device configures a frame (AU: access unit) (S8814).

[0392] Next, a partial decoding method using a file format will be described. FIG. 75 is a flowchart of this decoding process. First, the three-dimensional data decoding device extracts a desired sample by random access (S8821). Specifically, the three-dimensional data decoding device uses the metadata included in moov and a random access table, etc., to identify the position of the desired sample and extracts the data of the sample.

[0393] The three-dimensional data decoding device analyzes the hierarchical information metadata (S8822) and extracts the layer boundary information within the sample (S8823). Specifically, the three-dimensional data decoding device obtains the boundary information of the layer from the number of depths included in each layer within the sample and the data length of each depth from the hierarchical information metadata. For example, the three-dimensional data decoding device calculates the data length of each layer from the number of depths included in each layer and the data length of each depth, and determines the data boundary of the layer based on the calculated data length of each layer.

[0394] Next, the three-dimensional data decoding device divides the layer using the layer boundary information and decodes the desired data (S8824). For example, the three-dimensional data decoding device extracts a specific layer component from the sample.

[0395] In this way, by including the hierarchical information in the metadata, in the three-dimensional data decoding device, specific information can be extracted using the hierarchical information without decoding the encoded data.

[0396] Hereinafter, a second example of the format conversion of PCC hierarchical data will be described. When the three-dimensional data encoding device stores hierarchical data in a sample, it may store one hierarchical data as one sample or as one sub-sample.

[0397] FIG. 76 is a diagram showing the conversion process from a bit stream to a file format. The three-dimensional data encoding device stores the data for each layer in the sample in a one-to-one correspondence for the position information slice and the attribute information slice.

[0398] The position information samples belong to a position information track (Geometry Track), and the attribute information samples belong to an attribute information track (Attribute Track). The hierarchical information is stored in the metadata for each frame belonging to a metadata track (Meta Data Track). Also, there are tracks for each layer, and samples belonging to each track exist. By providing tracks for each layer, it becomes easier to handle data for each layer.

[0399] Also, in the bitstream of the encoded data, since the slice data includes all the hierarchical data, the 3D data encoding device stores the data into samples while dividing the data. When the hierarchical information is indicated in the bitstream, the 3D data encoding device divides the slice data using information indicating the data length of each hierarchical data, etc. When the hierarchical information is not indicated in the bitstream, the 3D data encoding device calculates the hierarchical information while decoding the encoded data. The 3D data encoding device re-encodes and divides the data based on the obtained hierarchical information.

[0400] By this process, it is possible to store layer-by-layer information in the tracks and samples for each layer. Therefore, in the 3D data decoding device, it is possible to extract data for each layer, making it easier to handle data for each layer.

[0401] FIG. 77 is a diagram showing a syntax example of hierarchical structure metadata. The hierarchical structure metadata includes hierarchical information (layer_info), the number of components (component), and depth information (depth_info) for each component.

[0402] When the three-dimensional data encoding device divides a slice into hierarchical data, if it includes header information in the sample, it may copy and add the slice header to all the divided data. FIG. 78 is a diagram schematically showing this division process. Note that the three-dimensional data encoding device may store the slice header not in the sample but in the metadata. By copying the header information, the process of creating the header can be reduced.

[0403] In addition, the three-dimensional data encoding device may add an identifier indicating whether the data stored in the sample is hierarchical to the file format. Also, when the data is hierarchical, the three-dimensional data encoding device may add an identifier indicating whether the data includes all the hierarchical data or whether the data stored in the sample is hierarchical data to the file format. Further, the three-dimensional data encoding device may indicate this information by the type of box such as the media type or 4CC. This makes it easy to identify the media.

[0404] FIG. 79 is a flowchart of the conversion process using hierarchical information. First, the three-dimensional data encoding device starts format conversion of the encoded data (S8831). Next, the three-dimensional data encoding device divides the slice into information for each layer using the hierarchical information metadata (S8832). Next, the three-dimensional data encoding device stores each of the divided multiple hierarchical data in one sample (S8833). Next, the three-dimensional data encoding device stores the hierarchical information in the metadata (S8834). Next, the three-dimensional data encoding device constructs a frame (AU) (S8835).

[0405] FIG. 80 is a flowchart of the conversion process without using hierarchical information. First, the three-dimensional data encoding device starts the format conversion of the encoded data (S8841). Next, the three-dimensional data encoding device decrypts the data and determines the boundary of the hierarchical data (S8842). Next, the three-dimensional data encoding device re-encodes and divides the data (S8843). Next, the three-dimensional data encoding device stores each of the divided multiple hierarchical data in one sample (S8844). Next, the three-dimensional data encoding device stores the hierarchical information in the metadata (S8845). Next, the three-dimensional data encoding device constructs a frame (AU) (S8846).

[0406] FIG. 81 is a flowchart of the decryption process of the hierarchical data sample data. First, the three-dimensional data decoding device extracts a desired sample by random access (S8851). Next, the three-dimensional data decoding device decrypts the data included in the extracted sample (S8852).

[0407] Next, another example of the hierarchical data structure will be described. FIGS. 82 and 83 are diagrams showing a configuration example of the overall encoded data (PCC data). The hierarchical structure in the examples shown in FIGS. 82 and 83 is the same as that in FIG. 59.

[0408] FIG. 82 shows a case where one depth data is used as one slice data, and a slice header is assigned to each depth data. The slice header includes a depthId for identifying the hierarchy of the depth data, a layerId indicating the hierarchy to which the depth belongs, and a length indicating the length of the depth data. The slice header may also include a groupId indicating that the data belongs to the same frame. That is, the groupId indicates the frame (time) to which the data belongs.

[0409] If this information is included in the slice header, the overall encoded data may not have hierarchical metadata. Also, the three-dimensional data encoding device may store parameters common to all depths in the header of the slice that transmits the first depth, or store them in the common header and place them before the data of depth#0. Note that the three-dimensional data encoding device may store depthId and groupId in the slice header, and store the number of depths, as well as layerId and length for each depth, in the hierarchical metadata or the common header.

[0410] Also, depth#0 can be decoded independently, while depths other than depth#0 cannot be decoded independently and depend on other data. The three-dimensional data decoding device determines that data other than depth#0 cannot be decoded independently, and decodes the depth data to be decoded together with depth data that has the same groupId as the depth data to be decoded and has a depthId smaller than the depthId of the depth data to be decoded.

[0411] FIG. 83 shows a case where one hierarchical data is used as one slice data, and a slice header is assigned to each hierarchical data. The slice header includes layerId, the number of depths (num_depth) included in the layer, and the length (length) of the depth data. The slice header may also include groupId indicating that the hierarchical data belongs to the same frame. Note that the slice header includes layerId and groupId, and the number of layers, the number of depths included in each layer, and the depth length information (length) may be included in the hierarchical metadata.

[0412] By using this structure, it becomes easy to divide the data into data for each layer, so the processing amount at the time of division can be reduced. Also, since the divided data can be transmitted, the transmission amount can be reduced. Also, it becomes possible to divide the position information and the attribute information in the same way for each layer.

[0413] Next, a third example of the format conversion of PCC hierarchical data will be described. When storing hierarchical data in samples, the three-dimensional data encoding device may store one depth data as one sample, or may store one depth data as one sub-sample.

[0414] FIG. 84 is a diagram showing a conversion process from a bitstream to a file format. The three-dimensional data encoding device stores the data for each layer in the position information slice and the attribute information slice in a one-to-one correspondence with the samples.

[0415] The position information samples belong to a position information track (Geometry Track), and the attribute information samples belong to an attribute information track (Attribute Track). The hierarchical information is stored in the metadata for each frame belonging to a metadata track (Meta Data Track). There is a track for each layer, and there are samples belonging to each track. By providing a track for each layer, it becomes easy to handle the data for each layer.

[0416] Also, in the bitstream of the encoded data, since slice data is configured for each hierarchical data, the three-dimensional data encoding device can directly store the data in the samples as it is. Therefore, the processing amount can be reduced compared to the case where slice data is not configured for each hierarchical data. Also, the hierarchical information is stored in the metadata.

[0417] FIG. 85 is a flowchart of the format conversion process. First, the three-dimensional data encoding device starts the format conversion of the encoded data (S8861). Next, the three-dimensional data encoding device stores the slice data for each layer in one sample (S8862). Next, the three-dimensional data encoding device stores the hierarchical information in the metadata (S8863). Next, the three-dimensional data encoding device configures a frame (AU) (S8864).

[0418] Figure 86 is a flowchart of the decoding process. First, in order to access specific hierarchical data, the three-dimensional data decoding device analyzes the metadata and obtains the number of depths belonging to the layer (S8871). Next, the three-dimensional data decoding device calculates the start position of the depth data at the beginning of the hierarchical data and the overall layer size using the obtained information (S8872). Next, the three-dimensional data decoding device decodes the hierarchical data (S8873).

[0419] Figure 87 is a diagram showing a syntax example of depth information. Figure 88 is a diagram showing a syntax example of a sample size box (sample_size_box: stsz). The three-dimensional data encoding device may store the size (entry_size) of each hierarchical data in a sample size box that stores size information for each sample.

[0420] Figure 89 is a diagram showing a syntax example of layer information (layer_info). Figure 90 is a diagram showing a syntax example of a PCCLayerStructureBox. For example, as shown in Figures 89 and 90, the three-dimensional data encoding device stores the number of layers (layer) and the number of depths (num_depth) included in the layer in the PCCLayerStructureBox. Note that the three-dimensional data encoding device may store these pieces of information in the same box or in separate boxes.

[0421] Next, the process of extracting partial data from the file format will be described. The three-dimensional data decoding device uses the data structure and hierarchical structure metadata described in this embodiment to randomly access the decoded data partially from the file and extract the data. The three-dimensional data decoding device can access the data and extract the desired data based on the position information and attribute information included in the metadata, information on the frame, layer, data length of each, and the number of depths included in the layer.

[0422] FIG. 91 is a diagram schematically showing this extraction operation. The transmission unit 8821 has a complete data file (file format) having layer 0 and layer 1, and the reception unit 8823 has a data file of layer 0. In this state, when the reception unit 8823 wants to acquire the data of layer 1, it requests the transmission unit 8821 to transmit the file of layer 1. The extraction unit 8822 included in the transmission unit 8821 extracts the file of layer 1 from the complete data file (file format) and provides the file of layer 1 (bit stream) to the reception unit 8823. The reception unit 8823 integrates the file of layer 0 and the file of layer 1 to generate a complete data file.

[0423] FIG. 92 is a diagram showing an example of a complete data file (file format). FIGS. 93, 94, and 95 are diagrams showing examples of bit streams extracted by the extraction unit 8822. For example, as shown in FIG. 93, the extraction unit 8822 may extract all the data from the file format. Or, as shown in FIG. 94, the extraction unit 8822 may extract the position information and not extract the attribute information. Or, as shown in FIG. 95, the extraction unit 8822 may extract layer 0 and not extract layer 1. Or, for example, although not shown, the extraction unit 8822 may transmit the data in a rearranged state.

[0424] By using the data structure and the hierarchical structure metadata described in this embodiment, the division of hierarchical data becomes easy, so that it is possible to realize a function of acquiring necessary data and not acquiring unnecessary data. Thereby, the transmission bandwidth and the transmission delay can be reduced, and the functionality of data transmission is improved.

[0425] Next, the partial decoding process of direct mode data will be described. The direct mode is a method in which, when encoding using an octree, for a certain node, the octree encoding is stopped and the coordinates of the points of the leaf node are directly encoded. For example, the direct mode is used when the points belonging to the node are sparse. By using the direct mode, the amount of data can be reduced.

[0426] Figure 96 is a diagram showing an example of the direct mode. The number of leaf points in the portion surrounded by the dotted line in Figure 96 is two (sparse). For example, when it is determined that the points are sparse at the A node at depth = 1, the coordinates of these two points are directly described in the data area of depth1. The coordinates of the two points are the coordinates from the A node, which are coordinates with a resolution of depth = 4. That is, the data of depth = 1 includes the occupancy_code of depth = 1 and the coordinate (B area) data in the direct mode of depth = 4 surrounded by the dotted line.

[0427] Next, a method for decoding such data will be described. When the three-dimensional data decoding device decodes from depth0 to depth4, it performs decoding processing using the normal decoding method. On the other hand, when the three-dimensional data decoding device extracts and decodes depth0 to depth1 partially and needs to make all the decoded data have the same resolution, it may perform decoding without using the coordinates of depth4 included in depth1. Also, when high resolutions may be mixed, the three-dimensional data decoding device may perform decoding using the coordinates of depth4 included in depth1.

[0428] Next, data division in the case where the direct mode is used will be described. When the transmission device extracts and transmits the data of depth0 to depth1, it may or may not include the information of the direct mode (depth4) in depth1.

[0429] In addition, the transmitting device determines whether to include the direct mode information according to whether the receiving device needs the information. If the receiving device needs the information, the transmitting device includes the information in the bit stream; if not, the transmitting device may not include the information in the bit stream. Thereby, the data amount can be reduced. For example, when the transmitting device may decode the data with resolutions of depth2 to depth4 together with depth0 to depth1, it may determine that the direct mode information is needed. When the transmitting device does not decode depth2 to depth4, it may determine that the direct mode information is not needed.

[0430] As described above, the three-dimensional data encoding device according to the present embodiment performs the processing shown in FIG. 97. The three-dimensional data encoding device sets a hierarchical structure having a plurality of depths and a plurality of hierarchies each including one or more depths for a plurality of position information of a plurality of three-dimensional points included in the point cloud data (S8881). The three-dimensional data encoding device generates a plurality of first encoded data (for example, depth data) for each depth by encoding a plurality of position information for each depth (S8882). The three-dimensional data encoding device generates a bit stream including a plurality of second encoded data that are encoded data for each hierarchy and include one or more first encoded data of one or more depths included in the corresponding hierarchy (S8883). The bit stream includes first information indicating the data length of each of the plurality of second encoded data.

[0431] According to this, the three-dimensional data decoding device that decodes the bit stream can easily access the data of an arbitrary hierarchy using the first information. Therefore, the three-dimensional data encoding device can reduce the processing amount of the three-dimensional data decoding device.

[0432] For example, the first information includes second information (for example, num_depth) indicating the number of depths included in each of the plurality of hierarchies and third information (for example, length) indicating the data length of each of the plurality of first encoded data.

[0433] For example, the bitstream includes a first header (e.g., the hierarchical structure metadata or header shown in FIG. 59) common to a plurality of second encoded data, and the first header includes first information.

[0434] For example, the bitstream includes a plurality of second headers (e.g., slice headers shown in FIG. 83) for each of the second encoded data, the first information corresponds to any one of the plurality of second encoded data, and includes a plurality of fourth information indicating the data length of the corresponding second encoded data, and each of the plurality of second headers includes fourth information indicating the data length of the second encoded data corresponding to the second header.

[0435] For example, the bitstream includes a plurality of third headers (e.g., slice headers shown in FIG. 82) for each of the plurality of first encoded data, the first information includes second information (e.g., num_depth) indicating the number of depths included in each of the plurality of hierarchies, and fifth information (e.g., length) corresponding to each of the plurality of first encoded data and indicating the data length of the corresponding first encoded data, and each of the plurality of third headers includes fifth information indicating the data length of the first encoded data corresponding to the third header.

[0436] For example, the three-dimensional data encoding device further generates a plurality of third encoded data for each depth by encoding a plurality of attribute information possessed by a plurality of three-dimensional points for each depth, the bitstream is encoded data for each hierarchy, and includes a plurality of fourth encoded data including one or more third encoded data of one or more depths included in the corresponding hierarchy, and the bitstream includes sixth information indicating the data length of each of the plurality of fourth encoded data.

[0437] For example, the three-dimensional data encoding device includes a processor and a memory, and the processor performs the above processing using the memory.

[0438] In addition, the three-dimensional data decoding device according to the present embodiment performs the process shown in FIG. 98. The three-dimensional data decoding device acquires first information (S8886) from a bit stream including a plurality of second encoded data and first information indicating the data length of each of the plurality of second encoded data. The three-dimensional data decoding device acquires at least one second encoded data among the plurality of second encoded data by using the first information (S8887). The three-dimensional data decoding device decodes the acquired at least one second encoded data (S8888). The bit stream includes a plurality of position information of a plurality of three-dimensional points included in the point cloud data, and is generated by encoding, for each depth, a plurality of position information having a hierarchical structure having a plurality of depths and a plurality of layers each including a depth of 1 or more. Each of the plurality of second encoded data corresponds to any one of the plurality of layers and includes one or more first encoded data included in the layer corresponding to the second encoded data among the plurality of first encoded data.

[0439] According to this, the three-dimensional data decoding device can easily access the data of an arbitrary layer by using the first information. Therefore, the three-dimensional data decoding device can reduce the processing amount.

[0440] For example, the first information includes second information (for example, num_depth) indicating the number of depths included in each of the plurality of layers and third information (for example, length) indicating the data length of each of the plurality of first encoded data. For example, the three-dimensional data decoding device calculates the data length of the second encoded data by using the second information and the third information.

[0441] For example, the bit stream includes a first header (for example, the hierarchical structure metadata or header shown in FIG. 59) common to the plurality of second encoded data, and the first header includes the first information.

[0442] For example, the bitstream includes a plurality of second headers (e.g., the slice headers shown in FIG. 83) for each second encoded data, the first information corresponds to any one of the plurality of second encoded data, and includes a plurality of fourth information indicating the data lengths of the corresponding second encoded data, and each of the plurality of second headers includes fourth information indicating the data length of the second encoded data corresponding to the second header.

[0443] For example, the bitstream includes a plurality of third headers (e.g., the slice headers shown in FIG. 82) for each of the plurality of first encoded data, the first information includes second information (e.g., num_depth) indicating the number of depths included in each of the plurality of layers, and fifth information (e.g., length) corresponding to each of the plurality of first encoded data and indicating the data length of the corresponding first encoded data, and each of the plurality of third headers includes fifth information indicating the data length of the first encoded data corresponding to the third header.

[0444] For example, the bitstream includes a plurality of third encoded data for each depth generated by encoding a plurality of attribute information of a plurality of three-dimensional points for each depth. The bitstream includes a plurality of fourth encoded data that are encoded data for each layer and include one or more third encoded data of one or more depths included in the corresponding layer. The bitstream includes sixth information indicating the data length of each of the plurality of fourth encoded data. The three-dimensional data decoding device further acquires the sixth information from the bitstream, uses the sixth information to acquire at least one of the plurality of fourth encoded data, and decodes the acquired at least one fourth encoded data.

[0445] For example, the three-dimensional data decoding device includes a processor and a memory, and the processor performs the above processing using the memory.

[0446] (Embodiment 6) Next, the configuration of the three-dimensional data creation device 810 according to the present embodiment will be described. FIG. 99 is a block diagram showing a configuration example of the three-dimensional data creation device 810 according to the present embodiment. This three-dimensional data creation device 810 is mounted on a vehicle, for example. The three-dimensional data creation device 810 transmits and receives three-dimensional data to and from an external traffic monitoring cloud, a preceding vehicle, or a following vehicle, and creates and accumulates three-dimensional data.

[0447] The three-dimensional data creation device 810 includes a data reception unit 811, a communication unit 812, a reception control unit 813, a format conversion unit 814, a plurality of sensors 815, a three-dimensional data creation unit 816, a three-dimensional data synthesis unit 817, a three-dimensional data storage unit 818, a communication unit 819, a transmission control unit 820, a format conversion unit 821, and a data transmission unit 822.

[0448] The data reception unit 811 receives three-dimensional data 831 from a traffic monitoring cloud or a preceding vehicle. The three-dimensional data 831 includes information such as point cloud, visible light video, depth information, sensor position information, or speed information, which includes areas that cannot be detected by the sensors 815 of the host vehicle, for example.

[0449] The communication unit 812 communicates with a traffic monitoring cloud or a preceding vehicle and transmits a data transmission request or the like to the traffic monitoring cloud or the preceding vehicle.

[0450] The reception control unit 813 exchanges information such as a corresponding format with a communication destination via the communication unit 812 and establishes communication with the communication destination.

[0451] The format conversion unit 814 generates three-dimensional data 832 by performing format conversion or the like on the three-dimensional data 831 received by the data reception unit 811. Further, when the three-dimensional data 831 is compressed or encoded, the format conversion unit 814 performs decompression or decoding processing.

[0452] The plurality of sensors 815 are a group of sensors that acquire information outside the vehicle, such as LiDAR, visible light cameras, or infrared cameras, and generate sensor information 833. For example, when the sensor 815 is a laser sensor such as LiDAR, the sensor information 833 is three-dimensional data such as point cloud (point group data). Note that the number of sensors 815 does not have to be plural.

[0453] The three-dimensional data creation unit 816 generates three-dimensional data 834 from the sensor information 833. The three-dimensional data 834 includes information such as, for example, point cloud, visible light video, depth information, sensor position information, or speed information.

[0454] The three-dimensional data synthesis unit 817 synthesizes the three-dimensional data 832 created by a traffic monitoring cloud or a preceding vehicle, etc., with the three-dimensional data 834 created based on the sensor information 833 of the host vehicle, thereby constructing three-dimensional data 835 that includes the space in front of the preceding vehicle that cannot be detected by the sensors 815 of the host vehicle.

[0455] The three-dimensional data storage unit 818 stores the generated three-dimensional data 835, etc.

[0456] The communication unit 819 communicates with a traffic monitoring cloud or a following vehicle, and transmits a data transmission request, etc., to the traffic monitoring cloud or the following vehicle.

[0457] The transmission control unit 820 exchanges information such as a corresponding format with the communication destination via the communication unit 819, and establishes communication with the communication destination. Further, the transmission control unit 820 determines a transmission area, which is the space of the three-dimensional data to be transmitted, based on the three-dimensional data construction information of the three-dimensional data 832 generated by the three-dimensional data synthesis unit 817 and the data transmission request from the communication destination.

[0458] Specifically, in response to a data transmission request from the traffic monitoring cloud or a following vehicle, the transmission control unit 820 determines a transmission area including the space in front of the host vehicle that cannot be detected by the sensors of the following vehicle. Further, the transmission control unit 820 determines the transmission area by judging whether there is an update of the space that can be transmitted or the transmitted space based on the three-dimensional data construction information. For example, the transmission control unit 820 determines the area specified in the data transmission request and where the corresponding three-dimensional data 835 exists as the transmission area. Then, the transmission control unit 820 notifies the format conversion unit 821 of the corresponding format of the communication destination and the transmission area.

[0459] The format conversion unit 821 generates three-dimensional data 837 by converting the three-dimensional data 836 of the transmission area among the three-dimensional data 835 stored in the three-dimensional data storage unit 818 into the format corresponding to the receiving side. Note that the format conversion unit 821 may reduce the data amount by compressing or encoding the three-dimensional data 837.

[0460] The data transmission unit 822 transmits the three-dimensional data 837 to the traffic monitoring cloud or the following vehicle. This three-dimensional data 837 includes information such as point cloud in front of the host vehicle, visible light video, depth information, or sensor position information, which includes areas that become blind spots for the following vehicle.

[0461] Here, an example where format conversion and the like are performed by the format conversion units 814 and 821 has been described, but format conversion may not be performed.

[0462] With such a configuration, the three-dimensional data creation device 810 acquires three-dimensional data 831 of an area that cannot be detected by the sensors 815 of the host vehicle from the outside, and generates three-dimensional data 835 by synthesizing the three-dimensional data 831 and three-dimensional data 834 based on the sensor information 833 detected by the sensors 815 of the host vehicle. Thereby, the three-dimensional data creation device 810 can generate three-dimensional data in a range that cannot be detected by the sensors 815 of the host vehicle.

[0463] In addition, in response to a data transmission request from the traffic monitoring cloud or a following vehicle, the three-dimensional data creation device 810 can transmit three-dimensional data including the space in front of the host vehicle that cannot be detected by the sensors of the following vehicle to the traffic monitoring cloud, the following vehicle, or the like.

[0464] Next, the procedure for transmitting three-dimensional data to a following vehicle in the three-dimensional data creation device 810 will be described. FIG. 100 is a flowchart showing an example of the procedure for transmitting three-dimensional data by the three-dimensional data creation device 810 to the traffic monitoring cloud or a following vehicle.

[0465] First, the three-dimensional data creation device 810 generates and updates three-dimensional data 835 of a space including the space on the road in front of the host vehicle (S801). Specifically, the three-dimensional data creation device 810 constructs three-dimensional data 835 that also includes the space in front of the preceding vehicle that cannot be detected by the sensors 815 of the host vehicle, such as by synthesizing the three-dimensional data 834 created based on the sensor information 833 of the host vehicle with the three-dimensional data 831 created by the traffic monitoring cloud or the preceding vehicle.

[0466] Next, the three-dimensional data creation device 810 determines whether the three-dimensional data 835 included in the transmitted space has changed (S802).

[0467] If a change occurs in the three-dimensional data 835 included in the transmitted space due to a vehicle or a person entering from the outside (Yes in S802), the three-dimensional data creation device 810 transmits the three-dimensional data including the three-dimensional data 835 of the changed space to the traffic monitoring cloud or the following vehicle (S803).

[0468] Note that the three-dimensional data creation device 810 may transmit the three-dimensional data of the changed space in accordance with the transmission timing of the three-dimensional data transmitted at a predetermined interval, or may transmit it immediately after detecting the change. That is, the three-dimensional data creation device 810 may transmit the three-dimensional data of the changed space with higher priority than the three-dimensional data transmitted at a predetermined interval.

[0469] Further, the three-dimensional data creation device 810 may transmit all of the three-dimensional data of the space in which a change has occurred as the three-dimensional data of the space in which a change has occurred, or may transmit only the difference of the three-dimensional data (for example, information on three-dimensional points that have appeared or disappeared, or displacement information of three-dimensional points, etc.).

[0470] Further, the three-dimensional data creation device 810 may transmit metadata regarding a danger avoidance operation of the host vehicle, such as an emergency braking warning, to the following vehicle prior to the three-dimensional data of the space in which a change has occurred. According to this, the following vehicle can recognize the emergency braking of the preceding vehicle earlier and can start a danger avoidance operation such as deceleration earlier.

[0471] If there is no change in the three-dimensional data 835 included in the transmitted space (No in S802), or after step S803, the three-dimensional data creation device 810 transmits the three-dimensional data included in a space of a predetermined shape at a front distance L of the host vehicle to the traffic monitoring cloud or the following vehicle (S804).

[0472] Further, for example, the processes of steps S801 to S804 are repeatedly performed at a predetermined time interval.

[0473] Further, the three-dimensional data creation device 810 may not transmit the three-dimensional data 837 of the space when there is no difference between the three-dimensional data 835 of the currently targeted space and the three-dimensional map.

[0474] In the present embodiment, the client device transmits sensor information obtained by a sensor to a server or another client device.

[0475] First, the configuration of the system according to the present embodiment will be described. FIG. 101 is a diagram showing the configuration of a three-dimensional map and sensor information transmission / reception system according to the present embodiment. This system includes a server 901 and client devices 902A and 902B. When the client devices 902A and 902B are not particularly distinguished, they are also referred to as the client device 902.

[0476] The client device 902 is an in-vehicle device mounted on a moving body such as a vehicle. The server 901 is, for example, a traffic monitoring cloud or the like and can communicate with a plurality of client devices 902.

[0477] The server 901 transmits a three-dimensional map composed of point clouds to the client device 902. Note that the configuration of the three-dimensional map is not limited to point clouds and may represent other three-dimensional data such as a mesh structure.

[0478] The client device 902 transmits sensor information acquired by the client device 902 to the server 901. The sensor information includes, for example, at least one of LiDAR acquisition information, visible light image, infrared image, depth image, sensor position information, and speed information.

[0479] The data transmitted and received between the server 901 and the client device 902 may be compressed for data reduction or may remain uncompressed to maintain the accuracy of the data. When compressing the data, for example, a three-dimensional compression method based on an octree structure can be used for point clouds. Also, a two-dimensional image compression method can be used for visible light images, infrared images, and depth images. The two-dimensional image compression method is, for example, MPEG-4 AVC or HEVC standardized by MPEG.

[0480] In addition, the server 901 transmits the three-dimensional map managed by the server 901 to the client device 902 in response to a transmission request for the three-dimensional map from the client device 902. Note that the server 901 may transmit the three-dimensional map without waiting for a transmission request for the three-dimensional map from the client device 902. For example, the server 901 may broadcast the three-dimensional map to one or more client devices 902 located in a predetermined space. Further, the server 901 may transmit a three-dimensional map suitable for the position of the client device 902 to the client device 902 that has received a transmission request at regular intervals. Also, the server 901 may transmit the three-dimensional map to the client device 902 each time the three-dimensional map managed by the server 901 is updated.

[0481] The client device 902 issues a transmission request for the three-dimensional map to the server 901. For example, when the client device 902 wants to estimate its own position during travel, the client device 902 transmits a transmission request for the three-dimensional map to the server 901.

[0482] Note that in the following cases, the client device 902 may issue a transmission request for the three-dimensional map to the server 901. When the three-dimensional map held by the client device 902 is old, the client device 902 may issue a transmission request for the three-dimensional map to the server 901. For example, when a certain period of time has elapsed since the client device 902 acquired the three-dimensional map, the client device 902 may issue a transmission request for the three-dimensional map to the server 901.

[0483] Before a certain time when the client device 902 exits from the space shown by the three-dimensional map held by the client device 902, the client device 902 may send a transmission request for the three-dimensional map to the server 901. For example, when the client device 902 exists within a predetermined distance from the boundary of the space shown by the three-dimensional map held by the client device 902, the client device 902 may send a transmission request for the three-dimensional map to the server 901. Also, when the movement path and movement speed of the client device 902 can be grasped, based on these, the time when the client device 902 exits from the space shown by the three-dimensional map held by the client device 902 may be predicted.

[0484] When the error during alignment between the three-dimensional data created by the client device 902 from sensor information and the three-dimensional map is a certain value or more, the client device 902 may send a transmission request for the three-dimensional map to the server 901.

[0485] The client device 902 transmits sensor information to the server 901 in response to a transmission request for sensor information sent from the server 901. Note that the client device 902 may send the sensor information to the server 901 without waiting for a transmission request for sensor information from the server 901. For example, when the client device 902 once obtains a transmission request for sensor information from the server 901, it may periodically transmit the sensor information to the server 901 for a certain period of time. Also, when the error during alignment between the three-dimensional data created by the client device 902 based on sensor information and the three-dimensional map obtained from the server 901 is a certain value or more, and it is determined that there may be a change in the three-dimensional map around the client device 902, the client device 902 may transmit the fact and the sensor information to the server 901.

[0486] Server 901 sends a transmission request for sensor information to client device 902. For example, server 901 receives position information of client device 902 such as GPS from client device 902. When server 901 determines that client device 902 is approaching a space with little information in the three-dimensional map managed by server 901 based on the position information of client device 902, server 901 sends a transmission request for sensor information to client device 902 to generate a new three-dimensional map. Also, when server 901 wants to update the three-dimensional map, when it wants to check road conditions such as during snow accumulation or disasters, when it wants to check traffic congestion conditions, or accident and incident conditions, etc., server 901 may send a transmission request for sensor information.

[0487] Also, client device 902 may set the data volume of the sensor information to be transmitted to server 901 according to the communication state or bandwidth at the time of receiving the transmission request for sensor information received from server 901. Setting the data volume of the sensor information to be transmitted to server 901 means, for example, increasing or decreasing the data itself, or appropriately selecting a compression method.

[0488] FIG. 102 is a block diagram showing a configuration example of client device 902. Client device 902 receives a three-dimensional map composed of a point cloud or the like from server 901, and estimates its own position from the three-dimensional data created based on the sensor information of client device 902. Also, client device 902 transmits the acquired sensor information to server 901.

[0489] Client device 902 includes a data reception unit 1011, a communication unit 1012, a reception control unit 1013, a format conversion unit 1014, a plurality of sensors 1015, a three-dimensional data creation unit 1016, a three-dimensional image processing unit 1017, a three-dimensional data storage unit 1018, a format conversion unit 1019, a communication unit 1020, a transmission control unit 1021, and a data transmission unit 1022.

[0490] The data receiving unit 1011 receives the three-dimensional map 1031 from the server 901. The three-dimensional map 1031 is data including point clouds such as WLD or SWLD. The three-dimensional map 1031 may include either compressed data or uncompressed data.

[0491] The communication unit 1012 communicates with the server 901 and transmits a data transmission request (for example, a request for transmitting a three-dimensional map) to the server 901.

[0492] The reception control unit 1013 exchanges information such as a corresponding format with the communication destination via the communication unit 1012 and establishes communication with the communication destination.

[0493] The format conversion unit 1014 generates a three-dimensional map 1032 by performing format conversion or the like on the three-dimensional map 1031 received by the data receiving unit 1011. Further, when the three-dimensional map 1031 is compressed or encoded, the format conversion unit 1014 performs decompression or decoding processing. Note that when the three-dimensional map 1031 is uncompressed data, the format conversion unit 1014 does not perform decompression or decoding processing.

[0494] The plurality of sensors 1015 is a group of sensors that acquire information outside the vehicle on which the client device 902 is mounted, such as a LiDAR, a visible light camera, an infrared camera, or a depth sensor, and generates sensor information 1033. For example, when the sensor 1015 is a laser sensor such as a LiDAR, the sensor information 1033 is three-dimensional data such as a point cloud (point group data). Note that the number of sensors 1015 does not have to be plural.

[0495] The three-dimensional data creation unit 1016 creates three-dimensional data 1034 around the host vehicle based on the sensor information 1033. For example, the three-dimensional data creation unit 1016 creates point cloud data with color information around the host vehicle using the information acquired by the LiDAR and the visible light video obtained by the visible light camera.

[0496] The three-dimensional image processing unit 1017 performs self-position estimation processing of the host vehicle using the received three-dimensional map 1032 such as point cloud and the three-dimensional data 1034 of the surroundings of the host vehicle generated from the sensor information 1033. Note that the three-dimensional image processing unit 1017 may create the three-dimensional data 1035 of the surroundings of the host vehicle by synthesizing the three-dimensional map 1032 and the three-dimensional data 1034, and perform self-position estimation processing using the created three-dimensional data 1035.

[0497] The three-dimensional data storage unit 1018 stores the three-dimensional map 1032, the three-dimensional data 1034, the three-dimensional data 1035, and the like.

[0498] The format conversion unit 1019 generates the sensor information 1037 by converting the sensor information 1033 into a format supported by the receiving side. Note that the format conversion unit 1019 may reduce the data amount by compressing or encoding the sensor information 1037. Also, the format conversion unit 1019 may omit the process when format conversion is not necessary. Further, the format conversion unit 1019 may control the data amount to be transmitted according to the specification of the transmission range.

[0499] The communication unit 1020 communicates with the server 901 and receives a data transmission request (a transmission request for sensor information) and the like from the server 901.

[0500] The transmission control unit 1021 exchanges information such as the corresponding format with the communication destination via the communication unit 1020 and establishes communication.

[0501] The data transmission unit 1022 transmits the sensor information 1037 to the server 901. The sensor information 1037 includes information acquired by a plurality of sensors 1015 such as information acquired by LiDAR, a luminance image acquired by a visible light camera, an infrared image acquired by an infrared camera, a depth image acquired by a depth sensor, sensor position information, and speed information.

[0502] Next, the configuration of the server 901 will be described. FIG. 103 is a block diagram showing a configuration example of the server 901. The server 901 receives sensor information transmitted from the client device 902, and creates three-dimensional data based on the received sensor information. The server 901 updates the three-dimensional map managed by the server 901 using the created three-dimensional data. Further, the server 901 transmits the updated three-dimensional map to the client device 902 in response to a transmission request for the three-dimensional map from the client device 902.

[0503] The server 901 includes a data reception unit 1111, a communication unit 1112, a reception control unit 1113, a format conversion unit 1114, a three-dimensional data creation unit 1116, a three-dimensional data synthesis unit 1117, a three-dimensional data storage unit 1118, a format conversion unit 1119, a communication unit 1120, a transmission control unit 1121, and a data transmission unit 1122.

[0504] The data reception unit 1111 receives sensor information 1037 from the client device 902. The sensor information 1037 includes, for example, information acquired by LiDAR, a luminance image acquired by a visible light camera, an infrared image acquired by an infrared camera, a depth image acquired by a depth sensor, sensor position information, and speed information.

[0505] The communication unit 1112 communicates with the client device 902 and transmits a data transmission request (for example, a transmission request for sensor information) to the client device 902.

[0506] The reception control unit 1113 exchanges information such as a corresponding format with the communication destination via the communication unit 1112 and establishes communication.

[0507] When the received sensor information 1037 is compressed or encoded, the format conversion unit 1114 generates sensor information 1132 by performing decompression or decoding processing. Note that the format conversion unit 1114 does not perform decompression or decoding processing if the sensor information 1037 is uncompressed data.

[0508] The three-dimensional data creation unit 1116 creates three-dimensional data 1134 around the client device 902 based on the sensor information 1132. For example, the three-dimensional data creation unit 1116 creates point cloud data with color information around the client device 902 using the information obtained by LiDAR and the visible light video obtained by the visible light camera.

[0509] The three-dimensional data synthesis unit 1117 updates the three-dimensional map 1135 by synthesizing the three-dimensional data 1134 created based on the sensor information 1132 into the three-dimensional map 1135 managed by the server 901.

[0510] The three-dimensional data storage unit 1118 stores the three-dimensional map 1135 and the like.

[0511] The format conversion unit 1119 generates the three-dimensional map 1031 by converting the three-dimensional map 1135 into a format supported by the receiving side. Note that the format conversion unit 1119 may reduce the data volume by compressing or encoding the three-dimensional map 1135. Also, the format conversion unit 1119 may omit the process if format conversion is not necessary. Further, the format conversion unit 1119 may control the data volume to be transmitted according to the specified transmission range.

[0512] The communication unit 1120 communicates with the client device 902 and receives a data transmission request (a transmission request for the three-dimensional map) and the like from the client device 902.

[0513] The transmission control unit 1121 exchanges information such as the corresponding format with the communication destination via the communication unit 1120 and establishes communication.

[0514] The data transmission unit 1122 transmits the three-dimensional map 1031 to the client device 902. The three-dimensional map 1031 is data including a point cloud such as WLD or SWLD. The three-dimensional map 1031 may include either compressed data or uncompressed data.

[0515] Next, the operation flow of the client device 902 will be described. FIG. 104 is a flowchart showing the operation when the client device 902 acquires a three-dimensional map.

[0516] First, the client device 902 requests the server 901 to transmit a three-dimensional map (such as a point cloud) (S1001). At this time, the client device 902 may request the server 901 to transmit a three-dimensional map related to the position information by transmitting the position information of the client device 902 obtained by GPS or the like together.

[0517] Next, the client device 902 receives a three-dimensional map from the server 901 (S1002). If the received three-dimensional map is compressed data, the client device 902 decrypts the received three-dimensional map to generate an uncompressed three-dimensional map (S1003).

[0518] Next, the client device 902 creates three-dimensional data 1034 around the client device 902 from the sensor information 1033 obtained by the plurality of sensors 1015 (S1004). Next, the client device 902 estimates its own position using the three-dimensional map 1032 received from the server 901 and the three-dimensional data 1034 created from the sensor information 1033 (S1005).

[0519] FIG. 105 is a flowchart showing the operation when the client device 902 transmits sensor information. First, the client device 902 receives a sensor information transmission request from the server 901 (S1011). The client device 902 that has received the transmission request transmits the sensor information 1037 to the server 901 (S1012). Note that when the sensor information 1033 includes a plurality of pieces of information obtained by the plurality of sensors 1015, the client device 902 may generate the sensor information 1037 by compressing each piece of information using a compression method suitable for each piece of information.

[0520] Next, the operation flow of the server 901 will be described. FIG. 106 is a flowchart showing the operation when the server 901 acquires sensor information. First, the server 901 requests the client device 902 to transmit sensor information (S1021). Next, the server 901 receives the sensor information 1037 transmitted from the client device 902 in response to the request (S1022). Next, the server 901 creates three-dimensional data 1134 using the received sensor information 1037 (S1023). Next, the server 901 reflects the created three-dimensional data 1134 in the three-dimensional map 1135 (S1024).

[0521] FIG. 107 is a flowchart showing the operation when the server 901 transmits a three-dimensional map. First, the server 901 receives a request to transmit a three-dimensional map from the client device 902 (S1031). The server 901 that has received the request to transmit the three-dimensional map transmits the three-dimensional map 1031 to the client device 902 (S1032). At this time, the server 901 may extract the three-dimensional map in the vicinity according to the position information of the client device 902 and transmit the extracted three-dimensional map. Also, the server 901 may compress the three-dimensional map composed of the point cloud using, for example, a compression method based on an octree structure, and transmit the compressed three-dimensional map.

[0522] Hereinafter, modifications of the present embodiment will be described.

[0523] Server 901 creates three-dimensional data 1134 near the position of client device 902 using the sensor information 1037 received from client device 902. Next, server 901 calculates the difference between the three-dimensional data 1134 and the three-dimensional map 1135 of the same area managed by server 901 by performing matching between the created three-dimensional data 1134 and the three-dimensional map 1135. If the difference is equal to or greater than a predetermined threshold, server 901 determines that some abnormality has occurred around client device 902. For example, a large difference may occur between the three-dimensional map 1135 managed by server 901 and the three-dimensional data 1134 created based on the sensor information 1037 when ground subsidence or the like occurs due to a natural disaster such as an earthquake.

[0524] The sensor information 1037 may include information indicating at least one of the type of the sensor, the performance of the sensor, and the model number of the sensor. Also, a class ID or the like corresponding to the performance of the sensor may be added to the sensor information 1037. For example, when the sensor information 1037 is information obtained by LiDAR, it is conceivable to assign an identifier to the performance of the sensor such that a sensor capable of obtaining information with an accuracy of several millimeters is class 1, a sensor capable of obtaining information with an accuracy of several centimeters is class 2, and a sensor capable of obtaining information with an accuracy of several meters is class 3. Also, the server 901 may estimate the performance information of the sensor from the model number of the client device 902. For example, when the client device 902 is mounted on a vehicle, the server 901 may determine the specification information of the sensor from the vehicle type of the vehicle. In this case, the server 901 may have previously obtained the vehicle type information of the vehicle, or the information may be included in the sensor information. Also, the server 901 may use the acquired sensor information 1037 to switch the degree of correction for the three-dimensional data 1134 created using the sensor information 1037. For example, when the sensor performance is high accuracy (class 1), the server 901 does not correct the three-dimensional data 1134. When the sensor performance is low accuracy (class 3), the server 901 applies a correction corresponding to the accuracy of the sensor to the three-dimensional data 1134. For example, the server 901 increases the degree of correction (strength) as the accuracy of the sensor decreases.

[0525] The server 901 may simultaneously send a request to transmit sensor information to a plurality of client devices 902 in a certain space. When the server 901 receives a plurality of sensor information from the plurality of client devices 902, it is not necessary to use all the sensor information for creating the three-dimensional data 1134. For example, the server 901 may select the sensor information to be used according to the performance of the sensor. For example, when updating the three-dimensional map 1135, the server 901 may select high-accuracy sensor information (class 1) from the plurality of received sensor information and create the three-dimensional data 1134 using the selected sensor information.

[0526] The server 901 is not limited to only servers such as traffic monitoring clouds, and may be other client devices (in-vehicle). FIG. 108 is a diagram showing the system configuration in this case.

[0527] For example, the client device 902C sends a transmission request for sensor information to the client device 902A nearby and acquires the sensor information from the client device 902A. Then, the client device 902C creates three-dimensional data using the acquired sensor information of the client device 902A and updates the three-dimensional map of the client device 902C. Thereby, the client device 902C can generate a three-dimensional map of the space that can be acquired from the client device 902A, taking advantage of the performance of the client device 902C. For example, such a case is considered to occur when the performance of the client device 902C is high.

[0528] Also, in this case, the client device 902A that provided the sensor information is given the right to acquire the high-precision three-dimensional map generated by the client device 902C. The client device 902A receives the high-precision three-dimensional map from the client device 902C according to that right.

[0529] Further, the client device 902C may send a transmission request for sensor information to a plurality of nearby client devices 902 (client device 902A and client device 902B). When the sensors of the client device 902A or the client device 902B are of high performance, the client device 902C can create three-dimensional data using the sensor information obtained by this high-performance sensor.

[0530] FIG. 109 is a block diagram showing the functional configuration of the server 901 and the client device 902. The server 901 includes, for example, a three-dimensional map compression / decompression processing unit 1201 that compresses and decompresses a three-dimensional map, and a sensor information compression / decompression processing unit 1202 that compresses and decompresses sensor information.

[0531] The client device 902 includes a three-dimensional map decoding processing unit 1211 and a sensor information compression processing unit 1212. The three-dimensional map decoding processing unit 1211 receives the encoded data of the compressed three-dimensional map, decodes the encoded data, and acquires the three-dimensional map. The sensor information compression processing unit 1212 compresses the sensor information itself instead of the three-dimensional data created from the acquired sensor information, and transmits the encoded data of the compressed sensor information to the server 901. With this configuration, the client device 902 only needs to internally hold a processing unit (device or LSI) that performs the process of decoding the three-dimensional map (point cloud, etc.), and does not need to internally hold a processing unit that performs the process of compressing the three-dimensional data of the three-dimensional map (point cloud, etc.). Thereby, the cost and power consumption of the client device 902 can be suppressed.

[0532] As described above, the client device 902 according to the present embodiment is mounted on a moving body, and creates three-dimensional data 1034 of the periphery of the moving body from sensor information 1033 indicating the peripheral situation of the moving body obtained by the sensor 1015 mounted on the moving body. The client device 902 estimates its own position of the moving body using the created three-dimensional data 1034. The client device 902 transmits the acquired sensor information 1033 to the server 901 or another client device 902.

[0533] Accordingly, the client device 902 transmits the sensor information 1033 to the server 901 or the like. Thereby, there is a possibility that the amount of transmitted data can be reduced as compared with the case of transmitting three-dimensional data. In addition, since it is not necessary for the client device 902 to perform processes such as compression or encoding of the three-dimensional data, the processing amount of the client device 902 can be reduced. Therefore, the client device 902 can achieve reduction of the amount of transmitted data or simplification of the device configuration.

[0534] Further, the client device 902 further transmits a request to send a three-dimensional map to the server 901 and receives the three-dimensional map 1031 from the server 901. The client device 902 estimates its own position using the three-dimensional data 1034 and the three-dimensional map 1032 in estimating its own position.

[0535] Also, the sensor information 1033 includes at least one of information obtained by a laser sensor, a luminance image, an infrared image, a depth image, sensor position information, and sensor speed information.

[0536] Also, the sensor information 1033 includes information indicating the performance of the sensor.

[0537] Also, the client device 902 encodes or compresses the sensor information 1033 and transmits the encoded or compressed sensor information 1037 to the server 901 or another client device 902 in transmitting the sensor information. According to this, the client device 902 can reduce the amount of data to be transmitted.

[0538] For example, the client device 902 includes a processor and a memory, and the processor performs the above processing using the memory.

[0539] Also, the server 901 according to the present embodiment is communicable with the client device 902 mounted on the moving body, and receives the sensor information 1037 indicating the surrounding situation of the moving body obtained by the sensor 1015 mounted on the moving body from the client device 902. The server 901 creates three-dimensional data 1134 around the moving body from the received sensor information 1037.

[0540] According to this, the server 901 creates three-dimensional data 1134 using the sensor information 1037 transmitted from the client device 902. Thereby, compared with the case where the client device 902 transmits three-dimensional data, there is a possibility of reducing the data amount of the transmitted data. Also, since it is not necessary for the client device 902 to perform processing such as compression or encoding of the three-dimensional data, the processing amount of the client device 902 can be reduced. Therefore, the server 901 can achieve reduction of the data amount to be transmitted or simplification of the device configuration.

[0541] Also, the server 901 further transmits a transmission request for sensor information to the client device 902.

[0542] Also, the server 901 further updates the three-dimensional map 1135 using the created three-dimensional data 1134, and transmits the three-dimensional map 1135 to the client device 902 in response to a transmission request for the three-dimensional map 1135 from the client device 902.

[0543] Also, the sensor information 1037 includes at least one of information obtained by a laser sensor, a luminance image, an infrared image, a depth image, sensor position information, and sensor speed information.

[0544] Also, the sensor information 1037 includes information indicating the performance of the sensor.

[0545] Also, the server 901 further corrects the three-dimensional data according to the performance of the sensor. According to this, the three-dimensional data creation method can improve the quality of the three-dimensional data.

[0546] Also, when receiving the sensor information, the server 901 receives a plurality of sensor information 1037 from a plurality of client devices 902, and selects the sensor information 1037 to be used for creating the three-dimensional data 1134 based on a plurality of information indicating the performance of the sensors included in the plurality of sensor information 1037. According to this, the server 901 can improve the quality of the three-dimensional data 1134.

[0547] In addition, the server 901 decrypts or decompresses the received sensor information 1037, and creates three-dimensional data 1134 from the decrypted or decompressed sensor information 1132. According to this, the server 901 can reduce the amount of data to be transmitted.

[0548] For example, the server 901 includes a processor and a memory, and the processor performs the above processing using the memory.

[0549] Hereinafter, a modified example will be described. FIG. 110 is a diagram showing the configuration of the system according to the present embodiment. The system shown in FIG. 110 includes a server 2001, a client device 2002A, and a client device 2002B.

[0550] The client device 2002A and the client device 2002B are mounted on a moving body such as a vehicle, and transmit sensor information to the server 2001. The server 2001 transmits a three-dimensional map (point cloud) to the client device 2002A and the client device 2002B.

[0551] The client device 2002A includes a sensor information acquisition unit 2011, a storage unit 2012, and a data transmission permission determination unit 2013. Note that the configuration of the client device 2002B is the same. In addition, hereinafter, when the client device 2002A and the client device 2002B are not particularly distinguished, it is also described as the client device 2002.

[0552] FIG. 111 is a flowchart showing the operation of the client device 2002 according to the present embodiment.

[0553] The sensor information acquisition unit 2011 acquires various sensor information using sensors (sensor group) mounted on the mobile body. That is, the sensor information acquisition unit 2011 acquires sensor information indicating the surrounding situation of the mobile body obtained by the sensors (sensor group) mounted on the mobile body. In addition, the sensor information acquisition unit 2011 stores the acquired sensor information in the storage unit 2012. This sensor information includes at least one of LiDAR acquisition information, visible light image, infrared image, and depth image. Further, the sensor information may include at least one of sensor position information, speed information, acquisition time information, and acquisition location information. The sensor position information indicates the position of the sensor that acquired the sensor information. The speed information indicates the speed of the mobile body when the sensor acquired the sensor information. The acquisition time information indicates the time when the sensor information was acquired by the sensor. The acquisition location information indicates the position of the mobile body or the sensor when the sensor information was acquired by the sensor.

[0554] Next, the data transmission availability determination unit 2013 determines whether the mobile body (client device 2002) exists in an environment where it can transmit sensor information to the server 2001 (S2002). For example, the data transmission availability determination unit 2013 may use information such as GPS to identify the location and time of the client device 2002 and determine whether data can be transmitted. Also, the data transmission availability determination unit 2013 may determine whether data can be transmitted based on whether it can connect to a specific access point.

[0555] When the client device 2002 determines that the mobile body exists in an environment where it can transmit sensor information to the server 2001 (Yes in S2002), it transmits the sensor information to the server 2001 (S2003). That is, when the client device 2002 is in a situation where it can transmit the sensor information to the server 2001, the client device 2002 transmits the held sensor information to the server 2001. For example, a millimeter wave access point enabling high-speed communication is installed at an intersection or the like. When the client device 2002 enters the intersection, it transmits the sensor information held by the client device 2002 to the server 2001 at high speed using millimeter wave communication.

[0556] Next, the client device 2002 deletes the sensor information that has been transmitted to the server 2001 from the storage unit 2012 (S2004). Note that the client device 2002 may delete the sensor information that has not been transmitted to the server 2001 when the sensor information satisfies a predetermined condition. For example, the client device 2002 may delete the sensor information from the storage unit 2012 when the acquisition time of the held sensor information becomes older than a certain time before the current time. That is, the client device 2002 may delete the sensor information from the storage unit 2012 when the difference between the time when the sensor information was acquired by the sensor and the current time exceeds a predetermined time. Also, the client device 2002 may delete the sensor information from the storage unit 2012 when the acquisition location of the held sensor information is farther than a certain distance from the current location. That is, the client device 2002 may delete the sensor information from the storage unit 2012 when the difference between the position of the moving body or sensor when the sensor information was acquired by the sensor and the current position of the moving body or sensor exceeds a predetermined distance. Thereby, the capacity of the storage unit 2012 of the client device 2002 can be suppressed.

[0557] If the acquisition of sensor information by the client device 2002 has not been completed (No in S2005), the client device 2002 performs the processes after step S2001 again. Also, if the acquisition of sensor information by the client device 2002 has been completed (Yes in S2005), the client device 2002 ends the process.

[0558] Further, the client device 2002 may select the sensor information to be transmitted to the server 2001 according to the communication situation. For example, when high-speed communication is possible, the client device 2002 preferentially transmits sensor information with a large size (such as LiDAR acquisition information, etc.) held in the storage unit 2012. Also, when high-speed communication is difficult, the client device 2002 transmits sensor information with a small size and high priority (such as visible light images) held in the storage unit 2012. Thereby, the client device 2002 can efficiently transmit the sensor information held in the storage unit 2012 to the server 2001 according to the network situation.

[0559] Further, the client device 2002 may acquire the time information indicating the current time and the location information indicating the current location from the server 2001. Also, the client device 2002 may determine the acquisition time and acquisition location of the sensor information based on the acquired time information and location information. That is, the client device 2002 may acquire time information from the server 2001 and generate acquisition time information using the acquired time information. Also, the client device 2002 may acquire location information from the server 2001 and generate acquisition location information using the acquired location information.

[0560] For example, regarding the time information, the server 2001 and the client device 2002 perform time synchronization using a mechanism such as NTP (Network Time Protocol) or PTP (Precision Time Protocol). Thereby, the client device 2002 can acquire accurate time information. Also, since the time can be synchronized between the server 2001 and a plurality of client devices, the times within the sensor information acquired by different client devices 2002 can be synchronized. Therefore, the server 2001 can handle the sensor information indicating the synchronized time. Note that the time synchronization mechanism may be any method other than NTP or PTP. Also, GPS information may be used as the above time information and location information.

[0561] Server 2001 may acquire sensor information from a plurality of client devices 2002 by specifying time or location. For example, when some accident occurs, in order to find the clients in the vicinity, server 2001 broadcasts a sensor information transmission request to a plurality of client devices 2002 by specifying the accident occurrence time and location. Then, the client device 2002 having the sensor information at the corresponding time and location transmits the sensor information to server 2001. That is, the client device 2002 receives a sensor information transmission request including designation information for designating a location and a time from server 2001. When the sensor information obtained at the location and time indicated by the designation information is stored in the storage unit 2012 of the client device 2002 and it is determined that the mobile body exists in an environment where the sensor information can be transmitted to server 2001, the client device 2002 transmits the sensor information obtained at the location and time indicated by the designation information to server 2001. Thereby, server 2001 can acquire sensor information related to the occurrence of the accident from a plurality of client devices 2002 and use it for accident analysis and the like.

[0562] Note that the client device 2002 may reject the transmission of the sensor information when receiving a sensor information transmission request from the server 2001. Also, the client device 2002 may set in advance which of the plurality of sensor information can be transmitted. Alternatively, the server 2001 may inquire of the client device 2002 each time whether or not the sensor information can be transmitted.

[0563] In addition, points may be given to the client device 2002 that has transmitted sensor information to the server 2001. These points can be used, for example, for payments such as gasoline purchase fees, EV (Electric Vehicle) charging fees, highway tolls, or rental car fees. Also, after acquiring the sensor information, the server 2001 may delete the information for identifying the client device 2002 that is the source of the sensor information. For example, this information is information such as the network address of the client device 2002. As a result, the sensor information can be anonymized, so that the user of the client device 2002 can securely transmit the sensor information from the client device 2002 to the server 2001. Further, the server 2001 may be composed of a plurality of servers. For example, by sharing sensor information among a plurality of servers, even if one server fails, another server can communicate with the client device 2002. Thereby, it is possible to avoid service stoppage due to server failure.

[0564] In addition, the designated location specified in the sensor information transmission request indicates, for example, the accident occurrence location, and may be different from the location of the client device 2002 at the designated time specified in the sensor information transmission request. Therefore, the server 2001 can request information acquisition from the client device 2002 existing within a certain range, for example, within XXm around the designated location. Similarly for the designated time, the server 2001 may specify a range such as within N seconds before and after a certain time. Thereby, the server 2001 can acquire sensor information from the client device 2002 that was present "at the location within XXm from the absolute position S from time t - N to t + N". When transmitting three-dimensional data such as LiDAR, the client device 2002 may transmit the data generated immediately after time t.

[0565] Further, the server 2001 may separately specify, as the designated location, information indicating the location of the client device 2002 that is the target for acquiring sensor information and the location where the sensor information is desired. For example, the server 2001 designates to acquire sensor information including at least the range of YYm from the absolute position S from the client device 2002 existing within XXm from the absolute position S. When selecting the three-dimensional data to be transmitted, the client device 2002 selects one or more randomly accessible units of three-dimensional data so as to include at least the sensor information within the designated range. Further, when transmitting the visible light image, the client device 2002 may transmit a plurality of temporally continuous image data including at least the frame immediately before or after the time t.

[0566] When the client device 2002 can use a plurality of physical networks such as 5G or WiFi, or a plurality of modes in 5G for transmitting sensor information, the client device 2002 may select the network to be used according to the priority order notified from the server 2001. Alternatively, the client device 2002 may select a network that can secure an appropriate bandwidth based on the size of the transmission data. Alternatively, the client device 2002 may select the network to be used based on the cost of data transmission or the like. Further, the transmission request from the server 2001 may include information indicating a transmission deadline, such as transmitting if the client device 2002 can start transmission by the time T. If sufficient sensor information cannot be acquired within the deadline, the server 2001 may issue a transmission request again.

[0567] The sensor information may include header information indicating the characteristics of the sensor data, together with compressed or uncompressed sensor data. The client device 2002 may transmit the header information to the server 2001 via a physical network or communication protocol different from the sensor data. For example, the client device 2002 transmits the header information to the server 2001 prior to transmitting the sensor data. The server 2001 determines whether to acquire the sensor data of the client device 2002 based on the analysis result of the header information. For example, the header information may include information indicating the point cloud acquisition density, elevation angle, or frame rate of LiDAR, or the resolution, SNR, or frame rate of a visible light image, etc. Thereby, the server 2001 can acquire the sensor information from the client device 2002 having the sensor data of the determined quality.

[0568] As described above, the client device 2002 is mounted on the moving body, acquires sensor information indicating the surrounding situation of the moving body obtained by the sensors mounted on the moving body, and stores the sensor information in the storage unit 2012. The client device 2002 determines whether the moving body exists in an environment where it can transmit sensor information to the server 2001, and when it determines that the moving body exists in an environment where it can transmit sensor information to the server, it transmits the sensor information to the server 2001.

[0569] In addition, the client device 2002 further creates three-dimensional data of the surroundings of the moving body from the sensor information, and estimates the self-position of the moving body using the created three-dimensional data.

[0570] In addition, the client device 2002 further transmits a request to transmit a three-dimensional map to the server 2001, and receives the three-dimensional map from the server 2001. The client device 2002 estimates its self-position using the three-dimensional data and the three-dimensional map in the estimation of its self-position.

[0571] Note that the processing by the client device 2002 may be realized as an information transmission method in the client device 2002.

[0572] Further, the client device 2002 may include a processor and a memory, and the processor may perform the above processing using the memory.

[0573] Next, a sensor information collection system according to the present embodiment will be described. FIG. 112 is a diagram showing the configuration of the sensor information collection system according to the present embodiment. As shown in FIG. 112, the sensor information collection system according to the present embodiment includes a terminal 2021A, a terminal 2021B, a communication device 2022A, a communication device 2022B, a network 2023, a data collection server 2024, a map server 2025, and a client device 2026. Note that when the terminal 2021A and the terminal 2021B are not particularly distinguished, they are also referred to as the terminal 2021. When the communication device 2022A and the communication device 2022B are not particularly distinguished, they are also referred to as the communication device 2022.

[0574] The data collection server 2024 collects data such as sensor data obtained by sensors included in the terminal 2021 as position-related data associated with positions in a three-dimensional space.

[0575] The sensor data is, for example, data obtained by using sensors included in the terminal 2021 to acquire the state around the terminal 2021 or the state inside the terminal 2021. The terminal 2021 transmits the sensor data collected from one or a plurality of sensor devices located at a position where it can communicate directly with the terminal 2021 or communicate through one or a plurality of relay devices using the same communication method to the data collection server 2024.

[0576] The data included in the position-related data may include, for example, information indicating the operating state, operation log, service usage status, etc. of the terminal itself or devices included in the terminal. Further, the data included in the position-related data may include information associating the identifier of the terminal 2021 with the position or movement route of the terminal 2021, etc.

[0577] The information indicating the position included in the position-related data is associated with the information indicating the position in three-dimensional data such as three-dimensional map data, for example. Details of the information indicating the position will be described later.

[0578] In addition to the position information which is the information indicating the position, the position-related data may include at least one of the above-described time information and the information indicating the attribute of the data included in the position-related data or the type of the sensor (e.g., model number, etc.) that generated the data. The position information and the time information may be stored in the header area of the position-related data or the header area of the frame storing the position-related data. Further, the position information and the time information may be transmitted and / or stored separately from the position-related data as metadata associated with the position-related data.

[0579] The map server 2025 is connected to the network 2023, for example, and transmits three-dimensional data such as three-dimensional map data in response to requests from other devices such as the terminal 2021. Further, as described in each of the above-described embodiments, the map server 2025 may have a function of updating three-dimensional data using the sensor information transmitted from the terminal 2021.

[0580] The data collection server 2024 is connected to the network 2023, for example, collects position-related data from other devices such as the terminal 2021, and stores the collected position-related data in a storage device inside or in another server. Further, the data collection server 2024 transmits to the terminal 2021, in response to a request from the terminal 2021, the collected position-related data or metadata of three-dimensional map data generated based on the position-related data.

[0581] The network 2023 is a communication network such as the Internet. The terminal 2021 is connected to the network 2023 via the communication device 2022. The communication device 2022 communicates with the terminal 2021 while switching between one communication method or multiple communication methods. The communication device 2022 is, for example, (1) a base station such as LTE (Long Term Evolution), (2) an access point (AP) such as WiFi or millimeter wave communication, (3) a gateway of an LPWA (Low Power Wide Area) Network such as SIGFOX, LoRaWAN or Wi-SUN, or (4) a communication satellite that communicates using a satellite communication method such as DVB-S2.

[0582] Note that the base station may communicate with the terminal 2021 using a method classified as LPWA such as NB-IoT (Narrow Band-IoT) or LTE-M, or may communicate with the terminal 2021 while switching between these methods.

[0583] Here, an example is given where the terminal 2021 has a function of communicating with the communication device 2022 using two types of communication methods, and communicates with the map server 2025 or the data collection server 2024 using any of these communication methods, or while switching between these multiple communication methods and the communication device 2022 that is the direct communication partner. However, the configuration of the sensor information collection system and the terminal 2021 is not limited to this. For example, the terminal 2021 may not have a communication function in multiple communication methods and may be equipped with a function of communicating using any one communication method. Also, the terminal 2021 may support three or more communication methods. Also, the communication methods corresponding to each terminal 2021 may be different.

[0584] The terminal 2021 has, for example, the configuration of the client device 902 shown in FIG. 102. The terminal 2021 performs position estimation such as its own position using the received three-dimensional data. Also, the terminal 2021 generates position-related data by associating the sensor data acquired from the sensor with the position information obtained by the position estimation process.

[0585] The position information added to the position-related data indicates, for example, a position in a coordinate system used in three-dimensional data. For example, the position information is coordinate values represented by latitude and longitude values. At this time, the terminal 2021 may include, in the position information, the coordinate system that serves as a reference for the coordinate values and information indicating the three-dimensional data used for position estimation, together with the coordinate values. Further, the coordinate values may include altitude information.

[0586] Further, the position information may be associated with a data unit or a space unit that can be used for encoding the three-dimensional data described above. This unit is, for example, WLD, GOS, SPC, VLM, or VXL, etc. At this time, the position information is represented by an identifier for specifying a data unit such as SPC corresponding to the position-related data, for example. Note that, in addition to the identifier for specifying a data unit such as SPC, the position information may include information indicating three-dimensional data obtained by encoding a three-dimensional space including the data unit such as SPC, or information indicating a detailed position within the SPC. The information indicating the three-dimensional data is, for example, the file name of the three-dimensional data.

[0587] In this way, the system can add more accurate position information to the sensor information than in the case of adding position information based on the self-position of the client device (terminal 2021) obtained using GPS by generating position-related data associated with the position information based on position estimation using three-dimensional data. As a result, even when other devices use the position-related data in other services, by performing position estimation based on the same three-dimensional data, there is a possibility that the position corresponding to the position-related data can be more accurately specified in the real space.

[0588] Note that, in this embodiment, the case where the data transmitted from the terminal 2021 is position-related data has been described as an example, but the data transmitted from the terminal 2021 may be data not associated with the position information. That is, the transmission and reception of the three-dimensional data or sensor data described in other embodiments may be performed via the network 2023 described in this embodiment.

[0589] Next, different examples of position information indicating a position in a three-dimensional or two-dimensional real space or map space will be described. The position information added to the position-related data may be information indicating the relative position with respect to a feature point in the three-dimensional data. Here, the feature point serving as the reference for the position information is, for example, a feature point encoded as SWLD and notified to the terminal 2021 as three-dimensional data.

[0590] The information indicating the relative position with respect to the feature point may be represented, for example, by a vector from the feature point to the point indicated by the position information, and may be information indicating the direction and distance from the feature point to the point indicated by the position information. Alternatively, the information indicating the relative position with respect to the feature point may be information indicating the displacement amount of each of the X-axis, Y-axis, and Z-axis from the feature point to the point indicated by the position information. Further, the information indicating the relative position with respect to the feature point may be information indicating the distances from each of three or more feature points to the point indicated by the position information. Note that the relative position may be the relative position of each feature point expressed with respect to the point indicated by the position information expressed with each feature point as a reference, rather than the relative position of the point indicated by the position information. An example of the position information based on the relative position with respect to the feature point includes information for specifying the reference feature point and information indicating the relative position of the point indicated by the position information with respect to the feature point. Further, when the information indicating the relative position with respect to the feature point is provided separately from the three-dimensional data, the information indicating the relative position with respect to the feature point may include information on the coordinate axes used for deriving the relative position, information indicating the type of the three-dimensional data, and / or information indicating the magnitude (such as scale) per unit amount of the value of the information indicating the relative position.

[0591] In addition, the position information may include information indicating the relative positions of a plurality of feature points with respect to each feature point. When the position information is represented by the relative positions with respect to a plurality of feature points, the terminal 2021 that attempts to specify the position indicated by the position information in the real space calculates candidate points for the position indicated by the position information from the positions of the feature points estimated from the sensor data for each feature point, and may determine that the point obtained by averaging the calculated plurality of candidate points is the point indicated by the position information. According to this configuration, since the influence of errors when estimating the positions of the feature points from the sensor data can be reduced, the estimation accuracy of the point indicated by the position information in the real space can be improved. Further, when the position information includes information indicating the relative positions with respect to a plurality of feature points, even if there are feature points that cannot be detected due to restrictions such as the type or performance of the sensors provided in the terminal 2021, if any one of the plurality of feature points can be detected, it becomes possible to estimate the value of the point indicated by the position information.

[0592] As the feature points, points that can be specified from the sensor data can be used. A point that can be specified from the sensor data is, for example, a point or a point within a region that satisfies a predetermined condition for feature point detection, such as the three-dimensional feature amount or the feature amount of visible light data described above being equal to or greater than a threshold value.

[0593] In addition, a marker or the like installed in the real space may be used as the feature point. In this case, the marker only needs to be detectable and its position specifiable from the data acquired using a sensor such as a LiDAR or a camera. For example, the marker is represented by a change in color or luminance value (reflectance), or a three-dimensional shape (such as unevenness). Further, coordinate values indicating the position of the marker, or a two-dimensional code or barcode generated from the identifier of the marker may be used.

[0594] Further, a light source that transmits an optical signal may be used as a marker. When the light source of the optical signal is used as a marker, not only information for obtaining a position such as a coordinate value or an identifier, but also other data may be transmitted by the optical signal. For example, the optical signal may include content of a service corresponding to the position of the marker, an address such as a url for obtaining the content, or an identifier of a wireless communication device for receiving the service and information indicating a wireless communication method for connecting to the wireless communication device. By using an optical communication device (light source) as a marker, it becomes easy to transmit data other than information indicating a position, and it becomes possible to dynamically switch the data.

[0595] The terminal 2021 grasps the correspondence relationship of feature points between different data, for example, using an identifier commonly used between the data, or information or a table indicating the correspondence relationship of feature points between the data. Further, when there is no information indicating the correspondence relationship between the feature points, the terminal 2021 may determine that the feature point closest to the position when the coordinates of the feature point in one three-dimensional data are converted to the position in the other three-dimensional data space is the corresponding feature point.

[0596] When the position information based on the relative position described above is used, even between terminals 2021 or services using different three-dimensional data, the position indicated by the position information can be specified or estimated based on common feature points included in each three-dimensional data or associated with each three-dimensional data. As a result, it becomes possible to specify or estimate the same position with higher accuracy between terminals 2021 or services using different three-dimensional data.

[0597] Further, even when using map data or three-dimensional data expressed using different coordinate systems, it is possible to reduce the influence of errors associated with coordinate system conversion, so that services can be coordinated based on more accurate position information.

[0598] Examples of functions provided by the data collection server 2024 will be described below. The data collection server 2024 may transfer the received location-related data to other data servers. If there are multiple data servers, the data collection server 2024 determines which data server to transfer the received location-related data to, and transfers the location-related data to the determined data server as the transfer destination.

[0599] The data collection server 2024 makes the determination of the transfer destination based on, for example, the determination rules of the transfer destination server pre-set in the data collection server 2024. The determination rules of the transfer destination server are set, for example, in a transfer destination table that associates the identifier associated with each terminal 2021 with the transfer destination data server.

[0600] The terminal 2021 adds the identifier associated with the terminal 2021 to the location-related data to be transmitted and transmits it to the data collection server 2024. The data collection server 2024 identifies the transfer destination data server corresponding to the identifier added to the location-related data based on the determination rules of the transfer destination server using a transfer destination table or the like, and transmits the location-related data to the identified data server. Also, the determination rules of the transfer destination server may be specified by determination conditions using the time or location where the location-related data was acquired. Here, the identifier associated with the above-described source terminal 2021 is, for example, an identifier unique to each terminal 2021, or an identifier indicating the group to which the terminal 2021 belongs.

[0601] Also, the destination table does not necessarily directly associate the identifier associated with the source terminal with the destination data server. For example, the data collection server 2024 holds a management table storing tag information assigned for each identifier unique to the terminal 2021, and a destination table associating the tag information with the destination data server. The data collection server 2024 may determine the destination data server based on the tag information using the management table and the destination table. Here, the tag information is, for example, control information for management or control information for service provision assigned to the type, model number, owner, group to which the terminal 2021 corresponding to the identifier belongs, or other identifiers. Also, instead of the identifier associated with the source terminal 2021, an identifier unique to each sensor may be used in the destination table. Also, the determination rule for the destination server may be settable from the client device 2026.

[0602] The data collection server 2024 may determine a plurality of data servers as destinations and transfer the received location-related data to the plurality of data servers. According to this configuration, for example, when automatically backing up location-related data, or when it is necessary to transmit location-related data to data servers for providing each service in order to commonly use location-related data in different services, the intended data transfer can be realized by changing the settings for the data collection server 2024. As a result, compared with the case of setting the transmission destination of location-related data for each individual terminal 2021, the man-hours required for system construction and modification can be reduced.

[0603] The data collection server 2024 may, in response to a transfer request signal received from a data server, register the data server specified by the transfer request signal as a new destination, and transfer the subsequently received location-related data to the data server.

[0604] The data collection server 2024 stores the location-related data received from the terminal 2021 in a recording device, and may transmit the location-related data specified by the transmission request signal to the requesting terminal 2021 or data server in response to the transmission request signal received from the terminal 2021 or the data server.

[0605] The data collection server 2024 determines whether the location-related data can be provided to the requesting data server or terminal 2021, and if it is determined that it can be provided, may transfer or transmit the location-related data to the requesting data server or terminal 2021.

[0606] When receiving a request for current location-related data from the client device 2026, even if it is not the transmission timing of the location-related data by the terminal 2021, the data collection server 2024 may send a transmission request for the location-related data to the terminal 2021, and the terminal 2021 may transmit the location-related data in response to the transmission request.

[0607] In the above description, it is assumed that the terminal 2021 transmits location information data to the data collection server 2024. However, the data collection server 2024 may be provided with functions necessary for collecting location-related data from the terminal 2021, such as a function for managing the terminal 2021, or functions used when collecting location-related data from the terminal 2021.

[0608] The data collection server 2024 may transmit a data request signal for requesting the transmission of location information data to the terminal 2021 and be provided with a function for collecting location-related data.

[0609] Management information such as an address for communicating with the terminal 2021 that is the target of data collection or an identifier unique to the terminal 2021 is pre-registered in the data collection server 2024. The data collection server 2024 collects location-related data from the terminal 2021 based on the registered management information. The management information may include information such as the type of sensor provided in the terminal 2021, the number of sensors provided in the terminal 2021, and the communication method supported by the terminal 2021.

[0610] The data collection server 2024 may collect information such as the operating state or current location of the terminal 2021 from the terminal 2021.

[0611] The registration of management information may be performed from the client device 2026, or the terminal 2021 may send a registration request to the data collection server 2024, and the process for registration may be started. The data collection server 2024 may have a function of controlling communication with the terminal 2021.

[0612] The communication connecting the data collection server 2024 and the terminal 2021 may be a dedicated line provided by a service provider such as an MNO (Mobile Network Operator) or an MVNO (Mobile Virtual Network Operator), or a virtual dedicated line configured by a VPN (Virtual Private Network). According to this configuration, communication between the terminal 2021 and the data collection server 2024 can be performed securely.

[0613] The data collection server 2024 may have a function of authenticating the terminal 2021 or a function of encrypting data transmitted and received between the terminal 2021. Here, the authentication process of the terminal 2021 or the data encryption process is performed using an identifier unique to the terminal 2021 or an identifier unique to a terminal group including a plurality of terminals 2021, which has been shared in advance between the data collection server 2024 and the terminal 2021. This identifier is, for example, an IMSI (International Mobile Subscriber Identity), which is a unique number stored in a SIM (Subscriber Identity Module) card. The identifier used for the authentication process and the identifier used for the data encryption process may be the same or different.

[0614] The processing of authentication or data encryption between the data collection server 2024 and the terminal 2021 can be provided as long as both the data collection server 2024 and the terminal 2021 have the function to perform the processing, and it does not depend on the communication method used by the communication device 2022 for relaying. Therefore, without considering whether the terminal 2021 uses a communication method, a common authentication or encryption process can be used, which improves the convenience of the user's system construction. However, not depending on the communication method used by the communication device 2022 for relaying means that it is not essential to change according to the communication method. That is, for the purpose of improving transmission efficiency or ensuring security, the processing of authentication or data encryption between the data collection server 2024 and the terminal 2021 may be switched according to the communication method used by the relay device.

[0615] The data collection server 2024 may provide a UI for managing data collection rules such as the types of location-related data collected from the terminal 2021 and the data collection schedule to the client device 2026. Thereby, the user can specify the terminal 2021 that collects data using the client device 2026, as well as the data collection time, frequency, etc. Also, the data collection server 2024 may specify an area on the map where data is to be collected, and collect location-related data from the terminal 2021 included in the area.

[0616] When managing data collection rules on a per-terminal 2021 basis, the client device 2026 presents, for example, a list of terminals 2021 or sensors to be managed on the screen. The user sets the necessity or collection schedule of data collection for each item in the list.

[0617] When specifying an area on a map for which data is to be collected, for example, the client device 2026 presents a two-dimensional or three-dimensional map of the area to be managed on the screen. The user selects the area for which data is to be collected on the displayed map. The area selected on the map may be a circular or rectangular area centered on a point specified on the map, or may be a circular or rectangular area that can be specified by a drag operation. Further, the client device 2026 may select an area in a preset unit such as a city, an area within a city, a block, or a major road. Further, instead of specifying an area using a map, an area may be set by inputting numerical values of latitude and longitude, or an area may be selected from a list of candidate areas derived based on the input text information. The text information is, for example, the name of a region, a city, or a landmark.

[0618] Further, the user may specify one or more terminals 2021 and set conditions such as within a range of 100 meters around the terminal 2021, so that data collection may be performed while dynamically changing the specified area.

[0619] Further, when the client device 2026 is equipped with a sensor such as a camera, an area on the map may be specified based on the position of the client device 2026 in the real space obtained from the sensor data. For example, the client device 2026 may estimate its own position using the sensor data and specify, as the area for which data is to be collected, an area within a predetermined distance from the point on the map corresponding to the estimated position, or within a distance specified by the user. Further, the client device 2026 may specify, as the area for which data is to be collected, the sensing area of the sensor, that is, the area corresponding to the acquired sensor data. Alternatively, the client device 2026 may specify, as the area for which data is to be collected, an area based on the position corresponding to the sensor data specified by the user. The estimation of the area or position on the map corresponding to the sensor data may be performed by the client device 2026 or by the data collection server 2024.

[0620] When making a specification in a region on a map, the data collection server 2024 may collect the current location information of each terminal 2021 to identify the terminals 2021 within the specified region and request the transmission of location-related data to the identified terminals 2021. Also, instead of the data collection server 2024 identifying the terminals 2021 within the region, the data collection server 2024 may transmit information indicating the specified region to the terminals 2021, and the terminals 2021 may determine whether they are within the specified region and transmit location-related data if they are determined to be within the specified region.

[0621] The data collection server 2024 transmits data such as a list or a map for providing the above-described UI (User Interface) in the application executed by the client device 2026 to the client device 2026. The data collection server 2024 may transmit not only data such as a list or a map but also the program of the application to the client device 2026. Also, the above-described UI may be provided as content created in HTML or the like that can be displayed on a browser. Note that some data such as map data may be provided from a server other than the data collection server 2024 such as the map server 2025.

[0622] When an input such as the pressing of a setting button by the user is performed and the client device 2026 is notified that the input is completed, the client device 2026 transmits the input information as setting information to the data collection server 2024. The data collection server 2024 transmits a signal for requesting location-related data or notifying the collection rule of location-related data to each terminal 2021 based on the setting information received from the client device 2026 and performs the collection of location-related data.

[0623] Next, an example of controlling the operation of the terminal 2021 based on additional information added to three-dimensional or two-dimensional map data will be described.

[0624] In this configuration, object information indicating the position of a power feeding unit such as a power feeding antenna or a power feeding coil for wireless power feeding embedded in a road or a parking lot is included in three-dimensional data or associated with the three-dimensional data, and is provided to a terminal 2021 such as a vehicle or a drone.

[0625] A vehicle or a drone that has acquired the object information to perform charging automatically moves the position of its own vehicle so that the position of a charging unit such as a charging antenna or a charging coil provided in the vehicle is in a position facing the area indicated by the object information, and starts charging. In the case of a vehicle or a drone that does not have an automatic driving function, an image or voice displayed on the screen is used to present the direction to move or the operation to be performed to the driver or the operator. Then, when it is determined that the position of the charging unit calculated based on the estimated self-position enters the area indicated by the object information or within a range of a predetermined distance from the area, an image or voice that presents content to stop driving or operation is switched, and charging is started.

[0626] Further, the object information may be information indicating an area where a charging efficiency of a predetermined threshold value or more can be obtained when a charging unit is arranged within the area, instead of information indicating the position of the power feeding unit. The position of the object information may be represented by the central point of the area indicated by the object information, or may be represented by an area or a line in a two-dimensional plane, or an area, a line or a plane in a three-dimensional space.

[0627] According to this configuration, since the position of the power feeding antenna that cannot be grasped from the sensing data of LiDER or the video captured by the camera can be grasped, the alignment between the antenna for wireless charging provided in the terminal 2021 such as a vehicle and the wireless power feeding antenna embedded in a road or the like can be performed with higher accuracy. As a result, the charging speed during wireless charging can be shortened or the charging efficiency can be improved.

[0628] The object information may be an object other than the power supply antenna. For example, the three-dimensional data includes, as object information, the position of an AP for millimeter-wave wireless communication. Thus, since the terminal 2021 can grasp the position of the AP in advance, it can start communication by directing the beam directivity in the direction of the object information. As a result, it is possible to improve the communication quality, such as improving the transmission speed, shortening the time until communication starts, and extending the communicable period.

[0629] The object information may include information indicating the type of the object corresponding to the object information. Further, when the terminal 2021 is included within a region in the real space corresponding to the position on the three-dimensional data of the object information or within a range of a predetermined distance from the region, the object information may include information indicating the process to be performed by the terminal 2021.

[0630] The object information may be provided from a server different from the server that provides the three-dimensional data. When the object information is provided separately from the three-dimensional data, an object group in which the object information used in the same service is stored may be provided as different data according to the type of the target service or target device.

[0631] The three-dimensional data used in combination with the object information may be point cloud data of WLD or feature point data of SWLD.

[0632] In a three-dimensional data encoding device, when the attribute information of a target three-dimensional point, which is a three-dimensional point to be encoded, is hierarchically encoded using LoD (Level of Detail), the three-dimensional data decoding device may decode the attribute information up to the LoD level required by the three-dimensional data decoding device and not decode the attribute information of levels that are not necessary. For example, when the total number of LoDs of the attribute information in the bitstream encoded by the three-dimensional data encoding device is N, the three-dimensional data decoding device may decode M (M < N) LoDs from LoD0 at the highest layer to LoD(M - 1) and not decode the remaining LoDs up to LoD(N - 1). Thereby, the three-dimensional data decoding device can decode the attribute information from LoD0 to LoD(M - 1) required by the three-dimensional data decoding device while suppressing the processing load.

[0633] FIG. 113 is a diagram showing the above use case. In the example of FIG. 113, the server holds a three-dimensional map obtained by encoding three-dimensional position information and attribute information. The server (three-dimensional data encoding device) broadcasts and transmits the three-dimensional map to a client device (three-dimensional data decoding device: for example, a vehicle or a drone, etc.) in the area managed by the server, and the client device uses the three-dimensional map received from the server to identify its own position, or performs a process of displaying map information to a user operating the client device, etc.

[0634] The operation example in this example will be described below. First, the server encodes the position information of the three-dimensional map using a quadtree structure or the like. Then, the server hierarchically encodes the attribute information of the three-dimensional map using N LoDs constructed based on the position information. The server saves the bitstream of the three-dimensional map obtained by the hierarchical encoding.

[0635] Next, in response to a transmission request for map information transmitted from a client device in the area managed by the server, the server transmits the bitstream of the encoded three-dimensional map to the client device.

[0636] The client device receives the bitstream of the three-dimensional map transmitted from the server, and decodes the position information and attribute information of the three-dimensional map according to the use of the client device. For example, when the client device performs high-precision self-position estimation using the position information and the attribute information of N LoDs, the client device determines that the decoding result up to the dense three-dimensional points is required as the attribute information, and decodes all the information in the bitstream.

[0637] Also, when the client device displays the information of the three-dimensional map to the user or the like, the client device determines that the decoding result up to the sparse three-dimensional points is required as the attribute information, and decodes the position information and the attribute information of the LoDs from LoD0, which is the upper layer of LoD, to M (M < N).

[0638] By switching the LoD of the attribute information to be decoded according to the use of the client device in this way, the processing load of the client device can be reduced.

[0639] In the example shown in FIG. 113, for example, the three-dimensional point map includes position information and attribute information. The position information is encoded by a quadtree. The attribute information is encoded by N LoDs.

[0640] The client device A performs high-precision self-position estimation. In this case, the client device A determines that all the position information and attribute information are required, and decodes all the position information and the attribute information composed of N LoDs in the bitstream.

[0641] The client device B displays the three-dimensional map to the user. In this case, the client device B determines that the position information and the attribute information of M (M < N) LoDs are required, and decodes the position information and the attribute information composed of M LoDs in the bitstream.

[0642] Note that the server may broadcast and transmit the three-dimensional map to the client device, or may perform multicast transmission or unicast transmission.

[0643] Next, a modification example of the system according to this embodiment will be described. In the three-dimensional data encoding device, when hierarchically encoding the attribute information of the target three-dimensional point, which is the three-dimensional point to be encoded, using LoD, the three-dimensional data encoding device may encode the attribute information up to the LoD level required by the three-dimensional data decoding device and not encode the attribute information of the levels that are not necessary. For example, when the total number of LoDs is N, the three-dimensional data encoding device may generate a bitstream by encoding M (M < N) LoDs from the topmost layer LoD0 to LoD(M - 1) and not encoding the remaining LoDs up to LoD(N - 1). Thereby, the three-dimensional data encoding device can provide a bitstream obtained by encoding the attribute information from LoD0 to LoD(M - 1) required by the three-dimensional data decoding device according to the request from the three-dimensional data decoding device.

[0644] FIG. 114 is a diagram showing t...

Claims

1. obtaining, by a processor, encoded position data in which position information of three-dimensional data is encoded from a bit stream using a hierarchical structure having a plurality of hierarchies; obtaining, by the processor, encoded attribute data in which attribute information of the three-dimensional data is encoded from the bit stream using the hierarchical structure having the plurality of hierarchies; obtaining metadata regarding the hierarchical structure from the bit stream; A method for decoding three-dimensional data.

2. decoding the encoded position data and the encoded attribute data using the obtained metadata The method for decoding three-dimensional data according to Claim 1.

3. The metadata is stored in common information of the encoded position data and the encoded attribute data. The method for decoding three-dimensional data according to Claim 1.

4. The common information is a sequence parameter set. The method for decoding three-dimensional data according to Claim 3.

5. The metadata is stored in at least one of header information of the encoded position data and header information of the encoded attribute data. The method for decoding three-dimensional data according to Claim 1.

6. The plurality of hierarchies are divided into group hierarchies in which one or more hierarchies are grouped, The metadata includes information regarding the group hierarchy. The method for decoding three-dimensional data according to Claim 5.

7. generating, by a processor, encoded position data in which position information of three-dimensional data is encoded using a hierarchical structure having a plurality of hierarchies; generating, by the processor, encoded attribute data in which attribute information of the three-dimensional data is encoded using the hierarchical structure having the plurality of hierarchies; generating, by the processor, metadata regarding the hierarchical structure; generating a bit stream including the encoded position data, the encoded attribute data, and the metadata A method for encoding three-dimensional data.

8. storing the metadata in common information of the encoded position data and the encoded attribute data The method for encoding three-dimensional data according to Claim 7.

9. The common information is a sequence parameter set. The method for encoding three-dimensional data according to Claim 8.

10. storing the metadata in at least one of header information of the encoded position data and header information of the encoded attribute data The method for encoding three-dimensional data according to Claim 7.

11. comprising a processor and a memory, The processor uses the memory, The processor acquires encoded position data in which the position information of three-dimensional data is encoded from a bit stream using a hierarchical structure having a plurality of hierarchies. The processor acquires encoded attribute data in which the attribute information of the three-dimensional data is encoded from the bit stream using the hierarchical structure having the plurality of hierarchies. The metadata regarding the hierarchical structure is acquired from the bit stream. Three-dimensional data decoding apparatus. **Claim 12** A processor and a memory, wherein the processor uses the memory to generate, by the processor, encoded position data in which the position information of three-dimensional data is encoded using a hierarchical structure having a plurality of hierarchies, generate, by the processor, encoded attribute data in which the attribute information of the three-dimensional data is encoded using the hierarchical structure having the plurality of hierarchies, generate, by the processor, metadata regarding the hierarchical structure, and generate a bit stream including the encoded position data, the encoded attribute data, and the metadata Three-dimensional data encoding apparatus.

Citation Information

Patent Citations

  • Hierarchical entropy coding and decoding

    JP2014529950A

  • Encoder and control method therefor

    JP2017126890A

  • Scalable point cloud compression with transform, and corresponding decompression

    US20170347122A1

  • Point cloud compression using non-orthogonal projection

    US20190139266A1

  • Encoding method, decoding method, encoding apparatus and decoding apparatus

    WO2016013147A1